@starci/grammar 0.17.1 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -8
- package/dist/.build-stamp.json +4 -4
- package/dist/common/components-forms.css +8 -8
- package/dist/common/components-navigation.css +146 -34
- package/dist/common/components-overlays.css +13 -15
- package/dist/common/components-spacing.css +97 -0
- package/dist/common/index.d.ts +1 -1
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -1
- package/dist/common/index.js.map +1 -1
- package/dist/common/registry.d.ts +15 -3
- package/dist/common/registry.d.ts.map +1 -1
- package/dist/common/registry.js +3 -2
- package/dist/common/registry.js.map +1 -1
- package/dist/common/renderers-navigation.d.ts +4 -4
- package/dist/common/renderers-navigation.d.ts.map +1 -1
- package/dist/common/renderers-navigation.js +1 -1
- package/dist/common/renderers-navigation.js.map +1 -1
- package/dist/common/renderers.d.ts +5 -1
- package/dist/common/renderers.d.ts.map +1 -1
- package/dist/common/renderers.js +4 -0
- package/dist/common/renderers.js.map +1 -1
- package/dist/common/spacing.d.ts +32 -2
- package/dist/common/spacing.d.ts.map +1 -1
- package/dist/common/spacing.js +29 -2
- package/dist/common/spacing.js.map +1 -1
- package/dist/common/styles.css +226 -79
- package/dist/core/branch/FlowGraph/index.d.ts +21 -7
- package/dist/core/branch/FlowGraph/index.d.ts.map +1 -1
- package/dist/core/branch/FlowGraph/index.js +236 -42
- package/dist/core/branch/FlowGraph/index.js.map +1 -1
- package/dist/core/branch/FlowGraph/layout.d.ts +58 -0
- package/dist/core/branch/FlowGraph/layout.d.ts.map +1 -1
- package/dist/core/branch/FlowGraph/layout.js +198 -0
- package/dist/core/branch/FlowGraph/layout.js.map +1 -1
- package/dist/core/branch/FlowGraph/types.d.ts +33 -3
- package/dist/core/branch/FlowGraph/types.d.ts.map +1 -1
- package/dist/core/branch/Rail/index.d.ts +1 -1
- package/dist/core/branch/Rail/index.d.ts.map +1 -1
- package/dist/core/branch/Rail/index.js +1 -1
- package/dist/core/branch/Rail/index.js.map +1 -1
- package/dist/core/branch/Tabs/index.d.ts +4 -4
- package/dist/core/branch/Tabs/index.d.ts.map +1 -1
- package/dist/core/branch/Tabs/index.js +1 -3
- package/dist/core/branch/Tabs/index.js.map +1 -1
- package/dist/core/composite/Stepper/index.d.ts +7 -2
- package/dist/core/composite/Stepper/index.d.ts.map +1 -1
- package/dist/core/composite/Stepper/index.js +1 -1
- package/dist/core/composite/Stepper/index.js.map +1 -1
- package/dist/core/composition/Cluster/index.d.ts +23 -0
- package/dist/core/composition/Cluster/index.d.ts.map +1 -0
- package/dist/core/composition/Cluster/index.js +8 -0
- package/dist/core/composition/Cluster/index.js.map +1 -0
- package/dist/core/composition/Grid/index.d.ts +32 -0
- package/dist/core/composition/Grid/index.d.ts.map +1 -0
- package/dist/core/composition/Grid/index.js +19 -0
- package/dist/core/composition/Grid/index.js.map +1 -0
- package/dist/core/composition/Page/index.js +1 -1
- package/dist/core/composition/Page/index.js.map +1 -1
- package/dist/core/composition/Stack/index.d.ts +30 -0
- package/dist/core/composition/Stack/index.d.ts.map +1 -0
- package/dist/core/composition/Stack/index.js +23 -0
- package/dist/core/composition/Stack/index.js.map +1 -0
- package/dist/core/dna.d.ts +7 -30
- package/dist/core/dna.d.ts.map +1 -1
- package/dist/core/dna.js +3 -17
- package/dist/core/dna.js.map +1 -1
- package/dist/core/primitive/Button/index.js +7 -2
- package/dist/core/primitive/Button/index.js.map +1 -1
- package/dist/core/primitive/ConnectionStatus/index.d.ts +15 -0
- package/dist/core/primitive/ConnectionStatus/index.d.ts.map +1 -0
- package/dist/core/primitive/ConnectionStatus/index.js +15 -0
- package/dist/core/primitive/ConnectionStatus/index.js.map +1 -0
- package/dist/core/primitive/Progress/index.d.ts +9 -2
- package/dist/core/primitive/Progress/index.d.ts.map +1 -1
- package/dist/core/primitive/Progress/index.js +3 -3
- package/dist/core/primitive/Progress/index.js.map +1 -1
- package/dist/core/styles.css +1 -1
- package/dist/offset-pop/components-navigation.css +1 -1
- package/dist/offset-pop/dna.d.ts +7 -53
- package/dist/offset-pop/dna.d.ts.map +1 -1
- package/dist/offset-pop/dna.js +3 -17
- package/dist/offset-pop/dna.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FlowGraphDirection, FlowGraphEdge, FlowGraphHeight, FlowGraphLayerHeader, FlowGraphLayout, FlowGraphNode } from "./types.js";
|
|
2
|
-
export { layeredPositions, radialPositions } from "./layout.js";
|
|
3
|
-
export type { FlowGraphDirection, FlowGraphEdge, FlowGraphHeight, FlowGraphLayerHeader, FlowGraphLayout, FlowGraphNode, FlowGraphNodeShape, FlowGraphNodeSize, FlowGraphTone } from "./types.js";
|
|
2
|
+
export { flowGraphDiameter, layeredPositions, orbitLayout, radialPositions } from "./layout.js";
|
|
3
|
+
export type { FlowGraphDirection, FlowGraphEdge, FlowGraphFill, FlowGraphHeight, FlowGraphLayerHeader, FlowGraphLayout, FlowGraphNode, FlowGraphNodeForm, FlowGraphNodeShape, FlowGraphNodeSize, FlowGraphRingPart, FlowGraphTone } from "./types.js";
|
|
4
4
|
export type FlowGraphProps = {
|
|
5
5
|
/** Names the graph for assistive technology, e.g. "Second brain". */
|
|
6
6
|
readonly label: string;
|
|
@@ -8,7 +8,8 @@ export type FlowGraphProps = {
|
|
|
8
8
|
readonly edges: ReadonlyArray<FlowGraphEdge>;
|
|
9
9
|
/**
|
|
10
10
|
* The selected node. Pass it (with `onSelect`) to control selection; leave it out and the graph keeps its own. The node stamps
|
|
11
|
-
* `data-grammar-selected` and the screen-reader list reports it
|
|
11
|
+
* `data-grammar-selected` and the screen-reader list reports it. A bubble draws a selected outline, and in `orbit` the edges
|
|
12
|
+
* from the root to the selected node draw strong; HeroUI has no graph node, so a pill draws none.
|
|
12
13
|
*/
|
|
13
14
|
readonly selectedId?: string | null;
|
|
14
15
|
/** Fires with the node id on click, Enter or Space, and with `null` when the empty canvas is clicked or Escape is pressed. */
|
|
@@ -30,9 +31,20 @@ export type FlowGraphProps = {
|
|
|
30
31
|
readonly showControls?: boolean;
|
|
31
32
|
/**
|
|
32
33
|
* `radial` places the nodes on rings round the root; `layered` puts a DAG in layers along `direction`; `manual` uses each
|
|
33
|
-
* node's `position
|
|
34
|
+
* node's `position`; `orbit` is the value-sized map of bubbles (see `expandedIds`). Defaults to `radial`, or to `layered`
|
|
35
|
+
* when a `direction` is given.
|
|
34
36
|
*/
|
|
35
37
|
readonly layout?: FlowGraphLayout;
|
|
38
|
+
/**
|
|
39
|
+
* `orbit` only: the ring-three nodes that are open. A node's children past ring three show only while it is open, on ring
|
|
40
|
+
* four. Pass it (with `onExpandedChange`) to control it; leave it out and the graph keeps its own, from `defaultExpandedIds`.
|
|
41
|
+
*/
|
|
42
|
+
readonly expandedIds?: ReadonlyArray<string>;
|
|
43
|
+
readonly defaultExpandedIds?: ReadonlyArray<string>;
|
|
44
|
+
/** Fires with the open ids when a node opens or closes: on click, or on Enter or Space, of a node that holds more. */
|
|
45
|
+
readonly onExpandedChange?: (ids: ReadonlyArray<string>) => void;
|
|
46
|
+
/** `orbit` only: the most nodes one open fan draws (default 30). The rest fold into a `+n` bubble that selects the parent. */
|
|
47
|
+
readonly fanLimit?: number;
|
|
36
48
|
/**
|
|
37
49
|
* The way edges run, `TB` (top to bottom) or `LR` (left to right). It places the target handle on the entering side and the
|
|
38
50
|
* source handle on the leaving side so edges follow the layout. Leave it out for the radial layout (both handles on top).
|
|
@@ -48,9 +60,11 @@ export type FlowGraphProps = {
|
|
|
48
60
|
};
|
|
49
61
|
/**
|
|
50
62
|
* A node-and-edge map drawn with React Flow (`@xyflow/react`, a peer dependency) in grammar tokens. The radial layout
|
|
51
|
-
* puts the root in the centre with its children on a ring and their children on an outer ring around them.
|
|
52
|
-
*
|
|
63
|
+
* puts the root in the centre with its children on a ring and their children on an outer ring around them. The orbit layout
|
|
64
|
+
* draws a value-sized map: bubbles (`form="bubble"`) on rings, with the nodes below ring three shown while their parent is
|
|
65
|
+
* open. Nodes are keyboard focusable (Tab) and selectable with Enter or Space, which also opens or closes a node that holds
|
|
66
|
+
* more; a visually hidden list repeats the nodes for screen readers.
|
|
53
67
|
* Contract: focus FOCUS-2, selection STATE-1, empty STATE-3.
|
|
54
68
|
*/
|
|
55
|
-
export declare const FlowGraph: ({ label, nodes, edges, selectedId, onSelect, height, fit, isInteractive, showControls, layout: layoutProp, direction, headers, emptyLabel, isLoading, className, }: FlowGraphProps) => import("react").JSX.Element;
|
|
69
|
+
export declare const FlowGraph: ({ label, nodes, edges, selectedId, onSelect, expandedIds, defaultExpandedIds, onExpandedChange, fanLimit, height, fit, isInteractive, showControls, layout: layoutProp, direction, headers, emptyLabel, isLoading, className, }: FlowGraphProps) => import("react").JSX.Element;
|
|
56
70
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/index.tsx"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAiB,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAoC,MAAM,YAAY,CAAA;AAE3L,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC/F,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAErP,MAAM,MAAM,cAAc,GAAG;IACzB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC5C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,8HAA8H;IAC9H,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC/C;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,MAAM,CAAA;IACnD;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACrC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAA;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAA;IACjC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACnD,sHAAsH;IACtH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;IAChE,8HAA8H;IAC9H,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,CAAA;IACvC,8HAA8H;IAC9H,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;IACtD,2DAA2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,+HAA+H;IAC/H,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAiPD;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,GAAI,iOAoBvB,cAAc,gCA8ShB,CAAA"}
|
|
@@ -2,10 +2,37 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { Background, Controls, Handle, Position, ReactFlow, useReactFlow, useStore, } from "@xyflow/react";
|
|
4
4
|
import { Link as RouterLink } from "react-aria-components";
|
|
5
|
-
import { memo, useCallback, useEffect, useMemo, useState } from "react";
|
|
5
|
+
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
6
6
|
import { Skeleton } from "../../primitive/Skeleton/index.js";
|
|
7
|
-
import { FLOW_GRAPH_NODE_MAX_WIDTH, flowGraphRoot, layerCoordinate, layeredPositions, layeredStepPosition, radialPositions } from "./layout.js";
|
|
8
|
-
export { layeredPositions, radialPositions } from "./layout.js";
|
|
7
|
+
import { FLOW_GRAPH_NODE_MAX_WIDTH, flowGraphBubbleDiameter, flowGraphRoot, layerCoordinate, layeredPositions, layeredStepPosition, orbitLayout, radialPositions, } from "./layout.js";
|
|
8
|
+
export { flowGraphDiameter, layeredPositions, orbitLayout, radialPositions } from "./layout.js";
|
|
9
|
+
/** The longest mark a bubble draws, in characters. */
|
|
10
|
+
const MARK_LENGTH = 4;
|
|
11
|
+
/** The token each ring arc and bubble tone paints from, with the fallback the sheet uses outside a root. */
|
|
12
|
+
const TONE_PAINT = {
|
|
13
|
+
neutral: "var(--muted, GrayText)",
|
|
14
|
+
accent: "var(--accent, Highlight)",
|
|
15
|
+
success: "var(--success, CanvasText)",
|
|
16
|
+
warning: "var(--warning, CanvasText)",
|
|
17
|
+
danger: "var(--danger, CanvasText)",
|
|
18
|
+
info: "var(--info, CanvasText)",
|
|
19
|
+
muted: "color-mix(in oklab, var(--muted, GrayText) 55%, transparent)",
|
|
20
|
+
};
|
|
21
|
+
/** A conic gradient of the ring arcs, clockwise from the top; undefined when the arcs hold nothing. */
|
|
22
|
+
const ringGradient = (ring) => {
|
|
23
|
+
const total = ring.reduce((sum, part) => sum + Math.max(part.value, 0), 0);
|
|
24
|
+
if (total <= 0)
|
|
25
|
+
return undefined;
|
|
26
|
+
let at = 0;
|
|
27
|
+
const stops = ring.filter((part) => part.value > 0).map((part) => {
|
|
28
|
+
const next = at + part.value / total * 100;
|
|
29
|
+
const stop = `${TONE_PAINT[part.tone]} ${at.toFixed(2)}% ${next.toFixed(2)}%`;
|
|
30
|
+
at = next;
|
|
31
|
+
return stop;
|
|
32
|
+
});
|
|
33
|
+
return `conic-gradient(${stops.join(", ")})`;
|
|
34
|
+
};
|
|
35
|
+
const fillOf = (node) => node.fill ?? (node.form === "bubble" ? "soft" : undefined);
|
|
9
36
|
const HANDLE_SIDES = {
|
|
10
37
|
radial: { target: Position.Top, source: Position.Top },
|
|
11
38
|
TB: { target: Position.Top, source: Position.Bottom },
|
|
@@ -15,14 +42,24 @@ const FlowGraphNodeView = memo(({ data }) => {
|
|
|
15
42
|
const { graphNode, isSelected, direction } = data;
|
|
16
43
|
const sides = HANDLE_SIDES[direction ?? "radial"];
|
|
17
44
|
const hasCount = graphNode.count !== undefined && graphNode.count !== "";
|
|
18
|
-
const
|
|
19
|
-
|
|
45
|
+
const isBubble = graphNode.form === "bubble";
|
|
46
|
+
const ring = isBubble && graphNode.ring !== undefined ? ringGradient(graphNode.ring) : undefined;
|
|
47
|
+
const nodeStyle = isBubble ? {
|
|
48
|
+
"--starci-flow-diameter": `${flowGraphBubbleDiameter(graphNode)}px`,
|
|
49
|
+
...(ring === undefined ? {} : { "--starci-flow-ring": ring }),
|
|
50
|
+
} : undefined;
|
|
51
|
+
const mark = graphNode.mark === undefined ? undefined : [...graphNode.mark].slice(0, MARK_LENGTH).join("");
|
|
52
|
+
const content = isBubble ? (_jsxs("span", { className: "starci-core-flow-graph-disc", children: [mark === undefined || mark === "" ? null : _jsx("span", { className: "starci-core-flow-graph-mark", children: mark }), graphNode.caption === undefined || graphNode.caption === "" ? null : _jsx("span", { className: "starci-core-flow-graph-caption", children: graphNode.caption })] })) : (_jsxs(_Fragment, { children: [_jsxs("span", { className: "starci-core-flow-graph-copy", children: [_jsx("span", { className: "starci-core-flow-graph-label", children: graphNode.label }), graphNode.description === undefined ? null : _jsx("span", { className: "starci-core-flow-graph-description", children: graphNode.description })] }), hasCount ? _jsx("span", { className: "starci-core-flow-graph-count", children: graphNode.count }) : null] }));
|
|
53
|
+
return (_jsxs("div", { className: "starci-core-flow-graph-node", "data-grammar-flow-node": graphNode.id, "data-dimmed": graphNode.isDimmed === true ? "true" : undefined, "data-expandable": data.isExpandable === true ? "true" : undefined, "data-fill": fillOf(graphNode), "data-form": graphNode.form ?? "label", "data-grammar-selected": isSelected ? "true" : "false", "data-placeholder": graphNode.isPlaceholder === true ? "true" : undefined, "data-ring": ring === undefined ? undefined : "true", "data-root": graphNode.isRoot === true ? "true" : undefined, "data-shape": graphNode.shape ?? "stadium", "data-size": graphNode.size ?? "md", "data-tone": graphNode.isPlaceholder === true ? "muted" : graphNode.tone ?? "neutral", style: nodeStyle, children: [_jsx(Handle, { className: "starci-core-flow-graph-handle", isConnectable: false, position: sides.target, type: "target" }), graphNode.href === undefined ? content : (_jsx(RouterLink, { className: "starci-core-flow-graph-link", "data-grammar-flow-link": "true", href: graphNode.href, children: content })), _jsx(Handle, { className: "starci-core-flow-graph-handle", isConnectable: false, position: sides.source, type: "source" })] }));
|
|
20
54
|
});
|
|
21
55
|
FlowGraphNodeView.displayName = "FlowGraphNodeView";
|
|
22
56
|
const FlowGraphHeaderView = memo(({ data }) => (_jsx("div", { className: "starci-core-flow-graph-header", "data-direction": data.direction, "data-grammar-flow-header": data.label, children: data.label })));
|
|
23
57
|
FlowGraphHeaderView.displayName = "FlowGraphHeaderView";
|
|
58
|
+
/** The dashed ring guides of the orbit layout: a square the size of the outermost ring, centred on the root. */
|
|
59
|
+
const FlowGraphGuideView = memo(({ data }) => (_jsx("svg", { "aria-hidden": "true", className: "starci-core-flow-graph-guide", height: data.size, width: data.size, children: data.radii.map((radius) => _jsx("circle", { cx: data.size / 2, cy: data.size / 2, r: radius }, radius)) })));
|
|
60
|
+
FlowGraphGuideView.displayName = "FlowGraphGuideView";
|
|
24
61
|
const EDGE_LABEL_PADDING = [6, 2];
|
|
25
|
-
const NODE_TYPES = { flowGraph: FlowGraphNodeView, flowGraphHeader: FlowGraphHeaderView };
|
|
62
|
+
const NODE_TYPES = { flowGraph: FlowGraphNodeView, flowGraphHeader: FlowGraphHeaderView, flowGraphGuide: FlowGraphGuideView };
|
|
26
63
|
const HEADER_OFFSET = 70;
|
|
27
64
|
const HEADER_SIDE_GAP = 24;
|
|
28
65
|
const FIT_OPTIONS = { padding: 0.2, duration: 0 };
|
|
@@ -31,8 +68,23 @@ const MAX_ZOOM = 2;
|
|
|
31
68
|
const NODE_TEXT_PX = { sm: 12, md: 14, lg: 16 };
|
|
32
69
|
/** Node text never renders below this many px under the `readable` fit. */
|
|
33
70
|
const READABLE_TEXT_PX = 12;
|
|
34
|
-
/**
|
|
35
|
-
|
|
71
|
+
/**
|
|
72
|
+
* The zoom at which the smallest node text present renders at {@link READABLE_TEXT_PX}; null when no node carries label text
|
|
73
|
+
* (a bubble keeps its text at a fixed screen size instead, see {@link ZoomMirror}).
|
|
74
|
+
*/
|
|
75
|
+
const readableZoomFor = (nodes) => {
|
|
76
|
+
const labelled = nodes.filter((node) => node.form !== "bubble");
|
|
77
|
+
return labelled.length === 0 ? null : READABLE_TEXT_PX / Math.min(...labelled.map((node) => NODE_TEXT_PX[node.size ?? "md"]));
|
|
78
|
+
};
|
|
79
|
+
/** Below these zooms a bubble's caption and mark no longer fit its disc at the fixed screen size, and drop out. */
|
|
80
|
+
const CAPTION_ZOOM = 0.42;
|
|
81
|
+
const MARK_ZOOM = 0.5;
|
|
82
|
+
/** Reports the viewport zoom (two decimals) so the figure can publish `--starci-flow-zoom` to the bubbles' text. */
|
|
83
|
+
const ZoomMirror = ({ onZoom }) => {
|
|
84
|
+
const zoom = useStore((state) => Math.round(state.transform[2] * 100) / 100);
|
|
85
|
+
useEffect(() => { onZoom(zoom); }, [zoom, onZoom]);
|
|
86
|
+
return null;
|
|
87
|
+
};
|
|
36
88
|
/**
|
|
37
89
|
* Re-fits the viewport once the nodes are measured, and again whenever the set of nodes, the layout or the canvas size
|
|
38
90
|
* changes. Under a readable zoom, a fit that would go below it asks the canvas to grow to the graph's aspect at the
|
|
@@ -75,13 +127,43 @@ const labelledEdges = (nodes, edges) => {
|
|
|
75
127
|
const names = new Map(nodes.map((node) => [node.id, node.label]));
|
|
76
128
|
return edges.flatMap((edge) => edge.label === undefined || edge.label === "" ? [] : [{ id: edge.id, text: `${names.get(edge.source) ?? edge.source} → ${names.get(edge.target) ?? edge.target}: ${edge.label}` }]);
|
|
77
129
|
};
|
|
130
|
+
/** The most nodes one open fan draws before the rest fold into a `+n` bubble. */
|
|
131
|
+
const DEFAULT_FAN_LIMIT = 30;
|
|
132
|
+
/** The width of the `+n` bubble that closes a fan. */
|
|
133
|
+
const MORE_DIAMETER = 44;
|
|
134
|
+
/** Half the widest tip, and the room a tip needs above its node before it flips below, in px. */
|
|
135
|
+
const TIP_HALF_WIDTH = 128;
|
|
136
|
+
const TIP_ROOM = 56;
|
|
137
|
+
/** The `+n` bubble that closes a fan: it names the parent in its label, and selecting it selects the parent. */
|
|
138
|
+
const moreNodeFor = (id, count, parent) => ({
|
|
139
|
+
id,
|
|
140
|
+
label: parent === undefined ? `${count} more` : `${count} more under ${parent.label}`,
|
|
141
|
+
form: "bubble",
|
|
142
|
+
mark: count > 999 ? "999+" : `+${count}`,
|
|
143
|
+
diameter: MORE_DIAMETER,
|
|
144
|
+
fill: "soft",
|
|
145
|
+
});
|
|
146
|
+
/** The ids on the path from the root to `id`, `id` included; empty when there is no layout path. */
|
|
147
|
+
const pathTo = (id, orbit) => {
|
|
148
|
+
const path = new Set();
|
|
149
|
+
if (orbit === null)
|
|
150
|
+
return path;
|
|
151
|
+
let current = id ?? undefined;
|
|
152
|
+
while (current !== undefined && !path.has(current)) {
|
|
153
|
+
path.add(current);
|
|
154
|
+
current = orbit.parents.get(current);
|
|
155
|
+
}
|
|
156
|
+
return path;
|
|
157
|
+
};
|
|
78
158
|
/**
|
|
79
159
|
* A node-and-edge map drawn with React Flow (`@xyflow/react`, a peer dependency) in grammar tokens. The radial layout
|
|
80
|
-
* puts the root in the centre with its children on a ring and their children on an outer ring around them.
|
|
81
|
-
*
|
|
160
|
+
* puts the root in the centre with its children on a ring and their children on an outer ring around them. The orbit layout
|
|
161
|
+
* draws a value-sized map: bubbles (`form="bubble"`) on rings, with the nodes below ring three shown while their parent is
|
|
162
|
+
* open. Nodes are keyboard focusable (Tab) and selectable with Enter or Space, which also opens or closes a node that holds
|
|
163
|
+
* more; a visually hidden list repeats the nodes for screen readers.
|
|
82
164
|
* Contract: focus FOCUS-2, selection STATE-1, empty STATE-3.
|
|
83
165
|
*/
|
|
84
|
-
export const FlowGraph = ({ label, nodes, edges, selectedId, onSelect, height = "md", fit = "readable", isInteractive = true, showControls, layout: layoutProp, direction, headers, emptyLabel = "Nothing to show yet.", isLoading = false, className, }) => {
|
|
166
|
+
export const FlowGraph = ({ label, nodes, edges, selectedId, onSelect, expandedIds, defaultExpandedIds, onExpandedChange, fanLimit = DEFAULT_FAN_LIMIT, height = "md", fit = "readable", isInteractive = true, showControls, layout: layoutProp, direction, headers, emptyLabel = "Nothing to show yet.", isLoading = false, className, }) => {
|
|
85
167
|
const [ownSelectedId, setOwnSelectedId] = useState(null);
|
|
86
168
|
const currentId = selectedId === undefined ? ownSelectedId : selectedId;
|
|
87
169
|
const select = (id) => {
|
|
@@ -89,31 +171,97 @@ export const FlowGraph = ({ label, nodes, edges, selectedId, onSelect, height =
|
|
|
89
171
|
setOwnSelectedId(id);
|
|
90
172
|
onSelect?.(id);
|
|
91
173
|
};
|
|
174
|
+
const [ownExpanded, setOwnExpanded] = useState(defaultExpandedIds ?? []);
|
|
175
|
+
const openIds = expandedIds ?? ownExpanded;
|
|
176
|
+
const openKey = openIds.join("\u0000");
|
|
177
|
+
const expanded = useMemo(() => new Set(openKey === "" ? [] : openKey.split("\u0000")), [openKey]);
|
|
178
|
+
const toggle = (id) => {
|
|
179
|
+
const next = expanded.has(id) ? openIds.filter((open) => open !== id) : [...openIds, id];
|
|
180
|
+
if (expandedIds === undefined)
|
|
181
|
+
setOwnExpanded(next);
|
|
182
|
+
onExpandedChange?.(next);
|
|
183
|
+
};
|
|
92
184
|
const layout = layoutProp ?? (direction === undefined ? "radial" : "layered");
|
|
93
185
|
const flowDirection = direction ?? (layout === "layered" ? "TB" : undefined);
|
|
186
|
+
const orbit = useMemo(() => layout === "orbit" ? orbitLayout(nodes, edges, { expanded, fanLimit }) : null, [layout, nodes, edges, expanded, fanLimit]);
|
|
187
|
+
// The orbit layout draws the rings and the fans of the open nodes, plus the `+n` bubbles that close a fan.
|
|
188
|
+
const shownNodes = useMemo(() => {
|
|
189
|
+
if (orbit === null)
|
|
190
|
+
return nodes;
|
|
191
|
+
const byId = new Map(nodes.map((node) => [node.id, node]));
|
|
192
|
+
return [
|
|
193
|
+
...nodes.filter((node) => orbit.visible.has(node.id)),
|
|
194
|
+
...orbit.more.map((more) => moreNodeFor(more.id, more.count, byId.get(more.parentId))),
|
|
195
|
+
];
|
|
196
|
+
}, [nodes, orbit]);
|
|
197
|
+
const shownEdges = useMemo(() => {
|
|
198
|
+
if (orbit === null)
|
|
199
|
+
return edges;
|
|
200
|
+
const shown = new Set(shownNodes.map((node) => node.id));
|
|
201
|
+
return [
|
|
202
|
+
...edges.filter((edge) => shown.has(edge.source) && shown.has(edge.target)),
|
|
203
|
+
...orbit.more.map((more) => ({ id: `${more.id}-edge`, source: more.parentId, target: more.id })),
|
|
204
|
+
];
|
|
205
|
+
}, [edges, orbit, shownNodes]);
|
|
206
|
+
const moreParents = useMemo(() => new Map((orbit?.more ?? []).map((more) => [more.id, more.parentId])), [orbit]);
|
|
207
|
+
const dimmedIds = useMemo(() => new Set(shownNodes.filter((node) => node.isDimmed === true).map((node) => node.id)), [shownNodes]);
|
|
208
|
+
const pathIds = useMemo(() => pathTo(currentId, orbit), [currentId, orbit]);
|
|
94
209
|
const layered = useMemo(() => layout === "layered" ? layeredPositions(nodes, edges, flowDirection ?? "TB") : null, [layout, nodes, edges, flowDirection]);
|
|
95
210
|
const positions = useMemo(() => {
|
|
96
211
|
if (layout === "radial")
|
|
97
212
|
return radialPositions(nodes, edges);
|
|
213
|
+
if (orbit !== null)
|
|
214
|
+
return orbit.positions;
|
|
98
215
|
return layered?.positions ?? null;
|
|
99
|
-
}, [layout, nodes, edges, layered]);
|
|
216
|
+
}, [layout, nodes, edges, layered, orbit]);
|
|
100
217
|
const rootId = flowGraphRoot(nodes)?.id;
|
|
101
|
-
const flowNodes = useMemo(() =>
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
218
|
+
const flowNodes = useMemo(() => shownNodes.map((graphNode) => {
|
|
219
|
+
const isExpandable = orbit?.expandable.has(graphNode.id) === true;
|
|
220
|
+
const domAttributes = {
|
|
221
|
+
...(isExpandable && graphNode.href === undefined ? { "aria-expanded": expanded.has(graphNode.id) } : {}),
|
|
222
|
+
...(graphNode.form === "bubble" && graphNode.description !== undefined ? { "aria-description": graphNode.description } : {}),
|
|
223
|
+
};
|
|
224
|
+
return {
|
|
225
|
+
id: graphNode.id,
|
|
226
|
+
type: "flowGraph",
|
|
227
|
+
position: positions?.get(graphNode.id) ?? graphNode.position ?? { x: 0, y: 0 },
|
|
228
|
+
data: {
|
|
229
|
+
graphNode: layout === "radial" || layout === "orbit" ? { ...graphNode, isRoot: graphNode.id === rootId } : graphNode,
|
|
230
|
+
isSelected: graphNode.id === currentId,
|
|
231
|
+
...(isExpandable ? { isExpandable } : {}),
|
|
232
|
+
...(flowDirection === undefined ? {} : { direction: flowDirection }),
|
|
233
|
+
},
|
|
234
|
+
selected: graphNode.id === currentId,
|
|
235
|
+
ariaLabel: labelFor(graphNode),
|
|
236
|
+
// An openable node is a button that reports whether it is open.
|
|
237
|
+
...(isExpandable && graphNode.href === undefined ? { ariaRole: "button" } : {}),
|
|
238
|
+
...(Object.keys(domAttributes).length === 0 ? {} : { domAttributes }),
|
|
239
|
+
draggable: false,
|
|
240
|
+
connectable: false,
|
|
241
|
+
// A link node keeps one keyboard stop: the anchor inside it.
|
|
242
|
+
...(graphNode.href === undefined ? {} : { focusable: false }),
|
|
243
|
+
};
|
|
244
|
+
}), [shownNodes, positions, layout, rootId, currentId, flowDirection, orbit, expanded]);
|
|
245
|
+
const guideNodes = useMemo(() => {
|
|
246
|
+
if (orbit === null || orbit.radii.length === 0)
|
|
247
|
+
return [];
|
|
248
|
+
const size = orbit.extent * 2;
|
|
249
|
+
return [{
|
|
250
|
+
id: "grammar-flow-guide",
|
|
251
|
+
type: "flowGraphGuide",
|
|
252
|
+
position: { x: 0, y: 0 },
|
|
253
|
+
width: size,
|
|
254
|
+
height: size,
|
|
255
|
+
data: { radii: orbit.radii, size },
|
|
256
|
+
className: "starci-core-flow-graph-guide-node",
|
|
257
|
+
zIndex: -1,
|
|
258
|
+
draggable: false,
|
|
259
|
+
connectable: false,
|
|
260
|
+
selectable: false,
|
|
261
|
+
focusable: false,
|
|
262
|
+
ariaHidden: true,
|
|
263
|
+
}];
|
|
264
|
+
}, [orbit]);
|
|
117
265
|
const headerNodes = useMemo(() => {
|
|
118
266
|
if (headers === undefined || headers.length === 0 || flowDirection === undefined)
|
|
119
267
|
return [];
|
|
@@ -137,28 +285,70 @@ export const FlowGraph = ({ label, nodes, edges, selectedId, onSelect, height =
|
|
|
137
285
|
};
|
|
138
286
|
});
|
|
139
287
|
}, [headers, flowDirection, nodes, positions, layout]);
|
|
140
|
-
const allNodes = useMemo(() => [...headerNodes, ...flowNodes], [headerNodes, flowNodes]);
|
|
141
|
-
const flowEdges = useMemo(() =>
|
|
288
|
+
const allNodes = useMemo(() => [...guideNodes, ...headerNodes, ...flowNodes], [guideNodes, headerNodes, flowNodes]);
|
|
289
|
+
const flowEdges = useMemo(() => shownEdges.map((edge) => {
|
|
142
290
|
// A layered edge that skips layers turns in a gap, never inside a skipped layer (see layeredStepPosition).
|
|
143
291
|
const stepPosition = layered === null ? undefined : layeredStepPosition(edge, layered.positions, layered.layers, flowDirection ?? "TB");
|
|
292
|
+
const classes = [
|
|
293
|
+
"starci-core-flow-graph-edge",
|
|
294
|
+
edge.isPlaceholder === true ? "starci-core-flow-graph-edge-placeholder" : "",
|
|
295
|
+
// An edge dims with its target; the edges from the root to the selected node draw strong.
|
|
296
|
+
dimmedIds.has(edge.target) ? "starci-core-flow-graph-edge-dimmed" : "",
|
|
297
|
+
pathIds.has(edge.source) && pathIds.has(edge.target) ? "starci-core-flow-graph-edge-strong" : "",
|
|
298
|
+
].filter(Boolean).join(" ");
|
|
144
299
|
return {
|
|
145
300
|
id: edge.id,
|
|
146
301
|
source: edge.source,
|
|
147
302
|
target: edge.target,
|
|
148
|
-
type: layout === "radial" ? "straight" : "smoothstep",
|
|
303
|
+
type: layout === "radial" || layout === "orbit" ? "straight" : "smoothstep",
|
|
149
304
|
...(stepPosition === undefined ? {} : { pathOptions: { stepPosition } }),
|
|
150
|
-
className:
|
|
305
|
+
className: classes,
|
|
151
306
|
// The label sits on its own chip at the midpoint; its paint is the grammar's (`.react-flow__edge-text*` in the sheet).
|
|
152
307
|
...(edge.label === undefined || edge.label === "" ? {} : { label: edge.label, labelShowBg: true, labelBgPadding: EDGE_LABEL_PADDING, labelBgBorderRadius: 4 }),
|
|
153
308
|
focusable: false,
|
|
154
309
|
selectable: false,
|
|
155
310
|
animated: false,
|
|
156
311
|
};
|
|
157
|
-
}), [
|
|
158
|
-
const edgeLabels = useMemo(() => labelledEdges(
|
|
159
|
-
const signature = `${layout}:${flowDirection ?? ""}:${headerNodes.length}:${
|
|
312
|
+
}), [shownEdges, layout, layered, flowDirection, dimmedIds, pathIds]);
|
|
313
|
+
const edgeLabels = useMemo(() => labelledEdges(shownNodes, shownEdges), [shownNodes, shownEdges]);
|
|
314
|
+
const signature = `${layout}:${flowDirection ?? ""}:${headerNodes.length}:${shownNodes.map((node) => node.id).join("|")}`;
|
|
315
|
+
// Opening a node that holds more selects it and toggles it; the `+n` bubble selects the node it closes.
|
|
316
|
+
const activate = (id) => {
|
|
317
|
+
const parentId = moreParents.get(id);
|
|
318
|
+
if (parentId !== undefined) {
|
|
319
|
+
select(parentId);
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
select(id);
|
|
323
|
+
if (orbit?.expandable.has(id) === true)
|
|
324
|
+
toggle(id);
|
|
325
|
+
};
|
|
326
|
+
const figureRef = useRef(null);
|
|
327
|
+
const [tip, setTip] = useState(null);
|
|
328
|
+
const [zoom, setZoom] = useState(1);
|
|
329
|
+
const shownById = useMemo(() => new Map(shownNodes.map((node) => [node.id, node])), [shownNodes]);
|
|
330
|
+
// One tip for the node under the pointer or the keyboard focus: a bubble draws no words, so its name and description show here.
|
|
331
|
+
const showTip = (element) => {
|
|
332
|
+
const id = element?.getAttribute("data-id") ?? null;
|
|
333
|
+
const figure = figureRef.current;
|
|
334
|
+
if (element === null || id === null || figure === null || shownById.get(id)?.form !== "bubble") {
|
|
335
|
+
setTip(null);
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
const box = element.getBoundingClientRect();
|
|
339
|
+
const frame = figure.getBoundingClientRect();
|
|
340
|
+
const above = box.top - frame.top;
|
|
341
|
+
setTip({
|
|
342
|
+
id,
|
|
343
|
+
x: Math.min(Math.max(box.left + box.width / 2 - frame.left, TIP_HALF_WIDTH), Math.max(frame.width - TIP_HALF_WIDTH, TIP_HALF_WIDTH)),
|
|
344
|
+
y: above >= TIP_ROOM ? above : box.bottom - frame.top,
|
|
345
|
+
isBelow: above < TIP_ROOM,
|
|
346
|
+
});
|
|
347
|
+
};
|
|
348
|
+
const tipNode = tip === null ? undefined : shownById.get(tip.id);
|
|
160
349
|
const onKeyDown = (event) => {
|
|
161
350
|
if (event.key === "Escape") {
|
|
351
|
+
setTip(null);
|
|
162
352
|
if (currentId !== null)
|
|
163
353
|
select(null);
|
|
164
354
|
return;
|
|
@@ -169,26 +359,30 @@ export const FlowGraph = ({ label, nodes, edges, selectedId, onSelect, height =
|
|
|
169
359
|
return; // the link owns Enter
|
|
170
360
|
const target = event.target instanceof Element ? event.target.closest(".react-flow__node") : null;
|
|
171
361
|
const id = target?.getAttribute("data-id");
|
|
172
|
-
if (id === null || id === undefined)
|
|
362
|
+
if (id === null || id === undefined || !shownById.has(id))
|
|
173
363
|
return;
|
|
174
364
|
event.preventDefault();
|
|
175
|
-
|
|
365
|
+
activate(id);
|
|
176
366
|
};
|
|
367
|
+
const onFocus = (event) => showTip(event.target instanceof Element ? event.target.closest(".react-flow__node") : null);
|
|
177
368
|
const customHeight = height === "sm" || height === "md" || height === "lg" ? undefined : typeof height === "number" ? `${height}px` : height;
|
|
178
369
|
const controls = showControls ?? isInteractive;
|
|
179
370
|
// The readable fit grows the canvas for one graph; a new set of nodes or layout starts again from `height`.
|
|
180
|
-
const readableZoom = fit === "readable" &&
|
|
371
|
+
const readableZoom = fit === "readable" && shownNodes.length > 0 ? readableZoomFor(shownNodes) : null;
|
|
181
372
|
const [growth, setGrowth] = useState(null);
|
|
182
373
|
const grownHeight = growth !== null && growth.signature === signature ? growth.height : null;
|
|
183
374
|
const onGrow = useCallback((next) => setGrowth({ signature, height: next }), [signature]);
|
|
184
375
|
// A grown canvas is taller than the screen may be: the wheel scrolls the page, the zoom buttons still zoom.
|
|
185
376
|
const wheelZooms = isInteractive && grownHeight === null;
|
|
186
|
-
const
|
|
377
|
+
const hasBubbles = shownNodes.some((node) => node.form === "bubble");
|
|
378
|
+
const style = customHeight === undefined && grownHeight === null && !hasBubbles ? undefined : {
|
|
187
379
|
...(customHeight === undefined ? {} : { "--starci-flow-height": customHeight }),
|
|
188
380
|
...(grownHeight === null ? {} : { "--starci-flow-grown-height": `${grownHeight}px` }),
|
|
381
|
+
// The bubbles' text keeps one screen size: it is sized in graph units by the inverse of this zoom.
|
|
382
|
+
...(hasBubbles ? { "--starci-flow-zoom": zoom } : {}),
|
|
189
383
|
};
|
|
190
|
-
return (_jsx("figure", { "aria-label": label, className: ["starci-core-flow-graph", className].filter(Boolean).join(" "), "data-component": "FlowGraph", "data-contract": "FOCUS-2 STATE-1 STATE-3", "data-grammar-flow-direction": flowDirection, "data-grammar-flow-height": customHeight === undefined ? height : "custom", "data-grammar-flow-interactive": isInteractive ? "true" : "false", "data-grammar-flow-layout": layout, "data-grammar-flow-fit": fit, "data-grammar-flow-grown": grownHeight === null ? undefined : "true", "data-tier": "branch", style: style, ...(isLoading ? { "aria-busy": true, "data-loading": "true" } : {}), onKeyDown: onKeyDown, children: isLoading ? (_jsx("div", { className: "starci-core-flow-graph-canvas starci-core-flow-graph-loading", "data-grammar-flow-loading": "true", children: _jsx(Skeleton, { shape: "rect" }) })) : nodes.length === 0 ? (_jsx("p", { className: "starci-core-flow-graph-empty", "data-contract": "STATE-3", "data-grammar-flow-empty": "true", children: emptyLabel })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "starci-core-flow-graph-canvas", children: _jsxs(ReactFlow, { edges: flowEdges, edgesFocusable: false, elementsSelectable: true, fitView: true, fitViewOptions: FIT_OPTIONS, maxZoom: MAX_ZOOM, minZoom: 0.2, nodeOrigin: [0.5, 0.5], nodeTypes: NODE_TYPES, nodes: allNodes, nodesConnectable: false, nodesDraggable: false, nodesFocusable: true, onNodeClick: (_event, node) => { if (node.type === "flowGraph")
|
|
191
|
-
|
|
192
|
-
select(null); }, panOnDrag: isInteractive, panOnScroll: false, preventScrolling: wheelZooms, proOptions: { hideAttribution: true }, zoomOnDoubleClick: false, zoomOnPinch: isInteractive, zoomOnScroll: wheelZooms, children: [_jsx(Background, { className: "starci-core-flow-graph-background", gap: 1000, size: 0 }), controls ? _jsx(Controls, { "aria-label": `${label}: zoom`, className: "starci-core-flow-graph-controls", showInteractive: false }) : null, _jsx(Refit, { signature: signature, readableZoom: readableZoom, onGrow: onGrow })] }) }), _jsx("ul", { className: "starci-core-visually-hidden", "data-grammar-flow-fallback": "true", children:
|
|
384
|
+
return (_jsx("figure", { "aria-label": label, className: ["starci-core-flow-graph", className].filter(Boolean).join(" "), "data-component": "FlowGraph", "data-contract": "FOCUS-2 STATE-1 STATE-3", "data-grammar-flow-caption": hasBubbles && zoom < CAPTION_ZOOM ? "off" : undefined, "data-grammar-flow-direction": flowDirection, "data-grammar-flow-height": customHeight === undefined ? height : "custom", "data-grammar-flow-interactive": isInteractive ? "true" : "false", "data-grammar-flow-layout": layout, "data-grammar-flow-fit": fit, "data-grammar-flow-grown": grownHeight === null ? undefined : "true", "data-grammar-flow-mark": hasBubbles && zoom < MARK_ZOOM ? "off" : undefined, "data-tier": "branch", ref: figureRef, style: style, ...(isLoading ? { "aria-busy": true, "data-loading": "true" } : {}), onBlur: () => setTip(null), onFocus: onFocus, onKeyDown: onKeyDown, children: isLoading ? (_jsx("div", { className: "starci-core-flow-graph-canvas starci-core-flow-graph-loading", "data-grammar-flow-loading": "true", children: _jsx(Skeleton, { shape: "rect" }) })) : nodes.length === 0 ? (_jsx("p", { className: "starci-core-flow-graph-empty", "data-contract": "STATE-3", "data-grammar-flow-empty": "true", children: emptyLabel })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "starci-core-flow-graph-canvas", children: _jsxs(ReactFlow, { edges: flowEdges, edgesFocusable: false, elementsSelectable: true, fitView: true, fitViewOptions: FIT_OPTIONS, maxZoom: MAX_ZOOM, minZoom: 0.2, nodeOrigin: [0.5, 0.5], nodeTypes: NODE_TYPES, nodes: allNodes, nodesConnectable: false, nodesDraggable: false, nodesFocusable: true, onMoveStart: () => setTip(null), onNodeClick: (_event, node) => { if (node.type === "flowGraph")
|
|
385
|
+
activate(node.id); }, onNodeMouseEnter: (event) => showTip(event.currentTarget instanceof Element ? event.currentTarget : null), onNodeMouseLeave: () => setTip(null), onPaneClick: () => { if (currentId !== null)
|
|
386
|
+
select(null); }, panOnDrag: isInteractive, panOnScroll: false, preventScrolling: wheelZooms, proOptions: { hideAttribution: true }, zoomOnDoubleClick: false, zoomOnPinch: isInteractive, zoomOnScroll: wheelZooms, children: [_jsx(Background, { className: "starci-core-flow-graph-background", gap: 1000, size: 0 }), controls ? _jsx(Controls, { "aria-label": `${label}: zoom`, className: "starci-core-flow-graph-controls", showInteractive: false }) : null, _jsx(Refit, { signature: signature, readableZoom: readableZoom, onGrow: onGrow }), hasBubbles ? _jsx(ZoomMirror, { onZoom: setZoom }) : null] }) }), tip === null || tipNode === undefined ? null : (_jsxs("div", { "aria-hidden": "true", className: "starci-core-flow-graph-tip", "data-grammar-flow-tip": tip.id, "data-placement": tip.isBelow ? "bottom" : "top", style: { insetInlineStart: `${tip.x}px`, insetBlockStart: `${tip.y}px` }, children: [_jsx("span", { className: "starci-core-flow-graph-tip-label", children: tipNode.label }), tipNode.description === undefined ? null : _jsx("span", { className: "starci-core-flow-graph-tip-description", children: tipNode.description })] })), _jsx("ul", { className: "starci-core-visually-hidden", "data-grammar-flow-fallback": "true", children: shownNodes.map((node) => _jsx("li", { ...(node.id === currentId ? { "aria-current": "true" } : {}), children: labelFor(node) }, node.id)) }), edgeLabels.length === 0 ? null : (_jsx("ul", { className: "starci-core-visually-hidden", "data-grammar-flow-edge-fallback": "true", children: edgeLabels.map((edge) => _jsx("li", { children: edge.text }, edge.id)) }))] })) }));
|
|
193
387
|
};
|
|
194
388
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -47,4 +47,62 @@ export declare const layeredPositions: (nodes: ReadonlyArray<FlowGraphNode>, edg
|
|
|
47
47
|
* in the first gap (running along the target's lane). A node within half a lane gap of the run blocks it.
|
|
48
48
|
*/
|
|
49
49
|
export declare const layeredStepPosition: (edge: FlowGraphEdge, positions: ReadonlyMap<string, FlowGraphPoint>, layers: ReadonlyMap<string, number>, direction: FlowGraphDirection) => number | undefined;
|
|
50
|
+
/** The bubble width range in graph units, and the width a bubble takes when it gives none. */
|
|
51
|
+
export declare const FLOW_GRAPH_DIAMETER: {
|
|
52
|
+
readonly min: 24;
|
|
53
|
+
readonly max: 128;
|
|
54
|
+
};
|
|
55
|
+
export declare const FLOW_GRAPH_DEFAULT_DIAMETER = 48;
|
|
56
|
+
/**
|
|
57
|
+
* The bubble width for a value: a square-root scale, so the disc's area tracks the value. `max` is the value that draws at the
|
|
58
|
+
* widest, `range.max`; a value of 0 or less draws at `range.min`. The range defaults to the 24 to 128 a bubble accepts.
|
|
59
|
+
*/
|
|
60
|
+
export declare const flowGraphDiameter: (value: number, max: number, range?: {
|
|
61
|
+
readonly min: number;
|
|
62
|
+
readonly max: number;
|
|
63
|
+
}) => number;
|
|
64
|
+
/** The width a bubble draws at: its `diameter` held to the range. */
|
|
65
|
+
export declare const flowGraphBubbleDiameter: (node: FlowGraphNode) => number;
|
|
66
|
+
/** The ring distances of the orbit layout, in graph units. */
|
|
67
|
+
export declare const ORBIT_SECOND_RING = 226;
|
|
68
|
+
export declare const ORBIT_RING_GAP = 136;
|
|
69
|
+
export declare const ORBIT_STAGGER = 34;
|
|
70
|
+
export declare const ORBIT_FAN_GAP = 160;
|
|
71
|
+
export declare const ORBIT_FAN_STEP = 44;
|
|
72
|
+
/** The room a label pill claims on its ring in the orbit layout (a bubble claims its diameter). */
|
|
73
|
+
export declare const ORBIT_LABEL_SPAN = 120;
|
|
74
|
+
export type OrbitMore = {
|
|
75
|
+
/** The id of the synthetic `+n` bubble. */
|
|
76
|
+
readonly id: string;
|
|
77
|
+
/** The node whose fan it closes; selecting the bubble selects this node. */
|
|
78
|
+
readonly parentId: string;
|
|
79
|
+
/** How many members the fan holds beyond the limit. */
|
|
80
|
+
readonly count: number;
|
|
81
|
+
};
|
|
82
|
+
export type OrbitLayout = {
|
|
83
|
+
readonly positions: ReadonlyMap<string, FlowGraphPoint>;
|
|
84
|
+
/** The parent of every node the root reaches, along the shortest path. */
|
|
85
|
+
readonly parents: ReadonlyMap<string, string>;
|
|
86
|
+
/** The ids of the real nodes that draw now: rings one to three, the fans of open nodes, and the nodes the root does not reach. */
|
|
87
|
+
readonly visible: ReadonlySet<string>;
|
|
88
|
+
/** The nodes on ring three that hold deeper nodes, which show only while the node is open. */
|
|
89
|
+
readonly expandable: ReadonlySet<string>;
|
|
90
|
+
readonly more: ReadonlyArray<OrbitMore>;
|
|
91
|
+
/** The dashed guide rings. */
|
|
92
|
+
readonly radii: ReadonlyArray<number>;
|
|
93
|
+
/** Half the width of the square that holds the guides. */
|
|
94
|
+
readonly extent: number;
|
|
95
|
+
};
|
|
96
|
+
export declare const orbitMoreId: (parentId: string) => string;
|
|
97
|
+
/**
|
|
98
|
+
* Orbit positions, node centres in graph units, the root at (0, 0). Ring two holds the root's children in sectors weighted by
|
|
99
|
+
* what they hold; ring three holds their children, staggered on two radii inside the sector so it stays compact; ring four
|
|
100
|
+
* holds the fans of the ring-three nodes in `expanded`: every node below such a node, up to `fanLimit`, then a `+n` bubble.
|
|
101
|
+
* Fans sit on their node's bearing and push apart when several are open, the sequence cut at the widest empty arc so a fan
|
|
102
|
+
* never wraps into the first one. Nodes the root cannot reach share an outer ring.
|
|
103
|
+
*/
|
|
104
|
+
export declare const orbitLayout: (nodes: ReadonlyArray<FlowGraphNode>, edges: ReadonlyArray<FlowGraphEdge>, options: {
|
|
105
|
+
readonly expanded: ReadonlySet<string>;
|
|
106
|
+
readonly fanLimit: number;
|
|
107
|
+
}) => OrbitLayout;
|
|
50
108
|
//# sourceMappingURL=layout.d.ts.map
|