@elaraai/east-ui 1.0.83 → 1.0.85

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 (231) hide show
  1. package/dist/src/charts/chart/index.d.ts +7 -4
  2. package/dist/src/charts/chart/index.d.ts.map +1 -1
  3. package/dist/src/charts/chart/index.js +3 -1
  4. package/dist/src/charts/chart/index.js.map +1 -1
  5. package/dist/src/collections/library/index.d.ts +1182 -37
  6. package/dist/src/collections/library/index.d.ts.map +1 -1
  7. package/dist/src/collections/library/index.js +191 -13
  8. package/dist/src/collections/library/index.js.map +1 -1
  9. package/dist/src/collections/library/types.d.ts +376 -180
  10. package/dist/src/collections/library/types.d.ts.map +1 -1
  11. package/dist/src/collections/library/types.js +188 -91
  12. package/dist/src/collections/library/types.js.map +1 -1
  13. package/dist/src/collections/plan/root.d.ts.map +1 -1
  14. package/dist/src/collections/plan/root.js +10 -37
  15. package/dist/src/collections/plan/root.js.map +1 -1
  16. package/dist/src/collections/plan/types.d.ts +1 -1
  17. package/dist/src/collections/plan/types.js +1 -1
  18. package/dist/src/collections/sheet/editing-bridge.js +1 -1
  19. package/dist/src/collections/sheet/editing-bridge.js.map +1 -1
  20. package/dist/src/collections/sheet/root.d.ts +1 -1
  21. package/dist/src/collections/sheet/root.js +1 -1
  22. package/dist/src/collections/sheet/root.js.map +1 -1
  23. package/dist/src/component.d.ts +490 -11
  24. package/dist/src/component.d.ts.map +1 -1
  25. package/dist/src/component.js +17 -3
  26. package/dist/src/component.js.map +1 -1
  27. package/dist/src/contracts/drag.d.ts.map +1 -1
  28. package/dist/src/contracts/drag.js +1 -0
  29. package/dist/src/contracts/drag.js.map +1 -1
  30. package/dist/src/contracts/editing.d.ts +19 -0
  31. package/dist/src/contracts/editing.d.ts.map +1 -1
  32. package/dist/src/contracts/editing.js +31 -1
  33. package/dist/src/contracts/editing.js.map +1 -1
  34. package/dist/src/contracts/index.d.ts +1 -1
  35. package/dist/src/contracts/index.d.ts.map +1 -1
  36. package/dist/src/contracts/pick.js +4 -4
  37. package/dist/src/contracts/pick.js.map +1 -1
  38. package/dist/src/contracts/source.d.ts +87 -131
  39. package/dist/src/contracts/source.d.ts.map +1 -1
  40. package/dist/src/contracts/source.js +153 -368
  41. package/dist/src/contracts/source.js.map +1 -1
  42. package/dist/src/display/bar-strip/index.d.ts +39 -6
  43. package/dist/src/display/bar-strip/index.d.ts.map +1 -1
  44. package/dist/src/display/bar-strip/index.js +16 -38
  45. package/dist/src/display/bar-strip/index.js.map +1 -1
  46. package/dist/src/display/bar-strip/types.d.ts +17 -1
  47. package/dist/src/display/bar-strip/types.d.ts.map +1 -1
  48. package/dist/src/display/bar-strip/types.js.map +1 -1
  49. package/dist/src/feedback/status/index.d.ts +10 -2
  50. package/dist/src/feedback/status/index.d.ts.map +1 -1
  51. package/dist/src/feedback/status/index.js +8 -3
  52. package/dist/src/feedback/status/index.js.map +1 -1
  53. package/dist/src/index.d.ts +3 -2
  54. package/dist/src/index.d.ts.map +1 -1
  55. package/dist/src/index.js +3 -4
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/src/internal.d.ts +2 -1
  58. package/dist/src/internal.d.ts.map +1 -1
  59. package/dist/src/internal.js +3 -2
  60. package/dist/src/internal.js.map +1 -1
  61. package/dist/src/layout/dock/index.d.ts +58 -16
  62. package/dist/src/layout/dock/index.d.ts.map +1 -1
  63. package/dist/src/layout/dock/index.js +48 -13
  64. package/dist/src/layout/dock/index.js.map +1 -1
  65. package/dist/src/layout/dock/types.d.ts +62 -10
  66. package/dist/src/layout/dock/types.d.ts.map +1 -1
  67. package/dist/src/layout/dock/types.js +21 -4
  68. package/dist/src/layout/dock/types.js.map +1 -1
  69. package/dist/src/layout/index.d.ts +1 -0
  70. package/dist/src/layout/index.d.ts.map +1 -1
  71. package/dist/src/layout/index.js +1 -0
  72. package/dist/src/layout/index.js.map +1 -1
  73. package/dist/src/layout/snap-grid/index.d.ts +1291 -0
  74. package/dist/src/layout/snap-grid/index.d.ts.map +1 -0
  75. package/dist/src/layout/snap-grid/index.js +510 -0
  76. package/dist/src/layout/snap-grid/index.js.map +1 -0
  77. package/dist/src/layout/snap-grid/types.d.ts +1046 -0
  78. package/dist/src/layout/snap-grid/types.d.ts.map +1 -0
  79. package/dist/src/layout/snap-grid/types.js +371 -0
  80. package/dist/src/layout/snap-grid/types.js.map +1 -0
  81. package/dist/src/navigation/app/index.d.ts +15 -0
  82. package/dist/src/navigation/app/index.d.ts.map +1 -1
  83. package/dist/src/navigation/app/index.js +2 -2
  84. package/dist/src/navigation/app/index.js.map +1 -1
  85. package/dist/src/navigation/nav-list/index.d.ts +5 -3
  86. package/dist/src/navigation/nav-list/index.d.ts.map +1 -1
  87. package/dist/src/navigation/nav-list/index.js +5 -3
  88. package/dist/src/navigation/nav-list/index.js.map +1 -1
  89. package/dist/src/overlays/action-bar/index.d.ts +9 -0
  90. package/dist/src/overlays/action-bar/index.d.ts.map +1 -1
  91. package/dist/src/overlays/action-bar/index.js +11 -1
  92. package/dist/src/overlays/action-bar/index.js.map +1 -1
  93. package/dist/src/overlays/action-bar/types.d.ts +11 -7
  94. package/dist/src/overlays/action-bar/types.d.ts.map +1 -1
  95. package/dist/src/overlays/action-bar/types.js +8 -1
  96. package/dist/src/overlays/action-bar/types.js.map +1 -1
  97. package/dist/src/overlays/dialog/index.d.ts +16 -0
  98. package/dist/src/overlays/dialog/index.d.ts.map +1 -1
  99. package/dist/src/overlays/dialog/index.js +18 -0
  100. package/dist/src/overlays/dialog/index.js.map +1 -1
  101. package/dist/src/overlays/dialog/types.d.ts +18 -11
  102. package/dist/src/overlays/dialog/types.d.ts.map +1 -1
  103. package/dist/src/overlays/dialog/types.js +12 -0
  104. package/dist/src/overlays/dialog/types.js.map +1 -1
  105. package/dist/src/overlays/drawer/index.d.ts +12 -0
  106. package/dist/src/overlays/drawer/index.d.ts.map +1 -1
  107. package/dist/src/overlays/drawer/index.js +14 -0
  108. package/dist/src/overlays/drawer/index.js.map +1 -1
  109. package/dist/src/overlays/drawer/types.d.ts +13 -1
  110. package/dist/src/overlays/drawer/types.d.ts.map +1 -1
  111. package/dist/src/overlays/drawer/types.js +12 -0
  112. package/dist/src/overlays/drawer/types.js.map +1 -1
  113. package/dist/src/overlays/hover-card/index.d.ts +9 -0
  114. package/dist/src/overlays/hover-card/index.d.ts.map +1 -1
  115. package/dist/src/overlays/hover-card/index.js +12 -1
  116. package/dist/src/overlays/hover-card/index.js.map +1 -1
  117. package/dist/src/overlays/hover-card/types.d.ts +9 -1
  118. package/dist/src/overlays/hover-card/types.d.ts.map +1 -1
  119. package/dist/src/overlays/hover-card/types.js +8 -0
  120. package/dist/src/overlays/hover-card/types.js.map +1 -1
  121. package/dist/src/overlays/popover/index.d.ts +15 -0
  122. package/dist/src/overlays/popover/index.d.ts.map +1 -1
  123. package/dist/src/overlays/popover/index.js +19 -1
  124. package/dist/src/overlays/popover/index.js.map +1 -1
  125. package/dist/src/overlays/popover/types.d.ts +19 -5
  126. package/dist/src/overlays/popover/types.d.ts.map +1 -1
  127. package/dist/src/overlays/popover/types.js +14 -0
  128. package/dist/src/overlays/popover/types.js.map +1 -1
  129. package/dist/src/overlays/toggle-tip/index.d.ts +9 -0
  130. package/dist/src/overlays/toggle-tip/index.d.ts.map +1 -1
  131. package/dist/src/overlays/toggle-tip/index.js +12 -1
  132. package/dist/src/overlays/toggle-tip/index.js.map +1 -1
  133. package/dist/src/overlays/toggle-tip/types.d.ts +9 -1
  134. package/dist/src/overlays/toggle-tip/types.d.ts.map +1 -1
  135. package/dist/src/overlays/toggle-tip/types.js +8 -0
  136. package/dist/src/overlays/toggle-tip/types.js.map +1 -1
  137. package/dist/src/runtime/collections/library.d.ts +10 -6
  138. package/dist/src/runtime/collections/library.d.ts.map +1 -1
  139. package/dist/src/runtime/collections/library.js +10 -6
  140. package/dist/src/runtime/collections/library.js.map +1 -1
  141. package/dist/src/runtime/display/bar-strip.d.ts +38 -10
  142. package/dist/src/runtime/display/bar-strip.d.ts.map +1 -1
  143. package/dist/src/runtime/display/bar-strip.js +12 -34
  144. package/dist/src/runtime/display/bar-strip.js.map +1 -1
  145. package/dist/src/runtime/feedback/status.d.ts +4 -2
  146. package/dist/src/runtime/feedback/status.d.ts.map +1 -1
  147. package/dist/src/runtime/feedback/status.js +4 -2
  148. package/dist/src/runtime/feedback/status.js.map +1 -1
  149. package/dist/src/runtime/layout/dock.d.ts +13 -8
  150. package/dist/src/runtime/layout/dock.d.ts.map +1 -1
  151. package/dist/src/runtime/layout/dock.js +13 -8
  152. package/dist/src/runtime/layout/dock.js.map +1 -1
  153. package/dist/src/runtime/layout/index.d.ts +1 -0
  154. package/dist/src/runtime/layout/index.d.ts.map +1 -1
  155. package/dist/src/runtime/layout/index.js +1 -0
  156. package/dist/src/runtime/layout/index.js.map +1 -1
  157. package/dist/src/runtime/layout/snap-grid.d.ts +68 -0
  158. package/dist/src/runtime/layout/snap-grid.d.ts.map +1 -0
  159. package/dist/src/runtime/layout/snap-grid.js +44 -0
  160. package/dist/src/runtime/layout/snap-grid.js.map +1 -0
  161. package/dist/src/runtime/navigation/app.d.ts +3 -1
  162. package/dist/src/runtime/navigation/app.d.ts.map +1 -1
  163. package/dist/src/runtime/navigation/app.js +3 -1
  164. package/dist/src/runtime/navigation/app.js.map +1 -1
  165. package/dist/src/style/typography.d.ts +18 -18
  166. package/dist/src/style/typography.js +18 -18
  167. package/dist/test/collections/index.d.ts +0 -1
  168. package/dist/test/collections/index.d.ts.map +1 -1
  169. package/dist/test/collections/index.js +0 -1
  170. package/dist/test/collections/index.js.map +1 -1
  171. package/dist/test/collections/library.examples.d.ts +28 -0
  172. package/dist/test/collections/library.examples.d.ts.map +1 -1
  173. package/dist/test/collections/library.examples.js +183 -3
  174. package/dist/test/collections/library.examples.js.map +1 -1
  175. package/dist/test/collections/sheet.examples.d.ts +0 -7
  176. package/dist/test/collections/sheet.examples.d.ts.map +1 -1
  177. package/dist/test/collections/sheet.examples.js +4 -31
  178. package/dist/test/collections/sheet.examples.js.map +1 -1
  179. package/dist/test/collections/table.examples.d.ts +0 -7
  180. package/dist/test/collections/table.examples.d.ts.map +1 -1
  181. package/dist/test/collections/table.examples.js +1 -22
  182. package/dist/test/collections/table.examples.js.map +1 -1
  183. package/dist/test/display/bar-strip.examples.d.ts +6 -0
  184. package/dist/test/display/bar-strip.examples.d.ts.map +1 -1
  185. package/dist/test/display/bar-strip.examples.js +24 -1
  186. package/dist/test/display/bar-strip.examples.js.map +1 -1
  187. package/dist/test/feedback/status.examples.d.ts +1 -0
  188. package/dist/test/feedback/status.examples.d.ts.map +1 -1
  189. package/dist/test/feedback/status.examples.js +8 -0
  190. package/dist/test/feedback/status.examples.js.map +1 -1
  191. package/dist/test/layout/dock.examples.d.ts +14 -0
  192. package/dist/test/layout/dock.examples.d.ts.map +1 -1
  193. package/dist/test/layout/dock.examples.js +35 -0
  194. package/dist/test/layout/dock.examples.js.map +1 -1
  195. package/dist/test/layout/snap-grid.examples.d.ts +4 -0
  196. package/dist/test/layout/snap-grid.examples.d.ts.map +1 -0
  197. package/dist/test/layout/snap-grid.examples.js +252 -0
  198. package/dist/test/layout/snap-grid.examples.js.map +1 -0
  199. package/dist/test/navigation/app.examples.d.ts +6 -0
  200. package/dist/test/navigation/app.examples.d.ts.map +1 -1
  201. package/dist/test/navigation/app.examples.js +37 -2
  202. package/dist/test/navigation/app.examples.js.map +1 -1
  203. package/dist/test/navigation/nav-list.examples.d.ts +1 -0
  204. package/dist/test/navigation/nav-list.examples.d.ts.map +1 -1
  205. package/dist/test/navigation/nav-list.examples.js +21 -1
  206. package/dist/test/navigation/nav-list.examples.js.map +1 -1
  207. package/dist/test/overlays/dialog.examples.d.ts +1 -0
  208. package/dist/test/overlays/dialog.examples.d.ts.map +1 -1
  209. package/dist/test/overlays/dialog.examples.js +11 -0
  210. package/dist/test/overlays/dialog.examples.js.map +1 -1
  211. package/dist/test/overlays/drawer.examples.d.ts +1 -0
  212. package/dist/test/overlays/drawer.examples.d.ts.map +1 -1
  213. package/dist/test/overlays/drawer.examples.js +12 -0
  214. package/dist/test/overlays/drawer.examples.js.map +1 -1
  215. package/dist/test/overlays/hover-card.examples.d.ts +1 -0
  216. package/dist/test/overlays/hover-card.examples.d.ts.map +1 -1
  217. package/dist/test/overlays/hover-card.examples.js +10 -0
  218. package/dist/test/overlays/hover-card.examples.js.map +1 -1
  219. package/dist/test/overlays/popover.examples.d.ts +1 -0
  220. package/dist/test/overlays/popover.examples.d.ts.map +1 -1
  221. package/dist/test/overlays/popover.examples.js +12 -2
  222. package/dist/test/overlays/popover.examples.js.map +1 -1
  223. package/dist/test/overlays/toggle-tip.examples.d.ts +1 -0
  224. package/dist/test/overlays/toggle-tip.examples.d.ts.map +1 -1
  225. package/dist/test/overlays/toggle-tip.examples.js +11 -1
  226. package/dist/test/overlays/toggle-tip.examples.js.map +1 -1
  227. package/package.json +5 -9
  228. package/dist/test/collections/paged-source.examples.d.ts +0 -14
  229. package/dist/test/collections/paged-source.examples.d.ts.map +0 -1
  230. package/dist/test/collections/paged-source.examples.js +0 -252
  231. package/dist/test/collections/paged-source.examples.js.map +0 -1
