From a488322c551c2990a40c6faa4485282ec656d2f3 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Mon, 2 Jun 2025 16:00:42 +0200 Subject: [PATCH 01/87] feat(onFocus): pan nodes into the viewport on tab --- .../src/components/NodeWrapper/index.tsx | 14 ++++++++++++ .../components/NodeWrapper/NodeWrapper.svelte | 22 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index 5c0ce08b..e507a02c 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -155,6 +155,19 @@ export function NodeWrapper({ } }; + const onFocus = () => { + const { panZoom } = store.getState(); + const zoom = panZoom?.getViewport().zoom ?? 1; + panZoom?.setViewport( + { + x: -(internals.positionAbsolute.x + nodeDimensions.width / 2) * zoom + window.innerWidth / 2, + y: -(internals.positionAbsolute.y + nodeDimensions.height / 2) * zoom + window.innerHeight / 2, + zoom: zoom, + }, + { duration: 100 } + ); + }; + return (
({ onDoubleClick={onDoubleClickHandler} onKeyDown={isFocusable ? onKeyDown : undefined} tabIndex={isFocusable ? 0 : undefined} + onFocus={isFocusable ? onFocus : undefined} role={isFocusable ? 'button' : undefined} aria-describedby={disableKeyboardA11y ? undefined : `${ARIA_NODE_DESC_KEY}-${rfId}`} aria-label={node.ariaLabel} diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index f053cd82..24556d42 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -196,6 +196,27 @@ store.moveSelectedNodes(arrowKeyDiffs[event.key], event.shiftKey ? 4 : 1); } } + + function onFocus() { + if (store.disableKeyboardA11y) { + return; + } + + const zoom = store.panZoom?.getViewport().zoom ?? 1; + + // Get node dimensions + const nodeWidth = nodeRef?.offsetWidth || 0; + const nodeHeight = nodeRef?.offsetHeight || 0; + + store.panZoom?.setViewport( + { + x: -(positionX + nodeWidth / 2) * zoom + window.innerWidth / 2, + y: -(positionY + nodeHeight / 2) * zoom + window.innerHeight / 2, + zoom: zoom, + }, + { duration: 100 } + ); + } {#if !hidden} @@ -251,6 +272,7 @@ ? (event) => onnodecontextmenu({ node: userNode, event }) : undefined} onkeydown={focusable ? onKeyDown : undefined} + onfocus={focusable ? onFocus : undefined} tabIndex={focusable ? 0 : undefined} role={focusable ? 'button' : undefined} aria-describedby={store.disableKeyboardA11y From 69ff04335041ace8f10b31794d267f1bc4a3946c Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Mon, 2 Jun 2025 16:04:00 +0200 Subject: [PATCH 02/87] chore(onFocus): add disableKeyboardA11y --- packages/react/src/components/NodeWrapper/index.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index e507a02c..afdd9de5 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -156,6 +156,10 @@ export function NodeWrapper({ }; const onFocus = () => { + if (disableKeyboardA11y) { + return; + } + const { panZoom } = store.getState(); const zoom = panZoom?.getViewport().zoom ?? 1; panZoom?.setViewport( From 09fab6794031410c9e9465281d038c3520afe783 Mon Sep 17 00:00:00 2001 From: printer_scanner Date: Mon, 2 Jun 2025 16:05:55 +0200 Subject: [PATCH 03/87] chore: create changeset --- .changeset/thirty-snakes-float.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/thirty-snakes-float.md diff --git a/.changeset/thirty-snakes-float.md b/.changeset/thirty-snakes-float.md new file mode 100644 index 00000000..dd729387 --- /dev/null +++ b/.changeset/thirty-snakes-float.md @@ -0,0 +1,6 @@ +--- +"@xyflow/react": minor +"@xyflow/svelte": minor +--- + +feat(NodeWrapper): focus nodes in the viewport on tab From e6fe3dcd471f42de34f3f22b8b521b04133a9354 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Tue, 3 Jun 2025 16:55:24 +0200 Subject: [PATCH 04/87] chore: only pan focus when out of viewport --- .../src/components/NodeWrapper/index.tsx | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index afdd9de5..3560fe13 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -18,6 +18,7 @@ import { handleNodeClick } from '../Nodes/utils'; import { arrowKeyDiffs, builtinNodeTypes, getNodeInlineStyleDimensions } from './utils'; import { useNodeObserver } from './useNodeObserver'; import type { InternalNode, Node, NodeWrapperProps } from '../../types'; +import { useReactFlow } from '../../hooks/useReactFlow'; export function NodeWrapper({ id, @@ -78,6 +79,8 @@ export function NodeWrapper({ nodeClickDistance, }); const moveSelectedNodes = useMoveSelectedNodes(); + const { fitView } = useReactFlow(); + const { getViewport } = useReactFlow(); if (node.hidden) { return null; @@ -160,16 +163,26 @@ export function NodeWrapper({ return; } - const { panZoom } = store.getState(); - const zoom = panZoom?.getViewport().zoom ?? 1; - panZoom?.setViewport( - { - x: -(internals.positionAbsolute.x + nodeDimensions.width / 2) * zoom + window.innerWidth / 2, - y: -(internals.positionAbsolute.y + nodeDimensions.height / 2) * zoom + window.innerHeight / 2, - zoom: zoom, - }, - { duration: 100 } - ); + // Return early if focus is not from keyboard navigation (i.e., was clicked) + if (!nodeRef.current?.matches(':focus-visible')) { + return; + } + const { x, y, zoom } = getViewport(); + + const isNodeVisible = + node.position.x >= x && + node.position.x <= x + window.innerWidth && + node.position.y >= y && + node.position.y <= y + window.innerHeight; + + if (!isNodeVisible) { + fitView({ + nodes: [{ id }], + duration: 100, + minZoom: zoom, + maxZoom: zoom, + }); + } }; return ( From 343ed4364bd752ab7cda40bd74ee8ad6940fb468 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Wed, 4 Jun 2025 12:08:11 +0200 Subject: [PATCH 05/87] chore: update a11y example for testing --- examples/react/src/examples/A11y/index.tsx | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/examples/react/src/examples/A11y/index.tsx b/examples/react/src/examples/A11y/index.tsx index f7f0b5b2..a4d0f2ad 100644 --- a/examples/react/src/examples/A11y/index.tsx +++ b/examples/react/src/examples/A11y/index.tsx @@ -23,25 +23,34 @@ const initialNodes: Node[] = [ type: 'input', data: { label: 'A11y Node 1' }, position: { x: 250, y: 5 }, - className: 'light', }, { id: '2', data: { label: 'Node 2' }, - position: { x: 100, y: 100 }, - className: 'light', + position: { x: 1000, y: 100 }, }, { id: '3', data: { label: 'Node 3' }, - position: { x: 400, y: 100 }, + position: { x: 100, y: 100 }, className: 'light', + ariaRoleDescription: 'custom node role', + ariaRole: 'button', + }, + { + id: '4', + data: { label: 'Node 4' }, + position: { x: 300, y: 100 }, + className: 'light', + ariaRoleDescription: 'custom node role', + ariaRole: 'button', }, ]; const initialEdges: Edge[] = [ { id: 'e1-2', source: '1', target: '2', animated: true }, { id: 'e1-3', source: '1', target: '3' }, + { id: 'e1-4', source: '1', target: '4' }, ]; const ariaLabelConfig: Partial = { @@ -69,9 +78,9 @@ const A11y = () => { onNodeDragStart={onNodeDragStart} onNodeDrag={onNodeDrag} className="react-flow-basic-example" - minZoom={0.2} + minZoom={2} maxZoom={4} - fitView + // fitView selectNodesOnDrag={false} elevateEdgesOnSelect elevateNodesOnSelect={false} From 6693c7300e41609cb50c693af46c3ca6891aa244 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Thu, 5 Jun 2025 12:22:06 +0200 Subject: [PATCH 06/87] feat: create enablePanOnFocus prop, update onFocus func --- examples/react/src/examples/A11y/index.tsx | 46 +++++++++++------ .../src/routes/examples/a11y/+page.svelte | 39 +++++++++++---- .../src/components/NodeWrapper/index.tsx | 20 ++++---- .../src/components/StoreUpdater/index.tsx | 1 + .../src/container/NodeRenderer/index.tsx | 11 ++-- .../react/src/container/ReactFlow/index.tsx | 2 + packages/react/src/store/initialState.ts | 1 + packages/react/src/types/component-props.ts | 5 ++ packages/react/src/types/nodes.ts | 1 + packages/react/src/types/store.ts | 1 + .../components/NodeWrapper/NodeWrapper.svelte | 50 ++++++++++++------- .../lib/container/SvelteFlow/Wrapper.svelte | 1 + .../src/lib/container/SvelteFlow/types.ts | 5 ++ .../src/lib/store/initial-store.svelte.ts | 1 + 14 files changed, 125 insertions(+), 59 deletions(-) diff --git a/examples/react/src/examples/A11y/index.tsx b/examples/react/src/examples/A11y/index.tsx index a4d0f2ad..daf3ce47 100644 --- a/examples/react/src/examples/A11y/index.tsx +++ b/examples/react/src/examples/A11y/index.tsx @@ -1,4 +1,4 @@ -import { MouseEvent } from 'react'; +import { MouseEvent, useState } from 'react'; import { ReactFlow, MiniMap, @@ -10,13 +10,9 @@ import { Edge, OnNodeDrag, AriaLabelConfig, + Panel, } from '@xyflow/react'; -const onNodeDrag: OnNodeDrag = (_, node: Node, nodes: Node[]) => console.log('drag', node, nodes); -const onNodeDragStart = (_: MouseEvent, node: Node, nodes: Node[]) => console.log('drag start', node, nodes); -const onNodeDragStop = (_: MouseEvent, node: Node, nodes: Node[]) => console.log('drag stop', node, nodes); -const onNodeClick = (_: MouseEvent, node: Node) => console.log('click', node); - const initialNodes: Node[] = [ { id: '1', @@ -41,9 +37,16 @@ const initialNodes: Node[] = [ id: '4', data: { label: 'Node 4' }, position: { x: 300, y: 100 }, - className: 'light', - ariaRoleDescription: 'custom node role', - ariaRole: 'button', + }, + { + id: '5', + data: { label: 'Node 5' }, + position: { x: 400, y: 200 }, + }, + { + id: '6', + data: { label: 'Node 6' }, + position: { x: -1000, y: 200 }, }, ]; @@ -51,6 +54,8 @@ const initialEdges: Edge[] = [ { id: 'e1-2', source: '1', target: '2', animated: true }, { id: 'e1-3', source: '1', target: '3' }, { id: 'e1-4', source: '1', target: '4' }, + { id: 'e1-5', source: '4', target: '5' }, + { id: 'e1-6', source: '3', target: '6' }, ]; const ariaLabelConfig: Partial = { @@ -68,19 +73,14 @@ const ariaLabelConfig: Partial = { }; const A11y = () => { + const [isFocusPannable, setEnablePanOnFocus] = useState(true); return ( { + +
+ +
+
); }; diff --git a/examples/svelte/src/routes/examples/a11y/+page.svelte b/examples/svelte/src/routes/examples/a11y/+page.svelte index 07f53110..962cd726 100644 --- a/examples/svelte/src/routes/examples/a11y/+page.svelte +++ b/examples/svelte/src/routes/examples/a11y/+page.svelte @@ -1,5 +1,5 @@ - - + 'node.a11yDescription.ariaLiveMessage': ({ direction, x, y }: { direction: string; x: number; y: number }) => `Custom Moved selected node ${direction}. New position, x: ${x}, y: ${y}`, 'edge.a11yDescription.default': 'Svelte Custom Edge Desc.', 'controls.ariaLabel': 'Svelte Custom Control Aria Label', @@ -37,9 +33,30 @@ // 'controls.fitView.ariaLabel': 'Svelte Custom Fit View', 'controls.interactive.ariaLabel': 'Svelte Custom Toggle Interactivity', 'minimap.ariaLabel': 'Svelte Custom Minimap' - }} + } + ); + + + + +
+ +
+
diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index 49b74174..f3542b22 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -7,6 +7,7 @@ import { getNodeDimensions, isInputDOMNode, nodeHasDimensions, + getNodesInside, } from '@xyflow/system'; import { useStore, useStoreApi } from '../../hooks/useStore'; @@ -29,6 +30,7 @@ export function NodeWrapper({ onContextMenu, onDoubleClick, nodesDraggable, + enablePanOnFocus, elementsSelectable, nodesConnectable, nodesFocusable, @@ -163,28 +165,26 @@ export function NodeWrapper({ }; const onFocus = () => { - if (disableKeyboardA11y) { + if (disableKeyboardA11y || !enablePanOnFocus) { return; } - // Return early if focus is not from keyboard navigation (i.e., was clicked) if (!nodeRef.current?.matches(':focus-visible')) { return; } - const { x, y, zoom } = getViewport(); - const isNodeVisible = - node.position.x >= x && - node.position.x <= x + window.innerWidth && - node.position.y >= y && - node.position.y <= y + window.innerHeight; + const { transform, width, height } = store.getState(); + const visibleNodes = getNodesInside(new Map([[id, node]]), { x: 0, y: 0, width, height }, transform, true); + + const isNodeVisible = visibleNodes.length > 0; if (!isNodeVisible) { + const zoomLevel = transform[2]; fitView({ nodes: [{ id }], duration: 100, - minZoom: zoom, - maxZoom: zoom, + minZoom: zoomLevel, + maxZoom: zoomLevel, }); } }; diff --git a/packages/react/src/components/StoreUpdater/index.tsx b/packages/react/src/components/StoreUpdater/index.tsx index 95b713af..ba0d66bf 100644 --- a/packages/react/src/components/StoreUpdater/index.tsx +++ b/packages/react/src/components/StoreUpdater/index.tsx @@ -23,6 +23,7 @@ const reactFlowFieldsToTrack = [ 'onClickConnectStart', 'onClickConnectEnd', 'nodesDraggable', + 'enablePanOnFocus', 'nodesConnectable', 'nodesFocusable', 'edgesFocusable', diff --git a/packages/react/src/container/NodeRenderer/index.tsx b/packages/react/src/container/NodeRenderer/index.tsx index 02126d73..093e3f95 100644 --- a/packages/react/src/container/NodeRenderer/index.tsx +++ b/packages/react/src/container/NodeRenderer/index.tsx @@ -29,6 +29,7 @@ export type NodeRendererProps = Pick< const selector = (s: ReactFlowState) => ({ nodesDraggable: s.nodesDraggable, + enablePanOnFocus: s.enablePanOnFocus, nodesConnectable: s.nodesConnectable, nodesFocusable: s.nodesFocusable, elementsSelectable: s.elementsSelectable, @@ -36,7 +37,10 @@ const selector = (s: ReactFlowState) => ({ }); function NodeRendererComponent(props: NodeRendererProps) { - const { nodesDraggable, nodesConnectable, nodesFocusable, elementsSelectable, onError } = useStore(selector, shallow); + const { nodesDraggable, nodesConnectable, nodesFocusable, elementsSelectable, enablePanOnFocus, onError } = useStore( + selector, + shallow + ); const nodeIds = useVisibleNodeIds(props.onlyRenderVisibleElements); const resizeObserver = useResizeObserver(); @@ -48,13 +52,13 @@ function NodeRendererComponent(props: NodeRendererProps(props: NodeRendererProps( onlyRenderVisibleElements = false, selectNodesOnDrag, nodesDraggable, + enablePanOnFocus, nodesConnectable, nodesFocusable, nodeOrigin = defaultNodeOrigin, @@ -261,6 +262,7 @@ function ReactFlow( onClickConnectStart={onClickConnectStart} onClickConnectEnd={onClickConnectEnd} nodesDraggable={nodesDraggable} + enablePanOnFocus={enablePanOnFocus} nodesConnectable={nodesConnectable} nodesFocusable={nodesFocusable} edgesFocusable={edgesFocusable} diff --git a/packages/react/src/store/initialState.ts b/packages/react/src/store/initialState.ts index 15bfc1d8..77d10769 100644 --- a/packages/react/src/store/initialState.ts +++ b/packages/react/src/store/initialState.ts @@ -112,6 +112,7 @@ const getInitialState = ({ snapToGrid: false, nodesDraggable: true, + enablePanOnFocus: false, nodesConnectable: true, nodesFocusable: true, edgesFocusable: true, diff --git a/packages/react/src/types/component-props.ts b/packages/react/src/types/component-props.ts index d088c26b..f09995bf 100644 --- a/packages/react/src/types/component-props.ts +++ b/packages/react/src/types/component-props.ts @@ -383,6 +383,11 @@ export interface ReactFlowProps = { nodesConnectable: boolean; elementsSelectable: boolean; nodesDraggable: boolean; + enablePanOnFocus: boolean; nodesFocusable: boolean; onClick?: NodeMouseHandler; onDoubleClick?: NodeMouseHandler; diff --git a/packages/react/src/types/store.ts b/packages/react/src/types/store.ts index ba909869..25d8f42e 100644 --- a/packages/react/src/types/store.ts +++ b/packages/react/src/types/store.ts @@ -88,6 +88,7 @@ export type ReactFlowStore { + console.log('before', store.enablePanOnFocus); + if (store.disableKeyboardA11y || !store.enablePanOnFocus) { + console.log("should return early", store.enablePanOnFocus); return; } - - const zoom = store.panZoom?.getViewport().zoom ?? 1; - - // Get node dimensions - const nodeWidth = nodeRef?.offsetWidth || 0; - const nodeHeight = nodeRef?.offsetHeight || 0; - - store.panZoom?.setViewport( - { - x: -(positionX + nodeWidth / 2) * zoom + window.innerWidth / 2, - y: -(positionY + nodeHeight / 2) * zoom + window.innerHeight / 2, - zoom: zoom, - }, - { duration: 100 } - ); - } + + if (!nodeRef?.matches(':focus-visible')) { + return; + } + const width = store.width; + const height = store.height; + const viewport: [number, number, number] = [store.viewport.x, store.viewport.y, store.viewport.zoom]; + const zoom = store.viewport.zoom; + + const visibleNodes = getNodesInside(new Map([[id, node]]), { x: 0, y: 0, width, height }, viewport, true); + + const isNodeVisible = visibleNodes.length > 0; + + if (!isNodeVisible) { + console.log('About to call fitView - this should NOT happen when enablePanOnFocus is false'); + + console.log('after', store.enablePanOnFocus); + store.fitView({ + nodes: [{ id }], + duration: 100, + minZoom: zoom, + maxZoom: zoom, + }); + } + }; {#if !hidden} diff --git a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte index 0f7e39f6..80b6e0dd 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte +++ b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte @@ -84,6 +84,7 @@ elevateNodesOnSelect, elevateEdgesOnSelect, nodesDraggable, + enablePanOnFocus, nodesConnectable, elementsSelectable, nodesFocusable, diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts index 38e07f4a..0d67197c 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/types.ts +++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts @@ -232,6 +232,11 @@ export type SvelteFlowProps< * @default true */ nodesDraggable?: boolean; + /** + * When `true`, the viewport will pan when a node is focused. + * @default false + */ + enablePanOnFocus?: boolean; /** * Controls if all nodes should be connectable to each other * @default true diff --git a/packages/svelte/src/lib/store/initial-store.svelte.ts b/packages/svelte/src/lib/store/initial-store.svelte.ts index 7971f320..bedb2e2d 100644 --- a/packages/svelte/src/lib/store/initial-store.svelte.ts +++ b/packages/svelte/src/lib/store/initial-store.svelte.ts @@ -247,6 +247,7 @@ export function getInitialStore Date: Thu, 5 Jun 2025 13:42:27 +0200 Subject: [PATCH 07/87] fix(SvelteFlow): fix bug that auto-scrolls the pane --- .../src/lib/container/SvelteFlow/Wrapper.svelte | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte index 80b6e0dd..bd42d658 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte +++ b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte @@ -101,6 +101,16 @@ type OnlyDivAttributes = { [K in keyof T]: K extends keyof HTMLAttributes ? T[K] : never; }; + + // Undo scroll events, preventing viewport from shifting when nodes outside of it are focused + function wrapperOnScroll(e: UIEvent & { currentTarget: EventTarget & HTMLDivElement }) { + e.currentTarget.scrollTo({ top: 0, left: 0, behavior: 'auto' }); + + // Forward the event to any existing onscroll handler if needed + if (rest.onscroll) { + rest.onscroll(e); + } + }
} > {@render children?.()} From 59eb0df26ea0f3bda1a6c563e2780c429abb1564 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Thu, 5 Jun 2025 14:01:47 +0200 Subject: [PATCH 08/87] chore: remove console.logs --- .../src/lib/components/NodeWrapper/NodeWrapper.svelte | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index 538b74b4..1b5b1db7 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -200,15 +200,10 @@ } const onFocus = () => { - console.log('before', store.enablePanOnFocus); - if (store.disableKeyboardA11y || !store.enablePanOnFocus) { - console.log("should return early", store.enablePanOnFocus); + if (store.disableKeyboardA11y || !store.enablePanOnFocus || !nodeRef?.matches(':focus-visible')) { return; } - if (!nodeRef?.matches(':focus-visible')) { - return; - } const width = store.width; const height = store.height; const viewport: [number, number, number] = [store.viewport.x, store.viewport.y, store.viewport.zoom]; @@ -219,9 +214,6 @@ const isNodeVisible = visibleNodes.length > 0; if (!isNodeVisible) { - console.log('About to call fitView - this should NOT happen when enablePanOnFocus is false'); - - console.log('after', store.enablePanOnFocus); store.fitView({ nodes: [{ id }], duration: 100, From 09458f52ff57356e03404c58e9bfdbfd50579850 Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 5 Jun 2025 15:41:44 +0200 Subject: [PATCH 09/87] feat(nodes-edges): add domAttributes --- .changeset/sharp-dogs-chew.md | 7 +++++++ examples/react/src/examples/A11y/index.tsx | 4 ++++ .../react/src/components/EdgeWrapper/index.tsx | 3 ++- .../react/src/components/NodeWrapper/index.tsx | 3 ++- packages/react/src/types/edges.ts | 4 ++++ packages/react/src/types/nodes.ts | 11 +++++++++-- .../components/EdgeWrapper/EdgeWrapper.svelte | 3 ++- .../components/NodeWrapper/NodeWrapper.svelte | 3 ++- packages/svelte/src/lib/types/edges.ts | 9 ++++++++- packages/svelte/src/lib/types/nodes.ts | 18 ++++++++++++++++-- packages/system/src/types/edges.ts | 5 ----- packages/system/src/types/nodes.ts | 5 ----- 12 files changed, 56 insertions(+), 19 deletions(-) create mode 100644 .changeset/sharp-dogs-chew.md diff --git a/.changeset/sharp-dogs-chew.md b/.changeset/sharp-dogs-chew.md new file mode 100644 index 00000000..086b5961 --- /dev/null +++ b/.changeset/sharp-dogs-chew.md @@ -0,0 +1,7 @@ +--- +'@xyflow/react': minor +'@xyflow/svelte': minor +'@xyflow/system': minor +--- + +Add `domAttributes` option for nodes and edges diff --git a/examples/react/src/examples/A11y/index.tsx b/examples/react/src/examples/A11y/index.tsx index f7f0b5b2..e7fefc2d 100644 --- a/examples/react/src/examples/A11y/index.tsx +++ b/examples/react/src/examples/A11y/index.tsx @@ -24,6 +24,10 @@ const initialNodes: Node[] = [ data: { label: 'A11y Node 1' }, position: { x: 250, y: 5 }, className: 'light', + domAttributes: { + tabIndex: 10, + 'aria-roledescription': 'A11y Node', + }, }, { id: '2', diff --git a/packages/react/src/components/EdgeWrapper/index.tsx b/packages/react/src/components/EdgeWrapper/index.tsx index a5db4441..e1b5ba99 100644 --- a/packages/react/src/components/EdgeWrapper/index.tsx +++ b/packages/react/src/components/EdgeWrapper/index.tsx @@ -199,7 +199,7 @@ export function EdgeWrapper({ onKeyDown={isFocusable ? onKeyDown : undefined} tabIndex={isFocusable ? 0 : undefined} role={edge.ariaRole ?? (isFocusable ? 'group' : 'img')} - aria-roledescription={edge.ariaRoleDescription || 'edge'} + aria-roledescription={edge.domAttributes?.['aria-roledescription'] || 'edge'} data-id={id} data-testid={`rf__edge-${id}`} aria-label={ @@ -207,6 +207,7 @@ export function EdgeWrapper({ } aria-describedby={isFocusable ? `${ARIA_EDGE_DESC_KEY}-${rfId}` : undefined} ref={edgeRef} + {...edge.domAttributes} > {!reconnecting && ( ({ onKeyDown={isFocusable ? onKeyDown : undefined} tabIndex={isFocusable ? 0 : undefined} role={node.ariaRole ?? (isFocusable ? 'group' : undefined)} - aria-roledescription={node.ariaRoleDescription || 'node'} + aria-roledescription={node.domAttributes?.['aria-roledescription'] || 'node'} aria-describedby={disableKeyboardA11y ? undefined : `${ARIA_NODE_DESC_KEY}-${rfId}`} aria-label={node.ariaLabel} + {...node.domAttributes} > , 'id' | 'style' | 'className' | 'role' | 'aria-label'>; }; type SmoothStepEdge = Record> = Edge< diff --git a/packages/react/src/types/nodes.ts b/packages/react/src/types/nodes.ts index d9e2671b..1e6eb80f 100644 --- a/packages/react/src/types/nodes.ts +++ b/packages/react/src/types/nodes.ts @@ -1,4 +1,4 @@ -import type { CSSProperties, MouseEvent as ReactMouseEvent, AriaRole } from 'react'; +import type { CSSProperties, MouseEvent as ReactMouseEvent, AriaRole, HTMLAttributes, DOMAttributes } from 'react'; import type { CoordinateExtent, NodeBase, OnError, NodeProps as NodePropsBase, InternalNodeBase } from '@xyflow/system'; import { NodeTypes } from './general'; @@ -22,8 +22,15 @@ export type Node< * The ARIA role attribute for the node element, used for accessibility. * @default "group" */ - ariaRole?: AriaRole; + + /** + * General escape hatch for adding custom attributes to the node's DOM element. + */ + domAttributes?: Omit< + HTMLAttributes, + 'id' | 'style' | 'className' | 'draggable' | 'role' | 'aria-label' | keyof DOMAttributes + >; }; /** diff --git a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte index c63d85e5..33aa1841 100644 --- a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte +++ b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte @@ -138,9 +138,10 @@ : `Edge from ${source} to ${target}`} aria-describedby={focusable ? `${ARIA_EDGE_DESC_KEY}-${store.flowId}` : undefined} role={edge.ariaRole ?? (focusable ? 'group' : 'img')} - aria-roledescription={edge.ariaRoleDescription || 'edge'} + aria-roledescription={edge.domAttributes?.['aria-roledescription'] || 'edge'} onkeydown={focusable ? onkeydown : undefined} tabindex={focusable ? 0 : undefined} + {...edge.domAttributes} > ['role']; + /** + * General escape hatch for adding custom attributes to the edge's DOM element. + */ + domAttributes?: Omit< + SVGAttributes, + 'id' | 'style' | 'class' | 'role' | 'aria-label' + >; }; export type BaseEdgeProps = Pick< diff --git a/packages/svelte/src/lib/types/nodes.ts b/packages/svelte/src/lib/types/nodes.ts index f7f65469..69f2063f 100644 --- a/packages/svelte/src/lib/types/nodes.ts +++ b/packages/svelte/src/lib/types/nodes.ts @@ -1,5 +1,5 @@ import type { Component } from 'svelte'; -import type { ClassValue, HTMLAttributes } from 'svelte/elements'; +import type { ClassValue, HTMLAttributes, DOMAttributes } from 'svelte/elements'; import type { InternalNodeBase, NodeBase, NodeProps as NodePropsBase } from '@xyflow/system'; /** @@ -25,7 +25,21 @@ export type Node< * The ARIA role attribute for the node element, used for accessibility. * @default "group" */ - ariaRole?: HTMLAttributes['role']; + ariaRole?: HTMLAttributes['role']; + + /** + * General escape hatch for adding custom attributes to the node's DOM element. + */ + domAttributes?: Omit< + HTMLAttributes, + | 'id' + | 'style' + | 'class' + | 'draggable' + | 'role' + | 'aria-label' + | keyof DOMAttributes + >; }; // @todo: currently generics for nodes are not really supported diff --git a/packages/system/src/types/edges.ts b/packages/system/src/types/edges.ts index 3e69bf4c..c0568200 100644 --- a/packages/system/src/types/edges.ts +++ b/packages/system/src/types/edges.ts @@ -40,11 +40,6 @@ export type EdgeBase< * This property sets the width of that invisible path. */ interactionWidth?: number; - /** - * A description of the edge's, used for accessibility. - * @default "edge" - */ - ariaRoleDescription?: string; }; export type SmoothStepPathOptions = { diff --git a/packages/system/src/types/nodes.ts b/packages/system/src/types/nodes.ts index 49012024..687f81ba 100644 --- a/packages/system/src/types/nodes.ts +++ b/packages/system/src/types/nodes.ts @@ -73,11 +73,6 @@ export type NodeBase< */ origin?: NodeOrigin; handles?: NodeHandle[]; - /** - * A description of the node's role, used for accessibility. - * @default "node" - */ - ariaRoleDescription?: string; measured?: { width?: number; height?: number; From 38b25ac44f7411c672c5bad6b7c440c696da1665 Mon Sep 17 00:00:00 2001 From: Moritz Klack Date: Thu, 5 Jun 2025 15:43:03 +0200 Subject: [PATCH 10/87] chore(changeset): update --- .changeset/sharp-dogs-chew.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/sharp-dogs-chew.md b/.changeset/sharp-dogs-chew.md index 086b5961..2c8f2acc 100644 --- a/.changeset/sharp-dogs-chew.md +++ b/.changeset/sharp-dogs-chew.md @@ -1,7 +1,7 @@ --- '@xyflow/react': minor '@xyflow/svelte': minor -'@xyflow/system': minor +'@xyflow/system': patch --- Add `domAttributes` option for nodes and edges From 9ebc10ac9fe6c5ef6bb9b726d767662171070b15 Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 5 Jun 2025 15:44:51 +0200 Subject: [PATCH 11/87] chore(cleanup) --- packages/react/src/components/EdgeWrapper/index.tsx | 2 +- packages/react/src/components/NodeWrapper/index.tsx | 2 +- .../svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte | 2 +- .../svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/react/src/components/EdgeWrapper/index.tsx b/packages/react/src/components/EdgeWrapper/index.tsx index e1b5ba99..403ef08d 100644 --- a/packages/react/src/components/EdgeWrapper/index.tsx +++ b/packages/react/src/components/EdgeWrapper/index.tsx @@ -199,7 +199,7 @@ export function EdgeWrapper({ onKeyDown={isFocusable ? onKeyDown : undefined} tabIndex={isFocusable ? 0 : undefined} role={edge.ariaRole ?? (isFocusable ? 'group' : 'img')} - aria-roledescription={edge.domAttributes?.['aria-roledescription'] || 'edge'} + aria-roledescription="edge" data-id={id} data-testid={`rf__edge-${id}`} aria-label={ diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index 03f742c8..4d54973c 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -196,7 +196,7 @@ export function NodeWrapper({ onKeyDown={isFocusable ? onKeyDown : undefined} tabIndex={isFocusable ? 0 : undefined} role={node.ariaRole ?? (isFocusable ? 'group' : undefined)} - aria-roledescription={node.domAttributes?.['aria-roledescription'] || 'node'} + aria-roledescription="node" aria-describedby={disableKeyboardA11y ? undefined : `${ARIA_NODE_DESC_KEY}-${rfId}`} aria-label={node.ariaLabel} {...node.domAttributes} diff --git a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte index 33aa1841..cb132df8 100644 --- a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte +++ b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte @@ -138,7 +138,7 @@ : `Edge from ${source} to ${target}`} aria-describedby={focusable ? `${ARIA_EDGE_DESC_KEY}-${store.flowId}` : undefined} role={edge.ariaRole ?? (focusable ? 'group' : 'img')} - aria-roledescription={edge.domAttributes?.['aria-roledescription'] || 'edge'} + aria-roledescription="edge" onkeydown={focusable ? onkeydown : undefined} tabindex={focusable ? 0 : undefined} {...edge.domAttributes} diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index 7f339c5d..0401e956 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -254,7 +254,7 @@ onkeydown={focusable ? onKeyDown : undefined} tabIndex={focusable ? 0 : undefined} role={node.ariaRole ?? (focusable ? 'group' : undefined)} - aria-roledescription={node.domAttributes?.['aria-roledescription'] || 'node'} + aria-roledescription="node" aria-describedby={store.disableKeyboardA11y ? undefined : `${ARIA_NODE_DESC_KEY}-${store.flowId}`} From d434f0cde7111e4977e0b0733911e41ebdcb86f1 Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 5 Jun 2025 16:28:02 +0200 Subject: [PATCH 12/87] chore(nodewrapper): cleanup --- examples/react/src/examples/A11y/index.tsx | 2 -- .../src/components/NodeWrapper/index.tsx | 26 +++++-------------- packages/react/src/hooks/useViewportHelper.ts | 20 +------------- packages/react/src/store/index.ts | 20 ++++++++++++++ packages/react/src/types/store.ts | 2 ++ tooling/eslint-config/src/index.js | 1 - 6 files changed, 30 insertions(+), 41 deletions(-) diff --git a/examples/react/src/examples/A11y/index.tsx b/examples/react/src/examples/A11y/index.tsx index daf3ce47..344a20e4 100644 --- a/examples/react/src/examples/A11y/index.tsx +++ b/examples/react/src/examples/A11y/index.tsx @@ -78,8 +78,6 @@ const A11y = () => { ({ id, @@ -81,8 +80,6 @@ export function NodeWrapper({ nodeClickDistance, }); const moveSelectedNodes = useMoveSelectedNodes(); - const { fitView } = useReactFlow(); - const { getViewport } = useReactFlow(); if (node.hidden) { return null; @@ -165,26 +162,17 @@ export function NodeWrapper({ }; const onFocus = () => { - if (disableKeyboardA11y || !enablePanOnFocus) { + if (disableKeyboardA11y || !enablePanOnFocus || !nodeRef.current?.matches(':focus-visible')) { return; } - if (!nodeRef.current?.matches(':focus-visible')) { - return; - } + const { transform, width, height, setCenter } = store.getState(); + const withinViewport = + getNodesInside(new Map([[id, node]]), { x: 0, y: 0, width, height }, transform, true).length > 0; - const { transform, width, height } = store.getState(); - const visibleNodes = getNodesInside(new Map([[id, node]]), { x: 0, y: 0, width, height }, transform, true); - - const isNodeVisible = visibleNodes.length > 0; - - if (!isNodeVisible) { - const zoomLevel = transform[2]; - fitView({ - nodes: [{ id }], - duration: 100, - minZoom: zoomLevel, - maxZoom: zoomLevel, + if (!withinViewport) { + setCenter(node.position.x + nodeDimensions.width / 2, node.position.y + nodeDimensions.height / 2, { + zoom: transform[2], }); } }; diff --git a/packages/react/src/hooks/useViewportHelper.ts b/packages/react/src/hooks/useViewportHelper.ts index fc01a150..eee97484 100644 --- a/packages/react/src/hooks/useViewportHelper.ts +++ b/packages/react/src/hooks/useViewportHelper.ts @@ -63,25 +63,7 @@ const useViewportHelper = (): ViewportHelperFunctions => { return { x, y, zoom }; }, setCenter: async (x, y, options) => { - const { width, height, maxZoom, panZoom } = store.getState(); - const nextZoom = typeof options?.zoom !== 'undefined' ? options.zoom : maxZoom; - const centerX = width / 2 - x * nextZoom; - const centerY = height / 2 - y * nextZoom; - - if (!panZoom) { - return Promise.resolve(false); - } - - await panZoom.setViewport( - { - x: centerX, - y: centerY, - zoom: nextZoom, - }, - { duration: options?.duration, ease: options?.ease, interpolate: options?.interpolate } - ); - - return Promise.resolve(true); + return store.getState().setCenter(x, y, options); }, fitBounds: async (bounds, options) => { const { width, height, minZoom, maxZoom, panZoom } = store.getState(); diff --git a/packages/react/src/store/index.ts b/packages/react/src/store/index.ts index 39702bd0..085f8b1e 100644 --- a/packages/react/src/store/index.ts +++ b/packages/react/src/store/index.ts @@ -360,6 +360,26 @@ const createStore = ({ return panBySystem({ delta, panZoom, transform, translateExtent, width, height }); }, + setCenter: async (x, y, options) => { + const { width, height, maxZoom, panZoom } = get(); + + if (!panZoom) { + return Promise.resolve(false); + } + + const nextZoom = typeof options?.zoom !== 'undefined' ? options.zoom : maxZoom; + + await panZoom.setViewport( + { + x: width / 2 - x * nextZoom, + y: height / 2 - y * nextZoom, + zoom: nextZoom, + }, + { duration: options?.duration, ease: options?.ease, interpolate: options?.interpolate } + ); + + return Promise.resolve(true); + }, cancelConnection: () => { set({ connection: { ...initialConnection }, diff --git a/packages/react/src/types/store.ts b/packages/react/src/types/store.ts index 25d8f42e..fd9eb91e 100644 --- a/packages/react/src/types/store.ts +++ b/packages/react/src/types/store.ts @@ -29,6 +29,7 @@ import { type EdgeChange, type ParentLookup, type AriaLabelConfig, + SetCenter, } from '@xyflow/system'; import type { @@ -172,6 +173,7 @@ export type ReactFlowActions = { triggerNodeChanges: (changes: NodeChange[]) => void; triggerEdgeChanges: (changes: EdgeChange[]) => void; panBy: PanBy; + setCenter: SetCenter; setPaneClickDistance: (distance: number) => void; }; diff --git a/tooling/eslint-config/src/index.js b/tooling/eslint-config/src/index.js index 60f82b0e..0a80797e 100644 --- a/tooling/eslint-config/src/index.js +++ b/tooling/eslint-config/src/index.js @@ -36,7 +36,6 @@ module.exports = { projectService: true, }, rules: { - '@typescript-eslint/no-deprecated': 'error', '@typescript-eslint/no-unnecessary-type-assertion': 'error', }, }, From c44f0c61564f152763a60f07f6b5c08041fcb4d8 Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 5 Jun 2025 16:40:16 +0200 Subject: [PATCH 13/87] chore(svelte/nodewrapper): cleanup --- .../components/NodeWrapper/NodeWrapper.svelte | 36 ++++++++++--------- .../src/lib/hooks/useSvelteFlow.svelte.ts | 24 ++----------- packages/svelte/src/lib/store/index.ts | 24 ++++++++++++- packages/svelte/src/lib/store/types.ts | 4 ++- 4 files changed, 48 insertions(+), 40 deletions(-) diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index 1b5b1db7..a04f7dc7 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -6,7 +6,7 @@ isInputDOMNode, nodeHasDimensions, Position, - getNodesInside, + getNodesInside } from '@xyflow/system'; import drag from '$lib/actions/drag'; @@ -200,26 +200,30 @@ } const onFocus = () => { - if (store.disableKeyboardA11y || !store.enablePanOnFocus || !nodeRef?.matches(':focus-visible')) { + if ( + store.disableKeyboardA11y || + !store.enablePanOnFocus || + !nodeRef?.matches(':focus-visible') + ) { return; } - const width = store.width; - const height = store.height; - const viewport: [number, number, number] = [store.viewport.x, store.viewport.y, store.viewport.zoom]; - const zoom = store.viewport.zoom; - - const visibleNodes = getNodesInside(new Map([[id, node]]), { x: 0, y: 0, width, height }, viewport, true); + const { width, height, viewport } = store; - const isNodeVisible = visibleNodes.length > 0; + const withinViewport = + getNodesInside( + new Map([[id, node]]), + { x: 0, y: 0, width, height }, + [viewport.x, viewport.y, viewport.zoom], + true + ).length > 0; - if (!isNodeVisible) { - store.fitView({ - nodes: [{ id }], - duration: 100, - minZoom: zoom, - maxZoom: zoom, - }); + if (!withinViewport) { + store.setCenter( + node.position.x + (node.measured.width ?? 0) / 2, + node.position.y + (node.measured.height ?? 0) / 2, + { zoom: viewport.zoom } + ); } }; diff --git a/packages/svelte/src/lib/hooks/useSvelteFlow.svelte.ts b/packages/svelte/src/lib/hooks/useSvelteFlow.svelte.ts index 82c66064..c4869c33 100644 --- a/packages/svelte/src/lib/hooks/useSvelteFlow.svelte.ts +++ b/packages/svelte/src/lib/hooks/useSvelteFlow.svelte.ts @@ -366,28 +366,8 @@ export function useSvelteFlow $state.snapshot(store.viewport), - setCenter: async (x, y, options) => { - const nextZoom = typeof options?.zoom !== 'undefined' ? options.zoom : store.maxZoom; - const currentPanZoom = store.panZoom; - - if (!currentPanZoom) { - return Promise.resolve(false); - } - - await currentPanZoom.setViewport( - { - x: store.width / 2 - x * nextZoom, - y: store.height / 2 - y * nextZoom, - zoom: nextZoom - }, - { duration: options?.duration, ease: options?.ease, interpolate: options?.interpolate } - ); - - return Promise.resolve(true); - }, - fitView: (options?: FitViewOptions) => { - return store.fitView(options); - }, + setCenter: async (x, y, options) => store.setCenter(x, y, options), + fitView: (options?: FitViewOptions) => store.fitView(options), fitBounds: async (bounds: Rect, options?: FitBoundsOptions) => { if (!store.panZoom) { return Promise.resolve(false); diff --git a/packages/svelte/src/lib/store/index.ts b/packages/svelte/src/lib/store/index.ts index 657fdce2..a1f220bb 100644 --- a/packages/svelte/src/lib/store/index.ts +++ b/packages/svelte/src/lib/store/index.ts @@ -14,7 +14,8 @@ import { type ConnectionState, updateAbsolutePositions, snapPosition, - calculateNodePosition + calculateNodePosition, + type SetCenterOptions } from '@xyflow/system'; import type { EdgeTypes, NodeTypes, Node, Edge, FitViewOptions } from '$lib/types'; @@ -126,6 +127,26 @@ export function createStore void; setPaneClickDistance: (distance: number) => void; fitView: (options?: FitViewOptions) => Promise; + setCenter: SetCenter; updateNodePositions: UpdateNodePositions; updateNodeInternals: (updates: Map) => void; unselectNodesAndEdges: (params?: { nodes?: NodeType[]; edges?: EdgeType[] }) => void; From 91b22482eb07877603bc9c8a1409b377e28d7e61 Mon Sep 17 00:00:00 2001 From: Moritz Klack Date: Thu, 5 Jun 2025 16:42:12 +0200 Subject: [PATCH 14/87] chore(changeset): update --- .changeset/thirty-snakes-float.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/thirty-snakes-float.md b/.changeset/thirty-snakes-float.md index dd729387..e22e0e41 100644 --- a/.changeset/thirty-snakes-float.md +++ b/.changeset/thirty-snakes-float.md @@ -3,4 +3,4 @@ "@xyflow/svelte": minor --- -feat(NodeWrapper): focus nodes in the viewport on tab +Focus nodes on tab if not within the viewport and add a new prop `enablePanOnFocus` From 19cd285458d7120aeb8776c1b8abb9a143d101e2 Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 5 Jun 2025 19:37:14 +0200 Subject: [PATCH 15/87] chore(autoFocus): rename to autoPanOnNodeFocus --- examples/react/src/examples/A11y/index.tsx | 12 +++---- .../src/routes/examples/a11y/+page.svelte | 32 +++++++++---------- .../src/components/NodeWrapper/index.tsx | 4 +-- .../src/components/StoreUpdater/index.tsx | 2 +- .../src/container/NodeRenderer/index.tsx | 10 +++--- .../react/src/container/ReactFlow/index.tsx | 4 +-- packages/react/src/store/initialState.ts | 3 +- packages/react/src/types/component-props.ts | 2 +- packages/react/src/types/nodes.ts | 2 +- packages/react/src/types/store.ts | 2 +- .../components/NodeWrapper/NodeWrapper.svelte | 2 +- .../lib/container/SvelteFlow/Wrapper.svelte | 4 +-- .../src/lib/container/SvelteFlow/types.ts | 2 +- .../src/lib/store/initial-store.svelte.ts | 2 +- 14 files changed, 41 insertions(+), 42 deletions(-) diff --git a/examples/react/src/examples/A11y/index.tsx b/examples/react/src/examples/A11y/index.tsx index 344a20e4..389b275c 100644 --- a/examples/react/src/examples/A11y/index.tsx +++ b/examples/react/src/examples/A11y/index.tsx @@ -8,7 +8,6 @@ import { ReactFlowProvider, Node, Edge, - OnNodeDrag, AriaLabelConfig, Panel, } from '@xyflow/react'; @@ -73,12 +72,13 @@ const ariaLabelConfig: Partial = { }; const A11y = () => { - const [isFocusPannable, setEnablePanOnFocus] = useState(true); + const [autoPanOnNodeFocus, setAutoPanOnNodeFocus] = useState(true); + return ( { setEnablePanOnFocus(event.target.checked)} + checked={autoPanOnNodeFocus} + onChange={(event) => setAutoPanOnNodeFocus(event.target.checked)} className="xy-theme__checkbox" /> - enablePanOnFocus + autoPanOnNodeFocus
diff --git a/examples/svelte/src/routes/examples/a11y/+page.svelte b/examples/svelte/src/routes/examples/a11y/+page.svelte index 962cd726..aa7dc938 100644 --- a/examples/svelte/src/routes/examples/a11y/+page.svelte +++ b/examples/svelte/src/routes/examples/a11y/+page.svelte @@ -19,13 +19,19 @@ { id: 'A-C', source: 'A', target: 'C' }, { id: 'A-D', source: 'A', target: 'D' } ]); - let isFocusPannable = $state(true); - const ariaLabelConfig = $state( - { + let autoPanOnNodeFocus = $state(true); + const ariaLabelConfig = $state({ 'node.a11yDescription.default': 'Svelte Custom Node Desc.', 'node.a11yDescription.keyboardDisabled': 'Svelte Custom Keyboard Desc.', - 'node.a11yDescription.ariaLiveMessage': ({ direction, x, y }: { direction: string; x: number; y: number }) => - `Custom Moved selected node ${direction}. New position, x: ${x}, y: ${y}`, + 'node.a11yDescription.ariaLiveMessage': ({ + direction, + x, + y + }: { + direction: string; + x: number; + y: number; + }) => `Custom Moved selected node ${direction}. New position, x: ${x}, y: ${y}`, 'edge.a11yDescription.default': 'Svelte Custom Edge Desc.', 'controls.ariaLabel': 'Svelte Custom Control Aria Label', 'controls.zoomIn.ariaLabel': 'Svelte Custom Zoom in', @@ -33,30 +39,24 @@ // 'controls.fitView.ariaLabel': 'Svelte Custom Fit View', 'controls.interactive.ariaLabel': 'Svelte Custom Toggle Interactivity', 'minimap.ariaLabel': 'Svelte Custom Minimap' - } - ); + }); - + - +
-
+
diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index 14cf3d54..6d3b17b0 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -29,7 +29,7 @@ export function NodeWrapper({ onContextMenu, onDoubleClick, nodesDraggable, - enablePanOnFocus, + autoPanOnNodeFocus, elementsSelectable, nodesConnectable, nodesFocusable, @@ -162,7 +162,7 @@ export function NodeWrapper({ }; const onFocus = () => { - if (disableKeyboardA11y || !enablePanOnFocus || !nodeRef.current?.matches(':focus-visible')) { + if (disableKeyboardA11y || !autoPanOnNodeFocus || !nodeRef.current?.matches(':focus-visible')) { return; } diff --git a/packages/react/src/components/StoreUpdater/index.tsx b/packages/react/src/components/StoreUpdater/index.tsx index ba0d66bf..5a5878c3 100644 --- a/packages/react/src/components/StoreUpdater/index.tsx +++ b/packages/react/src/components/StoreUpdater/index.tsx @@ -23,7 +23,7 @@ const reactFlowFieldsToTrack = [ 'onClickConnectStart', 'onClickConnectEnd', 'nodesDraggable', - 'enablePanOnFocus', + 'autoPanOnNodeFocus', 'nodesConnectable', 'nodesFocusable', 'edgesFocusable', diff --git a/packages/react/src/container/NodeRenderer/index.tsx b/packages/react/src/container/NodeRenderer/index.tsx index 093e3f95..22d7a54f 100644 --- a/packages/react/src/container/NodeRenderer/index.tsx +++ b/packages/react/src/container/NodeRenderer/index.tsx @@ -29,7 +29,7 @@ export type NodeRendererProps = Pick< const selector = (s: ReactFlowState) => ({ nodesDraggable: s.nodesDraggable, - enablePanOnFocus: s.enablePanOnFocus, + autoPanOnNodeFocus: s.autoPanOnNodeFocus, nodesConnectable: s.nodesConnectable, nodesFocusable: s.nodesFocusable, elementsSelectable: s.elementsSelectable, @@ -37,10 +37,8 @@ const selector = (s: ReactFlowState) => ({ }); function NodeRendererComponent(props: NodeRendererProps) { - const { nodesDraggable, nodesConnectable, nodesFocusable, elementsSelectable, enablePanOnFocus, onError } = useStore( - selector, - shallow - ); + const { nodesDraggable, nodesConnectable, nodesFocusable, elementsSelectable, autoPanOnNodeFocus, onError } = + useStore(selector, shallow); const nodeIds = useVisibleNodeIds(props.onlyRenderVisibleElements); const resizeObserver = useResizeObserver(); @@ -90,7 +88,7 @@ function NodeRendererComponent(props: NodeRendererProps( onlyRenderVisibleElements = false, selectNodesOnDrag, nodesDraggable, - enablePanOnFocus, + autoPanOnNodeFocus, nodesConnectable, nodesFocusable, nodeOrigin = defaultNodeOrigin, @@ -262,7 +262,7 @@ function ReactFlow( onClickConnectStart={onClickConnectStart} onClickConnectEnd={onClickConnectEnd} nodesDraggable={nodesDraggable} - enablePanOnFocus={enablePanOnFocus} + autoPanOnNodeFocus={autoPanOnNodeFocus} nodesConnectable={nodesConnectable} nodesFocusable={nodesFocusable} edgesFocusable={edgesFocusable} diff --git a/packages/react/src/store/initialState.ts b/packages/react/src/store/initialState.ts index 77d10769..2532b5ad 100644 --- a/packages/react/src/store/initialState.ts +++ b/packages/react/src/store/initialState.ts @@ -112,7 +112,6 @@ const getInitialState = ({ snapToGrid: false, nodesDraggable: true, - enablePanOnFocus: false, nodesConnectable: true, nodesFocusable: true, edgesFocusable: true, @@ -135,7 +134,9 @@ const getInitialState = ({ ariaLiveMessage: '', autoPanOnConnect: true, autoPanOnNodeDrag: true, + autoPanOnNodeFocus: true, autoPanSpeed: 15, + connectionRadius: 20, onError: devWarn, isValidConnection: undefined, diff --git a/packages/react/src/types/component-props.ts b/packages/react/src/types/component-props.ts index f09995bf..7168e334 100644 --- a/packages/react/src/types/component-props.ts +++ b/packages/react/src/types/component-props.ts @@ -387,7 +387,7 @@ export interface ReactFlowProps = { nodesConnectable: boolean; elementsSelectable: boolean; nodesDraggable: boolean; - enablePanOnFocus: boolean; + autoPanOnNodeFocus: boolean; nodesFocusable: boolean; onClick?: NodeMouseHandler; onDoubleClick?: NodeMouseHandler; diff --git a/packages/react/src/types/store.ts b/packages/react/src/types/store.ts index fd9eb91e..d5e8902b 100644 --- a/packages/react/src/types/store.ts +++ b/packages/react/src/types/store.ts @@ -89,7 +89,7 @@ export type ReactFlowStore { if ( store.disableKeyboardA11y || - !store.enablePanOnFocus || + !store.autoPanOnNodeFocus || !nodeRef?.matches(':focus-visible') ) { return; diff --git a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte index bd42d658..206fdc8c 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte +++ b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte @@ -84,7 +84,7 @@ elevateNodesOnSelect, elevateEdgesOnSelect, nodesDraggable, - enablePanOnFocus, + autoPanOnNodeFocus, nodesConnectable, elementsSelectable, nodesFocusable, @@ -105,7 +105,7 @@ // Undo scroll events, preventing viewport from shifting when nodes outside of it are focused function wrapperOnScroll(e: UIEvent & { currentTarget: EventTarget & HTMLDivElement }) { e.currentTarget.scrollTo({ top: 0, left: 0, behavior: 'auto' }); - + // Forward the event to any existing onscroll handler if needed if (rest.onscroll) { rest.onscroll(e); diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts index 0d67197c..b3dcb6cb 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/types.ts +++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts @@ -236,7 +236,7 @@ export type SvelteFlowProps< * When `true`, the viewport will pan when a node is focused. * @default false */ - enablePanOnFocus?: boolean; + autoPanOnNodeFocus?: boolean; /** * Controls if all nodes should be connectable to each other * @default true diff --git a/packages/svelte/src/lib/store/initial-store.svelte.ts b/packages/svelte/src/lib/store/initial-store.svelte.ts index bedb2e2d..90b251a6 100644 --- a/packages/svelte/src/lib/store/initial-store.svelte.ts +++ b/packages/svelte/src/lib/store/initial-store.svelte.ts @@ -247,7 +247,6 @@ export function getInitialStore Date: Thu, 5 Jun 2025 19:37:47 +0200 Subject: [PATCH 16/87] chore(changeset): update --- .changeset/thirty-snakes-float.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/thirty-snakes-float.md b/.changeset/thirty-snakes-float.md index e22e0e41..8b39c4f3 100644 --- a/.changeset/thirty-snakes-float.md +++ b/.changeset/thirty-snakes-float.md @@ -3,4 +3,4 @@ "@xyflow/svelte": minor --- -Focus nodes on tab if not within the viewport and add a new prop `enablePanOnFocus` +Focus nodes on tab if not within the viewport and add a new prop `autoPanOnNodeFocus` From 34274eb44d9c70bb7ac12f8d4901399770b0a1d3 Mon Sep 17 00:00:00 2001 From: moklick Date: Tue, 10 Jun 2025 09:19:23 +0200 Subject: [PATCH 17/87] chore(autoPanOnNodeFocus): cleanup --- packages/react/src/components/NodeWrapper/index.tsx | 10 +++++++--- packages/react/src/container/NodeRenderer/index.tsx | 5 +---- packages/react/src/types/component-props.ts | 2 +- packages/react/src/types/nodes.ts | 1 - packages/svelte/src/lib/container/SvelteFlow/types.ts | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index 6d3b17b0..46e1ee01 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -29,7 +29,6 @@ export function NodeWrapper({ onContextMenu, onDoubleClick, nodesDraggable, - autoPanOnNodeFocus, elementsSelectable, nodesConnectable, nodesFocusable, @@ -162,11 +161,16 @@ export function NodeWrapper({ }; const onFocus = () => { - if (disableKeyboardA11y || !autoPanOnNodeFocus || !nodeRef.current?.matches(':focus-visible')) { + if (disableKeyboardA11y || !nodeRef.current?.matches(':focus-visible')) { + return; + } + + const { transform, width, height, autoPanOnNodeFocus, setCenter } = store.getState(); + + if (!autoPanOnNodeFocus) { return; } - const { transform, width, height, setCenter } = store.getState(); const withinViewport = getNodesInside(new Map([[id, node]]), { x: 0, y: 0, width, height }, transform, true).length > 0; diff --git a/packages/react/src/container/NodeRenderer/index.tsx b/packages/react/src/container/NodeRenderer/index.tsx index 22d7a54f..0b055bdb 100644 --- a/packages/react/src/container/NodeRenderer/index.tsx +++ b/packages/react/src/container/NodeRenderer/index.tsx @@ -29,7 +29,6 @@ export type NodeRendererProps = Pick< const selector = (s: ReactFlowState) => ({ nodesDraggable: s.nodesDraggable, - autoPanOnNodeFocus: s.autoPanOnNodeFocus, nodesConnectable: s.nodesConnectable, nodesFocusable: s.nodesFocusable, elementsSelectable: s.elementsSelectable, @@ -37,8 +36,7 @@ const selector = (s: ReactFlowState) => ({ }); function NodeRendererComponent(props: NodeRendererProps) { - const { nodesDraggable, nodesConnectable, nodesFocusable, elementsSelectable, autoPanOnNodeFocus, onError } = - useStore(selector, shallow); + const { nodesDraggable, nodesConnectable, nodesFocusable, elementsSelectable, onError } = useStore(selector, shallow); const nodeIds = useVisibleNodeIds(props.onlyRenderVisibleElements); const resizeObserver = useResizeObserver(); @@ -88,7 +86,6 @@ function NodeRendererComponent(props: NodeRendererProps = { nodesConnectable: boolean; elementsSelectable: boolean; nodesDraggable: boolean; - autoPanOnNodeFocus: boolean; nodesFocusable: boolean; onClick?: NodeMouseHandler; onDoubleClick?: NodeMouseHandler; diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts index b3dcb6cb..d575db1a 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/types.ts +++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts @@ -234,7 +234,7 @@ export type SvelteFlowProps< nodesDraggable?: boolean; /** * When `true`, the viewport will pan when a node is focused. - * @default false + * @default true */ autoPanOnNodeFocus?: boolean; /** From f0ecdeeda512a8058ce3e2df337aaaaf15639df2 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Tue, 10 Jun 2025 12:36:58 +0200 Subject: [PATCH 18/87] fix(a11y): remove outdated ariaRoleDescription field --- examples/react/src/examples/A11y/index.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/react/src/examples/A11y/index.tsx b/examples/react/src/examples/A11y/index.tsx index d409a43f..0d0e4d21 100644 --- a/examples/react/src/examples/A11y/index.tsx +++ b/examples/react/src/examples/A11y/index.tsx @@ -1,4 +1,4 @@ -import { MouseEvent, useState } from 'react'; +import { useState } from 'react'; import { ReactFlow, MiniMap, @@ -34,7 +34,6 @@ const initialNodes: Node[] = [ data: { label: 'Node 3' }, position: { x: 100, y: 100 }, className: 'light', - ariaRoleDescription: 'custom node role', ariaRole: 'button', }, { From 9c2108f44331b4b827f7d5d4e0463b320791a9fe Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 10 Jun 2025 16:39:51 +0200 Subject: [PATCH 19/87] correct node resizer control size for viewport zoom --- .../NodeResizer/NodeResizeControl.tsx | 12 ++++++++++-- .../src/lib/plugins/NodeResizer/ResizeControl.svelte | 1 + packages/system/src/styles/node-resizer.css | 6 +++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx b/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx index beaeb527..98bf766a 100644 --- a/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx +++ b/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx @@ -1,5 +1,6 @@ import { useRef, useEffect, memo } from 'react'; import cc from 'classcat'; +import { shallow } from 'zustand/shallow'; import { XYResizer, ResizeControlVariant, @@ -15,9 +16,12 @@ import { XYPosition, } from '@xyflow/system'; -import { useStoreApi } from '../../hooks/useStore'; +import { useStoreApi, useStore } from '../../hooks/useStore'; import { useNodeId } from '../../contexts/NodeIdContext'; import type { ResizeControlProps, ResizeControlLineProps } from './types'; +import { ReactFlowState } from '../../types'; + +const selector = (store: ReactFlowState) => store.transform[2]; function ResizeControl({ nodeId, @@ -47,6 +51,8 @@ function ResizeControl({ const resizer = useRef(null); + const zoom = useStore(selector, shallow); + useEffect(() => { if (!resizeControlRef.current || !id) { return; @@ -193,7 +199,9 @@ function ResizeControl({ const positionClassNames = controlPosition.split('-'); const colorStyleProp = variant === ResizeControlVariant.Line ? 'borderColor' : 'backgroundColor'; - const controlStyle = color ? { ...style, [colorStyleProp]: color } : style; + + const styleWithTransform = { ...style, '--xy-view-zoom-inverse': 1 / zoom }; + const controlStyle = color ? { ...styleWithTransform, [colorStyleProp]: color } : styleWithTransform; return (
{@render children?.()} diff --git a/packages/system/src/styles/node-resizer.css b/packages/system/src/styles/node-resizer.css index 1c031d45..196bc3a5 100644 --- a/packages/system/src/styles/node-resizer.css +++ b/packages/system/src/styles/node-resizer.css @@ -28,12 +28,12 @@ /* handle styles */ .xy-flow__resize-control.handle { - width: 4px; - height: 4px; + width: 5px; + height: 5px; border: 1px solid #fff; border-radius: 1px; background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default)); - transform: translate(-50%, -50%); + transform: translate(-50%, -50%) scale(max(var(--xy-view-zoom-inverse, 1), 1)); } .xy-flow__resize-control.handle.left { From 050b511cd6966ba526299f7ca11f9ca4791fd2cf Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 10 Jun 2025 16:42:01 +0200 Subject: [PATCH 20/87] chore(changeset) --- .changeset/short-bugs-stare.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/short-bugs-stare.md diff --git a/.changeset/short-bugs-stare.md b/.changeset/short-bugs-stare.md new file mode 100644 index 00000000..1ac80cac --- /dev/null +++ b/.changeset/short-bugs-stare.md @@ -0,0 +1,7 @@ +--- +'@xyflow/react': minor +'@xyflow/svelte': minor +'@xyflow/system': patch +--- + +Prevent NodeResizer controls to become too small when zooming out From d1f8924b40caf4870a8b2725611e37bf4a6025f1 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 10 Jun 2025 20:44:14 +0200 Subject: [PATCH 21/87] fix astro example, fix svelte SSR, fix portals --- examples/astro-xyflow/package.json | 8 +- .../components/SvelteFlowExample/index.svelte | 21 +- .../SvelteFlowInitialExample/index.svelte | 7 +- examples/astro-xyflow/src/pages/index.astro | 56 +- .../svelte/src/lib/actions/portal/index.ts | 1 + .../src/lib/actions/portal/portal.svelte.ts | 29 +- .../src/lib/actions/portal/utils.svelte.ts | 17 + .../lib/components/EdgeLabel/EdgeLabel.svelte | 3 +- .../components/EdgeWrapper/EdgeWrapper.svelte | 4 +- .../components/NodeWrapper/NodeWrapper.svelte | 8 +- .../ViewportPortal/ViewportPortal.svelte | 4 +- .../plugins/NodeToolbar/NodeToolbar.svelte | 3 +- .../src/lib/store/initial-store.svelte.ts | 39 +- pnpm-lock.yaml | 3800 +++++++++-------- 14 files changed, 2093 insertions(+), 1907 deletions(-) create mode 100644 packages/svelte/src/lib/actions/portal/utils.svelte.ts diff --git a/examples/astro-xyflow/package.json b/examples/astro-xyflow/package.json index 94d6e199..313afc4b 100644 --- a/examples/astro-xyflow/package.json +++ b/examples/astro-xyflow/package.json @@ -11,15 +11,15 @@ "astro": "astro" }, "dependencies": { - "@astrojs/react": "^3.0.2", - "@astrojs/svelte": "^4.0.2", + "@astrojs/react": "^4.3.0", + "@astrojs/svelte": "^7.1.0", "@types/react": "^18.2.24", "@types/react-dom": "^18.2.8", "@xyflow/react": "workspace:^", "@xyflow/svelte": "workspace:^", - "astro": "^3.2.2", + "astro": "^5.9.2", "react": "^18.2.0", "react-dom": "^18.2.0", - "svelte": "^4.2.1" + "svelte": "^5.33.18" } } diff --git a/examples/astro-xyflow/src/components/SvelteFlowExample/index.svelte b/examples/astro-xyflow/src/components/SvelteFlowExample/index.svelte index 73196d53..ff7e98c1 100644 --- a/examples/astro-xyflow/src/components/SvelteFlowExample/index.svelte +++ b/examples/astro-xyflow/src/components/SvelteFlowExample/index.svelte @@ -1,10 +1,18 @@
- + + +
[100, 100] inside the flow.
+
diff --git a/examples/astro-xyflow/src/components/SvelteFlowInitialExample/index.svelte b/examples/astro-xyflow/src/components/SvelteFlowInitialExample/index.svelte index 8fbe4905..3f3ffcd7 100644 --- a/examples/astro-xyflow/src/components/SvelteFlowInitialExample/index.svelte +++ b/examples/astro-xyflow/src/components/SvelteFlowInitialExample/index.svelte @@ -1,11 +1,10 @@
- + diff --git a/examples/astro-xyflow/src/pages/index.astro b/examples/astro-xyflow/src/pages/index.astro index d7b14558..4106c9b1 100644 --- a/examples/astro-xyflow/src/pages/index.astro +++ b/examples/astro-xyflow/src/pages/index.astro @@ -6,38 +6,38 @@ import SvelteFlowInitialApp from '../components/SvelteFlowInitialExample/index.s --- - - - - - Astro example for React Flow and Svelte Flow + + + + + Astro example for React Flow and Svelte Flow - - - -

React Flow

-

no client hydration

- + + + +

React Flow

+

no client hydration

+ -

client hydration on load (client:load)

- +

client hydration on load (client:load)

+ -

client hydration on load (client:load) and initialWidth / initialHeight

- +

client hydration on load (client:load) and initialWidth / initialHeight

+ -

Svelte Flow

- +

Svelte Flow

+ -

client hydration on load (client:load)

- +

client hydration on load (client:load)

+ -

client hydration on load (client:load) and initialWidth / initialHeight

- - - +

client hydration on load (client:load) and initialWidth / initialHeight

+ + diff --git a/packages/svelte/src/lib/actions/portal/index.ts b/packages/svelte/src/lib/actions/portal/index.ts index 927ec7f0..320e1f32 100644 --- a/packages/svelte/src/lib/actions/portal/index.ts +++ b/packages/svelte/src/lib/actions/portal/index.ts @@ -1 +1,2 @@ export { portal } from './portal.svelte'; +export { hideDuringSSR } from './utils.svelte'; diff --git a/packages/svelte/src/lib/actions/portal/portal.svelte.ts b/packages/svelte/src/lib/actions/portal/portal.svelte.ts index 40dea420..ae4f3fce 100644 --- a/packages/svelte/src/lib/actions/portal/portal.svelte.ts +++ b/packages/svelte/src/lib/actions/portal/portal.svelte.ts @@ -15,25 +15,32 @@ function tryToMount(node: Element, domNode: Element | null, target: Portal | und } export function portal(node: Element, target: Portal | undefined) { - // TODO: does this work if called outside of SvelteFlow - const store = useStore(); + const { domNode } = $derived(useStore()); - let previousTarget: Portal | undefined = target; - - tryToMount(node, store.domNode, target); + let destroyEffect: (() => void) | undefined; + // svelte-ignore state_referenced_locally + if (domNode) { + // if the domNode is already mounted, we can directly try to mount the node + tryToMount(node, domNode, target); + } else { + // if the domNode is not mounted yet, we need to wait for it to be ready + destroyEffect = $effect.root(() => { + $effect(() => { + tryToMount(node, domNode, target); + destroyEffect?.(); + }); + }); + } return { - async update(target: Portal) { - if (target !== previousTarget) { - node.parentNode?.removeChild(node); - previousTarget = target; - } - tryToMount(node, store.domNode, target); + async update(target: Portal | undefined) { + tryToMount(node, domNode, target); }, destroy() { if (node.parentNode) { node.parentNode.removeChild(node); } + destroyEffect?.(); } }; } diff --git a/packages/svelte/src/lib/actions/portal/utils.svelte.ts b/packages/svelte/src/lib/actions/portal/utils.svelte.ts new file mode 100644 index 00000000..0c083491 --- /dev/null +++ b/packages/svelte/src/lib/actions/portal/utils.svelte.ts @@ -0,0 +1,17 @@ +export function hideDuringSSR(): { display: 'none' | undefined } { + let display = $state(typeof window === 'undefined' ? ('none' as const) : undefined); + if (display) { + const destroyEffect = $effect.root(() => { + $effect(() => { + display = undefined; + destroyEffect?.(); + }); + }); + } + + return { + get display() { + return display; + } + }; +} diff --git a/packages/svelte/src/lib/components/EdgeLabel/EdgeLabel.svelte b/packages/svelte/src/lib/components/EdgeLabel/EdgeLabel.svelte index 83ce1411..4bfd569e 100644 --- a/packages/svelte/src/lib/components/EdgeLabel/EdgeLabel.svelte +++ b/packages/svelte/src/lib/components/EdgeLabel/EdgeLabel.svelte @@ -1,6 +1,6 @@ diff --git a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte index 17a2e396..7aec74fa 100644 --- a/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte +++ b/packages/svelte/src/lib/components/NodeWrapper/NodeWrapper.svelte @@ -66,7 +66,9 @@ let draggable = $derived(_draggable ?? store.nodesDraggable); let selectable = $derived(_selectable ?? store.elementsSelectable); let connectable = $derived(_connectable ?? store.nodesConnectable); - let initialized = $derived(nodeHasDimensions(node) && !!node.internals.handleBounds); + let hasDimensions = $derived(nodeHasDimensions(node)); + let hasHandleBounds = $derived(!!node.internals.handleBounds); + let isInitialized = $derived(hasDimensions && hasHandleBounds); let focusable = $derived(_focusable ?? store.nodesFocusable); function isInParentLookup(id: string) { @@ -150,7 +152,7 @@ $effect(() => { /* eslint-disable @typescript-eslint/no-unused-expressions */ - if (resizeObserver && (!initialized || nodeRef !== prevNodeRef)) { + if (resizeObserver && (!isInitialized || nodeRef !== prevNodeRef)) { prevNodeRef && resizeObserver.unobserve(prevNodeRef); nodeRef && resizeObserver.observe(nodeRef); prevNodeRef = nodeRef; @@ -265,7 +267,7 @@ class:parent={isParent} style:z-index={zIndex} style:transform="translate({positionX}px, {positionY}px)" - style:visibility={initialized ? 'visible' : 'hidden'} + style:visibility={hasDimensions ? 'visible' : 'hidden'} style={nodeStyle} onclick={onSelectNodeHandler} onpointerenter={onnodepointerenter diff --git a/packages/svelte/src/lib/components/ViewportPortal/ViewportPortal.svelte b/packages/svelte/src/lib/components/ViewportPortal/ViewportPortal.svelte index a8ce3cd4..980b33ae 100644 --- a/packages/svelte/src/lib/components/ViewportPortal/ViewportPortal.svelte +++ b/packages/svelte/src/lib/components/ViewportPortal/ViewportPortal.svelte @@ -1,10 +1,10 @@ -
+
{@render children?.()}
diff --git a/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte b/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte index 65a5c2d3..17efdef2 100644 --- a/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte +++ b/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte @@ -2,7 +2,7 @@ import { getContext } from 'svelte'; import { Position, getNodeToolbarTransform } from '@xyflow/system'; - import { portal } from '$lib/actions/portal'; + import { hideDuringSSR, portal } from '$lib/actions/portal'; import { useStore } from '$lib/store'; import { useSvelteFlow } from '$lib/hooks/useSvelteFlow.svelte'; @@ -68,6 +68,7 @@ {#if store.domNode && isActive && toolbarNodes}
`${acc}${node.id} `, '').trim()} style:position="absolute" diff --git a/packages/svelte/src/lib/store/initial-store.svelte.ts b/packages/svelte/src/lib/store/initial-store.svelte.ts index 90b251a6..8c2da3cf 100644 --- a/packages/svelte/src/lib/store/initial-store.svelte.ts +++ b/packages/svelte/src/lib/store/initial-store.svelte.ts @@ -84,6 +84,25 @@ export const initialEdgeTypes = { step: StepEdgeInternal }; +function getInitialViewport( + // This is just used to make sure adoptUserNodes is called before we calculate the viewport + _nodesInitialized: boolean, + fitView: boolean | undefined, + initialViewport: Viewport | undefined, + width: number, + height: number, + nodeLookup: NodeLookup +) { + if (fitView && !initialViewport && width && height) { + const bounds = getInternalNodesBounds(nodeLookup, { + filter: (node) => !!((node.width || node.initialWidth) && (node.height || node.initialHeight)) + }); + return getViewportForBounds(bounds, width, height, 0.5, 2, 0.1); + } else { + return initialViewport ?? { x: 0, y: 0, zoom: 1 }; + } +} + export function getInitialStore( signals: StoreSignals ) { @@ -298,7 +317,16 @@ export function getInitialStore - !!((node.width || node.initialWidth) && (node.height || node.initialHeight)) - }); - this.viewport = getViewportForBounds(bounds, this.width, this.height, 0.5, 2, 0.1); - } - if (process.env.NODE_ENV === 'development') { warnIfDeeplyReactive(signals.nodes, 'nodes'); warnIfDeeplyReactive(signals.edges, 'edges'); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d47c4673..2a0778b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -48,11 +48,11 @@ importers: examples/astro-xyflow: dependencies: '@astrojs/react': - specifier: ^3.0.2 - version: 3.0.2(@types/react-dom@18.2.8)(@types/react@18.2.24)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)) + specifier: ^4.3.0 + version: 4.3.0(@types/node@20.14.6)(@types/react-dom@18.2.8)(@types/react@18.2.24)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(terser@5.31.0) '@astrojs/svelte': - specifier: ^4.0.2 - version: 4.0.2(astro@3.2.2(@types/node@20.14.6)(terser@5.31.0))(svelte@4.2.1)(typescript@5.8.3)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)) + specifier: ^7.1.0 + version: 7.1.0(@types/node@20.14.6)(astro@5.9.2(@types/node@20.14.6)(rollup@4.39.0)(terser@5.31.0)(typescript@5.8.3))(svelte@5.33.18)(terser@5.31.0)(typescript@5.8.3) '@types/react': specifier: ^18.2.24 version: 18.2.24 @@ -66,8 +66,8 @@ importers: specifier: workspace:^ version: link:../../packages/svelte astro: - specifier: ^3.2.2 - version: 3.2.2(@types/node@20.14.6)(terser@5.31.0) + specifier: ^5.9.2 + version: 5.9.2(@types/node@20.14.6)(rollup@4.39.0)(terser@5.31.0)(typescript@5.8.3) react: specifier: ^18.2.0 version: 18.2.0 @@ -75,8 +75,8 @@ importers: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) svelte: - specifier: ^4.2.1 - version: 4.2.1 + specifier: ^5.33.18 + version: 5.33.18 examples/react: dependencies: @@ -134,7 +134,7 @@ importers: version: 4.1.1(vite@4.5.0(@types/node@20.14.6)(terser@5.31.0)) '@vitejs/plugin-react-swc': specifier: ^3.4.1 - version: 3.4.1(vite@4.5.0(@types/node@20.14.6)(terser@5.31.0)) + version: 3.4.1(@swc/helpers@0.5.17)(vite@4.5.0(@types/node@20.14.6)(terser@5.31.0)) cypress: specifier: 13.6.6 version: 13.6.6 @@ -284,16 +284,16 @@ importers: version: 9.24.0 '@sveltejs/adapter-auto': specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0))) + version: 6.0.0(@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))) '@sveltejs/kit': specifier: ^2.20.7 - version: 2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) + version: 2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) '@sveltejs/package': specifier: ^2.3.11 version: 2.3.11(svelte@5.27.0)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': specifier: ^5.0.3 - version: 5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) + version: 5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) '@typescript-eslint/eslint-plugin': specifier: ^8.30.1 version: 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) @@ -356,7 +356,7 @@ importers: version: 1.1.2(svelte@5.27.0) svelte-preprocess: specifier: ^6.0.3 - version: 6.0.3(@babel/core@7.24.7)(postcss-load-config@5.0.2(postcss@8.5.3))(postcss@8.5.3)(svelte@5.27.0)(typescript@5.8.3) + version: 6.0.3(@babel/core@7.27.4)(postcss-load-config@5.0.2(postcss@8.5.3))(postcss@8.5.3)(svelte@5.27.0)(typescript@5.8.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -417,7 +417,7 @@ importers: dependencies: '@playwright/experimental-ct-react': specifier: ^1.51.1 - version: 1.51.1(@types/node@20.14.6)(terser@5.31.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) + version: 1.51.1(@types/node@20.14.6)(terser@5.31.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) '@types/react': specifier: ^18.3.3 version: 18.3.3 @@ -497,48 +497,43 @@ packages: resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} engines: {node: '>=0.10.0'} - '@ampproject/remapping@2.2.1': - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} - engines: {node: '>=6.0.0'} - '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@astrojs/compiler@2.2.1': - resolution: {integrity: sha512-NJ1lWKzMkyEjE3W5NpPNAVot4/PLF5om/P6ekxNu3iLS05CaYFTcp7WpYMjdCC252b7wkNVAs45FNkVQ+RHW/g==} + '@astrojs/compiler@2.12.2': + resolution: {integrity: sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==} - '@astrojs/internal-helpers@0.2.0': - resolution: {integrity: sha512-NQ4ppp1CM0HNkKbJNM4saVSfmUYzGlRalF6wx7F6T/MYHYSWGuojY89/oFTy4t8VlOGUCUijlsVNNeziWaUo5g==} + '@astrojs/internal-helpers@0.6.1': + resolution: {integrity: sha512-l5Pqf6uZu31aG+3Lv8nl/3s4DbUzdlxTWDof4pEpto6GUJNhhCbelVi9dEyurOVyqaelwmS9oSyOWOENSfgo9A==} - '@astrojs/markdown-remark@3.2.0': - resolution: {integrity: sha512-jigyLfefUZPKgVmmraCkVpdUuFH1R3SrpgQO13axsgwLDBgkggaQpNR5Ag4O9PDualeBtbdt30aYSfvnBKx9Hg==} + '@astrojs/markdown-remark@6.3.2': + resolution: {integrity: sha512-bO35JbWpVvyKRl7cmSJD822e8YA8ThR/YbUsciWNA7yTcqpIAL2hJDToWP5KcZBWxGT6IOdOkHSXARSNZc4l/Q==} + + '@astrojs/prism@3.3.0': + resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} + + '@astrojs/react@4.3.0': + resolution: {integrity: sha512-N02aj52Iezn69qHyx5+XvPqgsPMEnel9mI5JMbGiRMTzzLMuNaxRVoQTaq2024Dpr7BLsxCjqMkNvelqMDhaHA==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} peerDependencies: - astro: ^3.1.0 + '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 + '@types/react-dom': ^17.0.17 || ^18.0.6 || ^19.0.0 + react: ^17.0.2 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0 - '@astrojs/prism@3.0.0': - resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} - engines: {node: '>=18.14.1'} - - '@astrojs/react@3.0.2': - resolution: {integrity: sha512-aooNIuQxTg+IWGMZPuIEwBeBi4/TCPCMsr3714zuLjAjukVd5ZrX/bCNxJqDWU4HNwUm4XFU1OhcEvYOHa5uMQ==} - engines: {node: '>=18.14.1'} + '@astrojs/svelte@7.1.0': + resolution: {integrity: sha512-nNAO7iFgCZXCN31N4xBSS/k7vZAZxeZ/v8V6VWZOKG47gVlxeAJBHzn2GlXMMVkxIamr6dhrkDrhYFKIPzoGpw==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} peerDependencies: - '@types/react': ^17.0.50 || ^18.0.21 - '@types/react-dom': ^17.0.17 || ^18.0.6 - react: ^17.0.2 || ^18.0.0 - react-dom: ^17.0.2 || ^18.0.0 + astro: ^5.0.0 + svelte: ^5.1.16 + typescript: ^5.3.3 - '@astrojs/svelte@4.0.2': - resolution: {integrity: sha512-XB9Sexq+iW5aUpctDk6zuKHbWIAuPlAnZKbfgaS9VOaOUtx1t12crP9YoKEVcTifXYgoRuWWfeEAm2I8pYlLIQ==} - engines: {node: '>=18.14.1'} - peerDependencies: - astro: ^3.0.11 - svelte: ^3.55.0 || ^4.0.0 - - '@astrojs/telemetry@3.0.2': - resolution: {integrity: sha512-ef+jqCkqopCzjGfsMsr+8p56Nj6F9ZzouWcWZt+dKsqbRccI3c8K3jfkLcdq4AyfFZtKBDB6N4ZuI68g33oiOg==} - engines: {node: '>=18.14.1'} + '@astrojs/telemetry@3.3.0': + resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} '@babel/code-frame@7.22.13': resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} @@ -552,6 +547,10 @@ packages: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.23.2': resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==} engines: {node: '>=6.9.0'} @@ -560,6 +559,10 @@ packages: resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.27.5': + resolution: {integrity: sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.23.2': resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==} engines: {node: '>=6.9.0'} @@ -568,6 +571,10 @@ packages: resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} engines: {node: '>=6.9.0'} + '@babel/core@7.27.4': + resolution: {integrity: sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.23.0': resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} engines: {node: '>=6.9.0'} @@ -576,8 +583,8 @@ packages: resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.22.5': - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + '@babel/generator@7.27.5': + resolution: {integrity: sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==} engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.22.15': @@ -588,6 +595,10 @@ packages: resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.27.2': + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-environment-visitor@7.22.20': resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} engines: {node: '>=6.9.0'} @@ -620,6 +631,10 @@ packages: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.27.1': + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.23.0': resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==} engines: {node: '>=6.9.0'} @@ -632,6 +647,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.27.3': + resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-plugin-utils@7.22.5': resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} engines: {node: '>=6.9.0'} @@ -640,6 +661,10 @@ packages: resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.27.1': + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} + '@babel/helper-simple-access@7.22.5': resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} engines: {node: '>=6.9.0'} @@ -668,6 +693,10 @@ packages: resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.22.20': resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} @@ -676,6 +705,10 @@ packages: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.27.1': + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.22.15': resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==} engines: {node: '>=6.9.0'} @@ -684,6 +717,10 @@ packages: resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.27.1': + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.23.2': resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==} engines: {node: '>=6.9.0'} @@ -692,6 +729,10 @@ packages: resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.27.6': + resolution: {integrity: sha512-muE8Tt8M22638HU31A3CgfSUciwz1fhATfoVai05aPXGor//CdWDCbnlY1yvBPo07njuVOCNGCSp/GTt12lIug==} + engines: {node: '>=6.9.0'} + '@babel/highlight@7.22.20': resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} engines: {node: '>=6.9.0'} @@ -719,11 +760,10 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-syntax-jsx@7.22.5': - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/parser@7.27.5': + resolution: {integrity: sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==} + engines: {node: '>=6.0.0'} + hasBin: true '@babel/plugin-transform-react-jsx-self@7.22.5': resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==} @@ -737,6 +777,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-self@7.27.1': + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-react-jsx-source@7.22.5': resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==} engines: {node: '>=6.9.0'} @@ -749,8 +795,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.22.15': - resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} + '@babel/plugin-transform-react-jsx-source@7.27.1': + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -767,6 +813,10 @@ packages: resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.23.2': resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} engines: {node: '>=6.9.0'} @@ -775,6 +825,10 @@ packages: resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.27.4': + resolution: {integrity: sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.23.0': resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} engines: {node: '>=6.9.0'} @@ -787,6 +841,13 @@ packages: resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} engines: {node: '>=6.9.0'} + '@babel/types@7.27.6': + resolution: {integrity: sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==} + engines: {node: '>=6.9.0'} + + '@capsizecss/unpack@2.4.0': + resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==} + '@changesets/apply-release-plan@6.1.4': resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} @@ -869,6 +930,9 @@ packages: resolution: {integrity: sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==} engines: {node: '>17.0.0'} + '@emnapi/runtime@1.4.3': + resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@esbuild/aix-ppc64@0.25.2': resolution: {integrity: sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==} engines: {node: '>=18'} @@ -881,12 +945,6 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.19.5': - resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - '@esbuild/android-arm64@0.25.2': resolution: {integrity: sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==} engines: {node: '>=18'} @@ -899,12 +957,6 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.19.5': - resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - '@esbuild/android-arm@0.25.2': resolution: {integrity: sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==} engines: {node: '>=18'} @@ -917,12 +969,6 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.19.5': - resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - '@esbuild/android-x64@0.25.2': resolution: {integrity: sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==} engines: {node: '>=18'} @@ -935,12 +981,6 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.19.5': - resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - '@esbuild/darwin-arm64@0.25.2': resolution: {integrity: sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==} engines: {node: '>=18'} @@ -953,12 +993,6 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.19.5': - resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - '@esbuild/darwin-x64@0.25.2': resolution: {integrity: sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==} engines: {node: '>=18'} @@ -971,12 +1005,6 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.19.5': - resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - '@esbuild/freebsd-arm64@0.25.2': resolution: {integrity: sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==} engines: {node: '>=18'} @@ -989,12 +1017,6 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.19.5': - resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - '@esbuild/freebsd-x64@0.25.2': resolution: {integrity: sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==} engines: {node: '>=18'} @@ -1007,12 +1029,6 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.19.5': - resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - '@esbuild/linux-arm64@0.25.2': resolution: {integrity: sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==} engines: {node: '>=18'} @@ -1025,12 +1041,6 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.19.5': - resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - '@esbuild/linux-arm@0.25.2': resolution: {integrity: sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==} engines: {node: '>=18'} @@ -1043,12 +1053,6 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.19.5': - resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - '@esbuild/linux-ia32@0.25.2': resolution: {integrity: sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==} engines: {node: '>=18'} @@ -1061,12 +1065,6 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.19.5': - resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - '@esbuild/linux-loong64@0.25.2': resolution: {integrity: sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==} engines: {node: '>=18'} @@ -1079,12 +1077,6 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.19.5': - resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - '@esbuild/linux-mips64el@0.25.2': resolution: {integrity: sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==} engines: {node: '>=18'} @@ -1097,12 +1089,6 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.19.5': - resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - '@esbuild/linux-ppc64@0.25.2': resolution: {integrity: sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==} engines: {node: '>=18'} @@ -1115,12 +1101,6 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.19.5': - resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - '@esbuild/linux-riscv64@0.25.2': resolution: {integrity: sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==} engines: {node: '>=18'} @@ -1133,12 +1113,6 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.19.5': - resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - '@esbuild/linux-s390x@0.25.2': resolution: {integrity: sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==} engines: {node: '>=18'} @@ -1151,12 +1125,6 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.19.5': - resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - '@esbuild/linux-x64@0.25.2': resolution: {integrity: sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==} engines: {node: '>=18'} @@ -1175,12 +1143,6 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.19.5': - resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - '@esbuild/netbsd-x64@0.25.2': resolution: {integrity: sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==} engines: {node: '>=18'} @@ -1199,12 +1161,6 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.19.5': - resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - '@esbuild/openbsd-x64@0.25.2': resolution: {integrity: sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==} engines: {node: '>=18'} @@ -1217,12 +1173,6 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.19.5': - resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - '@esbuild/sunos-x64@0.25.2': resolution: {integrity: sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==} engines: {node: '>=18'} @@ -1235,12 +1185,6 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.19.5': - resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - '@esbuild/win32-arm64@0.25.2': resolution: {integrity: sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==} engines: {node: '>=18'} @@ -1253,12 +1197,6 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.19.5': - resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - '@esbuild/win32-ia32@0.25.2': resolution: {integrity: sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==} engines: {node: '>=18'} @@ -1271,12 +1209,6 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.19.5': - resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - '@esbuild/win32-x64@0.25.2': resolution: {integrity: sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==} engines: {node: '>=18'} @@ -1347,10 +1279,6 @@ packages: resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@fastify/busboy@2.0.0': - resolution: {integrity: sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==} - engines: {node: '>=14'} - '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -1386,6 +1314,111 @@ packages: resolution: {integrity: sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==} engines: {node: '>=18.18'} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@jridgewell/gen-mapping@0.3.3': resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} engines: {node: '>=6.0.0'} @@ -1443,6 +1476,9 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + '@playwright/experimental-ct-core@1.51.1': resolution: {integrity: sha512-kpRZWBT3SMukL1fx8BwEj385Pkgtp86bBKzmrmJU30lWlQiIDFNaIHosgxQC68c8y2mg3Una/lBSHNc2Fotgkw==} engines: {node: '>=18'} @@ -1480,6 +1516,9 @@ packages: resolution: {integrity: sha512-BHdhcWgeiudl91HvVa2wxqZjSHbheSgIiDvxrF1VjFzBzpTtuDPkOdOi3Iqvc08kXtFkLjhbS+ML9aM8mJS+wQ==} engines: {node: '>=14.0.0'} + '@rolldown/pluginutils@1.0.0-beta.11': + resolution: {integrity: sha512-L/gAA/hyCSuzTF1ftlzUSI/IKr2POHsv1Dd78GfqkR83KMNuswWD61JxGV2L7nRwBBBSDr6R1gCkdTmoN7W4ag==} + '@rollup/plugin-commonjs@25.0.8': resolution: {integrity: sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==} engines: {node: '>=14.0.0'} @@ -1538,6 +1577,15 @@ packages: rollup: optional: true + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.18.0': resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} cpu: [arm] @@ -1718,6 +1766,27 @@ packages: cpu: [x64] os: [win32] + '@shikijs/core@3.6.0': + resolution: {integrity: sha512-9By7Xb3olEX0o6UeJyPLI1PE1scC4d3wcVepvtv2xbuN9/IThYN4Wcwh24rcFeASzPam11MCq8yQpwwzCgSBRw==} + + '@shikijs/engine-javascript@3.6.0': + resolution: {integrity: sha512-7YnLhZG/TU05IHMG14QaLvTW/9WiK8SEYafceccHUSXs2Qr5vJibUwsDfXDLmRi0zHdzsxrGKpSX6hnqe0k8nA==} + + '@shikijs/engine-oniguruma@3.6.0': + resolution: {integrity: sha512-nmOhIZ9yT3Grd+2plmW/d8+vZ2pcQmo/UnVwXMUXAKTXdi+LK0S08Ancrz5tQQPkxvjBalpMW2aKvwXfelauvA==} + + '@shikijs/langs@3.6.0': + resolution: {integrity: sha512-IdZkQJaLBu1LCYCwkr30hNuSDfllOT8RWYVZK1tD2J03DkiagYKRxj/pDSl8Didml3xxuyzUjgtioInwEQM/TA==} + + '@shikijs/themes@3.6.0': + resolution: {integrity: sha512-Fq2j4nWr1DF4drvmhqKq8x5vVQ27VncF8XZMBuHuQMZvUSS3NBgpqfwz/FoGe36+W6PvniZ1yDlg2d4kmYDU6w==} + + '@shikijs/types@3.6.0': + resolution: {integrity: sha512-cLWFiToxYu0aAzJqhXTQsFiJRTFDAGl93IrMSBNaGSzs7ixkLfdG6pH11HipuWFGW5vyx4X47W8HDQ7eSrmBUg==} + + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + '@sideway/address@4.1.4': resolution: {integrity: sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==} @@ -1762,14 +1831,6 @@ packages: peerDependencies: svelte: ^3.44.0 || ^4.0.0 || ^5.0.0-next.1 - '@sveltejs/vite-plugin-svelte-inspector@1.0.4': - resolution: {integrity: sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==} - engines: {node: ^14.18.0 || >= 16} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^2.2.0 - svelte: ^3.54.0 || ^4.0.0 - vite: ^4.0.0 - '@sveltejs/vite-plugin-svelte-inspector@4.0.1': resolution: {integrity: sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} @@ -1778,13 +1839,6 @@ packages: svelte: ^5.0.0 vite: ^6.0.0 - '@sveltejs/vite-plugin-svelte@2.5.3': - resolution: {integrity: sha512-erhNtXxE5/6xGZz/M9eXsmI7Pxa6MS7jyTy06zN3Ck++ldrppOnOlJwHHTsMC7DHDQdgUp4NAc4cDNQ9eGdB/w==} - engines: {node: ^14.18.0 || >= 16} - peerDependencies: - svelte: ^3.54.0 || ^4.0.0 || ^5.0.0-next.0 - vite: ^4.0.0 - '@sveltejs/vite-plugin-svelte@5.0.3': resolution: {integrity: sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw==} engines: {node: ^18.0.0 || ^20.0.0 || >=22} @@ -1864,6 +1918,9 @@ packages: '@swc/counter@0.1.2': resolution: {integrity: sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==} + '@swc/helpers@0.5.17': + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + '@swc/types@0.1.5': resolution: {integrity: sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==} @@ -1871,9 +1928,6 @@ packages: resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} engines: {node: '>=10.13.0'} - '@types/babel__core@7.20.3': - resolution: {integrity: sha512-54fjTSeSHwfan8AyHWrKbfBWiEUrNTZsUwPTDSNaaP1QDQIZbeNUg3a59E9D+375MzUw/x1vx2/0F5LBz+AeYA==} - '@types/babel__core@7.20.4': resolution: {integrity: sha512-mLnSC22IC4vcWiuObSRjrLd9XcBTGf59vUSoq2jkQDJ/QQ8PMI9rSuzE+aEV8karUMbskw07bKYoUJCKTUaygg==} @@ -1922,9 +1976,6 @@ packages: '@types/debug@4.1.10': resolution: {integrity: sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==} - '@types/estree@1.0.3': - resolution: {integrity: sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -1934,8 +1985,11 @@ packages: '@types/estree@1.0.7': resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - '@types/hast@2.3.7': - resolution: {integrity: sha512-EVLigw5zInURhzfXUM65eixfadfsHKomGKUakToXo84t8gGIJuTcD2xooM2See7GyQ7DRtYjhCHnSUQez8JaLw==} + '@types/fontkit@2.0.8': + resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} + + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} '@types/is-ci@3.0.3': resolution: {integrity: sha512-FdHbjLiN2e8fk9QYQyVYZrK8svUDJpxSaSWLUga8EZS1RGAvvrqM9zbVARBtQuYPeLgnJxM2xloOswPwj1o2cQ==} @@ -1943,12 +1997,6 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/json5@0.0.30': - resolution: {integrity: sha512-sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==} - - '@types/mdast@3.0.14': - resolution: {integrity: sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw==} - '@types/mdast@4.0.2': resolution: {integrity: sha512-tYR83EignvhYO9iU3kDg8V28M0jqyh9zzp5GV+EO+AYnyUl3P5ltkTeJuTiFZQFz670FSb3EwT/6LQdX+UdKfw==} @@ -1958,8 +2006,8 @@ packages: '@types/ms@0.7.33': resolution: {integrity: sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==} - '@types/nlcst@1.0.3': - resolution: {integrity: sha512-cpO6PPMz4E++zxP2Vhp/3KVl2Nbtj+Iksb25rlRinG7mphu2zmCIKWWlqdsx1NwJEISogR2eeZTD7JqLOCzaiw==} + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} @@ -1973,9 +2021,6 @@ packages: '@types/normalize-package-data@2.4.3': resolution: {integrity: sha512-ehPtgRgaULsFG8x0NeYJvmyH1hmlfsNLujHe9dQEia/7MAJYdzMSi19JtchUHjmBA6XC/75dK55mzZH+RyieSg==} - '@types/parse5@6.0.3': - resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} - '@types/prop-types@15.7.10': resolution: {integrity: sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A==} @@ -2003,9 +2048,6 @@ packages: '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - '@types/resolve@1.20.4': - resolution: {integrity: sha512-BKGK0T1VgB1zD+PwQR4RRf0ais3NyvH1qjLUrHI5SEiccYaJrhLstLuoXFWJ+2Op9whGizSPUMGPJY/Qtb/A2w==} - '@types/scheduler@0.16.5': resolution: {integrity: sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==} @@ -2018,9 +2060,6 @@ packages: '@types/sizzle@2.3.8': resolution: {integrity: sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==} - '@types/unist@2.0.9': - resolution: {integrity: sha512-zC0iXxAv1C1ERURduJueYzkzZ2zaGyc+P2c95hgkikHPr3z8EdUZOlgEQ5X0DRmwDZn+hekycQnoeiiRVrmilQ==} - '@types/unist@3.0.1': resolution: {integrity: sha512-ue/hDUpPjC85m+PM9OQDMZr3LywT+CT6mPsQq8OJtCLiERkGRcQUFvu9XASF5XWqyZFXbf15lvb3JFJ4dRLWPg==} @@ -2124,6 +2163,9 @@ packages: resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + '@vitejs/plugin-react-swc@3.4.1': resolution: {integrity: sha512-7YQOQcVV5x1luD8nkbCDdyYygFvn1hjqJk68UvNAzY2QG4o4N5EwAhLLFNOcd1HrdMwDl0VElP8VutoWf9IvJg==} peerDependencies: @@ -2141,6 +2183,12 @@ packages: peerDependencies: vite: ^4.2.0 || ^5.0.0 + '@vitejs/plugin-react@4.5.2': + resolution: {integrity: sha512-QNVT3/Lxx99nMQWJWF7K4N6apUEuT0KlZA3mx/mVaoGj3smm/8rc8ezz15J1pcbcjDK0V15rpHetVfya08r76Q==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2151,13 +2199,13 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.11.2: - resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true - acorn@8.14.0: - resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} engines: {node: '>=0.4.0'} hasBin: true @@ -2187,9 +2235,6 @@ packages: resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} engines: {node: '>=12'} - ansi-sequence-parser@1.1.1: - resolution: {integrity: sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==} - ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -2218,9 +2263,6 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - aria-query@5.3.2: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} @@ -2290,9 +2332,9 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - astro@3.2.2: - resolution: {integrity: sha512-vLOOGyD2g1HRkCQAFHmHUrVAbMI5sgUqKignBMtXNantgEq1P17sL2cvH0Yy2ibNN9DHZ/4TknXmwHAig8PJNg==} - engines: {node: '>=18.14.1', npm: '>=6.14.0'} + astro@5.9.2: + resolution: {integrity: sha512-K/zZlQOWMpamfLDOls5jvG7lrsjH1gkk3ESRZyZDCkVBtKHMF4LbjwCicm/iBb3mX3V/PerqRYzLbOy3/4JLCQ==} + engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true async@3.2.5: @@ -2336,22 +2378,19 @@ packages: axios@0.27.2: resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} - axobject-query@3.2.1: - resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - b4a@1.6.4: - resolution: {integrity: sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==} - bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + base-64@1.0.0: + resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -2366,11 +2405,8 @@ packages: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - - bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} + blob-to-buffer@1.2.9: + resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} blob-util@2.0.2: resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} @@ -2381,9 +2417,9 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} - boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -2398,6 +2434,9 @@ packages: breakword@1.0.6: resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==} + brotli@1.3.3: + resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} + browserslist@4.22.1: resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -2422,9 +2461,6 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -2464,9 +2500,9 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} caniuse-api@3.0.0: resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} @@ -2522,13 +2558,14 @@ packages: resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} engines: {node: '>= 14.16.0'} - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} + ci-info@4.2.0: + resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} + engines: {node: '>=8'} + classcat@5.0.4: resolution: {integrity: sha512-sbpkOw6z413p+HDGcBENe498WM9woqWHiJxCq7nvmxe9WmrUmqfAcxpIwAiMtM5Q3AhYkzXcNQHqsWq0mND51g==} @@ -2544,14 +2581,6 @@ packages: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} - cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - cli-spinners@2.9.1: - resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} - engines: {node: '>=6'} - cli-table3@0.6.3: resolution: {integrity: sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==} engines: {node: 10.* || >= 12.*} @@ -2571,17 +2600,14 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - clsx@2.0.0: - resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} - engines: {node: '>=6'} + clone@2.1.2: + resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} + engines: {node: '>=0.8'} clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -2647,17 +2673,23 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie@0.5.0: - resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} - engines: {node: '>= 0.6'} + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + cross-spawn@5.1.0: resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} @@ -2669,6 +2701,9 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + crossws@0.3.5: + resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + css-declaration-sorter@6.4.1: resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} engines: {node: ^10 || ^12 || >=14} @@ -2692,6 +2727,10 @@ packages: resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-tree@3.1.0: + resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + css-what@6.1.0: resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} engines: {node: '>= 6'} @@ -2846,14 +2885,6 @@ packages: dayjs@1.11.10: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} - debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -2871,24 +2902,6 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -2909,17 +2922,9 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} - engines: {node: '>=10'} - dedent-js@1.0.1: resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==} - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} - deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2942,6 +2947,9 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -2958,22 +2966,32 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} + destr@2.0.5: + resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} + detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} - detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} + detect-libc@2.0.4: + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} engines: {node: '>=8'} - devalue@4.3.2: - resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + deterministic-object-hash@2.0.2: + resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} + engines: {node: '>=18'} devalue@5.1.1: resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} - diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + dfa@1.2.0: + resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} + + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} dir-glob@3.0.1: @@ -3016,8 +3034,8 @@ packages: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} - dset@3.1.2: - resolution: {integrity: sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q==} + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} dunder-proto@1.0.1: @@ -3027,9 +3045,6 @@ packages: duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} @@ -3048,9 +3063,6 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} @@ -3062,6 +3074,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + entities@6.0.1: + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -3093,8 +3109,8 @@ packages: resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} - es-module-lexer@1.3.1: - resolution: {integrity: sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==} + es-module-lexer@1.7.0: + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} es-object-atoms@1.0.0: resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} @@ -3132,11 +3148,6 @@ packages: engines: {node: '>=12'} hasBin: true - esbuild@0.19.5: - resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} - engines: {node: '>=12'} - hasBin: true - esbuild@0.25.2: resolution: {integrity: sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ==} engines: {node: '>=18'} @@ -3267,6 +3278,9 @@ packages: esrap@1.4.6: resolution: {integrity: sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw==} + esrap@1.4.9: + resolution: {integrity: sha512-3OMlcd0a03UGuZpPeUC1HxR3nA23l+HEyCiZw3b3FumJIN9KphoGzDJKMXI1S72jVS1dsenDyQC0kJlO1U9E1g==} + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} @@ -3291,6 +3305,9 @@ packages: eventemitter2@6.4.7: resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} @@ -3299,22 +3316,10 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - executable@4.1.1: resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} engines: {node: '>=4'} - expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} - engines: {node: '>=6'} - - extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} @@ -3340,13 +3345,6 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - - fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -3371,6 +3369,14 @@ packages: picomatch: optional: true + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -3409,6 +3415,10 @@ packages: flatted@3.2.9: resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} + engines: {node: '>=8'} + follow-redirects@1.15.3: resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==} engines: {node: '>=4.0'} @@ -3418,6 +3428,12 @@ packages: debug: optional: true + fontace@0.3.0: + resolution: {integrity: sha512-czoqATrcnxgWb/nAkfyIrRp6Q8biYj7nGnL6zfhTcX+JKKpWHFBnb8uNMw/kZr7u++3Y3wYSYoZgHkCcsuBpBg==} + + fontkit@2.0.4: + resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} + for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -3442,9 +3458,6 @@ packages: from@0.1.7: resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -3496,6 +3509,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} @@ -3523,10 +3540,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -3545,9 +3558,6 @@ packages: getpass@0.1.7: resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} - github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} @@ -3623,9 +3633,8 @@ packages: graphlib@2.1.8: resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} - gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} + h3@1.15.3: + resolution: {integrity: sha512-z6GknHqyX0h9aQaTx22VZDf6QyZn+0Nh+Ym8O/u0SGSkyF5cuTJYKlc8MkzW3Nzf9LE1ivcpmYC3FUGpywhuUQ==} hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} @@ -3684,26 +3693,35 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-from-parse5@7.1.2: - resolution: {integrity: sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw==} + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - hast-util-parse-selector@3.1.1: - resolution: {integrity: sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA==} + hast-util-from-parse5@8.0.3: + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} - hast-util-raw@7.2.3: - resolution: {integrity: sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg==} + hast-util-is-element@3.0.0: + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - hast-util-to-html@8.0.4: - resolution: {integrity: sha512-4tpQTUOr9BMjtYyNlt0P50mH7xj0Ks2xpo8M943Vykljf99HW6EzulIoJP1N3eKOSScEHzyzi9dm7/cn0RfGwA==} + hast-util-parse-selector@4.0.0: + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - hast-util-to-parse5@7.1.0: - resolution: {integrity: sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw==} + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} - hast-util-whitespace@2.0.1: - resolution: {integrity: sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} - hastscript@7.2.0: - resolution: {integrity: sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw==} + hast-util-to-parse5@8.0.0: + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + hastscript@9.0.1: + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -3711,8 +3729,8 @@ packages: html-escaper@3.0.3: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - html-void-elements@2.0.1: - resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==} + html-void-elements@3.0.0: + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} @@ -3732,10 +3750,6 @@ packages: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -3765,9 +3779,6 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - import-meta-resolve@3.1.1: - resolution: {integrity: sha512-qeywsE/KC3w9Fd2ORrRDUw6nS/nLwZpXgfrOc2IILvZYnCaEMd+D56Vfg9k4G29gIeVi3XKql1RQatME8iYsiw==} - import-meta-resolve@4.1.0: resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} @@ -3786,9 +3797,6 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - ini@2.0.0: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} @@ -3805,6 +3813,9 @@ packages: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} @@ -3845,10 +3856,6 @@ packages: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} - is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - is-builtin-module@3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} @@ -3885,10 +3892,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true - is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -3918,10 +3921,6 @@ packages: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} - is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - is-map@2.0.3: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} @@ -3964,9 +3963,6 @@ packages: is-reference@1.2.1: resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - is-reference@3.0.3: resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} @@ -3997,10 +3993,6 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -4040,10 +4032,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} @@ -4102,6 +4090,11 @@ packages: engines: {node: '>=4'} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -4125,9 +4118,6 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-parser@3.2.0: - resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -4235,10 +4225,6 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-symbols@5.1.0: - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} - engines: {node: '>=12'} - log-update@4.0.0: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} @@ -4253,6 +4239,9 @@ packages: lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} @@ -4269,9 +4258,8 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} @@ -4291,47 +4279,44 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mdast-util-definitions@5.1.2: - resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} - mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} - mdast-util-find-and-replace@2.2.2: - resolution: {integrity: sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw==} + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - mdast-util-from-markdown@1.3.1: - resolution: {integrity: sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==} + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - mdast-util-gfm-autolink-literal@1.0.3: - resolution: {integrity: sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA==} + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - mdast-util-gfm-footnote@1.0.2: - resolution: {integrity: sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ==} + mdast-util-gfm-footnote@2.1.0: + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} - mdast-util-gfm-strikethrough@1.0.3: - resolution: {integrity: sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ==} + mdast-util-gfm-strikethrough@2.0.0: + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - mdast-util-gfm-table@1.0.7: - resolution: {integrity: sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg==} + mdast-util-gfm-table@2.0.0: + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - mdast-util-gfm-task-list-item@1.0.2: - resolution: {integrity: sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ==} + mdast-util-gfm-task-list-item@2.0.0: + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - mdast-util-gfm@2.0.2: - resolution: {integrity: sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg==} + mdast-util-gfm@3.1.0: + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} - mdast-util-phrasing@3.0.1: - resolution: {integrity: sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg==} + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - mdast-util-to-hast@12.3.0: - resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - mdast-util-to-markdown@1.5.0: - resolution: {integrity: sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A==} + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - mdast-util-to-string@3.2.0: - resolution: {integrity: sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==} + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} @@ -4339,6 +4324,9 @@ packages: mdn-data@2.0.30: resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} + mdn-data@2.12.2: + resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + meow@6.1.1: resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} engines: {node: '>=8'} @@ -4350,89 +4338,89 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micromark-core-commonmark@1.1.0: - resolution: {integrity: sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==} + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - micromark-extension-gfm-autolink-literal@1.0.5: - resolution: {integrity: sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg==} + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - micromark-extension-gfm-footnote@1.1.2: - resolution: {integrity: sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q==} + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - micromark-extension-gfm-strikethrough@1.0.7: - resolution: {integrity: sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw==} + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - micromark-extension-gfm-table@1.0.7: - resolution: {integrity: sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw==} + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - micromark-extension-gfm-tagfilter@1.0.2: - resolution: {integrity: sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g==} + micromark-extension-gfm-tagfilter@2.0.0: + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - micromark-extension-gfm-task-list-item@1.0.5: - resolution: {integrity: sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ==} + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - micromark-extension-gfm@2.0.3: - resolution: {integrity: sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ==} + micromark-extension-gfm@3.0.0: + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - micromark-factory-destination@1.1.0: - resolution: {integrity: sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==} + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - micromark-factory-label@1.1.0: - resolution: {integrity: sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==} + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - micromark-factory-space@1.1.0: - resolution: {integrity: sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==} + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - micromark-factory-title@1.1.0: - resolution: {integrity: sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==} + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - micromark-factory-whitespace@1.1.0: - resolution: {integrity: sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==} + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - micromark-util-character@1.2.0: - resolution: {integrity: sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==} + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - micromark-util-chunked@1.1.0: - resolution: {integrity: sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==} + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - micromark-util-classify-character@1.1.0: - resolution: {integrity: sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==} + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - micromark-util-combine-extensions@1.1.0: - resolution: {integrity: sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==} + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - micromark-util-decode-numeric-character-reference@1.1.0: - resolution: {integrity: sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==} + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - micromark-util-decode-string@1.1.0: - resolution: {integrity: sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==} + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - micromark-util-encode@1.1.0: - resolution: {integrity: sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==} + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - micromark-util-html-tag-name@1.2.0: - resolution: {integrity: sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - micromark-util-normalize-identifier@1.1.0: - resolution: {integrity: sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==} + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - micromark-util-resolve-all@1.1.0: - resolution: {integrity: sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==} + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - micromark-util-sanitize-uri@1.2.0: - resolution: {integrity: sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==} + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - micromark-util-subtokenize@1.1.0: - resolution: {integrity: sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==} + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} - micromark-util-symbol@1.1.0: - resolution: {integrity: sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==} + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - micromark-util-types@1.1.0: - resolution: {integrity: sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==} + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} - micromark@3.2.0: - resolution: {integrity: sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==} + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} @@ -4446,23 +4434,10 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - mime@3.0.0: - resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} - engines: {node: '>=10.0.0'} - hasBin: true - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} - engines: {node: '>=10'} - min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -4489,9 +4464,6 @@ packages: resolution: {integrity: sha512-VC5fg6ySUscaWUpI4gxCBTQMH2RdUpNrk+MsbpCYtIvf9SBJdiUey4qE7BXviJsJR4nDQxCZ+3yaYNW3guz/Pw==} engines: {node: '>= 8.0.0'} - mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} @@ -4500,8 +4472,9 @@ packages: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} - ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} @@ -4524,29 +4497,21 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - needle@2.9.1: - resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} - engines: {node: '>= 4.4.x'} - hasBin: true + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} - nlcst-to-string@3.1.1: - resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} - node-abi@3.51.0: - resolution: {integrity: sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==} - engines: {node: '>=10'} - - node-addon-api@6.1.0: - resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + node-fetch-native@1.6.6: + resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} @@ -4557,6 +4522,9 @@ packages: encoding: optional: true + node-mock-http@1.0.0: + resolution: {integrity: sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==} + node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} @@ -4581,10 +4549,6 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} @@ -4623,6 +4587,12 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + ohash@2.0.11: + resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} @@ -4630,18 +4600,16 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + oniguruma-parser@0.12.1: + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + + oniguruma-to-es@4.3.3: + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} optionator@0.9.3: resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} - ora@7.0.1: - resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} - engines: {node: '>=16'} - os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -4668,9 +4636,9 @@ packages: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} + engines: {node: '>=18'} p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} @@ -4688,10 +4656,24 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} + p-queue@8.1.0: + resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==} + engines: {node: '>=18'} + + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + engines: {node: '>=14.16'} + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-manager-detector@1.3.0: + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4700,11 +4682,11 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse-latin@5.0.1: - resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} - parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + parse5@7.3.0: + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} @@ -4721,16 +4703,9 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -4748,9 +4723,6 @@ packages: performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -5244,11 +5216,6 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} - prebuild-install@7.1.1: - resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} - engines: {node: '>=10'} - hasBin: true - preferred-pm@3.1.2: resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} engines: {node: '>=10'} @@ -5285,13 +5252,10 @@ packages: resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} engines: {node: '>= 0.8'} - prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + prismjs@1.30.0: + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} engines: {node: '>=6'} - probe-image-size@7.2.3: - resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} - process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} @@ -5306,6 +5270,9 @@ packages: property-information@6.3.0: resolution: {integrity: sha512-gVNZ74nqhRMiIUYWGQdosYetaKc83x8oT41a0LlV3AAFCAZwCpg4vmGkq8t34+cUhp3cnM4XDiU/7xlgK7HGrg==} + property-information@7.1.0: + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + proxy-from-env@1.0.0: resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} @@ -5341,20 +5308,16 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - queue-tick@1.0.1: - resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} - quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} - hasBin: true - react-dom@18.2.0: resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -5391,6 +5354,10 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + react-router-dom@6.18.0: resolution: {integrity: sha512-Ubrue4+Ercc/BoDkFQfc6og5zRQ4A8YxSO3Knsne+eRbZ+IepAsK249XBH/XaFuOYOYr3L3r13CXTLvYt5JDjw==} engines: {node: '>=14.0.0'} @@ -5427,10 +5394,6 @@ packages: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} - readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -5458,6 +5421,15 @@ packages: regenerator-runtime@0.14.0: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + regex-recursion@6.0.2: + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@6.0.1: + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} @@ -5470,30 +5442,33 @@ packages: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - rehype-parse@8.0.5: - resolution: {integrity: sha512-Ds3RglaY/+clEX2U2mHflt7NlMA72KspZ0JLUJgBBLpRddBcEw3H8uYZQliQriku22NZpYMfjDdSgHcjxue24A==} + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} - rehype-raw@6.1.1: - resolution: {integrity: sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==} + rehype-raw@7.0.0: + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - rehype-stringify@9.0.4: - resolution: {integrity: sha512-Uk5xu1YKdqobe5XpSskwPvo1XeHUUucWEQSl8hTrXt5selvca1e8K1EZ37E6YoZ4BT8BCqCdVfQW7OfHfthtVQ==} + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} - rehype@12.0.1: - resolution: {integrity: sha512-ey6kAqwLM3X6QnMDILJthGvG1m1ULROS9NT4uG9IDCuv08SFyLlreSuvOa//DgEvbXx62DS6elGVqusWhRUbgw==} + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} - remark-gfm@3.0.1: - resolution: {integrity: sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==} + remark-gfm@4.0.1: + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} - remark-parse@10.0.2: - resolution: {integrity: sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==} + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - remark-rehype@10.1.0: - resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} + remark-rehype@11.1.2: + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} - remark-smartypants@2.0.0: - resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} request-progress@3.0.0: resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} @@ -5531,21 +5506,20 @@ packages: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} - restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + restructure@3.0.2: + resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} - retext-latin@3.1.0: - resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} - retext-smartypants@5.2.0: - resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} - retext-stringify@3.1.0: - resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} - retext@8.1.0: - resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -5622,19 +5596,12 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} - scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} - section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - semver@5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -5658,12 +5625,14 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.2: + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} + hasBin: true + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} - server-destroy@1.0.1: - resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} - set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} @@ -5694,9 +5663,9 @@ packages: resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} engines: {node: '>= 0.4'} - sharp@0.32.6: - resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} - engines: {node: '>=14.15.0'} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@1.2.0: resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} @@ -5717,8 +5686,8 @@ packages: shell-quote@1.8.1: resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} - shiki@0.14.5: - resolution: {integrity: sha512-1gCAYOcmCFONmErGTrS1fjzJLA7MGZmKzrBNX7apqSwhyITJg2O102uFzXUeBxNnEkDA9vHIKLyeKq0V083vIw==} + shiki@3.6.0: + resolution: {integrity: sha512-tKn/Y0MGBTffQoklaATXmTqDU02zx8NYBGQ+F6gy87/YjKbizcLd+Cybh/0ZtOBX9r1NEnAy/GTRDKtOsc1L9w==} side-channel-list@1.0.0: resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} @@ -5743,16 +5712,6 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - - simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -5787,6 +5746,10 @@ packages: smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + smol-toml@1.3.4: + resolution: {integrity: sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==} + engines: {node: '>= 18'} + source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -5839,33 +5802,19 @@ packages: engines: {node: '>=16'} hasBin: true - stdin-discarder@0.1.0: - resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - stream-combiner@0.0.4: resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} - stream-parser@0.3.1: - resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} - stream-transform@2.1.3: resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} - streamx@2.15.1: - resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - - string-width@6.1.0: - resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} - engines: {node: '>=16'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} string.prototype.matchall@4.0.12: resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} @@ -5903,9 +5852,6 @@ packages: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} - string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - stringify-entities@4.0.3: resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} @@ -5917,34 +5863,18 @@ packages: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-bom@4.0.0: - resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} - engines: {node: '>=8'} - strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -5994,12 +5924,6 @@ packages: svelte: optional: true - svelte-hmr@0.15.3: - resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==} - engines: {node: ^12.20 || ^14.13.1 || >= 16} - peerDependencies: - svelte: ^3.19.0 || ^4.0.0 - svelte-preprocess@6.0.3: resolution: {integrity: sha512-PLG2k05qHdhmRG7zR/dyo5qKvakhm8IJ+hD2eFRQmMLHp7X3eJnjeupUtvuRpbNiF31RjVw45W+abDwHEmP5OA==} engines: {node: '>= 18.0.0'} @@ -6037,26 +5961,26 @@ packages: typescript: optional: true - svelte2tsx@0.6.23: - resolution: {integrity: sha512-3bwd1PuWUA3oEXy8+85zrLDnmJOsVpShpKVAehGWeYsz/66zMihTpRpUN97VVAKTZbO5tP4wnchHUXYs0zOwdw==} - peerDependencies: - svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 - typescript: ^4.9.4 || ^5.0.0 - svelte2tsx@0.7.34: resolution: {integrity: sha512-WTMhpNhFf8/h3SMtR5dkdSy2qfveomkhYei/QW9gSPccb0/b82tjHvLop6vT303ZkGswU/da1s6XvrLgthQPCw==} peerDependencies: svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 typescript: ^4.9.4 || ^5.0.0 - svelte@4.2.1: - resolution: {integrity: sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==} - engines: {node: '>=16'} + svelte2tsx@0.7.39: + resolution: {integrity: sha512-NX8a7eSqF1hr6WKArvXr7TV7DeE+y0kDFD7L5JP7TWqlwFidzGKaG415p992MHREiiEWOv2xIWXJ+mlONofs0A==} + peerDependencies: + svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0 + typescript: ^4.9.4 || ^5.0.0 svelte@5.27.0: resolution: {integrity: sha512-Uai13Ydt1ZE+bUHme6b9U38PCYVNCqBRoBMkUKbFbKiD7kHWjdUUrklYAQZJxyKK81qII4mrBwe/YmvEMSlC9w==} engines: {node: '>=18'} + svelte@5.33.18: + resolution: {integrity: sha512-GVAhi8vi8pGne/wlEdnfWIJvSR9eKvEknxjfL5Sr8gQALiyk8Ey+H0lhUYLpjW+MrqgH9h4dgh2NF6/BTFprRg==} + engines: {node: '>=18'} + svgo@3.0.2: resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} engines: {node: '>=14.0.0'} @@ -6067,19 +5991,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - - tar-fs@3.0.4: - resolution: {integrity: sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} - - tar-stream@3.1.6: - resolution: {integrity: sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==} - term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} @@ -6101,10 +6012,20 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyglobby@0.2.12: resolution: {integrity: sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.14: + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -6152,8 +6073,15 @@ packages: peerDependencies: typescript: '>=4.8.4' - tsconfig-resolver@3.0.1: - resolution: {integrity: sha512-ZHqlstlQF449v8glscGRXzL6l2dZvASPCdXJRWG4gHEZlUVx2Jtmr+a2zeVG4LCsKhDXKRj5R3h0C/98UcVAQg==} + tsconfck@3.1.6: + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} + engines: {node: ^18 || >=20} + hasBin: true + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} @@ -6227,9 +6155,9 @@ packages: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + type-fest@4.41.0: + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} typed-array-buffer@1.0.0: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} @@ -6300,8 +6228,11 @@ packages: engines: {node: '>=14.17'} hasBin: true - ultrahtml@1.5.2: - resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==} + ufo@1.6.1: + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + + ultrahtml@1.6.0: + resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} @@ -6310,53 +6241,52 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} + undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - undici@5.26.5: - resolution: {integrity: sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==} - engines: {node: '>=14.0'} + unicode-properties@1.4.1: + resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} - unherit@3.0.1: - resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} - unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unist-util-generated@2.0.1: - resolution: {integrity: sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==} + unifont@0.5.0: + resolution: {integrity: sha512-4DueXMP5Hy4n607sh+vJ+rajoLu778aU3GzqeTCqsD/EaUcvqZT9wPC8kgK6Vjh22ZskrxyRCR71FwNOaYn6jA==} - unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + unist-util-find-after@5.0.0: + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - unist-util-modify-children@3.1.1: - resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} - unist-util-position@4.0.4: - resolution: {integrity: sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==} + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} + unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - unist-util-visit-children@2.0.2: - resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} @@ -6372,6 +6302,65 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} + unstorage@1.16.0: + resolution: {integrity: sha512-WQ37/H5A7LcRPWfYOrDa1Ys02xAbpPJq6q5GkO88FBXVSQzHd7+BjEwfRqyaSWCv9MbsJy058GWjjPjcJ16GGA==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.6.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 || ^7.0.0 + '@deno/kv': '>=0.9.0' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.1' + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.4 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + untildify@4.0.0: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} @@ -6406,11 +6395,6 @@ packages: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true - uvu@0.5.6: - resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==} - engines: {node: '>=8'} - hasBin: true - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -6418,14 +6402,14 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} - vfile-location@4.1.0: - resolution: {integrity: sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw==} + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - vfile-message@3.1.4: - resolution: {integrity: sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==} + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - vfile@5.3.7: - resolution: {integrity: sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==} + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} vite@4.5.0: resolution: {integrity: sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==} @@ -6455,34 +6439,6 @@ packages: terser: optional: true - vite@4.5.3: - resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==} - engines: {node: ^14.18.0 || >=16.0.0} - hasBin: true - peerDependencies: - '@types/node': '>= 14' - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - vite@6.3.0: resolution: {integrity: sha512-9aC0n4pr6hIbvi1YOpFjwQ+QOTGssvbJKoeYkuHHGWwlXfdxQlI8L2qNMo9awEEcCPSiS+5mJZk5jH1PAqoDeQ==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -6523,12 +6479,44 @@ packages: yaml: optional: true - vitefu@0.2.5: - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} + vite@6.3.5: + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: - vite: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: optional: true vitefu@1.0.4: @@ -6539,11 +6527,13 @@ packages: vite: optional: true - vscode-oniguruma@1.7.0: - resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} - - vscode-textmate@8.0.0: - resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + vitefu@1.0.6: + resolution: {integrity: sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + vite: + optional: true wait-on@7.1.0: resolution: {integrity: sha512-U7TF/OYYzAg+OoiT/B8opvN48UHt0QYMi4aD3PjRFpybQ+o6czQF8Ig3SKCCMJdxpBrCalIJ4O00FBof27Fu9Q==} @@ -6588,10 +6578,6 @@ packages: resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} engines: {node: '>=8.15'} - which-pm@2.1.1: - resolution: {integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==} - engines: {node: '>=8.15'} - which-typed-array@1.1.13: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} @@ -6613,9 +6599,9 @@ packages: engines: {node: '>= 8'} hasBin: true - widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -6625,13 +6611,16 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} - wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} @@ -6679,15 +6668,34 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + yocto-queue@1.2.1: + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} engines: {node: '>=12.20'} + yocto-spinner@0.2.3: + resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} + engines: {node: '>=18.19'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + zimmerframe@1.1.2: resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==} - zod@3.21.1: - resolution: {integrity: sha512-+dTu2m6gmCbO9Ahm4ZBDapx2O6ZY9QSPXst2WXjcznPMwf2YNpn3RevLx4KkZp1OPW/ouFcoBtBzFz/LeY69oA==} + zod-to-json-schema@3.24.5: + resolution: {integrity: sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==} + peerDependencies: + zod: ^3.24.1 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + + zod@3.25.57: + resolution: {integrity: sha512-6tgzLuwVST5oLUxXTmBqoinKMd3JeesgbgseXeFasKKj8Q1FCZrHnbqJOyiEvr4cVAlbug+CgIsmJ8cl/pU5FA==} zustand@4.4.1: resolution: {integrity: sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==} @@ -6726,76 +6734,98 @@ snapshots: '@aashutoshrathi/word-wrap@1.2.6': {} - '@ampproject/remapping@2.2.1': - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@astrojs/compiler@2.2.1': {} + '@astrojs/compiler@2.12.2': {} - '@astrojs/internal-helpers@0.2.0': {} + '@astrojs/internal-helpers@0.6.1': {} - '@astrojs/markdown-remark@3.2.0(astro@3.2.2(@types/node@20.14.6)(terser@5.31.0))': + '@astrojs/markdown-remark@6.3.2': dependencies: - '@astrojs/prism': 3.0.0 - astro: 3.2.2(@types/node@20.14.6)(terser@5.31.0) + '@astrojs/internal-helpers': 0.6.1 + '@astrojs/prism': 3.3.0 github-slugger: 2.0.0 - import-meta-resolve: 3.1.1 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + js-yaml: 4.1.0 mdast-util-definitions: 6.0.0 - rehype-raw: 6.1.1 - rehype-stringify: 9.0.4 - remark-gfm: 3.0.1 - remark-parse: 10.0.2 - remark-rehype: 10.1.0 - remark-smartypants: 2.0.0 - shiki: 0.14.5 - unified: 10.1.2 - unist-util-visit: 4.1.2 - vfile: 5.3.7 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.1 + remark-parse: 11.0.0 + remark-rehype: 11.1.2 + remark-smartypants: 3.0.2 + shiki: 3.6.0 + smol-toml: 1.3.4 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 transitivePeerDependencies: - supports-color - '@astrojs/prism@3.0.0': + '@astrojs/prism@3.3.0': dependencies: - prismjs: 1.29.0 + prismjs: 1.30.0 - '@astrojs/react@3.0.2(@types/react-dom@18.2.8)(@types/react@18.2.24)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0))': + '@astrojs/react@4.3.0(@types/node@20.14.6)(@types/react-dom@18.2.8)(@types/react@18.2.24)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(terser@5.31.0)': dependencies: '@types/react': 18.2.24 '@types/react-dom': 18.2.8 - '@vitejs/plugin-react': 4.1.1(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)) + '@vitejs/plugin-react': 4.5.2(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - ultrahtml: 1.5.2 + ultrahtml: 1.6.0 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss - supports-color - - vite + - terser + - tsx + - yaml - '@astrojs/svelte@4.0.2(astro@3.2.2(@types/node@20.14.6)(terser@5.31.0))(svelte@4.2.1)(typescript@5.8.3)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0))': + '@astrojs/svelte@7.1.0(@types/node@20.14.6)(astro@5.9.2(@types/node@20.14.6)(rollup@4.39.0)(terser@5.31.0)(typescript@5.8.3))(svelte@5.33.18)(terser@5.31.0)(typescript@5.8.3)': dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.1)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)) - astro: 3.2.2(@types/node@20.14.6)(terser@5.31.0) - svelte: 4.2.1 - svelte2tsx: 0.6.23(svelte@4.2.1)(typescript@5.8.3) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + astro: 5.9.2(@types/node@20.14.6)(rollup@4.39.0)(terser@5.31.0)(typescript@5.8.3) + svelte: 5.33.18 + svelte2tsx: 0.7.39(svelte@5.33.18)(typescript@5.8.3) + typescript: 5.8.3 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss - supports-color - - typescript - - vite + - terser + - tsx + - yaml - '@astrojs/telemetry@3.0.2': + '@astrojs/telemetry@3.3.0': dependencies: - ci-info: 3.9.0 - debug: 4.3.4(supports-color@8.1.1) + ci-info: 4.2.0 + debug: 4.4.0 dlv: 1.1.3 - dset: 3.1.2 + dset: 3.1.4 is-docker: 3.0.0 is-wsl: 3.1.0 - undici: 5.26.5 which-pm-runs: 1.1.0 transitivePeerDependencies: - supports-color @@ -6815,10 +6845,18 @@ snapshots: '@babel/highlight': 7.24.7 picocolors: 1.1.1 + '@babel/code-frame@7.27.1': + dependencies: + '@babel/helper-validator-identifier': 7.27.1 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.23.2': {} '@babel/compat-data@7.24.7': {} + '@babel/compat-data@7.27.5': {} + '@babel/core@7.23.2': dependencies: '@ampproject/remapping': 2.3.0 @@ -6859,6 +6897,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.27.4': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/helper-compilation-targets': 7.27.2 + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.27.4) + '@babel/helpers': 7.27.6 + '@babel/parser': 7.27.5 + '@babel/template': 7.27.2 + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.23.0': dependencies: '@babel/types': 7.23.0 @@ -6873,9 +6931,13 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 2.5.2 - '@babel/helper-annotate-as-pure@7.22.5': + '@babel/generator@7.27.5': dependencies: - '@babel/types': 7.23.0 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 '@babel/helper-compilation-targets@7.22.15': dependencies: @@ -6893,6 +6955,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.27.2': + dependencies: + '@babel/compat-data': 7.27.5 + '@babel/helper-validator-option': 7.27.1 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-environment-visitor@7.22.20': {} '@babel/helper-environment-visitor@7.24.7': @@ -6928,6 +6998,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.27.1': + dependencies: + '@babel/traverse': 7.27.4 + '@babel/types': 7.27.6 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2)': dependencies: '@babel/core': 7.23.2 @@ -6948,10 +7025,21 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.27.3(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-module-imports': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + '@babel/traverse': 7.27.4 + transitivePeerDependencies: + - supports-color + '@babel/helper-plugin-utils@7.22.5': {} '@babel/helper-plugin-utils@7.24.7': {} + '@babel/helper-plugin-utils@7.27.1': {} + '@babel/helper-simple-access@7.22.5': dependencies: '@babel/types': 7.23.0 @@ -6977,14 +7065,20 @@ snapshots: '@babel/helper-string-parser@7.24.7': {} + '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-validator-identifier@7.22.20': {} '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-option@7.22.15': {} '@babel/helper-validator-option@7.24.7': {} + '@babel/helper-validator-option@7.27.1': {} + '@babel/helpers@7.23.2': dependencies: '@babel/template': 7.22.15 @@ -6998,6 +7092,11 @@ snapshots: '@babel/template': 7.24.7 '@babel/types': 7.24.7 + '@babel/helpers@7.27.6': + dependencies: + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 + '@babel/highlight@7.22.20': dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -7029,10 +7128,9 @@ snapshots: dependencies: '@babel/types': 7.24.7 - '@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.2)': + '@babel/parser@7.27.5': dependencies: - '@babel/core': 7.23.2 - '@babel/helper-plugin-utils': 7.22.5 + '@babel/types': 7.27.6 '@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.2)': dependencies: @@ -7044,6 +7142,11 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.27.4)': + dependencies: + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.23.2)': dependencies: '@babel/core': 7.23.2 @@ -7054,14 +7157,10 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.2)': + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.27.4)': dependencies: - '@babel/core': 7.23.2 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.2) - '@babel/types': 7.23.0 + '@babel/core': 7.27.4 + '@babel/helper-plugin-utils': 7.27.1 '@babel/runtime@7.23.2': dependencies: @@ -7079,6 +7178,12 @@ snapshots: '@babel/parser': 7.24.7 '@babel/types': 7.24.7 + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + '@babel/traverse@7.23.2': dependencies: '@babel/code-frame': 7.22.13 @@ -7109,6 +7214,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.27.4': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.27.5 + '@babel/parser': 7.27.5 + '@babel/template': 7.27.2 + '@babel/types': 7.27.6 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.23.0': dependencies: '@babel/helper-string-parser': 7.22.5 @@ -7127,6 +7244,19 @@ snapshots: '@babel/helper-validator-identifier': 7.24.7 to-fast-properties: 2.0.0 + '@babel/types@7.27.6': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.27.1 + + '@capsizecss/unpack@2.4.0': + dependencies: + blob-to-buffer: 1.2.9 + cross-fetch: 3.2.0 + fontkit: 2.0.4 + transitivePeerDependencies: + - encoding + '@changesets/apply-release-plan@6.1.4': dependencies: '@babel/runtime': 7.23.2 @@ -7339,150 +7469,107 @@ snapshots: '@dagrejs/graphlib@2.2.4': {} + '@emnapi/runtime@1.4.3': + dependencies: + tslib: 2.8.1 + optional: true + '@esbuild/aix-ppc64@0.25.2': optional: true '@esbuild/android-arm64@0.18.20': optional: true - '@esbuild/android-arm64@0.19.5': - optional: true - '@esbuild/android-arm64@0.25.2': optional: true '@esbuild/android-arm@0.18.20': optional: true - '@esbuild/android-arm@0.19.5': - optional: true - '@esbuild/android-arm@0.25.2': optional: true '@esbuild/android-x64@0.18.20': optional: true - '@esbuild/android-x64@0.19.5': - optional: true - '@esbuild/android-x64@0.25.2': optional: true '@esbuild/darwin-arm64@0.18.20': optional: true - '@esbuild/darwin-arm64@0.19.5': - optional: true - '@esbuild/darwin-arm64@0.25.2': optional: true '@esbuild/darwin-x64@0.18.20': optional: true - '@esbuild/darwin-x64@0.19.5': - optional: true - '@esbuild/darwin-x64@0.25.2': optional: true '@esbuild/freebsd-arm64@0.18.20': optional: true - '@esbuild/freebsd-arm64@0.19.5': - optional: true - '@esbuild/freebsd-arm64@0.25.2': optional: true '@esbuild/freebsd-x64@0.18.20': optional: true - '@esbuild/freebsd-x64@0.19.5': - optional: true - '@esbuild/freebsd-x64@0.25.2': optional: true '@esbuild/linux-arm64@0.18.20': optional: true - '@esbuild/linux-arm64@0.19.5': - optional: true - '@esbuild/linux-arm64@0.25.2': optional: true '@esbuild/linux-arm@0.18.20': optional: true - '@esbuild/linux-arm@0.19.5': - optional: true - '@esbuild/linux-arm@0.25.2': optional: true '@esbuild/linux-ia32@0.18.20': optional: true - '@esbuild/linux-ia32@0.19.5': - optional: true - '@esbuild/linux-ia32@0.25.2': optional: true '@esbuild/linux-loong64@0.18.20': optional: true - '@esbuild/linux-loong64@0.19.5': - optional: true - '@esbuild/linux-loong64@0.25.2': optional: true '@esbuild/linux-mips64el@0.18.20': optional: true - '@esbuild/linux-mips64el@0.19.5': - optional: true - '@esbuild/linux-mips64el@0.25.2': optional: true '@esbuild/linux-ppc64@0.18.20': optional: true - '@esbuild/linux-ppc64@0.19.5': - optional: true - '@esbuild/linux-ppc64@0.25.2': optional: true '@esbuild/linux-riscv64@0.18.20': optional: true - '@esbuild/linux-riscv64@0.19.5': - optional: true - '@esbuild/linux-riscv64@0.25.2': optional: true '@esbuild/linux-s390x@0.18.20': optional: true - '@esbuild/linux-s390x@0.19.5': - optional: true - '@esbuild/linux-s390x@0.25.2': optional: true '@esbuild/linux-x64@0.18.20': optional: true - '@esbuild/linux-x64@0.19.5': - optional: true - '@esbuild/linux-x64@0.25.2': optional: true @@ -7492,9 +7579,6 @@ snapshots: '@esbuild/netbsd-x64@0.18.20': optional: true - '@esbuild/netbsd-x64@0.19.5': - optional: true - '@esbuild/netbsd-x64@0.25.2': optional: true @@ -7504,45 +7588,30 @@ snapshots: '@esbuild/openbsd-x64@0.18.20': optional: true - '@esbuild/openbsd-x64@0.19.5': - optional: true - '@esbuild/openbsd-x64@0.25.2': optional: true '@esbuild/sunos-x64@0.18.20': optional: true - '@esbuild/sunos-x64@0.19.5': - optional: true - '@esbuild/sunos-x64@0.25.2': optional: true '@esbuild/win32-arm64@0.18.20': optional: true - '@esbuild/win32-arm64@0.19.5': - optional: true - '@esbuild/win32-arm64@0.25.2': optional: true '@esbuild/win32-ia32@0.18.20': optional: true - '@esbuild/win32-ia32@0.19.5': - optional: true - '@esbuild/win32-ia32@0.25.2': optional: true '@esbuild/win32-x64@0.18.20': optional: true - '@esbuild/win32-x64@0.19.5': - optional: true - '@esbuild/win32-x64@0.25.2': optional: true @@ -7624,8 +7693,6 @@ snapshots: '@eslint/core': 0.13.0 levn: 0.4.1 - '@fastify/busboy@2.0.0': {} - '@hapi/hoek@9.3.0': {} '@hapi/topo@5.1.0': @@ -7655,6 +7722,81 @@ snapshots: '@humanwhocodes/retry@0.4.2': {} + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.4.3 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + '@jridgewell/gen-mapping@0.3.3': dependencies: '@jridgewell/set-array': 1.1.2 @@ -7722,6 +7864,8 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.15.0 + '@oslojs/encoding@1.1.0': {} + '@playwright/experimental-ct-core@1.51.1(@types/node@20.14.6)(terser@5.31.0)': dependencies: playwright: 1.51.1 @@ -7740,10 +7884,10 @@ snapshots: - tsx - yaml - '@playwright/experimental-ct-react@1.51.1(@types/node@20.14.6)(terser@5.31.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0))': + '@playwright/experimental-ct-react@1.51.1(@types/node@20.14.6)(terser@5.31.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': dependencies: '@playwright/experimental-ct-core': 1.51.1(@types/node@20.14.6)(terser@5.31.0) - '@vitejs/plugin-react': 4.3.1(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) + '@vitejs/plugin-react': 4.3.1(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) transitivePeerDependencies: - '@types/node' - jiti @@ -7781,6 +7925,8 @@ snapshots: '@remix-run/router@1.11.0': {} + '@rolldown/pluginutils@1.0.0-beta.11': {} + '@rollup/plugin-commonjs@25.0.8(rollup@4.18.0)': dependencies: '@rollup/pluginutils': 5.1.0(rollup@4.18.0) @@ -7835,6 +7981,14 @@ snapshots: optionalDependencies: rollup: 4.18.0 + '@rollup/pluginutils@5.1.4(rollup@4.39.0)': + dependencies: + '@types/estree': 1.0.7 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.39.0 + '@rollup/rollup-android-arm-eabi@4.18.0': optional: true @@ -7943,6 +8097,39 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.39.0': optional: true + '@shikijs/core@3.6.0': + dependencies: + '@shikijs/types': 3.6.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + + '@shikijs/engine-javascript@3.6.0': + dependencies: + '@shikijs/types': 3.6.0 + '@shikijs/vscode-textmate': 10.0.2 + oniguruma-to-es: 4.3.3 + + '@shikijs/engine-oniguruma@3.6.0': + dependencies: + '@shikijs/types': 3.6.0 + '@shikijs/vscode-textmate': 10.0.2 + + '@shikijs/langs@3.6.0': + dependencies: + '@shikijs/types': 3.6.0 + + '@shikijs/themes@3.6.0': + dependencies: + '@shikijs/types': 3.6.0 + + '@shikijs/types@3.6.0': + dependencies: + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.2': {} + '@sideway/address@4.1.4': dependencies: '@hapi/hoek': 9.3.0 @@ -7966,6 +8153,11 @@ snapshots: '@sveltejs/kit': 2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) import-meta-resolve: 4.1.0 + '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))': + dependencies: + '@sveltejs/kit': 2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + import-meta-resolve: 4.1.0 + '@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0))': dependencies: '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) @@ -7983,6 +8175,23 @@ snapshots: svelte: 5.27.0 vite: 6.3.0(@types/node@20.14.6)(terser@5.31.0) + '@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + '@types/cookie': 0.6.0 + cookie: 0.6.0 + devalue: 5.1.1 + esm-env: 1.2.2 + import-meta-resolve: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.17 + mrmime: 2.0.0 + sade: 1.8.1 + set-cookie-parser: 2.6.0 + sirv: 3.0.0 + svelte: 5.27.0 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + '@sveltejs/package@2.3.11(svelte@5.27.0)(typescript@5.8.3)': dependencies: chokidar: 4.0.3 @@ -7994,15 +8203,6 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@1.0.4(@sveltejs/vite-plugin-svelte@2.5.3(svelte@4.2.1)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)))(svelte@4.2.1)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0))': - dependencies: - '@sveltejs/vite-plugin-svelte': 2.5.3(svelte@4.2.1)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)) - debug: 4.3.5 - svelte: 4.2.1 - vite: 4.5.3(@types/node@20.14.6)(terser@5.31.0) - transitivePeerDependencies: - - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0))': dependencies: '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) @@ -8012,17 +8212,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@2.5.3(svelte@4.2.1)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0))': + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 1.0.4(@sveltejs/vite-plugin-svelte@2.5.3(svelte@4.2.1)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)))(svelte@4.2.1)(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)) - debug: 4.3.4(supports-color@8.1.1) - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.5 - svelte: 4.2.1 - svelte-hmr: 0.15.3(svelte@4.2.1) - vite: 4.5.3(@types/node@20.14.6)(terser@5.31.0) - vitefu: 0.2.5(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)) + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + debug: 4.4.0 + svelte: 5.27.0 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + debug: 4.4.0 + svelte: 5.33.18 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) transitivePeerDependencies: - supports-color @@ -8039,6 +8243,32 @@ snapshots: transitivePeerDependencies: - supports-color + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + debug: 4.4.0 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.17 + svelte: 5.27.0 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + vitefu: 1.0.4(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + transitivePeerDependencies: + - supports-color + + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + debug: 4.4.0 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.17 + svelte: 5.33.18 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + vitefu: 1.0.4(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + transitivePeerDependencies: + - supports-color + '@swc/core-darwin-arm64@1.3.96': optional: true @@ -8069,7 +8299,7 @@ snapshots: '@swc/core-win32-x64-msvc@1.3.96': optional: true - '@swc/core@1.3.96': + '@swc/core@1.3.96(@swc/helpers@0.5.17)': dependencies: '@swc/counter': 0.1.2 '@swc/types': 0.1.5 @@ -8084,21 +8314,18 @@ snapshots: '@swc/core-win32-arm64-msvc': 1.3.96 '@swc/core-win32-ia32-msvc': 1.3.96 '@swc/core-win32-x64-msvc': 1.3.96 + '@swc/helpers': 0.5.17 '@swc/counter@0.1.2': {} + '@swc/helpers@0.5.17': + dependencies: + tslib: 2.8.1 + '@swc/types@0.1.5': {} '@trysound/sax@0.2.0': {} - '@types/babel__core@7.20.3': - dependencies: - '@babel/parser': 7.23.0 - '@babel/types': 7.23.0 - '@types/babel__generator': 7.6.7 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.4 - '@types/babel__core@7.20.4': dependencies: '@babel/parser': 7.23.0 @@ -8165,17 +8392,19 @@ snapshots: dependencies: '@types/ms': 0.7.33 - '@types/estree@1.0.3': {} - '@types/estree@1.0.5': {} '@types/estree@1.0.6': {} '@types/estree@1.0.7': {} - '@types/hast@2.3.7': + '@types/fontkit@2.0.8': dependencies: - '@types/unist': 2.0.9 + '@types/node': 20.14.6 + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.1 '@types/is-ci@3.0.3': dependencies: @@ -8183,12 +8412,6 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/json5@0.0.30': {} - - '@types/mdast@3.0.14': - dependencies: - '@types/unist': 2.0.9 - '@types/mdast@4.0.2': dependencies: '@types/unist': 3.0.1 @@ -8197,9 +8420,9 @@ snapshots: '@types/ms@0.7.33': {} - '@types/nlcst@1.0.3': + '@types/nlcst@2.0.3': dependencies: - '@types/unist': 2.0.9 + '@types/unist': 3.0.1 '@types/node@12.20.55': {} @@ -8211,8 +8434,6 @@ snapshots: '@types/normalize-package-data@2.4.3': {} - '@types/parse5@6.0.3': {} - '@types/prop-types@15.7.10': {} '@types/prop-types@15.7.9': {} @@ -8248,8 +8469,6 @@ snapshots: '@types/resolve@1.20.2': {} - '@types/resolve@1.20.4': {} - '@types/scheduler@0.16.5': {} '@types/semver@6.2.5': {} @@ -8258,8 +8477,6 @@ snapshots: '@types/sizzle@2.3.8': {} - '@types/unist@2.0.9': {} - '@types/unist@3.0.1': {} '@types/use-sync-external-store@0.0.3': {} @@ -8423,9 +8640,11 @@ snapshots: '@typescript-eslint/types': 8.30.1 eslint-visitor-keys: 4.2.0 - '@vitejs/plugin-react-swc@3.4.1(vite@4.5.0(@types/node@20.14.6)(terser@5.31.0))': + '@ungap/structured-clone@1.3.0': {} + + '@vitejs/plugin-react-swc@3.4.1(@swc/helpers@0.5.17)(vite@4.5.0(@types/node@20.14.6)(terser@5.31.0))': dependencies: - '@swc/core': 1.3.96 + '@swc/core': 1.3.96(@swc/helpers@0.5.17) vite: 4.5.0(@types/node@20.14.6)(terser@5.31.0) transitivePeerDependencies: - '@swc/helpers' @@ -8441,25 +8660,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.1.1(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0))': - dependencies: - '@babel/core': 7.23.2 - '@babel/plugin-transform-react-jsx-self': 7.22.5(@babel/core@7.23.2) - '@babel/plugin-transform-react-jsx-source': 7.22.5(@babel/core@7.23.2) - '@types/babel__core': 7.20.4 - react-refresh: 0.14.0 - vite: 4.5.3(@types/node@20.14.6)(terser@5.31.0) - transitivePeerDependencies: - - supports-color - - '@vitejs/plugin-react@4.3.1(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0))': + '@vitejs/plugin-react@4.3.1(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': dependencies: '@babel/core': 7.24.7 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.24.7) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.24.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.3.0(@types/node@20.14.6)(terser@5.31.0) + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + transitivePeerDependencies: + - supports-color + + '@vitejs/plugin-react@4.5.2(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': + dependencies: + '@babel/core': 7.27.4 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.27.4) + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.27.4) + '@rolldown/pluginutils': 1.0.0-beta.11 + '@types/babel__core': 7.20.5 + react-refresh: 0.17.0 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) transitivePeerDependencies: - supports-color @@ -8473,10 +8693,10 @@ snapshots: acorn@8.10.0: {} - acorn@8.11.2: {} - acorn@8.14.0: {} + acorn@8.15.0: {} + aggregate-error@3.1.0: dependencies: clean-stack: 2.2.0 @@ -8503,8 +8723,6 @@ snapshots: ansi-regex@6.0.1: {} - ansi-sequence-parser@1.1.1: {} - ansi-styles@3.2.1: dependencies: color-convert: 1.9.3 @@ -8530,10 +8748,6 @@ snapshots: argparse@2.0.1: {} - aria-query@5.3.0: - dependencies: - dequal: 2.0.3 - aria-query@5.3.2: {} array-buffer-byte-length@1.0.0: @@ -8636,75 +8850,105 @@ snapshots: astral-regex@2.0.0: {} - astro@3.2.2(@types/node@20.14.6)(terser@5.31.0): + astro@5.9.2(@types/node@20.14.6)(rollup@4.39.0)(terser@5.31.0)(typescript@5.8.3): dependencies: - '@astrojs/compiler': 2.2.1 - '@astrojs/internal-helpers': 0.2.0 - '@astrojs/markdown-remark': 3.2.0(astro@3.2.2(@types/node@20.14.6)(terser@5.31.0)) - '@astrojs/telemetry': 3.0.2 - '@babel/core': 7.23.2 - '@babel/generator': 7.23.0 - '@babel/parser': 7.23.0 - '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.2) - '@babel/traverse': 7.23.2 - '@babel/types': 7.23.0 - '@types/babel__core': 7.20.3 - acorn: 8.10.0 - boxen: 7.1.1 - chokidar: 3.5.3 - ci-info: 3.9.0 - clsx: 2.0.0 + '@astrojs/compiler': 2.12.2 + '@astrojs/internal-helpers': 0.6.1 + '@astrojs/markdown-remark': 6.3.2 + '@astrojs/telemetry': 3.3.0 + '@capsizecss/unpack': 2.4.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.1.4(rollup@4.39.0) + acorn: 8.15.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.2.0 + clsx: 2.1.1 common-ancestor-path: 1.0.1 - cookie: 0.5.0 - debug: 4.3.4(supports-color@8.1.1) - devalue: 4.3.2 - diff: 5.1.0 - es-module-lexer: 1.3.1 - esbuild: 0.19.5 + cookie: 1.0.2 + cssesc: 3.0.0 + debug: 4.4.0 + deterministic-object-hash: 2.0.2 + devalue: 5.1.1 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.7.0 + esbuild: 0.25.2 estree-walker: 3.0.3 - execa: 8.0.1 - fast-glob: 3.3.1 + flattie: 1.1.1 + fontace: 0.3.0 github-slugger: 2.0.0 - gray-matter: 4.0.3 html-escaper: 3.0.3 http-cache-semantics: 4.1.1 + import-meta-resolve: 4.1.0 js-yaml: 4.1.0 kleur: 4.1.5 - magic-string: 0.30.5 - mime: 3.0.0 - ora: 7.0.1 - p-limit: 4.0.0 - path-to-regexp: 6.2.1 - preferred-pm: 3.1.2 - probe-image-size: 7.2.3 + magic-string: 0.30.17 + magicast: 0.3.5 + mrmime: 2.0.1 + neotraverse: 0.6.18 + p-limit: 6.2.0 + p-queue: 8.1.0 + package-manager-detector: 1.3.0 + picomatch: 4.0.2 prompts: 2.4.2 - rehype: 12.0.1 - resolve: 1.22.8 - semver: 7.5.4 - server-destroy: 1.0.1 - shiki: 0.14.5 - string-width: 6.1.0 - strip-ansi: 7.1.0 - tsconfig-resolver: 3.0.1 - undici: 5.26.5 - unist-util-visit: 4.1.2 - vfile: 5.3.7 - vite: 4.5.3(@types/node@20.14.6)(terser@5.31.0) - vitefu: 0.2.5(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)) - which-pm: 2.1.1 + rehype: 13.0.2 + semver: 7.7.2 + shiki: 3.6.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.12 + tsconfck: 3.1.6(typescript@5.8.3) + ultrahtml: 1.6.0 + unifont: 0.5.0 + unist-util-visit: 5.0.0 + unstorage: 1.16.0 + vfile: 6.0.3 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + xxhash-wasm: 1.1.0 yargs-parser: 21.1.1 - zod: 3.21.1 + yocto-spinner: 0.2.3 + zod: 3.25.57 + zod-to-json-schema: 3.24.5(zod@3.25.57) + zod-to-ts: 1.2.0(typescript@5.8.3)(zod@3.25.57) optionalDependencies: - sharp: 0.32.6 + sharp: 0.33.5 transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - db0 + - encoding + - idb-keyval + - ioredis + - jiti - less - lightningcss + - rollup - sass + - sass-embedded - stylus - sugarss - supports-color - terser + - tsx + - typescript + - uploadthing + - yaml async@3.2.5: {} @@ -8749,19 +8993,14 @@ snapshots: transitivePeerDependencies: - debug - axobject-query@3.2.1: - dependencies: - dequal: 2.0.3 - axobject-query@4.1.0: {} - b4a@1.6.4: - optional: true - bail@2.0.2: {} balanced-match@1.0.2: {} + base-64@1.0.0: {} + base64-js@1.5.1: {} bcrypt-pbkdf@1.0.2: @@ -8774,18 +9013,7 @@ snapshots: binary-extensions@2.2.0: {} - bl@4.1.0: - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.2 - optional: true - - bl@5.1.0: - dependencies: - buffer: 6.0.3 - inherits: 2.0.4 - readable-stream: 3.6.2 + blob-to-buffer@1.2.9: {} blob-util@2.0.2: {} @@ -8793,16 +9021,16 @@ snapshots: boolbase@1.0.0: {} - boxen@7.1.1: + boxen@8.0.1: dependencies: ansi-align: 3.0.1 - camelcase: 7.0.1 + camelcase: 8.0.0 chalk: 5.3.0 cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 + string-width: 7.2.0 + type-fest: 4.41.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 brace-expansion@1.1.11: dependencies: @@ -8821,6 +9049,10 @@ snapshots: dependencies: wcwidth: 1.0.1 + brotli@1.3.3: + dependencies: + base64-js: 1.5.1 + browserslist@4.22.1: dependencies: caniuse-lite: 1.0.30001553 @@ -8851,11 +9083,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - builtin-modules@3.3.0: {} cachedir@2.4.0: {} @@ -8901,7 +9128,7 @@ snapshots: camelcase@5.3.1: {} - camelcase@7.0.1: {} + camelcase@8.0.0: {} caniuse-api@3.0.0: dependencies: @@ -8959,11 +9186,10 @@ snapshots: dependencies: readdirp: 4.0.2 - chownr@1.1.4: - optional: true - ci-info@3.9.0: {} + ci-info@4.2.0: {} + classcat@5.0.4: {} clean-stack@2.2.0: {} @@ -8974,12 +9200,6 @@ snapshots: dependencies: restore-cursor: 3.1.0 - cli-cursor@4.0.0: - dependencies: - restore-cursor: 4.0.0 - - cli-spinners@2.9.1: {} - cli-table3@0.6.3: dependencies: string-width: 4.2.3 @@ -9005,18 +9225,10 @@ snapshots: clone@1.0.4: {} - clsx@2.0.0: {} + clone@2.1.2: {} clsx@2.1.1: {} - code-red@1.0.4: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.3 - acorn: 8.11.2 - estree-walker: 3.0.3 - periscopic: 3.1.0 - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -9079,12 +9291,20 @@ snapshots: convert-source-map@2.0.0: {} - cookie@0.5.0: {} + cookie-es@1.2.2: {} cookie@0.6.0: {} + cookie@1.0.2: {} + core-util-is@1.0.2: {} + cross-fetch@3.2.0: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + cross-spawn@5.1.0: dependencies: lru-cache: 4.1.5 @@ -9103,6 +9323,10 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crossws@0.3.5: + dependencies: + uncrypto: 0.1.3 + css-declaration-sorter@6.4.1(postcss@8.4.21): dependencies: postcss: 8.4.21 @@ -9129,6 +9353,11 @@ snapshots: mdn-data: 2.0.30 source-map-js: 1.0.2 + css-tree@3.1.0: + dependencies: + mdn-data: 2.12.2 + source-map-js: 1.2.1 + css-what@6.1.0: {} cssesc@3.0.0: {} @@ -9377,10 +9606,6 @@ snapshots: dayjs@1.11.10: {} - debug@2.6.9: - dependencies: - ms: 2.0.0 - debug@3.2.7(supports-color@8.1.1): dependencies: ms: 2.1.3 @@ -9393,14 +9618,6 @@ snapshots: optionalDependencies: supports-color: 8.1.1 - debug@4.3.5: - dependencies: - ms: 2.1.2 - - debug@4.3.7: - dependencies: - ms: 2.1.3 - debug@4.4.0: dependencies: ms: 2.1.3 @@ -9416,16 +9633,8 @@ snapshots: dependencies: character-entities: 2.0.2 - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - optional: true - dedent-js@1.0.1: {} - deep-extend@0.6.0: - optional: true - deep-is@0.1.4: {} deepmerge@4.3.1: {} @@ -9452,6 +9661,8 @@ snapshots: has-property-descriptors: 1.0.1 object-keys: 1.1.1 + defu@6.1.4: {} + delayed-stream@1.0.0: {} dependency-graph@0.11.0: {} @@ -9460,16 +9671,26 @@ snapshots: dequal@2.0.3: {} + destr@2.0.5: {} + detect-indent@6.1.0: {} - detect-libc@2.0.2: + detect-libc@2.0.4: optional: true - devalue@4.3.2: {} + deterministic-object-hash@2.0.2: + dependencies: + base-64: 1.0.0 devalue@5.1.1: {} - diff@5.1.0: {} + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + dfa@1.2.0: {} + + diff@5.2.0: {} dir-glob@3.0.1: dependencies: @@ -9509,7 +9730,7 @@ snapshots: dotenv@8.6.0: {} - dset@3.1.2: {} + dset@3.1.4: {} dunder-proto@1.0.1: dependencies: @@ -9519,8 +9740,6 @@ snapshots: duplexer@0.1.2: {} - eastasianwidth@0.2.0: {} - ecc-jsbn@0.1.2: dependencies: jsbn: 0.1.1 @@ -9536,8 +9755,6 @@ snapshots: emoji-regex@8.0.0: {} - emoji-regex@9.2.2: {} - end-of-stream@1.4.4: dependencies: once: 1.4.0 @@ -9549,6 +9766,8 @@ snapshots: entities@4.5.0: {} + entities@6.0.1: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -9725,7 +9944,7 @@ snapshots: iterator.prototype: 1.1.5 safe-array-concat: 1.1.3 - es-module-lexer@1.3.1: {} + es-module-lexer@1.7.0: {} es-object-atoms@1.0.0: dependencies: @@ -9795,31 +10014,6 @@ snapshots: '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 - esbuild@0.19.5: - optionalDependencies: - '@esbuild/android-arm': 0.19.5 - '@esbuild/android-arm64': 0.19.5 - '@esbuild/android-x64': 0.19.5 - '@esbuild/darwin-arm64': 0.19.5 - '@esbuild/darwin-x64': 0.19.5 - '@esbuild/freebsd-arm64': 0.19.5 - '@esbuild/freebsd-x64': 0.19.5 - '@esbuild/linux-arm': 0.19.5 - '@esbuild/linux-arm64': 0.19.5 - '@esbuild/linux-ia32': 0.19.5 - '@esbuild/linux-loong64': 0.19.5 - '@esbuild/linux-mips64el': 0.19.5 - '@esbuild/linux-ppc64': 0.19.5 - '@esbuild/linux-riscv64': 0.19.5 - '@esbuild/linux-s390x': 0.19.5 - '@esbuild/linux-x64': 0.19.5 - '@esbuild/netbsd-x64': 0.19.5 - '@esbuild/openbsd-x64': 0.19.5 - '@esbuild/sunos-x64': 0.19.5 - '@esbuild/win32-arm64': 0.19.5 - '@esbuild/win32-ia32': 0.19.5 - '@esbuild/win32-x64': 0.19.5 - esbuild@0.25.2: optionalDependencies: '@esbuild/aix-ppc64': 0.25.2 @@ -10047,6 +10241,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + esrap@1.4.9: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + esrecurse@4.3.0: dependencies: estraverse: 5.3.0 @@ -10057,7 +10255,7 @@ snapshots: estree-walker@3.0.3: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.7 esutils@2.0.3: {} @@ -10073,6 +10271,8 @@ snapshots: eventemitter2@6.4.7: {} + eventemitter3@5.0.1: {} + execa@4.1.0: dependencies: cross-spawn: 7.0.3 @@ -10097,29 +10297,10 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 - execa@8.0.1: - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - executable@4.1.1: dependencies: pify: 2.3.0 - expand-template@2.0.3: - optional: true - - extend-shallow@2.0.1: - dependencies: - is-extendable: 0.1.1 - extend@3.0.2: {} extendable-error@0.1.7: {} @@ -10146,17 +10327,6 @@ snapshots: fast-diff@1.3.0: {} - fast-fifo@1.3.2: - optional: true - - fast-glob@3.3.1: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -10181,6 +10351,10 @@ snapshots: optionalDependencies: picomatch: 4.0.2 + fdir@6.4.6(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -10225,10 +10399,29 @@ snapshots: flatted@3.2.9: {} + flattie@1.1.1: {} + follow-redirects@1.15.3(debug@4.3.4): optionalDependencies: debug: 4.3.4(supports-color@8.1.1) + fontace@0.3.0: + dependencies: + '@types/fontkit': 2.0.8 + fontkit: 2.0.4 + + fontkit@2.0.4: + dependencies: + '@swc/helpers': 0.5.17 + brotli: 1.3.3 + clone: 2.1.2 + dfa: 1.2.0 + fast-deep-equal: 3.1.3 + restructure: 3.0.2 + tiny-inflate: 1.0.3 + unicode-properties: 1.4.1 + unicode-trie: 2.0.0 + for-each@0.3.3: dependencies: is-callable: 1.2.7 @@ -10255,9 +10448,6 @@ snapshots: from@0.1.7: {} - fs-constants@1.0.0: - optional: true - fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -10315,6 +10505,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.3.0: {} + get-intrinsic@1.2.2: dependencies: function-bind: 1.1.2 @@ -10356,8 +10548,6 @@ snapshots: get-stream@6.0.1: {} - get-stream@8.0.1: {} - get-symbol-description@1.0.0: dependencies: call-bind: 1.0.7 @@ -10383,9 +10573,6 @@ snapshots: dependencies: assert-plus: 1.0.0 - github-from-package@0.0.0: - optional: true - github-slugger@2.0.0: {} glob-parent@5.1.2: @@ -10470,12 +10657,17 @@ snapshots: dependencies: lodash: 4.17.21 - gray-matter@4.0.3: + h3@1.15.3: dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 + cookie-es: 1.2.2 + crossws: 0.3.5 + defu: 6.1.4 + destr: 2.0.5 + iron-webcrypto: 1.2.1 + node-mock-http: 1.0.0 + radix3: 1.1.2 + ufo: 1.6.1 + uncrypto: 0.1.3 hard-rejection@2.1.0: {} @@ -10521,72 +10713,98 @@ snapshots: dependencies: function-bind: 1.1.2 - hast-util-from-parse5@7.1.2: + hast-util-from-html@2.0.3: dependencies: - '@types/hast': 2.3.7 - '@types/unist': 2.0.9 - hastscript: 7.2.0 - property-information: 6.3.0 - vfile: 5.3.7 - vfile-location: 4.1.0 + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.3 + parse5: 7.3.0 + vfile: 6.0.3 + vfile-message: 4.0.2 + + hast-util-from-parse5@8.0.3: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.1 + devlop: 1.1.0 + hastscript: 9.0.1 + property-information: 7.1.0 + vfile: 6.0.3 + vfile-location: 5.0.3 web-namespaces: 2.0.1 - hast-util-parse-selector@3.1.1: + hast-util-is-element@3.0.0: dependencies: - '@types/hast': 2.3.7 + '@types/hast': 3.0.4 - hast-util-raw@7.2.3: + hast-util-parse-selector@4.0.0: dependencies: - '@types/hast': 2.3.7 - '@types/parse5': 6.0.3 - hast-util-from-parse5: 7.1.2 - hast-util-to-parse5: 7.1.0 - html-void-elements: 2.0.1 - parse5: 6.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 - vfile: 5.3.7 + '@types/hast': 3.0.4 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.1 + '@ungap/structured-clone': 1.3.0 + hast-util-from-parse5: 8.0.3 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.3.0 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-to-html@8.0.4: + hast-util-to-html@9.0.5: dependencies: - '@types/hast': 2.3.7 - '@types/unist': 2.0.9 + '@types/hast': 3.0.4 + '@types/unist': 3.0.1 ccount: 2.0.1 comma-separated-tokens: 2.0.3 - hast-util-raw: 7.2.3 - hast-util-whitespace: 2.0.1 - html-void-elements: 2.0.1 - property-information: 6.3.0 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.3 zwitch: 2.0.4 - hast-util-to-parse5@7.1.0: + hast-util-to-parse5@8.0.0: dependencies: - '@types/hast': 2.3.7 + '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 + devlop: 1.1.0 property-information: 6.3.0 space-separated-tokens: 2.0.2 web-namespaces: 2.0.1 zwitch: 2.0.4 - hast-util-whitespace@2.0.1: {} - - hastscript@7.2.0: + hast-util-to-text@4.0.2: dependencies: - '@types/hast': 2.3.7 + '@types/hast': 3.0.4 + '@types/unist': 3.0.1 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.1: + dependencies: + '@types/hast': 3.0.4 comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 3.1.1 - property-information: 6.3.0 + hast-util-parse-selector: 4.0.0 + property-information: 7.1.0 space-separated-tokens: 2.0.2 hosted-git-info@2.8.9: {} html-escaper@3.0.3: {} - html-void-elements@2.0.1: {} + html-void-elements@3.0.0: {} http-cache-semantics@4.1.1: {} @@ -10602,8 +10820,6 @@ snapshots: human-signals@2.1.0: {} - human-signals@5.0.0: {} - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -10625,8 +10841,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-meta-resolve@3.1.1: {} - import-meta-resolve@4.1.0: {} imurmurhash@0.1.4: {} @@ -10640,9 +10854,6 @@ snapshots: inherits@2.0.4: {} - ini@1.3.8: - optional: true - ini@2.0.0: {} internal-slot@1.0.6: @@ -10663,6 +10874,8 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 + iron-webcrypto@1.2.1: {} + is-array-buffer@3.0.2: dependencies: call-bind: 1.0.7 @@ -10711,8 +10924,6 @@ snapshots: call-bound: 1.0.4 has-tostringtag: 1.0.2 - is-buffer@2.0.5: {} - is-builtin-module@3.2.1: dependencies: builtin-modules: 3.3.0 @@ -10748,8 +10959,6 @@ snapshots: is-docker@3.0.0: {} - is-extendable@0.1.1: {} - is-extglob@2.1.1: {} is-finalizationregistry@1.1.1: @@ -10775,8 +10984,6 @@ snapshots: global-dirs: 3.0.1 is-path-inside: 3.0.3 - is-interactive@2.0.0: {} - is-map@2.0.3: {} is-module@1.0.0: {} @@ -10806,10 +11013,6 @@ snapshots: dependencies: '@types/estree': 1.0.5 - is-reference@3.0.2: - dependencies: - '@types/estree': 1.0.3 - is-reference@3.0.3: dependencies: '@types/estree': 1.0.6 @@ -10842,8 +11045,6 @@ snapshots: is-stream@2.0.1: {} - is-stream@3.0.0: {} - is-string@1.0.7: dependencies: has-tostringtag: 1.0.0 @@ -10883,8 +11084,6 @@ snapshots: is-unicode-supported@0.1.0: {} - is-unicode-supported@1.3.0: {} - is-weakmap@2.0.2: {} is-weakref@1.0.2: @@ -10944,6 +11143,8 @@ snapshots: jsesc@2.5.2: {} + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -10958,8 +11159,6 @@ snapshots: json5@2.2.3: {} - jsonc-parser@3.2.0: {} - jsonfile@4.0.0: optionalDependencies: graceful-fs: 4.2.11 @@ -11066,11 +11265,6 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-symbols@5.1.0: - dependencies: - chalk: 5.3.0 - is-unicode-supported: 1.3.0 - log-update@4.0.0: dependencies: ansi-escapes: 4.3.2 @@ -11088,6 +11282,8 @@ snapshots: dependencies: tslib: 2.8.1 + lru-cache@10.4.3: {} + lru-cache@4.1.5: dependencies: pseudomap: 1.0.2 @@ -11109,9 +11305,11 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magic-string@0.30.5: + magicast@0.3.5: dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@babel/parser': 7.27.5 + '@babel/types': 7.27.6 + source-map-js: 1.2.1 map-obj@1.0.1: {} @@ -11123,121 +11321,132 @@ snapshots: math-intrinsics@1.1.0: {} - mdast-util-definitions@5.1.2: - dependencies: - '@types/mdast': 3.0.14 - '@types/unist': 2.0.9 - unist-util-visit: 4.1.2 - mdast-util-definitions@6.0.0: dependencies: '@types/mdast': 4.0.2 '@types/unist': 3.0.1 unist-util-visit: 5.0.0 - mdast-util-find-and-replace@2.2.2: + mdast-util-find-and-replace@3.0.2: dependencies: - '@types/mdast': 3.0.14 + '@types/mdast': 4.0.2 escape-string-regexp: 5.0.0 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 - mdast-util-from-markdown@1.3.1: + mdast-util-from-markdown@2.0.2: dependencies: - '@types/mdast': 3.0.14 - '@types/unist': 2.0.9 + '@types/mdast': 4.0.2 + '@types/unist': 3.0.1 decode-named-character-reference: 1.0.2 - mdast-util-to-string: 3.2.0 - micromark: 3.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-decode-string: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - unist-util-stringify-position: 3.0.3 - uvu: 0.5.6 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 transitivePeerDependencies: - supports-color - mdast-util-gfm-autolink-literal@1.0.3: + mdast-util-gfm-autolink-literal@2.0.1: dependencies: - '@types/mdast': 3.0.14 + '@types/mdast': 4.0.2 ccount: 2.0.1 - mdast-util-find-and-replace: 2.2.2 - micromark-util-character: 1.2.0 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 - mdast-util-gfm-footnote@1.0.2: + mdast-util-gfm-footnote@2.1.0: dependencies: - '@types/mdast': 3.0.14 - mdast-util-to-markdown: 1.5.0 - micromark-util-normalize-identifier: 1.1.0 + '@types/mdast': 4.0.2 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color - mdast-util-gfm-strikethrough@1.0.3: + mdast-util-gfm-strikethrough@2.0.0: dependencies: - '@types/mdast': 3.0.14 - mdast-util-to-markdown: 1.5.0 + '@types/mdast': 4.0.2 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color - mdast-util-gfm-table@1.0.7: + mdast-util-gfm-table@2.0.0: dependencies: - '@types/mdast': 3.0.14 + '@types/mdast': 4.0.2 + devlop: 1.1.0 markdown-table: 3.0.3 - mdast-util-from-markdown: 1.3.1 - mdast-util-to-markdown: 1.5.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-gfm-task-list-item@1.0.2: + mdast-util-gfm-task-list-item@2.0.0: dependencies: - '@types/mdast': 3.0.14 - mdast-util-to-markdown: 1.5.0 - - mdast-util-gfm@2.0.2: - dependencies: - mdast-util-from-markdown: 1.3.1 - mdast-util-gfm-autolink-literal: 1.0.3 - mdast-util-gfm-footnote: 1.0.2 - mdast-util-gfm-strikethrough: 1.0.3 - mdast-util-gfm-table: 1.0.7 - mdast-util-gfm-task-list-item: 1.0.2 - mdast-util-to-markdown: 1.5.0 + '@types/mdast': 4.0.2 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 transitivePeerDependencies: - supports-color - mdast-util-phrasing@3.0.1: + mdast-util-gfm@3.1.0: dependencies: - '@types/mdast': 3.0.14 - unist-util-is: 5.2.1 + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.1.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color - mdast-util-to-hast@12.3.0: + mdast-util-phrasing@4.1.0: dependencies: - '@types/hast': 2.3.7 - '@types/mdast': 3.0.14 - mdast-util-definitions: 5.1.2 - micromark-util-sanitize-uri: 1.2.0 + '@types/mdast': 4.0.2 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.2 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 - unist-util-generated: 2.0.1 - unist-util-position: 4.0.4 - unist-util-visit: 4.1.2 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 - mdast-util-to-markdown@1.5.0: + mdast-util-to-markdown@2.1.2: dependencies: - '@types/mdast': 3.0.14 - '@types/unist': 2.0.9 + '@types/mdast': 4.0.2 + '@types/unist': 3.0.1 longest-streak: 3.1.0 - mdast-util-phrasing: 3.0.1 - mdast-util-to-string: 3.2.0 - micromark-util-decode-string: 1.1.0 - unist-util-visit: 4.1.2 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 zwitch: 2.0.4 - mdast-util-to-string@3.2.0: + mdast-util-to-string@4.0.0: dependencies: - '@types/mdast': 3.0.14 + '@types/mdast': 4.0.2 mdn-data@2.0.28: {} mdn-data@2.0.30: {} + mdn-data@2.12.2: {} + meow@6.1.1: dependencies: '@types/minimist': 1.2.4 @@ -11256,194 +11465,194 @@ snapshots: merge2@1.4.1: {} - micromark-core-commonmark@1.1.0: + micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.0.2 - micromark-factory-destination: 1.1.0 - micromark-factory-label: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-factory-title: 1.1.0 - micromark-factory-whitespace: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-html-tag-name: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-gfm-autolink-literal@1.0.5: + micromark-extension-gfm-autolink-literal@2.1.0: dependencies: - micromark-util-character: 1.2.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-gfm-footnote@1.1.2: + micromark-extension-gfm-footnote@2.1.0: dependencies: - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-gfm-strikethrough@1.0.7: + micromark-extension-gfm-strikethrough@2.1.0: dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-classify-character: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-gfm-table@1.0.7: + micromark-extension-gfm-table@2.1.1: dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-gfm-tagfilter@1.0.2: + micromark-extension-gfm-tagfilter@2.0.0: dependencies: - micromark-util-types: 1.1.0 + micromark-util-types: 2.0.2 - micromark-extension-gfm-task-list-item@1.0.5: + micromark-extension-gfm-task-list-item@2.1.0: dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-extension-gfm@2.0.3: + micromark-extension-gfm@3.0.0: dependencies: - micromark-extension-gfm-autolink-literal: 1.0.5 - micromark-extension-gfm-footnote: 1.1.2 - micromark-extension-gfm-strikethrough: 1.0.7 - micromark-extension-gfm-table: 1.0.7 - micromark-extension-gfm-tagfilter: 1.0.2 - micromark-extension-gfm-task-list-item: 1.0.5 - micromark-util-combine-extensions: 1.1.0 - micromark-util-types: 1.1.0 + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.2 - micromark-factory-destination@1.1.0: + micromark-factory-destination@2.0.1: dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-factory-label@1.1.0: + micromark-factory-label@2.0.1: dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-factory-space@1.1.0: + micromark-factory-space@2.0.1: dependencies: - micromark-util-character: 1.2.0 - micromark-util-types: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 - micromark-factory-title@1.1.0: + micromark-factory-title@2.0.1: dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-factory-whitespace@1.1.0: + micromark-factory-whitespace@2.0.1: dependencies: - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-util-character@1.2.0: + micromark-util-character@2.1.1: dependencies: - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-util-chunked@1.1.0: + micromark-util-chunked@2.0.1: dependencies: - micromark-util-symbol: 1.1.0 + micromark-util-symbol: 2.0.1 - micromark-util-classify-character@1.1.0: + micromark-util-classify-character@2.0.1: dependencies: - micromark-util-character: 1.2.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-util-combine-extensions@1.1.0: + micromark-util-combine-extensions@2.0.1: dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-types: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 - micromark-util-decode-numeric-character-reference@1.1.0: + micromark-util-decode-numeric-character-reference@2.0.2: dependencies: - micromark-util-symbol: 1.1.0 + micromark-util-symbol: 2.0.1 - micromark-util-decode-string@1.1.0: + micromark-util-decode-string@2.0.1: dependencies: decode-named-character-reference: 1.0.2 - micromark-util-character: 1.2.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-symbol: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 - micromark-util-encode@1.1.0: {} + micromark-util-encode@2.0.1: {} - micromark-util-html-tag-name@1.2.0: {} + micromark-util-html-tag-name@2.0.1: {} - micromark-util-normalize-identifier@1.1.0: + micromark-util-normalize-identifier@2.0.1: dependencies: - micromark-util-symbol: 1.1.0 + micromark-util-symbol: 2.0.1 - micromark-util-resolve-all@1.1.0: + micromark-util-resolve-all@2.0.1: dependencies: - micromark-util-types: 1.1.0 + micromark-util-types: 2.0.2 - micromark-util-sanitize-uri@1.2.0: + micromark-util-sanitize-uri@2.0.1: dependencies: - micromark-util-character: 1.2.0 - micromark-util-encode: 1.1.0 - micromark-util-symbol: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 - micromark-util-subtokenize@1.1.0: + micromark-util-subtokenize@2.1.0: dependencies: - micromark-util-chunked: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 - micromark-util-symbol@1.1.0: {} + micromark-util-symbol@2.0.1: {} - micromark-util-types@1.1.0: {} + micromark-util-types@2.0.2: {} - micromark@3.2.0: + micromark@4.0.2: dependencies: '@types/debug': 4.1.10 - debug: 4.3.7 + debug: 4.4.0 decode-named-character-reference: 1.0.2 - micromark-core-commonmark: 1.1.0 - micromark-factory-space: 1.1.0 - micromark-util-character: 1.2.0 - micromark-util-chunked: 1.1.0 - micromark-util-combine-extensions: 1.1.0 - micromark-util-decode-numeric-character-reference: 1.1.0 - micromark-util-encode: 1.1.0 - micromark-util-normalize-identifier: 1.1.0 - micromark-util-resolve-all: 1.1.0 - micromark-util-sanitize-uri: 1.2.0 - micromark-util-subtokenize: 1.1.0 - micromark-util-symbol: 1.1.0 - micromark-util-types: 1.1.0 - uvu: 0.5.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 transitivePeerDependencies: - supports-color @@ -11458,15 +11667,8 @@ snapshots: dependencies: mime-db: 1.52.0 - mime@3.0.0: {} - mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} - - mimic-response@3.1.0: - optional: true - min-indent@1.0.1: {} minimatch@3.1.2: @@ -11491,14 +11693,11 @@ snapshots: mixme@0.5.9: {} - mkdirp-classic@0.5.3: - optional: true - mri@1.2.0: {} mrmime@2.0.0: {} - ms@2.0.0: {} + mrmime@2.0.1: {} ms@2.1.2: {} @@ -11510,40 +11709,27 @@ snapshots: nanoid@3.3.8: {} - napi-build-utils@1.0.2: - optional: true - natural-compare@1.4.0: {} - needle@2.9.1: - dependencies: - debug: 3.2.7(supports-color@8.1.1) - iconv-lite: 0.4.24 - sax: 1.3.0 - transitivePeerDependencies: - - supports-color + neotraverse@0.6.18: {} - nlcst-to-string@3.1.1: + nlcst-to-string@4.0.0: dependencies: - '@types/nlcst': 1.0.3 + '@types/nlcst': 2.0.3 no-case@3.0.4: dependencies: lower-case: 2.0.2 tslib: 2.8.1 - node-abi@3.51.0: - dependencies: - semver: 7.6.0 - optional: true - - node-addon-api@6.1.0: - optional: true + node-fetch-native@1.6.6: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 + node-mock-http@1.0.0: {} + node-releases@2.0.13: {} node-releases@2.0.18: {} @@ -11565,10 +11751,6 @@ snapshots: dependencies: path-key: 3.1.1 - npm-run-path@5.1.0: - dependencies: - path-key: 4.0.0 - nth-check@2.1.1: dependencies: boolbase: 1.0.0 @@ -11618,6 +11800,14 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 + ofetch@1.4.1: + dependencies: + destr: 2.0.5 + node-fetch-native: 1.6.6 + ufo: 1.6.1 + + ohash@2.0.11: {} + once@1.4.0: dependencies: wrappy: 1.0.2 @@ -11626,9 +11816,13 @@ snapshots: dependencies: mimic-fn: 2.1.0 - onetime@6.0.0: + oniguruma-parser@0.12.1: {} + + oniguruma-to-es@4.3.3: dependencies: - mimic-fn: 4.0.0 + oniguruma-parser: 0.12.1 + regex: 6.0.1 + regex-recursion: 6.0.2 optionator@0.9.3: dependencies: @@ -11639,18 +11833,6 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - ora@7.0.1: - dependencies: - chalk: 5.3.0 - cli-cursor: 4.0.0 - cli-spinners: 2.9.1 - is-interactive: 2.0.0 - is-unicode-supported: 1.3.0 - log-symbols: 5.1.0 - stdin-discarder: 0.1.0 - string-width: 6.1.0 - strip-ansi: 7.1.0 - os-tmpdir@1.0.2: {} ospath@1.2.2: {} @@ -11675,9 +11857,9 @@ snapshots: dependencies: yocto-queue: 0.1.0 - p-limit@4.0.0: + p-limit@6.2.0: dependencies: - yocto-queue: 1.0.0 + yocto-queue: 1.2.1 p-locate@4.1.0: dependencies: @@ -11693,8 +11875,19 @@ snapshots: dependencies: aggregate-error: 3.1.0 + p-queue@8.1.0: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.4 + + p-timeout@6.1.4: {} + p-try@2.2.0: {} + package-manager-detector@1.3.0: {} + + pako@0.2.9: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -11706,13 +11899,18 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse-latin@5.0.1: + parse-latin@7.0.0: dependencies: - nlcst-to-string: 3.1.1 - unist-util-modify-children: 3.1.1 - unist-util-visit-children: 2.0.2 + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.1 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 - parse5@6.0.1: {} + parse5@7.3.0: + dependencies: + entities: 6.0.1 pascal-case@3.1.2: dependencies: @@ -11725,12 +11923,8 @@ snapshots: path-key@3.1.1: {} - path-key@4.0.0: {} - path-parse@1.0.7: {} - path-to-regexp@6.2.1: {} - path-type@4.0.0: {} path-type@5.0.0: {} @@ -11743,12 +11937,6 @@ snapshots: performance-now@2.1.0: {} - periscopic@3.1.0: - dependencies: - '@types/estree': 1.0.3 - estree-walker: 3.0.3 - is-reference: 3.0.2 - picocolors@1.0.0: {} picocolors@1.1.1: {} @@ -12234,22 +12422,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prebuild-install@7.1.1: - dependencies: - detect-libc: 2.0.2 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.8 - mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.51.0 - pump: 3.0.0 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - optional: true - preferred-pm@3.1.2: dependencies: find-up: 5.0.0 @@ -12276,15 +12448,7 @@ snapshots: pretty-hrtime@1.0.3: {} - prismjs@1.29.0: {} - - probe-image-size@7.2.3: - dependencies: - lodash.merge: 4.6.2 - needle: 2.9.1 - stream-parser: 0.3.1 - transitivePeerDependencies: - - supports-color + prismjs@1.30.0: {} process@0.11.10: {} @@ -12301,6 +12465,8 @@ snapshots: property-information@6.3.0: {} + property-information@7.1.0: {} + proxy-from-env@1.0.0: {} ps-tree@1.2.0: @@ -12328,23 +12494,14 @@ snapshots: queue-microtask@1.2.3: {} - queue-tick@1.0.1: - optional: true - quick-lru@4.0.1: {} + radix3@1.1.2: {} + randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - optional: true - react-dom@18.2.0(react@18.2.0): dependencies: loose-envify: 1.4.0 @@ -12372,6 +12529,8 @@ snapshots: react-refresh@0.14.2: {} + react-refresh@0.17.0: {} + react-router-dom@6.18.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@remix-run/router': 1.11.0 @@ -12416,12 +12575,6 @@ snapshots: pify: 4.0.1 strip-bom: 3.0.0 - readable-stream@3.6.2: - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -12452,6 +12605,16 @@ snapshots: regenerator-runtime@0.14.0: {} + regex-recursion@6.0.2: + dependencies: + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@6.0.1: + dependencies: + regex-utilities: 2.3.0 + regexp.prototype.flags@1.5.1: dependencies: call-bind: 1.0.7 @@ -12474,61 +12637,71 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - rehype-parse@8.0.5: + rehype-parse@9.0.1: dependencies: - '@types/hast': 2.3.7 - hast-util-from-parse5: 7.1.2 - parse5: 6.0.1 - unified: 10.1.2 + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 - rehype-raw@6.1.1: + rehype-raw@7.0.0: dependencies: - '@types/hast': 2.3.7 - hast-util-raw: 7.2.3 - unified: 10.1.2 + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 - rehype-stringify@9.0.4: + rehype-stringify@10.0.1: dependencies: - '@types/hast': 2.3.7 - hast-util-to-html: 8.0.4 - unified: 10.1.2 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.5 + unified: 11.0.5 - rehype@12.0.1: + rehype@13.0.2: dependencies: - '@types/hast': 2.3.7 - rehype-parse: 8.0.5 - rehype-stringify: 9.0.4 - unified: 10.1.2 + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 - remark-gfm@3.0.1: + remark-gfm@4.0.1: dependencies: - '@types/mdast': 3.0.14 - mdast-util-gfm: 2.0.2 - micromark-extension-gfm: 2.0.3 - unified: 10.1.2 + '@types/mdast': 4.0.2 + mdast-util-gfm: 3.1.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-parse@10.0.2: + remark-parse@11.0.0: dependencies: - '@types/mdast': 3.0.14 - mdast-util-from-markdown: 1.3.1 - unified: 10.1.2 + '@types/mdast': 4.0.2 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 transitivePeerDependencies: - supports-color - remark-rehype@10.1.0: + remark-rehype@11.1.2: dependencies: - '@types/hast': 2.3.7 - '@types/mdast': 3.0.14 - mdast-util-to-hast: 12.3.0 - unified: 10.1.2 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.2 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 - remark-smartypants@2.0.0: + remark-smartypants@3.0.2: dependencies: - retext: 8.1.0 - retext-smartypants: 5.2.0 - unist-util-visit: 4.1.2 + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.2 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 request-progress@3.0.0: dependencies: @@ -12563,37 +12736,32 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - restore-cursor@4.0.0: - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 + restructure@3.0.2: {} - retext-latin@3.1.0: + retext-latin@4.0.0: dependencies: - '@types/nlcst': 1.0.3 - parse-latin: 5.0.1 - unherit: 3.0.1 - unified: 10.1.2 + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 - retext-smartypants@5.2.0: + retext-smartypants@6.2.0: dependencies: - '@types/nlcst': 1.0.3 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - unist-util-visit: 4.1.2 + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.0.0 - retext-stringify@3.1.0: + retext-stringify@4.0.0: dependencies: - '@types/nlcst': 1.0.3 - nlcst-to-string: 3.1.1 - unified: 10.1.2 + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 - retext@8.1.0: + retext@9.0.0: dependencies: - '@types/nlcst': 1.0.3 - retext-latin: 3.1.0 - retext-stringify: 3.1.0 - unified: 10.1.2 + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 reusify@1.0.4: {} @@ -12720,8 +12888,6 @@ snapshots: safer-buffer@2.1.2: {} - sax@1.3.0: {} - scheduler@0.23.0: dependencies: loose-envify: 1.4.0 @@ -12730,11 +12896,6 @@ snapshots: dependencies: loose-envify: 1.4.0 - section-matter@1.0.0: - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - semver@5.7.2: {} semver@6.3.1: {} @@ -12749,12 +12910,12 @@ snapshots: semver@7.6.3: {} + semver@7.7.2: {} + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 - server-destroy@1.0.1: {} - set-blocking@2.0.0: {} set-cookie-parser@2.6.0: {} @@ -12803,16 +12964,31 @@ snapshots: es-errors: 1.3.0 es-object-atoms: 1.0.0 - sharp@0.32.6: + sharp@0.33.5: dependencies: color: 4.2.3 - detect-libc: 2.0.2 - node-addon-api: 6.1.0 - prebuild-install: 7.1.1 - semver: 7.6.0 - simple-get: 4.0.1 - tar-fs: 3.0.4 - tunnel-agent: 0.6.0 + detect-libc: 2.0.4 + semver: 7.7.2 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 optional: true shebang-command@1.2.0: @@ -12829,12 +13005,16 @@ snapshots: shell-quote@1.8.1: {} - shiki@0.14.5: + shiki@3.6.0: dependencies: - ansi-sequence-parser: 1.1.1 - jsonc-parser: 3.2.0 - vscode-oniguruma: 1.7.0 - vscode-textmate: 8.0.0 + '@shikijs/core': 3.6.0 + '@shikijs/engine-javascript': 3.6.0 + '@shikijs/engine-oniguruma': 3.6.0 + '@shikijs/langs': 3.6.0 + '@shikijs/themes': 3.6.0 + '@shikijs/types': 3.6.0 + '@shikijs/vscode-textmate': 10.0.2 + '@types/hast': 3.0.4 side-channel-list@1.0.0: dependencies: @@ -12873,18 +13053,6 @@ snapshots: signal-exit@3.0.7: {} - signal-exit@4.1.0: {} - - simple-concat@1.0.1: - optional: true - - simple-get@4.0.1: - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - optional: true - simple-swizzle@0.2.2: dependencies: is-arrayish: 0.3.2 @@ -12925,6 +13093,8 @@ snapshots: smob@1.5.0: {} + smol-toml@1.3.4: {} + source-map-js@1.0.2: {} source-map-js@1.2.1: {} @@ -12990,46 +13160,24 @@ snapshots: transitivePeerDependencies: - supports-color - stdin-discarder@0.1.0: - dependencies: - bl: 5.1.0 - stream-combiner@0.0.4: dependencies: duplexer: 0.1.2 - stream-parser@0.3.1: - dependencies: - debug: 2.6.9 - transitivePeerDependencies: - - supports-color - stream-transform@2.1.3: dependencies: mixme: 0.5.9 - streamx@2.15.1: - dependencies: - fast-fifo: 1.3.2 - queue-tick: 1.0.1 - optional: true - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - string-width@5.1.2: + string-width@7.2.0: dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - - string-width@6.1.0: - dependencies: - eastasianwidth: 0.2.0 emoji-regex: 10.3.0 + get-east-asian-width: 1.3.0 strip-ansi: 7.1.0 string.prototype.matchall@4.0.12: @@ -13107,10 +13255,6 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.0.0 - string_decoder@1.3.0: - dependencies: - safe-buffer: 5.2.1 - stringify-entities@4.0.3: dependencies: character-entities-html4: 2.1.0 @@ -13124,23 +13268,14 @@ snapshots: dependencies: ansi-regex: 6.0.1 - strip-bom-string@1.0.0: {} - strip-bom@3.0.0: {} - strip-bom@4.0.0: {} - strip-final-newline@2.0.0: {} - strip-final-newline@3.0.0: {} - strip-indent@3.0.0: dependencies: min-indent: 1.0.1 - strip-json-comments@2.0.1: - optional: true - strip-json-comments@3.1.1: {} stylehacks@6.0.0(postcss@8.4.21): @@ -13192,26 +13327,15 @@ snapshots: optionalDependencies: svelte: 5.27.0 - svelte-hmr@0.15.3(svelte@4.2.1): - dependencies: - svelte: 4.2.1 - - svelte-preprocess@6.0.3(@babel/core@7.24.7)(postcss-load-config@5.0.2(postcss@8.5.3))(postcss@8.5.3)(svelte@5.27.0)(typescript@5.8.3): + svelte-preprocess@6.0.3(@babel/core@7.27.4)(postcss-load-config@5.0.2(postcss@8.5.3))(postcss@8.5.3)(svelte@5.27.0)(typescript@5.8.3): dependencies: svelte: 5.27.0 optionalDependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.27.4 postcss: 8.5.3 postcss-load-config: 5.0.2(postcss@8.5.3) typescript: 5.8.3 - svelte2tsx@0.6.23(svelte@4.2.1)(typescript@5.8.3): - dependencies: - dedent-js: 1.0.1 - pascal-case: 3.1.2 - svelte: 4.2.1 - typescript: 5.8.3 - svelte2tsx@0.7.34(svelte@5.27.0)(typescript@5.8.3): dependencies: dedent-js: 1.0.1 @@ -13219,21 +13343,12 @@ snapshots: svelte: 5.27.0 typescript: 5.8.3 - svelte@4.2.1: + svelte2tsx@0.7.39(svelte@5.33.18)(typescript@5.8.3): dependencies: - '@ampproject/remapping': 2.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 - acorn: 8.11.2 - aria-query: 5.3.0 - axobject-query: 3.2.1 - code-red: 1.0.4 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.2 - locate-character: 3.0.0 - magic-string: 0.30.5 - periscopic: 3.1.0 + dedent-js: 1.0.1 + pascal-case: 3.1.2 + svelte: 5.33.18 + typescript: 5.8.3 svelte@5.27.0: dependencies: @@ -13252,6 +13367,23 @@ snapshots: magic-string: 0.30.17 zimmerframe: 1.1.2 + svelte@5.33.18: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.14.0) + '@types/estree': 1.0.7 + acorn: 8.14.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + clsx: 2.1.1 + esm-env: 1.2.2 + esrap: 1.4.9 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.17 + zimmerframe: 1.1.2 + svgo@3.0.2: dependencies: '@trysound/sax': 0.2.0 @@ -13271,37 +13403,6 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - tar-fs@2.1.1: - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - optional: true - - tar-fs@3.0.4: - dependencies: - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 3.1.6 - optional: true - - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - optional: true - - tar-stream@3.1.6: - dependencies: - b4a: 1.6.4 - fast-fifo: 1.3.2 - streamx: 2.15.1 - optional: true - term-size@2.2.1: {} terser@5.31.0: @@ -13319,11 +13420,20 @@ snapshots: through@2.3.8: {} + tiny-inflate@1.0.3: {} + + tinyexec@0.3.2: {} + tinyglobby@0.2.12: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.14: + dependencies: + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 @@ -13359,14 +13469,9 @@ snapshots: dependencies: typescript: 5.8.3 - tsconfig-resolver@3.0.1: - dependencies: - '@types/json5': 0.0.30 - '@types/resolve': 1.20.4 - json5: 2.2.3 - resolve: 1.22.8 - strip-bom: 4.0.0 - type-fest: 0.13.1 + tsconfck@3.1.6(typescript@5.8.3): + optionalDependencies: + typescript: 5.8.3 tslib@2.8.1: {} @@ -13427,7 +13532,7 @@ snapshots: type-fest@0.8.1: {} - type-fest@2.19.0: {} + type-fest@4.41.0: {} typed-array-buffer@1.0.0: dependencies: @@ -13537,7 +13642,9 @@ snapshots: typescript@5.8.3: {} - ultrahtml@1.5.2: {} + ufo@1.6.1: {} + + ultrahtml@1.6.0: {} unbox-primitive@1.0.2: dependencies: @@ -13553,69 +13660,73 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 + uncrypto@0.1.3: {} + undici-types@5.26.5: {} - undici@5.26.5: + unicode-properties@1.4.1: dependencies: - '@fastify/busboy': 2.0.0 + base64-js: 1.5.1 + unicode-trie: 2.0.0 - unherit@3.0.1: {} + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 unicorn-magic@0.1.0: {} - unified@10.1.2: + unified@11.0.5: dependencies: - '@types/unist': 2.0.9 + '@types/unist': 3.0.1 bail: 2.0.2 + devlop: 1.1.0 extend: 3.0.2 - is-buffer: 2.0.5 is-plain-obj: 4.1.0 trough: 2.1.0 - vfile: 5.3.7 + vfile: 6.0.3 - unist-util-generated@2.0.1: {} - - unist-util-is@5.2.1: + unifont@0.5.0: dependencies: - '@types/unist': 2.0.9 + css-tree: 3.1.0 + ohash: 2.0.11 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.1 + unist-util-is: 6.0.0 unist-util-is@6.0.0: dependencies: '@types/unist': 3.0.1 - unist-util-modify-children@3.1.1: + unist-util-modify-children@4.0.0: dependencies: - '@types/unist': 2.0.9 + '@types/unist': 3.0.1 array-iterate: 2.0.1 - unist-util-position@4.0.4: + unist-util-position@5.0.0: dependencies: - '@types/unist': 2.0.9 + '@types/unist': 3.0.1 - unist-util-stringify-position@3.0.3: + unist-util-remove-position@5.0.0: dependencies: - '@types/unist': 2.0.9 + '@types/unist': 3.0.1 + unist-util-visit: 5.0.0 - unist-util-visit-children@2.0.2: + unist-util-stringify-position@4.0.0: dependencies: - '@types/unist': 2.0.9 + '@types/unist': 3.0.1 - unist-util-visit-parents@5.1.3: + unist-util-visit-children@3.0.0: dependencies: - '@types/unist': 2.0.9 - unist-util-is: 5.2.1 + '@types/unist': 3.0.1 unist-util-visit-parents@6.0.1: dependencies: '@types/unist': 3.0.1 unist-util-is: 6.0.0 - unist-util-visit@4.1.2: - dependencies: - '@types/unist': 2.0.9 - unist-util-is: 5.2.1 - unist-util-visit-parents: 5.1.3 - unist-util-visit@5.0.0: dependencies: '@types/unist': 3.0.1 @@ -13628,6 +13739,17 @@ snapshots: universalify@2.0.1: {} + unstorage@1.16.0: + dependencies: + anymatch: 3.1.3 + chokidar: 4.0.3 + destr: 2.0.5 + h3: 1.15.3 + lru-cache: 10.4.3 + node-fetch-native: 1.6.6 + ofetch: 1.4.1 + ufo: 1.6.1 + untildify@4.0.0: {} update-browserslist-db@1.0.13(browserslist@4.22.1): @@ -13665,13 +13787,6 @@ snapshots: uuid@8.3.2: {} - uvu@0.5.6: - dependencies: - dequal: 2.0.3 - diff: 5.1.0 - kleur: 4.1.5 - sade: 1.8.1 - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -13683,22 +13798,20 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vfile-location@4.1.0: + vfile-location@5.0.3: dependencies: - '@types/unist': 2.0.9 - vfile: 5.3.7 + '@types/unist': 3.0.1 + vfile: 6.0.3 - vfile-message@3.1.4: + vfile-message@4.0.2: dependencies: - '@types/unist': 2.0.9 - unist-util-stringify-position: 3.0.3 + '@types/unist': 3.0.1 + unist-util-stringify-position: 4.0.0 - vfile@5.3.7: + vfile@6.0.3: dependencies: - '@types/unist': 2.0.9 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.4 + '@types/unist': 3.0.1 + vfile-message: 4.0.2 vite@4.5.0(@types/node@20.14.6)(terser@5.31.0): dependencies: @@ -13710,16 +13823,6 @@ snapshots: fsevents: 2.3.3 terser: 5.31.0 - vite@4.5.3(@types/node@20.14.6)(terser@5.31.0): - dependencies: - esbuild: 0.18.20 - postcss: 8.5.3 - rollup: 3.29.4 - optionalDependencies: - '@types/node': 20.14.6 - fsevents: 2.3.3 - terser: 5.31.0 - vite@6.3.0(@types/node@20.14.6)(terser@5.31.0): dependencies: esbuild: 0.25.2 @@ -13733,17 +13836,30 @@ snapshots: fsevents: 2.3.3 terser: 5.31.0 - vitefu@0.2.5(vite@4.5.3(@types/node@20.14.6)(terser@5.31.0)): + vite@6.3.5(@types/node@20.14.6)(terser@5.31.0): + dependencies: + esbuild: 0.25.2 + fdir: 6.4.6(picomatch@4.0.2) + picomatch: 4.0.2 + postcss: 8.5.3 + rollup: 4.39.0 + tinyglobby: 0.2.14 optionalDependencies: - vite: 4.5.3(@types/node@20.14.6)(terser@5.31.0) + '@types/node': 20.14.6 + fsevents: 2.3.3 + terser: 5.31.0 vitefu@1.0.4(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)): optionalDependencies: vite: 6.3.0(@types/node@20.14.6)(terser@5.31.0) - vscode-oniguruma@1.7.0: {} + vitefu@1.0.4(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)): + optionalDependencies: + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) - vscode-textmate@8.0.0: {} + vitefu@1.0.6(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)): + optionalDependencies: + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) wait-on@7.1.0(debug@4.3.4): dependencies: @@ -13816,11 +13932,6 @@ snapshots: load-yaml-file: 0.2.0 path-exists: 4.0.0 - which-pm@2.1.1: - dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 - which-typed-array@1.1.13: dependencies: available-typed-arrays: 1.0.5 @@ -13855,9 +13966,9 @@ snapshots: dependencies: isexe: 2.0.0 - widest-line@4.0.1: + widest-line@5.0.0: dependencies: - string-width: 5.1.2 + string-width: 7.2.0 wrap-ansi@6.2.0: dependencies: @@ -13871,14 +13982,16 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 - wrap-ansi@8.1.0: + wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 - string-width: 5.1.2 + string-width: 7.2.0 strip-ansi: 7.1.0 wrappy@1.0.2: {} + xxhash-wasm@1.1.0: {} + y18n@4.0.3: {} y18n@5.0.8: {} @@ -13931,11 +14044,26 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.0.0: {} + yocto-queue@1.2.1: {} + + yocto-spinner@0.2.3: + dependencies: + yoctocolors: 2.1.1 + + yoctocolors@2.1.1: {} zimmerframe@1.1.2: {} - zod@3.21.1: {} + zod-to-json-schema@3.24.5(zod@3.25.57): + dependencies: + zod: 3.25.57 + + zod-to-ts@1.2.0(typescript@5.8.3)(zod@3.25.57): + dependencies: + typescript: 5.8.3 + zod: 3.25.57 + + zod@3.25.57: {} zustand@4.4.1(@types/react@18.2.24)(immer@10.0.4)(react@18.2.0): dependencies: From d0c36fdb708b784cbbd87711512b813eb68757ac Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 10 Jun 2025 20:47:49 +0200 Subject: [PATCH 22/87] chore(changeset) --- .changeset/funny-mayflies-grin.md | 5 +++++ .changeset/sour-flowers-love.md | 5 +++++ .changeset/twenty-panthers-report.md | 5 +++++ 3 files changed, 15 insertions(+) create mode 100644 .changeset/funny-mayflies-grin.md create mode 100644 .changeset/sour-flowers-love.md create mode 100644 .changeset/twenty-panthers-report.md diff --git a/.changeset/funny-mayflies-grin.md b/.changeset/funny-mayflies-grin.md new file mode 100644 index 00000000..051974c6 --- /dev/null +++ b/.changeset/funny-mayflies-grin.md @@ -0,0 +1,5 @@ +--- +'@xyflow/svelte': patch +--- + +Fix initial fitView when server side rendering diff --git a/.changeset/sour-flowers-love.md b/.changeset/sour-flowers-love.md new file mode 100644 index 00000000..2f52db60 --- /dev/null +++ b/.changeset/sour-flowers-love.md @@ -0,0 +1,5 @@ +--- +'@xyflow/svelte': patch +--- + +Fix ViewportPortal not working when used outside of SvelteFlow component diff --git a/.changeset/twenty-panthers-report.md b/.changeset/twenty-panthers-report.md new file mode 100644 index 00000000..c4809a04 --- /dev/null +++ b/.changeset/twenty-panthers-report.md @@ -0,0 +1,5 @@ +--- +'@xyflow/svelte': patch +--- + +Fix nodes being hidden in SSR output From 178ad01f51080a0121b13d95330444dcf0e9e303 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 10 Jun 2025 21:22:29 +0200 Subject: [PATCH 23/87] remove css variable from node resizer --- .../NodeResizer/NodeResizeControl.tsx | 7 ++++--- .../src/lib/plugins/NodeResizer/ResizeControl.svelte | 12 ++++++------ packages/system/src/styles/node-resizer.css | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx b/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx index 98bf766a..fc758d8d 100644 --- a/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx +++ b/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx @@ -46,7 +46,8 @@ function ResizeControl({ const id = typeof nodeId === 'string' ? nodeId : contextNodeId; const store = useStoreApi(); const resizeControlRef = useRef(null); - const defaultPosition = variant === ResizeControlVariant.Line ? 'right' : 'bottom-right'; + const isLineVariant = variant === ResizeControlVariant.Line; + const defaultPosition = isLineVariant ? 'right' : 'bottom-right'; const controlPosition = position ?? defaultPosition; const resizer = useRef(null); @@ -198,9 +199,9 @@ function ResizeControl({ ]); const positionClassNames = controlPosition.split('-'); - const colorStyleProp = variant === ResizeControlVariant.Line ? 'borderColor' : 'backgroundColor'; + const colorStyleProp = isLineVariant ? 'borderColor' : 'backgroundColor'; - const styleWithTransform = { ...style, '--xy-view-zoom-inverse': 1 / zoom }; + const styleWithTransform = { ...style, scale: isLineVariant ? undefined : `${Math.max(1 / zoom, 1)}` }; const controlStyle = color ? { ...styleWithTransform, [colorStyleProp]: color } : styleWithTransform; return ( diff --git a/packages/svelte/src/lib/plugins/NodeResizer/ResizeControl.svelte b/packages/svelte/src/lib/plugins/NodeResizer/ResizeControl.svelte index 6dea30fa..47d7db5a 100644 --- a/packages/svelte/src/lib/plugins/NodeResizer/ResizeControl.svelte +++ b/packages/svelte/src/lib/plugins/NodeResizer/ResizeControl.svelte @@ -40,10 +40,10 @@ let resizeControlRef: HTMLDivElement; let resizer: XYResizerInstance | null = $state(null); + let isLineVariant = $derived(variant === ResizeControlVariant.Line); + let controlPosition = $derived.by(() => { - let defaultPosition = ( - variant === ResizeControlVariant.Line ? 'right' : 'bottom-right' - ) as ControlPosition; + let defaultPosition = (isLineVariant ? 'right' : 'bottom-right') as ControlPosition; return position ?? defaultPosition; }); @@ -119,9 +119,9 @@
{@render children?.()} diff --git a/packages/system/src/styles/node-resizer.css b/packages/system/src/styles/node-resizer.css index 196bc3a5..4c69084b 100644 --- a/packages/system/src/styles/node-resizer.css +++ b/packages/system/src/styles/node-resizer.css @@ -33,7 +33,7 @@ border: 1px solid #fff; border-radius: 1px; background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default)); - transform: translate(-50%, -50%) scale(max(var(--xy-view-zoom-inverse, 1), 1)); + translate: -50% -50%; } .xy-flow__resize-control.handle.left { From f178453c17dac6669fe2f47b9524284ffc8bec24 Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 11 Jun 2025 09:11:08 +0200 Subject: [PATCH 24/87] chore(changesets): cleanup --- .changeset/funny-mayflies-grin.md | 2 +- .changeset/sour-flowers-love.md | 2 +- .changeset/twenty-panthers-report.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.changeset/funny-mayflies-grin.md b/.changeset/funny-mayflies-grin.md index 051974c6..cd46d039 100644 --- a/.changeset/funny-mayflies-grin.md +++ b/.changeset/funny-mayflies-grin.md @@ -2,4 +2,4 @@ '@xyflow/svelte': patch --- -Fix initial fitView when server side rendering +Fix initial fitView for SSR diff --git a/.changeset/sour-flowers-love.md b/.changeset/sour-flowers-love.md index 2f52db60..3fc49168 100644 --- a/.changeset/sour-flowers-love.md +++ b/.changeset/sour-flowers-love.md @@ -2,4 +2,4 @@ '@xyflow/svelte': patch --- -Fix ViewportPortal not working when used outside of SvelteFlow component +Fix `ViewportPortal` not working when used outside of `SvelteFlow` component diff --git a/.changeset/twenty-panthers-report.md b/.changeset/twenty-panthers-report.md index c4809a04..7ea0afba 100644 --- a/.changeset/twenty-panthers-report.md +++ b/.changeset/twenty-panthers-report.md @@ -2,4 +2,4 @@ '@xyflow/svelte': patch --- -Fix nodes being hidden in SSR output +Display nodes correctly in SSR output From ec3ef27c90f99637f8928f6c9f1eb491a35558f0 Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 11 Jun 2025 09:59:49 +0200 Subject: [PATCH 25/87] chore(resizer): cleanup and add scaleControls --- .../NodeResizer/BottomRightResizer.tsx | 2 ++ .../NodeResizer/NodeResizeControl.tsx | 33 +++++++++++-------- .../NodeResizer/NodeResizer.tsx | 3 ++ .../NodeResizer/types.ts | 6 ++++ 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/examples/react/src/examples/NodeResizer/BottomRightResizer.tsx b/examples/react/src/examples/NodeResizer/BottomRightResizer.tsx index ca860fdf..9809ef61 100644 --- a/examples/react/src/examples/NodeResizer/BottomRightResizer.tsx +++ b/examples/react/src/examples/NodeResizer/BottomRightResizer.tsx @@ -10,6 +10,8 @@ const CustomResizerNode: FC = ({ data }) => { resizeDirection="horizontal" minWidth={100} maxWidth={500} + color="orange" + scaleControls />
{data.label}
diff --git a/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx b/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx index fc758d8d..1bd1f3d3 100644 --- a/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx +++ b/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx @@ -1,4 +1,4 @@ -import { useRef, useEffect, memo } from 'react'; +import { useRef, useEffect, memo, useCallback } from 'react'; import cc from 'classcat'; import { shallow } from 'zustand/shallow'; import { @@ -14,6 +14,7 @@ import { evaluateAbsolutePosition, ParentExpandChild, XYPosition, + ControlPosition, } from '@xyflow/system'; import { useStoreApi, useStore } from '../../hooks/useStore'; @@ -21,14 +22,20 @@ import { useNodeId } from '../../contexts/NodeIdContext'; import type { ResizeControlProps, ResizeControlLineProps } from './types'; import { ReactFlowState } from '../../types'; -const selector = (store: ReactFlowState) => store.transform[2]; +const scaleSelector = (calculateScale: boolean) => (store: ReactFlowState) => + calculateScale ? `${Math.max(1 / store.transform[2], 1)}` : undefined; + +const defaultPositions: Record = { + [ResizeControlVariant.Line]: 'right', + [ResizeControlVariant.Handle]: 'bottom-right', +}; function ResizeControl({ nodeId, position, variant = ResizeControlVariant.Handle, className, - style = {}, + style = undefined, children, color, minWidth = 10, @@ -37,6 +44,7 @@ function ResizeControl({ maxHeight = Number.MAX_VALUE, keepAspectRatio = false, resizeDirection, + scaleControls = false, shouldResize, onResizeStart, onResize, @@ -46,13 +54,10 @@ function ResizeControl({ const id = typeof nodeId === 'string' ? nodeId : contextNodeId; const store = useStoreApi(); const resizeControlRef = useRef(null); - const isLineVariant = variant === ResizeControlVariant.Line; - const defaultPosition = isLineVariant ? 'right' : 'bottom-right'; - const controlPosition = position ?? defaultPosition; - + const isHandleControl = variant === ResizeControlVariant.Handle; + const scale = useStore(useCallback(scaleSelector(isHandleControl && !scaleControls), [isHandleControl]), shallow); const resizer = useRef(null); - - const zoom = useStore(selector, shallow); + const controlPosition = position ?? defaultPositions[variant]; useEffect(() => { if (!resizeControlRef.current || !id) { @@ -199,16 +204,16 @@ function ResizeControl({ ]); const positionClassNames = controlPosition.split('-'); - const colorStyleProp = isLineVariant ? 'borderColor' : 'backgroundColor'; - - const styleWithTransform = { ...style, scale: isLineVariant ? undefined : `${Math.max(1 / zoom, 1)}` }; - const controlStyle = color ? { ...styleWithTransform, [colorStyleProp]: color } : styleWithTransform; return (
{children}
diff --git a/packages/react/src/additional-components/NodeResizer/NodeResizer.tsx b/packages/react/src/additional-components/NodeResizer/NodeResizer.tsx index 434be4b7..efde9724 100644 --- a/packages/react/src/additional-components/NodeResizer/NodeResizer.tsx +++ b/packages/react/src/additional-components/NodeResizer/NodeResizer.tsx @@ -40,6 +40,7 @@ export function NodeResizer({ maxWidth = Number.MAX_VALUE, maxHeight = Number.MAX_VALUE, keepAspectRatio = false, + scaleControls = false, shouldResize, onResizeStart, onResize, @@ -66,6 +67,7 @@ export function NodeResizer({ maxHeight={maxHeight} onResizeStart={onResizeStart} keepAspectRatio={keepAspectRatio} + scaleControls={scaleControls} shouldResize={shouldResize} onResize={onResize} onResizeEnd={onResizeEnd} @@ -85,6 +87,7 @@ export function NodeResizer({ maxHeight={maxHeight} onResizeStart={onResizeStart} keepAspectRatio={keepAspectRatio} + scaleControls={scaleControls} shouldResize={shouldResize} onResize={onResize} onResizeEnd={onResizeEnd} diff --git a/packages/react/src/additional-components/NodeResizer/types.ts b/packages/react/src/additional-components/NodeResizer/types.ts index e6dd9d36..1e3b737b 100644 --- a/packages/react/src/additional-components/NodeResizer/types.ts +++ b/packages/react/src/additional-components/NodeResizer/types.ts @@ -59,6 +59,11 @@ export type NodeResizerProps = { * @default false */ keepAspectRatio?: boolean; + /** + * Scale the controls with the zoom level. + * @default false + */ + scaleControls?: boolean; /** Callback to determine if node should resize. */ shouldResize?: ShouldResize; /** Callback called when resizing starts. */ @@ -82,6 +87,7 @@ export type ResizeControlProps = Pick< | 'maxHeight' | 'keepAspectRatio' | 'shouldResize' + | 'scaleControls' | 'onResizeStart' | 'onResize' | 'onResizeEnd' From 120a12baf424f8d6cad0fe20ce3802136d2279fd Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 11 Jun 2025 10:44:59 +0200 Subject: [PATCH 26/87] chore(resizer): cleanup --- .../NodeResizer/NodeResizeControl.tsx | 7 +++++-- .../src/additional-components/NodeResizer/NodeResizer.tsx | 6 +++--- .../react/src/additional-components/NodeResizer/types.ts | 6 +++--- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx b/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx index 1bd1f3d3..d75c2606 100644 --- a/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx +++ b/packages/react/src/additional-components/NodeResizer/NodeResizeControl.tsx @@ -44,7 +44,7 @@ function ResizeControl({ maxHeight = Number.MAX_VALUE, keepAspectRatio = false, resizeDirection, - scaleControls = false, + autoScale = true, shouldResize, onResizeStart, onResize, @@ -55,7 +55,10 @@ function ResizeControl({ const store = useStoreApi(); const resizeControlRef = useRef(null); const isHandleControl = variant === ResizeControlVariant.Handle; - const scale = useStore(useCallback(scaleSelector(isHandleControl && !scaleControls), [isHandleControl]), shallow); + const scale = useStore( + useCallback(scaleSelector(isHandleControl && autoScale), [isHandleControl, autoScale]), + shallow + ); const resizer = useRef(null); const controlPosition = position ?? defaultPositions[variant]; diff --git a/packages/react/src/additional-components/NodeResizer/NodeResizer.tsx b/packages/react/src/additional-components/NodeResizer/NodeResizer.tsx index efde9724..b869d207 100644 --- a/packages/react/src/additional-components/NodeResizer/NodeResizer.tsx +++ b/packages/react/src/additional-components/NodeResizer/NodeResizer.tsx @@ -40,7 +40,7 @@ export function NodeResizer({ maxWidth = Number.MAX_VALUE, maxHeight = Number.MAX_VALUE, keepAspectRatio = false, - scaleControls = false, + autoScale = true, shouldResize, onResizeStart, onResize, @@ -67,7 +67,7 @@ export function NodeResizer({ maxHeight={maxHeight} onResizeStart={onResizeStart} keepAspectRatio={keepAspectRatio} - scaleControls={scaleControls} + autoScale={autoScale} shouldResize={shouldResize} onResize={onResize} onResizeEnd={onResizeEnd} @@ -87,7 +87,7 @@ export function NodeResizer({ maxHeight={maxHeight} onResizeStart={onResizeStart} keepAspectRatio={keepAspectRatio} - scaleControls={scaleControls} + autoScale={autoScale} shouldResize={shouldResize} onResize={onResize} onResizeEnd={onResizeEnd} diff --git a/packages/react/src/additional-components/NodeResizer/types.ts b/packages/react/src/additional-components/NodeResizer/types.ts index 1e3b737b..eb70a115 100644 --- a/packages/react/src/additional-components/NodeResizer/types.ts +++ b/packages/react/src/additional-components/NodeResizer/types.ts @@ -61,9 +61,9 @@ export type NodeResizerProps = { keepAspectRatio?: boolean; /** * Scale the controls with the zoom level. - * @default false + * @default true */ - scaleControls?: boolean; + autoScale?: boolean; /** Callback to determine if node should resize. */ shouldResize?: ShouldResize; /** Callback called when resizing starts. */ @@ -87,7 +87,7 @@ export type ResizeControlProps = Pick< | 'maxHeight' | 'keepAspectRatio' | 'shouldResize' - | 'scaleControls' + | 'autoScale' | 'onResizeStart' | 'onResize' | 'onResizeEnd' From 49e8c9329a0e0f38a2c601a85661b3b13ef775ce Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 11 Jun 2025 10:48:49 +0200 Subject: [PATCH 27/87] feat(svelte): add autoScale for node resizer --- .../src/examples/NodeResizer/BottomRightResizer.tsx | 2 +- .../src/lib/plugins/NodeResizer/NodeResizer.svelte | 11 ++++++++++- .../src/lib/plugins/NodeResizer/ResizeControl.svelte | 3 ++- packages/svelte/src/lib/plugins/NodeResizer/types.ts | 3 +++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/examples/react/src/examples/NodeResizer/BottomRightResizer.tsx b/examples/react/src/examples/NodeResizer/BottomRightResizer.tsx index 9809ef61..38ad14cd 100644 --- a/examples/react/src/examples/NodeResizer/BottomRightResizer.tsx +++ b/examples/react/src/examples/NodeResizer/BottomRightResizer.tsx @@ -11,7 +11,7 @@ const CustomResizerNode: FC = ({ data }) => { minWidth={100} maxWidth={500} color="orange" - scaleControls + autoScale={false} />
{data.label}
diff --git a/packages/svelte/src/lib/plugins/NodeResizer/NodeResizer.svelte b/packages/svelte/src/lib/plugins/NodeResizer/NodeResizer.svelte index 8ced5ba3..0fa4bd3d 100644 --- a/packages/svelte/src/lib/plugins/NodeResizer/NodeResizer.svelte +++ b/packages/svelte/src/lib/plugins/NodeResizer/NodeResizer.svelte @@ -14,6 +14,7 @@ handleStyle, lineClass, lineStyle, + autoScale = true, ...rest }: NodeResizerProps = $props(); @@ -25,11 +26,19 @@ style={lineStyle} {nodeId} {position} + {autoScale} variant={ResizeControlVariant.Line} {...rest} /> {/each} {#each XY_RESIZER_HANDLE_POSITIONS as position (position)} - + {/each} {/if} diff --git a/packages/svelte/src/lib/plugins/NodeResizer/ResizeControl.svelte b/packages/svelte/src/lib/plugins/NodeResizer/ResizeControl.svelte index 47d7db5a..b9f38214 100644 --- a/packages/svelte/src/lib/plugins/NodeResizer/ResizeControl.svelte +++ b/packages/svelte/src/lib/plugins/NodeResizer/ResizeControl.svelte @@ -22,6 +22,7 @@ maxWidth = Number.MAX_VALUE, maxHeight = Number.MAX_VALUE, keepAspectRatio = false, + autoScale = true, shouldResize, onResizeStart, onResize, @@ -121,7 +122,7 @@ bind:this={resizeControlRef} style:border-color={isLineVariant ? color : undefined} style:background-color={isLineVariant ? undefined : color} - style:scale={isLineVariant ? undefined : Math.max(1 / store.viewport.zoom, 1)} + style:scale={isLineVariant || !autoScale ? undefined : Math.max(1 / store.viewport.zoom, 1)} {...rest} > {@render children?.()} diff --git a/packages/svelte/src/lib/plugins/NodeResizer/types.ts b/packages/svelte/src/lib/plugins/NodeResizer/types.ts index 23140c52..5f9bb95e 100644 --- a/packages/svelte/src/lib/plugins/NodeResizer/types.ts +++ b/packages/svelte/src/lib/plugins/NodeResizer/types.ts @@ -36,6 +36,8 @@ export type NodeResizerProps = { maxHeight?: number; /** Keep aspect ratio when resizing */ keepAspectRatio?: boolean; + /** Automatically scale the node when resizing */ + autoScale?: boolean; /** Callback to determine if node should resize */ shouldResize?: ShouldResize; /** Callback called when resizing starts */ @@ -55,6 +57,7 @@ export type ResizeControlProps = Pick< | 'maxWidth' | 'maxHeight' | 'keepAspectRatio' + | 'autoScale' | 'shouldResize' | 'onResizeStart' | 'onResize' From ca4bb64648d49cb6e888e679a428bc15d5aa0ada Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 11 Jun 2025 12:41:39 +0200 Subject: [PATCH 28/87] rename hideOnSSR --- packages/svelte/src/lib/actions/portal/index.ts | 2 +- .../svelte/src/lib/actions/portal/utils.svelte.ts | 12 ++++++------ .../src/lib/components/EdgeLabel/EdgeLabel.svelte | 4 ++-- .../components/ViewportPortal/ViewportPortal.svelte | 8 ++++++-- .../src/lib/plugins/NodeToolbar/NodeToolbar.svelte | 4 ++-- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/svelte/src/lib/actions/portal/index.ts b/packages/svelte/src/lib/actions/portal/index.ts index 320e1f32..1b633bb4 100644 --- a/packages/svelte/src/lib/actions/portal/index.ts +++ b/packages/svelte/src/lib/actions/portal/index.ts @@ -1,2 +1,2 @@ export { portal } from './portal.svelte'; -export { hideDuringSSR } from './utils.svelte'; +export { hideOnSSR } from './utils.svelte'; diff --git a/packages/svelte/src/lib/actions/portal/utils.svelte.ts b/packages/svelte/src/lib/actions/portal/utils.svelte.ts index 0c083491..a1b3a840 100644 --- a/packages/svelte/src/lib/actions/portal/utils.svelte.ts +++ b/packages/svelte/src/lib/actions/portal/utils.svelte.ts @@ -1,17 +1,17 @@ -export function hideDuringSSR(): { display: 'none' | undefined } { - let display = $state(typeof window === 'undefined' ? ('none' as const) : undefined); - if (display) { +export function hideOnSSR(): { value: boolean } { + let hide = $state(typeof window === 'undefined'); + if (hide) { const destroyEffect = $effect.root(() => { $effect(() => { - display = undefined; + hide = false; destroyEffect?.(); }); }); } return { - get display() { - return display; + get value() { + return hide; } }; } diff --git a/packages/svelte/src/lib/components/EdgeLabel/EdgeLabel.svelte b/packages/svelte/src/lib/components/EdgeLabel/EdgeLabel.svelte index 4bfd569e..a1cce7f6 100644 --- a/packages/svelte/src/lib/components/EdgeLabel/EdgeLabel.svelte +++ b/packages/svelte/src/lib/components/EdgeLabel/EdgeLabel.svelte @@ -1,6 +1,6 @@ -
+
{@render children?.()}
diff --git a/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte b/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte index 17efdef2..49cfe3a1 100644 --- a/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte +++ b/packages/svelte/src/lib/plugins/NodeToolbar/NodeToolbar.svelte @@ -2,7 +2,7 @@ import { getContext } from 'svelte'; import { Position, getNodeToolbarTransform } from '@xyflow/system'; - import { hideDuringSSR, portal } from '$lib/actions/portal'; + import { hideOnSSR, portal } from '$lib/actions/portal'; import { useStore } from '$lib/store'; import { useSvelteFlow } from '$lib/hooks/useSvelteFlow.svelte'; @@ -68,7 +68,7 @@ {#if store.domNode && isActive && toolbarNodes}
`${acc}${node.id} `, '').trim()} style:position="absolute" From f4767aacef649023ddef84c1215fa090d5fc9113 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 11 Jun 2025 13:07:19 +0200 Subject: [PATCH 29/87] remove TODO, bug is fixed --- .../svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte index ad86933d..08dd4eb2 100644 --- a/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte +++ b/packages/svelte/src/lib/components/EdgeWrapper/EdgeWrapper.svelte @@ -90,7 +90,6 @@ } function onkeydown(event: KeyboardEvent) { - // TODO: Possible Svelte Bug? onkeydown is always firing for the last edge if (!store.disableKeyboardA11y && elementSelectionKeys.includes(event.key) && selectable) { const { unselectNodesAndEdges, addSelectedEdges } = store; const unselect = event.key === 'Escape'; From 75ed6decfb3ff408f6136bc1bc712fc4eb3737ef Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 11 Jun 2025 13:08:59 +0200 Subject: [PATCH 30/87] chore(changeset) --- .changeset/blue-gorillas-help.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/blue-gorillas-help.md diff --git a/.changeset/blue-gorillas-help.md b/.changeset/blue-gorillas-help.md new file mode 100644 index 00000000..f299d8a2 --- /dev/null +++ b/.changeset/blue-gorillas-help.md @@ -0,0 +1,5 @@ +--- +'@xyflow/svelte': patch +--- + +Prevent selecting of edges when spacebar is pressed From 1fdcc120726e284be3dd0e6eafa06f7a2bdb7510 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 11 Jun 2025 13:22:28 +0200 Subject: [PATCH 31/87] lint --- packages/svelte/src/lib/components/Handle/Handle.svelte | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/svelte/src/lib/components/Handle/Handle.svelte b/packages/svelte/src/lib/components/Handle/Handle.svelte index 71ccbd5a..8f5675c8 100644 --- a/packages/svelte/src/lib/components/Handle/Handle.svelte +++ b/packages/svelte/src/lib/components/Handle/Handle.svelte @@ -46,7 +46,6 @@ let store = useStore(); let ariaLabelConfig = $derived(store.ariaLabelConfig); - let prevConnections: Map | null = null; $effect.pre(() => { if (onconnect || ondisconnect) { From 33b7a47dd73fbb426b2ae041ba78fa5404ea099d Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 11 Jun 2025 15:30:28 +0200 Subject: [PATCH 32/87] fix linting and linting errors. remove unused svelte prop --- examples/svelte/package.json | 4 +- package.json | 2 +- packages/svelte/package.json | 36 +- .../src/lib/plugins/Controls/Controls.svelte | 1 - packages/system/src/xypanzoom/XYPanZoom.ts | 1 + packages/system/src/xypanzoom/utils.ts | 1 + pnpm-lock.yaml | 1873 ++++++++--------- tooling/eslint-config/package.json | 13 +- 8 files changed, 952 insertions(+), 979 deletions(-) diff --git a/examples/svelte/package.json b/examples/svelte/package.json index feeb3b7e..82f47029 100644 --- a/examples/svelte/package.json +++ b/examples/svelte/package.json @@ -14,8 +14,8 @@ "devDependencies": { "@sveltejs/adapter-auto": "^6.0.0", "@sveltejs/kit": "^2.20.7", - "@typescript-eslint/eslint-plugin": "^8.30.1", - "@typescript-eslint/parser": "^8.30.1", + "@typescript-eslint/eslint-plugin": "^8.34.0", + "@typescript-eslint/parser": "^8.34.0", "eslint": "^9.24.0", "eslint-config-prettier": "^10.1.2", "eslint-plugin-svelte": "^3.5.1", diff --git a/package.json b/package.json index 0e52b690..bfd5bbc6 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "@changesets/cli": "^2.25.0", "@playwright/test": "^1.44.1", "concurrently": "^7.6.0", - "eslint": "^8.22.0", + "eslint": "^8.57.0", "prettier": "^2.7.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/packages/svelte/package.json b/packages/svelte/package.json index b9693201..cdb2551f 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -55,35 +55,35 @@ "@xyflow/system": "workspace:*" }, "devDependencies": { - "@eslint/js": "^9.24.0", - "@sveltejs/adapter-auto": "^6.0.0", - "@sveltejs/kit": "^2.20.7", + "@eslint/js": "^9.28.0", + "@sveltejs/adapter-auto": "^6.0.1", + "@sveltejs/kit": "^2.21.4", "@sveltejs/package": "^2.3.11", - "@sveltejs/vite-plugin-svelte": "^5.0.3", - "@typescript-eslint/eslint-plugin": "^8.30.1", - "@typescript-eslint/parser": "^8.30.1", + "@sveltejs/vite-plugin-svelte": "^5.1.0", + "@typescript-eslint/eslint-plugin": "^8.34.0", + "@typescript-eslint/parser": "^8.34.0", "autoprefixer": "^10.4.21", - "cssnano": "^7.0.6", + "cssnano": "^7.0.7", "dotenv": "^16.5.0", - "eslint": "^9.24.0", - "eslint-config-prettier": "^10.1.2", - "eslint-plugin-svelte": "^3.5.1", - "globals": "^16.0.0", - "postcss": "^8.5.3", + "eslint": "^9.28.0", + "eslint-config-prettier": "^10.1.5", + "eslint-plugin-svelte": "^3.9.2", + "globals": "^16.2.0", + "postcss": "^8.5.4", "postcss-cli": "^11.0.1", "postcss-combine-duplicated-selectors": "^10.0.3", "postcss-import": "^16.1.0", "postcss-nested": "^7.0.2", - "postcss-rename": "^0.6.1", + "postcss-rename": "^0.8.0", "prettier": "^3.5.3", - "prettier-plugin-svelte": "^3.3.3", - "svelte": "^5.27.0", - "svelte-check": "^4.1.6", - "svelte-eslint-parser": "^1.1.2", + "prettier-plugin-svelte": "^3.4.0", + "svelte": "^5.33.19", + "svelte-check": "^4.2.1", + "svelte-eslint-parser": "^1.2.0", "svelte-preprocess": "^6.0.3", "tslib": "^2.8.1", "typescript": "^5.8.3", - "typescript-eslint": "^8.30.1" + "typescript-eslint": "^8.34.0" }, "peerDependencies": { "svelte": "^5.25.0" diff --git a/packages/svelte/src/lib/plugins/Controls/Controls.svelte b/packages/svelte/src/lib/plugins/Controls/Controls.svelte index be6a1d59..e6090a72 100644 --- a/packages/svelte/src/lib/plugins/Controls/Controls.svelte +++ b/packages/svelte/src/lib/plugins/Controls/Controls.svelte @@ -23,7 +23,6 @@ buttonColor, buttonColorHover, buttonBorderColor, - 'aria-label': ariaLabel, fitViewOptions, children, before, diff --git a/packages/system/src/xypanzoom/XYPanZoom.ts b/packages/system/src/xypanzoom/XYPanZoom.ts index 0c1a8e12..09d28dc2 100644 --- a/packages/system/src/xypanzoom/XYPanZoom.ts +++ b/packages/system/src/xypanzoom/XYPanZoom.ts @@ -20,6 +20,7 @@ import { createZoomOnScrollHandler, } from './eventhandler'; import { createFilter } from './filter'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars import { transition } from 'd3-transition'; export type ZoomPanValues = { diff --git a/packages/system/src/xypanzoom/utils.ts b/packages/system/src/xypanzoom/utils.ts index 22382bd5..e8c83694 100644 --- a/packages/system/src/xypanzoom/utils.ts +++ b/packages/system/src/xypanzoom/utils.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { type ZoomTransform, zoomIdentity } from 'd3-zoom'; +// eslint-disable-next-line @typescript-eslint/no-unused-vars import { transition } from 'd3-transition'; import { type D3SelectionInstance, type Viewport } from '../types'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a0778b5..41555ca1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,8 +21,8 @@ importers: specifier: ^7.6.0 version: 7.6.0 eslint: - specifier: ^8.22.0 - version: 8.43.0 + specifier: ^8.57.0 + version: 8.57.0 prettier: specifier: ^2.7.1 version: 2.8.8 @@ -170,11 +170,11 @@ importers: specifier: ^2.20.7 version: 2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) '@typescript-eslint/eslint-plugin': - specifier: ^8.30.1 - version: 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: ^8.30.1 - version: 8.30.1(eslint@9.24.0)(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(eslint@9.24.0)(typescript@5.8.3) eslint: specifier: ^9.24.0 version: 9.24.0 @@ -274,89 +274,89 @@ importers: dependencies: '@svelte-put/shortcut': specifier: ^4.1.0 - version: 4.1.0(svelte@5.27.0) + version: 4.1.0(svelte@5.33.19) '@xyflow/system': specifier: workspace:* version: link:../system devDependencies: '@eslint/js': - specifier: ^9.24.0 - version: 9.24.0 + specifier: ^9.28.0 + version: 9.28.0 '@sveltejs/adapter-auto': - specifier: ^6.0.0 - version: 6.0.0(@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))) + specifier: ^6.0.1 + version: 6.0.1(@sveltejs/kit@2.21.4(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))) '@sveltejs/kit': - specifier: ^2.20.7 - version: 2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + specifier: ^2.21.4 + version: 2.21.4(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) '@sveltejs/package': specifier: ^2.3.11 - version: 2.3.11(svelte@5.27.0)(typescript@5.8.3) + version: 2.3.11(svelte@5.33.19)(typescript@5.8.3) '@sveltejs/vite-plugin-svelte': - specifier: ^5.0.3 - version: 5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + specifier: ^5.1.0 + version: 5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) '@typescript-eslint/eslint-plugin': - specifier: ^8.30.1 - version: 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: ^8.30.1 - version: 8.30.1(eslint@9.24.0)(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) autoprefixer: specifier: ^10.4.21 - version: 10.4.21(postcss@8.5.3) + version: 10.4.21(postcss@8.5.4) cssnano: - specifier: ^7.0.6 - version: 7.0.6(postcss@8.5.3) + specifier: ^7.0.7 + version: 7.0.7(postcss@8.5.4) dotenv: specifier: ^16.5.0 version: 16.5.0 eslint: - specifier: ^9.24.0 - version: 9.24.0 + specifier: ^9.28.0 + version: 9.28.0 eslint-config-prettier: - specifier: ^10.1.2 - version: 10.1.2(eslint@9.24.0) + specifier: ^10.1.5 + version: 10.1.5(eslint@9.28.0) eslint-plugin-svelte: - specifier: ^3.5.1 - version: 3.5.1(eslint@9.24.0)(svelte@5.27.0) + specifier: ^3.9.2 + version: 3.9.2(eslint@9.28.0)(svelte@5.33.19) globals: - specifier: ^16.0.0 - version: 16.0.0 + specifier: ^16.2.0 + version: 16.2.0 postcss: - specifier: ^8.5.3 - version: 8.5.3 + specifier: ^8.5.4 + version: 8.5.4 postcss-cli: specifier: ^11.0.1 - version: 11.0.1(postcss@8.5.3) + version: 11.0.1(postcss@8.5.4) postcss-combine-duplicated-selectors: specifier: ^10.0.3 - version: 10.0.3(postcss@8.5.3) + version: 10.0.3(postcss@8.5.4) postcss-import: specifier: ^16.1.0 - version: 16.1.0(postcss@8.5.3) + version: 16.1.0(postcss@8.5.4) postcss-nested: specifier: ^7.0.2 - version: 7.0.2(postcss@8.5.3) + version: 7.0.2(postcss@8.5.4) postcss-rename: - specifier: ^0.6.1 - version: 0.6.1(postcss@8.5.3) + specifier: ^0.8.0 + version: 0.8.0 prettier: specifier: ^3.5.3 version: 3.5.3 prettier-plugin-svelte: - specifier: ^3.3.3 - version: 3.3.3(prettier@3.5.3)(svelte@5.27.0) + specifier: ^3.4.0 + version: 3.4.0(prettier@3.5.3)(svelte@5.33.19) svelte: - specifier: ^5.27.0 - version: 5.27.0 + specifier: ^5.33.19 + version: 5.33.19 svelte-check: - specifier: ^4.1.6 - version: 4.1.6(picomatch@4.0.2)(svelte@5.27.0)(typescript@5.8.3) + specifier: ^4.2.1 + version: 4.2.1(picomatch@4.0.2)(svelte@5.33.19)(typescript@5.8.3) svelte-eslint-parser: - specifier: ^1.1.2 - version: 1.1.2(svelte@5.27.0) + specifier: ^1.2.0 + version: 1.2.0(svelte@5.33.19) svelte-preprocess: specifier: ^6.0.3 - version: 6.0.3(@babel/core@7.27.4)(postcss-load-config@5.0.2(postcss@8.5.3))(postcss@8.5.3)(svelte@5.27.0)(typescript@5.8.3) + version: 6.0.3(@babel/core@7.27.4)(postcss-load-config@5.0.2(postcss@8.5.4))(postcss@8.5.4)(svelte@5.33.19)(typescript@5.8.3) tslib: specifier: ^2.8.1 version: 2.8.1 @@ -364,8 +364,8 @@ importers: specifier: ^5.8.3 version: 5.8.3 typescript-eslint: - specifier: ^8.30.1 - version: 8.30.1(eslint@9.24.0)(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(eslint@9.28.0)(typescript@5.8.3) packages/system: dependencies: @@ -442,25 +442,29 @@ importers: version: 20.14.6 tooling/eslint-config: + dependencies: + eslint: + specifier: 8.57.0 + version: 8.57.0 devDependencies: '@typescript-eslint/eslint-plugin': - specifier: ^8.23.0 - version: 8.29.1(@typescript-eslint/parser@8.29.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(@typescript-eslint/parser@8.34.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3) '@typescript-eslint/parser': - specifier: ^8.23.0 - version: 8.29.1(eslint@9.24.0)(typescript@5.8.3) + specifier: ^8.34.0 + version: 8.34.0(eslint@8.57.0)(typescript@5.8.3) eslint-config-prettier: - specifier: ^10.0.1 - version: 10.1.1(eslint@9.24.0) + specifier: ^10.1.5 + version: 10.1.5(eslint@8.57.0) eslint-config-turbo: - specifier: ^2.4.0 - version: 2.5.0(eslint@9.24.0)(turbo@2.0.3) + specifier: ^2.5.4 + version: 2.5.4(eslint@8.57.0)(turbo@2.0.3) eslint-plugin-prettier: specifier: ^4.2.1 - version: 4.2.1(eslint-config-prettier@10.1.1(eslint@9.24.0))(eslint@9.24.0)(prettier@3.5.3) + version: 4.2.1(eslint-config-prettier@10.1.5(eslint@8.57.0))(eslint@8.57.0)(prettier@3.5.3) eslint-plugin-react: - specifier: ^7.37.4 - version: 7.37.5(eslint@9.24.0) + specifier: ^7.37.5 + version: 7.37.5(eslint@8.57.0) tooling/rollup-config: devDependencies: @@ -1227,18 +1231,16 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.10.0': - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 '@eslint-community/regexpp@4.12.1': resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-community/regexpp@4.9.1': - resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/config-array@0.20.0': resolution: {integrity: sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1255,22 +1257,30 @@ packages: resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@2.1.2': - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + '@eslint/core@0.14.0': + resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@8.43.0': - resolution: {integrity: sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==} + '@eslint/js@8.57.0': + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} '@eslint/js@9.24.0': resolution: {integrity: sha512-uIY/y3z0uvOGX8cp1C2fiC4+ZmBhp6yZWkojtHL1YEMnRt1Y63HB9TM17proGEmeG7HeUY+UP36F0aknKYTpYA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@9.28.0': + resolution: {integrity: sha512-fnqSjGWd/CoIp4EXIxWVK/sHA6DOHN4+8Ix2cX5ycOY7LG0UY8nHCU5pIp2eaE1Mc7Qd8kHspYNzYXT2ojPLzg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@2.1.6': resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1279,6 +1289,10 @@ packages: resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.3.1': + resolution: {integrity: sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -1293,8 +1307,8 @@ packages: resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} engines: {node: '>=18.18.0'} - '@humanwhocodes/config-array@0.11.13': - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} + '@humanwhocodes/config-array@0.11.14': + resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead @@ -1302,8 +1316,8 @@ packages: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/object-schema@2.0.1': - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} deprecated: Use @eslint/object-schema instead '@humanwhocodes/retry@0.3.1': @@ -1815,6 +1829,11 @@ packages: peerDependencies: '@sveltejs/kit': ^2.0.0 + '@sveltejs/adapter-auto@6.0.1': + resolution: {integrity: sha512-mcWud3pYGPWM2Pphdj8G9Qiq24nZ8L4LB7coCUckUEy5Y7wOWGJ/enaZ4AtJTcSm5dNK1rIkBRoqt+ae4zlxcQ==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + '@sveltejs/kit@2.20.7': resolution: {integrity: sha512-dVbLMubpJJSLI4OYB+yWYNHGAhgc2bVevWuBjDj8jFUXIJOAnLwYP3vsmtcgoxNGUXoq0rHS5f7MFCsryb6nzg==} engines: {node: '>=18.13'} @@ -1824,6 +1843,15 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 vite: ^5.0.3 || ^6.0.0 + '@sveltejs/kit@2.21.4': + resolution: {integrity: sha512-683kl4BBnORaYn3vktH01HAHYep8FaiRA21LVY7d6uAX+1D/1gK4WYHRJq90vA01Cz/k6rU3n6vpf4fAn9ipkA==} + engines: {node: '>=18.13'} + hasBin: true + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + vite: ^5.0.3 || ^6.0.0 + '@sveltejs/package@2.3.11': resolution: {integrity: sha512-DSMt2U0XNAdoQBYksrmgQi5dKy7jUTVDJLiagS/iXF7AShjAmTbGJQKruBuT/FfYAWvNxfQTSjkXU8eAIjVeNg==} engines: {node: ^16.14 || >=18} @@ -1846,6 +1874,13 @@ packages: svelte: ^5.0.0 vite: ^6.0.0 + '@sveltejs/vite-plugin-svelte@5.1.0': + resolution: {integrity: sha512-wojIS/7GYnJDYIg1higWj2ROA6sSRWvcR1PO/bqEyFr/5UZah26c8Cz4u0NaqjPeVltzsVpt2Tm8d2io0V+4Tw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22} + peerDependencies: + svelte: ^5.0.0 + vite: ^6.0.0 + '@swc/core-darwin-arm64@1.3.96': resolution: {integrity: sha512-8hzgXYVd85hfPh6mJ9yrG26rhgzCmcLO0h1TIl8U31hwmTbfZLzRitFQ/kqMJNbIBCwmNH1RU2QcJnL3d7f69A==} engines: {node: '>=10'} @@ -2069,98 +2104,63 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.29.1': - resolution: {integrity: sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==} + '@typescript-eslint/eslint-plugin@8.34.0': + resolution: {integrity: sha512-QXwAlHlbcAwNlEEMKQS2RCgJsgXrTJdjXT08xEgbPFa2yYQgVjBymxP5DrfrE7X7iodSzd9qBUHUycdyVJTW1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + '@typescript-eslint/parser': ^8.34.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/eslint-plugin@8.30.1': - resolution: {integrity: sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/parser@8.29.1': - resolution: {integrity: sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==} + '@typescript-eslint/parser@8.34.0': + resolution: {integrity: sha512-vxXJV1hVFx3IXz/oy2sICsJukaBrtDEQSBiV48/YIV5KWjX1dO+bcIr/kCPrW6weKXvsaGKFNlwH0v2eYdRRbA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/parser@8.30.1': - resolution: {integrity: sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==} + '@typescript-eslint/project-service@8.34.0': + resolution: {integrity: sha512-iEgDALRf970/B2YExmtPMPF54NenZUf4xpL3wsCRx/lgjz6ul/l13R81ozP/ZNuXfnLCS+oPmG7JIxfdNYKELw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/scope-manager@8.34.0': + resolution: {integrity: sha512-9Ac0X8WiLykl0aj1oYQNcLZjHgBojT6cW68yAgZ19letYu+Hxd0rE0veI1XznSSst1X5lwnxhPbVdwjDRIomRw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/tsconfig-utils@8.34.0': + resolution: {integrity: sha512-+W9VYHKFIzA5cBeooqQxqNriAP0QeQ7xTiDuIOr71hzgffm3EL2hxwWBIIj4GuofIbKxGNarpKqIq6Q6YrShOA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/type-utils@8.34.0': + resolution: {integrity: sha512-n7zSmOcUVhcRYC75W2pnPpbO1iwhJY3NLoHEtbJwJSNlVAZuwqu05zY3f3s2SDWWDSo9FdN5szqc73DCtDObAg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/scope-manager@8.29.1': - resolution: {integrity: sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==} + '@typescript-eslint/types@8.34.0': + resolution: {integrity: sha512-9V24k/paICYPniajHfJ4cuAWETnt7Ssy+R0Rbcqo5sSFr3QEZ/8TSoUi9XeXVBGXCaLtwTOKSLGcInCAvyZeMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.30.1': - resolution: {integrity: sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==} + '@typescript-eslint/typescript-estree@8.34.0': + resolution: {integrity: sha512-rOi4KZxI7E0+BMqG7emPSK1bB4RICCpF7QD3KCLXn9ZvWoESsOMlHyZPAHyG04ujVplPaHbmEvs34m+wjgtVtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.29.1': - resolution: {integrity: sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==} + '@typescript-eslint/utils@8.34.0': + resolution: {integrity: sha512-8L4tWatGchV9A1cKbjaavS6mwYwp39jql8xUmIIKJdm+qiaeHy5KMKlBrf30akXAWBzn2SqKsNOtSENWUwg7XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.9.0' - '@typescript-eslint/type-utils@8.30.1': - resolution: {integrity: sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/types@8.29.1': - resolution: {integrity: sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/types@8.30.1': - resolution: {integrity: sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.29.1': - resolution: {integrity: sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/typescript-estree@8.30.1': - resolution: {integrity: sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@8.29.1': - resolution: {integrity: sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/utils@8.30.1': - resolution: {integrity: sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' - - '@typescript-eslint/visitor-keys@8.29.1': - resolution: {integrity: sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/visitor-keys@8.30.1': - resolution: {integrity: sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==} + '@typescript-eslint/visitor-keys@8.34.0': + resolution: {integrity: sha512-qHV7pW7E85A0x6qyrFn+O+q1k1p3tQCsqIZ1KZ5ESLXY57aTvUd3/a4rdPTeXisvhXn2VQG0VSKUqs8KHF2zcA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -2194,11 +2194,6 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -2270,10 +2265,6 @@ packages: array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} - engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -2309,10 +2300,6 @@ packages: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} - engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.4: resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} @@ -2442,13 +2429,13 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.24.4: - resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + browserslist@4.25.0: + resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2510,12 +2497,12 @@ packages: caniuse-lite@1.0.30001553: resolution: {integrity: sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==} - caniuse-lite@1.0.30001680: - resolution: {integrity: sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==} - caniuse-lite@1.0.30001712: resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==} + caniuse-lite@1.0.30001722: + resolution: {integrity: sha512-DCQHBBZtiK6JVkAGw7drvAMK0Q0POD/xZvEmDp6baiMMP6QXXk9HpD6mNYBZWhOPG6LvIDb82ITqtWjhDckHCA==} + caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -2746,11 +2733,11 @@ packages: peerDependencies: postcss: ^8.2.15 - cssnano-preset-default@7.0.6: - resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==} + cssnano-preset-default@7.0.7: + resolution: {integrity: sha512-jW6CG/7PNB6MufOrlovs1TvBTEVmhY45yz+bd0h6nw3h6d+1e+/TX+0fflZ+LzvZombbT5f+KC063w9VoHeHow==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 cssnano-utils@4.0.0: resolution: {integrity: sha512-Z39TLP+1E0KUcd7LGyF4qMfu8ZufI0rDzhdyAMsa/8UyNUU8wpS0fhdBxbQbv32r64ea00h4878gommRVg2BHw==} @@ -2758,11 +2745,11 @@ packages: peerDependencies: postcss: ^8.2.15 - cssnano-utils@5.0.0: - resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==} + cssnano-utils@5.0.1: + resolution: {integrity: sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 cssnano@6.0.1: resolution: {integrity: sha512-fVO1JdJ0LSdIGJq68eIxOqFpIJrZqXUsBt8fkrBcztCQqAjQD51OhZp7tc0ImcbwXD4k7ny84QTV90nZhmqbkg==} @@ -2770,11 +2757,11 @@ packages: peerDependencies: postcss: ^8.2.15 - cssnano@7.0.6: - resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==} + cssnano@7.0.7: + resolution: {integrity: sha512-evKu7yiDIF7oS+EIpwFlMF730ijRyLFaM2o5cTxRGJR9OKHKkc+qP443ZEVR9kZG0syaAJJCPJyfv5pbrxlSng==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} @@ -2851,26 +2838,14 @@ packages: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} engines: {node: '>=0.10'} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} - engines: {node: '>= 0.4'} - data-view-buffer@1.0.2: resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} - engines: {node: '>= 0.4'} - data-view-byte-length@1.0.2: resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} - engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.1: resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} @@ -2911,6 +2886,15 @@ packages: supports-color: optional: true + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} @@ -3054,8 +3038,8 @@ packages: electron-to-chromium@1.5.134: resolution: {integrity: sha512-zSwzrLg3jNP3bwsLqWHmS5z2nIOQ5ngMnfMZOWWtXnqqQkPVyOipxK98w+1beLw1TB+EImPNcG8wVP/cLVs2Og==} - electron-to-chromium@1.5.56: - resolution: {integrity: sha512-7lXb9dAvimCFdvUMTyucD4mnIndt/xhRKFAlky0CyFogdnNmdPQNoHI23msF/2V4mpTxMzgMdjK4+YRlFlRQZw==} + electron-to-chromium@1.5.166: + resolution: {integrity: sha512-QPWqHL0BglzPYyJJ1zSSmwFFL6MFXhbACOCcsCdUMCkzPdS9/OIBVxg516X/Ado2qwAq8k0nJJ7phQPCqiaFAw==} emoji-regex@10.3.0: resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} @@ -3085,10 +3069,6 @@ packages: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} - engines: {node: '>= 0.4'} - es-abstract@1.23.9: resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} @@ -3112,10 +3092,6 @@ packages: es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} - engines: {node: '>= 0.4'} - es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} @@ -3124,10 +3100,6 @@ packages: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} - engines: {node: '>= 0.4'} - es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} @@ -3173,20 +3145,20 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-prettier@10.1.1: - resolution: {integrity: sha512-4EQQr6wXwS+ZJSzaR5ZCrYgLxqvUjdXctaEtBqHcbkW944B1NQyO4qpdHQbXBONfwxXdkAY81HH4+LUfrg+zPw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - eslint-config-prettier@10.1.2: resolution: {integrity: sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==} hasBin: true peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.5.0: - resolution: {integrity: sha512-QJvZBEWDWQx1JyQCr0uwf4aQYhDSAGoHBdx+cPtpPzNEjZw16Ig8BglXxHZBh3I8/fI1U53cLgXwvb28BUZhPA==} + eslint-config-prettier@10.1.5: + resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-config-turbo@2.5.4: + resolution: {integrity: sha512-OpjpDLXIaus0N/Y+pMj17K430xjpd6WTo0xPUESqYZ9BkMngv2n0ZdjktgJTbJVnDmK7gHrXgJAljtdIMcYBIg==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -3218,8 +3190,18 @@ packages: svelte: optional: true - eslint-plugin-turbo@2.5.0: - resolution: {integrity: sha512-qQk54MrUZv0gnpxV23sccTc+FL3UJ8q7vG7HmXuS2RP8gdjWDwI1CCJTJD8EdRIDjsMxF0xi0AKcMY0CwIlXVg==} + eslint-plugin-svelte@3.9.2: + resolution: {integrity: sha512-aqzfHtG9RPaFhCUFm5QFC6eFY/yHFQIT8VYYFe7/mT2A9mbgVR3XV2keCqU19LN8iVD9mdvRvqHU+4+CzJImvg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.1 || ^9.0.0 + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + + eslint-plugin-turbo@2.5.4: + resolution: {integrity: sha512-IZsW61DFj5mLMMaCJxhh1VE4HvNhfdnHnAaXajgne+LUzdyHk2NvYT0ECSa/1SssArcqgTvV74MrLL68hWLLFw==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -3240,9 +3222,10 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@8.43.0: - resolution: {integrity: sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==} + eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true eslint@9.24.0: @@ -3255,6 +3238,16 @@ packages: jiti: optional: true + eslint@9.28.0: + resolution: {integrity: sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + esm-env@1.2.2: resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} @@ -3544,10 +3537,6 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} - engines: {node: '>= 0.4'} - get-symbol-description@1.1.0: resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} @@ -3594,8 +3583,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@16.0.0: - resolution: {integrity: sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==} + globals@16.2.0: + resolution: {integrity: sha512-O+7l9tPdHCU320IigZZPj5zmRCFG9xHmx9cU8FqU2Rp+JN714seHV+2S9+JslCpY4gJwU2vOGox0wzgae/MCEg==} engines: {node: '>=18'} globalthis@1.0.3: @@ -3757,10 +3746,6 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} - engines: {node: '>= 4'} - ignore@5.3.0: resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} engines: {node: '>= 4'} @@ -3769,6 +3754,10 @@ packages: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} @@ -3805,10 +3794,6 @@ packages: resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} engines: {node: '>= 0.4'} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} - engines: {node: '>= 0.4'} - internal-slot@1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} @@ -3819,10 +3804,6 @@ packages: is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} - engines: {node: '>= 0.4'} - is-array-buffer@3.0.5: resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} @@ -3871,10 +3852,6 @@ packages: is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} - engines: {node: '>= 0.4'} - is-data-view@1.0.2: resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} @@ -3932,10 +3909,6 @@ packages: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -3981,10 +3954,6 @@ packages: is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} - engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.4: resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} @@ -4017,10 +3986,6 @@ packages: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} - engines: {node: '>= 0.4'} - is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} @@ -4150,6 +4115,9 @@ packages: known-css-properties@0.35.0: resolution: {integrity: sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==} + known-css-properties@0.36.0: + resolution: {integrity: sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==} + lazy-ass@1.6.0: resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} engines: {node: '> 0.8'} @@ -4169,8 +4137,8 @@ packages: resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} engines: {node: '>=14'} - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} lines-and-columns@1.2.4: @@ -4482,6 +4450,11 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -4528,9 +4501,6 @@ packages: node-releases@2.0.13: resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} @@ -4773,8 +4743,8 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-calc@10.0.2: - resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==} + postcss-calc@10.1.1: + resolution: {integrity: sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw==} engines: {node: ^18.12 || ^20.9 || >=22.0} peerDependencies: postcss: ^8.4.38 @@ -4805,11 +4775,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-colormin@7.0.2: - resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==} + postcss-colormin@7.0.3: + resolution: {integrity: sha512-xZxQcSyIVZbSsl1vjoqZAcMYYdnJsIyG8OvqShuuqf12S88qQboxxEy0ohNCOLwVPXTU+hFHvJPACRL2B5ohTA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-combine-duplicated-selectors@10.0.3: resolution: {integrity: sha512-IP0BmwFloCskv7DV7xqvzDXqMHpwdczJa6ZvIW8abgHdcIHs9mCJX2ltFhu3EwA51ozp13DByng30+Ke+eIExA==} @@ -4823,11 +4793,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-convert-values@7.0.4: - resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==} + postcss-convert-values@7.0.5: + resolution: {integrity: sha512-0VFhH8nElpIs3uXKnVtotDJJNX0OGYSZmdt4XfSfvOMrFw1jKfpwpZxfC4iN73CTM/MWakDEmsHQXkISYj4BXw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-discard-comments@6.0.0: resolution: {integrity: sha512-p2skSGqzPMZkEQvJsgnkBhCn8gI7NzRH2683EEjrIkoMiwRELx68yoUJ3q3DGSGuQ8Ug9Gsn+OuDr46yfO+eFw==} @@ -4835,11 +4805,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-discard-comments@7.0.3: - resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==} + postcss-discard-comments@7.0.4: + resolution: {integrity: sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-discard-duplicates@6.0.0: resolution: {integrity: sha512-bU1SXIizMLtDW4oSsi5C/xHKbhLlhek/0/yCnoMQany9k3nPBq+Ctsv/9oMmyqbR96HYHxZcHyK2HR5P/mqoGA==} @@ -4847,11 +4817,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-discard-duplicates@7.0.1: - resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==} + postcss-discard-duplicates@7.0.2: + resolution: {integrity: sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-discard-empty@6.0.0: resolution: {integrity: sha512-b+h1S1VT6dNhpcg+LpyiUrdnEZfICF0my7HAKgJixJLW7BnNmpRH34+uw/etf5AhOlIhIAuXApSzzDzMI9K/gQ==} @@ -4859,11 +4829,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-discard-empty@7.0.0: - resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==} + postcss-discard-empty@7.0.1: + resolution: {integrity: sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-discard-overridden@6.0.0: resolution: {integrity: sha512-4VELwssYXDFigPYAZ8vL4yX4mUepF/oCBeeIT4OXsJPYOtvJumyz9WflmJWTfDwCUcpDR+z0zvCWBXgTx35SVw==} @@ -4871,11 +4841,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-discard-overridden@7.0.0: - resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==} + postcss-discard-overridden@7.0.1: + resolution: {integrity: sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} @@ -4919,11 +4889,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-merge-longhand@7.0.4: - resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==} + postcss-merge-longhand@7.0.5: + resolution: {integrity: sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-merge-rules@6.0.1: resolution: {integrity: sha512-a4tlmJIQo9SCjcfiCcCMg/ZCEe0XTkl/xK0XHBs955GWg9xDX3NwP9pwZ78QUOWB8/0XCjZeJn98Dae0zg6AAw==} @@ -4931,11 +4901,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-merge-rules@7.0.4: - resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==} + postcss-merge-rules@7.0.5: + resolution: {integrity: sha512-ZonhuSwEaWA3+xYbOdJoEReKIBs5eDiBVLAGpYZpNFPzXZcEE5VKR7/qBEQvTZpiwjqhhqEQ+ax5O3VShBj9Wg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-minify-font-values@6.0.0: resolution: {integrity: sha512-zNRAVtyh5E8ndZEYXA4WS8ZYsAp798HiIQ1V2UF/C/munLp2r1UGHwf1+6JFu7hdEhJFN+W1WJQKBrtjhFgEnA==} @@ -4943,11 +4913,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-minify-font-values@7.0.0: - resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==} + postcss-minify-font-values@7.0.1: + resolution: {integrity: sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-minify-gradients@6.0.0: resolution: {integrity: sha512-wO0F6YfVAR+K1xVxF53ueZJza3L+R3E6cp0VwuXJQejnNUH0DjcAFe3JEBeTY1dLwGa0NlDWueCA1VlEfiKgAA==} @@ -4955,11 +4925,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-minify-gradients@7.0.0: - resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==} + postcss-minify-gradients@7.0.1: + resolution: {integrity: sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-minify-params@6.0.0: resolution: {integrity: sha512-Fz/wMQDveiS0n5JPcvsMeyNXOIMrwF88n7196puSuQSWSa+/Ofc1gDOSY2xi8+A4PqB5dlYCKk/WfqKqsI+ReQ==} @@ -4967,11 +4937,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-minify-params@7.0.2: - resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==} + postcss-minify-params@7.0.3: + resolution: {integrity: sha512-vUKV2+f5mtjewYieanLX0xemxIp1t0W0H/D11u+kQV/MWdygOO7xPMkbK+r9P6Lhms8MgzKARF/g5OPXhb8tgg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-minify-selectors@6.0.0: resolution: {integrity: sha512-ec/q9JNCOC2CRDNnypipGfOhbYPuUkewGwLnbv6omue/PSASbHSU7s6uSQ0tcFRVv731oMIx8k0SP4ZX6be/0g==} @@ -4979,11 +4949,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-minify-selectors@7.0.4: - resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==} + postcss-minify-selectors@7.0.5: + resolution: {integrity: sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-nested@6.0.0: resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} @@ -5003,11 +4973,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-charset@7.0.0: - resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==} + postcss-normalize-charset@7.0.1: + resolution: {integrity: sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-normalize-display-values@6.0.0: resolution: {integrity: sha512-Qyt5kMrvy7dJRO3OjF7zkotGfuYALETZE+4lk66sziWSPzlBEt7FrUshV6VLECkI4EN8Z863O6Nci4NXQGNzYw==} @@ -5015,11 +4985,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-display-values@7.0.0: - resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==} + postcss-normalize-display-values@7.0.1: + resolution: {integrity: sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-normalize-positions@6.0.0: resolution: {integrity: sha512-mPCzhSV8+30FZyWhxi6UoVRYd3ZBJgTRly4hOkaSifo0H+pjDYcii/aVT4YE6QpOil15a5uiv6ftnY3rm0igPg==} @@ -5027,11 +4997,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-positions@7.0.0: - resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==} + postcss-normalize-positions@7.0.1: + resolution: {integrity: sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-normalize-repeat-style@6.0.0: resolution: {integrity: sha512-50W5JWEBiOOAez2AKBh4kRFm2uhrT3O1Uwdxz7k24aKtbD83vqmcVG7zoIwo6xI2FZ/HDlbrCopXhLeTpQib1A==} @@ -5039,11 +5009,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-repeat-style@7.0.0: - resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==} + postcss-normalize-repeat-style@7.0.1: + resolution: {integrity: sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-normalize-string@6.0.0: resolution: {integrity: sha512-KWkIB7TrPOiqb8ZZz6homet2KWKJwIlysF5ICPZrXAylGe2hzX/HSf4NTX2rRPJMAtlRsj/yfkrWGavFuB+c0w==} @@ -5051,11 +5021,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-string@7.0.0: - resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==} + postcss-normalize-string@7.0.1: + resolution: {integrity: sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-normalize-timing-functions@6.0.0: resolution: {integrity: sha512-tpIXWciXBp5CiFs8sem90IWlw76FV4oi6QEWfQwyeREVwUy39VSeSqjAT7X0Qw650yAimYW5gkl2Gd871N5SQg==} @@ -5063,11 +5033,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-timing-functions@7.0.0: - resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==} + postcss-normalize-timing-functions@7.0.1: + resolution: {integrity: sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-normalize-unicode@6.0.0: resolution: {integrity: sha512-ui5crYkb5ubEUDugDc786L/Me+DXp2dLg3fVJbqyAl0VPkAeALyAijF2zOsnZyaS1HyfPuMH0DwyY18VMFVNkg==} @@ -5075,11 +5045,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-unicode@7.0.2: - resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==} + postcss-normalize-unicode@7.0.3: + resolution: {integrity: sha512-EcoA29LvG3F+EpOh03iqu+tJY3uYYKzArqKJHxDhUYLa2u58aqGq16K6/AOsXD9yqLN8O6y9mmePKN5cx6krOw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-normalize-url@6.0.0: resolution: {integrity: sha512-98mvh2QzIPbb02YDIrYvAg4OUzGH7s1ZgHlD3fIdTHLgPLRpv1ZTKJDnSAKr4Rt21ZQFzwhGMXxpXlfrUBKFHw==} @@ -5087,11 +5057,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-url@7.0.0: - resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==} + postcss-normalize-url@7.0.1: + resolution: {integrity: sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-normalize-whitespace@6.0.0: resolution: {integrity: sha512-7cfE1AyLiK0+ZBG6FmLziJzqQCpTQY+8XjMhMAz8WSBSCsCNNUKujgIgjCAmDT3cJ+3zjTXFkoD15ZPsckArVw==} @@ -5099,11 +5069,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-normalize-whitespace@7.0.0: - resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==} + postcss-normalize-whitespace@7.0.1: + resolution: {integrity: sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-ordered-values@6.0.0: resolution: {integrity: sha512-K36XzUDpvfG/nWkjs6d1hRBydeIxGpKS2+n+ywlKPzx1nMYDYpoGbcjhj5AwVYJK1qV2/SDoDEnHzlPD6s3nMg==} @@ -5111,11 +5081,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-ordered-values@7.0.1: - resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==} + postcss-ordered-values@7.0.2: + resolution: {integrity: sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-reduce-initial@6.0.0: resolution: {integrity: sha512-s2UOnidpVuXu6JiiI5U+fV2jamAw5YNA9Fdi/GRK0zLDLCfXmSGqQtzpUPtfN66RtCbb9fFHoyZdQaxOB3WxVA==} @@ -5123,11 +5093,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-reduce-initial@7.0.2: - resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==} + postcss-reduce-initial@7.0.3: + resolution: {integrity: sha512-RFvkZaqiWtGMlVjlUHpaxGqEL27lgt+Q2Ixjf83CRAzqdo+TsDyGPtJUbPx2MuYIJ+sCQc2TrOvRnhcXQfgIVA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-reduce-transforms@6.0.0: resolution: {integrity: sha512-FQ9f6xM1homnuy1wLe9lP1wujzxnwt1EwiigtWwuyf8FsqqXUDUp2Ulxf9A5yjlUOTdCJO6lonYjg1mgqIIi2w==} @@ -5135,11 +5105,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-reduce-transforms@7.0.0: - resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==} + postcss-reduce-transforms@7.0.1: + resolution: {integrity: sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-rename@0.6.1: resolution: {integrity: sha512-bsj9TMuPnh8pqF/FMX6BB3aZMjTxRdGP0qJHOg4yC2S1DCAomtAVuQaTJC16QTkH5fnrYMP/yYjuXZAibP3QnQ==} @@ -5147,6 +5117,10 @@ packages: peerDependencies: postcss: ^8.2.6 + postcss-rename@0.8.0: + resolution: {integrity: sha512-QV8cCSubAkUT/EVIhZY+NRF4cDNzIziR7vSE1dFE797reOPIsczFTXyZfFh3t623cDrdsAhxPFf8XJcYaCbScQ==} + engines: {node: '>=20.0.0'} + postcss-reporter@7.0.5: resolution: {integrity: sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==} engines: {node: '>=10'} @@ -5169,25 +5143,25 @@ packages: resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} engines: {node: '>=4'} - postcss-selector-parser@6.1.2: - resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} - engines: {node: '>=4'} - postcss-selector-parser@7.0.0: resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} engines: {node: '>=4'} + postcss-selector-parser@7.1.0: + resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} + engines: {node: '>=4'} + postcss-svgo@6.0.0: resolution: {integrity: sha512-r9zvj/wGAoAIodn84dR/kFqwhINp5YsJkLoujybWG59grR/IHx+uQ2Zo+IcOwM0jskfYX3R0mo+1Kip1VSNcvw==} engines: {node: ^14 || ^16 || >= 18} peerDependencies: postcss: ^8.2.15 - postcss-svgo@7.0.1: - resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==} + postcss-svgo@7.0.2: + resolution: {integrity: sha512-5Dzy66JlnRM6pkdOTF8+cGsB1fnERTE8Nc+Eed++fOWo1hdsBptCsbG8UuJkgtZt75bRtMJIrPeZmtfANixdFA==} engines: {node: ^18.12.0 || ^20.9.0 || >= 18} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-unique-selectors@6.0.0: resolution: {integrity: sha512-EPQzpZNxOxP7777t73RQpZE5e9TrnCrkvp7AH7a0l89JmZiPnS82y216JowHXwpBCQitfyxrof9TK3rYbi7/Yw==} @@ -5195,11 +5169,11 @@ packages: peerDependencies: postcss: ^8.2.15 - postcss-unique-selectors@7.0.3: - resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==} + postcss-unique-selectors@7.0.4: + resolution: {integrity: sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -5216,6 +5190,10 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} + postcss@8.5.4: + resolution: {integrity: sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==} + engines: {node: ^10 || ^12 || >=14} + preferred-pm@3.1.2: resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} engines: {node: '>=10'} @@ -5234,6 +5212,12 @@ packages: prettier: ^3.0.0 svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 + prettier-plugin-svelte@3.4.0: + resolution: {integrity: sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ==} + peerDependencies: + prettier: ^3.0.0 + svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 + prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} @@ -5434,10 +5418,6 @@ packages: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} - engines: {node: '>= 0.4'} - regexp.prototype.flags@1.5.4: resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} @@ -5567,10 +5547,6 @@ packages: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} - engines: {node: '>=0.4'} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -5585,10 +5561,6 @@ packages: safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} - engines: {node: '>= 0.4'} - safe-regex-test@1.1.0: resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} @@ -5831,16 +5803,9 @@ packages: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} - engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} - string.prototype.trimend@1.0.9: resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} engines: {node: '>= 0.4'} @@ -5885,11 +5850,11 @@ packages: peerDependencies: postcss: ^8.2.15 - stylehacks@7.0.4: - resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==} + stylehacks@7.0.5: + resolution: {integrity: sha512-5kNb7V37BNf0Q3w+1pxfa+oiNPS++/b4Jil9e/kPDgrk1zjEd6uR7SZeJiYaLYH6RRSC1XX2/37OTeU/4FvuIA==} engines: {node: ^18.12.0 || ^20.9.0 || >=22.0} peerDependencies: - postcss: ^8.4.31 + postcss: ^8.4.32 supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -5915,6 +5880,14 @@ packages: svelte: ^4.0.0 || ^5.0.0-next.0 typescript: '>=5.0.0' + svelte-check@4.2.1: + resolution: {integrity: sha512-e49SU1RStvQhoipkQ/aonDhHnG3qxHSBtNfBRb9pxVXoa+N7qybAo32KgA9wEb2PCYFNaDg7bZCdhLD1vHpdYA==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + svelte-eslint-parser@1.1.2: resolution: {integrity: sha512-vqFBRamDKo1l70KMfxxXj1/0Cco5TfMDnqaAjgz6D8PyoMhfMcDOLRkAwPg8WkMyZjMtQL3wW66TZ0x59iqO2w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -5924,6 +5897,15 @@ packages: svelte: optional: true + svelte-eslint-parser@1.2.0: + resolution: {integrity: sha512-mbPtajIeuiyU80BEyGvwAktBeTX7KCr5/0l+uRGLq1dafwRNrjfM5kHGJScEBlPG3ipu6dJqfW/k0/fujvIEVw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + svelte: ^3.37.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + svelte: + optional: true + svelte-preprocess@6.0.3: resolution: {integrity: sha512-PLG2k05qHdhmRG7zR/dyo5qKvakhm8IJ+hD2eFRQmMLHp7X3eJnjeupUtvuRpbNiF31RjVw45W+abDwHEmP5OA==} engines: {node: '>= 18.0.0'} @@ -5981,6 +5963,10 @@ packages: resolution: {integrity: sha512-GVAhi8vi8pGne/wlEdnfWIJvSR9eKvEknxjfL5Sr8gQALiyk8Ey+H0lhUYLpjW+MrqgH9h4dgh2NF6/BTFprRg==} engines: {node: '>=18'} + svelte@5.33.19: + resolution: {integrity: sha512-udmgc1nnGeAgnfVJjOMfSOAqPAKv8N65MWN2kDuxo6BZthTaUcsLh4vP8bdZC0bMXLGn69smSZXgQOeuZBOn4Q==} + engines: {node: '>=18'} + svgo@3.0.2: resolution: {integrity: sha512-Z706C1U2pb1+JGP48fbazf3KxHrWOsLme6Rv7imFBn5EnuanDW1GPaA/P1/dvObE670JDePC3mnj0k0B7P0jjQ==} engines: {node: '>=14.0.0'} @@ -6163,10 +6149,6 @@ packages: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} - engines: {node: '>= 0.4'} - typed-array-buffer@1.0.3: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} @@ -6175,10 +6157,6 @@ packages: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} - engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.3: resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} @@ -6187,10 +6165,6 @@ packages: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} - engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.4: resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} @@ -6198,16 +6172,12 @@ packages: typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} - engines: {node: '>= 0.4'} - typed-array-length@1.0.7: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.30.1: - resolution: {integrity: sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==} + typescript-eslint@8.34.0: + resolution: {integrity: sha512-MRpfN7uYjTrTGigFCt8sRyNqJFhjN0WwZecldaqhWm+wy0gaRt8Edb/3cuUy0zdq2opJWT6iXINKAtewnDOltQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -6377,6 +6347,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -6582,10 +6558,6 @@ packages: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} - engines: {node: '>= 0.4'} - which-typed-array@1.1.19: resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} @@ -7615,27 +7587,38 @@ snapshots: '@esbuild/win32-x64@0.25.2': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.43.0)': - dependencies: - eslint: 8.43.0 - eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.4.0(eslint@9.24.0)': dependencies: eslint: 9.24.0 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.5.1(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.5.1(eslint@9.24.0)': dependencies: eslint: 9.24.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.10.0': {} + '@eslint-community/eslint-utils@4.7.0(eslint@8.57.0)': + dependencies: + eslint: 8.57.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.7.0(eslint@9.24.0)': + dependencies: + eslint: 9.24.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/eslint-utils@4.7.0(eslint@9.28.0)': + dependencies: + eslint: 9.28.0 + eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint-community/regexpp@4.9.1': {} - '@eslint/config-array@0.20.0': dependencies: '@eslint/object-schema': 2.1.6 @@ -7654,13 +7637,17 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/eslintrc@2.1.2': + '@eslint/core@0.14.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.4.0 espree: 9.6.1 globals: 13.23.0 - ignore: 5.2.4 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -7682,10 +7669,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.43.0': {} + '@eslint/js@8.57.0': {} '@eslint/js@9.24.0': {} + '@eslint/js@9.28.0': {} + '@eslint/object-schema@2.1.6': {} '@eslint/plugin-kit@0.2.8': @@ -7693,6 +7682,11 @@ snapshots: '@eslint/core': 0.13.0 levn: 0.4.1 + '@eslint/plugin-kit@0.3.1': + dependencies: + '@eslint/core': 0.14.0 + levn: 0.4.1 + '@hapi/hoek@9.3.0': {} '@hapi/topo@5.1.0': @@ -7706,17 +7700,17 @@ snapshots: '@humanfs/core': 0.19.1 '@humanwhocodes/retry': 0.3.1 - '@humanwhocodes/config-array@0.11.13': + '@humanwhocodes/config-array@0.11.14': dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4(supports-color@8.1.1) + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/object-schema@2.0.1': {} + '@humanwhocodes/object-schema@2.0.3': {} '@humanwhocodes/retry@0.3.1': {} @@ -7829,7 +7823,7 @@ snapshots: '@jridgewell/trace-mapping@0.3.20': dependencies: '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping@0.3.25': dependencies: @@ -8140,23 +8134,26 @@ snapshots: '@sindresorhus/merge-streams@1.0.0': {} - '@svelte-put/shortcut@4.1.0(svelte@5.27.0)': + '@svelte-put/shortcut@4.1.0(svelte@5.33.19)': dependencies: - svelte: 5.27.0 + svelte: 5.33.19 '@sveltejs/acorn-typescript@1.0.5(acorn@8.14.0)': dependencies: acorn: 8.14.0 + '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': + dependencies: + acorn: 8.15.0 + '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))': dependencies: '@sveltejs/kit': 2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) import-meta-resolve: 4.1.0 - '@sveltejs/adapter-auto@6.0.0(@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))': + '@sveltejs/adapter-auto@6.0.1(@sveltejs/kit@2.21.4(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))': dependencies: - '@sveltejs/kit': 2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) - import-meta-resolve: 4.1.0 + '@sveltejs/kit': 2.21.4(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) '@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0))': dependencies: @@ -8175,31 +8172,33 @@ snapshots: svelte: 5.27.0 vite: 6.3.0(@types/node@20.14.6)(terser@5.31.0) - '@sveltejs/kit@2.20.7(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': + '@sveltejs/kit@2.21.4(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) + '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) '@types/cookie': 0.6.0 + acorn: 8.15.0 cookie: 0.6.0 devalue: 5.1.1 esm-env: 1.2.2 - import-meta-resolve: 4.1.0 kleur: 4.1.5 magic-string: 0.30.17 - mrmime: 2.0.0 + mrmime: 2.0.1 sade: 1.8.1 set-cookie-parser: 2.6.0 sirv: 3.0.0 - svelte: 5.27.0 + svelte: 5.33.19 vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) - '@sveltejs/package@2.3.11(svelte@5.27.0)(typescript@5.8.3)': + '@sveltejs/package@2.3.11(svelte@5.33.19)(typescript@5.8.3)': dependencies: chokidar: 4.0.3 kleur: 4.1.5 sade: 1.8.1 semver: 7.6.3 - svelte: 5.27.0 - svelte2tsx: 0.7.34(svelte@5.27.0)(typescript@5.8.3) + svelte: 5.33.19 + svelte2tsx: 0.7.34(svelte@5.33.19)(typescript@5.8.3) transitivePeerDependencies: - typescript @@ -8212,15 +8211,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': - dependencies: - '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) - debug: 4.4.0 - svelte: 5.27.0 - vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) - transitivePeerDependencies: - - supports-color - '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': dependencies: '@sveltejs/vite-plugin-svelte': 5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) @@ -8230,6 +8220,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@sveltejs/vite-plugin-svelte-inspector@4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte': 5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + debug: 4.4.0 + svelte: 5.33.19 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + transitivePeerDependencies: + - supports-color + '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0))': dependencies: '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.0(@types/node@20.14.6)(terser@5.31.0)) @@ -8243,19 +8242,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.27.0)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) - debug: 4.4.0 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.17 - svelte: 5.27.0 - vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) - vitefu: 1.0.4(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) - transitivePeerDependencies: - - supports-color - '@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': dependencies: '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.0.3(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.18)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) @@ -8269,6 +8255,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0))': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 4.0.1(@sveltejs/vite-plugin-svelte@5.1.0(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.33.19)(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + debug: 4.4.1 + deepmerge: 4.3.1 + kleur: 4.1.5 + magic-string: 0.30.17 + svelte: 5.33.19 + vite: 6.3.5(@types/node@20.14.6)(terser@5.31.0) + vitefu: 1.0.6(vite@6.3.5(@types/node@20.14.6)(terser@5.31.0)) + transitivePeerDependencies: + - supports-color + '@swc/core-darwin-arm64@1.3.96': optional: true @@ -8486,78 +8485,126 @@ snapshots: '@types/node': 18.7.16 optional: true - '@typescript-eslint/eslint-plugin@8.29.1(@typescript-eslint/parser@8.29.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3)': - dependencies: - '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 8.29.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/type-utils': 8.29.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.29.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.29.1 - eslint: 9.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/type-utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.30.1 - eslint: 9.24.0 + '@typescript-eslint/parser': 8.34.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@8.57.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.29.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.29.1 + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.34.0(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + eslint: 9.24.0 + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/eslint-plugin@8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/type-utils': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + eslint: 9.28.0 + graphemer: 1.4.0 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.34.0(eslint@8.57.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 + debug: 4.4.0 + eslint: 8.57.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@8.34.0(eslint@9.24.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.0 eslint: 9.24.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.30.1 + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.0 - eslint: 9.24.0 + eslint: 9.28.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.29.1': + '@typescript-eslint/project-service@8.34.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/visitor-keys': 8.29.1 + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + debug: 4.4.0 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/scope-manager@8.30.1': + '@typescript-eslint/scope-manager@8.34.0': dependencies: - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/visitor-keys': 8.30.1 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 - '@typescript-eslint/type-utils@8.29.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.34.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.29.1(eslint@9.24.0)(typescript@5.8.3) + typescript: 5.8.3 + + '@typescript-eslint/type-utils@8.34.0(eslint@8.57.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@8.57.0)(typescript@5.8.3) + debug: 4.4.0 + eslint: 8.57.0 + ts-api-utils: 2.1.0(typescript@5.8.3) + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/type-utils@8.34.0(eslint@9.24.0)(typescript@5.8.3)': + dependencies: + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.24.0)(typescript@5.8.3) debug: 4.4.0 eslint: 9.24.0 ts-api-utils: 2.1.0(typescript@5.8.3) @@ -8565,79 +8612,71 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.34.0(eslint@9.28.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0)(typescript@5.8.3) debug: 4.4.0 - eslint: 9.24.0 + eslint: 9.28.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.29.1': {} + '@typescript-eslint/types@8.34.0': {} - '@typescript-eslint/types@8.30.1': {} - - '@typescript-eslint/typescript-estree@8.29.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.34.0(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/visitor-keys': 8.29.1 + '@typescript-eslint/project-service': 8.34.0(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.34.0(typescript@5.8.3) + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/visitor-keys': 8.34.0 debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.3 + semver: 7.7.2 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.30.1(typescript@5.8.3)': + '@typescript-eslint/utils@8.34.0(eslint@8.57.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/visitor-keys': 8.30.1 - debug: 4.4.0 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.1.0(typescript@5.8.3) + '@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + eslint: 8.57.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.29.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.34.0(eslint@9.24.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.24.0) - '@typescript-eslint/scope-manager': 8.29.1 - '@typescript-eslint/types': 8.29.1 - '@typescript-eslint/typescript-estree': 8.29.1(typescript@5.8.3) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.24.0) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) eslint: 9.24.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.30.1(eslint@9.24.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.34.0(eslint@9.28.0)(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.5.1(eslint@9.24.0) - '@typescript-eslint/scope-manager': 8.30.1 - '@typescript-eslint/types': 8.30.1 - '@typescript-eslint/typescript-estree': 8.30.1(typescript@5.8.3) - eslint: 9.24.0 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) + '@typescript-eslint/scope-manager': 8.34.0 + '@typescript-eslint/types': 8.34.0 + '@typescript-eslint/typescript-estree': 8.34.0(typescript@5.8.3) + eslint: 9.28.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.29.1': + '@typescript-eslint/visitor-keys@8.34.0': dependencies: - '@typescript-eslint/types': 8.29.1 - eslint-visitor-keys: 4.2.0 - - '@typescript-eslint/visitor-keys@8.30.1': - dependencies: - '@typescript-eslint/types': 8.30.1 + '@typescript-eslint/types': 8.34.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.3.0': {} @@ -8683,15 +8722,13 @@ snapshots: transitivePeerDependencies: - supports-color - acorn-jsx@5.3.2(acorn@8.10.0): - dependencies: - acorn: 8.10.0 - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 - acorn@8.10.0: {} + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 acorn@8.14.0: {} @@ -8755,11 +8792,6 @@ snapshots: call-bind: 1.0.7 is-array-buffer: 3.0.2 - array-buffer-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 - array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.4 @@ -8767,12 +8799,12 @@ snapshots: array-includes@3.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 array-iterate@2.0.1: {} @@ -8780,11 +8812,11 @@ snapshots: array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.flat@1.3.2: @@ -8803,9 +8835,9 @@ snapshots: array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 @@ -8819,17 +8851,6 @@ snapshots: is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 - arraybuffer.prototype.slice@1.0.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 - arraybuffer.prototype.slice@1.0.4: dependencies: array-buffer-byte-length: 1.0.2 @@ -8966,14 +8987,14 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - autoprefixer@10.4.21(postcss@8.5.3): + autoprefixer@10.4.21(postcss@8.5.4): dependencies: browserslist: 4.24.4 caniuse-lite: 1.0.30001712 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.5: {} @@ -9060,13 +9081,6 @@ snapshots: node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) - browserslist@4.24.2: - dependencies: - caniuse-lite: 1.0.30001680 - electron-to-chromium: 1.5.56 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) - browserslist@4.24.4: dependencies: caniuse-lite: 1.0.30001712 @@ -9074,6 +9088,13 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.4) + browserslist@4.25.0: + dependencies: + caniuse-lite: 1.0.30001722 + electron-to-chromium: 1.5.166 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.25.0) + buffer-crc32@0.2.13: {} buffer-from@1.1.2: {} @@ -9109,8 +9130,8 @@ snapshots: call-bind@1.0.8: dependencies: call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.0 - get-intrinsic: 1.2.4 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 set-function-length: 1.2.2 call-bound@1.0.4: @@ -9139,10 +9160,10 @@ snapshots: caniuse-lite@1.0.30001553: {} - caniuse-lite@1.0.30001680: {} - caniuse-lite@1.0.30001712: {} + caniuse-lite@1.0.30001722: {} + caseless@0.12.0: {} ccount@2.0.1: {} @@ -9331,9 +9352,9 @@ snapshots: dependencies: postcss: 8.4.21 - css-declaration-sorter@7.2.0(postcss@8.5.3): + css-declaration-sorter@7.2.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 css-select@5.1.0: dependencies: @@ -9395,47 +9416,47 @@ snapshots: postcss-svgo: 6.0.0(postcss@8.4.21) postcss-unique-selectors: 6.0.0(postcss@8.4.21) - cssnano-preset-default@7.0.6(postcss@8.5.3): + cssnano-preset-default@7.0.7(postcss@8.5.4): dependencies: - browserslist: 4.24.2 - css-declaration-sorter: 7.2.0(postcss@8.5.3) - cssnano-utils: 5.0.0(postcss@8.5.3) - postcss: 8.5.3 - postcss-calc: 10.0.2(postcss@8.5.3) - postcss-colormin: 7.0.2(postcss@8.5.3) - postcss-convert-values: 7.0.4(postcss@8.5.3) - postcss-discard-comments: 7.0.3(postcss@8.5.3) - postcss-discard-duplicates: 7.0.1(postcss@8.5.3) - postcss-discard-empty: 7.0.0(postcss@8.5.3) - postcss-discard-overridden: 7.0.0(postcss@8.5.3) - postcss-merge-longhand: 7.0.4(postcss@8.5.3) - postcss-merge-rules: 7.0.4(postcss@8.5.3) - postcss-minify-font-values: 7.0.0(postcss@8.5.3) - postcss-minify-gradients: 7.0.0(postcss@8.5.3) - postcss-minify-params: 7.0.2(postcss@8.5.3) - postcss-minify-selectors: 7.0.4(postcss@8.5.3) - postcss-normalize-charset: 7.0.0(postcss@8.5.3) - postcss-normalize-display-values: 7.0.0(postcss@8.5.3) - postcss-normalize-positions: 7.0.0(postcss@8.5.3) - postcss-normalize-repeat-style: 7.0.0(postcss@8.5.3) - postcss-normalize-string: 7.0.0(postcss@8.5.3) - postcss-normalize-timing-functions: 7.0.0(postcss@8.5.3) - postcss-normalize-unicode: 7.0.2(postcss@8.5.3) - postcss-normalize-url: 7.0.0(postcss@8.5.3) - postcss-normalize-whitespace: 7.0.0(postcss@8.5.3) - postcss-ordered-values: 7.0.1(postcss@8.5.3) - postcss-reduce-initial: 7.0.2(postcss@8.5.3) - postcss-reduce-transforms: 7.0.0(postcss@8.5.3) - postcss-svgo: 7.0.1(postcss@8.5.3) - postcss-unique-selectors: 7.0.3(postcss@8.5.3) + browserslist: 4.25.0 + css-declaration-sorter: 7.2.0(postcss@8.5.4) + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 + postcss-calc: 10.1.1(postcss@8.5.4) + postcss-colormin: 7.0.3(postcss@8.5.4) + postcss-convert-values: 7.0.5(postcss@8.5.4) + postcss-discard-comments: 7.0.4(postcss@8.5.4) + postcss-discard-duplicates: 7.0.2(postcss@8.5.4) + postcss-discard-empty: 7.0.1(postcss@8.5.4) + postcss-discard-overridden: 7.0.1(postcss@8.5.4) + postcss-merge-longhand: 7.0.5(postcss@8.5.4) + postcss-merge-rules: 7.0.5(postcss@8.5.4) + postcss-minify-font-values: 7.0.1(postcss@8.5.4) + postcss-minify-gradients: 7.0.1(postcss@8.5.4) + postcss-minify-params: 7.0.3(postcss@8.5.4) + postcss-minify-selectors: 7.0.5(postcss@8.5.4) + postcss-normalize-charset: 7.0.1(postcss@8.5.4) + postcss-normalize-display-values: 7.0.1(postcss@8.5.4) + postcss-normalize-positions: 7.0.1(postcss@8.5.4) + postcss-normalize-repeat-style: 7.0.1(postcss@8.5.4) + postcss-normalize-string: 7.0.1(postcss@8.5.4) + postcss-normalize-timing-functions: 7.0.1(postcss@8.5.4) + postcss-normalize-unicode: 7.0.3(postcss@8.5.4) + postcss-normalize-url: 7.0.1(postcss@8.5.4) + postcss-normalize-whitespace: 7.0.1(postcss@8.5.4) + postcss-ordered-values: 7.0.2(postcss@8.5.4) + postcss-reduce-initial: 7.0.3(postcss@8.5.4) + postcss-reduce-transforms: 7.0.1(postcss@8.5.4) + postcss-svgo: 7.0.2(postcss@8.5.4) + postcss-unique-selectors: 7.0.4(postcss@8.5.4) cssnano-utils@4.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - cssnano-utils@5.0.0(postcss@8.5.3): + cssnano-utils@5.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 cssnano@6.0.1(postcss@8.4.21): dependencies: @@ -9443,11 +9464,11 @@ snapshots: lilconfig: 2.1.0 postcss: 8.4.21 - cssnano@7.0.6(postcss@8.5.3): + cssnano@7.0.7(postcss@8.5.4): dependencies: - cssnano-preset-default: 7.0.6(postcss@8.5.3) - lilconfig: 3.1.2 - postcss: 8.5.3 + cssnano-preset-default: 7.0.7(postcss@8.5.4) + lilconfig: 3.1.3 + postcss: 8.5.4 csso@5.0.5: dependencies: @@ -9562,36 +9583,18 @@ snapshots: dependencies: assert-plus: 1.0.0 - data-view-buffer@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - data-view-buffer@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - data-view-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - data-view-byte-length@1.0.2: dependencies: call-bound: 1.0.4 es-errors: 1.3.0 is-data-view: 1.0.2 - data-view-byte-offset@1.0.0: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-data-view: 1.0.1 - data-view-byte-offset@1.0.1: dependencies: call-bound: 1.0.4 @@ -9622,6 +9625,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.1: + dependencies: + ms: 2.1.3 + decamelize-keys@1.1.1: dependencies: decamelize: 1.2.0 @@ -9749,7 +9756,7 @@ snapshots: electron-to-chromium@1.5.134: {} - electron-to-chromium@1.5.56: {} + electron-to-chromium@1.5.166: {} emoji-regex@10.3.0: {} @@ -9814,55 +9821,6 @@ snapshots: unbox-primitive: 1.0.2 which-typed-array: 1.1.13 - es-abstract@1.23.3: - dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 - es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 - is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 - es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 @@ -9875,7 +9833,7 @@ snapshots: data-view-byte-offset: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-set-tostringtag: 2.1.0 es-to-primitive: 1.3.0 function.prototype.name: 1.1.8 @@ -9932,7 +9890,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 + es-set-tostringtag: 2.1.0 function-bind: 1.1.2 get-intrinsic: 1.3.0 globalthis: 1.0.4 @@ -9946,10 +9904,6 @@ snapshots: es-module-lexer@1.7.0: {} - es-object-atoms@1.0.0: - dependencies: - es-errors: 1.3.0 - es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 @@ -9960,12 +9914,6 @@ snapshots: has-tostringtag: 1.0.0 hasown: 2.0.1 - es-set-tostringtag@2.0.3: - dependencies: - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 @@ -9986,8 +9934,8 @@ snapshots: es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-date-object: 1.1.0 + is-symbol: 1.1.1 esbuild@0.18.20: optionalDependencies: @@ -10052,29 +10000,33 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-prettier@10.1.1(eslint@9.24.0): - dependencies: - eslint: 9.24.0 - eslint-config-prettier@10.1.2(eslint@9.24.0): dependencies: eslint: 9.24.0 - eslint-config-turbo@2.5.0(eslint@9.24.0)(turbo@2.0.3): + eslint-config-prettier@10.1.5(eslint@8.57.0): dependencies: - eslint: 9.24.0 - eslint-plugin-turbo: 2.5.0(eslint@9.24.0)(turbo@2.0.3) + eslint: 8.57.0 + + eslint-config-prettier@10.1.5(eslint@9.28.0): + dependencies: + eslint: 9.28.0 + + eslint-config-turbo@2.5.4(eslint@8.57.0)(turbo@2.0.3): + dependencies: + eslint: 8.57.0 + eslint-plugin-turbo: 2.5.4(eslint@8.57.0)(turbo@2.0.3) turbo: 2.0.3 - eslint-plugin-prettier@4.2.1(eslint-config-prettier@10.1.1(eslint@9.24.0))(eslint@9.24.0)(prettier@3.5.3): + eslint-plugin-prettier@4.2.1(eslint-config-prettier@10.1.5(eslint@8.57.0))(eslint@8.57.0)(prettier@3.5.3): dependencies: - eslint: 9.24.0 + eslint: 8.57.0 prettier: 3.5.3 prettier-linter-helpers: 1.0.0 optionalDependencies: - eslint-config-prettier: 10.1.1(eslint@9.24.0) + eslint-config-prettier: 10.1.5(eslint@8.57.0) - eslint-plugin-react@7.37.5(eslint@9.24.0): + eslint-plugin-react@7.37.5(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -10082,7 +10034,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.24.0 + eslint: 8.57.0 estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -10113,10 +10065,28 @@ snapshots: transitivePeerDependencies: - ts-node - eslint-plugin-turbo@2.5.0(eslint@9.24.0)(turbo@2.0.3): + eslint-plugin-svelte@3.9.2(eslint@9.28.0)(svelte@5.33.19): + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) + '@jridgewell/sourcemap-codec': 1.5.0 + eslint: 9.28.0 + esutils: 2.0.3 + globals: 16.2.0 + known-css-properties: 0.36.0 + postcss: 8.5.4 + postcss-load-config: 3.1.4(postcss@8.5.4) + postcss-safe-parser: 7.0.1(postcss@8.5.4) + semver: 7.7.2 + svelte-eslint-parser: 1.2.0(svelte@5.33.19) + optionalDependencies: + svelte: 5.33.19 + transitivePeerDependencies: + - ts-node + + eslint-plugin-turbo@2.5.4(eslint@8.57.0)(turbo@2.0.3): dependencies: dotenv: 16.0.3 - eslint: 9.24.0 + eslint: 8.57.0 turbo: 2.0.3 eslint-scope@7.2.2: @@ -10133,19 +10103,20 @@ snapshots: eslint-visitor-keys@4.2.0: {} - eslint@8.43.0: + eslint@8.57.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.43.0) - '@eslint-community/regexpp': 4.9.1 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.43.0 - '@humanwhocodes/config-array': 0.11.13 + '@eslint-community/eslint-utils': 4.5.1(eslint@8.57.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.0 + '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + cross-spawn: 7.0.6 + debug: 4.4.0 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -10159,8 +10130,7 @@ snapshots: glob-parent: 6.0.2 globals: 13.23.0 graphemer: 1.4.0 - ignore: 5.2.4 - import-fresh: 3.3.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -10172,7 +10142,6 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color @@ -10217,6 +10186,46 @@ snapshots: transitivePeerDependencies: - supports-color + eslint@9.28.0: + dependencies: + '@eslint-community/eslint-utils': 4.7.0(eslint@9.28.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.20.0 + '@eslint/config-helpers': 0.2.1 + '@eslint/core': 0.14.0 + '@eslint/eslintrc': 3.3.1 + '@eslint/js': 9.28.0 + '@eslint/plugin-kit': 0.3.1 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.2 + '@types/estree': 1.0.7 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.5.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.1 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.3 + transitivePeerDependencies: + - supports-color + esm-env@1.2.2: {} espree@10.3.0: @@ -10227,8 +10236,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -10538,7 +10547,7 @@ snapshots: get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 get-stdin@9.0.0: {} @@ -10553,12 +10562,6 @@ snapshots: call-bind: 1.0.7 get-intrinsic: 1.2.4 - get-symbol-description@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - get-symbol-description@1.1.0: dependencies: call-bound: 1.0.4 @@ -10612,7 +10615,7 @@ snapshots: globals@14.0.0: {} - globals@16.0.0: {} + globals@16.2.0: {} globalthis@1.0.3: dependencies: @@ -10826,12 +10829,12 @@ snapshots: ieee754@1.2.1: {} - ignore@5.2.4: {} - ignore@5.3.0: {} ignore@5.3.1: {} + ignore@7.0.5: {} + immediate@3.0.6: {} immer@10.0.4: {} @@ -10862,12 +10865,6 @@ snapshots: hasown: 2.0.1 side-channel: 1.0.6 - internal-slot@1.0.7: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.0.6 - internal-slot@1.1.0: dependencies: es-errors: 1.3.0 @@ -10882,11 +10879,6 @@ snapshots: get-intrinsic: 1.2.4 is-typed-array: 1.1.12 - is-array-buffer@3.0.4: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - is-array-buffer@3.0.5: dependencies: call-bind: 1.0.8 @@ -10938,10 +10930,6 @@ snapshots: dependencies: hasown: 2.0.1 - is-data-view@1.0.1: - dependencies: - is-typed-array: 1.1.13 - is-data-view@1.0.2: dependencies: call-bound: 1.0.4 @@ -10990,8 +10978,6 @@ snapshots: is-negative-zero@2.0.2: {} - is-negative-zero@2.0.3: {} - is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.0 @@ -11035,10 +11021,6 @@ snapshots: dependencies: call-bind: 1.0.7 - is-shared-array-buffer@1.0.3: - dependencies: - call-bind: 1.0.7 - is-shared-array-buffer@1.0.4: dependencies: call-bound: 1.0.4 @@ -11072,10 +11054,6 @@ snapshots: dependencies: which-typed-array: 1.1.13 - is-typed-array@1.1.13: - dependencies: - which-typed-array: 1.1.15 - is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.19 @@ -11114,7 +11092,7 @@ snapshots: iterator.prototype@1.1.5: dependencies: define-data-property: 1.1.4 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 get-proto: 1.0.1 has-symbols: 1.1.0 @@ -11180,7 +11158,7 @@ snapshots: dependencies: array-includes: 3.1.8 array.prototype.flat: 1.3.2 - object.assign: 4.1.5 + object.assign: 4.1.7 object.values: 1.2.1 keyv@4.5.4: @@ -11195,6 +11173,8 @@ snapshots: known-css-properties@0.35.0: {} + known-css-properties@0.36.0: {} + lazy-ass@1.6.0: {} levn@0.4.1: @@ -11210,7 +11190,7 @@ snapshots: lilconfig@3.0.0: {} - lilconfig@3.1.2: {} + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -11703,6 +11683,8 @@ snapshots: ms@2.1.3: {} + nanoid@3.3.11: {} + nanoid@3.3.6: {} nanoid@3.3.7: {} @@ -11732,8 +11714,6 @@ snapshots: node-releases@2.0.13: {} - node-releases@2.0.18: {} - node-releases@2.0.19: {} normalize-package-data@2.5.0: @@ -11775,7 +11755,7 @@ snapshots: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 has-symbols: 1.1.0 object-keys: 1.1.1 @@ -11788,17 +11768,17 @@ snapshots: object.fromentries@2.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 object.values@1.2.1: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 ofetch@1.4.1: dependencies: @@ -11971,10 +11951,10 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-calc@10.0.2(postcss@8.5.3): + postcss-calc@10.1.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 + postcss: 8.5.4 + postcss-selector-parser: 7.0.0 postcss-value-parser: 4.2.0 postcss-calc@9.0.1(postcss@8.4.21): @@ -12001,15 +11981,15 @@ snapshots: transitivePeerDependencies: - jiti - postcss-cli@11.0.1(postcss@8.5.3): + postcss-cli@11.0.1(postcss@8.5.4): dependencies: chokidar: 3.5.3 dependency-graph: 1.0.0 fs-extra: 11.2.0 picocolors: 1.1.1 - postcss: 8.5.3 - postcss-load-config: 5.0.2(postcss@8.5.3) - postcss-reporter: 7.0.5(postcss@8.5.3) + postcss: 8.5.4 + postcss-load-config: 5.0.2(postcss@8.5.4) + postcss-reporter: 7.0.5(postcss@8.5.4) pretty-hrtime: 1.0.3 read-cache: 1.0.0 slash: 5.1.0 @@ -12026,12 +12006,12 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-colormin@7.0.2(postcss@8.5.3): + postcss-colormin@7.0.3(postcss@8.5.4): dependencies: - browserslist: 4.24.2 + browserslist: 4.25.0 caniuse-api: 3.0.0 colord: 2.9.3 - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-combine-duplicated-selectors@10.0.3(postcss@8.4.21): @@ -12039,9 +12019,9 @@ snapshots: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - postcss-combine-duplicated-selectors@10.0.3(postcss@8.5.3): + postcss-combine-duplicated-selectors@10.0.3(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 6.0.13 postcss-convert-values@6.0.0(postcss@8.4.21): @@ -12050,44 +12030,44 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-convert-values@7.0.4(postcss@8.5.3): + postcss-convert-values@7.0.5(postcss@8.5.4): dependencies: - browserslist: 4.24.2 - postcss: 8.5.3 + browserslist: 4.25.0 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-discard-comments@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-discard-comments@7.0.3(postcss@8.5.3): + postcss-discard-comments@7.0.4(postcss@8.5.4): dependencies: - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 + postcss: 8.5.4 + postcss-selector-parser: 7.1.0 postcss-discard-duplicates@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-discard-duplicates@7.0.1(postcss@8.5.3): + postcss-discard-duplicates@7.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-discard-empty@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-discard-empty@7.0.0(postcss@8.5.3): + postcss-discard-empty@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-discard-overridden@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-discard-overridden@7.0.0(postcss@8.5.3): + postcss-discard-overridden@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-import@15.1.0(postcss@8.4.21): dependencies: @@ -12096,9 +12076,9 @@ snapshots: read-cache: 1.0.0 resolve: 1.22.8 - postcss-import@16.1.0(postcss@8.5.3): + postcss-import@16.1.0(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 read-cache: 1.0.0 resolve: 1.22.8 @@ -12110,6 +12090,13 @@ snapshots: optionalDependencies: postcss: 8.5.3 + postcss-load-config@3.1.4(postcss@8.5.4): + dependencies: + lilconfig: 2.1.0 + yaml: 1.10.2 + optionalDependencies: + postcss: 8.5.4 + postcss-load-config@5.0.2(postcss@8.4.21): dependencies: lilconfig: 3.0.0 @@ -12117,12 +12104,12 @@ snapshots: optionalDependencies: postcss: 8.4.21 - postcss-load-config@5.0.2(postcss@8.5.3): + postcss-load-config@5.0.2(postcss@8.5.4): dependencies: lilconfig: 3.0.0 yaml: 2.3.4 optionalDependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-merge-longhand@6.0.0(postcss@8.4.21): dependencies: @@ -12130,11 +12117,11 @@ snapshots: postcss-value-parser: 4.2.0 stylehacks: 6.0.0(postcss@8.4.21) - postcss-merge-longhand@7.0.4(postcss@8.5.3): + postcss-merge-longhand@7.0.5(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 - stylehacks: 7.0.4(postcss@8.5.3) + stylehacks: 7.0.5(postcss@8.5.4) postcss-merge-rules@6.0.1(postcss@8.4.21): dependencies: @@ -12144,22 +12131,22 @@ snapshots: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - postcss-merge-rules@7.0.4(postcss@8.5.3): + postcss-merge-rules@7.0.5(postcss@8.5.4): dependencies: - browserslist: 4.24.2 + browserslist: 4.25.0 caniuse-api: 3.0.0 - cssnano-utils: 5.0.0(postcss@8.5.3) - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 + postcss-selector-parser: 7.1.0 postcss-minify-font-values@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-minify-font-values@7.0.0(postcss@8.5.3): + postcss-minify-font-values@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-minify-gradients@6.0.0(postcss@8.4.21): @@ -12169,11 +12156,11 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-minify-gradients@7.0.0(postcss@8.5.3): + postcss-minify-gradients@7.0.1(postcss@8.5.4): dependencies: colord: 2.9.3 - cssnano-utils: 5.0.0(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-minify-params@6.0.0(postcss@8.4.21): @@ -12183,11 +12170,11 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-minify-params@7.0.2(postcss@8.5.3): + postcss-minify-params@7.0.3(postcss@8.5.4): dependencies: - browserslist: 4.24.2 - cssnano-utils: 5.0.0(postcss@8.5.3) - postcss: 8.5.3 + browserslist: 4.25.0 + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-minify-selectors@6.0.0(postcss@8.4.21): @@ -12195,38 +12182,38 @@ snapshots: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - postcss-minify-selectors@7.0.4(postcss@8.5.3): + postcss-minify-selectors@7.0.5(postcss@8.5.4): dependencies: cssesc: 3.0.0 - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 + postcss: 8.5.4 + postcss-selector-parser: 7.1.0 postcss-nested@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - postcss-nested@7.0.2(postcss@8.5.3): + postcss-nested@7.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-selector-parser: 7.0.0 postcss-normalize-charset@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 - postcss-normalize-charset@7.0.0(postcss@8.5.3): + postcss-normalize-charset@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-normalize-display-values@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-normalize-display-values@7.0.0(postcss@8.5.3): + postcss-normalize-display-values@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-normalize-positions@6.0.0(postcss@8.4.21): @@ -12234,9 +12221,9 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-normalize-positions@7.0.0(postcss@8.5.3): + postcss-normalize-positions@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-normalize-repeat-style@6.0.0(postcss@8.4.21): @@ -12244,9 +12231,9 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-normalize-repeat-style@7.0.0(postcss@8.5.3): + postcss-normalize-repeat-style@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-normalize-string@6.0.0(postcss@8.4.21): @@ -12254,9 +12241,9 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-normalize-string@7.0.0(postcss@8.5.3): + postcss-normalize-string@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-normalize-timing-functions@6.0.0(postcss@8.4.21): @@ -12264,9 +12251,9 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-normalize-timing-functions@7.0.0(postcss@8.5.3): + postcss-normalize-timing-functions@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-normalize-unicode@6.0.0(postcss@8.4.21): @@ -12275,10 +12262,10 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-normalize-unicode@7.0.2(postcss@8.5.3): + postcss-normalize-unicode@7.0.3(postcss@8.5.4): dependencies: - browserslist: 4.24.2 - postcss: 8.5.3 + browserslist: 4.25.0 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-normalize-url@6.0.0(postcss@8.4.21): @@ -12286,9 +12273,9 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-normalize-url@7.0.0(postcss@8.5.3): + postcss-normalize-url@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-normalize-whitespace@6.0.0(postcss@8.4.21): @@ -12296,9 +12283,9 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-normalize-whitespace@7.0.0(postcss@8.5.3): + postcss-normalize-whitespace@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-ordered-values@6.0.0(postcss@8.4.21): @@ -12307,10 +12294,10 @@ snapshots: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-ordered-values@7.0.1(postcss@8.5.3): + postcss-ordered-values@7.0.2(postcss@8.5.4): dependencies: - cssnano-utils: 5.0.0(postcss@8.5.3) - postcss: 8.5.3 + cssnano-utils: 5.0.1(postcss@8.5.4) + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-reduce-initial@6.0.0(postcss@8.4.21): @@ -12319,20 +12306,20 @@ snapshots: caniuse-api: 3.0.0 postcss: 8.4.21 - postcss-reduce-initial@7.0.2(postcss@8.5.3): + postcss-reduce-initial@7.0.3(postcss@8.5.4): dependencies: - browserslist: 4.24.2 + browserslist: 4.25.0 caniuse-api: 3.0.0 - postcss: 8.5.3 + postcss: 8.5.4 postcss-reduce-transforms@6.0.0(postcss@8.4.21): dependencies: postcss: 8.4.21 postcss-value-parser: 4.2.0 - postcss-reduce-transforms@7.0.0(postcss@8.5.3): + postcss-reduce-transforms@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 postcss-rename@0.6.1(postcss@8.4.21): @@ -12340,10 +12327,10 @@ snapshots: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - postcss-rename@0.6.1(postcss@8.5.3): + postcss-rename@0.8.0: dependencies: - postcss: 8.5.3 - postcss-selector-parser: 6.0.13 + postcss-selector-parser: 7.1.0 + postcss-value-parser: 4.2.0 postcss-reporter@7.0.5(postcss@8.4.21): dependencies: @@ -12351,31 +12338,35 @@ snapshots: postcss: 8.4.21 thenby: 1.3.4 - postcss-reporter@7.0.5(postcss@8.5.3): + postcss-reporter@7.0.5(postcss@8.5.4): dependencies: picocolors: 1.0.0 - postcss: 8.5.3 + postcss: 8.5.4 thenby: 1.3.4 postcss-safe-parser@7.0.1(postcss@8.5.3): dependencies: postcss: 8.5.3 - postcss-scss@4.0.9(postcss@8.5.3): + postcss-safe-parser@7.0.1(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 + + postcss-scss@4.0.9(postcss@8.5.4): + dependencies: + postcss: 8.5.4 postcss-selector-parser@6.0.13: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@6.1.2: + postcss-selector-parser@7.0.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.0.0: + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -12386,9 +12377,9 @@ snapshots: postcss-value-parser: 4.2.0 svgo: 3.0.2 - postcss-svgo@7.0.1(postcss@8.5.3): + postcss-svgo@7.0.2(postcss@8.5.4): dependencies: - postcss: 8.5.3 + postcss: 8.5.4 postcss-value-parser: 4.2.0 svgo: 3.3.2 @@ -12397,10 +12388,10 @@ snapshots: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - postcss-unique-selectors@7.0.3(postcss@8.5.3): + postcss-unique-selectors@7.0.4(postcss@8.5.4): dependencies: - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 + postcss: 8.5.4 + postcss-selector-parser: 7.1.0 postcss-value-parser@4.2.0: {} @@ -12422,6 +12413,12 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + postcss@8.5.4: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + preferred-pm@3.1.2: dependencies: find-up: 5.0.0 @@ -12440,6 +12437,11 @@ snapshots: prettier: 3.5.3 svelte: 5.27.0 + prettier-plugin-svelte@3.4.0(prettier@3.5.3)(svelte@5.33.19): + dependencies: + prettier: 3.5.3 + svelte: 5.33.19 + prettier@2.8.8: {} prettier@3.5.3: {} @@ -12598,7 +12600,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 get-proto: 1.0.1 which-builtin-type: 1.2.1 @@ -12621,13 +12623,6 @@ snapshots: define-properties: 1.2.1 set-function-name: 2.0.1 - regexp.prototype.flags@1.5.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-errors: 1.3.0 - set-function-name: 2.0.2 - regexp.prototype.flags@1.5.4: dependencies: call-bind: 1.0.8 @@ -12846,13 +12841,6 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 - safe-array-concat@1.1.2: - dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - isarray: 2.0.5 - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -12874,12 +12862,6 @@ snapshots: get-intrinsic: 1.2.4 is-regex: 1.1.4 - safe-regex-test@1.0.3: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-regex: 1.1.4 - safe-regex-test@1.1.0: dependencies: call-bound: 1.0.4 @@ -12941,8 +12923,8 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 has-property-descriptors: 1.0.2 set-function-name@2.0.1: @@ -12962,7 +12944,7 @@ snapshots: dependencies: dunder-proto: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 sharp@0.33.5: dependencies: @@ -13187,7 +13169,7 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 get-intrinsic: 1.3.0 gopd: 1.2.0 has-symbols: 1.1.0 @@ -13199,7 +13181,7 @@ snapshots: string.prototype.repeat@1.0.0: dependencies: define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 string.prototype.trim@1.2.10: dependencies: @@ -13208,7 +13190,7 @@ snapshots: define-data-property: 1.1.4 define-properties: 1.2.1 es-abstract: 1.23.9 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 has-property-descriptors: 1.0.2 string.prototype.trim@1.2.8: @@ -13217,31 +13199,18 @@ snapshots: define-properties: 1.2.1 es-abstract: 1.22.3 - string.prototype.trim@1.2.9: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.7: dependencies: call-bind: 1.0.7 define-properties: 1.2.1 es-abstract: 1.22.3 - string.prototype.trimend@1.0.8: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 - string.prototype.trimend@1.0.9: dependencies: call-bind: 1.0.8 call-bound: 1.0.4 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.7: dependencies: @@ -13251,9 +13220,9 @@ snapshots: string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 stringify-entities@4.0.3: dependencies: @@ -13284,11 +13253,11 @@ snapshots: postcss: 8.4.21 postcss-selector-parser: 6.0.13 - stylehacks@7.0.4(postcss@8.5.3): + stylehacks@7.0.5(postcss@8.5.4): dependencies: - browserslist: 4.24.2 - postcss: 8.5.3 - postcss-selector-parser: 6.1.2 + browserslist: 4.25.0 + postcss: 8.5.4 + postcss-selector-parser: 7.1.0 supports-color@5.5.0: dependencies: @@ -13316,31 +13285,54 @@ snapshots: transitivePeerDependencies: - picomatch + svelte-check@4.2.1(picomatch@4.0.2)(svelte@5.33.19)(typescript@5.8.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + chokidar: 4.0.3 + fdir: 6.4.6(picomatch@4.0.2) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.33.19 + typescript: 5.8.3 + transitivePeerDependencies: + - picomatch + svelte-eslint-parser@1.1.2(svelte@5.27.0): dependencies: eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 espree: 10.3.0 - postcss: 8.5.3 - postcss-scss: 4.0.9(postcss@8.5.3) + postcss: 8.5.4 + postcss-scss: 4.0.9(postcss@8.5.4) postcss-selector-parser: 7.0.0 optionalDependencies: svelte: 5.27.0 - svelte-preprocess@6.0.3(@babel/core@7.27.4)(postcss-load-config@5.0.2(postcss@8.5.3))(postcss@8.5.3)(svelte@5.27.0)(typescript@5.8.3): + svelte-eslint-parser@1.2.0(svelte@5.33.19): dependencies: - svelte: 5.27.0 + eslint-scope: 8.3.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + postcss: 8.5.4 + postcss-scss: 4.0.9(postcss@8.5.4) + postcss-selector-parser: 7.0.0 + optionalDependencies: + svelte: 5.33.19 + + svelte-preprocess@6.0.3(@babel/core@7.27.4)(postcss-load-config@5.0.2(postcss@8.5.4))(postcss@8.5.4)(svelte@5.33.19)(typescript@5.8.3): + dependencies: + svelte: 5.33.19 optionalDependencies: '@babel/core': 7.27.4 - postcss: 8.5.3 - postcss-load-config: 5.0.2(postcss@8.5.3) + postcss: 8.5.4 + postcss-load-config: 5.0.2(postcss@8.5.4) typescript: 5.8.3 - svelte2tsx@0.7.34(svelte@5.27.0)(typescript@5.8.3): + svelte2tsx@0.7.34(svelte@5.33.19)(typescript@5.8.3): dependencies: dedent-js: 1.0.1 pascal-case: 3.1.2 - svelte: 5.27.0 + svelte: 5.33.19 typescript: 5.8.3 svelte2tsx@0.7.39(svelte@5.33.18)(typescript@5.8.3): @@ -13384,6 +13376,23 @@ snapshots: magic-string: 0.30.17 zimmerframe: 1.1.2 + svelte@5.33.19: + dependencies: + '@ampproject/remapping': 2.3.0 + '@jridgewell/sourcemap-codec': 1.5.0 + '@sveltejs/acorn-typescript': 1.0.5(acorn@8.15.0) + '@types/estree': 1.0.7 + acorn: 8.15.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + clsx: 2.1.1 + esm-env: 1.2.2 + esrap: 1.4.9 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.17 + zimmerframe: 1.1.2 + svgo@3.0.2: dependencies: '@trysound/sax': 0.2.0 @@ -13540,12 +13549,6 @@ snapshots: get-intrinsic: 1.2.4 is-typed-array: 1.1.12 - typed-array-buffer@1.0.2: - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - is-typed-array: 1.1.13 - typed-array-buffer@1.0.3: dependencies: call-bound: 1.0.4 @@ -13559,18 +13562,10 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.12 - typed-array-byte-length@1.0.1: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - typed-array-byte-length@1.0.3: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -13583,20 +13578,11 @@ snapshots: has-proto: 1.0.3 is-typed-array: 1.1.12 - typed-array-byte-offset@1.0.2: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 has-proto: 1.2.0 is-typed-array: 1.1.15 @@ -13608,30 +13594,21 @@ snapshots: for-each: 0.3.3 is-typed-array: 1.1.12 - typed-array-length@1.0.6: - dependencies: - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 - possible-typed-array-names: 1.0.0 - typed-array-length@1.0.7: dependencies: call-bind: 1.0.8 - for-each: 0.3.3 + for-each: 0.3.5 gopd: 1.2.0 is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.30.1(eslint@9.24.0)(typescript@5.8.3): + typescript-eslint@8.34.0(eslint@9.28.0)(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.30.1(@typescript-eslint/parser@8.30.1(eslint@9.24.0)(typescript@5.8.3))(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.30.1(eslint@9.24.0)(typescript@5.8.3) - eslint: 9.24.0 + '@typescript-eslint/eslint-plugin': 8.34.0(@typescript-eslint/parser@8.34.0(eslint@9.28.0)(typescript@5.8.3))(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.34.0(eslint@9.28.0)(typescript@5.8.3) + eslint: 9.28.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -13758,18 +13735,18 @@ snapshots: escalade: 3.1.1 picocolors: 1.1.1 - update-browserslist-db@1.1.1(browserslist@4.24.2): - dependencies: - browserslist: 4.24.2 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.1.1(browserslist@4.24.4): dependencies: browserslist: 4.24.4 escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.1.3(browserslist@4.25.0): + dependencies: + browserslist: 4.25.0 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.0 @@ -13841,7 +13818,7 @@ snapshots: esbuild: 0.25.2 fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 - postcss: 8.5.3 + postcss: 8.5.4 rollup: 4.39.0 tinyglobby: 0.2.14 optionalDependencies: @@ -13940,14 +13917,6 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.0 - which-typed-array@1.1.15: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 - which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 diff --git a/tooling/eslint-config/package.json b/tooling/eslint-config/package.json index 48b1dcbb..aab70f70 100644 --- a/tooling/eslint-config/package.json +++ b/tooling/eslint-config/package.json @@ -5,11 +5,14 @@ "license": "MIT", "main": "src/index.js", "devDependencies": { - "@typescript-eslint/eslint-plugin": "^8.23.0", - "@typescript-eslint/parser": "^8.23.0", - "eslint-config-prettier": "^10.0.1", - "eslint-config-turbo": "^2.4.0", + "@typescript-eslint/eslint-plugin": "^8.34.0", + "@typescript-eslint/parser": "^8.34.0", + "eslint-config-prettier": "^10.1.5", + "eslint-config-turbo": "^2.5.4", "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.37.4" + "eslint-plugin-react": "^7.37.5" + }, + "dependencies": { + "eslint": "8.57.0" } } From 76ea5540adfa243b30c6f21c17c0903e4b09411c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 11 Jun 2025 13:39:09 +0000 Subject: [PATCH 33/87] chore(packages): bump --- .changeset/blue-gorillas-help.md | 5 ---- .changeset/dry-pianos-fail.md | 7 ----- .changeset/friendly-monkeys-fry.md | 5 ---- .changeset/funny-mayflies-grin.md | 5 ---- .changeset/grumpy-spiders-play.md | 7 ----- .changeset/hip-fireants-change.md | 5 ---- .changeset/late-taxis-press.md | 7 ----- .changeset/nine-crabs-help.md | 5 ---- .changeset/quiet-forks-visit.md | 8 ------ .changeset/sharp-dogs-chew.md | 7 ----- .changeset/short-bugs-stare.md | 7 ----- .changeset/sour-flowers-love.md | 5 ---- .changeset/thirty-snakes-float.md | 6 ----- .changeset/tough-rivers-tell.md | 5 ---- .changeset/twenty-panthers-report.md | 5 ---- packages/react/CHANGELOG.md | 23 ++++++++++++++++ packages/react/package.json | 2 +- packages/svelte/CHANGELOG.md | 39 ++++++++++++++++++++++++++++ packages/svelte/package.json | 2 +- packages/system/CHANGELOG.md | 16 ++++++++++++ packages/system/package.json | 2 +- 21 files changed, 81 insertions(+), 92 deletions(-) delete mode 100644 .changeset/blue-gorillas-help.md delete mode 100644 .changeset/dry-pianos-fail.md delete mode 100644 .changeset/friendly-monkeys-fry.md delete mode 100644 .changeset/funny-mayflies-grin.md delete mode 100644 .changeset/grumpy-spiders-play.md delete mode 100644 .changeset/hip-fireants-change.md delete mode 100644 .changeset/late-taxis-press.md delete mode 100644 .changeset/nine-crabs-help.md delete mode 100644 .changeset/quiet-forks-visit.md delete mode 100644 .changeset/sharp-dogs-chew.md delete mode 100644 .changeset/short-bugs-stare.md delete mode 100644 .changeset/sour-flowers-love.md delete mode 100644 .changeset/thirty-snakes-float.md delete mode 100644 .changeset/tough-rivers-tell.md delete mode 100644 .changeset/twenty-panthers-report.md diff --git a/.changeset/blue-gorillas-help.md b/.changeset/blue-gorillas-help.md deleted file mode 100644 index f299d8a2..00000000 --- a/.changeset/blue-gorillas-help.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Prevent selecting of edges when spacebar is pressed diff --git a/.changeset/dry-pianos-fail.md b/.changeset/dry-pianos-fail.md deleted file mode 100644 index d8c7acf4..00000000 --- a/.changeset/dry-pianos-fail.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@xyflow/react": minor -"@xyflow/svelte": minor -"@xyflow/system": patch ---- - -Add `ariaRole` prop to nodes and edges diff --git a/.changeset/friendly-monkeys-fry.md b/.changeset/friendly-monkeys-fry.md deleted file mode 100644 index d62a60eb..00000000 --- a/.changeset/friendly-monkeys-fry.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Fix data in `EdgeProps` that was not typed correctly diff --git a/.changeset/funny-mayflies-grin.md b/.changeset/funny-mayflies-grin.md deleted file mode 100644 index cd46d039..00000000 --- a/.changeset/funny-mayflies-grin.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Fix initial fitView for SSR diff --git a/.changeset/grumpy-spiders-play.md b/.changeset/grumpy-spiders-play.md deleted file mode 100644 index 2a3cedd6..00000000 --- a/.changeset/grumpy-spiders-play.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': minor -'@xyflow/svelte': minor -'@xyflow/system': patch ---- - -Improve typing for Nodes diff --git a/.changeset/hip-fireants-change.md b/.changeset/hip-fireants-change.md deleted file mode 100644 index 90137725..00000000 --- a/.changeset/hip-fireants-change.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Fix setting nodesInitialized multiple times diff --git a/.changeset/late-taxis-press.md b/.changeset/late-taxis-press.md deleted file mode 100644 index 05def642..00000000 --- a/.changeset/late-taxis-press.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': minor -'@xyflow/svelte': minor -'@xyflow/system': patch ---- - -Add an `ease` and `interpolate` option to all function that alter the viewport diff --git a/.changeset/nine-crabs-help.md b/.changeset/nine-crabs-help.md deleted file mode 100644 index 747174ac..00000000 --- a/.changeset/nine-crabs-help.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Change a11y description inline styles to classes diff --git a/.changeset/quiet-forks-visit.md b/.changeset/quiet-forks-visit.md deleted file mode 100644 index 89c3a0ee..00000000 --- a/.changeset/quiet-forks-visit.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@xyflow/react": minor -"@xyflow/svelte": minor -"@xyflow/system": patch ---- - -Add `ariaLabelConfig` prop for customizing UI text like aria labels and descriptions. - diff --git a/.changeset/sharp-dogs-chew.md b/.changeset/sharp-dogs-chew.md deleted file mode 100644 index 2c8f2acc..00000000 --- a/.changeset/sharp-dogs-chew.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': minor -'@xyflow/svelte': minor -'@xyflow/system': patch ---- - -Add `domAttributes` option for nodes and edges diff --git a/.changeset/short-bugs-stare.md b/.changeset/short-bugs-stare.md deleted file mode 100644 index 1ac80cac..00000000 --- a/.changeset/short-bugs-stare.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': minor -'@xyflow/svelte': minor -'@xyflow/system': patch ---- - -Prevent NodeResizer controls to become too small when zooming out diff --git a/.changeset/sour-flowers-love.md b/.changeset/sour-flowers-love.md deleted file mode 100644 index 3fc49168..00000000 --- a/.changeset/sour-flowers-love.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Fix `ViewportPortal` not working when used outside of `SvelteFlow` component diff --git a/.changeset/thirty-snakes-float.md b/.changeset/thirty-snakes-float.md deleted file mode 100644 index 8b39c4f3..00000000 --- a/.changeset/thirty-snakes-float.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@xyflow/react": minor -"@xyflow/svelte": minor ---- - -Focus nodes on tab if not within the viewport and add a new prop `autoPanOnNodeFocus` diff --git a/.changeset/tough-rivers-tell.md b/.changeset/tough-rivers-tell.md deleted file mode 100644 index d2e2e7e4..00000000 --- a/.changeset/tough-rivers-tell.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Export missing callback types diff --git a/.changeset/twenty-panthers-report.md b/.changeset/twenty-panthers-report.md deleted file mode 100644 index 7ea0afba..00000000 --- a/.changeset/twenty-panthers-report.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Display nodes correctly in SSR output diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 1fe6fa4b..64db3c57 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,28 @@ # @xyflow/react +## 12.7.0 + +### Minor Changes + +- [#5299](https://github.com/xyflow/xyflow/pull/5299) [`848b486b`](https://github.com/xyflow/xyflow/commit/848b486b2201b650ecb3317f367a723edb2458e1) Thanks [@printerscanner](https://github.com/printerscanner)! - Add `ariaRole` prop to nodes and edges + +- [#5280](https://github.com/xyflow/xyflow/pull/5280) [`dba6faf2`](https://github.com/xyflow/xyflow/commit/dba6faf20e7ec2524d5270d177331d3bd260f3ac) Thanks [@moklick](https://github.com/moklick)! - Improve typing for Nodes + +- [#5276](https://github.com/xyflow/xyflow/pull/5276) [`6ce44a05`](https://github.com/xyflow/xyflow/commit/6ce44a05c829068ff5a8416ce3fa4ee6e0eced48) Thanks [@moklick](https://github.com/moklick)! - Add an `ease` and `interpolate` option to all function that alter the viewport + +- [#5277](https://github.com/xyflow/xyflow/pull/5277) [`f59730ce`](https://github.com/xyflow/xyflow/commit/f59730ce3530a91f579f6bbd2ea9335680f552ef) Thanks [@printerscanner](https://github.com/printerscanner)! - Add `ariaLabelConfig` prop for customizing UI text like aria labels and descriptions. + +- [#5317](https://github.com/xyflow/xyflow/pull/5317) [`09458f52`](https://github.com/xyflow/xyflow/commit/09458f52ff57356e03404c58e9bfdbfd50579850) Thanks [@moklick](https://github.com/moklick)! - Add `domAttributes` option for nodes and edges + +- [#5326](https://github.com/xyflow/xyflow/pull/5326) [`050b511c`](https://github.com/xyflow/xyflow/commit/050b511cd6966ba526299f7ca11f9ca4791fd2cf) Thanks [@peterkogo](https://github.com/peterkogo)! - Prevent NodeResizer controls to become too small when zooming out + +- [#5308](https://github.com/xyflow/xyflow/pull/5308) [`09fab679`](https://github.com/xyflow/xyflow/commit/09fab6794031410c9e9465281d038c3520afe783) Thanks [@printerscanner](https://github.com/printerscanner)! - Focus nodes on tab if not within the viewport and add a new prop `autoPanOnNodeFocus` + +### Patch Changes + +- Updated dependencies [[`848b486b`](https://github.com/xyflow/xyflow/commit/848b486b2201b650ecb3317f367a723edb2458e1), [`dba6faf2`](https://github.com/xyflow/xyflow/commit/dba6faf20e7ec2524d5270d177331d3bd260f3ac), [`6ce44a05`](https://github.com/xyflow/xyflow/commit/6ce44a05c829068ff5a8416ce3fa4ee6e0eced48), [`f59730ce`](https://github.com/xyflow/xyflow/commit/f59730ce3530a91f579f6bbd2ea9335680f552ef), [`09458f52`](https://github.com/xyflow/xyflow/commit/09458f52ff57356e03404c58e9bfdbfd50579850), [`050b511c`](https://github.com/xyflow/xyflow/commit/050b511cd6966ba526299f7ca11f9ca4791fd2cf)]: + - @xyflow/system@0.0.62 + ## 12.6.4 ### Patch Changes diff --git a/packages/react/package.json b/packages/react/package.json index 25846b72..321fa20c 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/react", - "version": "12.6.4", + "version": "12.7.0", "description": "React Flow - A highly customizable React library for building node-based editors and interactive flow charts.", "keywords": [ "react", diff --git a/packages/svelte/CHANGELOG.md b/packages/svelte/CHANGELOG.md index 4b7b5d7e..d695cb8d 100644 --- a/packages/svelte/CHANGELOG.md +++ b/packages/svelte/CHANGELOG.md @@ -1,5 +1,44 @@ # @xyflow/svelte +## 1.1.0 + +### Minor Changes + +- [#5299](https://github.com/xyflow/xyflow/pull/5299) [`848b486b`](https://github.com/xyflow/xyflow/commit/848b486b2201b650ecb3317f367a723edb2458e1) Thanks [@printerscanner](https://github.com/printerscanner)! - Add `ariaRole` prop to nodes and edges + +- [#5280](https://github.com/xyflow/xyflow/pull/5280) [`dba6faf2`](https://github.com/xyflow/xyflow/commit/dba6faf20e7ec2524d5270d177331d3bd260f3ac) Thanks [@moklick](https://github.com/moklick)! - Improve typing for Nodes + +- [#5276](https://github.com/xyflow/xyflow/pull/5276) [`6ce44a05`](https://github.com/xyflow/xyflow/commit/6ce44a05c829068ff5a8416ce3fa4ee6e0eced48) Thanks [@moklick](https://github.com/moklick)! - Add an `ease` and `interpolate` option to all function that alter the viewport + +- [#5277](https://github.com/xyflow/xyflow/pull/5277) [`f59730ce`](https://github.com/xyflow/xyflow/commit/f59730ce3530a91f579f6bbd2ea9335680f552ef) Thanks [@printerscanner](https://github.com/printerscanner)! - Add `ariaLabelConfig` prop for customizing UI text like aria labels and descriptions. + +- [#5317](https://github.com/xyflow/xyflow/pull/5317) [`09458f52`](https://github.com/xyflow/xyflow/commit/09458f52ff57356e03404c58e9bfdbfd50579850) Thanks [@moklick](https://github.com/moklick)! - Add `domAttributes` option for nodes and edges + +- [#5326](https://github.com/xyflow/xyflow/pull/5326) [`050b511c`](https://github.com/xyflow/xyflow/commit/050b511cd6966ba526299f7ca11f9ca4791fd2cf) Thanks [@peterkogo](https://github.com/peterkogo)! - Prevent NodeResizer controls to become too small when zooming out + +- [#5308](https://github.com/xyflow/xyflow/pull/5308) [`09fab679`](https://github.com/xyflow/xyflow/commit/09fab6794031410c9e9465281d038c3520afe783) Thanks [@printerscanner](https://github.com/printerscanner)! - Focus nodes on tab if not within the viewport and add a new prop `autoPanOnNodeFocus` + +### Patch Changes + +- [#5327](https://github.com/xyflow/xyflow/pull/5327) [`75ed6dec`](https://github.com/xyflow/xyflow/commit/75ed6decfb3ff408f6136bc1bc712fc4eb3737ef) Thanks [@peterkogo](https://github.com/peterkogo)! - Prevent selecting of edges when spacebar is pressed + +- [#5294](https://github.com/xyflow/xyflow/pull/5294) [`4a582e23`](https://github.com/xyflow/xyflow/commit/4a582e2371066170b12f3df947f24fe233b542cd) Thanks [@peterkogo](https://github.com/peterkogo)! - Fix data in `EdgeProps` that was not typed correctly + +- [#5327](https://github.com/xyflow/xyflow/pull/5327) [`d0c36fdb`](https://github.com/xyflow/xyflow/commit/d0c36fdb708b784cbbd87711512b813eb68757ac) Thanks [@peterkogo](https://github.com/peterkogo)! - Fix initial fitView for SSR + +- [#5275](https://github.com/xyflow/xyflow/pull/5275) [`a67bfc09`](https://github.com/xyflow/xyflow/commit/a67bfc09d5b352b5ff3b896c9a9e7138f2c4b20c) Thanks [@peterkogo](https://github.com/peterkogo)! - Fix setting nodesInitialized multiple times + +- [#5271](https://github.com/xyflow/xyflow/pull/5271) [`5224a1a2`](https://github.com/xyflow/xyflow/commit/5224a1a252eee59ffc48fffd74872206e19207f3) Thanks [@leejuyuu](https://github.com/leejuyuu)! - Change a11y description inline styles to classes + +- [#5327](https://github.com/xyflow/xyflow/pull/5327) [`d0c36fdb`](https://github.com/xyflow/xyflow/commit/d0c36fdb708b784cbbd87711512b813eb68757ac) Thanks [@peterkogo](https://github.com/peterkogo)! - Fix `ViewportPortal` not working when used outside of `SvelteFlow` component + +- [#5295](https://github.com/xyflow/xyflow/pull/5295) [`93aefe71`](https://github.com/xyflow/xyflow/commit/93aefe71fb199d0e3463aca38a4564252ab8cbf4) Thanks [@peterkogo](https://github.com/peterkogo)! - Export missing callback types + +- [#5327](https://github.com/xyflow/xyflow/pull/5327) [`d0c36fdb`](https://github.com/xyflow/xyflow/commit/d0c36fdb708b784cbbd87711512b813eb68757ac) Thanks [@peterkogo](https://github.com/peterkogo)! - Display nodes correctly in SSR output + +- Updated dependencies [[`848b486b`](https://github.com/xyflow/xyflow/commit/848b486b2201b650ecb3317f367a723edb2458e1), [`dba6faf2`](https://github.com/xyflow/xyflow/commit/dba6faf20e7ec2524d5270d177331d3bd260f3ac), [`6ce44a05`](https://github.com/xyflow/xyflow/commit/6ce44a05c829068ff5a8416ce3fa4ee6e0eced48), [`f59730ce`](https://github.com/xyflow/xyflow/commit/f59730ce3530a91f579f6bbd2ea9335680f552ef), [`09458f52`](https://github.com/xyflow/xyflow/commit/09458f52ff57356e03404c58e9bfdbfd50579850), [`050b511c`](https://github.com/xyflow/xyflow/commit/050b511cd6966ba526299f7ca11f9ca4791fd2cf)]: + - @xyflow/system@0.0.62 + ## 1.0.2 ### Patch Changes diff --git a/packages/svelte/package.json b/packages/svelte/package.json index cdb2551f..c7494d86 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/svelte", - "version": "1.0.2", + "version": "1.1.0", "description": "Svelte Flow - A highly customizable Svelte library for building node-based editors, workflow systems, diagrams and more.", "keywords": [ "svelte", diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index a7eb7ee9..d04007ec 100644 --- a/packages/system/CHANGELOG.md +++ b/packages/system/CHANGELOG.md @@ -1,5 +1,21 @@ # @xyflow/system +## 0.0.62 + +### Patch Changes + +- [#5299](https://github.com/xyflow/xyflow/pull/5299) [`848b486b`](https://github.com/xyflow/xyflow/commit/848b486b2201b650ecb3317f367a723edb2458e1) Thanks [@printerscanner](https://github.com/printerscanner)! - Add `ariaRole` prop to nodes and edges + +- [#5280](https://github.com/xyflow/xyflow/pull/5280) [`dba6faf2`](https://github.com/xyflow/xyflow/commit/dba6faf20e7ec2524d5270d177331d3bd260f3ac) Thanks [@moklick](https://github.com/moklick)! - Improve typing for Nodes + +- [#5276](https://github.com/xyflow/xyflow/pull/5276) [`6ce44a05`](https://github.com/xyflow/xyflow/commit/6ce44a05c829068ff5a8416ce3fa4ee6e0eced48) Thanks [@moklick](https://github.com/moklick)! - Add an `ease` and `interpolate` option to all function that alter the viewport + +- [#5277](https://github.com/xyflow/xyflow/pull/5277) [`f59730ce`](https://github.com/xyflow/xyflow/commit/f59730ce3530a91f579f6bbd2ea9335680f552ef) Thanks [@printerscanner](https://github.com/printerscanner)! - Add `ariaLabelConfig` prop for customizing UI text like aria labels and descriptions. + +- [#5317](https://github.com/xyflow/xyflow/pull/5317) [`09458f52`](https://github.com/xyflow/xyflow/commit/09458f52ff57356e03404c58e9bfdbfd50579850) Thanks [@moklick](https://github.com/moklick)! - Add `domAttributes` option for nodes and edges + +- [#5326](https://github.com/xyflow/xyflow/pull/5326) [`050b511c`](https://github.com/xyflow/xyflow/commit/050b511cd6966ba526299f7ca11f9ca4791fd2cf) Thanks [@peterkogo](https://github.com/peterkogo)! - Prevent NodeResizer controls to become too small when zooming out + ## 0.0.61 ### Patch Changes diff --git a/packages/system/package.json b/packages/system/package.json index 3ed062f2..904d1e22 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/system", - "version": "0.0.61", + "version": "0.0.62", "description": "xyflow core system that powers React Flow and Svelte Flow.", "keywords": [ "node-based UI", From 458d64198513f5f4d16d280d71c9301f6d7e8139 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Wed, 11 Jun 2025 17:05:12 +0200 Subject: [PATCH 34/87] docs(CONTRIBUTING): add changeset style guide --- CONTRIBUTING.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dfd9ac5d..56c77ded 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,7 +41,7 @@ Talking to us first about the enhancement you want to build will be the most lik To ask about a possible enhancement, email us at info@reactflow.dev -### 💫 Pull Requests +## 💫 Pull Requests If you want to contribute improvements or new features we are happy to review your PR :) Please use a meaningful commit message and add a little description of your changes. @@ -50,3 +50,39 @@ Please use a meaningful commit message and add a little description of your chan 2. Start dev server `pnpm dev` 3. Test your changes with the existing examples or add a new one if it's needed for your changes 4. Run tests `pnpm test` and add new new tests if you are introducing a new feature + +## Changeset Style Guide + +*Inspired and taken from [Common Changelogs](https://github.com/vweevers/common-changelog?tab=readme-ov-file) and [Warp by Broad Institute](https://broadinstitute.github.io/warp/docs/contribution/contribute_to_warp/changelog_style/)* + +If you are writing a changeset for a PR, here are some helpful tips: + +## TLDR + +- Changelogs are for humans +- Communicate the impact of changes +- Use active voice *and* presence tense *(”Fix …” instead of “… was fixed”)* +- Omit redundant verbs + - *“Document” instead of “Add documentation”* +- Omit personal pronouns +- Use backticks for function or component names (`getNodesBounds`, ``, etc) for a better syntax highlighting + +## Examples + +**🛑 Bad:** +“minimap: use latest node dimensions” + +**✅ Good:** +“Display minimap nodes even if onNodesChange is not implemented” + +**🛑 Bad:** +“fix(handles): reconnect for connectionMode=loose” + +**✅ Good:** +“Fix reconnections when connectionMode is set to loose” + +**🛑 Bad:** +“use correct index when using setNodes for inserting” + +**✅ Good:** +“Fix incorrect order of nodes added with setNodes from useReactFlow” \ No newline at end of file From bc416dcab0e7a4220558e2aa814670370b773f17 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 11 Jun 2025 17:10:14 +0200 Subject: [PATCH 35/87] export additional types --- packages/svelte/src/lib/index.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/svelte/src/lib/index.ts b/packages/svelte/src/lib/index.ts index 2fc0befc..bed08663 100644 --- a/packages/svelte/src/lib/index.ts +++ b/packages/svelte/src/lib/index.ts @@ -105,6 +105,9 @@ export { type OnResizeStart, type OnResize, type OnResizeEnd, + type OnReconnect, + type OnReconnectStart, + type OnReconnectEnd, type ControlPosition, type ControlLinePosition, ResizeControlVariant, From f0bcec449c8f7fdab60e5ed287d8086e2584a4cb Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 12 Jun 2025 10:47:42 +0200 Subject: [PATCH 36/87] chore(types): add exports --- packages/react/src/index.ts | 3 +++ packages/svelte/src/lib/index.ts | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index 305acea7..0b67466e 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -109,6 +109,9 @@ export { type NodeConnection, type OnReconnect, type AriaLabelConfig, + type SetCenter, + type SetViewport, + type FitBounds, } from '@xyflow/system'; // we need this workaround to prevent a duplicate identifier error diff --git a/packages/svelte/src/lib/index.ts b/packages/svelte/src/lib/index.ts index bed08663..3c16faca 100644 --- a/packages/svelte/src/lib/index.ts +++ b/packages/svelte/src/lib/index.ts @@ -116,7 +116,10 @@ export { type ResizeDragEvent, type IsValidConnection, type NodeConnection, - type AriaLabelConfig + type AriaLabelConfig, + type SetCenter, + type SetViewport, + type FitBounds } from '@xyflow/system'; // system utils From 3d7e8b6bb10001ee84d79ca4f6a9fd0053c4a276 Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 12 Jun 2025 10:49:43 +0200 Subject: [PATCH 37/87] chore(changeset): add --- .changeset/proud-stingrays-run.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/proud-stingrays-run.md diff --git a/.changeset/proud-stingrays-run.md b/.changeset/proud-stingrays-run.md new file mode 100644 index 00000000..b3ef8c85 --- /dev/null +++ b/.changeset/proud-stingrays-run.md @@ -0,0 +1,6 @@ +--- +'@xyflow/react': patch +'@xyflow/svelte': patch +--- + +Add missing type exports From 28890a09d6e1c07edab7f8584d8224d60e3a1132 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 12 Jun 2025 13:37:10 +0200 Subject: [PATCH 38/87] change all store states to state.raw to prevent proxying all objects --- .../src/routes/examples/overview/Flow.svelte | 2 + .../overview/TriggerConnection.svelte | 107 ++++++++++++++++++ .../src/lib/store/initial-store.svelte.ts | 32 +++--- 3 files changed, 125 insertions(+), 16 deletions(-) create mode 100644 examples/svelte/src/routes/examples/overview/TriggerConnection.svelte diff --git a/examples/svelte/src/routes/examples/overview/Flow.svelte b/examples/svelte/src/routes/examples/overview/Flow.svelte index 3075a0e8..df4abf68 100644 --- a/examples/svelte/src/routes/examples/overview/Flow.svelte +++ b/examples/svelte/src/routes/examples/overview/Flow.svelte @@ -24,6 +24,7 @@ import '@xyflow/svelte/dist/style.css'; import InitTracker from './InitTracker.svelte'; + import TriggerConnection from './TriggerConnection.svelte'; const nodeTypes: NodeTypes = { custom: CustomNode, @@ -243,6 +244,7 @@ })); }}>left-right + diff --git a/examples/svelte/src/routes/examples/overview/TriggerConnection.svelte b/examples/svelte/src/routes/examples/overview/TriggerConnection.svelte new file mode 100644 index 00000000..e9301f91 --- /dev/null +++ b/examples/svelte/src/routes/examples/overview/TriggerConnection.svelte @@ -0,0 +1,107 @@ + + + + diff --git a/packages/svelte/src/lib/store/initial-store.svelte.ts b/packages/svelte/src/lib/store/initial-store.svelte.ts index 8c2da3cf..5dd4811a 100644 --- a/packages/svelte/src/lib/store/initial-store.svelte.ts +++ b/packages/svelte/src/lib/store/initial-store.svelte.ts @@ -110,10 +110,10 @@ export function getInitialStore(null); - panZoom: PanZoomInstance | null = $state(null); - width = $state(signals.width ?? 0); - height = $state(signals.height ?? 0); + domNode = $state.raw(null); + panZoom: PanZoomInstance | null = $state.raw(null); + width = $state.raw(signals.width ?? 0); + height = $state.raw(signals.height ?? 0); nodesInitialized: boolean = $derived.by(() => { const nodesInitialized = adoptUserNodes(signals.nodes, this.nodeLookup, this.parentLookup, { @@ -293,16 +293,16 @@ export function getInitialStore(''); + selectionKeyPressed: boolean = $state.raw(false); + multiselectionKeyPressed: boolean = $state.raw(false); + deleteKeyPressed: boolean = $state.raw(false); + panActivationKeyPressed: boolean = $state.raw(false); + zoomActivationKeyPressed: boolean = $state.raw(false); + selectionRectMode: string | null = $state.raw(null); + ariaLiveMessage = $state.raw(''); selectionMode: SelectionMode = $derived(signals.props.selectionMode ?? SelectionMode.Partial); nodeTypes: NodeTypes = $derived({ ...initialNodeTypes, ...signals.props.nodeTypes }); @@ -317,7 +317,7 @@ export function getInitialStore { if (this._connection.inProgress) { @@ -392,7 +392,7 @@ export function getInitialStore | null = $state(null); + clickConnectStartHandle: Pick | null = $state.raw(null); onselectiondrag?: OnSelectionDrag = $derived(signals.props.onselectiondrag); onselectiondragstart?: OnSelectionDrag = $derived(signals.props.onselectiondragstart); From 8474ba49cc1f48b6758a728fe4371f38260952e5 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 12 Jun 2025 13:37:50 +0200 Subject: [PATCH 39/87] chore(changeset) --- .changeset/perfect-ads-cough.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/perfect-ads-cough.md diff --git a/.changeset/perfect-ads-cough.md b/.changeset/perfect-ads-cough.md new file mode 100644 index 00000000..2e06490f --- /dev/null +++ b/.changeset/perfect-ads-cough.md @@ -0,0 +1,5 @@ +--- +'@xyflow/svelte': patch +--- + +Prevent proxying objects in the store From fe5b8c453fcdbebf9ff90a27d223af05565fd30f Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 12 Jun 2025 13:57:19 +0200 Subject: [PATCH 40/87] remove example --- .../src/routes/examples/overview/Flow.svelte | 2 - .../overview/TriggerConnection.svelte | 107 ------------------ 2 files changed, 109 deletions(-) delete mode 100644 examples/svelte/src/routes/examples/overview/TriggerConnection.svelte diff --git a/examples/svelte/src/routes/examples/overview/Flow.svelte b/examples/svelte/src/routes/examples/overview/Flow.svelte index df4abf68..3075a0e8 100644 --- a/examples/svelte/src/routes/examples/overview/Flow.svelte +++ b/examples/svelte/src/routes/examples/overview/Flow.svelte @@ -24,7 +24,6 @@ import '@xyflow/svelte/dist/style.css'; import InitTracker from './InitTracker.svelte'; - import TriggerConnection from './TriggerConnection.svelte'; const nodeTypes: NodeTypes = { custom: CustomNode, @@ -244,7 +243,6 @@ })); }}>left-right - diff --git a/examples/svelte/src/routes/examples/overview/TriggerConnection.svelte b/examples/svelte/src/routes/examples/overview/TriggerConnection.svelte deleted file mode 100644 index e9301f91..00000000 --- a/examples/svelte/src/routes/examples/overview/TriggerConnection.svelte +++ /dev/null @@ -1,107 +0,0 @@ - - - - From 5e33ac3e8bdff7ebe346be25266ee87719905568 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 12 Jun 2025 15:50:14 +0200 Subject: [PATCH 41/87] fix useNodeConnections callback not firing if connections.current not used --- .../examples/usenodesdata/ResultNode.svelte | 9 ++++++ .../lib/hooks/useNodeConnections.svelte.ts | 32 ++++++++++++++++--- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/examples/svelte/src/routes/examples/usenodesdata/ResultNode.svelte b/examples/svelte/src/routes/examples/usenodesdata/ResultNode.svelte index a9f14360..2f9f72bb 100644 --- a/examples/svelte/src/routes/examples/usenodesdata/ResultNode.svelte +++ b/examples/svelte/src/routes/examples/usenodesdata/ResultNode.svelte @@ -16,6 +16,15 @@ handleType: 'target' }); + useNodeConnections({ + onConnect: (connection) => { + console.log('Connection made:', connection); + }, + onDisconnect: (connection) => { + console.log('Connection disconnected:', connection); + } + }); + let nodeData = $derived( useNodesData(connections.current.map((connection) => connection.source)) ); diff --git a/packages/svelte/src/lib/hooks/useNodeConnections.svelte.ts b/packages/svelte/src/lib/hooks/useNodeConnections.svelte.ts index 111fc715..8e7216b6 100644 --- a/packages/svelte/src/lib/hooks/useNodeConnections.svelte.ts +++ b/packages/svelte/src/lib/hooks/useNodeConnections.svelte.ts @@ -17,6 +17,8 @@ type UseNodeConnectionsParams = { onDisconnect?: (connections: Connection[]) => void; }; +type ConnectionMap = Map; + const initialConnections: NodeConnection[] = []; /** @@ -42,26 +44,46 @@ export function useNodeConnections({ const contextNodeId = getContext('svelteflow__node_id'); const nodeId = id ?? contextNodeId; - let prevConnections: Map = new Map(); + let connectionMaps: { previous: ConnectionMap; next: ConnectionMap } = { + previous: new Map(), + next: new Map() + }; let connectionsArray: NodeConnection[] = initialConnections; const connections = $derived.by(() => { // eslint-disable-next-line @typescript-eslint/no-unused-expressions edges; + + const prevConnections = connectionMaps.next; const nextConnections = connectionLookup.get( `${nodeId}${handleType ? (handleId ? `-${handleType}-${handleId}` : `-${handleType}`) : ''}` ) ?? new Map(); if (!areConnectionMapsEqual(nextConnections, prevConnections)) { - if (onConnect) handleConnectionChange(nextConnections, prevConnections, onConnect); - if (onDisconnect) handleConnectionChange(prevConnections, nextConnections, onDisconnect); - - prevConnections = nextConnections; + connectionMaps = { + previous: prevConnections, + next: nextConnections + }; connectionsArray = Array.from(nextConnections.values() || initialConnections); } return connectionsArray; }); + $effect(() => { + // We subscribe to changes to the connections only when onConnect/onDisconnect are provided + if (onConnect) { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + connections; + handleConnectionChange(connectionMaps.next, connectionMaps.previous, onConnect); + } + + if (onDisconnect) { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + connections; + handleConnectionChange(connectionMaps.previous, connectionMaps.next, onDisconnect); + } + }); + return { get current() { return connections; From d6db97c53597db0eee8edd19beaf20b83f89fabf Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 12 Jun 2025 15:51:00 +0200 Subject: [PATCH 42/87] chore(changeset) --- .changeset/plenty-garlics-fail.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/plenty-garlics-fail.md diff --git a/.changeset/plenty-garlics-fail.md b/.changeset/plenty-garlics-fail.md new file mode 100644 index 00000000..44645484 --- /dev/null +++ b/.changeset/plenty-garlics-fail.md @@ -0,0 +1,5 @@ +--- +'@xyflow/svelte': patch +--- + +Fix useNodeConnections callbacks not firing when returned signal not used From ed102ee4659ee4ff8f88ed08664932bbddd075c3 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Thu, 12 Jun 2025 15:52:13 +0200 Subject: [PATCH 43/87] changeset wording --- .changeset/plenty-garlics-fail.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/plenty-garlics-fail.md b/.changeset/plenty-garlics-fail.md index 44645484..09f4d57d 100644 --- a/.changeset/plenty-garlics-fail.md +++ b/.changeset/plenty-garlics-fail.md @@ -2,4 +2,4 @@ '@xyflow/svelte': patch --- -Fix useNodeConnections callbacks not firing when returned signal not used +Fix useNodeConnections callbacks firing only when returned signal is used From 56ebde811555775a0a9e2b2f88d35d9511f90c95 Mon Sep 17 00:00:00 2001 From: Jeremiasz Major Date: Fri, 13 Jun 2025 20:59:32 +0200 Subject: [PATCH 44/87] fix move events not firing in svelte flow --- .changeset/fair-fans-train.md | 5 +++++ packages/svelte/src/lib/actions/zoom/index.ts | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 .changeset/fair-fans-train.md diff --git a/.changeset/fair-fans-train.md b/.changeset/fair-fans-train.md new file mode 100644 index 00000000..ca0aea45 --- /dev/null +++ b/.changeset/fair-fans-train.md @@ -0,0 +1,5 @@ +--- +'@xyflow/svelte': patch +--- + +Fix `onmove`, `onmovestart` and `onmoveend` events not firing diff --git a/packages/svelte/src/lib/actions/zoom/index.ts b/packages/svelte/src/lib/actions/zoom/index.ts index 47cfa49e..8a4673c7 100644 --- a/packages/svelte/src/lib/actions/zoom/index.ts +++ b/packages/svelte/src/lib/actions/zoom/index.ts @@ -44,6 +44,9 @@ export default function zoom(domNode: Element, params: ZoomParams) { minZoom, maxZoom, initialViewport, + onPanZoomStart, + onPanZoom, + onPanZoomEnd, translateExtent, paneClickDistance, setPanZoomInstance, @@ -55,9 +58,12 @@ export default function zoom(domNode: Element, params: ZoomParams) { domNode, minZoom, maxZoom, + paneClickDistance, translateExtent, viewport: initialViewport, - paneClickDistance, + onPanZoom, + onPanZoomStart, + onPanZoomEnd, onDraggingChange }); From 85efdd8876e3f915fa8bfd13f8bc73552975f50b Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 16 Jun 2025 09:55:50 +0200 Subject: [PATCH 45/87] chore(system): add comments for types --- packages/system/src/types/general.ts | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/packages/system/src/types/general.ts b/packages/system/src/types/general.ts index 4e7cf910..367ca1d8 100644 --- a/packages/system/src/types/general.ts +++ b/packages/system/src/types/general.ts @@ -21,8 +21,33 @@ export type ZoomInOut = (options?: ViewportHelperFunctionOptions) => Promise Promise; export type GetZoom = () => number; export type GetViewport = () => Viewport; + +/** + * The `SetViewport` function is used to set the viewport of the flow. + * + * @inline + * @param viewport - The viewport to set. + * @param options - Optional parameters to control the animation and easing of the viewport change. + */ export type SetViewport = (viewport: Viewport, options?: ViewportHelperFunctionOptions) => Promise; + +/** + * The `SetCenter` function is used to set the center of the flow viewport to a specific position + * + * @inline + * @param x - x coordinate + * @param y - y coordinate + * @param options - Optional parameters to control the animation and easing of the viewport change. + */ export type SetCenter = (x: number, y: number, options?: SetCenterOptions) => Promise; + +/** + * The `FitBounds` function is used to fit the flow viewport to the bounds of the nodes. + * + * @inline + * @param bounds - The bounds to fit the viewport to. + * @param options - Optional parameters to control the animation and easing of the viewport change. + */ export type FitBounds = (bounds: Rect, options?: FitBoundsOptions) => Promise; /** @@ -179,10 +204,16 @@ export type ViewportHelperFunctionOptions = { interpolate?: 'smooth' | 'linear'; }; +/** + * @inline + */ export type SetCenterOptions = ViewportHelperFunctionOptions & { zoom?: number; }; +/** + * @inline + */ export type FitBoundsOptions = ViewportHelperFunctionOptions & { padding?: number; }; From 1d7550d4dec3c8008ff6e7527d27668917d2d91a Mon Sep 17 00:00:00 2001 From: Moritz Klack Date: Mon, 16 Jun 2025 09:56:44 +0200 Subject: [PATCH 46/87] Update proud-stingrays-run.md --- .changeset/proud-stingrays-run.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.changeset/proud-stingrays-run.md b/.changeset/proud-stingrays-run.md index b3ef8c85..8b835138 100644 --- a/.changeset/proud-stingrays-run.md +++ b/.changeset/proud-stingrays-run.md @@ -1,6 +1,7 @@ --- '@xyflow/react': patch '@xyflow/svelte': patch +'@xyflow/system': patch --- Add missing type exports From 9df92206bb0c9e223e25135ca9f39c41d9778564 Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 16 Jun 2025 14:29:02 +0200 Subject: [PATCH 47/87] chore(svelte/store): connection return early --- .../src/lib/store/initial-store.svelte.ts | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/svelte/src/lib/store/initial-store.svelte.ts b/packages/svelte/src/lib/store/initial-store.svelte.ts index 5dd4811a..ae09b576 100644 --- a/packages/svelte/src/lib/store/initial-store.svelte.ts +++ b/packages/svelte/src/lib/store/initial-store.svelte.ts @@ -341,18 +341,18 @@ export function getInitialStore { - if (this._connection.inProgress) { - return { - ...this._connection, - to: pointToRendererPoint(this._connection.to, [ - this.viewport.x, - this.viewport.y, - this.viewport.zoom - ]) - }; - } else { + if (!this._connection.inProgress) { return this._connection; } + + return { + ...this._connection, + to: pointToRendererPoint(this._connection.to, [ + this.viewport.x, + this.viewport.y, + this.viewport.zoom + ]) + }; }); connectionMode: ConnectionMode = $derived( signals.props.connectionMode ?? ConnectionMode.Strict From 7ec9d4dd48169c904664bc69d2286cadf8cf2eb6 Mon Sep 17 00:00:00 2001 From: Moritz Klack Date: Mon, 16 Jun 2025 14:32:51 +0200 Subject: [PATCH 48/87] Update plenty-garlics-fail.md --- .changeset/plenty-garlics-fail.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/plenty-garlics-fail.md b/.changeset/plenty-garlics-fail.md index 09f4d57d..c6bd753e 100644 --- a/.changeset/plenty-garlics-fail.md +++ b/.changeset/plenty-garlics-fail.md @@ -2,4 +2,4 @@ '@xyflow/svelte': patch --- -Fix useNodeConnections callbacks firing only when returned signal is used +Fix `useNodeConnections` callbacks firing only when returned signal is used From 7c5c14b2c504af925978a738d308c062331b1be5 Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 16 Jun 2025 17:07:40 +0200 Subject: [PATCH 49/87] feat(xyhandle): add dragThreshold #5315 --- packages/system/src/xyhandle/XYHandle.ts | 30 ++++++++++++++++++++---- packages/system/src/xyhandle/types.ts | 1 + 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/packages/system/src/xyhandle/XYHandle.ts b/packages/system/src/xyhandle/XYHandle.ts index b8a5b4d2..dffdf8a1 100644 --- a/packages/system/src/xyhandle/XYHandle.ts +++ b/packages/system/src/xyhandle/XYHandle.ts @@ -45,6 +45,7 @@ function onPointerDown( getTransform, getFromHandle, autoPanSpeed, + dragThreshold = 1, }: OnPointerDownParams ) { // when xyflow is used inside a shadow root we can't use document @@ -56,6 +57,7 @@ function onPointerDown( const clickedHandle = doc?.elementFromPoint(x, y); const handleType = getHandleType(edgeUpdaterType, clickedHandle); const containerBounds = domNode?.getBoundingClientRect(); + let connectionStarted = false; if (!containerBounds || !handleType) { return; @@ -92,10 +94,9 @@ function onPointerDown( }; const fromNodeInternal = nodeLookup.get(nodeId)!; - const from = getHandlePosition(fromNodeInternal, fromHandle, Position.Left, true); - const newConnection: ConnectionInProgress = { + let previousConnection: ConnectionInProgress = { inProgress: true, isValid: null, @@ -110,12 +111,31 @@ function onPointerDown( toNode: null, }; - updateConnection(newConnection); - let previousConnection: ConnectionInProgress = newConnection; + function startConnection() { + updateConnection(previousConnection); + onConnectStart?.(event, { nodeId, handleId, handleType }); + } - onConnectStart?.(event, { nodeId, handleId, handleType }); + if (dragThreshold === 0) { + startConnection(); + } function onPointerMove(event: MouseEvent | TouchEvent) { + if (!connectionStarted) { + const { x: evtX, y: evtY } = getEventPosition(event); + const dx = evtX - x; + const dy = evtY - y; + const nextConnectionStarted = dx * dx + dy * dy > dragThreshold * dragThreshold; + + if (!nextConnectionStarted) { + return; + } + + startConnection(); + + connectionStarted = nextConnectionStarted; + } + if (!getFromHandle() || !fromHandle) { onPointerUp(event); return; diff --git a/packages/system/src/xyhandle/types.ts b/packages/system/src/xyhandle/types.ts index d3625c9b..baa8cf0a 100644 --- a/packages/system/src/xyhandle/types.ts +++ b/packages/system/src/xyhandle/types.ts @@ -37,6 +37,7 @@ export type OnPointerDownParams = { getTransform: () => Transform; getFromHandle: () => Handle | null; autoPanSpeed?: number; + dragThreshold?: number; }; export type IsValidParams = { From a07dc81afac5468ad75ed7a5c994f16f98e4e096 Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 16 Jun 2025 17:33:44 +0200 Subject: [PATCH 50/87] feat(props): add connectionDragThreshold --- .../react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx | 1 + packages/react/src/components/Handle/index.tsx | 1 + packages/react/src/components/StoreUpdater/index.tsx | 1 + packages/react/src/container/ReactFlow/index.tsx | 2 ++ packages/react/src/store/initialState.ts | 1 + packages/react/src/types/component-props.ts | 6 ++++++ packages/react/src/types/store.ts | 1 + .../EdgeReconnectAnchor/EdgeReconnectAnchor.svelte | 4 +++- packages/svelte/src/lib/components/Handle/Handle.svelte | 3 ++- packages/svelte/src/lib/container/SvelteFlow/types.ts | 6 ++++++ packages/svelte/src/lib/store/initial-store.svelte.ts | 1 + 11 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx b/packages/react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx index 4aed1c21..04bdaebb 100644 --- a/packages/react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx +++ b/packages/react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx @@ -92,6 +92,7 @@ export function EdgeUpdateAnchors({ updateConnection, getTransform: () => store.getState().transform, getFromHandle: () => store.getState().connection.fromHandle, + dragThreshold: store.getState().connectionDragThreshold, }); }; diff --git a/packages/react/src/components/Handle/index.tsx b/packages/react/src/components/Handle/index.tsx index b2c3373e..31615f0c 100644 --- a/packages/react/src/components/Handle/index.tsx +++ b/packages/react/src/components/Handle/index.tsx @@ -149,6 +149,7 @@ function HandleComponent( getTransform: () => store.getState().transform, getFromHandle: () => store.getState().connection.fromHandle, autoPanSpeed: currentStore.autoPanSpeed, + dragThreshold: currentStore.connectionDragThreshold, }); } diff --git a/packages/react/src/components/StoreUpdater/index.tsx b/packages/react/src/components/StoreUpdater/index.tsx index 5a5878c3..1506bd48 100644 --- a/packages/react/src/components/StoreUpdater/index.tsx +++ b/packages/react/src/components/StoreUpdater/index.tsx @@ -65,6 +65,7 @@ const reactFlowFieldsToTrack = [ 'isValidConnection', 'selectNodesOnDrag', 'nodeDragThreshold', + 'connectionDragThreshold', 'onBeforeDelete', 'debug', 'autoPanSpeed', diff --git a/packages/react/src/container/ReactFlow/index.tsx b/packages/react/src/container/ReactFlow/index.tsx index f0e73f4f..33b5ee54 100644 --- a/packages/react/src/container/ReactFlow/index.tsx +++ b/packages/react/src/container/ReactFlow/index.tsx @@ -139,6 +139,7 @@ function ReactFlow( style, id, nodeDragThreshold, + connectionDragThreshold, viewport, onViewportChange, width, @@ -306,6 +307,7 @@ function ReactFlow( isValidConnection={isValidConnection} selectNodesOnDrag={selectNodesOnDrag} nodeDragThreshold={nodeDragThreshold} + connectionDragThreshold={connectionDragThreshold} onBeforeDelete={onBeforeDelete} paneClickDistance={paneClickDistance} debug={debug} diff --git a/packages/react/src/store/initialState.ts b/packages/react/src/store/initialState.ts index 2532b5ad..bfc9baaa 100644 --- a/packages/react/src/store/initialState.ts +++ b/packages/react/src/store/initialState.ts @@ -107,6 +107,7 @@ const getInitialState = ({ noPanClassName: 'nopan', nodeOrigin: storeNodeOrigin, nodeDragThreshold: 1, + connectionDragThreshold: 1, snapGrid: [15, 15], snapToGrid: false, diff --git a/packages/react/src/types/component-props.ts b/packages/react/src/types/component-props.ts index fc8b94a6..50021220 100644 --- a/packages/react/src/types/component-props.ts +++ b/packages/react/src/types/component-props.ts @@ -657,6 +657,12 @@ export interface ReactFlowProps [store.viewport.x, store.viewport.y, store.viewport.zoom], - getFromHandle: () => store.connection.fromHandle + getFromHandle: () => store.connection.fromHandle, + dragThreshold: store.connectionDragThreshold }); }; diff --git a/packages/svelte/src/lib/components/Handle/Handle.svelte b/packages/svelte/src/lib/components/Handle/Handle.svelte index 8f5675c8..d636f4cf 100644 --- a/packages/svelte/src/lib/components/Handle/Handle.svelte +++ b/packages/svelte/src/lib/components/Handle/Handle.svelte @@ -139,7 +139,8 @@ store.onconnectend?.(event, connectionState); }, getTransform: () => [store.viewport.x, store.viewport.y, store.viewport.zoom], - getFromHandle: () => store.connection.fromHandle + getFromHandle: () => store.connection.fromHandle, + dragThreshold: store.connectionDragThreshold }); } } diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts index d575db1a..9d40b5b3 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/types.ts +++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts @@ -170,6 +170,12 @@ export type SvelteFlowProps< * @default 0 */ nodeClickDistance?: number; + /** + * The threshold in pixels that the mouse must move before a connection line starts to drag. + * This is useful to prevent accidental connections when clicking on a handle. + * @default 1 + */ + connectionDragThreshold?: number; /** Minimum zoom level * @default 0.5 */ diff --git a/packages/svelte/src/lib/store/initial-store.svelte.ts b/packages/svelte/src/lib/store/initial-store.svelte.ts index ae09b576..a2d1ea68 100644 --- a/packages/svelte/src/lib/store/initial-store.svelte.ts +++ b/packages/svelte/src/lib/store/initial-store.svelte.ts @@ -286,6 +286,7 @@ export function getInitialStore Date: Mon, 16 Jun 2025 21:23:25 +0200 Subject: [PATCH 51/87] chore(examples): use connectionDragThreshold --- .../react/src/examples/CustomConnectionLine/index.tsx | 1 + .../routes/examples/custom-connection-line/+page.svelte | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/examples/react/src/examples/CustomConnectionLine/index.tsx b/examples/react/src/examples/CustomConnectionLine/index.tsx index 2e5e2969..243a4f11 100644 --- a/examples/react/src/examples/CustomConnectionLine/index.tsx +++ b/examples/react/src/examples/CustomConnectionLine/index.tsx @@ -36,6 +36,7 @@ const ConnectionLineFlow = () => { onEdgesChange={onEdgesChange} connectionLineComponent={ConnectionLine} onConnect={onConnect} + connectionDragThreshold={25} > diff --git a/examples/svelte/src/routes/examples/custom-connection-line/+page.svelte b/examples/svelte/src/routes/examples/custom-connection-line/+page.svelte index c7c6f92c..1da89e75 100644 --- a/examples/svelte/src/routes/examples/custom-connection-line/+page.svelte +++ b/examples/svelte/src/routes/examples/custom-connection-line/+page.svelte @@ -24,7 +24,14 @@
- +
From 2441bf8d97a6b72494f216915d52d5acbeefefde Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 16 Jun 2025 23:20:59 +0200 Subject: [PATCH 52/87] chore(changeset): add --- .changeset/twelve-llamas-sort.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/twelve-llamas-sort.md diff --git a/.changeset/twelve-llamas-sort.md b/.changeset/twelve-llamas-sort.md new file mode 100644 index 00000000..f9cc76c9 --- /dev/null +++ b/.changeset/twelve-llamas-sort.md @@ -0,0 +1,7 @@ +--- +'@xyflow/react': minor +'@xyflow/svelte': minor +'@xyflow/system': minor +--- + +Add connectionDragThreshold prop From f98c1c8a59ab86f4ff15c91bac6e14389dd18439 Mon Sep 17 00:00:00 2001 From: moklick Date: Tue, 17 Jun 2025 06:28:25 +0200 Subject: [PATCH 53/87] chore(svelte): cleanup --- .../components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte | 1 - packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/src/lib/components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte b/packages/svelte/src/lib/components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte index 6f500f15..de8abd03 100644 --- a/packages/svelte/src/lib/components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte +++ b/packages/svelte/src/lib/components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte @@ -5,7 +5,6 @@ import { getContext } from 'svelte'; import { EdgeLabel } from '../EdgeLabel'; import type { EdgeReconnectAnchorProps } from './types'; - import drag from '$lib/actions/drag'; let { type, diff --git a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte index 206fdc8c..847dc4e4 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte +++ b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte @@ -64,6 +64,7 @@ fitViewOptions, nodeOrigin, nodeDragThreshold, + connectionDragThreshold, minZoom, maxZoom, initialViewport, From 4ec1caeac8060c5b27b6d2c57f00dee9f0e37253 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 17 Jun 2025 10:13:11 +0200 Subject: [PATCH 54/87] reorder imports --- packages/svelte/src/lib/actions/zoom/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/svelte/src/lib/actions/zoom/index.ts b/packages/svelte/src/lib/actions/zoom/index.ts index 8a4673c7..34ead520 100644 --- a/packages/svelte/src/lib/actions/zoom/index.ts +++ b/packages/svelte/src/lib/actions/zoom/index.ts @@ -58,9 +58,9 @@ export default function zoom(domNode: Element, params: ZoomParams) { domNode, minZoom, maxZoom, - paneClickDistance, translateExtent, viewport: initialViewport, + paneClickDistance, onPanZoom, onPanZoomStart, onPanZoomEnd, From 46b2626273d6d8af4dfe6cd1705b0091280b836a Mon Sep 17 00:00:00 2001 From: moklick Date: Tue, 17 Jun 2025 12:10:20 +0200 Subject: [PATCH 55/87] fix(reconnect): use connectionDragThreshold --- .../EdgeWrapper/EdgeUpdateAnchors.tsx | 19 ++++++++++++++----- .../EdgeReconnectAnchor.svelte | 14 +++++++++----- .../components/EdgeReconnectAnchor/types.ts | 1 + 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx b/packages/react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx index 04bdaebb..c9f3b7f0 100644 --- a/packages/react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx +++ b/packages/react/src/components/EdgeWrapper/EdgeUpdateAnchors.tsx @@ -1,5 +1,12 @@ // Reconnectable edges have a anchors around their handles to reconnect the edge. -import { XYHandle, type Connection, EdgePosition, FinalConnectionState, HandleType } from '@xyflow/system'; +import { + XYHandle, + type Connection, + EdgePosition, + FinalConnectionState, + HandleType, + OnConnectStart, +} from '@xyflow/system'; import { EdgeAnchor } from '../Edges/EdgeAnchor'; import type { EdgeWrapperProps, Edge } from '../../types/edges'; @@ -60,15 +67,17 @@ export function EdgeUpdateAnchors({ } = store.getState(); const isTarget = oppositeHandle.type === 'target'; - setReconnecting(true); - onReconnectStart?.(event, edge, oppositeHandle.type); - const _onReconnectEnd = (evt: MouseEvent | TouchEvent, connectionState: FinalConnectionState) => { setReconnecting(false); onReconnectEnd?.(evt, edge, oppositeHandle.type, connectionState); }; const onConnectEdge = (connection: Connection) => onReconnect?.(edge, connection); + const _onConnectStart: OnConnectStart = (_event, params) => { + setReconnecting(true); + onReconnectStart?.(event, edge, oppositeHandle.type); + onConnectStart?.(_event, params); + }; XYHandle.onPointerDown(event.nativeEvent, { autoPanOnConnect, @@ -86,7 +95,7 @@ export function EdgeUpdateAnchors({ panBy, isValidConnection, onConnect: onConnectEdge, - onConnectStart, + onConnectStart: _onConnectStart, onConnectEnd, onReconnectEnd: _onReconnectEnd, updateConnection, diff --git a/packages/svelte/src/lib/components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte b/packages/svelte/src/lib/components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte index de8abd03..c4b95fa5 100644 --- a/packages/svelte/src/lib/components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte +++ b/packages/svelte/src/lib/components/EdgeReconnectAnchor/EdgeReconnectAnchor.svelte @@ -1,7 +1,7 @@ diff --git a/packages/svelte/src/lib/components/EdgeReconnectAnchor/types.ts b/packages/svelte/src/lib/components/EdgeReconnectAnchor/types.ts index 74ed6d6d..38b71232 100644 --- a/packages/svelte/src/lib/components/EdgeReconnectAnchor/types.ts +++ b/packages/svelte/src/lib/components/EdgeReconnectAnchor/types.ts @@ -10,4 +10,5 @@ export type EdgeReconnectAnchorProps = { position?: XYPosition; size?: number; children?: Snippet; + dragThreshold?: number; } & HTMLAttributes; From 077e459c34d15301326eef0d38bd91b233f5981c Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 18 Jun 2025 09:44:45 +0200 Subject: [PATCH 56/87] refactor(xydrag): only send position changes if changed --- packages/system/src/xydrag/XYDrag.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/system/src/xydrag/XYDrag.ts b/packages/system/src/xydrag/XYDrag.ts index 33658aad..42a399da 100644 --- a/packages/system/src/xydrag/XYDrag.ts +++ b/packages/system/src/xydrag/XYDrag.ts @@ -104,6 +104,7 @@ export function XYDrag voi let dragStarted = false; let d3Selection: Selection | null = null; let abortDrag = false; // prevents unintentional dragging on multitouch + let nodePositionsChanged = false; // public functions function update({ @@ -191,6 +192,8 @@ export function XYDrag voi dragItem.internals.positionAbsolute = positionAbsolute; } + nodePositionsChanged = nodePositionsChanged || hasChange; + if (!hasChange) { return; } @@ -294,6 +297,7 @@ export function XYDrag voi containerBounds = domNode?.getBoundingClientRect() || null; abortDrag = false; + nodePositionsChanged = false; if (nodeDragThreshold === 0) { startDrag(event); @@ -354,7 +358,10 @@ export function XYDrag voi if (dragItems.size > 0) { const { nodeLookup, updateNodePositions, onNodeDragStop, onSelectionDragStop } = getStoreItems(); - updateNodePositions(dragItems, false); + if (nodePositionsChanged) { + updateNodePositions(dragItems, false); + nodePositionsChanged = false; + } if (onDragStop || onNodeDragStop || (!nodeId && onSelectionDragStop)) { const [currentNode, currentNodes] = getEventHandlerParams({ From 9c61000cac6277ce97274cc626fa7266f82dec27 Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 18 Jun 2025 09:50:07 +0200 Subject: [PATCH 57/87] chore(changeset): add --- .changeset/stale-fireants-exist.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/stale-fireants-exist.md diff --git a/.changeset/stale-fireants-exist.md b/.changeset/stale-fireants-exist.md new file mode 100644 index 00000000..1ede9c68 --- /dev/null +++ b/.changeset/stale-fireants-exist.md @@ -0,0 +1,5 @@ +--- +'@xyflow/system': patch +--- + +Only send node position updates if positions changed From 4dd3ae6684fa3c62ee8cabd64e7631a52173c8f4 Mon Sep 17 00:00:00 2001 From: Aidan Barrett Date: Fri, 20 Jun 2025 15:02:02 +1000 Subject: [PATCH 58/87] fix(react): add missing FinalConnectionState parameter to onReconnectEnd prop types --- .changeset/tidy-hounds-divide.md | 5 +++++ packages/react/src/types/component-props.ts | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changeset/tidy-hounds-divide.md diff --git a/.changeset/tidy-hounds-divide.md b/.changeset/tidy-hounds-divide.md new file mode 100644 index 00000000..7de11f92 --- /dev/null +++ b/.changeset/tidy-hounds-divide.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': patch +--- + +Add missing `FinalConnectionState` parameter to `onReconnectEnd` prop types diff --git a/packages/react/src/types/component-props.ts b/packages/react/src/types/component-props.ts index fc8b94a6..483b727a 100644 --- a/packages/react/src/types/component-props.ts +++ b/packages/react/src/types/component-props.ts @@ -22,6 +22,7 @@ import type { SnapGrid, OnReconnect, AriaLabelConfig, + FinalConnectionState, } from '@xyflow/system'; import type { @@ -138,7 +139,7 @@ export interface ReactFlowProps void; + onReconnectEnd?: (event: MouseEvent | TouchEvent, edge: EdgeType, handleType: HandleType, connectionState: FinalConnectionState) => void; /** * Use this event handler to add interactivity to a controlled flow. * It is called on node drag, select, and move. From fd9851fab89df71eabb38fc4920d013f03eb8598 Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 23 Jun 2025 09:30:32 +0200 Subject: [PATCH 59/87] chore(libs): add tsdoc annotations --- packages/react/src/types/general.ts | 16 ++++++++++++++++ packages/svelte/src/lib/types/general.ts | 12 ++++++++++++ packages/system/src/types/general.ts | 12 ++++++++++++ 3 files changed, 40 insertions(+) diff --git a/packages/react/src/types/general.ts b/packages/react/src/types/general.ts index 80acc45c..d13d11be 100644 --- a/packages/react/src/types/general.ts +++ b/packages/react/src/types/general.ts @@ -99,6 +99,9 @@ export type OnSelectionChangeFunc ) => void; +/** + * @inline + */ export type FitViewParams = FitViewParamsBase; /** @@ -107,9 +110,18 @@ export type FitViewParams = FitViewParamsBase = FitViewOptionsBase; + +/** + * @inline + */ export type FitView = (fitViewOptions?: FitViewOptions) => Promise; + +/** + * @inline + */ export type OnInit = ( reactFlowInstance: ReactFlowInstance ) => void; @@ -209,4 +221,8 @@ export type OnBeforeDelete; +/** + * This type can be used to type the `isValidConnection` function. + * If the function returns `true`, the connection is valid and can be created. + */ export type IsValidConnection = (edge: EdgeType | Connection) => boolean; diff --git a/packages/svelte/src/lib/types/general.ts b/packages/svelte/src/lib/types/general.ts index 34474408..701496e9 100644 --- a/packages/svelte/src/lib/types/general.ts +++ b/packages/svelte/src/lib/types/general.ts @@ -21,8 +21,16 @@ export type ConnectionData = { connectionStatus: string | null; }; +/** + * @inline + */ export type FitViewOptions = FitViewOptionsBase; +/** + * This type can be used to type the `onDelete` function with a custom node and edge type. + * + * @public + */ export type OnDelete = (params: { nodes: NodeType[]; edges: EdgeType[]; @@ -40,6 +48,10 @@ export type OnBeforeDelete< EdgeType extends Edge = Edge > = OnBeforeDeleteBase; +/** + * This type can be used to type the `isValidConnection` function. + * If the function returns `true`, the connection is valid and can be created. + */ export type IsValidConnection = ( edge: EdgeType | Connection ) => boolean; diff --git a/packages/system/src/types/general.ts b/packages/system/src/types/general.ts index 367ca1d8..2e68a74d 100644 --- a/packages/system/src/types/general.ts +++ b/packages/system/src/types/general.ts @@ -17,9 +17,21 @@ export type OnMove = (event: MouseEvent | TouchEvent | null, viewport: Viewport) export type OnMoveStart = OnMove; export type OnMoveEnd = OnMove; +/** + * @inline + */ export type ZoomInOut = (options?: ViewportHelperFunctionOptions) => Promise; +/** + * @inline + */ export type ZoomTo = (zoomLevel: number, options?: ViewportHelperFunctionOptions) => Promise; +/** + * @inline + */ export type GetZoom = () => number; +/** + * @inline + */ export type GetViewport = () => Viewport; /** From 879988fb8133394aca6cb3c788a00180253c0ffb Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 23 Jun 2025 09:35:11 +0200 Subject: [PATCH 60/87] chore(libs): add tsdoc annotations --- packages/system/src/types/general.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/system/src/types/general.ts b/packages/system/src/types/general.ts index 2e68a74d..15f64262 100644 --- a/packages/system/src/types/general.ts +++ b/packages/system/src/types/general.ts @@ -13,6 +13,9 @@ import { EdgeBase } from '..'; export type Project = (position: XYPosition) => XYPosition; +/** + * This type is used to define the `onMove` handler. + */ export type OnMove = (event: MouseEvent | TouchEvent | null, viewport: Viewport) => void; export type OnMoveStart = OnMove; export type OnMoveEnd = OnMove; From c4312d8997ecdc7ef12cfa4efc1fde7131a2b950 Mon Sep 17 00:00:00 2001 From: moklick Date: Mon, 23 Jun 2025 09:35:34 +0200 Subject: [PATCH 61/87] chore(changeset): add --- .changeset/fifty-rings-perform.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/fifty-rings-perform.md diff --git a/.changeset/fifty-rings-perform.md b/.changeset/fifty-rings-perform.md new file mode 100644 index 00000000..79eb8ea5 --- /dev/null +++ b/.changeset/fifty-rings-perform.md @@ -0,0 +1,7 @@ +--- +'@xyflow/react': patch +'@xyflow/svelte': patch +'@xyflow/system': patch +--- + +Add TSDoc annotations From d8a3c0c095fb831bf32ffd76c7176a3fb19eb2b3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 23 Jun 2025 09:52:44 +0000 Subject: [PATCH 62/87] chore(packages): bump --- .changeset/fair-fans-train.md | 5 ----- .changeset/fifty-rings-perform.md | 7 ------- .changeset/perfect-ads-cough.md | 5 ----- .changeset/plenty-garlics-fail.md | 5 ----- .changeset/proud-stingrays-run.md | 7 ------- .changeset/stale-fireants-exist.md | 5 ----- .changeset/tidy-hounds-divide.md | 5 ----- packages/react/CHANGELOG.md | 13 +++++++++++++ packages/react/package.json | 2 +- packages/svelte/CHANGELOG.md | 17 +++++++++++++++++ packages/svelte/package.json | 2 +- packages/system/CHANGELOG.md | 10 ++++++++++ packages/system/package.json | 2 +- 13 files changed, 43 insertions(+), 42 deletions(-) delete mode 100644 .changeset/fair-fans-train.md delete mode 100644 .changeset/fifty-rings-perform.md delete mode 100644 .changeset/perfect-ads-cough.md delete mode 100644 .changeset/plenty-garlics-fail.md delete mode 100644 .changeset/proud-stingrays-run.md delete mode 100644 .changeset/stale-fireants-exist.md delete mode 100644 .changeset/tidy-hounds-divide.md diff --git a/.changeset/fair-fans-train.md b/.changeset/fair-fans-train.md deleted file mode 100644 index ca0aea45..00000000 --- a/.changeset/fair-fans-train.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Fix `onmove`, `onmovestart` and `onmoveend` events not firing diff --git a/.changeset/fifty-rings-perform.md b/.changeset/fifty-rings-perform.md deleted file mode 100644 index 79eb8ea5..00000000 --- a/.changeset/fifty-rings-perform.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': patch -'@xyflow/svelte': patch -'@xyflow/system': patch ---- - -Add TSDoc annotations diff --git a/.changeset/perfect-ads-cough.md b/.changeset/perfect-ads-cough.md deleted file mode 100644 index 2e06490f..00000000 --- a/.changeset/perfect-ads-cough.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Prevent proxying objects in the store diff --git a/.changeset/plenty-garlics-fail.md b/.changeset/plenty-garlics-fail.md deleted file mode 100644 index c6bd753e..00000000 --- a/.changeset/plenty-garlics-fail.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/svelte': patch ---- - -Fix `useNodeConnections` callbacks firing only when returned signal is used diff --git a/.changeset/proud-stingrays-run.md b/.changeset/proud-stingrays-run.md deleted file mode 100644 index 8b835138..00000000 --- a/.changeset/proud-stingrays-run.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': patch -'@xyflow/svelte': patch -'@xyflow/system': patch ---- - -Add missing type exports diff --git a/.changeset/stale-fireants-exist.md b/.changeset/stale-fireants-exist.md deleted file mode 100644 index 1ede9c68..00000000 --- a/.changeset/stale-fireants-exist.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/system': patch ---- - -Only send node position updates if positions changed diff --git a/.changeset/tidy-hounds-divide.md b/.changeset/tidy-hounds-divide.md deleted file mode 100644 index 7de11f92..00000000 --- a/.changeset/tidy-hounds-divide.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/react': patch ---- - -Add missing `FinalConnectionState` parameter to `onReconnectEnd` prop types diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 64db3c57..17dc98fb 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,18 @@ # @xyflow/react +## 12.7.1 + +### Patch Changes + +- [#5354](https://github.com/xyflow/xyflow/pull/5354) [`c4312d89`](https://github.com/xyflow/xyflow/commit/c4312d8997ecdc7ef12cfa4efc1fde7131a2b950) Thanks [@moklick](https://github.com/moklick)! - Add TSDoc annotations + +- [#5333](https://github.com/xyflow/xyflow/pull/5333) [`3d7e8b6b`](https://github.com/xyflow/xyflow/commit/3d7e8b6bb10001ee84d79ca4f6a9fd0053c4a276) Thanks [@peterkogo](https://github.com/peterkogo)! - Add missing type exports + +- [#5353](https://github.com/xyflow/xyflow/pull/5353) [`4dd3ae66`](https://github.com/xyflow/xyflow/commit/4dd3ae6684fa3c62ee8cabd64e7631a52173c8f4) Thanks [@aidanbarrett](https://github.com/aidanbarrett)! - Add missing `FinalConnectionState` parameter to `onReconnectEnd` prop types + +- Updated dependencies [[`c4312d89`](https://github.com/xyflow/xyflow/commit/c4312d8997ecdc7ef12cfa4efc1fde7131a2b950), [`3d7e8b6b`](https://github.com/xyflow/xyflow/commit/3d7e8b6bb10001ee84d79ca4f6a9fd0053c4a276), [`9c61000c`](https://github.com/xyflow/xyflow/commit/9c61000cac6277ce97274cc626fa7266f82dec27)]: + - @xyflow/system@0.0.63 + ## 12.7.0 ### Minor Changes diff --git a/packages/react/package.json b/packages/react/package.json index 321fa20c..b07d1a90 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/react", - "version": "12.7.0", + "version": "12.7.1", "description": "React Flow - A highly customizable React library for building node-based editors and interactive flow charts.", "keywords": [ "react", diff --git a/packages/svelte/CHANGELOG.md b/packages/svelte/CHANGELOG.md index d695cb8d..2fe1c17f 100644 --- a/packages/svelte/CHANGELOG.md +++ b/packages/svelte/CHANGELOG.md @@ -1,5 +1,22 @@ # @xyflow/svelte +## 1.1.1 + +### Patch Changes + +- [#5339](https://github.com/xyflow/xyflow/pull/5339) [`56ebde81`](https://github.com/xyflow/xyflow/commit/56ebde811555775a0a9e2b2f88d35d9511f90c95) Thanks [@jrmajor](https://github.com/jrmajor)! - Fix `onmove`, `onmovestart` and `onmoveend` events not firing + +- [#5354](https://github.com/xyflow/xyflow/pull/5354) [`c4312d89`](https://github.com/xyflow/xyflow/commit/c4312d8997ecdc7ef12cfa4efc1fde7131a2b950) Thanks [@moklick](https://github.com/moklick)! - Add TSDoc annotations + +- [#5335](https://github.com/xyflow/xyflow/pull/5335) [`8474ba49`](https://github.com/xyflow/xyflow/commit/8474ba49cc1f48b6758a728fe4371f38260952e5) Thanks [@peterkogo](https://github.com/peterkogo)! - Prevent proxying objects in the store + +- [#5336](https://github.com/xyflow/xyflow/pull/5336) [`d6db97c5`](https://github.com/xyflow/xyflow/commit/d6db97c53597db0eee8edd19beaf20b83f89fabf) Thanks [@peterkogo](https://github.com/peterkogo)! - Fix `useNodeConnections` callbacks firing only when returned signal is used + +- [#5333](https://github.com/xyflow/xyflow/pull/5333) [`3d7e8b6b`](https://github.com/xyflow/xyflow/commit/3d7e8b6bb10001ee84d79ca4f6a9fd0053c4a276) Thanks [@peterkogo](https://github.com/peterkogo)! - Add missing type exports + +- Updated dependencies [[`c4312d89`](https://github.com/xyflow/xyflow/commit/c4312d8997ecdc7ef12cfa4efc1fde7131a2b950), [`3d7e8b6b`](https://github.com/xyflow/xyflow/commit/3d7e8b6bb10001ee84d79ca4f6a9fd0053c4a276), [`9c61000c`](https://github.com/xyflow/xyflow/commit/9c61000cac6277ce97274cc626fa7266f82dec27)]: + - @xyflow/system@0.0.63 + ## 1.1.0 ### Minor Changes diff --git a/packages/svelte/package.json b/packages/svelte/package.json index c7494d86..c4a4a453 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/svelte", - "version": "1.1.0", + "version": "1.1.1", "description": "Svelte Flow - A highly customizable Svelte library for building node-based editors, workflow systems, diagrams and more.", "keywords": [ "svelte", diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index d04007ec..ebccef4e 100644 --- a/packages/system/CHANGELOG.md +++ b/packages/system/CHANGELOG.md @@ -1,5 +1,15 @@ # @xyflow/system +## 0.0.63 + +### Patch Changes + +- [#5354](https://github.com/xyflow/xyflow/pull/5354) [`c4312d89`](https://github.com/xyflow/xyflow/commit/c4312d8997ecdc7ef12cfa4efc1fde7131a2b950) Thanks [@moklick](https://github.com/moklick)! - Add TSDoc annotations + +- [#5333](https://github.com/xyflow/xyflow/pull/5333) [`3d7e8b6b`](https://github.com/xyflow/xyflow/commit/3d7e8b6bb10001ee84d79ca4f6a9fd0053c4a276) Thanks [@peterkogo](https://github.com/peterkogo)! - Add missing type exports + +- [#5350](https://github.com/xyflow/xyflow/pull/5350) [`9c61000c`](https://github.com/xyflow/xyflow/commit/9c61000cac6277ce97274cc626fa7266f82dec27) Thanks [@moklick](https://github.com/moklick)! - Only send node position updates if positions changed + ## 0.0.62 ### Patch Changes diff --git a/packages/system/package.json b/packages/system/package.json index 904d1e22..fa637488 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/system", - "version": "0.0.62", + "version": "0.0.63", "description": "xyflow core system that powers React Flow and Svelte Flow.", "keywords": [ "node-based UI", From 04ff28dddc573d08c591478257a03048f72038b9 Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 24 Jun 2025 10:59:06 +0200 Subject: [PATCH 63/87] Elevate edges regardless of selected nodes --- packages/system/src/utils/edges/general.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/system/src/utils/edges/general.ts b/packages/system/src/utils/edges/general.ts index c094ab0b..db56b333 100644 --- a/packages/system/src/utils/edges/general.ts +++ b/packages/system/src/utils/edges/general.ts @@ -37,14 +37,9 @@ export function getElevatedEdgeZIndex({ zIndex = 0, elevateOnSelect = false, }: GetEdgeZIndexParams): number { - if (!elevateOnSelect) { - return zIndex; - } + const elevatedZ = Math.max(sourceNode.internals.z, targetNode.internals.z, elevateOnSelect && selected ? 1000 : 0); - const edgeOrConnectedNodeSelected = selected || targetNode.selected || sourceNode.selected; - const selectedZIndex = Math.max(sourceNode.internals.z || 0, targetNode.internals.z || 0, 1000); - - return zIndex + (edgeOrConnectedNodeSelected ? selectedZIndex : 0); + return zIndex + elevatedZ; } type IsEdgeVisibleParams = { From cf5597b8451e127db2ea3d2149634492c03eb57d Mon Sep 17 00:00:00 2001 From: peterkogo Date: Tue, 24 Jun 2025 10:59:23 +0200 Subject: [PATCH 64/87] Elevate child nodes +1 over the parent --- packages/system/src/utils/store.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/system/src/utils/store.ts b/packages/system/src/utils/store.ts index d94a7dff..1bfd029d 100644 --- a/packages/system/src/utils/store.ts +++ b/packages/system/src/utils/store.ts @@ -232,7 +232,7 @@ function calculateChildXYZ( return { x: absolutePosition.x, y: absolutePosition.y, - z: parentZ > childZ ? parentZ : childZ, + z: parentZ >= childZ ? parentZ + 1 : childZ, }; } From 31b576ebe71f13b9361f09c13fd3f3f3e41cceb2 Mon Sep 17 00:00:00 2001 From: moklick Date: Tue, 24 Jun 2025 19:58:10 +0200 Subject: [PATCH 65/87] refactor(panel): simplify / fix panel pointer events #5356 --- packages/react/src/components/Panel/index.tsx | 13 +------------ .../svelte/src/lib/container/Panel/Panel.svelte | 10 +--------- packages/system/src/styles/init.css | 4 ++++ 3 files changed, 6 insertions(+), 21 deletions(-) diff --git a/packages/react/src/components/Panel/index.tsx b/packages/react/src/components/Panel/index.tsx index 16fe7841..77fc1869 100644 --- a/packages/react/src/components/Panel/index.tsx +++ b/packages/react/src/components/Panel/index.tsx @@ -2,9 +2,6 @@ import { HTMLAttributes, forwardRef } from 'react'; import cc from 'classcat'; import type { PanelPosition } from '@xyflow/system'; -import { useStore } from '../../hooks/useStore'; -import type { ReactFlowState } from '../../types'; - /** * @expand */ @@ -16,8 +13,6 @@ export type PanelProps = HTMLAttributes & { position?: PanelPosition; }; -const selector = (s: ReactFlowState) => (s.userSelectionActive ? 'none' : 'all'); - /** * The `` component helps you position content above the viewport. * It is used internally by the [``](/api-reference/components/minimap) @@ -45,16 +40,10 @@ const selector = (s: ReactFlowState) => (s.userSelectionActive ? 'none' : 'all') */ export const Panel = forwardRef( ({ position = 'top-left', children, className, style, ...rest }, ref) => { - const pointerEvents = useStore(selector); const positionClasses = `${position}`.split('-'); return ( -
+
{children}
); diff --git a/packages/svelte/src/lib/container/Panel/Panel.svelte b/packages/svelte/src/lib/container/Panel/Panel.svelte index 314da233..feabcea2 100644 --- a/packages/svelte/src/lib/container/Panel/Panel.svelte +++ b/packages/svelte/src/lib/container/Panel/Panel.svelte @@ -1,19 +1,11 @@ -
+
{@render children?.()}
diff --git a/packages/system/src/styles/init.css b/packages/system/src/styles/init.css index 7b4b92be..2d342000 100644 --- a/packages/system/src/styles/init.css +++ b/packages/system/src/styles/init.css @@ -265,6 +265,10 @@ svg.xy-flow__connectionline { pointer-events: all; } +.xy-flow__pane.selection .xy-flow__panel { + pointer-events: none; +} + .xy-flow__panel { position: absolute; z-index: 5; From 72dc1d602110947e3db83c37b9a9125ee85cf4bc Mon Sep 17 00:00:00 2001 From: moklick Date: Tue, 24 Jun 2025 20:02:26 +0200 Subject: [PATCH 66/87] chore(changeset): add --- .changeset/friendly-pears-float.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .changeset/friendly-pears-float.md diff --git a/.changeset/friendly-pears-float.md b/.changeset/friendly-pears-float.md new file mode 100644 index 00000000..d12d0450 --- /dev/null +++ b/.changeset/friendly-pears-float.md @@ -0,0 +1,7 @@ +--- +'@xyflow/react': patch +'@xyflow/svelte': patch +'@xyflow/system': patch +--- + +Remove pointer events from Panel via CSS From f30c68a2cf31d4a44eb9490864807471b5d5ad20 Mon Sep 17 00:00:00 2001 From: Moritz Klack Date: Tue, 24 Jun 2025 22:06:17 +0200 Subject: [PATCH 67/87] Update friendly-pears-float.md --- .changeset/friendly-pears-float.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/friendly-pears-float.md b/.changeset/friendly-pears-float.md index d12d0450..5f99faac 100644 --- a/.changeset/friendly-pears-float.md +++ b/.changeset/friendly-pears-float.md @@ -4,4 +4,4 @@ '@xyflow/system': patch --- -Remove pointer events from Panel via CSS +Remove pointer events from Panel via CSS while a selection gets dragged From e912ae062b8c8328a996a62c0c2d24f67b49ed75 Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 25 Jun 2025 10:09:18 +0200 Subject: [PATCH 68/87] chore(system): add proper readme --- packages/system/README.md | 67 ++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 26 deletions(-) diff --git a/packages/system/README.md b/packages/system/README.md index 611e725d..da2f2e67 100644 --- a/packages/system/README.md +++ b/packages/system/README.md @@ -1,47 +1,62 @@ # @xyflow/system -Core system that powers React Flow and Svelte Flow. +Core system utilities powering [React Flow](https://reactflow.dev) and [Svelte Flow](https://svelteflow.dev). -## Installation +> **Note:** This package is designed as a shared vanilla utility layer for React Flow and Svelte Flow. It is not intended for use with unrelated libraries. -```sh -npm install @xyflow/system +## Installation + +```sh +pnpm add @xyflow/system ``` -## What is this package about? +## What is this package? -The @xyflow/system package was created to have a place for vanilla utils for React Flow and Svelte Flow. The package exports helpers for edge creation, pan and zoom, dragging of nodes, general utils and lots of types. All the helpers are specifically built for React Flow and Svelte Flow so it's probably not too interesting to use them with other libraries. +`@xyflow/system` provides core, framework-agnostic helpers and types for building node-based editors and flow diagrams. It contains the logic and utilities that are shared between React Flow and Svelte Flow, such as edge path calculations, pan/zoom, node dragging, and more. -### XYPanZoom +## Features -Adds zoom and pan for the pane. +- **Pan & Zoom (`XYPanZoom`)**: Utilities for adding interactive pan and zoom to your canvas. +- **Dragging (`XYDrag`)**: Helpers for node and selection dragging. +- **Handles/Connections (`XYHandle`)**: Logic for drawing and managing connection lines between nodes. +- **Minimap (`XYMiniMap`)**: Interactive minimap utilities for overview and navigation. +- **Edge Utilities**: Functions for SVG edge path creation (bezier, straight, step, smoothstep, etc.). +- **Store Utilities**: Helpers for managing and updating flow state. +- **DOM Utilities**: Functions for DOM measurements and interactions. +- **Marker Utilities**: Helpers for SVG markers on edges. +- **Graph Utilities**: Functions for working with nodes, edges, and graph structure. +- **General Utilities**: Miscellaneous helpers used throughout the system. +- **Types & Constants**: Shared types, enums, and constants for consistent data structures. -### XYDrag +## Usage -Adds drag for nodes and selection. +You can import any utility, type, or helper directly from the package: -### XYHandle +```ts +import { getBezierPath, getConnectedEdges, Position, XYPanZoom } from '@xyflow/system'; +``` -Adds connection line drawing. +### Example: Bezier Edge Path Creation -### XYMinimap +```ts +import { getBezierPath, Position } from '@xyflow/system'; -Adds interactive mini map (zoom and pan). +const [path, labelX, labelY] = getBezierPath({ + sourceX: 0, + sourceY: 20, + sourcePosition: Position.Right, + targetX: 150, + targetY: 100, + targetPosition: Position.Left, +}); +``` -### Edge utils +## API Reference -Util function for SVG edge path creating. +There is currently no dedicated API documentation for this package. For details on available utilities, types, and helpers, please refer to the [source code](./src) or check out the [React Flow documentation](https://reactflow.dev/api-reference/) where we are documenting a lot of stuff from this package. -### Store utils +## Contributing -Helpers for store functions. - -### Dom utils - -### Marker utils - -### Graph utils - -### General utils +See the main [xyflow repository](https://github.com/xyflow/xyflow) for contribution guidelines. From 323f07dd010a41ac5f0a70bf04490c6f9994d3ed Mon Sep 17 00:00:00 2001 From: peterkogo Date: Wed, 25 Jun 2025 15:43:01 +0200 Subject: [PATCH 69/87] revert some default behaviour from getElevatedZINdex --- packages/system/src/utils/edges/general.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/packages/system/src/utils/edges/general.ts b/packages/system/src/utils/edges/general.ts index db56b333..8562494b 100644 --- a/packages/system/src/utils/edges/general.ts +++ b/packages/system/src/utils/edges/general.ts @@ -34,12 +34,21 @@ export function getElevatedEdgeZIndex({ sourceNode, targetNode, selected = false, - zIndex = 0, + zIndex, elevateOnSelect = false, }: GetEdgeZIndexParams): number { - const elevatedZ = Math.max(sourceNode.internals.z, targetNode.internals.z, elevateOnSelect && selected ? 1000 : 0); + if (zIndex !== undefined) { + return zIndex; + } - return zIndex + elevatedZ; + const edgeZ = elevateOnSelect && selected ? 1000 : 0; + + const nodeZ = Math.max( + sourceNode.parentId ? sourceNode.internals.z : 0, + targetNode.parentId ? targetNode.internals.z : 0 + ); + + return edgeZ + nodeZ; } type IsEdgeVisibleParams = { From a7abcc051713063943b13d6fa4e73cab80d5e6fc Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 26 Jun 2025 12:12:13 +0200 Subject: [PATCH 70/87] test(edges): zindex in sub flows --- examples/react/src/examples/Subflow/index.tsx | 4 +-- .../react/src/generic-tests/edges/general.ts | 33 +++++++++++++++++++ .../svelte/src/generic-tests/edges/general.ts | 33 +++++++++++++++++++ packages/system/src/utils/edges/general.ts | 5 +++ tests/playwright/e2e/edges.spec.ts | 21 ++++++++++++ 5 files changed, 94 insertions(+), 2 deletions(-) diff --git a/examples/react/src/examples/Subflow/index.tsx b/examples/react/src/examples/Subflow/index.tsx index 0f59a97e..82d0d413 100644 --- a/examples/react/src/examples/Subflow/index.tsx +++ b/examples/react/src/examples/Subflow/index.tsx @@ -152,10 +152,10 @@ const initialEdges: Edge[] = [ }, }, { id: 'e1-3', source: '1', target: '3' }, - { id: 'e3-4', source: '3', target: '4', zIndex: 100 }, + { id: 'e3-4', source: '3', target: '4' }, { id: 'e3-4b', source: '3', target: '4b' }, { id: 'e4a-4b1', source: '4a', target: '4b1' }, - { id: 'e4a-4b2', source: '4a', target: '4b2', zIndex: 100 }, + { id: 'e4a-4b2', source: '4a', target: '4b2' }, { id: 'e4b1-4b2', source: '4b1', target: '4b2' }, ]; diff --git a/examples/react/src/generic-tests/edges/general.ts b/examples/react/src/generic-tests/edges/general.ts index d00c57cc..dbdaec24 100644 --- a/examples/react/src/generic-tests/edges/general.ts +++ b/examples/react/src/generic-tests/edges/general.ts @@ -62,6 +62,29 @@ export default { data: { label: '11' }, position: { x: 100, y: 500 }, }, + { + id: '12', + data: { label: '12' }, + position: { x: 100, y: 600 }, + width: 200, + height: 100, + }, + { + id: '12-a', + parentId: '12', + data: { label: '12-a' }, + position: { x: 10, y: 20 }, + width: 50, + height: 50, + }, + { + id: '12-b', + parentId: '12', + data: { label: '12-b' }, + position: { x: 140, y: 20 }, + width: 50, + height: 50, + }, // { // id: '12', // data: { label: '12' }, @@ -145,6 +168,16 @@ export default { markerEnd: { type: MarkerType.Arrow }, markerStart: { type: MarkerType.ArrowClosed }, }, + { + id: 'subflow-edge', + source: '11', + target: '12-a', + }, + { + id: 'subflow-edge-2', + source: '12-a', + target: '12-b', + }, // { // id: 'updatable', // source: '9', diff --git a/examples/svelte/src/generic-tests/edges/general.ts b/examples/svelte/src/generic-tests/edges/general.ts index e17da374..cebbccd8 100644 --- a/examples/svelte/src/generic-tests/edges/general.ts +++ b/examples/svelte/src/generic-tests/edges/general.ts @@ -61,6 +61,29 @@ export default { id: '11', data: { label: '11' }, position: { x: 100, y: 500 } + }, + { + id: '12', + data: { label: '12' }, + position: { x: 100, y: 600 }, + width: 200, + height: 100 + }, + { + id: '12-a', + parentId: '12', + data: { label: '12-a' }, + position: { x: 10, y: 20 }, + width: 50, + height: 50 + }, + { + id: '12-b', + parentId: '12', + data: { label: '12-b' }, + position: { x: 140, y: 20 }, + width: 50, + height: 50 } // { // id: '12', @@ -142,6 +165,16 @@ export default { label: 'markers', markerEnd: { type: MarkerType.Arrow }, markerStart: { type: MarkerType.ArrowClosed } + }, + { + id: 'subflow-edge', + source: '11', + target: '12-a' + }, + { + id: 'subflow-edge-2', + source: '12-a', + target: '12-b' } // { // id: 'updatable', diff --git a/packages/system/src/utils/edges/general.ts b/packages/system/src/utils/edges/general.ts index 8562494b..c88c7272 100644 --- a/packages/system/src/utils/edges/general.ts +++ b/packages/system/src/utils/edges/general.ts @@ -30,6 +30,11 @@ export type GetEdgeZIndexParams = { elevateOnSelect?: boolean; }; +/** + * Returns the z-index for an edge based on the node it connects and whether it is selected. + * By default, edges are rendered below nodes. This behaviour is different for edges that are + * connected to nodes with a parent, as they are rendered above the parent node. + */ export function getElevatedEdgeZIndex({ sourceNode, targetNode, diff --git a/tests/playwright/e2e/edges.spec.ts b/tests/playwright/e2e/edges.spec.ts index 768f056c..6e26c8ca 100644 --- a/tests/playwright/e2e/edges.spec.ts +++ b/tests/playwright/e2e/edges.spec.ts @@ -153,5 +153,26 @@ test.describe('Edges', () => { await expect(edge).toHaveAttribute('marker-start', "url('#1__type=arrowclosed')"); await expect(edge).toHaveAttribute('marker-end', "url('#1__type=arrow')"); }); + + test('z-index', async ({ page }) => { + const svg = page.locator('svg', { has: page.locator('[data-id="edge-with-class"]') }); + + await expect(svg).toBeAttached(); + await expect(svg).toHaveCSS('z-index', '0'); + }); + + test('sub flow: normal node to child node, z-index', async ({ page }) => { + const svg = page.locator('svg', { has: page.locator('[data-id="subflow-edge"]') }); + + await expect(svg).toBeAttached(); + await expect(svg).toHaveCSS('z-index', '1'); + }); + + test('sub flow: child node to child node, z-index', async ({ page }) => { + const svg = page.locator('svg', { has: page.locator('[data-id="subflow-edge-2"]') }); + + await expect(svg).toBeAttached(); + await expect(svg).toHaveCSS('z-index', '1'); + }); }); }); From 90e9247adbdfa9d06db97e1d0d895e35c960551c Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 26 Jun 2025 12:19:43 +0200 Subject: [PATCH 71/87] chore(changeset): add --- .changeset/real-ties-travel.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/real-ties-travel.md diff --git a/.changeset/real-ties-travel.md b/.changeset/real-ties-travel.md new file mode 100644 index 00000000..14e29173 --- /dev/null +++ b/.changeset/real-ties-travel.md @@ -0,0 +1,5 @@ +--- +'@xyflow/system': patch +--- + +Render edges above nodes when they are within a subflow From 82448288821fc694dcff62a43ad73f1b1f9c536b Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 26 Jun 2025 14:48:41 +0200 Subject: [PATCH 72/87] chore(changesets): update --- .changeset/real-ties-travel.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.changeset/real-ties-travel.md b/.changeset/real-ties-travel.md index 14e29173..892ffa48 100644 --- a/.changeset/real-ties-travel.md +++ b/.changeset/real-ties-travel.md @@ -1,4 +1,6 @@ --- +'@xyflow/react': patch +'@xyflow/svelte': patch '@xyflow/system': patch --- From 237d2d83c82cfd0753006b99b8ded8063a14d3a9 Mon Sep 17 00:00:00 2001 From: moklick Date: Thu, 26 Jun 2025 15:03:27 +0200 Subject: [PATCH 73/87] chore(store-updater): cleanup --- packages/react/src/components/StoreUpdater/index.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/react/src/components/StoreUpdater/index.tsx b/packages/react/src/components/StoreUpdater/index.tsx index 1506bd48..73b6000a 100644 --- a/packages/react/src/components/StoreUpdater/index.tsx +++ b/packages/react/src/components/StoreUpdater/index.tsx @@ -156,13 +156,11 @@ export function StoreUpdater Date: Thu, 26 Jun 2025 15:04:25 +0200 Subject: [PATCH 74/87] chore(changesets): add --- .changeset/fifty-cheetahs-repair.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/fifty-cheetahs-repair.md diff --git a/.changeset/fifty-cheetahs-repair.md b/.changeset/fifty-cheetahs-repair.md new file mode 100644 index 00000000..2d144b6b --- /dev/null +++ b/.changeset/fifty-cheetahs-repair.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': patch +--- + +Cleanup store updater From 915691f35c43ecff742230f1a79a7b4a65d878a6 Mon Sep 17 00:00:00 2001 From: moklick Date: Fri, 27 Jun 2025 09:38:28 +0200 Subject: [PATCH 75/87] chore(changesets): update --- .changeset/twelve-llamas-sort.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/twelve-llamas-sort.md b/.changeset/twelve-llamas-sort.md index f9cc76c9..1d5ce679 100644 --- a/.changeset/twelve-llamas-sort.md +++ b/.changeset/twelve-llamas-sort.md @@ -1,7 +1,7 @@ --- '@xyflow/react': minor '@xyflow/svelte': minor -'@xyflow/system': minor +'@xyflow/system': patch --- Add connectionDragThreshold prop From 832c72c3937d606daefcf15a000482af1f45f0af Mon Sep 17 00:00:00 2001 From: moklick Date: Fri, 27 Jun 2025 09:42:24 +0200 Subject: [PATCH 76/87] chore(changesets): update --- .changeset/real-ties-travel.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/real-ties-travel.md b/.changeset/real-ties-travel.md index 892ffa48..afa29287 100644 --- a/.changeset/real-ties-travel.md +++ b/.changeset/real-ties-travel.md @@ -1,6 +1,6 @@ --- -'@xyflow/react': patch -'@xyflow/svelte': patch +'@xyflow/react': minor +'@xyflow/svelte': minor '@xyflow/system': patch --- From bce175f5f03579d6b5cb5aefdb0ac655a9897db8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 27 Jun 2025 07:43:39 +0000 Subject: [PATCH 77/87] chore(packages): bump --- .changeset/fifty-cheetahs-repair.md | 5 ----- .changeset/friendly-pears-float.md | 7 ------- .changeset/real-ties-travel.md | 7 ------- .changeset/twelve-llamas-sort.md | 7 ------- packages/react/CHANGELOG.md | 17 +++++++++++++++++ packages/react/package.json | 2 +- packages/svelte/CHANGELOG.md | 15 +++++++++++++++ packages/svelte/package.json | 2 +- packages/system/CHANGELOG.md | 10 ++++++++++ packages/system/package.json | 2 +- 10 files changed, 45 insertions(+), 29 deletions(-) delete mode 100644 .changeset/fifty-cheetahs-repair.md delete mode 100644 .changeset/friendly-pears-float.md delete mode 100644 .changeset/real-ties-travel.md delete mode 100644 .changeset/twelve-llamas-sort.md diff --git a/.changeset/fifty-cheetahs-repair.md b/.changeset/fifty-cheetahs-repair.md deleted file mode 100644 index 2d144b6b..00000000 --- a/.changeset/fifty-cheetahs-repair.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/react': patch ---- - -Cleanup store updater diff --git a/.changeset/friendly-pears-float.md b/.changeset/friendly-pears-float.md deleted file mode 100644 index 5f99faac..00000000 --- a/.changeset/friendly-pears-float.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': patch -'@xyflow/svelte': patch -'@xyflow/system': patch ---- - -Remove pointer events from Panel via CSS while a selection gets dragged diff --git a/.changeset/real-ties-travel.md b/.changeset/real-ties-travel.md deleted file mode 100644 index afa29287..00000000 --- a/.changeset/real-ties-travel.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': minor -'@xyflow/svelte': minor -'@xyflow/system': patch ---- - -Render edges above nodes when they are within a subflow diff --git a/.changeset/twelve-llamas-sort.md b/.changeset/twelve-llamas-sort.md deleted file mode 100644 index 1d5ce679..00000000 --- a/.changeset/twelve-llamas-sort.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@xyflow/react': minor -'@xyflow/svelte': minor -'@xyflow/system': patch ---- - -Add connectionDragThreshold prop diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index 17dc98fb..e069134f 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,22 @@ # @xyflow/react +## 12.8.0 + +### Minor Changes + +- [#5361](https://github.com/xyflow/xyflow/pull/5361) [`90e9247a`](https://github.com/xyflow/xyflow/commit/90e9247adbdfa9d06db97e1d0d895e35c960551c) Thanks [@peterkogo](https://github.com/peterkogo)! - Render edges above nodes when they are within a subflow + +- [#5344](https://github.com/xyflow/xyflow/pull/5344) [`2441bf8d`](https://github.com/xyflow/xyflow/commit/2441bf8d97a6b72494f216915d52d5acbeefefde) Thanks [@moklick](https://github.com/moklick)! - Add connectionDragThreshold prop + +### Patch Changes + +- [#5368](https://github.com/xyflow/xyflow/pull/5368) [`445017ed`](https://github.com/xyflow/xyflow/commit/445017ed6fdedee4b39a0eaeb1cbbe0155f9a037) Thanks [@moklick](https://github.com/moklick)! - Cleanup store updater + +- [#5362](https://github.com/xyflow/xyflow/pull/5362) [`72dc1d60`](https://github.com/xyflow/xyflow/commit/72dc1d602110947e3db83c37b9a9125ee85cf4bc) Thanks [@moklick](https://github.com/moklick)! - Remove pointer events from Panel via CSS while a selection gets dragged + +- Updated dependencies [[`72dc1d60`](https://github.com/xyflow/xyflow/commit/72dc1d602110947e3db83c37b9a9125ee85cf4bc), [`90e9247a`](https://github.com/xyflow/xyflow/commit/90e9247adbdfa9d06db97e1d0d895e35c960551c), [`2441bf8d`](https://github.com/xyflow/xyflow/commit/2441bf8d97a6b72494f216915d52d5acbeefefde)]: + - @xyflow/system@0.0.64 + ## 12.7.1 ### Patch Changes diff --git a/packages/react/package.json b/packages/react/package.json index b07d1a90..36ddae08 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/react", - "version": "12.7.1", + "version": "12.8.0", "description": "React Flow - A highly customizable React library for building node-based editors and interactive flow charts.", "keywords": [ "react", diff --git a/packages/svelte/CHANGELOG.md b/packages/svelte/CHANGELOG.md index 2fe1c17f..116f0b56 100644 --- a/packages/svelte/CHANGELOG.md +++ b/packages/svelte/CHANGELOG.md @@ -1,5 +1,20 @@ # @xyflow/svelte +## 1.2.0 + +### Minor Changes + +- [#5361](https://github.com/xyflow/xyflow/pull/5361) [`90e9247a`](https://github.com/xyflow/xyflow/commit/90e9247adbdfa9d06db97e1d0d895e35c960551c) Thanks [@peterkogo](https://github.com/peterkogo)! - Render edges above nodes when they are within a subflow + +- [#5344](https://github.com/xyflow/xyflow/pull/5344) [`2441bf8d`](https://github.com/xyflow/xyflow/commit/2441bf8d97a6b72494f216915d52d5acbeefefde) Thanks [@moklick](https://github.com/moklick)! - Add connectionDragThreshold prop + +### Patch Changes + +- [#5362](https://github.com/xyflow/xyflow/pull/5362) [`72dc1d60`](https://github.com/xyflow/xyflow/commit/72dc1d602110947e3db83c37b9a9125ee85cf4bc) Thanks [@moklick](https://github.com/moklick)! - Remove pointer events from Panel via CSS while a selection gets dragged + +- Updated dependencies [[`72dc1d60`](https://github.com/xyflow/xyflow/commit/72dc1d602110947e3db83c37b9a9125ee85cf4bc), [`90e9247a`](https://github.com/xyflow/xyflow/commit/90e9247adbdfa9d06db97e1d0d895e35c960551c), [`2441bf8d`](https://github.com/xyflow/xyflow/commit/2441bf8d97a6b72494f216915d52d5acbeefefde)]: + - @xyflow/system@0.0.64 + ## 1.1.1 ### Patch Changes diff --git a/packages/svelte/package.json b/packages/svelte/package.json index c4a4a453..7859df64 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/svelte", - "version": "1.1.1", + "version": "1.2.0", "description": "Svelte Flow - A highly customizable Svelte library for building node-based editors, workflow systems, diagrams and more.", "keywords": [ "svelte", diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index ebccef4e..4f4e4251 100644 --- a/packages/system/CHANGELOG.md +++ b/packages/system/CHANGELOG.md @@ -1,5 +1,15 @@ # @xyflow/system +## 0.0.64 + +### Patch Changes + +- [#5362](https://github.com/xyflow/xyflow/pull/5362) [`72dc1d60`](https://github.com/xyflow/xyflow/commit/72dc1d602110947e3db83c37b9a9125ee85cf4bc) Thanks [@moklick](https://github.com/moklick)! - Remove pointer events from Panel via CSS while a selection gets dragged + +- [#5361](https://github.com/xyflow/xyflow/pull/5361) [`90e9247a`](https://github.com/xyflow/xyflow/commit/90e9247adbdfa9d06db97e1d0d895e35c960551c) Thanks [@peterkogo](https://github.com/peterkogo)! - Render edges above nodes when they are within a subflow + +- [#5344](https://github.com/xyflow/xyflow/pull/5344) [`2441bf8d`](https://github.com/xyflow/xyflow/commit/2441bf8d97a6b72494f216915d52d5acbeefefde) Thanks [@moklick](https://github.com/moklick)! - Add connectionDragThreshold prop + ## 0.0.63 ### Patch Changes diff --git a/packages/system/package.json b/packages/system/package.json index fa637488..469019ff 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/system", - "version": "0.0.63", + "version": "0.0.64", "description": "xyflow core system that powers React Flow and Svelte Flow.", "keywords": [ "node-based UI", From 4a3af6da2f2a3166683fcf7d6afde2d5b6ae476a Mon Sep 17 00:00:00 2001 From: moklick Date: Fri, 27 Jun 2025 21:09:02 +0200 Subject: [PATCH 78/87] fix(xyhandle): only fire end events when connection started #5315 --- packages/system/src/xyhandle/XYHandle.ts | 38 +++++++++++++----------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/packages/system/src/xyhandle/XYHandle.ts b/packages/system/src/xyhandle/XYHandle.ts index dffdf8a1..f6326ede 100644 --- a/packages/system/src/xyhandle/XYHandle.ts +++ b/packages/system/src/xyhandle/XYHandle.ts @@ -112,6 +112,7 @@ function onPointerDown( }; function startConnection() { + connectionStarted = true; updateConnection(previousConnection); onConnectStart?.(event, { nodeId, handleId, handleType }); } @@ -132,8 +133,6 @@ function onPointerDown( } startConnection(); - - connectionStarted = nextConnectionStarted; } if (!getFromHandle() || !fromHandle) { @@ -208,24 +207,27 @@ function onPointerDown( } function onPointerUp(event: MouseEvent | TouchEvent) { - if ((closestHandle || handleDomNode) && connection && isValid) { - onConnect?.(connection); - } + if (connectionStarted) { + if ((closestHandle || handleDomNode) && connection && isValid) { + onConnect?.(connection); + } - /* - * it's important to get a fresh reference from the store here - * in order to get the latest state of onConnectEnd - */ - // eslint-disable-next-line @typescript-eslint/no-unused-vars - const { inProgress, ...connectionState } = previousConnection; - const finalConnectionState = { - ...connectionState, - toPosition: previousConnection.toHandle ? previousConnection.toPosition : null, - }; - onConnectEnd?.(event, finalConnectionState); + /* + * it's important to get a fresh reference from the store here + * in order to get the latest state of onConnectEnd + */ + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { inProgress, ...connectionState } = previousConnection; + const finalConnectionState = { + ...connectionState, + toPosition: previousConnection.toHandle ? previousConnection.toPosition : null, + }; - if (edgeUpdaterType) { - onReconnectEnd?.(event, finalConnectionState); + onConnectEnd?.(event, finalConnectionState); + + if (edgeUpdaterType) { + onReconnectEnd?.(event, finalConnectionState); + } } cancelConnection(); From 26f2cdd720fc2c8fb337d3af13b82dab6a90fb60 Mon Sep 17 00:00:00 2001 From: moklick Date: Fri, 27 Jun 2025 21:09:58 +0200 Subject: [PATCH 79/87] chore(changeset): add --- .changeset/strong-snails-melt.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/strong-snails-melt.md diff --git a/.changeset/strong-snails-melt.md b/.changeset/strong-snails-melt.md new file mode 100644 index 00000000..d85d6450 --- /dev/null +++ b/.changeset/strong-snails-melt.md @@ -0,0 +1,5 @@ +--- +'@xyflow/system': patch +--- + +Only fire connection end events if connection was started From 32dab77767bc00e62bbbde9f5dfcb90bf2f4e3f6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 27 Jun 2025 19:12:14 +0000 Subject: [PATCH 80/87] chore(packages): bump --- .changeset/strong-snails-melt.md | 5 ----- packages/react/CHANGELOG.md | 7 +++++++ packages/react/package.json | 2 +- packages/svelte/CHANGELOG.md | 7 +++++++ packages/svelte/package.json | 2 +- packages/system/CHANGELOG.md | 6 ++++++ packages/system/package.json | 2 +- 7 files changed, 23 insertions(+), 8 deletions(-) delete mode 100644 .changeset/strong-snails-melt.md diff --git a/.changeset/strong-snails-melt.md b/.changeset/strong-snails-melt.md deleted file mode 100644 index d85d6450..00000000 --- a/.changeset/strong-snails-melt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@xyflow/system': patch ---- - -Only fire connection end events if connection was started diff --git a/packages/react/CHANGELOG.md b/packages/react/CHANGELOG.md index e069134f..02c1f35c 100644 --- a/packages/react/CHANGELOG.md +++ b/packages/react/CHANGELOG.md @@ -1,5 +1,12 @@ # @xyflow/react +## 12.8.1 + +### Patch Changes + +- Updated dependencies [[`26f2cdd7`](https://github.com/xyflow/xyflow/commit/26f2cdd720fc2c8fb337d3af13b82dab6a90fb60)]: + - @xyflow/system@0.0.65 + ## 12.8.0 ### Minor Changes diff --git a/packages/react/package.json b/packages/react/package.json index 36ddae08..a2b050c0 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/react", - "version": "12.8.0", + "version": "12.8.1", "description": "React Flow - A highly customizable React library for building node-based editors and interactive flow charts.", "keywords": [ "react", diff --git a/packages/svelte/CHANGELOG.md b/packages/svelte/CHANGELOG.md index 116f0b56..519a1944 100644 --- a/packages/svelte/CHANGELOG.md +++ b/packages/svelte/CHANGELOG.md @@ -1,5 +1,12 @@ # @xyflow/svelte +## 1.2.1 + +### Patch Changes + +- Updated dependencies [[`26f2cdd7`](https://github.com/xyflow/xyflow/commit/26f2cdd720fc2c8fb337d3af13b82dab6a90fb60)]: + - @xyflow/system@0.0.65 + ## 1.2.0 ### Minor Changes diff --git a/packages/svelte/package.json b/packages/svelte/package.json index 7859df64..16165597 100644 --- a/packages/svelte/package.json +++ b/packages/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/svelte", - "version": "1.2.0", + "version": "1.2.1", "description": "Svelte Flow - A highly customizable Svelte library for building node-based editors, workflow systems, diagrams and more.", "keywords": [ "svelte", diff --git a/packages/system/CHANGELOG.md b/packages/system/CHANGELOG.md index 4f4e4251..57d510d1 100644 --- a/packages/system/CHANGELOG.md +++ b/packages/system/CHANGELOG.md @@ -1,5 +1,11 @@ # @xyflow/system +## 0.0.65 + +### Patch Changes + +- [#5370](https://github.com/xyflow/xyflow/pull/5370) [`26f2cdd7`](https://github.com/xyflow/xyflow/commit/26f2cdd720fc2c8fb337d3af13b82dab6a90fb60) Thanks [@moklick](https://github.com/moklick)! - Only fire connection end events if connection was started + ## 0.0.64 ### Patch Changes diff --git a/packages/system/package.json b/packages/system/package.json index 469019ff..74d3341f 100644 --- a/packages/system/package.json +++ b/packages/system/package.json @@ -1,6 +1,6 @@ { "name": "@xyflow/system", - "version": "0.0.64", + "version": "0.0.65", "description": "xyflow core system that powers React Flow and Svelte Flow.", "keywords": [ "node-based UI", From 18514e118fc9a43e2bc80e55639db8beb1d9707a Mon Sep 17 00:00:00 2001 From: Ze-Zheng Wu Date: Sat, 5 Jul 2025 18:11:27 +0800 Subject: [PATCH 81/87] fix(react): respect custom default node type when falling back from unknown node type --- .changeset/forty-dryers-cry.md | 5 +++ examples/react/src/App/routes.ts | 6 +++ .../examples/DefaultNodeOverwrite/index.tsx | 41 +++++++++++++++++++ .../src/components/NodeWrapper/index.tsx | 2 +- 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 .changeset/forty-dryers-cry.md create mode 100644 examples/react/src/examples/DefaultNodeOverwrite/index.tsx diff --git a/.changeset/forty-dryers-cry.md b/.changeset/forty-dryers-cry.md new file mode 100644 index 00000000..618ce567 --- /dev/null +++ b/.changeset/forty-dryers-cry.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': patch +--- + +Fix node fallback to respect custom default node type when unknown node type is encountered diff --git a/examples/react/src/App/routes.ts b/examples/react/src/App/routes.ts index 7bbe7890..031f38c6 100644 --- a/examples/react/src/App/routes.ts +++ b/examples/react/src/App/routes.ts @@ -9,6 +9,7 @@ import ControlledViewport from '../examples/ControlledViewport'; import CustomConnectionLine from '../examples/CustomConnectionLine'; import CustomMiniMapNode from '../examples/CustomMiniMapNode'; import CustomNode from '../examples/CustomNode'; +import DefaultNodeOverwrite from '../examples/DefaultNodeOverwrite'; import DefaultNodes from '../examples/DefaultNodes'; import DragHandle from '../examples/DragHandle'; import DragNDrop from '../examples/DragNDrop'; @@ -129,6 +130,11 @@ const routes: IRoute[] = [ path: 'custom-node', component: CustomNode, }, + { + name: 'Default Node Overwrite', + path: 'default-node-overwrite', + component: DefaultNodeOverwrite, + }, { name: 'Default Nodes', path: 'default-nodes', diff --git a/examples/react/src/examples/DefaultNodeOverwrite/index.tsx b/examples/react/src/examples/DefaultNodeOverwrite/index.tsx new file mode 100644 index 00000000..051f4ad4 --- /dev/null +++ b/examples/react/src/examples/DefaultNodeOverwrite/index.tsx @@ -0,0 +1,41 @@ +import { ReactFlow, Node, ReactFlowProvider, Background, BackgroundVariant, NodeProps } from '@xyflow/react'; + +const initialNodes: Node[] = [ + { + id: '1', + data: { label: 'Node 1' }, + position: { x: 250, y: 5 }, + className: 'light', + }, + { + id: '2', + data: { label: 'Node 2' }, + type: 'unregistered', + position: { x: 100, y: 100 }, + className: 'light', + }, +]; + +const CustomNode = (_: NodeProps) => { + return
Custom node
; +}; + +const nodeTypes = { + default: CustomNode, +}; + +const DefaultNodes = () => { + return ( + + + + ); +}; + +export default function App() { + return ( + + + + ); +} diff --git a/packages/react/src/components/NodeWrapper/index.tsx b/packages/react/src/components/NodeWrapper/index.tsx index dcab1536..bfac2087 100644 --- a/packages/react/src/components/NodeWrapper/index.tsx +++ b/packages/react/src/components/NodeWrapper/index.tsx @@ -58,7 +58,7 @@ export function NodeWrapper({ if (NodeComponent === undefined) { onError?.('003', errorMessages['error003'](nodeType)); nodeType = 'default'; - NodeComponent = builtinNodeTypes.default; + NodeComponent = nodeTypes?.['default'] || builtinNodeTypes.default; } const isDraggable = !!(node.draggable || (nodesDraggable && typeof node.draggable === 'undefined')); From 680f6e8b2d6cc86c05131b76b0245ab441b83318 Mon Sep 17 00:00:00 2001 From: Ze-Zheng Wu Date: Sat, 5 Jul 2025 18:23:33 +0800 Subject: [PATCH 82/87] chore: change component name for clarity --- examples/react/src/examples/DefaultNodeOverwrite/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/react/src/examples/DefaultNodeOverwrite/index.tsx b/examples/react/src/examples/DefaultNodeOverwrite/index.tsx index 051f4ad4..8c8c0e49 100644 --- a/examples/react/src/examples/DefaultNodeOverwrite/index.tsx +++ b/examples/react/src/examples/DefaultNodeOverwrite/index.tsx @@ -24,7 +24,7 @@ const nodeTypes = { default: CustomNode, }; -const DefaultNodes = () => { +const DefaultNodeOverwrite = () => { return ( @@ -35,7 +35,7 @@ const DefaultNodes = () => { export default function App() { return ( - + ); } From ab05d008d949c98124578e99e6a6e4c86a16f629 Mon Sep 17 00:00:00 2001 From: Ze-Zheng Wu Date: Sat, 5 Jul 2025 19:31:55 +0800 Subject: [PATCH 83/87] fix(react): also respect custom default edge type in fallback logic --- .changeset/purple-donuts-fail.md | 5 ++ examples/react/src/App/routes.ts | 6 ++ .../examples/DefaultEdgeOverwrite/index.tsx | 69 +++++++++++++++++++ .../src/components/EdgeWrapper/index.tsx | 2 +- 4 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 .changeset/purple-donuts-fail.md create mode 100644 examples/react/src/examples/DefaultEdgeOverwrite/index.tsx diff --git a/.changeset/purple-donuts-fail.md b/.changeset/purple-donuts-fail.md new file mode 100644 index 00000000..af8df925 --- /dev/null +++ b/.changeset/purple-donuts-fail.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': patch +--- + +Fix edge fallback to respect custom default edge type when unknown edge type is encountered. diff --git a/examples/react/src/App/routes.ts b/examples/react/src/App/routes.ts index 031f38c6..4c003ea5 100644 --- a/examples/react/src/App/routes.ts +++ b/examples/react/src/App/routes.ts @@ -9,6 +9,7 @@ import ControlledViewport from '../examples/ControlledViewport'; import CustomConnectionLine from '../examples/CustomConnectionLine'; import CustomMiniMapNode from '../examples/CustomMiniMapNode'; import CustomNode from '../examples/CustomNode'; +import DefaultEdgeOverwrite from '../examples/DefaultEdgeOverwrite'; import DefaultNodeOverwrite from '../examples/DefaultNodeOverwrite'; import DefaultNodes from '../examples/DefaultNodes'; import DragHandle from '../examples/DragHandle'; @@ -135,6 +136,11 @@ const routes: IRoute[] = [ path: 'default-node-overwrite', component: DefaultNodeOverwrite, }, + { + name: 'Default Edge Overwrite', + path: 'default-edge-overwrite', + component: DefaultEdgeOverwrite, + }, { name: 'Default Nodes', path: 'default-nodes', diff --git a/examples/react/src/examples/DefaultEdgeOverwrite/index.tsx b/examples/react/src/examples/DefaultEdgeOverwrite/index.tsx new file mode 100644 index 00000000..47c7baaf --- /dev/null +++ b/examples/react/src/examples/DefaultEdgeOverwrite/index.tsx @@ -0,0 +1,69 @@ +import { + ReactFlow, + Node, + Edge, + ReactFlowProvider, + Background, + BackgroundVariant, + EdgeProps, + getBezierPath, +} from '@xyflow/react'; + +const initialNodes: Node[] = [ + { + id: '1', + data: { label: 'Node 1' }, + position: { x: 250, y: 5 }, + className: 'light', + }, + { + id: '2', + data: { label: 'Node 2' }, + position: { x: 100, y: 100 }, + className: 'light', + }, +]; + +const initialEdges: Edge[] = [ + { + id: 'e1-2', + source: '1', + target: '2', + type: 'unregistered', // This will fallback to custom default + }, +]; + +const CustomEdge = ({ sourceX, sourceY, targetX, targetY }: EdgeProps) => { + const [edgePath] = getBezierPath({ + sourceX, + sourceY, + targetX, + targetY, + }); + + return ( + <> + + + ); +}; + +const edgeTypes = { + default: CustomEdge, +}; + +const DefaultEdgeOverwrite = () => { + return ( + + + + ); +}; + +export default function App() { + return ( + + + + ); +} diff --git a/packages/react/src/components/EdgeWrapper/index.tsx b/packages/react/src/components/EdgeWrapper/index.tsx index 403ef08d..db85bc08 100644 --- a/packages/react/src/components/EdgeWrapper/index.tsx +++ b/packages/react/src/components/EdgeWrapper/index.tsx @@ -46,7 +46,7 @@ export function EdgeWrapper({ if (EdgeComponent === undefined) { onError?.('011', errorMessages['error011'](edgeType)); edgeType = 'default'; - EdgeComponent = builtinEdgeTypes.default; + EdgeComponent = edgeTypes?.['default'] || builtinEdgeTypes.default; } const isFocusable = !!(edge.focusable || (edgesFocusable && typeof edge.focusable === 'undefined')); From 49d543d62b7fd2b2f856f4ca792bc9fd61b3f185 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Tue, 8 Jul 2025 16:15:35 +0200 Subject: [PATCH 84/87] docs(edges): update marker documentation to include formatting information --- packages/react/src/types/edges.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/react/src/types/edges.ts b/packages/react/src/types/edges.ts index e334546f..2489fb12 100644 --- a/packages/react/src/types/edges.ts +++ b/packages/react/src/types/edges.ts @@ -184,12 +184,12 @@ export type BaseEdgeProps = Omit, 'd' | 'path' | ' path: string; /** * The id of the SVG marker to use at the start of the edge. This should be defined in a - * `` element in a separate SVG document or element. + * `` element in a separate SVG document or element. Use the format "url(#markerId)" where markerId is the id of your marker definition. */ markerStart?: string; /** * The id of the SVG marker to use at the end of the edge. This should be defined in a `` - * element in a separate SVG document or element. + * element in a separate SVG document or element. Use the format "url(#markerId)" where markerId is the id of your marker definition. */ markerEnd?: string; }; From 7f643565346fd9a5d2a320d4a8552fc68fe0357d Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Wed, 9 Jul 2025 10:04:30 +0200 Subject: [PATCH 85/87] docs(svelte): update marker documentation on svelte --- packages/svelte/src/lib/types/edges.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/svelte/src/lib/types/edges.ts b/packages/svelte/src/lib/types/edges.ts index 0bd9446a..8b38797e 100644 --- a/packages/svelte/src/lib/types/edges.ts +++ b/packages/svelte/src/lib/types/edges.ts @@ -50,11 +50,15 @@ export type BaseEdgeProps = Pick< labelX?: number; /** The y coordinate of the label */ labelY?: number; - /** Marker at start of edge + /** + * The id of the SVG marker to use at the start of the edge. This should be defined in a + * `` element in a separate SVG document or element. Use the format "url(#markerId)" where markerId is the id of your marker definition. * @example 'url(#arrow)' */ markerStart?: string; - /** Marker at end of edge + /** + * The id of the SVG marker to use at the end of the edge. This should be defined in a `` + * element in a separate SVG document or element. Use the format "url(#markerId)" where markerId is the id of your marker definition. * @example 'url(#arrow)' */ markerEnd?: string; From 025385ca4eb64cbe4b62608f805be9c9f8cbf97a Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 9 Jul 2025 10:04:38 +0200 Subject: [PATCH 86/87] fix(get-node-intersections): calculate overlapping area correctly #5382 --- packages/react/src/hooks/useReactFlow.ts | 6 +++++- packages/react/src/types/instance.ts | 12 ++++++------ .../svelte/src/lib/hooks/useSvelteFlow.svelte.ts | 8 ++++++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/packages/react/src/hooks/useReactFlow.ts b/packages/react/src/hooks/useReactFlow.ts index 84b1cb77..7fb66b8f 100644 --- a/packages/react/src/hooks/useReactFlow.ts +++ b/packages/react/src/hooks/useReactFlow.ts @@ -222,7 +222,11 @@ export function useReactFlow 0; - return partiallyVisible || overlappingArea >= nodeRect.width * nodeRect.height; + return ( + partiallyVisible || + overlappingArea >= currNodeRect.width * currNodeRect.height || + overlappingArea >= nodeRect.width * nodeRect.height + ); }) as NodeType[]; }, isNodeIntersecting: (nodeOrRect, area, partially = true) => { diff --git a/packages/react/src/types/instance.ts b/packages/react/src/types/instance.ts index d001486a..b9954fa2 100644 --- a/packages/react/src/types/instance.ts +++ b/packages/react/src/types/instance.ts @@ -105,7 +105,7 @@ export type GeneralHelpers & - ViewportHelperFunctions & { - /** - * React Flow needs to mount the viewport to the DOM and initialize its zoom and pan behavior. - * This property tells you when viewport is initialized. - */ + ViewportHelperFunctions & { + /** + * React Flow needs to mount the viewport to the DOM and initialize its zoom and pan behavior. + * This property tells you when viewport is initialized. + */ viewportInitialized: boolean; }; diff --git a/packages/svelte/src/lib/hooks/useSvelteFlow.svelte.ts b/packages/svelte/src/lib/hooks/useSvelteFlow.svelte.ts index c4869c33..0d16d390 100644 --- a/packages/svelte/src/lib/hooks/useSvelteFlow.svelte.ts +++ b/packages/svelte/src/lib/hooks/useSvelteFlow.svelte.ts @@ -125,7 +125,7 @@ export function useSvelteFlow 0; - return partiallyVisible || overlappingArea >= nodeRect.width * nodeRect.height; + return ( + partiallyVisible || + overlappingArea >= currNodeRect.width * currNodeRect.height || + overlappingArea >= nodeRect.width * nodeRect.height + ); }); }, isNodeIntersecting: ( From 21db22d46a253dc4fd17d65dab201aca53a4a6f4 Mon Sep 17 00:00:00 2001 From: moklick Date: Wed, 9 Jul 2025 12:02:49 +0200 Subject: [PATCH 87/87] chore(changeset): add --- .changeset/popular-apples-invent.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/popular-apples-invent.md diff --git a/.changeset/popular-apples-invent.md b/.changeset/popular-apples-invent.md new file mode 100644 index 00000000..2b460ee6 --- /dev/null +++ b/.changeset/popular-apples-invent.md @@ -0,0 +1,6 @@ +--- +'@xyflow/react': patch +'@xyflow/svelte': patch +--- + +Return intersections correctly of passed node is bigger than intersecting nodes