@elaraai/east-ui 1.0.67 → 1.0.69

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 (306) hide show
  1. package/README.md +2 -2
  2. package/dist/src/charts/chart/index.d.ts +39 -4
  3. package/dist/src/charts/chart/index.d.ts.map +1 -1
  4. package/dist/src/charts/chart/index.js +3 -3
  5. package/dist/src/charts/chart/index.js.map +1 -1
  6. package/dist/src/charts/spec/index.d.ts +61 -3
  7. package/dist/src/charts/spec/index.d.ts.map +1 -1
  8. package/dist/src/charts/spec/types.d.ts +1 -1
  9. package/dist/src/charts/spec/types.js +1 -1
  10. package/dist/src/collections/blend/index.d.ts +1 -1
  11. package/dist/src/collections/blend/index.d.ts.map +1 -1
  12. package/dist/src/collections/blend/index.js +1 -1
  13. package/dist/src/collections/blend/index.js.map +1 -1
  14. package/dist/src/collections/blend/types.js +1 -1
  15. package/dist/src/collections/blend/types.js.map +1 -1
  16. package/dist/src/collections/board/index.d.ts +4 -4
  17. package/dist/src/collections/board/index.d.ts.map +1 -1
  18. package/dist/src/collections/board/index.js +1 -1
  19. package/dist/src/collections/board/index.js.map +1 -1
  20. package/dist/src/collections/board/types.js +1 -1
  21. package/dist/src/collections/board/types.js.map +1 -1
  22. package/dist/src/collections/calendar/index.d.ts +1 -1
  23. package/dist/src/collections/calendar/index.d.ts.map +1 -1
  24. package/dist/src/collections/deck/index.d.ts +58 -0
  25. package/dist/src/collections/deck/index.d.ts.map +1 -1
  26. package/dist/src/collections/index.d.ts +1 -2
  27. package/dist/src/collections/index.d.ts.map +1 -1
  28. package/dist/src/collections/index.js +1 -2
  29. package/dist/src/collections/index.js.map +1 -1
  30. package/dist/src/collections/library/index.d.ts +29 -0
  31. package/dist/src/collections/library/index.d.ts.map +1 -1
  32. package/dist/src/collections/library/types.d.ts +29 -0
  33. package/dist/src/collections/library/types.d.ts.map +1 -1
  34. package/dist/src/collections/matrix/index.d.ts +1 -1
  35. package/dist/src/collections/matrix/index.d.ts.map +1 -1
  36. package/dist/src/collections/plan/assemble.d.ts +3732 -0
  37. package/dist/src/collections/plan/assemble.d.ts.map +1 -0
  38. package/dist/src/collections/plan/assemble.js +187 -0
  39. package/dist/src/collections/plan/assemble.js.map +1 -0
  40. package/dist/src/collections/plan/builders.d.ts +612 -0
  41. package/dist/src/collections/plan/builders.d.ts.map +1 -0
  42. package/dist/src/collections/plan/builders.js +543 -0
  43. package/dist/src/collections/plan/builders.js.map +1 -0
  44. package/dist/src/collections/plan/data-forms.d.ts +332 -0
  45. package/dist/src/collections/plan/data-forms.d.ts.map +1 -0
  46. package/dist/src/collections/plan/data-forms.js +212 -0
  47. package/dist/src/collections/plan/data-forms.js.map +1 -0
  48. package/dist/src/collections/plan/factories.d.ts +338 -0
  49. package/dist/src/collections/plan/factories.d.ts.map +1 -0
  50. package/dist/src/collections/plan/factories.js +414 -0
  51. package/dist/src/collections/plan/factories.js.map +1 -0
  52. package/dist/src/collections/plan/index.d.ts +271 -0
  53. package/dist/src/collections/plan/index.d.ts.map +1 -0
  54. package/dist/src/collections/plan/index.js +162 -0
  55. package/dist/src/collections/plan/index.js.map +1 -0
  56. package/dist/src/collections/plan/ir.d.ts +3496 -0
  57. package/dist/src/collections/plan/ir.d.ts.map +1 -0
  58. package/dist/src/collections/plan/ir.js +83 -0
  59. package/dist/src/collections/plan/ir.js.map +1 -0
  60. package/dist/src/collections/plan/pick.d.ts +115 -0
  61. package/dist/src/collections/plan/pick.d.ts.map +1 -0
  62. package/dist/src/collections/plan/pick.js +193 -0
  63. package/dist/src/collections/plan/pick.js.map +1 -0
  64. package/dist/src/collections/plan/root.d.ts +210 -0
  65. package/dist/src/collections/plan/root.d.ts.map +1 -0
  66. package/dist/src/collections/plan/root.js +146 -0
  67. package/dist/src/collections/plan/root.js.map +1 -0
  68. package/dist/src/collections/plan/series.d.ts +11890 -0
  69. package/dist/src/collections/plan/series.d.ts.map +1 -0
  70. package/dist/src/collections/plan/series.js +412 -0
  71. package/dist/src/collections/plan/series.js.map +1 -0
  72. package/dist/src/collections/plan/types.d.ts +9291 -0
  73. package/dist/src/collections/plan/types.d.ts.map +1 -0
  74. package/dist/src/collections/plan/types.js +940 -0
  75. package/dist/src/collections/plan/types.js.map +1 -0
  76. package/dist/src/collections/roster/index.d.ts +4 -4
  77. package/dist/src/collections/roster/index.d.ts.map +1 -1
  78. package/dist/src/collections/roster/index.js +1 -1
  79. package/dist/src/collections/roster/index.js.map +1 -1
  80. package/dist/src/collections/roster/types.d.ts +1 -1
  81. package/dist/src/collections/roster/types.d.ts.map +1 -1
  82. package/dist/src/collections/roster/types.js +4 -3
  83. package/dist/src/collections/roster/types.js.map +1 -1
  84. package/dist/src/collections/table/index.d.ts +70 -2
  85. package/dist/src/collections/table/index.d.ts.map +1 -1
  86. package/dist/src/collections/table/index.js +55 -11
  87. package/dist/src/collections/table/index.js.map +1 -1
  88. package/dist/src/collections/table/types.d.ts +1 -1
  89. package/dist/src/collections/table/types.d.ts.map +1 -1
  90. package/dist/src/component.d.ts +3898 -1339
  91. package/dist/src/component.d.ts.map +1 -1
  92. package/dist/src/component.js +83 -146
  93. package/dist/src/component.js.map +1 -1
  94. package/dist/src/container/card/types.d.ts +1 -1
  95. package/dist/src/container/card/types.d.ts.map +1 -1
  96. package/dist/src/contracts/approval.d.ts +117 -0
  97. package/dist/src/contracts/approval.d.ts.map +1 -0
  98. package/dist/src/contracts/approval.js +105 -0
  99. package/dist/src/contracts/approval.js.map +1 -0
  100. package/dist/src/contracts/drag.d.ts +3 -3
  101. package/dist/src/contracts/drag.d.ts.map +1 -1
  102. package/dist/src/contracts/drag.js +23 -10
  103. package/dist/src/contracts/drag.js.map +1 -1
  104. package/dist/src/contracts/index.d.ts +4 -1
  105. package/dist/src/contracts/index.d.ts.map +1 -1
  106. package/dist/src/contracts/index.js +4 -1
  107. package/dist/src/contracts/index.js.map +1 -1
  108. package/dist/src/contracts/pick.d.ts +705 -0
  109. package/dist/src/contracts/pick.d.ts.map +1 -0
  110. package/dist/src/contracts/pick.js +360 -0
  111. package/dist/src/contracts/pick.js.map +1 -0
  112. package/dist/src/contracts/review.d.ts +7 -99
  113. package/dist/src/contracts/review.d.ts.map +1 -1
  114. package/dist/src/contracts/review.js +11 -85
  115. package/dist/src/contracts/review.js.map +1 -1
  116. package/dist/src/contracts/slice-affordances.d.ts +13 -4
  117. package/dist/src/contracts/slice-affordances.d.ts.map +1 -1
  118. package/dist/src/contracts/slice-affordances.js +13 -3
  119. package/dist/src/contracts/slice-affordances.js.map +1 -1
  120. package/dist/src/contracts/source.d.ts +432 -0
  121. package/dist/src/contracts/source.d.ts.map +1 -0
  122. package/dist/src/contracts/source.js +505 -0
  123. package/dist/src/contracts/source.js.map +1 -0
  124. package/dist/src/contracts/states.d.ts +130 -0
  125. package/dist/src/contracts/states.d.ts.map +1 -1
  126. package/dist/src/contracts/states.js +122 -0
  127. package/dist/src/contracts/states.js.map +1 -1
  128. package/dist/src/contracts/time.d.ts +76 -0
  129. package/dist/src/contracts/time.d.ts.map +1 -0
  130. package/dist/src/contracts/time.js +78 -0
  131. package/dist/src/contracts/time.js.map +1 -0
  132. package/dist/src/display/trace/types.d.ts +1 -1
  133. package/dist/src/display/trace/types.d.ts.map +1 -1
  134. package/dist/src/index.d.ts +10 -2
  135. package/dist/src/index.d.ts.map +1 -1
  136. package/dist/src/index.js +22 -2
  137. package/dist/src/index.js.map +1 -1
  138. package/dist/src/internal.d.ts +5 -3
  139. package/dist/src/internal.d.ts.map +1 -1
  140. package/dist/src/internal.js +4 -3
  141. package/dist/src/internal.js.map +1 -1
  142. package/dist/src/layout/dock/index.d.ts +1 -1
  143. package/dist/src/layout/dock/index.js +1 -1
  144. package/dist/src/layout/index.d.ts +0 -1
  145. package/dist/src/layout/index.d.ts.map +1 -1
  146. package/dist/src/layout/index.js +0 -1
  147. package/dist/src/layout/index.js.map +1 -1
  148. package/dist/src/overlays/drawer/types.d.ts +1 -1
  149. package/dist/src/overlays/drawer/types.d.ts.map +1 -1
  150. package/dist/src/pick/index.d.ts +443 -0
  151. package/dist/src/pick/index.d.ts.map +1 -0
  152. package/dist/src/pick/index.js +64 -0
  153. package/dist/src/pick/index.js.map +1 -0
  154. package/dist/src/pick/panel/index.d.ts +64 -0
  155. package/dist/src/pick/panel/index.d.ts.map +1 -0
  156. package/dist/src/pick/panel/index.js +61 -0
  157. package/dist/src/pick/panel/index.js.map +1 -0
  158. package/dist/src/platform/slice/index.d.ts +291 -0
  159. package/dist/src/platform/slice/index.d.ts.map +1 -1
  160. package/dist/src/platform/slice/index.js +16 -0
  161. package/dist/src/platform/slice/index.js.map +1 -1
  162. package/dist/src/runtime/collections/deck.d.ts +29 -0
  163. package/dist/src/runtime/collections/deck.d.ts.map +1 -1
  164. package/dist/src/runtime/collections/index.d.ts +1 -2
  165. package/dist/src/runtime/collections/index.d.ts.map +1 -1
  166. package/dist/src/runtime/collections/index.js +1 -2
  167. package/dist/src/runtime/collections/index.js.map +1 -1
  168. package/dist/src/runtime/collections/library.d.ts +1 -1
  169. package/dist/src/runtime/collections/library.js +1 -1
  170. package/dist/src/runtime/collections/plan.d.ts +98 -0
  171. package/dist/src/runtime/collections/plan.d.ts.map +1 -0
  172. package/dist/src/runtime/collections/plan.js +98 -0
  173. package/dist/src/runtime/collections/plan.js.map +1 -0
  174. package/dist/src/runtime/collections/schematic.d.ts +1 -1
  175. package/dist/src/runtime/collections/schematic.js +1 -1
  176. package/dist/src/runtime/collections/table.d.ts +9 -1
  177. package/dist/src/runtime/collections/table.d.ts.map +1 -1
  178. package/dist/src/runtime/collections/table.js +1 -7
  179. package/dist/src/runtime/collections/table.js.map +1 -1
  180. package/dist/src/runtime/layout/dock.d.ts +2 -2
  181. package/dist/src/runtime/layout/dock.js +2 -2
  182. package/dist/src/runtime/layout/index.d.ts +0 -1
  183. package/dist/src/runtime/layout/index.d.ts.map +1 -1
  184. package/dist/src/runtime/layout/index.js +0 -1
  185. package/dist/src/runtime/layout/index.js.map +1 -1
  186. package/dist/src/shared/plot-gutter.d.ts +6 -23
  187. package/dist/src/shared/plot-gutter.d.ts.map +1 -1
  188. package/dist/src/shared/plot-gutter.js +6 -19
  189. package/dist/src/shared/plot-gutter.js.map +1 -1
  190. package/dist/src/shared/reify.d.ts +47 -4
  191. package/dist/src/shared/reify.d.ts.map +1 -1
  192. package/dist/src/shared/reify.js +62 -4
  193. package/dist/src/shared/reify.js.map +1 -1
  194. package/dist/src/slice/breakdown/index.d.ts +27 -0
  195. package/dist/src/slice/breakdown/index.d.ts.map +1 -1
  196. package/dist/src/slice/breakdown/types.d.ts +27 -0
  197. package/dist/src/slice/breakdown/types.d.ts.map +1 -1
  198. package/dist/src/slice/cohort/index.d.ts +54 -0
  199. package/dist/src/slice/cohort/index.d.ts.map +1 -1
  200. package/dist/src/slice/cohort/types.d.ts +27 -0
  201. package/dist/src/slice/cohort/types.d.ts.map +1 -1
  202. package/dist/src/slice/filter/index.d.ts +27 -0
  203. package/dist/src/slice/filter/index.d.ts.map +1 -1
  204. package/dist/src/slice/filter/types.d.ts +27 -0
  205. package/dist/src/slice/filter/types.d.ts.map +1 -1
  206. package/dist/src/slice/index.d.ts +405 -0
  207. package/dist/src/slice/index.d.ts.map +1 -1
  208. package/dist/src/slice/legend/index.d.ts +27 -0
  209. package/dist/src/slice/legend/index.d.ts.map +1 -1
  210. package/dist/src/slice/legend/types.d.ts +27 -0
  211. package/dist/src/slice/legend/types.d.ts.map +1 -1
  212. package/dist/src/slice/range/index.d.ts +60 -18
  213. package/dist/src/slice/range/index.d.ts.map +1 -1
  214. package/dist/src/slice/range/index.js +9 -1
  215. package/dist/src/slice/range/index.js.map +1 -1
  216. package/dist/src/slice/range/types.d.ts +63 -22
  217. package/dist/src/slice/range/types.d.ts.map +1 -1
  218. package/dist/src/slice/range/types.js +12 -5
  219. package/dist/src/slice/range/types.js.map +1 -1
  220. package/dist/src/slice/search/index.d.ts +27 -0
  221. package/dist/src/slice/search/index.d.ts.map +1 -1
  222. package/dist/src/slice/search/types.d.ts +27 -0
  223. package/dist/src/slice/search/types.d.ts.map +1 -1
  224. package/dist/src/slice/summary/index.d.ts +27 -0
  225. package/dist/src/slice/summary/index.d.ts.map +1 -1
  226. package/dist/src/slice/summary/types.d.ts +27 -0
  227. package/dist/src/slice/summary/types.d.ts.map +1 -1
  228. package/dist/src/style/content.d.ts +4 -6
  229. package/dist/src/style/content.d.ts.map +1 -1
  230. package/dist/src/style/content.js +4 -6
  231. package/dist/src/style/content.js.map +1 -1
  232. package/dist/src/style/scheme.js +1 -1
  233. package/dist/src/style/scheme.js.map +1 -1
  234. package/dist/test/collections/index.d.ts +2 -2
  235. package/dist/test/collections/index.d.ts.map +1 -1
  236. package/dist/test/collections/index.js +2 -2
  237. package/dist/test/collections/index.js.map +1 -1
  238. package/dist/test/collections/paged-source.examples.d.ts +9 -0
  239. package/dist/test/collections/paged-source.examples.d.ts.map +1 -0
  240. package/dist/test/collections/paged-source.examples.js +136 -0
  241. package/dist/test/collections/paged-source.examples.js.map +1 -0
  242. package/dist/test/collections/plan.examples.d.ts +125 -0
  243. package/dist/test/collections/plan.examples.d.ts.map +1 -0
  244. package/dist/test/collections/plan.examples.js +2939 -0
  245. package/dist/test/collections/plan.examples.js.map +1 -0
  246. package/dist/test/contracts/pick.examples.d.ts +6 -0
  247. package/dist/test/contracts/pick.examples.d.ts.map +1 -0
  248. package/dist/test/contracts/pick.examples.js +89 -0
  249. package/dist/test/contracts/pick.examples.js.map +1 -0
  250. package/dist/test/layout/dock.examples.d.ts +4 -4
  251. package/dist/test/layout/dock.examples.d.ts.map +1 -1
  252. package/dist/test/layout/dock.examples.js +34 -16
  253. package/dist/test/layout/dock.examples.js.map +1 -1
  254. package/dist/test/slice/slice.examples.d.ts +2 -1
  255. package/dist/test/slice/slice.examples.d.ts.map +1 -1
  256. package/dist/test/slice/slice.examples.js +67 -9
  257. package/dist/test/slice/slice.examples.js.map +1 -1
  258. package/package.json +3 -3
  259. package/dist/src/collections/gantt/index.d.ts +0 -377
  260. package/dist/src/collections/gantt/index.d.ts.map +0 -1
  261. package/dist/src/collections/gantt/index.js +0 -896
  262. package/dist/src/collections/gantt/index.js.map +0 -1
  263. package/dist/src/collections/gantt/types.d.ts +0 -353
  264. package/dist/src/collections/gantt/types.d.ts.map +0 -1
  265. package/dist/src/collections/gantt/types.js +0 -207
  266. package/dist/src/collections/gantt/types.js.map +0 -1
  267. package/dist/src/collections/planner/index.d.ts +0 -624
  268. package/dist/src/collections/planner/index.d.ts.map +0 -1
  269. package/dist/src/collections/planner/index.js +0 -941
  270. package/dist/src/collections/planner/index.js.map +0 -1
  271. package/dist/src/collections/planner/types.d.ts +0 -615
  272. package/dist/src/collections/planner/types.d.ts.map +0 -1
  273. package/dist/src/collections/planner/types.js +0 -423
  274. package/dist/src/collections/planner/types.js.map +0 -1
  275. package/dist/src/layout/aligned-stack/index.d.ts +0 -101
  276. package/dist/src/layout/aligned-stack/index.d.ts.map +0 -1
  277. package/dist/src/layout/aligned-stack/index.js +0 -105
  278. package/dist/src/layout/aligned-stack/index.js.map +0 -1
  279. package/dist/src/layout/aligned-stack/types.d.ts +0 -50
  280. package/dist/src/layout/aligned-stack/types.d.ts.map +0 -1
  281. package/dist/src/layout/aligned-stack/types.js +0 -24
  282. package/dist/src/layout/aligned-stack/types.js.map +0 -1
  283. package/dist/src/runtime/collections/gantt.d.ts +0 -67
  284. package/dist/src/runtime/collections/gantt.d.ts.map +0 -1
  285. package/dist/src/runtime/collections/gantt.js +0 -58
  286. package/dist/src/runtime/collections/gantt.js.map +0 -1
  287. package/dist/src/runtime/collections/planner.d.ts +0 -80
  288. package/dist/src/runtime/collections/planner.d.ts.map +0 -1
  289. package/dist/src/runtime/collections/planner.js +0 -76
  290. package/dist/src/runtime/collections/planner.js.map +0 -1
  291. package/dist/src/runtime/layout/aligned-stack.d.ts +0 -38
  292. package/dist/src/runtime/layout/aligned-stack.d.ts.map +0 -1
  293. package/dist/src/runtime/layout/aligned-stack.js +0 -36
  294. package/dist/src/runtime/layout/aligned-stack.js.map +0 -1
  295. package/dist/test/collections/gantt.examples.d.ts +0 -33
  296. package/dist/test/collections/gantt.examples.d.ts.map +0 -1
  297. package/dist/test/collections/gantt.examples.js +0 -359
  298. package/dist/test/collections/gantt.examples.js.map +0 -1
  299. package/dist/test/collections/planner.examples.d.ts +0 -47
  300. package/dist/test/collections/planner.examples.d.ts.map +0 -1
  301. package/dist/test/collections/planner.examples.js +0 -546
  302. package/dist/test/collections/planner.examples.js.map +0 -1
  303. package/dist/test/layout/aligned-stack.examples.d.ts +0 -25
  304. package/dist/test/layout/aligned-stack.examples.d.ts.map +0 -1
  305. package/dist/test/layout/aligned-stack.examples.js +0 -294
  306. package/dist/test/layout/aligned-stack.examples.js.map +0 -1