@@ -5,38 +5,16 @@
5
5
  /**
6
6
  * `<BarStrip>` tag — see the export's JSDoc.
7
7
  */
8
- import { BarStrip as BarStripFactory } from "../../display/bar-strip/index.js";
9
- import { leaf } from "../combinators.js";
10
- /**
11
- * BarStrip — a compact stack of labelled horizontal bars for a small ranked
12
- * breakdown (top contributors, category totals) where the relative magnitudes
13
- * matter more than precise axes. The `items` prop is a config array of
14
- * `{ label, value, tone? }` rows; `sort` orders them, `maxItems` clips the tail,
15
- * `thickness` sizes the bars, and `showValues` prints each magnitude
16
- * ({@link BarStripOptions}).
17
- *
18
- * @example
19
- * ```tsx
20
- * // .tsx file with the `@jsxImportSource @elaraai/east-ui` pragma
21
- * import { East } from "@elaraai/east";
22
- * import { BarStrip, Text, UIComponentType } from "@elaraai/east-ui";
23
- *
24
- * const breakdown = East.function([], UIComponentType, _$ => (
25
- * <BarStrip
26
- * items={[
27
- * { label: <Text>Backend</Text>, value: 120.0, tone: "info" },
28
- * { label: <Text>Frontend</Text>, value: 85.0, tone: "info" },
29
- * { label: <Text>DevOps</Text>, value: 42.0, tone: "info" },
30
- * ]}
31
- * sort="desc"
32
- * showValues={true}
33
- * />
34
- * ));
35
- * ```
36
- *
37
- * @remarks
38
- * Carries `BarStrip.Types` — the East data type, the per-row item struct, and
39
- * the style struct. Desugars to `BarStrip.Root(items, options)`.
40
- */
41
- export const BarStrip = Object.assign(leaf(BarStripFactory.Root, "items"), { Types: BarStripFactory.Types });
8
+ import {} from "@elaraai/east";
9
+ import { BarStrip as BarStripFactory, } from "../../display/bar-strip/index.js";
10
+ import { hasKeys } from "../combinators.js";
11
+ function BarStripTag(props) {
12
+ if ("data" in props) {
13
+ const { data, ...options } = props;
14
+ return BarStripFactory.Root(data, options);
15
+ }
16
+ const { items, ...options } = props;
17
+ return BarStripFactory.Root(items, hasKeys(options) ? options : undefined);
18
+ }
19
+ export const BarStrip = Object.assign(BarStripTag, { Types: BarStripFactory.Types });
42
20
  //# sourceMappingURL=bar-strip.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bar-strip.js","sourceRoot":"","sources":["../../../../src/runtime/display/bar-strip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAwB,MAAM,kCAAkC,CAAC;AACrG,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,QAAQ,GACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"bar-strip.js","sourceRoot":"","sources":["../../../../src/runtime/display/bar-strip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAA4D,MAAM,eAAe,CAAC;AACzF,OAAO,EACH,QAAQ,IAAI,eAAe,GAK9B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA4D5C,SAAS,WAAW,CAChB,KAAyI;IAEzI,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QAClB,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;QACnC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,OAAqD,CAAC,CAAC;IAC7F,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC;IACpC,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GACjB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC"}
