Commit Graph

15 Commits

Author SHA1 Message Date
Saul-Mirone
820c3fda63 refactor(editor): cleanup effects export (#12312)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **Chores**
  - Removed multiple internal export entries related to effects modules across various packages.
  - Updated dependencies and configuration references to improve internal consistency. No visible changes for end-users.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-18 04:17:08 +00:00
L-Sun
6fabc0eb1f fix(editor): adjustment of scaled and folded synced doc (#12294)
Close [BS-3418](https://linear.app/affine-design/issue/BS-3418/折叠的embed-doc调整宽度时,会出现一个最小高度,不需要这个)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **New Features**
  - Added support for dynamically scaling the height of embedded synced document blocks, including proper handling when folding and unfolding.
  - Introduced a new property to track the scaled height of folded synced document blocks.

- **Bug Fixes**
  - Improved accuracy of height calculations for synced document blocks by accounting for both viewport zoom and block scale.

- **Tests**
  - Enhanced end-to-end tests to consistently apply scaling before running size adjustment checks.
  - Added a utility function to simulate scaling elements with keyboard shortcuts during test execution.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-15 03:56:03 +00:00
Saul-Mirone
7c22b3931f refactor(editor): cleanup dead code (#12281)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **Refactor**
  - Streamlined and consolidated block and inline extension exports by removing multiple block-spec and inline extension arrays from public APIs.
  - Reduced exported constants, types, and utility functions related to various block and embed features.
  - Simplified the codebase by removing deprecated type guards, adapter extensions, and redundant extension groupings.
- **Chores**
  - Cleaned up internal APIs by deleting unused exports, imports, and outdated code, enhancing maintainability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-14 14:14:29 +00:00
L-Sun
3ebed1d5a8 chore(editor): adjust size of synced doc (#12163)
Close [BS-3418](https://linear.app/affine-design/issue/BS-3418/折叠的embed-doc调整宽度时,会出现一个最小高度,不需要这个)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Improved resizing and folding interactions for embedded synced documents in edgeless mode, including dynamic height calculation and enhanced drag-handle styling.
- **Bug Fixes**
  - Adjusted minimum height for synced document embeds to allow more compact display.
  - Ensured consistent width settings across embed cards.
- **Tests**
  - Added end-to-end tests covering folding, unfolding, and resizing behaviors for edgeless synced document embeds.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-14 05:17:42 +00:00
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
0464e03b92 chore(editor): add telemetry for note, embed doc and linked doc (#12234)
Close [BS-3480](https://linear.app/affine-design/issue/BS-3480/event-tracking)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **New Features**
  - Added telemetry tracking to toolbar actions for embedding documents, duplicating notes, and toggling note display modes.
  - Telemetry events now track when new note blocks are created from drag-and-drop actions on the whiteboard.

- **Chores**
  - Improved event tracking for user interactions to enhance analytics and usage insights.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-12 18:12:16 +08:00
L-Sun
11dfc1d1df feat(editor): insert embed doc with quick search by default (#12165)
Close [BS-3404](https://linear.app/affine-design/issue/BS-3404/通过embed-doc时,插入的doc还是card-view,应该要默认embed-view)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Added the ability to insert and display embedded synced documents, supporting different link types based on editor mode and user preferences.
  - Introduced new UI interactions and view options for embedded synced documents in edgeless mode.

- **Bug Fixes**
  - Updated UI selectors and preference keys to ensure consistent behavior and correct application of user settings.

- **Tests**
  - Added and updated end-to-end tests for embedding synced documents, including header interactions and viewport fitting.
  - Improved test coverage for quick search insertion and edgeless embed synced doc features.

- **Chores**
  - Renamed settings and updated exports to align with new embedding functionality.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-08 10:21:33 +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
L-Sun
610565e617 chore(editor): adjust embed synced doc ui (#12162)
Close [BS-3400](https://linear.app/affine-design/issue/BS-3400/ui-issues)

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - The "View in Page" button has been renamed to "Open in Page" and now uses a new icon for improved clarity.
  - The menu for embedded synced documents is now integrated directly into the Open button for a more streamlined interface.

- **Style**
  - Improved spacing and visual alignment in edgeless block headers, including dedicated styling for title icons and buttons.
  - Updated toolbar icon for better visual consistency.
  - Added background styling for embedded linked document blocks.

- **Localization**
  - Updated translation keys and text to reflect the "Open in Page" terminology across all supported languages.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-07 08:34:58 +00:00
Saul-Mirone
267bb3a975 refactor(editor): introduce store container to make implement doc easier (#12146)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Introduced a new store management system for handling document stores, improving efficiency and flexibility when working with document data.

- **Refactor**
  - Updated internal store handling to use a centralized store container, simplifying store retrieval and removal across various components.
  - Renamed and updated several store-related method signatures for consistency and clarity.
  - Replaced editor extension loading logic with a new local implementation for better modularity.

- **Chores**
  - Improved and streamlined the export of store-related modules for better maintainability.
  - Removed obsolete and redundant code related to previous store management approaches.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-07 06:08:43 +00:00
renovate
bcc728a929 chore: bump up all non-major npm dependencies (#12151)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@ai-sdk/google](https://ai-sdk.dev/docs) ([source](https://redirect.github.com/vercel/ai)) | [`1.2.14` -> `1.2.15`](https://renovatebot.com/diffs/npm/@ai-sdk%2fgoogle/1.2.14/1.2.15) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@ai-sdk%2fgoogle/1.2.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@ai-sdk%2fgoogle/1.2.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@ai-sdk%2fgoogle/1.2.14/1.2.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@ai-sdk%2fgoogle/1.2.14/1.2.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@graphql-codegen/cli](https://redirect.github.com/dotansimha/graphql-code-generator) ([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/graphql-codegen-cli)) | [`5.0.5` -> `5.0.6`](https://renovatebot.com/diffs/npm/@graphql-codegen%2fcli/5.0.5/5.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2fcli/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2fcli/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2fcli/5.0.5/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2fcli/5.0.5/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@graphql-codegen/typescript-operations](https://redirect.github.com/dotansimha/graphql-code-generator) ([source](https://redirect.github.com/dotansimha/graphql-code-generator/tree/HEAD/packages/plugins/typescript/operations)) | [`4.6.0` -> `4.6.1`](https://renovatebot.com/diffs/npm/@graphql-codegen%2ftypescript-operations/4.6.0/4.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@graphql-codegen%2ftypescript-operations/4.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@graphql-codegen%2ftypescript-operations/4.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@graphql-codegen%2ftypescript-operations/4.6.0/4.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@graphql-codegen%2ftypescript-operations/4.6.0/4.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@react-email/components](https://redirect.github.com/resend/react-email) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/components)) | [`0.0.36` -> `0.0.38`](https://renovatebot.com/diffs/npm/@react-email%2fcomponents/0.0.36/0.0.38) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@react-email%2fcomponents/0.0.38?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@react-email%2fcomponents/0.0.38?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@react-email%2fcomponents/0.0.36/0.0.38?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@react-email%2fcomponents/0.0.36/0.0.38?slim=true)](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.2` -> `3.1.3`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.1.2/3.1.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser/3.1.2/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser/3.1.2/3.1.3?slim=true)](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.2` -> `3.1.3`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.1.2/3.1.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/3.1.2/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/3.1.2/3.1.3?slim=true)](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.2` -> `3.1.3`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.1.2/3.1.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/3.1.2/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/3.1.2/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [cc](https://redirect.github.com/rust-lang/cc-rs) | `1.2.20` -> `1.2.21` | [![age](https://developer.mend.io/api/mc/badges/age/crate/cc/1.2.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/cc/1.2.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/cc/1.2.20/1.2.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/cc/1.2.20/1.2.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | build-dependencies | patch |
| [chrono](https://redirect.github.com/chronotope/chrono) | `0.4.40` -> `0.4.41` | [![age](https://developer.mend.io/api/mc/badges/age/crate/chrono/0.4.41?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/chrono/0.4.41?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/chrono/0.4.40/0.4.41?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/chrono/0.4.40/0.4.41?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [cssnano](https://redirect.github.com/cssnano/cssnano) | [`7.0.6` -> `7.0.7`](https://renovatebot.com/diffs/npm/cssnano/7.0.6/7.0.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/cssnano/7.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/cssnano/7.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/cssnano/7.0.6/7.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/cssnano/7.0.6/7.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [i18next](https://www.i18next.com) ([source](https://redirect.github.com/i18next/i18next)) | [`25.0.2` -> `25.1.1`](https://renovatebot.com/diffs/npm/i18next/25.0.2/25.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/i18next/25.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/i18next/25.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/i18next/25.0.2/25.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/i18next/25.0.2/25.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [jotai](https://redirect.github.com/pmndrs/jotai) | [`2.12.3` -> `2.12.4`](https://renovatebot.com/diffs/npm/jotai/2.12.3/2.12.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/jotai/2.12.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jotai/2.12.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jotai/2.12.3/2.12.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jotai/2.12.3/2.12.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [lint-staged](https://redirect.github.com/lint-staged/lint-staged) | [`15.5.1` -> `15.5.2`](https://renovatebot.com/diffs/npm/lint-staged/15.5.1/15.5.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/15.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/15.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.5.1/15.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.5.1/15.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.503.0` -> `^0.507.0`](https://renovatebot.com/diffs/npm/lucide-react/0.503.0/0.507.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.507.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.507.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.503.0/0.507.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.503.0/0.507.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react-email](https://redirect.github.com/resend/react-email) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/react-email)) | [`4.0.7` -> `4.0.11`](https://renovatebot.com/diffs/npm/react-email/4.0.7/4.0.11) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-email/4.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-email/4.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-email/4.0.7/4.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-email/4.0.7/4.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [shiki](https://redirect.github.com/shikijs/shiki) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki)) | [`3.3.0` -> `3.4.0`](https://renovatebot.com/diffs/npm/shiki/3.3.0/3.4.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/shiki/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shiki/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shiki/3.3.0/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shiki/3.3.0/3.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | `1.44.2` -> `1.45.0` | [![age](https://developer.mend.io/api/mc/badges/age/crate/tokio/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio/1.44.2/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio/1.44.2/1.45.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | minor |
| [uniffi](https://mozilla.github.io/uniffi-rs) ([source](https://redirect.github.com/mozilla/uniffi-rs)) | `0.29.1` -> `0.29.2` | [![age](https://developer.mend.io/api/mc/badges/age/crate/uniffi/0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/uniffi/0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/uniffi/0.29.1/0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/uniffi/0.29.1/0.29.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [vitest](https://redirect.github.com/vitest-dev/vitest) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`3.1.2` -> `3.1.3`](https://renovatebot.com/diffs/npm/vitest/3.1.2/3.1.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.1.2/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.1.2/3.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [webpack](https://redirect.github.com/webpack/webpack) | [`5.99.7` -> `5.99.8`](https://renovatebot.com/diffs/npm/webpack/5.99.7/5.99.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/webpack/5.99.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/webpack/5.99.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/webpack/5.99.7/5.99.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/webpack/5.99.7/5.99.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [webpack](https://redirect.github.com/webpack/webpack) | [`5.99.7` -> `5.99.8`](https://renovatebot.com/diffs/npm/webpack/5.99.7/5.99.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/webpack/5.99.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/webpack/5.99.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/webpack/5.99.7/5.99.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/webpack/5.99.7/5.99.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [com.google.devtools.ksp](https://goo.gle/ksp) ([source](https://redirect.github.com/google/ksp)) | `2.1.20-2.0.0` -> `2.1.20-2.0.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.20-2.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.20-2.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.20-2.0.0/2.1.20-2.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.1.20-2.0.0/2.1.20-2.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | patch |
| [com.apollographql.adapters:apollo-adapters-kotlinx-datetime](https://redirect.github.com/apollographql/apollo-kotlin-adapters) | `0.0.4` -> `0.0.6` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.apollographql.adapters:apollo-adapters-kotlinx-datetime/0.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.apollographql.adapters:apollo-adapters-kotlinx-datetime/0.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.apollographql.adapters:apollo-adapters-kotlinx-datetime/0.0.4/0.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.apollographql.adapters:apollo-adapters-kotlinx-datetime/0.0.4/0.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [com.apollographql.adapters:apollo-adapters-core](https://redirect.github.com/apollographql/apollo-kotlin-adapters) | `0.0.4` -> `0.0.6` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.apollographql.adapters:apollo-adapters-core/0.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.apollographql.adapters:apollo-adapters-core/0.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.apollographql.adapters:apollo-adapters-core/0.0.4/0.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.apollographql.adapters:apollo-adapters-core/0.0.4/0.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [com.apollographql.apollo](https://redirect.github.com/apollographql/apollo-kotlin) | `4.1.1` -> `4.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.apollographql.apollo:com.apollographql.apollo.gradle.plugin/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.apollographql.apollo:com.apollographql.apollo.gradle.plugin/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.apollographql.apollo:com.apollographql.apollo.gradle.plugin/4.1.1/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.apollographql.apollo:com.apollographql.apollo.gradle.plugin/4.1.1/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | minor |
| [com.apollographql.apollo:apollo-runtime](https://redirect.github.com/apollographql/apollo-kotlin) | `4.1.1` -> `4.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.apollographql.apollo:apollo-runtime/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.apollographql.apollo:apollo-runtime/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.apollographql.apollo:apollo-runtime/4.1.1/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.apollographql.apollo:apollo-runtime/4.1.1/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [com.apollographql.apollo:apollo-api](https://redirect.github.com/apollographql/apollo-kotlin) | `4.1.1` -> `4.2.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.apollographql.apollo:apollo-api/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.apollographql.apollo:apollo-api/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.apollographql.apollo:apollo-api/4.1.1/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.apollographql.apollo:apollo-api/4.1.1/4.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |

---

### Release Notes

<details>
<summary>vercel/ai (@&#8203;ai-sdk/google)</summary>

### [`v1.2.15`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.2.15)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.2.14...@ai-sdk/google@1.2.15)

##### Patch Changes

-   [`2afd354`](https://redirect.github.com/vercel/ai/commit/2afd354): fix(providers/google): accept nullish in safetyRatings

</details>

<details>
<summary>dotansimha/graphql-code-generator (@&#8203;graphql-codegen/cli)</summary>

### [`v5.0.6`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/graphql-codegen-cli/CHANGELOG.md#506)

[Compare Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/cli@5.0.5...@graphql-codegen/cli@5.0.6)

##### Patch Changes

-   [#&#8203;10338](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10338) [`5d1c4e1`](5d1c4e127d) Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! - Fix ignoreNoDocuments=true swallowing all errors

-   [#&#8203;10333](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10333) [`10ab58d`](10ab58dbc1) Thanks [@&#8203;eddeee888](https://redirect.github.com/eddeee888)! - Improve syntax error messages whilst loading schema/document

-   Updated dependencies \[[`c5efba3`](c5efba34a7)]:
    -   [@&#8203;graphql-codegen/client-preset](https://redirect.github.com/graphql-codegen/client-preset)[@&#8203;4](https://redirect.github.com/4).8.1

</details>

<details>
<summary>dotansimha/graphql-code-generator (@&#8203;graphql-codegen/typescript-operations)</summary>

### [`v4.6.1`](https://redirect.github.com/dotansimha/graphql-code-generator/blob/HEAD/packages/plugins/typescript/operations/CHANGELOG.md#461)

[Compare Source](https://redirect.github.com/dotansimha/graphql-code-generator/compare/@graphql-codegen/typescript-operations@4.6.0...@graphql-codegen/typescript-operations@4.6.1)

##### Patch Changes

-   [#&#8203;10330](https://redirect.github.com/dotansimha/graphql-code-generator/pull/10330) [`c5efba3`](c5efba34a7) Thanks [@&#8203;jnoordsij](https://redirect.github.com/jnoordsij)! - Make graphql-sock optional peerDep

</details>

<details>
<summary>resend/react-email (@&#8203;react-email/components)</summary>

### [`v0.0.38`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/components/CHANGELOG.md#0038)

[Compare Source](https://redirect.github.com/resend/react-email/compare/@react-email/components@0.0.37...@react-email/components@0.0.38)

##### Patch Changes

-   Updated dependencies \[[`6cd353b`](https://redirect.github.com/resend/react-email/commit/6cd353b)]
    -   [@&#8203;react-email/text](https://redirect.github.com/react-email/text)[@&#8203;0](https://redirect.github.com/0).1.3

### [`v0.0.37`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/components/CHANGELOG.md#0037)

[Compare Source](https://redirect.github.com/resend/react-email/compare/@react-email/components@0.0.36...@react-email/components@0.0.37)

##### Patch Changes

-   Updated dependencies \[[`7918a4b`](https://redirect.github.com/resend/react-email/commit/7918a4b)]
-   Updated dependencies \[[`9aa033c`](https://redirect.github.com/resend/react-email/commit/9aa033c)]
-   Updated dependencies \[[`5d153a3`](https://redirect.github.com/resend/react-email/commit/5d153a3)]
-   Updated dependencies \[[`297541e`](https://redirect.github.com/resend/react-email/commit/297541e)]
    -   [@&#8203;react-email/text](https://redirect.github.com/react-email/text)[@&#8203;0](https://redirect.github.com/0).1.2
    -   [@&#8203;react-email/code-block](https://redirect.github.com/react-email/code-block)[@&#8203;0](https://redirect.github.com/0).0.13
    -   [@&#8203;react-email/markdown](https://redirect.github.com/react-email/markdown)[@&#8203;0](https://redirect.github.com/0).0.15
    -   [@&#8203;react-email/render](https://redirect.github.com/react-email/render)[@&#8203;1](https://redirect.github.com/1).1.0
    -   [@&#8203;react-email/tailwind](https://redirect.github.com/react-email/tailwind)[@&#8203;1](https://redirect.github.com/1).0.5
    -   [@&#8203;react-email/body](https://redirect.github.com/react-email/body)[@&#8203;0](https://redirect.github.com/0).0.11
    -   [@&#8203;react-email/button](https://redirect.github.com/react-email/button)[@&#8203;0](https://redirect.github.com/0).0.19
    -   [@&#8203;react-email/code-inline](https://redirect.github.com/react-email/code-inline)[@&#8203;0](https://redirect.github.com/0).0.5
    -   [@&#8203;react-email/column](https://redirect.github.com/react-email/column)[@&#8203;0](https://redirect.github.com/0).0.13
    -   [@&#8203;react-email/container](https://redirect.github.com/react-email/container)[@&#8203;0](https://redirect.github.com/0).0.15
    -   [@&#8203;react-email/font](https://redirect.github.com/react-email/font)[@&#8203;0](https://redirect.github.com/0).0.9
    -   [@&#8203;react-email/head](https://redirect.github.com/react-email/head)[@&#8203;0](https://redirect.github.com/0).0.12
    -   [@&#8203;react-email/heading](https://redirect.github.com/react-email/heading)[@&#8203;0](https://redirect.github.com/0).0.15
    -   [@&#8203;react-email/hr](https://redirect.github.com/react-email/hr)[@&#8203;0](https://redirect.github.com/0).0.11
    -   [@&#8203;react-email/html](https://redirect.github.com/react-email/html)[@&#8203;0](https://redirect.github.com/0).0.11
    -   [@&#8203;react-email/img](https://redirect.github.com/react-email/img)[@&#8203;0](https://redirect.github.com/0).0.11
    -   [@&#8203;react-email/link](https://redirect.github.com/react-email/link)[@&#8203;0](https://redirect.github.com/0).0.12
    -   [@&#8203;react-email/preview](https://redirect.github.com/react-email/preview)[@&#8203;0](https://redirect.github.com/0).0.12
    -   [@&#8203;react-email/row](https://redirect.github.com/react-email/row)[@&#8203;0](https://redirect.github.com/0).0.12
    -   [@&#8203;react-email/section](https://redirect.github.com/react-email/section)[@&#8203;0](https://redirect.github.com/0).0.16

</details>

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/browser)</summary>

### [`v3.1.3`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.1.3)

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.2...v3.1.3)

#####    🐞 Bug Fixes

-   Correctly resolve vitest import if `inline: true` is set  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7856](https://redirect.github.com/vitest-dev/vitest/issues/7856) [<samp>(a83f3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a83f3bf6)
-   Fix fixture parsing with lowered async with esbuild 0.25.3  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7921](https://redirect.github.com/vitest-dev/vitest/issues/7921) [<samp>(c5c85)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c5c8502b)
-   Remove event-catcher code  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7898](https://redirect.github.com/vitest-dev/vitest/issues/7898) [<samp>(deb1b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/deb1bc27)
-   Reset mocks on test retry/repeat  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7897](https://redirect.github.com/vitest-dev/vitest/issues/7897) [<samp>(2fa76)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2fa763a6)
-   Ignore failures on writeToCache  -  by [@&#8203;orgads](https://redirect.github.com/orgads) in [https://github.com/vitest-dev/vitest/issues/7893](https://redirect.github.com/vitest-dev/vitest/issues/7893) [<samp>(8c7f7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8c7f75a6)
-   **browser**: Correctly inherit CLI options  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7858](https://redirect.github.com/vitest-dev/vitest/issues/7858) [<samp>(03660)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/03660f9d)
-   **deps**: Update all non-major dependencies  -  in [https://github.com/vitest-dev/vitest/issues/7867](https://redirect.github.com/vitest-dev/vitest/issues/7867) [<samp>(67ef7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/67ef74a0)
-   **reporters**: `--merge-reports` to show each total run times  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7877](https://redirect.github.com/vitest-dev/vitest/issues/7877) [<samp>(d613b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d613b813)

#####     [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.2...v3.1.3)

</details>

<details>
<summary>rust-lang/cc-rs (cc)</summary>

### [`v1.2.21`](https://redirect.github.com/rust-lang/cc-rs/blob/HEAD/CHANGELOG.md#1221---2025-05-02)

[Compare Source](https://redirect.github.com/rust-lang/cc-rs/compare/cc-v1.2.20...cc-v1.2.21)

##### Other

-   Fix wasm32-unknown-unknown by passing -c ([#&#8203;1424](https://redirect.github.com/rust-lang/cc-rs/pull/1424))

</details>

<details>
<summary>chronotope/chrono (chrono)</summary>

### [`v0.4.41`](https://redirect.github.com/chronotope/chrono/releases/tag/v0.4.41)

[Compare Source](https://redirect.github.com/chronotope/chrono/compare/v0.4.40...v0.4.41)

#### What's Changed

-   Add `subsec_micros` and `subsec_millis` methods to `TimeDelta` by [@&#8203;ggoetz](https://redirect.github.com/ggoetz) in [https://github.com/chronotope/chrono/pull/1668](https://redirect.github.com/chronotope/chrono/pull/1668)
-   Deprecate `NaiveDateTime::UNIX_EPOCH` by [@&#8203;robertbastian](https://redirect.github.com/robertbastian) in [https://github.com/chronotope/chrono/pull/1670](https://redirect.github.com/chronotope/chrono/pull/1670)
-   Implement `as_seconds_f32` and `as_seconds_f64` for `TimeDelta` by [@&#8203;ggoetz](https://redirect.github.com/ggoetz) in [https://github.com/chronotope/chrono/pull/1671](https://redirect.github.com/chronotope/chrono/pull/1671)
-   chore: fix some comments by [@&#8203;jimmycathy](https://redirect.github.com/jimmycathy) in [https://github.com/chronotope/chrono/pull/1677](https://redirect.github.com/chronotope/chrono/pull/1677)
-   Add `num_days_in_month` method to `Datelike` trait by [@&#8203;aslilac](https://redirect.github.com/aslilac) in [https://github.com/chronotope/chrono/pull/1673](https://redirect.github.com/chronotope/chrono/pull/1673)
-   add `WeekdaySet`, a collection of `Weekday` that is `Copy` by [@&#8203;Kinrany](https://redirect.github.com/Kinrany) in [https://github.com/chronotope/chrono/pull/1676](https://redirect.github.com/chronotope/chrono/pull/1676)
-   WeekdaySet tweaks by [@&#8203;djc](https://redirect.github.com/djc) in [https://github.com/chronotope/chrono/pull/1680](https://redirect.github.com/chronotope/chrono/pull/1680)
-   Upgrade to windows-bindgen 0.61 by [@&#8203;djc](https://redirect.github.com/djc) in [https://github.com/chronotope/chrono/pull/1682](https://redirect.github.com/chronotope/chrono/pull/1682)
-   Implemented a consistent Eq trait for NaiveWeek by [@&#8203;Splashling1789](https://redirect.github.com/Splashling1789) in [https://github.com/chronotope/chrono/pull/1687](https://redirect.github.com/chronotope/chrono/pull/1687)
-   TimeZone::from_posix_tz: Treat empty TZ variable as UTC by [@&#8203;drinkcat](https://redirect.github.com/drinkcat) in [https://github.com/chronotope/chrono/pull/1691](https://redirect.github.com/chronotope/chrono/pull/1691)
-   Add support for lossy format strings by [@&#8203;Qelxiros](https://redirect.github.com/Qelxiros) in [https://github.com/chronotope/chrono/pull/1693](https://redirect.github.com/chronotope/chrono/pull/1693)

</details>

<details>
<summary>cssnano/cssnano (cssnano)</summary>

### [`v7.0.7`](https://redirect.github.com/cssnano/cssnano/releases/tag/cssnano%407.0.7)

[Compare Source](https://redirect.github.com/cssnano/cssnano/compare/cssnano@7.0.6...cssnano@7.0.7)

#### What's Changed

-   fix: update browserslist by [@&#8203;ludofischer](https://redirect.github.com/ludofischer) in [https://github.com/cssnano/cssnano/pull/1675](https://redirect.github.com/cssnano/cssnano/pull/1675)
-   fix: update postcss peer dependency to version without vulnerabilities by [@&#8203;ludofischer](https://redirect.github.com/ludofischer) in [https://github.com/cssnano/cssnano/pull/1676](https://redirect.github.com/cssnano/cssnano/pull/1676)
-   fix: update TypeScript declarations by [@&#8203;ludofischer](https://redirect.github.com/ludofischer) in [https://github.com/cssnano/cssnano/pull/1685](https://redirect.github.com/cssnano/cssnano/pull/1685)
-   perf: load default preset in startup by [@&#8203;43081j](https://redirect.github.com/43081j) in [https://github.com/cssnano/cssnano/pull/1691](https://redirect.github.com/cssnano/cssnano/pull/1691)
-   Add support for selector order preservation to postcss-minify-selectors by [@&#8203;ezzak](https://redirect.github.com/ezzak) in [https://github.com/cssnano/cssnano/pull/1688](https://redirect.github.com/cssnano/cssnano/pull/1688)
-   fix(postcss-convert-values): preserve percent sign in percentage values in at-rules with double quotes  by [@&#8203;aramikuto](https://redirect.github.com/aramikuto) in [https://github.com/cssnano/cssnano/pull/1695](https://redirect.github.com/cssnano/cssnano/pull/1695)

**Full Changelog**: https://github.com/cssnano/cssnano/compare/cssnano@7.0.6...cssnano@7.0.7

</details>

<details>
<summary>i18next/i18next (i18next)</summary>

### [`v25.1.1`](https://redirect.github.com/i18next/i18next/blob/HEAD/CHANGELOG.md#2511)

[Compare Source](https://redirect.github.com/i18next/i18next/compare/v25.1.0...v25.1.1)

-   fix options type for `parseMissingKeyHandler`

### [`v25.1.0`](https://redirect.github.com/i18next/i18next/blob/HEAD/CHANGELOG.md#2510)

[Compare Source](https://redirect.github.com/i18next/i18next/compare/v25.0.2...v25.1.0)

-   feat: `parseMissingKeyHandler` now takes options as parameter like in missingKeyHandler [2304](https://redirect.github.com/i18next/i18next/issues/2304)

</details>

<details>
<summary>pmndrs/jotai (jotai)</summary>

### [`v2.12.4`](https://redirect.github.com/pmndrs/jotai/releases/tag/v2.12.4)

[Compare Source](https://redirect.github.com/pmndrs/jotai/compare/v2.12.3...v2.12.4)

We deprecate devstore capability, which will be dropped in the next minor version. Please use the latest jotai-devtools library.

#### What's Changed

-   deprecate devstore by [@&#8203;dai-shi](https://redirect.github.com/dai-shi) in [https://github.com/pmndrs/jotai/pull/3023](https://redirect.github.com/pmndrs/jotai/pull/3023)
-   fix(package): react-native condition by [@&#8203;dai-shi](https://redirect.github.com/dai-shi) in [https://github.com/pmndrs/jotai/pull/3042](https://redirect.github.com/pmndrs/jotai/pull/3042)
-   fix(utils): allow undefined for atomWithStorage subscriber return by [@&#8203;caffeinewriter](https://redirect.github.com/caffeinewriter) in [https://github.com/pmndrs/jotai/pull/3055](https://redirect.github.com/pmndrs/jotai/pull/3055)

#### New Contributors

-   [@&#8203;caffeinewriter](https://redirect.github.com/caffeinewriter) made their first contribution in [https://github.com/pmndrs/jotai/pull/3056](https://redirect.github.com/pmndrs/jotai/pull/3056)
-   [@&#8203;CanRau](https://redirect.github.com/CanRau) made their first contribution in [https://github.com/pmndrs/jotai/pull/3051](https://redirect.github.com/pmndrs/jotai/pull/3051)

**Full Changelog**: https://github.com/pmndrs/jotai/compare/v2.12.3...v2.12.4

</details>

<details>
<summary>lint-staged/lint-staged (lint-staged)</summary>

### [`v15.5.2`](https://redirect.github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1552)

[Compare Source](https://redirect.github.com/lint-staged/lint-staged/compare/v15.5.1...v15.5.2)

##### Patch Changes

-   [#&#8203;1544](https://redirect.github.com/lint-staged/lint-staged/pull/1544) [`5561321`](556132176a) Thanks [@&#8203;YimingIsCOLD](https://redirect.github.com/YimingIsCOLD)! - Correctly handle colon (`:`) characters in staged filenames.

</details>

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

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

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

#### What's Changed

-   fix(metadata): added tags to `square-pen` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3155](https://redirect.github.com/lucide-icons/lucide/pull/3155)
-   fix(icons): changed `search` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3140](https://redirect.github.com/lucide-icons/lucide/pull/3140)
-   fix(dev): resets Absolute Stroke Width by [@&#8203;briz123](https://redirect.github.com/briz123) in [https://github.com/lucide-icons/lucide/pull/3005](https://redirect.github.com/lucide-icons/lucide/pull/3005)
-   fix(icons): changed `guitar` icon by [@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3115](https://redirect.github.com/lucide-icons/lucide/pull/3115)
-   fix(Icons): Adding missing categories to 4 Icons by [@&#8203;ajokt123](https://redirect.github.com/ajokt123) in [https://github.com/lucide-icons/lucide/pull/3110](https://redirect.github.com/lucide-icons/lucide/pull/3110)
-   fix(ci): reduces workflow triggers by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3150](https://redirect.github.com/lucide-icons/lucide/pull/3150)
-   fix(icons): changed `air-vent` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3117](https://redirect.github.com/lucide-icons/lucide/pull/3117)
-   fix(icons): rotate `dumbbell` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3107](https://redirect.github.com/lucide-icons/lucide/pull/3107)
-   fix(icons): changed `touchpad-off` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3118](https://redirect.github.com/lucide-icons/lucide/pull/3118)
-   fix(icons): changed `bell-electric` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3139](https://redirect.github.com/lucide-icons/lucide/pull/3139)
-   fix(icons): changed `menu` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3142](https://redirect.github.com/lucide-icons/lucide/pull/3142)
-   fix(icons): changed `mail` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3144](https://redirect.github.com/lucide-icons/lucide/pull/3144)
-   chore(pr-template): Adjust PR template by [@&#8203;ericfennis](https://redirect.github.com/ericfennis) in [https://github.com/lucide-icons/lucide/pull/3183](https://redirect.github.com/lucide-icons/lucide/pull/3183)
-   feat(icons): added `soap-dispenser-droplet` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3088](https://redirect.github.com/lucide-icons/lucide/pull/3088)
-   feat(icons): added `panda` icon by [@&#8203;chessurisme](https://redirect.github.com/chessurisme) in [https://github.com/lucide-icons/lucide/pull/2094](https://redirect.github.com/lucide-icons/lucide/pull/2094)

**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.506.0...0.507.0

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

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

#### What's Changed

-   perf(react): use implicit return in react package by [@&#8203;VIKTORVAV99](https://redirect.github.com/VIKTORVAV99) in [https://github.com/lucide-icons/lucide/pull/2325](https://redirect.github.com/lucide-icons/lucide/pull/2325)
-   fix(icons): changed `users` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3143](https://redirect.github.com/lucide-icons/lucide/pull/3143)
-   fix(icons): changed `locate-off` icon by [@&#8203;jamiemlaw](https://redirect.github.com/jamiemlaw) in [https://github.com/lucide-icons/lucide/pull/3137](https://redirect.github.com/lucide-icons/lucide/pull/3137)
-   fix(icons): changed `expand` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/2831](https://redirect.github.com/lucide-icons/lucide/pull/2831)
-   feat(icons): Added clock plus icon. by [@&#8203;gubser](https://redirect.github.com/gubser) in [https://github.com/lucide-icons/lucide/pull/2996](https://redirect.github.com/lucide-icons/lucide/pull/2996)

**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.505.0...0.506.0

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

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

#### What's Changed

-   fix(icons): changed `package-2` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3174](https://redirect.github.com/lucide-icons/lucide/pull/3174)
-   docs(icon-design-guide): point people to lucide studio instead of svgo by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3152](https://redirect.github.com/lucide-icons/lucide/pull/3152)
-   fix(lucide-svelte): Resolve Svelte 5 deprecation of svelte:component by [@&#8203;shamaamahh](https://redirect.github.com/shamaamahh) in [https://github.com/lucide-icons/lucide/pull/3112](https://redirect.github.com/lucide-icons/lucide/pull/3112)
-   feat(icons): added `brush-cleaning` icon by [@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in [https://github.com/lucide-icons/lucide/pull/2395](https://redirect.github.com/lucide-icons/lucide/pull/2395)

**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.504.0...0.505.0

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

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

#### What's Changed

-   feat(icons): add door closed locked / unlocked icons by [@&#8203;lukedukeus](https://redirect.github.com/lukedukeus) in [https://github.com/lucide-icons/lucide/pull/3060](https://redirect.github.com/lucide-icons/lucide/pull/3060)
-   build(dev-deps): Bump dependencies by [@&#8203;ericfennis](https://redirect.github.com/ericfennis) in [https://github.com/lucide-icons/lucide/pull/3096](https://redirect.github.com/lucide-icons/lucide/pull/3096)
-   fix(icons): redesigned `brush` icon by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3011](https://redirect.github.com/lucide-icons/lucide/pull/3011)
-   fix(site): remove studio link from navbar by [@&#8203;jguddas](https://redirect.github.com/jguddas) in [https://github.com/lucide-icons/lucide/pull/3166](https://redirect.github.com/lucide-icons/lucide/pull/3166)
-   feat(icons): added `hamburger` icon by [@&#8203;karsa-mistmere](https://redirect.github.com/karsa-mistmere) in [https://github.com/lucide-icons/lucide/pull/3165](https://redirect.github.com/lucide-icons/lucide/pull/3165)

**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.503.0...0.504.0

</details>

<details>
<summary>resend/react-email (react-email)</summary>

### [`v4.0.11`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/react-email/CHANGELOG.md#4011)

[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.10...react-email@4.0.11)

##### Patch Changes

-   [`1a17219`](https://redirect.github.com/resend/react-email/commit/1a17219): fix improper `require` in `email export`
-   [`45ab698`](https://redirect.github.com/resend/react-email/commit/45ab698): update next to 15.3.1

### [`v4.0.10`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/react-email/CHANGELOG.md#4010)

[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.9...react-email@4.0.10)

##### Patch Changes

-   [`5ef9fe8`](https://redirect.github.com/resend/react-email/commit/5ef9fe8): fix support for `import ... = require(...)` syntax
-   [`4c7f597`](https://redirect.github.com/resend/react-email/commit/4c7f597): fix `email dev` not working with `traversal` error

### [`v4.0.9`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/react-email/CHANGELOG.md#409)

[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.8...react-email@4.0.9)

##### Patch Changes

-   [`643d841`](https://redirect.github.com/resend/react-email/commit/643d841): Add .json import support for hot reloading
-   [`f21a983`](https://redirect.github.com/resend/react-email/commit/f21a983): fix Node 18 support
-   [`cd02449`](https://redirect.github.com/resend/react-email/commit/cd02449): Ensure dependencies outside emails directory are completely resolved
-   [`73a31ed`](https://redirect.github.com/resend/react-email/commit/73a31ed): Fix dependent of dependents not causing hot reloads
-   [`bdffd8c`](https://redirect.github.com/resend/react-email/commit/bdffd8c): fix backwards compatibility with `render` versions
-   [`e7fa043`](https://redirect.github.com/resend/react-email/commit/e7fa043): Fix access to files outside `static` directory
-   [`9aa033c`](https://redirect.github.com/resend/react-email/commit/9aa033c): Use range of versions for dependencies
-   [`ab70556`](https://redirect.github.com/resend/react-email/commit/ab70556): Fix non-email files being rendered during hot reloading
-   [`9c9aa5d`](https://redirect.github.com/resend/react-email/commit/9c9aa5d): Add error message for when an email template does not have a default export

### [`v4.0.8`](https://redirect.github.com/resend/react-email/blob/HEAD/packages/react-email/CHANGELOG.md#408)

[Compare Source](https://redirect.github.com/resend/react-email/compare/react-email@4.0.7...react-email@4.0.8)

##### Patch Changes

-   [`ea579b5`](https://redirect.github.com/resend/react-email/commit/ea579b5): Log out errors that happen when `export`'s esbuild fails

</details>

<details>
<summary>shikijs/shiki (shiki)</summary>

### [`v3.4.0`](https://redirect.github.com/shikijs/shiki/releases/tag/v3.4.0)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v3.3.0...v3.4.0)

#####    🐞 Bug Fixes

-   Update deps and grammars  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(310d1)</samp>](https://redirect.github.com/shikijs/shiki/commit/310d1419)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v3.3.0...v3.4.0)

</details>

<details>
<summary>tokio-rs/tokio (tokio)</summary>

### [`v1.45.0`](https://redirect.github.com/tokio-rs/tokio/releases/tag/tokio-1.45.0): Tokio v1.45.0

[Compare Source](https://redirect.github.com/tokio-rs/tokio/compare/tokio-1.44.2...tokio-1.45.0)

##### Added

-   metrics: stabilize `worker_total_busy_duration`, `worker_park_count`, and `worker_unpark_count` ([#&#8203;6899], [#&#8203;7276])
-   process: add `Command::spawn_with` ([#&#8203;7249])

##### Changed

-   io: do not require `Unpin` for some trait impls ([#&#8203;7204])
-   rt: mark `runtime::Handle` as unwind safe ([#&#8203;7230])
-   time: revert internal sharding implementation ([#&#8203;7226])

##### Unstable

-   rt: remove alt multi-threaded runtime ([#&#8203;7275])

[#&#8203;6899]: https://redirect.github.com/tokio-rs/tokio/pull/6899

[#&#8203;7276]: https://redirect.github.com/tokio-rs/tokio/pull/7276

[#&#8203;7249]: https://redirect.github.com/tokio-rs/tokio/pull/7249

[#&#8203;7204]: https://redirect.github.com/tokio-rs/tokio/pull/7204

[#&#8203;7230]: https://redirect.github.com/tokio-rs/tokio/pull/7230

[#&#8203;7226]: https://redirect.github.com/tokio-rs/tokio/pull/7226

[#&#8203;7275]: https://redirect.github.com/tokio-rs/tokio/pull/7275

</details>

<details>
<summary>mozilla/uniffi-rs (uniffi)</summary>

### [`v0.29.2`](https://redirect.github.com/mozilla/uniffi-rs/compare/v0.29.1...v0.29.2)

[Compare Source](https://redirect.github.com/mozilla/uniffi-rs/compare/v0.29.1...v0.29.2)

</details>

<details>
<summary>webpack/webpack (webpack)</summary>

### [`v5.99.8`](https://redirect.github.com/webpack/webpack/releases/tag/v5.99.8)

[Compare Source](https://redirect.github.com/webpack/webpack/compare/v5.99.7...v5.99.8)

##### Fixes

-   Fixed type error with latest `@types/node`
-   Fixed typescript types

</details>

<details>
<summary>google/ksp (com.google.devtools.ksp)</summary>

### [`v2.1.20-2.0.1`](https://redirect.github.com/google/ksp/releases/tag/2.1.20-2.0.1)

[Compare Source](https://redirect.github.com/google/ksp/compare/2.1.20-2.0.0...2.1.20-2.0.1)

##### What's Changed

-   \[KSP2] Annotation values shouldn't be marked as default (synthetic origin) broken after PR [#&#8203;2424](https://redirect.github.com/google/ksp/issues/2424) in [https://github.com/google/ksp/pull/2425](https://redirect.github.com/google/ksp/pull/2425)
-   \[KSP2] Wrong internal method name with custom moduleName compiler option in[https://github.com/google/ksp/pull/2415](https://redirect.github.com/google/ksp/pull/2415)5
-   \[KSP2] getJvmName for internal method did not sanitize java identifiers in[https://github.com/google/ksp/pull/2413](https://redirect.github.com/google/ksp/pull/2413)3
-   \[KSP2] Annotation and argument's origin is wrong in[https://github.com/google/ksp/pull/2412](https://redirect.github.com/google/ksp/pull/2412)2
-   \[KSP2] functionKind is MEMBER for static method in interface in Java in[https://github.com/google/ksp/pull/2410](https://redirect.github.com/google/ksp/pull/2410)0
-   KSP2 Generated .class files are not added to the classpath in [https://github.com/google/ksp/pull/2365](https://redirect.github.com/google/ksp/pull/2365)
-   When I write specific code, KSP throws an Unexpected class for KtSymbol error. in [https://github.com/google/ksp/pull/2303](https://redirect.github.com/google/ksp/pull/2303)

##### Contributors

Thanks to everyone who reported bugs and participated in discussions!

**Full Changelog**: https://github.com/google/ksp/compare/2.1.20-2.0.0...2.1.20-2.0.1

</details>

<details>
<summary>apollographql/apollo-kotlin-adapters (com.apollographql.adapters:apollo-adapters-kotlinx-datetime)</summary>

### [`v0.0.6`](https://redirect.github.com/apollographql/apollo-kotlin-adapters/releases/tag/v0.0.6)

Publishing only change. This version updates the license name to be SPDX compliant ([https://github.com/apollographql/apollo-kotlin-adapters/pull/30](https://redirect.github.com/apollographql/apollo-kotlin-adapters/pull/30))

### [`v0.0.5`](https://redirect.github.com/apollographql/apollo-kotlin-adapters/blob/HEAD/CHANGELOG.md#Version-005)

*2025-04-29*

-   Do not set the license URL in the POMs ([#&#8203;29](https://redirect.github.com/apollographql/apollo-kotlin-adapters/issues/29))

</details>

<details>
<summary>apollographql/apollo-kotlin (com.apollographql.apollo)</summary>

### [`v4.2.0`](https://redirect.github.com/apollographql/apollo-kotlin/blob/HEAD/CHANGELOG.md#Version-420)

*2025-04-28*

#### Generate custom scalars as inline classes with `@map` and `@mapTo` ([#&#8203;6404](https://redirect.github.com/apollographql/apollo-kotlin/issues/6404))

It is now possible to configure the adapters to use with [scalars](https://www.apollographql.com/docs/kotlin/essentials/custom-scalars) by using the [`@map` directive](https://specs.apollo.dev/kotlin_labs/v0.5/#@&#8203;map):

```graphql
extend schema @&#8203;link(url: "https://specs.apollo.dev/kotlin_labs/v0.5/", import: ["@&#8203;mapTo", "@&#8203;map"])

extend scalar Date @&#8203;map(to: "kotlinx.datetime.Instant", with: "com.apollographql.adapters.InstantAdapter")
```

If the `to` parameter is an [inline value class](https://kotlinlang.org/docs/inline-classes.html), use the `inlineProperty` parameter to have the generated code box/unbox the value. In that case, `with` needs to point to an adapter of the underlying type:

```graphql
extend scalar Timestamp @&#8203;map(to: "com.example.Timestamp", with: "com.apollographql.apollo.api.LongAdapter", inlineProperty: "ts")
```

For the common cases where the scalar can be represented as a built-in Kotlin type (String, Boolean, Int, Long, Float, Double), you can use [`@mapTo`](https://specs.apollo.dev/kotlin_labs/v0.5/#@&#8203;mapTo) and the compiler infers the adapter and generates an inline value class automatically:

```graphql
extend scalar Length @&#8203;mapTo(builtIn: Long)
```

#### Scalar definitions in schemas downloaded from introspection ([#&#8203;6389](https://redirect.github.com/apollographql/apollo-kotlin/issues/6389))

Downloading or converting an SDL schema from introspection now includes scalar definitions.
This is required for clients to get a [full view of the schema](https://redirect.github.com/graphql/graphql-wg/blob/main/rfcs/FullSchemas.md).

#### Support for `@disableErrorPropagation`

Apollo Kotlin now automatically adds [`@disableErrorPropagation`](https://redirect.github.com/graphql/nullability-wg/discussions/85) if your server supports it and you opted in `@catchByDefault` in your schema extensions. This allows to use non-null types more liberally and still get support for partial data.

See [https://github.com/graphql/graphql-js/pull/4348](https://redirect.github.com/graphql/graphql-js/pull/4348) and [https://github.com/graphql-java/graphql-java/pull/3772](https://redirect.github.com/graphql-java/graphql-java/pull/3772)

#### Contributors 💜

Many thanks to [@&#8203;bobbysothebys](https://redirect.github.com/bobbysothebys), [@&#8203;jvanderwee](https://redirect.github.com/jvanderwee), [@&#8203;dhritzkiv](https://redirect.github.com/dhritzkiv), [@&#8203;lwasyl](https://redirect.github.com/lwasyl) and [@&#8203;rohandhruva](https://redirect.github.com/rohandhruva) for all the contributions and help in this release 💜

#### 👷‍♂️ All changes

-   \[intellij-plugin] Fix MemoryCache package name ([#&#8203;6383](https://redirect.github.com/apollographql/apollo-kotlin/issues/6383))
-   \[intellij-plugin] Rover: always pass path to supergraph.yaml if present ([#&#8203;6384](https://redirect.github.com/apollographql/apollo-kotlin/issues/6384))
-   \[intellij-plugin] Make 'Download Schema action' consider deep subprojects ([#&#8203;6394](https://redirect.github.com/apollographql/apollo-kotlin/issues/6394))
-   \[intellij-plugin] Fix a crash when invoking the 'missing `@link`' quickfix ([#&#8203;6402](https://redirect.github.com/apollographql/apollo-kotlin/issues/6402))
-   \[intellij-plugin] Use configured Gradle JVM when executing tasks ([#&#8203;6425](https://redirect.github.com/apollographql/apollo-kotlin/issues/6425))
-   \[in

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-05-06 14:47:24 +00:00
Saul-Mirone
d859c4252b refactor(editor): move history from doc to store (#12131)
<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Undo/redo history management is now centralized in the workspace, providing more consistent and robust undo/redo behavior.
  - History update events are emitted at the workspace level, enabling better tracking of changes.

- **Bug Fixes**
  - Improved reliability of undo/redo actions by shifting history management from documents to the workspace.

- **Documentation**
  - Updated and clarified documentation for history-related APIs, including improved examples and clearer descriptions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-05-05 09:24:09 +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
04531508cb feat(editor): add embed doc block extension (#12090)
Closes: BS-3393

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

- **New Features**
  - Introduced a new "Embed Doc" block, enabling embedding and rendering of linked and synced documents within cards, including support for banners and note previews.
  - Added new toolbar and quick search options for inserting embedded linked and synced documents.

- **Improvements**
  - Updated dependencies and internal references to support the new embed doc functionality across related blocks and components.
  - Enhanced support for edgeless environments with new clipboard and configuration options for embedded docs.

- **Refactor**
  - Streamlined and reorganized embed-related code, moving linked and synced doc logic into a dedicated embed doc module.
  - Removed obsolete adapter and utility files to simplify maintenance.

- **Chores**
  - Updated project and TypeScript configuration files to include the new embed doc module in builds and references.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-04-30 09:16:17 +00:00