This PR performs a significant architectural refactoring by extracting rich text functionality into a dedicated package. Here are the key changes:
1. **New Package Creation**
- Created a new package `@blocksuite/affine-rich-text` to house rich text related functionality
- Moved rich text components, utilities, and types from `@blocksuite/affine-components` to this new package
2. **Dependency Updates**
- Updated multiple block packages to include the new `@blocksuite/affine-rich-text` as a direct dependency:
- block-callout
- block-code
- block-database
- block-edgeless-text
- block-embed
- block-list
- block-note
- block-paragraph
3. **Import Path Updates**
- Refactored all imports that previously referenced rich text functionality from `@blocksuite/affine-components/rich-text` to now use `@blocksuite/affine-rich-text`
- Updated imports for components like:
- DefaultInlineManagerExtension
- RichText types and interfaces
- Text manipulation utilities (focusTextModel, textKeymap, etc.)
- Reference node components and providers
4. **Build Configuration Updates**
- Added references to the new rich text package in the `tsconfig.json` files of all affected packages
- Maintained workspace dependencies using the `workspace:*` version specifier
The primary motivation appears to be:
1. Better separation of concerns by isolating rich text functionality
2. Improved maintainability through more modular package structure
3. Clearer dependencies between packages
4. Potential for better tree-shaking and bundle optimization
This is primarily an architectural improvement that should make the codebase more maintainable and better organized.
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@googleapis/androidpublisher](https://redirect.github.com/googleapis/google-api-nodejs-client) | [`^22.0.0` -> `^24.0.0`](https://renovatebot.com/diffs/npm/@googleapis%2fandroidpublisher/22.0.0/24.0.0) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>googleapis/google-api-nodejs-client (@​googleapis/androidpublisher)</summary>
### [`v24.0.0`](https://redirect.github.com/googleapis/google-api-nodejs-client/blob/HEAD/CHANGELOG.md#12400-2023-08-09)
##### ⚠ BREAKING CHANGES
- **youtube:** This release has breaking changes.
- **workloadmanager:** This release has breaking changes.
- **smartdevicemanagement:** This release has breaking changes.
- **serviceusage:** This release has breaking changes.
- **servicedirectory:** This release has breaking changes.
- **retail:** This release has breaking changes.
- **networkconnectivity:** This release has breaking changes.
- **monitoring:** This release has breaking changes.
- **gkeonprem:** This release has breaking changes.
- **gkehub:** This release has breaking changes.
- **contentwarehouse:** This release has breaking changes.
- **contactcenteraiplatform:** This release has breaking changes.
- **compute:** This release has breaking changes.
- **checks:** This release has breaking changes.
- **bigtableadmin:** This release has breaking changes.
- **bigquery:** This release has breaking changes.
- **assuredworkloads:** This release has breaking changes.
- **androidmanagement:** This release has breaking changes.
- **analyticsadmin:** This release has breaking changes.
- migate to Node 14
##### Features
- **admin:** update the API ([1bc7f53](1bc7f53857))
- **analyticsadmin:** update the API ([8f479e1](8f479e1550))
- **analyticshub:** update the API ([427f865](427f8657bc))
- **androidmanagement:** update the API ([d885722](d885722fa7))
- **artifactregistry:** update the API ([d70a33e](d70a33e42e))
- **assuredworkloads:** update the API ([321cff7](321cff70dc))
- **beyondcorp:** update the API ([ad95808](ad95808585))
- **bigquerydatatransfer:** update the API ([b290e4a](b290e4a24d))
- **bigquery:** update the API ([3a1ca66](3a1ca661f4))
- **bigtableadmin:** update the API ([4f1fb0c](4f1fb0cac0))
- **chat:** update the API ([c594a3b](c594a3b012))
- **checks:** update the API ([b9c4657](b9c46572eb))
- **cloudbuild:** update the API ([1d791a8](1d791a8bc5))
- **clouddeploy:** update the API ([c733347](c7333472fd))
- **cloudfunctions:** update the API ([0255d75](0255d75e4b))
- **compute:** update the API ([0237e76](0237e76d5b))
- **connectors:** update the API ([cc40ccb](cc40ccbdeb))
- **contactcenteraiplatform:** update the API ([6778c8d](6778c8ddfa))
- **containeranalysis:** update the API ([a74b5e3](a74b5e3e99))
- **container:** update the API ([1f06a76](1f06a76ec8))
- **content:** update the API ([b5af676](b5af676bbb))
- **contentwarehouse:** update the API ([ac9b754](ac9b7543ce))
- **datacatalog:** update the API ([747a4af](747a4af6ff))
- **dataflow:** update the API ([a62940f](a62940fdc1))
- **dataform:** update the API ([d1a0a72](d1a0a72df8))
- **datamigration:** update the API ([5037d65](5037d6562b))
- **dataplex:** update the API ([ef7bc25](ef7bc250fb))
- **dataproc:** update the API ([1c699db](1c699db9ce))
- **datastore:** update the API ([80a30a0](80a30a04e2))
- **datastream:** update the API ([2c1c784](2c1c784b89))
- **dialogflow:** update the API ([bac62ef](bac62ef9ff))
- **discoveryengine:** update the API ([d8debb8](d8debb8863))
- **discovery:** update the API ([c82eebd](c82eebd5f1))
- **displayvideo:** update the API ([bbc4d65](bbc4d65427))
- **documentai:** update the API ([8ac40a0](8ac40a004e))
- **drivelabels:** update the API ([5ef5d03](5ef5d030b1))
- **drive:** update the API ([2432651](243265177f))
- **firebaseappcheck:** update the API ([7c4888c](7c4888c182))
- **firebase:** update the API ([fdafcaa](fdafcaa969))
- **firestore:** update the API ([7a14283](7a14283031))
- **games:** update the API ([55fed7d](55fed7d4ec))
- **gkebackup:** update the API ([8d1ac26](8d1ac26eb6))
- **gkehub:** update the API ([81d36c9](81d36c9368))
- **gkeonprem:** update the API ([7412e91](7412e91ccd))
- **healthcare:** update the API ([1d0354c](1d0354c855))
- **migrationcenter:** update the API ([f4cb381](f4cb38184d))
- **monitoring:** update the API ([f5bf72c](f5bf72c5a7))
- **networkconnectivity:** update the API ([23894c5](23894c5f96))
- **networksecurity:** update the API ([d9f4f91](d9f4f9174f))
- **notebooks:** update the API ([9498d86](9498d86aaf))
- **ondemandscanning:** update the API ([0ec83f3](0ec83f316b))
- **osconfig:** update the API ([e1ca8d0](e1ca8d031e))
- **oslogin:** update the API ([cf32530](cf32530418))
- **policysimulator:** update the API ([7c67951](7c6795150e))
- **pubsub:** update the API ([27c5439](27c5439336))
- regenerate index files ([7e6a0e5](7e6a0e582b))
- **retail:** update the API ([4dcd52b](4dcd52b6a7))
- **securitycenter:** update the API ([82cf038](82cf0380c5))
- **serviceconsumermanagement:** update the API ([da52b7e](da52b7ef38))
- **servicecontrol:** update the API ([d246968](d24696820f))
- **servicedirectory:** update the API ([70389d9](70389d96ea))
- **servicemanagement:** update the API ([6fdca08](6fdca087b3))
- **servicenetworking:** update the API ([d4784d0](d4784d07dd))
- **serviceusage:** update the API ([cf72cfd](cf72cfd02b))
- **smartdevicemanagement:** update the API ([cc5c86e](cc5c86e758))
- **sqladmin:** update the API ([0c9f7b6](0c9f7b666d))
- **tagmanager:** update the API ([42c3b97](42c3b97d78))
- **toolresults:** update the API ([d07c878](d07c8782d3))
- **tpu:** update the API ([6109722](61097227dc))
- **trafficdirector:** update the API ([d07ac95](d07ac95641))
- **vault:** update the API ([e1d2dc4](e1d2dc4ca3))
- **verifiedaccess:** update the API ([d8e2234](d8e22343e2))
- **videointelligence:** update the API ([158ae35](158ae35e73))
- **vmmigration:** update the API ([3adbd55](3adbd5557e))
- **workloadmanager:** update the API ([2f089aa](2f089aa056))
- **youtube:** update the API ([83aac2f](83aac2f393))
##### Bug Fixes
- **abusiveexperiencereport:** update the API ([51e5811](51e581179d))
- **acceleratedmobilepageurl:** update the API ([a6a2a06](a6a2a06ff1))
- **accessapproval:** update the API ([5194181](519418151e))
- **accesscontextmanager:** update the API ([28aebba](28aebba030))
- **acmedns:** update the API ([c6b1bcb](c6b1bcb8c3))
- add headers to tests ([d88a219](d88a2193ee))
- **adexchangebuyer2:** update the API ([436e422](436e422f45))
- **adexchangebuyer:** update the API ([de73406](de73406cfe))
- **adexperiencereport:** update the API ([3363255](3363255135))
- **admob:** update the API ([d249550](d249550bd5))
- **adsensehost:** update the API ([0a088ff](0a088ff891))
- **adsense:** update the API ([e1f10f6](e1f10f6ecf))
- **advisorynotifications:** update the API ([d8350ff](d8350ff286))
- **aiplatform:** update the API ([7feb2e8](7feb2e8bf0))
- **alertcenter:** update the API ([a073124](a07312469e))
- **analyticsdata:** update the API ([43bedd1](43bedd114a))
- **analyticsreporting:** update the API ([2d68b5a](2d68b5aa54))
- **analytics:** update the API ([64c4b07](64c4b07238))
- **androiddeviceprovisioning:** update the API ([ba02075](ba02075615))
- **androidenterprise:** update the API ([93f7c0c](93f7c0c999))
- **androidpublisher:** update the API ([8d35576](8d35576047))
- **apigateway:** update the API ([fc58d33](fc58d331a6))
- **apigeeregistry:** update the API ([b57542e](b57542e40b))
- **apikeys:** update the API ([18e475b](18e475be06))
- **appengine:** update the API ([67a3448](67a3448d66))
- **appsactivity:** update the API ([f8ba6ee](f8ba6ee70c))
- **area120tables:** update the API ([6ae8d8d](6ae8d8d8be))
- **authorizedbuyersmarketplace:** update the API ([61d943b](61d943be06))
- **baremetalsolution:** update the API ([269dae8](269dae821f))
- **batch:** update the API ([7aa7cc7](7aa7cc702d))
- **bigqueryconnection:** update the API ([bb288b1](bb288b1195))
- **bigqueryreservation:** update the API ([4e77b1d](4e77b1d162))
- **billingbudgets:** update the API ([0f799e6](0f799e65a5))
- **binaryauthorization:** update the API ([deb6c10](deb6c10db6))
- **blockchainnodeengine:** update the API ([b6bd10a](b6bd10a35c))
- **blogger:** update the API ([975da3e](975da3e0ed))
- **books:** update the API ([4bef344](4bef344a07))
- **businessprofileperformance:** update the API ([5b313f4](5b313f4920))
- **calendar:** update the API ([006efbc](006efbc7fa))
- **certificatemanager:** update the API ([7d91857](7d91857b20))
- **chromemanagement:** update the API ([fd29c85](fd29c85f37))
- **chromepolicy:** update the API ([f51e0db](f51e0db2dc))
- **chromeuxreport:** update the API ([fd7db9e](fd7db9edc4))
- **civicinfo:** update the API ([a1f55b2](a1f55b245d))
- **classroom:** update the API ([7603333](7603333575))
- **cloudasset:** update the API ([1ffdfc2](1ffdfc2b30))
- **cloudbilling:** update the API ([46cbf0e](46cbf0ef91))
- **cloudchannel:** update the API ([e563d83](e563d832be))
- **clouddebugger:** update the API ([faad469](faad4698e5))
- **clouderrorreporting:** update the API ([afa4dec](afa4dec030))
- **cloudidentity:** update the API ([2610c07](2610c07173))
- **cloudiot:** update the API ([49105a6](49105a65ea))
- **cloudkms:** update the API ([208f1da](208f1daac6))
- **cloudprofiler:** update the API ([25cdd90](25cdd90c33))
- **cloudresourcemanager:** update the API ([493ac8c](493ac8ce90))
- **cloudscheduler:** update the API ([58070d7](58070d75a2))
- **cloudsearch:** update the API ([d732a80](d732a80357))
- **cloudshell:** update the API ([f098eb8](f098eb8765))
- **cloudsupport:** update the API ([16514b9](16514b97fc))
- **cloudtasks:** update the API ([12a7fe1](12a7fe1b93))
- **cloudtrace:** update the API ([85adc52](85adc52814))
- **composer:** update the API ([746d876](746d876c78))
- **contactcenterinsights:** update the API ([03a34b1](03a34b14b6))
- **customsearch:** update the API ([13ef993](13ef993800))
- **datafusion:** update the API ([d74fb78](d74fb78629))
- **datalabeling:** update the API ([ed7e0cb](ed7e0cb989))
- **datalineage:** update the API ([7be88ab](7be88abd11))
- **datapipelines:** update the API ([68131e2](68131e2960))
- **deploymentmanager:** update the API ([7a36c72](7a36c726f7))
- **dfareporting:** update the API ([f9c9934](f9c9934688))
- **digitalassetlinks:** update the API ([ef3f085](ef3f0859be))
- **dlp:** update the API ([75eb667](75eb6671c3))
- **dns:** update the API ([6e63b36](6e63b36afb))
- **docs:** update the API ([9cdab2d](9cdab2d96b))
- **domainsrdap:** update the API ([13b01b1](13b01b1767))
- **domains:** update the API ([884519b](884519bf3a))
- **doubleclickbidmanager:** update the API ([73d0bed](73d0bedb16))
- **doubleclicksearch:** update the API ([fa8cb1f](fa8cb1f4aa))
- **driveactivity:** update the API ([13487f9](13487f9ce2))
- **essentialcontacts:** update the API ([5fab60a](5fab60a961))
- **eventarc:** update the API ([d615c48](d615c48812))
- **factchecktools:** update the API ([6f372f1](6f372f19cc))
- **fcmdata:** update the API ([3b19295](3b192956b2))
- **fcm:** update the API ([e099c42](e099c42993))
- **file:** update the API ([9bbf034](9bbf0348a0))
- **firebaseappdistribution:** update the API ([8da0eb4](8da0eb460f))
- **firebasedatabase:** update the API ([4032b62](4032b62921))
- **firebasedynamiclinks:** update the API ([9d96aea](9d96aeafe1))
- **firebasehosting:** update the API ([c23f76b](c23f76bf5e))
- **firebaseml:** update the API ([048c48e](048c48e88b))
- **firebaserules:** update the API ([5e24b10](5e24b105f7))
- **firebasestorage:** update the API ([ea95e22](ea95e22fb2))
- **fitness:** update the API ([7c544ff](7c544ffc24))
- **forms:** update the API ([8ba614a](8ba614a2aa))
- **gamesConfiguration:** update the API ([8d46262](8d46262831))
- **gameservices:** update the API ([900a2fa](900a2fac5c))
- **gamesManagement:** update the API ([7997150](799715027a))
- **genomics:** update the API ([c64bc84](c64bc848cb))
- **gmailpostmastertools:** update the API ([3b25276](3b25276be0))
- **gmail:** update the API ([6ee8730](6ee873005b))
- **groupsmigration:** update the API ([e0c396e](e0c396e9d0))
- **groupssettings:** update the API ([8400a0e](8400a0e998))
- **homegraph:** update the API ([c77f44b](c77f44b726))
- **iamcredentials:** update the API ([b806bd9](b806bd9fb9))
- **iam:** update the API ([6ad470f](6ad470ffbb))
- **iap:** update the API ([8b998a0](8b998a0914))
- **ideahub:** update the API ([1540d50](1540d50df9))
- **identitytoolkit:** update the API ([4d7a874](4d7a874025))
- **ids:** update the API ([428dc29](428dc29375))
- **indexing:** update the API ([782806a](782806a470))
- **integrations:** update the API ([96dd8fd](96dd8fd2c1))
- **jobs:** update the API ([10826fa](10826fa6de))
- **kgsearch:** update the API ([9cee192](9cee192c08))
- **kmsinventory:** update the API ([9492458](9492458165))
- **language:** update the API ([585690a](585690a033))
- **libraryagent:** update the API ([9251716](9251716a73))
- **licensing:** update the API ([c5271b5](c5271b559e))
- **lifesciences:** update the API ([145d7ce](145d7ce4d4))
- **localservices:** update the API ([db5b627](db5b6271a4))
- **logging:** update the API ([df73435](df73435d7d))
- **managedidentities:** update the API ([1814dfa](1814dfa9e3))
- **manufacturers:** update the API ([c6c1398](c6c1398806))
- **memcache:** update the API ([05013bb](05013bb4d2))
- **metastore:** update the API ([45b0b5d](45b0b5d84f))
- **ml:** update the API ([9e1be4a](9e1be4aed4))
- **mybusinessaccountmanagement:** update the API ([6bc90e9](6bc90e9575))
- **mybusinessbusinesscalls:** update the API ([13ec9e0](13ec9e001a))
- **mybusinessbusinessinformation:** update the API ([565b3fa](565b3fa86b))
- **mybusinesslodging:** update the API ([006bd5a](006bd5a42d))
- **mybusinessnotifications:** update the API ([78e33ee](78e33ee568))
- **mybusinessplaceactions:** update the API ([bc8e5c7](bc8e5c7259))
- **mybusinessqanda:** update the API ([0ca91b1](0ca91b1e04))
- **mybusinessverifications:** update the API ([d5de2b9](d5de2b9692))
- **networkmanagement:** update the API ([533642b](533642ba85))
- **networkservices:** update the API ([8133c74](8133c7471e))
- **oauth2:** update the API ([5097e00](5097e00e9b))
- **orgpolicy:** update the API ([4f1d852](4f1d85203a))
- **pagespeedonline:** update the API ([fb574b4](fb574b4740))
- **paymentsresellersubscription:** update the API ([ecff656](ecff6566f2))
- **people:** update the API ([abebf9f](abebf9f738))
- **places:** update the API ([1582524](1582524f23))
- **playablelocations:** update the API ([711c349](711c349182))
- **playcustomapp:** update the API ([d96f5b2](d96f5b2af3))
- **playdeveloperreporting:** update the API ([e05bcaf](e05bcaf6c0))
- **playintegrity:** update the API ([7c9edd3](7c9edd37f9))
- **plus:** update the API ([ecac7a8](ecac7a88cd))
- **policyanalyzer:** update the API ([98148bf](98148bf5d9))
- **policytroubleshooter:** update the API ([36a5273](36a52733f6))
- **poly:** update the API ([807484d](807484d57a))
- **privateca:** update the API ([b654769](b654769dd2))
- **prod_tt_sasportal:** update the API ([b8c3705](b8c3705040))
- **publicca:** update the API ([f3361e6](f3361e6e1d))
- **pubsublite:** update the API ([87e148d](87e148d025))
- **readerrevenuesubscriptionlinking:** update the API ([6eb57e9](6eb57e9d2f))
- **realtimebidding:** update the API ([dbcfad2](dbcfad26ca))
- **recaptchaenterprise:** update the API ([3af6e62](3af6e62c11))
- **recommendationengine:** update the API ([b5323d8](b5323d877e))
- **recommender:** update the API ([bf6eed9](bf6eed9745))
- **redis:** update the API ([6879c13](6879c133e0))
- **remotebuildexecution:** update the API ([911cd0a](911cd0a68e))
- **reseller:** update the API ([e7ec5d3](e7ec5d33b9))
- **resourcesettings:** update the API ([c2c0c9e](c2c0c9ecd6))
- **runtimeconfig:** update the API ([7866c3a](7866c3a9b9))
- **run:** update the API ([2ed76fe](2ed76fe355))
- **safebrowsing:** update the API ([fe23d83](fe23d83559))
- **sasportal:** update the API ([ca33e9c](ca33e9c71f))
- **script:** update the API ([207587b](207587b2b7))
- **searchads360:** update the API ([8ed1df1](8ed1df140b))
- **searchconsole:** update the API ([208d0a5](208d0a5dc7))
- **secretmanager:** update the API ([426f146](426f146ac7))
- **sheets:** update the API ([3333f83](3333f83473))
- **siteVerification:** update the API ([760447c](760447c313))
- **slides:** update the API ([5e4d08c](5e4d08cfae))
- **sourcerepo:** update the API ([f803061](f803061d79))
- **spanner:** update the API ([8fe5e93](8fe5e9303a))
- **speech:** update the API ([34b7185](34b7185e75))
- **sql:** update the API ([b29a348](b29a34873e))
- **storagetransfer:** update the API ([d4e4820](d4e48203dd))
- **storage:** update the API ([20860bc](20860bc1ab))
- **streetviewpublish:** update the API ([1c6bb94](1c6bb94e2e))
- **sts:** update the API ([5765d2a](5765d2a4a1))
- **tasks:** update the API ([0eac80e](0eac80eb8e))
- **testing:** update the API ([fd787ed](fd787ed8f2))
- **texttospeech:** update the API ([9981feb](9981feb93e))
- **transcoder:** update the API ([851586c](851586c418))
- **translate:** update the API ([e11cc5e](e11cc5eea6))
- **travelimpactmodel:** update the API ([75a5352](75a5352631))
- **vectortile:** update the API ([4d94932](4d949325d9))
- **versionhistory:** update the API ([bb2ceec](bb2ceec5dd))
- **vision:** update the API ([afea669](afea6697bc))
- **vpcaccess:** update the API ([da58970](da5897041f))
- **webfonts:** update the API ([f0a4421](f0a4421760))
- **webmasters:** update the API ([d4143d6](d4143d6ab0))
- **webrisk:** update the API ([d4cc69b](d4cc69bca7))
- **websecurityscanner:** update the API ([9960a3a](9960a3aff2))
- **workflowexecutions:** update the API ([b3488ab](b3488abe18))
- **workflows:** update the API ([0b82237](0b82237e45))
- **workstations:** update the API ([a5f5488](a5f5488c31))
- **youtubeAnalytics:** update the API ([203afe6](203afe652d))
- **youtubereporting:** update the API ([48b6016](48b6016a38))
##### Miscellaneous Chores
- migate to Node 14 ([0967781](09677817aa))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
This PR contains the following updates:
| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |
🔧 This Pull Request updates lock files to use the latest dependency versions.
---
### Configuration
📅 **Schedule**: Branch creation - "* 0-3 * * 1" (UTC), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
### TL;DR
Refactored `SpecProvider` singleton access pattern and reorganized adapter/extension code structure.
### What changed?
- Changed `SpecProvider.getInstance()` to `SpecProvider._` for cleaner singleton access
- Moved adapter/extension code from `_common` directory to dedicated `adapters` and `extensions` folders
- Consolidated adapter extensions into a single file
- Removed unused dependencies from package.json
- Deleted unnecessary schema files
- Extracted `MobileSpecsPatches` class into the mobile patching code
- Updated all references to use the new `SpecProvider._` accessor
### How to test?
- Verify all specs are properly registered and accessible via `SpecProvider._`
- Test adapter functionality for HTML, Markdown, Notion HTML and plain text
- Check mobile-specific features and patches work correctly
- Ensure preview functionality works in both page and edgeless modes
### Why make this change?
- Improves code organization by properly separating adapters and extensions
- Simplifies singleton access pattern
- Removes unnecessary dependencies and files
- Makes the codebase more maintainable by consolidating related functionality
### TL;DR
Moved outline functionality into a dedicated fragment package and updated vanilla-extract CSS dependency.
### What changed?
- Created new `@blocksuite/affine-fragment-outline` package
- Relocated outline-related code from presets to the new fragment package
- Updated imports across affected files to reference the new package location
- Upgraded `@vanilla-extract/css` dependency from 1.14.0/1.16.1 to 1.17.0
- Added necessary package configuration and TypeScript setup for the new fragment
### How to test?
1. Verify outline functionality works as expected in both desktop and mobile views
2. Check that outline panel, viewer, and mobile menu components render correctly
3. Ensure outline navigation and interactions continue to work
4. Confirm no regressions in outline-related features
### Why make this change?
This change improves code organization by isolating outline functionality into a dedicated package, following the modular architecture pattern. This makes the codebase more maintainable and allows for better separation of concerns. The vanilla-extract CSS upgrade ensures consistency across packages and provides access to the latest features and fixes.
### TL;DR
Moved frame management functionality from `blocksuite/blocks` to `@blocksuite/affine-block-frame` package.
### What changed?
- Relocated `frame-manager.ts` from `blocksuite/blocks` to `@blocksuite/affine-block-frame`
- Added new dependencies to block-frame package: `@blocksuite/affine-block-surface` and `yjs`
- Updated imports across multiple components to reference frame manager from its new location
- Moved utility functions `areSetsEqual` and `isFrameBlock` into frame-manager file
- Replaced direct EdgelessRootService references with GfxController in frame panel components
### How to test?
1. Verify frame functionality works in edgeless mode
2. Test frame creation, selection, and manipulation
3. Confirm frame navigation and presentation modes operate correctly
4. Check that frame panel and toolbar interactions remain functional
### Why make this change?
This refactoring improves code organization by consolidating frame-related functionality into a dedicated package, making the codebase more modular and easier to maintain. It also reduces dependencies between packages and provides clearer boundaries for frame-related features.