@@ -11,8 +11,9 @@ import { type JsxTag } from "../combinators.js";
11
11
  * Compact classification chip — a `label` paired with a semantic `value` that
12
12
  * sets the dot colour and an auto-injected icon. Use it for freshness
13
13
  * indicators, per-row health, and recompute markers, with `pulsing` to signal
14
- * an in-flight update. Provide an explicit `icon` to override the paired
15
- * default, or a rich `label` node to add a secondary detail such as a
14
+ * an in-flight update and `ring` for an open dot — a state not reached yet,
15
+ * such as a draft never published. Provide an explicit `icon` to override the
16
+ * paired default, or a rich `label` node to add a secondary detail such as a
16
17
  * timestamp. Every option is a flat prop ({@link StatusOptions}).
17
18
  *
18
19
  * @example
@@ -26,6 +27,7 @@ import { type JsxTag } from "../combinators.js";
26
27
  * <Status label="Up to date" value="success" />
27
28
  * <Status label="Stale" value="warning" />
28
29
  * <Status label="Recomputing" value="danger" pulsing />
30
+ * <Status label="Draft" ring showIcon={false} />
29
31
  * </HStack>
30
32
  * ));
31
33
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/runtime/feedback/status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,aAAa,CAAC,KAAK,CAAA;CACC,CAAC"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../../src/runtime/feedback/status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,aAAa,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,aAAa,CAAC,KAAK,CAAA;CACC,CAAC"}
@@ -11,8 +11,9 @@ import { optionsTag } from "../combinators.js";
11
11
  * Compact classification chip — a `label` paired with a semantic `value` that
