From 64c36470cdc91bd8b6683051fad7c4e340876ab8 Mon Sep 17 00:00:00 2001 From: Ben Chidlow <26830309+fezproof@users.noreply.github.com> Date: Tue, 17 Sep 2024 13:42:21 +0800 Subject: [PATCH 01/18] Update nodes.ts to allow strong NodeType Update the NodeBase type to have a stronger NodeType field that can be undefined even if you specifically define it. --- packages/system/src/types/nodes.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/system/src/types/nodes.ts b/packages/system/src/types/nodes.ts index b405b5ba..ae4bbc27 100644 --- a/packages/system/src/types/nodes.ts +++ b/packages/system/src/types/nodes.ts @@ -9,7 +9,7 @@ import { Optional } from '../utils/types'; */ export type NodeBase< NodeData extends Record = Record, - NodeType extends string = string + NodeType extends string | undefined = string | undefined > = { /** Unique id of a node */ id: string; @@ -20,7 +20,7 @@ export type NodeBase< /** Arbitrary data passed to a node */ data: NodeData; /** Type of node defined in nodeTypes */ - type?: NodeType; + type: NodeType; /** Only relevant for default, source, target nodeType. controls source position * @example 'right', 'left', 'top', 'bottom' */ From 37e9f02f80b4632dba4427c2821206874cb9f567 Mon Sep 17 00:00:00 2001 From: fezproof <26830309+fezproof@users.noreply.github.com> Date: Wed, 18 Sep 2024 11:50:21 +0800 Subject: [PATCH 02/18] Updated `NodeBase` to allow undefined types and still handle explicit ones Updated svelte and react packages to accommodate this --- packages/react/src/types/nodes.ts | 2 +- packages/svelte/src/lib/types/nodes.ts | 2 +- packages/system/src/types/nodes.ts | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/react/src/types/nodes.ts b/packages/react/src/types/nodes.ts index f4ad2820..4307742d 100644 --- a/packages/react/src/types/nodes.ts +++ b/packages/react/src/types/nodes.ts @@ -9,7 +9,7 @@ import { NodeTypes } from './general'; */ export type Node< NodeData extends Record = Record, - NodeType extends string = string + NodeType extends string | undefined = undefined > = NodeBase & { style?: CSSProperties; className?: string; diff --git a/packages/svelte/src/lib/types/nodes.ts b/packages/svelte/src/lib/types/nodes.ts index 0e741c00..021dad70 100644 --- a/packages/svelte/src/lib/types/nodes.ts +++ b/packages/svelte/src/lib/types/nodes.ts @@ -15,7 +15,7 @@ export type InternalNode = InternalNodeBase = Record, - NodeType extends string = string + NodeType extends string | undefined = undefined > = NodeBase & { class?: string; style?: string; diff --git a/packages/system/src/types/nodes.ts b/packages/system/src/types/nodes.ts index ae4bbc27..b1d93369 100644 --- a/packages/system/src/types/nodes.ts +++ b/packages/system/src/types/nodes.ts @@ -19,8 +19,6 @@ export type NodeBase< position: XYPosition; /** Arbitrary data passed to a node */ data: NodeData; - /** Type of node defined in nodeTypes */ - type: NodeType; /** Only relevant for default, source, target nodeType. controls source position * @example 'right', 'left', 'top', 'bottom' */ @@ -63,7 +61,15 @@ export type NodeBase< width?: number; height?: number; }; -}; +} & (undefined extends NodeType + ? { + /** Type of node defined in nodeTypes */ + type?: string | undefined; + } + : { + /** Type of node defined in nodeTypes */ + type: NodeType; + }); export type InternalNodeBase = NodeType & { measured: { From dc25f1c833767d8ec8471f673b233c3f20adfe78 Mon Sep 17 00:00:00 2001 From: Tzu-Yu Lee Date: Sat, 17 May 2025 03:00:59 +0800 Subject: [PATCH 03/18] refactor(svelte): change a11y inline styles to classes In some environments, inline styles are not permitted due to security issues (e.g. strict CSP). The a11y messages will be visible in these environments due to browsers blocking inline styles. Change the inline styles to use classes instead. --- .../A11yDescriptions/A11yDescriptions.svelte | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/packages/svelte/src/lib/components/A11yDescriptions/A11yDescriptions.svelte b/packages/svelte/src/lib/components/A11yDescriptions/A11yDescriptions.svelte index a26778c1..a9716478 100644 --- a/packages/svelte/src/lib/components/A11yDescriptions/A11yDescriptions.svelte +++ b/packages/svelte/src/lib/components/A11yDescriptions/A11yDescriptions.svelte @@ -6,14 +6,14 @@ let { store }: { store: SvelteFlowStore } = $props(); -