migrate all components

This commit is contained in:
peterkogo
2024-11-13 15:21:22 +01:00
parent 28e4fad342
commit 2c2b456036
9 changed files with 230 additions and 249 deletions

View File

@@ -21,7 +21,7 @@
"eslint-plugin-svelte": "^2.46.0",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.8",
"svelte": "^5.1.15",
"svelte": "^5.1.16",
"svelte-check": "^4.0.7",
"tslib": "^2.8.1",
"typescript": "^5.6.3",

View File

@@ -50,7 +50,7 @@
"access": "public"
},
"dependencies": {
"@svelte-put/shortcut": "^3.1.0",
"@svelte-put/shortcut": "^4.0.0",
"@xyflow/system": "workspace:*",
"classcat": "^5.0.5"
},
@@ -74,7 +74,7 @@
"postcss-rename": "^0.6.1",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.8",
"svelte": "^5.1.15",
"svelte": "^5.1.16",
"svelte-check": "^4.0.7",
"svelte-eslint-parser": "^0.43.0",
"svelte-preprocess": "^6.0.3",

View File

@@ -1,90 +1,86 @@
<svelte:options immutable />
<script lang="ts">
import { createEventDispatcher, setContext } from 'svelte';
import { setContext } from 'svelte';
import cc from 'classcat';
import { getMarkerId } from '@xyflow/system';
import { useStore } from '$lib/store';
import { BezierEdgeInternal } from '$lib/components/edges';
import type { EdgeLayouted, Edge } from '$lib/types';
import { useHandleEdgeSelect } from '$lib/hooks/useHandleEdgeSelect';
type $$Props = EdgeLayouted;
import type { EdgeLayouted, Edge, EdgeEvents } from '$lib/types';
export let id: $$Props['id'];
export let type: $$Props['type'] = 'default';
export let source: $$Props['source'] = '';
export let target: $$Props['target'] = '';
export let data: $$Props['data'] = {};
export let style: $$Props['style'] = undefined;
export let zIndex: $$Props['zIndex'] = undefined;
export let animated: $$Props['animated'] = false;
export let selected: $$Props['selected'] = false;
export let selectable: $$Props['selectable'] = undefined;
export let deletable: $$Props['deletable'] = undefined;
export let hidden: $$Props['hidden'] = false;
export let label: $$Props['label'] = undefined;
export let labelStyle: $$Props['labelStyle'] = undefined;
export let markerStart: $$Props['markerStart'] = undefined;
export let markerEnd: $$Props['markerEnd'] = undefined;
export let sourceHandle: $$Props['sourceHandle'] = undefined;
export let targetHandle: $$Props['targetHandle'] = undefined;
export let sourceX: $$Props['sourceX'];
export let sourceY: $$Props['sourceY'];
export let targetX: $$Props['targetX'];
export let targetY: $$Props['targetY'];
export let sourcePosition: $$Props['sourcePosition'];
export let targetPosition: $$Props['targetPosition'];
export let ariaLabel: $$Props['ariaLabel'] = undefined;
export let interactionWidth: $$Props['interactionWidth'] = undefined;
// TODO SVELTE5
// @ todo: support edge updates
let className: string = '';
export { className as class };
const {
id,
type = 'default',
source,
target,
data = {},
style,
zIndex,
animated = false,
selected = false,
selectable,
deletable,
hidden,
label,
labelStyle,
markerStart,
markerEnd,
sourceHandle,
targetHandle,
sourceX,
sourceY,
targetX,
targetY,
sourcePosition,
targetPosition,
ariaLabel,
interactionWidth,
class: className,
onedgeclick,
onedgecontextmenu,
onedgemouseenter,
onedgemouseleave
}: EdgeLayouted & EdgeEvents = $props();
setContext('svelteflow__edge_id', id);
const { edgeLookup, edgeTypes, flowId, elementsSelectable } = useStore();
const dispatch = createEventDispatcher<{
edgeclick: { edge: Edge; event: MouseEvent | TouchEvent };
edgecontextmenu: { edge: Edge; event: MouseEvent };
edgemouseenter: { edge: Edge; event: MouseEvent };
edgemouseleave: { edge: Edge; event: MouseEvent };
}>();
$: edgeType = type || 'default';
$: edgeComponent = $edgeTypes[edgeType] || BezierEdgeInternal;
$: markerStartUrl = markerStart ? `url('#${getMarkerId(markerStart, $flowId)}')` : undefined;
$: markerEndUrl = markerEnd ? `url('#${getMarkerId(markerEnd, $flowId)}')` : undefined;
$: isSelectable = selectable ?? $elementsSelectable;
let edgeType = $derived(type ?? 'default');
let EdgeComponent = $derived($edgeTypes[edgeType] ?? BezierEdgeInternal);
let markerStartUrl = $derived(
markerStart ? `url('#${getMarkerId(markerStart, $flowId)}')` : undefined
);
let markerEndUrl = $derived(markerEnd ? `url('#${getMarkerId(markerEnd, $flowId)}')` : undefined);
let isSelectable = $derived(selectable ?? $elementsSelectable);
const handleEdgeSelect = useHandleEdgeSelect();
function onClick(event: MouseEvent | TouchEvent) {
function onclick(event: MouseEvent | TouchEvent) {
const edge = $edgeLookup.get(id);
if (edge) {
handleEdgeSelect(id);
dispatch('edgeclick', { event, edge });
onedgeclick?.({ event, edge });
}
}
type EdgeMouseEvent = 'edgecontextmenu' | 'edgemouseenter' | 'edgemouseleave';
function onMouseEvent(event: MouseEvent, type: EdgeMouseEvent) {
function onMouseEvent(
event: MouseEvent,
callback: ({ edge, event }: { edge: Edge; event: MouseEvent }) => void
) {
const edge = $edgeLookup.get(id);
if (edge) {
dispatch(type, { event, edge });
callback({ event, edge });
}
}
</script>
<!-- svelte-ignore a11y-click-events-have-key-events -->
<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
<!-- svelte-ignore a11y_click_events_have_key_events -->
<!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
{#if !hidden}
<svg style:z-index={zIndex}>
<g
@@ -93,16 +89,22 @@
class:selected
class:selectable={isSelectable}
data-id={id}
on:click={onClick}
on:contextmenu={(e) => {
onMouseEvent(e, 'edgecontextmenu');
}}
on:mouseenter={(e) => {
onMouseEvent(e, 'edgemouseenter');
}}
on:mouseleave={(e) => {
onMouseEvent(e, 'edgemouseleave');
}}
{onclick}
oncontextmenu={onedgecontextmenu
? (e) => {
onMouseEvent(e, onedgecontextmenu);
}
: undefined}
onmouseenter={onedgemouseenter
? (e) => {
onMouseEvent(e, onedgemouseenter);
}
: undefined}
onmouseleave={onedgemouseleave
? (e) => {
onMouseEvent(e, onedgemouseleave);
}
: undefined}
aria-label={ariaLabel === null
? undefined
: ariaLabel
@@ -110,8 +112,7 @@
: `Edge from ${source} to ${target}`}
role="img"
>
<svelte:component
this={edgeComponent}
<EdgeComponent
{id}
{source}
{target}

View File

@@ -1,7 +1,5 @@
<script lang="ts">
//TODO SVELTE5
import { getContext } from 'svelte';
import type { Writable } from 'svelte/store';
import cc from 'classcat';
import {
Position,
@@ -15,34 +13,32 @@
import { useStore } from '$lib/store';
import type { HandleProps } from '$lib/types';
import type { ConnectableContext } from '../NodeWrapper/types';
type $$Props = HandleProps;
export let id: $$Props['id'] = undefined;
export let type: $$Props['type'] = 'source';
export let position: $$Props['position'] = Position.Top;
export let style: $$Props['style'] = undefined;
export let isValidConnection: $$Props['isValidConnection'] = undefined;
export let onconnect: $$Props['onconnect'] = undefined;
export let ondisconnect: $$Props['ondisconnect'] = undefined;
let {
id: handleId = null,
type = 'source',
position = Position.Top,
style,
class: className,
isConnectable: isConnectableProp,
isValidConnection: isValidConnectionProp,
onconnect,
ondisconnect,
children
}: HandleProps = $props();
// @todo implement connectablestart, connectableend
// export let isConnectableStart: $$Props['isConnectableStart'] = undefined;
// export let isConnectableEnd: $$Props['isConnectableEnd'] = undefined;
let isConnectableProp: $$Props['isConnectable'] = undefined;
export { isConnectableProp as isConnectable };
let className: $$Props['class'] = undefined;
export { className as class };
$: isTarget = type === 'target';
const nodeId = getContext<string>('svelteflow__node_id');
const connectable = getContext<Writable<boolean>>('svelteflow__node_connectable');
$: isConnectable = isConnectableProp !== undefined ? isConnectableProp : $connectable;
const isConnectableContext = getContext<ConnectableContext>('svelteflow__node_connectable');
$: handleId = id || null;
let isTarget = $derived(type === 'target');
let isConnectable = $derived(
isConnectableProp !== undefined ? isConnectableProp : isConnectableContext.value
);
const store = useStore();
const {
connectionMode,
domNode,
@@ -64,7 +60,7 @@
onconnectend: onConnectEndAction,
flowId,
connection
} = store;
} = useStore();
function onPointerDown(event: MouseEvent | TouchEvent) {
const isMouseTriggered = isMouseEvent(event);
@@ -81,7 +77,7 @@
lib: $lib,
autoPanOnConnect: $autoPanOnConnect,
flowId: $flowId,
isValidConnection: isValidConnection ?? $isValidConnectionStore,
isValidConnection: isValidConnectionProp ?? $isValidConnectionStore,
updateConnection,
cancelConnection,
panBy,
@@ -112,39 +108,45 @@
}
let prevConnections: Map<string, HandleConnection> | null = null;
let connections: Map<string, HandleConnection> | undefined;
$: if (onconnect || ondisconnect) {
$effect.pre(() => {
// connectionLookup is not reactive, so we use edges to get notified about updates
$edges;
connections = $connectionLookup.get(`${nodeId}-${type}-${id || null}`);
}
if (onconnect || ondisconnect) {
let connections = $connectionLookup.get(`${nodeId}-${type}-${handleId}`);
$: {
if (prevConnections && !areConnectionMapsEqual(connections, prevConnections)) {
const _connections = connections ?? new Map();
if (prevConnections && !areConnectionMapsEqual(connections, prevConnections)) {
const _connections = connections ?? new Map();
handleConnectionChange(prevConnections, _connections, ondisconnect);
handleConnectionChange(_connections, prevConnections, onconnect);
handleConnectionChange(prevConnections, _connections, ondisconnect);
handleConnectionChange(_connections, prevConnections, onconnect);
}
prevConnections = new Map(connections);
}
});
prevConnections = connections ?? new Map();
}
let [connectionInProcess, connectingFrom, connectingTo, isPossibleEndHandle, valid] = $derived.by(
() => {
const { fromHandle, toHandle, isValid } = $connection;
$: connectionInProcess = !!$connection.fromHandle;
$: connectingFrom =
$connection.fromHandle?.nodeId === nodeId &&
$connection.fromHandle?.type === type &&
$connection.fromHandle?.id === handleId;
$: connectingTo =
$connection.toHandle?.nodeId === nodeId &&
$connection.toHandle?.type === type &&
$connection.toHandle?.id === handleId;
$: isPossibleEndHandle =
$connectionMode === ConnectionMode.Strict
? $connection.fromHandle?.type !== type
: nodeId !== $connection.fromHandle?.nodeId || handleId !== $connection.fromHandle?.id;
$: valid = connectingTo && $connection.isValid;
const connectionInProcess = !!fromHandle;
const connectingFrom =
fromHandle?.nodeId === nodeId && fromHandle?.type === type && fromHandle?.id === handleId;
const connectingTo =
toHandle?.nodeId === nodeId && toHandle?.type === type && toHandle?.id === handleId;
const isPossibleEndHandle =
$connectionMode === ConnectionMode.Strict
? fromHandle?.type !== type
: nodeId !== fromHandle?.nodeId || handleId !== fromHandle?.id;
const valid = connectingTo && isValid;
return [connectionInProcess, connectingFrom, connectingTo, isPossibleEndHandle, valid];
}
);
</script>
<!--
@@ -155,7 +157,7 @@ The Handle component is the part of a node that can be used to connect nodes.
data-handleid={handleId}
data-nodeid={nodeId}
data-handlepos={position}
data-id="{$flowId}-{nodeId}-{id || null}-{type}"
data-id="{$flowId}-{nodeId}-{handleId}-{type}"
class={cc([
'svelte-flow__handle',
`svelte-flow__handle-${position}`,
@@ -173,11 +175,11 @@ The Handle component is the part of a node that can be used to connect nodes.
class:connectableend={isConnectable}
class:connectable={isConnectable}
class:connectionindicator={isConnectable && (!connectionInProcess || isPossibleEndHandle)}
on:mousedown={onPointerDown}
on:touchstart={onPointerDown}
onmousedown={onPointerDown}
ontouchstart={onPointerDown}
{style}
role="button"
tabindex="-1"
>
<slot />
{@render children?.()}
</div>

View File

@@ -7,7 +7,7 @@
import drag from '$lib/actions/drag';
import { useStore } from '$lib/store';
import DefaultNode from '$lib/components/nodes/DefaultNode.svelte';
import type { NodeWrapperProps } from './types';
import type { ConnectableContext, NodeWrapperProps } from './types';
import { getNodeInlineStyleDimensions } from './utils';
import type { NodeEvents } from '$lib/types';
@@ -64,14 +64,20 @@
let nodeRef: HTMLDivElement | null = $state(null);
let prevNodeRef: HTMLDivElement | null = null;
const connectableStore = writable(connectable);
let prevType: string | undefined;
let prevSourcePosition: Position | undefined;
let prevTargetPosition: Position | undefined;
let NodeComponent = $derived($nodeTypes[type] ?? DefaultNode);
let connectableContext: ConnectableContext = {
get value() {
return connectable;
}
};
setContext('svelteflow__node_connectable', connectableContext);
setContext('svelteflow__node_id', id);
if (process.env.NODE_ENV === 'development') {
$effect(() => {
const valid = !!$nodeTypes[type];
@@ -92,10 +98,6 @@
})
);
$effect(() => {
connectableStore.set(!!connectable);
});
$effect(() => {
// if type, sourcePosition or targetPosition changes,
// we need to re-calculate the handle positions
@@ -128,9 +130,6 @@
prevTargetPosition = targetPosition;
});
setContext('svelteflow__node_id', id);
setContext('svelteflow__node_connectable', connectableStore);
// TODO: extract this part!
$effect(() => {
// TODO: HOLY MOLY! changing the order of the initialized breaks effect subscriptions
@@ -215,7 +214,7 @@
{dragHandle}
{parentId}
{type}
isConnectable={$connectableStore}
isConnectable={connectable}
positionAbsoluteX={positionX}
positionAbsoluteY={positionY}
{width}

View File

@@ -1,5 +1,9 @@
import type { InternalNode, Node } from '$lib/types';
export type ConnectableContext = {
value: boolean;
};
export type NodeWrapperProps = Pick<
Node,
| 'id'

View File

@@ -1,3 +1,4 @@
import type { Snippet } from 'svelte';
import type { ShortcutModifierDefinition } from '@svelte-put/shortcut';
import type {
FitViewOptionsBase,
@@ -27,6 +28,7 @@ export type HandleProps = HandlePropsSystem & {
style?: string;
onconnect?: (connections: Connection[]) => void;
ondisconnect?: (connections: Connection[]) => void;
children?: Snippet;
};
export type FitViewOptions<NodeType extends Node = Node> = FitViewOptionsBase<NodeType>;

View File

@@ -36,5 +36,5 @@ export type HandleProps = {
/** Id of the handle
* @remarks optional if there is only one handle of this type
*/
id?: string;
id?: string | null;
};

197
pnpm-lock.yaml generated
View File

@@ -173,17 +173,17 @@ importers:
version: 1.1.4
'@sveltejs/vite-plugin-svelte':
specifier: ^4.0.0
version: 4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
version: 4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
'@xyflow/svelte':
specifier: workspace:^
version: link:../../packages/svelte
devDependencies:
'@sveltejs/adapter-auto':
specifier: ^3.3.1
version: 3.3.1(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))
version: 3.3.1(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))
'@sveltejs/kit':
specifier: ^2.8.0
version: 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
version: 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
'@typescript-eslint/eslint-plugin':
specifier: ^8.14.0
version: 8.14.0(@typescript-eslint/parser@8.14.0(eslint@8.53.0)(typescript@5.6.3))(eslint@8.53.0)(typescript@5.6.3)
@@ -198,19 +198,19 @@ importers:
version: 9.1.0(eslint@8.53.0)
eslint-plugin-svelte:
specifier: ^2.46.0
version: 2.46.0(eslint@8.53.0)(svelte@5.1.15)
version: 2.46.0(eslint@8.53.0)(svelte@5.1.16)
prettier:
specifier: ^3.3.3
version: 3.3.3
prettier-plugin-svelte:
specifier: ^3.2.8
version: 3.2.8(prettier@3.3.3)(svelte@5.1.15)
version: 3.2.8(prettier@3.3.3)(svelte@5.1.16)
svelte:
specifier: ^5.1.15
version: 5.1.15
specifier: ^5.1.16
version: 5.1.16
svelte-check:
specifier: ^4.0.7
version: 4.0.7(svelte@5.1.15)(typescript@5.6.3)
version: 4.0.7(svelte@5.1.16)(typescript@5.6.3)
tslib:
specifier: ^2.8.1
version: 2.8.1
@@ -288,8 +288,8 @@ importers:
packages/svelte:
dependencies:
'@svelte-put/shortcut':
specifier: ^3.1.0
version: 3.1.0
specifier: ^4.0.0
version: 4.0.0(svelte@5.1.16)
'@xyflow/system':
specifier: workspace:*
version: link:../system
@@ -299,19 +299,19 @@ importers:
devDependencies:
'@sveltejs/adapter-auto':
specifier: ^3.3.1
version: 3.3.1(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))
version: 3.3.1(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))
'@sveltejs/kit':
specifier: ^2.8.0
version: 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
version: 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
'@sveltejs/package':
specifier: ^2.3.7
version: 2.3.7(svelte@5.1.15)(typescript@5.4.2)
version: 2.3.7(svelte@5.1.16)(typescript@5.6.3)
'@typescript-eslint/eslint-plugin':
specifier: ^8.14.0
version: 8.14.0(@typescript-eslint/parser@8.14.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2)
version: 8.14.0(@typescript-eslint/parser@8.14.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)
'@typescript-eslint/parser':
specifier: ^8.14.0
version: 8.14.0(eslint@8.57.0)(typescript@5.4.2)
version: 8.14.0(eslint@8.57.0)(typescript@5.6.3)
autoprefixer:
specifier: ^10.4.20
version: 10.4.20(postcss@8.4.49)
@@ -329,7 +329,7 @@ importers:
version: 9.1.0(eslint@8.57.0)
eslint-plugin-svelte:
specifier: ^2.46.0
version: 2.46.0(eslint@8.57.0)(svelte@5.1.15)
version: 2.46.0(eslint@8.57.0)(svelte@5.1.16)
postcss:
specifier: ^8.4.49
version: 8.4.49
@@ -353,25 +353,25 @@ importers:
version: 3.3.3
prettier-plugin-svelte:
specifier: ^3.2.8
version: 3.2.8(prettier@3.3.3)(svelte@5.1.15)
version: 3.2.8(prettier@3.3.3)(svelte@5.1.16)
svelte:
specifier: ^5.1.15
version: 5.1.15
specifier: ^5.1.16
version: 5.1.16
svelte-check:
specifier: ^4.0.7
version: 4.0.7(svelte@5.1.15)(typescript@5.4.2)
version: 4.0.7(svelte@5.1.16)(typescript@5.6.3)
svelte-eslint-parser:
specifier: ^0.43.0
version: 0.43.0(svelte@5.1.15)
version: 0.43.0(svelte@5.1.16)
svelte-preprocess:
specifier: ^6.0.3
version: 6.0.3(@babel/core@7.24.7)(postcss-load-config@5.0.2(postcss@8.4.49))(postcss@8.4.49)(svelte@5.1.15)(typescript@5.4.2)
version: 6.0.3(@babel/core@7.24.7)(postcss-load-config@5.0.2(postcss@8.4.49))(postcss@8.4.49)(svelte@5.1.16)(typescript@5.6.3)
tslib:
specifier: ^2.8.1
version: 2.8.1
typescript:
specifier: 5.4.2
version: 5.4.2
specifier: ^5.5.0
version: 5.6.3
packages/system:
dependencies:
@@ -1670,8 +1670,10 @@ packages:
resolution: {integrity: sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==}
engines: {node: '>=18'}
'@svelte-put/shortcut@3.1.0':
resolution: {integrity: sha512-EWMEDkZ0+O3yMhb9yrqe5UYisV9CNRKX6Pl/JW3x62t74CiN+3COu1L9NzZUG0omagc2Z3J14PZNYxs77IC9NA==}
'@svelte-put/shortcut@4.0.0':
resolution: {integrity: sha512-FNAiL5aV7Yh/02vKwlzX7d8s3naKZ3VJ7f/uADO+kjuoBRzZQmWG8AeY46FVS0jdkHN+k0pT+clHF270AQePew==}
peerDependencies:
svelte: ^5.1.0
'@sveltejs/adapter-auto@3.3.1':
resolution: {integrity: sha512-5Sc7WAxYdL6q9j/+D0jJKjGREGlfIevDyHSQ2eNETHcB1TKlQWHcAo8AS8H1QdjNvSXpvOwNjykDUHPEAyGgdQ==}
@@ -5790,8 +5792,8 @@ packages:
resolution: {integrity: sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==}
engines: {node: '>=16'}
svelte@5.1.15:
resolution: {integrity: sha512-cs2JYADrEorRCB4AUCHMvwperwAKcn/mz7w1xzVOv3fG6TmAS2n13JYHH8/uDCFbqVyRSXXlL+vA5RDwGUXEZg==}
svelte@5.1.16:
resolution: {integrity: sha512-QcY+om9r8+uTcSfeFuv8++ExdfwVCKeT+Y7GPSZ6rQPczvy62BMtvMoi0rScabgv+upGE5jxKjd7M4u23+AjGA==}
engines: {node: '>=18'}
svgo@3.0.2:
@@ -7353,7 +7355,7 @@ snapshots:
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/sourcemap-codec': 1.5.0
'@jridgewell/trace-mapping': 0.3.25
'@jridgewell/resolve-uri@3.1.1': {}
@@ -7630,16 +7632,18 @@ snapshots:
'@sindresorhus/merge-streams@1.0.0': {}
'@svelte-put/shortcut@3.1.0': {}
'@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))':
'@svelte-put/shortcut@4.0.0(svelte@5.1.16)':
dependencies:
'@sveltejs/kit': 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
svelte: 5.1.16
'@sveltejs/adapter-auto@3.3.1(@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))':
dependencies:
'@sveltejs/kit': 2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
import-meta-resolve: 4.1.0
'@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))':
'@sveltejs/kit@2.8.0(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
'@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
'@types/cookie': 0.6.0
cookie: 0.6.0
devalue: 5.1.1
@@ -7651,18 +7655,18 @@ snapshots:
sade: 1.8.1
set-cookie-parser: 2.6.0
sirv: 3.0.0
svelte: 5.1.15
svelte: 5.1.16
tiny-glob: 0.2.9
vite: 5.4.11(@types/node@20.14.6)(terser@5.31.0)
'@sveltejs/package@2.3.7(svelte@5.1.15)(typescript@5.4.2)':
'@sveltejs/package@2.3.7(svelte@5.1.16)(typescript@5.6.3)':
dependencies:
chokidar: 4.0.1
kleur: 4.1.5
sade: 1.8.1
semver: 7.6.0
svelte: 5.1.15
svelte2tsx: 0.7.24(svelte@5.1.15)(typescript@5.4.2)
svelte: 5.1.16
svelte2tsx: 0.7.24(svelte@5.1.16)(typescript@5.6.3)
transitivePeerDependencies:
- typescript
@@ -7675,11 +7679,11 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))':
'@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))':
dependencies:
'@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
'@sveltejs/vite-plugin-svelte': 4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
debug: 4.3.7
svelte: 5.1.15
svelte: 5.1.16
vite: 5.4.11(@types/node@20.14.6)(terser@5.31.0)
transitivePeerDependencies:
- supports-color
@@ -7698,14 +7702,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))':
'@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))':
dependencies:
'@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.15)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
'@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.0(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0)))(svelte@5.1.16)(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
debug: 4.3.7
deepmerge: 4.3.1
kleur: 4.1.5
magic-string: 0.30.12
svelte: 5.1.15
svelte: 5.1.16
vite: 5.4.11(@types/node@20.14.6)(terser@5.31.0)
vitefu: 1.0.3(vite@5.4.11(@types/node@20.14.6)(terser@5.31.0))
transitivePeerDependencies:
@@ -7973,21 +7977,21 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@8.14.0(eslint@8.57.0)(typescript@5.4.2))(eslint@8.57.0)(typescript@5.4.2)':
'@typescript-eslint/eslint-plugin@8.14.0(@typescript-eslint/parser@8.14.0(eslint@8.57.0)(typescript@5.6.3))(eslint@8.57.0)(typescript@5.6.3)':
dependencies:
'@eslint-community/regexpp': 4.10.0
'@typescript-eslint/parser': 8.14.0(eslint@8.57.0)(typescript@5.4.2)
'@typescript-eslint/parser': 8.14.0(eslint@8.57.0)(typescript@5.6.3)
'@typescript-eslint/scope-manager': 8.14.0
'@typescript-eslint/type-utils': 8.14.0(eslint@8.57.0)(typescript@5.4.2)
'@typescript-eslint/utils': 8.14.0(eslint@8.57.0)(typescript@5.4.2)
'@typescript-eslint/type-utils': 8.14.0(eslint@8.57.0)(typescript@5.6.3)
'@typescript-eslint/utils': 8.14.0(eslint@8.57.0)(typescript@5.6.3)
'@typescript-eslint/visitor-keys': 8.14.0
eslint: 8.57.0
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
ts-api-utils: 1.3.0(typescript@5.4.2)
ts-api-utils: 1.3.0(typescript@5.6.3)
optionalDependencies:
typescript: 5.4.2
typescript: 5.6.3
transitivePeerDependencies:
- supports-color
@@ -8017,16 +8021,16 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.14.0(eslint@8.57.0)(typescript@5.4.2)':
'@typescript-eslint/parser@8.14.0(eslint@8.57.0)(typescript@5.6.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.14.0
'@typescript-eslint/types': 8.14.0
'@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.2)
'@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3)
'@typescript-eslint/visitor-keys': 8.14.0
debug: 4.3.5
eslint: 8.57.0
optionalDependencies:
typescript: 5.4.2
typescript: 5.6.3
transitivePeerDependencies:
- supports-color
@@ -8064,14 +8068,14 @@ snapshots:
- eslint
- supports-color
'@typescript-eslint/type-utils@8.14.0(eslint@8.57.0)(typescript@5.4.2)':
'@typescript-eslint/type-utils@8.14.0(eslint@8.57.0)(typescript@5.6.3)':
dependencies:
'@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.2)
'@typescript-eslint/utils': 8.14.0(eslint@8.57.0)(typescript@5.4.2)
'@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3)
'@typescript-eslint/utils': 8.14.0(eslint@8.57.0)(typescript@5.6.3)
debug: 4.3.5
ts-api-utils: 1.3.0(typescript@5.4.2)
ts-api-utils: 1.3.0(typescript@5.6.3)
optionalDependencies:
typescript: 5.4.2
typescript: 5.6.3
transitivePeerDependencies:
- eslint
- supports-color
@@ -8095,21 +8099,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/typescript-estree@8.14.0(typescript@5.4.2)':
dependencies:
'@typescript-eslint/types': 8.14.0
'@typescript-eslint/visitor-keys': 8.14.0
debug: 4.3.5
fast-glob: 3.3.2
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.6.0
ts-api-utils: 1.3.0(typescript@5.4.2)
optionalDependencies:
typescript: 5.4.2
transitivePeerDependencies:
- supports-color
'@typescript-eslint/typescript-estree@8.14.0(typescript@5.6.3)':
dependencies:
'@typescript-eslint/types': 8.14.0
@@ -8147,12 +8136,12 @@ snapshots:
- supports-color
- typescript
'@typescript-eslint/utils@8.14.0(eslint@8.57.0)(typescript@5.4.2)':
'@typescript-eslint/utils@8.14.0(eslint@8.57.0)(typescript@5.6.3)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@typescript-eslint/scope-manager': 8.14.0
'@typescript-eslint/types': 8.14.0
'@typescript-eslint/typescript-estree': 8.14.0(typescript@5.4.2)
'@typescript-eslint/typescript-estree': 8.14.0(typescript@5.6.3)
eslint: 8.57.0
transitivePeerDependencies:
- supports-color
@@ -9578,7 +9567,7 @@ snapshots:
string.prototype.matchall: 4.0.11
string.prototype.repeat: 1.0.0
eslint-plugin-svelte@2.46.0(eslint@8.53.0)(svelte@5.1.15):
eslint-plugin-svelte@2.46.0(eslint@8.53.0)(svelte@5.1.16):
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0)
'@jridgewell/sourcemap-codec': 1.4.15
@@ -9591,13 +9580,13 @@ snapshots:
postcss-safe-parser: 6.0.0(postcss@8.4.49)
postcss-selector-parser: 6.1.2
semver: 7.6.3
svelte-eslint-parser: 0.43.0(svelte@5.1.15)
svelte-eslint-parser: 0.43.0(svelte@5.1.16)
optionalDependencies:
svelte: 5.1.15
svelte: 5.1.16
transitivePeerDependencies:
- ts-node
eslint-plugin-svelte@2.46.0(eslint@8.57.0)(svelte@5.1.15):
eslint-plugin-svelte@2.46.0(eslint@8.57.0)(svelte@5.1.16):
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@jridgewell/sourcemap-codec': 1.4.15
@@ -9610,9 +9599,9 @@ snapshots:
postcss-safe-parser: 6.0.0(postcss@8.4.49)
postcss-selector-parser: 6.1.2
semver: 7.6.3
svelte-eslint-parser: 0.43.0(svelte@5.1.15)
svelte-eslint-parser: 0.43.0(svelte@5.1.16)
optionalDependencies:
svelte: 5.1.15
svelte: 5.1.16
transitivePeerDependencies:
- ts-node
@@ -11861,10 +11850,10 @@ snapshots:
dependencies:
fast-diff: 1.3.0
prettier-plugin-svelte@3.2.8(prettier@3.3.3)(svelte@5.1.15):
prettier-plugin-svelte@3.2.8(prettier@3.3.3)(svelte@5.1.16):
dependencies:
prettier: 3.3.3
svelte: 5.1.15
svelte: 5.1.16
prettier@2.8.8: {}
@@ -12692,31 +12681,19 @@ snapshots:
supports-preserve-symlinks-flag@1.0.0: {}
svelte-check@4.0.7(svelte@5.1.15)(typescript@5.4.2):
svelte-check@4.0.7(svelte@5.1.16)(typescript@5.6.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
chokidar: 4.0.1
fdir: 6.4.2
picocolors: 1.0.1
sade: 1.8.1
svelte: 5.1.15
typescript: 5.4.2
transitivePeerDependencies:
- picomatch
svelte-check@4.0.7(svelte@5.1.15)(typescript@5.6.3):
dependencies:
'@jridgewell/trace-mapping': 0.3.25
chokidar: 4.0.1
fdir: 6.4.2
picocolors: 1.0.1
sade: 1.8.1
svelte: 5.1.15
svelte: 5.1.16
typescript: 5.6.3
transitivePeerDependencies:
- picomatch
svelte-eslint-parser@0.43.0(svelte@5.1.15):
svelte-eslint-parser@0.43.0(svelte@5.1.16):
dependencies:
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
@@ -12724,20 +12701,20 @@ snapshots:
postcss: 8.4.49
postcss-scss: 4.0.9(postcss@8.4.49)
optionalDependencies:
svelte: 5.1.15
svelte: 5.1.16
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.4.49))(postcss@8.4.49)(svelte@5.1.15)(typescript@5.4.2):
svelte-preprocess@6.0.3(@babel/core@7.24.7)(postcss-load-config@5.0.2(postcss@8.4.49))(postcss@8.4.49)(svelte@5.1.16)(typescript@5.6.3):
dependencies:
svelte: 5.1.15
svelte: 5.1.16
optionalDependencies:
'@babel/core': 7.24.7
postcss: 8.4.49
postcss-load-config: 5.0.2(postcss@8.4.49)
typescript: 5.4.2
typescript: 5.6.3
svelte2tsx@0.6.23(svelte@4.2.1)(typescript@5.6.3):
dependencies:
@@ -12746,12 +12723,12 @@ snapshots:
svelte: 4.2.1
typescript: 5.6.3
svelte2tsx@0.7.24(svelte@5.1.15)(typescript@5.4.2):
svelte2tsx@0.7.24(svelte@5.1.16)(typescript@5.6.3):
dependencies:
dedent-js: 1.0.1
pascal-case: 3.1.2
svelte: 5.1.15
typescript: 5.4.2
svelte: 5.1.16
typescript: 5.6.3
svelte@4.2.1:
dependencies:
@@ -12769,11 +12746,11 @@ snapshots:
magic-string: 0.30.5
periscopic: 3.1.0
svelte@5.1.15:
svelte@5.1.16:
dependencies:
'@ampproject/remapping': 2.3.0
'@jridgewell/sourcemap-codec': 1.5.0
'@types/estree': 1.0.5
'@types/estree': 1.0.6
acorn: 8.14.0
acorn-typescript: 1.4.13(acorn@8.14.0)
aria-query: 5.3.2
@@ -12892,10 +12869,6 @@ snapshots:
dependencies:
typescript: 5.1.3
ts-api-utils@1.3.0(typescript@5.4.2):
dependencies:
typescript: 5.4.2
ts-api-utils@1.3.0(typescript@5.6.3):
dependencies:
typescript: 5.6.3