@elaraai/east-ui 1.0.26 → 1.0.28

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 (266) hide show
  1. package/dist/src/buttons/icon-button/index.d.ts +33 -1
  2. package/dist/src/buttons/icon-button/index.d.ts.map +1 -1
  3. package/dist/src/buttons/icon-button/index.js +22 -4
  4. package/dist/src/buttons/icon-button/index.js.map +1 -1
  5. package/dist/src/buttons/icon-button/types.d.ts +61 -13
  6. package/dist/src/buttons/icon-button/types.d.ts.map +1 -1
  7. package/dist/src/buttons/icon-button/types.js +22 -1
  8. package/dist/src/buttons/icon-button/types.js.map +1 -1
  9. package/dist/src/charts/chart/index.d.ts +57 -2
  10. package/dist/src/charts/chart/index.d.ts.map +1 -1
  11. package/dist/src/charts/chart/index.js +13 -4
  12. package/dist/src/charts/chart/index.js.map +1 -1
  13. package/dist/src/charts/spec/index.d.ts +49 -0
  14. package/dist/src/charts/spec/index.d.ts.map +1 -1
  15. package/dist/src/charts/spec/index.js +5 -2
  16. package/dist/src/charts/spec/index.js.map +1 -1
  17. package/dist/src/charts/spec/types.d.ts +21 -5
  18. package/dist/src/charts/spec/types.d.ts.map +1 -1
  19. package/dist/src/charts/spec/types.js +12 -4
  20. package/dist/src/charts/spec/types.js.map +1 -1
  21. package/dist/src/collections/calendar/index.d.ts +18 -2
  22. package/dist/src/collections/calendar/index.d.ts.map +1 -1
  23. package/dist/src/collections/calendar/index.js +15 -1
  24. package/dist/src/collections/calendar/index.js.map +1 -1
  25. package/dist/src/collections/calendar/types.d.ts +12 -0
  26. package/dist/src/collections/calendar/types.d.ts.map +1 -1
  27. package/dist/src/collections/calendar/types.js +7 -0
  28. package/dist/src/collections/calendar/types.js.map +1 -1
  29. package/dist/src/collections/gantt/index.d.ts.map +1 -1
  30. package/dist/src/collections/gantt/index.js +12 -1
  31. package/dist/src/collections/gantt/index.js.map +1 -1
  32. package/dist/src/collections/gantt/types.d.ts +10 -0
  33. package/dist/src/collections/gantt/types.d.ts.map +1 -1
  34. package/dist/src/collections/gantt/types.js +3 -0
  35. package/dist/src/collections/gantt/types.js.map +1 -1
  36. package/dist/src/collections/matrix/index.d.ts +4 -0
  37. package/dist/src/collections/matrix/index.d.ts.map +1 -1
  38. package/dist/src/collections/matrix/index.js +9 -0
  39. package/dist/src/collections/matrix/index.js.map +1 -1
  40. package/dist/src/collections/planner/index.d.ts +69 -4
  41. package/dist/src/collections/planner/index.d.ts.map +1 -1
  42. package/dist/src/collections/planner/index.js +112 -4
  43. package/dist/src/collections/planner/index.js.map +1 -1
  44. package/dist/src/collections/planner/types.d.ts +89 -0
  45. package/dist/src/collections/planner/types.d.ts.map +1 -1
  46. package/dist/src/collections/planner/types.js +63 -0
  47. package/dist/src/collections/planner/types.js.map +1 -1
  48. package/dist/src/collections/schematic/index.d.ts +546 -2
  49. package/dist/src/collections/schematic/index.d.ts.map +1 -1
  50. package/dist/src/collections/schematic/index.js +14 -2
  51. package/dist/src/collections/schematic/index.js.map +1 -1
  52. package/dist/src/collections/schematic/types.d.ts +534 -0
  53. package/dist/src/collections/schematic/types.d.ts.map +1 -1
  54. package/dist/src/collections/schematic/types.js +3 -0
  55. package/dist/src/collections/schematic/types.js.map +1 -1
  56. package/dist/src/collections/table/index.d.ts.map +1 -1
  57. package/dist/src/collections/table/index.js +11 -1
  58. package/dist/src/collections/table/index.js.map +1 -1
  59. package/dist/src/collections/table/types.d.ts +10 -0
  60. package/dist/src/collections/table/types.d.ts.map +1 -1
  61. package/dist/src/collections/table/types.js +3 -0
  62. package/dist/src/collections/table/types.js.map +1 -1
  63. package/dist/src/component.d.ts +687 -0
  64. package/dist/src/component.d.ts.map +1 -1
  65. package/dist/src/component.js +22 -1
  66. package/dist/src/component.js.map +1 -1
  67. package/dist/src/container/card/index.d.ts +4 -0
  68. package/dist/src/container/card/index.d.ts.map +1 -1
  69. package/dist/src/container/card/index.js +4 -0
  70. package/dist/src/container/card/index.js.map +1 -1
  71. package/dist/src/container/card/types.d.ts +11 -1
  72. package/dist/src/container/card/types.d.ts.map +1 -1
  73. package/dist/src/container/card/types.js +5 -1
  74. package/dist/src/container/card/types.js.map +1 -1
  75. package/dist/src/display/chip-rail/index.d.ts +1 -1
  76. package/dist/src/display/chip-rail/index.js +1 -1
  77. package/dist/src/display/trace/index.d.ts +10 -0
  78. package/dist/src/display/trace/index.d.ts.map +1 -1
  79. package/dist/src/display/trace/index.js +11 -1
  80. package/dist/src/display/trace/index.js.map +1 -1
  81. package/dist/src/display/trace/types.d.ts +17 -0
  82. package/dist/src/display/trace/types.d.ts.map +1 -1
  83. package/dist/src/display/trace/types.js +5 -0
  84. package/dist/src/display/trace/types.js.map +1 -1
  85. package/dist/src/forms/field/index.d.ts +1 -0
  86. package/dist/src/forms/field/index.d.ts.map +1 -1
  87. package/dist/src/forms/field/types.d.ts +2 -0
  88. package/dist/src/forms/field/types.d.ts.map +1 -1
  89. package/dist/src/forms/tags-input/index.d.ts.map +1 -1
  90. package/dist/src/forms/tags-input/index.js +1 -0
  91. package/dist/src/forms/tags-input/index.js.map +1 -1
  92. package/dist/src/forms/tags-input/types.d.ts +4 -0
  93. package/dist/src/forms/tags-input/types.d.ts.map +1 -1
  94. package/dist/src/forms/tags-input/types.js +2 -0
  95. package/dist/src/forms/tags-input/types.js.map +1 -1
  96. package/dist/src/index.d.ts +3 -3
  97. package/dist/src/index.d.ts.map +1 -1
  98. package/dist/src/index.js +7 -5
  99. package/dist/src/index.js.map +1 -1
  100. package/dist/src/internal.d.ts +7 -5
  101. package/dist/src/internal.d.ts.map +1 -1
  102. package/dist/src/internal.js +6 -4
  103. package/dist/src/internal.js.map +1 -1
  104. package/dist/src/layout/aligned-stack/index.d.ts +101 -0
  105. package/dist/src/layout/aligned-stack/index.d.ts.map +1 -0
  106. package/dist/src/layout/aligned-stack/index.js +105 -0
  107. package/dist/src/layout/aligned-stack/index.js.map +1 -0
  108. package/dist/src/layout/aligned-stack/types.d.ts +50 -0
  109. package/dist/src/layout/aligned-stack/types.d.ts.map +1 -0
  110. package/dist/src/layout/aligned-stack/types.js +24 -0
  111. package/dist/src/layout/aligned-stack/types.js.map +1 -0
  112. package/dist/src/layout/index.d.ts +1 -0
  113. package/dist/src/layout/index.d.ts.map +1 -1
  114. package/dist/src/layout/index.js +1 -0
  115. package/dist/src/layout/index.js.map +1 -1
  116. package/dist/src/navigation/index.d.ts +1 -1
  117. package/dist/src/navigation/index.d.ts.map +1 -1
  118. package/dist/src/navigation/index.js +1 -1
  119. package/dist/src/navigation/index.js.map +1 -1
  120. package/dist/src/navigation/pages/index.d.ts +35 -30
  121. package/dist/src/navigation/pages/index.d.ts.map +1 -1
  122. package/dist/src/navigation/pages/index.js +33 -36
  123. package/dist/src/navigation/pages/index.js.map +1 -1
  124. package/dist/src/navigation/pages/types.d.ts +17 -0
  125. package/dist/src/navigation/pages/types.d.ts.map +1 -1
  126. package/dist/src/navigation/pages/types.js +28 -0
  127. package/dist/src/navigation/pages/types.js.map +1 -1
  128. package/dist/src/overlays/drawer/index.d.ts +6 -0
  129. package/dist/src/overlays/drawer/index.d.ts.map +1 -1
  130. package/dist/src/overlays/drawer/index.js +8 -1
  131. package/dist/src/overlays/drawer/index.js.map +1 -1
  132. package/dist/src/overlays/drawer/types.d.ts +18 -0
  133. package/dist/src/overlays/drawer/types.d.ts.map +1 -1
  134. package/dist/src/overlays/drawer/types.js +9 -0
  135. package/dist/src/overlays/drawer/types.js.map +1 -1
  136. package/dist/src/platform/index.d.ts +1 -1
  137. package/dist/src/platform/index.d.ts.map +1 -1
  138. package/dist/src/platform/index.js +1 -1
  139. package/dist/src/platform/index.js.map +1 -1
  140. package/dist/src/platform/slice/impl.d.ts +2 -0
  141. package/dist/src/platform/slice/impl.d.ts.map +1 -1
  142. package/dist/src/platform/slice/impl.js +74 -17
  143. package/dist/src/platform/slice/impl.js.map +1 -1
  144. package/dist/src/platform/slice/index.d.ts +550 -0
  145. package/dist/src/platform/slice/index.d.ts.map +1 -1
  146. package/dist/src/platform/slice/index.js +107 -1
  147. package/dist/src/platform/slice/index.js.map +1 -1
  148. package/dist/src/platform/state.d.ts +15 -0
  149. package/dist/src/platform/state.d.ts.map +1 -1
  150. package/dist/src/platform/state.js +25 -0
  151. package/dist/src/platform/state.js.map +1 -1
  152. package/dist/src/runtime/collections/schematic.d.ts +2 -2
  153. package/dist/src/runtime/collections/schematic.js +2 -2
  154. package/dist/src/runtime/layout/aligned-stack.d.ts +38 -0
  155. package/dist/src/runtime/layout/aligned-stack.d.ts.map +1 -0
  156. package/dist/src/runtime/layout/aligned-stack.js +36 -0
  157. package/dist/src/runtime/layout/aligned-stack.js.map +1 -0
  158. package/dist/src/runtime/layout/index.d.ts +1 -0
  159. package/dist/src/runtime/layout/index.d.ts.map +1 -1
  160. package/dist/src/runtime/layout/index.js +1 -0
  161. package/dist/src/runtime/layout/index.js.map +1 -1
  162. package/dist/src/runtime/navigation/index.d.ts +1 -0
  163. package/dist/src/runtime/navigation/index.d.ts.map +1 -1
  164. package/dist/src/runtime/navigation/index.js +1 -0
  165. package/dist/src/runtime/navigation/index.js.map +1 -1
  166. package/dist/src/runtime/navigation/pages.d.ts +50 -0
  167. package/dist/src/runtime/navigation/pages.d.ts.map +1 -0
  168. package/dist/src/runtime/navigation/pages.js +52 -0
  169. package/dist/src/runtime/navigation/pages.js.map +1 -0
  170. package/dist/src/shared/plot-gutter.d.ts +65 -0
  171. package/dist/src/shared/plot-gutter.d.ts.map +1 -0
  172. package/dist/src/shared/plot-gutter.js +48 -0
  173. package/dist/src/shared/plot-gutter.js.map +1 -0
  174. package/dist/src/slice/breakdown/index.d.ts +1 -0
  175. package/dist/src/slice/breakdown/index.d.ts.map +1 -1
  176. package/dist/src/slice/breakdown/types.d.ts +1 -0
  177. package/dist/src/slice/breakdown/types.d.ts.map +1 -1
  178. package/dist/src/slice/cohort/index.d.ts +1 -0
  179. package/dist/src/slice/cohort/index.d.ts.map +1 -1
  180. package/dist/src/slice/cohort/types.d.ts +1 -0
  181. package/dist/src/slice/cohort/types.d.ts.map +1 -1
  182. package/dist/src/slice/filter/index.d.ts +1 -0
  183. package/dist/src/slice/filter/index.d.ts.map +1 -1
  184. package/dist/src/slice/filter/types.d.ts +1 -0
  185. package/dist/src/slice/filter/types.d.ts.map +1 -1
  186. package/dist/src/slice/index.d.ts +17 -0
  187. package/dist/src/slice/index.d.ts.map +1 -1
  188. package/dist/src/slice/legend/index.d.ts +1 -0
  189. package/dist/src/slice/legend/index.d.ts.map +1 -1
  190. package/dist/src/slice/legend/types.d.ts +1 -0
  191. package/dist/src/slice/legend/types.d.ts.map +1 -1
  192. package/dist/src/slice/range/index.d.ts +1 -0
  193. package/dist/src/slice/range/index.d.ts.map +1 -1
  194. package/dist/src/slice/range/types.d.ts +1 -0
  195. package/dist/src/slice/range/types.d.ts.map +1 -1
  196. package/dist/src/slice/search/index.d.ts +1 -0
  197. package/dist/src/slice/search/index.d.ts.map +1 -1
  198. package/dist/src/slice/search/types.d.ts +1 -0
  199. package/dist/src/slice/search/types.d.ts.map +1 -1
  200. package/dist/src/slice/summary/index.d.ts +1 -0
  201. package/dist/src/slice/summary/index.d.ts.map +1 -1
  202. package/dist/src/slice/summary/types.d.ts +1 -0
  203. package/dist/src/slice/summary/types.d.ts.map +1 -1
  204. package/dist/test/buttons/icon-button.examples.d.ts +1 -0
  205. package/dist/test/buttons/icon-button.examples.d.ts.map +1 -1
  206. package/dist/test/buttons/icon-button.examples.js +8 -0
  207. package/dist/test/buttons/icon-button.examples.js.map +1 -1
  208. package/dist/test/charts/chart.examples.d.ts +4 -0
  209. package/dist/test/charts/chart.examples.d.ts.map +1 -1
  210. package/dist/test/charts/chart.examples.js +62 -4
  211. package/dist/test/charts/chart.examples.js.map +1 -1
  212. package/dist/test/collections/calendar.examples.d.ts +1 -0
  213. package/dist/test/collections/calendar.examples.d.ts.map +1 -1
  214. package/dist/test/collections/calendar.examples.js +17 -0
  215. package/dist/test/collections/calendar.examples.js.map +1 -1
  216. package/dist/test/collections/gantt.examples.d.ts +1 -0
  217. package/dist/test/collections/gantt.examples.d.ts.map +1 -1
  218. package/dist/test/collections/gantt.examples.js +12 -0
  219. package/dist/test/collections/gantt.examples.js.map +1 -1
  220. package/dist/test/collections/planner.examples.d.ts +42 -7
  221. package/dist/test/collections/planner.examples.d.ts.map +1 -1
  222. package/dist/test/collections/planner.examples.js +139 -24
  223. package/dist/test/collections/planner.examples.js.map +1 -1
  224. package/dist/test/collections/schematic.examples.d.ts +1 -0
  225. package/dist/test/collections/schematic.examples.d.ts.map +1 -1
  226. package/dist/test/collections/schematic.examples.js +35 -12
  227. package/dist/test/collections/schematic.examples.js.map +1 -1
  228. package/dist/test/collections/table.examples.d.ts +1 -0
  229. package/dist/test/collections/table.examples.d.ts.map +1 -1
  230. package/dist/test/collections/table.examples.js +11 -0
  231. package/dist/test/collections/table.examples.js.map +1 -1
  232. package/dist/test/container/card.examples.d.ts +1 -0
  233. package/dist/test/container/card.examples.d.ts.map +1 -1
  234. package/dist/test/container/card.examples.js +8 -0
  235. package/dist/test/container/card.examples.js.map +1 -1
  236. package/dist/test/disclosure/accordion.examples.js +3 -3
  237. package/dist/test/disclosure/accordion.examples.js.map +1 -1
  238. package/dist/test/disclosure/tabs.examples.js +3 -3
  239. package/dist/test/disclosure/tabs.examples.js.map +1 -1
  240. package/dist/test/display/chip-rail.examples.js +3 -3
  241. package/dist/test/display/chip-rail.examples.js.map +1 -1
  242. package/dist/test/display/combine.examples.js +3 -3
  243. package/dist/test/display/combine.examples.js.map +1 -1
  244. package/dist/test/display/trace.examples.d.ts +2 -0
  245. package/dist/test/display/trace.examples.d.ts.map +1 -1
  246. package/dist/test/display/trace.examples.js +23 -0
  247. package/dist/test/display/trace.examples.js.map +1 -1
  248. package/dist/test/forms/combobox.examples.js +1 -1
  249. package/dist/test/forms/tags-input.examples.d.ts +1 -0
  250. package/dist/test/forms/tags-input.examples.d.ts.map +1 -1
  251. package/dist/test/forms/tags-input.examples.js +8 -0
  252. package/dist/test/forms/tags-input.examples.js.map +1 -1
  253. package/dist/test/layout/aligned-stack.examples.d.ts +79 -0
  254. package/dist/test/layout/aligned-stack.examples.d.ts.map +1 -0
  255. package/dist/test/layout/aligned-stack.examples.js +355 -0
  256. package/dist/test/layout/aligned-stack.examples.js.map +1 -0
  257. package/dist/test/layout/stack.examples.js +1 -1
  258. package/dist/test/navigation/pages.examples.d.ts +3 -2
  259. package/dist/test/navigation/pages.examples.d.ts.map +1 -1
  260. package/dist/test/navigation/pages.examples.js +83 -99
  261. package/dist/test/navigation/pages.examples.js.map +1 -1
  262. package/dist/test/overlays/drawer.examples.d.ts +1 -0
  263. package/dist/test/overlays/drawer.examples.d.ts.map +1 -1
  264. package/dist/test/overlays/drawer.examples.js +9 -1
  265. package/dist/test/overlays/drawer.examples.js.map +1 -1
  266. package/package.json +3 -3
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { East, ArrayType, StructType, OptionType, variant, some, none, } from "@elaraai/east";
6
+ import { UIComponentType } from "../../component.js";
7
+ import { DensityType } from "../../style/interaction.js";
8
+ /**
9
+ * Standalone East type for `AlignedStack` data — mirrors the inline arm in
10
+ * `component.ts` (which spells `children` with the recursion `node`). Used by the
11
+ * renderer for `equalFor` + `ValueTypeOf`.
12
+ *
13
+ * @property children - The stacked lane components
14
+ * @property gutter - The imposed gutter (`auto` | `fixed{left,right}`)
15
+ * @property style - Optional box-model style
16
+ */
17
+ export const AlignedStackType = StructType({
18
+ children: ArrayType(UIComponentType),
19
+ gutter: OptionType(AlignedGutterType),
20
+ style: OptionType(AlignedStackStyleType),
21
+ });
22
+ import { AlignedStackStyleType } from "./types.js";
23
+ import { PlotGutterType, AlignedGutterType, } from "../../shared/plot-gutter.js";
24
+ export { AlignedStackStyleType } from "./types.js";
25
+ export { PlotGutterType, AlignedGutterType } from "../../shared/plot-gutter.js";
26
+ /** Build the `AlignedGutterType` value (`auto` | `fixed{left,right}`) from the input. */
27
+ function resolveGutter(g) {
28
+ if (g === undefined)
29
+ return undefined;
30
+ if (g === "auto")
31
+ return East.value(variant("auto", null), AlignedGutterType);
32
+ const gutter = East.value({
33
+ left: g.left !== undefined ? some(g.left) : none,
34
+ right: g.right !== undefined ? some(g.right) : none,
35
+ }, PlotGutterType);
36
+ return East.value(variant("fixed", gutter), AlignedGutterType);
37
+ }
38
+ /**
39
+ * Build an `<AlignedStack>` — a vertical stack of axis/lane components (Chart,
40
+ * Trace, Calendar, …) that share one horizontal plot gutter so their data lanes
41
+ * line up on a common x. The gutter is published to the children via context; a
42
+ * child's own `plotGutter` prop still wins over the inherited value (#147).
43
+ *
44
+ * @param children - The stacked lane components
45
+ * @param options - The {@link AlignedStackOptions} (`gutter` + box-model style)
46
+ * @returns An `AlignedStack` {@link UIComponentType} value
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * import { East } from "@elaraai/east";
51
+ * import { AlignedStack, Chart, UIComponentType } from "@elaraai/east-ui";
52
+ *
53
+ * const aligned = East.function([], UIComponentType, ($) =>
54
+ * AlignedStack.Root([
55
+ * Chart.Root(Chart.Line(rows, { x: r => r.day, y: r => r.value })),
56
+ * // …a Trace / Planner on the same day axis…
57
+ * ], { gutter: { left: "48px", right: "12px" }, gap: "8px" }));
58
+ * ```
59
+ */
60
+ function createAlignedStack(children, options) {
61
+ const gutter = resolveGutter(options?.gutter);
62
+ const densityValue = options?.density !== undefined
63
+ ? (typeof options.density === "string"
64
+ ? East.value(variant(options.density, null), DensityType)
65
+ : options.density)
66
+ : undefined;
67
+ const hasStyle = options !== undefined &&
68
+ (options.gap !== undefined || options.width !== undefined ||
69
+ options.height !== undefined || options.minHeight !== undefined ||
70
+ options.density !== undefined);
71
+ return East.value(variant("AlignedStack", {
72
+ children,
73
+ gutter: gutter !== undefined ? some(gutter) : none,
74
+ style: hasStyle
75
+ ? some(East.value({
76
+ gap: options.gap !== undefined ? some(options.gap) : none,
77
+ width: options.width !== undefined ? some(options.width) : none,
78
+ height: options.height !== undefined ? some(options.height) : none,
79
+ minHeight: options.minHeight !== undefined ? some(options.minHeight) : none,
80
+ density: densityValue !== undefined ? some(densityValue) : none,
81
+ }, AlignedStackStyleType))
82
+ : none,
83
+ }), UIComponentType);
84
+ }
85
+ /**
86
+ * `AlignedStack` — vertically stacks axis/lane components on a shared plot gutter.
87
+ *
88
+ * @remarks
89
+ * Use `AlignedStack.Root(children, { gutter })`. Types via `.Types`.
90
+ */
91
+ export const AlignedStack = {
92
+ /** Build an AlignedStack (see {@link createAlignedStack}). */
93
+ Root: createAlignedStack,
94
+ Types: {
95
+ /** The AlignedStack data struct. */
96
+ AlignedStack: AlignedStackType,
97
+ /** The `{ left, right }` plot-gutter struct. */
98
+ PlotGutter: PlotGutterType,
99
+ /** The `auto | fixed` gutter mode. */
100
+ Gutter: AlignedGutterType,
101
+ /** The AlignedStack style struct. */
102
+ Style: AlignedStackStyleType,
103
+ },
104
+ };
105
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/layout/aligned-stack/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { type SubtypeExprOrValue, OptionType, StringType, StructType } from "@elaraai/east";
6
+ import { DensityType, type DensityLiteral } from "../../style/interaction.js";
7
+ /**
8
+ * Style for {@link AlignedStack} — a vertical stack of axis/lane components that
9
+ * share one plot gutter. Minimal box-model knobs (the gutter is the point).
10
+ *
11
+ * @property gap - Vertical spacing between stacked children (CSS length / token)
12
+ * @property width - Stack width (default `100%`)
13
+ * @property height - Stack height
14
+ * @property minHeight - Stack min-height
15
+ * @property density - Density preset imposed on every lane child (comfortable | compact | condensed)
16
+ */
17
+ export declare const AlignedStackStyleType: StructType<{
18
+ readonly gap: OptionType<StringType>;
19
+ readonly width: OptionType<StringType>;
20
+ readonly height: OptionType<StringType>;
21
+ readonly minHeight: OptionType<StringType>;
22
+ readonly density: OptionType<import("@elaraai/east").VariantType<{
23
+ readonly comfortable: import("@elaraai/east").NullType;
24
+ readonly compact: import("@elaraai/east").NullType;
25
+ readonly condensed: import("@elaraai/east").NullType;
26
+ }>>;
27
+ }>;
28
+ export type AlignedStackStyleType = typeof AlignedStackStyleType;
29
+ /**
30
+ * TS input for {@link AlignedStackStyleType}.
31
+ *
32
+ * @property gap - Vertical spacing between stacked children
33
+ * @property width - Stack width (default `100%`)
34
+ * @property height - Stack height
35
+ * @property minHeight - Stack min-height
36
+ * @property density - Density preset imposed on every lane child
37
+ */
38
+ export interface AlignedStackStyle {
39
+ /** Vertical spacing between stacked children (CSS length / token). */
40
+ gap?: SubtypeExprOrValue<StringType>;
41
+ /** Stack width (default `100%`). */
42
+ width?: SubtypeExprOrValue<StringType>;
43
+ /** Stack height. */
44
+ height?: SubtypeExprOrValue<StringType>;
45
+ /** Stack min-height. */
46
+ minHeight?: SubtypeExprOrValue<StringType>;
47
+ /** Density preset imposed on every lane child (comfortable | compact | condensed). Each child still overrides with its own `density` if set. */
48
+ density?: SubtypeExprOrValue<DensityType> | DensityLiteral;
49
+ }
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/layout/aligned-stack/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE9E;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;EAMhC,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,qBAAqB,CAAC;AAEjE;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAC9B,sEAAsE;IACtE,GAAG,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACrC,oCAAoC;IACpC,KAAK,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACvC,oBAAoB;IACpB,MAAM,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACxC,wBAAwB;IACxB,SAAS,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC3C,gJAAgJ;IAChJ,OAAO,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC;CAC9D"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ import { OptionType, StringType, StructType } from "@elaraai/east";
6
+ import { DensityType } from "../../style/interaction.js";
7
+ /**
8
+ * Style for {@link AlignedStack} — a vertical stack of axis/lane components that
9
+ * share one plot gutter. Minimal box-model knobs (the gutter is the point).
10
+ *
11
+ * @property gap - Vertical spacing between stacked children (CSS length / token)
12
+ * @property width - Stack width (default `100%`)
13
+ * @property height - Stack height
14
+ * @property minHeight - Stack min-height
15
+ * @property density - Density preset imposed on every lane child (comfortable | compact | condensed)
16
+ */
17
+ export const AlignedStackStyleType = StructType({
18
+ gap: OptionType(StringType),
19
+ width: OptionType(StringType),
20
+ height: OptionType(StringType),
21
+ minHeight: OptionType(StringType),
22
+ density: OptionType(DensityType),
23
+ });
24
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/layout/aligned-stack/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA2B,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAuB,MAAM,4BAA4B,CAAC;AAE9E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC5C,GAAG,EAAQ,UAAU,CAAC,UAAU,CAAC;IACjC,KAAK,EAAM,UAAU,CAAC,UAAU,CAAC;IACjC,MAAM,EAAK,UAAU,CAAC,UAAU,CAAC;IACjC,SAAS,EAAE,UAAU,CAAC,UAAU,CAAC;IACjC,OAAO,EAAI,UAAU,CAAC,WAAW,CAAC;CACrC,CAAC,CAAC"}
@@ -5,6 +5,7 @@
5
5
  export { Box } from "./box/index.js";
