fundon
85e40e4026
refactor(editor): simplify attachment and image upload handling ( #11987 )
...
Closes: [BS-3303](https://linear.app/affine-design/issue/BS-3303/改進-pack-attachment-props-流程 )
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Enhanced attachment and image uploads with improved file size validation and clearer notifications.
- Upload telemetry tracking added for attachments to monitor upload success or failure.
- **Refactor**
- Streamlined and unified the process of adding attachments and images, making uploads more reliable and efficient.
- Parameter names updated for clarity across attachment and image insertion features.
- **Documentation**
- Updated API documentation to reflect parameter name changes for consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-28 07:03:30 +00:00
fundon
e9003dec9e
feat(editor): add blobState$ to BlobEngine ( #11756 )
...
Closes: [BS-3137](https://linear.app/affine-design/issue/BS-3137/在-bs-添加-blobstate-接口 )
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced real-time status tracking for file upload and download operations, allowing users to monitor progress and errors more effectively.
- **Improvements**
- Enhanced icon display for attachments, providing a refreshed visual experience.
- Improved update frequency and accuracy for file synchronization status indicators.
- **Bug Fixes**
- Refined internal logic for filtering status updates, ensuring more precise feedback during file operations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-28 10:46:46 +08:00
Saul-Mirone
99ad4e871e
feat(editor): use migrated extensions ( #11886 )
...
Closes: BS-3283
2025-04-22 15:51:22 +00:00
doouding
b59f6ebde0
refactor: default-tool box selection ( #11800 )
...
### Changed
- Rewrite box selection in `default-tool`, the view can decide whether to be selected in box selection by return a boolean value in `onBoxSelected` method
- Cleanup unnecessary states in `default-tool` and some naming problem
2025-04-22 08:18:26 +00:00
doouding
e0e84d302d
refactor: moving connector label to connector view ( #11738 )
...
### Changed
Moved connector label moving logic from `default-tool` to connector view.
#### Other infrastructure changes:
- Gfx element view now can handles drag events
- Added `context.preventDefault()` support to bypass built-in interactions in extension
- Handle the pointer events in element view will bypass the built-in interactions automatically
> The built-in interactions include element dragging, click selection, drag-to-scale operations, etc.
2025-04-22 08:18:24 +00:00
doouding
21bf009553
refactor: migrate elements clone from default-tool to extension ( #11703 )
...
### Changed
- Add `onRequestElementsClone` action to allow extension to define how to clone gfx elements
2025-04-22 08:18:23 +00:00
doouding
52953ce8e3
refactor: redesign element transform manager interface ( #11679 )
...
### Change
- Rename `ElementTransformManager` -> `InteractivityManager`
- Now you can `event.on` and `action.onXXX` method to extend interactivity behaviour. The old approach of overriding methods directly is deprecated.
2025-04-22 08:18:23 +00:00
L-Sun
e457e2f8a8
fix(editor): add reference after duplicate edgeless embed doc as note ( #11877 )
...
- fix(editor): add reference in the copied note of embed doc
- refactor(editor): add generics parameter `TextAttributes` into `Text`
2025-04-22 08:03:52 +00:00
Yifeng Wang
16f7be7f0b
perf(editor): avoid redundant dom query when editing single block ( #11732 )
2025-04-16 17:52:22 +08:00
doodlewind
b21864cf63
perf(editor): dispose input event handler for removed blocks ( #11734 )
2025-04-16 09:05:47 +00:00
donteatfriedrice
212c13f843
fix(editor): add code block clipboard extension ( #11731 )
...
Close [BS-3109](https://linear.app/affine-design/issue/BS-3109/code-block-不支援-markdown-語法 )
2025-04-16 08:32:00 +00:00
yoyoyohamapi
0df584bd5e
refactor(core): add keyPress event to fix IME space detection ( #11700 )
...
### TL;DR
Refactor space-triggered AI Widget activation logic from `keydown` to `keypress` event listeners
### Background
The `keydown` event triggered by a space may originate from:
1. Normal space insertion
2. Space triggered by input method confirming candidate words
In scenarios like (2), some browsers (see [ISSUE](https://github.com/toeverything/AFFiNE/issues/11541 )) and input method callbacks produce events identical to scenario (1),making it impossible to distinguish between the two.
To fix this, the space-activated AI listener uses the `keypress` event:
In scenario 2, `event.which !== 32` (may be `30430` or other values) can be used to differentiate from scenario 1.
> CLOSE BS-3081
2025-04-15 08:37:27 +00:00
Flrande
fd6c34cfa3
fix(editor): v-element may get undefined inline editor ( #11697 )
2025-04-15 08:22:39 +00:00
L-Sun
aabb09b31f
fix(editor): ime input error at empty line ( #11636 )
...
Close [BS-3106](https://linear.app/affine-design/issue/BS-3106/mac-chrom在空行使用ime输入,文档卡住 )
2025-04-11 10:39:16 +00:00
doouding
714f2e79dc
fix: cannot exit editing mode when click frame body ( #11603 )
2025-04-11 03:23:27 +00:00
L-Sun
588659ef67
fix(editor): connector target position NaN ( #11606 )
...
Close [BS-3086](https://linear.app/affine-design/issue/BS-3086/frame里套frame,连一下connector,拖两下,白板损坏 )
### What Changes
- Fixed `bound.toRelative` may be return `NaN` when `bound.w === 0 || bound.h ===0`
- Remove type assertions from `connector-manager.ts` for more type safety
2025-04-10 12:33:24 +00:00
L-Sun
06497773a7
fix(editor): can not move carte at the end of inline element ( #11558 )
...
Close [BS-2922](https://linear.app/affine-design/issue/BS-2922/【移动端-ios】文档添加linked-page后,无法删除 )
2025-04-09 08:07:02 +00:00
doouding
d7268ce04c
test: add std gfx test ( #11442 )
...
### Changed
- Move some intergraion tests to std as they are more like basic tests
- Add some basic gfx-related tests
2025-04-08 16:20:36 +00:00
Saul-Mirone
bda5562f90
fix(editor): allow copy in readonly mode ( #11538 )
2025-04-08 08:52:20 +00:00
Saul-Mirone
a28b8b1b11
fix: sentry-6451187280 ( #11533 )
...
Closes: BS-3075
2025-04-08 06:06:16 +00:00
Saul-Mirone
1f45cc5dec
refactor(editor): unify directories naming ( #11516 )
...
**Directory Structure Changes**
- Renamed multiple block-related directories by removing the "block-" prefix:
- `block-attachment` → `attachment`
- `block-bookmark` → `bookmark`
- `block-callout` → `callout`
- `block-code` → `code`
- `block-data-view` → `data-view`
- `block-database` → `database`
- `block-divider` → `divider`
- `block-edgeless-text` → `edgeless-text`
- `block-embed` → `embed`
2025-04-07 12:34:40 +00:00
forehalo
40f218c898
chore: set base version to 0.21
2025-04-07 16:10:32 +08:00
Saul-Mirone
c306d98370
fix(editor): range sync in lit portal ( #11490 )
...
Closes: BS-3032
2025-04-07 05:38:20 +00:00
Saul-Mirone
01429f8f66
fix(editor): clear remote selection when editor is deactive ( #11450 )
...
Closes: BS-3022
2025-04-03 09:36:28 +00:00
Saul-Mirone
773db7860a
feat(editor): not sync selection from awareness ( #11420 )
2025-04-03 09:22:26 +00:00
fundon
a1500e3ee1
fix(editor): textarea not focusing in AI panel ( #11429 )
...
Closes: [BS-3006](https://linear.app/affine-design/issue/BS-3006/insider上面,圈选yuan素后,ad-hoc的ai对话框焦点控制有大问题(无法对焦,总是会跳走) )
2025-04-03 03:27:26 +00:00
doouding
36b1ca4327
feat: render placeholder in edgeless mode ( #11387 )
...
Complete [BS-2997](https://linear.app/affine-design/issue/BS-2997/在白板上渲染-inserted-frame-group-时提供占位 )
2025-04-02 06:59:25 +00:00
Saul-Mirone
7f98420061
chore: allow cursor in none-contenteditable blocks ( #11366 )
2025-04-01 13:20:08 +00:00
Saul-Mirone
bed02f2520
fix(editor): wrong deactive logic ( #11361 )
...
Closes: BS-2591
2025-04-01 11:44:24 +00:00
Flrande
6ed9c33c33
fix(editor): inline editor should not change event source editable ( #11331 )
...
Close [BS-2988: database block会把顶层content editable设成false](https://linear.app/affine-design/issue/BS-2988/database-block会把顶层content-editable设成false )
2025-04-01 05:24:27 +00:00
renovate
782f31ad26
chore: bump up all non-major dependencies ( #11273 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@ai-sdk/google](https://sdk.vercel.ai/docs ) ([source](https://redirect.github.com/vercel/ai )) | [`1.2.3` -> `1.2.5`](https://renovatebot.com/diffs/npm/@ai-sdk%2fgoogle/1.2.3/1.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/ ) | dependencies | patch |
| [@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.777.0` -> `3.779.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.777.0/3.779.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 |
| [@capacitor/android](https://capacitorjs.com ) ([source](https://redirect.github.com/ionic-team/capacitor )) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@capacitor%2fandroid/7.1.0/7.2.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 |
| [@capacitor/cli](https://capacitorjs.com ) ([source](https://redirect.github.com/ionic-team/capacitor )) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcli/7.1.0/7.2.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 |
| [@capacitor/core](https://capacitorjs.com ) ([source](https://redirect.github.com/ionic-team/capacitor )) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/7.1.0/7.2.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 |
| [@capacitor/ios](https://capacitorjs.com ) ([source](https://redirect.github.com/ionic-team/capacitor )) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@capacitor%2fios/7.1.0/7.2.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.6.8` -> `7.7.2`](https://renovatebot.com/diffs/npm/@capgo%2finappbrowser/7.6.8/7.7.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 | minor |
| [@lottiefiles/dotlottie-wc](https://redirect.github.com/LottieFiles/dotlottie-web ) ([source](https://redirect.github.com/LottieFiles/dotlottie-web/tree/HEAD/packages/wc )) | [`0.5.0` -> `0.5.1`](https://renovatebot.com/diffs/npm/@lottiefiles%2fdotlottie-wc/0.5.0/0.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/ ) | dependencies | patch |
| [@perfsee/webpack](https://redirect.github.com/perfsee/perfsee ) | [`1.13.0` -> `1.14.2`](https://renovatebot.com/diffs/npm/@perfsee%2fwebpack/1.13.0/1.14.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 | minor |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react ) ([source](https://redirect.github.com/getsentry/sentry-javascript )) | [`9.10.0` -> `9.10.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.10.0/9.10.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/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react ) ([source](https://redirect.github.com/getsentry/sentry-javascript )) | [`9.10.0` -> `9.10.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.10.0/9.10.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 | 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.9` -> `3.1.1`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.0.9/3.1.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 |
| [@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.9` -> `3.1.1`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.0.9/3.1.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 |
| [@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.9` -> `3.1.1`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.9/3.1.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 |
| [ai](https://sdk.vercel.ai/docs ) ([source](https://redirect.github.com/vercel/ai )) | [`4.2.8` -> `4.2.10`](https://renovatebot.com/diffs/npm/ai/4.2.8/4.2.10 ) | [](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 |
| [bullmq](https://bullmq.io/ ) ([source](https://redirect.github.com/taskforcesh/bullmq )) | [`5.45.0` -> `5.45.2`](https://renovatebot.com/diffs/npm/bullmq/5.45.0/5.45.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 |
| [esbuild](https://redirect.github.com/evanw/esbuild ) | [`0.25.1` -> `0.25.2`](https://renovatebot.com/diffs/npm/esbuild/0.25.1/0.25.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 |
| [express](https://expressjs.com/ ) ([source](https://redirect.github.com/expressjs/express )) | [`5.0.1` -> `5.1.0`](https://renovatebot.com/diffs/npm/express/5.0.1/5.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 |
| [lucide-react](https://lucide.dev ) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react )) | [`^0.484.0` -> `^0.486.0`](https://renovatebot.com/diffs/npm/lucide-react/0.484.0/0.486.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 |
| [once_cell](https://redirect.github.com/matklad/once_cell ) | `1.21.2` -> `1.21.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/ ) | workspace.dependencies | patch |
| [openai](https://redirect.github.com/openai/openai-node ) | [`4.90.0` -> `4.91.0`](https://renovatebot.com/diffs/npm/openai/4.90.0/4.91.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](https://react.dev/ ) ([source](https://redirect.github.com/facebook/react/tree/HEAD/packages/react )) | [`19.0.0` -> `19.1.0`](https://renovatebot.com/diffs/npm/react/19.0.0/19.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-day-picker](https://daypicker.dev ) ([source](https://redirect.github.com/gpbl/react-day-picker )) | [`9.6.3` -> `9.6.4`](https://renovatebot.com/diffs/npm/react-day-picker/9.6.3/9.6.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/ ) | dependencies | patch |
| [react-dom](https://react.dev/ ) ([source](https://redirect.github.com/facebook/react/tree/HEAD/packages/react-dom )) | [`19.0.0` -> `19.1.0`](https://renovatebot.com/diffs/npm/react-dom/19.0.0/19.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-hook-form](https://www.react-hook-form.com ) ([source](https://redirect.github.com/react-hook-form/react-hook-form )) | [`7.54.2` -> `7.55.0`](https://renovatebot.com/diffs/npm/react-hook-form/7.54.2/7.55.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-refresh](https://react.dev/ ) ([source](https://redirect.github.com/facebook/react/tree/HEAD/packages/react )) | [`^0.16.0` -> `^0.17.0`](https://renovatebot.com/diffs/npm/react-refresh/0.16.0/0.17.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-virtuoso](https://virtuoso.dev/ ) ([source](https://redirect.github.com/petyosi/react-virtuoso )) | [`4.12.5` -> `4.12.6`](https://renovatebot.com/diffs/npm/react-virtuoso/4.12.5/4.12.6 ) | [](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 |
| [rubato](https://redirect.github.com/HEnquist/rubato ) | `0.16.1` -> `0.16.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/ ) | workspace.dependencies | patch |
| [tailwind-merge](https://redirect.github.com/dcastil/tailwind-merge ) | [`3.0.2` -> `3.1.0`](https://renovatebot.com/diffs/npm/tailwind-merge/3.0.2/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/ ) | devDependencies | minor |
| [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint ) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint )) | [`8.28.0` -> `8.29.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.28.0/8.29.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 |
| [vitest](https://redirect.github.com/vitest-dev/vitest ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest )) | [`3.0.9` -> `3.1.1`](https://renovatebot.com/diffs/npm/vitest/3.0.9/3.1.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 |
| [yarn](https://redirect.github.com/yarnpkg/berry ) ([source](https://redirect.github.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-cli )) | [`4.8.0` -> `4.8.1`](https://renovatebot.com/diffs/npm/yarn/4.8.0/4.8.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/ ) | packageManager | patch |
---
### Release Notes
<details>
<summary>vercel/ai (@​ai-sdk/google)</summary>
### [`v1.2.5`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/openai%401.2.5 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.2.4...@ai-sdk/google@1.2.5 )
##### Patch Changes
- [`2e1101a`](https://redirect.github.com/vercel/ai/commit/2e1101a ): feat (provider/openai): pdf input support
- Updated dependencies \[[`2e1101a`](https://redirect.github.com/vercel/ai/commit/2e1101a )]
- [@​ai-sdk/provider](https://redirect.github.com/ai-sdk/provider )[@​1](https://redirect.github.com/1 ).0.11
- [@​ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils )[@​2](https://redirect.github.com/2 ).1.13
### [`v1.2.4`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/openai%401.2.4 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.2.3...@ai-sdk/google@1.2.4 )
##### Patch Changes
- [`523f128`](https://redirect.github.com/vercel/ai/commit/523f128 ): feat (provider/openai): add strictSchemas option to responses model
</details>
<details>
<summary>aws/aws-sdk-js-v3 (@​aws-sdk/client-s3)</summary>
### [`v3.779.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37790-2025-03-31 )
[Compare Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.777.0...v3.779.0 )
##### Features
- **client-s3:** Amazon S3 adds support for S3 Access Points for directory buckets in AWS Dedicated Local Zones ([7f2cfea](7f2cfea14e ))
</details>
<details>
<summary>ionic-team/capacitor (@​capacitor/android)</summary>
### [`v7.2.0`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#720-2025-03-31 )
[Compare Source](https://redirect.github.com/ionic-team/capacitor/compare/7.1.0...7.2.0 )
##### Bug Fixes
- **android:** rename bridge layout to avoid collision ([#​7919](https://redirect.github.com/ionic-team/capacitor/issues/7919 )) ([a629f16](a629f167b3 ))
- **cli:** Don't migrate Podfile on SPM projects ([#​7939](https://redirect.github.com/ionic-team/capacitor/issues/7939 )) ([ab4e700](ab4e700035 ))
- **ios:** respect shouldEncodeUrlParams value ([#​7931](https://redirect.github.com/ionic-team/capacitor/issues/7931 )) ([4fb12a0](4fb12a03a9 ))
##### Features
- **http:** Apply overrideUserAgent to requests ([#​7906](https://redirect.github.com/ionic-team/capacitor/issues/7906 )) ([52482c9](52482c9d3c ))
- **ios:** Enable Fullscreen API on WebView ([#​7909](https://redirect.github.com/ionic-team/capacitor/issues/7909 )) ([172638e](172638ec7b ))
</details>
<details>
<summary>Cap-go/capacitor-inappbrowser (@​capgo/inappbrowser)</summary>
### [`v7.7.2`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#772-2025-03-31 )
[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.7.1...7.7.2 )
### [`v7.7.1`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#771-2025-03-30 )
[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.6.12...7.7.1 )
### [`v7.6.12`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#7612-2025-03-30 )
[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.6.9...7.6.12 )
### [`v7.6.9`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#769-2025-03-29 )
[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.6.8...7.6.9 )
</details>
<details>
<summary>LottieFiles/dotlottie-web (@​lottiefiles/dotlottie-wc)</summary>
### [`v0.5.1`](https://redirect.github.com/LottieFiles/dotlottie-web/blob/HEAD/packages/wc/CHANGELOG.md#051 )
##### Patch Changes
- Updated dependencies \[[`faaf25e`](https://redirect.github.com/LottieFiles/dotlottie-web/commit/faaf25e )]
- Updated dependencies \[[`4ffcae2`](https://redirect.github.com/LottieFiles/dotlottie-web/commit/4ffcae2 )]
- Updated dependencies \[[`faaf25e`](https://redirect.github.com/LottieFiles/dotlottie-web/commit/faaf25e )]
- [@​lottiefiles/dotlottie-web](https://redirect.github.com/lottiefiles/dotlottie-web )[@​0](https://redirect.github.com/0 ).42.0
</details>
<details>
<summary>perfsee/perfsee (@​perfsee/webpack)</summary>
### [`v1.14.2`](https://redirect.github.com/perfsee/perfsee/compare/v1.13.0...v1.14.2 )
[Compare Source](https://redirect.github.com/perfsee/perfsee/compare/v1.13.0...v1.14.2 )
</details>
<details>
<summary>getsentry/sentry-javascript (@​sentry/react)</summary>
### [`v9.10.1`](https://redirect.github.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#9101 )
[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.10.0...9.10.1 )
- fix: Correct [@​sentry-internal/feedback](https://redirect.github.com/sentry-internal/feedback ) docs to match the code ([#​15874](https://redirect.github.com/getsentry/sentry-javascript/pull/15874 ))
- deps: Bump bundler plugins to version `3.2.4` ([#​15909](https://redirect.github.com/getsentry/sentry-javascript/pull/15909 ))
</details>
<details>
<summary>vitest-dev/vitest (@​vitest/browser)</summary>
### [`v3.1.1`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.1.1 )
[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1 )
##### 🐞 Bug Fixes
- **reporter**:
- Report tests in correct order - by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in [https://github.com/vitest-dev/vitest/issues/7752 ](https://redirect.github.com/vitest-dev/vitest/issues/7752 ) [<samp>(b166e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b166efa2 )
- Print test only once in the verbose mode - by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in [https://github.com/vitest-dev/vitest/issues/7738 ](https://redirect.github.com/vitest-dev/vitest/issues/7738 ) [<samp>(69ca4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/69ca425c )
##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1 )
### [`v3.1.0`](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.0 )
[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.0 )
</details>
<details>
<summary>taskforcesh/bullmq (bullmq)</summary>
### [`v5.45.2`](https://redirect.github.com/taskforcesh/bullmq/releases/tag/v5.45.2 )
[Compare Source](https://redirect.github.com/taskforcesh/bullmq/compare/v5.45.1...v5.45.2 )
##### Bug Fixes
- **flow:** validate pending dependencies before removing lock ([#​3182](https://redirect.github.com/taskforcesh/bullmq/issues/3182 )) ([8d59e3b](8d59e3b808 ))
### [`v5.45.1`](https://redirect.github.com/taskforcesh/bullmq/releases/tag/v5.45.1 )
[Compare Source](https://redirect.github.com/taskforcesh/bullmq/compare/v5.45.0...v5.45.1 )
##### Bug Fixes
- **job-scheduler:** emit duplicated event when next delayed job exists ([#​3172](https://redirect.github.com/taskforcesh/bullmq/issues/3172 )) ([d57698f](d57698f9af ))
</details>
<details>
<summary>evanw/esbuild (esbuild)</summary>
### [`v0.25.2`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0252 )
[Compare Source](https://redirect.github.com/evanw/esbuild/compare/v0.25.1...v0.25.2 )
- Support flags in regular expressions for the API ([#​4121](https://redirect.github.com/evanw/esbuild/issues/4121 ))
The JavaScript plugin API for esbuild takes JavaScript regular expression objects for the `filter` option. Internally these are translated into Go regular expressions. However, this translation previously ignored the `flags` property of the regular expression. With this release, esbuild will now translate JavaScript regular expression flags into Go regular expression flags. Specifically the JavaScript regular expression `/\.[jt]sx?$/i` is turned into the Go regular expression `` `(?i)\.[jt]sx?$` `` internally inside of esbuild's API. This should make it possible to use JavaScript regular expressions with the `i` flag. Note that JavaScript and Go don't support all of the same regular expression features, so this mapping is only approximate.
- Fix node-specific annotations for string literal export names ([#​4100](https://redirect.github.com/evanw/esbuild/issues/4100 ))
When node instantiates a CommonJS module, it scans the AST to look for names to expose via ESM named exports. This is a heuristic that looks for certain patterns such as `exports.NAME = ...` or `module.exports = { ... }`. This behavior is used by esbuild to "annotate" CommonJS code that was converted from ESM with the original ESM export names. For example, when converting the file `export let foo, bar` from ESM to CommonJS, esbuild appends this to the end of the file:
```js
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
bar,
foo
});
```
However, this feature previously didn't work correctly for export names that are not valid identifiers, which can be constructed using string literal export names. The generated code contained a syntax error. That problem is fixed in this release:
```js
// Original code
let foo
export { foo as "foo!" }
// Old output (with --format=cjs --platform=node)
...
0 && (module.exports = {
"foo!"
});
// New output (with --format=cjs --platform=node)
...
0 && (module.exports = {
"foo!": null
});
```
- Basic support for index source maps ([#​3439](https://redirect.github.com/evanw/esbuild/issues/3439 ), [#​4109](https://redirect.github.com/evanw/esbuild/pull/4109 ))
The source map specification has an optional mode called [index source maps](https://tc39.es/ecma426/#sec-index-source-map ) that makes it easier for tools to create an aggregate JavaScript file by concatenating many smaller JavaScript files with source maps, and then generate an aggregate source map by simply providing the original source maps along with some offset information. My understanding is that this is rarely used in practice. I'm only aware of two uses of it in the wild: [ClojureScript](https://clojurescript.org/ ) and [Turbopack](https://turbo.build/pack/ ).
This release provides basic support for indexed source maps. However, the implementation has not been tested on a real app (just on very simple test input). If you are using index source maps in a real app, please try this out and report back if anything isn't working for you.
Note that this is also not a complete implementation. For example, index source maps technically allows nesting source maps to an arbitrary depth, while esbuild's implementation in this release only supports a single level of nesting. It's unclear whether supporting more than one level of nesting is important or not given the lack of available test cases.
This feature was contributed by [@​clyfish](https://redirect.github.com/clyfish ).
</details>
<details>
<summary>expressjs/express (express)</summary>
### [`v5.1.0`](https://redirect.github.com/expressjs/express/blob/HEAD/History.md#510--2025-03-31 )
[Compare Source](https://redirect.github.com/expressjs/express/compare/5.0.1...v5.1.0 )
\========================
- Add support for `Uint8Array` in `res.send()`
- Add support for ETag option in `res.sendFile()`
- Add support for multiple links with the same rel in `res.links()`
- Add funding field to package.json
- perf: use loop for acceptParams
- refactor: prefix built-in node module imports
- deps: remove `setprototypeof`
- deps: remove `safe-buffer`
- deps: remove `utils-merge`
- deps: remove `methods`
- deps: remove `depd`
- deps: `debug@^4.4.0`
- deps: `body-parser@^2.2.0`
- deps: `router@^2.2.0`
- deps: `content-type@^1.0.5`
- deps: `finalhandler@^2.1.0`
- deps: `qs@^6.14.0`
- deps: `server-static@2.2.0`
- deps: `type-is@2.0.1`
</details>
<details>
<summary>lucide-icons/lucide (lucide-react)</summary>
### [`v0.486.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.486.0 ): Version 0.486.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.485.0...0.486.0 )
##### What's Changed
- feat([@​lucide/astro](https://redirect.github.com/lucide/astro )): add lucide package for Astro by [@​MoustaphaDev](https://redirect.github.com/MoustaphaDev ) in [https://github.com/lucide-icons/lucide/pull/2665 ](https://redirect.github.com/lucide-icons/lucide/pull/2665 )
##### New Contributors
- [@​MoustaphaDev](https://redirect.github.com/MoustaphaDev ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2665 ](https://redirect.github.com/lucide-icons/lucide/pull/2665 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.485.0...0.486.0
### [`v0.485.0`](https://redirect.github.com/lucide-icons/lucide/compare/0.484.0...0.485.0 )
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.484.0...0.485.0 )
</details>
<details>
<summary>matklad/once_cell (once_cell)</summary>
### [`v1.21.3`](https://redirect.github.com/matklad/once_cell/blob/HEAD/CHANGELOG.md#1213 )
[Compare Source](https://redirect.github.com/matklad/once_cell/compare/v1.21.2...v1.21.3 )
- Outline more initialization in `race`: [#​284](https://redirect.github.com/matklad/once_cell/pull/284 ),
[#​285](https://redirect.github.com/matklad/once_cell/pull/285 ).
</details>
<details>
<summary>openai/openai-node (openai)</summary>
### [`v4.91.0`](https://redirect.github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4910-2025-03-31 )
[Compare Source](https://redirect.github.com/openai/openai-node/compare/v4.90.0...v4.91.0 )
Full Changelog: [v4.90.0...v4.91.0](https://redirect.github.com/openai/openai-node/compare/v4.90.0...v4.91.0 )
##### Features
- **api:** add `get /responses/{response_id}/input_items` endpoint ([ef0e0ac](ef0e0acd46 ))
##### Performance Improvements
- **embedding:** default embedding creation to base64 ([#​1312](https://redirect.github.com/openai/openai-node/issues/1312 )) ([e54530e](e54530e4f6 )), closes [#​1310](https://redirect.github.com/openai/openai-node/issues/1310 )
</details>
<details>
<summary>facebook/react (react)</summary>
### [`v19.1.0`](https://redirect.github.com/facebook/react/compare/v19.0.0...1825990c5608f0ab0c1475b4292218a508a171c9 )
[Compare Source](https://redirect.github.com/facebook/react/compare/v19.0.0...v19.1.0 )
</details>
<details>
<summary>gpbl/react-day-picker (react-day-picker)</summary>
### [`v9.6.4`](https://redirect.github.com/gpbl/react-day-picker/releases/tag/v9.6.4 )
[Compare Source](https://redirect.github.com/gpbl/react-day-picker/compare/v9.6.3...v9.6.4 )
#### What's Changed
- fix(animation): fix issues when navigating months during animation by [@​rodgobbi](https://redirect.github.com/rodgobbi ) in [https://github.com/gpbl/react-day-picker/pull/2710 ](https://redirect.github.com/gpbl/react-day-picker/pull/2710 )
**Full Changelog**: https://github.com/gpbl/react-day-picker/compare/v9.6.3...v9.6.4
</details>
<details>
<summary>facebook/react (react-dom)</summary>
### [`v19.1.0`](https://redirect.github.com/facebook/react/compare/v19.0.0...1825990c5608f0ab0c1475b4292218a508a171c9 )
[Compare Source](https://redirect.github.com/facebook/react/compare/v19.0.0...v19.1.0 )
</details>
<details>
<summary>react-hook-form/react-hook-form (react-hook-form)</summary>
### [`v7.55.0`](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.54.2...a66b52a4f0d5c0de3c09307c074371e3e881ce73 )
[Compare Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.54.2...v7.55.0 )
</details>
<details>
<summary>petyosi/react-virtuoso (react-virtuoso)</summary>
### [`v4.12.6`](https://redirect.github.com/petyosi/react-virtuoso/releases/tag/react-virtuoso%404.12.6 )
[Compare Source](https://redirect.github.com/petyosi/react-virtuoso/compare/react-virtuoso@4.12.5...react-virtuoso@4.12.6 )
##### Patch Changes
- [`bb0402e`](https://redirect.github.com/petyosi/react-virtuoso/commit/bb0402e ): Support window scrolling to iframe react portals
</details>
<details>
<summary>HEnquist/rubato (rubato)</summary>
### [`v0.16.2`](https://redirect.github.com/HEnquist/rubato/releases/tag/v0.16.2 )
[Compare Source](https://redirect.github.com/HEnquist/rubato/compare/v0.16.1...v0.16.2 )
#### What's Changed
- Fix tests on 32-bit archs, add test by [@​HEnquist](https://redirect.github.com/HEnquist ) in [https://github.com/HEnquist/rubato/pull/102 ](https://redirect.github.com/HEnquist/rubato/pull/102 )
**Full Changelog**: https://github.com/HEnquist/rubato/compare/v0.16.1...v0.16.2
</details>
<details>
<summary>dcastil/tailwind-merge (tailwind-merge)</summary>
### [`v3.1.0`](https://redirect.github.com/dcastil/tailwind-merge/releases/tag/v3.1.0 )
[Compare Source](https://redirect.github.com/dcastil/tailwind-merge/compare/v3.0.2...v3.1.0 )
##### New Features
- Add support for Tailwind CSS v4.0.10 by [@​dcastil](https://redirect.github.com/dcastil ) in [https://github.com/dcastil/tailwind-merge/pull/546 ](https://redirect.github.com/dcastil/tailwind-merge/pull/546 )
##### Bug Fixes
- Fix length variable in `via-(length:*)` class being merged with `via-<color>` classes accidentally by [@​dcastil](https://redirect.github.com/dcastil ) in [https://github.com/dcastil/tailwind-merge/pull/559 ](https://redirect.github.com/dcastil/tailwind-merge/pull/559 )
##### Documentation
- Fix typo in comment in types.ts by [@​roottool](https://redirect.github.com/roottool ) in [https://github.com/dcastil/tailwind-merge/pull/549 ](https://redirect.github.com/dcastil/tailwind-merge/pull/549 )
- Update shadow scale recipe to tailwind merge v3 API by [@​dcastil](https://redirect.github.com/dcastil ) in [https://github.com/dcastil/tailwind-merge/pull/545 ](https://redirect.github.com/dcastil/tailwind-merge/pull/545 )
##### Other
- Fix metrics report action erroring on PRs from forks by [@​dcastil](https://redirect.github.com/dcastil ) in [https://github.com/dcastil/tailwind-merge/pull/551 ](https://redirect.github.com/dcastil/tailwind-merge/pull/551 )
**Full Changelog**: https://github.com/dcastil/tailwind-merge/compare/v3.0.2...v3.1.0
Thanks to [@​brandonmcconnell](https://redirect.github.com/brandonmcconnell ), [@​manavm1990](https://redirect.github.com/manavm1990 ), [@​langy](https://redirect.github.com/langy ), [@​jamesreaco](https://redirect.github.com/jamesreaco ), [@​roboflow](https://redirect.github.com/roboflow ), [@​syntaxfm](https://redirect.github.com/syntaxfm ), [@​getsentry](https://redirect.github.com/getsentry ), [@​codecov](https://redirect.github.com/codecov ), [@​sourcegraph](https://redirect.github.com/sourcegraph ) and a private sponsor for sponsoring tailwind-merge! ❤️
</details>
<details>
<summary>typescript-eslint/typescript-eslint (typescript-eslint)</summary>
### [`v8.29.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8290-2025-03-31 )
[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.28.0...v8.29.0 )
This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.
You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning ) and [releases](https://main--typescript-eslint.netlify.app/users/releases ) on our website.
</details>
<details>
<summary>yarnpkg/berry (yarn)</summary>
### [`v4.8.1`](260cff1745...76596c5d3f )
[Compare Source](260cff1745...76596c5d3f )
</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.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-04-01 00:56:18 +00:00
Saul-Mirone
58d6a96e45
fix(editor): firefox invalid selection range ( #11320 )
...
Closes: BS-2987
2025-03-31 14:33:24 +00:00
L-Sun
c9e14ac0db
fix(editor): sync gfx block transform update with RAF to prevent stale transform ( #11322 )
...
Close [BS-2866](https://linear.app/affine-design/issue/BS-2866/presentation-mode中的note消失 )
## Problem
When using RequestAnimationFrame (RAF) for GFX block updates, there was a timing issue where the transform update would lag behind the RAF callback, causing the block to display with the previous frame's transform state.
## Solution
1. Refactored the block state management to use signals for better reactivity
2. Moved block visibility state management from `viewport-element.ts` to `gfx-block-component.ts`
3. Added `transformState$` signal to track block state
4. Synchronized transform updates with RAF using `effect` to ensure updates happen in the correct frame
5. Added test case to verify note visibility in presentation mode
2025-03-31 12:47:01 +00:00
doodlewind
ebee11f573
refactor(editor): enable forceUpdate by default in viewport apis ( #11264 )
...
In this way, all downstream callers can be guaranteed by correct viewport fit result, instead of requiring them to set `forceUpdate: true` param explicitly to them. The resizing optimization is an internal exception.
2025-03-28 10:04:55 +00:00
Saul-Mirone
205cd7a86d
refactor(editor): rename block-std to std ( #11250 )
...
Closes: BS-2946
2025-03-28 07:20:34 +00:00
Saul-Mirone
d9d5aa407a
fix: split view focus ( #11217 )
...
# After:
https://github.com/user-attachments/assets/990d500d-2da7-488e-ac32-dd7bd229f896
# Before:
https://github.com/user-attachments/assets/6676766a-c76a-414b-a35e-53d2cda10c24
2025-03-27 05:27:59 +00:00
doodlewind
bb1bbccd0f
refactor(editor): rx state management in turbo renderer ( #11200 )
...
# Refactor Turbo Renderer State Management to Use RxJS
### TL;DR
Refactored the TurboRenderer state management to use RxJS observables instead of direct state mutations, improving state transitions and reactivity.
### What changed?
- Replaced the public `state` property with a private `state$` BehaviorSubject in `ViewportTurboRendererExtension`
- Added proper state transition logging using RxJS operators
- Combined multiple event subscriptions using `merge` operator for better organization
- Improved state transition logic in the `refresh()` method
- Updated the `zooming$` and `panning$` signals in the Viewport
### Why make this change?
This refactoring improves the codebase by:
1. Using a more consistent reactive programming model with RxJS
2. Making state transitions more explicit and traceable
3. Reducing potential bugs from manual state management
4. Improving code organization by combining related event streams
5. Ensuring proper cleanup of resources when components are disposed
The change maintains the same functionality while making the code more maintainable and the state management more robust.
2025-03-27 04:50:32 +00:00
Saul-Mirone
0a8d8e0a6b
feat: seperate createDoc and createStore ( #11182 )
2025-03-26 11:03:47 +00:00
L-Sun
c23b8f604b
fix(editor): incorrect edgeless viewport in peek view ( #11040 )
...
### What Changes
- Fixed incorrect edgeless viewport display in peek view
- Moved page block viewport fit animation logic from `EdgelessRootBlockComponent` to note config extension
- Disabled page block viewport fit animation in peek view, using default `fitToScreen` instead
- @doodlewind Fixed viewport resizing issues by adding a immediate update mechanism to ensure proper rendering during peek view operations. The setViewportByBound is only called once during peek view initialization, so there are barely perf overhead.
- Updated related test cases
- Refactored peek view test cases to make them clearer and more reliable
- Added new test helper function `getViewportBound` for getting viewport boundary information
2025-03-26 09:29:05 +00:00
doouding
ace5d44a61
refactor: rewrite dblclick and selection logic of default-tool ( #11036 )
...
continue #10824
### Changed
- Moved double-click-to-edit behavior from the default tool to individual model views
- Introduced `onSelected` callback interface in gfx view components to allows developers to override default selection logic
2025-03-26 07:32:43 +00:00
Saul-Mirone
a4033f5596
feat(editor): clipboard config extensions ( #11171 )
2025-03-25 12:09:24 +00:00
Saul-Mirone
e84c60f53d
feat(editor): add provider for base adapter ( #11169 )
2025-03-25 12:09:23 +00:00
Saul-Mirone
df057b4c12
feat(editor): edgeless clipboard config extension ( #11168 )
2025-03-25 12:09:23 +00:00
renovate
0773a719d5
chore: bump up all non-major dependencies ( #10920 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@ai-sdk/google](https://sdk.vercel.ai/docs ) ([source](https://redirect.github.com/vercel/ai )) | [`1.1.19` -> `1.1.26`](https://renovatebot.com/diffs/npm/@ai-sdk%2fgoogle/1.1.19/1.1.26 ) | [](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 |
| [@playwright/test](https://playwright.dev ) ([source](https://redirect.github.com/microsoft/playwright )) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.0/1.51.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 | patch |
| [@playwright/test](https://playwright.dev ) ([source](https://redirect.github.com/microsoft/playwright )) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.0/1.51.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 |
| [@react-email/components](https://redirect.github.com/resend/react-email ) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/components )) | [`0.0.33` -> `0.0.34`](https://renovatebot.com/diffs/npm/@react-email%2fcomponents/0.0.33/0.0.34 ) | [](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/electron](https://redirect.github.com/getsentry/sentry-electron ) | [`6.1.0` -> `6.2.0`](https://renovatebot.com/diffs/npm/@sentry%2felectron/6.1.0/6.2.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 |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react ) ([source](https://redirect.github.com/getsentry/sentry-javascript )) | [`9.5.0` -> `9.6.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.5.0/9.6.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 |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react ) ([source](https://redirect.github.com/getsentry/sentry-javascript )) | [`9.5.0` -> `9.6.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.5.0/9.6.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 |
| [@slack/web-api](https://tools.slack.dev/node-slack-sdk/web-api ) ([source](https://redirect.github.com/slackapi/node-slack-sdk )) | [`7.8.0` -> `7.9.0`](https://renovatebot.com/diffs/npm/@slack%2fweb-api/7.8.0/7.9.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 |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.6.6/8.6.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 |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.6.6/8.6.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 |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.6.6/8.6.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 |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.6.6/8.6.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 |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.6.6/8.6.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 |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2freact-vite/8.6.6/8.6.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 |
| [@swc/core](https://swc.rs ) ([source](https://redirect.github.com/swc-project/swc )) | [`1.11.9` -> `1.11.11`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.11.9/1.11.11 ) | [](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/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react ) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react )) | [`19.0.10` -> `19.0.12`](https://renovatebot.com/diffs/npm/@types%2freact/19.0.10/19.0.12 ) | [](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 |
| [@vitejs/plugin-react-swc](https://redirect.github.com/vitejs/vite-plugin-react-swc ) | [`3.8.0` -> `3.8.1`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-react-swc/3.8.0/3.8.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 | 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.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.0.8/3.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/ ) | 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.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.0.8/3.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/ ) | 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.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.8/3.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/ ) | devDependencies | patch |
| [ai](https://sdk.vercel.ai/docs ) ([source](https://redirect.github.com/vercel/ai )) | [`4.1.51` -> `4.1.63`](https://renovatebot.com/diffs/npm/ai/4.1.51/4.1.63 ) | [](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 |
| [bullmq](https://bullmq.io/ ) ([source](https://redirect.github.com/taskforcesh/bullmq )) | [`5.43.1` -> `5.44.0`](https://renovatebot.com/diffs/npm/bullmq/5.43.1/5.44.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 |
| [foxact](https://foxact.skk.moe ) ([source](https://redirect.github.com/SukkaW/foxact )) | [`0.2.44` -> `0.2.45`](https://renovatebot.com/diffs/npm/foxact/0.2.44/0.2.45 ) | [](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 |
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars ) | [`1.24.1` -> `1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.1/1.24.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 |
| [lucide-react](https://lucide.dev ) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react )) | [`^0.482.0` -> `^0.483.0`](https://renovatebot.com/diffs/npm/lucide-react/0.482.0/0.483.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 |
| [mimalloc](https://redirect.github.com/purpleprotocol/mimalloc_rust ) | `0.1.43` -> `0.1.44` | [](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 |
| [nanoid](https://redirect.github.com/ai/nanoid ) | [`5.1.4` -> `5.1.5`](https://renovatebot.com/diffs/npm/nanoid/5.1.4/5.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/ ) | dependencies | patch |
| [nanoid](https://redirect.github.com/ai/nanoid ) | [`5.1.4` -> `5.1.5`](https://renovatebot.com/diffs/npm/nanoid/5.1.4/5.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 |
| [nestjs-cls](https://papooch.github.io/nestjs-cls/ ) ([source](https://redirect.github.com/Papooch/nestjs-cls )) | [`5.4.0` -> `5.4.1`](https://renovatebot.com/diffs/npm/nestjs-cls/5.4.0/5.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 | patch |
| [openai](https://redirect.github.com/openai/openai-node ) | [`4.87.3` -> `4.88.0`](https://renovatebot.com/diffs/npm/openai/4.87.3/4.88.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 |
| [playwright](https://playwright.dev ) ([source](https://redirect.github.com/microsoft/playwright )) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/playwright/1.51.0/1.51.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 | patch |
| [react-day-picker](https://daypicker.dev ) ([source](https://redirect.github.com/gpbl/react-day-picker )) | [`9.6.2` -> `9.6.3`](https://renovatebot.com/diffs/npm/react-day-picker/9.6.2/9.6.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 |
| [sinon](https://sinonjs.org/ ) ([source](https://redirect.github.com/sinonjs/sinon )) | [`19.0.2` -> `19.0.4`](https://renovatebot.com/diffs/npm/sinon/19.0.2/19.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 |
| [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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/storybook/8.6.6/8.6.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 |
| [text-splitter](https://redirect.github.com/benbrandt/text-splitter ) | `0.24.1` -> `0.24.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/ ) | workspace.dependencies | patch |
| [typedoc](https://typedoc.org ) ([source](https://redirect.github.com/TypeStrong/TypeDoc )) | [`^0.27.4` -> `^0.28.0`](https://renovatebot.com/diffs/npm/typedoc/0.27.9/0.28.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 |
| [typedoc-plugin-markdown](https://typedoc-plugin-markdown.org ) ([source](https://redirect.github.com/typedoc2md/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown )) | [`4.5.0` -> `4.5.2`](https://renovatebot.com/diffs/npm/typedoc-plugin-markdown/4.5.0/4.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 |
| [uniffi](https://mozilla.github.io/uniffi-rs ) ([source](https://redirect.github.com/mozilla/uniffi-rs )) | `0.29.0` -> `0.29.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/ ) | workspace.dependencies | patch |
| [vitest](https://redirect.github.com/vitest-dev/vitest ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest )) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.8/3.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/ ) | devDependencies | patch |
| [net.java.dev.jna:jna](https://redirect.github.com/java-native-access/jna ) | `5.16.0` -> `5.17.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 |
---
### Release Notes
<details>
<summary>vercel/ai (@​ai-sdk/google)</summary>
### [`v1.1.26`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.26 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.25...@ai-sdk/google@1.1.26 )
##### Patch Changes
- [`0bd5bc6`](https://redirect.github.com/vercel/ai/commit/0bd5bc6 ): feat (ai): support model-generated files
- Updated dependencies \[[`0bd5bc6`](https://redirect.github.com/vercel/ai/commit/0bd5bc6 )]
- [@​ai-sdk/provider](https://redirect.github.com/ai-sdk/provider )[@​1](https://redirect.github.com/1 ).0.12
- [@​ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils )[@​2](https://redirect.github.com/2 ).1.14
### [`v1.1.25`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.25 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.24...@ai-sdk/google@1.1.25 )
##### Patch Changes
- Updated dependencies \[[`2e1101a`](https://redirect.github.com/vercel/ai/commit/2e1101a )]
- [@​ai-sdk/provider](https://redirect.github.com/ai-sdk/provider )[@​1](https://redirect.github.com/1 ).0.11
- [@​ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils )[@​2](https://redirect.github.com/2 ).1.13
### [`v1.1.24`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.24 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.23...@ai-sdk/google@1.1.24 )
##### Patch Changes
- [`5261762`](https://redirect.github.com/vercel/ai/commit/5261762 ): fix (provider/google): ensure correct finishReason for tool calls in streaming response
### [`v1.1.23`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.23 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.22...@ai-sdk/google@1.1.23 )
##### Patch Changes
- [`413f5a7`](https://redirect.github.com/vercel/ai/commit/413f5a7 ): feat (providers/google): add gemma 3 model id
### [`v1.1.22`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/react%401.1.22 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.21...@ai-sdk/google@1.1.22 )
##### Patch Changes
- Updated dependencies \[[`1531959`](https://redirect.github.com/vercel/ai/commit/1531959 )]
- [@​ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils )[@​2](https://redirect.github.com/2 ).1.12
- [@​ai-sdk/ui-utils](https://redirect.github.com/ai-sdk/ui-utils )[@​1](https://redirect.github.com/1 ).1.18
### [`v1.1.21`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.21 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.20...@ai-sdk/google@1.1.21 )
##### Patch Changes
- Updated dependencies \[[`1531959`](https://redirect.github.com/vercel/ai/commit/1531959 )]
- [@​ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils )[@​2](https://redirect.github.com/2 ).1.12
### [`v1.1.20`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/react%401.1.20 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.19...@ai-sdk/google@1.1.20 )
##### Patch Changes
- [`6255fbc`](https://redirect.github.com/vercel/ai/commit/6255fbc ): fix (ai/react): update messages when initialMessages changes
</details>
<details>
<summary>microsoft/playwright (@​playwright/test)</summary>
### [`v1.51.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.51.1 )
[Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.51.0...v1.51.1 )
##### Highlights
[https://github.com/microsoft/playwright/issues/35093 ](https://redirect.github.com/microsoft/playwright/issues/35093 ) - \[Regression]: TimeoutOverflowWarning: [`2149630`](https://redirect.github.com/microsoft/playwright/commit/2149630296 ).634 does not fit into a 32-bit signed integer
[https://github.com/microsoft/playwright/issues/35138 ](https://redirect.github.com/microsoft/playwright/issues/35138 ) - \[Regression]: TypeError: Cannot read properties of undefined (reading 'expectInfo')
#### Browser Versions
- Chromium 134.0.6998.35
- Mozilla Firefox 135.0
- WebKit 18.4
This version was also tested against the following stable channels:
- Google Chrome 133
- Microsoft Edge 133
</details>
<details>
<summary>resend/react-email (@​react-email/components)</summary>
### [`v0.0.34`](https://redirect.github.com/resend/react-email/releases/tag/%40react-email/components%400.0.34 ): @​react-email/components 0.0.34
[Compare Source](https://redirect.github.com/resend/react-email/compare/@react-email/components@0.0.33...@react-email/components@0.0.34 )
#### What's Changed
- Updated dependencies \[[`bfe1936`](https://redirect.github.com/resend/react-email/commit/bfe1936 )]
- [@​react-email/text](https://redirect.github.com/react-email/text )[@​0](https://redirect.github.com/0 ).1.0
**Full Changelog**: https://github.com/resend/react-email/compare/[@​react-email/components](https://redirect.github.com/react-email/components)[@​0](https://redirect.github.com/0).0.33...[@​react-email/components](https://redirect.github.com/react-email/components)[@​0](https://redirect.github.com/0).0.34
</details>
<details>
<summary>getsentry/sentry-electron (@​sentry/electron)</summary>
### [`v6.2.0`](https://redirect.github.com/getsentry/sentry-electron/blob/HEAD/CHANGELOG.md#620 )
[Compare Source](https://redirect.github.com/getsentry/sentry-electron/compare/6.1.0...6.2.0 )
- feat: Update from
[v9.1.0](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.1.0 ) to
[v9.6.0](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.0 )
- feat: Use new `registerPreloadScript` API in Electron >= v35 ([#​1098](https://redirect.github.com/getsentry/sentry-electron/issues/1098 ))
- feat: Add `gpuContextIntegration` ([#​1097](https://redirect.github.com/getsentry/sentry-electron/issues/1097 ))
- feat: Parse crashpad metadata from minidumps and include in electron context
([#​1095](https://redirect.github.com/getsentry/sentry-electron/issues/1095 ))
</details>
<details>
<summary>getsentry/sentry-javascript (@​sentry/react)</summary>
### [`v9.6.1`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.1 )
[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.6.0...9.6.1 )
- feat(deps): bump [@​prisma/instrumentation](https://redirect.github.com/prisma/instrumentation ) from 6.4.1 to 6.5.0 ([#​15714](https://redirect.github.com/getsentry/sentry-javascript/pull/15714 ))
- feat(deps): bump [@​sentry/cli](https://redirect.github.com/sentry/cli ) from 2.42.2 to 2.42.3 ([#​15711](https://redirect.github.com/getsentry/sentry-javascript/pull/15711 ))
- fix(nextjs): Re-patch router if it is overridden by Next.js ([#​15721](https://redirect.github.com/getsentry/sentry-javascript/pull/15721 ))
- fix(nuxt): Add Nitro Rollup plugin to inject Sentry server config ([#​15710](https://redirect.github.com/getsentry/sentry-javascript/pull/15710 ))
- chore(deps): Bump rollup to 4.35.0 ([#​15651](https://redirect.github.com/getsentry/sentry-javascript/pull/15651 ))
#### Bundle size 📦
| Path | Size |
| ---------------------------------------------------------------- | ----------------- |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) | 23.15 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) - with treeshaking flags | 22.94 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing) | 36.21 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing, Replay) | 73.39 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing, Replay) - with treeshaking flags | 66.81 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing, Replay with Canvas) | 78.01 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing, Replay, Feedback) | 90.57 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Feedback) | 40.3 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. sendFeedback) | 27.79 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. FeedbackAsync) | 32.58 KB |
| [@​sentry/react](https://redirect.github.com/sentry/react ) | 24.97 KB |
| [@​sentry/react](https://redirect.github.com/sentry/react ) (incl. Tracing) | 38.1 KB |
| [@​sentry/vue](https://redirect.github.com/sentry/vue ) | 27.4 KB |
| [@​sentry/vue](https://redirect.github.com/sentry/vue ) (incl. Tracing) | 37.9 KB |
| [@​sentry/svelte](https://redirect.github.com/sentry/svelte ) | 23.18 KB |
| CDN Bundle | 24.36 KB |
| CDN Bundle (incl. Tracing) | 36.26 KB |
| CDN Bundle (incl. Tracing, Replay) | 71.27 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 76.45 KB |
| CDN Bundle - uncompressed | 71.19 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 107.57 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 218.83 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 231.39 KB |
| [@​sentry/nextjs](https://redirect.github.com/sentry/nextjs ) (client) | 39.38 KB |
| [@​sentry/sveltekit](https://redirect.github.com/sentry/sveltekit ) (client) | 36.63 KB |
| [@​sentry/node](https://redirect.github.com/sentry/node ) | 142.29 KB |
| [@​sentry/node](https://redirect.github.com/sentry/node ) - without tracing | 95.71 KB |
| [@​sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless ) | 120.06 KB |
### [`v9.6.0`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.0 )
[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.5.0...9.6.0 )
##### Important Changes
- **feat(tanstackstart): Add `@sentry/tanstackstart-react` package and make `@sentry/tanstackstart` package a utility package ([#​15629](https://redirect.github.com/getsentry/sentry-javascript/pull/15629 ))**
Since TanStack Start is supposed to be a generic framework that supports libraries like React and Solid, the `@sentry/tanstackstart` SDK package was renamed to `@sentry/tanstackstart-react` to reflect that the SDK is specifically intended to be used for React TanStack Start applications.
Note that the TanStack Start SDK is still in alpha status and may be subject to breaking changes in non-major package updates.
##### Other Changes
- feat(astro): Accept all vite-plugin options ([#​15638](https://redirect.github.com/getsentry/sentry-javascript/pull/15638 ))
- feat(deps): bump [@​sentry/webpack-plugin](https://redirect.github.com/sentry/webpack-plugin ) from 3.2.1 to 3.2.2 ([#​15627](https://redirect.github.com/getsentry/sentry-javascript/pull/15627 ))
- feat(tanstackstart): Refine initial API ([#​15574](https://redirect.github.com/getsentry/sentry-javascript/pull/15574 ))
- fix(core): Ensure `fill` only patches functions ([#​15632](https://redirect.github.com/getsentry/sentry-javascript/pull/15632 ))
- fix(nextjs): Consider `pageExtensions` when looking for instrumentation file ([#​15701](https://redirect.github.com/getsentry/sentry-javascript/pull/15701 ))
- fix(remix): Null-check `options` ([#​15610](https://redirect.github.com/getsentry/sentry-javascript/pull/15610 ))
- fix(sveltekit): Correctly parse angle bracket type assertions for auto instrumentation ([#​15578](https://redirect.github.com/getsentry/sentry-javascript/pull/15578 ))
- fix(sveltekit): Guard process variable ([#​15605](https://redirect.github.com/getsentry/sentry-javascript/pull/15605 ))
Work in this release was contributed by [@​angelikatyborska](https://redirect.github.com/angelikatyborska ) and [@​nwalters512](https://redirect.github.com/nwalters512 ). Thank you for your contributions!
#### Bundle size 📦
| Path | Size |
| ---------------------------------------------------------------- | ----------------- |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) | 23.15 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) - with treeshaking flags | 22.94 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing) | 36.21 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing, Replay) | 73.39 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing, Replay) - with treeshaking flags | 66.8 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing, Replay with Canvas) | 78.01 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Tracing, Replay, Feedback) | 90.57 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. Feedback) | 40.3 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. sendFeedback) | 27.79 KB |
| [@​sentry/browser](https://redirect.github.com/sentry/browser ) (incl. FeedbackAsync) | 32.58 KB |
| [@​sentry/react](https://redirect.github.com/sentry/react ) | 24.97 KB |
| [@​sentry/react](https://redirect.github.com/sentry/react ) (incl. Tracing) | 38.1 KB |
| [@​sentry/vue](https://redirect.github.com/sentry/vue ) | 27.4 KB |
| [@​sentry/vue](https://redirect.github.com/sentry/vue ) (incl. Tracing) | 37.9 KB |
| [@​sentry/svelte](https://redirect.github.com/sentry/svelte ) | 23.18 KB |
| CDN Bundle | 24.36 KB |
| CDN Bundle (incl. Tracing) | 36.26 KB |
| CDN Bundle (incl. Tracing, Replay) | 71.27 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) | 76.45 KB |
| CDN Bundle - uncompressed | 71.19 KB |
| CDN Bundle (incl. Tracing) - uncompressed | 107.57 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed | 218.84 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed | 231.4 KB |
| [@​sentry/nextjs](https://redirect.github.com/sentry/nextjs ) (client) | 39.27 KB |
| [@​sentry/sveltekit](https://redirect.github.com/sentry/sveltekit ) (client) | 36.63 KB |
| [@​sentry/node](https://redirect.github.com/sentry/node ) | 142.15 KB |
| [@​sentry/node](https://redirect.github.com/sentry/node ) - without tracing | 95.58 KB |
| [@​sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless ) | 119.92 KB |
</details>
<details>
<summary>slackapi/node-slack-sdk (@​slack/web-api)</summary>
### [`v7.9.0`](https://redirect.github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.8.0...@slack/web-api@7.9.0 )
[Compare Source](https://redirect.github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.8.0...@slack/web-api@7.9.0 )
</details>
<details>
<summary>storybookjs/storybook (@​storybook/addon-essentials)</summary>
### [`v8.6.7`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#867 )
[Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.6...v8.6.7 )
- React-Native-Web: Fix errors in CLI template stories - [#​30821](https://redirect.github.com/storybookjs/storybook/pull/30821 ), thanks [@​dannyhw](https://redirect.github.com/dannyhw )!
</details>
<details>
<summary>swc-project/swc (@​swc/core)</summary>
### [`v1.11.11`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11111---2025-03-17 )
[Compare Source](https://redirect.github.com/swc-project/swc/compare/v1.11.10...v1.11.11 )
##### Bug Fixes
- **(es/ast)** Fix Typo in API ([#​10210](https://redirect.github.com/swc-project/swc/issues/10210 )) ([8eb87ba](8eb87ba896 ))
- **(es/minifier)** Do not drop numbers incorrectly ([#​10211](https://redirect.github.com/swc-project/swc/issues/10211 )) ([80ccd86](80ccd861a2 ))
- **(es/minifier)** Allow TypeScript nodes to fix `styled-jsx` ([#​10221](https://redirect.github.com/swc-project/swc/issues/10221 )) ([9d87d4d](9d87d4d8e4 ))
##### Features
- **(es/minifier)** Default to the smallest size ([#​10218](https://redirect.github.com/swc-project/swc/issues/10218 )) ([800f51a](800f51aae5 ))
##### Miscellaneous Tasks
- **(es/minifier)** Make `test.sh` faster ([#​10209](https://redirect.github.com/swc-project/swc/issues/10209 )) ([f28d96e](f28d96e356 ))
##### Refactor
- **(es/minifier)** Move some deps to dev deps ([#​10216](https://redirect.github.com/swc-project/swc/issues/10216 )) ([1dcdbbc](1dcdbbc78d ))
##### Testing
- **(es/minifier)** Add full tests back ([#​10212](https://redirect.github.com/swc-project/swc/issues/10212 )) ([e6c04b4](e6c04b4f58 ))
- **(es/minifier)** Remove `full` tests with too large input ([#​10213](https://redirect.github.com/swc-project/swc/issues/10213 )) ([99b590f](99b590f869 ))
### [`v1.11.10`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11110---2025-03-17 )
[Compare Source](https://redirect.github.com/swc-project/swc/compare/v1.11.9...v1.11.10 )
##### Bug Fixes
- **(es/proposal)** Fix declarations for `explicit-resource-management` ([#​10198](https://redirect.github.com/swc-project/swc/issues/10198 )) ([99ba555](99ba555c81 ))
- **(es/types)** Add missing types for `jsc.transform.react.refresh` ([#​10206](https://redirect.github.com/swc-project/swc/issues/10206 )) ([e71b000](e71b000392 ))
- **(typescript)** Skip the body of ArrowExpr in type usage analysis ([#​10187](https://redirect.github.com/swc-project/swc/issues/10187 )) ([9aca205](9aca205c77 ))
##### Documentation
- **(es/minifier)** Make `minifier` example utilize comments ([#​10195](https://redirect.github.com/swc-project/swc/issues/10195 )) ([ec3ebe7](ec3ebe78ff ))
##### Features
- **(es/fast-parser)** Implement the initial version ([#​10185](https://redirect.github.com/swc-project/swc/issues/10185 )) ([44e7c39](44e7c39fda ))
##### Miscellaneous Tasks
- **(es/minifier)** Fix lints & `size.sh` ([#​10191](https://redirect.github.com/swc-project/swc/issues/10191 )) ([e862c32](e862c329fc ))
##### Performance
- **(es/minifier)** Do not repeat applying pure minifier on last ([#​10196](https://redirect.github.com/swc-project/swc/issues/10196 )) ([e6b7cee](e6b7cee6cd ))
##### Refactor
- **(es/minifier)** Remove code for infinite loop ([#​10194](https://redirect.github.com/swc-project/swc/issues/10194 )) ([fcc6884](fcc6884242 ))
##### Testing
- **(es/minifier)** Update test inputs ([#​10193](https://redirect.github.com/swc-project/swc/issues/10193 )) ([97d8337](97d83372dc ))
- **(es/minifier)** Add a benchmark for real-world inputs ([#​10204](https://redirect.github.com/swc-project/swc/issues/10204 )) ([97f2180](97f2180e86 ))
- **(es/minifier)** Disable real-world benchmarks on CI ([#​10205](https://redirect.github.com/swc-project/swc/issues/10205 )) ([c5f1cbe](c5f1cbe467 ))
- **(es/minifier)** Test only sizes for large inputs ([#​10208](https://redirect.github.com/swc-project/swc/issues/10208 )) ([bec3e3e](bec3e3e960 ))
</details>
<details>
<summary>vitejs/vite-plugin-react-swc (@​vitejs/plugin-react-swc)</summary>
### [`v3.8.1`](https://redirect.github.com/vitejs/vite-plugin-react-swc/blob/HEAD/CHANGELOG.md#381 )
[Compare Source](https://redirect.github.com/vitejs/vite-plugin-react-swc/compare/v3.8.0...v3.8.1 )
##### Remove WebContainers warning [#​268](https://redirect.github.com/vitejs/vite-plugin-react-swc/pull/268 )
SWC is now supported in WebContainers 🎉
</details>
<details>
<summary>vitest-dev/vitest (@​vitest/browser)</summary>
### [`v3.0.9`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.9 )
[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9 )
##### 🐞 Bug Fixes
- Typings of `ctx.skip()` as `never` - by [@​sirlancelot](https://redirect.github.com/sirlancelot ) in [https://github.com/vitest-dev/vitest/issues/7608 ](https://redirect.github.com/vitest-dev/vitest/issues/7608 ) [<samp>(09f35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/09f35301 )
- Cleanup vitest in public `resolveConfig` API - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7623 ](https://redirect.github.com/vitest-dev/vitest/issues/7623 ) [<samp>(db14a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db14ab71 )
- Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined` arguments - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7624 ](https://redirect.github.com/vitest-dev/vitest/issues/7624 ) [<samp>(0fb21)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fb21faa )
- Race condition in RPC filesystem cache. - by [@​dts](https://redirect.github.com/
</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.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions ) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/ ). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE ).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-03-20 17:03:05 +00:00
Saul-Mirone
77e659d0b0
feat(editor): std inline extensions ( #11038 )
2025-03-20 10:40:11 +00:00
Saul-Mirone
92d76ba571
refactor(editor): merge inline to std ( #11025 )
2025-03-20 05:46:56 +00:00
Saul-Mirone
258c70cf07
refactor(editor): store should not rely on inline ( #11017 )
2025-03-20 01:33:29 +00:00
Saul-Mirone
76dc55f328
refactor(editor): remove legacy block service spec slots ( #11013 )
2025-03-20 01:04:18 +09:00
doouding
1c8d25bc29
feat: add ElementTransformManager for edgeless element basic manipulation ( #10824 )
...
### Overview:
We've been working with some legacy code in the default-tool and edgeless-selected-rect modules, which are responsible for fundamental operations like moving, resizing, and rotating elements. Currently, these operations are hardcoded, making it challenging to extend functionalities without diving deep into the code.
### What's Changing:
Introducing `ElementTransformManager` to streamline the handling of basic transformations (move, resize, rotate) while allowing the business logic to dictate when these actions occur.
Providing two ways to extend the transformations behaviour:
- Extends inside element view definition: Elements can decide how to handle move/resize events, such as enforcing size constraints.
- Extension mechanism provided by this manager: Adjust or completely override default drag behaviors, like snapping elements into alignment.
### Code Examples:
Delegate element movement to TransformManager:
```typescript
class DefaultTool {
override dragStart(event) {
if(this.dragType === DragType.ContentMoving) {
const transformManager = this.std.get(TransformManagerIdentifier);
transformManager.startDrag({ selectedElements, event });
}
}
}
```
Enforce minimum width inside view definition:
```typescript
class EdgelessNoteBlock extends GfxBlockComponent {
onResizeDelta({ dw, dh }) {
const bound = this.model.elementBound;
bound.w = Math.min(MAX_WIDTH, bound.w + dw);
bound.h = Math.min(MAX_HEIGHT, bound.h + dh);
this.model.xywh = bound.serialize();
}
}
```
Use extension to implement element snapping:
```typescript
import { TransformerExtension } from '@blocksuite/std/gfx';
// Just extends the TransformerExtension
class SnapManager extends TransformerExtension {
static override key = 'snap-manager';
onDragInitialize() {
return {
onDragMove(context) {
const { dx, dy } = this.getAlignmentMoveDistance(context.elements);
context.dx = dx;
context.dy = dy;
}
}
}
}
```
### Others
The migration will be divided into several PRs. This PR mostly focus on refactoring elements movement part of `default-tool`.
- Delegate elements movement to `TransformManager`
- Rewrite the default tool extension into `TransformManager` extension
- Add drag handler interface to gfx view (both `GfxBlockComponent` and `GfxElementModelView`) to allow element to define how it gonna react on drag
2025-03-19 15:30:06 +00:00
Saul-Mirone
1c6a876e6a
refactor(editor): improve config extension ( #11006 )
2025-03-19 13:38:10 +00:00