Commit Graph

244 Commits

Author SHA1 Message Date
fundon
341321284e fix(core): should not invert label when its shape text (#10765)
Closes: [BS-2797](https://linear.app/affine-design/issue/BS-2797/在-settings-preview-中,无需对-shape-text-颜色-label-进行反转)

Releated: https://github.com/toeverything/AFFiNE/pull/10546
2025-03-13 13:15:41 +00:00
pengx17
d24ced3dbd fix(electron): electron fallback container should not contain tabs header (#10826)
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/3e8e4838-7f28-453d-bd7f-32bfa96f09ae.png)

fix double tabs header issue when loading from external url
2025-03-13 10:14:26 +00:00
EYHN
86729fb447 feat(core): adjust web clipper page (#10779) 2025-03-13 10:59:50 +08:00
forehalo
d8ebf7b3c5 fix(core): wrong top margin of local workspace hint in setting panel (#10782)
close AF-2243
2025-03-12 10:16:47 +00:00
fengmk2
fd3ce431fe fix(core): assert app schema url on open-app (#10687) 2025-03-12 08:42:35 +00:00
Mirone
cd63e0ed8b feat(editor): replace slot with rxjs subject (#10768) 2025-03-12 11:29:24 +09:00
EYHN
ea07aa8607 feat(core): add notification list (#10480) 2025-03-11 06:23:33 +00:00
Saul-Mirone
4dd5f2ffb0 feat(editor): add viewport element service (#10727) 2025-03-10 04:26:18 +00:00
Saul-Mirone
ec709925ee refactor(editor): orgnize exports (#10709) 2025-03-10 02:04:01 +00:00
Saul-Mirone
12bc142809 refactor(editor): remove blocks package (#10708) 2025-03-09 05:44:26 +00:00
doodlewind
334912e85b perf(editor): lazy DOM update with idle state in gfx viewport (#10624)
Currently, `GfxViewportElement` hides DOM blocks outside the viewport using `display: none` to optimize performance. However, this approach presents two issues:

1. Even when hidden, all top-level blocks still undergo frequent CSS transform updates during viewport panning and zooming.
2. Hidden blocks cannot access DOM layout information, preventing `TurboRenderer` from updating the complete canvas bitmap.

To address this, this PR introduces a refactoring that divides all top-level edgeless blocks into two states: `idle` and `active`. The improvements are as follows:

1. Blocks outside the viewport are set to the `idle` state, meaning they no longer update their DOM during viewport panning or zooming. Only `active` blocks within the viewport are updated frame by frame.
2. For `idle` blocks, the hiding method switches from `display: none` to `visibility: hidden`, ensuring their layout information remains accessible to `TurboRenderer`.

[Screen Recording 2025-03-07 at 3.23.56 PM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/lEGcysB4lFTEbCwZ8jMv/4bac640b-f5b6-4b0b-904d-5899f96cf375.mov" />](https://app.graphite.dev/media/video/lEGcysB4lFTEbCwZ8jMv/4bac640b-f5b6-4b0b-904d-5899f96cf375.mov)

While this minimizes DOM updates, it introduces a trade-off: `idle` blocks retain an outdated layout state. Since their positions are updated using a lazy update strategy, their layout state remains frozen at the moment they were last moved out of the viewport:

![idle-issue.jpg](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/lEGcysB4lFTEbCwZ8jMv/9c8c2150-69d4-416b-b46e-8473a7fdf339.jpg)

To resolve this, the PR serializes and stores the viewport field of the block at that moment on the `idle` block itself. This allows the correct layout, positioned in the model coordinate system, to be restored from the stored data.
2025-03-08 01:38:02 +00:00
CatsJuice
9f3580263a feat(core): support removing journal template from right sidebar (#10571) 2025-03-07 12:32:42 +00:00
forehalo
e02fb4fa94 refactor(core): standardize frontend error handling (#10667) 2025-03-06 13:10:18 +00:00
Saul-Mirone
84e2dda3f8 refactor(editor): separate lit and slot in global (#10666) 2025-03-06 10:24:59 +00:00
akumatus
cd884312ea fix(core): missing clean up subscription (#10636) 2025-03-06 07:00:58 +00:00
EYHN
5c8b81581c feat(core): doc level awareness (#10646) 2025-03-06 06:05:45 +00:00
JimmFly
edd37b5d54 chore: adjust discord link (#10645) 2025-03-06 04:08:26 +00:00
hackerESQ
fed0e0add3 fix: prevent sentry from loading when telemetry is disabled (#10543)
Co-authored-by: forehalo <forehalo@gmail.com>
2025-03-05 20:09:38 +08:00
akumatus
1c2a6eac85 feat: responsive chat-panel padding and request (#10620)
Close [BS-2751](https://linear.app/affine-design/issue/BS-2751).

### What Changed?
- Do not send AI gql request when chat-panel is not open.
- When the chat-panel width is greater than 540px, adjust the padding to 24px.
- Optimize the display and hide logic of scroll to end button.
2025-03-05 09:12:03 +00:00
EYHN
61635aa77a feat(core): add clipper import interface (#10619) 2025-03-05 04:22:03 +00:00
Saul-Mirone
b8ecfbdae6 refactor(editor): remove assertExists (#10615) 2025-03-05 00:13:08 +00:00
Saul-Mirone
66d9d576e0 refactor(editor): add gfx entry in bs global package (#10612) 2025-03-04 12:46:50 +00:00
renovate
5c16b803b7 chore: bump up @sentry/react version to v9 (#10064)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`^8.44.0` -> `^9.0.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.54.0/9.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/8.54.0/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/8.54.0/9.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/react)</summary>

### [`v9.0.1`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.0.1)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.0.0...9.0.1)

-   ref(flags): rename unleash integration param ([#&#8203;15343](https://redirect.github.com/getsentry/sentry-javascript/pull/15343))

##### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)                                                  | 22.9 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) - with treeshaking flags                         | 22.69 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing)                                  | 35.77 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay)                          | 72.65 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 66.13 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 76.9 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 89.64 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Feedback)                                 | 39.86 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. sendFeedback)                             | 27.53 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.31 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)                                                    | 24.74 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) (incl. Tracing)                                    | 37.67 KB  |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue)                                                      | 27.09 KB  |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl. Tracing)                                      | 37.47 KB  |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte)                                                   | 22.94 KB  |
| CDN Bundle                                                       | 24.13 KB  |
| CDN Bundle (incl. Tracing)                                       | 35.84 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 70.55 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 75.69 KB  |
| CDN Bundle - uncompressed                                        | 70.59 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 106.46 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 217.52 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 230.09 KB |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs) (client)                                          | 38.63 KB  |
| [@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit) (client)                                       | 36.2 KB   |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node)                                                     | 156.33 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) - without tracing                                   | 97.31 KB  |
| [@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)                                           | 106.82 KB |

### [`v9.0.0`](https://redirect.github.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#900)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/8.54.0...9.0.0)

Version `9.0.0` marks a release of the Sentry JavaScript SDKs that contains breaking changes.
The goal of this release is to trim down on unused and potentially confusing APIs, prepare the SDKs for future framework versions to build deeper instrumentation, and remove old polyfills to reduce the packages' size.

##### How To Upgrade

Please carefully read through the migration guide in the Sentry docs on how to upgrade from version 8 to version 9.
Make sure to select your specific platform/framework in the top left corner: https://docs.sentry.io/platforms/javascript/migration/v8-to-v9/

A comprehensive migration guide outlining all changes for all the frameworks can be found within the Sentry JavaScript SDK Repository: https://github.com/getsentry/sentry-javascript/blob/develop/MIGRATION.md

##### Breaking Changes

-   doc(deno)!: Make Deno v2 the minimum supported version ([#&#8203;15085](https://redirect.github.com/getsentry/sentry-javascript/issues/15085))
-   feat!: Bump typescript to `~5.0.0` ([#&#8203;14758](https://redirect.github.com/getsentry/sentry-javascript/issues/14758))
-   feat!: Drop `nitro-utils` package ([#&#8203;14998](https://redirect.github.com/getsentry/sentry-javascript/issues/14998))
-   feat!: Only collect ip addresses with `sendDefaultPii: true` ([#&#8203;15084](https://redirect.github.com/getsentry/sentry-javascript/issues/15084))
-   feat!: Remove `autoSessionTracking` option ([#&#8203;14802](https://redirect.github.com/getsentry/sentry-javascript/issues/14802))
-   feat!: Remove `enableTracing` ([#&#8203;15078](https://redirect.github.com/getsentry/sentry-javascript/issues/15078))
-   feat!: Remove `getCurrentHub()`, `Hub`, and `getCurrentHubShim()` ([#&#8203;15122](https://redirect.github.com/getsentry/sentry-javascript/issues/15122))
-   feat!: Remove `spanId` from propagation context ([#&#8203;14733](https://redirect.github.com/getsentry/sentry-javascript/issues/14733))
-   feat!: Remove deprecated and unused code ([#&#8203;15077](https://redirect.github.com/getsentry/sentry-javascript/issues/15077))
-   feat!: Remove metrics API from the JS SDK ([#&#8203;14745](https://redirect.github.com/getsentry/sentry-javascript/issues/14745))
-   feat!: Require Node `>=18` as minimum supported version ([#&#8203;14749](https://redirect.github.com/getsentry/sentry-javascript/issues/14749))
-   feat(astro)!: Respect user-specified source map setting ([#&#8203;14941](https://redirect.github.com/getsentry/sentry-javascript/issues/14941))
-   feat(browser)!: Remove `captureUserFeedback` method ([#&#8203;14820](https://redirect.github.com/getsentry/sentry-javascript/issues/14820))
-   feat(build)!: Drop pre-ES2020 polyfills ([#&#8203;14882](https://redirect.github.com/getsentry/sentry-javascript/issues/14882))
-   feat(core)!: Add `normalizedRequest` to `samplingContext` ([#&#8203;14902](https://redirect.github.com/getsentry/sentry-javascript/issues/14902))
-   feat(core)!: Always use session from isolation scope ([#&#8203;14860](https://redirect.github.com/getsentry/sentry-javascript/issues/14860))
-   feat(core)!: Pass root spans to `beforeSendSpan` and disallow returning `null` ([#&#8203;14831](https://redirect.github.com/getsentry/sentry-javascript/issues/14831))
-   feat(core)!: Remove `BAGGAGE_HEADER_NAME` export ([#&#8203;14785](https://redirect.github.com/getsentry/sentry-javascript/issues/14785))
-   feat(core)!: Remove `TransactionNamingScheme` type ([#&#8203;14865](https://redirect.github.com/getsentry/sentry-javascript/issues/14865))
-   feat(core)!: Remove `addOpenTelemetryInstrumentation` method ([#&#8203;14792](https://redirect.github.com/getsentry/sentry-javascript/issues/14792))
-   feat(core)!: Remove `arrayify` method ([#&#8203;14782](https://redirect.github.com/getsentry/sentry-javascript/issues/14782))
-   feat(core)!: Remove `debugIntegration` and `sessionTimingIntegration` ([#&#8203;14747](https://redirect.github.com/getsentry/sentry-javascript/issues/14747))
-   feat(core)!: Remove `flatten` method ([#&#8203;14784](https://redirect.github.com/getsentry/sentry-javascript/issues/14784))
-   feat(core)!: Remove `getDomElement` method ([#&#8203;14797](https://redirect.github.com/getsentry/sentry-javascript/issues/14797))
-   feat(core)!: Remove `makeFifoCache` method ([#&#8203;14786](https://redirect.github.com/getsentry/sentry-javascript/issues/14786))
-   feat(core)!: Remove `memoBuilder` export & `WeakSet` fallback ([#&#8203;14859](https://redirect.github.com/getsentry/sentry-javascript/issues/14859))
-   feat(core)!: Remove `transactionContext` from `samplingContext` ([#&#8203;14904](https://redirect.github.com/getsentry/sentry-javascript/issues/14904))
-   feat(core)!: Remove `urlEncode` method ([#&#8203;14783](https://redirect.github.com/getsentry/sentry-javascript/issues/14783))
-   feat(core)!: Remove deprecated `Request` type ([#&#8203;14858](https://redirect.github.com/getsentry/sentry-javascript/issues/14858))
-   feat(core)!: Remove deprecated request data methods ([#&#8203;14896](https://redirect.github.com/getsentry/sentry-javascript/issues/14896))
-   feat(core)!: Remove standalone `Client` interface & deprecate `BaseClient` ([#&#8203;14800](https://redirect.github.com/getsentry/sentry-javascript/issues/14800))
-   feat(core)!: Remove validSeverityLevels export ([#&#8203;14765](https://redirect.github.com/getsentry/sentry-javascript/issues/14765))
-   feat(core)!: Stop accepting `event` as argument for `recordDroppedEvent` ([#&#8203;14999](https://redirect.github.com/getsentry/sentry-javascript/issues/14999))
-   feat(core)!: Stop setting user in `requestDataIntegration` ([#&#8203;14898](https://redirect.github.com/getsentry/sentry-javascript/issues/14898))
-   feat(core)!: Type sdkProcessingMetadata more strictly ([#&#8203;14855](https://redirect.github.com/getsentry/sentry-javascript/issues/14855))
-   feat(core)!: Update `hasTracingEnabled` to consider empty trace config ([#&#8203;14857](https://redirect.github.com/getsentry/sentry-javascript/issues/14857))
-   feat(core)!: Update `requestDataIntegration` handling ([#&#8203;14806](https://redirect.github.com/getsentry/sentry-javascript/issues/14806))
-   feat(deno)!: Remove deno prepack ([#&#8203;14829](https://redirect.github.com/getsentry/sentry-javascript/issues/14829))
-   feat(ember)!: Officially drop support for ember `<=3.x` ([#&#8203;15032](https://redirect.github.com/getsentry/sentry-javascript/issues/15032))
-   feat(nestjs)!: Move `nestIntegration` into nest sdk and remove `setupNestErrorHandler` ([#&#8203;14751](https://redirect.github.com/getsentry/sentry-javascript/issues/14751))
-   feat(nestjs)!: Remove `@WithSentry` decorator ([#&#8203;14762](https://redirect.github.com/getsentry/sentry-javascript/issues/14762))
-   feat(nestjs)!: Remove `SentryService` ([#&#8203;14759](https://redirect.github.com/getsentry/sentry-javascript/issues/14759))
-   feat(nextjs)!: Don't rely on Next.js Build ID for release names ([#&#8203;14939](https://redirect.github.com/getsentry/sentry-javascript/issues/14939))
-   feat(nextjs)!: Remove `experimental_captureRequestError` ([#&#8203;14607](https://redirect.github.com/getsentry/sentry-javascript/issues/14607))
-   feat(nextjs)!: Respect user-provided source map generation settings ([#&#8203;14956](https://redirect.github.com/getsentry/sentry-javascript/issues/14956))
-   feat(node)!: Add support for Prisma v6 and drop v5 support ([#&#8203;15120](https://redirect.github.com/getsentry/sentry-javascript/issues/15120))
-   feat(node)!: Avoid http spans by default for custom OTEL setups ([#&#8203;14678](https://redirect.github.com/getsentry/sentry-javascript/issues/14678))
-   feat(node)!: Collect request sessions via HTTP instrumentation ([#&#8203;14658](https://redirect.github.com/getsentry/sentry-javascript/issues/14658))
-   feat(node)!: Remove `processThreadBreadcrumbIntegration` ([#&#8203;14666](https://redirect.github.com/getsentry/sentry-javascript/issues/14666))
-   feat(node)!: Remove fine grained `registerEsmLoaderHooks` ([#&#8203;15002](https://redirect.github.com/getsentry/sentry-javascript/issues/15002))
-   feat(opentelemetry)!: Exclusively pass root spans through sampling pipeline ([#&#8203;14951](https://redirect.github.com/getsentry/sentry-javascript/issues/14951))
-   feat(pinia)!: Include state of all stores in breadcrumb ([#&#8203;15312](https://redirect.github.com/getsentry/sentry-javascript/issues/15312))
-   feat(react)!: Raise minimum supported TanStack Router version to `1.63.0` ([#&#8203;15030](https://redirect.github.com/getsentry/sentry-javascript/issues/15030))
-   feat(react)!: Remove deprecated `getNumberOfUrlSegments` method ([#&#8203;14744](https://redirect.github.com/getsentry/sentry-javascript/issues/14744))
-   feat(react)!: Remove deprecated react router methods ([#&#8203;14743](https://redirect.github.com/getsentry/sentry-javascript/issues/14743))
-   feat(react)!: Update `ErrorBoundary` `componentStack` type ([#&#8203;14742](https://redirect.github.com/getsentry/sentry-javascript/issues/14742))
-   feat(remix)!: Drop support for Remix v1 ([#&#8203;14988](https://redirect.github.com/getsentry/sentry-javascript/issues/14988))
-   feat(remix)!: Remove `autoInstrumentRemix` option ([#&#8203;15074](https://redirect.github.com/getsentry/sentry-javascript/issues/15074))
-   feat(solidstart)!: Default to `--import` setup and add `autoInjectServerSentry` ([#&#8203;14862](https://redirect.github.com/getsentry/sentry-javascript/issues/14862))
-   feat(solidstart)!: No longer export `sentrySolidStartVite` ([#&#8203;15143](https://redirect.github.com/getsentry/sentry-javascript/issues/15143))
-   feat(solidstart)!: Respect user-provided source map setting ([#&#8203;14979](https://redirect.github.com/getsentry/sentry-javascript/issues/14979))
-   feat(svelte)!: Disable component update tracking by default ([#&#8203;15265](https://redirect.github.com/getsentry/sentry-javascript/issues/15265))
-   feat(sveltekit)!: Drop support for SvelteKit [@&#8203;1](https://redirect.github.com/1).x ([#&#8203;15037](https://redirect.github.com/getsentry/sentry-javascript/issues/15037))
-   feat(sveltekit)!: Remove `fetchProxyScriptNonce` option ([#&#8203;15123](https://redirect.github.com/getsentry/sentry-javascript/issues/15123))
-   feat(sveltekit)!: Respect user-provided source map generation settings ([#&#8203;14886](https://redirect.github.com/getsentry/sentry-javascript/issues/14886))
-   feat(utils)!: Remove `@sentry/utils` package ([#&#8203;14830](https://redirect.github.com/getsentry/sentry-javascript/issues/14830))
-   feat(vue)!: Remove configuring Vue tracing options anywhere else other than through the `vueIntegration`'s `tracingOptions` option ([#&#8203;14856](https://redirect.github.com/getsentry/sentry-javascript/issues/14856))
-   feat(vue/nuxt)!: No longer create `"update"` spans for component tracking by default ([#&#8203;14602](https://redirect.github.com/getsentry/sentry-javascript/issues/14602))
-   fix(node)!: Fix name of `vercelAIIntegration` to `VercelAI` ([#&#8203;15298](https://redirect.github.com/getsentry/sentry-javascript/issues/15298))
-   fix(vue)!: Remove `logError` from `vueIntegration` ([#&#8203;14958](https://redirect.github.com/getsentry/sentry-javascript/issues/14958))
-   ref!: Don't polyfill optional chaining and nullish coalescing ([#&#8203;14603](https://redirect.github.com/getsentry/sentry-javascript/issues/14603))
-   ref(core)!: Cleanup internal types, including `ReportDialogOptions` ([#&#8203;14861](https://redirect.github.com/getsentry/sentry-javascript/issues/14861))
-   ref(core)!: Mark exceptions from `captureConsoleIntegration` as `handled: true` by default ([#&#8203;14734](https://redirect.github.com/getsentry/sentry-javascript/issues/14734))
-   ref(core)!: Move `shutdownTimeout` option type from core to node ([#&#8203;15217](https://redirect.github.com/getsentry/sentry-javascript/issues/15217))
-   ref(core)!: Remove `Scope` type interface in favor of using `Scope` class ([#&#8203;14721](https://redirect.github.com/getsentry/sentry-javascript/issues/14721))
-   ref(core)!: Remove backwards compatible SentryCarrier type ([#&#8203;14697](https://redirect.github.com/getsentry/sentry-javascript/issues/14697))

##### Other Changes

-   chore(browser): Export ipAddress helpers for use in other SDKs ([#&#8203;15079](https://redirect.github.com/getsentry/sentry-javascript/issues/15079))
-   deps(node): Bump `import-in-the-middle` to `1.12.0` ([#&#8203;14796](https://redirect.github.com/getsentry/sentry-javascript/issues/14796))
-   feat(aws): Rename AWS lambda layer name to `SentryNodeServerlessSDKv9` ([#&#8203;14927](https://redirect.github.com/getsentry/sentry-javascript/issues/14927))
-   feat(aws-serverless): Upgrade OTEL deps ([#&#8203;15091](https://redirect.github.com/getsentry/sentry-javascript/issues/15091))
-   feat(browser): Set `user.ip_address` explicitly to `{{auto}}` ([#&#8203;15008](https://redirect.github.com/getsentry/sentry-javascript/issues/15008))
-   feat(core): Add `inheritOrSampleWith` helper to `traceSampler` ([#&#8203;15277](https://redirect.github.com/getsentry/sentry-javascript/issues/15277))
-   feat(core): Emit client reports for unsampled root spans on span start ([#&#8203;14936](https://redirect.github.com/getsentry/sentry-javascript/issues/14936))
-   feat(core): Rename `hasTracingEnabled` to `hasSpansEnabled` ([#&#8203;15309](https://redirect.github.com/getsentry/sentry-javascript/issues/15309))
-   feat(core): Streamline `SpanJSON` type ([#&#8203;14693](https://redirect.github.com/getsentry/sentry-javascript/issues/14693))
-   feat(deno): Don't bundle `@sentry/deno` ([#&#8203;15014](https://redirect.github.com/getsentry/sentry-javascript/issues/15014))
-   feat(deno): Don't publish to `deno.land` ([#&#8203;15016](https://redirect.github.com/getsentry/sentry-javascript/issues/15016))
-   feat(deno): Stop inlining types from core ([#&#8203;14729](https://redirect.github.com/getsentry/sentry-javascript/issues/14729))
-   feat(deps): Bump [@&#8203;opentelemetry/instrumentation-amqplib](https://redirect.github.com/opentelemetry/instrumentation-amqplib) from 0.45.0 to 0.46.0 ([#&#8203;14835](https://redirect.github.com/getsentry/sentry-javascript/issues/14835))
-   feat(deps): Bump [@&#8203;opentelemetry/instrumentation-aws-lambda](https://redirect.github.com/opentelemetry/instrumentation-aws-lambda) from 0.49.0 to 0.50.0 ([#&#8203;14833](https://redirect.github.com/getsentry/sentry-javascript/issues/14833))
-   feat(deps): Bump [@&#8203;opentelemetry/instrumentation-express](https://redirect.github.com/opentelemetry/instrumentation-express) from 0.46.0 to 0.47.0 ([#&#8203;14834](https://redirect.github.com/getsentry/sentry-javascript/issues/14834))
-   feat(deps): Bump [@&#8203;opentelemetry/instrumentation-mysql2](https://redirect.github.com/opentelemetry/instrumentation-mysql2) from 0.44.0 to 0.45.0 ([#&#8203;14836](https://redirect.github.com/getsentry/sentry-javascript/issues/14836))
-   feat(deps): Bump [@&#8203;opentelemetry/propagation-utils](https://redirect.github.com/opentelemetry/propagation-utils) from 0.30.14 to 0.30.15 ([#&#8203;14832](https://redirect.github.com/getsentry/sentry-javascript/issues/14832))
-   feat(deps): bump [@&#8203;opentelemetry/context-async-hooks](https://redirect.github.com/opentelemetry/context-async-hooks) from 1.29.0 to 1.30.0 ([#&#8203;14869](https://redirect.github.com/getsentry/sentry-javascript/issues/14869))
-   feat(deps): bump [@&#8203;opentelemetry/instrumentation-generic-pool](https://redirect.github.com/opentelemetry/instrumentation-generic-pool) from 0.42.0 to 0.43.0 ([#&#8203;14870](https://redirect.github.com/getsentry/sentry-javascript/issues/14870))
-   feat(deps): bump [@&#8203;opentelemetry/instrumentation-knex](https://redirect.github.com/opentelemetry/instrumentation-knex) from 0.43.0 to 0.44.0 ([#&#8203;14872](https://redirect.github.com/getsentry/sentry-javascript/issues/14872))
-   feat(deps): bump [@&#8203;opentelemetry/instrumentation-mongodb](https://redirect.github.com/opentelemetry/instrumentation-mongodb) from 0.50.0 to 0.51.0 ([#&#8203;14871](https://redirect.github.com/getsentry/sentry-javascript/issues/14871))
-   feat(deps): bump [@&#8203;opentelemetry/instrumentation-tedious](https://redirect.github.com/opentelemetry/instrumentation-tedious) from 0.17.0 to 0.18.0 ([#&#8203;14868](https://redirect.github.com/getsentry/sentry-javascript/issues/14868))
-   feat(deps): bump [@&#8203;sentry/cli](https://redirect.github.com/sentry/cli) from 2.39.1 to 2.41.1 ([#&#8203;15173](https://redirect.github.com/getsentry/sentry-javascript/issues/15173))
-   feat(flags): Add Statsig browser integration ([#&#8203;15319](https://redirect.github.com/getsentry/sentry-javascript/issues/15319))
-   feat(gatsby): Preserve user-provided source map settings ([#&#8203;15006](https://redirect.github.com/getsentry/sentry-javascript/issues/15006))
-   feat(nestjs): Remove `SentryTracingInterceptor`, `SentryGlobalGraphQLFilter`, `SentryGlobalGenericFilter` ([#&#8203;14761](https://redirect.github.com/getsentry/sentry-javascript/issues/14761))
-   feat(nextjs): Directly forward `sourcemaps.disable` to webpack plugin ([#&#8203;15109](https://redirect.github.com/getsentry/sentry-javascript/issues/15109))
-   feat(node): Add `processSessionIntegration` ([#&#8203;15081](https://redirect.github.com/getsentry/sentry-javascript/issues/15081))
-   feat(node): Add missing `vercelAIIntegration` export ([#&#8203;15318](https://redirect.github.com/getsentry/sentry-javascript/issues/15318))
-   feat(node): Capture exceptions from `worker_threads` ([#&#8203;15105](https://redirect.github.com/getsentry/sentry-javascript/issues/15105))
-   feat(nuxt): Add enabled to disable Sentry module ([#&#8203;15337](https://redirect.github.com/getsentry/sentry-javascript/issues/15337))
-   feat(nuxt): add `silent`, `errorHandler`, `release` to `SourceMapsOptions` ([#&#8203;15246](https://redirect.github.com/getsentry/sentry-javascript/issues/15246))
-   feat(profiling-node): Use `@sentry-internal/node-cpu-profiler` ([#&#8203;15208](https://redirect.github.com/getsentry/sentry-javascript/issues/15208))
-   feat(replay): Update fflate to 0.8.2 ([#&#8203;14867](https://redirect.github.com/getsentry/sentry-javascript/issues/14867))
-   feat(solidstart): Add `autoInjectServerSentry: 'experimental_dynamic-import` ([#&#8203;14863](https://redirect.github.com/getsentry/sentry-javascript/issues/14863))
-   feat(sveltekit): Only inject fetch proxy script for SvelteKit < 2.16.0 ([#&#8203;15126](https://redirect.github.com/getsentry/sentry-javascript/issues/15126))
-   feat(user feedback): Adds draw tool for UF screenshot annotations ([#&#8203;15062](https://redirect.github.com/getsentry/sentry-javascript/issues/15062))
-   feat(user feedback): Adds toolbar for cropping and annotating ([#&#8203;15282](https://redirect.github.com/getsentry/sentry-javascript/issues/15282))
-   feat: Avoid class fields all-together ([#&#8203;14887](https://redirect.github.com/getsentry/sentry-javascript/issues/14887))
-   feat: Only emit `__esModule` properties in CJS modules when there is a default export ([#&#8203;15018](https://redirect.github.com/getsentry/sentry-javascript/issues/15018))
-   feat: Pass `parentSampleRate` to `tracesSampler` ([#&#8203;15024](https://redirect.github.com/getsentry/sentry-javascript/issues/15024))
-   feat: Propagate and use a sampling random ([#&#8203;14989](https://redirect.github.com/getsentry/sentry-javascript/issues/14989))
-   fix(browser): Remove `browserPerformanceTimeOrigin` side-effects ([#&#8203;14025](https://redirect.github.com/getsentry/sentry-javascript/issues/14025))
-   fix(core): Ensure debugIds are applied to all exceptions in an event ([#&#8203;14881](https://redirect.github.com/getsentry/sentry-javascript/issues/14881))
-   fix(core): Fork scope if custom scope is passed to `startSpanManual` ([#&#8203;14901](https://redirect.github.com/getsentry/sentry-javascript/issues/14901))
-   fix(core): Fork scope if custom scope is passed to `startSpan` ([#&#8203;14900](https://redirect.github.com/getsentry/sentry-javascript/issues/14900))
-   fix(core): Only fall back to `sendDefaultPii` for IP collection in `requestDataIntegration` ([#&#8203;15125](https://redirect.github.com/getsentry/sentry-javascript/issues/15125))
-   fix(nextjs): Flush with `waitUntil` in `captureRequestError` ([#&#8203;15146](https://redirect.github.com/getsentry/sentry-javascript/issues/15146))
-   fix(nextjs): Use batched devserver symbolication endpoint ([#&#8203;15335](https://redirect.github.com/getsentry/sentry-javascript/issues/15335))
-   fix(node): Don't leak `__span` property into breadcrumbs ([#&#8203;14798](https://redirect.github.com/getsentry/sentry-javascript/issues/14798))
-   fix(node): Ensure `httpIntegration` propagates traces ([#&#8203;15233](https://redirect.github.com/getsentry/sentry-javascript/issues/15233))
-   fix(node): Fix sample rand propagation for negative sampling decisions ([#&#8203;15045](https://redirect.github.com/getsentry/sentry-javascript/issues/15045))
-   fix(node): Missing `release` from ANR sessions ([#&#8203;15138](https://redirect.github.com/getsentry/sentry-javascript/issues/15138))
-   fix(node): Set the correct fallback URL fields for outgoing https requests if they are not defined ([#&#8203;15316](https://redirect.github.com/getsentry/sentry-javascript/issues/15316))
-   fix(nuxt): Detect Azure Function runtime for flushing with timeout ([#&#8203;15288](https://redirect.github.com/getsentry/sentry-javascript/issues/15288))
-   fix(react): From location can be undefined in Tanstack Router Instrumentation ([#&#8203;15235](https://redirect.github.com/getsentry/sentry-javascript/issues/15235))
-   fix(react): Import default for hoistNonReactStatics ([#&#8203;15238](https://redirect.github.com/getsentry/sentry-javascript/issues/15238))
-   fix(react): Support lazy-loaded routes and components. ([#&#8203;15039](https://redirect.github.com/getsentry/sentry-javascript/issues/15039))
-   fix(solidstart): Do not copy release-injection map file ([#&#8203;15302](https://redirect.github.com/getsentry/sentry-javascript/issues/15302))
-   ref(browser): Improve active span handling for `browserTracingIntegration` ([#&#8203;14959](https://redirect.github.com/getsentry/sentry-javascript/issues/14959))
-   ref(browser): Improve setting of propagation scope for navigation spans ([#&#8203;15108](https://redirect.github.com/getsentry/sentry-javascript/issues/15108))
-   ref(browser): Skip browser extension warning in non-debug builds ([#&#8203;15310](https://redirect.github.com/getsentry/sentry-javascript/issues/15310))
-   ref(browser): Update `supportsHistory` check & history usage ([#&#8203;14696](https://redirect.github.com/getsentry/sentry-javascript/issues/14696))
-   ref(core): Ensure non-recording root spans have frozen DSC ([#&#8203;14964](https://redirect.github.com/getsentry/sentry-javascript/issues/14964))
-   ref(core): Log debug message when capturing error events ([#&#8203;14701](https://redirect.github.com/getsentry/sentry-javascript/issues/14701))
-   ref(core): Move log message about invalid sample rate ([#&#8203;15215](https://redirect.github.com/getsentry/sentry-javascript/issues/15215))
-   ref(node): Streamline check for adding performance integrations ([#&#8203;15021](https://redirect.github.com/getsentry/sentry-javascript/issues/15021))
-   ref(react): Adapt tanstack router type ([#&#8203;15241](https://redirect.github.com/getsentry/sentry-javascript/issues/15241))
-   ref(svelte): Remove SvelteKit detection ([#&#8203;15313](https://redirect.github.com/getsentry/sentry-javascript/issues/15313))
-   ref(sveltekit): Clean up sub-request check ([#&#8203;15251](https://redirect.github.com/getsentry/sentry-javascript/issues/15251))

Work in this release was contributed by [@&#8203;aloisklink](https://redirect.github.com/aloisklink), [@&#8203;arturovt](https://redirect.github.com/arturovt), [@&#8203;aryanvdesh](https://redirect.github.com/aryanvdesh), [@&#8203;benjick](https://redirect.github.com/benjick), [@&#8203;chris-basebone](https://redirect.github.com/chris-basebone), [@&#8203;davidturissini](https://redirect.github.com/davidturissini), [@&#8203;GrizliK1988](https://redirect.github.com/GrizliK1988), [@&#8203;jahands](https://redirect.github.com/jahands), [@&#8203;jrandolf](https://redirect.github.com/jrandolf), [@&#8203;kunal-511](https://redirect.github.com/kunal-511), [@&#8203;maximepvrt](https://redirect.github.com/maximepvrt), [@&#8203;maxmaxme](https://redirect.github.com/maxmaxme), [@&#8203;mstrokin](https://redirect.github.com/mstrokin), [@&#8203;nathankleyn](https://redirect.github.com/nathankleyn), [@&#8203;nwalters512](https://redirect.github.com/nwalters512), [@&#8203;tannerlinsley](https://redirect.github.com/tannerlinsley), [@&#8203;tjhiggins](https://redirect.github.com/tjhiggins), and [@&#8203;Zen-cronic](https://redirect.github.com/Zen-cronic). Thank you for your contributions!

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNjQuMSIsInVwZGF0ZWRJblZlciI6IjM5LjE2NC4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-02-28 14:09:36 +00:00
akumatus
008fdfc234 feat(core): disable ai if value of sever copilot config is false (#10520)
Fix issue [AF-2224](https://linear.app/affine-design/issue/AF-2224).
2025-02-28 12:24:58 +00:00
fundon
caa4dfedfc fix(editor): adjust black and white in shape text color palettes to pure black and pure white (#10450)
Closes: [BS-2697](https://linear.app/affine-design/issue/BS-2697/检查shape-text-color黑白不映射的pr合并状态)

https://github.com/user-attachments/assets/732612e9-5e43-453f-aef2-5f32f5a08614
2025-02-27 06:05:42 +00:00
Saul-Mirone
2c79d7229f refactor(editor): remove legacy service watcher (#10455)
The main changes in this PR involve replacing the deprecated `BlockServiceWatcher` with the new `LifeCycleWatcher` across multiple files. Here's a detailed breakdown:

1. **Core Architectural Change:**
   - Removed `BlockServiceWatcher` class completely (deleted file)
   - Migrated to `LifeCycleWatcher` as the new standard for watching component lifecycle events

2. **Key Changes in Implementation:**
   - Changed from using `blockService.specSlots` events to using `view.viewUpdated` events
   - Replaced `flavour` static property with `key` static property
   - Updated event handling to use more specific payload type checking

3. **Major File Changes:**
   - Modified multiple block components:
     - Embed synced doc block
     - Frame preview
     - Edgeless root spec
     - AI-related components (code, image, paragraph, etc.)
     - Quick search service
     - Edgeless clipboard

4. **Pattern of Changes:**
   The migration follows a consistent pattern:
   ```typescript
   // Old pattern
   class SomeWatcher extends BlockServiceWatcher {
     static override readonly flavour = 'some:flavour';
     mounted() {
       this.blockService.specSlots.viewConnected.on(...)
     }
   }

   // New pattern
   class SomeWatcher extends LifeCycleWatcher {
     static override key = 'some-watcher';
     mounted() {
       const { view } = this.std;
       view.viewUpdated.on(payload => {
         if (payload.type !== 'block' || payload.method !== 'add') return;
         // Handle event
       });
     }
   }
   ```

5. **Benefits:**
   - More explicit and type-safe event handling
   - Cleaner architecture by removing deprecated code
   - More consistent approach to lifecycle management
   - Better separation of concerns

This appears to be a significant architectural improvement that modernizes the codebase by removing deprecated patterns and standardizing on a more robust lifecycle management system.
2025-02-26 15:15:45 +00:00
Saul-Mirone
ce87dcf58e feat(editor): schema extension (#10447)
1. **Major Architectural Change: Schema Management**
   - Moved from `workspace.schema` to `store.schema` throughout the codebase
   - Removed schema property from Workspace and Doc interfaces
   - Added `BlockSchemaExtension` pattern across multiple block types

2. **Block Schema Extensions Added**
   - Added new `BlockSchemaExtension` to numerous block types including:
     - DataView, Surface, Attachment, Bookmark, Code
     - Database, Divider, EdgelessText, Embed blocks (Figma, Github, HTML, etc.)
     - Frame, Image, Latex, List, Note, Paragraph
     - Root, Surface Reference, Table blocks

3. **Import/Export System Updates**
   - Updated import functions to accept `schema` parameter:
     - `importHTMLToDoc`
     - `importHTMLZip`
     - `importMarkdownToDoc`
     - `importMarkdownZip`
     - `importNotionZip`
   - Modified export functions to use new schema pattern

4. **Test Infrastructure Updates**
   - Updated test files to use new schema extensions
   - Modified test document creation to include schema extensions
   - Removed direct schema registration in favor of extensions

5. **Service Layer Changes**
   - Updated various services to use `getAFFiNEWorkspaceSchema()`
   - Modified transformer initialization to use document schema
   - Updated collection initialization patterns

6. **Version Management**
   - Removed version-related properties and methods from:
     - `WorkspaceMetaImpl`
     - `TestMeta`
     - `DocImpl`
   - Removed `blockVersions` and `workspaceVersion/pageVersion`

7. **Store and Extension Updates**
   - Added new store extensions and adapters
   - Updated store initialization patterns
   - Added new schema-related functionality in store extension

This PR represents a significant architectural shift in how schemas are managed, moving from a workspace-centric to a store-centric approach, while introducing a more extensible block schema system through `BlockSchemaExtension`. The changes touch multiple layers of the application including core functionality, services, testing infrastructure, and import/export capabilities.
2025-02-26 11:31:29 +00:00
donteatfriedrice
d63f16da5e fix(editor): affine preview root style (#10420)
Fix [BS-2677](https://linear.app/affine-design/issue/BS-2677/linked-doc-embed-view样式错误)

1. Only show the border of embed synced doc block (in note) when hover.
2. Fix affine preview root padding style, set padding only when affine preview root in embed synced doc block (in surface).
3. Only add the footnote config extension to the chat panel and chat block center peek. For footnotes in other page preview scenarios, such as footnote nodes within embed synced doc blocks or embed linked doc blocks, the hover effect should be maintained.
2025-02-26 04:25:24 +00:00
EYHN
26674b0cb8 fix(core): fallback when loading share page (#10428) 2025-02-25 07:35:58 +00:00
liuyi
e5e5c0a8ba perf(core): only full sync before exporting (#10408) 2025-02-25 04:41:56 +00:00
JimmFly
dee6be11fb fix(core): reorder plan card action button conditions (#10387) 2025-02-25 09:51:10 +08:00
JimmFly
abda70d2c8 fix(core): fix permission checks for export workspace (#10401) 2025-02-25 09:50:43 +08:00
Saul-Mirone
6289981fd1 refactor(editor): optimize extension register and effects (#10406)
Key Changes:

1. **Code Reorganization and Consolidation**
   - Created new centralized extension management through new files:
     - `enableEditorExtension` in `extensions/entry/enable-editor.ts`
     - `enablePreviewExtension` in `extensions/entry/enable-preview.ts`
   - Removed several spec-related files that are now consolidated:
     - Removed `specs/edgeless.ts`
     - Removed `specs/page.ts`
     - Removed `specs/preview.ts`

2. **Template Management**
   - Added new `register-templates.ts` file to handle template registration
   - Moved template registration logic from `specs/edgeless.ts` to this new file
   - Templates now include both edgeless and sticker templates

3. **Extension Management Changes**
   - Simplified extension enabling process through new centralized functions
   - `enableEditorExtension` now handles both page and edgeless modes
   - `enablePreviewExtension` consolidates preview-related extensions
   - Removed duplicate code for extension management

4. **Preview Functionality Updates**
   - Streamlined preview spec management
   - Consolidated footnote configuration
   - Improved theme and preview extension handling

5. **Dependencies and Effects**
   - Updated how effects are registered and managed
   - Simplified initialization process in `index.ts`
   - More organized approach to handling framework providers

The main theme of this PR appears to be code consolidation and simplification, moving from multiple specialized files to more centralized, reusable extension management. This should make the codebase more maintainable and reduce duplication while keeping the same functionality.

The changes primarily affect the editor's extension system, preview functionality, and template management, making these systems more modular and easier to maintain.
2025-02-24 10:37:59 +00:00
EYHN
0e581c915c feat(core): add resetSync button (#10404) 2025-02-24 10:22:34 +00:00
donteatfriedrice
1b2a4377fd feat(editor): update footnote node style and config (#10392)
[BS-2581](https://linear.app/affine-design/issue/BS-2581/优化-footnote-node-正文样式)
2025-02-24 08:15:04 +00:00
pengx17
5fe4b2b3e4 fix(core): remove tag page semicolon (#10379) 2025-02-24 03:14:06 +00:00
Saul-Mirone
eef2f004b8 refactor(editor): reorg blocksuite ai code (#10372)
### TL;DR

Relocated AI-related code from `presets` directory to a dedicated `ai` directory for better organization and maintainability.

### What changed?

- Moved AI-related code from `blocksuite/presets/ai` to `blocksuite/ai`
- Relocated AI chat block code from `blocksuite/blocks` to `blocksuite/ai/blocks`
- Updated imports across files to reflect new directory structure
- Renamed `registerBlocksuitePresetsCustomComponents` to `registerAIEffects`
- Fixed path references in GitHub workflow file

### How to test?

1. Build and run the application
2. Verify AI functionality works as expected:
   - Test AI chat blocks
   - Check AI panel functionality
   - Verify AI copilot features
   - Ensure AI-related UI components render correctly

### Why make this change?

This restructuring improves code organization by:
- Giving AI features a dedicated directory that better reflects their importance
- Making the codebase more maintainable by grouping related AI functionality
- Reducing confusion by removing AI code from the more general `presets` directory
- Creating clearer boundaries between AI and non-AI related code
2025-02-23 09:26:00 +00:00
Saul-Mirone
2cf9a8f286 refactor: reorganize specs and adapter extensions (#10359)
### 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
2025-02-21 14:25:35 +00:00
Peng Xiao
83669f8fbb fix(core): settings storage empty styles (#10313) 2025-02-21 17:19:53 +08:00
Peng Xiao
dff68b9aae fix(core): blocksuite editor runtime configs in correct timing (#10344) 2025-02-21 17:16:53 +08:00
Cats Juice
09cc5c392b refactor(core): new workspace selector and create dialog (#10323) 2025-02-21 17:16:38 +08:00
Saul-Mirone
22e4bd8c20 refactor: move image proxy middleware and adapter extensions (#10345)
### TL;DR
Moved image proxy middleware and adapter extensions to their respective packages and introduced a new spec provider for adapter registration.

### What changed?
- Relocated `defaultImageProxyMiddleware` from blocks to `@blocksuite/affine-block-image`
- Moved `PresentTool` from fragment-frame-panel to block-frame
- Created new adapter extension specs for HTML, Markdown, and Notion HTML
- Introduced a spec provider pattern for adapter registration
- Removed direct transformer references from RootService
- Updated imports across affected files to use new locations

### How to test?
1. Verify image proxy functionality works in exports and imports
2. Test HTML, Markdown, and Notion HTML adapters still function correctly
3. Confirm presentation mode works with the relocated PresentTool
4. Check that all file import/export operations continue to work as expected

### Why make this change?
This reorganization improves code modularity by placing features in their logical packages and introduces a more maintainable pattern for adapter registration. The spec provider pattern makes it easier to manage and extend adapter functionality while reducing coupling between components.
2025-02-21 09:01:57 +00:00
Saul-Mirone
adcc6b578c refactor(editor): move editor components to frontend core (#10335)
### TL;DR
Moved editor components from BlockSuite presets to AFFiNE core and updated imports accordingly.

### What changed?
- Relocated `EdgelessEditor` and `PageEditor` components from BlockSuite presets to AFFiNE core
- Removed basic editor examples from playground
- Updated import paths across the codebase to reference new component locations
- Added editor effects registration in AFFiNE core
- Removed editor exports from BlockSuite presets

### How to test?
1. Launch the application
2. Verify both page and edgeless editors load correctly
3. Confirm editor functionality remains intact including:
   - Document editing
   - Mode switching
   - Editor toolbars and controls
   - Multiple editor instances

### Why make this change?
This change better aligns with AFFiNE's architecture by moving editor components closer to where they are used. It reduces coupling with BlockSuite presets and gives AFFiNE more direct control over editor customization and implementation.
2025-02-21 04:28:54 +00:00
Saul-Mirone
b8dcb85007 refactor: move outline fragment to separate package (#10331)
### 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.
2025-02-20 15:59:13 +00:00
Saul-Mirone
5ac15f12e6 refactor: replace editor container with editor host (#10328)
### TL;DR
Refactored editor access to use `EditorHost` instead of `AffineEditorContainer` and updated mode access through `DocModeProvider`.

### What changed?
- Changed editor property types from `AffineEditorContainer` to `EditorHost` across multiple components
- Updated mode access to use `DocModeProvider` service instead of direct editor mode access
- Modified editor references to use `editor.host` where appropriate
- Updated scroll and highlight utilities to work with `EditorHost`

### How to test?
1. Open a document in both page and edgeless modes
2. Verify outline panel functionality works as expected
3. Test outline viewer navigation and highlighting
4. Confirm mobile outline menu operates correctly
5. Check that frame panel and TOC features work in all modes

### Why make this change?
This change improves architectural consistency by using `EditorHost` directly and accessing mode through the proper service provider. This makes the code more maintainable and follows better dependency practices by using the correct abstraction levels.
2025-02-20 14:20:32 +00:00
Saul-Mirone
007bbabce4 refactor: move frame manager and panel to separate packages (#10324)
### 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.
2025-02-20 13:06:40 +00:00
Saul-Mirone
1516903c77 refactor: move doc-title and ai-chat-block components (#10316)
### TL;DR
Moved doc title and AI chat block components to more appropriate locations while removing unused backlink functionality.

### What changed?
- Relocated doc title component from presets to affine-components
- Moved AI chat block from presets/blocks to blocks directory
- Removed unused backlink-related code and components
- Updated imports across files to reference new component locations
- Consolidated AI-related exports through a single entry point

### How to test?
1. Verify doc title still renders correctly in documents
2. Confirm AI chat functionality works as expected
3. Check that no backlink-related features are accessible
4. Ensure all AI features continue to work through the new import paths

### Why make this change?
This reorganization improves code organization by:
- Placing components closer to their related functionality
- Removing dead/unused code around backlinks
- Simplifying the import structure for AI-related features
- Making the codebase more maintainable by consolidating related components
2025-02-20 10:45:47 +00:00
JimmFly
1d339c682b fix(core): adjust share menu and upgrade-to-team page style (#10299)
close PD-2330 PD-2331 AF-2238
2025-02-20 04:10:52 +00:00
JimmFly
b456feee63 fix(core): unexpected redirect to expired page after accepting invitation (#10257)
Co-authored-by: EYHN <cneyhn@gmail.com>
2025-02-19 09:10:12 +00:00
JimmFly
751f229e30 fix(core): unexpectedly jump to price plan when selfhosting (#10247) 2025-02-19 07:01:54 +00:00