@elaraai/e3-ui 1.0.86 → 1.0.87

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 (385) hide show
  1. package/dist/src/bind/data-indexed.d.ts +159 -0
  2. package/dist/src/bind/data-indexed.d.ts.map +1 -0
  3. package/dist/src/bind/data-indexed.js +105 -0
  4. package/dist/src/bind/data-indexed.js.map +1 -0
  5. package/dist/src/bind/data.d.ts +5 -3
  6. package/dist/src/bind/data.d.ts.map +1 -1
  7. package/dist/src/bind/data.js +6 -0
  8. package/dist/src/bind/data.js.map +1 -1
  9. package/dist/src/bind/record.d.ts +34 -23
  10. package/dist/src/bind/record.d.ts.map +1 -1
  11. package/dist/src/bind/record.js +46 -19
  12. package/dist/src/bind/record.js.map +1 -1
  13. package/dist/src/calendar/index.d.ts +2923 -0
  14. package/dist/src/calendar/index.d.ts.map +1 -0
  15. package/dist/src/calendar/index.js +135 -0
  16. package/dist/src/calendar/index.js.map +1 -0
  17. package/dist/src/decision/queue.d.ts +3 -3
  18. package/dist/src/decision/queue.d.ts.map +1 -1
  19. package/dist/src/decision/queue.js +2 -2
  20. package/dist/src/decision/queue.js.map +1 -1
  21. package/dist/src/decision/types.d.ts +4 -0
  22. package/dist/src/decision/types.d.ts.map +1 -1
  23. package/dist/src/decision/types.js +4 -0
  24. package/dist/src/decision/types.js.map +1 -1
  25. package/dist/src/flowchart/canvas.d.ts +114 -0
  26. package/dist/src/flowchart/canvas.d.ts.map +1 -0
  27. package/dist/src/flowchart/canvas.js +84 -0
  28. package/dist/src/flowchart/canvas.js.map +1 -0
  29. package/dist/src/flowchart/flowchart.d.ts +79 -0
  30. package/dist/src/flowchart/flowchart.d.ts.map +1 -0
  31. package/dist/src/flowchart/flowchart.js +9 -0
  32. package/dist/src/flowchart/flowchart.js.map +1 -0
  33. package/dist/src/flowchart/index.d.ts +305 -0
  34. package/dist/src/flowchart/index.d.ts.map +1 -0
  35. package/dist/src/flowchart/index.js +267 -0
  36. package/dist/src/flowchart/index.js.map +1 -0
  37. package/dist/src/flowchart/library.d.ts +720 -0
  38. package/dist/src/flowchart/library.d.ts.map +1 -0
  39. package/dist/src/flowchart/library.js +611 -0
  40. package/dist/src/flowchart/library.js.map +1 -0
  41. package/dist/src/flowchart/over.d.ts +234 -0
  42. package/dist/src/flowchart/over.d.ts.map +1 -0
  43. package/dist/src/flowchart/over.js +220 -0
  44. package/dist/src/flowchart/over.js.map +1 -0
  45. package/dist/src/flowchart/patch.d.ts +64 -0
  46. package/dist/src/flowchart/patch.d.ts.map +1 -0
  47. package/dist/src/flowchart/patch.js +67 -0
  48. package/dist/src/flowchart/patch.js.map +1 -0
  49. package/dist/src/flowchart/payload.d.ts +8220 -0
  50. package/dist/src/flowchart/payload.d.ts.map +1 -0
  51. package/dist/src/flowchart/payload.js +521 -0
  52. package/dist/src/flowchart/payload.js.map +1 -0
  53. package/dist/src/flowchart/types.d.ts +393 -0
  54. package/dist/src/flowchart/types.d.ts.map +1 -0
  55. package/dist/src/flowchart/types.js +216 -0
  56. package/dist/src/flowchart/types.js.map +1 -0
  57. package/dist/src/flowchart/values.d.ts +267 -0
  58. package/dist/src/flowchart/values.d.ts.map +1 -0
  59. package/dist/src/flowchart/values.js +216 -0
  60. package/dist/src/flowchart/values.js.map +1 -0
  61. package/dist/src/flowchart/window.d.ts +521 -0
  62. package/dist/src/flowchart/window.d.ts.map +1 -0
  63. package/dist/src/flowchart/window.js +69 -0
  64. package/dist/src/flowchart/window.js.map +1 -0
  65. package/dist/src/index.d.ts +25 -1
  66. package/dist/src/index.d.ts.map +1 -1
  67. package/dist/src/index.js +48 -1
  68. package/dist/src/index.js.map +1 -1
  69. package/dist/src/internal.d.ts +35 -3
  70. package/dist/src/internal.d.ts.map +1 -1
  71. package/dist/src/internal.js +72 -3
  72. package/dist/src/internal.js.map +1 -1
  73. package/dist/src/plan/assemble.d.ts +2224 -0
  74. package/dist/src/plan/assemble.d.ts.map +1 -0
  75. package/dist/src/plan/assemble.js +210 -0
  76. package/dist/src/plan/assemble.js.map +1 -0
  77. package/dist/src/plan/builders.d.ts +790 -0
  78. package/dist/src/plan/builders.d.ts.map +1 -0
  79. package/dist/src/plan/builders.js +749 -0
  80. package/dist/src/plan/builders.js.map +1 -0
  81. package/dist/src/plan/event-rows.d.ts +2565 -0
  82. package/dist/src/plan/event-rows.d.ts.map +1 -0
  83. package/dist/src/plan/event-rows.js +689 -0
  84. package/dist/src/plan/event-rows.js.map +1 -0
  85. package/dist/src/plan/factories.d.ts +458 -0
  86. package/dist/src/plan/factories.d.ts.map +1 -0
  87. package/dist/src/plan/factories.js +484 -0
  88. package/dist/src/plan/factories.js.map +1 -0
  89. package/dist/src/plan/index.d.ts +672 -0
  90. package/dist/src/plan/index.d.ts.map +1 -0
  91. package/dist/src/plan/index.js +532 -0
  92. package/dist/src/plan/index.js.map +1 -0
  93. package/dist/src/plan/ir.d.ts +2594 -0
  94. package/dist/src/plan/ir.d.ts.map +1 -0
  95. package/dist/src/plan/ir.js +78 -0
  96. package/dist/src/plan/ir.js.map +1 -0
  97. package/dist/src/plan/library.d.ts +772 -0
  98. package/dist/src/plan/library.d.ts.map +1 -0
  99. package/dist/src/plan/library.js +424 -0
  100. package/dist/src/plan/library.js.map +1 -0
  101. package/dist/src/plan/ordered-source.d.ts +27 -0
  102. package/dist/src/plan/ordered-source.d.ts.map +1 -0
  103. package/dist/src/plan/ordered-source.js +48 -0
  104. package/dist/src/plan/ordered-source.js.map +1 -0
  105. package/dist/src/plan/over.d.ts +247 -0
  106. package/dist/src/plan/over.d.ts.map +1 -0
  107. package/dist/src/plan/over.js +266 -0
  108. package/dist/src/plan/over.js.map +1 -0
  109. package/dist/src/plan/pick.d.ts +78 -0
  110. package/dist/src/plan/pick.d.ts.map +1 -0
  111. package/dist/src/plan/pick.js +146 -0
  112. package/dist/src/plan/pick.js.map +1 -0
  113. package/dist/src/plan/plan.d.ts +11611 -0
  114. package/dist/src/plan/plan.d.ts.map +1 -0
  115. package/dist/src/plan/plan.js +428 -0
  116. package/dist/src/plan/plan.js.map +1 -0
  117. package/dist/src/plan/refs.d.ts +218 -0
  118. package/dist/src/plan/refs.d.ts.map +1 -0
  119. package/dist/src/plan/refs.js +226 -0
  120. package/dist/src/plan/refs.js.map +1 -0
  121. package/dist/src/plan/root.d.ts +290 -0
  122. package/dist/src/plan/root.d.ts.map +1 -0
  123. package/dist/src/plan/root.js +463 -0
  124. package/dist/src/plan/root.js.map +1 -0
  125. package/dist/src/plan/series.d.ts +13554 -0
  126. package/dist/src/plan/series.d.ts.map +1 -0
  127. package/dist/src/plan/series.js +1921 -0
  128. package/dist/src/plan/series.js.map +1 -0
  129. package/dist/src/plan/types.d.ts +12400 -0
  130. package/dist/src/plan/types.d.ts.map +1 -0
  131. package/dist/src/plan/types.js +1335 -0
  132. package/dist/src/plan/types.js.map +1 -0
  133. package/dist/src/roster/coverage.d.ts +240 -0
  134. package/dist/src/roster/coverage.d.ts.map +1 -0
  135. package/dist/src/roster/coverage.js +109 -0
  136. package/dist/src/roster/coverage.js.map +1 -0
  137. package/dist/src/roster/index.d.ts +4028 -0
  138. package/dist/src/roster/index.d.ts.map +1 -0
  139. package/dist/src/roster/index.js +115 -0
  140. package/dist/src/roster/index.js.map +1 -0
  141. package/dist/src/roster/library.d.ts +106 -0
  142. package/dist/src/roster/library.d.ts.map +1 -0
  143. package/dist/src/roster/library.js +78 -0
  144. package/dist/src/roster/library.js.map +1 -0
  145. package/dist/src/roster/people.d.ts +50 -0
  146. package/dist/src/roster/people.d.ts.map +1 -0
  147. package/dist/src/roster/people.js +32 -0
  148. package/dist/src/roster/people.js.map +1 -0
  149. package/dist/src/roster/rules.d.ts +275 -0
  150. package/dist/src/roster/rules.d.ts.map +1 -0
  151. package/dist/src/roster/rules.js +162 -0
  152. package/dist/src/roster/rules.js.map +1 -0
  153. package/dist/src/roster/types.d.ts +672 -0
  154. package/dist/src/roster/types.d.ts.map +1 -0
  155. package/dist/src/roster/types.js +248 -0
  156. package/dist/src/roster/types.js.map +1 -0
  157. package/dist/src/roster/visibility.d.ts +66 -0
  158. package/dist/src/roster/visibility.d.ts.map +1 -0
  159. package/dist/src/roster/visibility.js +25 -0
  160. package/dist/src/roster/visibility.js.map +1 -0
  161. package/dist/src/schedule/days.d.ts +54 -0
  162. package/dist/src/schedule/days.d.ts.map +1 -0
  163. package/dist/src/schedule/days.js +68 -0
  164. package/dist/src/schedule/days.js.map +1 -0
  165. package/dist/src/schedule/events.d.ts +433 -0
  166. package/dist/src/schedule/events.d.ts.map +1 -0
  167. package/dist/src/schedule/events.js +851 -0
  168. package/dist/src/schedule/events.js.map +1 -0
  169. package/dist/src/schedule/index.d.ts +150 -0
  170. package/dist/src/schedule/index.d.ts.map +1 -0
  171. package/dist/src/schedule/index.js +132 -0
  172. package/dist/src/schedule/index.js.map +1 -0
  173. package/dist/src/schedule/library.d.ts +70 -0
  174. package/dist/src/schedule/library.d.ts.map +1 -0
  175. package/dist/src/schedule/library.js +102 -0
  176. package/dist/src/schedule/library.js.map +1 -0
  177. package/dist/src/schedule/patch.d.ts +74 -0
  178. package/dist/src/schedule/patch.d.ts.map +1 -0
  179. package/dist/src/schedule/patch.js +68 -0
  180. package/dist/src/schedule/patch.js.map +1 -0
  181. package/dist/src/schedule/record-window.d.ts +189 -0
  182. package/dist/src/schedule/record-window.d.ts.map +1 -0
  183. package/dist/src/schedule/record-window.js +95 -0
  184. package/dist/src/schedule/record-window.js.map +1 -0
  185. package/dist/src/schedule/resources.d.ts +165 -0
  186. package/dist/src/schedule/resources.d.ts.map +1 -0
  187. package/dist/src/schedule/resources.js +234 -0
  188. package/dist/src/schedule/resources.js.map +1 -0
  189. package/dist/src/schedule/templates.d.ts +47 -0
  190. package/dist/src/schedule/templates.d.ts.map +1 -0
  191. package/dist/src/schedule/templates.js +61 -0
  192. package/dist/src/schedule/templates.js.map +1 -0
  193. package/dist/src/schedule/types.d.ts +1677 -0
  194. package/dist/src/schedule/types.d.ts.map +1 -0
  195. package/dist/src/schedule/types.js +374 -0
  196. package/dist/src/schedule/types.js.map +1 -0
  197. package/dist/src/schedule/window.d.ts +154 -0
  198. package/dist/src/schedule/window.d.ts.map +1 -0
  199. package/dist/src/schedule/window.js +363 -0
  200. package/dist/src/schedule/window.js.map +1 -0
  201. package/dist/src/sheet/bridge.d.ts +385 -0
  202. package/dist/src/sheet/bridge.d.ts.map +1 -0
  203. package/dist/src/sheet/bridge.js +809 -0
  204. package/dist/src/sheet/bridge.js.map +1 -0
  205. package/dist/src/sheet/columns.d.ts +410 -0
  206. package/dist/src/sheet/columns.d.ts.map +1 -0
  207. package/dist/src/sheet/columns.js +99 -0
  208. package/dist/src/sheet/columns.js.map +1 -0
  209. package/dist/src/sheet/context-bridge.d.ts +48 -0
  210. package/dist/src/sheet/context-bridge.d.ts.map +1 -0
  211. package/dist/src/sheet/context-bridge.js +216 -0
  212. package/dist/src/sheet/context-bridge.js.map +1 -0
  213. package/dist/src/sheet/draft-bridge.d.ts +37 -0
  214. package/dist/src/sheet/draft-bridge.d.ts.map +1 -0
  215. package/dist/src/sheet/draft-bridge.js +153 -0
  216. package/dist/src/sheet/draft-bridge.js.map +1 -0
  217. package/dist/src/sheet/drafts.d.ts +14 -0
  218. package/dist/src/sheet/drafts.d.ts.map +1 -0
  219. package/dist/src/sheet/drafts.js +14 -0
  220. package/dist/src/sheet/drafts.js.map +1 -0
  221. package/dist/src/sheet/editing-bridge.d.ts +40 -0
  222. package/dist/src/sheet/editing-bridge.d.ts.map +1 -0
  223. package/dist/src/sheet/editing-bridge.js +231 -0
  224. package/dist/src/sheet/editing-bridge.js.map +1 -0
  225. package/dist/src/sheet/editing-types.d.ts +268 -0
  226. package/dist/src/sheet/editing-types.d.ts.map +1 -0
  227. package/dist/src/sheet/editing-types.js +34 -0
  228. package/dist/src/sheet/editing-types.js.map +1 -0
  229. package/dist/src/sheet/edits.d.ts +37 -0
  230. package/dist/src/sheet/edits.d.ts.map +1 -0
  231. package/dist/src/sheet/edits.js +31 -0
  232. package/dist/src/sheet/edits.js.map +1 -0
  233. package/dist/src/sheet/fields.d.ts +693 -0
  234. package/dist/src/sheet/fields.d.ts.map +1 -0
  235. package/dist/src/sheet/fields.js +280 -0
  236. package/dist/src/sheet/fields.js.map +1 -0
  237. package/dist/src/sheet/group.d.ts +165 -0
  238. package/dist/src/sheet/group.d.ts.map +1 -0
  239. package/dist/src/sheet/group.js +52 -0
  240. package/dist/src/sheet/group.js.map +1 -0
  241. package/dist/src/sheet/index.d.ts +542 -0
  242. package/dist/src/sheet/index.d.ts.map +1 -0
  243. package/dist/src/sheet/index.js +387 -0
  244. package/dist/src/sheet/index.js.map +1 -0
  245. package/dist/src/sheet/library.d.ts +284 -0
  246. package/dist/src/sheet/library.d.ts.map +1 -0
  247. package/dist/src/sheet/library.js +259 -0
  248. package/dist/src/sheet/library.js.map +1 -0
  249. package/dist/src/sheet/link.d.ts +398 -0
  250. package/dist/src/sheet/link.d.ts.map +1 -0
  251. package/dist/src/sheet/link.js +228 -0
  252. package/dist/src/sheet/link.js.map +1 -0
  253. package/dist/src/sheet/record.d.ts +75 -0
  254. package/dist/src/sheet/record.d.ts.map +1 -0
  255. package/dist/src/sheet/record.js +128 -0
  256. package/dist/src/sheet/record.js.map +1 -0
  257. package/dist/src/sheet/registers.d.ts +681 -0
  258. package/dist/src/sheet/registers.d.ts.map +1 -0
  259. package/dist/src/sheet/registers.js +671 -0
  260. package/dist/src/sheet/registers.js.map +1 -0
  261. package/dist/src/sheet/root.d.ts +329 -0
  262. package/dist/src/sheet/root.d.ts.map +1 -0
  263. package/dist/src/sheet/root.js +511 -0
  264. package/dist/src/sheet/root.js.map +1 -0
  265. package/dist/src/sheet/seed-bridge.d.ts +14 -0
  266. package/dist/src/sheet/seed-bridge.d.ts.map +1 -0
  267. package/dist/src/sheet/seed-bridge.js +51 -0
  268. package/dist/src/sheet/seed-bridge.js.map +1 -0
  269. package/dist/src/sheet/sheet.d.ts +11819 -0
  270. package/dist/src/sheet/sheet.d.ts.map +1 -0
  271. package/dist/src/sheet/sheet.js +236 -0
  272. package/dist/src/sheet/sheet.js.map +1 -0
  273. package/dist/src/sheet/sub-rows.d.ts +299 -0
  274. package/dist/src/sheet/sub-rows.d.ts.map +1 -0
  275. package/dist/src/sheet/sub-rows.js +272 -0
  276. package/dist/src/sheet/sub-rows.js.map +1 -0
  277. package/dist/src/sheet/templates.d.ts +161 -0
  278. package/dist/src/sheet/templates.d.ts.map +1 -0
  279. package/dist/src/sheet/templates.js +122 -0
  280. package/dist/src/sheet/templates.js.map +1 -0
  281. package/dist/src/sheet/transactions.d.ts +76 -0
  282. package/dist/src/sheet/transactions.d.ts.map +1 -0
  283. package/dist/src/sheet/transactions.js +40 -0
  284. package/dist/src/sheet/transactions.js.map +1 -0
  285. package/dist/src/sheet/types.d.ts +15226 -0
  286. package/dist/src/sheet/types.d.ts.map +1 -0
  287. package/dist/src/sheet/types.js +1070 -0
  288. package/dist/src/sheet/types.js.map +1 -0
  289. package/dist/src/sheet/views.d.ts +29 -0
  290. package/dist/src/sheet/views.d.ts.map +1 -0
  291. package/dist/src/sheet/views.js +43 -0
  292. package/dist/src/sheet/views.js.map +1 -0
  293. package/dist/src/studio/component.d.ts.map +1 -1
  294. package/dist/src/studio/component.js +11 -8
  295. package/dist/src/studio/component.js.map +1 -1
  296. package/dist/src/utils/derive.d.ts +134 -8
  297. package/dist/src/utils/derive.d.ts.map +1 -1
  298. package/dist/src/utils/derive.js +409 -7
  299. package/dist/src/utils/derive.js.map +1 -1
  300. package/dist/src/utils/ordered-source.d.ts +38 -0
  301. package/dist/src/utils/ordered-source.d.ts.map +1 -0
  302. package/dist/src/utils/ordered-source.js +45 -0
  303. package/dist/src/utils/ordered-source.js.map +1 -0
  304. package/dist/src/utils/row-inspector.d.ts +36 -0
  305. package/dist/src/utils/row-inspector.d.ts.map +1 -0
  306. package/dist/src/utils/row-inspector.js +49 -0
  307. package/dist/src/utils/row-inspector.js.map +1 -0
  308. package/dist/test/bind/data/data.examples.d.ts +21 -19
  309. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  310. package/dist/test/bind/data/data.examples.js +122 -122
  311. package/dist/test/bind/data/data.examples.js.map +1 -1
  312. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  313. package/dist/test/bind/record/record.examples.js +9 -9
  314. package/dist/test/bind/record/record.examples.js.map +1 -1
  315. package/dist/test/calendar/calendar-records.examples.d.ts +228 -0
  316. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -0
  317. package/dist/test/calendar/calendar-records.examples.js +91 -0
  318. package/dist/test/calendar/calendar-records.examples.js.map +1 -0
  319. package/dist/test/calendar/calendar.examples.d.ts +776 -0
  320. package/dist/test/calendar/calendar.examples.d.ts.map +1 -0
  321. package/dist/test/calendar/calendar.examples.js +336 -0
  322. package/dist/test/calendar/calendar.examples.js.map +1 -0
  323. package/dist/test/decision/journal.examples.d.ts +28 -28
  324. package/dist/test/decision/journal.examples.d.ts.map +1 -1
  325. package/dist/test/decision/journal.examples.js +4 -4
  326. package/dist/test/decision/journal.examples.js.map +1 -1
  327. package/dist/test/decision/queue.examples.d.ts.map +1 -1
  328. package/dist/test/decision/queue.examples.js +5 -7
  329. package/dist/test/decision/queue.examples.js.map +1 -1
  330. package/dist/test/flowchart/flowchart.examples.d.ts +3713 -0
  331. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -0
  332. package/dist/test/flowchart/flowchart.examples.js +465 -0
  333. package/dist/test/flowchart/flowchart.examples.js.map +1 -0
  334. package/dist/test/plan/plan-events.examples.d.ts +3666 -0
  335. package/dist/test/plan/plan-events.examples.d.ts.map +1 -0
  336. package/dist/test/plan/plan-events.examples.js +773 -0
  337. package/dist/test/plan/plan-events.examples.js.map +1 -0
  338. package/dist/test/plan/plan-records.examples.d.ts +3 -0
  339. package/dist/test/plan/plan-records.examples.d.ts.map +1 -0
  340. package/dist/test/plan/plan-records.examples.js +45 -0
  341. package/dist/test/plan/plan-records.examples.js.map +1 -0
  342. package/dist/test/plan/plan-windows.examples.d.ts +588 -0
  343. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -0
  344. package/dist/test/plan/plan-windows.examples.js +170 -0
  345. package/dist/test/plan/plan-windows.examples.js.map +1 -0
  346. package/dist/test/plan/plan.examples.d.ts +8095 -0
  347. package/dist/test/plan/plan.examples.d.ts.map +1 -0
  348. package/dist/test/plan/plan.examples.js +2500 -0
  349. package/dist/test/plan/plan.examples.js.map +1 -0
  350. package/dist/test/roster/domain.examples.d.ts +367 -0
  351. package/dist/test/roster/domain.examples.d.ts.map +1 -0
  352. package/dist/test/roster/domain.examples.js +72 -0
  353. package/dist/test/roster/domain.examples.js.map +1 -0
  354. package/dist/test/roster/roster-records.examples.d.ts +729 -0
  355. package/dist/test/roster/roster-records.examples.d.ts.map +1 -0
  356. package/dist/test/roster/roster-records.examples.js +86 -0
  357. package/dist/test/roster/roster-records.examples.js.map +1 -0
  358. package/dist/test/roster/roster.examples.d.ts +750 -0
  359. package/dist/test/roster/roster.examples.d.ts.map +1 -0
  360. package/dist/test/roster/roster.examples.js +198 -0
  361. package/dist/test/roster/roster.examples.js.map +1 -0
  362. package/dist/test/roster/warehouse.d.ts +87 -0
  363. package/dist/test/roster/warehouse.d.ts.map +1 -0
  364. package/dist/test/roster/warehouse.js +883 -0
  365. package/dist/test/roster/warehouse.js.map +1 -0
  366. package/dist/test/sheet/sheet-link.examples.d.ts +7 -0
  367. package/dist/test/sheet/sheet-link.examples.d.ts.map +1 -0
  368. package/dist/test/sheet/sheet-link.examples.js +41 -0
  369. package/dist/test/sheet/sheet-link.examples.js.map +1 -0
  370. package/dist/test/sheet/sheet-records.examples.d.ts +421 -0
  371. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -0
  372. package/dist/test/sheet/sheet-records.examples.js +79 -0
  373. package/dist/test/sheet/sheet-records.examples.js.map +1 -0
  374. package/dist/test/sheet/sheet-transactions.examples.d.ts +7 -0
  375. package/dist/test/sheet/sheet-transactions.examples.d.ts.map +1 -0
  376. package/dist/test/sheet/sheet-transactions.examples.js +58 -0
  377. package/dist/test/sheet/sheet-transactions.examples.js.map +1 -0
  378. package/dist/test/sheet/sheet.examples.d.ts +5562 -0
  379. package/dist/test/sheet/sheet.examples.d.ts.map +1 -0
  380. package/dist/test/sheet/sheet.examples.js +1178 -0
  381. package/dist/test/sheet/sheet.examples.js.map +1 -0
  382. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  383. package/dist/test/studio/studio.examples.js +11 -11
  384. package/dist/test/studio/studio.examples.js.map +1 -1
  385. package/package.json +12 -9
