doouding
08d6c5a97c
refactor(editor): rewrite resize and rotate ( #12054 )
...
### Changed
This pr split the old `edgeless-selected-rect` into four focused modules:
- `edgeless-selected-rect`: Provide an entry point for user operation on view layer only, no further logic here.
- `GfxViewInteractionExtension`: Allow you to plug in custom resize/rotate behaviors for block or canvas element. If you don’t register an extension, it falls back to the default behaviours.
- `InteractivityManager`: Provide the API that accepts resize/rotate requests, invokes any custom behaviors you’ve registered, tracks the lifecycle and intermediate state, then hands off to the math engine.
- `ResizeController`: A pure math engine that listens for pointer moves and pointer ups and calculates new sizes, positions, and angles. It doesn’t call any business APIs.
### Customizing an element’s resize/rotate behavior
Call `GfxViewInteractionExtension` with the element’s flavour or type plus a config object. In the config you can define:
- `resizeConstraint` (min/max width & height, lock ratio)
- `handleResize(context)` method that returns an object containing `beforeResize`、`onResizeStart`、`onResizeMove`、`onResizeEnd`
- `handleRotate(context)` method that returns an object containing `beforeRotate`、`onRotateStart`、`onRotateMove`、`onRotateEnd`
```typescript
import { GfxViewInteractionExtension } from '@blocksuite/std/gfx';
GfxViewInteractionExtension(
flavourOrElementType,
{
resizeConstraint: {
minWidth,
maxWidth,
lockRatio,
minHeight,
maxHeight
},
handleResize(context) {
return {
beforeResize(context) {},
onResizeStart(context) {},
onResizeMove(context) {},
onResizeEnd(context) {}
};
},
handleRotate(context) {
return {
beforeRotate(context) {},
onRotateStart(context) {},
onRotateMove(context) {},
onRotateEnd(context) {}
};
}
}
);
```
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Added interaction extensions for edgeless variants of attachment, bookmark, edgeless text, embedded docs, images, notes, frames, AI chat blocks, and various embed blocks (Figma, GitHub, HTML, iframe, Loom, YouTube).
- Introduced interaction extensions for graphical elements including connectors, groups, mind maps, shapes, and text, supporting constrained resizing and rotation disabling where applicable.
- Implemented a unified interaction extension framework enabling configurable resize and rotate lifecycle handlers.
- Enhanced autocomplete overlay behavior based on selection context.
- **Refactor**
- Removed legacy resize manager and element-specific resize/rotate logic, replacing with a centralized, extensible interaction system.
- Simplified resize handle rendering to a data-driven approach with improved cursor management.
- Replaced complex cursor rotation calculations with fixed-angle mappings for resize handles.
- Streamlined selection rectangle component to use interactivity services for resize and rotate handling.
- **Bug Fixes**
- Fixed connector update triggers to reduce unnecessary updates.
- Improved resize constraints enforcement and interaction state tracking.
- **Tests**
- Refined end-to-end tests to use higher-level resize utilities and added finer-grained assertions on element dimensions.
- Enhanced mouse movement granularity in drag tests for better simulation fidelity.
- **Chores**
- Added new workspace dependencies and project references for the interaction framework modules.
- Extended public API exports to include new interaction types and extensions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-13 11:29:59 +00:00
L-Sun
42ae6e6e40
feat(editor): group configuration of note styles to panel from toolbar ( #12230 )
...
Close [BS-3401](https://linear.app/affine-design/issue/BS-3401/note-style-需要合并同类项 )

2025-05-12 09:42:52 +00:00
L-Sun
f3ca17fcb3
refactor(editor): extract slider component ( #12210 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new slider component for line width selection, providing a more interactive and streamlined UI.
- Added support for using the slider component across relevant panels.
- **Improvements**
- Simplified the line width selection panel for easier use and improved maintainability.
- Enhanced event handling to prevent dropdowns from closing when interacting with the panel.
- **Bug Fixes**
- Improved event propagation control within the line styles panel.
- **Chores**
- Updated package exports to include the new slider component.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-12 09:42:52 +00:00
Saul-Mirone
388641bc89
refactor(editor): rename doc to store on block components ( #12173 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Unified internal data access by replacing all references from `doc` to `store` across all components, blocks, widgets, and utilities. This affects how readonly state, block operations, and service retrieval are handled throughout the application.
- **Tests**
- Updated all test utilities and test cases to use `store` instead of `doc` for document-related operations.
- **Chores**
- Updated context providers and property names to reflect the change from `doc` to `store` for improved consistency and maintainability.
No user-facing features or behaviors have changed.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-08 01:01:05 +00:00
Saul-Mirone
95b9e4b3d0
refactor(editor): rename model.doc to store ( #12172 )
2025-05-07 09:17:01 +00:00
fundon
93b1d6c729
fix(editor): improve image block upload and download states ( #12017 )
...
Related to: [BS-3143](https://linear.app/affine-design/issue/BS-3143/更新-loading-和错误样式 )
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a unified resource controller for managing image and attachment resources, providing improved loading, error, and state handling.
- Added a visual loading indicator overlay to image blocks for better feedback during image loading.
- **Improvements**
- Simplified and centralized image and attachment state management, reducing redundant properties and manual state tracking.
- Updated fallback UI for image blocks with clearer titles, descriptions, and improved layout.
- Enhanced batch image block creation and download handling for improved efficiency.
- Refined image block accessibility with improved alt text and streamlined rendering logic.
- Centralized target model selection for image insertion in AI actions.
- Reordered CSS declarations without affecting styling.
- Improved reactive state tracking for blob upload/download operations in mock server.
- **Bug Fixes**
- Improved cleanup of object URLs to prevent resource leaks.
- Adjusted toolbar logic to more accurately reflect available actions based on image state.
- **Tests**
- Updated end-to-end tests to match new UI text and behaviors for image loading and error states.
- **Chores**
- Refactored internal logic and updated comments for clarity and maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-07 05:15:57 +00:00
doufa
1994dd6d9d
fix(editor): can not delete code block with delete keyboard ( #11988 )
2025-05-06 16:14:41 +08:00
Saul-Mirone
676c5d8de6
refactor(editor): remove global gfx tool types ( #12119 )
2025-05-04 13:53:27 +00:00
Saul-Mirone
30a2e5b4fb
refactor(editor): remove gfx tool global type ( #12116 )
...
Closes: BS-2650
2025-05-04 13:53:26 +00:00
L-Sun
e0308c5815
feat(editor): make height of edgeless embed doc to fit content ( #12089 )
...
Close [BS-3388](https://linear.app/affine-design/issue/BS-3388/embed-doc-拖入后的初始高度不要超过800,不要限制用户随后的调整空间 )
This PR impl a extension which initialize the height of added `affine-embed-edgeless-synced-doc-block` to fit its content
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved handling of embedded synced document block height to better fit content within edgeless mode.
- **Tests**
- Added an end-to-end test to verify correct height adjustment for embedded synced documents in edgeless mode.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-30 18:48:54 +00:00
Saul-Mirone
d856911144
refactor(editor): cleanup dead code ( #12072 )
...
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Refactor**
- Simplified and removed several internal AI block extension files and utility functions, streamlining the codebase and reducing unused features.
- Updated logic to access editor modes and controllers directly, removing reliance on DOM queries and certain abstractions.
- Reduced and restructured effect type declarations for improved clarity.
- **Bug Fixes**
- Improved type safety in the editor component by explicitly typing queried elements.
- **Chores**
- Removed obsolete exports and internal functions with no impact on user-facing functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-30 05:26:39 +00:00
L-Sun
315ea00390
feat(editor): header of edgeless embed doc ( #12029 )
...
Close [BS-3268](https://linear.app/affine-design/issue/BS-3268/edgeless-下,-dark-mode-embed的配色应该更加清晰 )
Close [BS-3067](https://linear.app/affine-design/issue/BS-3067/在embed上,添加split-view等相关的操作入口,基本接近page-block(见设计稿) )
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced an interactive header for embedded synced documents with fold/unfold toggle, document opening, and multiple view options.
- Added info and copy link buttons for embedded synced documents and notes to improve document management and sharing.
- **Enhancements**
- Updated styles for embedded synced document blocks and headers for better visual consistency.
- Added new localization entries for header actions: "Fold", "Unfold", and "Open".
- Disabled redundant open document actions in toolbars, centralizing controls in the header.
- **Refactor**
- Unified header button components for notes and embedded synced documents into reusable components.
- Simplified header components by delegating button behaviors to shared components.
- **Bug Fixes**
- Fixed conditional rendering of editor content in embedded synced documents when folded.
- **Chores**
- Upgraded theme dependency version from "^1.1.12" to "^1.1.14" across multiple packages.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-30 03:11:38 +00:00
L-Sun
365a0a605b
feat(editor): improve visibility of hidden content of edgeless note ( #12068 )
...
Close [BS-3066](https://linear.app/affine-design/issue/BS-3066/优化长note的展示和折叠 )
- Enhanced the visibility behavior of hidden content in edgeless notes by:
- Showing hidden content when a note is being edited, even when it's outside the viewport
- Improving hover behavior with a delay when leaving from the bottom of the note
- Adding proper cleanup of hover timeouts when the component is disconnected
- Optimizing the viewport element to keep editing blocks or elements visible
## Testing
- Added new E2E test cases covering:
- Hover behavior on selected notes
- Content visibility during editing
- Viewport scrolling behavior
- Edge cases for content visibility
## Impact
This change improves the user experience when working with collapsed notes in edgeless mode by making the content more accessible and preventing accidental content hiding during editing.
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved visibility of hidden content in edgeless notes when hovering near the bottom edge or editing the note, especially after resizing or clipping.
- **New Features**
- Enhanced hover behavior with delayed clearing based on mouse position to improve user experience.
- **Tests**
- Added new tests verifying hidden content visibility in edgeless notes during hover and editing, simulating diverse user interactions.
- **Chores**
- Added utilities to get and set viewport center for improved test control.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-29 13:24:56 +00:00
renovate
bce9f8cdf0
chore: bump up all non-major npm dependencies ( #11994 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@ai-sdk/openai](https://sdk.vercel.ai/docs ) ([source](https://redirect.github.com/vercel/ai )) | [`1.3.19` -> `1.3.20`](https://renovatebot.com/diffs/npm/@ai-sdk%2fopenai/1.3.19/1.3.20 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@aws-sdk/client-s3](https://redirect.github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3 ) ([source](https://redirect.github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3 )) | [`3.796.0` -> `3.797.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.796.0/3.797.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [@aws-sdk/s3-request-presigner](https://redirect.github.com/aws/aws-sdk-js-v3/tree/main/packages/s3-request-presigner ) ([source](https://redirect.github.com/aws/aws-sdk-js-v3/tree/HEAD/packages/s3-request-presigner )) | [`3.796.0` -> `3.797.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fs3-request-presigner/3.796.0/3.797.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs ) | [`3.0.0-alpha.77` -> `3.0.0-alpha.78`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.77/3.0.0-alpha.78 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@playwright/test](https://playwright.dev ) ([source](https://redirect.github.com/microsoft/playwright )) | [`=1.51.1` -> `=1.52.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.1/1.52.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [@playwright/test](https://playwright.dev ) ([source](https://redirect.github.com/microsoft/playwright )) | [`=1.51.1` -> `=1.52.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.1/1.52.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [@toeverything/theme](https://redirect.github.com/toeverything/design ) | [`1.1.13` -> `1.1.14`](https://renovatebot.com/diffs/npm/@toeverything%2ftheme/1.1.13/1.1.14 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [@vitest/browser](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/browser#readme ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser )) | [`3.1.1` -> `3.1.2`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.1.1/3.1.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@vitest/coverage-istanbul](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul )) | [`3.1.1` -> `3.1.2`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.1.1/3.1.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui )) | [`3.1.1` -> `3.1.2`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.1.1/3.1.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [app-builder-lib](https://redirect.github.com/electron-userland/electron-builder ) ([source](https://redirect.github.com/electron-userland/electron-builder/tree/HEAD/packages/app-builder-lib )) | [`26.0.13` -> `26.0.14`](https://renovatebot.com/diffs/npm/app-builder-lib/26.0.13/26.0.14 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [browser-fs-access](https://redirect.github.com/GoogleChromeLabs/browser-fs-access ) | [`^0.35.0` -> `^0.37.0`](https://renovatebot.com/diffs/npm/browser-fs-access/0.35.0/0.37.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [bullmq](https://bullmq.io/ ) ([source](https://redirect.github.com/taskforcesh/bullmq )) | [`5.51.0` -> `5.51.1`](https://renovatebot.com/diffs/npm/bullmq/5.51.0/5.51.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [cc](https://redirect.github.com/rust-lang/cc-rs ) | `1.2.19` -> `1.2.20` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | build-dependencies | patch |
| [clap](https://redirect.github.com/clap-rs/clap ) | `4.5.36` -> `4.5.37` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [file-type](https://redirect.github.com/sindresorhus/file-type ) | [`20.4.1` -> `20.5.0`](https://renovatebot.com/diffs/npm/file-type/20.4.1/20.5.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [gradle](https://gradle.org ) ([source](https://redirect.github.com/gradle/gradle )) | `8.13` -> `8.14` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | | minor |
| [graphql](https://redirect.github.com/graphql/graphql-js ) | [`16.10.0` -> `16.11.0`](https://renovatebot.com/diffs/npm/graphql/16.10.0/16.11.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [graphql](https://redirect.github.com/graphql/graphql-js ) | [`16.10.0` -> `16.11.0`](https://renovatebot.com/diffs/npm/graphql/16.10.0/16.11.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [lib0](https://crates.io/crates/lib0 ) | `0.16.5` -> `0.16.10` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [lucide-react](https://lucide.dev ) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react )) | [`^0.488.0` -> `^0.503.0`](https://renovatebot.com/diffs/npm/lucide-react/0.488.0/0.503.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [objc2-foundation](https://redirect.github.com/madsmtm/objc2 ) | `0.3.0` -> `0.3.1` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [playwright](https://playwright.dev ) ([source](https://redirect.github.com/microsoft/playwright )) | [`=1.51.1` -> `=1.52.0`](https://renovatebot.com/diffs/npm/playwright/1.51.1/1.52.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | minor |
| [rand](https://rust-random.github.io/book ) ([source](https://redirect.github.com/rust-random/rand )) | `0.9.0` -> `0.9.1` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [rand](https://rust-random.github.io/book ) ([source](https://redirect.github.com/rust-random/rand )) | `0.9.0` -> `0.9.1` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [react-resizable-panels](https://redirect.github.com/bvaughn/react-resizable-panels ) | [`2.1.8` -> `2.1.9`](https://renovatebot.com/diffs/npm/react-resizable-panels/2.1.8/2.1.9 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [sqlx](https://redirect.github.com/launchbadge/sqlx ) | `0.8.4` -> `0.8.5` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| [tldts](https://redirect.github.com/remusao/tldts ) | [`7.0.3` -> `7.0.4`](https://renovatebot.com/diffs/npm/tldts/7.0.3/7.0.4 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [vitest](https://redirect.github.com/vitest-dev/vitest ) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest )) | [`3.1.1` -> `3.1.2`](https://renovatebot.com/diffs/npm/vitest/3.1.1/3.1.2 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | devDependencies | patch |
| [yrs](https://redirect.github.com/y-crdt/y-crdt ) | `=0.23.0` -> `=0.23.1` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [yrs](https://redirect.github.com/y-crdt/y-crdt ) | `0.23.0` -> `0.23.1` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | workspace.dependencies | patch |
| com.google.firebase:firebase-bom | `33.12.0` -> `33.13.0` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [androidx.datastore:datastore-preferences](https://developer.android.com/jetpack/androidx/releases/datastore#1.1.5 ) ([source](https://cs.android.com/androidx/platform/frameworks/support )) | `1.1.4` -> `1.1.5` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [androidx.compose:compose-bom](https://developer.android.com/jetpack ) | `2025.04.00` -> `2025.04.01` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
---
### Release Notes
<details>
<summary>vercel/ai (@​ai-sdk/openai)</summary>
### [`v1.3.20`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/openai%401.3.20 )
[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/openai@1.3.19...@ai-sdk/openai@1.3.20 )
##### Patch Changes
- [`dd5450e`](https://redirect.github.com/vercel/ai/commit/dd5450e ): feat(provider/openai): add o3 & o4-mini with developer systemMessageMode
</details>
<details>
<summary>aws/aws-sdk-js-v3 (@​aws-sdk/client-s3)</summary>
### [`v3.797.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37970-2025-04-25 )
[Compare Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.796.0...v3.797.0 )
**Note:** Version bump only for package [@​aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3 )
</details>
<details>
<summary>aws/aws-sdk-js-v3 (@​aws-sdk/s3-request-presigner)</summary>
### [`v3.797.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/packages/s3-request-presigner/CHANGELOG.md#37970-2025-04-25 )
[Compare Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.796.0...v3.797.0 )
**Note:** Version bump only for package [@​aws-sdk/s3-request-presigner](https://redirect.github.com/aws-sdk/s3-request-presigner )
</details>
<details>
<summary>napi-rs/napi-rs (@​napi-rs/cli)</summary>
### [`v3.0.0-alpha.78`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.77...@napi-rs/cli@3.0.0-alpha.78 )
[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.77...@napi-rs/cli@3.0.0-alpha.78 )
</details>
<details>
<summary>microsoft/playwright (@​playwright/test)</summary>
### [`v1.52.0`](https://redirect.github.com/microsoft/playwright/compare/v1.51.1...471930b1ceae03c9e66e0eb80c1364a1a788e7db )
[Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.51.1...v1.52.0 )
</details>
<details>
<summary>toeverything/design (@​toeverything/theme)</summary>
### [`v1.1.14`](https://redirect.github.com/toeverything/design/compare/1.1.13...1.1.14 )
[Compare Source](https://redirect.github.com/toeverything/design/compare/1.1.13...1.1.14 )
</details>
<details>
<summary>vitest-dev/vitest (@​vitest/browser)</summary>
### [`v3.1.2`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.1.2 )
[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.1...v3.1.2 )
##### 🐞 Bug Fixes
- Add global `chai` variable in `vitest/globals` (fix: [#​7474](https://redirect.github.com/vitest-dev/vitest/issues/7474 )) - by [@​Jay-Karia](https://redirect.github.com/Jay-Karia ) in [https://github.com/vitest-dev/vitest/issues/7771 ](https://redirect.github.com/vitest-dev/vitest/issues/7771 ) and [https://github.com/vitest-dev/vitest/issues/7474 ](https://redirect.github.com/vitest-dev/vitest/issues/7474 ) [<samp>(d9297)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d9297920 )
- Prevent modifying `test.exclude` when same object passed in `coverage.exclude` - by [@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in [https://github.com/vitest-dev/vitest/issues/7774 ](https://redirect.github.com/vitest-dev/vitest/issues/7774 ) [<samp>(c3751)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c375101d )
- Fix already hoisted mock - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7815 ](https://redirect.github.com/vitest-dev/vitest/issues/7815 ) [<samp>(773b1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/773b10e0 )
- Fix test.scoped inheritance - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7814 ](https://redirect.github.com/vitest-dev/vitest/issues/7814 ) [<samp>(db6c3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db6c3bcc )
- Remove pointer-events-none after resizing the left panel - by [@​alexprudhomme](https://redirect.github.com/alexprudhomme ) in [https://github.com/vitest-dev/vitest/issues/7811 ](https://redirect.github.com/vitest-dev/vitest/issues/7811 ) [<samp>(a7e77)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a7e773bd )
- Default to run mode when stdin is not a TTY - by [@​kentonv](https://redirect.github.com/kentonv ), [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) and [@​sheremet-va](https://redirect.github.com/sheremet-va ) in [https://github.com/vitest-dev/vitest/issues/7673 ](https://redirect.github.com/vitest-dev/vitest/issues/7673 ) [<samp>(6358f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6358f216 )
- Use happy-dom/jsdom types for `envionmentOptions` - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7795 ](https://redirect.github.com/vitest-dev/vitest/issues/7795 ) [<samp>(67430)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/67430083 )
- **browser**:
- Fix transform error before browser server initialization - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7783 ](https://redirect.github.com/vitest-dev/vitest/issues/7783 ) [<samp>(5f762)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5f762ec5 )
- Fix mocking from outside of root - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7789 ](https://redirect.github.com/vitest-dev/vitest/issues/7789 ) [<samp>(03f55)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/03f55d74 )
- Scale iframe for non ui case - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/6512 ](https://redirect.github.com/vitest-dev/vitest/issues/6512 ) [<samp>(c3374)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c3374808 )
- **coverage**:
- `await` profiler calls - by [@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in [https://github.com/vitest-dev/vitest/issues/7763 ](https://redirect.github.com/vitest-dev/vitest/issues/7763 ) [<samp>(795a6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/795a6433 )
- Expose profiling timers - by [@​AriPerkkio](https://redirect.github.com/AriPerkkio ) in [https://github.com/vitest-dev/vitest/issues/7820 ](https://redirect.github.com/vitest-dev/vitest/issues/7820 ) [<samp>(5652b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5652bf92 )
- **deps**:
- Update all non-major dependencies - in [https://github.com/vitest-dev/vitest/issues/7765 ](https://redirect.github.com/vitest-dev/vitest/issues/7765 ) [<samp>(7c3df)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7c3dfb17 )
- Update all non-major dependencies - in [https://github.com/vitest-dev/vitest/issues/7831 ](https://redirect.github.com/vitest-dev/vitest/issues/7831 ) [<samp>(15701)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/15701f5d )
- **runner**:
- Correctly call test hooks and teardown functions - by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in [https://github.com/vitest-dev/vitest/issues/7775 ](https://redirect.github.com/vitest-dev/vitest/issues/7775 ) [<samp>(3c00c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3c00c875 )
- Show stacktrace on test timeout error - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7799 ](https://redirect.github.com/vitest-dev/vitest/issues/7799 ) [<samp>(df33b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/df33bba7 )
- **ui**:
- Load panel sizes from storage on initial load - by [@​userquin](https://redirect.github.com/userquin ) in [https://github.com/vitest-dev/vitest/issues/7265 ](https://redirect.github.com/vitest-dev/vitest/issues/7265 ) [<samp>(6555d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6555d61d )
- **vite-node**:
- Named export should overwrite export all - by [@​hi-ogawa](https://redirect.github.com/hi-ogawa ) in [https://github.com/vitest-dev/vitest/issues/7846 ](https://redirect.github.com/vitest-dev/vitest/issues/7846 ) [<samp>(5ba0d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5ba0d914 )
- Add ERR_MODULE_NOT_FOUND code error if module cannot be loaded - by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in [https://github.com/vitest-dev/vitest/issues/7776 ](https://redirect.github.com/vitest-dev/vitest/issues/7776 ) [<samp>(f9eac)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f9eacbc5 )
##### 🏎 Performance
- **browser**: Improve browser parallelisation - by [@​sheremet-va](https://redirect.github.com/sheremet-va ) in [https://github.com/vitest-dev/vitest/issues/7665 ](https://redirect.github.com/vitest-dev/vitest/issues/7665 ) [<samp>(816a5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/816a5c51 )
##### [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.1...v3.1.2 )
</details>
<details>
<summary>electron-userland/electron-builder (app-builder-lib)</summary>
### [`v26.0.14`](https://redirect.github.com/electron-userland/electron-builder/blob/HEAD/packages/app-builder-lib/CHANGELOG.md#26014 )
[Compare Source](https://redirect.github.com/electron-userland/electron-builder/compare/v26.0.13...v26.0.14 )
##### Patch Changes
- [#​9032](https://redirect.github.com/electron-userland/electron-builder/pull/9032 ) [`3d65267a`](3d65267a6c ) Thanks [@​indutny-signal](https://redirect.github.com/indutny-signal )! - Add customNsisResources override to nsis options
- [#​9061](https://redirect.github.com/electron-userland/electron-builder/pull/9061 ) [`5545e132`](5545e13254 ) Thanks [@​mmaietta](https://redirect.github.com/mmaietta )! - chore: migrate fpm packaging from app builder
- [#​9034](https://redirect.github.com/electron-userland/electron-builder/pull/9034 ) [`80fbf5a6`](80fbf5a6d8 ) Thanks [@​beyondkmp](https://redirect.github.com/beyondkmp )! - feat: add buildUniversalInstaller option to NSIS portable configuration
- [#​8995](https://redirect.github.com/electron-userland/electron-builder/pull/8995 ) [`524fb6e0`](524fb6e042 ) Thanks [@​mmaietta](https://redirect.github.com/mmaietta )! - chore(asar): use streaming API for `electron/asar` for constructing asar package
- Updated dependencies \[]:
- dmg-builder@26.0.14
- electron-builder-squirrel-windows@26.0.14
</details>
<details>
<summary>GoogleChromeLabs/browser-fs-access (browser-fs-access)</summary>
### [`v0.37.0`](https://redirect.github.com/GoogleChromeLabs/browser-fs-access/releases/tag/v0.37.0 )
[Compare Source](https://redirect.github.com/GoogleChromeLabs/browser-fs-access/compare/v0.36.0...v0.37.0 )
- Fix issues introduced with b6e855dc0c
### [`v0.36.0`](https://redirect.github.com/GoogleChromeLabs/browser-fs-access/releases/tag/v0.36.0 )
[Compare Source](https://redirect.github.com/GoogleChromeLabs/browser-fs-access/compare/v0.35.0...v0.36.0 )
- Use the `cancel` method for better exception handling with legacy methods. ([#​153](https://redirect.github.com/GoogleChromeLabs/browser-fs-access/issues/153 ), [#​158](https://redirect.github.com/GoogleChromeLabs/browser-fs-access/issues/158 ))
</details>
<details>
<summary>taskforcesh/bullmq (bullmq)</summary>
### [`v5.51.1`](https://redirect.github.com/taskforcesh/bullmq/releases/tag/v5.51.1 )
[Compare Source](https://redirect.github.com/taskforcesh/bullmq/compare/v5.51.0...v5.51.1 )
##### Bug Fixes
- **queue-events:** omit telemetry options ([#​3239](https://redirect.github.com/taskforcesh/bullmq/issues/3239 )) ([e4dac2c](e4dac2c39f ))
</details>
<details>
<summary>rust-lang/cc-rs (cc)</summary>
### [`v1.2.20`](https://redirect.github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#1220---2025-04-25 )
[Compare Source](https://redirect.github.com/rust-lang/cc-rs/compare/cc-v1.2.19...cc-v1.2.20 )
##### Other
- Regenerate target info ([#​1461](https://redirect.github.com/rust-lang/cc-rs/pull/1461 ))
- Fix parser.rs on latest rustc nightly ([#​1459](https://redirect.github.com/rust-lang/cc-rs/pull/1459 ))
</details>
<details>
<summary>clap-rs/clap (clap)</summary>
### [`v4.5.37`](https://redirect.github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4537---2025-04-18 )
[Compare Source](https://redirect.github.com/clap-rs/clap/compare/v4.5.36...v4.5.37 )
##### Features
- Added `ArgMatches::try_clear_id()`
</details>
<details>
<summary>sindresorhus/file-type (file-type)</summary>
### [`v20.5.0`](https://redirect.github.com/sindresorhus/file-type/releases/tag/v20.5.0 )
[Compare Source](https://redirect.github.com/sindresorhus/file-type/compare/v20.4.1...v20.5.0 )
- Add support Office PowerPoint 2007 (macro-enabled) slide show ([#​747](https://redirect.github.com/sindresorhus/file-type/issues/747 )) [`f1b4c7a`](https://redirect.github.com/sindresorhus/file-type/commit/f1b4c7a )
***
</details>
<details>
<summary>gradle/gradle (gradle)</summary>
### [`v8.14`](https://redirect.github.com/gradle/gradle/compare/v8.13.0...v8.14.0 )
[Compare Source](https://redirect.github.com/gradle/gradle/compare/v8.13.0...v8.14.0 )
</details>
<details>
<summary>graphql/graphql-js (graphql)</summary>
### [`v16.11.0`](https://redirect.github.com/graphql/graphql-js/releases/tag/v16.11.0 ): 16.11.0
[Compare Source](https://redirect.github.com/graphql/graphql-js/compare/v16.10.0...v16.11.0 )
##### v16.11.0 (2025-04-26)
##### New Feature 🚀
- [#​4363](https://redirect.github.com/graphql/graphql-js/pull/4363 ) Ensure we validate for using nullable variables in oneOf input fields ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4366](https://redirect.github.com/graphql/graphql-js/pull/4366 ) feat(execution): add max coercion errors option to execution context ([@​cristunaranjo](https://redirect.github.com/cristunaranjo ))
##### Bug Fix 🐞
- [#​4367](https://redirect.github.com/graphql/graphql-js/pull/4367 ) fix(coerce-input-value): input object coercion rejects arrays ([@​cristunaranjo](https://redirect.github.com/cristunaranjo ))
##### Docs 📝
<details>
<summary> 11 PRs were merged </summary>
- [#​4310](https://redirect.github.com/graphql/graphql-js/pull/4310 ) First draft for upgrade guide to v17 ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4331](https://redirect.github.com/graphql/graphql-js/pull/4331 ) fix sidebar for documentation and `/api-v16` ([@​dimaMachina](https://redirect.github.com/dimaMachina ))
- [#​4335](https://redirect.github.com/graphql/graphql-js/pull/4335 ) Add cspell exception ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4340](https://redirect.github.com/graphql/graphql-js/pull/4340 ) Improve flow of documentation around GraphiQL ([@​benjie](https://redirect.github.com/benjie ))
- [#​4343](https://redirect.github.com/graphql/graphql-js/pull/4343 ) typofix: removes extra parenthesis from getting started code snippet ([@​rabahalishah](https://redirect.github.com/rabahalishah ))
- [#​4351](https://redirect.github.com/graphql/graphql-js/pull/4351 ) fixed wrong variable name ([@​fto-dev](https://redirect.github.com/fto-dev ))
- [#​4352](https://redirect.github.com/graphql/graphql-js/pull/4352 ) docs(getting-started): promises current links ([@​guspan-tanadi](https://redirect.github.com/guspan-tanadi ))
- [#​4368](https://redirect.github.com/graphql/graphql-js/pull/4368 ) Update docs for execution options ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4369](https://redirect.github.com/graphql/graphql-js/pull/4369 ) Correct some syntax ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4372](https://redirect.github.com/graphql/graphql-js/pull/4372 ) Refactor every code-first example to leverage resolve ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4373](https://redirect.github.com/graphql/graphql-js/pull/4373 ) docs: Update getting-started.mdx ([@​Shubhdeep12](https://redirect.github.com/Shubhdeep12 ))
</details>
##### Polish 💅
* [#​4312](https://redirect.github.com/graphql/graphql-js/pull/4312 ) Increase print/visit performance ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
##### Internal 🏠
<details>
<summary> 4 PRs were merged </summary>
- [#​4327](https://redirect.github.com/graphql/graphql-js/pull/4327 ) Add redirect for /api ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4377](https://redirect.github.com/graphql/graphql-js/pull/4377 ) Chore: bump setup-node ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4378](https://redirect.github.com/graphql/graphql-js/pull/4378 ) Change to gqlConf 2025 ([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
- [#​4379](https://redirect.github.com/graphql/graphql-js/pull/4379 ) Add missing parenthesis ([@​benjie](https://redirect.github.com/benjie ))
</details>
##### Committers: 8
* Benjie([@​benjie](https://redirect.github.com/benjie ))
* Cris Naranjo ([@​cristunaranjo](https://redirect.github.com/cristunaranjo ))
* Dimitri POSTOLOV([@​dimaMachina](https://redirect.github.com/dimaMachina ))
* Fatih Ozdemir([@​fto-dev](https://redirect.github.com/fto-dev ))
* Guspan Tanadi([@​guspan-tanadi](https://redirect.github.com/guspan-tanadi ))
* Jovi De Croock([@​JoviDeCroock](https://redirect.github.com/JoviDeCroock ))
* Rabah Ali Shah([@​rabahalishah](https://redirect.github.com/rabahalishah ))
* Shubhdeep Chhabra([@​Shubhdeep12](https://redirect.github.com/Shubhdeep12 ))
</details>
<details>
<summary>lucide-icons/lucide (lucide-react)</summary>
### [`v0.503.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.503.0 ): Version 0.503.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.502.0...0.503.0 )
#### What's Changed
- fix(icons): changed `file-badge-2` icon by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/2933 ](https://redirect.github.com/lucide-icons/lucide/pull/2933 )
- feat(icons): added `wifi-pen` icon by [@​luisdlopera](https://redirect.github.com/luisdlopera ) in [https://github.com/lucide-icons/lucide/pull/2576 ](https://redirect.github.com/lucide-icons/lucide/pull/2576 )
#### New Contributors
- [@​luisdlopera](https://redirect.github.com/luisdlopera ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2576 ](https://redirect.github.com/lucide-icons/lucide/pull/2576 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.502.0...0.503.0
### [`v0.502.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.502.0 ): Version 0.502.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.501.0...0.502.0 )
#### What's Changed
- fix(docs): Added link for jguddas next to lucide studio by [@​briz123](https://redirect.github.com/briz123 ) in [https://github.com/lucide-icons/lucide/pull/3063 ](https://redirect.github.com/lucide-icons/lucide/pull/3063 )
- build(deps-dev): bump vite from 5.4.15 to 5.4.17 by [@​dependabot](https://redirect.github.com/dependabot ) in [https://github.com/lucide-icons/lucide/pull/2993 ](https://redirect.github.com/lucide-icons/lucide/pull/2993 )
- fix(build): fix shredder formatting and duplicate contributors error by [@​jpjacobpadilla](https://redirect.github.com/jpjacobpadilla ) in [https://github.com/lucide-icons/lucide/pull/3072 ](https://redirect.github.com/lucide-icons/lucide/pull/3072 )
- fix(icons): rebase non-binary on square-asterisk by [@​karsa-mistmere](https://redirect.github.com/karsa-mistmere ) in [https://github.com/lucide-icons/lucide/pull/3071 ](https://redirect.github.com/lucide-icons/lucide/pull/3071 )
- docs(CONTRIBUTING): Grammar fix for CONTRIBUTING by [@​ajokt123](https://redirect.github.com/ajokt123 ) in [https://github.com/lucide-icons/lucide/pull/3090 ](https://redirect.github.com/lucide-icons/lucide/pull/3090 )
- fix(icons): changed `calendar-plus` icon by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/3085 ](https://redirect.github.com/lucide-icons/lucide/pull/3085 )
- fix(icons): changed `book-key` icon by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/3062 ](https://redirect.github.com/lucide-icons/lucide/pull/3062 )
- fix(icons): changed `clipboard-paste` icon by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/3075 ](https://redirect.github.com/lucide-icons/lucide/pull/3075 )
- fix(icons): changed `orbit` icon by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/3074 ](https://redirect.github.com/lucide-icons/lucide/pull/3074 )
- fix(icons): changed `baby` icon by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/3073 ](https://redirect.github.com/lucide-icons/lucide/pull/3073 )
- docs(pacakges): Added periods to package summary by [@​briz123](https://redirect.github.com/briz123 ) in [https://github.com/lucide-icons/lucide/pull/3065 ](https://redirect.github.com/lucide-icons/lucide/pull/3065 )
- fix(docs): PR Conventions by [@​briz123](https://redirect.github.com/briz123 ) in [https://github.com/lucide-icons/lucide/pull/3066 ](https://redirect.github.com/lucide-icons/lucide/pull/3066 )
- feat(icons): added `ruler-dimension-line` icon by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/2535 ](https://redirect.github.com/lucide-icons/lucide/pull/2535 )
#### New Contributors
- [@​jpjacobpadilla](https://redirect.github.com/jpjacobpadilla ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3072 ](https://redirect.github.com/lucide-icons/lucide/pull/3072 )
- [@​ajokt123](https://redirect.github.com/ajokt123 ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3090 ](https://redirect.github.com/lucide-icons/lucide/pull/3090 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.501.0...0.502.0
### [`v0.501.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.501.0 ): Version 0.501.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.500.0...0.501.0 )
#### What's Changed
- feat(angular): export icon data types by [@​dzonatan](https://redirect.github.com/dzonatan ) in [https://github.com/lucide-icons/lucide/pull/2820 ](https://redirect.github.com/lucide-icons/lucide/pull/2820 )
- feat: added request-review workflow by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/2502 ](https://redirect.github.com/lucide-icons/lucide/pull/2502 )
- feat(icons): Add columns-3-cog icon by [@​irvineacosta](https://redirect.github.com/irvineacosta ) in [https://github.com/lucide-icons/lucide/pull/2763 ](https://redirect.github.com/lucide-icons/lucide/pull/2763 )
#### New Contributors
- [@​dzonatan](https://redirect.github.com/dzonatan ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2820 ](https://redirect.github.com/lucide-icons/lucide/pull/2820 )
- [@​irvineacosta](https://redirect.github.com/irvineacosta ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2763 ](https://redirect.github.com/lucide-icons/lucide/pull/2763 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.500.0...0.501.0
### [`v0.500.0`](https://redirect.github.com/lucide-icons/lucide/compare/0.499.0...0.500.0 )
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.499.0...0.500.0 )
### [`v0.499.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.499.0 ): Version 0.499.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.498.0...0.499.0 )
#### What's Changed
- feat(icons): added `bow-arrow` icon by [@​jamiemlaw](https://redirect.github.com/jamiemlaw ) in [https://github.com/lucide-icons/lucide/pull/2418 ](https://redirect.github.com/lucide-icons/lucide/pull/2418 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.498.0...0.499.0
### [`v0.498.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.498.0 ): Version 0.498.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.497.0...0.498.0 )
#### What's Changed
- feat(icons): added `decimals-arrow-left` icon and `decimals-arrow-right` by [@​AnnaSasDev](https://redirect.github.com/AnnaSasDev ) in [https://github.com/lucide-icons/lucide/pull/2945 ](https://redirect.github.com/lucide-icons/lucide/pull/2945 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.497.0...0.498.0
### [`v0.497.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.497.0 ): Version 0.497.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.496.0...0.497.0 )
#### What's Changed
- feat(icons): added `shredder` icon by [@​alirashidy](https://redirect.github.com/alirashidy ) in [https://github.com/lucide-icons/lucide/pull/3052 ](https://redirect.github.com/lucide-icons/lucide/pull/3052 )
#### New Contributors
- [@​alirashidy](https://redirect.github.com/alirashidy ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/3052 ](https://redirect.github.com/lucide-icons/lucide/pull/3052 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.496.0...0.497.0
### [`v0.496.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.496.0 ): Version 0.496.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.495.0...0.496.0 )
#### What's Changed
- feat(icons): added `squares-*` operation icons by [@​EthanHazel](https://redirect.github.com/EthanHazel ) in [https://github.com/lucide-icons/lucide/pull/2585 ](https://redirect.github.com/lucide-icons/lucide/pull/2585 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.495.0...0.496.0
### [`v0.495.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.495.0 ): Version 0.495.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.494.0...0.495.0 )
#### What's Changed
- feat(icons): added `rectangle-goggles` icon by [@​EthanHazel](https://redirect.github.com/EthanHazel ) in [https://github.com/lucide-icons/lucide/pull/2515 ](https://redirect.github.com/lucide-icons/lucide/pull/2515 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.494.0...0.495.0
### [`v0.494.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.494.0 ): Version 0.494.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.493.0...0.494.0 )
#### What's Changed
- fix(icons): changed `cpu` icon by [@​karsa-mistmere](https://redirect.github.com/karsa-mistmere ) in [https://github.com/lucide-icons/lucide/pull/3033 ](https://redirect.github.com/lucide-icons/lucide/pull/3033 )
- feat(icons): added map-pin-edit icon [#​2874](https://redirect.github.com/lucide-icons/lucide/issues/2874 ) by [@​sachinkr7368](https://redirect.github.com/sachinkr7368 ) in [https://github.com/lucide-icons/lucide/pull/2957 ](https://redirect.github.com/lucide-icons/lucide/pull/2957 )
#### New Contributors
- [@​sachinkr7368](https://redirect.github.com/sachinkr7368 ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2957 ](https://redirect.github.com/lucide-icons/lucide/pull/2957 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.493.0...0.494.0
### [`v0.493.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.493.0 ): Version 0.493.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.492.0...0.493.0 )
#### What's Changed
- feat(icons): added `bubbles` icon by [@​vqh2602](https://redirect.github.com/vqh2602 ) in [https://github.com/lucide-icons/lucide/pull/2582 ](https://redirect.github.com/lucide-icons/lucide/pull/2582 )
- docs(studio): Add lucide studio to site navbar by [@​ericfennis](https://redirect.github.com/ericfennis ) in [https://github.com/lucide-icons/lucide/pull/3058 ](https://redirect.github.com/lucide-icons/lucide/pull/3058 )
- feat(ci): adds dpi preview for 16, 32 and 48px by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/3048 ](https://redirect.github.com/lucide-icons/lucide/pull/3048 )
- fix(icons): changed `palette` icon by [@​jamiemlaw](https://redirect.github.com/jamiemlaw ) in [https://github.com/lucide-icons/lucide/pull/3015 ](https://redirect.github.com/lucide-icons/lucide/pull/3015 )
- feat(icons): added `brick-wall-fire` icon by [@​karsa-mistmere](https://redirect.github.com/karsa-mistmere ) in [https://github.com/lucide-icons/lucide/pull/3036 ](https://redirect.github.com/lucide-icons/lucide/pull/3036 )
#### New Contributors
- [@​vqh2602](https://redirect.github.com/vqh2602 ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2582 ](https://redirect.github.com/lucide-icons/lucide/pull/2582 )
**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.492.0...0.493.0
### [`v0.492.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.492.0 ): Version 0.492.0
[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.491.0...0.492.0 )
##### What's Changed
- fix(icons): changed `pipette` icon by [@​jguddas](https://redirect.github.com/jguddas ) in [https://github.com/lucide-icons/lucide/pull/2927 ](https://redirect.github.com/lucide-icons/lucide/pull/2927 )
- feat(icons): added `heart-plus` & `heart-minus` icon by [@​Ayberkyvs](https://redirect.github.com/Ayberkyvs ) in [https://github.com/lucide-icons/lucide/pull/2842 ](https://redirect.github.com/lucide-icons/lucide/pull/2842 )
##### New Contributors
- [@​Ayberkyvs](https://redirect.github.com/Ayberkyvs ) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2842 ](https://redirect.github.com/lucide-icons/lucid
</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNTcuMyIsInVwZGF0ZWRJblZlciI6IjM5LjI1Ny4zIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-04-29 09:36:13 +00:00
donteatfriedrice
83670ab335
feat(editor): add experimental feature citation ( #11984 )
...
Closes: [BS-3122](https://linear.app/affine-design/issue/BS-3122/footnote-definition-adapter-适配 )
Closes: [BS-3123](https://linear.app/affine-design/issue/BS-3123/几个-block-card-view-适配-footnote-态 )
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Introduced a new citation card component and web element for displaying citations.
- Added support for citation-style rendering in attachment, bookmark, and linked document blocks.
- Enabled citation parsing from footnote definitions in markdown for attachments, bookmarks, and linked docs.
- Added a feature flag to enable or disable citation features.
- Provided new toolbar logic to disable downloads for citation-style attachments.
- **Improvements**
- Updated block models and properties to support citation identifiers.
- Added localization and settings for the citation experimental feature.
- Enhanced markdown adapters to recognize and process citation footnotes.
- Included new constants and styles for citation card display.
- **Bug Fixes**
- Ensured readonly state is respected in block interactions and rendering for citation blocks.
- **Documentation**
- Added exports and effects for new citation components and features.
- **Tests**
- Updated snapshots to include citation-related properties in block data.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-29 06:59:27 +00:00
fundon
362f89b669
feat(editor): adjust attachment block UI ( #11763 )
...
Closes: [BS-3143](https://linear.app/affine-design/issue/BS-3143/更新-attachment-错误样式 )
Closes: [BS-3341](https://linear.app/affine-design/issue/BS-3341/attachment-select状态ui调整 )
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Improved attachment block with unified reactive state handling for loading, errors, and downloads.
- Enhanced card layouts with modular rendering and dynamic buttons based on state.
- **Bug Fixes**
- Fixed UI state for "Embed view" action, now correctly disabled when not embedded.
- Resolved attachment card styling issues and text overflow with new utility classes.
- **Refactor**
- Streamlined attachment block rendering and state management for better performance and maintainability.
- Updated toolbar configuration for consistent parameter naming.
- Simplified embedded and open methods for improved clarity.
- Made internal functions private to reduce exported API surface.
- **Chores**
- Removed unused icon export and legacy upload tracking functions.
- Updated attachment utilities to use reactive state, added data refresh, and improved error handling.
- Refined image dimension handling for consistent resizing behavior.
- Improved test selectors to target focused attachment containers for better reliability.
- Refactored CSS to separate container and card styling and adopt theme-based colors consistently.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-29 01:00:56 +00:00
L-Sun
d57b9372ae
fix(editor): edgeless note duplicated from embed-doc should be above other elements ( #12028 )
...
Close [BS-3357](https://linear.app/affine-design/issue/BS-3357/duplicate-note-注意设置z轴的数据 )
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit
- **New Features**
- Duplicating an edgeless note now ensures the new note appears above other elements in the stacking order.
- **Tests**
- Added a test to verify that duplicated edgeless notes are rendered above existing elements.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-28 14:06:41 +00:00
L-Sun
a9ad01491c
test(core): enable no-floating-promises rule for tests ( #11915 )
...
Sometimes, missing `await` in the test code can cause timing issues, leading to test failures. This PR enables the `no-floating-promises` rule for the test code to ensure that such errors do not occur.
2025-04-23 08:17:41 +00:00
L-Sun
9dbdd4b7ba
refactor(editor): add helper function for undo notification ( #11903 )
...
### What Changes
- Refactors the `notify` function call with undo button. It is called `notifyWithUndo`, which can associate the visibility of the `NotificationCard` with the top undo item in history stack, such as undo by shortcut `Cmd+Z`.
- change icon of the "Insert into page" button. Close [BS-3267](https://linear.app/affine-design/issue/BS-3267/frame和group的insert-into-page图标也更换一下 )
2025-04-23 05:56:23 +00:00
L-Sun
9baef237f2
test(core): add missing await for expect ( #11900 )
2025-04-23 04:55:18 +00:00
doouding
b59f6ebde0
refactor: default-tool box selection ( #11800 )
...
### Changed
- Rewrite box selection in `default-tool`, the view can decide whether to be selected in box selection by return a boolean value in `onBoxSelected` method
- Cleanup unnecessary states in `default-tool` and some naming problem
2025-04-22 08:18:26 +00:00
L-Sun
e457e2f8a8
fix(editor): add reference after duplicate edgeless embed doc as note ( #11877 )
...
- fix(editor): add reference in the copied note of embed doc
- refactor(editor): add generics parameter `TextAttributes` into `Text`
2025-04-22 08:03:52 +00:00
L-Sun
a2b40fea20
feat(editor): insertion and duplication actions for embed synced doc ( #11852 )
...
Close [BS-3068](https://linear.app/affine-design/issue/BS-3068/在edgeless-的embed-doc-block上,增加-insert-into-page的选项,类似frame )
Close [BS-3069](https://linear.app/affine-design/issue/BS-3069/edgeless下的-embed,覆盖现在的edit行为-,暂定叫做duplicate-into-a-note,复制一个-note )
2025-04-21 11:01:04 +00:00
L-Sun
61ce1123ae
refactor(editor): split synced-doc-block tests to serveral files ( #11845 )
...
This PR splits `synced-doc-block.spec.ts` into multiple files for better organization.
2025-04-21 08:54:04 +00:00
L-Sun
6d7cd6dd99
fix(editor): banner of blookmark not shown in edgeless ( #11796 )
...
Close [BS-2651](https://app.graphite.dev/github/pr/toeverything/AFFiNE/11797/chore(editor)-add-feature-flag-to-embed-doc-with-alias )
### What Changes:
- Fixed banner of edgeless embed bookmark is not shown
- Add fallback bookmark creation with embed creation modal when there is not a `QuickSearchProvider` in blocksuite playground
- Add tests for embed blookmark and embed github block in edgeless
2025-04-21 03:33:18 +00:00
fundon
1ae36d4b3e
fix(editor): remove redundant subtraction ( #11781 )
2025-04-18 03:53:51 +00:00
Saul-Mirone
efecce9bf2
test(editor): enable basic test for cross platform ( #11667 )
2025-04-14 07:36:56 +00:00
L-Sun
076c5ba044
fix(editor): repeat trigger keys of at-menu was added ( #11631 )
...
Close [BS-2716](https://linear.app/affine-design/issue/BS-2716/移动端通过toolpanel唤起的at-menu,出现两个 )
2025-04-13 06:46:37 +00:00
fundon
afdc40b510
feat(editor): add shortcut to highlighter tool ( #11604 )
...
Closes: [BS-3092](https://linear.app/affine-design/issue/BS-3092/highlighter-快捷键 )
### What's Changed!
* Added shortcut `⇧ P` to highlighter tool
[Screen Recording 2025-04-10 at 16.33.30.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/8ypiIKZXudF5a0tIgIzf/38aadc08-ed18-4b48-9d91-b4876d14a2d3.mov " />](https://app.graphite.dev/media/video/8ypiIKZXudF5a0tIgIzf/38aadc08-ed18-4b48-9d91-b4876d14a2d3.mov )
2025-04-11 13:08:59 +00:00
L-Sun
aabb09b31f
fix(editor): ime input error at empty line ( #11636 )
...
Close [BS-3106](https://linear.app/affine-design/issue/BS-3106/mac-chrom在空行使用ime输入,文档卡住 )
2025-04-11 10:39:16 +00:00
Saul-Mirone
a2f879066f
ci(editor): enable cross platform test ( #11566 )
2025-04-10 16:52:15 +00:00
L-Sun
823bf40a57
fix(editor): fix overlay of tool is not shown or repeated when switching tool ( #11575 )
...
Close [BS-3029](https://linear.app/affine-design/issue/BS-3029/frame-里面的-shape-没办法进入文本编辑模式 )
Close [BS-3082](https://linear.app/affine-design/issue/BS-3082/按s切换至shape工具,在白板上点击会创建两个shape )
Close [BS-3091](https://linear.app/affine-design/issue/BS-3082/按s切换至shape工具,在白板上点击会创建两个shape )
## Fix Shape Tool Issues
This PR addresses several issues with the shape and mindmap tools functionality in the editor:
1. **Fix text editing after mode switching**: Resolves an issue where users couldn't edit text in shapes after switching editor modes. The fix ensures the edgeless block is properly retrieved when double-clicking on a shape.
2. **Improve tool switching behavior**: Fixes issues with tool overlays not showing or being repeated when switching between tools. This includes:
- Properly handling tool overlay visibility
- Ensuring only one tool is active at a time when using keyboard shortcuts
- Adding proper cleanup when switching tools
3. **Add comprehensive tests**: Adds new test cases to verify:
- Shape creation with keyboard shortcuts
- Shape text editing after mode switching
- Tool switching behavior with keyboard shortcuts
2025-04-10 13:39:22 +00:00
L-Sun
06497773a7
fix(editor): can not move carte at the end of inline element ( #11558 )
...
Close [BS-2922](https://linear.app/affine-design/issue/BS-2922/【移动端-ios】文档添加linked-page后,无法删除 )
2025-04-09 08:07:02 +00:00
L-Sun
3820186512
fix(editor): incorrect brush bound with rotation and line width ( #11524 )
...
This transfered PR from [BS/#9058](https://github.com/toeverything/blocksuite/pull/9058 ) fixes an issue where the selection rectangle of a brush element was incorrect after resizing and rotating.
2025-04-08 10:48:12 +00:00
forehalo
40f218c898
chore: set base version to 0.21
2025-04-07 16:10:32 +08:00
Saul-Mirone
854569af2d
refactor(editor): remove lasso tool ( #11481 )
2025-04-07 01:12:28 +00:00
CatsJuice
46d8d30e62
feat(editor): disable clickToDrag for edgeless toolbar shape and mindmap ( #11310 )
2025-04-04 05:10:05 +00:00
Flrande
51b3f2b057
fix(editor): do not display format bar with embed node ( #11371 )
...
Close [BS-2895: 点击inline名字区域不需要显示format toolbar](https://linear.app/affine-design/issue/BS-2895/点击inline名字区域不需要显示format-toolbar )
2025-04-02 09:21:32 +00:00
doouding
ef76c83184
fix: connector should remain the same when its target or source switch to other
...
shape type (#11369 )
Fixes [BS-1431](https://linear.app/affine-design/issue/BS-1431/改变-shape-形状后,connector-丢失 )
2025-04-02 05:10:30 +00:00
L-Sun
cad4dde4b1
fix(editor): missing doc mode extension in frame preview ( #11348 )
...
Close [BS-2777](https://linear.app/affine-design/issue/BS-2777/frame-preview里的embed-card展示的doc-mode不对 )
2025-04-01 11:57:53 +00:00
fundon
7af5e53838
refactor(editor): image toolbar config extension ( #11329 )
...
Closes: [BS-2378](https://linear.app/affine-design/issue/BS-2378/image-toolbar-迁移 )
2025-04-01 10:04:28 +00:00
L-Sun
e7f5601303
fix(editor): undo should remove the new frame created by dragging ( #11303 )
...
Close [BS-2848](https://linear.app/affine-design/issue/BS-2848/但我发现frame创建后,要撤销两次才能删掉 )
2025-04-01 04:41:44 +00:00
fundon
eac8f32f4c
refactor(editor): basic styles of font and panel ( #11290 )
...
* Updated `border-radius` of panel to `8px`. [BS-2901](https://linear.app/affine-design/issue/BS-2901/meta-info-ui-issue ) [BS-2810](https://linear.app/affine-design/issue/BS-2810/toolbarpicker-圆角更新为-8px )
* Refactored basic styles of font and panel.
<img width="549" alt="Screenshot 2025-03-31 at 12 56 36" src="https://github.com/user-attachments/assets/4a827e1e-f802-4251-a563-4a34b891a5e3 " />
2025-04-01 01:35:59 +00:00
L-Sun
c9e14ac0db
fix(editor): sync gfx block transform update with RAF to prevent stale transform ( #11322 )
...
Close [BS-2866](https://linear.app/affine-design/issue/BS-2866/presentation-mode中的note消失 )
## Problem
When using RequestAnimationFrame (RAF) for GFX block updates, there was a timing issue where the transform update would lag behind the RAF callback, causing the block to display with the previous frame's transform state.
## Solution
1. Refactored the block state management to use signals for better reactivity
2. Moved block visibility state management from `viewport-element.ts` to `gfx-block-component.ts`
3. Added `transformState$` signal to track block state
4. Synchronized transform updates with RAF using `effect` to ensure updates happen in the correct frame
5. Added test case to verify note visibility in presentation mode
2025-03-31 12:47:01 +00:00
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
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
Mirone
9f939d823e
fix(editor): slash menu e2e ( #11289 )
2025-03-31 11:13:34 +08:00
Saul-Mirone
205cd7a86d
refactor(editor): rename block-std to std ( #11250 )
...
Closes: BS-2946
2025-03-28 07:20:34 +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
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