Saul-Mirone
fa5674166e
refactor(editor): cleanup list icons ( #10608 )
2025-03-04 10:13:01 +00:00
donteatfriedrice
40351295c9
fix(editor): should not select or open latex editor when readonly ( #10601 )
2025-03-04 07:27:58 +00:00
Saul-Mirone
22924c767c
fix(editor): onChange notification for flat model ( #10589 )
...
The primary purpose of this PR appears to be:
1. Simplifying the change notification API by removing the redundant value parameter from callbacks
2. Improving the reactive system's handling of specialized types (Text and Boxed) in flat data
3. Adding better test coverage for text handling in the flat data model
2025-03-04 05:57:06 +00:00
doodlewind
c418e89fb9
chore(editor): add feature flag entry for testing turbo renderer ( #10581 )
...
The debug pane will be displayed once the `enable_turbo_renderer` feature flag is enabled.

2025-03-04 05:38:44 +00:00
doouding
1c29d0e269
feat: optimize edgeless alignment ( #10435 )
...
### Changed
- alignment line style
- threshold of snapping
- optimize alignment checking performance
2025-03-04 03:03:31 +00:00
pengx17
8e5d7858c4
fix(core): only enable attachment preview for pdf ( #10584 )
2025-03-03 11:07:13 +00:00
L-Sun
37fbfbcf3e
fix(editor): zindex of frame child not updated ( #10580 )
...
Close [BS-2689](https://linear.app/affine-design/issue/BS-2689/[bug]-%E5%BD%93%E5%B1%82%E7%BA%A7%E4%BD%8E%E4%BA%8E-frame-%E7%9A%84yuan%E7%B4%A0%E8%A2%AB%E6%8B%96%E5%85%A5-frame-%E6%97%B6%E5%B1%82%E7%BA%A7%E5%BA%94%E8%AF%A5%E8%A2%AB%E8%87%AA%E5%8A%A8%E6%8B%89%E9%AB%98%E5%B5%8C%E5%85%A5-frame )
2025-03-03 10:51:27 +00:00
Saul-Mirone
4c3c953a36
chore(editor): merge clamp functions ( #10577 )
...
Closes: [BS-2625](https://linear.app/affine-design/issue/BS-2625/合并clamp函数 )
2025-03-03 10:33:38 +00:00
L-Sun
2cd83be621
fix(editor): code block toolbar float offset ( #10579 )
...
Close [BS-2736](https://linear.app/affine-design/issue/BS-2736/代码块工具栏偏移太大 ), [BS-1974](https://linear.app/affine-design/issue/BS-1974/code-block-浮标歪 )
## Before
https://github.com/user-attachments/assets/f4ec4d7d-8c18-43ea-9464-c18e8b8dce60
https://github.com/user-attachments/assets/76f89ce6-bd89-49d6-a987-e9e5d5f9842a
### After
https://github.com/user-attachments/assets/dac919b9-d19c-4fb3-99bf-be02a460ad8c
https://github.com/user-attachments/assets/e5329f84-f1cf-4776-a789-8d12bea17ece
2025-03-03 09:56:13 +00:00
Flrande
5d3c365d97
fix(editor): format text in code block ( #10575 )
...
Closes: [BS-2724](https://linear.app/affine-design/issue/BS-2724/code-block%E9%87%8C%E4%B8%8D%E5%BA%94%E8%AF%A5%E6%98%BE%E7%A4%BAtoolbar )
2025-03-03 08:52:38 +00:00
doodlewind
86c449319b
chore(editor): remove redundant fields in viewport ( #10569 )
2025-03-03 07:49:08 +00:00
Saul-Mirone
a587abca85
feat(editor): add block meta service ( #10561 )
2025-03-03 06:13:06 +00:00
zzj3720
3711e13e0e
fix(editor): database block create new row when group by rich-text ( #10564 )
2025-03-03 05:58:07 +00:00
Saul-Mirone
4eae3cc66a
feat(editor): add user list services ( #10555 )
2025-03-03 03:15:00 +00:00
doodlewind
bd1b26a230
feat(editor): support zooming placeholder in turbo renderer ( #10504 )
...
[Screen Recording 2025-02-28 at 4.32.20 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/6c08b827-8428-42f3-aa7a-a2366756bd16.mov " />](https://app.graphite.dev/media/video/lEGcysB4lFTEbCwZ8jMv/6c08b827-8428-42f3-aa7a-a2366756bd16.mov )
This prevents painting task backlog during zooming by adding a fast placeholder painter, with a `zooming` state in renderer state machine.
2025-03-03 02:07:46 +00:00
Saul-Mirone
fdde818ddd
feat(editor): add block meta feature flag ( #10548 )
2025-03-03 01:45:33 +00:00
Saul-Mirone
f23f29610c
refactor(editor): remove stable feature flags ( #10547 )
2025-03-02 08:41:12 +00:00
Saul-Mirone
6353e72078
feat(editor): add embed option config extension ( #10540 )
...
This PR implements a significant refactoring of the embed block services across multiple components (Figma, GitHub, Loom, and YouTube) in the BlockSuite codebase. Here are the key changes:
1. **Architecture Change**:
- Moves from a dynamic registration pattern to a more declarative configuration approach
- Replaces `EmbedOptionProvider.registerEmbedBlockOptions()` calls with a new `EmbedOptionConfig` factory function
2. **Service Refactoring**:
- For each embed block type (Figma, GitHub, Loom, YouTube):
- Separates configuration from service logic
- Creates new `EmbedBlockOptionConfig` constants using the new `EmbedOptionConfig` factory
- Removes the `mounted()` lifecycle hook from services where it was only used for registration
3. **Core Changes**:
- In `embed-option-service.ts`:
- Introduces new `EmbedOptionConfigIdentifier` for dependency injection
- Adds `EmbedOptionConfig` factory function for creating embed configurations
- Updates `EmbedOptionService` constructor to automatically register configurations
- Modifies DI setup to include `StdIdentifier` dependency
4. **Spec Updates**:
- Updates all block specs to include the new configuration objects
- Maintains existing functionality while using the new pattern
The main benefit of this refactoring is:
- More declarative configuration approach
- Better separation of concerns
- Reduced runtime registration code
- More predictable initialization of embed options
2025-03-01 16:40:18 +00:00
Saul-Mirone
7527d36547
feat: prevent cycle emit in slot ( #10539 )
2025-03-01 08:10:41 +00:00
renovate
b05315c6fa
chore: bump up shiki version to v3 ( #10534 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [shiki](https://redirect.github.com/shikijs/shiki ) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki )) | [`^2.0.0` -> `^3.0.0`](https://renovatebot.com/diffs/npm/shiki/2.5.0/3.1.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>shikijs/shiki (shiki)</summary>
### [`v3.1.0`](https://redirect.github.com/shikijs/shiki/releases/tag/v3.1.0 )
[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v3.0.0...v3.1.0 )
##### 🚀 Features
- **engine-js**: Bump deps to work around Safari bug with some grammars - by [@​slevithan](https://redirect.github.com/slevithan ) in [https://github.com/shikijs/shiki/issues/941 ](https://redirect.github.com/shikijs/shiki/issues/941 ) [<samp>(47205)</samp>](https://redirect.github.com/shikijs/shiki/commit/4720501b )
- **twoslash**: Upgrade twoslash v0.3, require typescript v5.5+, close [#​950](https://redirect.github.com/shikijs/shiki/issues/950 ), close [#​951](https://redirect.github.com/shikijs/shiki/issues/951 ) - by [@​antfu](https://redirect.github.com/antfu ) in [https://github.com/shikijs/shiki/issues/950 ](https://redirect.github.com/shikijs/shiki/issues/950 ) and [https://github.com/shikijs/shiki/issues/951 ](https://redirect.github.com/shikijs/shiki/issues/951 ) [<samp>(5c6f9)</samp>](https://redirect.github.com/shikijs/shiki/commit/5c6f9e92 )
##### 🐞 Bug Fixes
- **monaco**: Handle missing settings in textmate theme func - by [@​felipetodev](https://redirect.github.com/felipetodev ) in [https://github.com/shikijs/shiki/issues/939 ](https://redirect.github.com/shikijs/shiki/issues/939 ) [<samp>(19f75)</samp>](https://redirect.github.com/shikijs/shiki/commit/19f75f66 )
##### [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v3.0.0...v3.1.0 )
### [`v3.0.0`](https://redirect.github.com/shikijs/shiki/releases/tag/v3.0.0 )
[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v2.5.0...v3.0.0 )
##### 🚨 Breaking Changes
- Remove deprecated apis for v3.0 - by [@​antfu](https://redirect.github.com/antfu ) in [https://github.com/shikijs/shiki/issues/900 ](https://redirect.github.com/shikijs/shiki/issues/900 ) [<samp>(55c15)</samp>](https://redirect.github.com/shikijs/shiki/commit/55c1554b )
- Remove `node10` typescript resolution support - by [@​userquin](https://redirect.github.com/userquin ) in [https://github.com/shikijs/shiki/issues/923 ](https://redirect.github.com/shikijs/shiki/issues/923 ) [<samp>(ccb58)</samp>](https://redirect.github.com/shikijs/shiki/commit/ccb5856b )
- **twoslash**: Make default `moduleResolution` to `bundler` - by [@​antfu](https://redirect.github.com/antfu ) in [https://github.com/shikijs/shiki/issues/936 ](https://redirect.github.com/shikijs/shiki/issues/936 ) [<samp>(e924d)</samp>](https://redirect.github.com/shikijs/shiki/commit/e924d4b1 )
##### 🐞 Bug Fixes
- **transformers**:
- Also remove extra newline token, fix [#​915](https://redirect.github.com/shikijs/shiki/issues/915 ) - by [@​antfu](https://redirect.github.com/antfu ) in [https://github.com/shikijs/shiki/issues/915 ](https://redirect.github.com/shikijs/shiki/issues/915 ) [<samp>(cc591)</samp>](https://redirect.github.com/shikijs/shiki/commit/cc5913eb )
- Support matching comments in comments, fix [#​934](https://redirect.github.com/shikijs/shiki/issues/934 ) - by [@​antfu](https://redirect.github.com/antfu ) in [https://github.com/shikijs/shiki/issues/934 ](https://redirect.github.com/shikijs/shiki/issues/934 ) [<samp>(6efc8)</samp>](https://redirect.github.com/shikijs/shiki/commit/6efc8979 )
- Fix matching indices for word-highlight - by [@​artt](https://redirect.github.com/artt ) in [https://github.com/shikijs/shiki/issues/909 ](https://redirect.github.com/shikijs/shiki/issues/909 ) [<samp>(57a09)</samp>](https://redirect.github.com/shikijs/shiki/commit/57a09ade )
##### [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v2.5.0...v3.0.0 )
</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==-->
2025-03-01 02:33:49 +00:00
L-Sun
61541a2d15
fix(editor): patch android backspace key binding with beforeInput ( #10523 )
...
Close [BS-1869](https://linear.app/affine-design/issue/BS-1869/[bug]-android-chrome-%E8%BE%93%E5%85%A5%E9%94%99%E8%AF%AF )
## Problem
On Android devices, keyboard events do not properly capture key information, causing the backspace key and other keyboard functionalities to malfunction. This is due to the specific behavior of Android platform, as discussed in:
- https://stackoverflow.com/a/68188679
- https://stackoverflow.com/a/66724830
## Solution
1. Added special handling for Android platform in `KeyboardControl` class by using `beforeInput` event instead of `keyDown` event
2. Implemented `androidBindKeymapPatch` function to handle special key events on Android platform
3. Updated event handling logic in related components, including:
- CodeBlock
- ListKeymap
- ParagraphKeymap
- PageKeyboardManager
## Changes
- Added `androidBindKeymapPatch` function for handling key events on Android platform
- Modified `KeyboardControl.bindHotkey` method to add `beforeInput` event handling for Android
- Unified event object access using `ctx.get('defaultState').event` instead of `keyboardState.raw`
- Updated key event handling logic in multiple components
## Before
https://github.com/user-attachments/assets/e8602de4-d584-4adf-816f-369f38312022
## After
https://github.com/user-attachments/assets/f9e1680e-28ff-4d52-bdab-7683cdcb6f82
2025-02-28 13:03:00 +00:00
zzj3720
5c5c9f8dcd
fix(editor): insertion position of new rows and columns is incorrect in table block ( #10516 )
...
fix: BS-2714
2025-02-28 12:06:28 +00:00
doodlewind
12acf7e4a0
fix(editor): range IndexSizeError on firefox ( #10519 )
...
This is a Firefox compat issue, I've manually confirmed this implementation works in latest Firefox build.
2025-02-28 11:50:56 +00:00
doodlewind
22191caa82
fix(editor): safari compat for lit host ( #10514 )
...
Fixed this white screen crash on mobile safari:
<img src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/lEGcysB4lFTEbCwZ8jMv/00bffd51-8e06-4d37-88d4-6f5020cd503d.png " width="500">
2025-02-28 10:26:59 +00:00
renovate
27518e1fb1
chore: bump up all non-major dependencies ( #10363 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@aws-sdk/client-s3](https://redirect.github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3 ) ([source](https://redirect.github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3 )) | [`3.750.0` -> `3.758.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.750.0/3.758.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/ ) | dependencies | minor |
| [@capgo/inappbrowser](https://redirect.github.com/Cap-go/capacitor-inappbrowser ) | [`7.2.16` -> `7.2.18`](https://renovatebot.com/diffs/npm/@capgo%2finappbrowser/7.2.16/7.2.18 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@chromatic-com/storybook](https://redirect.github.com/chromaui/addon-visual-tests ) | [`3.2.4` -> `3.2.5`](https://renovatebot.com/diffs/npm/@chromatic-com%2fstorybook/3.2.4/3.2.5 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@electron-forge/cli](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fcli/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/core](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fcore/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/core-utils](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fcore-utils/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/maker-deb](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fmaker-deb/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/maker-dmg](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fmaker-dmg/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/maker-flatpak](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fmaker-flatpak/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/maker-squirrel](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fmaker-squirrel/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/maker-zip](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fmaker-zip/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/plugin-auto-unpack-natives](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fplugin-auto-unpack-natives/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@electron-forge/shared-types](https://redirect.github.com/electron/forge ) | [`7.6.1` -> `7.7.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fshared-types/7.6.1/7.7.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/ ) | devDependencies | minor |
| [@eslint/js](https://eslint.org ) ([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js )) | [`9.20.0` -> `9.21.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.20.0/9.21.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/ ) | devDependencies | minor |
| [@google/generative-ai](https://redirect.github.com/google/generative-ai-js ) | [`^0.21.0` -> `^0.22.0`](https://renovatebot.com/diffs/npm/@google%2fgenerative-ai/0.21.0/0.22.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/ ) | dependencies | minor |
| [@graphql-codegen/typescript](https://redirect.github.com/dotansimha/graphql-code-generator ) ([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/typescript )) | [`4.1.3` -> `4.1.5`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript/4.1.3/4.1.5 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@graphql-codegen/typescript-operations](https://redirect.github.com/dotansimha/graphql-code-generator ) ([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/operations )) | [`4.4.1` -> `4.5.1`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-operations/4.4.1/4.5.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@opentelemetry/instrumentation-graphql](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-graphql#readme ) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib )) | [`0.47.0` -> `0.47.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-graphql/0.47.0/0.47.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@opentelemetry/instrumentation-ioredis](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-ioredis#readme ) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib )) | [`0.47.0` -> `0.47.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-ioredis/0.47.0/0.47.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@opentelemetry/instrumentation-nestjs-core](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-nestjs-core#readme ) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib )) | [`0.44.0` -> `0.44.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-nestjs-core/0.44.0/0.44.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@opentelemetry/instrumentation-socket.io](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/instrumentation-socket.io#readme ) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib )) | [`0.46.0` -> `0.46.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-socket.io/0.46.0/0.46.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@sentry/esbuild-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/esbuild-plugin ) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins )) | [`3.1.2` -> `3.2.1`](https://renovatebot.com/diffs/npm/@sentry%2fesbuild-plugin/3.1.2/3.2.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@sentry/webpack-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/webpack-plugin ) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins )) | [`3.1.2` -> `3.2.1`](https://renovatebot.com/diffs/npm/@sentry%2fwebpack-plugin/3.1.2/3.2.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [@storybook/addon-essentials](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/essentials ) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials )) | [`8.5.6` -> `8.6.2`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.5.6/8.6.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@storybook/addon-interactions](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/interactions ) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions )) | [`8.5.6` -> `8.6.2`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.5.6/8.6.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@storybook/addon-links](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/links ) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/links )) | [`8.5.6` -> `8.6.2`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.5.6/8.6.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@storybook/addon-mdx-gfm](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/gfm ) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/gfm )) | [`8.5.6` -> `8.6.2`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.5.6/8.6.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@storybook/react](https://redirect.github.com/storybookjs/storybook/tree/next/code/renderers/react ) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/renderers/react )) | [`8.5.6` -> `8.6.2`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.5.6/8.6.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@storybook/react-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/frameworks/react-vite ) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite )) | [`8.5.6` -> `8.6.2`](https://renovatebot.com/diffs/npm/@storybook%2freact-vite/8.5.6/8.6.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@swc/core](https://swc.rs ) ([source](https://redirect.github.com/swc-project/swc )) | [`1.10.17` -> `1.11.4`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.10.17/1.11.4 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@tailwindcss/postcss](https://tailwindcss.com ) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss )) | [`4.0.6` -> `4.0.9`](https://renovatebot.com/diffs/npm/@tailwindcss%2fpostcss/4.0.6/4.0.9 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@tailwindcss/vite](https://tailwindcss.com ) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite )) | [`4.0.6` -> `4.0.9`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.0.6/4.0.9 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node ) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node )) | [`22.13.4` -> `22.13.5`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.4/22.13.5 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node ) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node )) | [`22.13.4` -> `22.13.5`](https://renovatebot.com/diffs/npm/@types%2fnode/22.13.4/22.13.5 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@types/sinon](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/sinon ) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sinon )) | [`17.0.3` -> `17.0.4`](https://renovatebot.com/diffs/npm/@types%2fsinon/17.0.3/17.0.4 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@vitest/browser](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/browser#readme ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser )) | [`3.0.6` -> `3.0.7`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.0.6/3.0.7 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@vitest/coverage-istanbul](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul )) | [`3.0.6` -> `3.0.7`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.0.6/3.0.7 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui )) | [`3.0.6` -> `3.0.7`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.6/3.0.7 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [anyhow](https://redirect.github.com/dtolnay/anyhow ) | `1.0.95` -> `1.0.96` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [apollographql/apollo-ios](https://redirect.github.com/apollographql/apollo-ios ) | `from: "1.17.0"` -> `from: "1.18.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/ ) | | minor |
| [apollographql/apollo-ios](https://redirect.github.com/apollographql/apollo-ios ) | `1.17.0` -> `1.18.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/ ) | | minor |
| [bullmq](https://bullmq.io/ ) ([source](https://redirect.github.com/taskforcesh/bullmq )) | [`5.41.2` -> `5.41.7`](https://renovatebot.com/diffs/npm/bullmq/5.41.2/5.41.7 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [cc](https://redirect.github.com/rust-lang/cc-rs ) | `1.2.12` -> `1.2.15` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | build-dependencies | patch |
| [chrono](https://redirect.github.com/chronotope/chrono ) | `0.4.39` -> `0.4.40` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [electron](https://redirect.github.com/electron/electron ) | [`34.2.0` -> `34.3.0`](https://renovatebot.com/diffs/npm/electron/34.2.0/34.3.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/ ) | devDependencies | minor |
| [fast-xml-parser](https://redirect.github.com/NaturalIntelligence/fast-xml-parser ) | [`4.5.2` -> `4.5.3`](https://renovatebot.com/diffs/npm/fast-xml-parser/4.5.2/4.5.3 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [file-type](https://redirect.github.com/sindresorhus/file-type ) | [`20.1.0` -> `20.4.0`](https://renovatebot.com/diffs/npm/file-type/20.1.0/20.4.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/ ) | dependencies | minor |
| [gradle](https://gradle.org ) ([source](https://redirect.github.com/gradle/gradle )) | `8.12.1` -> `8.13` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | | minor |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom ) | [`17.1.0` -> `17.1.8`](https://renovatebot.com/diffs/npm/happy-dom/17.1.0/17.1.8 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [html-validate](https://html-validate.org ) ([source](https://gitlab.com/html-validate/html-validate )) | [`9.3.0` -> `9.4.1`](https://renovatebot.com/diffs/npm/html-validate/9.3.0/9.4.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [libc](https://redirect.github.com/rust-lang/libc ) | `0.2.169` -> `0.2.170` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [lucide-react](https://lucide.dev ) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react )) | [`^0.475.0` -> `^0.476.0`](https://renovatebot.com/diffs/npm/lucide-react/0.475.0/0.476.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/ ) | dependencies | minor |
| [msw](https://mswjs.io ) ([source](https://redirect.github.com/mswjs/msw )) | [`2.7.0` -> `2.7.3`](https://renovatebot.com/diffs/npm/msw/2.7.0/2.7.3 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [nanoid](https://redirect.github.com/ai/nanoid ) | [`5.1.0` -> `5.1.2`](https://renovatebot.com/diffs/npm/nanoid/5.1.0/5.1.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [nanoid](https://redirect.github.com/ai/nanoid ) | [`5.1.0` -> `5.1.2`](https://renovatebot.com/diffs/npm/nanoid/5.1.0/5.1.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [openai](https://redirect.github.com/openai/openai-node ) | [`4.85.1` -> `4.86.1`](https://renovatebot.com/diffs/npm/openai/4.85.1/4.86.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [postcss](https://postcss.org/ ) ([source](https://redirect.github.com/postcss/postcss )) | [`8.5.2` -> `8.5.3`](https://renovatebot.com/diffs/npm/postcss/8.5.2/8.5.3 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [prettier](https://prettier.io ) ([source](https://redirect.github.com/prettier/prettier )) | [`3.5.1` -> `3.5.2`](https://renovatebot.com/diffs/npm/prettier/3.5.1/3.5.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [prettier](https://prettier.io ) ([source](https://redirect.github.com/prettier/prettier )) | [`3.5.1` -> `3.5.2`](https://renovatebot.com/diffs/npm/prettier/3.5.1/3.5.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [react-markdown](https://redirect.github.com/remarkjs/react-markdown ) | [`9.0.3` -> `9.1.0`](https://renovatebot.com/diffs/npm/react-markdown/9.0.3/9.1.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/ ) | dependencies | minor |
| [react-router-dom](https://redirect.github.com/remix-run/react-router ) ([source](https://redirect.github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom )) | [`6.29.0` -> `6.30.0`](https://renovatebot.com/diffs/npm/react-router-dom/6.29.0/6.30.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/ ) | dependencies | minor |
| [rxjs](https://rxjs.dev ) ([source](https://redirect.github.com/reactivex/rxjs )) | [`7.8.1` -> `7.8.2`](https://renovatebot.com/diffs/npm/rxjs/7.8.1/7.8.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [rxjs](https://rxjs.dev ) ([source](https://redirect.github.com/reactivex/rxjs )) | [`7.8.1` -> `7.8.2`](https://renovatebot.com/diffs/npm/rxjs/7.8.1/7.8.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [serde](https://serde.rs ) ([source](https://redirect.github.com/serde-rs/serde )) | `1.0.217` -> `1.0.218` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [serde_json](https://redirect.github.com/serde-rs/json ) | `1.0.138` -> `1.0.139` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [serde_json](https://redirect.github.com/serde-rs/json ) | `1.0.138` -> `1.0.139` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [shadcn-ui](https://redirect.github.com/shadcn/ui ) ([source](https://redirect.github.com/shadcn/ui/tree/HEAD/packages/cli )) | [`0.9.4` -> `0.9.5`](https://renovatebot.com/diffs/npm/shadcn-ui/0.9.4/0.9.5 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [storybook](https://redirect.github.com/storybookjs/storybook/tree/next/code/lib/cli ) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/cli )) | [`8.5.6` -> `8.6.2`](https://renovatebot.com/diffs/npm/storybook/8.5.6/8.6.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [stripe](https://redirect.github.com/stripe/stripe-node ) | [`17.6.0` -> `17.7.0`](https://renovatebot.com/diffs/npm/stripe/17.6.0/17.7.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/ ) | dependencies | minor |
| [strum_macros](https://redirect.github.com/Peternator7/strum ) | `0.26.2` -> `0.27.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [!
2025-02-28 09:07:27 +00:00
L-Sun
d476d3b1df
fix(editor): android keyboard can not be opened ( #10502 )
...
Close [BS-2674](https://linear.app/affine-design/issue/BS-2674/[android]-%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%8C%BA%E5%9F%9F%E7%82%B9%E5%87%BB%E5%90%8E%E6%97%A0%E6%B3%95%E6%BF%80%E6%B4%BB%E9%94%AE%E7%9B%98 ) [BS-2609](https://linear.app/affine-design/issue/BS-2609/[android]-%E8%BE%93%E5%85%A5%E7%9A%84-toolbar-%E6%B2%A1%E6%9C%89%E4%BA%86 )
2025-02-28 08:23:26 +00:00
doodlewind
f1df774188
fix(editor): invalidate turbo renderer on selection update ( #10499 )
2025-02-28 08:08:28 +00:00
L-Sun
90b37ce65c
fix(core): editor blur unexpectedly when clicking blank area ( #10501 )
...
### Before
https://github.com/user-attachments/assets/3c4b20e1-6d89-4dc7-a51f-04b6e9a89486
### After
https://github.com/user-attachments/assets/86b93403-597e-4dbb-ab65-90908342c230
2025-02-28 07:05:06 +00:00
Saul-Mirone
e90c00c3b7
refactor(editor): perf optimization of flat data ( #10494 )
...
The new code should be more efficient as it:
- Avoids unnecessary iterations when objects aren't empty
- Has clearer path management
- Reduces redundant object traversals
2025-02-28 04:51:54 +00:00
Saul-Mirone
1d865ad883
test(editor): collab table test ( #10506 )
...
1. **Table UI Enhancements - Test IDs Added**
- Added `data-testid` attributes to several table components for better testability:
- `add-column-button` for the column addition button
- `add-row-button` for the row addition button
- `drag-column-handle` for column drag handles
- `drag-row-handle` for row drag handles
2. **New Test Infrastructure**
- Added new testing utilities in `tests/kit/src/bs/`:
- `misc.ts`: Added `waitNextFrame` utility function for handling animation frame timing in tests
- `table.ts`: Added comprehensive table testing utilities including:
- `createTable`: Creates a new table with initial cells
- `getCellText`: Retrieves text from a specific table cell
- `inputToCell`: Inputs text into a specific table cell
- `clickDeleteButtonInTableMenu`: Handles table deletion operations
3. **New Collaboration Test**
- Added a new test file `tests/affine-local/e2e/blocksuite/table/collab.spec.ts` that tests table collaboration features:
- Tests synchronization between two pages (A and B)
- Verifies table operations sync correctly:
- Adding columns and rows
- Inputting cell content
- Deleting columns and rows
- Validates cell content consistency across both pages
- Tests the complete table manipulation workflow in a collaborative setting
4. **Package Configuration Update**
- Modified `tests/kit/package.json` to expose new test utilities:
- Added new export mapping: `"./bs/*": "./src/bs/*.ts"` to make the new table testing utilities accessible
This PR primarily focuses on improving table testing infrastructure and adding comprehensive collaboration tests for the table functionality, while also enhancing component testability through data-test-ids.
2025-02-28 04:37:12 +00:00
pengx17
cd0bec5d31
fix(core): at menu ux ( #10485 )
...
fix AF-2285
1. loading icon will be rendered to the group name
2. make the focused item more stable
2025-02-28 02:34:29 +00:00
Saul-Mirone
b19c1df43e
fix: table collab ( #10489 )
...
[Screen Recording 2025-02-27 at 20.24.15.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/EUhyG5TOGVlHZ0Suk1wH/b3ac681f-a14d-483a-820c-53c584f0fb44.mov " />](https://app.graphite.dev/media/video/EUhyG5TOGVlHZ0Suk1wH/b3ac681f-a14d-483a-820c-53c584f0fb44.mov )
2025-02-27 12:37:57 +00:00
L-Sun
b995b4f965
chore(editor): update page block telemetry ( #10487 )
...
Close [BS-2711](https://linear.app/affine-design/issue/BS-2711/page-block埋点更新 )
2025-02-27 09:58:58 +00:00
Saul-Mirone
4c736bc190
feat(editor): type safe draft model and transformer ( #10486 )
2025-02-27 09:19:49 +00:00
Saul-Mirone
d57ef5c5b3
fix(editor): transform to draftmodel first when get snapshot ( #10477 )
2025-02-27 07:52:18 +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
zzj3720
18dfad28d7
fix(editor): toDraftModal supports flat data structures ( #10466 )
...
fix: PD-2374
fix: BS-2703
2025-02-27 05:16:10 +00:00
doodlewind
8cec22cc64
fix(editor): handle resize in turbo renderer ( #10465 )
2025-02-27 04:18:37 +00:00
Yifeng Wang
e9484e8e15
refactor(editor): remove non null asserts in turbo renderer ( #10454 )
2025-02-27 10:47:26 +08:00
doodlewind
3252dd7a31
feat(editor): automatically hide canvas optimized blocks ( #10451 )
...
Qualified DOM blocks can now be optimized away automatically.
<img alt="image.png" width="500" src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/lEGcysB4lFTEbCwZ8jMv/102bf813-154a-4816-9eb0-2c9c0ce01fe7.png ">
Since this is under development, verifying state correctness is more important than rendering details.
This won't affect current production version since the passive APIs added to `GfxViewportElement` are disabled by the `enableOptimization = false` config.
2025-02-27 02:10:49 +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
fd6d96a38e
refactor(editor): use transformer from store when possible ( #10453 )
2025-02-26 14:15:04 +00:00
Saul-Mirone
1c5e360d7e
feat(editor): add widget in viewUpdated slot ( #10452 )
2025-02-26 13:24:32 +00:00
doodlewind
589622043c
fix(editor): list toggle position offset ( #10448 )
...
Before:

After:
<img width="579" alt="image" src="https://github.com/user-attachments/assets/7b049b53-269b-484e-ba76-fa6f46a2004c " />
This centering approach won't affect heading blocks:
<img width="267" alt="image" src="https://github.com/user-attachments/assets/3f3217e3-7e23-43fc-a7e5-33b6eadccc88 " />
2025-02-26 12:09:00 +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
L-Sun
2732b96d00
fix(editor): overflow of embed github card in edgeless note ( #10442 )
...
This PR fixes the overflow of the `embed-github-card` inside edgeless notes.
https://github.com/user-attachments/assets/21775d0f-e4c8-4fcc-86d8-aafb27033358
2025-02-26 09:33:57 +00:00
doodlewind
0f8c837fbe
refactor(editor): simplify renderer state ( #10441 )
...
The redundant `monitoring` state has been removed. The new `ready` state is used for querying if DOM elements can be safely optimized away.
2025-02-26 08:39:58 +00:00
CatsJuice
e1fd8f5d80
fix(core): correctly toggle visibility of starter-bar based on doc.isEmpty ( #10439 )
2025-02-26 07:49:51 +00:00
doodlewind
e38e59d4e5
refactor(editor): request refresh after finding stale bitmap ( #10438 )
...
This ensures a bitmap will be eventually generated after tile got invalidated.
2025-02-26 06:49:09 +00:00
zzj3720
1a9bfeaa2c
fix(editor): table block supports parsing rich text ( #10430 )
...
fix: BS-2685
2025-02-26 04:56:55 +00:00