@almadar/ui 6.59.0 → 6.61.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 (90) hide show
  1. package/dist/BehaviorValueFrame-3ORZHPWQ.css +1252 -0
  2. package/dist/BehaviorValueFrame-QTD7BWOI.js +18 -0
  3. package/dist/TraitValueFrame-2WMYJOA5.css +1252 -0
  4. package/dist/TraitValueFrame-WOXNLLMM.js +17 -0
  5. package/dist/Typography-BY4A2NBY.js +5 -0
  6. package/dist/{UISlotRenderer-YNY7V2UJ.js → UISlotRenderer-EEOXSJCI.js} +10 -8
  7. package/dist/avl/index.cjs +31974 -27856
  8. package/dist/avl/index.d.ts +36 -13
  9. package/dist/avl/index.js +296 -6128
  10. package/dist/{avl-3d-context-BpBKZIbc.d.ts → avl-3d-context-Dxun3-ri.d.ts} +2 -0
  11. package/dist/{chunk-E6MWYQVZ.js → chunk-6PV4LASE.js} +9493 -641
  12. package/dist/{chunk-723MJUU3.js → chunk-6ZCU3BQN.js} +1 -1
  13. package/dist/{chunk-7CVXM2KS.js → chunk-7NIU5GDC.js} +2 -2
  14. package/dist/{chunk-YYYHH5BA.js → chunk-CB64IOYD.js} +0 -4
  15. package/dist/{chunk-MZIDOJMD.js → chunk-EIIQGOZW.js} +2 -1
  16. package/dist/chunk-F7NZ3KZQ.js +434 -0
  17. package/dist/{chunk-LZRW6GXG.js → chunk-FYX64CDL.js} +0 -2
  18. package/dist/{chunk-4ZGXIW3B.js → chunk-KZRAMPM6.js} +1 -1
  19. package/dist/chunk-LUREMDI3.js +49 -0
  20. package/dist/{chunk-J755QADM.js → chunk-MGN6B6OQ.js} +318 -18
  21. package/dist/{chunk-Q47ZN2DW.js → chunk-N23SVGTH.js} +83 -1
  22. package/dist/{chunk-KJGVLXEN.js → chunk-N4IJS5DD.js} +50 -116
  23. package/dist/{chunk-I5QOYW2Z.js → chunk-UTSDPJUP.js} +205 -2
  24. package/dist/{chunk-V3FGTQUE.js → chunk-ZR45FGW3.js} +7 -1
  25. package/dist/{cn-DIql5232.d.ts → cn-CDIhHCUC.d.ts} +40 -16
  26. package/dist/components/index.cjs +14423 -4100
  27. package/dist/components/index.d.ts +160 -172
  28. package/dist/components/index.js +14 -15
  29. package/dist/context/index.cjs +9 -1
  30. package/dist/context/index.js +3 -1
  31. package/dist/hooks/index.cjs +72 -6
  32. package/dist/hooks/index.d.ts +43 -2
  33. package/dist/hooks/index.js +6 -7
  34. package/dist/lib/drawable/three/index.cjs +350 -26
  35. package/dist/lib/drawable/three/index.d.ts +2 -2
  36. package/dist/lib/drawable/three/index.js +28 -7
  37. package/dist/lib/index.cjs +90 -4
  38. package/dist/lib/index.d.ts +2 -2
  39. package/dist/lib/index.js +74 -6
  40. package/dist/locales/index.cjs +0 -6
  41. package/dist/locales/index.js +2 -2
  42. package/dist/providers/index.cjs +13846 -1062
  43. package/dist/providers/index.d.ts +36 -4
  44. package/dist/providers/index.js +35 -15
  45. package/dist/runtime/index.cjs +28395 -18308
  46. package/dist/runtime/index.d.ts +65 -3
  47. package/dist/runtime/index.js +13 -379
  48. package/dist/ssr/index.cjs +506 -133
  49. package/dist/ssr/index.d.cts +56 -4
  50. package/dist/ssr/index.d.ts +56 -4
  51. package/dist/ssr/index.js +444 -71
  52. package/dist/{verificationRegistry-B3dj1Zl8.d.ts → verificationRegistry-B5aGl7WF.d.ts} +2 -1
  53. package/locales/ar.json +0 -2
  54. package/locales/en.json +0 -2
  55. package/locales/sl.json +0 -2
  56. package/package.json +7 -7
  57. package/tailwind-preset.cjs +78 -8
  58. package/themes/_contract.md +6 -0
  59. package/themes/_fonts.css +4 -4
  60. package/themes/_foundation.css +11 -0
  61. package/themes/_presets.css +2 -0
  62. package/themes/almadar-website.css +10 -0
  63. package/themes/almadar.css +10 -0
  64. package/themes/atelier.css +10 -0
  65. package/themes/bauhaus.css +10 -0
  66. package/themes/bloomberg-dense.css +10 -0
  67. package/themes/clay.css +10 -0
  68. package/themes/corporate.css +10 -0
  69. package/themes/gazette.css +10 -0
  70. package/themes/glass.css +10 -0
  71. package/themes/kflow.css +5 -0
  72. package/themes/kiosk.css +10 -0
  73. package/themes/linear-clean.css +10 -0
  74. package/themes/material.css +10 -0
  75. package/themes/minimalist.css +10 -0
  76. package/themes/nata.css +304 -0
  77. package/themes/neon.css +10 -0
  78. package/themes/notion-editorial.css +10 -0
  79. package/themes/orb.css +10 -0
  80. package/themes/prism.css +10 -0
  81. package/themes/rawi.css +304 -0
  82. package/themes/retro.css +10 -0
  83. package/themes/risograph.css +10 -0
  84. package/themes/scandi.css +10 -0
  85. package/themes/solarpunk.css +10 -0
  86. package/themes/terminal.css +138 -128
  87. package/dist/Typography-LZTP72Y4.js +0 -5
  88. package/dist/chunk-D2E44ODB.js +0 -350
  89. package/dist/chunk-N7JIG57B.js +0 -138
  90. package/dist/chunk-QJIAJ6EH.js +0 -2256
