@elaraai/e3-ui 1.0.103 → 1.0.104

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 (287) hide show
  1. package/dist/src/allocation/functions.d.ts +2 -1
  2. package/dist/src/allocation/functions.d.ts.map +1 -1
  3. package/dist/src/allocation/functions.js +3 -2
  4. package/dist/src/allocation/functions.js.map +1 -1
  5. package/dist/src/allocation/index.d.ts +120 -1
  6. package/dist/src/allocation/index.d.ts.map +1 -1
  7. package/dist/src/allocation/index.js +24 -4
  8. package/dist/src/allocation/index.js.map +1 -1
  9. package/dist/src/bind/data-indexed.d.ts +25 -4
  10. package/dist/src/bind/data-indexed.d.ts.map +1 -1
  11. package/dist/src/bind/data-indexed.js +58 -7
  12. package/dist/src/bind/data-indexed.js.map +1 -1
  13. package/dist/src/bind/data.d.ts +12 -14
  14. package/dist/src/bind/data.d.ts.map +1 -1
  15. package/dist/src/bind/data.js +11 -11
  16. package/dist/src/bind/data.js.map +1 -1
  17. package/dist/src/bind/func.d.ts +7 -2
  18. package/dist/src/bind/func.d.ts.map +1 -1
  19. package/dist/src/bind/func.js +10 -3
  20. package/dist/src/bind/func.js.map +1 -1
  21. package/dist/src/calendar/index.d.ts +148 -1
  22. package/dist/src/calendar/index.d.ts.map +1 -1
  23. package/dist/src/calendar/index.js +55 -5
  24. package/dist/src/calendar/index.js.map +1 -1
  25. package/dist/src/flowchart/canvas.d.ts +32 -14
  26. package/dist/src/flowchart/canvas.d.ts.map +1 -1
  27. package/dist/src/flowchart/canvas.js +21 -6
  28. package/dist/src/flowchart/canvas.js.map +1 -1
  29. package/dist/src/flowchart/details.d.ts +469 -0
  30. package/dist/src/flowchart/details.d.ts.map +1 -0
  31. package/dist/src/flowchart/details.js +1035 -0
  32. package/dist/src/flowchart/details.js.map +1 -0
  33. package/dist/src/flowchart/flowchart.d.ts +16 -72
  34. package/dist/src/flowchart/flowchart.d.ts.map +1 -1
  35. package/dist/src/flowchart/flowchart.js +10 -1
  36. package/dist/src/flowchart/flowchart.js.map +1 -1
  37. package/dist/src/flowchart/index.d.ts +282 -251
  38. package/dist/src/flowchart/index.d.ts.map +1 -1
  39. package/dist/src/flowchart/index.js +234 -220
  40. package/dist/src/flowchart/index.js.map +1 -1
  41. package/dist/src/flowchart/kinds.d.ts +438 -0
  42. package/dist/src/flowchart/kinds.d.ts.map +1 -0
  43. package/dist/src/flowchart/kinds.js +799 -0
  44. package/dist/src/flowchart/kinds.js.map +1 -0
  45. package/dist/src/flowchart/library.d.ts +154 -739
  46. package/dist/src/flowchart/library.d.ts.map +1 -1
  47. package/dist/src/flowchart/library.js +191 -673
  48. package/dist/src/flowchart/library.js.map +1 -1
  49. package/dist/src/flowchart/payload.d.ts +3652 -7843
  50. package/dist/src/flowchart/payload.d.ts.map +1 -1
  51. package/dist/src/flowchart/payload.js +331 -469
  52. package/dist/src/flowchart/payload.js.map +1 -1
  53. package/dist/src/flowchart/templates.d.ts +657 -0
  54. package/dist/src/flowchart/templates.d.ts.map +1 -0
  55. package/dist/src/flowchart/templates.js +658 -0
  56. package/dist/src/flowchart/templates.js.map +1 -0
  57. package/dist/src/flowchart/types.d.ts +2258 -214
  58. package/dist/src/flowchart/types.d.ts.map +1 -1
  59. package/dist/src/flowchart/types.js +374 -124
  60. package/dist/src/flowchart/types.js.map +1 -1
  61. package/dist/src/index.d.ts +13 -15
  62. package/dist/src/index.d.ts.map +1 -1
  63. package/dist/src/index.js +24 -29
  64. package/dist/src/index.js.map +1 -1
  65. package/dist/src/internal.d.ts +5 -7
  66. package/dist/src/internal.d.ts.map +1 -1
  67. package/dist/src/internal.js +12 -19
  68. package/dist/src/internal.js.map +1 -1
  69. package/dist/src/ontology/index.d.ts +44 -15
  70. package/dist/src/ontology/index.d.ts.map +1 -1
  71. package/dist/src/ontology/index.js +19 -11
  72. package/dist/src/ontology/index.js.map +1 -1
  73. package/dist/src/plan/event-rows.d.ts +2 -1
  74. package/dist/src/plan/event-rows.d.ts.map +1 -1
  75. package/dist/src/plan/event-rows.js +6 -4
  76. package/dist/src/plan/event-rows.js.map +1 -1
  77. package/dist/src/plan/ir.d.ts +1 -0
  78. package/dist/src/plan/ir.d.ts.map +1 -1
  79. package/dist/src/plan/plan.d.ts +145 -1
  80. package/dist/src/plan/plan.d.ts.map +1 -1
  81. package/dist/src/plan/plan.js +67 -3
  82. package/dist/src/plan/plan.js.map +1 -1
  83. package/dist/src/plan/types.d.ts +1 -0
  84. package/dist/src/plan/types.d.ts.map +1 -1
  85. package/dist/src/query/builder.d.ts +362 -315
  86. package/dist/src/query/builder.d.ts.map +1 -1
  87. package/dist/src/query/builder.js +12 -1
  88. package/dist/src/query/builder.js.map +1 -1
  89. package/dist/src/query/index.d.ts +5 -1
  90. package/dist/src/query/index.d.ts.map +1 -1
  91. package/dist/src/query/index.js +3 -1
  92. package/dist/src/query/index.js.map +1 -1
  93. package/dist/src/roster/fit.d.ts +5 -2
  94. package/dist/src/roster/fit.d.ts.map +1 -1
  95. package/dist/src/roster/fit.js +5 -3
  96. package/dist/src/roster/fit.js.map +1 -1
  97. package/dist/src/roster/index.d.ts +103 -2
  98. package/dist/src/roster/index.d.ts.map +1 -1
  99. package/dist/src/roster/index.js +45 -6
  100. package/dist/src/roster/index.js.map +1 -1
  101. package/dist/src/runtime/index.d.ts +1 -3
  102. package/dist/src/runtime/index.d.ts.map +1 -1
  103. package/dist/src/runtime/index.js +1 -3
  104. package/dist/src/runtime/index.js.map +1 -1
  105. package/dist/src/schedule/record-window.d.ts +1 -0
  106. package/dist/src/schedule/record-window.d.ts.map +1 -1
  107. package/dist/src/schematic/index.d.ts +1 -1
  108. package/dist/src/schematic/index.d.ts.map +1 -1
  109. package/dist/src/schematic/index.js +1 -1
  110. package/dist/src/schematic/index.js.map +1 -1
  111. package/dist/src/schematic/kinds.d.ts +4 -24
  112. package/dist/src/schematic/kinds.d.ts.map +1 -1
  113. package/dist/src/schematic/kinds.js +8 -212
  114. package/dist/src/schematic/kinds.js.map +1 -1
  115. package/dist/src/schematic/payload.d.ts +140 -1
  116. package/dist/src/schematic/payload.d.ts.map +1 -1
  117. package/dist/src/schematic/payload.js +38 -1
  118. package/dist/src/schematic/payload.js.map +1 -1
  119. package/dist/src/schematic/types.d.ts.map +1 -1
  120. package/dist/src/schematic/types.js +4 -36
  121. package/dist/src/schematic/types.js.map +1 -1
  122. package/dist/src/schematic/window.d.ts +9 -42
  123. package/dist/src/schematic/window.d.ts.map +1 -1
  124. package/dist/src/schematic/window.js +10 -115
  125. package/dist/src/schematic/window.js.map +1 -1
  126. package/dist/src/sheet/actions.d.ts +388 -0
  127. package/dist/src/sheet/actions.d.ts.map +1 -0
  128. package/dist/src/sheet/actions.js +594 -0
  129. package/dist/src/sheet/actions.js.map +1 -0
  130. package/dist/src/sheet/bridge.d.ts +12 -1
  131. package/dist/src/sheet/bridge.d.ts.map +1 -1
  132. package/dist/src/sheet/bridge.js +30 -6
  133. package/dist/src/sheet/bridge.js.map +1 -1
  134. package/dist/src/sheet/columns.d.ts +5 -2
  135. package/dist/src/sheet/columns.d.ts.map +1 -1
  136. package/dist/src/sheet/columns.js.map +1 -1
  137. package/dist/src/sheet/draft-bridge.d.ts +9 -4
  138. package/dist/src/sheet/draft-bridge.d.ts.map +1 -1
  139. package/dist/src/sheet/draft-bridge.js +22 -7
  140. package/dist/src/sheet/draft-bridge.js.map +1 -1
  141. package/dist/src/sheet/fields.d.ts +13 -0
  142. package/dist/src/sheet/fields.d.ts.map +1 -1
  143. package/dist/src/sheet/fields.js +3 -0
  144. package/dist/src/sheet/fields.js.map +1 -1
  145. package/dist/src/sheet/index.d.ts +32 -2
  146. package/dist/src/sheet/index.d.ts.map +1 -1
  147. package/dist/src/sheet/index.js +18 -3
  148. package/dist/src/sheet/index.js.map +1 -1
  149. package/dist/src/sheet/library.d.ts +8 -0
  150. package/dist/src/sheet/library.d.ts.map +1 -1
  151. package/dist/src/sheet/root.d.ts +23 -1
  152. package/dist/src/sheet/root.d.ts.map +1 -1
  153. package/dist/src/sheet/root.js +40 -5
  154. package/dist/src/sheet/root.js.map +1 -1
  155. package/dist/src/sheet/sheet.d.ts +7843 -4132
  156. package/dist/src/sheet/sheet.d.ts.map +1 -1
  157. package/dist/src/sheet/sheet.js +41 -2
  158. package/dist/src/sheet/sheet.js.map +1 -1
  159. package/dist/src/sheet/templates.d.ts +4 -0
  160. package/dist/src/sheet/templates.d.ts.map +1 -1
  161. package/dist/src/sheet/types.d.ts +12449 -5268
  162. package/dist/src/sheet/types.d.ts.map +1 -1
  163. package/dist/src/sheet/types.js +114 -2
  164. package/dist/src/sheet/types.js.map +1 -1
  165. package/dist/src/utils/derive.d.ts +1 -1
  166. package/dist/src/utils/derive.js +1 -1
  167. package/dist/src/utils/record-kind.d.ts +625 -0
  168. package/dist/src/utils/record-kind.d.ts.map +1 -0
  169. package/dist/src/utils/record-kind.js +450 -0
  170. package/dist/src/utils/record-kind.js.map +1 -0
  171. package/dist/src/utils/views.d.ts +55 -0
  172. package/dist/src/utils/views.d.ts.map +1 -0
  173. package/dist/src/utils/views.js +72 -0
  174. package/dist/src/utils/views.js.map +1 -0
  175. package/dist/src/utils/vocabulary.d.ts +48 -0
  176. package/dist/src/utils/vocabulary.d.ts.map +1 -0
  177. package/dist/src/utils/vocabulary.js +47 -0
  178. package/dist/src/utils/vocabulary.js.map +1 -0
  179. package/dist/test/allocation/allocation.examples.d.ts +2 -0
  180. package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
  181. package/dist/test/allocation/allocation.examples.js +81 -2
  182. package/dist/test/allocation/allocation.examples.js.map +1 -1
  183. package/dist/test/bind/func/func.examples.d.ts +19 -1
  184. package/dist/test/bind/func/func.examples.d.ts.map +1 -1
  185. package/dist/test/bind/func/func.examples.js +36 -1
  186. package/dist/test/bind/func/func.examples.js.map +1 -1
  187. package/dist/test/calendar/calendar.examples.d.ts +2 -0
  188. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  189. package/dist/test/calendar/calendar.examples.js +80 -2
  190. package/dist/test/calendar/calendar.examples.js.map +1 -1
  191. package/dist/test/decision/queue.examples.d.ts +1 -0
  192. package/dist/test/decision/queue.examples.d.ts.map +1 -1
  193. package/dist/test/decision/queue.examples.js +12 -0
  194. package/dist/test/decision/queue.examples.js.map +1 -1
  195. package/dist/test/examples-package.d.ts.map +1 -1
  196. package/dist/test/examples-package.js +5 -4
  197. package/dist/test/examples-package.js.map +1 -1
  198. package/dist/test/flowchart/flowchart.examples.d.ts +1250 -4605
  199. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  200. package/dist/test/flowchart/flowchart.examples.js +861 -512
  201. package/dist/test/flowchart/flowchart.examples.js.map +1 -1
  202. package/dist/test/ontology/ontology.examples.d.ts +2 -3
  203. package/dist/test/ontology/ontology.examples.d.ts.map +1 -1
  204. package/dist/test/ontology/ontology.examples.js +32 -21
  205. package/dist/test/ontology/ontology.examples.js.map +1 -1
  206. package/dist/test/plan/plan-events.examples.d.ts +1 -0
  207. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  208. package/dist/test/plan/plan-events.examples.js +44 -0
  209. package/dist/test/plan/plan-events.examples.js.map +1 -1
  210. package/dist/test/plan/plan-nested.examples.d.ts +2 -2
  211. package/dist/test/plan/plan-nested.examples.js +5 -5
  212. package/dist/test/plan/plan-nested.examples.js.map +1 -1
  213. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  214. package/dist/test/plan/plan-records.examples.js +1 -1
  215. package/dist/test/plan/plan-records.examples.js.map +1 -1
  216. package/dist/test/query/query.examples.d.ts +2 -0
  217. package/dist/test/query/query.examples.d.ts.map +1 -1
  218. package/dist/test/query/query.examples.js +37 -1
  219. package/dist/test/query/query.examples.js.map +1 -1
  220. package/dist/test/roster/roster.examples.d.ts +2 -0
  221. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  222. package/dist/test/roster/roster.examples.js +76 -15
  223. package/dist/test/roster/roster.examples.js.map +1 -1
  224. package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -1
  225. package/dist/test/schematic/schematic-records.examples.js +6 -4
  226. package/dist/test/schematic/schematic-records.examples.js.map +1 -1
  227. package/dist/test/schematic/schematic.examples.d.ts +1 -0
  228. package/dist/test/schematic/schematic.examples.d.ts.map +1 -1
  229. package/dist/test/schematic/schematic.examples.js +144 -0
  230. package/dist/test/schematic/schematic.examples.js.map +1 -1
  231. package/dist/test/sheet/sheet-actions.examples.d.ts +1264 -0
  232. package/dist/test/sheet/sheet-actions.examples.d.ts.map +1 -0
  233. package/dist/test/sheet/sheet-actions.examples.js +394 -0
  234. package/dist/test/sheet/sheet-actions.examples.js.map +1 -0
  235. package/dist/test/sheet/sheet.examples.d.ts +1 -0
  236. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  237. package/dist/test/sheet/sheet.examples.js +77 -0
  238. package/dist/test/sheet/sheet.examples.js.map +1 -1
  239. package/dist/test/studio/studio.examples.d.ts +1 -0
  240. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  241. package/dist/test/studio/studio.examples.js +18 -8
  242. package/dist/test/studio/studio.examples.js.map +1 -1
  243. package/package.json +12 -12
  244. package/dist/src/diff/index.d.ts +0 -407
  245. package/dist/src/diff/index.d.ts.map +0 -1
  246. package/dist/src/diff/index.js +0 -203
  247. package/dist/src/diff/index.js.map +0 -1
  248. package/dist/src/experiment/index.d.ts +0 -1033
  249. package/dist/src/experiment/index.d.ts.map +0 -1
  250. package/dist/src/experiment/index.js +0 -197
  251. package/dist/src/experiment/index.js.map +0 -1
  252. package/dist/src/experiment/types.d.ts +0 -1093
  253. package/dist/src/experiment/types.d.ts.map +0 -1
  254. package/dist/src/experiment/types.js +0 -423
  255. package/dist/src/experiment/types.js.map +0 -1
  256. package/dist/src/flowchart/over.d.ts +0 -227
  257. package/dist/src/flowchart/over.d.ts.map +0 -1
  258. package/dist/src/flowchart/over.js +0 -213
  259. package/dist/src/flowchart/over.js.map +0 -1
  260. package/dist/src/flowchart/patch.d.ts +0 -64
  261. package/dist/src/flowchart/patch.d.ts.map +0 -1
  262. package/dist/src/flowchart/patch.js +0 -67
  263. package/dist/src/flowchart/patch.js.map +0 -1
  264. package/dist/src/flowchart/values.d.ts +0 -271
  265. package/dist/src/flowchart/values.d.ts.map +0 -1
  266. package/dist/src/flowchart/values.js +0 -220
  267. package/dist/src/flowchart/values.js.map +0 -1
  268. package/dist/src/flowchart/window.d.ts +0 -306
  269. package/dist/src/flowchart/window.d.ts.map +0 -1
  270. package/dist/src/flowchart/window.js +0 -63
  271. package/dist/src/flowchart/window.js.map +0 -1
  272. package/dist/src/runtime/diff.d.ts +0 -36
  273. package/dist/src/runtime/diff.d.ts.map +0 -1
  274. package/dist/src/runtime/diff.js +0 -34
  275. package/dist/src/runtime/diff.js.map +0 -1
  276. package/dist/src/runtime/experiment.d.ts +0 -48
  277. package/dist/src/runtime/experiment.d.ts.map +0 -1
  278. package/dist/src/runtime/experiment.js +0 -10
  279. package/dist/src/runtime/experiment.js.map +0 -1
  280. package/dist/test/diff/diff.examples.d.ts +0 -313
  281. package/dist/test/diff/diff.examples.d.ts.map +0 -1
  282. package/dist/test/diff/diff.examples.js +0 -452
  283. package/dist/test/diff/diff.examples.js.map +0 -1
  284. package/dist/test/experiment/experiment.examples.d.ts +0 -1512
  285. package/dist/test/experiment/experiment.examples.d.ts.map +0 -1
  286. package/dist/test/experiment/experiment.examples.js +0 -609
  287. package/dist/test/experiment/experiment.examples.js.map +0 -1