@@ -0,0 +1,414 @@
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
+ /**
6
+ * The Plan kind factories — `span` / `buckets` / `chart` / `heat` / `table` /
7
+ * `cards` / `events` / `group`. Each returns the row's flattened subtree
8
+ * (`ExprType<ArrayType<PlanRowType>>`) with parent aggregates computed
9
+ * eagerly by the `assemble` engines, so factories compose.
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+ import { East, Expr, ArrayType, BooleanType, FloatType, OptionType, StringType, variant, some, none, } from "@elaraai/east";
14
+ import {} from "../../charts/chart/index.js";
15
+ import { ChartXType } from "../../charts/spec/index.js";
16
+ import { TableAggregateType } from "../table/types.js";
17
+ import { TickFormatType } from "../../format/types.js";
18
+ import { PlanAggregateType, PlanTableEmphasisType, PlanTableSeriesType, PlanTableSplitType, PlanChartAxisType, PlanChartHeightType, PlanHeatCellsType, PlanTableCellType, PlanPortType, PlanCellMarkerType, PlanChartPointType, PlanChartBandPointType, PlanChartLayerType, PlanAxisSideType, PlanBreachType, PlanRollupType, PlanRunType, PlanDecisionMarkType, PlanBucketEventType, PlanChipType, PlanEventMarkType, PlanLaneType, PlanRowKindType, PlanInstantType, } from "./types.js";
19
+ import { createHeatCells, resolveTag, resolveInstant } from "./builders.js";
20
+ import { makeRow, assembleNested, } from "./assemble.js";
21
+ /**
22
+ * Wraps a Chart layer builder result with the Plan-only channels (axis side,
23
+ * breach threshold, stack series).
24
+ *
25
+ * @param layer - The `Chart.Line` / `Column` / `Area` / `Scatter` / `Band` / `ref*` builder result
26
+ * @param channels - The Plan-only channels ({@link PlanLayerChannels})
27
+ * @returns The wrapped layer for `Plan.chart`'s `layers`
28
+ */
29
+ export function createLayer(layer, channels) {
30
+ return { plan: true, layer, channels };
31
+ }
32
+ /** Resolve an axis side literal into a `PlanAxisSideType` value. */
33
+ function axisSide(side) {
34
+ return East.value(variant(side ?? "left", null), PlanAxisSideType);
35
+ }
36
+ /** Envelope the optional breach channel. */
37
+ function breachOpt(breach) {
38
+ if (breach === undefined)
39
+ return East.value(none, OptionType(PlanBreachType));
40
+ const arm = "above" in breach
41
+ ? variant("above", breach.above)
42
+ : variant("below", breach.below);
43
+ return East.value(some(arm), OptionType(PlanBreachType));
44
+ }
45
+ /**
46
+ * A consumed layer point's x coordinate as a canvas instant (#631). The
47
+ * Chart builder already typed the coordinate by the accessor's STATIC type
48
+ * (`ChartXType`: `time` / `number` / `category` — `scaleFor`), so the arm
49
+ * is known here without an East match: a `DateTimeType` x is a `time`
50
+ * instant, a numeric x a `number` instant, a `StringType` x an `ordinal`
51
+ * one. Which arm the canvas accepts is the root axis's; the renderer holds
52
+ * every row against it.
53
+ */
54
+ function pointInstant(x, xScale) {
55
+ switch (xScale) {
56
+ case "time": return East.value(variant("time", x.unwrap("time")), PlanInstantType);
57
+ case "linear": return East.value(variant("number", x.unwrap("number")), PlanInstantType);
58
+ default: return East.value(variant("ordinal", x.unwrap("category")), PlanInstantType);
59
+ }
60
+ }
61
+ /**
62
+ * Consumes one chart-row layer input into `ArrayType(PlanChartLayerType)`
63
+ * arms (one per series for multi-series layers).
64
+ */
65
+ function consumeLayer(input) {
66
+ const wrapped = input.plan === true;
67
+ const layer = wrapped ? input.layer : input;
68
+ const channels = wrapped ? input.channels : {};
69
+ if (layer.kind === "ref") {
70
+ const side = axisSide(channels.axis);
71
+ if (layer.refKind === "line") {
72
+ const o = layer.refOptions;
73
+ if (o.y === undefined) {
74
+ throw new Error("Plan.chart: vertical (x) refLines are not supported — instants are event marks (Plan.events) or the axis now-line");
75
+ }
76
+ return East.value([East.value(variant("refLine", {
77
+ y: o.y, axis: side,
78
+ label: o.label !== undefined ? some(o.label) : none,
79
+ }), PlanChartLayerType)], ArrayType(PlanChartLayerType));
80
+ }
81
+ if (layer.refKind === "band") {
82
+ const o = layer.refOptions;
83
+ if (o.x === undefined) {
84
+ throw new Error("Plan.chart: refBand needs x bounds (two instants) — y-range refBands are not supported on chart rows");
85
+ }
86
+ return East.value([East.value(variant("refBand", {
87
+ from: resolveInstant(o.x[0], "refBand x bounds"),
88
+ to: resolveInstant(o.x[1], "refBand x bounds"),
89
+ label: o.label !== undefined ? some(o.label) : none,
90
+ }), PlanChartLayerType)], ArrayType(PlanChartLayerType));
91
+ }
92
+ if (layer.refKind === "dot") {
93
+ const o = layer.refOptions;
94
+ return East.value([East.value(variant("refDot", {
95
+ t: resolveInstant(o.x, "refDot x"), y: o.y, axis: side,
96
+ label: o.label !== undefined ? some(o.label) : none,
97
+ }), PlanChartLayerType)], ArrayType(PlanChartLayerType));
98
+ }
99
+ throw new Error("Plan.chart: unsupported annotation layer");
100
+ }
101
+ if (layer.kind === "band") {
102
+ const xScale = layer.xScale;
103
+ const side = axisSide(channels.axis ?? layer.style.axis);
104
+ return layer.data.map((_$, s) => East.value(variant("band", {
105
+ points: s.points.map((_$2, p) => East.value({
106
+ t: pointInstant(p.x, xScale), lo: p.low, hi: p.high,
107
+ }, PlanChartBandPointType)),
108
+ axis: side,
109
+ }), PlanChartLayerType));
110
+ }
111
+ // Series layer — line / column / area / scatter. The shared channels are
112
+ // built fresh per use so no East expression is spliced twice.
113
+ if (layer.orientation === "horizontal") {
114
+ throw new Error("Plan.chart: Chart.Bar (horizontal) flips the frame the shared axis owns — use Chart.Column (vertical)");
115
+ }
116
+ const xScale = layer.xScale;
117
+ const stacked = layer.style.stack !== undefined;
118
+ if (layer.mark === "line") {
119
+ return layer.data.map((_$, s) => East.value(variant("line", {
120
+ points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
121
+ axis: axisSide(channels.axis ?? layer.style.axis), breach: breachOpt(channels.breach),
122
+ }), PlanChartLayerType));
123
+ }
124
+ if (layer.mark === "area") {
125
+ return layer.data.map((_$, s) => East.value(variant("area", {
126
+ points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
127
+ axis: axisSide(channels.axis ?? layer.style.axis),
128
+ }), PlanChartLayerType));
129
+ }
130
+ if (layer.mark === "scatter") {
131
+ return layer.data.map((_$, s) => East.value(variant("scatter", {
132
+ points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
133
+ axis: axisSide(channels.axis ?? layer.style.axis),
134
+ }), PlanChartLayerType));
135
+ }
136
+ return layer.data.map((_$, s) => East.value(variant("column", {
137
+ points: s.points.map((_$2, p) => East.value({ t: pointInstant(p.x, xScale), y: p.value }, PlanChartPointType)),
138
+ axis: axisSide(channels.axis ?? layer.style.axis),
139
+ series: channels.series !== undefined
140
+ ? East.value(some(channels.series), OptionType(StringType))
141
+ : (stacked
142
+ ? East.value(some(s.key), OptionType(StringType))
143
+ : East.value(none, OptionType(StringType))),
144
+ breach: breachOpt(channels.breach),
145
+ }), PlanChartLayerType));
146
+ }
147
+ /** Concatenate the consumed layers of a chart row. */
148
+ export function consumeLayers(inputs) {
149
+ const list = Array.isArray(inputs) ? inputs : [inputs];
150
+ return list.reduce((acc, l) => acc.concat(consumeLayer(l)), East.value([], ArrayType(PlanChartLayerType)));
151
+ }
152
+ /**
153
+ * Pins a chart row to an explicit height (composed charts — §4·K3's 120px
154
+ * OUT + DEFECTS row), a CSS px size like every component height.
155
+ *
156
+ * @param size - The CSS px size (`"120px"`)
157
+ * @returns A `PlanChartHeightType` expression with the `fixed` arm
158
+ */
159
+ export function createFixedHeight(size) {
160
+ return East.value(variant("fixed", size), PlanChartHeightType);
161
+ }
162
+ /**
163
+ * Creates a span row (the Gantt surface) — continuous state-run bars, with
164
+ * optional nested rows rolled up into union/byStatus bands (`×k` peak
165
+ * concurrency, summed quantities, pessimistic certainty).
166
+ *
167
+ * @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
168
+ * @param input - The span configuration ({@link PlanSpanInput})
169
+ * @returns The flattened subtree (parent first, children re-parented), branded with its kind
170
+ *
171
+ * @example
172
+ * ```ts
173
+ * import { East } from "@elaraai/east";
174
+ * import { UIComponentType } from "@elaraai/east-ui";
175
+ * import { Plan } from "@elaraai/east-ui/internal";
176
+ *
177
+ * const example = East.function([], UIComponentType, _$ =>
178
+ * Plan.Root({
179
+ * axis: Plan.axis({ resolution: "week" }),
180
+ * rows: [Plan.span({
181
+ * key: "m03", label: "L1-M03", id: true, sub: "120 t",
182
+ * runs: [Plan.run({ key: "r1", start: new Date("2026-07-01"), end: new Date("2026-07-22"),
183
+ * label: "RUN · B-214", quantity: "96 t", state: "actual" })],
184
+ * })],
185
+ * }),
186
+ * );
187
+ * ```
188
+ */
189
+ export function createSpan(input) {
190
+ const spanKind = (rollup) => East.value(variant("span", {
191
+ runs: East.value((input.runs ?? []), ArrayType(PlanRunType)),
192
+ decisions: East.value((input.decisions ?? []), ArrayType(PlanDecisionMarkType)),
193
+ ports: East.value((input.ports ?? []), ArrayType(PlanPortType)),
194
+ rollup: rollup !== undefined ? some(resolveTag(rollup, PlanRollupType)) : none,
195
+ unit: input.unit !== undefined ? some(input.unit) : none,
196
+ }), PlanRowKindType);
197
+ if (input.rows === undefined)
198
+ return makeRow(input, spanKind(input.rollup));
199
+ // Nesting declares the rollup (default union); the RENDERER derives the
200
+ // bands from the subtree's runs — never precomputed expressions.
201
+ return assembleNested(input, input.rows, spanKind(input.rollup ?? "union"));
202
+ }
203
+ /**
204
+ * Creates a bucket row (the Planner surface, verbatim) — allocation tiles in
205
+ * discrete slots, optionally sub-divided into lanes (AM/PM). WEEK resolution
206
+ * folds lanes into week cells; DAY re-splits — same data, slice-driven.
207
+ *
208
+ * @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
209
+ * @param input - The buckets configuration ({@link PlanBucketsInput})
210
+ * @returns The 1-row flattened subtree, branded with its kind
211
+ */
212
+ export function createBuckets(input) {
213
+ const kind = East.value(variant("buckets", {
214
+ lanes: East.value(input.lanes ?? [], ArrayType(PlanLaneType)),
215
+ events: East.value((input.events ?? []), ArrayType(PlanBucketEventType)),
216
+ markers: East.value((input.markers ?? []), ArrayType(PlanCellMarkerType)),
217
+ }), PlanRowKindType);
218
+ return makeRow(input, kind);
219
+ }
220
+ /** Whether a domain bound is temporal — mirrors `Chart.Root`'s `isTemporalBound`. */
221
+ function isTemporalBound(bound) {
222
+ if (bound instanceof Date)
223
+ return true;
224
+ if (typeof bound === "number")
225
+ return false;
226
+ return Expr.type(bound).type === "DateTime";
227
+ }
228
+ /** Whether explicit tick positions are temporal — mirrors `Chart.Root`'s `isTemporalTickValues`. */
229
+ function isTemporalTickValues(tv) {
230
+ if (tv === undefined)
231
+ return false;
232
+ const expr = East.value(tv);
233
+ return Expr.type(expr).value.type === "DateTime";
234
+ }
235
+ /** Envelope a chart-row y-axis input (`Chart.Root`'s y-axis rules — value axes are numeric). */
236
+ function buildChartAxis(a, side) {
237
+ if (a.domain !== undefined && isTemporalBound(a.domain[0])) {
238
+ throw new Error(`Plan.chart: the ${side} axis is a numeric value axis — a temporal extent belongs to the shared time axis (Plan.axis window)`);
239
+ }
240
+ if (isTemporalTickValues(a.tickValues)) {
241
+ throw new Error(`Plan.chart: Date tickValues are only valid on a time axis — the ${side} axis is numeric; pass float tick positions`);
242
+ }
243
+ return East.value({
244
+ domain: a.domain !== undefined
245
+ ? some(variant("number", { min: a.domain[0], max: a.domain[1] }))
246
+ : none,
247
+ tickValues: a.tickValues !== undefined
248
+ ? some(variant("number", a.tickValues))
249
+ : none,
250
+ format: a.format !== undefined ? some(a.format) : none,
251
+ }, PlanChartAxisType);
252
+ }
253
+ /**
254
+ * Creates a chart row — Chart layers consumed AS DATA (reified `{t, y}`
255
+ * points on the axis arm the x accessor's type implies), drawn by the canvas
256
+ * itself on the shared scale. Never an embedded `<Chart>`; `Chart.Bar` is a
257
+ * build-time error.
258
+ *
259
+ * @param input - The chart configuration ({@link PlanChartInput})
260
+ * @returns The 1-row flattened subtree
261
+ */
262
+ export function createChart(input) {
263
+ // Base-input `height` is the row-height override; the chart's own height
264
+ // mode is the `height` field here — spelled apart deliberately.
265
+ const heightMode = input.height === undefined
266
+ ? East.value(variant("spark", null), PlanChartHeightType)
267
+ : (typeof input.height === "string"
268
+ ? East.value(variant(input.height, null), PlanChartHeightType)
269
+ : East.value(input.height, PlanChartHeightType));
270
+ const kind = East.value(variant("chart", {
271
+ layers: consumeLayers(input.layers),
272
+ left: input.left !== undefined ? some(buildChartAxis(input.left, "left")) : none,
273
+ right: input.right !== undefined ? some(buildChartAxis(input.right, "right")) : none,
274
+ height: heightMode,
275
+ expandedHeight: input.expandedHeight !== undefined ? some(input.expandedHeight) : none,
276
+ expandable: input.expandable !== undefined ? some(input.expandable) : none,
277
+ }), PlanRowKindType);
278
+ const { height: _rowHeight, ...base } = input;
279
+ return makeRow(base, kind);
280
+ }
281
+ /**
282
+ * Creates a heat row (the Matrix cell recipes on the shared axis) — colour
283
+ * depth, weight bars or segment compositions. With `rows` and no explicit
284
+ * `cells`, the parent's cells are the per-bucket `aggregate` of its direct
285
+ * children's heat cells; the warn ring stays on the breaching child.
286
+ *
287
+ * @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
288
+ * @param input - The heat configuration ({@link PlanHeatInput})
289
+ * @returns The flattened subtree (parent first, children re-parented), branded with its kind
290
+ */
291
+ export function createHeat(input) {
292
+ const aggregateOpt = () => input.aggregate !== undefined
293
+ ? some(resolveTag(input.aggregate, PlanAggregateType))
294
+ : none;
295
+ const cells = input.cells;
296
+ if (input.rows === undefined) {
297
+ const kind = East.value(variant("heat", {
298
+ cells: cells !== undefined ? East.value(cells, PlanHeatCellsType) : createHeatCells([]),
299
+ aggregate: aggregateOpt(),
300
+ }), PlanRowKindType);
301
+ return makeRow(input, kind);
302
+ }
303
+ // A nesting parent DECLARES its aggregation (default mean); its cells stay
304
+ // empty (carrying the scale) and the renderer derives the per-bucket
305
+ // values from the children.
306
+ const kind = East.value(variant("heat", {
307
+ cells: cells !== undefined ? East.value(cells, PlanHeatCellsType) : createHeatCells([], input.scale),
308
+ aggregate: some(resolveTag(input.aggregate ?? "mean", PlanAggregateType)),
309
+ }), PlanRowKindType);
310
+ return assembleNested(input, input.rows, kind);
311
+ }
312
+ /**
313
+ * Creates a table row (the Table groupBy surface with time-bucket columns).
314
+ * With `rows` and no explicit `cells`, the parent prints per-bucket
315
+ * subtotals via `aggregate` — a collapsed parent reads as its subtotal line.
316
+ *
317
+ * @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
318
+ * @param input - The table configuration ({@link PlanTableInput})
319
+ * @returns The flattened subtree (parent first, children re-parented), branded with its kind
320
+ */
321
+ export function createTable(input) {
322
+ if (input.cells !== undefined && input.series !== undefined) {
323
+ throw new Error("Plan.table: pass `cells` (sugar for one plain series) OR `series` — not both");
324
+ }
325
+ const aggregateOpt = () => input.aggregate !== undefined
326
+ ? some(resolveTag(input.aggregate, TableAggregateType))
327
+ : none;
328
+ const emphasisOf = () => resolveTag(input.emphasis ?? "body", PlanTableEmphasisType);
329
+ const formatOpt = () => input.format !== undefined ? some(East.value(input.format, TickFormatType)) : none;
330
+ // The stored form is ALWAYS series — `cells` wraps into one unstyled
331
+ // series, so the renderer has a single representation.
332
+ const seriesOf = () => input.series !== undefined
333
+ ? East.value(input.series, ArrayType(PlanTableSeriesType))
334
+ : (input.cells !== undefined
335
+ ? East.value([East.value({
336
+ cells: East.value(input.cells, ArrayType(PlanTableCellType)),
337
+ format: none, tone: none, strong: none, rollup: none,
338
+ }, PlanTableSeriesType)], ArrayType(PlanTableSeriesType))
339
+ : East.value([], ArrayType(PlanTableSeriesType)));
340
+ const splitOf = () => resolveTag(input.split ?? "horizontal", PlanTableSplitType);
341
+ if (input.rows === undefined) {
342
+ const kind = East.value(variant("table", {
343
+ series: seriesOf(),
344
+ split: splitOf(),
345
+ aggregate: aggregateOpt(),
346
+ format: formatOpt(),
347
+ emphasis: emphasisOf(),
348
+ }), PlanRowKindType);
349
+ return makeRow(input, kind);
350
+ }
351
+ // A nesting parent DECLARES its subtotal mode + format; the renderer
352
+ // derives the per-bucket cells from the children.
353
+ const kind = East.value(variant("table", {
354
+ series: seriesOf(),
355
+ split: splitOf(),
356
+ aggregate: some(resolveTag(input.aggregate ?? "sum", TableAggregateType)),
357
+ format: formatOpt(),
358
+ emphasis: emphasisOf(),
359
+ }), PlanRowKindType);
360
+ return assembleNested(input, input.rows, kind);
361
+ }
362
+ /**
363
+ * Creates a cards row (the Roster surface on the shared axis) — shift chips
364
+ * spanning whole buckets.
365
+ *
366
+ * @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
367
+ * @param input - The cards configuration ({@link PlanCardsInput})
368
+ * @returns The 1-row flattened subtree, branded with its kind
369
+ */
370
+ export function createCards(input) {
371
+ const kind = East.value(variant("cards", {
372
+ chips: East.value((input.chips ?? []), ArrayType(PlanChipType)),
373
+ }), PlanRowKindType);
374
+ return makeRow(input, kind);
375
+ }
376
+ /**
377
+ * Creates an event row — ● milestone / ◇◆ decision / ▲ exception marks at
378
+ * their instants on the shared scale (Gantt milestones live here).
379
+ *
380
+ * @typeParam K - The axis kind the row's instants ride (inferred; `never` when erased)
381
+ * @param input - The events configuration ({@link PlanEventsInput})
382
+ * @returns The 1-row flattened subtree, branded with its kind
383
+ */
384
+ export function createEvents(input) {
385
+ const kind = East.value(variant("events", {
386
+ marks: East.value((input.marks ?? []), ArrayType(PlanEventMarkType)),
387
+ }), PlanRowKindType);
388
+ return makeRow(input, kind);
389
+ }
390
+ /**
391
+ * Creates a group strip — the canvas-level heterogeneous container. Collapsed
392
+ * it rests as its summary heat strip — explicit `summary` cells, or the
393
+ * renderer-derived `summaryAggregate` declaration (`none` ⇒ a plain band);
394
+ * expanding swaps the strip for the member rows in place.
395
+ *
396
+ * @typeParam K - The axis kind the group's instants ride (inferred; `never` when erased)
397
+ * @param input - The group configuration ({@link PlanGroupInput})
398
+ * @returns The flattened subtree (group first, members re-parented), branded with its kind
399
+ */
400
+ export function createGroup(input) {
401
+ const summary = input.summary !== undefined
402
+ ? East.value(some(East.value(input.summary, PlanHeatCellsType)), OptionType(PlanHeatCellsType))
403
+ : East.value(none, OptionType(PlanHeatCellsType));
404
+ const summaryAggregate = input.summaryAggregate !== undefined
405
+ ? some(resolveTag(input.summaryAggregate, PlanAggregateType))
406
+ : none;
407
+ const kind = East.value(variant("group", {
408
+ summary, summaryAggregate, collapsed: input.collapsed !== undefined ? some(input.collapsed) : none,
409
+ }), PlanRowKindType);
410
+ if (input.rows === undefined)
411
+ return makeRow(input, kind);
412
+ return assembleNested(input, input.rows, kind);
413
+ }
414
+ //# sourceMappingURL=factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factories.js","sourceRoot":"","sources":["../../../../src/collections/plan/factories.ts"],"names":[],"mappings":"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"}