@almadar/ui 6.3.0 → 6.5.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.
@@ -1117,6 +1117,24 @@ declare function orbitalToExpandedGraph(schema: OrbitalSchema, orbitalName: stri
1117
1117
  * passes clicks through to the pattern elements.
1118
1118
  */
1119
1119
 
1120
+ /** Selected pattern info, emitted when user clicks a UI element in the node. */
1121
+ interface SelectedPattern {
1122
+ /** The pattern type (e.g., "button", "input", "stack"). */
1123
+ patternType: string;
1124
+ /** The DOM element's data-pattern-id if available. */
1125
+ patternId?: string;
1126
+ /** The node this pattern belongs to. */
1127
+ nodeData: PreviewNodeData;
1128
+ /** The source trait for this slot content. */
1129
+ sourceTrait?: string;
1130
+ /** Bounding rect relative to the node for floating inspector positioning. */
1131
+ rect?: {
1132
+ top: number;
1133
+ left: number;
1134
+ width: number;
1135
+ height: number;
1136
+ };
1137
+ }
1120
1138
  declare const OrbPreviewNode: React__default.NamedExoticComponent<NodeProps>;
1121
1139
 
1122
1140
  /**
@@ -1342,28 +1360,33 @@ declare function deriveEditFocusFromElement(el: HTMLElement): EditFocus | null;
1342
1360
  * Event contract (defaults — overridable via `CanvasDndProvider.onDrop`):
1343
1361
  * - On drag start: emits `UI:DRAG_START` { kind, data }
1344
1362
  * - On drag end: emits `UI:DRAG_END` { kind, data }
1345
- * - On 'pattern' drop: emits `UI:PATTERN_DROP` { patternType, containerNode, parentPath?, index? }
1346
- * - On 'behavior' drop: emits `UI:BEHAVIOR_DROP` { behaviorName, containerNode }
1347
- *
1348
- * The `onDrop` callback lets consumers route OTHER payload kinds (e.g.
1349
- * `'pattern-instance'` for in-canvas reorder of an existing pattern) to
1350
- * their own bus events or schema mutations. Reorder semantics belong in
1351
- * the consumer because they touch the SExpr tree directly — this primitive
1352
- * only resolves payload + target + cursor and hands them off.
1363
+ * - On 'pattern' drop: emits `UI:PATTERN_DROP` { patternType, containerNode, parentPath?, index? }
1364
+ * - On 'behavior' drop: emits `UI:BEHAVIOR_DROP` { behaviorName, containerNode }
1365
+ * - On 'pattern-instance' drop: emits `UI:PATTERN_MOVE` { fromPath, loc, toParentPath?, toIndex? } —
1366
+ * reorder of an already-placed pattern; `loc` is the source's own
1367
+ * containerNode (orbitalName/traitName/transitionEvent), `toParentPath`/
1368
+ * `toIndex` come from `target.resolvePath` same as an insert drop.
1369
+ *
1370
+ * The `onDrop` callback lets consumers route ANY payload kind (including
1371
+ * the defaults above) to their own bus events or schema mutations instead —
1372
+ * e.g. the builder app bypasses ALL default emits (see UIEditor.tsx) because
1373
+ * `useEventBus()` resolves to a different chunk's context inside this
1374
+ * provider. Return `true` from `onDrop` to suppress the default emit.
1353
1375
  */
1354
1376
 
1355
1377
  /**
1356
1378
  * Drag kinds the canvas understands. Open-ended `string` so consumers can
1357
- * introduce new kinds (e.g. `'pattern-instance'` for in-canvas reorder of an
1358
- * existing pattern) without touching this file — the provider's defaults
1359
- * cover `'pattern'` and `'behavior'`; everything else routes through the
1360
- * consumer's `onDrop`.
1379
+ * introduce further kinds without touching this file the provider's
1380
+ * defaults cover `'pattern'`, `'behavior'` and `'pattern-instance'`
1381
+ * (in-canvas reorder of an existing pattern, source: `OrbPreviewNode`'s L2
1382
+ * content); anything else routes through the consumer's `onDrop`.
1361
1383
  */
1362
- type CanvasDragKind = 'pattern' | 'behavior' | (string & {});
1384
+ type CanvasDragKind = 'pattern' | 'behavior' | 'pattern-instance' | (string & {});
1363
1385
  /**
1364
1386
  * Payload carried by a draggable. For `'pattern'` tiles `data` is
1365
- * `{ type: string }`, for `'behavior'` tiles `{ name: string }`. For consumer
1366
- * kinds (e.g. `'pattern-instance'`) the shape is whatever the consumer
1387
+ * `{ type: string }`, for `'behavior'` tiles `{ name: string }`, for
1388
+ * `'pattern-instance'` (reorder) `{ fromPath: string, loc: CanvasContainerNode }`.
1389
+ * For any other consumer-defined kind, the shape is whatever the consumer
1367
1390
  * agrees on with its own `onDrop`.
1368
1391
  */
1369
1392
  interface CanvasDragPayload {
@@ -1518,14 +1541,155 @@ interface OrbInspectorProps {
1518
1541
  * page-level dispatcher routes them to `themeManifest.setToken`.
1519
1542
  */
1520
1543
  themeManifest?: ThemeDefinition;
1544
+ /**
1545
+ * Initial tab on mount. Local state still owns the active tab after
1546
+ * that — this does not make the component controlled. Enables
1547
+ * deep-linking into a specific tab (e.g. from a LayersPanel selection).
1548
+ */
1549
+ defaultTab?: InspectorTab;
1550
+ /** Fires whenever the tab-bar selection changes. */
1551
+ onTabChange?: (tab: InspectorTab) => void;
1521
1552
  onSchemaChange?: (schema: OrbitalSchema) => void;
1522
1553
  onClose: () => void;
1554
+ /**
1555
+ * In-node pattern selection, when this inspector is rendered OUTSIDE
1556
+ * `FlowCanvas` (see `FlowCanvas`'s `externalInspector` +
1557
+ * `onSelectedPatternChange`). `PatternSelectionContext` only reaches
1558
+ * descendants of `FlowCanvas`'s own render tree, so a standalone
1559
+ * consumer has no other way to feed pattern-level selection in — pass
1560
+ * `FlowCanvas`'s `onSelectedPatternChange` payload straight through here.
1561
+ * When omitted (the inline, built-in-inspector usage), falls back to
1562
+ * `PatternSelectionContext`, unchanged.
1563
+ */
1564
+ selectedPattern?: SelectedPattern | null;
1523
1565
  }
1524
- declare function OrbInspector({ node, schema, editable, userType, themeManifest, onSchemaChange, onClose }: OrbInspectorProps): React__default.ReactElement;
1566
+ type InspectorTab = 'inspector' | 'design' | 'prototype' | 'code';
1567
+ declare function OrbInspector({ node, schema, editable, userType, themeManifest, defaultTab, onTabChange, onSchemaChange, onClose, selectedPattern: selectedPatternProp }: OrbInspectorProps): React__default.ReactElement;
1525
1568
  declare namespace OrbInspector {
1526
1569
  var displayName: string;
1527
1570
  }
1528
1571
 
1572
+ /**
1573
+ * FileTree Molecule
1574
+ *
1575
+ * A filesystem tree navigator with folder expand/collapse, file-type icons,
1576
+ * and click-to-select. Used by the Workspace tab to browse the agent's
1577
+ * workspace directory.
1578
+ *
1579
+ * Follows atomic design: composes Box, Icon, Typography atoms.
1580
+ */
1581
+
1582
+ /** Flat tree row for `items` mode — nested at render time by `parentId`. */
1583
+ interface FileTreeItem {
1584
+ /** Unique node id */
1585
+ id: string;
1586
+ /** Display label */
1587
+ label: string;
1588
+ /** Id of this node's parent; empty/absent marks a root */
1589
+ parentId?: string;
1590
+ /** Icon name override (falls back to folder/file by presence of children) */
1591
+ icon?: string;
1592
+ }
1593
+
1594
+ /**
1595
+ * LayersPanel
1596
+ *
1597
+ * Figma-style layers tree for an OrbitalSchema. Thin adapter over FileTree's
1598
+ * generic `items` mode — all it does is flatten the schema into
1599
+ * `FileTreeItem[]` via `schemaToLayerItems` and render `<FileTree look="nav" />`.
1600
+ * No tree/panel logic of its own.
1601
+ *
1602
+ * ---------------------------------------------------------------------------
1603
+ * ID scheme (stable, parseable, '/'-joined path of typed segments)
1604
+ * ---------------------------------------------------------------------------
1605
+ * orbital:<orbitalName>
1606
+ * orbital:<orbitalName>/page:<pageName>
1607
+ * orbital:<orbitalName>/trait:<traitName>
1608
+ * orbital:<orbitalName>/trait:<traitName>/transition:<index>
1609
+ * orbital:<orbitalName>/trait:<traitName>/transition:<index>/slot:<slotName>
1610
+ * orbital:<orbitalName>/trait:<traitName>/transition:<index>/slot:<slotName>/pattern:<slotIndex>:<patternPath>
1611
+ *
1612
+ * The transition segment uses the transition's array INDEX (not its event
1613
+ * name) because two transitions in the same trait can share an event name
1614
+ * (same event fired from different `from` states) — the index is the only
1615
+ * value `parseTraitLevel`/`parseTransitionLevel` guarantee is unique. The
1616
+ * slot segment uses the slot's NAME (render-ui slots are conventionally
1617
+ * distinct within one transition); the `pattern:<slotIndex>` part of the
1618
+ * final leaf's key disambiguates the rare case of two render-ui effects
1619
+ * targeting the same slot name within one transition by falling back to
1620
+ * their position among that transition's render-ui effects.
1621
+ *
1622
+ * `<patternPath>` is the same schema-compatible address `UISlotRenderer`
1623
+ * stamps as `data-pattern-path` and `useSchemaEditor`'s `navigatePatternPath`
1624
+ * / `splitPatternChildPath` consume: `root` for the render-ui root, then
1625
+ * `root.children.<i>`, `root.children.<i>.children.<j>`, … recursing into
1626
+ * every nested pattern's `children` (an array, or a single bare pattern
1627
+ * object — both normalized the same way `UISlotRenderer.renderPatternChildren`
1628
+ * does). Non-object children (`@entity.X` / `@trait.X` string bindings,
1629
+ * literals) are bindings, not nested patterns, and never get a row. Every
1630
+ * pattern node in the render-ui tree — root and nested alike — gets its own
1631
+ * `pattern:<slotIndex>:<patternPath>` leaf, parented to its containing
1632
+ * pattern's row (or the slot row, for `root`), so a consumer can walk the
1633
+ * exact tree `schemaEditor.movePattern`/`removePattern`/`updatePatternProp`
1634
+ * address.
1635
+ *
1636
+ * This is backward-compatible one level up: every non-pattern segment
1637
+ * (`orbital:` / `page:` / `trait:` / `transition:` / `slot:`) is unchanged,
1638
+ * so a consumer parsing only those levels (e.g. to resolve which orbital a
1639
+ * click belongs to) needs no changes. Only the trailing pattern leaf's key
1640
+ * gained the `:<patternPath>` suffix — use the exported `parseLayerId` to
1641
+ * read it instead of re-deriving the regex.
1642
+ *
1643
+ * Hierarchy choice: orbitals are the roots, with each orbital's `pages` and
1644
+ * `traits` as sibling children (an OrbitalDefinition owns both directly).
1645
+ * A schema has no cross-orbital "Page" entity and no data linking a
1646
+ * render-ui slot back to a specific page route, so a page-rooted tree
1647
+ * (pages containing the orbitals that render on them) is not derivable
1648
+ * without guessing — forbidden by the no-heuristics rule. See the Wave D3
1649
+ * report for this deviation from the literal "pages → orbitals → ..." spec
1650
+ * line.
1651
+ *
1652
+ * @packageDocumentation
1653
+ */
1654
+
1655
+ /**
1656
+ * Flattens an OrbitalSchema into FileTree's `items` shape. See the ID scheme
1657
+ * doc comment above the file header for the exact id grammar.
1658
+ */
1659
+ declare function schemaToLayerItems(schema: OrbitalSchema): FileTreeItem[];
1660
+ /** Every field a LayersPanel id can carry, populated up to whatever depth the id reaches. `orbitalName` is the only field guaranteed present. */
1661
+ interface LayerIdParts {
1662
+ orbitalName: string;
1663
+ pageName?: string;
1664
+ traitName?: string;
1665
+ /** The transition's array INDEX (see the id-scheme doc comment — not its event name). */
1666
+ transitionIndex?: number;
1667
+ slotName?: string;
1668
+ /** Position among the slot's render-ui effects (disambiguates two effects targeting the same slot name). */
1669
+ patternSlotIndex?: number;
1670
+ /** Schema-compatible address into the render-ui tree (`root`, `root.children.0`, …) — the exact `patternPath` `schemaEditor.movePattern`/`removePattern`/`updatePatternProp` expect. */
1671
+ patternPath?: string;
1672
+ }
1673
+ /**
1674
+ * Parses any id `schemaToLayerItems` produces back into its typed segments.
1675
+ * Returns `null` for a malformed id (missing/garbled `orbital:` root, or an
1676
+ * unrecognized segment). Segments below the deepest one present in `id` are
1677
+ * left `undefined` — e.g. a trait-level id has no `slotName`/`patternPath`.
1678
+ */
1679
+ declare function parseLayerId(id: string): LayerIdParts | null;
1680
+ interface LayersPanelProps {
1681
+ schema: OrbitalSchema;
1682
+ /** Currently selected node id (any level of the ID scheme above). */
1683
+ selectedId?: string;
1684
+ onSelect?: (id: string) => void;
1685
+ /**
1686
+ * Reorder a node within the tree. Threaded to FileTree's `onNodeReorder`
1687
+ * seam — presence-gated there, so omitting it just means no dragging.
1688
+ */
1689
+ onReorder?: (id: string, newParentId: string | null, index: number) => void;
1690
+ }
1691
+ declare const LayersPanel: React__default.FC<LayersPanelProps>;
1692
+
1529
1693
  /**
1530
1694
  * FlowCanvas — V3 UI Projection Canvas
1531
1695
  *
@@ -1673,6 +1837,31 @@ interface FlowCanvasProps {
1673
1837
  x: number;
1674
1838
  y: number;
1675
1839
  }>) => void;
1840
+ /**
1841
+ * Fired whenever the internal `selectedNode` changes — select, clear-on-
1842
+ * escape, clear-on-level-change, and pattern-selection sync all route
1843
+ * through this. Lets a consumer mirror selection into a persistent
1844
+ * properties panel rendered outside the canvas (see `externalInspector`).
1845
+ */
1846
+ onSelectedNodeChange?: (node: PreviewNodeData | null) => void;
1847
+ /**
1848
+ * Fired whenever the in-node pattern selection changes (a pattern click
1849
+ * inside `OrbPreviewNode`, cleared on background click / Escape / pattern
1850
+ * delete). `PatternSelectionContext` is internal to this component's own
1851
+ * render tree, so an externally-rendered `OrbInspector` (see
1852
+ * `externalInspector`) has no other way to learn which pattern the user
1853
+ * picked — pass this straight through to `OrbInspector`'s `selectedPattern`
1854
+ * prop to keep Design-tab prop editing working outside the canvas.
1855
+ */
1856
+ onSelectedPatternChange?: (pattern: SelectedPattern | null) => void;
1857
+ /**
1858
+ * When true, FlowCanvas does not render its inline `OrbInspector` — the
1859
+ * consumer is expected to render one externally, fed by
1860
+ * `onSelectedNodeChange` + `onSelectedPatternChange`. Selection
1861
+ * highlighting, keyboard delete, and every other behavior is unchanged.
1862
+ * Default `false` preserves the built-in inline panel.
1863
+ */
1864
+ externalInspector?: boolean;
1676
1865
  }
1677
1866
  declare const FlowCanvas: React__default.FC<FlowCanvasProps>;
1678
1867
 
@@ -1874,4 +2063,4 @@ interface AvlClickTargetProps {
1874
2063
  }
1875
2064
  declare const AvlClickTarget: React__default.FC<AvlClickTargetProps>;
1876
2065
 
1877
- export { AVL_FIELD_TYPE_SHAPES, AVL_OPERATOR_COLORS, type ApplicationLevelData, AvlApplication, type AvlApplicationProps, AvlBackwardEdge, type AvlBaseProps, AvlBehaviorGlyph, type AvlBehaviorGlyphProps, AvlBinding, AvlBindingEdge, type AvlBindingProps, AvlBindingRef, type AvlBindingRefProps, AvlClickTarget, type AvlClickTargetProps, AvlClosedCircuit, type AvlClosedCircuitProps, type AvlClosedCircuitState, type AvlClosedCircuitTransition, AvlCosmicZoom, type AvlCosmicZoomProps, type AvlEdgeData, AvlEffect, type AvlEffectProps, type AvlEffectType, AvlEmitListen, type AvlEmitListenProps, AvlEntity, type AvlEntityProps, AvlEvent, type AvlEventProps, AvlEventWireEdge, type AvlEventWireEdgeData, AvlExprTree, type AvlExprTreeNode, type AvlExprTreeProps, AvlField, type AvlFieldProps, AvlFieldType, type AvlFieldTypeKind, type AvlFieldTypeProps, AvlGuard, type AvlGuardProps, AvlLiteral, type AvlLiteralProps, type AvlNodeData, AvlOperator, type AvlOperatorNamespace, type AvlOperatorProps, AvlOrbital, AvlOrbitalNode, type AvlOrbitalProps, AvlOrbitalUnit, type AvlOrbitalUnitPage, type AvlOrbitalUnitProps, type AvlOrbitalUnitTrait, AvlOrbitalsCosmicZoom, type AvlOrbitalsCosmicZoomProps, AvlPage, AvlPageEdge, type AvlPageProps, AvlPersistence, type AvlPersistenceKind, type AvlPersistenceProps, AvlSExpr, type AvlSExprProps, AvlSlotMap, type AvlSlotMapProps, type AvlSlotMapSlot, AvlState, AvlStateMachine, type AvlStateMachineProps, type AvlStateMachineState, type AvlStateMachineTransition, type AvlStateProps, AvlSwimLane, type AvlSwimLaneProps, AvlTrait, type AvlTraitProps, AvlTraitScene, type AvlTraitSceneProps, AvlTransition, AvlTransitionEdge, type AvlTransitionEdgeData, AvlTransitionLane, type AvlTransitionLaneProps, type AvlTransitionProps, AvlTransitionScene, type AvlTransitionSceneProps, type BehaviorCanvasEntry, BehaviorComposeNode, type BehaviorComposeNodeData, type BehaviorGlyphChild, type BehaviorGlyphConnection, type BehaviorLevel, type BehaviorRegistryRecord, BehaviorView, type BehaviorWireEdgeData, CONNECTION_COLORS, type CanvasContainerNode, CanvasDndProvider, type CanvasDndProviderProps, type CanvasDragKind, type CanvasDragPayload, type CanvasDropEvent, type CanvasDropTarget, type ComposeViewLevel, type ConnectableEvent, type CrossLink, DOMAIN_COLORS, DetailView, EFFECT_CATEGORY_COLORS, EFFECT_TYPE_TO_CATEGORY, type EffectCategory, type ElkLayout, type EventEdgeData, EventFlowEdge, FlowCanvas, type FlowCanvasProps, type GlyphSize, type LayoutEdge, type LayoutNode, MiniStateMachine, ModuleCard, OrbInspector, type OrbInspectorProps, OrbPreviewNode, type OrbitalLevelData, type PatternEventSource, type PreviewNodeData, type RenderUIEntry, STATE_COLORS, type StateRole, SystemNode, type TraitLevelData, type TransitionLevelData, type UseCanvasDraggableArgs, type UseCanvasDraggableResult, type UseCanvasDroppableArgs, type UseCanvasDroppableResult, type ViewLevel, ZOOM_BAND_THRESHOLDS, type ZoomBand, ZoomBandContext, ZoomBreadcrumb, type ZoomBreadcrumbProps, ZoomLegend, type ZoomLegendProps, type ZoomLevel, arcPath, behaviorsToComposeGraph, computeTraitLayout, computeZoomBand, curveControlPoint, deriveEditFocusFromElement, edgePath, getStateRole, gridPositions, orbitalToExpandedGraph, parseApplicationLevel, parseOrbitalLevel, parseTraitLevel, parseTransitionLevel, radialPositions, registryEntryToCanvasEntry, ringPositions, schemaToFlowGraph, schemaToOverviewGraph, useCanvasDraggable, useCanvasDroppable, useZoomBand, zoomProgress };
2066
+ export { AVL_FIELD_TYPE_SHAPES, AVL_OPERATOR_COLORS, type ApplicationLevelData, AvlApplication, type AvlApplicationProps, AvlBackwardEdge, type AvlBaseProps, AvlBehaviorGlyph, type AvlBehaviorGlyphProps, AvlBinding, AvlBindingEdge, type AvlBindingProps, AvlBindingRef, type AvlBindingRefProps, AvlClickTarget, type AvlClickTargetProps, AvlClosedCircuit, type AvlClosedCircuitProps, type AvlClosedCircuitState, type AvlClosedCircuitTransition, AvlCosmicZoom, type AvlCosmicZoomProps, type AvlEdgeData, AvlEffect, type AvlEffectProps, type AvlEffectType, AvlEmitListen, type AvlEmitListenProps, AvlEntity, type AvlEntityProps, AvlEvent, type AvlEventProps, AvlEventWireEdge, type AvlEventWireEdgeData, AvlExprTree, type AvlExprTreeNode, type AvlExprTreeProps, AvlField, type AvlFieldProps, AvlFieldType, type AvlFieldTypeKind, type AvlFieldTypeProps, AvlGuard, type AvlGuardProps, AvlLiteral, type AvlLiteralProps, type AvlNodeData, AvlOperator, type AvlOperatorNamespace, type AvlOperatorProps, AvlOrbital, AvlOrbitalNode, type AvlOrbitalProps, AvlOrbitalUnit, type AvlOrbitalUnitPage, type AvlOrbitalUnitProps, type AvlOrbitalUnitTrait, AvlOrbitalsCosmicZoom, type AvlOrbitalsCosmicZoomProps, AvlPage, AvlPageEdge, type AvlPageProps, AvlPersistence, type AvlPersistenceKind, type AvlPersistenceProps, AvlSExpr, type AvlSExprProps, AvlSlotMap, type AvlSlotMapProps, type AvlSlotMapSlot, AvlState, AvlStateMachine, type AvlStateMachineProps, type AvlStateMachineState, type AvlStateMachineTransition, type AvlStateProps, AvlSwimLane, type AvlSwimLaneProps, AvlTrait, type AvlTraitProps, AvlTraitScene, type AvlTraitSceneProps, AvlTransition, AvlTransitionEdge, type AvlTransitionEdgeData, AvlTransitionLane, type AvlTransitionLaneProps, type AvlTransitionProps, AvlTransitionScene, type AvlTransitionSceneProps, type BehaviorCanvasEntry, BehaviorComposeNode, type BehaviorComposeNodeData, type BehaviorGlyphChild, type BehaviorGlyphConnection, type BehaviorLevel, type BehaviorRegistryRecord, BehaviorView, type BehaviorWireEdgeData, CONNECTION_COLORS, type CanvasContainerNode, CanvasDndProvider, type CanvasDndProviderProps, type CanvasDragKind, type CanvasDragPayload, type CanvasDropEvent, type CanvasDropTarget, type ComposeViewLevel, type ConnectableEvent, type CrossLink, DOMAIN_COLORS, DetailView, EFFECT_CATEGORY_COLORS, EFFECT_TYPE_TO_CATEGORY, type EffectCategory, type ElkLayout, type EventEdgeData, EventFlowEdge, FlowCanvas, type FlowCanvasProps, type GlyphSize, type LayerIdParts, LayersPanel, type LayersPanelProps, type LayoutEdge, type LayoutNode, MiniStateMachine, ModuleCard, OrbInspector, type OrbInspectorProps, OrbPreviewNode, type OrbitalLevelData, type PatternEventSource, type PreviewNodeData, type RenderUIEntry, STATE_COLORS, type SelectedPattern, type StateRole, SystemNode, type TraitLevelData, type TransitionLevelData, type UseCanvasDraggableArgs, type UseCanvasDraggableResult, type UseCanvasDroppableArgs, type UseCanvasDroppableResult, type ViewLevel, ZOOM_BAND_THRESHOLDS, type ZoomBand, ZoomBandContext, ZoomBreadcrumb, type ZoomBreadcrumbProps, ZoomLegend, type ZoomLegendProps, type ZoomLevel, arcPath, behaviorsToComposeGraph, computeTraitLayout, computeZoomBand, curveControlPoint, deriveEditFocusFromElement, edgePath, getStateRole, gridPositions, orbitalToExpandedGraph, parseApplicationLevel, parseLayerId, parseOrbitalLevel, parseTraitLevel, parseTransitionLevel, radialPositions, registryEntryToCanvasEntry, ringPositions, schemaToFlowGraph, schemaToLayerItems, schemaToOverviewGraph, useCanvasDraggable, useCanvasDroppable, useZoomBand, zoomProgress };
@@ -1117,6 +1117,24 @@ declare function orbitalToExpandedGraph(schema: OrbitalSchema, orbitalName: stri
1117
1117
  * passes clicks through to the pattern elements.
1118
1118
  */
1119
1119
 
1120
+ /** Selected pattern info, emitted when user clicks a UI element in the node. */
1121
+ interface SelectedPattern {
1122
+ /** The pattern type (e.g., "button", "input", "stack"). */
1123
+ patternType: string;
1124
+ /** The DOM element's data-pattern-id if available. */
1125
+ patternId?: string;
1126
+ /** The node this pattern belongs to. */
1127
+ nodeData: PreviewNodeData;
1128
+ /** The source trait for this slot content. */
1129
+ sourceTrait?: string;
1130
+ /** Bounding rect relative to the node for floating inspector positioning. */
1131
+ rect?: {
1132
+ top: number;
1133
+ left: number;
1134
+ width: number;
1135
+ height: number;
1136
+ };
1137
+ }
1120
1138
  declare const OrbPreviewNode: React__default.NamedExoticComponent<NodeProps>;
1121
1139
 
1122
1140
  /**
@@ -1342,28 +1360,33 @@ declare function deriveEditFocusFromElement(el: HTMLElement): EditFocus | null;
1342
1360
  * Event contract (defaults — overridable via `CanvasDndProvider.onDrop`):
1343
1361
  * - On drag start: emits `UI:DRAG_START` { kind, data }
1344
1362
  * - On drag end: emits `UI:DRAG_END` { kind, data }
1345
- * - On 'pattern' drop: emits `UI:PATTERN_DROP` { patternType, containerNode, parentPath?, index? }
1346
- * - On 'behavior' drop: emits `UI:BEHAVIOR_DROP` { behaviorName, containerNode }
1347
- *
1348
- * The `onDrop` callback lets consumers route OTHER payload kinds (e.g.
1349
- * `'pattern-instance'` for in-canvas reorder of an existing pattern) to
1350
- * their own bus events or schema mutations. Reorder semantics belong in
1351
- * the consumer because they touch the SExpr tree directly — this primitive
1352
- * only resolves payload + target + cursor and hands them off.
1363
+ * - On 'pattern' drop: emits `UI:PATTERN_DROP` { patternType, containerNode, parentPath?, index? }
1364
+ * - On 'behavior' drop: emits `UI:BEHAVIOR_DROP` { behaviorName, containerNode }
1365
+ * - On 'pattern-instance' drop: emits `UI:PATTERN_MOVE` { fromPath, loc, toParentPath?, toIndex? } —
1366
+ * reorder of an already-placed pattern; `loc` is the source's own
1367
+ * containerNode (orbitalName/traitName/transitionEvent), `toParentPath`/
1368
+ * `toIndex` come from `target.resolvePath` same as an insert drop.
1369
+ *
1370
+ * The `onDrop` callback lets consumers route ANY payload kind (including
1371
+ * the defaults above) to their own bus events or schema mutations instead —
1372
+ * e.g. the builder app bypasses ALL default emits (see UIEditor.tsx) because
1373
+ * `useEventBus()` resolves to a different chunk's context inside this
1374
+ * provider. Return `true` from `onDrop` to suppress the default emit.
1353
1375
  */
1354
1376
 
1355
1377
  /**
1356
1378
  * Drag kinds the canvas understands. Open-ended `string` so consumers can
1357
- * introduce new kinds (e.g. `'pattern-instance'` for in-canvas reorder of an
1358
- * existing pattern) without touching this file — the provider's defaults
1359
- * cover `'pattern'` and `'behavior'`; everything else routes through the
1360
- * consumer's `onDrop`.
1379
+ * introduce further kinds without touching this file the provider's
1380
+ * defaults cover `'pattern'`, `'behavior'` and `'pattern-instance'`
1381
+ * (in-canvas reorder of an existing pattern, source: `OrbPreviewNode`'s L2
1382
+ * content); anything else routes through the consumer's `onDrop`.
1361
1383
  */
1362
- type CanvasDragKind = 'pattern' | 'behavior' | (string & {});
1384
+ type CanvasDragKind = 'pattern' | 'behavior' | 'pattern-instance' | (string & {});
1363
1385
  /**
1364
1386
  * Payload carried by a draggable. For `'pattern'` tiles `data` is
1365
- * `{ type: string }`, for `'behavior'` tiles `{ name: string }`. For consumer
1366
- * kinds (e.g. `'pattern-instance'`) the shape is whatever the consumer
1387
+ * `{ type: string }`, for `'behavior'` tiles `{ name: string }`, for
1388
+ * `'pattern-instance'` (reorder) `{ fromPath: string, loc: CanvasContainerNode }`.
1389
+ * For any other consumer-defined kind, the shape is whatever the consumer
1367
1390
  * agrees on with its own `onDrop`.
1368
1391
  */
1369
1392
  interface CanvasDragPayload {
@@ -1518,14 +1541,155 @@ interface OrbInspectorProps {
1518
1541
  * page-level dispatcher routes them to `themeManifest.setToken`.
1519
1542
  */
1520
1543
  themeManifest?: ThemeDefinition;
1544
+ /**
1545
+ * Initial tab on mount. Local state still owns the active tab after
1546
+ * that — this does not make the component controlled. Enables
1547
+ * deep-linking into a specific tab (e.g. from a LayersPanel selection).
1548
+ */
1549
+ defaultTab?: InspectorTab;
1550
+ /** Fires whenever the tab-bar selection changes. */
1551
+ onTabChange?: (tab: InspectorTab) => void;
1521
1552
  onSchemaChange?: (schema: OrbitalSchema) => void;
1522
1553
  onClose: () => void;
1554
+ /**
1555
+ * In-node pattern selection, when this inspector is rendered OUTSIDE
1556
+ * `FlowCanvas` (see `FlowCanvas`'s `externalInspector` +
1557
+ * `onSelectedPatternChange`). `PatternSelectionContext` only reaches
1558
+ * descendants of `FlowCanvas`'s own render tree, so a standalone
1559
+ * consumer has no other way to feed pattern-level selection in — pass
1560
+ * `FlowCanvas`'s `onSelectedPatternChange` payload straight through here.
1561
+ * When omitted (the inline, built-in-inspector usage), falls back to
1562
+ * `PatternSelectionContext`, unchanged.
1563
+ */
1564
+ selectedPattern?: SelectedPattern | null;
1523
1565
  }
1524
- declare function OrbInspector({ node, schema, editable, userType, themeManifest, onSchemaChange, onClose }: OrbInspectorProps): React__default.ReactElement;
1566
+ type InspectorTab = 'inspector' | 'design' | 'prototype' | 'code';
1567
+ declare function OrbInspector({ node, schema, editable, userType, themeManifest, defaultTab, onTabChange, onSchemaChange, onClose, selectedPattern: selectedPatternProp }: OrbInspectorProps): React__default.ReactElement;
1525
1568
  declare namespace OrbInspector {
1526
1569
  var displayName: string;
1527
1570
  }
1528
1571
 
1572
+ /**
1573
+ * FileTree Molecule
1574
+ *
1575
+ * A filesystem tree navigator with folder expand/collapse, file-type icons,
1576
+ * and click-to-select. Used by the Workspace tab to browse the agent's
1577
+ * workspace directory.
1578
+ *
1579
+ * Follows atomic design: composes Box, Icon, Typography atoms.
1580
+ */
1581
+
1582
+ /** Flat tree row for `items` mode — nested at render time by `parentId`. */
1583
+ interface FileTreeItem {
1584
+ /** Unique node id */
1585
+ id: string;
1586
+ /** Display label */
1587
+ label: string;
1588
+ /** Id of this node's parent; empty/absent marks a root */
1589
+ parentId?: string;
1590
+ /** Icon name override (falls back to folder/file by presence of children) */
1591
+ icon?: string;
1592
+ }
1593
+
1594
+ /**
1595
+ * LayersPanel
1596
+ *
1597
+ * Figma-style layers tree for an OrbitalSchema. Thin adapter over FileTree's
1598
+ * generic `items` mode — all it does is flatten the schema into
1599
+ * `FileTreeItem[]` via `schemaToLayerItems` and render `<FileTree look="nav" />`.
1600
+ * No tree/panel logic of its own.
1601
+ *
1602
+ * ---------------------------------------------------------------------------
1603
+ * ID scheme (stable, parseable, '/'-joined path of typed segments)
1604
+ * ---------------------------------------------------------------------------
1605
+ * orbital:<orbitalName>
1606
+ * orbital:<orbitalName>/page:<pageName>
1607
+ * orbital:<orbitalName>/trait:<traitName>
1608
+ * orbital:<orbitalName>/trait:<traitName>/transition:<index>
1609
+ * orbital:<orbitalName>/trait:<traitName>/transition:<index>/slot:<slotName>
1610
+ * orbital:<orbitalName>/trait:<traitName>/transition:<index>/slot:<slotName>/pattern:<slotIndex>:<patternPath>
1611
+ *
1612
+ * The transition segment uses the transition's array INDEX (not its event
1613
+ * name) because two transitions in the same trait can share an event name
1614
+ * (same event fired from different `from` states) — the index is the only
1615
+ * value `parseTraitLevel`/`parseTransitionLevel` guarantee is unique. The
1616
+ * slot segment uses the slot's NAME (render-ui slots are conventionally
1617
+ * distinct within one transition); the `pattern:<slotIndex>` part of the
1618
+ * final leaf's key disambiguates the rare case of two render-ui effects
1619
+ * targeting the same slot name within one transition by falling back to
1620
+ * their position among that transition's render-ui effects.
1621
+ *
1622
+ * `<patternPath>` is the same schema-compatible address `UISlotRenderer`
1623
+ * stamps as `data-pattern-path` and `useSchemaEditor`'s `navigatePatternPath`
1624
+ * / `splitPatternChildPath` consume: `root` for the render-ui root, then
1625
+ * `root.children.<i>`, `root.children.<i>.children.<j>`, … recursing into
1626
+ * every nested pattern's `children` (an array, or a single bare pattern
1627
+ * object — both normalized the same way `UISlotRenderer.renderPatternChildren`
1628
+ * does). Non-object children (`@entity.X` / `@trait.X` string bindings,
1629
+ * literals) are bindings, not nested patterns, and never get a row. Every
1630
+ * pattern node in the render-ui tree — root and nested alike — gets its own
1631
+ * `pattern:<slotIndex>:<patternPath>` leaf, parented to its containing
1632
+ * pattern's row (or the slot row, for `root`), so a consumer can walk the
1633
+ * exact tree `schemaEditor.movePattern`/`removePattern`/`updatePatternProp`
1634
+ * address.
1635
+ *
1636
+ * This is backward-compatible one level up: every non-pattern segment
1637
+ * (`orbital:` / `page:` / `trait:` / `transition:` / `slot:`) is unchanged,
1638
+ * so a consumer parsing only those levels (e.g. to resolve which orbital a
1639
+ * click belongs to) needs no changes. Only the trailing pattern leaf's key
1640
+ * gained the `:<patternPath>` suffix — use the exported `parseLayerId` to
1641
+ * read it instead of re-deriving the regex.
1642
+ *
1643
+ * Hierarchy choice: orbitals are the roots, with each orbital's `pages` and
1644
+ * `traits` as sibling children (an OrbitalDefinition owns both directly).
1645
+ * A schema has no cross-orbital "Page" entity and no data linking a
1646
+ * render-ui slot back to a specific page route, so a page-rooted tree
1647
+ * (pages containing the orbitals that render on them) is not derivable
1648
+ * without guessing — forbidden by the no-heuristics rule. See the Wave D3
1649
+ * report for this deviation from the literal "pages → orbitals → ..." spec
1650
+ * line.
1651
+ *
1652
+ * @packageDocumentation
1653
+ */
1654
+
1655
+ /**
1656
+ * Flattens an OrbitalSchema into FileTree's `items` shape. See the ID scheme
1657
+ * doc comment above the file header for the exact id grammar.
1658
+ */
1659
+ declare function schemaToLayerItems(schema: OrbitalSchema): FileTreeItem[];
1660
+ /** Every field a LayersPanel id can carry, populated up to whatever depth the id reaches. `orbitalName` is the only field guaranteed present. */
1661
+ interface LayerIdParts {
1662
+ orbitalName: string;
1663
+ pageName?: string;
1664
+ traitName?: string;
1665
+ /** The transition's array INDEX (see the id-scheme doc comment — not its event name). */
1666
+ transitionIndex?: number;
1667
+ slotName?: string;
1668
+ /** Position among the slot's render-ui effects (disambiguates two effects targeting the same slot name). */
1669
+ patternSlotIndex?: number;
1670
+ /** Schema-compatible address into the render-ui tree (`root`, `root.children.0`, …) — the exact `patternPath` `schemaEditor.movePattern`/`removePattern`/`updatePatternProp` expect. */
1671
+ patternPath?: string;
1672
+ }
1673
+ /**
1674
+ * Parses any id `schemaToLayerItems` produces back into its typed segments.
1675
+ * Returns `null` for a malformed id (missing/garbled `orbital:` root, or an
1676
+ * unrecognized segment). Segments below the deepest one present in `id` are
1677
+ * left `undefined` — e.g. a trait-level id has no `slotName`/`patternPath`.
1678
+ */
1679
+ declare function parseLayerId(id: string): LayerIdParts | null;
1680
+ interface LayersPanelProps {
1681
+ schema: OrbitalSchema;
1682
+ /** Currently selected node id (any level of the ID scheme above). */
1683
+ selectedId?: string;
1684
+ onSelect?: (id: string) => void;
1685
+ /**
1686
+ * Reorder a node within the tree. Threaded to FileTree's `onNodeReorder`
1687
+ * seam — presence-gated there, so omitting it just means no dragging.
1688
+ */
1689
+ onReorder?: (id: string, newParentId: string | null, index: number) => void;
1690
+ }
1691
+ declare const LayersPanel: React__default.FC<LayersPanelProps>;
1692
+
1529
1693
  /**
1530
1694
  * FlowCanvas — V3 UI Projection Canvas
1531
1695
  *
@@ -1673,6 +1837,31 @@ interface FlowCanvasProps {
1673
1837
  x: number;
1674
1838
  y: number;
1675
1839
  }>) => void;
1840
+ /**
1841
+ * Fired whenever the internal `selectedNode` changes — select, clear-on-
1842
+ * escape, clear-on-level-change, and pattern-selection sync all route
1843
+ * through this. Lets a consumer mirror selection into a persistent
1844
+ * properties panel rendered outside the canvas (see `externalInspector`).
1845
+ */
1846
+ onSelectedNodeChange?: (node: PreviewNodeData | null) => void;
1847
+ /**
1848
+ * Fired whenever the in-node pattern selection changes (a pattern click
1849
+ * inside `OrbPreviewNode`, cleared on background click / Escape / pattern
1850
+ * delete). `PatternSelectionContext` is internal to this component's own
1851
+ * render tree, so an externally-rendered `OrbInspector` (see
1852
+ * `externalInspector`) has no other way to learn which pattern the user
1853
+ * picked — pass this straight through to `OrbInspector`'s `selectedPattern`
1854
+ * prop to keep Design-tab prop editing working outside the canvas.
1855
+ */
1856
+ onSelectedPatternChange?: (pattern: SelectedPattern | null) => void;
1857
+ /**
1858
+ * When true, FlowCanvas does not render its inline `OrbInspector` — the
1859
+ * consumer is expected to render one externally, fed by
1860
+ * `onSelectedNodeChange` + `onSelectedPatternChange`. Selection
1861
+ * highlighting, keyboard delete, and every other behavior is unchanged.
1862
+ * Default `false` preserves the built-in inline panel.
1863
+ */
1864
+ externalInspector?: boolean;
1676
1865
  }
1677
1866
  declare const FlowCanvas: React__default.FC<FlowCanvasProps>;
1678
1867
 
@@ -1874,4 +2063,4 @@ interface AvlClickTargetProps {
1874
2063
  }
1875
2064
  declare const AvlClickTarget: React__default.FC<AvlClickTargetProps>;
1876
2065
 
1877
- export { AVL_FIELD_TYPE_SHAPES, AVL_OPERATOR_COLORS, type ApplicationLevelData, AvlApplication, type AvlApplicationProps, AvlBackwardEdge, type AvlBaseProps, AvlBehaviorGlyph, type AvlBehaviorGlyphProps, AvlBinding, AvlBindingEdge, type AvlBindingProps, AvlBindingRef, type AvlBindingRefProps, AvlClickTarget, type AvlClickTargetProps, AvlClosedCircuit, type AvlClosedCircuitProps, type AvlClosedCircuitState, type AvlClosedCircuitTransition, AvlCosmicZoom, type AvlCosmicZoomProps, type AvlEdgeData, AvlEffect, type AvlEffectProps, type AvlEffectType, AvlEmitListen, type AvlEmitListenProps, AvlEntity, type AvlEntityProps, AvlEvent, type AvlEventProps, AvlEventWireEdge, type AvlEventWireEdgeData, AvlExprTree, type AvlExprTreeNode, type AvlExprTreeProps, AvlField, type AvlFieldProps, AvlFieldType, type AvlFieldTypeKind, type AvlFieldTypeProps, AvlGuard, type AvlGuardProps, AvlLiteral, type AvlLiteralProps, type AvlNodeData, AvlOperator, type AvlOperatorNamespace, type AvlOperatorProps, AvlOrbital, AvlOrbitalNode, type AvlOrbitalProps, AvlOrbitalUnit, type AvlOrbitalUnitPage, type AvlOrbitalUnitProps, type AvlOrbitalUnitTrait, AvlOrbitalsCosmicZoom, type AvlOrbitalsCosmicZoomProps, AvlPage, AvlPageEdge, type AvlPageProps, AvlPersistence, type AvlPersistenceKind, type AvlPersistenceProps, AvlSExpr, type AvlSExprProps, AvlSlotMap, type AvlSlotMapProps, type AvlSlotMapSlot, AvlState, AvlStateMachine, type AvlStateMachineProps, type AvlStateMachineState, type AvlStateMachineTransition, type AvlStateProps, AvlSwimLane, type AvlSwimLaneProps, AvlTrait, type AvlTraitProps, AvlTraitScene, type AvlTraitSceneProps, AvlTransition, AvlTransitionEdge, type AvlTransitionEdgeData, AvlTransitionLane, type AvlTransitionLaneProps, type AvlTransitionProps, AvlTransitionScene, type AvlTransitionSceneProps, type BehaviorCanvasEntry, BehaviorComposeNode, type BehaviorComposeNodeData, type BehaviorGlyphChild, type BehaviorGlyphConnection, type BehaviorLevel, type BehaviorRegistryRecord, BehaviorView, type BehaviorWireEdgeData, CONNECTION_COLORS, type CanvasContainerNode, CanvasDndProvider, type CanvasDndProviderProps, type CanvasDragKind, type CanvasDragPayload, type CanvasDropEvent, type CanvasDropTarget, type ComposeViewLevel, type ConnectableEvent, type CrossLink, DOMAIN_COLORS, DetailView, EFFECT_CATEGORY_COLORS, EFFECT_TYPE_TO_CATEGORY, type EffectCategory, type ElkLayout, type EventEdgeData, EventFlowEdge, FlowCanvas, type FlowCanvasProps, type GlyphSize, type LayoutEdge, type LayoutNode, MiniStateMachine, ModuleCard, OrbInspector, type OrbInspectorProps, OrbPreviewNode, type OrbitalLevelData, type PatternEventSource, type PreviewNodeData, type RenderUIEntry, STATE_COLORS, type StateRole, SystemNode, type TraitLevelData, type TransitionLevelData, type UseCanvasDraggableArgs, type UseCanvasDraggableResult, type UseCanvasDroppableArgs, type UseCanvasDroppableResult, type ViewLevel, ZOOM_BAND_THRESHOLDS, type ZoomBand, ZoomBandContext, ZoomBreadcrumb, type ZoomBreadcrumbProps, ZoomLegend, type ZoomLegendProps, type ZoomLevel, arcPath, behaviorsToComposeGraph, computeTraitLayout, computeZoomBand, curveControlPoint, deriveEditFocusFromElement, edgePath, getStateRole, gridPositions, orbitalToExpandedGraph, parseApplicationLevel, parseOrbitalLevel, parseTraitLevel, parseTransitionLevel, radialPositions, registryEntryToCanvasEntry, ringPositions, schemaToFlowGraph, schemaToOverviewGraph, useCanvasDraggable, useCanvasDroppable, useZoomBand, zoomProgress };
2066
+ export { AVL_FIELD_TYPE_SHAPES, AVL_OPERATOR_COLORS, type ApplicationLevelData, AvlApplication, type AvlApplicationProps, AvlBackwardEdge, type AvlBaseProps, AvlBehaviorGlyph, type AvlBehaviorGlyphProps, AvlBinding, AvlBindingEdge, type AvlBindingProps, AvlBindingRef, type AvlBindingRefProps, AvlClickTarget, type AvlClickTargetProps, AvlClosedCircuit, type AvlClosedCircuitProps, type AvlClosedCircuitState, type AvlClosedCircuitTransition, AvlCosmicZoom, type AvlCosmicZoomProps, type AvlEdgeData, AvlEffect, type AvlEffectProps, type AvlEffectType, AvlEmitListen, type AvlEmitListenProps, AvlEntity, type AvlEntityProps, AvlEvent, type AvlEventProps, AvlEventWireEdge, type AvlEventWireEdgeData, AvlExprTree, type AvlExprTreeNode, type AvlExprTreeProps, AvlField, type AvlFieldProps, AvlFieldType, type AvlFieldTypeKind, type AvlFieldTypeProps, AvlGuard, type AvlGuardProps, AvlLiteral, type AvlLiteralProps, type AvlNodeData, AvlOperator, type AvlOperatorNamespace, type AvlOperatorProps, AvlOrbital, AvlOrbitalNode, type AvlOrbitalProps, AvlOrbitalUnit, type AvlOrbitalUnitPage, type AvlOrbitalUnitProps, type AvlOrbitalUnitTrait, AvlOrbitalsCosmicZoom, type AvlOrbitalsCosmicZoomProps, AvlPage, AvlPageEdge, type AvlPageProps, AvlPersistence, type AvlPersistenceKind, type AvlPersistenceProps, AvlSExpr, type AvlSExprProps, AvlSlotMap, type AvlSlotMapProps, type AvlSlotMapSlot, AvlState, AvlStateMachine, type AvlStateMachineProps, type AvlStateMachineState, type AvlStateMachineTransition, type AvlStateProps, AvlSwimLane, type AvlSwimLaneProps, AvlTrait, type AvlTraitProps, AvlTraitScene, type AvlTraitSceneProps, AvlTransition, AvlTransitionEdge, type AvlTransitionEdgeData, AvlTransitionLane, type AvlTransitionLaneProps, type AvlTransitionProps, AvlTransitionScene, type AvlTransitionSceneProps, type BehaviorCanvasEntry, BehaviorComposeNode, type BehaviorComposeNodeData, type BehaviorGlyphChild, type BehaviorGlyphConnection, type BehaviorLevel, type BehaviorRegistryRecord, BehaviorView, type BehaviorWireEdgeData, CONNECTION_COLORS, type CanvasContainerNode, CanvasDndProvider, type CanvasDndProviderProps, type CanvasDragKind, type CanvasDragPayload, type CanvasDropEvent, type CanvasDropTarget, type ComposeViewLevel, type ConnectableEvent, type CrossLink, DOMAIN_COLORS, DetailView, EFFECT_CATEGORY_COLORS, EFFECT_TYPE_TO_CATEGORY, type EffectCategory, type ElkLayout, type EventEdgeData, EventFlowEdge, FlowCanvas, type FlowCanvasProps, type GlyphSize, type LayerIdParts, LayersPanel, type LayersPanelProps, type LayoutEdge, type LayoutNode, MiniStateMachine, ModuleCard, OrbInspector, type OrbInspectorProps, OrbPreviewNode, type OrbitalLevelData, type PatternEventSource, type PreviewNodeData, type RenderUIEntry, STATE_COLORS, type SelectedPattern, type StateRole, SystemNode, type TraitLevelData, type TransitionLevelData, type UseCanvasDraggableArgs, type UseCanvasDraggableResult, type UseCanvasDroppableArgs, type UseCanvasDroppableResult, type ViewLevel, ZOOM_BAND_THRESHOLDS, type ZoomBand, ZoomBandContext, ZoomBreadcrumb, type ZoomBreadcrumbProps, ZoomLegend, type ZoomLegendProps, type ZoomLevel, arcPath, behaviorsToComposeGraph, computeTraitLayout, computeZoomBand, curveControlPoint, deriveEditFocusFromElement, edgePath, getStateRole, gridPositions, orbitalToExpandedGraph, parseApplicationLevel, parseLayerId, parseOrbitalLevel, parseTraitLevel, parseTransitionLevel, radialPositions, registryEntryToCanvasEntry, ringPositions, schemaToFlowGraph, schemaToLayerItems, schemaToOverviewGraph, useCanvasDraggable, useCanvasDroppable, useZoomBand, zoomProgress };