Commit Graph

2757 Commits

Author SHA1 Message Date
akumatus
363c9799f3 fix(core): chat-panel ui (#10928)
Close [AF-2332](https://linear.app/affine-design/issue/AF-2332).
Close [AF-2333](https://linear.app/affine-design/issue/AF-2333).
2025-03-17 10:53:55 +00:00
EYHN
b401012d85 feat(core): user service loading state (#10922) 2025-03-17 09:28:25 +00:00
Saul-Mirone
8bd4125c96 feat(editor): enable block meta for code, image, list block (#10905) 2025-03-17 03:29:51 +00:00
CatsJuice
8822acf041 fix(core): correct template setting item text (#10902) 2025-03-17 02:21:08 +00:00
L-Sun
c1301be1f5 fix(editor): repeat instantiation of std (#10896) 2025-03-17 01:04:51 +00:00
Saul-Mirone
26285f7dcb feat(editor): unify block props api (#10888)
Closes: [BS-2707](https://linear.app/affine-design/issue/BS-2707/统一使用props获取和更新block-prop)
2025-03-16 05:48:34 +00:00
renovate
b4f49a234f chore: bump up all non-major dependencies (#10885)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@capacitor/android](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.0.1` -> `7.1.0`](https://renovatebot.com/diffs/npm/@capacitor%2fandroid/7.0.1/7.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fandroid/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fandroid/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fandroid/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fandroid/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@capacitor/cli](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.0.1` -> `7.1.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcli/7.0.1/7.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcli/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fcli/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fcli/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcli/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@capacitor/core](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.0.1` -> `7.1.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/7.0.1/7.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcore/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fcore/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fcore/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcore/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@capacitor/ios](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.0.1` -> `7.1.0`](https://renovatebot.com/diffs/npm/@capacitor%2fios/7.0.1/7.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fios/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fios/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fios/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fios/7.0.1/7.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@capgo/inappbrowser](https://redirect.github.com/Cap-go/capacitor-inappbrowser) | [`7.2.21` -> `7.3.0`](https://renovatebot.com/diffs/npm/@capgo%2finappbrowser/7.2.21/7.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capgo%2finappbrowser/7.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capgo%2finappbrowser/7.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capgo%2finappbrowser/7.2.21/7.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capgo%2finappbrowser/7.2.21/7.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@chromatic-com/storybook](https://redirect.github.com/chromaui/addon-visual-tests) | [`3.2.5` -> `3.2.6`](https://renovatebot.com/diffs/npm/@chromatic-com%2fstorybook/3.2.5/3.2.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@chromatic-com%2fstorybook/3.2.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@chromatic-com%2fstorybook/3.2.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@chromatic-com%2fstorybook/3.2.5/3.2.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@chromatic-com%2fstorybook/3.2.5/3.2.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs) | [`3.0.0-alpha.73` -> `3.0.0-alpha.75`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.73/3.0.0-alpha.75) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.75?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.75?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.73/3.0.0-alpha.75?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.73/3.0.0-alpha.75?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@shoelace-style/shoelace](https://redirect.github.com/shoelace-style/shoelace) | [`2.20.0` -> `2.20.1`](https://renovatebot.com/diffs/npm/@shoelace-style%2fshoelace/2.20.0/2.20.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@shoelace-style%2fshoelace/2.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@shoelace-style%2fshoelace/2.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@shoelace-style%2fshoelace/2.20.0/2.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@shoelace-style%2fshoelace/2.20.0/2.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@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.4` -> `8.6.6`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.6.4/8.6.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.6.4/8.6.6?slim=true)](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.4` -> `8.6.6`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.6.4/8.6.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.6.4/8.6.6?slim=true)](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.4` -> `8.6.6`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.6.4/8.6.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.6.4/8.6.6?slim=true)](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.4` -> `8.6.6`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.6.4/8.6.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-mdx-gfm/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-mdx-gfm/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-mdx-gfm/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-mdx-gfm/8.6.4/8.6.6?slim=true)](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.4` -> `8.6.6`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.6.4/8.6.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact/8.6.4/8.6.6?slim=true)](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.4` -> `8.6.6`](https://renovatebot.com/diffs/npm/@storybook%2freact-vite/8.6.4/8.6.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact-vite/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact-vite/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact-vite/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact-vite/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.11.8` -> `1.11.9`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.11.8/1.11.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.11.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.11.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.11.8/1.11.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.11.8/1.11.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@tailwindcss/postcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-postcss)) | [`4.0.13` -> `4.0.14`](https://renovatebot.com/diffs/npm/@tailwindcss%2fpostcss/4.0.13/4.0.14) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fpostcss/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fpostcss/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fpostcss/4.0.13/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fpostcss/4.0.13/4.0.14?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.13` -> `4.0.14`](https://renovatebot.com/diffs/npm/@tailwindcss%2fvite/4.0.13/4.0.14) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@tailwindcss%2fvite/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@tailwindcss%2fvite/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@tailwindcss%2fvite/4.0.13/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@tailwindcss%2fvite/4.0.13/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@toeverything/theme](https://redirect.github.com/toeverything/design) | [`1.1.12` -> `1.1.13`](https://renovatebot.com/diffs/npm/@toeverything%2ftheme/1.1.12/1.1.13) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@toeverything%2ftheme/1.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@toeverything%2ftheme/1.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@toeverything%2ftheme/1.1.12/1.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@toeverything%2ftheme/1.1.12/1.1.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [bullmq](https://bullmq.io/) ([source](https://redirect.github.com/taskforcesh/bullmq)) | [`5.41.9` -> `5.43.1`](https://renovatebot.com/diffs/npm/bullmq/5.41.9/5.43.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/bullmq/5.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/bullmq/5.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/bullmq/5.41.9/5.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/bullmq/5.41.9/5.43.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [cmdk](https://redirect.github.com/pacocoursey/cmdk) ([source](https://redirect.github.com/pacocoursey/cmdk/tree/HEAD/cmdk)) | [`1.0.4` -> `1.1.1`](https://renovatebot.com/diffs/npm/cmdk/1.0.4/1.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/cmdk/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cmdk/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cmdk/1.0.4/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cmdk/1.0.4/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [fast-xml-parser](https://redirect.github.com/NaturalIntelligence/fast-xml-parser) | [`5.0.8` -> `5.0.9`](https://renovatebot.com/diffs/npm/fast-xml-parser/5.0.8/5.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/fast-xml-parser/5.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/fast-xml-parser/5.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/fast-xml-parser/5.0.8/5.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fast-xml-parser/5.0.8/5.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [file-type](https://redirect.github.com/sindresorhus/file-type) | [`20.4.0` -> `20.4.1`](https://renovatebot.com/diffs/npm/file-type/20.4.0/20.4.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/file-type/20.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/file-type/20.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/file-type/20.4.0/20.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/file-type/20.4.0/20.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [html-validate](https://html-validate.org) ([source](https://gitlab.com/html-validate/html-validate)) | [`9.5.0` -> `9.5.1`](https://renovatebot.com/diffs/npm/html-validate/9.5.0/9.5.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/html-validate/9.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/html-validate/9.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/html-validate/9.5.0/9.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/html-validate/9.5.0/9.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [i18next](https://www.i18next.com) ([source](https://redirect.github.com/i18next/i18next)) | [`24.2.2` -> `24.2.3`](https://renovatebot.com/diffs/npm/i18next/24.2.2/24.2.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/i18next/24.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/i18next/24.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/i18next/24.2.2/24.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/i18next/24.2.2/24.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [libc](https://redirect.github.com/rust-lang/libc) | `0.2.170` -> `0.2.171` | [![age](https://developer.mend.io/api/mc/badges/age/crate/libc/0.2.171?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/libc/0.2.171?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/libc/0.2.170/0.2.171?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/libc/0.2.170/0.2.171?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [lint-staged](https://redirect.github.com/lint-staged/lint-staged) | [`15.4.3` -> `15.5.0`](https://renovatebot.com/diffs/npm/lint-staged/15.4.3/15.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.4.3/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.4.3/15.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.479.0` -> `^0.482.0`](https://renovatebot.com/diffs/npm/lucide-react/0.479.0/0.482.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.482.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.482.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.479.0/0.482.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.479.0/0.482.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [mixpanel](https://redirect.github.com/mixpanel/mixpanel-node) | [`0.18.0` -> `0.18.1`](https://renovatebot.com/diffs/npm/mixpanel/0.18.0/0.18.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/mixpanel/0.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/mixpanel/0.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/mixpanel/0.18.0/0.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/mixpanel/0.18.0/0.18.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [mixpanel-browser](https://redirect.github.com/mixpanel/mixpanel-js) | [`2.61.1` -> `2.61.2`](https://renovatebot.com/diffs/npm/mixpanel-browser/2.61.1/2.61.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/mixpanel-browser/2.61.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/mixpanel-browser/2.61.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/mixpanel-browser/2.61.1/2.61.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/mixpanel-browser/2.61.1/2.61.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [nest-commander](https://nest-commander.jaymcdoniel.dev) ([source](https://redirect.github.com/jmcdo29/nest-commander/tree/HEAD/pacakges/nest-commander)) | [`3.16.1` -> `3.17.0`](https://renovatebot.com/diffs/npm/nest-commander/3.16.1/3.17.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nest-commander/3.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nest-commander/3.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nest-commander/3.16.1/3.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nest-commander/3.16.1/3.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [once_cell](https://redirect.github.com/matklad/once_cell) | `1.20.3` -> `1.21.1` | [![age](https://developer.mend.io/api/mc/badges/age/crate/once_cell/1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/once_cell/1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/once_cell/1.20.3/1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/once_cell/1.20.3/1.21.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | minor |
| [python](https://redirect.github.com/actions/python-versions) | `3.12` -> `3.13` | [![age](https://developer.mend.io/api/mc/badges/age/github-releases/actions%2fpython-versions/3.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/github-releases/actions%2fpython-versions/3.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/github-releases/actions%2fpython-versions/3.12.9/3.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/github-releases/actions%2fpython-versions/3.12.9/3.13.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | uses-with | minor |
| [react-day-picker](https://daypicker.dev) ([source](https://redirect.github.com/gpbl/react-day-picker)) | [`9.6.1` -> `9.6.2`](https://renovatebot.com/diffs/npm/react-day-picker/9.6.1/9.6.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-day-picker/9.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-day-picker/9.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-day-picker/9.6.1/9.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-day-picker/9.6.1/9.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | 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.4` -> `8.6.6`](https://renovatebot.com/diffs/npm/storybook/8.6.4/8.6.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.6.4/8.6.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | [`4.0.13` -> `4.0.14`](https://renovatebot.com/diffs/npm/tailwindcss/4.0.13/4.0.14) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/4.0.13/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.0.13/4.0.14?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.13` -> `4.0.14`](https://renovatebot.com/diffs/npm/tailwindcss/4.0.13/4.0.14) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/4.0.13/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/4.0.13/4.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | `1.44.0` -> `1.44.1` | [![age](https://developer.mend.io/api/mc/badges/age/crate/tokio/1.44.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio/1.44.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio/1.44.0/1.44.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio/1.44.0/1.44.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.4.0` -> `7.5.0`](https://renovatebot.com/diffs/npm/undici/7.4.0/7.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/undici/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/undici/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/undici/7.4.0/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/undici/7.4.0/7.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [uuid](https://redirect.github.com/uuid-rs/uuid) | `1.15.1` -> `1.16.0` | [![age](https://developer.mend.io/api/mc/badges/age/crate/uuid/1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/uuid/1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/uuid/1.15.1/1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/uuid/1.15.1/1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | minor |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.2.1` -> `6.2.2`](https://renovatebot.com/diffs/npm/vite/6.2.1/6.2.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.2.1/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.2.1/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.2.1` -> `6.2.2`](https://renovatebot.com/diffs/npm/vite/6.2.1/6.2.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.2.1/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.2.1/6.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |

---

### Release Notes

<details>
<summary>ionic-team/capacitor (@&#8203;capacitor/android)</summary>

### [`v7.1.0`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#710-2025-03-12)

[Compare Source](https://redirect.github.com/ionic-team/capacitor/compare/7.0.1...7.1.0)

##### Bug Fixes

-   **android:** add EdgeToEdge compatibility ([#&#8203;7871](https://redirect.github.com/ionic-team/capacitor/issues/7871)) ([64a8bc4](64a8bc40de))
-   **android:** sanitize portable file name ([#&#8203;7894](https://redirect.github.com/ionic-team/capacitor/issues/7894)) ([5f09297](5f092970e3))
-   **cli:** don't run bundle if not installed ([#&#8203;7896](https://redirect.github.com/ionic-team/capacitor/issues/7896)) ([ee55f6c](ee55f6c546))
-   **core:** use getPlatform instead of platform in cordova.js ([#&#8203;7902](https://redirect.github.com/ionic-team/capacitor/issues/7902)) ([277db7b](277db7b48c))
-   **http:** boundary not added for Request objects ([#&#8203;7897](https://redirect.github.com/ionic-team/capacitor/issues/7897)) ([bdaa6f3](bdaa6f3c38))
-   **ios:** don't check isMediaExtension on range requests ([#&#8203;7868](https://redirect.github.com/ionic-team/capacitor/issues/7868)) ([028caa5](028caa5378))
-   **ios:** listen for CapacitorViewDidAppear ([#&#8203;7850](https://redirect.github.com/ionic-team/capacitor/issues/7850)) ([e24ffb7](e24ffb7d4d))
-   **ios:** Reset plugin listeners when WebView process is terminated ([#&#8203;7905](https://redirect.github.com/ionic-team/capacitor/issues/7905)) ([d039157](d039157672))

##### Features

-   Add function to inject external JS into WebView before document load ([#&#8203;7864](https://redirect.github.com/ionic-team/capacitor/issues/7864)) ([ec0954c](ec0954c197))
-   **android:** add adjustMarginsForEdgeToEdge configuration option ([#&#8203;7885](https://redirect.github.com/ionic-team/capacitor/issues/7885)) ([1ea86d1](1ea86d166a))
-   **cli:** add more configurations to build command ([#&#8203;7769](https://redirect.github.com/ionic-team/capacitor/issues/7769)) ([90f95d1](90f95d1a82))

#### [7.0.1](https://redirect.github.com/ionic-team/capacitor/compare/7.0.0...7.0.1) (2025-01-21)

##### Bug Fixes

-   make migrate use 7.0.0 ([#&#8203;7837](https://redirect.github.com/ionic-team/capacitor/issues/7837)) ([5dc309e](5dc309ea8d))
-   use Capacitor 7 for SPM dependency ([#&#8203;7835](https://redirect.github.com/ionic-team/capacitor/issues/7835)) ([640c3cb](640c3cb22a))

</details>

<details>
<summary>Cap-go/capacitor-inappbrowser (@&#8203;capgo/inappbrowser)</summary>

### [`v7.3.0`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#730-2025-03-13)

[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.21...7.3.0)

##### Features

-   make the plugin crash free the max possible ([8ac2a84](8ac2a8455a))

##### [7.2.21](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.20...7.2.21) (2025-03-10)

##### Bug Fixes

-   **deps:** update dependency androidx.coordinatorlayout:coordinatorlayout to v1.3.0 ([#&#8203;290](https://redirect.github.com/Cap-go/capacitor-inappbrowser/issues/290)) ([61feebb](61feebb67e))

##### [7.2.20](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.19...7.2.20) (2025-03-03)

##### [7.2.19](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.18...7.2.19) (2025-03-03)

##### Bug Fixes

-   **deps:** update dependency androidx.constraintlayout:constraintlayout to v2.2.1 ([#&#8203;287](https://redirect.github.com/Cap-go/capacitor-inappbrowser/issues/287)) ([df45e17](df45e171ce))

##### [7.2.18](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.17...7.2.18) (2025-02-27)

##### Bug Fixes

-   renovate ([797cb7f](797cb7fbf6))

##### [7.2.17](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.16...7.2.17) (2025-02-18)

##### Bug Fixes

-   scoll issue ([e90cba3](e90cba3d35))

##### [7.2.16](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.15...7.2.16) (2025-02-10)

##### Bug Fixes

-   **deps:** update dependency androidx.constraintlayout:constraintlayout to v2.2.0 ([#&#8203;282](https://redirect.github.com/Cap-go/capacitor-inappbrowser/issues/282)) ([69fab8c](69fab8c94d))

##### [7.2.15](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.14...7.2.15) (2025-02-10)

##### [7.2.14](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.13...7.2.14) (2025-02-09)

##### Bug Fixes

-   handle Android back button properly ([cffb6fe](cffb6fe97c))

##### [7.2.13](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.12...7.2.13) (2025-02-09)

##### Bug Fixes

-   lint issue ([aefe361](aefe361bf2))

##### [7.2.12](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.11...7.2.12) (2025-02-09)

##### Bug Fixes

-   add missing class ([78056b0](78056b036d))

##### [7.2.11](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.10...7.2.11) (2025-02-09)

##### Bug Fixes

-   remove wrong implementation ([c63b329](c63b3291a6))

##### [7.2.10](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.9...7.2.10) (2025-02-08)

##### Bug Fixes

-   eslint config ([2c7e3a3](2c7e3a3750))

##### [7.2.9](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.8...7.2.9) (2025-02-08)

##### Bug Fixes

-   author ([9cd5e8e](9cd5e8ef27))

##### [7.2.8](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.7...7.2.8) (2025-02-08)

##### Bug Fixes

-   lint ([6a07cd2](6a07cd2c7d))

##### [7.2.7](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.6...7.2.7) (2025-02-08)

##### Bug Fixes

-   use latest ([f9d8687](f9d8687cbd))

##### [7.2.6](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.5...7.2.6) (2025-02-08)

##### Bug Fixes

-   package list ([f59719e](f59719e12a))

##### [7.2.5](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.4...7.2.5) (2025-02-08)

##### Bug Fixes

-   remove old lock ([f0920a7](f0920a7527))

##### [7.2.4](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.3...7.2.4) (2025-02-08)

##### Bug Fixes

-   git ignore ([3f5f878](3f5f8788fc))

##### [7.2.3](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.2...7.2.3) (2025-02-08)

##### Bug Fixes

-   switch to new plugin definition ([c63bb32](c63bb32867))

##### [7.2.2](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.1...7.2.2) (2025-02-08)

##### Bug Fixes

-   lock ([96f9231](96f9231ed7))

##### [7.2.1](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.2.0...7.2.1) (2025-02-08)

##### Bug Fixes

-   json typo ([b531feb](b531feb62f))
-   remove pnpm ([f587f10](f587f102aa))

</details>

<details>
<summary>chromaui/addon-visual-tests (@&#8203;chromatic-com/storybook)</summary>

### [`v3.2.6`](https://redirect.github.com/chromaui/addon-visual-tests/releases/tag/v3.2.6)

[Compare Source](https://redirect.github.com/chromaui/addon-visual-tests/compare/v3.2.5...v3.2.6)

##### 🐛 Bug Fix

-   Fix SSO url [#&#8203;363](https://redirect.github.com/chromaui/addon-visual-tests/pull/363) ([@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen))

##### Authors: 1

-   Kasper Peulen ([@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen))

</details>

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

### [`v3.0.0-alpha.75`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.74...@napi-rs/cli@3.0.0-alpha.75)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.74...@napi-rs/cli@3.0.0-alpha.75)

### [`v3.0.0-alpha.74`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.73...@napi-rs/cli@3.0.0-alpha.74)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.73...@napi-rs/cli@3.0.0-alpha.74)

</details>

<details>
<summary>shoelace-style/shoelace (@&#8203;shoelace-style/shoelace)</summary>

### [`v2.20.1`](https://redirect.github.com/shoelace-style/shoelace/releases/tag/v2.20.1)

[Compare Source](https://redirect.github.com/shoelace-style/shoelace/compare/v2.20.0...v2.20.1)

#### Commits

-   [`19537b1`](https://redirect.github.com/shoelace-style/shoelace/commit/19537b1): Fix a11y issues for closing components with focused children (Christian Schilling) [#&#8203;2383](https://redirect.github.com/shoelace-style/shoelace/pull/2383)
-   [`61c73cd`](https://redirect.github.com/shoelace-style/shoelace/commit/61c73cd): Add ticket number to changelog (Christian Schilling) [#&#8203;2383](https://redirect.github.com/shoelace-style/shoelace/pull/2383)
-   Nested tab groups broken in v2.19.1 ([#&#8203;2367](https://redirect.github.com/shoelace-style/shoelace/issues/2367)) [#&#8203;2367](https://redirect.github.com/shoelace-style/shoelace/pull/2367) ([Christian Schilling](6f09a75567))
-   [`d83d620`](https://redirect.github.com/shoelace-style/shoelace/commit/d83d620): Remove log statement (Christian Schilling) [#&#8203;2383](https://redirect.github.com/shoelace-style/shoelace/pull/2383)
-   [`0a48bc5`](https://redirect.github.com/shoelace-style/shoelace/commit/0a48bc5): Merge remote-tracking branch 'upstream/next' into fix/a11y-errors-for-blur (Christian Schilling) [#&#8203;2383](https://redirect.github.com/shoelace-style/shoelace/pull/2383)
-   [`91235cb`](https://redirect.github.com/shoelace-style/shoelace/commit/91235cb): Fixes dropdown closing on tab key ([#&#8203;2371](https://redirect.github.com/shoelace-style/shoelace/issues/2371)) (Gabriel Belgamo) [#&#8203;2371](https://redirect.github.com/shoelace-style/shoelace/pull/2371)
-   [`1b9104d`](https://redirect.github.com/shoelace-style/shoelace/commit/1b9104d): update changelog (Cory LaViska)
-   [`5ef3c91`](https://redirect.github.com/shoelace-style/shoelace/commit/5ef3c91): fix contextElement guard ([#&#8203;2399](https://redirect.github.com/shoelace-style/shoelace/issues/2399)) (Diego Ferreiro Val) [#&#8203;2399](https://redirect.github.com/shoelace-style/shoelace/pull/2399)
-   [`ee42086`](https://redirect.github.com/shoelace-style/shoelace/commit/ee42086): update changelog (Cory LaViska)
-   [`e09277e`](https://redirect.github.com/shoelace-style/shoelace/commit/e09277e): Fixes closable sl-alert can be closed on whole vertical area without visual indication ([#&#8203;2375](https://redirect.github.com/shoelace-style/shoelace/issues/2375)) (Susanne Kirchner) [#&#8203;2375](https://redirect.github.com/shoelace-style/shoelace/pull/2375)
-   [`eef4c17`](https://redirect.github.com/shoelace-style/shoelace/commit/eef4c17): update changelog (Cory LaViska)
-   [`d2ce983`](https://redirect.github.com/shoelace-style/shoelace/commit/d2ce983): Merge branch 'fix/a11y-errors-for-blur' of https://github.com/schilchSICKAG/shoelace into schilchSICKAG-fix/a11y-errors-for-blur (Cory LaViska) [#&#8203;2383](https://redirect.github.com/shoelace-style/shoelace/pull/2383)
-   [`5be9540`](https://redirect.github.com/shoelace-style/shoelace/commit/5be9540): Merge branch 'schilchSICKAG-fix/a11y-errors-for-blur' into next (Cory LaViska)
-   [`0cf1984`](https://redirect.github.com/shoelace-style/shoelace/commit/0cf1984): update docs to fix types (Cory LaViska)
-   [`bcf08a8`](https://redirect.github.com/shoelace-style/shoelace/commit/bcf08a8): Carousel accessibility ([#&#8203;2364](https://redirect.github.com/shoelace-style/shoelace/issues/2364)) (Matt McLean) [#&#8203;2364](https://redirect.github.com/shoelace-style/shoelace/pull/2364)
-   [`d1f94ab`](https://redirect.github.com/shoelace-style/shoelace/commit/d1f94ab): update changelog (Cory LaViska)
-   [`3142d14`](https://redirect.github.com/shoelace-style/shoelace/commit/3142d14): update version (Cory LaViska)
-   [`fb59fda`](https://redirect.github.com/shoelace-style/shoelace/commit/fb59fda): 2.20.1 (Cory LaViska)

</details>

<details>
<summary>storybookjs/storybook (@&#8203;storybook/addon-essentials)</summary>

### [`v8.6.6`](https://redirect.github.com/storybookjs/storybook/compare/v8.6.5...9a7a7953fca0f05be3806318c7676940ed4fc102)

[Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.5...v8.6.6)

### [`v8.6.5`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#865)

[Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.4...v8.6.5)

-   Addon A11y: Promote [@&#8203;storybook/global](https://redirect.github.com/storybook/global) to full dependency - [#&#8203;30723](https://redirect.github.com/storybookjs/storybook/pull/30723), thanks [@&#8203;mrginglymus](https://redirect.github.com/mrginglymus)!
-   Angular: Add `@angular-devkit/build-angular` to installed packages - [#&#8203;30790](https://redirect.github.com/storybookjs/storybook/pull/30790), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   CLI: Fix test install in RNW projects - [#&#8203;30786](https://redirect.github.com/storybookjs/storybook/pull/30786), thanks [@&#8203;shilman](https://redirect.github.com/shilman)!
-   Core: Replace 'min' instead of 'm' in printDuration - [#&#8203;30668](https://redirect.github.com/storybookjs/storybook/pull/30668), thanks [@&#8203;wlewis-formative](https://redirect.github.com/wlewis-formative)!
-   Next.js: Use latest version when init in empty directory - [#&#8203;30659](https://redirect.github.com/storybookjs/storybook/pull/30659), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Svelte: Fix Vite crashing on virtual module imports - [#&#8203;26838](https://redirect.github.com/storybookjs/storybook/pull/26838), thanks [@&#8203;rChaoz](https://redirect.github.com/rChaoz)!
-   Svelte: Fix automatic argTypes inference coming up empty with `svelte2tsx@0.7.35` - [#&#8203;30784](https://redirect.github.com/storybookjs/storybook/pull/30784), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!
-   Universal Store: Don't use `crypto.randomUUID` - [#&#8203;30781](https://redirect.github.com/storybookjs/storybook/pull/30781), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!

</details>

<details>
<summary>storybookjs/storybook (@&#8203;storybook/addon-interactions)</summary>

### [`v8.6.6`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#866)

[Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.5...v8.6.6)

-   Angular: Make sure that polyfills are loaded before the storybook is loaded - [#&#8203;30811](https://redirect.github.com/storybookjs/storybook/pull/30811), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   CSF: Fix CSF subcomponent type - [#&#8203;30729](https://redirect.github.com/storybookjs/storybook/pull/30729), thanks [@&#8203;filipemelo2002](https://redirect.github.com/filipemelo2002)!

### [`v8.6.5`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#865)

[Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.4...v8.6.5)

-   Addon A11y: Promote [@&#8203;storybook/global](https://redirect.github.com/storybook/global) to full dependency - [#&#8203;30723](https://redirect.github.com/storybookjs/storybook/pull/30723), thanks [@&#8203;mrginglymus](https://redirect.github.com/mrginglymus)!
-   Angular: Add `@angular-devkit/build-angular` to installed packages - [#&#8203;30790](https://redirect.github.com/storybookjs/storybook/pull/30790), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   CLI: Fix test install in RNW projects - [#&#8203;30786](https://redirect.github.com/storybookjs/storybook/pull/30786), thanks [@&#8203;shilman](https://redirect.github.com/shilman)!
-   Core: Replace 'min' instead of 'm' in printDuration - [#&#8203;30668](https://redirect.github.com/storybookjs/storybook/pull/30668), thanks [@&#8203;wlewis-formative](https://redirect.github.com/wlewis-formative)!
-   Next.js: Use latest version when init in empty directory - [#&#8203;30659](https://redirect.github.com/storybookjs/storybook/pull/30659), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Svelte: Fix Vite crashing on virtual module imports - [#&#8203;26838](https://redirect.github.com/storybookjs/storybook/pull/26838), thanks [@&#8203;rChaoz](https://redirect.github.com/rChaoz)!
-   Svelte: Fix automatic argTypes inference coming up empty with `svelte2tsx@0.7.35` - [#&#8203;30784](https://redirect.github.com/storybookjs/storybook/pull/30784), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!
-   Universal Store: Don't use `crypto.randomUUID` - [#&#8203;30781](https://redirect.github.com/storybookjs/storybook/pull/30781), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!

</details>

<details>
<summary>swc-project/swc (@&#8203;swc/core)</summary>

### [`v1.11.9`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1119---2025-03-12)

[Compare Source](https://redirect.github.com/swc-project/swc/compare/v1.11.8...v1.11.9)

##### Bug Fixes

-   **(es/compat)** Hoist `arguments` in object method while lowering async functions ([#&#8203;10167](https://redirect.github.com/swc-project/swc/issues/10167)) ([e764df2](e764df2480))

-   **(es/minifier)** Check array inline for indexed with dynamic key ([#&#8203;10184](https://redirect.github.com/swc-project/swc/issues/10184)) ([c2fe4bf](c2fe4bf2d3))

##### Features

-   **(es/module)** Support more `import.meta` properties ([#&#8203;10179](https://redirect.github.com/swc-project/swc/issues/10179)) ([11727a6](11727a62e4))

-   **(ts/fast-strip)** Throw js object instead of map ([#&#8203;10186](https://redirect.github.com/swc-project/swc/issues/10186)) ([2da0142](2da0142217))

##### Performance

-   **(es/fast-lexer)** Optimize `read_identifier` ([#&#8203;10170](https://redirect.github.com/swc-project/swc/issues/10170)) ([d97f7b2](d97f7b233f))

-   **(es/fast-lexer)** Use `memchr` for `skip_line_comments` ([#&#8203;10173](https://redirect.github.com/swc-project/swc/issues/10173)) ([35194e3](35194e3008))

-   **(es/fast-lexer)** Use SIMD properly for string literals ([#&#8203;10172](https://redirect.github.com/swc-project/swc/issues/10172)) ([be60338](be60338267))

-   **(es/fast-lexer)** Add length-based fast path for keywords ([#&#8203;10176](https://redirect.github.com/swc-project/swc/issues/10176)) ([1f70af8](1f70af842e))

-   **(es/fast-lexer)** Optimize memory layout of cursor ([#&#8203;10175](https://redirect.github.com/swc-project/swc/issues/10175)) ([aa20494](aa20494982))

-   **(es/fast-lexer)** Remove bound checks ([#&#8203;10174](https://redirect.github.com/swc-project/swc/issues/10174)) ([bccdafc](bccdafc0c3))

-   **(es/fast-lexer)** Replace PHF with static keyword lookup table ([#&#8203;10181](https://redirect.github.com/swc-project/swc/issues/10181)) ([56d065e](56d065ebcb))

-   **(es/fast-lexer)** Optimize SIMD vector initialization with initialing `u8x16` once. ([#&#8203;10183](https://redirect.github.com/swc-project/swc/issues/10183)) ([435197c](435197cc84))

</details>

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

### [`v4.0.14`](https://redirect.github.com/tailwindlabs/tailwindcss/blob/HEAD/CHANGELOG.md#4014---2025-03-13)

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

##### Fixed

-   Do not extract candidates with JS string interpolation `${` ([#&#8203;17142](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17142))
-   Fix extraction of variants containing `.` character ([#&#8203;17153](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17153))
-   Fix extracting candidates in Clojure/ClojureScript ([#&#8203;17087](https://redirect.github.com/tailwindlabs/tailwindcss/pull/17087))

</details>

<details>
<summary>toeverything/design (@&#8203;toeverything/theme)</summary>

### [`v1.1.13`](https://redirect.github.com/toeverything/design/compare/1.1.12...1.1.13)

[Compare Source](https://redirect.github.com/toeverything/design/compare/1.1.12...1.1.13)

</details>

<details>
<summary>taskforcesh/bullmq (bullmq)</summary>

### [`v5.43.1`](https://redirect.github.com/taskforcesh/bullmq/releases/tag/v5.43.1)

[Compare Source](https://redirect.git

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwMC4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-03-15 08:35:01 +00:00
L-Sun
3b4453d2b8 chore(editor): update default width of page block (#10873)
Close [BS-2498](https://linear.app/affine-design/issue/BS-2498/page-block首次切换时默认宽度为800px)
2025-03-14 12:59:17 +00:00
akumatus
a648edafc0 feat(core): display embedding progress (#10871)
Close [BS-2791](https://linear.app/affine-design/issue/BS-2791).
2025-03-14 11:58:29 +00:00
EYHN
05200ad7b7 feat(nbstore): add blob sync storage (#10752) 2025-03-14 18:05:54 +08:00
EYHN
a2eb3fe1b2 feat(core): add notification service (#10855) 2025-03-14 09:32:10 +00:00
yoyoyohamapi
4a1a557a9e refactor(web): save as doc & save as block action (#10833)
### TL;DR

Added "Save as doc" option to Edgeless editor actions.

### What changed?

- Renamed `SAVE_CHAT_TO_BLOCK_ACTION` to `SAVE_AS_BLOCK` and updated its title from "Save chat to block" to "Save as block"
- Renamed `CREATE_AS_DOC` to `SAVE_AS_DOC` and updated its title from "Create as a doc" to "Save as doc"
- Added `SAVE_AS_DOC` to the `EdgelessEditorActions` array, making this option available in the Edgeless editor
2025-03-14 09:01:31 +00:00
yoyoyohamapi
1258f47d70 refactor(web): insert blew action (#10722)
### TL;DR
Refactor the insert below functionality to work with page mode and edgeless mode
* Page Mode
  - Insert content below the current selection
  - If nothing selected, insert content below the last block
* EdgeLess Mode
  - If no note block is currently selected, create the content as a new note block.
  - Otherwise, insert content into the selected note

Close BS-2760

### What changed?
- Created separate insert handlers for page and edgeless modes with context-aware behavior
  - Added support for inserting content when nothing is selected by targeting the last content block
  - Added special handling for edgeless mode to support inserting below selected note blocks
- Removed the "Replace selection" action and consolidated insert functionality
- Optimized the clickable area of the action button
2025-03-14 09:01:31 +00:00
akumatus
1546b76337 feat(core): poll context docs and files embedding status (#10843)
Close [BS-2791](https://linear.app/affine-design/issue/BS-2791).

### What Changed?
- Add status filed to `CopilotContextDoc` to querying document embedding processing progress.
- Change `ChipState` from `success` to `finished` to better align with backend server status.
- Add `pollContextDocsAndFiles` API for embedding status polling.

### About Polling
- Set the minimum interval to 1 second and the maximum interval to 30 seconds
- Use exponential backoff and increase the interval by 50% after each poll
- Make sure the interval does not exceed the maximum
2025-03-14 08:44:55 +00:00
fengmk2
114e89961f fix(server): add mode property on mention doc input (#10853) 2025-03-14 08:23:28 +00:00
darkskygit
c31d01b2c2 chore(server): merge duplicate queries (#10857) 2025-03-14 08:02:12 +00:00
EYHN
f3ef9c4415 feat(nbstore): rename SyncStorage to DocSyncStorage (#10751) 2025-03-14 06:25:26 +00:00
darkskygit
92effd9b51 feat: improve context api (#10812) 2025-03-14 05:57:40 +00:00
Saul-Mirone
b8452f56a8 feat(editor): block painter extension (#10847) 2025-03-14 05:26:58 +00:00
doodlewind
be9f44fc4f fix(editor): worker loading in webpack env (#10832)
### TL;DR

Created dedicated worker entry points to avoid dynamic imports.

### What changed?

- Painters are provided during worker initialization
- Removed `ParagraphPaintConfigExtension` and the associated configuration system
- Created dedicated worker entry points in both the integration test and frontend packages
- Modified `ViewportLayoutPainter` to accept painters in its constructor
- Updated the `TurboRendererConfig` interface to require a `painterWorkerEntry` function

### Why make this change?

Webpack support. Extension objects in main thread are not available to be passed into workers. Dynamic painter path import is hard to support in webpack environment. With the [webpack-ignore](https://webpack.js.org/api/module-methods/#webpackignore) rule, there are still build errors in webpack.
2025-03-14 05:26:57 +00:00
akumatus
daccb2c865 feat(core): add ai file context api (#10842)
Close [BS-2349](https://linear.app/affine-design/issue/BS-2349).

### What Changed?
- Add file context graphql apis
- Pass matched file chunks to LLM

[录屏2025-02-19 23.27.47.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/8e8a98ca-6959-4bb6-9759-b51d97cede49.mov" />](https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/8e8a98ca-6959-4bb6-9759-b51d97cede49.mov)
2025-03-14 04:29:54 +00:00
fengmk2
8880cef20b test(infra): add check job to verify committed changes (#10829) 2025-03-14 02:58:27 +00:00
fundon
341321284e fix(core): should not invert label when its shape text (#10765)
Closes: [BS-2797](https://linear.app/affine-design/issue/BS-2797/在-settings-preview-中,无需对-shape-text-颜色-label-进行反转)

Releated: https://github.com/toeverything/AFFiNE/pull/10546
2025-03-13 13:15:41 +00:00
darkskygit
d8373f66e7 feat(server): context awareness for copilot (#9611)
fix PD-2167
fix PD-2169
fix PD-2190
2025-03-13 11:44:55 +00:00
Saul-Mirone
05f3069efd feat(editor): add i18n support for block meta display (#10831) 2025-03-13 11:28:56 +00:00
JimmFly
0c9591f08e feat(core): add an entry for admin panel (#10813)
![CleanShot 2025-03-13 at 13 02 25@2x](https://github.com/user-attachments/assets/82f50a5b-f079-4c64-a3fa-6554735bea82)
2025-03-13 10:46:26 +00:00
JimmFly
7df06ea98b feat(admin): add server version check (#10816) 2025-03-13 18:45:56 +08:00
JimmFly
bed4074bdb feat(admin): add import and export users to admin panel (#10810) 2025-03-13 18:45:17 +08:00
JimmFly
e96302ccb2 feat(admin): add ban user to admin panel (#10780) 2025-03-13 18:44:13 +08:00
pengx17
d24ced3dbd fix(electron): electron fallback container should not contain tabs header (#10826)
![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/3e8e4838-7f28-453d-bd7f-32bfa96f09ae.png)

fix double tabs header issue when loading from external url
2025-03-13 10:14:26 +00:00
JimmFly
21aa47c094 feat(admin): make the left navigation bar collapsable (#10774) 2025-03-13 09:57:10 +00:00
forehalo
7100d87efe chore(core): doc role telemetry (#10822) 2025-03-13 08:15:46 +00:00
L-Sun
7ba1c1b271 chore(editor): use at menu to insert linked doc (#10808)
Close [BS-2799](https://linear.app/affine-design/issue/BS-2799/区分linked-doc入口)

This PR removes the patch for `Linked Doc` action in the slash menu via the `QuickSearch`, reverting it to use the at menu for inserting.
2025-03-13 08:01:59 +00:00
pengx17
a6fd0a135b fix(electron): add back updater (#10814) 2025-03-13 07:29:49 +00:00
Saul-Mirone
7f45993fdb feat(editor): add ui for display block meta in toolbar (#10817) 2025-03-13 07:06:27 +00:00
Saul-Mirone
250f3f1efd feat(editor): add isLocal flag in blockUpdated subject (#10799) 2025-03-13 05:33:06 +00:00
doodlewind
c023b724d0 refactor(editor): generic layout type support for turbo renderer (#10766)
This PR refactored the turbo renderer architecture to support multiple block layout types.

- New base class `BlockLayoutPainter` and `BlockLayoutProvider` are introduced for writing extendable per-block layout querying and painting logic.
- Paragraph-specific lines are all moved into dedicated classes (`ParagraphLayoutProvider` and `ParagraphLayoutPainter`) under the `/variants/paragraph` dir.
- The `renderer-utils.ts` doesn't contain paragraph-specific logic now.
- The `text-utils.ts` is also now scoped for paragraph only.
- Worker messages are now strongly typed.

Upcoming PR should further implement the block registration system using extension API. The `variants` dir could still exist, since there will be similar rendering logic that can be reused among block types (i.e., between paragraph block and list block).
2025-03-13 05:18:12 +00:00
akumatus
21d850deeb feat(core): add tag-chip and collection-chip lit components (#10795)
Close [BS-2790](https://linear.app/affine-design/issue/BS-2790).

![截屏2025-03-12 19.45.48.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/d95834a1-e7e4-4655-8bf6-2ee50b4d3701.png)
2025-03-13 04:26:58 +00:00
donteatfriedrice
d2c62602a4 feat(editor): support embed iframe block (#10740)
To close:
[BS-2660](https://linear.app/affine-design/issue/BS-2660/slash-menu-支持-iframe-embed)
[BS-2661](https://linear.app/affine-design/issue/BS-2661/iframe-embed-block-model-and-block-component)
[BS-2662](https://linear.app/affine-design/issue/BS-2662/iframe-embed-block-toolbar)
[BS-2768](https://linear.app/affine-design/issue/BS-2768/iframe-embed-block-loading-和-error-态)
[BS-2670](https://linear.app/affine-design/issue/BS-2670/iframe-embed-block-导出)

# PR Description

# Add Embed Iframe Block Support

## Overview

This PR introduces a new `EmbedIframeBlock` to enhance content embedding capabilities within our editor. This block allows users to seamlessly embed external content from various providers (Google Drive, Spotify, etc.) directly into their docs.

## New Blocks

### EmbedIframeBlock

The core block that renders embedded iframe content. This block:

* Displays external content within a secure iframe
* Handles loading states with visual feedback
* Provides error handling with edit and retry options
* Supports customization of width, height, and other iframe attributes

### Supporting Components

* **EmbedIframeCreateModal**: Modal interface for creating new iframe embeds
* **EmbedIframeLinkEditPopup**: UI for editing existing embed links
* **EmbedIframeLoadingCard**: Visual feedback during content loading
* **EmbedIframeErrorCard**: Error handling with retry functionality

## New Store Extensions

### EmbedIframeConfigExtension

This extension provides configuration for different embed providers:

```typescript
/**
 * The options for the iframe
 * @example
 * {
 *   defaultWidth: '100%',
 *   defaultHeight: '152px',
 *   style: 'border-radius: 8px;',
 *   allow: 'autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture',
 * }
 * =>
 * <iframe
 *   width="100%"
 *   height="152px"
 *   style="border-radius: 8px;"
 *   allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
 * ></iframe>
 */
export type IframeOptions = {
  defaultWidth?: string;
  defaultHeight?: string;
  style?: string;
  referrerpolicy?: string;
  scrolling?: boolean;
  allow?: string;
  allowFullscreen?: boolean;
};

/**
 * Define the config of an embed iframe block provider
 */
export type EmbedIframeConfig = {
  /**
   * The name of the embed iframe block provider
   */
  name: string;
  /**
   * The function to match the url
   */
  match: (url: string) => boolean;
  /**
   * The function to build the oEmbed URL for fetching embed data
   */
  buildOEmbedUrl: (url: string) => string | undefined;
  /**
   * Use oEmbed URL directly as iframe src without fetching oEmbed data
   */
  useOEmbedUrlDirectly: boolean;
  /**
   * The options for the iframe
   */
  options?: IframeOptions;
};

export const EmbedIframeConfigIdentifier =
  createIdentifier<EmbedIframeConfig>('EmbedIframeConfig');

export function EmbedIframeConfigExtension(
  config: EmbedIframeConfig
): ExtensionType & {
  identifier: ServiceIdentifier<EmbedIframeConfig>;
} {
  const identifier = EmbedIframeConfigIdentifier(config.name);
  return {
    setup: di => {
      di.addImpl(identifier, () => config);
    },
    identifier,
  };
}
```

**example:**

```typescript
//  blocksuite/affine/blocks/block-embed/src/embed-iframe-block/configs/providers/spotify.ts

const SPOTIFY_DEFAULT_WIDTH = '100%';
const SPOTIFY_DEFAULT_HEIGHT = '152px';

// https://developer.spotify.com/documentation/embeds/reference/oembed
const spotifyEndpoint = 'https://open.spotify.com/oembed';

const spotifyUrlValidationOptions: EmbedIframeUrlValidationOptions = {
  protocols: ['https:'],
  hostnames: ['open.spotify.com', 'spotify.link'],
};

const spotifyConfig = {
  name: 'spotify',
  match: (url: string) =>
    validateEmbedIframeUrl(url, spotifyUrlValidationOptions),
  buildOEmbedUrl: (url: string) => {
    const match = validateEmbedIframeUrl(url, spotifyUrlValidationOptions);
    if (!match) {
      return undefined;
    }
    const encodedUrl = encodeURIComponent(url);
    const oEmbedUrl = `${spotifyEndpoint}?url=${encodedUrl}`;
    return oEmbedUrl;
  },
  useOEmbedUrlDirectly: false,
  options: {
    defaultWidth: SPOTIFY_DEFAULT_WIDTH,
    defaultHeight: SPOTIFY_DEFAULT_HEIGHT,
    allow:
      'autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture',
    style: 'border-radius: 12px;',
    allowFullscreen: true,
  },
};

// add the config extension to store
export const SpotifyEmbedConfig = EmbedIframeConfigExtension(spotifyConfig);
```

**Key features:**

* Provider registration and discovery
* URL pattern matching
* Provider-specific embed options (width, height, features)

### EmbedIframeService

This service provides abilities to handle URL validation, data fetching, and block creation

**Type:**

```typescript
/**
 * Service for handling embeddable URLs
 */
export interface EmbedIframeProvider {
  /**
   * Check if a URL can be embedded
   * @param url URL to check
   * @returns true if the URL can be embedded, false otherwise
   */
  canEmbed: (url: string) => boolean;

  /**
   * Build a API URL for fetching embed data
   * @param url URL to build API URL
   * @returns API URL if the URL can be embedded, undefined otherwise
   */
  buildOEmbedUrl: (url: string) => string | undefined;

  /**
   * Get the embed iframe config
   * @param url URL to get embed iframe config
   * @returns Embed iframe config if the URL can be embedded, undefined otherwise
   */
  getConfig: (url: string) => EmbedIframeConfig | undefined;

  /**
   * Get embed iframe data
   * @param url URL to get embed iframe data
   * @returns Embed iframe data if the URL can be embedded, undefined otherwise
   */
  getEmbedIframeData: (url: string) => Promise<EmbedIframeData | null>;

  /**
   * Parse an embeddable URL and add an EmbedIframeBlock to doc
   * @param url Original url to embed
   * @param parentId Parent block ID
   * @param index Optional index to insert at
   * @returns Created block id if successful, undefined if the URL cannot be embedded
   */
  addEmbedIframeBlock: (
    props: Partial<EmbedIframeBlockProps>,
    parentId: string,
    index?: number
  ) => string | undefined;
}
```

**Implemetation:**

```typescript
export class EmbedIframeService
  extends StoreExtension
  implements EmbedIframeProvider
{
  static override key = 'embed-iframe-service';

  private readonly _configs: EmbedIframeConfig[];

  constructor(store: Store) {
    super(store);
    this._configs = Array.from(
      store.provider.getAll(EmbedIframeConfigIdentifier).values()
    );
  }

  canEmbed = (url: string): boolean => {
    return this._configs.some(config => config.match(url));
  };

  buildOEmbedUrl = (url: string): string | undefined => {
    return this._configs.find(config => config.match(url))?.buildOEmbedUrl(url);
  };

  getConfig = (url: string): EmbedIframeConfig | undefined => {
    return this._configs.find(config => config.match(url));
  };

  getEmbedIframeData = async (
    url: string,
    signal?: AbortSignal
  ): Promise<EmbedIframeData | null> => {
    try {
      const config = this._configs.find(config => config.match(url));
      if (!config) {
        return null;
      }

      const oEmbedUrl = config.buildOEmbedUrl(url);
      if (!oEmbedUrl) {
        return null;
      }

      // if the config useOEmbedUrlDirectly is true, return the url directly as iframe_url
      if (config.useOEmbedUrlDirectly) {
        return {
          iframe_url: oEmbedUrl,
        };
      }

      // otherwise, fetch the oEmbed data
      const response = await fetch(oEmbedUrl, { signal });
      if (!response.ok) {
        console.warn(
          `Failed to fetch oEmbed data: ${response.status} ${response.statusText}`
        );
        return null;
      }

      const data = await response.json();
      return data as EmbedIframeData;
    } catch (error) {
      if (error instanceof Error && error.name !== 'AbortError') {
        console.error('Error fetching embed iframe data:', error);
      }
      return null;
    }
  };

  addEmbedIframeBlock = (
    props: Partial<EmbedIframeBlockProps>,
    parentId: string,
    index?: number
  ): string | undefined => {
    const blockId = this.store.addBlock(
      'affine:embed-iframe',
      props,
      parentId,
      index
    );
    return blockId;
  };
}
```

**Usage:**

```typescript
// Usage example
const embedIframeService = this.std.get(EmbedIframeService);

// Check if a URL can be embedded
const canEmbed = embedIframeService.canEmbed(url);

// Get embed data for a URL
const embedData = await embedIframeService.getEmbedIframeData(url);

// Add an embed iframe block to the document
const block = embedIframeService.addEmbedIframeBlock({
  url,
  iframeUrl: embedData.iframe_url,
  title: embedData.title,
  description: embedData.description
}, parentId, index);
```

**Key features:**

* URL validation and transformation
* Provider-specific data fetching
* Block creation and management

## Adaptations

### Toolbar Integration

Added toolbar actions for embedded content:

* Copy link
* Edit embed title and description
* Toggle between inline/card views
* Add caption
* And more

### Slash Menu Integration

Added a new slash menu option for embedding content:

* Embed item for inserting embed iframe block
* Conditional rendering based on feature flags

### Adapters

Implemented adapters for various formats:

* **HTML Adapter**: Exports embed original urls as html links
* **Markdown Adapter**: Exports embed original urls as markdown links
* **Plain Text Adapter**: Exports embed original urls as link text

## To Be Continued:
- [ ] **UI Optimization**
- [ ] **Edgeless Mode Support**
- [ ] **Mobile Support**
2025-03-13 04:11:46 +00:00
akumatus
98a3cf8516 feat(core): update blocksuite icons (#10805) 2025-03-13 03:55:55 +00:00
EYHN
86729fb447 feat(core): adjust web clipper page (#10779) 2025-03-13 10:59:50 +08:00
forehalo
d8ebf7b3c5 fix(core): wrong top margin of local workspace hint in setting panel (#10782)
close AF-2243
2025-03-12 10:16:47 +00:00
fengmk2
3417cc5dc1 fix(core): handle Content-Type with charset in fetch error handling (#10777) 2025-03-12 09:56:41 +00:00
fengmk2
fd3ce431fe fix(core): assert app schema url on open-app (#10687) 2025-03-12 08:42:35 +00:00
darkskygit
c3b407041e chore(core): extend workflow timeout (#10760) 2025-03-12 08:26:34 +00:00
fengmk2
43712839fd refactor(server): improve magic link login flow (#10736) 2025-03-12 15:27:36 +08:00
fengmk2
867ae7933f refactor(server): improve oauth login flow (#10648)
close CLOUD-145
2025-03-12 15:27:36 +08:00
EYHN
4b5d1de206 feat(core): add blocksuite writer info service (#10754) 2025-03-12 05:02:04 +00:00
darkskygit
10605b3793 fix(server): nullable value for parent id (#10725) 2025-03-12 03:53:33 +00:00
Mirone
cd63e0ed8b feat(editor): replace slot with rxjs subject (#10768) 2025-03-12 11:29:24 +09:00