From 70917fba64e2ddd49c6a8445d0c32573891729dd Mon Sep 17 00:00:00 2001 From: Tadeu Tupinamba Date: Thu, 26 Feb 2026 12:56:39 -0300 Subject: [PATCH 01/11] fix(editor): arrow key navigation across page boundaries and auto-scroll (SD-1950) Fix vertical arrow key navigation that would jump sections or get stuck at page boundaries, and add auto-scroll to keep the caret visible during keyboard navigation. Two bugs in the vertical-navigation extension: 1. ArrowDown would jump thousands of characters when crossing page boundaries because the adjacent line's getBoundingClientRect() returns off-screen coordinates, causing hitTest() to map to the wrong position. 2. ArrowUp would get stuck at certain positions because the adjacent line's DOM center Y falls in a zone where hitTest() maps to the current fragment instead of the adjacent one (fragment boundary misalignment), so the cursor stays at the same position. The fix reads data-pm-start/data-pm-end from the adjacent line element and validates the hit test result against this range. When the hit falls outside the line's PM range (with a tight tolerance of 5), a binary search using computeCaretLayoutRect resolves the correct position at the goal X coordinate within the line. This avoids relying on screen-space hit testing when it produces unreliable results. Additionally adds scrollCaretIntoViewIfNeeded() to PresentationEditor to auto-scroll the viewport after selection changes during keyboard navigation. --- .../presentation-editor/PresentationEditor.ts | 62 +++++ .../tests/scrollCaretIntoView.test.ts | 214 ++++++++++++++++++ .../vertical-navigation.js | 97 +++++++- 3 files changed, 370 insertions(+), 3 deletions(-) create mode 100644 packages/super-editor/src/core/presentation-editor/tests/scrollCaretIntoView.test.ts diff --git a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts index c50b88bc64..14d75dbc73 100644 --- a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts +++ b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts @@ -3923,6 +3923,7 @@ export class PresentationEditor extends EventEmitter { console.warn('[PresentationEditor] Failed to render caret overlay:', error); } } + this.#scrollCaretIntoViewIfNeeded(caretLayout); return; } @@ -3954,6 +3955,67 @@ export class PresentationEditor extends EventEmitter { } } + /** + * Scrolls the scroll container so the caret remains visible after selection changes. + * + * Called after the caret overlay is rendered in #updateSelection(). Uses the rendered + * caret element's screen-space position (via getBoundingClientRect) to determine if + * scrolling is needed, keeping a small margin for comfortable viewing. + * + * If the caret element doesn't exist (page may be virtualized / not mounted), + * falls back to scrolling the target page into view to trigger virtualization. + */ + #scrollCaretIntoViewIfNeeded(caretLayout: { pageIndex: number }): void { + const caretEl = this.#localSelectionLayer?.querySelector( + '.presentation-editor__selection-caret', + ) as HTMLElement | null; + + if (!caretEl) { + // Caret page may not be mounted (virtualized) — scroll page into view + // to trigger mount; next selection update will handle precise scroll. + this.#scrollPageIntoView(caretLayout.pageIndex); + return; + } + + const scrollContainer = this.#scrollContainer; + if (!scrollContainer) return; + + const caretRect = caretEl.getBoundingClientRect(); + + let containerTop: number; + let containerBottom: number; + + if (scrollContainer instanceof Window) { + containerTop = 0; + containerBottom = scrollContainer.innerHeight; + } else { + const r = (scrollContainer as Element).getBoundingClientRect(); + containerTop = r.top; + containerBottom = r.bottom; + } + + // Margin in screen pixels to keep around the cursor for comfortable viewing + const SCROLL_MARGIN = 20; + + if (caretRect.bottom > containerBottom - SCROLL_MARGIN) { + // Caret is below the visible area — scroll down + const delta = caretRect.bottom - containerBottom + SCROLL_MARGIN; + if (scrollContainer instanceof Window) { + scrollContainer.scrollBy({ top: delta }); + } else { + (scrollContainer as Element).scrollTop += delta; + } + } else if (caretRect.top < containerTop + SCROLL_MARGIN) { + // Caret is above the visible area — scroll up + const delta = containerTop + SCROLL_MARGIN - caretRect.top; + if (scrollContainer instanceof Window) { + scrollContainer.scrollBy({ top: -delta }); + } else { + (scrollContainer as Element).scrollTop -= delta; + } + } + } + /** * Updates the permission overlay (w:permStart/w:permEnd) to match the current editor permission ranges. * diff --git a/packages/super-editor/src/core/presentation-editor/tests/scrollCaretIntoView.test.ts b/packages/super-editor/src/core/presentation-editor/tests/scrollCaretIntoView.test.ts new file mode 100644 index 0000000000..9396062aa2 --- /dev/null +++ b/packages/super-editor/src/core/presentation-editor/tests/scrollCaretIntoView.test.ts @@ -0,0 +1,214 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; + +/** + * Tests for the scroll-caret-into-view behavior. + * + * Since #scrollCaretIntoViewIfNeeded is a private method on PresentationEditor, + * we extract its logic into a testable helper and verify it against a real DOM + * setup with mock scroll containers and caret elements. + */ + +/** + * Extracted logic from PresentationEditor.#scrollCaretIntoViewIfNeeded. + * This mirrors the implementation to allow direct unit testing without + * bootstrapping the full PresentationEditor. + */ +function scrollCaretIntoViewIfNeeded( + selectionLayer: HTMLElement | null, + scrollContainer: Element | Window | null, + scrollPageIntoView: (pageIndex: number) => void, + caretLayout: { pageIndex: number }, +): void { + const caretEl = selectionLayer?.querySelector( + '.presentation-editor__selection-caret', + ) as HTMLElement | null; + + if (!caretEl) { + scrollPageIntoView(caretLayout.pageIndex); + return; + } + + if (!scrollContainer) return; + + const caretRect = caretEl.getBoundingClientRect(); + + let containerTop: number; + let containerBottom: number; + + if (scrollContainer instanceof Window) { + containerTop = 0; + containerBottom = scrollContainer.innerHeight; + } else { + const r = (scrollContainer as Element).getBoundingClientRect(); + containerTop = r.top; + containerBottom = r.bottom; + } + + const SCROLL_MARGIN = 20; + + if (caretRect.bottom > containerBottom - SCROLL_MARGIN) { + const delta = caretRect.bottom - containerBottom + SCROLL_MARGIN; + if (scrollContainer instanceof Window) { + scrollContainer.scrollBy({ top: delta }); + } else { + (scrollContainer as Element).scrollTop += delta; + } + } else if (caretRect.top < containerTop + SCROLL_MARGIN) { + const delta = containerTop + SCROLL_MARGIN - caretRect.top; + if (scrollContainer instanceof Window) { + scrollContainer.scrollBy({ top: -delta }); + } else { + (scrollContainer as Element).scrollTop -= delta; + } + } +} + +describe('scrollCaretIntoViewIfNeeded', () => { + let selectionLayer: HTMLElement; + let scrollContainer: HTMLElement; + let scrollPageIntoView: ReturnType; + + beforeEach(() => { + selectionLayer = document.createElement('div'); + scrollContainer = document.createElement('div'); + scrollContainer.style.overflowY = 'auto'; + + Object.defineProperty(scrollContainer, 'clientHeight', { value: 600, configurable: true }); + Object.defineProperty(scrollContainer, 'scrollHeight', { value: 2000, configurable: true }); + scrollContainer.scrollTop = 0; + + document.body.appendChild(scrollContainer); + scrollContainer.appendChild(selectionLayer); + + scrollPageIntoView = vi.fn(); + }); + + afterEach(() => { + document.body.innerHTML = ''; + }); + + function createCaret(rect: { top: number; bottom: number; left: number; right: number }): HTMLElement { + const caret = document.createElement('div'); + caret.className = 'presentation-editor__selection-caret'; + caret.getBoundingClientRect = () => + ({ + top: rect.top, + bottom: rect.bottom, + left: rect.left, + right: rect.right, + width: rect.right - rect.left, + height: rect.bottom - rect.top, + }) as DOMRect; + selectionLayer.appendChild(caret); + return caret; + } + + function setContainerRect(top: number, bottom: number): void { + scrollContainer.getBoundingClientRect = () => + ({ + top, + bottom, + left: 0, + right: 800, + width: 800, + height: bottom - top, + }) as DOMRect; + } + + it('scrolls down when caret is below viewport', () => { + setContainerRect(0, 600); + createCaret({ top: 610, bottom: 625, left: 100, right: 102 }); + + scrollCaretIntoViewIfNeeded(selectionLayer, scrollContainer, scrollPageIntoView, { pageIndex: 0 }); + + // delta = 625 - 600 + 20 = 45 + expect(scrollContainer.scrollTop).toBe(45); + }); + + it('scrolls down when caret is within bottom margin', () => { + setContainerRect(0, 600); + // Caret bottom at 590 → within 20px margin of 600 + createCaret({ top: 585, bottom: 590, left: 100, right: 102 }); + + scrollCaretIntoViewIfNeeded(selectionLayer, scrollContainer, scrollPageIntoView, { pageIndex: 0 }); + + // delta = 590 - 600 + 20 = 10 + expect(scrollContainer.scrollTop).toBe(10); + }); + + it('scrolls up when caret is above viewport', () => { + setContainerRect(100, 700); + createCaret({ top: 80, bottom: 95, left: 100, right: 102 }); + scrollContainer.scrollTop = 200; + + scrollCaretIntoViewIfNeeded(selectionLayer, scrollContainer, scrollPageIntoView, { pageIndex: 0 }); + + // delta = 100 + 20 - 80 = 40 + expect(scrollContainer.scrollTop).toBe(160); // 200 - 40 + }); + + it('scrolls up when caret is within top margin', () => { + setContainerRect(100, 700); + // Caret top at 110 → within 20px margin of containerTop (100) + createCaret({ top: 110, bottom: 125, left: 100, right: 102 }); + scrollContainer.scrollTop = 200; + + scrollCaretIntoViewIfNeeded(selectionLayer, scrollContainer, scrollPageIntoView, { pageIndex: 0 }); + + // delta = 100 + 20 - 110 = 10 + expect(scrollContainer.scrollTop).toBe(190); // 200 - 10 + }); + + it('does not scroll when caret is fully visible', () => { + setContainerRect(0, 600); + createCaret({ top: 300, bottom: 315, left: 100, right: 102 }); + + scrollCaretIntoViewIfNeeded(selectionLayer, scrollContainer, scrollPageIntoView, { pageIndex: 0 }); + + expect(scrollContainer.scrollTop).toBe(0); + }); + + it('does not scroll when caret is at safe distance from edges', () => { + setContainerRect(0, 600); + // Caret at 50px from top and 535px from bottom — well within margins + createCaret({ top: 50, bottom: 65, left: 100, right: 102 }); + + scrollCaretIntoViewIfNeeded(selectionLayer, scrollContainer, scrollPageIntoView, { pageIndex: 0 }); + + expect(scrollContainer.scrollTop).toBe(0); + }); + + it('falls back to scrollPageIntoView when caret element is not rendered', () => { + // No caret element in selectionLayer + + scrollCaretIntoViewIfNeeded(selectionLayer, scrollContainer, scrollPageIntoView, { pageIndex: 3 }); + + expect(scrollPageIntoView).toHaveBeenCalledWith(3); + }); + + it('does nothing when scrollContainer is null', () => { + createCaret({ top: 800, bottom: 815, left: 100, right: 102 }); + + // Should not throw + scrollCaretIntoViewIfNeeded(selectionLayer, null, scrollPageIntoView, { pageIndex: 0 }); + + expect(scrollPageIntoView).not.toHaveBeenCalled(); + }); + + // Note: Window scroll container tests are omitted because jsdom/happy-dom + // do not support `window instanceof Window` reliably. The Window code path + // uses the same delta logic as the Element path (tested above) and works + // correctly in real browsers. In practice, SuperDoc's scroll container is + // always a DOM Element (e.g. the .dev-app__main parent), not window. + + it('handles scroll container with non-zero top offset', () => { + // Scroll container starts at y=200 (e.g., below a toolbar) + setContainerRect(200, 800); + createCaret({ top: 810, bottom: 825, left: 100, right: 102 }); + + scrollCaretIntoViewIfNeeded(selectionLayer, scrollContainer, scrollPageIntoView, { pageIndex: 0 }); + + // delta = 825 - 800 + 20 = 45 + expect(scrollContainer.scrollTop).toBe(45); + }); +}); diff --git a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js index d378ee9918..11751326a4 100644 --- a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js +++ b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js @@ -118,8 +118,37 @@ export const VerticalNavigation = Extension.create({ const adjacent = getAdjacentLineClientTarget(editor, coords, event.key === 'ArrowUp' ? -1 : 1); if (!adjacent) return false; - // 3. Hit test at (goal X, adjacent line center Y) - const hit = getHitFromLayoutCoords(editor, goalX, adjacent.clientY, coords, adjacent.pageIndex); + // 3. Hit test at (goal X, adjacent line center Y). + // When the adjacent line is outside the visible viewport (e.g., crossing + // a page boundary), hit testing with screen coordinates produces incorrect + // positions. In that case, fall back to layout-based position resolution + // using the line's PM position range and computeCaretLayoutRect. + let hit = getHitFromLayoutCoords(editor, goalX, adjacent.clientY, coords, adjacent.pageIndex); + + // Check if the hit test result is plausible: if the adjacent line has PM + // position data, the hit should land within or very close to that range. + // A miss indicates off-screen coordinate mapping failure or fragment + // boundary misalignment (adjacent line center Y mapping to wrong fragment). + // + // Tolerance is kept small (5 positions) to catch cases where the hit + // lands on the current line's fragment start instead of the adjacent + // line — this causes the cursor to appear stuck since the "new" position + // equals the current one. + if (adjacent.pmStart != null && adjacent.pmEnd != null) { + const TOLERANCE = 5; + const hitPos = hit?.pos; + if ( + !hit || + !Number.isFinite(hitPos) || + hitPos < adjacent.pmStart - TOLERANCE || + hitPos > adjacent.pmEnd + TOLERANCE + ) { + // Hit test produced a position outside the adjacent line's range. + // Resolve position directly from layout data using binary search at goalX. + hit = resolvePositionAtGoalX(editor, adjacent.pmStart, adjacent.pmEnd, goalX); + } + } + if (!hit || !Number.isFinite(hit.pos)) return false; // 4. Move selection @@ -207,10 +236,15 @@ function getCurrentCoords(editor, selection) { /** * Finds the adjacent line center Y in client space and associated page index. + * Also returns the PM position range from the line's data attributes so that + * when the adjacent line is outside the viewport (off-screen), the caller can + * resolve the target position directly from layout data rather than relying on + * hit testing with potentially inaccurate screen coordinates. + * * @param {Object} editor * @param {{ clientX: number, clientY: number, height: number }} coords * @param {number} direction -1 for up, 1 for down. - * @returns {{ clientY: number, pageIndex?: number } | null} + * @returns {{ clientY: number, pageIndex?: number, pmStart?: number, pmEnd?: number } | null} */ function getAdjacentLineClientTarget(editor, coords, direction) { const presentationEditor = editor.presentationEditor; @@ -226,9 +260,16 @@ function getAdjacentLineClientTarget(editor, coords, direction) { const rect = adjacentLine.getBoundingClientRect(); const clientY = rect.top + rect.height / 2; if (!Number.isFinite(clientY)) return null; + + // Read PM position range from data attributes for layout-based fallback + const pmStart = Number(adjacentLine.dataset?.pmStart); + const pmEnd = Number(adjacentLine.dataset?.pmEnd); + return { clientY, pageIndex: Number.isFinite(pageIndex) ? pageIndex : undefined, + pmStart: Number.isFinite(pmStart) ? pmStart : undefined, + pmEnd: Number.isFinite(pmEnd) ? pmEnd : undefined, }; } @@ -334,6 +375,56 @@ function findAdjacentLineElement(currentLine, direction) { return getEdgeLineFromFragment(pageFragments[pageFragments.length - 1], direction); } +/** + * Resolves the PM position at a given goalX within a line's position range. + * + * Uses binary search with computeCaretLayoutRect to find the position within + * [pmStart, pmEnd] whose layout X is closest to goalX. This avoids relying on + * screen-space hit testing, which fails when the target line is outside the + * visible viewport (e.g., after crossing a page boundary). + * + * @param {Object} editor + * @param {number} pmStart - Start PM position of the target line. + * @param {number} pmEnd - End PM position of the target line. + * @param {number} goalX - Target X coordinate in layout space. + * @returns {{ pos: number } | null} + */ +function resolvePositionAtGoalX(editor, pmStart, pmEnd, goalX) { + const presentationEditor = editor.presentationEditor; + let bestPos = pmStart; + let bestDist = Infinity; + + // Binary search: characters within a single line have monotonically increasing X + let lo = pmStart; + let hi = pmEnd; + + while (lo <= hi) { + const mid = Math.floor((lo + hi) / 2); + const rect = presentationEditor.computeCaretLayoutRect(mid); + if (!rect || !Number.isFinite(rect.x)) { + // Can't measure this position — fall back to pmStart + break; + } + + const dist = Math.abs(rect.x - goalX); + if (dist < bestDist) { + bestDist = dist; + bestPos = mid; + } + + if (rect.x < goalX) { + lo = mid + 1; + } else if (rect.x > goalX) { + hi = mid - 1; + } else { + // Exact match + break; + } + } + + return { pos: bestPos }; +} + /** * Returns the first or last line in a fragment, depending on direction. * @param {Element | null | undefined} fragment From e88919cd9fa84f273c5f58764307c8c73d0c6206 Mon Sep 17 00:00:00 2001 From: Tadeu Tupinamba Date: Tue, 3 Mar 2026 19:31:15 -0300 Subject: [PATCH 02/11] fix(editor): improve binary search resilience in vertical navigation Skip unmeasurable positions in resolvePositionAtGoalX instead of breaking the entire search. Positions at inline node boundaries may return null from computeCaretLayoutRect, and breaking falls back to pmStart causing the caret to jump to line start. Also document the LTR assumption in the binary search. --- .../vertical-navigation/vertical-navigation.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js index 11751326a4..f8688f4892 100644 --- a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js +++ b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js @@ -394,7 +394,9 @@ function resolvePositionAtGoalX(editor, pmStart, pmEnd, goalX) { let bestPos = pmStart; let bestDist = Infinity; - // Binary search: characters within a single line have monotonically increasing X + // Binary search: characters within a single line have monotonically increasing X. + // NOTE: assumes LTR text. For RTL, X decreases with position so the search + // direction would be inverted. bestPos/bestDist tracking limits the impact. let lo = pmStart; let hi = pmEnd; @@ -402,8 +404,11 @@ function resolvePositionAtGoalX(editor, pmStart, pmEnd, goalX) { const mid = Math.floor((lo + hi) / 2); const rect = presentationEditor.computeCaretLayoutRect(mid); if (!rect || !Number.isFinite(rect.x)) { - // Can't measure this position — fall back to pmStart - break; + // Can't measure this position (e.g. inline node boundary) — skip it + // and continue searching. Breaking here would fall back to pmStart, + // causing the caret to jump to the line start. + lo = mid + 1; + continue; } const dist = Math.abs(rect.x - goalX); From 82a37d180ea6e36f573a739c52156c68e845dc60 Mon Sep 17 00:00:00 2001 From: Tadeu Tupinamba Date: Thu, 5 Mar 2026 10:28:31 -0300 Subject: [PATCH 03/11] fix(editor): scope auto-scroll to arrow keys and add page-mount guard Address review feedback for SD-1950: - Scope auto-scroll to arrow-key navigation only. Add requestScrollCaretIntoView() public method that the vertical-nav extension calls before dispatch. #scrollCaretIntoViewIfNeeded only runs when this flag is set, preventing unexpected scroll jumps from collab edits, undo, find-and-replace, or other programmatic changes. - Add page-mount guard in #scrollCaretIntoViewIfNeeded. The caret element may exist with estimated coordinates even when the page isn't visible (virtualized). Check for the page element in the DOM before using the caret rect, falling back to scrollPageIntoView otherwise. - Add 7 unit tests for resolvePositionAtGoalX covering: closest match, exact match, goalX before/after all positions, null midpoints (inline node boundaries), all-null positions, and single-position ranges. - Export resolvePositionAtGoalX for direct testing. --- .../presentation-editor/PresentationEditor.ts | 37 +++++++++--- .../vertical-navigation.js | 6 +- .../vertical-navigation.test.js | 56 ++++++++++++++++++- 3 files changed, 90 insertions(+), 9 deletions(-) diff --git a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts index 14d75dbc73..eb65fc7759 100644 --- a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts +++ b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts @@ -297,6 +297,8 @@ export class PresentationEditor extends EventEmitter { /** RAF handle for coalesced decoration sync scheduling. */ #decorationSyncRafHandle: number | null = null; #rafHandle: number | null = null; + /** When true, the next #updateSelection call will scroll the caret into view. */ + #pendingCaretScrollRequest = false; #editorListeners: Array<{ event: string; handler: (...args: unknown[]) => void }> = []; #scrollHandler: (() => void) | null = null; #scrollContainer: Element | Window | null = null; @@ -3923,7 +3925,10 @@ export class PresentationEditor extends EventEmitter { console.warn('[PresentationEditor] Failed to render caret overlay:', error); } } - this.#scrollCaretIntoViewIfNeeded(caretLayout); + if (this.#pendingCaretScrollRequest) { + this.#pendingCaretScrollRequest = false; + this.#scrollCaretIntoViewIfNeeded(caretLayout); + } return; } @@ -3955,23 +3960,41 @@ export class PresentationEditor extends EventEmitter { } } + /** + * Requests that the next selection update scrolls the caret into view. + * Called by the vertical-navigation extension after dispatching an arrow-key + * selection change so that auto-scroll only fires for keyboard navigation, + * not for collab edits, undo, find-and-replace, or other programmatic changes. + */ + requestScrollCaretIntoView(): void { + this.#pendingCaretScrollRequest = true; + } + /** * Scrolls the scroll container so the caret remains visible after selection changes. * - * Called after the caret overlay is rendered in #updateSelection(). Uses the rendered - * caret element's screen-space position (via getBoundingClientRect) to determine if + * Called after the caret overlay is rendered in #updateSelection() when a scroll + * request was queued via requestScrollCaretIntoView(). Uses the rendered caret + * element's screen-space position (via getBoundingClientRect) to determine if * scrolling is needed, keeping a small margin for comfortable viewing. * - * If the caret element doesn't exist (page may be virtualized / not mounted), - * falls back to scrolling the target page into view to trigger virtualization. + * If the caret's target page isn't mounted (virtualized), falls back to scrolling + * the page into view to trigger mount; the next selection update handles precise scroll. */ #scrollCaretIntoViewIfNeeded(caretLayout: { pageIndex: number }): void { const caretEl = this.#localSelectionLayer?.querySelector( '.presentation-editor__selection-caret', ) as HTMLElement | null; - if (!caretEl) { - // Caret page may not be mounted (virtualized) — scroll page into view + // Check if the caret's page is actually mounted in the DOM. The caret element + // may exist with estimated coordinates even when the page isn't visible, which + // would produce an incorrect scroll target. + const painterHost = this.#visibleHost?.querySelector(`.superdoc-container`); + const pageEl = painterHost?.querySelector(`[data-page-index="${caretLayout.pageIndex}"]`); + const pageIsMounted = !!pageEl; + + if (!caretEl || !pageIsMounted) { + // Page may not be mounted (virtualized) — scroll page into view // to trigger mount; next selection update will handle precise scroll. this.#scrollPageIntoView(caretLayout.pageIndex); return; diff --git a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js index f8688f4892..f8727d1f70 100644 --- a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js +++ b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js @@ -154,6 +154,10 @@ export const VerticalNavigation = Extension.create({ // 4. Move selection const selection = buildSelection(view.state, hit.pos, event.shiftKey); if (!selection) return false; + // Request auto-scroll before dispatch so the next selection update scrolls + // the caret into view. Only arrow-key navigation triggers this — other + // selection changes (collab, undo, find-and-replace) do not auto-scroll. + editor.presentationEditor?.requestScrollCaretIntoView?.(); view.dispatch( view.state.tr .setMeta(VerticalNavigationPluginKey, { type: 'vertical-move', goalX }) @@ -389,7 +393,7 @@ function findAdjacentLineElement(currentLine, direction) { * @param {number} goalX - Target X coordinate in layout space. * @returns {{ pos: number } | null} */ -function resolvePositionAtGoalX(editor, pmStart, pmEnd, goalX) { +export function resolvePositionAtGoalX(editor, pmStart, pmEnd, goalX) { const presentationEditor = editor.presentationEditor; let bestPos = pmStart; let bestDist = Infinity; diff --git a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.test.js b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.test.js index 92b8c360a9..a31cc79e7c 100644 --- a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.test.js +++ b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.test.js @@ -4,7 +4,7 @@ import { EditorState, TextSelection } from 'prosemirror-state'; import { Extension } from '@core/Extension.js'; import { DOM_CLASS_NAMES } from '@superdoc/painter-dom'; -import { VerticalNavigation, VerticalNavigationPluginKey } from './vertical-navigation.js'; +import { VerticalNavigation, VerticalNavigationPluginKey, resolvePositionAtGoalX } from './vertical-navigation.js'; const createSchema = () => { const nodes = { @@ -172,3 +172,57 @@ describe('VerticalNavigation', () => { expect(dispatchedTr.getMeta(VerticalNavigationPluginKey)).toMatchObject({ type: 'reset-goal-x' }); }); }); + +describe('resolvePositionAtGoalX', () => { + const makeEditor = (rectFn) => ({ + presentationEditor: { computeCaretLayoutRect: rectFn }, + }); + + it('returns the position whose X is closest to goalX', () => { + // Simulate 5 positions (10-14) with X values 0, 10, 20, 30, 40 + const editor = makeEditor((pos) => ({ x: (pos - 10) * 10 })); + const result = resolvePositionAtGoalX(editor, 10, 14, 25); + // Position 12 has x=20 (dist=5), position 13 has x=30 (dist=5). + // Binary search encounters 12 first so it becomes bestPos. + expect(result).toEqual({ pos: 12 }); + }); + + it('returns exact match when goalX lands on a position', () => { + const editor = makeEditor((pos) => ({ x: (pos - 10) * 10 })); + const result = resolvePositionAtGoalX(editor, 10, 14, 20); + expect(result).toEqual({ pos: 12 }); + }); + + it('returns pmStart when goalX is before all positions', () => { + const editor = makeEditor((pos) => ({ x: pos * 10 })); + const result = resolvePositionAtGoalX(editor, 5, 10, -100); + expect(result).toEqual({ pos: 5 }); + }); + + it('returns pmEnd when goalX is past all positions', () => { + const editor = makeEditor((pos) => ({ x: pos * 10 })); + const result = resolvePositionAtGoalX(editor, 5, 10, 9999); + expect(result).toEqual({ pos: 10 }); + }); + + it('skips positions where computeCaretLayoutRect returns null', () => { + // Position 12 returns null (inline node boundary), others are normal + const editor = makeEditor((pos) => (pos === 12 ? null : { x: (pos - 10) * 10 })); + const result = resolvePositionAtGoalX(editor, 10, 14, 25); + // Should still find a valid position, not fall back to pmStart + expect(result.pos).toBeGreaterThan(10); + }); + + it('handles all-null positions gracefully', () => { + const editor = makeEditor(() => null); + const result = resolvePositionAtGoalX(editor, 10, 14, 25); + // Falls back to pmStart since no positions are measurable + expect(result).toEqual({ pos: 10 }); + }); + + it('handles single-position range', () => { + const editor = makeEditor((pos) => ({ x: 50 })); + const result = resolvePositionAtGoalX(editor, 10, 10, 50); + expect(result).toEqual({ pos: 10 }); + }); +}); From 3a555855d2ec8949b7eabcefff91a6147828c286 Mon Sep 17 00:00:00 2001 From: Tadeu Tupinamba Date: Thu, 5 Mar 2026 10:56:32 -0300 Subject: [PATCH 04/11] fix(editor): revert scroll gating, keep unconditional auto-scroll The flag-based scroll gating (requestScrollCaretIntoView) was over-engineered. The 20px margin check in scrollCaretIntoViewIfNeeded already prevents scrolling when the caret is visible. Scrolling when the caret is off-screen is correct for all selection change sources (arrow keys, undo, collab, find-and-replace). Revert to unconditional scroll after caret rendering. Keep the page-mount guard and resolvePositionAtGoalX tests from the previous commit. --- .../presentation-editor/PresentationEditor.ts | 26 +++++-------------- .../vertical-navigation.js | 4 --- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts index fd21cf7a1c..dd57530eec 100644 --- a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts +++ b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts @@ -308,8 +308,6 @@ export class PresentationEditor extends EventEmitter { /** RAF handle for coalesced decoration sync scheduling. */ #decorationSyncRafHandle: number | null = null; #rafHandle: number | null = null; - /** When true, the next #updateSelection call will scroll the caret into view. */ - #pendingCaretScrollRequest = false; #semanticResizeObserver: ResizeObserver | null = null; #semanticResizeRaf: number | null = null; #semanticResizeDebounce: number | null = null; @@ -4300,10 +4298,7 @@ export class PresentationEditor extends EventEmitter { console.warn('[PresentationEditor] Failed to render caret overlay:', error); } } - if (this.#pendingCaretScrollRequest) { - this.#pendingCaretScrollRequest = false; - this.#scrollCaretIntoViewIfNeeded(caretLayout); - } + this.#scrollCaretIntoViewIfNeeded(caretLayout); return; } @@ -4348,23 +4343,14 @@ export class PresentationEditor extends EventEmitter { } } - /** - * Requests that the next selection update scrolls the caret into view. - * Called by the vertical-navigation extension after dispatching an arrow-key - * selection change so that auto-scroll only fires for keyboard navigation, - * not for collab edits, undo, find-and-replace, or other programmatic changes. - */ - requestScrollCaretIntoView(): void { - this.#pendingCaretScrollRequest = true; - } - /** * Scrolls the scroll container so the caret remains visible after selection changes. * - * Called after the caret overlay is rendered in #updateSelection() when a scroll - * request was queued via requestScrollCaretIntoView(). Uses the rendered caret - * element's screen-space position (via getBoundingClientRect) to determine if - * scrolling is needed, keeping a small margin for comfortable viewing. + * Called after the caret overlay is rendered in #updateSelection(). Uses the rendered + * caret element's screen-space position (via getBoundingClientRect) to determine if + * scrolling is needed, keeping a small margin (20px) for comfortable viewing. + * The margin check prevents scrolling when the caret is already visible, so this + * is safe to call on every selection change (arrow keys, undo, collab, etc.). * * If the caret's target page isn't mounted (virtualized), falls back to scrolling * the page into view to trigger mount; the next selection update handles precise scroll. diff --git a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js index f8727d1f70..6cda410e96 100644 --- a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js +++ b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.js @@ -154,10 +154,6 @@ export const VerticalNavigation = Extension.create({ // 4. Move selection const selection = buildSelection(view.state, hit.pos, event.shiftKey); if (!selection) return false; - // Request auto-scroll before dispatch so the next selection update scrolls - // the caret into view. Only arrow-key navigation triggers this — other - // selection changes (collab, undo, find-and-replace) do not auto-scroll. - editor.presentationEditor?.requestScrollCaretIntoView?.(); view.dispatch( view.state.tr .setMeta(VerticalNavigationPluginKey, { type: 'vertical-move', goalX }) From 7aa753db1d0023f576f43609deda994763b5cd6c Mon Sep 17 00:00:00 2001 From: Tadeu Tupinamba Date: Thu, 5 Mar 2026 10:59:40 -0300 Subject: [PATCH 05/11] fix(editor): remove page-mount guard from scrollCaretIntoViewIfNeeded The DOM query for page mount status was failing (wrong selector after main merge), causing scrollPageIntoView to fire on every selection update instead of precise scroll. Restore the original guard that only checks caret element existence. --- .../presentation-editor/PresentationEditor.ts | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts index dd57530eec..573ebb43e3 100644 --- a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts +++ b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts @@ -4348,27 +4348,18 @@ export class PresentationEditor extends EventEmitter { * * Called after the caret overlay is rendered in #updateSelection(). Uses the rendered * caret element's screen-space position (via getBoundingClientRect) to determine if - * scrolling is needed, keeping a small margin (20px) for comfortable viewing. - * The margin check prevents scrolling when the caret is already visible, so this - * is safe to call on every selection change (arrow keys, undo, collab, etc.). + * scrolling is needed, keeping a small margin for comfortable viewing. * - * If the caret's target page isn't mounted (virtualized), falls back to scrolling - * the page into view to trigger mount; the next selection update handles precise scroll. + * If the caret element doesn't exist (page may be virtualized / not mounted), + * falls back to scrolling the target page into view to trigger virtualization. */ #scrollCaretIntoViewIfNeeded(caretLayout: { pageIndex: number }): void { const caretEl = this.#localSelectionLayer?.querySelector( '.presentation-editor__selection-caret', ) as HTMLElement | null; - // Check if the caret's page is actually mounted in the DOM. The caret element - // may exist with estimated coordinates even when the page isn't visible, which - // would produce an incorrect scroll target. - const painterHost = this.#visibleHost?.querySelector(`.superdoc-container`); - const pageEl = painterHost?.querySelector(`[data-page-index="${caretLayout.pageIndex}"]`); - const pageIsMounted = !!pageEl; - - if (!caretEl || !pageIsMounted) { - // Page may not be mounted (virtualized) — scroll page into view + if (!caretEl) { + // Caret page may not be mounted (virtualized) — scroll page into view // to trigger mount; next selection update will handle precise scroll. this.#scrollPageIntoView(caretLayout.pageIndex); return; From 3c5aca1b60c8d4d815a8e00d40a4b5a5e66f0b28 Mon Sep 17 00:00:00 2001 From: Tadeu Tupinamba Date: Thu, 5 Mar 2026 11:11:15 -0300 Subject: [PATCH 06/11] fix(editor): add page-mount guard using painterHost reference Check if the caret's target page is mounted before using the caret element's rect for scroll calculations. The caret overlay can exist with estimated coordinates even when the page is virtualized. Query this.#painterHost (stable class field) for the page element instead of the previous fragile querySelector('.superdoc-container') approach. --- .../src/core/presentation-editor/PresentationEditor.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts index 573ebb43e3..d3c09d2b9d 100644 --- a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts +++ b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts @@ -4358,7 +4358,12 @@ export class PresentationEditor extends EventEmitter { '.presentation-editor__selection-caret', ) as HTMLElement | null; - if (!caretEl) { + // The caret element can exist with estimated coordinates even when the target + // page isn't mounted (virtualized). Check the painter host for the actual page + // element to avoid scrolling to an incorrect position. + const pageIsMounted = !!this.#painterHost.querySelector(`[data-page-index="${caretLayout.pageIndex}"]`); + + if (!caretEl || !pageIsMounted) { // Caret page may not be mounted (virtualized) — scroll page into view // to trigger mount; next selection update will handle precise scroll. this.#scrollPageIntoView(caretLayout.pageIndex); From 84f5f3d852367185faab002adffb2eaba2817743 Mon Sep 17 00:00:00 2001 From: Tadeu Tupinamba Date: Thu, 5 Mar 2026 11:14:22 -0300 Subject: [PATCH 07/11] test(editor): add integration tests for hit validation and fallback path Add two tests exercising the data-pm-start/data-pm-end validation block in handleKeyDown: - Hit lands within PM range: uses hit test result directly, no fallback - Hit lands outside PM range: triggers resolvePositionAtGoalX fallback, binary search resolves position within the line's range --- .../vertical-navigation.test.js | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.test.js b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.test.js index a31cc79e7c..a27d7dd80a 100644 --- a/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.test.js +++ b/packages/super-editor/src/extensions/vertical-navigation/vertical-navigation.test.js @@ -162,6 +162,79 @@ describe('VerticalNavigation', () => { expect(view.state.selection.to).toBe(6); }); + it('uses hit test result when it falls within the adjacent line PM range', () => { + const { line1, line2 } = createDomStructure(); + // Set PM range on the adjacent line + line2.dataset.pmStart = '3'; + line2.dataset.pmEnd = '8'; + vi.spyOn(line2, 'getBoundingClientRect').mockReturnValue({ + top: 200, + left: 0, + right: 0, + bottom: 220, + width: 0, + height: 20, + x: 0, + y: 0, + toJSON: () => ({}), + }); + + document.elementsFromPoint = vi.fn(() => [line1]); + + const { plugin, view, presentationEditor } = createEnvironment(); + // Hit test returns pos 5, which is within [3, 8] — should use it directly + presentationEditor.hitTest.mockReturnValue({ pos: 5 }); + + const handled = plugin.props.handleKeyDown(view, { key: 'ArrowDown', shiftKey: false }); + + expect(handled).toBe(true); + expect(view.state.selection.head).toBe(5); + // resolvePositionAtGoalX (computeCaretLayoutRect) should NOT have been called + // for position resolution — only for initial goalX + expect(presentationEditor.computeCaretLayoutRect).toHaveBeenCalledTimes(1); + }); + + it('falls back to resolvePositionAtGoalX when hit test lands outside PM range', () => { + const { line1, line2 } = createDomStructure(); + // Set PM range on the adjacent line + line2.dataset.pmStart = '3'; + line2.dataset.pmEnd = '8'; + vi.spyOn(line2, 'getBoundingClientRect').mockReturnValue({ + top: 200, + left: 0, + right: 0, + bottom: 220, + width: 0, + height: 20, + x: 0, + y: 0, + toJSON: () => ({}), + }); + + document.elementsFromPoint = vi.fn(() => [line1]); + + const { plugin, view, presentationEditor } = createEnvironment(); + // Hit test returns pos 100, way outside [3, 8] — should trigger fallback + presentationEditor.hitTest.mockReturnValue({ pos: 100 }); + // computeCaretLayoutRect is called by fallback binary search + presentationEditor.computeCaretLayoutRect.mockImplementation((pos) => ({ + x: (pos - 3) * 10, + y: 200, + height: 10, + pageIndex: 0, + })); + + const handled = plugin.props.handleKeyDown(view, { key: 'ArrowDown', shiftKey: false }); + + expect(handled).toBe(true); + // Should have resolved to a position within [3, 8], not 100 + const head = view.state.selection.head; + expect(head).toBeGreaterThanOrEqual(3); + expect(head).toBeLessThanOrEqual(8); + // Binary search should have called computeCaretLayoutRect multiple times + expect(presentationEditor.computeCaretLayoutRect.mock.calls.length).toBeGreaterThan(1); + }); + it('resets goalX on pointer-driven selection changes', () => { const { plugin, view } = createEnvironment(); From f46c24613f93ef550db84c95dc64a554a0c56201 Mon Sep 17 00:00:00 2001 From: Tadeu Tupinamba Date: Thu, 5 Mar 2026 11:27:23 -0300 Subject: [PATCH 08/11] fix(editor): scroll selection head into view for Shift+Arrow navigation Refactor scroll logic to handle both collapsed and range selections: - Extract #scrollScreenRectIntoView for reusable scroll-bounds check - Replace #scrollCaretIntoViewIfNeeded with #scrollActiveEndIntoView that works for both carets and range selections - For range selections, pick the rendered rect nearest the selection head: first child for backward (Shift+ArrowUp), last child for forward (Shift+ArrowDown) - Call scroll after range selection rendering so Shift+Arrow across page boundaries follows the active end --- .../presentation-editor/PresentationEditor.ts | 95 ++++++++++++------- 1 file changed, 60 insertions(+), 35 deletions(-) diff --git a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts index d3c09d2b9d..fbbc2831df 100644 --- a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts +++ b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts @@ -4298,7 +4298,7 @@ export class PresentationEditor extends EventEmitter { console.warn('[PresentationEditor] Failed to render caret overlay:', error); } } - this.#scrollCaretIntoViewIfNeeded(caretLayout); + this.#scrollActiveEndIntoView(caretLayout.pageIndex); return; } @@ -4341,40 +4341,25 @@ export class PresentationEditor extends EventEmitter { console.warn('[PresentationEditor] Failed to render selection rects:', error); } } + + // Scroll to keep the selection head visible (Shift+Arrow across page boundaries). + // Use the head's layout rect to determine the target page. + const head = activeEditor?.view?.state?.selection?.head ?? to; + const headLayout = this.#computeCaretLayoutRect(head); + if (headLayout) { + this.#scrollActiveEndIntoView(headLayout.pageIndex); + } } /** - * Scrolls the scroll container so the caret remains visible after selection changes. - * - * Called after the caret overlay is rendered in #updateSelection(). Uses the rendered - * caret element's screen-space position (via getBoundingClientRect) to determine if - * scrolling is needed, keeping a small margin for comfortable viewing. - * - * If the caret element doesn't exist (page may be virtualized / not mounted), - * falls back to scrolling the target page into view to trigger virtualization. + * Scrolls the scroll container minimally so that a screen-space rect is visible, + * keeping a small margin (20px) for comfortable viewing. No-ops when the rect + * is already within the visible bounds. */ - #scrollCaretIntoViewIfNeeded(caretLayout: { pageIndex: number }): void { - const caretEl = this.#localSelectionLayer?.querySelector( - '.presentation-editor__selection-caret', - ) as HTMLElement | null; - - // The caret element can exist with estimated coordinates even when the target - // page isn't mounted (virtualized). Check the painter host for the actual page - // element to avoid scrolling to an incorrect position. - const pageIsMounted = !!this.#painterHost.querySelector(`[data-page-index="${caretLayout.pageIndex}"]`); - - if (!caretEl || !pageIsMounted) { - // Caret page may not be mounted (virtualized) — scroll page into view - // to trigger mount; next selection update will handle precise scroll. - this.#scrollPageIntoView(caretLayout.pageIndex); - return; - } - + #scrollScreenRectIntoView(screenTop: number, screenBottom: number): void { const scrollContainer = this.#scrollContainer; if (!scrollContainer) return; - const caretRect = caretEl.getBoundingClientRect(); - let containerTop: number; let containerBottom: number; @@ -4387,20 +4372,17 @@ export class PresentationEditor extends EventEmitter { containerBottom = r.bottom; } - // Margin in screen pixels to keep around the cursor for comfortable viewing const SCROLL_MARGIN = 20; - if (caretRect.bottom > containerBottom - SCROLL_MARGIN) { - // Caret is below the visible area — scroll down - const delta = caretRect.bottom - containerBottom + SCROLL_MARGIN; + if (screenBottom > containerBottom - SCROLL_MARGIN) { + const delta = screenBottom - containerBottom + SCROLL_MARGIN; if (scrollContainer instanceof Window) { scrollContainer.scrollBy({ top: delta }); } else { (scrollContainer as Element).scrollTop += delta; } - } else if (caretRect.top < containerTop + SCROLL_MARGIN) { - // Caret is above the visible area — scroll up - const delta = containerTop + SCROLL_MARGIN - caretRect.top; + } else if (screenTop < containerTop + SCROLL_MARGIN) { + const delta = containerTop + SCROLL_MARGIN - screenTop; if (scrollContainer instanceof Window) { scrollContainer.scrollBy({ top: -delta }); } else { @@ -4409,6 +4391,49 @@ export class PresentationEditor extends EventEmitter { } } + /** + * Scrolls the scroll container so the caret or selection head remains visible + * after selection changes. Works for both collapsed (caret) and range selections. + * + * For collapsed selections, uses the rendered caret element's screen position. + * For range selections, uses the rendered selection rect nearest to the head. + * + * If the target page isn't mounted (virtualized), falls back to scrolling the + * page into view to trigger mount; the next selection update handles precise scroll. + */ + #scrollActiveEndIntoView(pageIndex: number): void { + // Check if the target page is mounted before trusting rendered element positions. + const pageIsMounted = !!this.#painterHost.querySelector(`[data-page-index="${pageIndex}"]`); + if (!pageIsMounted) { + this.#scrollPageIntoView(pageIndex); + return; + } + + // Try caret element first (collapsed selection) + const caretEl = this.#localSelectionLayer?.querySelector( + '.presentation-editor__selection-caret', + ) as HTMLElement | null; + if (caretEl) { + const r = caretEl.getBoundingClientRect(); + this.#scrollScreenRectIntoView(r.top, r.bottom); + return; + } + + // Range selection: pick the rendered rect nearest the selection head. + // Rects are rendered in document order. head < anchor means the user is + // extending backward (Shift+ArrowUp) → first child. head >= anchor means + // extending forward (Shift+ArrowDown) → last child. + const sel = this.getActiveEditor()?.view?.state?.selection; + const headIsForward = !sel || sel.head >= sel.anchor; + const headRect = ( + headIsForward ? this.#localSelectionLayer?.lastElementChild : this.#localSelectionLayer?.firstElementChild + ) as HTMLElement | null; + if (headRect) { + const r = headRect.getBoundingClientRect(); + this.#scrollScreenRectIntoView(r.top, r.bottom); + } + } + /** * Updates the permission overlay (w:permStart/w:permEnd) to match the current editor permission ranges. * From 460ca15b88578d417748cd76bd5d1ff75d5b576d Mon Sep 17 00:00:00 2001 From: Nick Bernal Date: Mon, 16 Mar 2026 09:41:56 -0700 Subject: [PATCH 09/11] chore: fix behavior tests --- .../presentation-editor/PresentationEditor.ts | 47 ++++- .../presentation-editor/dom/HiddenHost.ts | 75 ++++++-- .../tests/HiddenHost.test.ts | 174 ++++++++---------- 3 files changed, 170 insertions(+), 126 deletions(-) diff --git a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts index cf3a1f4a5a..1af4e1d23c 100644 --- a/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts +++ b/packages/super-editor/src/core/presentation-editor/PresentationEditor.ts @@ -269,6 +269,8 @@ export class PresentationEditor extends EventEmitter { #selectionOverlay: HTMLElement; #permissionOverlay: HTMLElement | null = null; #hiddenHost: HTMLElement; + /** Scroll-isolating wrapper around #hiddenHost. Append/remove this from the DOM. */ + #hiddenHostWrapper: HTMLElement; #layoutOptions: LayoutEngineOptions; #layoutState: LayoutState = { blocks: [], measures: [], layout: null, bookmarks: new Map() }; /** Cache for incremental toFlowBlocks conversion */ @@ -287,6 +289,13 @@ export class PresentationEditor extends EventEmitter { #pendingMapping: Mapping | null = null; #isRerendering = false; #selectionSync = new SelectionSyncCoordinator(); + /** + * When true, the next selection render scrolls the caret/selection head into view. + * Only set for user-initiated actions (keyboard/mouse selection, image click, zoom). + * Passive re-renders (virtualization remounts, layout completions, DOM rebuilds) leave + * this unset so they don't fight the user's scroll position. + */ + #shouldScrollSelectionIntoView = false; #epochMapper = new EpochPositionMapper(); #layoutEpoch = 0; #htmlAnnotationHeights: Map = new Map(); @@ -583,11 +592,16 @@ export class PresentationEditor extends EventEmitter { }); this.#visibleHost.appendChild(this.#ariaLiveRegion); - this.#hiddenHost = createHiddenHost(doc, this.#layoutOptions.pageSize?.w ?? DEFAULT_PAGE_SIZE.w); + const { wrapper: hiddenHostWrapper, host: hiddenHost } = createHiddenHost( + doc, + this.#layoutOptions.pageSize?.w ?? DEFAULT_PAGE_SIZE.w, + ); + this.#hiddenHostWrapper = hiddenHostWrapper; + this.#hiddenHost = hiddenHost; if (doc.body) { - doc.body.appendChild(this.#hiddenHost); + doc.body.appendChild(this.#hiddenHostWrapper); } else { - this.#visibleHost.appendChild(this.#hiddenHost); + this.#visibleHost.appendChild(this.#hiddenHostWrapper); } const { layoutEngineOptions: _layoutEngineOptions, element: _element, ...editorOptions } = options; @@ -2436,6 +2450,7 @@ export class PresentationEditor extends EventEmitter { // Notify DomPainter so virtualization accounts for the CSS transform scale this.#domPainter?.setZoom?.(zoom); this.emit('zoomChange', { zoom }); + this.#shouldScrollSelectionIntoView = true; this.#scheduleSelectionUpdate(); // Trigger cursor updates on zoom changes if (this.#remoteCursorManager?.hasRemoteCursors()) { @@ -2557,7 +2572,7 @@ export class PresentationEditor extends EventEmitter { this.#dragDropManager = null; this.#selectionOverlay?.remove(); this.#painterHost?.remove(); - this.#hiddenHost?.remove(); + this.#hiddenHostWrapper?.remove(); this.#hoverOverlay = null; this.#hoverTooltip = null; this.#modeBanner?.remove(); @@ -2682,6 +2697,8 @@ export class PresentationEditor extends EventEmitter { } }; const handleSelection = () => { + // User-initiated selection change (keyboard, mouse) — scroll caret into view. + this.#shouldScrollSelectionIntoView = true; // Use immediate rendering for selection-only changes (clicks, arrow keys). // Without immediate, the render is RAF-deferred — leaving a window where // a remote collaborator's edit can cancel the pending render via @@ -3028,6 +3045,7 @@ export class PresentationEditor extends EventEmitter { * @returns {void} */ #focusEditorAfterImageSelection(): void { + this.#shouldScrollSelectionIntoView = true; this.#scheduleSelectionUpdate(); if (document.activeElement instanceof HTMLElement) { document.activeElement.blur(); @@ -4205,6 +4223,13 @@ export class PresentationEditor extends EventEmitter { * @private */ #updateSelection() { + // Consume the scroll intent before any early returns. Passive re-renders + // (virtualization remounts, layout completions) never set this flag, so + // they won't scroll the viewport to the caret — only real user-initiated + // selection changes (keyboard, mouse, image click, zoom) will. + const shouldScrollIntoView = this.#shouldScrollSelectionIntoView; + this.#shouldScrollSelectionIntoView = false; + // In header/footer mode, the ProseMirror editor handles its own caret const sessionMode = this.#headerFooterSession?.session?.mode ?? 'body'; if (sessionMode !== 'body') { @@ -4324,7 +4349,9 @@ export class PresentationEditor extends EventEmitter { console.warn('[PresentationEditor] Failed to render caret overlay:', error); } } - this.#scrollActiveEndIntoView(caretLayout.pageIndex); + if (shouldScrollIntoView) { + this.#scrollActiveEndIntoView(caretLayout.pageIndex); + } return; } @@ -4370,10 +4397,12 @@ export class PresentationEditor extends EventEmitter { // Scroll to keep the selection head visible (Shift+Arrow across page boundaries). // Use the head's layout rect to determine the target page. - const head = activeEditor?.view?.state?.selection?.head ?? to; - const headLayout = this.#computeCaretLayoutRect(head); - if (headLayout) { - this.#scrollActiveEndIntoView(headLayout.pageIndex); + if (shouldScrollIntoView) { + const head = activeEditor?.view?.state?.selection?.head ?? to; + const headLayout = this.#computeCaretLayoutRect(head); + if (headLayout) { + this.#scrollActiveEndIntoView(headLayout.pageIndex); + } } } diff --git a/packages/super-editor/src/core/presentation-editor/dom/HiddenHost.ts b/packages/super-editor/src/core/presentation-editor/dom/HiddenHost.ts index 9cfdb9078c..de62565a98 100644 --- a/packages/super-editor/src/core/presentation-editor/dom/HiddenHost.ts +++ b/packages/super-editor/src/core/presentation-editor/dom/HiddenHost.ts @@ -1,5 +1,26 @@ /** - * Creates a hidden host element for the ProseMirror editor. + * Result of creating the hidden ProseMirror editor host. + * + * The hidden host is wrapped in a scroll-isolation container that prevents the + * browser's native caret-tracking scroll from leaking to the page. Without this + * wrapper, when the focused contenteditable has a deep caret position (e.g., end + * of a long document), the browser continuously scrolls the page to reveal it — + * fighting any programmatic scroll the user or virtualization system performs. + * + * @remarks + * The wrapper is the element to insert into the DOM tree. The host is the element + * passed to ProseMirror's Editor as its container. + */ +export type HiddenHostElements = { + /** Outer wrapper — append this to the DOM. Provides scroll isolation via overflow:hidden. */ + wrapper: HTMLElement; + /** Inner host — pass this to ProseMirror as the editor container. */ + host: HTMLElement; +}; + +/** + * Creates a hidden host element for the ProseMirror editor, wrapped in a + * scroll-isolating container. * * The hidden host contains the actual ProseMirror editor DOM, which provides semantic * document structure for accessibility (screen readers, keyboard navigation) while being @@ -8,37 +29,55 @@ * * @param doc - The document object to create the element in * @param widthPx - The width of the hidden host in pixels (should match document width) - * @returns A configured hidden host div element + * @returns The wrapper (for DOM insertion) and the host (for ProseMirror) * * @remarks - * - Uses position: fixed with left: -9999px to move off-screen without affecting scroll - * - Uses opacity: 0 (NOT visibility: hidden) to keep content focusable - * - Does NOT set aria-hidden="true" because the editor must remain accessible - * - Sets pointer-events: none and z-index: -1 to prevent interaction - * - Sets user-select: none to prevent text selection in the hidden editor - * - Sets overflow-anchor: none to prevent scroll anchoring issues when content changes - * - The viewport host is aria-hidden, but this host provides semantic structure + * **Scroll isolation (wrapper):** + * - `position: fixed; overflow: hidden; width: 1px; height: 1px` — creates a tiny, + * off-screen scroll container. When the browser's native caret-tracking tries to + * scroll to the focused contenteditable's caret, it adjusts the wrapper's scrollTop + * (a no-op since the wrapper is 1×1) instead of the page's scrollTop. + * + * **Hidden host (inner element):** + * - `position: absolute` inside the wrapper — takes the full document width for accurate + * text measurement while being visually clipped by the wrapper. + * - Inherits invisibility and non-interactivity from the wrapper (`opacity: 0`, + * `pointer-events: none`). Does NOT use `visibility: hidden` — that prevents focusing. + * - Does NOT set `aria-hidden="true"` because the editor must remain accessible. + * - Sets `user-select: none` to prevent text selection in the hidden editor. + * - Sets `overflow-anchor: none` to prevent scroll anchoring issues when content changes. */ -export function createHiddenHost(doc: Document, widthPx: number): HTMLElement { +export function createHiddenHost(doc: Document, widthPx: number): HiddenHostElements { + // --- Scroll-isolation wrapper --- + const wrapper = doc.createElement('div'); + wrapper.className = 'presentation-editor__hidden-host-wrapper'; + wrapper.style.setProperty('position', 'fixed'); + wrapper.style.setProperty('left', '-9999px'); + wrapper.style.setProperty('top', '0'); + wrapper.style.setProperty('width', '1px'); + wrapper.style.setProperty('height', '1px'); + wrapper.style.setProperty('overflow', 'hidden'); + wrapper.style.setProperty('opacity', '0'); + wrapper.style.setProperty('z-index', '-1'); + wrapper.style.setProperty('pointer-events', 'none'); + + // --- Inner host for ProseMirror --- const host = doc.createElement('div'); host.className = 'presentation-editor__hidden-host'; - host.style.setProperty('position', 'fixed'); - host.style.setProperty('left', '-9999px'); + host.style.setProperty('position', 'absolute'); + host.style.setProperty('left', '0'); host.style.setProperty('top', '0'); - // Only set valid (non-negative) width values if (widthPx >= 0) { host.style.setProperty('width', `${widthPx}px`); } host.style.setProperty('overflow-anchor', 'none'); - host.style.setProperty('pointer-events', 'none'); // DO NOT use visibility:hidden - it prevents focusing! - // Instead use opacity:0 and z-index to hide while keeping focusable - host.style.setProperty('opacity', '0'); - host.style.setProperty('z-index', '-1'); host.style.setProperty('user-select', 'none'); // DO NOT set aria-hidden="true" on this element. // This hidden host contains the actual ProseMirror editor which must remain accessible // to screen readers and keyboard navigation. The viewport (#viewportHost) is aria-hidden // because it's purely visual, but this editor provides the semantic document structure. - return host; + + wrapper.appendChild(host); + return { wrapper, host }; } diff --git a/packages/super-editor/src/core/presentation-editor/tests/HiddenHost.test.ts b/packages/super-editor/src/core/presentation-editor/tests/HiddenHost.test.ts index 4ef0efed96..fc93bae41a 100644 --- a/packages/super-editor/src/core/presentation-editor/tests/HiddenHost.test.ts +++ b/packages/super-editor/src/core/presentation-editor/tests/HiddenHost.test.ts @@ -3,179 +3,155 @@ import { beforeEach, describe, expect, it } from 'vitest'; import { createHiddenHost } from '../dom/HiddenHost.js'; /** - * Comprehensive unit tests for the createHiddenHost function. + * Unit tests for the createHiddenHost function. * * The hidden host is a critical accessibility component that contains the actual - * ProseMirror editor DOM while being visually hidden off-screen. These tests ensure - * it's configured correctly to prevent scroll issues, maintain focusability, and - * provide proper semantic structure for assistive technologies. + * ProseMirror editor DOM while being visually hidden off-screen. It is wrapped in + * a scroll-isolation container that prevents the browser's native caret-tracking + * scroll from hijacking the page's scroll position. */ describe('createHiddenHost', () => { let mockDocument: Document; beforeEach(() => { - // Create a real document for testing (jsdom provides this in vitest) mockDocument = document.implementation.createHTMLDocument('test'); }); - describe('basic element creation', () => { - it('creates a div element', () => { - const host = createHiddenHost(mockDocument, 800); + describe('return value', () => { + it('returns both wrapper and host elements', () => { + const { wrapper, host } = createHiddenHost(mockDocument, 800); - expect(host.tagName).toBe('DIV'); + expect(wrapper).toBeInstanceOf(HTMLElement); + expect(host).toBeInstanceOf(HTMLElement); }); - it('sets the correct class name', () => { - const host = createHiddenHost(mockDocument, 800); + it('host is a child of wrapper', () => { + const { wrapper, host } = createHiddenHost(mockDocument, 800); - expect(host.className).toBe('presentation-editor__hidden-host'); + expect(host.parentElement).toBe(wrapper); }); }); - describe('positioning styles to prevent scroll', () => { - it('uses position: fixed for off-screen placement', () => { - const host = createHiddenHost(mockDocument, 800); + describe('scroll-isolation wrapper', () => { + it('uses position: fixed for viewport-relative placement', () => { + const { wrapper } = createHiddenHost(mockDocument, 800); - expect(host.style.position).toBe('fixed'); + expect(wrapper.style.position).toBe('fixed'); }); - it('positions element far off-screen with left: -9999px', () => { - const host = createHiddenHost(mockDocument, 800); + it('positions far off-screen', () => { + const { wrapper } = createHiddenHost(mockDocument, 800); - expect(host.style.left).toBe('-9999px'); + expect(wrapper.style.left).toBe('-9999px'); }); - it('positions element at top: 0', () => { - const host = createHiddenHost(mockDocument, 800); + it('is 1×1 with overflow:hidden to trap browser caret scroll', () => { + const { wrapper } = createHiddenHost(mockDocument, 800); - expect(host.style.top).toBe('0px'); + expect(wrapper.style.width).toBe('1px'); + expect(wrapper.style.height).toBe('1px'); + expect(wrapper.style.overflow).toBe('hidden'); }); - it('sets overflow-anchor: none to prevent scroll anchoring issues', () => { - const host = createHiddenHost(mockDocument, 800); + it('is invisible and non-interactive', () => { + const { wrapper } = createHiddenHost(mockDocument, 800); - // Use getPropertyValue since overflow-anchor may not be a direct property - const overflowAnchor = host.style.getPropertyValue('overflow-anchor'); - expect(overflowAnchor).toBe('none'); + expect(wrapper.style.opacity).toBe('0'); + expect(wrapper.style.zIndex).toBe('-1'); + expect(wrapper.style.pointerEvents).toBe('none'); }); - }); - describe('width configuration', () => { - it('applies the specified width in pixels', () => { - const host = createHiddenHost(mockDocument, 800); + it('has the correct class name', () => { + const { wrapper } = createHiddenHost(mockDocument, 800); - expect(host.style.width).toBe('800px'); + expect(wrapper.className).toBe('presentation-editor__hidden-host-wrapper'); }); + }); - it('handles different width values correctly', () => { - const widths = [400, 612, 800, 1200]; + describe('inner host element', () => { + it('has the correct class name', () => { + const { host } = createHiddenHost(mockDocument, 800); - widths.forEach((width) => { - const host = createHiddenHost(mockDocument, width); - expect(host.style.width).toBe(`${width}px`); - }); + expect(host.className).toBe('presentation-editor__hidden-host'); }); - it('handles fractional widths correctly', () => { - const host = createHiddenHost(mockDocument, 612.5); + it('uses position: absolute inside the wrapper', () => { + const { host } = createHiddenHost(mockDocument, 800); - expect(host.style.width).toBe('612.5px'); + expect(host.style.position).toBe('absolute'); }); - }); - describe('accessibility and focusability', () => { - it('uses opacity: 0 instead of visibility: hidden to maintain focusability', () => { - const host = createHiddenHost(mockDocument, 800); + it('applies the specified width for text measurement', () => { + const { host } = createHiddenHost(mockDocument, 800); - expect(host.style.opacity).toBe('0'); - // Ensure visibility is NOT set to hidden - expect(host.style.visibility).not.toBe('hidden'); + expect(host.style.width).toBe('800px'); }); - it('does not set aria-hidden attribute', () => { - const host = createHiddenHost(mockDocument, 800); + it('sets overflow-anchor: none to prevent scroll anchoring', () => { + const { host } = createHiddenHost(mockDocument, 800); - // The hidden host must remain accessible to screen readers - expect(host.hasAttribute('aria-hidden')).toBe(false); + expect(host.style.getPropertyValue('overflow-anchor')).toBe('none'); }); - it('sets z-index: -1 to layer element behind content', () => { - const host = createHiddenHost(mockDocument, 800); + it('sets user-select: none', () => { + const { host } = createHiddenHost(mockDocument, 800); - expect(host.style.zIndex).toBe('-1'); + expect(host.style.userSelect).toBe('none'); }); - }); - describe('interaction prevention', () => { - it('sets pointer-events: none to prevent mouse interaction', () => { - const host = createHiddenHost(mockDocument, 800); + it('does not set visibility: hidden (prevents focusing)', () => { + const { host } = createHiddenHost(mockDocument, 800); - expect(host.style.pointerEvents).toBe('none'); + expect(host.style.visibility).not.toBe('hidden'); }); - it('sets user-select: none to prevent text selection', () => { - const host = createHiddenHost(mockDocument, 800); + it('does not set aria-hidden (must remain accessible)', () => { + const { host } = createHiddenHost(mockDocument, 800); - expect(host.style.userSelect).toBe('none'); + expect(host.hasAttribute('aria-hidden')).toBe(false); }); }); - describe('comprehensive style verification', () => { - it('applies all required styles simultaneously', () => { - const host = createHiddenHost(mockDocument, 800); - - // Verify all critical styles are present - expect(host.style.position).toBe('fixed'); - expect(host.style.left).toBe('-9999px'); - expect(host.style.top).toBe('0px'); - expect(host.style.width).toBe('800px'); - expect(host.style.getPropertyValue('overflow-anchor')).toBe('none'); - expect(host.style.pointerEvents).toBe('none'); - expect(host.style.opacity).toBe('0'); - expect(host.style.zIndex).toBe('-1'); - expect(host.style.userSelect).toBe('none'); + describe('width configuration', () => { + it('handles different width values', () => { + for (const width of [400, 612, 800, 1200]) { + const { host } = createHiddenHost(mockDocument, width); + expect(host.style.width).toBe(`${width}px`); + } }); - }); - describe('edge cases', () => { - it('handles zero width gracefully', () => { - const host = createHiddenHost(mockDocument, 0); + it('handles fractional widths', () => { + const { host } = createHiddenHost(mockDocument, 612.5); - expect(host.style.width).toBe('0px'); - // Should still have all other required styles - expect(host.style.position).toBe('fixed'); - expect(host.style.left).toBe('-9999px'); + expect(host.style.width).toBe('612.5px'); }); - it('handles very large width values', () => { - const host = createHiddenHost(mockDocument, 99999); + it('handles zero width', () => { + const { host } = createHiddenHost(mockDocument, 0); - expect(host.style.width).toBe('99999px'); + expect(host.style.width).toBe('0px'); }); - it('handles negative width values (browser strips invalid values)', () => { - const host = createHiddenHost(mockDocument, -100); + it('skips negative width values', () => { + const { host } = createHiddenHost(mockDocument, -100); - // Browsers strip invalid negative width values, leaving empty string expect(host.style.width).toBe(''); - // All other styles should still be applied correctly - expect(host.style.position).toBe('fixed'); - expect(host.style.left).toBe('-9999px'); }); }); describe('document isolation', () => { - it('creates element in the provided document context', () => { + it('creates elements in the provided document context', () => { const customDoc = document.implementation.createHTMLDocument('custom'); - const host = createHiddenHost(customDoc, 800); + const { wrapper, host } = createHiddenHost(customDoc, 800); + expect(wrapper.ownerDocument).toBe(customDoc); expect(host.ownerDocument).toBe(customDoc); }); - it('does not attach element to document automatically', () => { - const host = createHiddenHost(mockDocument, 800); + it('does not attach wrapper to document automatically', () => { + const { wrapper } = createHiddenHost(mockDocument, 800); - expect(host.parentNode).toBeNull(); + expect(wrapper.parentNode).toBeNull(); }); }); }); From 169735c02a025cd142b927fe7a1d7e1e639a814f Mon Sep 17 00:00:00 2001 From: Nick Bernal Date: Mon, 16 Mar 2026 09:44:03 -0700 Subject: [PATCH 10/11] chore: fix pnpm lock --- pnpm-lock.yaml | 1497 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 1088 insertions(+), 409 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bef38dfc2b..da17bf6ce1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -344,7 +344,7 @@ importers: version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': specifier: 'catalog:' - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2)) concurrently: specifier: 'catalog:' version: 9.2.1 @@ -404,10 +404,10 @@ importers: version: 6.2.5(typanion@3.14.0) vite-plugin-node-polyfills: specifier: 'catalog:' - version: 0.25.0(rollup@4.57.1)(vite@7.3.1(@types/node@22.19.2)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 0.25.0(rollup@4.59.0)(vite@7.3.1(@types/node@22.19.2)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)) vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) optionalDependencies: canvas: specifier: 3.2.1 @@ -486,7 +486,7 @@ importers: version: 14.0.3 mintlify: specifier: ^4.2.331 - version: 4.2.331(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@22.19.8)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3) + version: 4.2.331(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@25.3.5)(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3) remark-mdx: specifier: ^3.1.1 version: 3.1.1 @@ -562,37 +562,6 @@ importers: specifier: ^14.2.0 version: 14.2.5 - examples/scroll-repro: - dependencies: - '@superdoc-dev/react': - specifier: workspace:* - version: link:../../packages/react - react: - specifier: 'catalog:' - version: 19.2.4 - react-dom: - specifier: 'catalog:' - version: 19.2.4(react@19.2.4) - superdoc: - specifier: workspace:* - version: link:../../packages/superdoc - devDependencies: - '@types/react': - specifier: 'catalog:' - version: 19.2.11 - '@types/react-dom': - specifier: 'catalog:' - version: 19.2.3(@types/react@19.2.11) - '@vitejs/plugin-react': - specifier: 'catalog:' - version: 5.1.3(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) - typescript: - specifier: 'catalog:' - version: 5.9.3 - vite: - specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) - packages/ai: devDependencies: '@types/node': @@ -624,7 +593,7 @@ importers: version: link:../superdoc tsup: specifier: 'catalog:' - version: 8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: 'catalog:' version: 5.9.3 @@ -655,7 +624,7 @@ importers: version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitest/coverage-v8': specifier: 'catalog:' - version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2)) + version: 3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2)) concurrently: specifier: 'catalog:' version: 9.2.1 @@ -673,13 +642,13 @@ importers: version: 3.8.1 tsup: specifier: 'catalog:' - version: 8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: 'catalog:' version: 5.9.3 vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/document-api: {} @@ -702,7 +671,7 @@ importers: version: 19.2.3(@types/react@19.2.11) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.3(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) eslint-plugin-react: specifier: 'catalog:' version: 7.37.5(eslint@9.39.2(jiti@2.6.1)) @@ -726,13 +695,13 @@ importers: version: 5.9.3 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) vite-plugin-dts: specifier: 'catalog:' - version: 4.5.4(@types/node@22.19.8)(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1)(typescript@5.9.3) + version: 4.5.4(@types/node@25.3.5)(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0)(typescript@5.9.3) vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/esign/demo: dependencies: @@ -763,13 +732,13 @@ importers: version: 19.2.3(@types/react@19.2.11) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.3(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) typescript: specifier: 'catalog:' version: 5.9.3 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) packages/esign/demo/server: dependencies: @@ -794,7 +763,7 @@ importers: version: 5.9.3 vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/layout-engine/layout-bridge: dependencies: @@ -825,13 +794,13 @@ importers: version: 22.19.2 tsup: specifier: 'catalog:' - version: 8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) + version: 8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: 'catalog:' version: 5.9.3 vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/layout-engine/layout-engine: dependencies: @@ -892,7 +861,7 @@ importers: devDependencies: vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/layout-engine/pm-adapter: dependencies: @@ -932,7 +901,7 @@ importers: version: link:../painters/dom vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/layout-engine/style-engine: dependencies: @@ -948,7 +917,7 @@ importers: version: 5.9.3 vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/layout-engine/tests: dependencies: @@ -984,7 +953,7 @@ importers: dependencies: superdoc: specifier: '>=1.0.0' - version: 1.11.0(@hocuspocus/provider@2.15.3(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19))(canvas@3.2.1)(pdfjs-dist@5.4.624)(typescript@5.9.3)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19))(yjs@13.6.19) + version: 1.11.0(@hocuspocus/provider@2.15.3(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19))(canvas@3.2.1)(pdfjs-dist@5.4.624)(typescript@5.9.3)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19))(yjs@13.6.19) devDependencies: '@testing-library/react': specifier: 'catalog:' @@ -1006,7 +975,7 @@ importers: version: 8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.3(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.3(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) eslint: specifier: 'catalog:' version: 9.39.2(jiti@2.6.1) @@ -1024,13 +993,13 @@ importers: version: 5.9.3 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) vite-plugin-dts: specifier: 'catalog:' - version: 4.5.4(@types/node@22.19.2)(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1)(typescript@5.9.3) + version: 4.5.4(@types/node@22.19.2)(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0)(typescript@5.9.3) vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/sdk: {} @@ -1214,7 +1183,7 @@ importers: version: 4.0.4 '@vitejs/plugin-vue': specifier: 'catalog:' - version: 6.0.2(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.2(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3)) '@vue/test-utils': specifier: 'catalog:' version: 2.4.6 @@ -1226,10 +1195,10 @@ importers: version: 20.4.0 postcss-nested: specifier: 'catalog:' - version: 6.2.0(postcss@8.5.6) + version: 6.2.0(postcss@8.5.8) postcss-nested-import: specifier: 'catalog:' - version: 1.3.0(postcss@8.5.6) + version: 1.3.0(postcss@8.5.8) prosemirror-test-builder: specifier: 'catalog:' version: 1.1.1 @@ -1241,13 +1210,13 @@ importers: version: 5.9.3 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) vite-plugin-node-polyfills: specifier: 'catalog:' - version: 0.25.0(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1) + version: 0.25.0(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0) vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) y-protocols: specifier: 'catalog:' version: 1.0.7(yjs@13.6.19) @@ -1280,7 +1249,7 @@ importers: version: 3.5.25(typescript@5.9.3) y-prosemirror: specifier: 'catalog:' - version: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) + version: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) y-websocket: specifier: 'catalog:' version: 3.0.0(yjs@13.6.19) @@ -1305,7 +1274,7 @@ importers: version: link:../super-editor '@vitejs/plugin-vue': specifier: 'catalog:' - version: 6.0.2(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3)) + version: 6.0.2(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3)) '@vue/test-utils': specifier: 'catalog:' version: 2.4.6 @@ -1323,10 +1292,10 @@ importers: version: 5.4.624 postcss-nested: specifier: 'catalog:' - version: 6.2.0(postcss@8.5.6) + version: 6.2.0(postcss@8.5.8) postcss-prefixwrap: specifier: 'catalog:' - version: 1.57.2(postcss@8.5.6) + version: 1.57.2(postcss@8.5.8) prosemirror-model: specifier: 'catalog:' version: 1.25.4 @@ -1335,7 +1304,7 @@ importers: version: 1.4.4 rollup-plugin-visualizer: specifier: 'catalog:' - version: 5.14.0(rollup@4.57.1) + version: 5.14.0(rollup@4.59.0) sirv: specifier: 'catalog:' version: 3.0.2 @@ -1344,16 +1313,16 @@ importers: version: 5.9.3 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) vite-plugin-dts: specifier: 'catalog:' - version: 4.5.4(@types/node@22.19.8)(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1)(typescript@5.9.3) + version: 4.5.4(@types/node@25.3.5)(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0)(typescript@5.9.3) vite-plugin-node-polyfills: specifier: 'catalog:' - version: 0.25.0(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1) + version: 0.25.0(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0) vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) ws: specifier: ^8.18.3 version: 8.19.0 @@ -1389,7 +1358,7 @@ importers: version: 19.2.3(@types/react@19.2.11) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.3(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) eslint-plugin-react: specifier: 'catalog:' version: 7.37.5(eslint@9.39.2(jiti@2.6.1)) @@ -1413,13 +1382,13 @@ importers: version: 5.9.3 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) vite-plugin-dts: specifier: 'catalog:' - version: 4.5.4(@types/node@22.19.8)(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1)(typescript@5.9.3) + version: 4.5.4(@types/node@25.3.5)(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0)(typescript@5.9.3) vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) packages/template-builder/demo: dependencies: @@ -1444,19 +1413,19 @@ importers: version: 19.2.3(@types/react@19.2.11) '@vitejs/plugin-react': specifier: 'catalog:' - version: 5.1.3(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + version: 5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) typescript: specifier: 'catalog:' version: 5.9.3 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) packages/word-layout: devDependencies: vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) shared/common: devDependencies: @@ -1471,7 +1440,7 @@ importers: version: 5.9.3 vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) vue: specifier: 3.5.25 version: 3.5.25(typescript@5.9.3) @@ -1496,7 +1465,7 @@ importers: version: 1.58.1 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) tests/doc-api-stories: dependencies: @@ -1506,7 +1475,7 @@ importers: devDependencies: vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) tests/visual: dependencies: @@ -1531,7 +1500,7 @@ importers: version: 4.21.0 vite: specifier: npm:rolldown-vite@7.3.1 - version: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + version: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) packages: @@ -2042,6 +2011,12 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.25.12': resolution: {integrity: sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==} engines: {node: '>=18'} @@ -2054,6 +2029,12 @@ packages: cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.25.12': resolution: {integrity: sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==} engines: {node: '>=18'} @@ -2066,6 +2047,12 @@ packages: cpu: [arm] os: [android] + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.25.12': resolution: {integrity: sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==} engines: {node: '>=18'} @@ -2078,6 +2065,12 @@ packages: cpu: [x64] os: [android] + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.25.12': resolution: {integrity: sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==} engines: {node: '>=18'} @@ -2090,6 +2083,12 @@ packages: cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.25.12': resolution: {integrity: sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==} engines: {node: '>=18'} @@ -2102,6 +2101,12 @@ packages: cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.25.12': resolution: {integrity: sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==} engines: {node: '>=18'} @@ -2114,6 +2119,12 @@ packages: cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.25.12': resolution: {integrity: sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==} engines: {node: '>=18'} @@ -2126,6 +2137,12 @@ packages: cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.25.12': resolution: {integrity: sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==} engines: {node: '>=18'} @@ -2138,6 +2155,12 @@ packages: cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.25.12': resolution: {integrity: sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==} engines: {node: '>=18'} @@ -2150,6 +2173,12 @@ packages: cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.25.12': resolution: {integrity: sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==} engines: {node: '>=18'} @@ -2162,6 +2191,12 @@ packages: cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.25.12': resolution: {integrity: sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==} engines: {node: '>=18'} @@ -2174,6 +2209,12 @@ packages: cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.25.12': resolution: {integrity: sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==} engines: {node: '>=18'} @@ -2186,6 +2227,12 @@ packages: cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.25.12': resolution: {integrity: sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==} engines: {node: '>=18'} @@ -2198,6 +2245,12 @@ packages: cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.25.12': resolution: {integrity: sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==} engines: {node: '>=18'} @@ -2210,6 +2263,12 @@ packages: cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.25.12': resolution: {integrity: sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==} engines: {node: '>=18'} @@ -2222,6 +2281,12 @@ packages: cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.25.12': resolution: {integrity: sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==} engines: {node: '>=18'} @@ -2234,6 +2299,12 @@ packages: cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-arm64@0.25.12': resolution: {integrity: sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==} engines: {node: '>=18'} @@ -2246,6 +2317,12 @@ packages: cpu: [arm64] os: [netbsd] + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + '@esbuild/netbsd-x64@0.25.12': resolution: {integrity: sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==} engines: {node: '>=18'} @@ -2258,6 +2335,12 @@ packages: cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + '@esbuild/openbsd-arm64@0.25.12': resolution: {integrity: sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==} engines: {node: '>=18'} @@ -2270,6 +2353,12 @@ packages: cpu: [arm64] os: [openbsd] + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.25.12': resolution: {integrity: sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==} engines: {node: '>=18'} @@ -2282,6 +2371,12 @@ packages: cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/openharmony-arm64@0.25.12': resolution: {integrity: sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==} engines: {node: '>=18'} @@ -2294,6 +2389,12 @@ packages: cpu: [arm64] os: [openharmony] + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + '@esbuild/sunos-x64@0.25.12': resolution: {integrity: sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==} engines: {node: '>=18'} @@ -2306,6 +2407,12 @@ packages: cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.25.12': resolution: {integrity: sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==} engines: {node: '>=18'} @@ -2318,6 +2425,12 @@ packages: cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.25.12': resolution: {integrity: sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==} engines: {node: '>=18'} @@ -2330,6 +2443,12 @@ packages: cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.25.12': resolution: {integrity: sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==} engines: {node: '>=18'} @@ -2342,6 +2461,12 @@ packages: cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -2383,11 +2508,17 @@ packages: '@floating-ui/core@1.7.4': resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} + '@floating-ui/core@1.7.5': + resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} + '@floating-ui/dom@1.7.5': resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} - '@floating-ui/react-dom@2.1.7': - resolution: {integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==} + '@floating-ui/dom@1.7.6': + resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} + + '@floating-ui/react-dom@2.1.8': + resolution: {integrity: sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' @@ -2395,6 +2526,9 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + '@floating-ui/utils@0.2.11': + resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} + '@hocuspocus/common@2.15.3': resolution: {integrity: sha512-Rzh1HF0a2o/tf90A3w2XNdXd9Ym3aQzMDfD3lAUONCX9B9QOdqdyiORrj6M25QEaJrEIbXFy8LtAFcL0wRdWzA==} @@ -3473,126 +3607,251 @@ packages: cpu: [arm] os: [android] + '@rollup/rollup-android-arm-eabi@4.59.0': + resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + cpu: [arm] + os: [android] + '@rollup/rollup-android-arm64@4.57.1': resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} cpu: [arm64] os: [android] + '@rollup/rollup-android-arm64@4.59.0': + resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + cpu: [arm64] + os: [android] + '@rollup/rollup-darwin-arm64@4.57.1': resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} cpu: [arm64] os: [darwin] + '@rollup/rollup-darwin-arm64@4.59.0': + resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + cpu: [arm64] + os: [darwin] + '@rollup/rollup-darwin-x64@4.57.1': resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} cpu: [x64] os: [darwin] + '@rollup/rollup-darwin-x64@4.59.0': + resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + cpu: [x64] + os: [darwin] + '@rollup/rollup-freebsd-arm64@4.57.1': resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} cpu: [arm64] os: [freebsd] + '@rollup/rollup-freebsd-arm64@4.59.0': + resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + cpu: [arm64] + os: [freebsd] + '@rollup/rollup-freebsd-x64@4.57.1': resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} cpu: [x64] os: [freebsd] + '@rollup/rollup-freebsd-x64@4.59.0': + resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + cpu: [x64] + os: [freebsd] + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.57.1': resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} cpu: [arm] os: [linux] + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + cpu: [arm] + os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.57.1': resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-gnu@4.59.0': + resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-arm64-musl@4.57.1': resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} cpu: [arm64] os: [linux] + '@rollup/rollup-linux-arm64-musl@4.59.0': + resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + cpu: [arm64] + os: [linux] + '@rollup/rollup-linux-loong64-gnu@4.57.1': resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} cpu: [loong64] os: [linux] + '@rollup/rollup-linux-loong64-gnu@4.59.0': + resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-loong64-musl@4.57.1': resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} cpu: [loong64] os: [linux] + '@rollup/rollup-linux-loong64-musl@4.59.0': + resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + cpu: [loong64] + os: [linux] + '@rollup/rollup-linux-ppc64-gnu@4.57.1': resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-ppc64-musl@4.57.1': resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} cpu: [ppc64] os: [linux] + '@rollup/rollup-linux-ppc64-musl@4.59.0': + resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + cpu: [ppc64] + os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.57.1': resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.57.1': resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} cpu: [riscv64] os: [linux] + '@rollup/rollup-linux-riscv64-musl@4.59.0': + resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + cpu: [riscv64] + os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.57.1': resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} cpu: [s390x] os: [linux] + '@rollup/rollup-linux-s390x-gnu@4.59.0': + resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + cpu: [s390x] + os: [linux] + '@rollup/rollup-linux-x64-gnu@4.57.1': resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-gnu@4.59.0': + resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-linux-x64-musl@4.57.1': resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} cpu: [x64] os: [linux] + '@rollup/rollup-linux-x64-musl@4.59.0': + resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + cpu: [x64] + os: [linux] + '@rollup/rollup-openbsd-x64@4.57.1': resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} cpu: [x64] os: [openbsd] + '@rollup/rollup-openbsd-x64@4.59.0': + resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + cpu: [x64] + os: [openbsd] + '@rollup/rollup-openharmony-arm64@4.57.1': resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} cpu: [arm64] os: [openharmony] + '@rollup/rollup-openharmony-arm64@4.59.0': + resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + cpu: [arm64] + os: [openharmony] + '@rollup/rollup-win32-arm64-msvc@4.57.1': resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} cpu: [arm64] os: [win32] + '@rollup/rollup-win32-arm64-msvc@4.59.0': + resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + cpu: [arm64] + os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.57.1': resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} cpu: [ia32] os: [win32] + '@rollup/rollup-win32-ia32-msvc@4.59.0': + resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + cpu: [ia32] + os: [win32] + '@rollup/rollup-win32-x64-gnu@4.57.1': resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-gnu@4.59.0': + resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + cpu: [x64] + os: [win32] + '@rollup/rollup-win32-x64-msvc@4.57.1': resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} cpu: [x64] os: [win32] + '@rollup/rollup-win32-x64-msvc@4.59.0': + resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + cpu: [x64] + os: [win32] + '@rushstack/node-core-library@5.19.1': resolution: {integrity: sha512-ESpb2Tajlatgbmzzukg6zyAhH+sICqJR2CNXNhXcEbz6UGCQfrKCtkxOpJTftWc8RGouroHG0Nud1SJAszvpmA==} peerDependencies: @@ -4165,6 +4424,9 @@ packages: '@types/node@22.19.8': resolution: {integrity: sha512-ebO/Yl+EAvVe8DnMfi+iaAyIqYdK0q/q0y0rw82INWEKJOBe6b/P3YWE8NW7oOlF/nXFNrHwhARrN/hdgDkraA==} + '@types/node@25.3.5': + resolution: {integrity: sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==} + '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -4179,6 +4441,9 @@ packages: '@types/react@19.2.11': resolution: {integrity: sha512-tORuanb01iEzWvMGVGv2ZDhYZVeRMrw453DCSAIn/5yvcSVnMoUMTyf33nQJLahYEnv9xqrTNbgz4qY5EfSh0g==} + '@types/react@19.2.14': + resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} + '@types/responselike@1.0.0': resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} @@ -4938,6 +5203,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + bare-events@2.8.2: resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} peerDependencies: @@ -4990,6 +5259,7 @@ packages: basic-ftp@5.1.0: resolution: {integrity: sha512-RkaJzeJKDbaDWTIPiJwubyljaEPwpVWkm9Rt5h9Nd6h7tEXTJ3VB4qxdZBioV7JO5yLUaOKwz7vDOzlncUsegw==} engines: {node: '>=10.0.0'} + deprecated: Security vulnerability fixed in 5.2.0, please upgrade bcrypt-pbkdf@1.0.2: resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} @@ -5051,6 +5321,10 @@ packages: brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + brace-expansion@5.0.4: + resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + engines: {node: 18 || 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -6048,6 +6322,11 @@ packages: engines: {node: '>=18'} hasBin: true + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -6597,6 +6876,7 @@ packages: git-raw-commits@4.0.0: resolution: {integrity: sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==} engines: {node: '>=16'} + deprecated: This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead. hasBin: true git-up@7.0.0: @@ -8339,6 +8619,10 @@ packages: resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==} engines: {node: 20 || >=22} + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -8358,6 +8642,10 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + minimatch@9.0.9: + resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} + engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -9245,6 +9533,10 @@ packages: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + engines: {node: ^10 || ^12 || >=14} + prebuild-install@7.1.3: resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} @@ -9341,6 +9633,9 @@ packages: prosemirror-view@1.41.5: resolution: {integrity: sha512-UDQbIPnDrjE8tqUBbPmCOZgtd75htE6W3r0JCmY9bL6W1iemDM37MZEKC49d+tdQ0v/CKx4gjxLoLsfkD2NiZA==} + prosemirror-view@1.41.6: + resolution: {integrity: sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg==} + proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -9827,6 +10122,11 @@ packages: engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + rollup@4.59.0: + resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rope-sequence@1.3.4: resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} @@ -9949,6 +10249,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + send@0.18.0: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} @@ -10713,6 +11018,9 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@7.18.2: + resolution: {integrity: sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==} + undici@7.20.0: resolution: {integrity: sha512-MJZrkjyd7DeC+uPZh+5/YaMDxFiiEEaDgbUSVMXayofAkDWF1088CDo+2RPg7B1BuS1qf1vgNE7xqwPxE0DuSQ==} engines: {node: '>=20.18.1'} @@ -12227,7 +12535,7 @@ snapshots: '@commitlint/is-ignored@19.8.1': dependencies: '@commitlint/types': 19.8.1 - semver: 7.7.3 + semver: 7.7.4 '@commitlint/lint@19.8.1': dependencies: @@ -12378,156 +12686,234 @@ snapshots: '@esbuild/aix-ppc64@0.27.2': optional: true + '@esbuild/aix-ppc64@0.27.3': + optional: true + '@esbuild/android-arm64@0.25.12': optional: true '@esbuild/android-arm64@0.27.2': optional: true + '@esbuild/android-arm64@0.27.3': + optional: true + '@esbuild/android-arm@0.25.12': optional: true '@esbuild/android-arm@0.27.2': optional: true + '@esbuild/android-arm@0.27.3': + optional: true + '@esbuild/android-x64@0.25.12': optional: true '@esbuild/android-x64@0.27.2': optional: true + '@esbuild/android-x64@0.27.3': + optional: true + '@esbuild/darwin-arm64@0.25.12': optional: true '@esbuild/darwin-arm64@0.27.2': optional: true + '@esbuild/darwin-arm64@0.27.3': + optional: true + '@esbuild/darwin-x64@0.25.12': optional: true '@esbuild/darwin-x64@0.27.2': optional: true + '@esbuild/darwin-x64@0.27.3': + optional: true + '@esbuild/freebsd-arm64@0.25.12': optional: true '@esbuild/freebsd-arm64@0.27.2': optional: true + '@esbuild/freebsd-arm64@0.27.3': + optional: true + '@esbuild/freebsd-x64@0.25.12': optional: true '@esbuild/freebsd-x64@0.27.2': optional: true + '@esbuild/freebsd-x64@0.27.3': + optional: true + '@esbuild/linux-arm64@0.25.12': optional: true '@esbuild/linux-arm64@0.27.2': optional: true + '@esbuild/linux-arm64@0.27.3': + optional: true + '@esbuild/linux-arm@0.25.12': optional: true '@esbuild/linux-arm@0.27.2': optional: true + '@esbuild/linux-arm@0.27.3': + optional: true + '@esbuild/linux-ia32@0.25.12': optional: true '@esbuild/linux-ia32@0.27.2': optional: true - '@esbuild/linux-loong64@0.25.12': + '@esbuild/linux-ia32@0.27.3': + optional: true + + '@esbuild/linux-loong64@0.25.12': optional: true '@esbuild/linux-loong64@0.27.2': optional: true + '@esbuild/linux-loong64@0.27.3': + optional: true + '@esbuild/linux-mips64el@0.25.12': optional: true '@esbuild/linux-mips64el@0.27.2': optional: true + '@esbuild/linux-mips64el@0.27.3': + optional: true + '@esbuild/linux-ppc64@0.25.12': optional: true '@esbuild/linux-ppc64@0.27.2': optional: true + '@esbuild/linux-ppc64@0.27.3': + optional: true + '@esbuild/linux-riscv64@0.25.12': optional: true '@esbuild/linux-riscv64@0.27.2': optional: true + '@esbuild/linux-riscv64@0.27.3': + optional: true + '@esbuild/linux-s390x@0.25.12': optional: true '@esbuild/linux-s390x@0.27.2': optional: true + '@esbuild/linux-s390x@0.27.3': + optional: true + '@esbuild/linux-x64@0.25.12': optional: true '@esbuild/linux-x64@0.27.2': optional: true + '@esbuild/linux-x64@0.27.3': + optional: true + '@esbuild/netbsd-arm64@0.25.12': optional: true '@esbuild/netbsd-arm64@0.27.2': optional: true + '@esbuild/netbsd-arm64@0.27.3': + optional: true + '@esbuild/netbsd-x64@0.25.12': optional: true '@esbuild/netbsd-x64@0.27.2': optional: true + '@esbuild/netbsd-x64@0.27.3': + optional: true + '@esbuild/openbsd-arm64@0.25.12': optional: true '@esbuild/openbsd-arm64@0.27.2': optional: true + '@esbuild/openbsd-arm64@0.27.3': + optional: true + '@esbuild/openbsd-x64@0.25.12': optional: true '@esbuild/openbsd-x64@0.27.2': optional: true + '@esbuild/openbsd-x64@0.27.3': + optional: true + '@esbuild/openharmony-arm64@0.25.12': optional: true '@esbuild/openharmony-arm64@0.27.2': optional: true + '@esbuild/openharmony-arm64@0.27.3': + optional: true + '@esbuild/sunos-x64@0.25.12': optional: true '@esbuild/sunos-x64@0.27.2': optional: true + '@esbuild/sunos-x64@0.27.3': + optional: true + '@esbuild/win32-arm64@0.25.12': optional: true '@esbuild/win32-arm64@0.27.2': optional: true + '@esbuild/win32-arm64@0.27.3': + optional: true + '@esbuild/win32-ia32@0.25.12': optional: true '@esbuild/win32-ia32@0.27.2': optional: true + '@esbuild/win32-ia32@0.27.3': + optional: true + '@esbuild/win32-x64@0.25.12': optional: true '@esbuild/win32-x64@0.27.2': optional: true + '@esbuild/win32-x64@0.27.3': + optional: true + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.2(jiti@2.6.1))': dependencies: eslint: 9.39.2(jiti@2.6.1) @@ -12578,19 +12964,30 @@ snapshots: dependencies: '@floating-ui/utils': 0.2.10 + '@floating-ui/core@1.7.5': + dependencies: + '@floating-ui/utils': 0.2.11 + '@floating-ui/dom@1.7.5': dependencies: '@floating-ui/core': 1.7.4 '@floating-ui/utils': 0.2.10 - '@floating-ui/react-dom@2.1.7(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + '@floating-ui/dom@1.7.6': dependencies: - '@floating-ui/dom': 1.7.5 + '@floating-ui/core': 1.7.5 + '@floating-ui/utils': 0.2.11 + + '@floating-ui/react-dom@2.1.8(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + dependencies: + '@floating-ui/dom': 1.7.6 react: 19.2.3 react-dom: 19.2.4(react@19.2.3) '@floating-ui/utils@0.2.10': {} + '@floating-ui/utils@0.2.11': {} + '@hocuspocus/common@2.15.3': dependencies: lib0: 0.2.117 @@ -12809,128 +13206,128 @@ snapshots: '@inquirer/ansi@1.0.2': {} - '@inquirer/checkbox@4.3.2(@types/node@22.19.8)': + '@inquirer/checkbox@4.3.2(@types/node@25.3.5)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/type': 3.0.10(@types/node@25.3.5) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/confirm@5.1.21(@types/node@22.19.8)': + '@inquirer/confirm@5.1.21(@types/node@25.3.5)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.8) - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.3.5) optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/core@10.3.2(@types/node@22.19.8)': + '@inquirer/core@10.3.2(@types/node@25.3.5)': dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/type': 3.0.10(@types/node@25.3.5) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/editor@4.2.23(@types/node@22.19.8)': + '@inquirer/editor@4.2.23(@types/node@25.3.5)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.8) - '@inquirer/external-editor': 1.0.3(@types/node@22.19.8) - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) + '@inquirer/external-editor': 1.0.3(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.3.5) optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/expand@4.0.23(@types/node@22.19.8)': + '@inquirer/expand@4.0.23(@types/node@25.3.5)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.8) - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.3.5) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/external-editor@1.0.3(@types/node@22.19.8)': + '@inquirer/external-editor@1.0.3(@types/node@25.3.5)': dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@inquirer/figures@1.0.15': {} - '@inquirer/input@4.3.1(@types/node@22.19.8)': + '@inquirer/input@4.3.1(@types/node@25.3.5)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.8) - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.3.5) optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/number@3.0.23(@types/node@22.19.8)': + '@inquirer/number@3.0.23(@types/node@25.3.5)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.8) - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.3.5) optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/password@4.0.23(@types/node@22.19.8)': + '@inquirer/password@4.0.23(@types/node@25.3.5)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.8) - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.3.5) optionalDependencies: - '@types/node': 22.19.8 - - '@inquirer/prompts@7.9.0(@types/node@22.19.8)': - dependencies: - '@inquirer/checkbox': 4.3.2(@types/node@22.19.8) - '@inquirer/confirm': 5.1.21(@types/node@22.19.8) - '@inquirer/editor': 4.2.23(@types/node@22.19.8) - '@inquirer/expand': 4.0.23(@types/node@22.19.8) - '@inquirer/input': 4.3.1(@types/node@22.19.8) - '@inquirer/number': 3.0.23(@types/node@22.19.8) - '@inquirer/password': 4.0.23(@types/node@22.19.8) - '@inquirer/rawlist': 4.1.11(@types/node@22.19.8) - '@inquirer/search': 3.2.2(@types/node@22.19.8) - '@inquirer/select': 4.4.2(@types/node@22.19.8) + '@types/node': 25.3.5 + + '@inquirer/prompts@7.9.0(@types/node@25.3.5)': + dependencies: + '@inquirer/checkbox': 4.3.2(@types/node@25.3.5) + '@inquirer/confirm': 5.1.21(@types/node@25.3.5) + '@inquirer/editor': 4.2.23(@types/node@25.3.5) + '@inquirer/expand': 4.0.23(@types/node@25.3.5) + '@inquirer/input': 4.3.1(@types/node@25.3.5) + '@inquirer/number': 3.0.23(@types/node@25.3.5) + '@inquirer/password': 4.0.23(@types/node@25.3.5) + '@inquirer/rawlist': 4.1.11(@types/node@25.3.5) + '@inquirer/search': 3.2.2(@types/node@25.3.5) + '@inquirer/select': 4.4.2(@types/node@25.3.5) optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/rawlist@4.1.11(@types/node@22.19.8)': + '@inquirer/rawlist@4.1.11(@types/node@25.3.5)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.8) - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.3.5) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/search@3.2.2(@types/node@22.19.8)': + '@inquirer/search@3.2.2(@types/node@25.3.5)': dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/type': 3.0.10(@types/node@25.3.5) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/select@4.4.2(@types/node@22.19.8)': + '@inquirer/select@4.4.2(@types/node@25.3.5)': dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2(@types/node@22.19.8) + '@inquirer/core': 10.3.2(@types/node@25.3.5) '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10(@types/node@22.19.8) + '@inquirer/type': 3.0.10(@types/node@25.3.5) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 - '@inquirer/type@3.0.10(@types/node@22.19.8)': + '@inquirer/type@3.0.10(@types/node@25.3.5)': optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@isaacs/balanced-match@4.0.1': {} @@ -13016,10 +13413,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@mdx-js/react@3.1.1(@types/react@19.2.11)(react@19.2.3)': + '@mdx-js/react@3.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: '@types/mdx': 2.0.13 - '@types/react': 19.2.11 + '@types/react': 19.2.14 react: 19.2.3 '@microsoft/api-extractor-model@7.32.2(@types/node@22.19.2)': @@ -13030,11 +13427,11 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor-model@7.32.2(@types/node@22.19.8)': + '@microsoft/api-extractor-model@7.32.2(@types/node@25.3.5)': dependencies: '@microsoft/tsdoc': 0.16.0 '@microsoft/tsdoc-config': 0.18.0 - '@rushstack/node-core-library': 5.19.1(@types/node@22.19.8) + '@rushstack/node-core-library': 5.19.1(@types/node@25.3.5) transitivePeerDependencies: - '@types/node' @@ -13057,15 +13454,15 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.56.1(@types/node@22.19.8)': + '@microsoft/api-extractor@7.56.1(@types/node@25.3.5)': dependencies: - '@microsoft/api-extractor-model': 7.32.2(@types/node@22.19.8) + '@microsoft/api-extractor-model': 7.32.2(@types/node@25.3.5) '@microsoft/tsdoc': 0.16.0 '@microsoft/tsdoc-config': 0.18.0 - '@rushstack/node-core-library': 5.19.1(@types/node@22.19.8) + '@rushstack/node-core-library': 5.19.1(@types/node@25.3.5) '@rushstack/rig-package': 0.6.0 - '@rushstack/terminal': 0.21.0(@types/node@22.19.8) - '@rushstack/ts-command-line': 5.2.0(@types/node@22.19.8) + '@rushstack/terminal': 0.21.0(@types/node@25.3.5) + '@rushstack/ts-command-line': 5.2.0(@types/node@25.3.5) diff: 8.0.3 lodash: 4.17.23 minimatch: 10.0.3 @@ -13085,23 +13482,23 @@ snapshots: '@microsoft/tsdoc@0.16.0': {} - '@mintlify/cli@4.0.935(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@22.19.8)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3)': + '@mintlify/cli@4.0.935(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@25.3.5)(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3)': dependencies: - '@inquirer/prompts': 7.9.0(@types/node@22.19.8) - '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@mintlify/link-rot': 3.0.872(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@inquirer/prompts': 7.9.0(@types/node@25.3.5) + '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/link-rot': 3.0.872(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/models': 0.0.268 - '@mintlify/prebuild': 1.0.849(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@mintlify/previewing': 4.0.905(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3) - '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/prebuild': 1.0.849(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/previewing': 4.0.905(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3) + '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) adm-zip: 0.5.16 chalk: 5.2.0 color: 4.2.3 detect-port: 1.5.1 front-matter: 4.0.2 fs-extra: 11.2.0 - ink: 6.3.0(@types/react@19.2.11)(react@19.2.3) - inquirer: 12.3.0(@types/node@22.19.8) + ink: 6.3.0(@types/react@19.2.14)(react@19.2.3) + inquirer: 12.3.0(@types/node@25.3.5) js-yaml: 4.1.0 mdast-util-mdx-jsx: 3.2.0 react: 19.2.3 @@ -13125,13 +13522,13 @@ snapshots: - typescript - utf-8-validate - '@mintlify/common@1.0.661(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/common@1.0.661(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: '@asyncapi/parser': 3.4.0 - '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/models': 0.0.255 '@mintlify/openapi-parser': 0.0.8 - '@mintlify/validation': 0.1.555(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/validation': 0.1.555(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@sindresorhus/slugify': 2.2.0 '@types/mdast': 4.0.4 acorn: 8.11.2 @@ -13185,14 +13582,14 @@ snapshots: - ts-node - typescript - '@mintlify/common@1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/common@1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: '@asyncapi/parser': 3.4.0 '@asyncapi/specs': 6.8.1 - '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/models': 0.0.268 '@mintlify/openapi-parser': 0.0.8 - '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@sindresorhus/slugify': 2.2.0 '@types/mdast': 4.0.4 acorn: 8.11.2 @@ -13246,13 +13643,13 @@ snapshots: - ts-node - typescript - '@mintlify/link-rot@3.0.872(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/link-rot@3.0.872(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@mintlify/prebuild': 1.0.849(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@mintlify/previewing': 4.0.905(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3) - '@mintlify/scraping': 4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/prebuild': 1.0.849(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/previewing': 4.0.905(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3) + '@mintlify/scraping': 4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) fs-extra: 11.1.0 unist-util-visit: 4.1.2 transitivePeerDependencies: @@ -13272,9 +13669,9 @@ snapshots: - typescript - utf-8-validate - '@mintlify/mdx@3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/mdx@3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) '@shikijs/transformers': 3.22.0 '@shikijs/twoslash': 3.22.0(typescript@5.9.3) arktype: 2.1.29 @@ -13283,7 +13680,7 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-mdx-jsx: 3.2.0 mdast-util-to-hast: 13.2.1 - next-mdx-remote-client: 1.1.4(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(unified@11.0.5) + next-mdx-remote-client: 1.1.4(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(unified@11.0.5) react: 19.2.3 react-dom: 19.2.4(react@19.2.3) rehype-katex: 7.0.1 @@ -13321,12 +13718,12 @@ snapshots: leven: 4.1.0 yaml: 2.8.2 - '@mintlify/prebuild@1.0.849(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/prebuild@1.0.849(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/openapi-parser': 0.0.8 - '@mintlify/scraping': 4.0.574(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/scraping': 4.0.574(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) chalk: 5.3.0 favicons: 7.2.0 front-matter: 4.0.2 @@ -13353,11 +13750,11 @@ snapshots: - typescript - utf-8-validate - '@mintlify/previewing@4.0.905(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3)': + '@mintlify/previewing@4.0.905(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3)': dependencies: - '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@mintlify/prebuild': 1.0.849(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) - '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/prebuild': 1.0.849(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/validation': 0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) better-opn: 3.0.2 chalk: 5.2.0 chokidar: 3.5.3 @@ -13365,8 +13762,8 @@ snapshots: front-matter: 4.0.2 fs-extra: 11.1.0 got: 13.0.0 - ink: 6.3.0(@types/react@19.2.11)(react@19.2.3) - ink-spinner: 5.0.0(ink@6.3.0(@types/react@19.2.11)(react@19.2.3))(react@19.2.3) + ink: 6.3.0(@types/react@19.2.14)(react@19.2.3) + ink-spinner: 5.0.0(ink@6.3.0(@types/react@19.2.14)(react@19.2.3))(react@19.2.3) is-online: 10.0.0 js-yaml: 4.1.0 openapi-types: 12.1.3 @@ -13391,9 +13788,9 @@ snapshots: - typescript - utf-8-validate - '@mintlify/scraping@4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/scraping@4.0.522(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@mintlify/common': 1.0.661(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/common': 1.0.661(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/openapi-parser': 0.0.8 fs-extra: 11.1.1 hast-util-to-mdast: 10.1.0 @@ -13426,9 +13823,9 @@ snapshots: - typescript - utf-8-validate - '@mintlify/scraping@4.0.574(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/scraping@4.0.574(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/common': 1.0.713(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/openapi-parser': 0.0.8 fs-extra: 11.1.1 hast-util-to-mdast: 10.1.0 @@ -13461,9 +13858,9 @@ snapshots: - typescript - utf-8-validate - '@mintlify/validation@0.1.555(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/validation@0.1.555(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/models': 0.0.255 arktype: 2.1.27 js-yaml: 4.1.0 @@ -13483,9 +13880,9 @@ snapshots: - supports-color - typescript - '@mintlify/validation@0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': + '@mintlify/validation@0.1.585(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) + '@mintlify/mdx': 3.0.4(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@mintlify/models': 0.0.268 arktype: 2.1.27 js-yaml: 4.1.0 @@ -13707,7 +14104,7 @@ snapshots: extract-zip: 2.0.1 progress: 2.0.3 proxy-agent: 6.5.0 - semver: 7.7.3 + semver: 7.7.4 tar-fs: 3.1.1 unbzip2-stream: 1.4.3 yargs: 17.7.2 @@ -13719,188 +14116,188 @@ snapshots: '@radix-ui/primitive@1.1.3': {} - '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-arrow@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) react: 19.2.3 react-dom: 19.2.4(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-context@1.1.2(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-context@1.1.2(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-escape-keydown': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 react-dom: 19.2.4(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-focus-guards@1.1.3(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-focus-scope@1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 react-dom: 19.2.4(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-id@1.1.1(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-id@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: '@radix-ui/primitive': 1.1.3 - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-id': 1.1.1(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-dismissable-layer': 1.1.11(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-focus-guards': 1.1.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-focus-scope': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-id': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-popper': 1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-portal': 1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-presence': 1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.14)(react@19.2.3) aria-hidden: 1.2.6 react: 19.2.3 react-dom: 19.2.4(react@19.2.3) - react-remove-scroll: 2.7.2(@types/react@19.2.11)(react@19.2.3) + react-remove-scroll: 2.7.2(@types/react@19.2.14)(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) - - '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': - dependencies: - '@floating-ui/react-dom': 2.1.7(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-context': 1.1.2(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) + + '@radix-ui/react-popper@1.2.8(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + dependencies: + '@floating-ui/react-dom': 2.1.8(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-arrow': 1.1.7(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-context': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-rect': 1.1.1(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-size': 1.1.1(@types/react@19.2.14)(react@19.2.3) '@radix-ui/rect': 1.1.1 react: 19.2.3 react-dom: 19.2.4(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-portal@1.1.9(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 react-dom: 19.2.4(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-presence@1.1.5(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 react-dom: 19.2.4(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)': dependencies: - '@radix-ui/react-slot': 1.2.3(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-slot': 1.2.3(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 react-dom: 19.2.4(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) - '@radix-ui/react-slot@1.2.3(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-slot@1.2.3(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-use-callback-ref@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.11)(react@19.2.3) - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.14)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-use-escape-keydown@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-use-callback-ref': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-use-rect@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: '@radix-ui/rect': 1.1.1 react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - '@radix-ui/react-use-size@1.1.1(@types/react@19.2.11)(react@19.2.3)': + '@radix-ui/react-use-size@1.1.1(@types/react@19.2.14)(react@19.2.3)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.11)(react@19.2.3) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 '@radix-ui/rect@1.1.1': {} @@ -13951,97 +14348,172 @@ snapshots: '@rolldown/pluginutils@1.0.0-rc.2': {} - '@rollup/plugin-inject@5.0.5(rollup@4.57.1)': + '@rollup/plugin-inject@5.0.5(rollup@4.59.0)': dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) estree-walker: 2.0.2 magic-string: 0.30.21 optionalDependencies: - rollup: 4.57.1 + rollup: 4.59.0 - '@rollup/pluginutils@5.3.0(rollup@4.57.1)': + '@rollup/pluginutils@5.3.0(rollup@4.59.0)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.57.1 + rollup: 4.59.0 '@rollup/rollup-android-arm-eabi@4.57.1': optional: true + '@rollup/rollup-android-arm-eabi@4.59.0': + optional: true + '@rollup/rollup-android-arm64@4.57.1': optional: true + '@rollup/rollup-android-arm64@4.59.0': + optional: true + '@rollup/rollup-darwin-arm64@4.57.1': optional: true + '@rollup/rollup-darwin-arm64@4.59.0': + optional: true + '@rollup/rollup-darwin-x64@4.57.1': optional: true + '@rollup/rollup-darwin-x64@4.59.0': + optional: true + '@rollup/rollup-freebsd-arm64@4.57.1': optional: true + '@rollup/rollup-freebsd-arm64@4.59.0': + optional: true + '@rollup/rollup-freebsd-x64@4.57.1': optional: true + '@rollup/rollup-freebsd-x64@4.59.0': + optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.57.1': optional: true + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + optional: true + '@rollup/rollup-linux-arm-musleabihf@4.57.1': optional: true + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + optional: true + '@rollup/rollup-linux-arm64-gnu@4.57.1': optional: true + '@rollup/rollup-linux-arm64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-arm64-musl@4.57.1': optional: true + '@rollup/rollup-linux-arm64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-loong64-gnu@4.57.1': optional: true + '@rollup/rollup-linux-loong64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-loong64-musl@4.57.1': optional: true + '@rollup/rollup-linux-loong64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-ppc64-gnu@4.57.1': optional: true + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-ppc64-musl@4.57.1': optional: true + '@rollup/rollup-linux-ppc64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-riscv64-gnu@4.57.1': optional: true + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-riscv64-musl@4.57.1': optional: true + '@rollup/rollup-linux-riscv64-musl@4.59.0': + optional: true + '@rollup/rollup-linux-s390x-gnu@4.57.1': optional: true + '@rollup/rollup-linux-s390x-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-x64-gnu@4.57.1': optional: true + '@rollup/rollup-linux-x64-gnu@4.59.0': + optional: true + '@rollup/rollup-linux-x64-musl@4.57.1': optional: true + '@rollup/rollup-linux-x64-musl@4.59.0': + optional: true + '@rollup/rollup-openbsd-x64@4.57.1': optional: true + '@rollup/rollup-openbsd-x64@4.59.0': + optional: true + '@rollup/rollup-openharmony-arm64@4.57.1': optional: true + '@rollup/rollup-openharmony-arm64@4.59.0': + optional: true + '@rollup/rollup-win32-arm64-msvc@4.57.1': optional: true + '@rollup/rollup-win32-arm64-msvc@4.59.0': + optional: true + '@rollup/rollup-win32-ia32-msvc@4.57.1': optional: true + '@rollup/rollup-win32-ia32-msvc@4.59.0': + optional: true + '@rollup/rollup-win32-x64-gnu@4.57.1': optional: true + '@rollup/rollup-win32-x64-gnu@4.59.0': + optional: true + '@rollup/rollup-win32-x64-msvc@4.57.1': optional: true + '@rollup/rollup-win32-x64-msvc@4.59.0': + optional: true + '@rushstack/node-core-library@5.19.1(@types/node@22.19.2)': dependencies: ajv: 8.13.0 @@ -14055,7 +14527,7 @@ snapshots: optionalDependencies: '@types/node': 22.19.2 - '@rushstack/node-core-library@5.19.1(@types/node@22.19.8)': + '@rushstack/node-core-library@5.19.1(@types/node@25.3.5)': dependencies: ajv: 8.13.0 ajv-draft-04: 1.0.0(ajv@8.13.0) @@ -14066,15 +14538,15 @@ snapshots: resolve: 1.22.11 semver: 7.5.4 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@rushstack/problem-matcher@0.1.1(@types/node@22.19.2)': optionalDependencies: '@types/node': 22.19.2 - '@rushstack/problem-matcher@0.1.1(@types/node@22.19.8)': + '@rushstack/problem-matcher@0.1.1(@types/node@25.3.5)': optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@rushstack/rig-package@0.6.0': dependencies: @@ -14089,13 +14561,13 @@ snapshots: optionalDependencies: '@types/node': 22.19.2 - '@rushstack/terminal@0.21.0(@types/node@22.19.8)': + '@rushstack/terminal@0.21.0(@types/node@25.3.5)': dependencies: - '@rushstack/node-core-library': 5.19.1(@types/node@22.19.8) - '@rushstack/problem-matcher': 0.1.1(@types/node@22.19.8) + '@rushstack/node-core-library': 5.19.1(@types/node@25.3.5) + '@rushstack/problem-matcher': 0.1.1(@types/node@25.3.5) supports-color: 8.1.1 optionalDependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@rushstack/ts-command-line@5.2.0(@types/node@22.19.2)': dependencies: @@ -14106,9 +14578,9 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@5.2.0(@types/node@22.19.8)': + '@rushstack/ts-command-line@5.2.0(@types/node@25.3.5)': dependencies: - '@rushstack/terminal': 0.21.0(@types/node@22.19.8) + '@rushstack/terminal': 0.21.0(@types/node@25.3.5) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -14872,7 +15344,7 @@ snapshots: '@types/cors@2.8.19': dependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@types/debug@4.1.12': dependencies: @@ -14882,7 +15354,7 @@ snapshots: '@types/es-aggregate-error@1.0.6': dependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@types/estree-jsx@1.0.5': dependencies: @@ -14899,7 +15371,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 6.0.0 - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@types/hast@2.3.10': dependencies: @@ -14933,7 +15405,7 @@ snapshots: '@types/minimatch@6.0.0': dependencies: - minimatch: 10.1.2 + minimatch: 10.2.4 '@types/ms@2.1.0': {} @@ -14949,6 +15421,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@25.3.5': + dependencies: + undici-types: 7.18.2 + '@types/normalize-package-data@2.4.4': {} '@types/parse5@6.0.3': {} @@ -14957,13 +15433,22 @@ snapshots: dependencies: '@types/react': 19.2.11 + '@types/react-dom@19.2.3(@types/react@19.2.14)': + dependencies: + '@types/react': 19.2.14 + optional: true + '@types/react@19.2.11': dependencies: csstype: 3.2.3 + '@types/react@19.2.14': + dependencies: + csstype: 3.2.3 + '@types/responselike@1.0.0': dependencies: - '@types/node': 22.19.8 + '@types/node': 22.19.2 '@types/supports-color@8.1.3': {} @@ -14983,7 +15468,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 optional: true '@typescript-eslint/eslint-plugin@8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': @@ -15053,8 +15538,8 @@ snapshots: '@typescript-eslint/types': 8.54.0 '@typescript-eslint/visitor-keys': 8.54.0 debug: 4.4.3(supports-color@5.5.0) - minimatch: 9.0.5 - semver: 7.7.3 + minimatch: 9.0.9 + semver: 7.7.4 tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 @@ -15310,7 +15795,7 @@ snapshots: lodash: 4.17.21 minimatch: 7.4.6 - '@vitejs/plugin-react@5.1.3(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@5.1.3(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -15318,11 +15803,11 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.2 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@5.1.3(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitejs/plugin-react@5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.29.0) @@ -15330,14 +15815,14 @@ snapshots: '@rolldown/pluginutils': 1.0.0-rc.2 '@types/babel__core': 7.20.5 react-refresh: 0.18.0 - vite: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.2(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))': + '@vitejs/plugin-vue@6.0.2(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.50 - vite: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.25(typescript@5.9.3) '@vitejs/plugin-vue@6.0.2(vite@7.3.1(@types/node@22.19.2)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2))(vue@3.5.25(typescript@5.9.3))': @@ -15346,7 +15831,7 @@ snapshots: vite: 7.3.1(@types/node@22.19.2)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2) vue: 3.5.25(typescript@5.9.3) - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -15361,7 +15846,7 @@ snapshots: std-env: 3.10.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - supports-color @@ -15381,13 +15866,21 @@ snapshots: optionalDependencies: vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@3.2.4(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': + '@vitest/mocker@3.2.4(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': + dependencies: + '@vitest/spy': 3.2.4 + estree-walker: 3.0.3 + magic-string: 0.30.21 + optionalDependencies: + vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + + '@vitest/mocker@3.2.4(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@3.2.4': dependencies: @@ -15541,7 +16034,7 @@ snapshots: '@vue/compiler-vue2': 2.7.16 '@vue/shared': 3.5.25 alien-signals: 0.4.14 - minimatch: 9.0.5 + minimatch: 9.0.9 muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: @@ -15923,6 +16416,8 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + bare-events@2.8.2: {} bare-fs@4.5.3: @@ -16070,6 +16565,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.4: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -16546,7 +17045,7 @@ snapshots: conventional-commits-filter: 5.0.0 handlebars: 4.7.8 meow: 13.2.0 - semver: 7.7.3 + semver: 7.7.4 conventional-commits-filter@5.0.0: {} @@ -16999,7 +17498,7 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.1 - semver: 7.7.3 + semver: 7.7.4 ee-first@1.1.1: {} @@ -17042,7 +17541,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.19 - '@types/node': 22.19.8 + '@types/node': 25.3.5 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.4.2 @@ -17266,6 +17765,35 @@ snapshots: '@esbuild/win32-ia32': 0.27.2 '@esbuild/win32-x64': 0.27.2 + esbuild@0.27.3: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -18659,13 +19187,13 @@ snapshots: ini@4.1.1: {} - ink-spinner@5.0.0(ink@6.3.0(@types/react@19.2.11)(react@19.2.3))(react@19.2.3): + ink-spinner@5.0.0(ink@6.3.0(@types/react@19.2.14)(react@19.2.3))(react@19.2.3): dependencies: cli-spinners: 2.9.2 - ink: 6.3.0(@types/react@19.2.11)(react@19.2.3) + ink: 6.3.0(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 - ink@6.3.0(@types/react@19.2.11)(react@19.2.3): + ink@6.3.0(@types/react@19.2.14)(react@19.2.3): dependencies: '@alcalzone/ansi-tokenize': 0.2.4 ansi-escapes: 7.3.0 @@ -18692,19 +19220,19 @@ snapshots: ws: 8.19.0 yoga-layout: 3.2.1 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 transitivePeerDependencies: - bufferutil - utf-8-validate inline-style-parser@0.2.7: {} - inquirer@12.3.0(@types/node@22.19.8): + inquirer@12.3.0(@types/node@25.3.5): dependencies: - '@inquirer/core': 10.3.2(@types/node@22.19.8) - '@inquirer/prompts': 7.9.0(@types/node@22.19.8) - '@inquirer/type': 3.0.10(@types/node@22.19.8) - '@types/node': 22.19.8 + '@inquirer/core': 10.3.2(@types/node@25.3.5) + '@inquirer/prompts': 7.9.0(@types/node@25.3.5) + '@inquirer/type': 3.0.10(@types/node@25.3.5) + '@types/node': 25.3.5 ansi-escapes: 4.3.2 mute-stream: 2.0.0 run-async: 3.0.0 @@ -19467,7 +19995,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 map-cache@0.2.2: {} @@ -20395,6 +20923,10 @@ snapshots: dependencies: '@isaacs/brace-expansion': 5.0.1 + minimatch@10.2.4: + dependencies: + brace-expansion: 5.0.4 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -20415,6 +20947,10 @@ snapshots: dependencies: brace-expansion: 2.0.2 + minimatch@9.0.9: + dependencies: + brace-expansion: 2.0.2 + minimist@1.2.8: {} minipass@3.3.6: @@ -20430,9 +20966,9 @@ snapshots: minipass: 3.3.6 yallist: 4.0.0 - mintlify@4.2.331(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@22.19.8)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3): + mintlify@4.2.331(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@25.3.5)(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3): dependencies: - '@mintlify/cli': 4.0.935(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@22.19.8)(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3) + '@mintlify/cli': 4.0.935(@radix-ui/react-popover@1.1.15(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3))(@types/node@25.3.5)(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(typescript@5.9.3) transitivePeerDependencies: - '@radix-ui/react-popover' - '@types/node' @@ -20528,11 +21064,11 @@ snapshots: netmask@2.0.2: {} - next-mdx-remote-client@1.1.4(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(unified@11.0.5): + next-mdx-remote-client@1.1.4(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.3))(react@19.2.3)(unified@11.0.5): dependencies: '@babel/code-frame': 7.29.0 '@mdx-js/mdx': 3.1.1 - '@mdx-js/react': 3.1.1(@types/react@19.2.11)(react@19.2.3) + '@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.3) react: 19.2.3 react-dom: 19.2.4(react@19.2.3) remark-mdx-remove-esm: 1.2.2(unified@11.0.5) @@ -20560,7 +21096,7 @@ snapshots: node-abi@3.87.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 node-addon-api@4.3.0: optional: true @@ -20653,13 +21189,13 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.16.1 - semver: 7.7.3 + semver: 7.7.4 validate-npm-package-license: 3.0.4 normalize-package-data@6.0.2: dependencies: hosted-git-info: 7.0.2 - semver: 7.7.3 + semver: 7.7.4 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -21158,18 +21694,18 @@ snapshots: optionalDependencies: postcss: 8.5.6 - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.2): dependencies: lilconfig: 3.1.3 optionalDependencies: jiti: 2.6.1 - postcss: 8.5.6 + postcss: 8.5.8 tsx: 4.21.0 yaml: 2.8.2 - postcss-nested-import@1.3.0(postcss@8.5.6): + postcss-nested-import@1.3.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 resolve: 1.22.11 postcss-nested@6.2.0(postcss@8.5.6): @@ -21177,9 +21713,14 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 6.1.2 - postcss-prefixwrap@1.57.2(postcss@8.5.6): + postcss-nested@6.2.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 + postcss-selector-parser: 6.1.2 + + postcss-prefixwrap@1.57.2(postcss@8.5.8): + dependencies: + postcss: 8.5.8 postcss-selector-parser@6.1.2: dependencies: @@ -21194,6 +21735,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.8: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + prebuild-install@7.1.3: dependencies: detect-libc: 2.1.2 @@ -21255,20 +21802,20 @@ snapshots: dependencies: prosemirror-state: 1.4.4 prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 prosemirror-gapcursor@1.4.0: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 prosemirror-history@1.5.0: dependencies: prosemirror-state: 1.4.4 prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 rope-sequence: 1.3.4 prosemirror-inputrules@1.5.1: @@ -21299,7 +21846,7 @@ snapshots: dependencies: prosemirror-model: 1.25.4 prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 prosemirror-tables@1.8.5: dependencies: @@ -21307,7 +21854,7 @@ snapshots: prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 prosemirror-test-builder@1.1.1: dependencies: @@ -21325,6 +21872,12 @@ snapshots: prosemirror-state: 1.4.4 prosemirror-transform: 1.11.0 + prosemirror-view@1.41.6: + dependencies: + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-transform: 1.11.0 + proto-list@1.2.4: {} protocols@2.0.2: {} @@ -21500,32 +22053,32 @@ snapshots: react-refresh@0.18.0: {} - react-remove-scroll-bar@2.3.8(@types/react@19.2.11)(react@19.2.3): + react-remove-scroll-bar@2.3.8(@types/react@19.2.14)(react@19.2.3): dependencies: react: 19.2.3 - react-style-singleton: 2.2.3(@types/react@19.2.11)(react@19.2.3) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.3) tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - react-remove-scroll@2.7.2(@types/react@19.2.11)(react@19.2.3): + react-remove-scroll@2.7.2(@types/react@19.2.14)(react@19.2.3): dependencies: react: 19.2.3 - react-remove-scroll-bar: 2.3.8(@types/react@19.2.11)(react@19.2.3) - react-style-singleton: 2.2.3(@types/react@19.2.11)(react@19.2.3) + react-remove-scroll-bar: 2.3.8(@types/react@19.2.14)(react@19.2.3) + react-style-singleton: 2.2.3(@types/react@19.2.14)(react@19.2.3) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@19.2.11)(react@19.2.3) - use-sidecar: 1.1.3(@types/react@19.2.11)(react@19.2.3) + use-callback-ref: 1.3.3(@types/react@19.2.14)(react@19.2.3) + use-sidecar: 1.1.3(@types/react@19.2.14)(react@19.2.3) optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - react-style-singleton@2.2.3(@types/react@19.2.11)(react@19.2.3): + react-style-singleton@2.2.3(@types/react@19.2.14)(react@19.2.3): dependencies: get-nonce: 1.0.1 react: 19.2.3 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 react@19.2.3: {} @@ -21980,7 +22533,7 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 - rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): + rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@oxc-project/runtime': 0.101.0 fdir: 6.5.0(picomatch@4.0.3) @@ -21990,8 +22543,25 @@ snapshots: rolldown: 1.0.0-beta.53 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.19.8 - esbuild: 0.27.2 + '@types/node': 22.19.2 + esbuild: 0.27.3 + fsevents: 2.3.3 + jiti: 2.6.1 + tsx: 4.21.0 + yaml: 2.8.2 + + rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + '@oxc-project/runtime': 0.101.0 + fdir: 6.5.0(picomatch@4.0.3) + lightningcss: 1.31.1 + picomatch: 4.0.3 + postcss: 8.5.6 + rolldown: 1.0.0-beta.53 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 25.3.5 + esbuild: 0.27.3 fsevents: 2.3.3 jiti: 2.6.1 tsx: 4.21.0 @@ -22024,14 +22594,14 @@ snapshots: globby: 10.0.1 is-plain-object: 3.0.1 - rollup-plugin-visualizer@5.14.0(rollup@4.57.1): + rollup-plugin-visualizer@5.14.0(rollup@4.59.0): dependencies: open: 8.4.2 picomatch: 4.0.3 source-map: 0.7.6 yargs: 17.7.2 optionalDependencies: - rollup: 4.57.1 + rollup: 4.59.0 rollup@4.57.1: dependencies: @@ -22064,6 +22634,37 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.57.1 fsevents: 2.3.3 + rollup@4.59.0: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.59.0 + '@rollup/rollup-android-arm64': 4.59.0 + '@rollup/rollup-darwin-arm64': 4.59.0 + '@rollup/rollup-darwin-x64': 4.59.0 + '@rollup/rollup-freebsd-arm64': 4.59.0 + '@rollup/rollup-freebsd-x64': 4.59.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 + '@rollup/rollup-linux-arm-musleabihf': 4.59.0 + '@rollup/rollup-linux-arm64-gnu': 4.59.0 + '@rollup/rollup-linux-arm64-musl': 4.59.0 + '@rollup/rollup-linux-loong64-gnu': 4.59.0 + '@rollup/rollup-linux-loong64-musl': 4.59.0 + '@rollup/rollup-linux-ppc64-gnu': 4.59.0 + '@rollup/rollup-linux-ppc64-musl': 4.59.0 + '@rollup/rollup-linux-riscv64-gnu': 4.59.0 + '@rollup/rollup-linux-riscv64-musl': 4.59.0 + '@rollup/rollup-linux-s390x-gnu': 4.59.0 + '@rollup/rollup-linux-x64-gnu': 4.59.0 + '@rollup/rollup-linux-x64-musl': 4.59.0 + '@rollup/rollup-openbsd-x64': 4.59.0 + '@rollup/rollup-openharmony-arm64': 4.59.0 + '@rollup/rollup-win32-arm64-msvc': 4.59.0 + '@rollup/rollup-win32-ia32-msvc': 4.59.0 + '@rollup/rollup-win32-x64-gnu': 4.59.0 + '@rollup/rollup-win32-x64-msvc': 4.59.0 + fsevents: 2.3.3 + rope-sequence@1.3.4: {} router@2.2.0: @@ -22211,6 +22812,8 @@ snapshots: semver@7.7.3: {} + semver@7.7.4: {} + send@0.18.0: dependencies: debug: 2.6.9 @@ -22362,7 +22965,7 @@ snapshots: dependencies: color: 4.2.3 detect-libc: 2.1.2 - semver: 7.7.3 + semver: 7.7.4 optionalDependencies: '@img/sharp-darwin-arm64': 0.33.5 '@img/sharp-darwin-x64': 0.33.5 @@ -22388,7 +22991,7 @@ snapshots: dependencies: '@img/colour': 1.0.0 detect-libc: 2.1.2 - semver: 7.7.3 + semver: 7.7.4 optionalDependencies: '@img/sharp-darwin-arm64': 0.34.5 '@img/sharp-darwin-x64': 0.34.5 @@ -22494,7 +23097,7 @@ snapshots: simple-update-notifier@2.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 sirv@3.0.2: dependencies: @@ -22806,7 +23409,7 @@ snapshots: make-asynchronous: 1.0.1 time-span: 5.1.0 - superdoc@1.11.0(@hocuspocus/provider@2.15.3(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19))(canvas@3.2.1)(pdfjs-dist@5.4.624)(typescript@5.9.3)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19))(yjs@13.6.19): + superdoc@1.11.0(@hocuspocus/provider@2.15.3(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19))(canvas@3.2.1)(pdfjs-dist@5.4.624)(typescript@5.9.3)(y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19))(yjs@13.6.19): dependencies: '@hocuspocus/provider': 2.15.3(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) buffer-crc32: 1.0.0 @@ -22818,7 +23421,7 @@ snapshots: rollup-plugin-copy: 3.5.0 uuid: 9.0.1 vue: 3.5.25(typescript@5.9.3) - y-prosemirror: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) + y-prosemirror: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) y-websocket: 3.0.0(yjs@13.6.19) yjs: 13.6.19 transitivePeerDependencies: @@ -23073,7 +23676,7 @@ snapshots: tslib@2.8.1: {} - tsup@8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): + tsup@8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: bundle-require: 5.1.0(esbuild@0.27.2) cac: 6.7.14 @@ -23084,7 +23687,7 @@ snapshots: fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.2) resolve-from: 5.0.0 rollup: 4.57.1 source-map: 0.7.6 @@ -23094,7 +23697,7 @@ snapshots: tree-kill: 1.2.2 optionalDependencies: '@microsoft/api-extractor': 7.56.1(@types/node@22.19.2) - postcss: 8.5.6 + postcss: 8.5.8 typescript: 5.9.3 transitivePeerDependencies: - jiti @@ -23239,6 +23842,8 @@ snapshots: undici-types@6.21.0: {} + undici-types@7.18.2: {} + undici@7.20.0: {} unicode-emoji-modifier-base@1.0.0: {} @@ -23437,20 +24042,20 @@ snapshots: urlpattern-polyfill@10.0.0: {} - use-callback-ref@1.3.3(@types/react@19.2.11)(react@19.2.3): + use-callback-ref@1.3.3(@types/react@19.2.14)(react@19.2.3): dependencies: react: 19.2.3 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 - use-sidecar@1.1.3(@types/react@19.2.11)(react@19.2.3): + use-sidecar@1.1.3(@types/react@19.2.14)(react@19.2.3): dependencies: detect-node-es: 1.1.0 react: 19.2.3 tslib: 2.8.1 optionalDependencies: - '@types/react': 19.2.11 + '@types/react': 19.2.14 utif2@4.1.0: dependencies: @@ -23644,13 +24249,13 @@ snapshots: - tsx - yaml - vite-node@3.2.4(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): + vite-node@3.2.4(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 debug: 4.4.3(supports-color@5.5.0) es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - esbuild @@ -23665,10 +24270,31 @@ snapshots: - tsx - yaml - vite-plugin-dts@4.5.4(@types/node@22.19.2)(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1)(typescript@5.9.3): + vite-node@3.2.4(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + cac: 6.7.14 + debug: 4.4.3(supports-color@5.5.0) + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + transitivePeerDependencies: + - '@types/node' + - esbuild + - jiti + - less + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-plugin-dts@4.5.4(@types/node@22.19.2)(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0)(typescript@5.9.3): dependencies: '@microsoft/api-extractor': 7.56.1(@types/node@22.19.2) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) '@volar/typescript': 2.4.28 '@vue/language-core': 2.2.0(typescript@5.9.3) compare-versions: 6.1.1 @@ -23678,16 +24304,16 @@ snapshots: magic-string: 0.30.21 typescript: 5.9.3 optionalDependencies: - vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-dts@4.5.4(@types/node@22.19.8)(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1)(typescript@5.9.3): + vite-plugin-dts@4.5.4(@types/node@25.3.5)(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0)(typescript@5.9.3): dependencies: - '@microsoft/api-extractor': 7.56.1(@types/node@22.19.8) - '@rollup/pluginutils': 5.3.0(rollup@4.57.1) + '@microsoft/api-extractor': 7.56.1(@types/node@25.3.5) + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) '@volar/typescript': 2.4.28 '@vue/language-core': 2.2.0(typescript@5.9.3) compare-versions: 6.1.1 @@ -23697,23 +24323,23 @@ snapshots: magic-string: 0.30.21 typescript: 5.9.3 optionalDependencies: - vite: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-node-polyfills@0.25.0(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.57.1): + vite-plugin-node-polyfills@0.25.0(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))(rollup@4.59.0): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.57.1) + '@rollup/plugin-inject': 5.0.5(rollup@4.59.0) node-stdlib-browser: 1.3.1 - vite: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - rollup - vite-plugin-node-polyfills@0.25.0(rollup@4.57.1)(vite@7.3.1(@types/node@22.19.2)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)): + vite-plugin-node-polyfills@0.25.0(rollup@4.59.0)(vite@7.3.1(@types/node@22.19.2)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2)): dependencies: - '@rollup/plugin-inject': 5.0.5(rollup@4.57.1) + '@rollup/plugin-inject': 5.0.5(rollup@4.59.0) node-stdlib-browser: 1.3.1 vite: 7.3.1(@types/node@22.19.2)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: @@ -23721,11 +24347,11 @@ snapshots: vite@7.3.1(@types/node@22.19.2)(jiti@2.6.1)(lightningcss@1.31.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: - esbuild: 0.27.2 + esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.57.1 + postcss: 8.5.8 + rollup: 4.59.0 tinyglobby: 0.2.15 optionalDependencies: '@types/node': 22.19.2 @@ -23779,11 +24405,11 @@ snapshots: - tsx - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.8)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/mocker': 3.2.4(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -23801,12 +24427,56 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: rolldown-vite@7.3.1(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@22.19.8)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 22.19.8 + '@types/node': 22.19.2 + happy-dom: 20.4.0 + jsdom: 27.3.0(canvas@3.2.1) + transitivePeerDependencies: + - esbuild + - jiti + - less + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vitest@3.2.4(@types/debug@4.1.12)(@types/node@25.3.5)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3(supports-color@5.5.0) + expect-type: 1.3.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 25.3.5 happy-dom: 20.4.0 jsdom: 27.3.0(canvas@3.2.1) transitivePeerDependencies: @@ -24030,6 +24700,15 @@ snapshots: y-protocols: 1.0.7(yjs@13.6.19) yjs: 13.6.19 + y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19): + dependencies: + lib0: 0.2.117 + prosemirror-model: 1.25.4 + prosemirror-state: 1.4.4 + prosemirror-view: 1.41.6 + y-protocols: 1.0.7(yjs@13.6.19) + yjs: 13.6.19 + y-protocols@1.0.7(yjs@13.6.19): dependencies: lib0: 0.2.117 From 60520483e7c5d394cba9496c760f4d40003f7d81 Mon Sep 17 00:00:00 2001 From: Nick Bernal Date: Mon, 16 Mar 2026 09:54:41 -0700 Subject: [PATCH 11/11] chore: fix pnpm dedupe --- pnpm-lock.yaml | 823 ++++--------------------------------------------- 1 file changed, 67 insertions(+), 756 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f0c94d33ea..c6e58b6c21 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,7 +17,7 @@ catalogs: version: 9.39.2 '@floating-ui/dom': specifier: ^1.7.0 - version: 1.7.5 + version: 1.7.6 '@hocuspocus/provider': specifier: ^2.13.6 version: 2.15.3 @@ -56,7 +56,7 @@ catalogs: version: 22.19.2 '@types/react': specifier: ^19.2.6 - version: 19.2.11 + version: 19.2.14 '@types/react-dom': specifier: ^19.2.3 version: 19.2.3 @@ -194,7 +194,7 @@ catalogs: version: 1.11.0 prosemirror-view: specifier: ^1.33.8 - version: 1.41.5 + version: 1.41.6 react: specifier: 19.2.4 version: 19.2.4 @@ -218,7 +218,7 @@ catalogs: version: 11.0.0 rollup: specifier: ^4.31.0 - version: 4.57.1 + version: 4.59.0 rollup-plugin-copy: specifier: ^3.5.0 version: 3.5.0 @@ -587,7 +587,7 @@ importers: version: 1.4.4 prosemirror-view: specifier: 'catalog:' - version: 1.41.5 + version: 1.41.6 superdoc: specifier: 'workspace:' version: link:../superdoc @@ -599,7 +599,7 @@ importers: version: 5.9.3 vitest: specifier: 'catalog:' - version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) + version: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2) vue: specifier: 3.5.25 version: 3.5.25(typescript@5.9.3) @@ -659,16 +659,16 @@ importers: version: 6.9.1 '@testing-library/react': specifier: 'catalog:' - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@testing-library/user-event': specifier: 'catalog:' version: 14.6.1(@testing-library/dom@10.4.1) '@types/react': specifier: 'catalog:' - version: 19.2.11 + version: 19.2.14 '@types/react-dom': specifier: 'catalog:' - version: 19.2.3(@types/react@19.2.11) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: 'catalog:' version: 5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) @@ -726,10 +726,10 @@ importers: devDependencies: '@types/react': specifier: 'catalog:' - version: 19.2.11 + version: 19.2.14 '@types/react-dom': specifier: 'catalog:' - version: 19.2.3(@types/react@19.2.11) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: 'catalog:' version: 5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) @@ -957,16 +957,16 @@ importers: devDependencies: '@testing-library/react': specifier: 'catalog:' - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@types/node': specifier: 'catalog:' version: 22.19.2 '@types/react': specifier: 'catalog:' - version: 19.2.11 + version: 19.2.14 '@types/react-dom': specifier: 'catalog:' - version: 19.2.3(@types/react@19.2.11) + version: 19.2.3(@types/react@19.2.14) '@typescript-eslint/eslint-plugin': specifier: 'catalog:' version: 8.54.0(@typescript-eslint/parser@8.54.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) @@ -1015,7 +1015,7 @@ importers: version: 22.19.2 rollup: specifier: 'catalog:' - version: 4.57.1 + version: 4.59.0 typescript: specifier: 'catalog:' version: 5.9.3 @@ -1104,7 +1104,7 @@ importers: version: 1.11.0 prosemirror-view: specifier: 'catalog:' - version: 1.41.5 + version: 1.41.6 rehype-parse: specifier: 'catalog:' version: 9.0.1 @@ -1137,14 +1137,14 @@ importers: version: 1.6.11 y-prosemirror: specifier: 'catalog:' - version: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) + version: 1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19) yjs: specifier: 'catalog:' version: 13.6.19 devDependencies: '@floating-ui/dom': specifier: 'catalog:' - version: 1.7.5 + version: 1.7.6 '@superdoc/common': specifier: workspace:* version: link:../../shared/common @@ -1346,16 +1346,16 @@ importers: version: 6.9.1 '@testing-library/react': specifier: 'catalog:' - version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) '@testing-library/user-event': specifier: 'catalog:' version: 14.6.1(@testing-library/dom@10.4.1) '@types/react': specifier: 'catalog:' - version: 19.2.11 + version: 19.2.14 '@types/react-dom': specifier: 'catalog:' - version: 19.2.3(@types/react@19.2.11) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: 'catalog:' version: 5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) @@ -1407,10 +1407,10 @@ importers: devDependencies: '@types/react': specifier: 'catalog:' - version: 19.2.11 + version: 19.2.14 '@types/react-dom': specifier: 'catalog:' - version: 19.2.3(@types/react@19.2.11) + version: 19.2.3(@types/react@19.2.14) '@vitejs/plugin-react': specifier: 'catalog:' version: 5.1.3(rolldown-vite@7.3.1(@types/node@25.3.5)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) @@ -1488,7 +1488,7 @@ importers: version: 3.988.0 '@clack/prompts': specifier: ^1.0.0 - version: 1.0.0 + version: 1.1.0 '@playwright/test': specifier: 'catalog:' version: 1.58.1 @@ -1853,15 +1853,9 @@ packages: '@canvas/image-data@1.1.0': resolution: {integrity: sha512-QdObRRjRbcXGmM1tmJ+MrHcaz1MftF2+W7YI+MsphnsCrmtyfS0d5qJbk0MeSbUeyM/jCb0hmnkXPsy026L7dA==} - '@clack/core@1.0.0': - resolution: {integrity: sha512-Orf9Ltr5NeiEuVJS8Rk2XTw3IxNC2Bic3ash7GgYeA8LJ/zmSNpSQ/m5UAhe03lA6KFgklzZ5KTHs4OAMA/SAQ==} - '@clack/core@1.1.0': resolution: {integrity: sha512-SVcm4Dqm2ukn64/8Gub2wnlA5nS2iWJyCkdNHcvNHPIeBTGojpdJ+9cZKwLfmqy7irD4N5qLteSilJlE0WLAtA==} - '@clack/prompts@1.0.0': - resolution: {integrity: sha512-rWPXg9UaCFqErJVQ+MecOaWsozjaxol4yjnmYcGNipAWzdaWa2x+VJmKfGq7L0APwBohQOYdHC+9RO4qRXej+A==} - '@clack/prompts@1.1.0': resolution: {integrity: sha512-pkqbPGtohJAvm4Dphs2M8xE29ggupihHdy1x84HNojZuMtFsHiUlRvqD24tM2+XmI+61LlfNceM3Wr7U5QES5g==} @@ -2005,12 +1999,6 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.27.2': - resolution: {integrity: sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [aix] - '@esbuild/aix-ppc64@0.27.3': resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} engines: {node: '>=18'} @@ -2023,12 +2011,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.27.2': - resolution: {integrity: sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.27.3': resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} engines: {node: '>=18'} @@ -2041,12 +2023,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.27.2': - resolution: {integrity: sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==} - engines: {node: '>=18'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.27.3': resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} engines: {node: '>=18'} @@ -2059,12 +2035,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.27.2': - resolution: {integrity: sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==} - engines: {node: '>=18'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.27.3': resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} engines: {node: '>=18'} @@ -2077,12 +2047,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.27.2': - resolution: {integrity: sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.27.3': resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} engines: {node: '>=18'} @@ -2095,12 +2059,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.27.2': - resolution: {integrity: sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==} - engines: {node: '>=18'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.27.3': resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} engines: {node: '>=18'} @@ -2113,12 +2071,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.27.2': - resolution: {integrity: sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==} - engines: {node: '>=18'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.27.3': resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} engines: {node: '>=18'} @@ -2131,12 +2083,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.27.2': - resolution: {integrity: sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==} - engines: {node: '>=18'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.27.3': resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} engines: {node: '>=18'} @@ -2149,12 +2095,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.27.2': - resolution: {integrity: sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.27.3': resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} engines: {node: '>=18'} @@ -2167,12 +2107,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.27.2': - resolution: {integrity: sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==} - engines: {node: '>=18'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.27.3': resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} engines: {node: '>=18'} @@ -2185,12 +2119,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.27.2': - resolution: {integrity: sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==} - engines: {node: '>=18'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.27.3': resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} engines: {node: '>=18'} @@ -2203,12 +2131,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.27.2': - resolution: {integrity: sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==} - engines: {node: '>=18'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.27.3': resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} engines: {node: '>=18'} @@ -2221,12 +2143,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.27.2': - resolution: {integrity: sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==} - engines: {node: '>=18'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.27.3': resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} engines: {node: '>=18'} @@ -2239,12 +2155,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.27.2': - resolution: {integrity: sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==} - engines: {node: '>=18'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.27.3': resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} engines: {node: '>=18'} @@ -2257,12 +2167,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.27.2': - resolution: {integrity: sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==} - engines: {node: '>=18'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.27.3': resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} engines: {node: '>=18'} @@ -2275,12 +2179,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.27.2': - resolution: {integrity: sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==} - engines: {node: '>=18'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.27.3': resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} engines: {node: '>=18'} @@ -2293,12 +2191,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.27.2': - resolution: {integrity: sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==} - engines: {node: '>=18'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.27.3': resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} engines: {node: '>=18'} @@ -2311,12 +2203,6 @@ packages: cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-arm64@0.27.2': - resolution: {integrity: sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==} - engines: {node: '>=18'} - cpu: [arm64] - os: [netbsd] - '@esbuild/netbsd-arm64@0.27.3': resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} engines: {node: '>=18'} @@ -2329,12 +2215,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.27.2': - resolution: {integrity: sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==} - engines: {node: '>=18'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.27.3': resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} engines: {node: '>=18'} @@ -2347,12 +2227,6 @@ packages: cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-arm64@0.27.2': - resolution: {integrity: sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openbsd] - '@esbuild/openbsd-arm64@0.27.3': resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} engines: {node: '>=18'} @@ -2365,12 +2239,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.27.2': - resolution: {integrity: sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==} - engines: {node: '>=18'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.27.3': resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} engines: {node: '>=18'} @@ -2383,12 +2251,6 @@ packages: cpu: [arm64] os: [openharmony] - '@esbuild/openharmony-arm64@0.27.2': - resolution: {integrity: sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==} - engines: {node: '>=18'} - cpu: [arm64] - os: [openharmony] - '@esbuild/openharmony-arm64@0.27.3': resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} engines: {node: '>=18'} @@ -2401,12 +2263,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.27.2': - resolution: {integrity: sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==} - engines: {node: '>=18'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.27.3': resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} engines: {node: '>=18'} @@ -2419,12 +2275,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.27.2': - resolution: {integrity: sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==} - engines: {node: '>=18'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.27.3': resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} engines: {node: '>=18'} @@ -2437,12 +2287,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.27.2': - resolution: {integrity: sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==} - engines: {node: '>=18'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.27.3': resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} engines: {node: '>=18'} @@ -2455,12 +2299,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.27.2': - resolution: {integrity: sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==} - engines: {node: '>=18'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.27.3': resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} engines: {node: '>=18'} @@ -2505,15 +2343,9 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/core@1.7.4': - resolution: {integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==} - '@floating-ui/core@1.7.5': resolution: {integrity: sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==} - '@floating-ui/dom@1.7.5': - resolution: {integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==} - '@floating-ui/dom@1.7.6': resolution: {integrity: sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==} @@ -2523,9 +2355,6 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.10': - resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@floating-ui/utils@0.2.11': resolution: {integrity: sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==} @@ -3602,251 +3431,126 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.57.1': - resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==} - cpu: [arm] - os: [android] - '@rollup/rollup-android-arm-eabi@4.59.0': resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.57.1': - resolution: {integrity: sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==} - cpu: [arm64] - os: [android] - '@rollup/rollup-android-arm64@4.59.0': resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.57.1': - resolution: {integrity: sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==} - cpu: [arm64] - os: [darwin] - '@rollup/rollup-darwin-arm64@4.59.0': resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.57.1': - resolution: {integrity: sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==} - cpu: [x64] - os: [darwin] - '@rollup/rollup-darwin-x64@4.59.0': resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.57.1': - resolution: {integrity: sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==} - cpu: [arm64] - os: [freebsd] - '@rollup/rollup-freebsd-arm64@4.59.0': resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.57.1': - resolution: {integrity: sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==} - cpu: [x64] - os: [freebsd] - '@rollup/rollup-freebsd-x64@4.59.0': resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': - resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.57.1': - resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} - cpu: [arm] - os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.59.0': resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.57.1': - resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.59.0': resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.57.1': - resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} - cpu: [arm64] - os: [linux] - '@rollup/rollup-linux-arm64-musl@4.59.0': resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.57.1': - resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} - cpu: [loong64] - os: [linux] - '@rollup/rollup-linux-loong64-gnu@4.59.0': resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-loong64-musl@4.57.1': - resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} - cpu: [loong64] - os: [linux] - '@rollup/rollup-linux-loong64-musl@4.59.0': resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.57.1': - resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.59.0': resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-ppc64-musl@4.57.1': - resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} - cpu: [ppc64] - os: [linux] - '@rollup/rollup-linux-ppc64-musl@4.59.0': resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.57.1': - resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.59.0': resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.57.1': - resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} - cpu: [riscv64] - os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.59.0': resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.57.1': - resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} - cpu: [s390x] - os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.59.0': resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.57.1': - resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-gnu@4.59.0': resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.57.1': - resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} - cpu: [x64] - os: [linux] - '@rollup/rollup-linux-x64-musl@4.59.0': resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} cpu: [x64] os: [linux] - '@rollup/rollup-openbsd-x64@4.57.1': - resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} - cpu: [x64] - os: [openbsd] - '@rollup/rollup-openbsd-x64@4.59.0': resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} cpu: [x64] os: [openbsd] - '@rollup/rollup-openharmony-arm64@4.57.1': - resolution: {integrity: sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==} - cpu: [arm64] - os: [openharmony] - '@rollup/rollup-openharmony-arm64@4.59.0': resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.57.1': - resolution: {integrity: sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==} - cpu: [arm64] - os: [win32] - '@rollup/rollup-win32-arm64-msvc@4.59.0': resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.57.1': - resolution: {integrity: sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==} - cpu: [ia32] - os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.59.0': resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-gnu@4.57.1': - resolution: {integrity: sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-gnu@4.59.0': resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} cpu: [x64] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.57.1': - resolution: {integrity: sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==} - cpu: [x64] - os: [win32] - '@rollup/rollup-win32-x64-msvc@4.59.0': resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} cpu: [x64] @@ -4421,9 +4125,6 @@ packages: '@types/node@22.19.2': resolution: {integrity: sha512-LPM2G3Syo1GLzXLGJAKdqoU35XvrWzGJ21/7sgZTUpbkBaOasTj8tjwn6w+hCkqaa1TfJ/w67rJSwYItlJ2mYw==} - '@types/node@22.19.8': - resolution: {integrity: sha512-ebO/Yl+EAvVe8DnMfi+iaAyIqYdK0q/q0y0rw82INWEKJOBe6b/P3YWE8NW7oOlF/nXFNrHwhARrN/hdgDkraA==} - '@types/node@25.3.5': resolution: {integrity: sha512-oX8xrhvpiyRCQkG1MFchB09f+cXftgIXb3a7UUa4Y3wpmZPw5tyZGTLWhlESOLq1Rq6oDlc8npVU2/9xiCuXMA==} @@ -4438,9 +4139,6 @@ packages: peerDependencies: '@types/react': ^19.2.0 - '@types/react@19.2.11': - resolution: {integrity: sha512-tORuanb01iEzWvMGVGv2ZDhYZVeRMrw453DCSAIn/5yvcSVnMoUMTyf33nQJLahYEnv9xqrTNbgz4qY5EfSh0g==} - '@types/react@19.2.14': resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} @@ -6317,11 +6015,6 @@ packages: engines: {node: '>=18'} hasBin: true - esbuild@0.27.2: - resolution: {integrity: sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==} - engines: {node: '>=18'} - hasBin: true - esbuild@0.27.3: resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} engines: {node: '>=18'} @@ -8615,10 +8308,6 @@ packages: resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} - minimatch@10.1.2: - resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==} - engines: {node: 20 || >=22} - minimatch@10.2.4: resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} engines: {node: 18 || 20 || >=22} @@ -8638,10 +8327,6 @@ packages: resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.9: resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} engines: {node: '>=16 || 14 >=14.17'} @@ -9630,9 +9315,6 @@ packages: prosemirror-transform@1.11.0: resolution: {integrity: sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==} - prosemirror-view@1.41.5: - resolution: {integrity: sha512-UDQbIPnDrjE8tqUBbPmCOZgtd75htE6W3r0JCmY9bL6W1iemDM37MZEKC49d+tdQ0v/CKx4gjxLoLsfkD2NiZA==} - prosemirror-view@1.41.6: resolution: {integrity: sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg==} @@ -10117,11 +9799,6 @@ packages: rollup: optional: true - rollup@4.57.1: - resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - rollup@4.59.0: resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -12470,21 +12147,10 @@ snapshots: '@canvas/image-data@1.1.0': {} - '@clack/core@1.0.0': - dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 - '@clack/core@1.1.0': dependencies: sisteransi: 1.0.5 - '@clack/prompts@1.0.0': - dependencies: - '@clack/core': 1.0.0 - picocolors: 1.1.1 - sisteransi: 1.0.5 - '@clack/prompts@1.1.0': dependencies: '@clack/core': 1.1.0 @@ -12683,234 +12349,156 @@ snapshots: '@esbuild/aix-ppc64@0.25.12': optional: true - '@esbuild/aix-ppc64@0.27.2': - optional: true - '@esbuild/aix-ppc64@0.27.3': optional: true '@esbuild/android-arm64@0.25.12': optional: true - '@esbuild/android-arm64@0.27.2': - optional: true - '@esbuild/android-arm64@0.27.3': optional: true '@esbuild/android-arm@0.25.12': optional: true - '@esbuild/android-arm@0.27.2': - optional: true - '@esbuild/android-arm@0.27.3': optional: true '@esbuild/android-x64@0.25.12': optional: true - '@esbuild/android-x64@0.27.2': - optional: true - '@esbuild/android-x64@0.27.3': optional: true '@esbuild/darwin-arm64@0.25.12': optional: true - '@esbuild/darwin-arm64@0.27.2': - optional: true - '@esbuild/darwin-arm64@0.27.3': optional: true '@esbuild/darwin-x64@0.25.12': optional: true - '@esbuild/darwin-x64@0.27.2': - optional: true - '@esbuild/darwin-x64@0.27.3': optional: true '@esbuild/freebsd-arm64@0.25.12': optional: true - '@esbuild/freebsd-arm64@0.27.2': - optional: true - '@esbuild/freebsd-arm64@0.27.3': optional: true '@esbuild/freebsd-x64@0.25.12': optional: true - '@esbuild/freebsd-x64@0.27.2': - optional: true - '@esbuild/freebsd-x64@0.27.3': optional: true '@esbuild/linux-arm64@0.25.12': optional: true - '@esbuild/linux-arm64@0.27.2': - optional: true - '@esbuild/linux-arm64@0.27.3': optional: true '@esbuild/linux-arm@0.25.12': optional: true - '@esbuild/linux-arm@0.27.2': - optional: true - '@esbuild/linux-arm@0.27.3': optional: true '@esbuild/linux-ia32@0.25.12': optional: true - '@esbuild/linux-ia32@0.27.2': - optional: true - '@esbuild/linux-ia32@0.27.3': optional: true '@esbuild/linux-loong64@0.25.12': optional: true - '@esbuild/linux-loong64@0.27.2': - optional: true - '@esbuild/linux-loong64@0.27.3': optional: true '@esbuild/linux-mips64el@0.25.12': optional: true - '@esbuild/linux-mips64el@0.27.2': - optional: true - '@esbuild/linux-mips64el@0.27.3': optional: true '@esbuild/linux-ppc64@0.25.12': optional: true - '@esbuild/linux-ppc64@0.27.2': - optional: true - '@esbuild/linux-ppc64@0.27.3': optional: true '@esbuild/linux-riscv64@0.25.12': optional: true - '@esbuild/linux-riscv64@0.27.2': - optional: true - '@esbuild/linux-riscv64@0.27.3': optional: true '@esbuild/linux-s390x@0.25.12': optional: true - '@esbuild/linux-s390x@0.27.2': - optional: true - '@esbuild/linux-s390x@0.27.3': optional: true '@esbuild/linux-x64@0.25.12': optional: true - '@esbuild/linux-x64@0.27.2': - optional: true - '@esbuild/linux-x64@0.27.3': optional: true '@esbuild/netbsd-arm64@0.25.12': optional: true - '@esbuild/netbsd-arm64@0.27.2': - optional: true - '@esbuild/netbsd-arm64@0.27.3': optional: true '@esbuild/netbsd-x64@0.25.12': optional: true - '@esbuild/netbsd-x64@0.27.2': - optional: true - '@esbuild/netbsd-x64@0.27.3': optional: true '@esbuild/openbsd-arm64@0.25.12': optional: true - '@esbuild/openbsd-arm64@0.27.2': - optional: true - '@esbuild/openbsd-arm64@0.27.3': optional: true '@esbuild/openbsd-x64@0.25.12': optional: true - '@esbuild/openbsd-x64@0.27.2': - optional: true - '@esbuild/openbsd-x64@0.27.3': optional: true '@esbuild/openharmony-arm64@0.25.12': optional: true - '@esbuild/openharmony-arm64@0.27.2': - optional: true - '@esbuild/openharmony-arm64@0.27.3': optional: true '@esbuild/sunos-x64@0.25.12': optional: true - '@esbuild/sunos-x64@0.27.2': - optional: true - '@esbuild/sunos-x64@0.27.3': optional: true '@esbuild/win32-arm64@0.25.12': optional: true - '@esbuild/win32-arm64@0.27.2': - optional: true - '@esbuild/win32-arm64@0.27.3': optional: true '@esbuild/win32-ia32@0.25.12': optional: true - '@esbuild/win32-ia32@0.27.2': - optional: true - '@esbuild/win32-ia32@0.27.3': optional: true '@esbuild/win32-x64@0.25.12': optional: true - '@esbuild/win32-x64@0.27.2': - optional: true - '@esbuild/win32-x64@0.27.3': optional: true @@ -12960,19 +12548,10 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 - '@floating-ui/core@1.7.4': - dependencies: - '@floating-ui/utils': 0.2.10 - '@floating-ui/core@1.7.5': dependencies: '@floating-ui/utils': 0.2.11 - '@floating-ui/dom@1.7.5': - dependencies: - '@floating-ui/core': 1.7.4 - '@floating-ui/utils': 0.2.10 - '@floating-ui/dom@1.7.6': dependencies: '@floating-ui/core': 1.7.5 @@ -12984,8 +12563,6 @@ snapshots: react: 19.2.3 react-dom: 19.2.4(react@19.2.3) - '@floating-ui/utils@0.2.10': {} - '@floating-ui/utils@0.2.11': {} '@hocuspocus/common@2.15.3': @@ -14364,153 +13941,78 @@ snapshots: optionalDependencies: rollup: 4.59.0 - '@rollup/rollup-android-arm-eabi@4.57.1': - optional: true - '@rollup/rollup-android-arm-eabi@4.59.0': optional: true - '@rollup/rollup-android-arm64@4.57.1': - optional: true - '@rollup/rollup-android-arm64@4.59.0': optional: true - '@rollup/rollup-darwin-arm64@4.57.1': - optional: true - '@rollup/rollup-darwin-arm64@4.59.0': optional: true - '@rollup/rollup-darwin-x64@4.57.1': - optional: true - '@rollup/rollup-darwin-x64@4.59.0': optional: true - '@rollup/rollup-freebsd-arm64@4.57.1': - optional: true - '@rollup/rollup-freebsd-arm64@4.59.0': optional: true - '@rollup/rollup-freebsd-x64@4.57.1': - optional: true - '@rollup/rollup-freebsd-x64@4.59.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.57.1': - optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.59.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.57.1': - optional: true - '@rollup/rollup-linux-arm-musleabihf@4.59.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-arm64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-arm64-musl@4.59.0': optional: true - '@rollup/rollup-linux-loong64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-loong64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-loong64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-loong64-musl@4.59.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-ppc64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-ppc64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-ppc64-musl@4.59.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-riscv64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-riscv64-musl@4.59.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-s390x-gnu@4.59.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.57.1': - optional: true - '@rollup/rollup-linux-x64-gnu@4.59.0': optional: true - '@rollup/rollup-linux-x64-musl@4.57.1': - optional: true - '@rollup/rollup-linux-x64-musl@4.59.0': optional: true - '@rollup/rollup-openbsd-x64@4.57.1': - optional: true - '@rollup/rollup-openbsd-x64@4.59.0': optional: true - '@rollup/rollup-openharmony-arm64@4.57.1': - optional: true - '@rollup/rollup-openharmony-arm64@4.59.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.57.1': - optional: true - '@rollup/rollup-win32-arm64-msvc@4.59.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.57.1': - optional: true - '@rollup/rollup-win32-ia32-msvc@4.59.0': optional: true - '@rollup/rollup-win32-x64-gnu@4.57.1': - optional: true - '@rollup/rollup-win32-x64-gnu@4.59.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.57.1': - optional: true - '@rollup/rollup-win32-x64-msvc@4.59.0': optional: true @@ -14677,7 +14179,7 @@ snapshots: read-pkg: 9.0.1 registry-auth-token: 5.1.1 semantic-release: 24.2.9(typescript@5.9.3) - semver: 7.7.3 + semver: 7.7.4 tempy: 3.2.0 '@semantic-release/release-notes-generator@14.1.0(semantic-release@24.2.9(typescript@5.9.3))': @@ -15277,15 +14779,15 @@ snapshots: picocolors: 1.1.1 redent: 3.0.0 - '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.11))(@types/react@19.2.11)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': + '@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)': dependencies: '@babel/runtime': 7.28.6 '@testing-library/dom': 10.4.1 react: 19.2.4 react-dom: 19.2.4(react@19.2.4) optionalDependencies: - '@types/react': 19.2.11 - '@types/react-dom': 19.2.3(@types/react@19.2.11) + '@types/react': 19.2.14 + '@types/react-dom': 19.2.3(@types/react@19.2.14) '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': dependencies: @@ -15338,7 +14840,7 @@ snapshots: '@types/conventional-commits-parser@5.0.2': dependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@types/cookie@0.4.1': {} @@ -15366,7 +14868,7 @@ snapshots: '@types/fs-extra@8.1.5': dependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@types/glob@7.2.0': dependencies: @@ -15417,10 +14919,6 @@ snapshots: dependencies: undici-types: 6.21.0 - '@types/node@22.19.8': - dependencies: - undici-types: 6.21.0 - '@types/node@25.3.5': dependencies: undici-types: 7.18.2 @@ -15429,18 +14927,9 @@ snapshots: '@types/parse5@6.0.3': {} - '@types/react-dom@19.2.3(@types/react@19.2.11)': - dependencies: - '@types/react': 19.2.11 - '@types/react-dom@19.2.3(@types/react@19.2.14)': dependencies: '@types/react': 19.2.14 - optional: true - - '@types/react@19.2.11': - dependencies: - csstype: 3.2.3 '@types/react@19.2.14': dependencies: @@ -15448,7 +14937,7 @@ snapshots: '@types/responselike@1.0.0': dependencies: - '@types/node': 22.19.2 + '@types/node': 25.3.5 '@types/supports-color@8.1.3': {} @@ -15464,7 +14953,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@types/yauzl@2.10.3': dependencies: @@ -15858,14 +15347,6 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': - dependencies: - '@vitest/spy': 3.2.4 - estree-walker: 3.0.3 - magic-string: 0.30.21 - optionalDependencies: - vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) - '@vitest/mocker@3.2.4(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 3.2.4 @@ -15978,7 +15459,7 @@ snapshots: minimatch: 3.1.2 parse-semver: 1.1.1 read: 1.0.7 - semver: 7.7.3 + semver: 7.7.4 tmp: 0.2.5 typed-rest-client: 1.8.11 url-join: 4.0.1 @@ -16012,7 +15493,7 @@ snapshots: '@vue/shared': 3.5.25 estree-walker: 2.0.2 magic-string: 0.30.21 - postcss: 8.5.6 + postcss: 8.5.8 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.25': @@ -16659,15 +16140,15 @@ snapshots: bun-types@1.3.8: dependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 bundle-name@4.1.0: dependencies: run-applescript: 7.1.0 - bundle-require@5.1.0(esbuild@0.27.2): + bundle-require@5.1.0(esbuild@0.27.3): dependencies: - esbuild: 0.27.2 + esbuild: 0.27.3 load-tsconfig: 0.2.5 bytes@3.0.0: {} @@ -17736,35 +17217,6 @@ snapshots: '@esbuild/win32-ia32': 0.25.12 '@esbuild/win32-x64': 0.25.12 - esbuild@0.27.2: - optionalDependencies: - '@esbuild/aix-ppc64': 0.27.2 - '@esbuild/android-arm': 0.27.2 - '@esbuild/android-arm64': 0.27.2 - '@esbuild/android-x64': 0.27.2 - '@esbuild/darwin-arm64': 0.27.2 - '@esbuild/darwin-x64': 0.27.2 - '@esbuild/freebsd-arm64': 0.27.2 - '@esbuild/freebsd-x64': 0.27.2 - '@esbuild/linux-arm': 0.27.2 - '@esbuild/linux-arm64': 0.27.2 - '@esbuild/linux-ia32': 0.27.2 - '@esbuild/linux-loong64': 0.27.2 - '@esbuild/linux-mips64el': 0.27.2 - '@esbuild/linux-ppc64': 0.27.2 - '@esbuild/linux-riscv64': 0.27.2 - '@esbuild/linux-s390x': 0.27.2 - '@esbuild/linux-x64': 0.27.2 - '@esbuild/netbsd-arm64': 0.27.2 - '@esbuild/netbsd-x64': 0.27.2 - '@esbuild/openbsd-arm64': 0.27.2 - '@esbuild/openbsd-x64': 0.27.2 - '@esbuild/openharmony-arm64': 0.27.2 - '@esbuild/sunos-x64': 0.27.2 - '@esbuild/win32-arm64': 0.27.2 - '@esbuild/win32-ia32': 0.27.2 - '@esbuild/win32-x64': 0.27.2 - esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -17848,8 +17300,8 @@ snapshots: eslint: 9.39.2(jiti@2.6.1) eslint-import-context: 0.1.9(unrs-resolver@1.11.1) is-glob: 4.0.3 - minimatch: 10.1.2 - semver: 7.7.3 + minimatch: 10.2.4 + semver: 7.7.4 stable-hash-x: 0.2.0 unrs-resolver: 1.11.1 optionalDependencies: @@ -17868,7 +17320,7 @@ snapshots: espree: 10.4.0 esquery: 1.7.0 parse-imports-exports: 0.2.4 - semver: 7.7.3 + semver: 7.7.4 spdx-expression-parse: 4.0.0 transitivePeerDependencies: - supports-color @@ -18344,7 +17796,7 @@ snapshots: dependencies: magic-string: 0.30.21 mlly: 1.8.0 - rollup: 4.57.1 + rollup: 4.59.0 flat-cache@4.0.1: dependencies: @@ -18573,7 +18025,7 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 - minimatch: 9.0.5 + minimatch: 9.0.9 minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 @@ -18697,7 +18149,7 @@ snapshots: happy-dom@20.4.0: dependencies: - '@types/node': 22.19.8 + '@types/node': 25.3.5 '@types/whatwg-mimetype': 3.0.2 '@types/ws': 8.18.1 entities: 4.5.0 @@ -19309,7 +18761,7 @@ snapshots: is-bun-module@2.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 is-callable@1.2.7: {} @@ -19681,7 +19133,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.7.3 + semver: 7.7.4 jsprim@2.0.2: dependencies: @@ -20919,10 +20371,6 @@ snapshots: dependencies: '@isaacs/brace-expansion': 5.0.1 - minimatch@10.1.2: - dependencies: - '@isaacs/brace-expansion': 5.0.1 - minimatch@10.2.4: dependencies: brace-expansion: 5.0.4 @@ -20943,10 +20391,6 @@ snapshots: dependencies: brace-expansion: 2.0.2 - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - minimatch@9.0.9: dependencies: brace-expansion: 2.0.2 @@ -21168,7 +20612,7 @@ snapshots: ignore-by-default: 1.0.1 minimatch: 3.1.2 pstree.remy: 1.1.8 - semver: 7.7.3 + semver: 7.7.4 simple-update-notifier: 2.0.0 supports-color: 5.5.0 touch: 3.1.1 @@ -21675,24 +21119,24 @@ snapshots: possible-typed-array-names@1.1.0: {} - postcss-import@15.1.0(postcss@8.5.6): + postcss-import@15.1.0(postcss@8.5.8): dependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.11 - postcss-js@4.1.0(postcss@8.5.6): + postcss-js@4.1.0(postcss@8.5.8): dependencies: camelcase-css: 2.0.1 - postcss: 8.5.6 + postcss: 8.5.8 - postcss-load-config@4.0.2(postcss@8.5.6): + postcss-load-config@4.0.2(postcss@8.5.8): dependencies: lilconfig: 3.1.3 yaml: 2.8.2 optionalDependencies: - postcss: 8.5.6 + postcss: 8.5.8 postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.2): dependencies: @@ -21708,11 +21152,6 @@ snapshots: postcss: 8.5.8 resolve: 1.22.11 - postcss-nested@6.2.0(postcss@8.5.6): - dependencies: - postcss: 8.5.6 - postcss-selector-parser: 6.1.2 - postcss-nested@6.2.0(postcss@8.5.8): dependencies: postcss: 8.5.8 @@ -21866,12 +21305,6 @@ snapshots: dependencies: prosemirror-model: 1.25.4 - prosemirror-view@1.41.5: - dependencies: - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-transform: 1.11.0 - prosemirror-view@1.41.6: dependencies: prosemirror-model: 1.25.4 @@ -22516,30 +21949,13 @@ snapshots: hash-base: 3.1.2 inherits: 2.0.4 - rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): - dependencies: - '@oxc-project/runtime': 0.101.0 - fdir: 6.5.0(picomatch@4.0.3) - lightningcss: 1.31.1 - picomatch: 4.0.3 - postcss: 8.5.6 - rolldown: 1.0.0-beta.53 - tinyglobby: 0.2.15 - optionalDependencies: - '@types/node': 22.19.2 - esbuild: 0.27.2 - fsevents: 2.3.3 - jiti: 2.6.1 - tsx: 4.21.0 - yaml: 2.8.2 - rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@oxc-project/runtime': 0.101.0 fdir: 6.5.0(picomatch@4.0.3) lightningcss: 1.31.1 picomatch: 4.0.3 - postcss: 8.5.6 + postcss: 8.5.8 rolldown: 1.0.0-beta.53 tinyglobby: 0.2.15 optionalDependencies: @@ -22556,7 +21972,7 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) lightningcss: 1.31.1 picomatch: 4.0.3 - postcss: 8.5.6 + postcss: 8.5.8 rolldown: 1.0.0-beta.53 tinyglobby: 0.2.15 optionalDependencies: @@ -22603,37 +22019,6 @@ snapshots: optionalDependencies: rollup: 4.59.0 - rollup@4.57.1: - dependencies: - '@types/estree': 1.0.8 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.57.1 - '@rollup/rollup-android-arm64': 4.57.1 - '@rollup/rollup-darwin-arm64': 4.57.1 - '@rollup/rollup-darwin-x64': 4.57.1 - '@rollup/rollup-freebsd-arm64': 4.57.1 - '@rollup/rollup-freebsd-x64': 4.57.1 - '@rollup/rollup-linux-arm-gnueabihf': 4.57.1 - '@rollup/rollup-linux-arm-musleabihf': 4.57.1 - '@rollup/rollup-linux-arm64-gnu': 4.57.1 - '@rollup/rollup-linux-arm64-musl': 4.57.1 - '@rollup/rollup-linux-loong64-gnu': 4.57.1 - '@rollup/rollup-linux-loong64-musl': 4.57.1 - '@rollup/rollup-linux-ppc64-gnu': 4.57.1 - '@rollup/rollup-linux-ppc64-musl': 4.57.1 - '@rollup/rollup-linux-riscv64-gnu': 4.57.1 - '@rollup/rollup-linux-riscv64-musl': 4.57.1 - '@rollup/rollup-linux-s390x-gnu': 4.57.1 - '@rollup/rollup-linux-x64-gnu': 4.57.1 - '@rollup/rollup-linux-x64-musl': 4.57.1 - '@rollup/rollup-openbsd-x64': 4.57.1 - '@rollup/rollup-openharmony-arm64': 4.57.1 - '@rollup/rollup-win32-arm64-msvc': 4.57.1 - '@rollup/rollup-win32-ia32-msvc': 4.57.1 - '@rollup/rollup-win32-x64-gnu': 4.57.1 - '@rollup/rollup-win32-x64-msvc': 4.57.1 - fsevents: 2.3.3 - rollup@4.59.0: dependencies: '@types/estree': 1.0.8 @@ -22756,7 +22141,7 @@ snapshots: read-pkg: 5.2.0 registry-auth-token: 4.2.2 semantic-release: 24.2.9(typescript@5.9.3) - semver: 7.7.3 + semver: 7.7.4 tempy: 1.0.1 semantic-release@24.2.9(typescript@5.9.3): @@ -22786,7 +22171,7 @@ snapshots: p-reduce: 3.0.0 read-package-up: 11.0.0 resolve-from: 5.0.0 - semver: 7.7.3 + semver: 7.7.4 semver-diff: 5.0.0 signale: 1.4.0 yargs: 17.7.2 @@ -22796,7 +22181,7 @@ snapshots: semver-diff@5.0.0: dependencies: - semver: 7.7.3 + semver: 7.7.4 semver-regex@4.0.5: {} @@ -23471,11 +22856,11 @@ snapshots: normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.5.6 - postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.1.0(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6) - postcss-nested: 6.2.0(postcss@8.5.6) + postcss: 8.5.8 + postcss-import: 15.1.0(postcss@8.5.8) + postcss-js: 4.1.0(postcss@8.5.8) + postcss-load-config: 4.0.2(postcss@8.5.8) + postcss-nested: 6.2.0(postcss@8.5.8) postcss-selector-parser: 6.1.2 resolve: 1.22.11 sucrase: 3.35.1 @@ -23550,7 +22935,7 @@ snapshots: dependencies: '@istanbuljs/schema': 0.1.3 glob: 10.5.0 - minimatch: 9.0.5 + minimatch: 9.0.9 text-decoder@1.2.3: dependencies: @@ -23678,18 +23063,18 @@ snapshots: tsup@8.5.1(@microsoft/api-extractor@7.56.1(@types/node@22.19.2))(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: - bundle-require: 5.1.0(esbuild@0.27.2) + bundle-require: 5.1.0(esbuild@0.27.3) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 debug: 4.4.3(supports-color@5.5.0) - esbuild: 0.27.2 + esbuild: 0.27.3 fix-dts-default-cjs-exports: 1.0.1 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.8)(tsx@4.21.0)(yaml@2.8.2) resolve-from: 5.0.0 - rollup: 4.57.1 + rollup: 4.59.0 source-map: 0.7.6 sucrase: 3.35.1 tinyexec: 0.3.2 @@ -23707,7 +23092,7 @@ snapshots: tsx@4.21.0: dependencies: - esbuild: 0.27.2 + esbuild: 0.27.3 get-tsconfig: 4.13.1 optionalDependencies: fsevents: 2.3.3 @@ -24228,27 +23613,6 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 - vite-node@3.2.4(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): - dependencies: - cac: 6.7.14 - debug: 4.4.3(supports-color@5.5.0) - es-module-lexer: 1.7.0 - pathe: 2.0.3 - vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) - transitivePeerDependencies: - - '@types/node' - - esbuild - - jiti - - less - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vite-node@3.2.4(@types/node@22.19.2)(esbuild@0.27.3)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 @@ -24361,50 +23725,6 @@ snapshots: tsx: 4.21.0 yaml: 2.8.2 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.2)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2): - dependencies: - '@types/chai': 5.2.3 - '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)) - '@vitest/pretty-format': 3.2.4 - '@vitest/runner': 3.2.4 - '@vitest/snapshot': 3.2.4 - '@vitest/spy': 3.2.4 - '@vitest/utils': 3.2.4 - chai: 5.3.3 - debug: 4.4.3(supports-color@5.5.0) - expect-type: 1.3.0 - magic-string: 0.30.21 - pathe: 2.0.3 - picomatch: 4.0.3 - std-env: 3.10.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinyglobby: 0.2.15 - tinypool: 1.1.1 - tinyrainbow: 2.0.0 - vite: rolldown-vite@7.3.1(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) - vite-node: 3.2.4(@types/node@22.19.2)(esbuild@0.27.2)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/debug': 4.1.12 - '@types/node': 22.19.2 - happy-dom: 20.4.0 - jsdom: 27.3.0(canvas@3.2.1) - transitivePeerDependencies: - - esbuild - - jiti - - less - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - vitest@3.2.4(@types/debug@4.1.12)(@types/node@22.19.2)(esbuild@0.27.3)(happy-dom@20.4.0)(jiti@2.6.1)(jsdom@27.3.0(canvas@3.2.1))(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.3 @@ -24691,15 +24011,6 @@ snapshots: xtend@4.0.2: {} - y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19): - dependencies: - lib0: 0.2.117 - prosemirror-model: 1.25.4 - prosemirror-state: 1.4.4 - prosemirror-view: 1.41.5 - y-protocols: 1.0.7(yjs@13.6.19) - yjs: 13.6.19 - y-prosemirror@1.3.7(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6)(y-protocols@1.0.7(yjs@13.6.19))(yjs@13.6.19): dependencies: lib0: 0.2.117