Commit Graph

744 Commits

Author SHA1 Message Date
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
L-Sun
fec698fd8b chore(editor): improve selection of doc in canvas (#11314)
Close [BS-2705](https://linear.app/affine-design/issue/BS-2705/[improvement]-通过-viability-control-选择-hide-in-edgeless)

This PR disabled selecting operation of notes that are only shown in page mode.
2025-03-31 12:35:02 +00:00
fundon
587fea02b8 feat(editor): add cursor to drawing tools (#11311)
Closes: [BS-2862](https://linear.app/affine-design/issue/BS-2862/pencil与highlighter光标改成)
2025-03-31 12:22:20 +00:00
fundon
f1882061a2 fix(editor): should exit drawing tools menu when Escape is pressed (#11306)
Closes: [BS-2978](https://linear.app/affine-design/issue/BS-2978/二级菜单的激活状态错误) [BS-2977](https://linear.app/affine-design/issue/BS-2977/pen和highlighter没做esc)
2025-03-31 11:05:01 +00:00
L-Sun
2f1f09e25f fix(editor): extract store spec register from effects (#11268)
Close [BS-2802](https://linear.app/affine-design/issue/BS-2802/移動端缺少bseffects導致文檔創建錯誤)
2025-03-31 10:53:02 +00:00
doouding
51dddc10be fix: template panel tooltip overflow (#11304)
Close #10171
Fixes [BS-2577](https://linear.app/affine-design/issue/BS-2577/​title-overflow-in-edgeless-mode-in-web-interface)
2025-03-31 09:51:33 +00:00
fundon
6a66bf53a8 fix(editor): adjust highlighter color (#11300)
Closes: [BS-2980](https://linear.app/affine-design/issue/BS-2980/highlighter透明度改为30percent) [BS-2979](https://linear.app/affine-design/issue/BS-2979/highlighter默认选择颜色为蓝色)
2025-03-31 09:11:26 +00:00
doouding
18cb4199fa fix: note should hide collapse button in presentation mode (#11292)
Fixes [BS-1003](https://linear.app/affine-design/issue/BS-1003/ppt-演示状态下-note-会显示折叠箭头)
2025-03-31 16:17:44 +08:00
donteatfriedrice
b2aa3084ec feat(editor): support to drag embed iframe from note to surface (#11267)
Close [BS-2807](https://linear.app/affine-design/issue/BS-2807/note-中与-surface-中-embed-iframe-block-互相拖动时的优化)
2025-03-31 06:23:11 +00:00
doodlewind
dffb89c388 feat(editor): add list block turbo renderer scaffold (#11266)
This PR allows placeholder in turbo renderer to cover list block as a basic scaffold.

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/lEGcysB4lFTEbCwZ8jMv/eda28656-e56e-4845-9fe6-885e70841697.png)
2025-03-29 04:49:25 +00:00
doouding
ee66545ac9 fix: mind map created in page mode has incorrect style (#11265)
Fixes [BS-2878](https://linear.app/affine-design/issue/BS-2878/slashmenu插入mindmap,style没有应用上)
2025-03-29 04:13:29 +00:00
doouding
fcc2ec9d66 feat: use block card to render edgeless dnd preview (#11261)
Related issue [BS-2610](https://linear.app/affine-design/issue/BS-2610/多选的拖拽:如果保护不支持预览的-block,则直接显示-icon-block-名称的方式做-fallback).

Use simpler way to render edgeless dnd preview.

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/57vl0IUaypligEBYUOO0/845d43ac-27e0-45fe-8289-2e6467c59108.png)
2025-03-29 04:13:28 +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
zzj3720
f5a91be53c fix(editor): support reactive readonly for table block (#11248)
fix: BS-2957
2025-03-28 08:19:46 +00:00
pengx17
dccd7c20aa feat(core): call real endpoint for audio transcription (#11139)
fix AF-2359
2025-03-28 07:59:35 +00:00
doouding
c4032e1bc0 fix: youtube block style (#11235)
Fixes [BS-2687](https://linear.app/affine-design/issue/BS-2687/[bug]-video-block-缩放选区坏掉)
2025-03-28 07:46:07 +00:00
Saul-Mirone
205cd7a86d refactor(editor): rename block-std to std (#11250)
Closes: BS-2946
2025-03-28 07:20:34 +00:00
Flrande
4498676a96 fix(editor): update at menu width (#11257)
Close [BS-2952](https://linear.app/affine-design/issue/BS-2952/at面板长宽为280390)
2025-03-28 06:46:45 +00:00
L-Sun
af91a0217f refactor(editor): inner toolbar surface-ref block with extension (#11246)
This PR refactor `surface-ref` toolbar with `ToolbarExtension`
2025-03-28 05:48:24 +00:00
L-Sun
e2c752d56f feat(editor): inner toolbar layout for block (#11243)
Close [BS-2808](https://linear.app/affine-design/issue/BS-2808/组件内-toolbar-重构)
2025-03-28 03:47:37 +00:00
donteatfriedrice
7193393a06 fix(editor): embed iframe block idle status selected style (#11239)
Close [BS-2936](https://linear.app/affine-design/issue/BS-2936/占位去掉描边-grabber选中时颜色加深即可)
2025-03-28 02:25:00 +00:00
donteatfriedrice
a459a00b21 feat(editor): support convert edgeless bookmark to embed iframe block (#11237)
Close [BS-2941](https://linear.app/affine-design/issue/BS-2941/白板-surface-中-card-view-无法转为-embed-view)
2025-03-28 02:25:00 +00:00
fundon
c0c0e5ea8f chore(editor): add event tracking to highlighter tool (#11232)
Closes: [BS-2947](https://linear.app/affine-design/issue/BS-2947/埋点相关)
2025-03-28 01:34:44 +00:00
doouding
367544bcc5 fix: mindmap connectors disappear (#11234)
Fixes [BS-2868](https://linear.app/affine-design/issue/BS-2868/mindmap-bug-布局四的线不见了)
2025-03-27 13:33:21 +00:00
zzj3720
f2cdf67c2a refactor(editor): adjust database-block style (#11219)
close: BS-2904, BS-2905
2025-03-27 10:35:29 +00:00
Flrande
3303684056 fix(editor): disable at menu member group for collaborator (#11208)
Close [BS-2893](https://linear.app/affine-design/issue/BS-2893/无邀请权限的member-时不需要显示invite入口)
Close [BS-2891](https://linear.app/affine-design/issue/BS-2891/mention-members-sention默认需显示3个人)
2025-03-27 09:45:14 +00:00
CatsJuice
e855197acf feat(editor): responsive edgeless toolbar pen menu (#11150)
close BS-2855
2025-03-27 08:53:27 +00:00
fundon
2c4278058b feat(editor): add highlighter (#10573)
Closes: [BS-2909](https://linear.app/affine-design/issue/BS-2909/新增highlighter)

### What's Changed!

Currently the highlighter tool is very similar to brush, but for the future, it's a standalone module.

* Added `Highlighter` element model
* Added `Highlighter` tool
* Added `Highlighter` entry to the global toolbar
2025-03-27 08:53:26 +00:00
donteatfriedrice
676a8d653f fix(editor): reorder slash menu content & media group (#11233)
Close [BS-2935](https://linear.app/affine-design/issue/BS-2935/embed-在-slash-menu-中位置调整)
2025-03-27 08:36:40 +00:00
fundon
6ade2b7084 chore(editor): add event tracking to drawing tool (#11230)
Closes: [BS-2833](https://linear.app/affine-design/issue/BS-2833/考虑屏蔽或者降低brush-行为的采集密度)
2025-03-27 08:17:44 +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
donteatfriedrice
0c73fde44a feat(editor): update embed iframe toolbar config (#11221)
part of [BS-2843](https://linear.app/affine-design/issue/BS-2843/iframe-embed-block-占位态)
2025-03-27 04:17:30 +00:00
donteatfriedrice
e763061bd6 fix(editor): dragging area gets stuck when hovering some embed blocks (#11223)
Close [BS-2778](https://linear.app/affine-design/issue/BS-2778/[bug]-选区框选-html-block-卡顿)
2025-03-27 03:59:26 +00:00
Oleg
ac600a5309 fix(editor): ui and edgeless bugs (#11087)
Co-authored-by: Mirone <Saul-Mirone@outlook.com>
2025-03-27 11:22:53 +08:00
Saul-Mirone
ce39117953 fix(editor): table data lost when converted to linked doc (#11212)
Closes: BS-2908
2025-03-26 13:07:22 +00:00
Saul-Mirone
0a8d8e0a6b feat: seperate createDoc and createStore (#11182) 2025-03-26 11:03:47 +00:00
renovate
d6093e1d66 chore: bump up all non-major dependencies (#11206)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@lottiefiles/dotlottie-wc](https://redirect.github.com/LottieFiles/dotlottie-web) ([source](https://redirect.github.com/LottieFiles/dotlottie-web/tree/HEAD/packages/wc)) | [`^0.4.0` -> `^0.5.0`](https://renovatebot.com/diffs/npm/@lottiefiles%2fdotlottie-wc/0.4.6/0.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@lottiefiles%2fdotlottie-wc/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@lottiefiles%2fdotlottie-wc/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@lottiefiles%2fdotlottie-wc/0.4.6/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@lottiefiles%2fdotlottie-wc/0.4.6/0.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@tailwindcss/postcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss)) | [`4.0.16` -> `4.0.17`](https://renovatebot.com/diffs/npm/@tailwindcss%2fpostcss/4.0.16/4.0.17) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fpostcss/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fpostcss/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fpostcss/4.0.16/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fpostcss/4.0.16/4.0.17?slim=true)](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.16` -> `4.0.17`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.0.16/4.0.17) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fvite/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fvite/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fvite/4.0.16/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fvite/4.0.16/4.0.17?slim=true)](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.483.0` -> `^0.484.0`](https://renovatebot.com/diffs/npm/lucide-react/0.483.0/0.484.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.484.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.484.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.483.0/0.484.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.483.0/0.484.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.0.16` -> `4.0.17`](https://renovatebot.com/diffs/npm/tailwindcss/4.0.16/4.0.17) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/4.0.16/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.0.16/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.0.16` -> `4.0.17`](https://renovatebot.com/diffs/npm/tailwindcss/4.0.16/4.0.17) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/4.0.16/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.0.16/4.0.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [text-splitter](https://redirect.github.com/benbrandt/text-splitter) | `0.25.0` -> `0.25.1` | [![age](https://developer.mend.io/api/mc/badges/age/crate/text-splitter/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/text-splitter/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/text-splitter/0.25.0/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/text-splitter/0.25.0/0.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [com.android.library](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | `8.9.0` -> `8.9.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.library:com.android.library.gradle.plugin/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.library:com.android.library.gradle.plugin/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.library:com.android.library.gradle.plugin/8.9.0/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.library:com.android.library.gradle.plugin/8.9.0/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | patch |
| [com.android.application](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | `8.9.0` -> `8.9.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.application:com.android.application.gradle.plugin/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.application:com.android.application.gradle.plugin/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.application:com.android.application.gradle.plugin/8.9.0/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.application:com.android.application.gradle.plugin/8.9.0/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | patch |
| [com.android.tools.build:gradle](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | `8.9.0` -> `8.9.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.build:gradle/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.tools.build:gradle/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.build:gradle/8.9.0/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.build:gradle/8.9.0/8.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |

---

### Release Notes

<details>
<summary>LottieFiles/dotlottie-web (@&#8203;lottiefiles/dotlottie-wc)</summary>

### [`v0.5.0`](https://redirect.github.com/LottieFiles/dotlottie-web/compare/@lottiefiles/dotlottie-wc@0.4.6...@lottiefiles/dotlottie-wc@0.5.0)

[Compare Source](https://redirect.github.com/LottieFiles/dotlottie-web/compare/@lottiefiles/dotlottie-wc@0.4.6...@lottiefiles/dotlottie-wc@0.5.0)

</details>

<details>
<summary>tailwindlabs/tailwindcss (@&#8203;tailwindcss/postcss)</summary>

### [`v4.0.17`](https://redirect.github.com/tailwindlabs/tailwindcss/releases/tag/v4.0.17)

[Compare Source](https://redirect.github.com/tailwindlabs/tailwindcss/compare/v4.0.16...v4.0.17)

##### Fixed

-   Fix an issue causing the CLI to hang when processing Ruby files ([#&#8203;17383](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17383))

</details>

<details>
<summary>lucide-icons/lucide (lucide-react)</summary>

### [`v0.484.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.484.0): Version 0.484.0

[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.483.0...0.484.0)

#### What's Changed

-   build(deps): bump tj-actions/changed-files from 41 to 46 in /.github/workflows by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/lucide-icons/lucide/pull/2920](https://redirect.github.com/lucide-icons/lucide/pull/2920)
-   fix(packages): consistent icon name class by [@&#8203;danteissaias](https://redirect.github.com/danteissaias) in [https://github.com/lucide-icons/lucide/pull/2878](https://redirect.github.com/lucide-icons/lucide/pull/2878)
-   feat(ci): add `x.com` to brand filter by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/2939](https://redirect.github.com/lucide-icons/lucide/pull/2939)
-   fix(icons): arcified candy & candy-off by [@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in [https://github.com/lucide-icons/lucide/pull/2944](https://redirect.github.com/lucide-icons/lucide/pull/2944)

#### New Contributors

-   [@&#8203;danteissaias](https://redirect.github.com/danteissaias) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2878](https://redirect.github.com/lucide-icons/lucide/pull/2878)

**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.483.0...0.484.0

</details>

<details>
<summary>benbrandt/text-splitter (text-splitter)</summary>

### [`v0.25.1`](https://redirect.github.com/benbrandt/text-splitter/blob/HEAD/CHANGELOG.md#v0251)

[Compare Source](https://redirect.github.com/benbrandt/text-splitter/compare/v0.25.0...v0.25.1)

##### What's New

-   Use `memchr` crate instead of `regex` for parsing phase in `TextSplitter`. This should improve performance in how quickly the text is parsed when scanning for newline characters.
-   Implement `ChunkSizer` trait automatically for many more wrappers and references to types that already implement `ChunkSizer`.

</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-03-26 10:47:02 +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
renovate
a4b4029201 chore: bump up oxlint version to v0.16.3 (#10890)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [oxlint](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.15.15` -> `0.16.3`](https://renovatebot.com/diffs/npm/oxlint/0.15.15/0.16.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.15.15/0.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.15.15/0.16.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v0.16.3`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.16.3): oxlint v0.16.3

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.16.2...oxlint_v0.16.3)

#### \[0.16.3] - 2025-03-25

##### Features

-   [`1b41cb3`](https://redirect.github.com/oxc-project/oxc/commit/1b41cb3) linter: Add suggested fix to `unicorn/prefer-structured-clone` ([#&#8203;9994](https://redirect.github.com/oxc-project/oxc/issues/9994)) (Ulrich Stark 🦀)
-   [`24cbe51`](https://redirect.github.com/oxc-project/oxc/commit/24cbe51) linter: Add suggested fixer to `typescript/no_unnecessary_parameter_property_assignment` and fix false positive ([#&#8203;9973](https://redirect.github.com/oxc-project/oxc/issues/9973)) (Ulrich Stark 🦀)

##### Bug Fixes

-   [`6c4b533`](https://redirect.github.com/oxc-project/oxc/commit/6c4b533) linter: False positive in `import/no-empty-named-blocks` ([#&#8203;9974](https://redirect.github.com/oxc-project/oxc/issues/9974)) (shulaoda)
-   [`ff13be6`](https://redirect.github.com/oxc-project/oxc/commit/ff13be6) linter: Correct fixer for spread in function arguments ([#&#8203;9972](https://redirect.github.com/oxc-project/oxc/issues/9972)) (shulaoda)

##### Refactor

-   [`0f1e0e8`](https://redirect.github.com/oxc-project/oxc/commit/0f1e0e8) linter: Gate rule docs behind feature ([#&#8203;10027](https://redirect.github.com/oxc-project/oxc/issues/10027)) (camchenry)
-   [`ad06194`](https://redirect.github.com/oxc-project/oxc/commit/ad06194) linter: Add fixer for `typescript-eslint/no-non-null-asserted-optional-chain` ([#&#8203;9993](https://redirect.github.com/oxc-project/oxc/issues/9993)) (camchenry)
-   [`402d8b7`](https://redirect.github.com/oxc-project/oxc/commit/402d8b7) linter: Improve `eslint/no-redeclare` ([#&#8203;9976](https://redirect.github.com/oxc-project/oxc/issues/9976)) (shulaoda)
-   [`be62d38`](https://redirect.github.com/oxc-project/oxc/commit/be62d38) rust: Remove usages of `lazy_static` ([#&#8203;10007](https://redirect.github.com/oxc-project/oxc/issues/10007)) (Boshen)
-   [`6432707`](https://redirect.github.com/oxc-project/oxc/commit/6432707) rust: Use `lazy-regex` ([#&#8203;10004](https://redirect.github.com/oxc-project/oxc/issues/10004)) (Boshen)
-   [`0fa58d7`](https://redirect.github.com/oxc-project/oxc/commit/0fa58d7) semantic: Always use `SymbolFlags::Function` for function id ([#&#8203;7479](https://redirect.github.com/oxc-project/oxc/issues/7479)) (Dunqing)

##### Testing

-   [`878bec6`](https://redirect.github.com/oxc-project/oxc/commit/878bec6) editor: Add test for `oxc.toggleEnable` command ([#&#8203;9987](https://redirect.github.com/oxc-project/oxc/issues/9987)) (Sysix)
-   [`093e7e5`](https://redirect.github.com/oxc-project/oxc/commit/093e7e5) editor: Add `oxc.showOutputChannel` command test ([#&#8203;9986](https://redirect.github.com/oxc-project/oxc/issues/9986)) (Sysix)
-   [`c3af9a4`](https://redirect.github.com/oxc-project/oxc/commit/c3af9a4) editor: Add tests for listing all oxc commands ([#&#8203;9930](https://redirect.github.com/oxc-project/oxc/issues/9930)) (Sysix)
-   [`71dce1f`](https://redirect.github.com/oxc-project/oxc/commit/71dce1f) editor: Add end-to-end tests for linter output ([#&#8203;9979](https://redirect.github.com/oxc-project/oxc/issues/9979)) (Cam McHenry)
-   [`c2f1be0`](https://redirect.github.com/oxc-project/oxc/commit/c2f1be0) editor: Add tests for `offset_to_position` ([#&#8203;9978](https://redirect.github.com/oxc-project/oxc/issues/9978)) (camchenry)

### [`v0.16.2`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.16.2): oxlint v0.16.2

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.16.1...oxlint_v0.16.2)

#### \[0.16.2] - 2025-03-21

-   [`bfb416c`](https://redirect.github.com/oxc-project/oxc/commit/bfb416c) editor: \[**BREAKING**] Enable nested configuration by default ([#&#8203;9929](https://redirect.github.com/oxc-project/oxc/issues/9929)) (Sysix)

##### Bug Fixes

-   [`2e8198e`](https://redirect.github.com/oxc-project/oxc/commit/2e8198e) linter: Skip extending config files that look like named configs or not files ([#&#8203;9932](https://redirect.github.com/oxc-project/oxc/issues/9932)) (camchenry)
-   [`f649fb3`](https://redirect.github.com/oxc-project/oxc/commit/f649fb3) linter: Reclassify `unicorn/no-document-cookie` as restriction ([#&#8203;9933](https://redirect.github.com/oxc-project/oxc/issues/9933)) (camchenry)

##### Documentation

-   [`46a12c6`](https://redirect.github.com/oxc-project/oxc/commit/46a12c6) linter: Tell about junit `--format` options ([#&#8203;9931](https://redirect.github.com/oxc-project/oxc/issues/9931)) (Sysix)

### [`v0.16.1`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.16.1): oxlint v0.16.1

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.16.0...oxlint_v0.16.1)

#### \[0.16.1] - 2025-03-20

##### Features

-   [`0973356`](https://redirect.github.com/oxc-project/oxc/commit/0973356) editor: Support nested configs ([#&#8203;9743](https://redirect.github.com/oxc-project/oxc/issues/9743)) (Nicholas Rayburn)
-   [`8e3d9be`](https://redirect.github.com/oxc-project/oxc/commit/8e3d9be) linter: Support `--report-unused-disable-directive` ([#&#8203;9223](https://redirect.github.com/oxc-project/oxc/issues/9223)) (1zumii)
-   [`62c0132`](https://redirect.github.com/oxc-project/oxc/commit/62c0132) linter: Add import/no-empty-named-blocks rule ([#&#8203;9710](https://redirect.github.com/oxc-project/oxc/issues/9710)) (yefan)
-   [`ea7e3f0`](https://redirect.github.com/oxc-project/oxc/commit/ea7e3f0) oxc_language_server: Support nested configs ([#&#8203;9739](https://redirect.github.com/oxc-project/oxc/issues/9739)) (Nicholas Rayburn)

##### Bug Fixes

-   [`e9565c9`](https://redirect.github.com/oxc-project/oxc/commit/e9565c9) linter: Parse vue custom tag that starts with script ([#&#8203;9887](https://redirect.github.com/oxc-project/oxc/issues/9887)) (Boshen)
-   [`e6f7c74`](https://redirect.github.com/oxc-project/oxc/commit/e6f7c74) linter: Import and fix tests for typescript::no_unnecessary_parameter_property_assignment ([#&#8203;9720](https://redirect.github.com/oxc-project/oxc/issues/9720)) (Ulrich Stark)
-   [`4e39ba0`](https://redirect.github.com/oxc-project/oxc/commit/4e39ba0) linter: Ignore modules with invalid source ([#&#8203;9801](https://redirect.github.com/oxc-project/oxc/issues/9801)) (branchseer)
-   [`73fe248`](https://redirect.github.com/oxc-project/oxc/commit/73fe248) linter/no_case_declarations: Fix span of error for `await using` ([#&#8203;9854](https://redirect.github.com/oxc-project/oxc/issues/9854)) (overlookmotel)
-   [`2e023ab`](https://redirect.github.com/oxc-project/oxc/commit/2e023ab) linter/react: `exhaustive-deps` report longest dependency ([#&#8203;9891](https://redirect.github.com/oxc-project/oxc/issues/9891)) (overlookmotel)
-   [`a113f7e`](https://redirect.github.com/oxc-project/oxc/commit/a113f7e) parser: Error when `}` and `>` appear in `JSXText` ([#&#8203;9777](https://redirect.github.com/oxc-project/oxc/issues/9777)) (Boshen)
-   [`3d4c5f3`](https://redirect.github.com/oxc-project/oxc/commit/3d4c5f3) semantic: Correctly visit `IfStmt` `test` when building cfg ([#&#8203;9864](https://redirect.github.com/oxc-project/oxc/issues/9864)) (camc314)

##### Performance

-   [`d44ab9b`](https://redirect.github.com/oxc-project/oxc/commit/d44ab9b) linter: Return early in loop in `promise/no-nesting` ([#&#8203;9808](https://redirect.github.com/oxc-project/oxc/issues/9808)) (therewillbecode)
-   [`2b65ed2`](https://redirect.github.com/oxc-project/oxc/commit/2b65ed2) linter/no_unescaped_entities: Optimize string search and error generation ([#&#8203;9832](https://redirect.github.com/oxc-project/oxc/issues/9832)) (overlookmotel)
-   [`84fa538`](https://redirect.github.com/oxc-project/oxc/commit/84fa538) minify: Use mimalloc-safe to replace mimalloc ([#&#8203;9810](https://redirect.github.com/oxc-project/oxc/issues/9810)) (LongYinan)

##### Documentation

-   [`8bc70b3`](https://redirect.github.com/oxc-project/oxc/commit/8bc70b3) language_server: Tell about Initialization options + didChangeWatchedFiles for nested configuration ([#&#8203;9876](https://redirect.github.com/oxc-project/oxc/issues/9876)) (Alexander S.)
-   [`e408db8`](https://redirect.github.com/oxc-project/oxc/commit/e408db8) linter: Improve docs for `unicorn/no-abusive-eslint-disable` ([#&#8203;9834](https://redirect.github.com/oxc-project/oxc/issues/9834)) (shulaoda)
-   [`187fe39`](https://redirect.github.com/oxc-project/oxc/commit/187fe39) linter: Add correctness examples to `typescript-prefer-as-const` ([#&#8203;9805](https://redirect.github.com/oxc-project/oxc/issues/9805)) (therewillbecode)

##### Refactor

-   [`723fdfb`](https://redirect.github.com/oxc-project/oxc/commit/723fdfb) linter: Improve `jest-prefer-hooks-in-order` ([#&#8203;9892](https://redirect.github.com/oxc-project/oxc/issues/9892)) (therewillbecode)
-   [`544a090`](https://redirect.github.com/oxc-project/oxc/commit/544a090) linter: Remove not implemented rule `constructor-super` ([#&#8203;9877](https://redirect.github.com/oxc-project/oxc/issues/9877)) (Sysix)
-   [`8bdac56`](https://redirect.github.com/oxc-project/oxc/commit/8bdac56) linter: Improve `ast_util::is_method_call` ([#&#8203;9874](https://redirect.github.com/oxc-project/oxc/issues/9874)) (shulaoda)
-   [`a68e45c`](https://redirect.github.com/oxc-project/oxc/commit/a68e45c) linter: Improve `unicorn/no-anonymous-default-export` ([#&#8203;9847](https://redirect.github.com/oxc-project/oxc/issues/9847)) (dalaoshu)
-   [`6407200`](https://redirect.github.com/oxc-project/oxc/commit/6407200) linter: Improve `unicorn/new-for-builtins` ([#&#8203;9804](https://redirect.github.com/oxc-project/oxc/issues/9804)) (dalaoshu)
-   [`b34cf94`](https://redirect.github.com/oxc-project/oxc/commit/b34cf94) oxlint: Remove `jemallocator` ([#&#8203;9823](https://redirect.github.com/oxc-project/oxc/issues/9823)) (Boshen)

### [`v0.16.0`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.16.0): oxlint v0.16.0

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.15...oxlint_v0.16.0)

#### Announcing Oxlint Beta: https://oxc.rs/blog/2025-03-15-oxlint-beta.html

#### \[0.16.0] - 2025-03-16

-   [`225e266`](https://redirect.github.com/oxc-project/oxc/commit/225e266) linter: \[**BREAKING**] Enable `--experimental-nested-config` by default and add `--disable-nested-config` option ([#&#8203;9760](https://redirect.github.com/oxc-project/oxc/issues/9760)) (camchenry)

##### Features

-   [`27d6e9b`](https://redirect.github.com/oxc-project/oxc/commit/27d6e9b) editor: Only watch .oxlintrc.json or user supplied config paths ([#&#8203;9731](https://redirect.github.com/oxc-project/oxc/issues/9731)) (Nicholas Rayburn)
-   [`8dd6809`](https://redirect.github.com/oxc-project/oxc/commit/8dd6809) linter: Add `eslint/no-lonely-if` ([#&#8203;9660](https://redirect.github.com/oxc-project/oxc/issues/9660)) (therewillbecode)
-   [`c22276e`](https://redirect.github.com/oxc-project/oxc/commit/c22276e) oxc_linter: Sort rules by plugin and rule name when outputting resolved config as a JSON string ([#&#8203;9799](https://redirect.github.com/oxc-project/oxc/issues/9799)) (Nicholas Rayburn)

##### Bug Fixes

-   [`22f18ac`](https://redirect.github.com/oxc-project/oxc/commit/22f18ac) linter: Improve `jsx-a11y/anchor-ambiguous-text` diagnostic message ([#&#8203;9789](https://redirect.github.com/oxc-project/oxc/issues/9789)) (1zumii)
-   [`6c11740`](https://redirect.github.com/oxc-project/oxc/commit/6c11740) linter: False positive in `unicorn/catch-error-name` ([#&#8203;9763](https://redirect.github.com/oxc-project/oxc/issues/9763)) (shulaoda)

##### Documentation

-   [`ea6b6d9`](https://redirect.github.com/oxc-project/oxc/commit/ea6b6d9) linter: Improve docs for `eslint-valid-typeof` ([#&#8203;9797](https://redirect.github.com/oxc-project/oxc/issues/9797)) (therewillbecode)
-   [`2c48fba`](https://redirect.github.com/oxc-project/oxc/commit/2c48fba) linter: Fix typo in `oxc/bad-min-max-func` ([#&#8203;9791](https://redirect.github.com/oxc-project/oxc/issues/9791)) (Flo)
-   [`210b876`](https://redirect.github.com/oxc-project/oxc/commit/210b876) linter: Improve `eslint-no-async-promise-executor` ([#&#8203;9778](https://redirect.github.com/oxc-project/oxc/issues/9778)) (therewillbecode)
-   [`f8628bc`](https://redirect.github.com/oxc-project/oxc/commit/f8628bc) linter: Improve `eslint-no-class-assign` ([#&#8203;9779](https://redirect.github.com/oxc-project/oxc/issues/9779)) (therewillbecode)
-   [`faca7a8`](https://redirect.github.com/oxc-project/oxc/commit/faca7a8) linter: Improve `eslint-no-self-assign` ([#&#8203;9768](https://redirect.github.com/oxc-project/oxc/issues/9768)) (therewillbecode)

##### Refactor

-   [`227d203`](https://redirect.github.com/oxc-project/oxc/commit/227d203) linter: Improve `typescript-no-unnecessary-type-constraint` ([#&#8203;9798](https://redirect.github.com/oxc-project/oxc/issues/9798)) (therewillbecode)
-   [`05fe2cd`](https://redirect.github.com/oxc-project/oxc/commit/05fe2cd) linter: Use `is_lexical` when checking for lexical decl ([#&#8203;9781](https://redirect.github.com/oxc-project/oxc/issues/9781)) (camc314)
-   [`fcdd810`](https://redirect.github.com/oxc-project/oxc/commit/fcdd810) linter: Remove if let nesting from `unicorn-no-date-clone` ([#&#8203;9767](https://redirect.github.com/oxc-project/oxc/issues/9767)) (therewillbecode)
-   [`5a9e1b9`](https://redirect.github.com/oxc-project/oxc/commit/5a9e1b9) linter: Improve `typescript-no-misused-new` ([#&#8203;9766](https://redirect.github.com/oxc-project/oxc/issues/9766)) (therewillbecode)
-   [`9df5565`](https://redirect.github.com/oxc-project/oxc/commit/9df5565) linter: Improve `unicorn/filename-case` ([#&#8203;9762](https://redirect.github.com/oxc-project/oxc/issues/9762)) (shulaoda)
-   [`b0b1f18`](https://redirect.github.com/oxc-project/oxc/commit/b0b1f18) linter: Remove if let nesting from `nextjs-no-async-client-component` ([#&#8203;9764](https://redirect.github.com/oxc-project/oxc/issues/9764)) (therewillbecode)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-03-26 09:13:21 +00:00
L-Sun
6b4a5b1d71 fix(editor): missing connectors when click copy as image action in surface-ref-toolbar (#11137)
Continue #10933
2025-03-26 08:57:39 +00:00
donteatfriedrice
c5624bfd13 refactor(editor): embed iframe block surface toolbar extension (#11193) 2025-03-26 08:38:07 +00:00
donteatfriedrice
b5945c7e7d feat(editor): limit embed edgeless iframe block width and height (#11192)
[BS-2841](https://linear.app/affine-design/issue/BS-2841/iframe-embed-block-edgeless-block-component-限制-resize-时的最大最小宽高)
2025-03-26 08:38:06 +00:00
donteatfriedrice
39fa8e87cf feat(editor): add idle status for embed iframe block (#11142)
To close:
[BS-2843](https://linear.app/affine-design/issue/BS-2843/iframe-embed-block-占位态)
[BS-2844](https://linear.app/affine-design/issue/BS-2844/iframe-embed-block-create-modal-ui-调整)
[BS-2880](https://linear.app/affine-design/issue/BS-2880/spotify-选中时圆角有问题)
[BS-2881](https://linear.app/affine-design/issue/BS-2881/miro-圆角有问题-点击-see-the-board-加载之后就好了)
2025-03-26 08:38:06 +00:00
zzj3720
91876301bf refactor(editor): adjust min-width of context-menu (#11078)
fix: BS-2686
2025-03-26 07:48:17 +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
fundon
ce7e3330f4 fix(editor): description of linked doc should be displayed on multiple lines (#11162)
Closes: [BS-2902](https://linear.app/affine-design/issue/BS-2902/有个bug,这个编辑之后换行会没有-fundon)
2025-03-26 03:00:24 +00:00
Saul-Mirone
27d07a6e24 feat(editor): add command for edgeless clipboard (#11173) 2025-03-25 12:09:24 +00:00
Saul-Mirone
1871428021 feat(editor): extensionize clipboards (#11172) 2025-03-25 12:09:24 +00:00
Saul-Mirone
a4033f5596 feat(editor): clipboard config extensions (#11171) 2025-03-25 12:09:24 +00:00