12
12
  * sets the dot colour and an auto-injected icon. Use it for freshness
13
13
  * indicators, per-row health, and recompute markers, with `pulsing` to signal
14
- * an in-flight update. Provide an explicit `icon` to override the paired
15
- * default, or a rich `label` node to add a secondary detail such as a
14
+ * an in-flight update and `ring` for an open dot — a state not reached yet,
15
+ * such as a draft never published. Provide an explicit `icon` to override the
16
+ * paired default, or a rich `label` node to add a secondary detail such as a
16
17
  * timestamp. Every option is a flat prop ({@link StatusOptions}).
17
18
  *
18
19
  * @example
@@ -26,6 +27,7 @@ import { optionsTag } from "../combinators.js";
26
27
  * <Status label="Up to date" value="success" />
27
28
  * <Status label="Stale" value="warning" />
28
29
  * <Status label="Recomputing" value="danger" pulsing />
30
+ * <Status label="Draft" ring showIcon={false} />
29
31
  * </HStack>
30
32
  * ));
31
33
  * ```
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/runtime/feedback/status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,aAAa,EAAsB,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,MAAM,GACf,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/runtime/feedback/status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,MAAM,IAAI,aAAa,EAAsB,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAe,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,MAAM,GACf,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC"}
@@ -17,11 +17,15 @@ import { type ContainerProps, type JsxTag } from "../combinators.js";
17
17
  * a filter rail beside a board — so the board grows while the panel is stowed
18
18
  * and the drop-target is never covered.
19
19
  *
20
- * Collapsed, it shrinks to `railSize` and shows the `icon`, a chevron toggle
21
- * (pointing away from `side`), and any `badge`; `label` becomes the rail's
22
- * accessible name. Expanded, it is `expandedSize` along the axis with a header
23
- * (`icon` + `label` + `badge` + collapse chevron) above the children. Drive it
24
- * from state with `collapsed` + `onCollapsedChange`, or omit both for
20
+ * Expanded, it is `expandedSize` along the axis and has no header strip: its
21
+ * one row is a tab row — its `tabs`, each with its own body, or the `label` as
22
+ * the only tab over the children — with the collapse control at its end.
23
+ * Collapsed, it shrinks to `railSize`: the expand control, then the `icon` in
24
+ * its tile, any `badge`, the `label` and any `detail` — what the pane shows
25
+ * now, such as an inspector's selected tile; while the pane is `active` the
26
+ * tile and the badge are brand, else the detail reads muted. `surface="shell"` drops its own
27
+ * panel for the rule along its inner edge, for a pane inside a host's frame.
28
+ * Drive it from state with `collapsed` + `onCollapsedChange`, or omit both for
25
29
  * uncontrolled toggling — optionally `persist`ed across reloads. It is an
26
30
  * ordinary flex child: place it in a `<Flex>` / `<HStack>` (horizontal) or
27
31
  * `<VStack>` (vertical) whose sibling is `flex="1" minWidth="0"`. Arbitrarily
@@ -35,9 +39,10 @@ import { type ContainerProps, type JsxTag } from "../combinators.js";
35
39
  *
36
40
  * const board = East.function([], UIComponentType, _$ => (
37
41
  * <HStack gap="4" width="100%">
38
- * <Dock icon="book" label="Bookings" expandedSize="25%">
39
- * <Box padding="3" background="bg.surface"><Text>Drag source…</Text></Box>
40
- * </Dock>
42
+ * <Dock icon="book" label="Bookings" badge="3" expandedSize="25%" tabs={[
43
+ * { key: "open", label: "Open", body: [<Box padding="3"><Text>Drag source…</Text></Box>] },
44
+ * { key: "done", label: "Done", body: [<Box padding="3"><Text>Booked</Text></Box>] },
45
+ * ]} />
41
46
  * <Box flex="1" minWidth="0"><Text>Board / drop target…</Text></Box>
42
47
  * </HStack>
43
48
  * ));
@@ -1 +1 @@
1
- {"version":3,"file":"dock.d.ts","sourceRoot":"","sources":["../../../../src/runtime/layout/dock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,WAAW,CAAC,KAAK,CAAA;CAC1B,CAAC"}
1
+ {"version":3,"file":"dock.d.ts","sourceRoot":"","sources":["../../../../src/runtime/layout/dock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAa,KAAK,cAAc,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,WAAW,CAAC,KAAK,CAAA;CAC1B,CAAC"}
@@ -17,11 +17,15 @@ import { container } from "../combinators.js";
17
17
  * a filter rail beside a board — so the board grows while the panel is stowed
18
18
  * and the drop-target is never covered.
19
19
  *
20
- * Collapsed, it shrinks to `railSize` and shows the `icon`, a chevron toggle
21
- * (pointing away from `side`), and any `badge`; `label` becomes the rail's
22
- * accessible name. Expanded, it is `expandedSize` along the axis with a header
23
- * (`icon` + `label` + `badge` + collapse chevron) above the children. Drive it
24
- * from state with `collapsed` + `onCollapsedChange`, or omit both for
20
+ * Expanded, it is `expandedSize` along the axis and has no header strip: its
21
+ * one row is a tab row — its `tabs`, each with its own body, or the `label` as
22
+ * the only tab over the children — with the collapse control at its end.
23
+ * Collapsed, it shrinks to `railSize`: the expand control, then the `icon` in
24
+ * its tile, any `badge`, the `label` and any `detail` — what the pane shows
25
+ * now, such as an inspector's selected tile; while the pane is `active` the
26
+ * tile and the badge are brand, else the detail reads muted. `surface="shell"` drops its own
27
+ * panel for the rule along its inner edge, for a pane inside a host's frame.
28
+ * Drive it from state with `collapsed` + `onCollapsedChange`, or omit both for
25
29
  * uncontrolled toggling — optionally `persist`ed across reloads. It is an
26
30
  * ordinary flex child: place it in a `<Flex>` / `<HStack>` (horizontal) or
27
31
  * `<VStack>` (vertical) whose sibling is `flex="1" minWidth="0"`. Arbitrarily
@@ -35,9 +39,10 @@ import { container } from "../combinators.js";
35
39
  *
36
40
  * const board = East.function([], UIComponentType, _$ => (
37
41
  * <HStack gap="4" width="100%">
38
- * <Dock icon="book" label="Bookings" expandedSize="25%">
39
- * <Box padding="3" background="bg.surface"><Text>Drag source…</Text></Box>
40
- * </Dock>
42
+ * <Dock icon="book" label="Bookings" badge="3" expandedSize="25%" tabs={[
43
+ * { key: "open", label: "Open", body: [<Box padding="3"><Text>Drag source…</Text></Box>] },
44
+ * { key: "done", label: "Done", body: [<Box padding="3"><Text>Booked</Text></Box>] },
45
+ * ]} />
41
46
  * <Box flex="1" minWidth="0"><Text>Board / drop target…</Text></Box>
42
47
  * </HStack>
43
48
  * ));
@@ -1 +1 @@
1
- {"version":3,"file":"dock.js","sourceRoot":"","sources":["../../../../src/runtime/layout/dock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAoC,MAAM,mBAAmB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,CAAC,MAAM,IAAI,GACb,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"dock.js","sourceRoot":"","sources":["../../../../src/runtime/layout/dock.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EAAE,IAAI,IAAI,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAoC,MAAM,mBAAmB,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,MAAM,IAAI,GACb,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC"}
@@ -14,4 +14,5 @@ export { Separator } from "./separator.js";
14
14
  export { Grid } from "./grid.js";
15
15
  export { Splitter } from "./splitter.js";
16
16
  export { Configurator } from "./configurator.js";
17
+ export { SnapGrid } from "./snap-grid.js";
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/layout/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8CAA8C;AAE9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/runtime/layout/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8CAA8C;AAE9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
@@ -14,4 +14,5 @@ export { Separator } from "./separator.js";
14
14
  export { Grid } from "./grid.js";
15
15
  export { Splitter } from "./splitter.js";
16
16
  export { Configurator } from "./configurator.js";
17
+ export { SnapGrid } from "./snap-grid.js";
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/layout/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8CAA8C;AAE9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtime/layout/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,8CAA8C;AAE9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,68 @@
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
+ /** `<SnapGrid>` tag — see the export's JSDoc. */
6
+ import { type SnapGridConfig, type SnapGridData, type SnapGridRowOf } from "../../layout/snap-grid/index.js";
7
+ import type { UIElement } from "../runtime.js";
8
+ /**
9
+ * `<SnapGrid>` — the host's rows as tiles, in rows on a 12-column grid: the
10
+ * Studio's canvas, a published page, and (`variant="wireframe"`) the page
11
+ * library's thumbnails. `data` is an `Array` or a `Dict` of rows, inline or a
12
+ * bound handle; `cell` maps one row to its tile with `SnapGrid.cell`. With
13
+ * `edit` and `editing` over an `Array`, it is the builder's canvas: tiles
14
+ * move, resize, drop and go as drafts of the shared editing session.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * // .tsx file with the `@jsxImportSource @elaraai/east-ui` pragma
19
+ * import { ArrayType, East, IntegerType, StringType, StructType } from "@elaraai/east";
20
+ * import { SnapGrid, Stat, UIComponentType } from "@elaraai/east-ui";
21
+ *
22
+ * const Tile = StructType({ id: StringType, row: StringType, span: IntegerType, label: StringType, value: IntegerType });
23
+ *
24
+ * const page = East.function([], UIComponentType, ($) => {
25
+ * const tiles = $.const([
26
+ * { id: "orders", row: "kpis", span: 6n, label: "Orders", value: 128n },
27
+ * { id: "returns", row: "kpis", span: 6n, label: "Returns", value: 4n },
28
+ * ], ArrayType(Tile));
29
+ * return <SnapGrid data={tiles} width="1440px"
30
+ * cell={t => SnapGrid.cell({ key: t.id, row: t.row, span: t.span, content: <Stat label={t.label} value={t.value} /> })} />;
31
+ * });
32
+ * ```
33
+ *
34
+ * @remarks
35
+ * Carries `SnapGrid.cell`, `SnapGrid.uiState`, `SnapGrid.viewState` and `SnapGrid.Types`. Desugars to `SnapGrid.Root(data, config)`.
36
+ */
37
+ declare function SnapGridTag<T extends SnapGridData>(props: {
38
+ data: T;
39
+ } & SnapGridConfig<SnapGridRowOf<T>>): UIElement;
40
+ /** The callable `<SnapGrid>` tag, carrying `SnapGrid.cell`, `SnapGrid.uiState`, `SnapGrid.viewState` and `SnapGrid.Types`. */
41
+ export declare const SnapGrid: typeof SnapGridTag & {
42
+ cell: (fields: import("../../layout/snap-grid/index.js").SnapGridCellFields) => import("@elaraai/east").ExprType<import("../../layout/snap-grid/index.js").SnapGridCellType>;
43
+ uiState: (state?: {
44
+ selected?: import("@elaraai/east").SubtypeExprOrValue<import("@elaraai/east").StringType>;
45
+ request?: import("@elaraai/east").SubtypeExprOrValue<import("../../layout/snap-grid/types.js").SnapGridRequestType>;
46
+ }) => import("@elaraai/east").ExprType<import("../../layout/snap-grid/types.js").SnapGridUiStateType>;
47
+ viewState: (state?: {
48
+ width?: import("@elaraai/east").SubtypeExprOrValue<import("@elaraai/east").StringType>;
49
+ zoom?: number | import("@elaraai/east").SubtypeExprOrValue<import("@elaraai/east").FloatType>;
50
+ }) => import("@elaraai/east").ExprType<import("../../layout/snap-grid/types.js").SnapGridViewStateType>;
51
+ Types: {
52
+ Root: typeof import("../../layout/snap-grid/index.js").SnapGridRootType;
53
+ Cell: typeof import("../../layout/snap-grid/index.js").SnapGridCellType;
54
+ Align: typeof import("../../layout/snap-grid/types.js").SnapGridAlignType;
55
+ Variant: typeof import("../../layout/snap-grid/types.js").SnapGridVariantType;
56
+ UiState: typeof import("../../layout/snap-grid/types.js").SnapGridUiStateType;
57
+ Request: typeof import("../../layout/snap-grid/types.js").SnapGridRequestType;
58
+ ViewState: typeof import("../../layout/snap-grid/types.js").SnapGridViewStateType;
59
+ ApplyState: typeof import("../../layout/snap-grid/types.js").SnapGridApplyStateType;
60
+ Width: typeof import("../../layout/snap-grid/types.js").SnapGridWidthType;
61
+ Surface: typeof import("../../layout/snap-grid/types.js").SnapGridSurfaceType;
62
+ Place: typeof import("../../layout/snap-grid/types.js").SnapGridPlaceType;
63
+ PatchEvent: typeof import("../../layout/snap-grid/index.js").SnapGridPatchEventTypeFor;
64
+ Editing: typeof import("../../layout/snap-grid/index.js").SnapGridEditingType;
65
+ };
66
+ };
67
+ export {};
68
+ //# sourceMappingURL=snap-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap-grid.d.ts","sourceRoot":"","sources":["../../../../src/runtime/layout/snap-grid.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iDAAiD;AAEjD,OAAO,EAEH,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,aAAa,EACrB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,iBAAS,WAAW,CAAC,CAAC,SAAS,YAAY,EAAE,KAAK,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAG7G;AAKD,8HAA8H;AAC9H,eAAO,MAAM,QAAQ;;;gBACkhoB,CAAC;eAA6C,CAAC;;;aAAs6B,CAAC;YAA0C,CAAC;;;;;;;;;;;;;;;;;CAD3+pB,CAAC"}
@@ -0,0 +1,44 @@
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
+ /** `<SnapGrid>` tag — see the export's JSDoc. */
6
+ import { SnapGrid as SnapGridFactory, } from "../../layout/snap-grid/index.js";
7
+ /**
8
+ * `<SnapGrid>` — the host's rows as tiles, in rows on a 12-column grid: the
9
+ * Studio's canvas, a published page, and (`variant="wireframe"`) the page
10
+ * library's thumbnails. `data` is an `Array` or a `Dict` of rows, inline or a
11
+ * bound handle; `cell` maps one row to its tile with `SnapGrid.cell`. With
12
+ * `edit` and `editing` over an `Array`, it is the builder's canvas: tiles
13
+ * move, resize, drop and go as drafts of the shared editing session.
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * // .tsx file with the `@jsxImportSource @elaraai/east-ui` pragma
18
+ * import { ArrayType, East, IntegerType, StringType, StructType } from "@elaraai/east";
19
+ * import { SnapGrid, Stat, UIComponentType } from "@elaraai/east-ui";
20
+ *
21
+ * const Tile = StructType({ id: StringType, row: StringType, span: IntegerType, label: StringType, value: IntegerType });
22
+ *
23
+ * const page = East.function([], UIComponentType, ($) => {
24
+ * const tiles = $.const([
25
+ * { id: "orders", row: "kpis", span: 6n, label: "Orders", value: 128n },
26
+ * { id: "returns", row: "kpis", span: 6n, label: "Returns", value: 4n },
27
+ * ], ArrayType(Tile));
28
+ * return <SnapGrid data={tiles} width="1440px"
29
+ * cell={t => SnapGrid.cell({ key: t.id, row: t.row, span: t.span, content: <Stat label={t.label} value={t.value} /> })} />;
30
+ * });
31
+ * ```
32
+ *
33
+ * @remarks
34
+ * Carries `SnapGrid.cell`, `SnapGrid.uiState`, `SnapGrid.viewState` and `SnapGrid.Types`. Desugars to `SnapGrid.Root(data, config)`.
35
+ */
36
+ function SnapGridTag(props) {
37
+ const { data, ...config } = props;
38
+ return SnapGridFactory.Root(data, config);
39
+ }
40
+ // The tag IS the root, so `Root` is the one factory member it does not carry.
41
+ const { Root: _root, ...authoring } = SnapGridFactory;
42
+ /** The callable `<SnapGrid>` tag, carrying `SnapGrid.cell`, `SnapGrid.uiState`, `SnapGrid.viewState` and `SnapGrid.Types`. */
43
+ export const SnapGrid = Object.assign(SnapGridTag, authoring);
44
+ //# sourceMappingURL=snap-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap-grid.js","sourceRoot":"","sources":["../../../../src/runtime/layout/snap-grid.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iDAAiD;AAEjD,OAAO,EACH,QAAQ,IAAI,eAAe,GAI9B,MAAM,iCAAiC,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,SAAS,WAAW,CAAyB,KAAqD;IAC9F,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;IAClC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,8EAA8E;AAC9E,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,eAAe,CAAC;AAEtD,8HAA8H;AAC9H,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC"}
@@ -12,7 +12,9 @@ import type { UIElement } from "../runtime.js";
12
12
  * `Navigation.bind` handle. Author it **inside** the enclosing `<Reactive>` that