6
6
  export { Flex } from "./flex/index.js";
7
7
  export { Stack } from "./stack/index.js";
8
+ export { AlignedStack } from "./aligned-stack/index.js";
8
9
  export { Separator } from "./separator/index.js";
9
10
  export { Grid } from "./grid/index.js";
10
11
  export { Splitter } from "./splitter/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
@@ -5,6 +5,7 @@
5
5
  export { Box } from "./box/index.js";
6
6
  export { Flex } from "./flex/index.js";
7
7
  export { Stack } from "./stack/index.js";
8
+ export { AlignedStack } from "./aligned-stack/index.js";
8
9
  export { Separator } from "./separator/index.js";
9
10
  export { Grid } from "./grid/index.js";
10
11
  export { Splitter } from "./splitter/index.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/layout/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC"}
@@ -4,5 +4,5 @@
4
4
  */
5
5
  export { Breadcrumb } from "./breadcrumb/index.js";
6
6
  export { NavList, NavListType, NavSectionType, NavItemType, type NavListStyle, type NavSectionInput, type NavItemInput, } from "./nav-list/index.js";
7
- export { Navigation, Pages, NavBindHandleType, navBindPlatformFn, routeVariantType, type NavRoutes, type NavRouteConfig, type NavConfig, type RouteVariantOf, type NavHandleType, type BoundNav, type PageConstructors, type PagesHandlers, type PagesBody, } from "./pages/index.js";
7
+ export { Navigation, Pages, NavBindHandleType, navBindPlatformFn, NavBindPrimitives, routeVariantType, type NavRoutes, type NavRouteConfig, type NavConfig, type RouteVariantOf, type NavHandleType, type BoundNav, type PageConstructors, type PagesHandlers, type PagesInput, } from "./pages/index.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACH,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,YAAY,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,SAAS,GACjB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/navigation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACH,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,EACX,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,YAAY,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,UAAU,GAClB,MAAM,kBAAkB,CAAC"}
@@ -4,5 +4,5 @@
4
4
  */
