@starci/grammar 0.18.0 → 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.
Files changed (39) hide show
  1. package/README.md +1 -1
  2. package/dist/.build-stamp.json +4 -4
  3. package/dist/common/components-navigation.css +117 -5
  4. package/dist/common/registry.d.ts +4 -3
  5. package/dist/common/registry.d.ts.map +1 -1
  6. package/dist/common/registry.js +2 -2
  7. package/dist/common/registry.js.map +1 -1
  8. package/dist/common/renderers-navigation.d.ts +4 -4
  9. package/dist/common/renderers-navigation.d.ts.map +1 -1
  10. package/dist/common/renderers-navigation.js +1 -1
  11. package/dist/common/renderers-navigation.js.map +1 -1
  12. package/dist/common/renderers.d.ts +2 -1
  13. package/dist/common/renderers.d.ts.map +1 -1
  14. package/dist/common/renderers.js +1 -0
  15. package/dist/common/renderers.js.map +1 -1
  16. package/dist/common/styles.css +20 -1
  17. package/dist/core/branch/FlowGraph/index.d.ts +21 -7
  18. package/dist/core/branch/FlowGraph/index.d.ts.map +1 -1
  19. package/dist/core/branch/FlowGraph/index.js +236 -42
  20. package/dist/core/branch/FlowGraph/index.js.map +1 -1
  21. package/dist/core/branch/FlowGraph/layout.d.ts +58 -0
  22. package/dist/core/branch/FlowGraph/layout.d.ts.map +1 -1
  23. package/dist/core/branch/FlowGraph/layout.js +198 -0
  24. package/dist/core/branch/FlowGraph/layout.js.map +1 -1
  25. package/dist/core/branch/FlowGraph/types.d.ts +33 -3
  26. package/dist/core/branch/FlowGraph/types.d.ts.map +1 -1
  27. package/dist/core/composite/Stepper/index.d.ts +7 -2
  28. package/dist/core/composite/Stepper/index.d.ts.map +1 -1
  29. package/dist/core/composite/Stepper/index.js +1 -1
  30. package/dist/core/composite/Stepper/index.js.map +1 -1
  31. package/dist/core/primitive/ConnectionStatus/index.d.ts +15 -0
  32. package/dist/core/primitive/ConnectionStatus/index.d.ts.map +1 -0
  33. package/dist/core/primitive/ConnectionStatus/index.js +15 -0
  34. package/dist/core/primitive/ConnectionStatus/index.js.map +1 -0
  35. package/dist/core/primitive/Progress/index.d.ts +9 -2
  36. package/dist/core/primitive/Progress/index.d.ts.map +1 -1
  37. package/dist/core/primitive/Progress/index.js +3 -3
  38. package/dist/core/primitive/Progress/index.js.map +1 -1
  39. package/package.json +1 -1
@@ -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 content = (_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] }));
19
- return (_jsxs("div", { className: "starci-core-flow-graph-node", "data-grammar-flow-node": graphNode.id, "data-grammar-selected": isSelected ? "true" : "false", "data-placeholder": graphNode.isPlaceholder === true ? "true" : undefined, "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", 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" })] }));
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
- /** The zoom at which the smallest node text present renders at {@link READABLE_TEXT_PX}. */
35
- const readableZoomFor = (nodes) => READABLE_TEXT_PX / Math.min(...nodes.map((node) => NODE_TEXT_PX[node.size ?? "md"]));
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. Nodes are
81
- * keyboard focusable (Tab) and selectable with Enter or Space; a visually hidden list repeats the nodes for screen readers.
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(() => nodes.map((graphNode) => ({
102
- id: graphNode.id,
103
- type: "flowGraph",
104
- position: positions?.get(graphNode.id) ?? graphNode.position ?? { x: 0, y: 0 },
105
- data: {
106
- graphNode: layout === "radial" ? { ...graphNode, isRoot: graphNode.id === rootId } : graphNode,
107
- isSelected: graphNode.id === currentId,
108
- ...(flowDirection === undefined ? {} : { direction: flowDirection }),
109
- },
110
- selected: graphNode.id === currentId,
111
- ariaLabel: labelFor(graphNode),
112
- draggable: false,
113
- connectable: false,
114
- // A link node keeps one keyboard stop: the anchor inside it.
115
- ...(graphNode.href === undefined ? {} : { focusable: false }),
116
- })), [nodes, positions, layout, rootId, currentId, flowDirection]);
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(() => edges.map((edge) => {
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: edge.isPlaceholder === true ? "starci-core-flow-graph-edge starci-core-flow-graph-edge-placeholder" : "starci-core-flow-graph-edge",
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
- }), [edges, layout, layered, flowDirection]);
158
- const edgeLabels = useMemo(() => labelledEdges(nodes, edges), [nodes, edges]);
159
- const signature = `${layout}:${flowDirection ?? ""}:${headerNodes.length}:${nodes.map((node) => node.id).join("|")}`;
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
- select(id);
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" && nodes.length > 0 ? readableZoomFor(nodes) : null;
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 style = customHeight === undefined && grownHeight === null ? undefined : {
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
- select(node.id); }, onPaneClick: () => { if (currentId !== null)
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: nodes.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)) }))] })) }));
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
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAElF,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvE,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,MAAM,CAAA;AACxC,eAAO,MAAM,oBAAoB,MAAM,CAAA;AAEvC,+FAA+F;AAC/F,eAAO,MAAM,aAAa,GAAI,OAAO,aAAa,CAAC,aAAa,CAAC,KAAG,aAAa,GAAG,SAC1B,CAAA;AAE1D;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,aAAa,CAAC,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC,aAAa,CAAC,KAAG,WAAW,CAAC,MAAM,EAAE,cAAc,CAqC5I,CAAA;AAED,yGAAyG;AACzG,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;CAA2D,CAAA;AAC5F,eAAO,MAAM,mBAAmB;;;CAA0D,CAAA;AAE1F,qFAAqF;AACrF,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,WAAW,kBAAkB,KAAG,MAAiD,CAAA;AAEhI;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GACzB,OAAO,aAAa,CAAC,aAAa,CAAC,EACnC,OAAO,aAAa,CAAC,aAAa,CAAC,EACnC,WAAW,kBAAkB,KAC9B;IAAE,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CA8BzG,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC5B,MAAM,aAAa,EACnB,WAAW,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,EAC9C,QAAQ,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,WAAW,kBAAkB,KAC9B,MAAM,GAAG,SAqBX,CAAA"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/core/branch/FlowGraph/layout.ts"],"names":[],"mappings":"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"}