13
13
  * binds `nav`, and pass the same `Navigation.config` as `config` (the handle
14
14
  * carries no labels/icons — the config is the single source of truth for the
15
- * rail and breadcrumb).
15
+ * rail and breadcrumb). When the rows are data — a route per row of a record,
16
+ * which a config cannot list — pass `rail` (a `<NavList>` mapped from the rows)
17
+ * and `breadcrumb` in place of the derived ones.
16
18
  *
17
19
  * @example
18
20
  * ```tsx
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/runtime/navigation/app.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6DAA6D;AAE7D,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAEtE;AAGD,yBAAiB,GAAG,CAAC;IACjB,qEAAqE;IAC9D,MAAM,IAAI,6HAAkB,CAAC;CACvC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../../../src/runtime/navigation/app.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6DAA6D;AAE7D,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAEtE;AAGD,yBAAiB,GAAG,CAAC;IACjB,qEAAqE;IAC9D,MAAM,IAAI,6HAAkB,CAAC;CACvC"}
@@ -10,7 +10,9 @@ import { App as AppFactory } from "../../navigation/app/index.js";
10
10
  * `Navigation.bind` handle. Author it **inside** the enclosing `<Reactive>` that
11
11
  * binds `nav`, and pass the same `Navigation.config` as `config` (the handle
12
12
  * carries no labels/icons — the config is the single source of truth for the
13
- * rail and breadcrumb).
13
+ * rail and breadcrumb). When the rows are data — a route per row of a record,
14
+ * which a config cannot list — pass `rail` (a `<NavList>` mapped from the rows)
15
+ * and `breadcrumb` in place of the derived ones.
14
16
  *
15
17
  * @example
16
18
  * ```tsx
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/runtime/navigation/app.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6DAA6D;AAE7D,OAAO,EAAE,GAAG,IAAI,UAAU,EAAiB,MAAM,+BAA+B,CAAC;AAIjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,GAAG,CAAsB,KAAkB;IACvD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAc,CAAC;AAC/C,CAAC;AAED,2DAA2D;AAC3D,WAAiB,GAAG;IAChB,qEAAqE;IACxD,QAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AACxC,CAAC,EAHgB,GAAG,KAAH,GAAG,QAGnB"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/runtime/navigation/app.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6DAA6D;AAE7D,OAAO,EAAE,GAAG,IAAI,UAAU,EAAiB,MAAM,+BAA+B,CAAC;AAIjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,GAAG,CAAsB,KAAkB;IACvD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAc,CAAC;AAC/C,CAAC;AAED,2DAA2D;AAC3D,WAAiB,GAAG;IAChB,qEAAqE;IACxD,QAAI,GAAG,UAAU,CAAC,IAAI,CAAC;AACxC,CAAC,EAHgB,GAAG,KAAH,GAAG,QAGnB"}
@@ -409,24 +409,24 @@ export declare function FontVariantNumeric(variant_: FontVariantNumericLiteral):
409
409
  * Text and Heading require a `textStyle`; raw `fontSize` stays on Box only