@@ -0,0 +1,49 @@
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
+ * An author's own UI for one row in an inspector, on the wire: the Sheet's
7
+ * own Details (SB58, #1188) and a Plan event kind's own inspector (PB60,
8
+ * #1197). The author writes a typed East function over the row and a writer
9
+ * of the edited row; it crosses to the renderer wrapped over bytes, so a
10
+ * payload is one type whatever the rows hold.
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ import { BlobType, East, Expr, FunctionType, NullType, isTypeEqual, } from "@elaraai/east";
15
+ import { UIComponentType } from "@elaraai/east-ui";
16
+ /**
17
+ * An author's own UI for one row, on the wire: the row as bytes, and the
18
+ * writer that takes the edited row back as bytes, to what the inspector shows
19
+ * in place of its form.
20
+ */
21
+ export const RowInspectorType = FunctionType([BlobType, FunctionType([BlobType], NullType)], UIComponentType);
22
+ /**
23
+ * Checks an author's `(row, update) => UIComponentType` against the row type,
24
+ * then wraps it so the row and the edited row cross as bytes. The author's
25
+ * function is captured as it is and called only where the renderer draws it,
26
+ * never here.
27
+ *
28
+ * @param fn - The author's function
29
+ * @param rowType - The row type
30
+ * @param refusal - What a function of another type is refused with, naming the option
31
+ * @returns The wrapped function
32
+ * @throws {Error} With `refusal` when the function is not `(Row, (Row) => Null) => UIComponentType`
33
+ */
34
+ export function rowInspector(fn, rowType, refusal) {
35
+ const update = FunctionType([rowType], NullType);
36
+ const author = East.value(fn);
37
+ const t = Expr.type(author);
38
+ const fits = t.type === "Function" && t.inputs?.length === 2 && isTypeEqual(t.inputs[0], rowType) && isTypeEqual(t.inputs[1], update)
39
+ && t.output !== undefined && isTypeEqual(t.output, UIComponentType);
40
+ if (!fits)
41
+ throw new Error(refusal);
42
+ return East.function([BlobType, FunctionType([BlobType], NullType)], UIComponentType, ($, bytes, write) => {
43
+ const draw = $.const(author);
44
+ const row = $.const(bytes.decodeBeast(rowType, "v2"));
45
+ const typed = $.const(East.function([rowType], NullType, ($2, edited) => { $2(write(East.Blob.encodeBeast(edited, "v2"))); }));
46
+ return draw(row, typed);
47
+ });
48
+ }
49
+ //# sourceMappingURL=row-inspector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-inspector.js","sourceRoot":"","sources":["../../../src/utils/row-inspector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EACH,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,GAE5D,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AAK9G;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,YAAY,CAAC,EAAW,EAAE,OAAmB,EAAE,OAAe;IAC1E,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAsC,CAA2B,CAAC;IAC5F,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAyB,CAA6D,CAAC;IAC3G,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,OAAO,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC;WAChI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxE,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACtG,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,MAAgH,CAAC,CAAC;QACvI,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/H,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -16,8 +16,8 @@ export declare const thresholdPatchInput: e3.DatasetDef<import("@elaraai/east").
16
16
  export declare const countInput: e3.DatasetDef<IntegerType, [variant<"field", "inputs">, variant<"field", "count">]>;
17
17
  export declare const nameInput: e3.DatasetDef<StringType, [variant<"field", "inputs">, variant<"field", "name">]>;
18
18
  /**
19
- * The RAW ops row — deliberately FLAT and scalar: a batch code, the job's
20
- * window as a start week + a duration, its tonnage, a utilisation reading, and
19
+ * The RAW ops row — deliberately FLAT and scalar: a job ticket, the job's
20
+ * window as a start week + a duration, its sheets, a utilisation reading, and
21
21
  * the lifecycle state. No dates, no display strings.
22
22
  *
23
23
  * Everything the canvas shows — the run bars, their labels, quantities, the
@@ -27,12 +27,12 @@ export declare const nameInput: e3.DatasetDef<StringType, [variant<"field", "inp
27
27
  * the series.
28
28
  */
29
29
  export declare const OpsRow: StructType<{
30
- readonly batch: StringType;
30
+ readonly ticket: StringType;
31
31
  /** ISO week the job starts (2026); the series turns it into an instant. */
32
32
  readonly startWeek: IntegerType;
33
33
  /** Duration in weeks. */
34
34
  readonly weeks: IntegerType;
35
- readonly tonnes: FloatType;
35
+ readonly sheets: FloatType;
36
36
  /** % utilisation, which the load series expands into a weekly strip. */
37
37
  readonly load: FloatType;
38
38
  readonly state: import("@elaraai/east").VariantType<{
@@ -48,14 +48,14 @@ export declare const OpsRow: StructType<{
48
48
  readonly rejected: NullType;
49
49
  }>;
50
50
  }>;
51
- /** One line's machines (or the dock's berths), keyed by id. */
52
- export declare const OpsLine: DictType<StringType, StructType<{
53
- readonly batch: StringType;
51
+ /** One hall's presses (or the delivery vans), keyed by id. */
52
+ export declare const OpsHall: DictType<StringType, StructType<{
53
+ readonly ticket: StringType;
54
54
  /** ISO week the job starts (2026); the series turns it into an instant. */
55
55
  readonly startWeek: IntegerType;
56
56
  /** Duration in weeks. */
57
57
  readonly weeks: IntegerType;
58
- readonly tonnes: FloatType;
58
+ readonly sheets: FloatType;
59
59
  /** % utilisation, which the load series expands into a weekly strip. */
60
60
  readonly load: FloatType;
61
61
  readonly state: import("@elaraai/east").VariantType<{
@@ -74,10 +74,10 @@ export declare const OpsLine: DictType<StringType, StructType<{
74
74
  /**
75
75
  * The seeded ops schedule — an `e3.input`'s default IS the dataset's initial
76
76
  * value, so this is what a freshly-deployed workspace (and the offline
77
- * snapshot harness) serves windows out of. Fifty machines across five
78
- * production lines plus a dock's ten berths.
77
+ * snapshot harness) serves windows out of. Fifty presses across five
78
+ * halls plus ten delivery vans.
79
79
  *
80
- * GROUPED by line, as the dataflow that produces it would store it: a canvas
80
+ * GROUPED by hall, as the dataflow that produces it would store it: a canvas
81
81
  * nests what its data nests, and a paged source is grouped where it is made —
82
82
  * in an e3 task — never on the canvas one window at a time (#822).
83
83
  *
@@ -86,12 +86,12 @@ export declare const OpsLine: DictType<StringType, StructType<{
86
86
  * estimated ahead of it.
87
87
  */
88
88
  export declare const opsInput: e3.DatasetDef<DictType<StringType, DictType<StringType, StructType<{
89
- readonly batch: StringType;
89
+ readonly ticket: StringType;
90
90
  /** ISO week the job starts (2026); the series turns it into an instant. */
91
91
  readonly startWeek: IntegerType;
92
92
  /** Duration in weeks. */
93
93
  readonly weeks: IntegerType;
94
- readonly tonnes: FloatType;
94
+ readonly sheets: FloatType;
95
95
  /** % utilisation, which the load series expands into a weekly strip. */
96
96
  readonly load: FloatType;
97
97
  readonly state: import("@elaraai/east").VariantType<{
@@ -156,7 +156,9 @@ export declare const workQueue: e3.RecordIndexDef<"by_status", DictType<StringTy
156
156
  }>>, StructType<{
157
157
  readonly status: StringType;
158
158
  readonly due: DateTimeType;
159
- }>, StringType>;
159
+ }>, StringType, undefined> & {
160
+ interval: undefined;
161
+ };
160
162
  export declare const dataBindFloat: import("@elaraai/east").ExampleDef<[], any>;
161
163
  export declare const dataBindVariants: import("@elaraai/east").ExampleDef<[], any>;
162
164
  export declare const dataBindStagedFloat: import("@elaraai/east").ExampleDef<[], any>;
@@ -171,27 +173,27 @@ export declare const dataBindPagedIndex: import("@elaraai/east").ExampleDef<[],
171
173
  * into the package.
172
174
  */
173
175
  export declare const unitCountInput: e3.DatasetDef<IntegerType, [variant<"field", "inputs">, variant<"field", "unit_count">]>;
174
- /** A generated unit: the weeks it runs, and what it weighs. */
176
+ /** A generated unit: the weeks it runs, and how many sheets it prints. */
175
177
  export declare const UnitRow: StructType<{
176
178
  readonly start: DateTimeType;
177
179
  readonly end: DateTimeType;
178
- readonly tonnes: FloatType;
180
+ readonly sheets: FloatType;
179
181
  }>;
180
182
  /**
181
183
  * The units, generated from their count — keyed `U10000`, `U10001`, …: fixed
182
184
  * width, so key order is build order. Each runs two weeks, from one of ten
183
- * consecutive weeks starting at W27, and weighs 40 to 119 t.
185
+ * consecutive weeks starting at W27, and prints 40 to 119 k sheets.
184
186
  */
185
187
  export declare const generateUnits: import("@elaraai/east").CallableFunctionExpr<[IntegerType], DictType<StringType, StructType<{
186
188
  readonly start: DateTimeType;
187
189
  readonly end: DateTimeType;
188
- readonly tonnes: FloatType;
190
+ readonly sheets: FloatType;
189
191
  }>>>;
190
192
  /** The task that generates the units — its output is the dataset the canvas pages. */
191
193
  export declare const unitsTask: e3.TaskDef<DictType<StringType, StructType<{
192
194
  readonly start: DateTimeType;
193
195
  readonly end: DateTimeType;
194
- readonly tonnes: FloatType;
196
+ readonly sheets: FloatType;
195
197
  }>>, [variant<"field", "tasks">, variant<"field", "units">, variant<"field", "output">]>;
196
198
  export declare const dataBindPagedBlocks: import("@elaraai/east").ExampleDef<[], any>;
197
199
  /** A bill-of-materials part — an assembly holds its parts (#954). `cost` is the
@@ -1 +1 @@
1
- {"version":3,"file":"data.examples.d.ts","sourceRoot":"","sources":["../../../../test/bind/data/data.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAgB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAa,UAAU,EAAc,OAAO,EAAW,MAAM,eAAe,CAAC;AAGpN,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,eAAO,MAAM,cAAc,uFAAsE,CAAC;AAClG,eAAO,MAAM,mBAAmB;;;;;;sEAAkG,CAAC;AACnI,eAAO,MAAM,UAAU,qFAAgE,CAAC;AACxF,eAAO,MAAM,SAAS,mFAAiE,CAAC;AAWxF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM;;IAEf,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;EAG1E,CAAC;AACH,+DAA+D;AAC/D,eAAO,MAAM,OAAO;;IAVhB,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;GAKzB,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ;;IA1BjB,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;4DAgGxE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;IAIrB;6DACyD;;;EAG3D,CAAC;AAEH,6EAA6E;AAC7E,eAAO,MAAM,YAAY;;;EAAwD,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;IAdnB;6DACyD;;;oEAgC1D,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;IAxClB;6DACyD;;;;;;eA0C3D,CAAC;AAEH,eAAO,MAAM,aAAa,6CAWxB,CAAC;AAEH,eAAO,MAAM,gBAAgB,6CAoD3B,CAAC;AAEH,eAAO,MAAM,mBAAmB,6CAW9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,6CA2CjC,CAAC;AAEH,eAAO,MAAM,iBAAiB,6CAiG5B,CAAC;AAEH,eAAO,MAAM,qBAAqB,6CAyBhC,CAAC;AAEH,eAAO,MAAM,kBAAkB,6CAmB7B,CAAC;AAOH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,0FAAgE,CAAC;AAE5F,+DAA+D;AAC/D,eAAO,MAAM,OAAO;;;;EAA4E,CAAC;AAEjG;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;IAWxB,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,SAAS;;;;wFAAoD,CAAC;AAE3E,eAAO,MAAM,mBAAmB,6CA+C9B,CAAC;AAIH;;uBAEuB;AACvB,eAAO,MAAM,OAAO;;;;;;GAMjB,CAAC;AAEJ;+CAC+C;AAC/C,eAAO,MAAM,QAAQ;;;;;;iEA4BlB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,6CA0B7B,CAAC;AAIH,4GAA4G;AAC5G,eAAO,MAAM,aAAa,yFAA6D,CAAC;AAExF,iEAAiE;AACjE,eAAO,MAAM,MAAM;;;;EAAgG,CAAC;AAEpH;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;IAWvB,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,QAAQ;;;;uFAAiD,CAAC;AAEvE,eAAO,MAAM,kBAAkB,6CA4B7B,CAAC"}
1
+ {"version":3,"file":"data.examples.d.ts","sourceRoot":"","sources":["../../../../test/bind/data/data.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAgB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAa,UAAU,EAAc,OAAO,EAAW,MAAM,eAAe,CAAC;AAGpN,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAElC,eAAO,MAAM,cAAc,uFAAsE,CAAC;AAClG,eAAO,MAAM,mBAAmB;;;;;;sEAAkG,CAAC;AACnI,eAAO,MAAM,UAAU,qFAAgE,CAAC;AACxF,eAAO,MAAM,SAAS,mFAAiE,CAAC;AAWxF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM;;IAEf,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;EAG1E,CAAC;AACH,8DAA8D;AAC9D,eAAO,MAAM,OAAO;;IAVhB,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;GAKzB,CAAC;AAEpD;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ;;IA1BjB,2EAA2E;;IAE3E,yBAAyB;;;IAGzB,wEAAwE;;;;;;;;;;;;;;4DAgGxE,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;IAIrB;6DACyD;;;EAG3D,CAAC;AAEH,6EAA6E;AAC7E,eAAO,MAAM,YAAY;;;EAAwD,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;IAdnB;6DACyD;;;oEAgC1D,CAAC;AAEJ;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;IAxClB;6DACyD;;;;;;;;CA0C3D,CAAC;AAEH,eAAO,MAAM,aAAa,6CAWxB,CAAC;AAEH,eAAO,MAAM,gBAAgB,6CAoD3B,CAAC;AAEH,eAAO,MAAM,mBAAmB,6CAW9B,CAAC;AAEH,eAAO,MAAM,sBAAsB,6CA2CjC,CAAC;AAEH,eAAO,MAAM,iBAAiB,6CAiG5B,CAAC;AAEH,eAAO,MAAM,qBAAqB,6CAyBhC,CAAC;AAEH,eAAO,MAAM,kBAAkB,6CAmB7B,CAAC;AAOH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,0FAAgE,CAAC;AAE5F,0EAA0E;AAC1E,eAAO,MAAM,OAAO;;;;EAA4E,CAAC;AAEjG;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;IAWxB,CAAC;AAEH,sFAAsF;AACtF,eAAO,MAAM,SAAS;;;;wFAAoD,CAAC;AAE3E,eAAO,MAAM,mBAAmB,6CA+C9B,CAAC;AAIH;;uBAEuB;AACvB,eAAO,MAAM,OAAO;;;;;;GAMjB,CAAC;AAEJ;+CAC+C;AAC/C,eAAO,MAAM,QAAQ;;;;;;iEA4BlB,CAAC;AAEJ,eAAO,MAAM,kBAAkB,6CA0B7B,CAAC;AAIH,4GAA4G;AAC5G,eAAO,MAAM,aAAa,yFAA6D,CAAC;AAExF,iEAAiE;AACjE,eAAO,MAAM,MAAM;;;;EAAgG,CAAC;AAEpH;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;IAWvB,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,QAAQ;;;;uFAAiD,CAAC;AAEvE,eAAO,MAAM,kBAAkB,6CA6B7B,CAAC"}
@@ -5,8 +5,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "@elaraai/e3-ui/jsx-runtime";
5
5
  */
6
6
  /** @jsxImportSource @elaraai/e3-ui */
7
7
  import { ArrayType, DateTimeType, DictType, East, FloatType, FunctionType, IntegerType, NullType, OptionType, RecursiveType, StringType, PatchType, StructType, none, some, variant, example } from "@elaraai/east";
8
- import { Button, EventStateType, Format, Input, Plan, Reactive, Separator, Sheet, Slider, Stat, Table, Text, UIComponentType, VStack } from "@elaraai/east-ui";
9
- import { Data } from "@elaraai/e3-ui";
8
+ import { Box, Button, EventStateType, Format, Input, Reactive, Separator, Slider, Stat, Table, Text, UIComponentType, VStack } from "@elaraai/east-ui";
9
+ import { Data, Plan, Sheet } from "@elaraai/e3-ui";
10
10
  import * as e3 from "@elaraai/e3";
11
11
  export const thresholdInput = e3.input('threshold', FloatType, variant('value', 50.0));
12
12
  export const thresholdPatchInput = e3.input('threshold_patch', PatchType(FloatType), variant('value', variant("unchanged", null)));
@@ -21,8 +21,8 @@ const CONFIRMED = variant("confirmed", null);
21
21
  const PROPOSED = variant("proposed", variant("recommended", null));
22
22
  const ESTIMATED = variant("estimated", null);
23
23
  /**
24
- * The RAW ops row — deliberately FLAT and scalar: a batch code, the job's
25
- * window as a start week + a duration, its tonnage, a utilisation reading, and
24
+ * The RAW ops row — deliberately FLAT and scalar: a job ticket, the job's
25
+ * window as a start week + a duration, its sheets, a utilisation reading, and
26
26
  * the lifecycle state. No dates, no display strings.
27
27
  *
28
28
  * Everything the canvas shows — the run bars, their labels, quantities, the
@@ -32,25 +32,25 @@ const ESTIMATED = variant("estimated", null);
32
32
  * the series.
33
33
  */
34
34
  export const OpsRow = StructType({
35
- batch: StringType,
35
+ ticket: StringType,
36
36
  /** ISO week the job starts (2026); the series turns it into an instant. */
37
37
  startWeek: IntegerType,
38
38
  /** Duration in weeks. */
39
39
  weeks: IntegerType,
40
- tonnes: FloatType,
40
+ sheets: FloatType,
41
41
  /** % utilisation, which the load series expands into a weekly strip. */
42
42
  load: FloatType,
43
43
  state: EventStateType,
44
44
  });
45
- /** One line's machines (or the dock's berths), keyed by id. */
46
- export const OpsLine = DictType(StringType, OpsRow);
45
+ /** One hall's presses (or the delivery vans), keyed by id. */
46
+ export const OpsHall = DictType(StringType, OpsRow);
47
47
  /**
48
48
  * The seeded ops schedule — an `e3.input`'s default IS the dataset's initial
49
49
  * value, so this is what a freshly-deployed workspace (and the offline
50
- * snapshot harness) serves windows out of. Fifty machines across five
51
- * production lines plus a dock's ten berths.
50
+ * snapshot harness) serves windows out of. Fifty presses across five
51
+ * halls plus ten delivery vans.
52
52
  *
53
- * GROUPED by line, as the dataflow that produces it would store it: a canvas
53
+ * GROUPED by hall, as the dataflow that produces it would store it: a canvas
54
54
  * nests what its data nests, and a paged source is grouped where it is made —
55
55
  * in an e3 task — never on the canvas one window at a time (#822).
56
56
  *
@@ -58,80 +58,80 @@ export const OpsLine = DictType(StringType, OpsRow);
58
58
  * observed at the back, in-progress across it, confirmed then proposed then
59
59
  * estimated ahead of it.
60
60
  */
61
- export const opsInput = e3.input('ops', DictType(StringType, OpsLine), variant('value', new Map([
62
- ["Line 1", new Map([
63
- ["L1-M01", { batch: "B-201", startWeek: 25n, weeks: 3n, tonnes: 96.0, load: 78.0, state: ACTUAL }],
64
- ["L1-M02", { batch: "B-204", startWeek: 26n, weeks: 2n, tonnes: 64.0, load: 71.0, state: ACTUAL }],
65
- ["L1-M03", { batch: "B-214", startWeek: 28n, weeks: 3n, tonnes: 112.0, load: 88.0, state: RUNNING }],
66
- ["L1-M04", { batch: "B-208", startWeek: 27n, weeks: 4n, tonnes: 104.0, load: 84.0, state: RUNNING }],
67
- ["L1-M05", { batch: "B-219", startWeek: 31n, weeks: 3n, tonnes: 88.0, load: 66.0, state: CONFIRMED }],
68
- ["L1-M06", { batch: "B-223", startWeek: 32n, weeks: 2n, tonnes: 72.0, load: 59.0, state: CONFIRMED }],
69
- ["L1-M07", { batch: "B-231", startWeek: 33n, weeks: 4n, tonnes: 120.0, load: 92.0, state: PROPOSED }],
70
- ["L1-M08", { batch: "B-236", startWeek: 35n, weeks: 3n, tonnes: 96.0, load: 74.0, state: PROPOSED }],
71
- ["L1-M09", { batch: "B-242", startWeek: 36n, weeks: 3n, tonnes: 80.0, load: 63.0, state: ESTIMATED }],
72
- ["L1-M10", { batch: "B-247", startWeek: 37n, weeks: 2n, tonnes: 56.0, load: 48.0, state: ESTIMATED }],
61
+ export const opsInput = e3.input('ops', DictType(StringType, OpsHall), variant('value', new Map([
62
+ ["Hall 1", new Map([
63
+ ["H1-P01", { ticket: "J-4603", startWeek: 25n, weeks: 3n, sheets: 96.0, load: 78.0, state: ACTUAL }],
64
+ ["H1-P02", { ticket: "J-4612", startWeek: 26n, weeks: 2n, sheets: 64.0, load: 71.0, state: ACTUAL }],
65
+ ["H1-P03", { ticket: "J-4642", startWeek: 28n, weeks: 3n, sheets: 112.0, load: 88.0, state: RUNNING }],
66
+ ["H1-P04", { ticket: "J-4624", startWeek: 27n, weeks: 4n, sheets: 104.0, load: 84.0, state: RUNNING }],
67
+ ["H1-P05", { ticket: "J-4657", startWeek: 31n, weeks: 3n, sheets: 88.0, load: 66.0, state: CONFIRMED }],
68
+ ["H1-P06", { ticket: "J-4669", startWeek: 32n, weeks: 2n, sheets: 72.0, load: 59.0, state: CONFIRMED }],
69
+ ["H1-P07", { ticket: "J-4693", startWeek: 33n, weeks: 4n, sheets: 120.0, load: 92.0, state: PROPOSED }],
70
+ ["H1-P08", { ticket: "J-4708", startWeek: 35n, weeks: 3n, sheets: 96.0, load: 74.0, state: PROPOSED }],
71
+ ["H1-P09", { ticket: "J-4726", startWeek: 36n, weeks: 3n, sheets: 80.0, load: 63.0, state: ESTIMATED }],
72
+ ["H1-P10", { ticket: "J-4741", startWeek: 37n, weeks: 2n, sheets: 56.0, load: 48.0, state: ESTIMATED }],
73
73
  ])],
74
- ["Line 2", new Map([
75
- ["L2-M01", { batch: "B-302", startWeek: 25n, weeks: 4n, tonnes: 118.0, load: 91.0, state: ACTUAL }],
76
- ["L2-M02", { batch: "B-307", startWeek: 27n, weeks: 2n, tonnes: 52.0, load: 55.0, state: ACTUAL }],
77
- ["L2-M03", { batch: "B-311", startWeek: 29n, weeks: 3n, tonnes: 92.0, load: 80.0, state: RUNNING }],
78
- ["L2-M04", { batch: "B-316", startWeek: 30n, weeks: 2n, tonnes: 68.0, load: 61.0, state: CONFIRMED }],
79
- ["L2-M05", { batch: "B-320", startWeek: 31n, weeks: 4n, tonnes: 128.0, load: 96.0, state: CONFIRMED }],
80
- ["L2-M06", { batch: "B-325", startWeek: 33n, weeks: 3n, tonnes: 84.0, load: 69.0, state: PROPOSED }],
81
- ["L2-M07", { batch: "B-329", startWeek: 34n, weeks: 2n, tonnes: 60.0, load: 52.0, state: PROPOSED }],
82
- ["L2-M08", { batch: "B-334", startWeek: 35n, weeks: 4n, tonnes: 112.0, load: 87.0, state: PROPOSED }],
83
- ["L2-M09", { batch: "B-338", startWeek: 37n, weeks: 3n, tonnes: 76.0, load: 64.0, state: ESTIMATED }],
84
- ["L2-M10", { batch: "B-343", startWeek: 38n, weeks: 2n, tonnes: 48.0, load: 44.0, state: ESTIMATED }],
74
+ ["Hall 2", new Map([
75
+ ["H2-P01", { ticket: "J-4906", startWeek: 25n, weeks: 4n, sheets: 118.0, load: 91.0, state: ACTUAL }],
76
+ ["H2-P02", { ticket: "J-4921", startWeek: 27n, weeks: 2n, sheets: 52.0, load: 55.0, state: ACTUAL }],
77
+ ["H2-P03", { ticket: "J-4933", startWeek: 29n, weeks: 3n, sheets: 92.0, load: 80.0, state: RUNNING }],
78
+ ["H2-P04", { ticket: "J-4948", startWeek: 30n, weeks: 2n, sheets: 68.0, load: 61.0, state: CONFIRMED }],
79
+ ["H2-P05", { ticket: "J-4960", startWeek: 31n, weeks: 4n, sheets: 128.0, load: 96.0, state: CONFIRMED }],
80
+ ["H2-P06", { ticket: "J-4975", startWeek: 33n, weeks: 3n, sheets: 84.0, load: 69.0, state: PROPOSED }],
81
+ ["H2-P07", { ticket: "J-4987", startWeek: 34n, weeks: 2n, sheets: 60.0, load: 52.0, state: PROPOSED }],
82
+ ["H2-P08", { ticket: "J-5002", startWeek: 35n, weeks: 4n, sheets: 112.0, load: 87.0, state: PROPOSED }],
83
+ ["H2-P09", { ticket: "J-5014", startWeek: 37n, weeks: 3n, sheets: 76.0, load: 64.0, state: ESTIMATED }],
84
+ ["H2-P10", { ticket: "J-5029", startWeek: 38n, weeks: 2n, sheets: 48.0, load: 44.0, state: ESTIMATED }],
85
85
  ])],
86
- ["Line 3", new Map([
87
- ["L3-M01", { batch: "B-401", startWeek: 24n, weeks: 3n, tonnes: 88.0, load: 73.0, state: ACTUAL }],
88
- ["L3-M02", { batch: "B-405", startWeek: 26n, weeks: 4n, tonnes: 124.0, load: 94.0, state: ACTUAL }],
89
- ["L3-M03", { batch: "B-410", startWeek: 29n, weeks: 2n, tonnes: 56.0, load: 51.0, state: RUNNING }],
90
- ["L3-M04", { batch: "B-414", startWeek: 30n, weeks: 3n, tonnes: 100.0, load: 82.0, state: RUNNING }],
91
- ["L3-M05", { batch: "B-419", startWeek: 32n, weeks: 2n, tonnes: 72.0, load: 62.0, state: CONFIRMED }],
92
- ["L3-M06", { batch: "B-424", startWeek: 33n, weeks: 4n, tonnes: 116.0, load: 90.0, state: CONFIRMED }],
93
- ["L3-M07", { batch: "B-428", startWeek: 35n, weeks: 3n, tonnes: 92.0, load: 76.0, state: PROPOSED }],
94
- ["L3-M08", { batch: "B-433", startWeek: 36n, weeks: 2n, tonnes: 64.0, load: 57.0, state: PROPOSED }],
95
- ["L3-M09", { batch: "B-437", startWeek: 37n, weeks: 4n, tonnes: 108.0, load: 85.0, state: ESTIMATED }],
96
- ["L3-M10", { batch: "B-441", startWeek: 39n, weeks: 2n, tonnes: 44.0, load: 41.0, state: ESTIMATED }],
86
+ ["Hall 3", new Map([
87
+ ["H3-P01", { ticket: "J-5203", startWeek: 24n, weeks: 3n, sheets: 88.0, load: 73.0, state: ACTUAL }],
88
+ ["H3-P02", { ticket: "J-5215", startWeek: 26n, weeks: 4n, sheets: 124.0, load: 94.0, state: ACTUAL }],
89
+ ["H3-P03", { ticket: "J-5230", startWeek: 29n, weeks: 2n, sheets: 56.0, load: 51.0, state: RUNNING }],
90
+ ["H3-P04", { ticket: "J-5242", startWeek: 30n, weeks: 3n, sheets: 100.0, load: 82.0, state: RUNNING }],
91
+ ["H3-P05", { ticket: "J-5257", startWeek: 32n, weeks: 2n, sheets: 72.0, load: 62.0, state: CONFIRMED }],
92
+ ["H3-P06", { ticket: "J-5272", startWeek: 33n, weeks: 4n, sheets: 116.0, load: 90.0, state: CONFIRMED }],
93
+ ["H3-P07", { ticket: "J-5284", startWeek: 35n, weeks: 3n, sheets: 92.0, load: 76.0, state: PROPOSED }],
94
+ ["H3-P08", { ticket: "J-5299", startWeek: 36n, weeks: 2n, sheets: 64.0, load: 57.0, state: PROPOSED }],
95
+ ["H3-P09", { ticket: "J-5311", startWeek: 37n, weeks: 4n, sheets: 108.0, load: 85.0, state: ESTIMATED }],
96
+ ["H3-P10", { ticket: "J-5323", startWeek: 39n, weeks: 2n, sheets: 44.0, load: 41.0, state: ESTIMATED }],
97
97
  ])],
98
- ["Line 4", new Map([
99
- ["L4-M01", { batch: "B-502", startWeek: 25n, weeks: 2n, tonnes: 60.0, load: 54.0, state: ACTUAL }],
100
- ["L4-M02", { batch: "B-506", startWeek: 27n, weeks: 3n, tonnes: 96.0, load: 79.0, state: ACTUAL }],
101
- ["L4-M03", { batch: "B-511", startWeek: 28n, weeks: 4n, tonnes: 132.0, load: 98.0, state: RUNNING }],
102
- ["L4-M04", { batch: "B-515", startWeek: 31n, weeks: 2n, tonnes: 68.0, load: 60.0, state: CONFIRMED }],
103
- ["L4-M05", { batch: "B-520", startWeek: 32n, weeks: 3n, tonnes: 104.0, load: 83.0, state: CONFIRMED }],
104
- ["L4-M06", { batch: "B-524", startWeek: 34n, weeks: 2n, tonnes: 76.0, load: 67.0, state: PROPOSED }],
105
- ["L4-M07", { batch: "B-529", startWeek: 35n, weeks: 4n, tonnes: 120.0, load: 93.0, state: PROPOSED }],
106
- ["L4-M08", { batch: "B-533", startWeek: 37n, weeks: 3n, tonnes: 84.0, load: 70.0, state: ESTIMATED }],
107
- ["L4-M09", { batch: "B-538", startWeek: 38n, weeks: 2n, tonnes: 52.0, load: 47.0, state: ESTIMATED }],
108
- ["L4-M10", { batch: "B-542", startWeek: 39n, weeks: 3n, tonnes: 88.0, load: 72.0, state: ESTIMATED }],
98
+ ["Hall 4", new Map([
99
+ ["H4-P01", { ticket: "J-5506", startWeek: 25n, weeks: 2n, sheets: 60.0, load: 54.0, state: ACTUAL }],
100
+ ["H4-P02", { ticket: "J-5518", startWeek: 27n, weeks: 3n, sheets: 96.0, load: 79.0, state: ACTUAL }],
101
+ ["H4-P03", { ticket: "J-5533", startWeek: 28n, weeks: 4n, sheets: 132.0, load: 98.0, state: RUNNING }],
102
+ ["H4-P04", { ticket: "J-5545", startWeek: 31n, weeks: 2n, sheets: 68.0, load: 60.0, state: CONFIRMED }],
103
+ ["H4-P05", { ticket: "J-5560", startWeek: 32n, weeks: 3n, sheets: 104.0, load: 83.0, state: CONFIRMED }],
104
+ ["H4-P06", { ticket: "J-5572", startWeek: 34n, weeks: 2n, sheets: 76.0, load: 67.0, state: PROPOSED }],
105
+ ["H4-P07", { ticket: "J-5587", startWeek: 35n, weeks: 4n, sheets: 120.0, load: 93.0, state: PROPOSED }],
106
+ ["H4-P08", { ticket: "J-5599", startWeek: 37n, weeks: 3n, sheets: 84.0, load: 70.0, state: ESTIMATED }],
107
+ ["H4-P09", { ticket: "J-5614", startWeek: 38n, weeks: 2n, sheets: 52.0, load: 47.0, state: ESTIMATED }],
108
+ ["H4-P10", { ticket: "J-5626", startWeek: 39n, weeks: 3n, sheets: 88.0, load: 72.0, state: ESTIMATED }],
109
109
  ])],
110
- ["Line 5", new Map([
111
- ["L5-M01", { batch: "B-601", startWeek: 24n, weeks: 4n, tonnes: 110.0, load: 86.0, state: ACTUAL }],
112
- ["L5-M02", { batch: "B-605", startWeek: 26n, weeks: 2n, tonnes: 58.0, load: 53.0, state: ACTUAL }],
113
- ["L5-M03", { batch: "B-609", startWeek: 28n, weeks: 3n, tonnes: 94.0, load: 77.0, state: RUNNING }],
114
- ["L5-M04", { batch: "B-613", startWeek: 30n, weeks: 4n, tonnes: 126.0, load: 95.0, state: RUNNING }],
115
- ["L5-M05", { batch: "B-618", startWeek: 32n, weeks: 2n, tonnes: 70.0, load: 61.0, state: CONFIRMED }],
116
- ["L5-M06", { batch: "B-622", startWeek: 33n, weeks: 3n, tonnes: 98.0, load: 81.0, state: CONFIRMED }],
117
- ["L5-M07", { batch: "B-627", startWeek: 35n, weeks: 2n, tonnes: 66.0, load: 58.0, state: PROPOSED }],
118
- ["L5-M08", { batch: "B-631", startWeek: 36n, weeks: 4n, tonnes: 114.0, load: 89.0, state: PROPOSED }],
119
- ["L5-M09", { batch: "B-636", startWeek: 38n, weeks: 3n, tonnes: 82.0, load: 68.0, state: ESTIMATED }],
120
- ["L5-M10", { batch: "B-640", startWeek: 39n, weeks: 2n, tonnes: 50.0, load: 45.0, state: ESTIMATED }],
110
+ ["Hall 5", new Map([
111
+ ["H5-P01", { ticket: "J-5803", startWeek: 24n, weeks: 4n, sheets: 110.0, load: 86.0, state: ACTUAL }],
112
+ ["H5-P02", { ticket: "J-5815", startWeek: 26n, weeks: 2n, sheets: 58.0, load: 53.0, state: ACTUAL }],
113
+ ["H5-P03", { ticket: "J-5827", startWeek: 28n, weeks: 3n, sheets: 94.0, load: 77.0, state: RUNNING }],
114
+ ["H5-P04", { ticket: "J-5839", startWeek: 30n, weeks: 4n, sheets: 126.0, load: 95.0, state: RUNNING }],
115
+ ["H5-P05", { ticket: "J-5854", startWeek: 32n, weeks: 2n, sheets: 70.0, load: 61.0, state: CONFIRMED }],
116
+ ["H5-P06", { ticket: "J-5866", startWeek: 33n, weeks: 3n, sheets: 98.0, load: 81.0, state: CONFIRMED }],
117
+ ["H5-P07", { ticket: "J-5881", startWeek: 35n, weeks: 2n, sheets: 66.0, load: 58.0, state: PROPOSED }],
118
+ ["H5-P08", { ticket: "J-5893", startWeek: 36n, weeks: 4n, sheets: 114.0, load: 89.0, state: PROPOSED }],
119
+ ["H5-P09", { ticket: "J-5908", startWeek: 38n, weeks: 3n, sheets: 82.0, load: 68.0, state: ESTIMATED }],
120
+ ["H5-P10", { ticket: "J-5920", startWeek: 39n, weeks: 2n, sheets: 50.0, load: 45.0, state: ESTIMATED }],
121
121
  ])],
122
- // The dock's berths — the same flat row, read as weekly load strips
123
- // rather than run bars (see the `docks` series below).
124
- ["Docks", new Map([
125
- ["D-01", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 46.0, state: CONFIRMED }],
126
- ["D-02", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 58.0, state: CONFIRMED }],
127
- ["D-03", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 67.0, state: CONFIRMED }],
128
- ["D-04", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 74.0, state: CONFIRMED }],
129
- ["D-05", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 81.0, state: CONFIRMED }],
130
- ["D-06", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 88.0, state: CONFIRMED }],
131
- ["D-07", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 93.0, state: CONFIRMED }],
132
- ["D-08", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 97.0, state: CONFIRMED }],
133
- ["D-09", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 64.0, state: CONFIRMED }],
134
- ["D-10", { batch: "—", startWeek: 27n, weeks: 12n, tonnes: 0.0, load: 52.0, state: CONFIRMED }],
122
+ // The delivery vans — the same flat row, read as weekly load strips
123
+ // rather than run bars (see the `vans` series below).
124
+ ["Vans", new Map([
125
+ ["V-01", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 46.0, state: CONFIRMED }],
126
+ ["V-02", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 58.0, state: CONFIRMED }],
127
+ ["V-03", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 67.0, state: CONFIRMED }],
128
+ ["V-04", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 74.0, state: CONFIRMED }],
129
+ ["V-05", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 81.0, state: CONFIRMED }],
130
+ ["V-06", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 88.0, state: CONFIRMED }],
131
+ ["V-07", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 93.0, state: CONFIRMED }],
132
+ ["V-08", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 97.0, state: CONFIRMED }],
133
+ ["V-09", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 64.0, state: CONFIRMED }],
134
+ ["V-10", { ticket: "—", startWeek: 27n, weeks: 12n, sheets: 0.0, load: 52.0, state: CONFIRMED }],
135
135
  ])],
136
136
  ])));
137
137
  /**
@@ -263,10 +263,10 @@ export const dataBindPagedPlan = example({
263
263
  "canvas", "series", "collection", "large", "dataset", "Reactive", "stream",
264
264
  "grouped", "children", "rollup", "group",
265
265
  ],
266
- description: "Bind a collection dataset BY WINDOW and hand it straight to a Plan — `Data.bindPaged(ops)` returns the paged handle, the row-source contract the canvas recognises by its East type, and the factory wraps `page` with the series' row-building functions so each window's rows become canvas rows client-side. The dataset is GROUPED by line where it is made (an e3 task), so the canvas nests what the data nests: a line's span row rolls up the union of its machines' runs, stepped down into with `Plan.children`, and the dock is one collapsed group strip over its berths. The stored rows are FLAT scalars (a start week, a duration, a tonnage, a load reading); the series expressions do the reading — week arithmetic turns indices into instants, one job becomes a setup bar plus its run, and `East.Array.generate` expands a single load figure into a twelve-week heat strip. The dataset is never fetched whole and nothing here touches bytes, offsets or beast2",
266
+ description: "Bind a collection dataset BY WINDOW and hand it straight to a Plan — `Data.bindPaged(ops)` returns the paged handle, the row-source contract the canvas recognises by its East type, and the factory wraps `page` with the series' row-building functions so each window's rows become canvas rows client-side. The dataset is GROUPED by hall where it is made (an e3 task), so the canvas nests what the data nests: a hall's span row rolls up the union of its presses' runs, stepped down into with `Plan.children`, and the vans are one collapsed group strip. The stored rows are FLAT scalars (a start week, a duration, a sheet count, a load reading); the series expressions do the reading — week arithmetic turns indices into instants, one job becomes a make-ready bar plus its run, and `East.Array.generate` expands a single load figure into a twelve-week heat strip. The dataset is never fetched whole and nothing here touches bytes, offsets or beast2",
267
267
  fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
268
268
  // The paged handle — the dataset's element type comes from the def,
269
- // so `page(offset, limit)` is typed Option<Dict<String, OpsLine>>
269
+ // so `page(offset, limit)` is typed Option<Dict<String, OpsHall>>
270
270
  // with no decode step to write.
271
271
  const paged = $.let(Data.bindPaged(opsInput));
272
272
  // Monday of ISO week n, 2026 (W1 Monday = 2025-12-29). The stored
@@ -276,56 +276,56 @@ export const dataBindPagedPlan = example({
276
276
  return w1.addWeeks(n.subtract(1n));
277
277
  }));
278
278
  const series = $.const([
279
- // Lines — one span row per line whose own runs are none: it
279
+ // Halls — one span row per hall whose own runs are none: it
280
280
  // DECLARES a union rollup, so its ×k concurrency bands are the
281
- // renderer's, over the machines stepped down into from the
282
- // line's own entry — exact in every window, since a line
283
- // arrives with all of its machines.
284
- Plan.series.span(OpsLine, {
285
- key: "lines", title: "Lines",
286
- match: (_l, line) => line.equal("Docks").not(),
287
- label: (_l, line) => line,
281
+ // renderer's, over the presses stepped down into from the
282
+ // hall's own entry — exact in every window, since a hall
283
+ // arrives with all of its presses.
284
+ Plan.series.span(OpsHall, {
285
+ key: "halls", title: "Halls",
286
+ match: (_h, hall) => hall.equal("Vans").not(),
287
+ label: (_h, hall) => hall,
288
288
  runs: _l => [],
289
289
  rollup: "union",
290
290
  children: Plan.children((l) => l, [
291
- // Machines — each flat row becomes TWO bars: a one-week
292
- // setup ahead of the job, then the run itself, with its
293
- // label and quantity built from the batch code and tonnage
294
- // (a quantity carries its unit — the line's bands sum by it).
291
+ // Presses — each flat row becomes TWO bars: a one-week
292
+ // make-ready ahead of the job, then the run itself, with its
293
+ // label and quantity built from the job ticket and sheets
294
+ // (a quantity carries its unit — the hall's bands sum by it).
295
295
  Plan.series.span(OpsRow, {
296
- key: "machines", title: "Machines",
296
+ key: "presses", title: "Presses",
297
297
  label: (_r, k) => k, id: true,
298
- value: r => some(East.str `${East.Float.printFixed(r.tonnes, 0n)} t`),
298
+ value: r => some(East.str `${East.Float.printFixed(r.sheets, 0n)} k sheets`),
299
299
  runs: r => [
300
300
  Plan.run({
301
- key: East.str `${r.batch}-set`,
301
+ key: East.str `${r.ticket}-mr`,
302
302
  start: week(r.startWeek.subtract(1n)), end: week(r.startWeek),
303
- label: "SET", state: r.state,
303
+ label: "MAKEREADY", state: r.state,
304
304
  }),
305
305
  Plan.run({
306
- key: r.batch,
306
+ key: r.ticket,
307
307
  start: week(r.startWeek), end: week(r.startWeek.add(r.weeks)),
308
- label: East.str `RUN · ${r.batch}`,
309
- quantity: Plan.quantity(r.tonnes, { unit: "t", format: Format.Number({ maximumFractionDigits: 0n }) }),
308
+ label: East.str `RUN · ${r.ticket}`,
309
+ quantity: Plan.quantity(r.sheets, { unit: "k sheets", format: Format.Number({ maximumFractionDigits: 0n }) }),
310
310
  state: r.state,
311
311
  }),
312
312
  ],
313
313
  }),
314
314
  ]),
315
315
  }),
316
- // Docks — one collapsed group strip, its mean derived from the
317
- // berths it nests: the SAME flat row read as a load strip, one
316
+ // Vans — one collapsed group strip, its mean derived from the
317
+ // vans it nests: the SAME flat row read as a load strip, one
318
318
  // scalar `load` expanded by `East.Array.generate` into a cell
319
- // per week, drifting with a per-berth phase so the strip reads
319
+ // per week, drifting with a per-van phase so the strip reads
320
320
  // as a real profile rather than a flat band.
321
- Plan.series.group(OpsLine, {
322
- key: "docks", title: "Docks",
323
- match: (_l, line) => line.equal("Docks"),
324
- label: (_l, line) => line,
321
+ Plan.series.group(OpsHall, {
322
+ key: "vans", title: "Vans",
323
+ match: (_h, hall) => hall.equal("Vans"),
324
+ label: (_h, hall) => hall,
325
325
  collapsed: true, summaryAggregate: "mean",
326
326
  children: Plan.children((l) => l, [
327
327
  Plan.series.heat(OpsRow, {
328
- key: "berths", title: "Berths",
328
+ key: "van-load", title: "Van load",
329
329
  label: (_r, k) => k, id: true,
330
330
  cells: r => Plan.heatCells(East.Array.generate(12n, Plan.Types.HeatCell, ($, i) => {
331
331
  const drift = $.let(i.toFloat().multiply(2.5).subtract(6.0), FloatType);
@@ -341,7 +341,7 @@ export const dataBindPagedPlan = example({
341
341
  }),
342
342
  ]),
343
343
  }),
344
- ], ArrayType(Plan.Types.Series(OpsLine)));
344
+ ], ArrayType(Plan.Types.Series(OpsHall)));
345
345
  const axis = $.const(Plan.axis({
346
346
  window: { min: week(24n), max: week(42n) },
347
347
  resolution: "week", resolutions: ["month", "week", "day"], now: week(31n),
@@ -398,12 +398,12 @@ export const dataBindPagedIndex = example({
398
398
  * into the package.
399
399
  */
400
400
  export const unitCountInput = e3.input('unit_count', IntegerType, variant('value', 3000n));
401
- /** A generated unit: the weeks it runs, and what it weighs. */
402
- export const UnitRow = StructType({ start: DateTimeType, end: DateTimeType, tonnes: FloatType });
401
+ /** A generated unit: the weeks it runs, and how many sheets it prints. */
402
+ export const UnitRow = StructType({ start: DateTimeType, end: DateTimeType, sheets: FloatType });
403
403
  /**
404
404
  * The units, generated from their count — keyed `U10000`, `U10001`, …: fixed
405
405
  * width, so key order is build order. Each runs two weeks, from one of ten
406
- * consecutive weeks starting at W27, and weighs 40 to 119 t.
406
+ * consecutive weeks starting at W27, and prints 40 to 119 k sheets.
407
407
  */
408
408
  export const generateUnits = East.function([IntegerType], DictType(StringType, UnitRow), ($, count) => {
409
409
  // Monday of ISO week 1, 2026.
@@ -411,7 +411,7 @@ export const generateUnits = East.function([IntegerType], DictType(StringType, U
411
411
  return East.Array.range(0n, count).toDict((_$, i) => East.str `U${i.add(10000n)}`, ($2, i) => $2.const({
412
412
  start: w1.addWeeks(i.remainder(10n).add(26n)),
413
413
  end: w1.addWeeks(i.remainder(10n).add(28n)),
414
- tonnes: i.remainder(80n).add(40n).toFloat(),
414
+ sheets: i.remainder(80n).add(40n).toFloat(),
415
415
  }, UnitRow));
416
416
  });
417
417
  /** The task that generates the units — its output is the dataset the canvas pages. */
@@ -437,10 +437,10 @@ export const dataBindPagedBlocks = example({
437
437
  Plan.series.span(UnitRow, {
438
438
  key: "jobs", title: "Jobs",
439
439
  label: (_r, k) => k, id: true,
440
- value: r => some(East.str `${East.Float.printFixed(r.tonnes, 0n)} t`),
440
+ value: r => some(East.str `${East.Float.printFixed(r.sheets, 0n)} k sheets`),
441
441
  runs: (r, k) => [Plan.run({
442
442
  key: "run", start: r.start, end: r.end, label: East.str `RUN · ${k}`,
443
- quantity: Plan.quantity(r.tonnes, { unit: "t", format: Format.Number({ maximumFractionDigits: 0n }) }),
443
+ quantity: Plan.quantity(r.sheets, { unit: "k sheets", format: Format.Number({ maximumFractionDigits: 0n }) }),
444
444
  state: "actual",
445
445
  })],
446
446
  }),
@@ -534,7 +534,7 @@ export const JobRow = StructType({ start: OptionType(DateTimeType), task: String
534
534
  */
535
535
  export const generateJobs = East.function([IntegerType], DictType(StringType, JobRow), ($, count) => {
536
536
  const day0 = $.const(new Date("2026-01-05T00:00:00Z"), DateTimeType);
537
- const tasks = $.const(["Machining", "Painting", "Packaging"], ArrayType(StringType));
537
+ const tasks = $.const(["Routing", "Spraying", "Wrapping"], ArrayType(StringType));
538
538
  return East.Array.range(0n, count).toDict((_$, i) => East.str `J${i.add(1000n)}`, ($2, i) => $2.const({
539
539
  start: some(day0.addDays(i)),
540
540
  task: tasks.get(i.remainder(3n)),
@@ -552,11 +552,11 @@ export const dataBindPagedSheet = example({
552
552
  description: "A paged sheet over a BOUND keyed dataset — `Data.bindPaged(jobsTask)` over the jobs an `e3.task` generates: windows land as the planner scrolls, the footer counts elements, the blank tail appears once the source is exhausted, and key search seeks the dataset's own keys. A keyed source needs no `id` — its key is the row id. Read-only: a sheet edits a paged source only through an authoritative `onApply`, which this one declares none of",
553
553
  fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
554
554
  const jobs = $.let(Data.bindPaged(jobsTask));
555
- return (_jsxs(VStack, { gap: "3", align: "stretch", children: [_jsx(Sheet, { data: jobs, columns: {
556
- start: Sheet.column.date(JobRow, { header: "Start", width: "96px" }),
557
- task: Sheet.column.text(JobRow, { header: "Task", width: "180px" }),
558
- qty: Sheet.column.quantity(JobRow, { header: "Qty", width: "112px", format: Format.Number({ maximumFractionDigits: 0n }) }),
559
- }, readOnly: true, style: { height: "420px" } }), _jsx(Text.MonoLabel, { children: "Bound dataset \u00B7 key search and paging" })] }));
555
+ return (_jsxs(VStack, { gap: "3", align: "stretch", children: [_jsx(Box, { height: "420px", children: _jsx(Sheet, { data: jobs, columns: {
556
+ start: Sheet.column.date(JobRow, { header: "Start", width: "96px" }),
557
+ task: Sheet.column.text(JobRow, { header: "Task", width: "180px" }),
558
+ qty: Sheet.column.quantity(JobRow, { header: "Qty", width: "112px", format: Format.Number({ maximumFractionDigits: 0n }) }),
559
+ }, readOnly: true }) }), _jsx(Text.MonoLabel, { children: "Bound dataset \u00B7 key search and paging" })] }));
560
560
  } }))),
561
561
  inputs: [],
562
562
  });