5
5
  export { Breadcrumb } from "./breadcrumb/index.js";
6
6
  export { NavList, NavListType, NavSectionType, NavItemType, } from "./nav-list/index.js";
7
- export { Navigation, Pages, NavBindHandleType, navBindPlatformFn, routeVariantType, } from "./pages/index.js";
7
+ export { Navigation, Pages, NavBindHandleType, navBindPlatformFn, NavBindPrimitives, routeVariantType, } from "./pages/index.js";
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/navigation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACH,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,GAId,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GAUnB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/navigation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACH,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,GAId,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GAUnB,MAAM,kBAAkB,CAAC"}
@@ -16,12 +16,12 @@
16
16
  import { ArrayType, NullType, type BlockBuilder, type ExprType, type SubtypeExprOrValue } from "@elaraai/east";
17
17
  import { UIComponentType } from "../../component.js";
18
18
  import { type NavRoutes, type RouteVariantOf, type BoundNav } from "./types.js";
19
- export { NavBindHandleType, navBindPlatformFn, routeVariantType, type NavRoutes, type NavRouteConfig, type RouteVariantOf, type NavHandleType, type BoundNav, } from "./types.js";
19
+ export { NavBindHandleType, navBindPlatformFn, NavBindPrimitives, routeVariantType, type NavRoutes, type NavRouteConfig, type RouteVariantOf, type NavHandleType, type BoundNav, } from "./types.js";
20
20
  /**
21
21
  * Per-route typed segment constructors. `Page.<route>(payload)` returns
22
22
  * `variant(route, payload)`, type-checked against the config's payload — so a
23
- * whole typed path is `[Page.overview(), Page.fermenter(row)]` (identical to the
24
- * raw `[variant("overview", null), variant("fermenter", row)]`).
23
+ * whole typed path is `[Page.overview(), Page.detail(row)]` (identical to the
24
+ * raw `[variant("overview", null), variant("detail", row)]`).
25
25
  */