410
410
  * as an escape hatch.
411
411
  *
412
- * @property display-xl - Hero page title (48 px)
413
- * @property display-lg - Large display heading
414
- * @property display-md - Medium display heading
415
- * @property display-sm - Small display heading
416
- * @property heading-lg - Large section heading
417
- * @property heading-md - Medium section heading
418
- * @property heading-sm - Small section heading
419
- * @property heading-xs - Extra-small heading
420
- * @property body-lg - Large body text
421
- * @property body-md - Medium body text (default)
422
- * @property body-sm - Small body text
423
- * @property label-md - Medium form label / metric label
424
- * @property label-sm - Small form label / metric label
425
- * @property caption - Caption / footnote
426
- * @property overline - Overline / eyebrow
427
- * @property code-sm - Small code / token
428
- * @property code-md - Medium code / token
429
- * @property mono-kpi - KPI numeric — mono + tabular-nums + display sizing
412
+ * @property display-xl - Page title, the design system's `h1` (24 px)
413
+ * @property display-lg - Large display heading, `h2` (20 px)
414
+ * @property display-md - Medium display heading, `h3` (18 px)
415
+ * @property display-sm - Small display heading, `h4` (16 px)
416
+ * @property heading-lg - Large section heading (20 px)
417
+ * @property heading-md - Medium section heading (18 px)
418
+ * @property heading-sm - Small section heading (15 px)
419
+ * @property heading-xs - Extra-small heading, `h6` in the body face (14 px)
420
+ * @property body-lg - Large body text (14 px)
421
+ * @property body-md - Medium body text (13 px, the default)
422
+ * @property body-sm - Small body text (12.5 px)
423
+ * @property label-md - Medium form label / metric label (mono 11 px)
424
+ * @property label-sm - Small form label / metric label (mono 10 px)
425
+ * @property caption - Caption / footnote (12.5 px)
426
+ * @property overline - Overline / eyebrow (mono 10 px)
427
+ * @property code-sm - Small code / token (mono 11 px)
428
+ * @property code-md - Medium code / token (mono 12.5 px)
429
+ * @property mono-kpi - KPI numeric — mono + tabular-nums, the large number (26 px)
430
430
  */
