From 91ecfe73ccd18dbee13cf9e1b34b6e4ab60d3970 Mon Sep 17 00:00:00 2001 From: Abbey Yacoe Date: Wed, 21 May 2025 14:03:50 +0200 Subject: [PATCH] chore(a11y): pass LabelConfig values through store SvelteFlow --- .../src/components/Header/Header.svelte | 1 + .../src/routes/examples/a11y/+page.svelte | 40 +++++++++++++++++++ .../src/routes/examples/overview/Flow.svelte | 5 --- packages/react/src/store/index.ts | 1 - .../A11yDescriptions/A11yDescriptions.svelte | 28 +++++-------- .../container/SvelteFlow/SvelteFlow.svelte | 3 +- .../lib/container/SvelteFlow/Wrapper.svelte | 2 +- .../src/lib/container/SvelteFlow/types.ts | 4 +- .../src/lib/store/initial-store.svelte.ts | 5 ++- 9 files changed, 58 insertions(+), 31 deletions(-) create mode 100644 examples/svelte/src/routes/examples/a11y/+page.svelte diff --git a/examples/svelte/src/components/Header/Header.svelte b/examples/svelte/src/components/Header/Header.svelte index 1c251c67..f6260917 100644 --- a/examples/svelte/src/components/Header/Header.svelte +++ b/examples/svelte/src/components/Header/Header.svelte @@ -3,6 +3,7 @@ import { page } from '$app/stores'; const routes = [ + 'a11y', 'add-node-on-drop', 'color-mode', 'custom-connection-line', diff --git a/examples/svelte/src/routes/examples/a11y/+page.svelte b/examples/svelte/src/routes/examples/a11y/+page.svelte new file mode 100644 index 00000000..395a09c6 --- /dev/null +++ b/examples/svelte/src/routes/examples/a11y/+page.svelte @@ -0,0 +1,40 @@ + + + + + + + diff --git a/examples/svelte/src/routes/examples/overview/Flow.svelte b/examples/svelte/src/routes/examples/overview/Flow.svelte index 7c752462..3075a0e8 100644 --- a/examples/svelte/src/routes/examples/overview/Flow.svelte +++ b/examples/svelte/src/routes/examples/overview/Flow.svelte @@ -220,11 +220,6 @@ console.log('on selection changed via prop', { nodes, edges }); }} selectNodesOnDrag - labelConfig={{ - 'a11yDescription.node.default': 'Svelte Custom Node Description.', - 'a11yDescription.node.keyboardDisabled': 'Svelte Custom Keyboard Description', - 'a11yDescription.edge.default': 'Svelte Custom Edge Desc.', - }} > {#snippet before()} diff --git a/packages/react/src/store/index.ts b/packages/react/src/store/index.ts index 29111bb3..39702bd0 100644 --- a/packages/react/src/store/index.ts +++ b/packages/react/src/store/index.ts @@ -14,7 +14,6 @@ import { NodeOrigin, CoordinateExtent, fitViewport, - LabelConfig, } from '@xyflow/system'; import { applyEdgeChanges, applyNodeChanges, createSelectionChange, getSelectionChanges } from '../utils/changes'; diff --git a/packages/svelte/src/lib/components/A11yDescriptions/A11yDescriptions.svelte b/packages/svelte/src/lib/components/A11yDescriptions/A11yDescriptions.svelte index 09cd7b74..0383629e 100644 --- a/packages/svelte/src/lib/components/A11yDescriptions/A11yDescriptions.svelte +++ b/packages/svelte/src/lib/components/A11yDescriptions/A11yDescriptions.svelte @@ -1,32 +1,22 @@ {#if !store.disableKeyboardA11y} @@ -38,4 +28,4 @@ const defaultDescriptions = { > {store.ariaLiveMessage} -{/if} +{/if} \ No newline at end of file diff --git a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte index 78b7112e..9b039558 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte +++ b/packages/svelte/src/lib/container/SvelteFlow/SvelteFlow.svelte @@ -70,7 +70,6 @@ nodes = $bindable([]), edges = $bindable([]), viewport = $bindable(undefined), - descriptions, ...props }: SvelteFlowProps & Omit, 'onselectionchange'> = $props(); @@ -218,6 +217,6 @@ - + {@render children?.()} diff --git a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte index b492f0d3..3734cb25 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte +++ b/packages/svelte/src/lib/container/SvelteFlow/Wrapper.svelte @@ -92,7 +92,7 @@ noDragClass, noPanClass, noWheelClass, - descriptions, + labelConfig, ...divAttributes } = $derived(rest); /* eslint-enable @typescript-eslint/no-unused-vars */ diff --git a/packages/svelte/src/lib/container/SvelteFlow/types.ts b/packages/svelte/src/lib/container/SvelteFlow/types.ts index 25ae6e10..749f2fb8 100644 --- a/packages/svelte/src/lib/container/SvelteFlow/types.ts +++ b/packages/svelte/src/lib/container/SvelteFlow/types.ts @@ -21,7 +21,7 @@ import type { OnReconnect, OnReconnectStart, OnReconnectEnd, - descriptions + LabelConfig } from '@xyflow/system'; import type { @@ -476,5 +476,5 @@ export type SvelteFlowProps< * Custom accessibility messages for screen readers and a11y features. * Allows localization and customization of ARIA descriptions. */ - descriptions?: descriptions; + labelConfig?: LabelConfig; }; diff --git a/packages/svelte/src/lib/store/initial-store.svelte.ts b/packages/svelte/src/lib/store/initial-store.svelte.ts index 8ba4efa4..99f4c95b 100644 --- a/packages/svelte/src/lib/store/initial-store.svelte.ts +++ b/packages/svelte/src/lib/store/initial-store.svelte.ts @@ -7,6 +7,7 @@ import { getViewportForBounds, updateConnectionLookup, initialConnection, + defaultLabelConfig, type SelectionRect, type SnapGrid, type MarkerProps, @@ -32,7 +33,8 @@ import { type Handle, type OnReconnect, type OnReconnectStart, - type OnReconnectEnd + type OnReconnectEnd, + type LabelConfig } from '@xyflow/system'; import DefaultNode from '$lib/components/nodes/DefaultNode.svelte'; @@ -289,6 +291,7 @@ export function getInitialStore