@@ -0,0 +1,388 @@
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
+ * `Sheet.column.action` — a variant's state machine as a column (#1474,
7
+ * `Sheet Actions - DX Proposal.md`).
8
+ *
9
+ * The column sits on a field of type `V` or `Option<V>`, `V` a variant. Each
10
+ * case of `V` is a state and the action that gets a row there: the author
11
+ * gives its words, the cases it may go to next (`next`, and `start` for a
12
+ * row with nothing taken), and what else taking it updates. The case's type
13
+ * decides how it is asked: `NullType` is a button, a variant whose every case
14
+ * is `NullType` a menu of those cases, anything else a form drawn with
15
+ * `Fields` — the inspectors' vocabulary. One optional function, `blocked`,
16
+ * says when a row cannot act for a reason the table cannot hold (a step
17
+ * waiting for the one before it).
18
+ *
19
+ * The builder only captures. {@link describeAction} checks the declaration
20
+ * against the row type at build time; {@link buildActionKind} compiles it into
21
+ * the closed wire kind over the sheet's bridge; {@link buildActionCodec} is the
22
+ * cell a row's case lands in.
23
+ *
24
+ * @packageDocumentation
25
+ */
26
+ import { ArrayType, DateTimeType, DictType, FunctionType, IntegerType, NullType, OptionType, StringType, StructType, VariantType, type EastType, type ExprType, type SubtypeExprOrValue } from "@elaraai/east";
27
+ import { type StatusValueLiteral } from "@elaraai/east-ui";
28
+ import { FIELD_HINT, type FieldHint, type FieldHints } from "@elaraai/east-ui/internal";
29
+ import { SheetActionCellType, SheetActionKindType, SheetCellType, type SheetPatchOf, type SheetLinesField, type SheetLineOf } from "./types.js";
30
+ import type { SheetColumn } from "./columns.js";
31
+ import type { SheetBridge, SheetColumnMeta, SheetRuleCellMeta } from "./bridge.js";
32
+ import type { SheetRegisterValue } from "./registers.js";
33
+ /**
34
+ * `Sheet.Types.ActionContext(R)` — what an action column's functions see on
35
+ * a flat sheet: the row as plain values, never a draft — a row whose draft
36
+ * is incomplete never acts (T6) — and its neighbours, each `none` while its
37
+ * own draft is incomplete.
38
+ *
39
+ * @typeParam R - The row type
40
+ * @param rowType - The row type value
41
+ * @returns The context type
42
+ *
43
+ * @property row - The row, as it stands before the action
44
+ * @property index - Its place among the rows
45
+ * @property rows - The resident rows, in order; `none` where a row's draft is incomplete
46
+ * @property group - Always `none` on a flat sheet
47
+ * @property today - UTC midnight
48
+ */
49
+ export declare function SheetActionContextTypeFor<R extends StructType>(rowType: R): SheetActionContextOf<R>;
50
+ /**
51
+ * `Sheet.Types.ActionContext(P, "lines")` — what an action column's
52
+ * functions see on a grouped sheet: the line as plain values, its group's
53
+ * lines, and the group.
54
+ *
55
+ * @typeParam P - The group type
56
+ * @typeParam F - The lines field
57
+ * @param groupType - The group type value
58
+ * @param lines - The lines field
59
+ * @returns The context type
60
+ *
61
+ * @property row - The line, as it stands before the action
62
+ * @property index - Its place among its group's lines
63
+ * @property rows - Its group's lines, in order; `none` where a line's draft is incomplete
64
+ * @property group - Its group; `none` while the group's own draft is incomplete, and for a loose row
65
+ * @property today - UTC midnight
66
+ */
67
+ export declare function SheetGroupActionContextTypeFor<P extends StructType, F extends SheetLinesField<P>>(groupType: P, lines: F): SheetActionContextOf<SheetLineOf<P, F>>;
68
+ /**
69
+ * The TS type of an action context over the row type `R` — on a grouped
70
+ * sheet `R` is the line, and `group` the group.
71
+ *
72
+ * @typeParam R - The row type (a grouped sheet's line)
73
+ */
74
+ export type SheetActionContextOf<R extends StructType> = StructType<{
75
+ row: R;
76
+ index: IntegerType;
77
+ rows: ArrayType<OptionType<R>>;
78
+ group: OptionType<StructType>;
79
+ today: DateTimeType;
80
+ }>;
81
+ /**
82
+ * `Sheet.Types.ActionContext` — `ActionContext(R)` on a flat sheet,
83
+ * `ActionContext(P, "lines")` on a grouped one.
84
+ */
85
+ export declare function sheetActionContextType<R extends StructType>(rowType: R): SheetActionContextOf<R>;
86
+ export declare function sheetActionContextType<P extends StructType, F extends SheetLinesField<P>>(groupType: P, lines: F): SheetActionContextOf<SheetLineOf<P, F>>;
87
+ /** The cases of a variant, by name. */
88
+ export type SheetActionCaseOf<V extends VariantType> = Extract<keyof V["cases"], string>;
89
+ /** Whether every case of a variant's cases is `NullType` — what a menu chooses among. */
90
+ type IsChoice<C> = [C[keyof C]] extends [NullType] ? true : false;
91
+ /**
92
+ * A case's menu (`Sheet.action.menu({ labels })`): a variant whose every case
93
+ * is `NullType`, each case a choice, the labelled ones first.
94
+ *
95
+ * @typeParam C - The cases it labels
96
+ */
97
+ export interface SheetActionMenu<C extends string> {
98
+ /** The take's kind. */
99
+ readonly [FIELD_HINT]: "action-menu";
100
+ /** The words for a case, where its name spelled out will not do. */
101
+ readonly labels?: {
102
+ readonly [K in C]?: string;
103
+ };
104
+ }
105
+ /** A case's menu of a register's members (`Sheet.action.menu({ of })`), its value a `String`: the chosen member's key. */
106
+ export interface SheetActionRegisterMenu {
107
+ /** The take's kind. */
108
+ readonly [FIELD_HINT]: "action-register";
109
+ /** The register's name — one of the sheet's `registers`. */
110
+ readonly of: string;
111
+ }
112
+ /**
113
+ * A case's form (`Sheet.action.form({ fields, initial })`): its value's
114
+ * fields, through the inspectors' hints.
115
+ *
116
+ * @typeParam R - The row type
117
+ * @typeParam T - The case's value type
118
+ */
119
+ export interface SheetActionForm<R extends StructType, T extends EastType> {
120
+ /** The take's kind. */
121
+ readonly [FIELD_HINT]: "action-form";
122
+ /** `Sheet.field.*` — one hint for a value that is no struct, a hint per field for a struct. */
123
+ readonly fields?: T extends StructType ? FieldHints<T["fields"]> : FieldHint<T>;
124
+ /** What the form opens with (F10); without it, the row's own value of this case, else empty. */
125
+ readonly initial?: (ctx: ExprType<SheetActionContextOf<R>>) => SubtypeExprOrValue<T>;
126
+ }
127
+ /**
128
+ * How a case of type `T` may be asked for: a `NullType` case is always a
129
+ * button; a variant of `NullType` cases a menu or a form; a `String` a
130
+ * register's menu or a form; anything else a form.
131
+ *
132
+ * @typeParam R - The row type
133
+ * @typeParam T - The case's value type
134
+ */
135
+ export type SheetActionTake<R extends StructType, T extends EastType> = T extends NullType ? never : T extends VariantType<infer C> ? (IsChoice<C> extends true ? SheetActionMenu<Extract<keyof C, string>> | SheetActionForm<R, T> : SheetActionForm<R, T>) : T extends StringType ? SheetActionRegisterMenu | SheetActionForm<R, T> : SheetActionForm<R, T>;
136
+ /**
137
+ * What taking a case updates beside its own field: a patch of the row and,
138
+ * on a grouped sheet, of its group — `Sheet.patch`, as `newRow` and templates
139
+ * build them. A field a patch leaves out is left as it is.
140
+ *
141
+ * @typeParam R - The row type
142
+ */
143
+ export interface SheetUpdatesInput<R extends StructType> {
144
+ /** The row's patch. */
145
+ row?: SubtypeExprOrValue<SheetPatchOf<R>>;
146
+ /** The group's patch — a grouped sheet's only. */
147
+ group?: SubtypeExprOrValue<StructType>;
148
+ }
149
+ /**
150
+ * One case of an action column: a state, and the action into it.
151
+ *
152
+ * @typeParam R - The row type
153
+ * @typeParam V - The variant
154
+ * @typeParam T - The case's value type
155
+ */
156
+ export interface SheetActionCase<R extends StructType, V extends VariantType, T extends EastType> {
157
+ /** The verb on the control — "Complete". */
158
+ label: SubtypeExprOrValue<StringType>;
159
+ /** The word once taken — "Completed". */
160
+ state: SubtypeExprOrValue<StringType>;
161
+ /** The state's tone (S6); neutral when left out. */
162
+ tone?: StatusValueLiteral;
163
+ /** A Font Awesome solid icon by name — "check", "pause" (S13). */
164
+ icon?: string;
165
+ /** The cases a row in this state may go to, in the order they are offered; left out, a final state. */
166
+ next?: readonly SheetActionCaseOf<V>[];
167
+ /** How it is asked for, where its type alone does not say. */
168
+ take?: SheetActionTake<R, T>;
169
+ /** What follows the state word (S7), over the case's value and the row. */
170
+ summary?: (value: ExprType<T>, row: ExprType<R>) => SubtypeExprOrValue<StringType | OptionType<StringType>>;
171
+ /** What else taking it updates: the case's value (what was entered), the row's context before, and the moment. */
172
+ updates?: (value: ExprType<T>, ctx: ExprType<SheetActionContextOf<R>>, at: ExprType<DateTimeType>) => SheetUpdatesInput<R>;
173
+ }
174
+ /**
175
+ * Config for `Sheet.column.action(R, V, config)`.
176
+ *
177
+ * @typeParam R - The row type (a grouped sheet's line)
178
+ * @typeParam V - The variant
179
+ */
180
+ export interface SheetActionConfig<R extends StructType, V extends VariantType> {
181
+ /** The header line. */
182
+ header?: SubtypeExprOrValue<StringType>;
183
+ /** The grey second header line. */
184
+ sub?: SubtypeExprOrValue<StringType>;
185
+ /** CSS width (`"304px"`). */
186
+ width?: SubtypeExprOrValue<StringType>;
187
+ /** `false` shows the state alone, no controls (T9). */
188
+ editable?: boolean;
189
+ /** What a row with nothing taken may do — an `Option<V>` field's only. */
190
+ start?: readonly SheetActionCaseOf<V>[];
191
+ /** Every case of `V`, and no other; the record's order is the order they read in. */
192
+ cases: {
193
+ [C in SheetActionCaseOf<V>]: SheetActionCase<R, V, V["cases"][C]>;
194
+ };
195
+ /** Why the row cannot act now, over its context; `none` when it can. */
196
+ blocked?: (ctx: ExprType<SheetActionContextOf<R>>) => SubtypeExprOrValue<OptionType<StringType>>;
197
+ /** How menus, forms and the strip name the row — `"step 20"`; left out, by its number. */
198
+ name?: (row: ExprType<R>) => SubtypeExprOrValue<StringType>;
199
+ /** The row's words beside its name — `"Weld frame"`. */
200
+ title?: (row: ExprType<R>) => SubtypeExprOrValue<StringType>;
201
+ }
202
+ /** An action column's config, erased — what the built column carries. @internal */
203
+ export type SheetAnyActionConfig = Omit<SheetActionConfig<StructType, VariantType>, "cases"> & {
204
+ cases: Record<string, SheetAnyActionCase>;
205
+ };
206
+ /** One case's config, erased. @internal */
207
+ export interface SheetAnyActionCase {
208
+ label: SubtypeExprOrValue<StringType>;
209
+ state: SubtypeExprOrValue<StringType>;
210
+ tone?: StatusValueLiteral;
211
+ icon?: string;
212
+ next?: readonly string[];
213
+ take?: {
214
+ readonly [FIELD_HINT]: string;
215
+ readonly labels?: Readonly<Record<string, string | undefined>>;
216
+ readonly of?: string;
217
+ readonly fields?: unknown;
218
+ readonly initial?: (ctx: ExprType<StructType>) => unknown;
219
+ };
220
+ summary?: (value: ExprType<EastType>, row: ExprType<StructType>) => unknown;
221
+ updates?: (value: ExprType<EastType>, ctx: ExprType<StructType>, at: ExprType<DateTimeType>) => {
222
+ row?: unknown;
223
+ group?: unknown;
224
+ };
225
+ }
226
+ /**
227
+ * A case's menu of a variant's cases, each `NullType` — `Sheet.action.menu({ labels })`.
228
+ *
229
+ * @typeParam C - The cases it labels
230
+ * @param options - The words for the cases whose names, spelled out, will not do
231
+ * @returns The take
232
+ */
233
+ export declare function actionMenu<C extends string = never>(options?: {
234
+ readonly labels?: {
235
+ readonly [K in C]?: string;
236
+ };
237
+ }): SheetActionMenu<C>;
238
+ /**
239
+ * A case's menu of a register's members — `Sheet.action.menu({ of: "crews" })`.
240
+ *
241
+ * @param options - The register's name
242
+ * @returns The take
243
+ */
244
+ export declare function actionMenu(options: {
245
+ readonly of: string;
246
+ }): SheetActionRegisterMenu;
247
+ /**
248
+ * A case's form — `Sheet.action.form({ fields, initial })`: its value's
249
+ * fields through `Sheet.field.*`, and what it opens with.
250
+ *
251
+ * @typeParam R - The row type
252
+ * @typeParam T - The case's value type
253
+ * @param options - The fields' hints and the opening value
254
+ * @returns The take
255
+ */
256
+ export declare function actionForm<R extends StructType, T extends EastType>(options?: Omit<SheetActionForm<R, T>, typeof FIELD_HINT>): SheetActionForm<R, T>;
257
+ /**
258
+ * An action column — `Sheet.column.action(R, V, config)`: a variant's state
259
+ * machine, each case a state and the action into it. Sits on a `V` or
260
+ * `Option<V>` field.
261
+ *
262
+ * @typeParam R - The row type (a grouped sheet's line)
263
+ * @typeParam V - The variant
264
+ * @param rowType - The row type value
265
+ * @param variantType - The variant the field holds
266
+ * @param config - The cases, `start`, `blocked` and the column's words ({@link SheetActionConfig})
267
+ * @returns The column
268
+ * @example
269
+ * ```tsx
270
+ * // .tsx file with the `@jsxImportSource @elaraai/e3-ui` pragma
271
+ * import { DictType, East, NullType, OptionType, StringType, StructType, VariantType, none, some, variant } from "@elaraai/east";
272
+ * import { Box, Reactive, UIComponentType } from "@elaraai/east-ui";
273
+ * import { Record, Sheet } from "@elaraai/e3-ui";
274
+ * import e3 from "@elaraai/e3";
275
+ *
276
+ * export const JobState = VariantType({ started: NullType, finished: NullType });
277
+ * export const ActionJob = StructType({ task: StringType, state: OptionType(JobState) });
278
+ * export const sheetActionJobs = e3.record("sheet_action_jobs", DictType(StringType, ActionJob), {
279
+ * initial: new Map([
280
+ * ["J-0001", { task: "Panel cutting", state: some(variant("finished", null)) }],
281
+ * ["J-0002", { task: "Edge banding", state: some(variant("started", null)) }],
282
+ * ["J-0003", { task: "CNC routing", state: none }],
283
+ * ]),
284
+ * mutations: (mutation) => ({
285
+ * // The jobs' patch door — every Save commits through it.
286
+ * patch: mutation.patch(),
287
+ * }),
288
+ * });
289
+ *
290
+ * const sheet = East.function([], UIComponentType, (_$) => (
291
+ * <Reactive>{$ => {
292
+ * const jobs = $.let(Record.bind(sheetActionJobs));
293
+ * return (
294
+ * <Box height="320px">
295
+ * <Sheet
296
+ * record={jobs}
297
+ * name="sheetActionsBasic"
298
+ * columns={{
299
+ * task: Sheet.column.text(ActionJob, { header: "Task", width: "240px" }),
300
+ * state: Sheet.column.action(ActionJob, JobState, {
301
+ * header: "State", width: "240px",
302
+ * start: ["started"],
303
+ * cases: {
304
+ * started: { label: "Start", state: "Started", tone: "info", icon: "play", next: ["finished"] },
305
+ * finished: { label: "Finish", state: "Finished", tone: "success", icon: "check" },
306
+ * },
307
+ * }),
308
+ * }}
309
+ * />
310
+ * </Box>
311
+ * );
312
+ * }}</Reactive>
313
+ * ));
314
+ * ```
315
+ */
316
+ export declare function action<R extends StructType, V extends VariantType>(rowType: R, variantType: V, config: SheetActionConfig<R, V>): SheetColumn<R, V | OptionType<V>>;
317
+ /** The compiled codec of an action column's cell. @internal */
318
+ export interface SheetActionCodec {
319
+ /** The variant. */
320
+ variantType: VariantType;
321
+ /** `V` → its cell. */
322
+ encode: ExprType<FunctionType<[VariantType], SheetCellType>>;
323
+ /** An `Action` cell's payload → its value, `none` for a case the variant does not have. */
324
+ decode: ExprType<FunctionType<[SheetActionCellType], OptionType<VariantType>>>;
325
+ }
326
+ /**
327
+ * Compiles an action column's cell codec: a value of `V` to its `Action`
328
+ * cell (its case and its value, beast2 at the case's type), and back.
329
+ *
330
+ * @param variantType - The variant
331
+ * @returns The codec
332
+ * @internal
333
+ */
334
+ export declare function buildActionCodec(variantType: VariantType): SheetActionCodec;
335
+ /**
336
+ * Checks an action column's declaration against its field: the field is `V`
337
+ * or `Option<V>`; `cases` names every case of `V` and no other; `start` and
338
+ * each `next` name cases of `V`, once each; `start` sits only on an
339
+ * `Option<V>` field; no `fill` or `value`.
340
+ *
341
+ * @param key - The column key
342
+ * @param col - The built column
343
+ * @param fieldType - The field's type
344
+ * @param optional - Whether the field is an `Option` of `V`
345
+ * @throws Error naming the column and the case
346
+ * @internal
347
+ */
348
+ export declare function describeAction(key: string, col: SheetColumn<StructType, EastType>, fieldType: EastType, optional: boolean): void;
349
+ /**
350
+ * The rule cells an action column projects: the row's summary, and its name
351
+ * and title where the column gives them.
352
+ *
353
+ * @param key - The column key
354
+ * @param col - The built column
355
+ * @param rowType - The row type (a grouped sheet's line)
356
+ * @returns The rule cells
357
+ * @throws Error naming the case whose summary does not return String or Option<String>
358
+ * @internal
359
+ */
360
+ export declare function actionRuleCells(key: string, col: SheetColumn<StructType, EastType>, rowType: StructType): SheetRuleCellMeta[];
361
+ /** What the root hands {@link buildActionKind}. @internal */
362
+ export interface SheetActionKindInput {
363
+ /** The column, described. */
364
+ meta: SheetColumnMeta;
365
+ /** The sheet's bridge. */
366
+ bridge: SheetBridge;
367
+ /** Every declared column, described: the labels a waiting row names its missing fields by. */
368
+ metas: readonly SheetColumnMeta[];
369
+ /** The sheet's registers, by name: what a `menu({ of })` or a form's reference names. */
370
+ registers: Record<string, SheetRegisterValue>;
371
+ /** A grouped sheet's band cells, described against the group: what a group patch writes. */
372
+ groupCells?: SheetColumnMeta[] | undefined;
373
+ /** Encodes a group patch into the band's cells. */
374
+ encodeGroup?: ExprType<FunctionType<[StructType], DictType<StringType, SheetCellType>>> | undefined;
375
+ }
376
+ /**
377
+ * Compiles an action column into its wire kind: the machine as names, each
378
+ * case's take resolved through `Fields`, and `blocked`, each `initial` and
379
+ * each `updates` bridged over the wire context.
380
+ *
381
+ * @param input - The column, the bridge, the registers and the group's encoding ({@link SheetActionKindInput})
382
+ * @returns The column's kind payload
383
+ * @throws Error naming the column and the case: a take that does not fit its case's type, a register the sheet does not declare, a group patch on a flat sheet, or a group patch of another type
384
+ * @internal
385
+ */
386
+ export declare function buildActionKind(input: SheetActionKindInput): ExprType<typeof SheetActionKindType>;
387
+ export {};
388
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../src/sheet/actions.ts"],"names":[],"mappings":"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"}