26
26
  export type PageConstructors<R extends NavRoutes> = {
27
27
  [K in keyof R]: R[K]["value"] extends typeof NullType ? () => ExprType<RouteVariantOf<R>> : (payload: SubtypeExprOrValue<R[K]["value"]>) => ExprType<RouteVariantOf<R>>;
@@ -80,45 +80,50 @@ export type PagesHandlers<R extends NavRoutes> = {
80
80
  [K in keyof R]: ($: BlockBuilder<typeof UIComponentType>, payload: ExprType<R[K]["value"]>, nav: BoundNav<R>) => SubtypeExprOrValue<typeof UIComponentType>;
81
81
  };
82
82
  /**
83
- * The body of a `<Pages>` switcher (everything but the config): the path's store
84
- * key, the initial path, and the typed page registry. Split from the config so the
85
- * curried {@link Pages.Root} fixes `R` from the config first, then contextually
86
- * types every `pages` handler (a single-object form leaves the handler params
87
- * `any`, a TS inference limitation).
83
+ * The input to the `<Pages>` switcher: the nav handle (bound once in the
84
+ * enclosing `<Reactive>` via `Navigation.bind`, shared with the chrome) plus
85
+ * the typed page registry.
86
+ *
87
+ * @remarks
88
+ * Taking the **bound handle** as a prop — rather than re-binding internally
89
+ * from a key — is what makes Pages re-render on navigation inside an e3 `ui()`
90
+ * task (#114): one binding, subscribed via the correct store, drives both the
91
+ * writer (`nav.go.*` / `nav.pop()`) and the Pages render (`nav.current()`).
92
+ * `R` is fixed by `nav`, so every `pages` handler is contextually typed.
88
93
  */
89
- export interface PagesBody<R extends NavRoutes> {
90
- /** The browser-local store key the path is persisted under (same key as the chrome's `Navigation.bind`). */
91
- stateKey: string;
92
- /** The initial path (e.g. `[config.Page.overview()]`). */
93
- initial: SubtypeExprOrValue<ArrayType<RouteVariantOf<R>>>;
94
- /** One body per route — see {@link PagesHandlers}. */
95
- pages: PagesHandlers<R>;
94
+ export interface PagesInput<R extends NavRoutes> {
95
+ /** The nav handle from `Navigation.bind(config, key, initial)`, bound in the enclosing `<Reactive>`. */
96
+ nav: BoundNav<R>;
97
+ /** One body per route — see {@link PagesHandlers}. `R` is fixed by `nav`, so the handlers are contextually typed. */
98
+ pages: PagesHandlers<NoInfer<R>>;
96
99
  }
97
100
  /**
98
- * Build a `<Pages>` content-switcher from a config + a typed page registry.
101
+ * Build a `<Pages>` content-switcher from a bound nav handle + a typed page
102
+ * registry.
99
103
  *
100
- * Curried: `Pages.Root(config)({ stateKey, initial, pages })`. The factory inlines,
101
- * at build time, a nullary `render` function: re-bind the navigator by key, read
102
- * `current()`, and `match` the active route to its page body. Because the bodies
103
- * live in the match arms (in the IR), the manifest walk collects every page's binds
104
- * (the union); because only the matched arm executes, the renderer mounts just the
105
- * active page (leaf-only, visible-only). No East-scope captures the route names,
106
- * key, and initial path are baked in from the config.
104
+ * The nullary `render` reads `current()` on the **passed** handle (no internal
105
+ * re-bind) and `match`es the active route to its page body. The bodies live in
106
+ * the match arms (in the IR), so the manifest walk collects every page's binds
107
+ * (the union) while only the matched arm executes the renderer mounts just
108
+ * the active page (leaf-only, visible-only). The render closes over `nav`, so
109
+ * its `current()` read subscribes to the same store the app's handle is bound
110
+ * to (#114).
107
111
  *
108
- * @param config - A {@link Navigation.config} value (fixes the route types).
109
- * @returns A function taking the {@link PagesBody} → a `Pages` `UIComponentType` value.
112
+ * @param input - The {@link PagesInput} (`nav` handle + `pages` registry).
113
+ * @returns A `Pages` `UIComponentType` value.
110
114
  */
111
- declare function createPages<R extends NavRoutes>(config: NavConfig<R>): (body: PagesBody<R>) => ExprType<typeof UIComponentType>;
115
+ declare function createPages<R extends NavRoutes>({ nav, pages }: PagesInput<R>): ExprType<typeof UIComponentType>;
112
116
  /**
113
117
  * The `Pages` namespace — the first-class navigation content-switcher.
114
118
  *
115
119
  * @remarks
116
- * `Pages.Root(config, { key, initial, pages })` renders the active route's page
117
- * (leaf-only) and remounts on a route change. Pair it with `Navigation.bind` for
118
- * chrome (`<Breadcrumb nav>` / `<NavList nav>`) on the same key.
120
+ * Authored as the `<Pages nav={…} pages={{…}} />` tag; `Pages.Root({ nav,
121
+ * pages })` is the underlying factory. Bind the handle once with
122
+ * `Navigation.bind` in the enclosing `<Reactive>` and share it with the chrome
123
+ * (`<Breadcrumb nav>` / `<NavList nav>`).
119
124
  */
120
125
  export declare const Pages: {
121
- /** Build a `<Pages>` content-switcher. See {@link createPages}. */
126
+ /** Build a `<Pages>` content-switcher from `{ nav, pages }`. See {@link createPages}. */
122
127
  readonly Root: typeof createPages;
123
128
  };
124
129
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/navigation/pages/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/navigation/pages/index.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  import { East, ArrayType, NullType, StringType, variant, } from "@elaraai/east";
17
17
  import { UIComponentType } from "../../component.js";
18
18
  import { NavBindHandleType, navBindPlatformFn, routeVariantType, } from "./types.js";
19
- export { NavBindHandleType, navBindPlatformFn, routeVariantType, } from "./types.js";
19
+ export { NavBindHandleType, navBindPlatformFn, NavBindPrimitives, routeVariantType, } from "./types.js";
20
20
  function makePageConstructors(routes) {
21
21
  const page = {};
22
22
  for (const name of Object.keys(routes)) {
@@ -67,52 +67,49 @@ export const Navigation = {
67
67
  bind: bindNavigation,
68
68
  };
69
69
  /**
70
- * Build a `<Pages>` content-switcher from a config + a typed page registry.
70
+ * Build a `<Pages>` content-switcher from a bound nav handle + a typed page
71
+ * registry.
71
72
  *
72
- * Curried: `Pages.Root(config)({ stateKey, initial, pages })`. The factory inlines,
73
- * at build time, a nullary `render` function: re-bind the navigator by key, read
74
- * `current()`, and `match` the active route to its page body. Because the bodies
75
- * live in the match arms (in the IR), the manifest walk collects every page's binds
76
- * (the union); because only the matched arm executes, the renderer mounts just the
77
- * active page (leaf-only, visible-only). No East-scope captures the route names,
78
- * key, and initial path are baked in from the config.
73
+ * The nullary `render` reads `current()` on the **passed** handle (no internal
74
+ * re-bind) and `match`es the active route to its page body. The bodies live in
75
+ * the match arms (in the IR), so the manifest walk collects every page's binds
76
+ * (the union) while only the matched arm executes the renderer mounts just
77
+ * the active page (leaf-only, visible-only). The render closes over `nav`, so
78
+ * its `current()` read subscribes to the same store the app's handle is bound
79
+ * to (#114).
79
80
  *
80
- * @param config - A {@link Navigation.config} value (fixes the route types).
81
- * @returns A function taking the {@link PagesBody} → a `Pages` `UIComponentType` value.
81
+ * @param input - The {@link PagesInput} (`nav` handle + `pages` registry).
82
+ * @returns A `Pages` `UIComponentType` value.
82
83
  */
83
- function createPages(config) {
84
- return (body) => {
85
- const { stateKey, initial, pages } = body;
86
- // Build the match arms in host TS (outside the East block): one arm per route,
87
- // forwarding the typed payload + the (re-bound) handle to the page body.
88
- const armsFor = (nav) => {
89
- const handlers = pages;
90
- const arms = {};
91
- for (const name of Object.keys(config.routes)) {
92
- const fn = handlers[name];
93
- arms[name] = (h, payload) => fn(h, payload, nav);
94
- }
95
- return arms;
96
- };
97
- const render = East.function([], UIComponentType, ($) => {
98
- // Re-bind by key inside the free render body (bound once — no capture of an outer handle).
99
- const nav = $.const(bindNavigation(config, stateKey, initial));
100
- const cur = $.const(nav.current());
101
- return cur.match(armsFor(nav));
102
- });
103
- return East.value(variant("Pages", { render, navKey: stateKey }), UIComponentType);
84
+ function createPages({ nav, pages }) {
85
+ const handlers = pages;
86
+ // Build the match arms in host TS (outside the East block): one arm per
87
+ // route, forwarding the typed payload + the shared handle to the page body.
88
+ const armsFor = (navH) => {
89
+ const arms = {};
90
+ for (const name of Object.keys(handlers)) {
91
+ const fn = handlers[name];
92
+ arms[name] = (h, payload) => fn(h, payload, navH);
93
+ }
94
+ return arms;
104
95
  };
96
+ const render = East.function([], UIComponentType, ($) => {
97
+ const cur = $.const(nav.current());
98
+ return cur.match(armsFor(nav));
99
+ });
100
+ return East.value(variant("Pages", { render, navKey: nav.key }), UIComponentType);
105
101
  }
106
102
  /**
107
103
  * The `Pages` namespace — the first-class navigation content-switcher.
108
104
  *
109
105
  * @remarks
110
- * `Pages.Root(config, { key, initial, pages })` renders the active route's page
111
- * (leaf-only) and remounts on a route change. Pair it with `Navigation.bind` for
112
- * chrome (`<Breadcrumb nav>` / `<NavList nav>`) on the same key.
106
+ * Authored as the `<Pages nav={…} pages={{…}} />` tag; `Pages.Root({ nav,
107
+ * pages })` is the underlying factory. Bind the handle once with
108
+ * `Navigation.bind` in the enclosing `<Reactive>` and share it with the chrome
109
+ * (`<Breadcrumb nav>` / `<NavList nav>`).
113
110
  */
114
111
  export const Pages = {
115
- /** Build a `<Pages>` content-switcher. See {@link createPages}. */
112
+ /** Build a `<Pages>` content-switcher from `{ nav, pages }`. See {@link createPages}. */
116
113
  Root: createPages,
117
114
  };
118
115
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/navigation/pages/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/navigation/pages/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EACH,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,GAIV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GAInB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACH,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GAMnB,MAAM,YAAY,CAAC;AAkBpB,SAAS,oBAAoB,CAAsB,MAAS;IACxD,MAAM,IAAI,GAAmD,EAAE,CAAC;IAChE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAiB,EAAE,EAAE,CAC/B,OAAO,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAA2C,CAAC;IACxG,CAAC;IACD,OAAO,IAA2B,CAAC;AACvC,CAAC;AAsBD,SAAS,eAAe,CAAsB,MAAS;IACnD,OAAO;QACH,MAAM;QACN,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAC/B,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC;KACrC,CAAC;AACN,CAAC;AAED,+EAA+E;AAC/E,kFAAkF;AAClF,+EAA+E;AAE/E;;;;;;;;;;;;GAYG;AACH,SAAS,cAAc,CACnB,MAAoB,EACpB,GAAW,EACX,OAAyD;IAEzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC7C,OAAO,iBAAiB,CACpB,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,EAC1B,QAAQ,EACR,OAAgB,CACJ,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,oEAAoE;IACpE,MAAM,EAAE,eAAe;IACvB,qDAAqD;IACrD,IAAI,EAAE,cAAc;CACd,CAAC;AAuCX;;;;;;;;;;;;;;GAcG;AACH,SAAS,WAAW,CAAsB,EAAE,GAAG,EAAE,KAAK,EAAiB;IACnE,MAAM,QAAQ,GAAG,KAAwE,CAAC;IAC1F,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,OAAO,GAAG,CAAC,IAAiB,EAAwF,EAAE;QACxH,MAAM,IAAI,GAAyF,EAAE,CAAC;QACtG,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE;QACpD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACnC,OAAQ,GAA0E,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;AACtF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACjB,yFAAyF;IACzF,IAAI,EAAE,WAAW;CACX,CAAC"}
@@ -76,5 +76,22 @@ export type BoundNav<R extends NavRoutes> = ExprType<NavHandleType<R>>;
76
76
  * The single literal/value args are the store key and the initial path.
77
77
  */
78
78
  export declare const navBindPlatformFn: import("@elaraai/east").GenericPlatformDefinition<readonly ["H", "R"], readonly [StringType, ArrayType<"R">], "H">;
79
+ /**
80
+ * Low-level platform primitives that back {@link Navigation.bind}'s handle methods.
81
+ *
82
+ * @internal Not for direct use — author against {@link Navigation.bind}. These
83
+ * exist so the handle's methods can be IR-bearing `East.function`s (serializable)
84
+ * rather than raw host closures.
85
+ */
86
+ export declare const NavBindPrimitives: {
87
+ /** `nav_read([P], key, initial) -> P` — the path stack (tracks the key). */
88
+ readonly read: import("@elaraai/east").GenericPlatformDefinition<readonly ["P"], readonly [StringType, "P"], "P">;
89
+ /** `nav_write([P], key, path) -> Null` — replace the whole stack. */
90
+ readonly write: import("@elaraai/east").GenericPlatformDefinition<readonly ["P"], readonly [StringType, "P"], NullType>;
91
+ /** `nav_pop([P], key, initial) -> Null` — drop the leaf (if depth > 1). */
92
+ readonly pop: import("@elaraai/east").GenericPlatformDefinition<readonly ["P"], readonly [StringType, "P"], NullType>;
93
+ /** `nav_go([P, V], key, routeName, payload, initial) -> Null` — push a route. */
94
+ readonly go: import("@elaraai/east").GenericPlatformDefinition<readonly ["P", "V"], readonly [StringType, StringType, "V", "P"], NullType>;
95
+ };
79
96
  export {};
80
97
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/navigation/pages/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EAEH,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,QAAQ,EAChB,MAAM,eAAe,CAAC;AAMvB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACzD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEvD,sFAAsF;AACtF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,IAAI,WAAW,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CAAE,CAAC,CAAC;AAEjG,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAIlF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAyBlF;AAED,oDAAoD;AACpD,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,IAAI,WAAW,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CAAE,CAAC,CAAC;AAExF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,IAAI,UAAU,CAAC;IACxD,GAAG,EAAE,OAAO,UAAU,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,WAAW,CAAC,CAAC;IAC5C,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,WAAW,CAAC,CAAC;IAC7C,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,QAAQ,CAAC,CAAC;IACvC,EAAE,EAAE,UAAU,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,QAAQ,CAAC;KAAE,CAAC,CAAC;IACnF,UAAU,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC;CAC3E,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAMvE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,oHAM7B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/navigation/pages/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EAEH,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,KAAK,QAAQ,EACb,KAAK,QAAQ,EAChB,MAAM,eAAe,CAAC;AAMvB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACzD,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AAEvD,sFAAsF;AACtF,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,SAAS,IAAI,WAAW,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CAAE,CAAC,CAAC;AAEjG,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAIlF;AAMD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAyBlF;AAED,oDAAoD;AACpD,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,IAAI,WAAW,CAAC;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CAAE,CAAC,CAAC;AAExF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,IAAI,UAAU,CAAC;IACxD,GAAG,EAAE,OAAO,UAAU,CAAC;IACvB,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,WAAW,CAAC,CAAC;IAC5C,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,WAAW,CAAC,CAAC;IAC7C,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,OAAO,QAAQ,CAAC,CAAC;IACvC,EAAE,EAAE,UAAU,CAAC;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,QAAQ,CAAC;KAAE,CAAC,CAAC;IACnF,UAAU,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC;CAC3E,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAMvE;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,oHAM7B,CAAC;AAcF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;IAC1B,4EAA4E;;IAE5E,qEAAqE;;IAErE,2EAA2E;;IAE3E,iFAAiF;;CAE3E,CAAC"}
@@ -70,4 +70,32 @@ export function NavBindHandleType(routes) {
70
70
  * The single literal/value args are the store key and the initial path.
71
71
  */
72
72
  export const navBindPlatformFn = East.genericPlatform("nav_bind", ["H", "R"], [StringType, ArrayType("R")], "H", { optional: true });
73
+ // Low-level primitives backing a `Navigation.bind` handle's methods (issue #106).
74
+ //
75
+ // The handle's path-stack ops become thin `East.function`s over these primitives,
76
+ // capturing only the plain-data store key (+ the seed path for the decode-side
77
+ // fallback). `P` is the path type (`ArrayType(Route)`); `V` is one route's payload
78
+ // type. current/depth/canPop are derived in East from `nav_read`. So a nav handle
79
+ // is ordinary serializable East data and re-binds to the decoder's store.
80
+ const nav_read = East.genericPlatform("nav_read", ["P"], [StringType, "P"], "P", { optional: true });
81
+ const nav_write = East.genericPlatform("nav_write", ["P"], [StringType, "P"], NullType, { optional: true });
82
+ const nav_pop = East.genericPlatform("nav_pop", ["P"], [StringType, "P"], NullType, { optional: true });
83
+ const nav_go = East.genericPlatform("nav_go", ["P", "V"], [StringType, StringType, "V", "P"], NullType, { optional: true });
84
+ /**
85
+ * Low-level platform primitives that back {@link Navigation.bind}'s handle methods.
86
+ *
87
+ * @internal Not for direct use — author against {@link Navigation.bind}. These
88
+ * exist so the handle's methods can be IR-bearing `East.function`s (serializable)
89
+ * rather than raw host closures.
90
+ */
91
+ export const NavBindPrimitives = {
92
+ /** `nav_read([P], key, initial) -> P` — the path stack (tracks the key). */
93
+ read: nav_read,
94
+ /** `nav_write([P], key, path) -> Null` — replace the whole stack. */
95
+ write: nav_write,
96
+ /** `nav_pop([P], key, initial) -> Null` — drop the leaf (if depth > 1). */
97
+ pop: nav_pop,
98
+ /** `nav_go([P, V], key, routeName, payload, initial) -> Null` — push a route. */
99
+ go: nav_go,
100
+ };
73
101
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/navigation/pages/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,EACH,IAAI,EACJ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,GAGd,MAAM,eAAe,CAAC;AAwBvB,gEAAgE;AAChE,MAAM,UAAU,gBAAgB,CAAsB,MAAS;IAC3D,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;IAC1E,OAAO,WAAW,CAAC,KAAK,CAAsB,CAAC;AACnD,CAAC;AAED,+EAA+E;AAC/E,iDAAiD;AACjD,+EAA+E;AAE/E;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAsB,MAAS;IAC5D,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,UAAU,CAAC;QACd,gFAAgF;QAChF,GAAG,EAAE,UAAU;QACf,2EAA2E;QAC3E,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC;QAC5B,4DAA4D;QAC5D,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC;QAChC,mBAAmB;QACnB,KAAK,EAAE,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC;QACpC,qDAAqD;QACrD,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC;QACrC,4BAA4B;QAC5B,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC;QAC/B,6EAA6E;QAC7E,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC;QACxB,kEAAkE;QAClE,UAAU,EAAE,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;KAC7C,CAAgC,CAAC;AACtC,CAAC;AA0BD,+EAA+E;AAC/E,yEAAyE;AACzE,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,CACjD,UAAU,EACV,CAAC,GAAG,EAAE,GAAG,CAAC,EACV,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAC5B,GAAG,EACH,EAAE,QAAQ,EAAE,IAAI,EAAE,CACrB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/navigation/pages/types.ts"],"names":[],"mappings":"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"}
@@ -211,6 +211,9 @@ export declare const Drawer: {
211
211
  * @property size - Drawer size variant
212
212
  * @property placement - Edge placement
213
213
  * @property contained - Render within parent container
214
+ * @property bodyPadding - CSS padding shorthand for the body (default `"16px 20px"`)
215
+ * @property flush - Removes body padding (full-bleed); overrides `bodyPadding`
216
+ * @property fillBody - Body becomes a definite-height flex column so a single child fills + owns its scroll
214
217
  */
215
218
  readonly Style: StructType<{
216
219
  readonly size: OptionType<import("@elaraai/east").VariantType<{
@@ -230,6 +233,9 @@ export declare const Drawer: {
230
233
  readonly contained: OptionType<import("@elaraai/east").BooleanType>;
231
234
  readonly onOpenChange: OptionType<import("@elaraai/east").FunctionType<[import("@elaraai/east").BooleanType], NullType>>;
232
235
  readonly onExitComplete: OptionType<import("@elaraai/east").FunctionType<[], NullType>>;
236
+ readonly bodyPadding: OptionType<StringType>;
237
+ readonly flush: OptionType<import("@elaraai/east").BooleanType>;
238
+ readonly fillBody: OptionType<import("@elaraai/east").BooleanType>;
233
239
  }>;
234
240
  /**
235
241
  * Size variant type for Drawer component.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/overlays/drawer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/overlays/drawer/index.ts"],"names":[],"mappings":"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"}