431
431
  export declare const TextStyleType: VariantType<{
432
432
  readonly "display-xl": NullType;
@@ -376,24 +376,24 @@ export function FontVariantNumeric(variant_) {
376
376
  * Text and Heading require a `textStyle`; raw `fontSize` stays on Box only
377
377
  * as an escape hatch.
378
378
  *
379
- * @property display-xl - Hero page title (48 px)
380
- * @property display-lg - Large display heading
381
- * @property display-md - Medium display heading
382
- * @property display-sm - Small display heading
383
- * @property heading-lg - Large section heading
384
- * @property heading-md - Medium section heading
385
- * @property heading-sm - Small section heading
386
- * @property heading-xs - Extra-small heading
387
- * @property body-lg - Large body text
388
- * @property body-md - Medium body text (default)
389
- * @property body-sm - Small body text
390
- * @property label-md - Medium form label / metric label
391
- * @property label-sm - Small form label / metric label
392
- * @property caption - Caption / footnote
393
- * @property overline - Overline / eyebrow
394
- * @property code-sm - Small code / token
395
- * @property code-md - Medium code / token
396
- * @property mono-kpi - KPI numeric — mono + tabular-nums + display sizing
379
+ * @property display-xl - Page title, the design system's `h1` (24 px)
380
+ * @property display-lg - Large display heading, `h2` (20 px)
381
+ * @property display-md - Medium display heading, `h3` (18 px)
382
+ * @property display-sm - Small display heading, `h4` (16 px)
383
+ * @property heading-lg - Large section heading (20 px)
384
+ * @property heading-md - Medium section heading (18 px)
385
+ * @property heading-sm - Small section heading (15 px)
386
+ * @property heading-xs - Extra-small heading, `h6` in the body face (14 px)
387
+ * @property body-lg - Large body text (14 px)
388
+ * @property body-md - Medium body text (13 px, the default)
389
+ * @property body-sm - Small body text (12.5 px)
390
+ * @property label-md - Medium form label / metric label (mono 11 px)
391
+ * @property label-sm - Small form label / metric label (mono 10 px)
392
+ * @property caption - Caption / footnote (12.5 px)
393
+ * @property overline - Overline / eyebrow (mono 10 px)
394
+ * @property code-sm - Small code / token (mono 11 px)
395
+ * @property code-md - Medium code / token (mono 12.5 px)
396
+ * @property mono-kpi - KPI numeric — mono + tabular-nums, the large number (26 px)
397
397
  */
398
398
  export const TextStyleType = VariantType({
399
399
  "display-xl": NullType,
@@ -6,7 +6,6 @@
6
6
  export * from "./data-list.examples.js";
7
7
  export * from "./matrix.examples.js";
8
8
  export * from "./pagination.examples.js";
9
- export * from "./paged-source.examples.js";
10
9
  export * from "./plan.examples.js";
11
10
  export * from "./table.examples.js";
12
11
  export * from "./tree-view.examples.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/collections/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAEhF,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/collections/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAEhF,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
@@ -6,7 +6,6 @@
6
6
  export * from "./data-list.examples.js";
7
7
  export * from "./matrix.examples.js";
8
8
  export * from "./pagination.examples.js";
9
- export * from "./paged-source.examples.js";
10
9
  export * from "./plan.examples.js";
11
10
  export * from "./table.examples.js";
12
11
  export * from "./tree-view.examples.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../test/collections/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAEhF,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../test/collections/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAEhF,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
@@ -2,6 +2,13 @@
2
2
  * asset and flat-room palettes) — each gets its own Slice config so the
3
3
  * sliced mode composes across every dataset. */
4
4
  export declare const libraryPeople: import("@elaraai/east").ExampleDef<[], any>;
5
+ /**
6
+ * A component palette — the cards a builder drags onto its canvas. Each card
7
+ * carries a trailing lock (what it shows is fixed by its developer); the card
8
+ * already on the canvas is placed, in the brand; the Filter menu narrows by
9
+ * category and tags; and a click reports the card, here into State.
10
+ */
11
+ export declare const libraryPalette: import("@elaraai/east").ExampleDef<[], any>;
5
12
  /**
6
13
  * THE large-library configurator (pass 5) — ONE live crew palette: slice
7
14
  * chrome (search / filter rail / count footer) composes on permanently, the
@@ -9,4 +16,25 @@ export declare const libraryPeople: import("@elaraai/east").ExampleDef<[], any>;
9
16
  * (auto / scroll / fill — an empty height reads as unbounded).
10
17
  */
11
18
  export declare const libraryLarge: import("@elaraai/east").ExampleDef<[], any>;
19
+ /**
20
+ * A gallery of pages — the page library's cards. Each card's media is the
21
+ * page's wireframe at its start; its status is a dot, or an open ring for a
22
+ * draft never published; its meta line says what it holds; and its foot names
23
+ * the action a click takes. The dashed last card adds a page, and the
24
+ * toolbar's Grid · List switch lays the cards out.
25
+ */
26
+ export declare const libraryGalleryPages: import("@elaraai/east").ExampleDef<[], any>;
27
+ /**
28
+ * A gallery that draws no toolbar of its own, for a host whose one toolbar
29
+ * serves several libraries: the host narrows the rows itself and gives the
30
+ * gallery its layout — here a Grid · List control above it, from State.
31
+ */
32
+ export declare const libraryGalleryHosted: import("@elaraai/east").ExampleDef<[], any>;
33
+ /**
34
+ * A gallery of something other than pages — reports. Each card's media is its
35
+ * trend, a sparkline above its face; its foot holds its owner's avatar beside
36
+ * how many decks use it, and a star for a favourite; and the reports group by
37
+ * team, searchable by name.
38
+ */
39
+ export declare const libraryGalleryReports: import("@elaraai/east").ExampleDef<[], any>;
12
40
  //# sourceMappingURL=library.examples.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"library.examples.d.ts","sourceRoot":"","sources":["../../../test/collections/library.examples.tsx"],"names":[],"mappings":"AAmBA;;iDAEiD;AAMjD,eAAO,MAAM,aAAa,6CAyCxB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,6CAyFvB,CAAC"}
1
+ {"version":3,"file":"library.examples.d.ts","sourceRoot":"","sources":["../../../test/collections/library.examples.tsx"],"names":[],"mappings":"AAmBA;;iDAEiD;AAMjD,eAAO,MAAM,aAAa,6CAyCxB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,6CA4CzB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,6CAyFvB,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,6CA+E9B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,6CA6D/B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,6CAyChC,CAAC"}