@@ -11,15 +11,15 @@ export { G as GameAudioContext, a as GameAudioContextValue, e as GameAudioContro
11
11
  import { e as AvlStateMachineProps } from '../FileTree-BSfgp-HH.js';
12
12
  export { B as BehaviorView, f as BehaviorViewProps, g as FileTree, F as FileTreeItem, h as FileTreeNode, i as FileTreeProps, M as ModuleCard, j as ModuleCardProps } from '../FileTree-BSfgp-HH.js';
13
13
  import { LucideIcon } from 'lucide-react';
14
- import { l as ContentAnnotation, c as EditorMotion, d as EditorOperator, C as ContentSegment, L as LessonSegment } from '../cn-DIql5232.js';
15
- export { B as BloomLevel, n as BloomQuizBlock, o as BloomQuizBlockProps, q as CodeRunnerPanel, r as CodeRunnerPanelProps, s as CodeSimulationOutput, t as LessonUserProgress, S as SegmentRenderer, u as SegmentRendererProps, g as cn, j as parseLessonSegments } from '../cn-DIql5232.js';
14
+ import { l as ContentAnnotation, c as EditorMotion, d as EditorOperator, C as ContentSegment, L as LessonSegment } from '../cn-CDIhHCUC.js';
15
+ export { B as BloomLevel, n as BloomQuizBlock, o as BloomQuizBlockProps, q as CodeRunnerPanel, r as CodeRunnerPanelProps, s as CodeSimulationOutput, t as LessonUserProgress, S as SegmentRenderer, u as SegmentRendererProps, g as cn, j as parseLessonSegments } from '../cn-CDIhHCUC.js';
16
16
  import { LanguageCode } from '@almadar/core/i18n';
17
17
  import { EmojiPickPayload, ItemActionPayload, SelectionChangePayload } from '@almadar/core/patterns';
18
18
  import { T as TraitLevelData } from '../avl-schema-parser-CH1QoZw1.js';
19
19
  import { a as SlotContent, c as SlotPropValue } from '../useUISlots-1dk2TR4j.js';
20
20
  export { D as DEFAULT_SLOTS, S as SlotChangeCallback, b as SlotRenderConfig, U as UISlotManager, u as useUISlotManager } from '../useUISlots-1dk2TR4j.js';
21
- import '../verificationRegistry-B3dj1Zl8.js';
22
- export { ALMADAR_DND_MIME, AuthContextValue, AuthUser, CanvasGestureCallbacks, CanvasGestureHandlers, CompileResult, CompileStage, DragReorderResult, DraggablePayload, Extension, ExtensionManifest, FileSystemFile, FileSystemStatus, GitHubRepo, GitHubStatus, I18nContextValue, I18nProvider, InfiniteScrollOptions, InfiniteScrollResult, LongPressHandlers, LongPressOptions, OpenFile, Positioned, PullToRefreshOptions, PullToRefreshResult, QuerySingletonEntity, QuerySingletonResult, QuerySingletonState, QueryState, RenderI18n, RenderInterpolationHandle, RenderInterpolationOptions, SelectedFile, SharedEntityStore, SharedEntityStoreContext, SharedEntitySubscriber, SharedEntityWriter, SwipeGestureOptions, SwipeGestureResult, SwipeHandlers, TapRevealOptions, TapRevealResult, TraitListenSpec, TranslateFunction, UseCanvasGesturesOptions, UseCompileResult, UseDraggableOptions, UseDraggableResult, UseDropZoneOptions, UseDropZoneResult, UseExtensionsOptions, UseExtensionsResult, UseFileEditorOptions, UseFileEditorResult, UseFileSystemResult, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useFormatContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useMediaQuery, usePrefersReducedMotion, usePreview, usePullToRefresh, useQuerySingleton, useRenderI18n, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation } from '../hooks/index.js';
21
+ import '../verificationRegistry-B5aGl7WF.js';
22
+ export { ALMADAR_DND_MIME, AuthContextValue, AuthUser, CanvasGestureCallbacks, CanvasGestureHandlers, CompileResult, CompileStage, DragReorderResult, DraggablePayload, Extension, ExtensionManifest, FileSystemFile, FileSystemStatus, GitHubRepo, GitHubStatus, I18nContextValue, I18nProvider, InfiniteScrollOptions, InfiniteScrollResult, LongPressHandlers, LongPressOptions, OpenFile, PageHeadInput, Positioned, PullToRefreshOptions, PullToRefreshResult, QuerySingletonEntity, QuerySingletonResult, QuerySingletonState, QueryState, RenderI18n, RenderInterpolationHandle, RenderInterpolationOptions, SelectedFile, SharedEntityStore, SharedEntityStoreContext, SharedEntitySubscriber, SharedEntityWriter, SwipeGestureOptions, SwipeGestureResult, SwipeHandlers, TapRevealOptions, TapRevealResult, TraitListenSpec, TranslateFunction, UseCanvasGesturesOptions, UseCompileResult, UseDraggableOptions, UseDraggableResult, UseDropZoneOptions, UseDropZoneResult, UseExtensionsOptions, UseExtensionsResult, UseFileEditorOptions, UseFileEditorResult, UseFileSystemResult, claimDelivery, createSharedEntityStore, createTranslate, parseQueryBinding, runTickFrame, useAgentChat, useAuthContext, useCanvasGestures, useCompile, useConnectGitHub, useDeepAgentGeneration, useDisconnectGitHub, useDragReorder, useDraggable, useDropZone, useEmitEvent, useEventBus, useEventListener, useExtensions, useFileEditor, useFileSystem, useFormatContext, useGitHubBranches, useGitHubRepo, useGitHubRepos, useGitHubStatus, useInfiniteScroll, useLongPress, useMediaQuery, usePageHead, usePrefersReducedMotion, usePreview, usePullToRefresh, useQuerySingleton, useRenderI18n, useRenderInterpolation, useSharedEntitySnapshot, useSharedEntityStore, useSharedEntityStoreContext, useSwipeGesture, useTapReveal, useTraitListens, useTranslate, useUIEvents, useValidation } from '../hooks/index.js';
23
23
  export { E as EventBusContextType, a as NavStackApi, u as useNavStack } from '../NavStackContext-04NLdXsY.js';
24
24
  export { E as EditorKeyEvent, a as KeyCaptureEntry, K as KeyCaptureTable, U as UseKeyboardRouterOptions, k as keyChord, m as mergeCaptureTables, u as useKeyboardRouter } from '../useKeyboardRouter-BW3rThep.js';
25
25
  export { S as SlotHostManifest, a as SlotHostRegion, b as assertUniqueSlotsPerHost } from '../slot-host-Czc2JAxo.js';
@@ -227,7 +227,7 @@ declare const SvgStack: React__default.FC<SvgStackProps>;
227
227
  type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "success" | "warning" | "default" | "link";
228
228
  type ButtonSize = "sm" | "md" | "lg";
229
229
  /** @accessibleName label */
230
- interface ButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButtonElement>, keyof A11yProps>, A11yProps {
230
+ interface ButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButtonElement>, keyof A11yProps | 'onClick'>, A11yProps {
231
231
  /** Additional CSS classes applied to the root element. */
232
232
  className?: string;
233
233
  variant?: ButtonVariant;
@@ -258,6 +258,11 @@ interface ButtonProps extends Omit<React__default.ButtonHTMLAttributes<HTMLButto
258
258
  disabled?: boolean;
259
259
  /** Makes the button a link: `#anchor` scrolls, an absolute URL loads, a path navigates in-app */
260
260
  href?: string;
261
+ /**
262
+ * Runs on activation, on the button or, with `href`, on the link; calling
263
+ * `preventDefault()` there keeps a link from following its `href`.
264
+ */
265
+ onClick?: (event: React__default.MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;
261
266
  /** Test identifier for automated tests */
262
267
  'data-testid'?: string;
263
268
  }
@@ -337,6 +342,8 @@ interface TextareaProps extends Omit<React__default.TextareaHTMLAttributes<HTMLT
337
342
  placeholder?: string;
338
343
  /** Number of visible rows */
339
344
  rows?: number;
345
+ /** Controlled value, for a field the program fills or clears. */
346
+ value?: string;
340
347
  /** Declarative event: fires on ⌘/Ctrl+Enter with `{ value }`. */
341
348
  action?: EventEmit<{
342
349
  value: string;
@@ -541,6 +548,7 @@ declare namespace AtlasImage {
541
548
  type ImageFit = 'cover' | 'contain' | 'fill' | 'none';
542
549
  type ImageAspect = 'auto' | '1/1' | '4/3' | '3/2' | '16/9' | '21/9';
543
550
  type ImageRounded = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';
551
+ type ImagePosition = 'center' | 'top' | 'bottom' | 'left' | 'right';
544
552
  /** @accessibleName alt */
545
553
  interface ImageProps extends A11yProps {
546
554
  /** Image source URL */
@@ -557,6 +565,14 @@ interface ImageProps extends A11yProps {
557
565
  bordered?: boolean;
558
566
  /** "lazy" defers off-screen images; "eager" for above-the-fold media */
559
567
  loading?: 'lazy' | 'eager';
568
+ /** Which part of the image stays visible when it is cropped */
569
+ position?: ImagePosition;
570
+ /** Candidate sources at different widths (the HTML `srcset`) */
571
+ srcSet?: string;
572
+ /** Rendered widths at each breakpoint (the HTML `sizes`) */
573
+ sizes?: string;
574
+ /** The page's main image: load it first */
575
+ priority?: boolean;
560
576
  /** Additional class names */
561
577
  className?: string;
562
578
  }
@@ -677,6 +693,9 @@ interface AvatarProps extends A11yProps {
677
693
  }
678
694
  declare const Avatar: React__default.FC<AvatarProps>;
679
695
 
696
+ type BandEdge = 'none' | 'curve' | 'wave' | 'arc' | 'tilt' | 'step' | 'scallop';
697
+ type BandEdgeColor = 'background' | 'muted' | 'surface' | 'gradient' | 'inverse';
698
+
680
699
  /**
681
700
  * Box Component
682
701
  *
@@ -686,7 +705,7 @@ declare const Avatar: React__default.FC<AvatarProps>;
686
705
 
687
706
  type BoxPadding = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
688
707
  type BoxMargin = "none" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "auto";
689
- type BoxBg = "transparent" | "primary" | "secondary" | "muted" | "accent" | "surface" | "overlay";
708
+ type BoxBg = "transparent" | "primary" | "secondary" | "muted" | "accent" | "surface" | "overlay" | "gradient" | "inverse";
690
709
  type BoxRounded = "none" | "sm" | "md" | "lg" | "xl" | "2xl" | "full";
691
710
  type BoxShadow = "none" | "sm" | "md" | "lg" | "xl";
692
711
  interface BoxProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, keyof A11yProps>, A11yProps {
@@ -738,7 +757,10 @@ interface BoxProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, k
738
757
  * @payloadFor action
739
758
  */
740
759
  actionPayload?: EventPayload;
741
- /** Declarative hover event — emits UI:{hoverEvent} with { hovered: true/false } on mouseEnter/mouseLeave */
760
+ /**
761
+ * Declarative hover event — emits UI:{hoverEvent} with { hovered: true/false } on mouseEnter/mouseLeave
762
+ * @notification
763
+ */
742
764
  hoverEvent?: EventEmit<{
743
765
  hovered: boolean;
744
766
  }>;
@@ -746,6 +768,20 @@ interface BoxProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, k
746
768
  tapReveal?: boolean;
747
769
  /** Maximum width (CSS value, e.g., "550px", "80rem") */
748
770
  maxWidth?: string;
771
+ /** Shape cut into the top edge of a full-width band; "curve" uses the theme's shape */
772
+ edgeTop?: BandEdge;
773
+ /** Shape cut into the bottom edge of a full-width band; "curve" uses the theme's shape */
774
+ edgeBottom?: BandEdge;
775
+ /** Surface of the neighbouring band, which fills the cut */
776
+ edgeColor?: BandEdgeColor;
777
+ /** Mirror the edge shapes horizontally */
778
+ edgeFlip?: boolean;
779
+ /** Lay the theme's texture over the band */
780
+ texture?: boolean;
781
+ /** Content that appears or changes inside the box eases in instead of switching in one frame (new rows, swapped views, changed text), played in presentation motion (the theme's dramatic duration, standard easing) so it can be watched. Off under reduced motion. */
782
+ animateChanges?: boolean;
783
+ /** Scene behind the band's content (photo, illustration, pattern); never takes clicks */
784
+ backdrop?: React__default.ReactNode;
749
785
  /** Children elements */
750
786
  children?: React__default.ReactNode;
751
787
  }
@@ -1017,7 +1053,10 @@ interface StackProps extends Omit<React__default.AriaAttributes, keyof A11yProps
1017
1053
  as?: React__default.ElementType;
1018
1054
  /** Click handler */
1019
1055
  onClick?: (e: React__default.MouseEvent) => void;
1020
- /** Keyboard handler */
1056
+ /**
1057
+ * Keyboard handler
1058
+ * @notification
1059
+ */
1021
1060
  onKeyDown?: (e: React__default.KeyboardEvent) => void;
1022
1061
  /** Element id */
1023
1062
  id?: string;
@@ -1073,10 +1112,12 @@ interface TextHighlightProps extends A11yProps {
1073
1112
  onClick?: () => void;
1074
1113
  /**
1075
1114
  * Callback when highlight is hovered
1115
+ * @notification
1076
1116
  */
1077
1117
  onMouseEnter?: () => void;
1078
1118
  /**
1079
1119
  * Callback when hover ends
1120
+ * @notification
1080
1121
  */
1081
1122
  onMouseLeave?: () => void;
1082
1123
  /**
@@ -1095,7 +1136,10 @@ interface TextHighlightProps extends A11yProps {
1095
1136
  action?: EventEmit<{
1096
1137
  annotationId?: string;
1097
1138
  }>;
1098
- /** Declarative hover event — emits UI:{hoverEvent} with { hovered, annotationId } */
1139
+ /**
1140
+ * Declarative hover event — emits UI:{hoverEvent} with { hovered, annotationId }
1141
+ * @notification
1142
+ */
1099
1143
  hoverEvent?: EventEmit<{
1100
1144
  hovered: boolean;
1101
1145
  annotationId?: string;
@@ -1222,7 +1266,10 @@ interface UsePresenceOptions {
1222
1266
  animation: PresenceAnimation;
1223
1267
  /** Per-instance opt-out. Global opt-out is `--motion-enable` / reduced-motion. @default true */
1224
1268
  animate?: boolean;
1225
- /** Fired after the exit animation completes (before unmount). */
1269
+ /**
1270
+ * Fired after the exit animation completes (before unmount).
1271
+ * @notification
1272
+ */
1226
1273
  onExited?: () => void;
1227
1274
  }
1228
1275
  interface PresenceResult {
@@ -1469,6 +1516,7 @@ interface TimeSlotCellProps extends A11yProps {
1469
1516
  onPointerDown?: React__default.PointerEventHandler<HTMLDivElement>;
1470
1517
  onPointerUp?: React__default.PointerEventHandler<HTMLDivElement>;
1471
1518
  onPointerCancel?: React__default.PointerEventHandler<HTMLDivElement>;
1519
+ /** @notification */
1472
1520
  onPointerLeave?: React__default.PointerEventHandler<HTMLDivElement>;
1473
1521
  "data-testid"?: string;
1474
1522
  }
@@ -1596,7 +1644,10 @@ interface TypewriterTextProps extends A11yProps {
1596
1644
  startDelay?: number;
1597
1645
  /** Additional class names */
1598
1646
  className?: string;
1599
- /** Called when the entire text has been revealed */
1647
+ /**
1648
+ * Called when the entire text has been revealed
1649
+ * @notification
1650
+ */
1600
1651
  onComplete?: () => void;
1601
1652
  }
1602
1653
  declare const TypewriterText: React__default.FC<TypewriterTextProps>;
@@ -1672,6 +1723,21 @@ interface AnimatedRevealProps extends Omit<React__default.HTMLAttributes<HTMLDiv
1672
1723
  delay?: number;
1673
1724
  /** How much of the element must be visible before triggering, 0-1 (default: 0.15) */
1674
1725
  threshold?: number;
1726
+ /**
1727
+ * scroll trigger: event emitted once (as UI:{revealEvent}) the first time the element scrolls into view; never under reduced motion
1728
+ * @notification
1729
+ */
1730
+ revealEvent?: EventKey;
1731
+ /**
1732
+ * scroll trigger: event emitted (as UI:{enterEvent}) every time the element enters the view
1733
+ * @notification
1734
+ */
1735
+ enterEvent?: EventKey;
1736
+ /**
1737
+ * scroll trigger: event emitted (as UI:{leaveEvent}) every time the element leaves the view after having entered it
1738
+ * @notification
1739
+ */
1740
+ leaveEvent?: EventKey;
1675
1741
  /** Animate only the first time the element enters the viewport (default: true) */
1676
1742
  once?: boolean;
1677
1743
  /** Manual control: when trigger='manual', set this to true to animate */
@@ -2473,12 +2539,18 @@ interface Canvas2DProps extends A11yProps {
2473
2539
  unitClickEvent?: EventEmit<{
2474
2540
  unitId: string;
2475
2541
  }>;
2476
- /** Emits UI:{tileHoverEvent} with the unprojected scene { x, y } on hover. */
2542
+ /**
2543
+ * Emits UI:{tileHoverEvent} with the unprojected scene { x, y } on hover.
2544
+ * @notification
2545
+ */
2477
2546
  tileHoverEvent?: EventEmit<{
2478
2547
  x: number;
2479
2548
  y: number;
2480
2549
  }>;
2481
- /** Emits UI:{tileLeaveEvent} with {} on pointer leave. */
2550
+ /**
2551
+ * Emits UI:{tileLeaveEvent} with {} on pointer leave.
2552
+ * @notification
2553
+ */
2482
2554
  tileLeaveEvent?: EventEmit<Record<string, never>>;
2483
2555
  /** Maps a keydown `e.code` — optionally prefixed `Mod+` (⌘/Ctrl), `Shift+`, `Alt+` in that order — to the board's SEMANTIC event (device-agnostic input), emitted as `UI:{event}`; keystrokes inside inputs/textareas never route. */
2484
2556
  keyMap?: Record<string, EventKey>;
@@ -2625,6 +2697,7 @@ interface CanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProps>, A11
2625
2697
  x: number;
2626
2698
  z: number;
2627
2699
  }>;
2700
+ /** @notification */
2628
2701
  tileHoverEvent?: EventEmit<{
2629
2702
  x: number;
2630
2703
  y: number;
@@ -2632,6 +2705,7 @@ interface CanvasProps extends Omit<React$1.AriaAttributes, keyof A11yProps>, A11
2632
2705
  tileId: string;
2633
2706
  z: number;
2634
2707
  }>;
2708
+ /** @notification */
2635
2709
  tileLeaveEvent?: EventEmit<Record<string, never>>;
2636
2710
  /** Feature-click event (3D only). */
2637
2711
  featureClickEvent?: EventEmit<{
@@ -3593,7 +3667,10 @@ interface LearningCanvasProps extends A11yProps {
3593
3667
  type?: string;
3594
3668
  index: number;
3595
3669
  }) => void;
3596
- /** Hovered shape payload: { id?, type?, index }. */
3670
+ /**
3671
+ * Hovered shape payload: { id?, type?, index }.
3672
+ * @notification
3673
+ */
3597
3674
  onShapeHover?: (payload: {
3598
3675
  id?: string;
3599
3676
  type?: string;
@@ -3615,7 +3692,10 @@ interface ErrorBoundaryProps {
3615
3692
  fallback?: ReactNode | ((error: Error, reset: () => void) => ReactNode);
3616
3693
  /** Additional CSS classes for the wrapper */
3617
3694
  className?: string;
3618
- /** Called when an error is caught (for logging/telemetry) */
3695
+ /**
3696
+ * Called when an error is caught (for logging/telemetry)
3697
+ * @notification
3698
+ */
3619
3699
  onError?: (error: Error, errorInfo: ErrorInfo) => void;
3620
3700
  }
3621
3701
  interface ErrorBoundaryState {
@@ -4495,13 +4575,6 @@ interface InputGroupProps extends Omit<InputProps, "icon" | "iconRight" | keyof
4495
4575
  }
4496
4576
  declare const InputGroup: React__default.FC<InputGroupProps>;
4497
4577
 
4498
- /**
4499
- * Menu Molecule Component
4500
- *
4501
- * A dropdown menu component with items, icons, dividers, and sub-menus.
4502
- * Uses theme-aware CSS variables for styling.
4503
- */
4504
-
4505
4578
  interface MenuItem {
4506
4579
  /** `divider` renders a separator line instead of an item */
4507
4580
  type?: "item" | "divider";
@@ -4582,13 +4655,6 @@ declare namespace TopNavItem {
4582
4655
  var displayName: string;
4583
4656
  }
4584
4657
 
4585
- /**
4586
- * Modal Molecule Component
4587
- *
4588
- * A modal dialog component with overlay, header, content, and footer.
4589
- * Uses theme-aware CSS variables for styling.
4590
- */
4591
-
4592
4658
  type ModalSize = "sm" | "md" | "lg" | "xl" | "full";
4593
4659
  /**
4594
4660
  * Layer 2 visual treatment for the modal pattern — orthogonal to the semantic
@@ -4600,7 +4666,10 @@ interface ModalProps extends A11yProps {
4600
4666
  isOpen?: boolean;
4601
4667
  /** Callback when modal should close (injected by slot wrapper) */
4602
4668
  onClose?: () => void;
4603
- /** Fires after the exit animation completes (the modal is about to unmount). */
4669
+ /**
4670
+ * Fires after the exit animation completes (the modal is about to unmount).
4671
+ * @notification
4672
+ */
4604
4673
  onExited?: () => void;
4605
4674
  title?: string;
4606
4675
  /** Modal content (can be empty if using slot content) */
@@ -5220,29 +5289,15 @@ interface IconButtonProps extends Omit<ButtonProps, 'children' | 'label' | 'icon
5220
5289
  }
5221
5290
  declare const IconButton: React__default.ForwardRefExoticComponent<IconButtonProps & React__default.RefAttributes<HTMLButtonElement>>;
5222
5291
 
5223
- /**
5224
- * Drawer Molecule Component
5225
- *
5226
- * A slide-in drawer component for displaying secondary content.
5227
- * Used by the UI Slot system for render_ui effects targeting the drawer slot.
5228
- *
5229
- * Features:
5230
- * - Left/right positioning
5231
- * - Configurable width
5232
- * - Overlay backdrop
5233
- * - Click-outside to dismiss
5234
- * - Slide animation
5235
- * - Escape key to close
5236
- *
5237
- * @packageDocumentation
5238
- */
5239
-
5240
5292
  type DrawerPosition = "left" | "right";
5241
5293
  type DrawerSize = "sm" | "md" | "lg" | "xl" | "full";
5242
5294
  interface DrawerProps extends A11yProps {
5243
5295
  /** Whether the drawer is open (defaults to true when rendered by slot wrapper) */
5244
5296
  isOpen?: boolean;
5245
- /** Fires after the exit animation completes (the drawer is about to unmount). */
5297
+ /**
5298
+ * Fires after the exit animation completes (the drawer is about to unmount).
5299
+ * @notification
5300
+ */
5246
5301
  onExited?: () => void;
5247
5302
  /** Render inside the nearest positioned ancestor (a preview frame) instead of over the window. */
5248
5303
  contained?: boolean;
@@ -5641,6 +5696,7 @@ interface CodeBlockProps extends A11yProps {
5641
5696
  /**
5642
5697
  * Declarative bus emit fired when this editor gains focus.
5643
5698
  * @tier presentation
5699
+ * @notification
5644
5700
  */
5645
5701
  onEditorFocus?: EventEmit<{
5646
5702
  editorId: string;
@@ -5648,6 +5704,7 @@ interface CodeBlockProps extends A11yProps {
5648
5704
  /**
5649
5705
  * Declarative bus emit fired when this editor loses focus.
5650
5706
  * @tier presentation
5707
+ * @notification
5651
5708
  */
5652
5709
  onEditorBlur?: EventEmit<{
5653
5710
  editorId: string;
@@ -7680,7 +7737,10 @@ interface GraphViewProps extends Omit<React__default.AriaAttributes, keyof A11yP
7680
7737
  edges: GraphViewEdge[];
7681
7738
  /** Callback when a node is clicked */
7682
7739
  onNodeClick?: (node: GraphViewNode) => void;
7683
- /** Callback when a node is hovered (null on leave) */
7740
+ /**
7741
+ * Callback when a node is hovered (null on leave)
7742
+ * @notification
7743
+ */
7684
7744
  onNodeHover?: (node: GraphViewNode | null) => void;
7685
7745
  /** Width in pixels */
7686
7746
  width?: number;
@@ -7913,7 +7973,10 @@ interface LightboxProps extends A11yProps {
7913
7973
  closeAction?: string;
7914
7974
  /** Direct onClose callback */
7915
7975
  onClose?: () => void;
7916
- /** Direct onIndexChange callback */
7976
+ /**
7977
+ * Direct onIndexChange callback
7978
+ * @notification
7979
+ */
7917
7980
  onIndexChange?: (index: number) => void;
7918
7981
  /** Additional CSS classes */
7919
7982
  className?: string;
@@ -7998,19 +8061,6 @@ interface DataDndProps {
7998
8061
  dndRoot?: boolean;
7999
8062
  }
8000
8063
 
8001
- /**
8002
- * DataGrid Molecule
8003
- *
8004
- * A simplified, schema-driven card grid for iterating over entity data.
8005
- * Extracted from the CardGrid organism with all complexity removed:
8006
- * no built-in search, sort, filter, pagination, selection, or bulk actions.
8007
- *
8008
- * Accepts `fields` config for per-field rendering control (icon, variant, format)
8009
- * and `itemActions` for per-item event bus wiring.
8010
- *
8011
- * Uses atoms only internally: Box, VStack, HStack, Typography, Badge, Button, Icon.
8012
- */
8013
-
8014
8064
  /** A DataGrid field is the shared display-field shape: every slot (title, badge, format, colour) is declared on it. */
8015
8065
  type DataGridField = DisplayField;
8016
8066
  interface DataGridItemAction {
@@ -8100,6 +8150,8 @@ interface DataGridProps extends DataDndProps, EmptyStateSlotProps, A11yProps {
8100
8150
  * @deprecated Use children render prop in React code. This prop exists for pattern registry sync.
8101
8151
  */
8102
8152
  renderItem?: (item: EntityRow, index: number) => React__default.ReactNode;
8153
+ /** Entrance animation each card plays when it mounts; a card that changes place glides there. Lists rendered inside the grid share its movement, so a card moved between them glides across */
8154
+ itemEnter?: 'none' | 'fade' | 'rise' | 'scale' | 'slide';
8103
8155
  /** Max items to show before "Show More" button. Defaults to 0 (disabled). */
8104
8156
  pageSize?: number;
8105
8157
  /**
@@ -8115,26 +8167,11 @@ interface DataGridProps extends DataDndProps, EmptyStateSlotProps, A11yProps {
8115
8167
  * field whose type is relation. Same contract DetailPanel takes. */
8116
8168
  relationsData?: Record<string, readonly RelationOption[]>;
8117
8169
  }
8118
- declare function DataGrid({ entity, emptyIcon, emptyTitle, emptyDescription, emptyAction, fields, columns, itemActions, itemClickEvent, maxInlineActions, scrollX, cols, gap, minCardWidth, className, isLoading, skeleton, error, imageField, selectable, selectionEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, look, surface, relationsData, ...rest }: DataGridProps): React__default.JSX.Element;
8170
+ declare function DataGrid({ entity, emptyIcon, emptyTitle, emptyDescription, emptyAction, fields, columns, itemActions, itemClickEvent, maxInlineActions, scrollX, cols, gap, minCardWidth, className, isLoading, skeleton, error, imageField, selectable, selectionEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, renderItem: schemaRenderItem, dragGroup, accepts, sortable, dropEvent, reorderEvent, positionEvent, dndItemIdField, dndRoot, look, surface, relationsData, itemEnter, ...rest }: DataGridProps): React__default.JSX.Element;
8119
8171
  declare namespace DataGrid {
8120
8172
  var displayName: string;
8121
8173
  }
8122
8174
 
8123
- /**
8124
- * DataList Molecule
8125
- *
8126
- * A simplified, schema-driven list for iterating over entity data.
8127
- * Extracted from the List organism with all complexity removed:
8128
- * no built-in search, filter, selection, bulk actions, or custom renderers.
8129
- * Ordering is available via `sortBy`/`sortDirection`, but it orders only the
8130
- * rows handed in — a set larger than its `limit` must be ordered upstream.
8131
- *
8132
- * Accepts `fields` config for per-field rendering control (icon, variant, format)
8133
- * and `itemActions` for per-item event bus wiring.
8134
- *
8135
- * Uses atoms only internally: Box, VStack, HStack, Typography, Badge, Button, Icon.
8136
- */
8137
-
8138
8175
  /** A DataList field is the shared display-field shape: every slot (title, badge, format, colour) is declared on it. */
8139
8176
  type DataListField = DisplayField;
8140
8177
  interface DataListItemAction {
@@ -8150,6 +8187,8 @@ interface DataListItemAction {
8150
8187
  when?: RowActionCondition;
8151
8188
  /** Extra data the action sends, authored as `(fn row { key: <expr> })`; it emits `{ id, row }` plus these keys. */
8152
8189
  payload?: RowActionPayload;
8190
+ /** Page the action opens instead of emitting; `{{row.<field>}}` is replaced with the row's value. */
8191
+ navigatesTo?: string;
8153
8192
  }
8154
8193
  interface DataListSwipeAction {
8155
8194
  /** Button label */
@@ -8178,6 +8217,8 @@ interface DataListProps extends DataDndProps, EmptyStateSlotProps, A11yProps {
8178
8217
  columns?: readonly DataListField[];
8179
8218
  /** Per-item action buttons */
8180
8219
  itemActions?: readonly DataListItemAction[];
8220
+ /** Entrance animation each row plays when it mounts, so an item arriving in this list (moved from another) animates in */
8221
+ itemEnter?: 'none' | 'fade' | 'rise' | 'scale' | 'slide';
8181
8222
  /** Max inline action buttons before the rest collapse into a "⋯" overflow menu. Omit = all inline. */
8182
8223
  maxInlineActions?: number;
8183
8224
  /** When set, the whole row is clickable and emits UI:{itemClickEvent} with
@@ -8277,25 +8318,11 @@ interface DataListProps extends DataDndProps, EmptyStateSlotProps, A11yProps {
8277
8318
  * field whose type is relation. Same contract DetailPanel takes. */
8278
8319
  relationsData?: Record<string, readonly RelationOption[]>;
8279
8320
  }
8280
- declare function DataList({ entity, fields, columns, itemActions, maxInlineActions, itemClickEvent, gap, variant, groupBy, groupFormat, senderField, senderLabelField, currentUser, emptyMessage, emptyIcon, emptyTitle, emptyDescription, emptyAction, className, isLoading, skeleton, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, sortBy, sortDirection, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, surface, relationsData, ...rest }: DataListProps): React__default.JSX.Element;
8321
+ declare function DataList({ entity, fields, columns, itemActions, itemEnter, maxInlineActions, itemClickEvent, gap, variant, groupBy, groupFormat, senderField, senderLabelField, currentUser, emptyMessage, emptyIcon, emptyTitle, emptyDescription, emptyAction, className, isLoading, skeleton, error, reorderable: _reorderable, reorderEvent: _reorderEvent, swipeLeftEvent: _swipeLeftEvent, swipeLeftActions: _swipeLeftActions, swipeRightEvent: _swipeRightEvent, swipeRightActions: _swipeRightActions, longPressEvent: _longPressEvent, infiniteScroll, loadMoreEvent, hasMore, children, pageSize, sortBy, sortDirection, renderItem: schemaRenderItem, dragGroup, accepts, sortable: sortableProp, dropEvent, reorderEvent: dndReorderEvent, positionEvent, dndItemIdField, dndRoot, look, surface, relationsData, ...rest }: DataListProps): React__default.JSX.Element;
8281
8322
  declare namespace DataList {
8282
8323
  var displayName: string;
8283
8324
  }
8284
8325
 
8285
- /**
8286
- * TableView Molecule
8287
- *
8288
- * A simplified, schema-driven column table for iterating over entity data.
8289
- * The table-shaped sibling of DataList (rows) and DataGrid (cards): same
8290
- * `entity` + `columns`/`fields` + `itemActions` contract and the same
8291
- * `useDataDnd` drag-to-reorder machinery, rendered as aligned columns with a
8292
- * header. All complexity is opt-in: selection, drag-reorder, and per-column
8293
- * sorting are each enabled by their own props and emit via the event bus.
8294
- *
8295
- * Uses atoms only internally: Box, VStack, HStack, Typography, Badge, Button,
8296
- * Icon, Checkbox, Divider.
8297
- */
8298
-
8299
8326
  interface TableViewColumn {
8300
8327
  /** Stable column key (React key + default value lookup). */
8301
8328
  key: string;
@@ -8629,7 +8656,10 @@ interface CarouselProps<T = CarouselItem> extends A11yProps {
8629
8656
  showArrows?: boolean;
8630
8657
  /** Enable infinite loop */
8631
8658
  loop?: boolean;
8632
- /** Declarative event name for slide change */
8659
+ /**
8660
+ * Declarative event name for slide change
8661
+ * @notification
8662
+ */
8633
8663
  slideChangeEvent?: EventEmit<{
8634
8664
  index: number;
8635
8665
  }>;
@@ -9015,6 +9045,7 @@ type QrScanResult = EventPayload & {
9015
9045
  interface QrScannerProps extends A11yProps {
9016
9046
  onScan?: (result: QrScanResult) => void;
9017
9047
  scanEvent?: EventEmit<QrScanResult>;
9048
+ /** @notification */
9018
9049
  onError?: (error: Error) => void;
9019
9050
  facingMode?: 'environment' | 'user';
9020
9051
  paused?: boolean;
@@ -9142,24 +9173,6 @@ interface RichTextEditorProps extends A11yProps {
9142
9173
  declare function sanitizeRichHtml(html: string): string;
9143
9174
  declare const RichTextEditor: React__default.FC<RichTextEditorProps>;
9144
9175
 
9145
- /**
9146
- * DocumentPanel Molecule
9147
- *
9148
- * The document writing surface, shaped like the established editors
9149
- * (Notion / Google Docs / Gutenberg's canvas): a big inline-editable title
9150
- * with the content DIRECTLY beneath it — nothing sits between the title and
9151
- * the words. The only chrome is a compact top-right cluster in the header
9152
- * row: while reading it holds a quiet Edit and the "⋯" actions menu; while
9153
- * editing it swaps to the autosave hint + Done. Document metadata lives in
9154
- * a sibling DocumentDetails card (a Gutenberg-style settings rail), never
9155
- * inside this surface.
9156
- *
9157
- * The title commits on blur/Enter (select-on-focus, so typing replaces a
9158
- * placeholder name); the body autosaves through the embedded
9159
- * RichTextEditor's change stream; clicking the read body starts an editing
9160
- * session with the cursor in the text.
9161
- */
9162
-
9163
9176
  interface DocumentPanelAction {
9164
9177
  label: string;
9165
9178
  event?: EventKey;
@@ -10064,7 +10077,10 @@ interface SidebarProps extends A11yProps {
10064
10077
  collapsed?: boolean;
10065
10078
  /** Default collapsed state */
10066
10079
  defaultCollapsed?: boolean;
10067
- /** Event emitted when collapse state changes, payload: { collapsed: boolean } */
10080
+ /**
10081
+ * Event emitted when collapse state changes, payload: { collapsed: boolean }
10082
+ * @notification
10083
+ */
10068
10084
  collapseChangeEvent?: EventEmit<{
10069
10085
  collapsed: boolean;
10070
10086
  }>;
@@ -10134,7 +10150,10 @@ interface ConfirmDialogProps extends A11yProps {
10134
10150
  isOpen?: boolean;
10135
10151
  /** Callback when dialog is closed (injected by slot wrapper) */
10136
10152
  onClose?: () => void;
10137
- /** Fires after the exit animation completes (the dialog is about to unmount). */
10153
+ /**
10154
+ * Fires after the exit animation completes (the dialog is about to unmount).
10155
+ * @notification
10156
+ */
10138
10157
  onExited?: () => void;
10139
10158
  /** Callback when action is confirmed (injected by slot wrapper) */
10140
10159
  onConfirm?: () => void;
@@ -10304,7 +10323,10 @@ interface WizardContainerProps extends A11yProps {
10304
10323
  steps: WizardStep[];
10305
10324
  /** Current step index (controlled) - accepts number or string for generated code compatibility */
10306
10325
  currentStep?: number | string;
10307
- /** Callback when step changes */
10326
+ /**
10327
+ * Callback when step changes
10328
+ * @notification
10329
+ */
10308
10330
  onStepChange?: (stepIndex: number) => void;
10309
10331
  /** Callback when wizard is completed */
10310
10332
  onComplete?: () => void;
@@ -10442,23 +10464,6 @@ interface ContentRendererProps extends Omit<DisplayStateProps, keyof A11yProps>,
10442
10464
  }
10443
10465
  declare const ContentRenderer: React__default.FC<ContentRendererProps>;
10444
10466
 
10445
- /**
10446
- * Chart Organism Component
10447
- *
10448
- * Data visualization. Supports bar / line / pie / area / donut / scatter /
10449
- * histogram chart types. Renders multi-series natively for bar / line / area
10450
- * via the `series` prop. Pie / donut consume the first series only. Scatter
10451
- * plots raw {x,y} points; histogram renders pre-binned data as gap-less bars.
10452
- *
10453
- * Bus integration:
10454
- * - top-level `actions[].event` → `UI:{event}` on click (existing behavior)
10455
- * - per-data-point `drillEvent` → `UI:{drillEvent}` with `{ label, value, seriesLabel? }`
10456
- *
10457
- * Time axis: when `timeAxis: true`, ISO date labels are formatted via Intl
10458
- * (e.g. "Mar 2026"). Positioning remains evenly spaced (real time-scale
10459
- * alignment is deliberately deferred).
10460
- */
10461
-
10462
10467
  type ChartType = "bar" | "line" | "pie" | "area" | "donut" | "scatter" | "histogram";
10463
10468
  /**
10464
10469
  * Layer 2 visual treatment for the chart pattern — drives the chart
@@ -10817,13 +10822,20 @@ interface ImportSourceOption {
10817
10822
  /** Disable the option */
10818
10823
  disabled?: boolean;
10819
10824
  }
10825
+ /** A picked file as a program can receive it: plain JSON, its contents read as UTF-8 text. */
10826
+ interface ImportedFile {
10827
+ name: string;
10828
+ size: number;
10829
+ type: string;
10830
+ text: string;
10831
+ }
10820
10832
  interface ImportSourcePickerProps extends A11yProps {
10821
10833
  /** Source options to render */
10822
10834
  sources: ImportSourceOption[];
10823
10835
  /** Called with the source id when an 'action' option is picked */
10824
10836
  onSelect?: (sourceId: string) => void;
10825
- /** Called with the chosen files when a 'file' option resolves */
10826
- onFilesSelected?: (files: File[]) => void;
10837
+ /** Called with the chosen files, read as text, when a 'file' option resolves */
10838
+ onFilesSelected?: (files: ImportedFile[]) => void;
10827
10839
  /** Optional heading above the options */
10828
10840
  title?: string;
10829
10841
  /** Generic slot for additional sources rendered below the options */
@@ -11218,19 +11230,6 @@ interface StatCardProps extends DisplayStateProps, Omit<React__default.AriaAttri
11218
11230
  }
11219
11231
  declare const StatCard: React__default.FC<StatCardProps>;
11220
11232
 
11221
- /**
11222
- * Timeline Organism Component
11223
- *
11224
- * A vertical timeline component for displaying chronological events.
11225
- * Composes atoms and molecules for layout, uses CSS variables for theming.
11226
- *
11227
- * Orbital Component Interface Compliance:
11228
- * - Entity binding with auto-fetch when entity is a string
11229
- * - Event emission via useEventBus (UI:* events)
11230
- * - isLoading and error state props
11231
- * - className for external styling
11232
- */
11233
-
11234
11233
  type TimelineItemStatus = "complete" | "active" | "pending" | "error";
11235
11234
  /**
11236
11235
  * Layer 2 visual treatment for the timeline pattern — orthogonal to the
@@ -11326,15 +11325,6 @@ interface DetailTab {
11326
11325
  content?: React__default.ReactNode;
11327
11326
  }
11328
11327
 
11329
- /**
11330
- * DetailPanel Organism Component
11331
- *
11332
- * Composes atoms and molecules to create a professional detail view.
11333
- *
11334
- * Data is provided by the runtime via the `entity` prop.
11335
- * Extends DisplayStateProps (see ./types.ts) and declares `entity?: EntityRow`.
11336
- */
11337
-
11338
11328
  /** Relation descriptor injected onto a display field — target entity +
11339
11329
  * cardinality, mirroring the `.lolo` `{type:"relation", relation:{...}}`
11340
11330
  * descriptor. */
@@ -11486,7 +11476,7 @@ interface DetailPanelProps extends DisplayStateProps, A11yProps {
11486
11476
  /** Line items composed in instead of `lineItems` — e.g. the child rows' own trait (ledger). */
11487
11477
  lineItemsContent?: React__default.ReactNode;
11488
11478
  /** Record fields shown as the document's totals, in order (ledger). */
11489
- totals?: readonly DisplayField[];
11479
+ totals?: readonly FieldDef[];
11490
11480
  /** The thread shown as the main surface (conversation). */
11491
11481
  thread?: readonly EntityWith<ReplyNodeRow>[];
11492
11482
  /** The thread composed in instead of `thread` — e.g. the replies' own trait with its composer (conversation). */
@@ -11496,20 +11486,6 @@ interface DetailPanelProps extends DisplayStateProps, A11yProps {
11496
11486
  }
11497
11487
  declare const DetailPanel: React__default.FC<DetailPanelProps>;
11498
11488
 
11499
- /**
11500
- * Form Organism Component
11501
- *
11502
- * A form container component with submit/reset handling.
11503
- * Supports both children-based and schema-based form generation.
11504
- * Renders correct input types based on field definitions including relations.
11505
- *
11506
- * Extended for inspection forms with:
11507
- * - Conditional field visibility via S-expressions
11508
- * - Hidden calculations that emit GLOBAL_VARIABLE_SET events
11509
- * - Violation triggers that emit VIOLATION_DETECTED events
11510
- * - Nested sections with collapsible support
11511
- */
11512
-
11513
11489
  /**
11514
11490
  * S-Expression type for conditional logic (re-export from @almadar/evaluator)
11515
11491
  */
@@ -11771,6 +11747,7 @@ interface SplitPaneProps extends Omit<React__default.AriaAttributes, keyof A11yP
11771
11747
  /** Called with the new ratio while dragging. Providing this makes `ratio`
11772
11748
  * controlled — the rendered split always tracks the prop instead of
11773
11749
  * internal state, mirroring a controlled input. Omit for uncontrolled
11750
+ * @notification
11774
11751
  * (self-tracked) behavior. */
11775
11752
  onRatioChange?: (ratio: number) => void;
11776
11753
  }
@@ -11946,22 +11923,27 @@ interface DockLayoutProps extends Omit<React__default.AriaAttributes, keyof A11y
11946
11923
  secondarySidebarWidth?: number;
11947
11924
  /** Whether `sidebar` is collapsed (controlled; the layout keeps its own state when omitted). */
11948
11925
  sidebarCollapsed?: boolean;
11926
+ /** @notification */
11949
11927
  onSidebarCollapsedChange?: (collapsed: boolean) => void;
11950
11928
  /** Sidebar size as a SplitPane ratio (0-100, percentage of the sidebar/main split). @default 20 */
11951
11929
  sidebarWidth?: number;
11930
+ /** @notification */
11952
11931
  onSidebarWidthChange?: (width: number) => void;
11953
11932
  /** Minimum sidebar size in pixels, forwarded to SplitPane's `minSize`. @default 160 */
11954
11933
  sidebarMinSize?: number;
11955
11934
  /** Whether `bottomPanel` is collapsed (controlled; the layout keeps its own state when omitted). */
11956
11935
  bottomPanelCollapsed?: boolean;
11936
+ /** @notification */
11957
11937
  onBottomPanelCollapsedChange?: (collapsed: boolean) => void;
11958
11938
  /** Bottom panel size as a SplitPane ratio (0-100, percentage given to the panel). @default 30 */
11959
11939
  bottomPanelHeight?: number;
11940
+ /** @notification */
11960
11941
  onBottomPanelHeightChange?: (height: number) => void;
11961
11942
  /** Minimum bottom panel size in pixels, forwarded to SplitPane's `minSize`. @default 120 */
11962
11943
  bottomPanelMinSize?: number;
11963
11944
  /** Whether `secondarySidebar` is collapsed (controlled; the layout keeps its own state when omitted). */
11964
11945
  secondarySidebarCollapsed?: boolean;
11946
+ /** @notification */
11965
11947
  onSecondarySidebarCollapsedChange?: (collapsed: boolean) => void;
11966
11948
  /** The mobile variant; decided by the viewport (narrower than 1024px) when omitted. */
11967
11949
  compact?: boolean;
@@ -12594,6 +12576,12 @@ interface DashboardLayoutProps {
12594
12576
  * or any other top-bar action by appending entries. Empty array (default)
12595
12577
  * renders nothing. */
12596
12578
  topBarActions?: TopBarAction[];
12579
+ /** Account-menu entries listed above Sign out (Settings, a profile page), each
12580
+ * `{icon, label, event?, navigatesTo?, variant?}` like `topBarActions`. */
12581
+ userMenuItems?: TopBarAction[];
12582
+ /** Content fills the area edge to edge — no padding, no max width, full height
12583
+ * (workspaces, canvases, maps). */
12584
+ fullBleed?: boolean;
12597
12585
  /** Notification list. Pass an empty array to show the bell with no
12598
12586
  * badge; omit / pass null to hide the bell entirely. */
12599
12587
  notifications?: NotificationItem[] | null;