@elaraai/e3-ui 1.0.94 → 1.0.96

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 (303) hide show
  1. package/dist/src/allocation/adapters.d.ts +159 -0
  2. package/dist/src/allocation/adapters.d.ts.map +1 -0
  3. package/dist/src/allocation/adapters.js +241 -0
  4. package/dist/src/allocation/adapters.js.map +1 -0
  5. package/dist/src/allocation/functions.d.ts +664 -0
  6. package/dist/src/allocation/functions.d.ts.map +1 -0
  7. package/dist/src/allocation/functions.js +782 -0
  8. package/dist/src/allocation/functions.js.map +1 -0
  9. package/dist/src/allocation/index.d.ts +2985 -0
  10. package/dist/src/allocation/index.d.ts.map +1 -0
  11. package/dist/src/allocation/index.js +499 -0
  12. package/dist/src/allocation/index.js.map +1 -0
  13. package/dist/src/allocation/types.d.ts +832 -0
  14. package/dist/src/allocation/types.d.ts.map +1 -0
  15. package/dist/src/allocation/types.js +360 -0
  16. package/dist/src/allocation/types.js.map +1 -0
  17. package/dist/src/bind/func.d.ts +14 -0
  18. package/dist/src/bind/func.d.ts.map +1 -1
  19. package/dist/src/bind/func.js +22 -1
  20. package/dist/src/bind/func.js.map +1 -1
  21. package/dist/src/calendar/index.d.ts +510 -1639
  22. package/dist/src/calendar/index.d.ts.map +1 -1
  23. package/dist/src/calendar/index.js +56 -29
  24. package/dist/src/calendar/index.js.map +1 -1
  25. package/dist/src/flowchart/canvas.d.ts +9 -21
  26. package/dist/src/flowchart/canvas.d.ts.map +1 -1
  27. package/dist/src/flowchart/canvas.js +10 -22
  28. package/dist/src/flowchart/canvas.js.map +1 -1
  29. package/dist/src/flowchart/flowchart.d.ts +19 -13
  30. package/dist/src/flowchart/flowchart.d.ts.map +1 -1
  31. package/dist/src/flowchart/flowchart.js.map +1 -1
  32. package/dist/src/flowchart/index.d.ts +44 -21
  33. package/dist/src/flowchart/index.d.ts.map +1 -1
  34. package/dist/src/flowchart/index.js +43 -20
  35. package/dist/src/flowchart/index.js.map +1 -1
  36. package/dist/src/flowchart/library.d.ts +166 -81
  37. package/dist/src/flowchart/library.d.ts.map +1 -1
  38. package/dist/src/flowchart/library.js +232 -105
  39. package/dist/src/flowchart/library.js.map +1 -1
  40. package/dist/src/flowchart/over.d.ts +9 -16
  41. package/dist/src/flowchart/over.d.ts.map +1 -1
  42. package/dist/src/flowchart/over.js +9 -16
  43. package/dist/src/flowchart/over.js.map +1 -1
  44. package/dist/src/flowchart/payload.d.ts +710 -508
  45. package/dist/src/flowchart/payload.d.ts.map +1 -1
  46. package/dist/src/flowchart/payload.js +128 -74
  47. package/dist/src/flowchart/payload.js.map +1 -1
  48. package/dist/src/flowchart/window.d.ts +132 -347
  49. package/dist/src/flowchart/window.d.ts.map +1 -1
  50. package/dist/src/flowchart/window.js +48 -55
  51. package/dist/src/flowchart/window.js.map +1 -1
  52. package/dist/src/index.d.ts +11 -7
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +14 -6
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/internal.d.ts +18 -7
  57. package/dist/src/internal.d.ts.map +1 -1
  58. package/dist/src/internal.js +28 -9
  59. package/dist/src/internal.js.map +1 -1
  60. package/dist/src/plan/event-rows.d.ts +26 -10
  61. package/dist/src/plan/event-rows.d.ts.map +1 -1
  62. package/dist/src/plan/event-rows.js +39 -13
  63. package/dist/src/plan/event-rows.js.map +1 -1
  64. package/dist/src/plan/ir.d.ts +244 -815
  65. package/dist/src/plan/ir.d.ts.map +1 -1
  66. package/dist/src/plan/ir.js +8 -6
  67. package/dist/src/plan/ir.js.map +1 -1
  68. package/dist/src/plan/library.d.ts +3 -0
  69. package/dist/src/plan/library.d.ts.map +1 -1
  70. package/dist/src/plan/library.js +1 -1
  71. package/dist/src/plan/library.js.map +1 -1
  72. package/dist/src/plan/ordered-source.d.ts +1 -0
  73. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  74. package/dist/src/plan/plan.d.ts +559 -1667
  75. package/dist/src/plan/plan.d.ts.map +1 -1
  76. package/dist/src/plan/plan.js +123 -45
  77. package/dist/src/plan/plan.js.map +1 -1
  78. package/dist/src/plan/root.d.ts +16 -20
  79. package/dist/src/plan/root.d.ts.map +1 -1
  80. package/dist/src/plan/root.js +23 -33
  81. package/dist/src/plan/root.js.map +1 -1
  82. package/dist/src/roster/coverage.d.ts +17 -231
  83. package/dist/src/roster/coverage.d.ts.map +1 -1
  84. package/dist/src/roster/coverage.js +94 -90
  85. package/dist/src/roster/coverage.js.map +1 -1
  86. package/dist/src/roster/fit.d.ts +59 -0
  87. package/dist/src/roster/fit.d.ts.map +1 -0
  88. package/dist/src/roster/fit.js +155 -0
  89. package/dist/src/roster/fit.js.map +1 -0
  90. package/dist/src/roster/index.d.ts +2862 -3662
  91. package/dist/src/roster/index.d.ts.map +1 -1
  92. package/dist/src/roster/index.js +383 -81
  93. package/dist/src/roster/index.js.map +1 -1
  94. package/dist/src/roster/library.d.ts +37 -92
  95. package/dist/src/roster/library.d.ts.map +1 -1
  96. package/dist/src/roster/library.js +25 -64
  97. package/dist/src/roster/library.js.map +1 -1
  98. package/dist/src/roster/lists.d.ts +195 -0
  99. package/dist/src/roster/lists.d.ts.map +1 -0
  100. package/dist/src/roster/lists.js +233 -0
  101. package/dist/src/roster/lists.js.map +1 -0
  102. package/dist/src/roster/rules.d.ts +17 -260
  103. package/dist/src/roster/rules.d.ts.map +1 -1
  104. package/dist/src/roster/rules.js +135 -132
  105. package/dist/src/roster/rules.js.map +1 -1
  106. package/dist/src/roster/targets.d.ts +115 -0
  107. package/dist/src/roster/targets.d.ts.map +1 -0
  108. package/dist/src/roster/targets.js +213 -0
  109. package/dist/src/roster/targets.js.map +1 -0
  110. package/dist/src/roster/times.d.ts +251 -0
  111. package/dist/src/roster/times.d.ts.map +1 -0
  112. package/dist/src/roster/times.js +174 -0
  113. package/dist/src/roster/times.js.map +1 -0
  114. package/dist/src/roster/types.d.ts +828 -183
  115. package/dist/src/roster/types.d.ts.map +1 -1
  116. package/dist/src/roster/types.js +224 -97
  117. package/dist/src/roster/types.js.map +1 -1
  118. package/dist/src/schedule/accessor.d.ts +28 -0
  119. package/dist/src/schedule/accessor.d.ts.map +1 -0
  120. package/dist/src/schedule/accessor.js +39 -0
  121. package/dist/src/schedule/accessor.js.map +1 -0
  122. package/dist/src/schedule/events.d.ts +170 -42
  123. package/dist/src/schedule/events.d.ts.map +1 -1
  124. package/dist/src/schedule/events.js +431 -171
  125. package/dist/src/schedule/events.js.map +1 -1
  126. package/dist/src/schedule/index.d.ts +41 -4
  127. package/dist/src/schedule/index.d.ts.map +1 -1
  128. package/dist/src/schedule/index.js +35 -3
  129. package/dist/src/schedule/index.js.map +1 -1
  130. package/dist/src/schedule/library.d.ts +13 -3
  131. package/dist/src/schedule/library.d.ts.map +1 -1
  132. package/dist/src/schedule/library.js +11 -4
  133. package/dist/src/schedule/library.js.map +1 -1
  134. package/dist/src/schedule/periods.d.ts +115 -0
  135. package/dist/src/schedule/periods.d.ts.map +1 -0
  136. package/dist/src/schedule/periods.js +215 -0
  137. package/dist/src/schedule/periods.js.map +1 -0
  138. package/dist/src/schedule/record-window.d.ts +25 -3
  139. package/dist/src/schedule/record-window.d.ts.map +1 -1
  140. package/dist/src/schedule/record-window.js +31 -18
  141. package/dist/src/schedule/record-window.js.map +1 -1
  142. package/dist/src/schedule/resources.d.ts +82 -4
  143. package/dist/src/schedule/resources.d.ts.map +1 -1
  144. package/dist/src/schedule/resources.js +44 -14
  145. package/dist/src/schedule/resources.js.map +1 -1
  146. package/dist/src/schedule/session.d.ts +69 -0
  147. package/dist/src/schedule/session.d.ts.map +1 -0
  148. package/dist/src/schedule/session.js +121 -0
  149. package/dist/src/schedule/session.js.map +1 -0
  150. package/dist/src/schedule/templates.d.ts +14 -2
  151. package/dist/src/schedule/templates.d.ts.map +1 -1
  152. package/dist/src/schedule/templates.js +5 -3
  153. package/dist/src/schedule/templates.js.map +1 -1
  154. package/dist/src/schedule/types.d.ts +1671 -37
  155. package/dist/src/schedule/types.d.ts.map +1 -1
  156. package/dist/src/schedule/types.js +196 -5
  157. package/dist/src/schedule/types.js.map +1 -1
  158. package/dist/src/schedule/window.d.ts +14 -0
  159. package/dist/src/schedule/window.d.ts.map +1 -1
  160. package/dist/src/schedule/window.js +14 -4
  161. package/dist/src/schedule/window.js.map +1 -1
  162. package/dist/src/schedule/words.d.ts +22 -0
  163. package/dist/src/schedule/words.d.ts.map +1 -0
  164. package/dist/src/schedule/words.js +25 -0
  165. package/dist/src/schedule/words.js.map +1 -0
  166. package/dist/src/sheet/index.d.ts +61 -27
  167. package/dist/src/sheet/index.d.ts.map +1 -1
  168. package/dist/src/sheet/index.js +59 -25
  169. package/dist/src/sheet/index.js.map +1 -1
  170. package/dist/src/sheet/library.d.ts +21 -3
  171. package/dist/src/sheet/library.d.ts.map +1 -1
  172. package/dist/src/sheet/library.js +23 -6
  173. package/dist/src/sheet/library.js.map +1 -1
  174. package/dist/src/sheet/registers.d.ts +100 -85
  175. package/dist/src/sheet/registers.d.ts.map +1 -1
  176. package/dist/src/sheet/registers.js +100 -85
  177. package/dist/src/sheet/registers.js.map +1 -1
  178. package/dist/src/sheet/root.d.ts +8 -12
  179. package/dist/src/sheet/root.d.ts.map +1 -1
  180. package/dist/src/sheet/root.js +6 -40
  181. package/dist/src/sheet/root.js.map +1 -1
  182. package/dist/src/sheet/sheet.d.ts +598 -2349
  183. package/dist/src/sheet/sheet.d.ts.map +1 -1
  184. package/dist/src/sheet/sheet.js +124 -37
  185. package/dist/src/sheet/sheet.js.map +1 -1
  186. package/dist/src/sheet/sub-rows.d.ts +74 -28
  187. package/dist/src/sheet/sub-rows.d.ts.map +1 -1
  188. package/dist/src/sheet/sub-rows.js +74 -28
  189. package/dist/src/sheet/sub-rows.js.map +1 -1
  190. package/dist/src/sheet/templates.d.ts +98 -34
  191. package/dist/src/sheet/templates.d.ts.map +1 -1
  192. package/dist/src/sheet/templates.js +102 -58
  193. package/dist/src/sheet/templates.js.map +1 -1
  194. package/dist/src/sheet/types.d.ts +289 -1359
  195. package/dist/src/sheet/types.d.ts.map +1 -1
  196. package/dist/src/sheet/types.js +20 -26
  197. package/dist/src/sheet/types.js.map +1 -1
  198. package/dist/src/sheet/views.d.ts +10 -11
  199. package/dist/src/sheet/views.d.ts.map +1 -1
  200. package/dist/src/sheet/views.js +15 -20
  201. package/dist/src/sheet/views.js.map +1 -1
  202. package/dist/src/{roster/visibility.d.ts → utils/key-visibility.d.ts} +42 -7
  203. package/dist/src/utils/key-visibility.d.ts.map +1 -0
  204. package/dist/src/utils/key-visibility.js +36 -0
  205. package/dist/src/utils/key-visibility.js.map +1 -0
  206. package/dist/src/utils/ordered-source.d.ts +1 -0
  207. package/dist/src/utils/ordered-source.d.ts.map +1 -1
  208. package/dist/src/utils/ordered-source.js +8 -3
  209. package/dist/src/utils/ordered-source.js.map +1 -1
  210. package/dist/src/utils/record-sources.d.ts +107 -0
  211. package/dist/src/utils/record-sources.d.ts.map +1 -0
  212. package/dist/src/utils/record-sources.js +132 -0
  213. package/dist/src/utils/record-sources.js.map +1 -0
  214. package/dist/test/allocation/allocation.examples.d.ts +2902 -0
  215. package/dist/test/allocation/allocation.examples.d.ts.map +1 -0
  216. package/dist/test/allocation/allocation.examples.js +643 -0
  217. package/dist/test/allocation/allocation.examples.js.map +1 -0
  218. package/dist/test/allocation/fit.examples.d.ts +546 -0
  219. package/dist/test/allocation/fit.examples.d.ts.map +1 -0
  220. package/dist/test/allocation/fit.examples.js +171 -0
  221. package/dist/test/allocation/fit.examples.js.map +1 -0
  222. package/dist/test/allocation/kiln-yard.d.ts +181 -0
  223. package/dist/test/allocation/kiln-yard.d.ts.map +1 -0
  224. package/dist/test/allocation/kiln-yard.js +228 -0
  225. package/dist/test/allocation/kiln-yard.js.map +1 -0
  226. package/dist/test/bind/data/data.examples.d.ts +651 -1
  227. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  228. package/dist/test/bind/data/data.examples.js +140 -2
  229. package/dist/test/bind/data/data.examples.js.map +1 -1
  230. package/dist/test/bind/func/func.examples.d.ts +10 -1
  231. package/dist/test/bind/func/func.examples.d.ts.map +1 -1
  232. package/dist/test/bind/func/func.examples.js +8 -1
  233. package/dist/test/bind/func/func.examples.js.map +1 -1
  234. package/dist/test/bind/record/record.examples.d.ts +633 -1
  235. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  236. package/dist/test/bind/record/record.examples.js +26 -2
  237. package/dist/test/bind/record/record.examples.js.map +1 -1
  238. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  239. package/dist/test/calendar/calendar-records.examples.js +18 -14
  240. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  241. package/dist/test/calendar/calendar.examples.d.ts +521 -16
  242. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  243. package/dist/test/calendar/calendar.examples.js +182 -135
  244. package/dist/test/calendar/calendar.examples.js.map +1 -1
  245. package/dist/test/examples-package.d.ts +75 -0
  246. package/dist/test/examples-package.d.ts.map +1 -0
  247. package/dist/test/examples-package.js +263 -0
  248. package/dist/test/examples-package.js.map +1 -0
  249. package/dist/test/flowchart/flowchart.examples.d.ts +211 -19
  250. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  251. package/dist/test/flowchart/flowchart.examples.js +102 -75
  252. package/dist/test/flowchart/flowchart.examples.js.map +1 -1
  253. package/dist/test/plan/plan-events.examples.d.ts +1439 -209
  254. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  255. package/dist/test/plan/plan-events.examples.js +199 -59
  256. package/dist/test/plan/plan-events.examples.js.map +1 -1
  257. package/dist/test/plan/plan-records.examples.d.ts +420 -0
  258. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  259. package/dist/test/plan/plan-records.examples.js +70 -19
  260. package/dist/test/plan/plan-records.examples.js.map +1 -1
  261. package/dist/test/plan/plan-windows.examples.d.ts +636 -55
  262. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  263. package/dist/test/plan/plan-windows.examples.js +69 -33
  264. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  265. package/dist/test/plan/plan.examples.d.ts +153 -31
  266. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  267. package/dist/test/plan/plan.examples.js +178 -101
  268. package/dist/test/plan/plan.examples.js.map +1 -1
  269. package/dist/test/roster/domain.examples.d.ts +467 -250
  270. package/dist/test/roster/domain.examples.d.ts.map +1 -1
  271. package/dist/test/roster/domain.examples.js +92 -29
  272. package/dist/test/roster/domain.examples.js.map +1 -1
  273. package/dist/test/roster/roster-records.examples.d.ts +430 -586
  274. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  275. package/dist/test/roster/roster-records.examples.js +102 -43
  276. package/dist/test/roster/roster-records.examples.js.map +1 -1
  277. package/dist/test/roster/roster.examples.d.ts +2319 -606
  278. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  279. package/dist/test/roster/roster.examples.js +456 -148
  280. package/dist/test/roster/roster.examples.js.map +1 -1
  281. package/dist/test/roster/warehouse.d.ts +172 -63
  282. package/dist/test/roster/warehouse.d.ts.map +1 -1
  283. package/dist/test/roster/warehouse.js +172 -39
  284. package/dist/test/roster/warehouse.js.map +1 -1
  285. package/dist/test/schedule/schedule.examples.d.ts +3499 -0
  286. package/dist/test/schedule/schedule.examples.d.ts.map +1 -0
  287. package/dist/test/schedule/schedule.examples.js +192 -0
  288. package/dist/test/schedule/schedule.examples.js.map +1 -0
  289. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  290. package/dist/test/sheet/sheet-records.examples.js +22 -18
  291. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  292. package/dist/test/sheet/sheet.examples.d.ts +715 -26
  293. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  294. package/dist/test/sheet/sheet.examples.js +204 -130
  295. package/dist/test/sheet/sheet.examples.js.map +1 -1
  296. package/package.json +17 -10
  297. package/dist/src/roster/people.d.ts +0 -50
  298. package/dist/src/roster/people.d.ts.map +0 -1
  299. package/dist/src/roster/people.js +0 -32
  300. package/dist/src/roster/people.js.map +0 -1
  301. package/dist/src/roster/visibility.d.ts.map +0 -1
  302. package/dist/src/roster/visibility.js +0 -25
  303. package/dist/src/roster/visibility.js.map +0 -1
@@ -2251,17 +2251,108 @@ export declare const handoverFlow: import("@elaraai/e3").DatasetDef<StructType<{
2251
2251
  }>>;
2252
2252
  }>, [variant<"field", "inputs">, variant<"field", "flowchart_handover">]>;
2253
2253
  export declare const StepTemplate: StructType<{
2254
- readonly code: StringType;
2255
2254
  readonly name: StringType;
2256
2255
  readonly kind: StringType;
2257
2256
  readonly slots: OptionType<IntegerType>;
2258
2257
  }>;
2259
- export declare const stepTemplates: import("@elaraai/e3").DatasetDef<ArrayType<StructType<{
2260
- readonly code: StringType;
2258
+ export declare const stepTemplates: import("@elaraai/e3").RecordDef<DictType<StringType, StructType<{
2259
+ readonly name: StringType;
2260
+ readonly kind: StringType;
2261
+ readonly slots: OptionType<IntegerType>;
2262
+ }>>, [variant<"field", "records">, variant<"field", "flowchart_step_templates">]>;
2263
+ export declare const stepsByKind: import("@elaraai/e3").RecordIndexDef<"flowchart_steps_by_kind", DictType<StringType, StructType<{
2264
+ readonly name: StringType;
2265
+ readonly kind: StringType;
2266
+ readonly slots: OptionType<IntegerType>;
2267
+ }>>, StringType, NullType, readonly ["kind"]> & {
2268
+ interval: undefined;
2269
+ };
2270
+ /** The step types' patch door: what another writer adds a step type through, the Steps tab's cards following. */
2271
+ export declare const stepTemplatesPatch: import("@elaraai/e3").MutationDef<"patch", DictType<StringType, StructType<{
2261
2272
  readonly name: StringType;
2262
2273
  readonly kind: StringType;
2263
2274
  readonly slots: OptionType<IntegerType>;
2264
- }>>, [variant<"field", "inputs">, variant<"field", "flowchart_step_templates">]>;
2275
+ }>>, [import("@elaraai/east").VariantType<{
2276
+ unchanged: NullType;
2277
+ replace: StructType<{
2278
+ before: DictType<StringType, StructType<{
2279
+ readonly name: StringType;
2280
+ readonly kind: StringType;
2281
+ readonly slots: OptionType<IntegerType>;
2282
+ }>>;
2283
+ after: DictType<StringType, StructType<{
2284
+ readonly name: StringType;
2285
+ readonly kind: StringType;
2286
+ readonly slots: OptionType<IntegerType>;
2287
+ }>>;
2288
+ }>;
2289
+ patch: DictType<StringType, import("@elaraai/east").VariantType<{
2290
+ delete: StructType<{
2291
+ readonly name: StringType;
2292
+ readonly kind: StringType;
2293
+ readonly slots: OptionType<IntegerType>;
2294
+ }>;
2295
+ insert: StructType<{
2296
+ readonly name: StringType;
2297
+ readonly kind: StringType;
2298
+ readonly slots: OptionType<IntegerType>;
2299
+ }>;
2300
+ update: import("@elaraai/east").VariantType<{
2301
+ unchanged: NullType;
2302
+ replace: StructType<{
2303
+ before: StructType<{
2304
+ readonly name: StringType;
2305
+ readonly kind: StringType;
2306
+ readonly slots: OptionType<IntegerType>;
2307
+ }>;
2308
+ after: StructType<{
2309
+ readonly name: StringType;
2310
+ readonly kind: StringType;
2311
+ readonly slots: OptionType<IntegerType>;
2312
+ }>;
2313
+ }>;
2314
+ patch: StructType<{
2315
+ readonly name: import("@elaraai/east").VariantType<{
2316
+ unchanged: NullType;
2317
+ replace: StructType<{
2318
+ before: StringType;
2319
+ after: StringType;
2320
+ }>;
2321
+ }>;
2322
+ readonly kind: import("@elaraai/east").VariantType<{
2323
+ unchanged: NullType;
2324
+ replace: StructType<{
2325
+ before: StringType;
2326
+ after: StringType;
2327
+ }>;
2328
+ }>;
2329
+ readonly slots: import("@elaraai/east").VariantType<{
2330
+ unchanged: NullType;
2331
+ replace: StructType<{
2332
+ before: OptionType<IntegerType>;
2333
+ after: OptionType<IntegerType>;
2334
+ }>;
2335
+ patch: import("@elaraai/east").VariantType<{
2336
+ none: import("@elaraai/east").VariantType<{
2337
+ unchanged: NullType;
2338
+ replace: StructType<{
2339
+ before: NullType;
2340
+ after: NullType;
2341
+ }>;
2342
+ }>;
2343
+ some: import("@elaraai/east").VariantType<{
2344
+ unchanged: NullType;
2345
+ replace: StructType<{
2346
+ before: IntegerType;
2347
+ after: IntegerType;
2348
+ }>;
2349
+ }>;
2350
+ }>;
2351
+ }>;
2352
+ }>;
2353
+ }>;
2354
+ }>>;
2355
+ }>]>;
2265
2356
  export declare const MoveTemplate: StructType<{
2266
2357
  readonly kind: import("@elaraai/east").VariantType<{
2267
2358
  readonly planned: NullType;
@@ -2278,16 +2369,33 @@ export declare const moveTemplates: import("@elaraai/e3").RecordDef<DictType<Str
2278
2369
  readonly decision: OptionType<StringType>;
2279
2370
  readonly note: StringType;
2280
2371
  }>>, [variant<"field", "records">, variant<"field", "flowchart_move_templates">]>;
2372
+ export declare const movesByKind: import("@elaraai/e3").RecordIndexDef<"flowchart_moves_by_kind", DictType<StringType, StructType<{
2373
+ readonly kind: import("@elaraai/east").VariantType<{
2374
+ readonly planned: NullType;
2375
+ readonly observed: NullType;
2376
+ }>;
2377
+ readonly decision: OptionType<StringType>;
2378
+ readonly note: StringType;
2379
+ }>>, import("@elaraai/east").VariantType<{
2380
+ readonly planned: NullType;
2381
+ readonly observed: NullType;
2382
+ }>, NullType, readonly ["kind"]> & {
2383
+ interval: undefined;
2384
+ };
2281
2385
  export declare const DecisionOwner: StructType<{
2282
- readonly role: StringType;
2283
2386
  readonly name: StringType;
2284
2387
  readonly desk: StringType;
2285
2388
  }>;
2286
- export declare const decisionOwners: import("@elaraai/e3").DatasetDef<ArrayType<StructType<{
2287
- readonly role: StringType;
2389
+ export declare const decisionOwners: import("@elaraai/e3").RecordDef<DictType<StringType, StructType<{
2390
+ readonly name: StringType;
2391
+ readonly desk: StringType;
2392
+ }>>, [variant<"field", "records">, variant<"field", "flowchart_decision_owners">]>;
2393
+ export declare const ownersByDesk: import("@elaraai/e3").RecordIndexDef<"flowchart_owners_by_desk", DictType<StringType, StructType<{
2288
2394
  readonly name: StringType;
2289
2395
  readonly desk: StringType;
2290
- }>>, [variant<"field", "inputs">, variant<"field", "flowchart_decision_owners">]>;
2396
+ }>>, StringType, NullType, readonly ["desk"]> & {
2397
+ interval: undefined;
2398
+ };
2291
2399
  export declare const DepotState: StructType<{
2292
2400
  readonly code: StringType;
2293
2401
  readonly name: StringType;
@@ -2358,12 +2466,15 @@ export declare const flowchartFlows: import("@elaraai/east").ExampleDef<[], any>
2358
2466
  */
2359
2467
  export declare const flowchartVariants: import("@elaraai/east").ExampleDef<[], any>;
2360
2468
  /**
2361
- * The library (#1248): the Flows tab, then the step types, the transition
2362
- * types and the roles that own a decision — each tab its own bound data,
2363
- * apart from the flows and from the other tabs: an input's rows, a record's
2364
- * rows by name, another input's. Each template card is a drag source, as is
2365
- * each of the author's cards, whose tab declares a `drop`; a click selects a
2366
- * card, and a click on the selected card lets it go.
2469
+ * The library (#1248, #1346): the Flows tab, then the step types, the
2470
+ * transition types and the roles that own a decision — each tab its own
2471
+ * bound data, apart from the flows and from the other tabs: a templates
2472
+ * record by code, one by name, and a record of roles. One rail narrows them,
2473
+ * a source each: each templates list and the Owners tab follow the source
2474
+ * they name, counting what they show (`2 of 5`) and saying so, with Clear
2475
+ * filters, when the rail leaves them none. Each template card is a drag
2476
+ * source, as is each of the author's cards, whose tab declares a `drop`; a
2477
+ * click selects a card, and a click on the selected card lets it go.
2367
2478
  */
2368
2479
  export declare const flowchartLibrary: import("@elaraai/east").ExampleDef<[], any>;
2369
2480
  /**
@@ -2371,11 +2482,9 @@ export declare const flowchartLibrary: import("@elaraai/east").ExampleDef<[], an
2371
2482
  * transitions mined from its scans and its decisions, each an e3 input of the
2372
2483
  * app's own rows, built into one flow by `Flowchart.over` through their row
2373
2484
  * mappers and shown read only: decision triggers, evidence-weighted links, a
2374
- * ×14 state class, an ↻ in-place loop and an unresolved ghost. A bound slice
2375
- * narrows the transitions the flow is built from, its rail at the toolbar's
2376
- * end, and the freshness chip names the evidence. Its one pane is the
2377
- * inspector, every field of what is selected printed, its Issues the
2378
- * unresolved transition.
2485
+ * ×14 state class, an ↻ in-place loop and an unresolved ghost. The freshness
2486
+ * chip names the evidence. Its one pane is the inspector, every field of what
2487
+ * is selected printed, its Issues the unresolved transition.
2379
2488
  */
2380
2489
  export declare const flowchartDepot: import("@elaraai/east").ExampleDef<[], any>;
2381
2490
  /**
@@ -3506,6 +3615,46 @@ export declare const indexedFlowsPatch: import("@elaraai/e3").MutationDef<"patch
3506
3615
  }>;
3507
3616
  }>>;
3508
3617
  }>]>;
3618
+ export declare const flowsByName: import("@elaraai/e3").RecordIndexDef<"name", DictType<StringType, StructType<{
3619
+ readonly description: OptionType<StringType>;
3620
+ readonly lanes: ArrayType<StructType<{
3621
+ readonly key: StringType;
3622
+ readonly label: OptionType<StringType>;
3623
+ }>>;
3624
+ readonly states: ArrayType<StructType<{
3625
+ readonly key: StringType;
3626
+ readonly label: OptionType<StringType>;
3627
+ readonly lane: StringType;
3628
+ readonly members: OptionType<IntegerType>;
3629
+ readonly notes: OptionType<StringType>;
3630
+ }>>;
3631
+ readonly links: ArrayType<StructType<{
3632
+ readonly key: OptionType<StringType>;
3633
+ readonly from: StringType;
3634
+ readonly to: StringType;
3635
+ readonly kind: OptionType<import("@elaraai/east").VariantType<{
3636
+ readonly planned: NullType;
3637
+ readonly observed: NullType;
3638
+ }>>;
3639
+ readonly trigger: OptionType<StringType>;
3640
+ readonly evidence: OptionType<StructType<{
3641
+ readonly volume: OptionType<FloatType>;
3642
+ readonly count: OptionType<IntegerType>;
3643
+ readonly measuredAt: OptionType<DateTimeType>;
3644
+ readonly unit: OptionType<StringType>;
3645
+ }>>;
3646
+ }>>;
3647
+ readonly triggers: ArrayType<StructType<{
3648
+ readonly key: StringType;
3649
+ readonly label: StringType;
3650
+ readonly letter: OptionType<StringType>;
3651
+ readonly owner: OptionType<StringType>;
3652
+ readonly queue: OptionType<ArrayType<StringType>>;
3653
+ readonly outcomes: OptionType<StringType>;
3654
+ }>>;
3655
+ }>>, StringType, NullType, undefined> & {
3656
+ interval: undefined;
3657
+ };
3509
3658
  export declare const flowsByDescription: import("@elaraai/e3").RecordIndexDef<"flowchart_by_description", DictType<StringType, StructType<{
3510
3659
  readonly description: OptionType<StringType>;
3511
3660
  readonly lanes: ArrayType<StructType<{
@@ -3546,6 +3695,49 @@ export declare const flowsByDescription: import("@elaraai/e3").RecordIndexDef<"f
3546
3695
  }>>, OptionType<StringType>, NullType, readonly ["description"]> & {
3547
3696
  interval: undefined;
3548
3697
  };
3698
+ export declare const flowsByDescriptionName: import("@elaraai/e3").RecordIndexDef<"flowchart_by_description_name", DictType<StringType, StructType<{
3699
+ readonly description: OptionType<StringType>;
3700
+ readonly lanes: ArrayType<StructType<{
3701
+ readonly key: StringType;
3702
+ readonly label: OptionType<StringType>;
3703
+ }>>;
3704
+ readonly states: ArrayType<StructType<{
3705
+ readonly key: StringType;
3706
+ readonly label: OptionType<StringType>;
3707
+ readonly lane: StringType;
3708
+ readonly members: OptionType<IntegerType>;
3709
+ readonly notes: OptionType<StringType>;
3710
+ }>>;
3711
+ readonly links: ArrayType<StructType<{
3712
+ readonly key: OptionType<StringType>;
3713
+ readonly from: StringType;
3714
+ readonly to: StringType;
3715
+ readonly kind: OptionType<import("@elaraai/east").VariantType<{
3716
+ readonly planned: NullType;
3717
+ readonly observed: NullType;
3718
+ }>>;
3719
+ readonly trigger: OptionType<StringType>;
3720
+ readonly evidence: OptionType<StructType<{
3721
+ readonly volume: OptionType<FloatType>;
3722
+ readonly count: OptionType<IntegerType>;
3723
+ readonly measuredAt: OptionType<DateTimeType>;
3724
+ readonly unit: OptionType<StringType>;
3725
+ }>>;
3726
+ }>>;
3727
+ readonly triggers: ArrayType<StructType<{
3728
+ readonly key: StringType;
3729
+ readonly label: StringType;
3730
+ readonly letter: OptionType<StringType>;
3731
+ readonly owner: OptionType<StringType>;
3732
+ readonly queue: OptionType<ArrayType<StringType>>;
3733
+ readonly outcomes: OptionType<StringType>;
3734
+ }>>;
3735
+ }>>, StructType<{
3736
+ readonly description: OptionType<StringType>;
3737
+ readonly name: StringType;
3738
+ }>, NullType, undefined> & {
3739
+ interval: undefined;
3740
+ };
3549
3741
  export declare const flowsByStateCount: import("@elaraai/e3").RecordIndexDef<"stateCount", DictType<StringType, StructType<{
3550
3742
  readonly description: OptionType<StringType>;
3551
3743
  readonly lanes: ArrayType<StructType<{
@@ -1 +1 @@
1
- {"version":3,"file":"flowchart.examples.d.ts","sourceRoot":"","sources":["../../../test/flowchart/flowchart.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EACH,SAAS,EAAe,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAgB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAsB,UAAU,EAAE,UAAU,EACvI,OAAO,EAC/B,MAAM,eAAe,CAAC;AA+CvB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8EA4BpB,CAAC;AACJ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAgC,CAAC;AAI7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFAWzB,CAAC;AACJ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAqC,CAAC;AAGvE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEAerB,CAAC;AAML,eAAO,MAAM,YAAY;;;;;EAAuG,CAAC;AACjI,eAAO,MAAM,aAAa;;;;;gFAMvB,CAAC;AACJ,eAAO,MAAM,YAAY;;;;;;;EAAiG,CAAC;AAC3H,eAAO,MAAM,aAAa;;;;;;;iFAIvB,CAAC;AACJ,eAAO,MAAM,aAAa;;;;EAAuE,CAAC;AAClG,eAAO,MAAM,cAAc;;;;iFAGxB,CAAC;AAKJ,eAAO,MAAM,UAAU;;;;;EAAwG,CAAC;AAChI,eAAO,MAAM,WAAW;;;;;8EAWrB,CAAC;AACJ,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAIzB,CAAC;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;6EAWzB,CAAC;AACJ,eAAO,MAAM,aAAa;;;;EAAoE,CAAC;AAC/F,eAAO,MAAM,cAAc;;;;iFAGxB,CAAC;AAEJ,eAAO,MAAM,cAAc,6CAczB,CAAC;AAEH;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,iBAAiB,6CA6F5B,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,6CA0C3B,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,6CA2CzB,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,6CAc5B,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,6CAkD1B,CAAC;AAKH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAwBhB,CAAC;AACV,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAkC,CAAC;AACjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAoF,CAAC;AAGpH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG5B,CAAC;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGvC,CAAC;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGtB,CAAC;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG/B,CAAC;AAEH,eAAO,MAAM,sBAAsB,6CAgCjC,CAAC"}
1
+ {"version":3,"file":"flowchart.examples.d.ts","sourceRoot":"","sources":["../../../test/flowchart/flowchart.examples.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAAsC;AACtC,OAAO,EACH,SAAS,EAAe,YAAY,EAAE,QAAQ,EAAQ,SAAS,EAAgB,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAsB,UAAU,EAAE,UAAU,EACvI,OAAO,EAC/B,MAAM,eAAe,CAAC;AAmDvB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8EA4BpB,CAAC;AACJ,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAgC,CAAC;AAI7D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mFAWzB,CAAC;AACJ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -20,11 +20,11 @@ import e3 from "@elaraai/e3";
20
20
  // only as axes over the host's flows (`data`), which its `onApply` commits,
21
21
  // the selection and a traced path heard in its aside;
22
22
  // - `flowchartLibrary`, the depot's flows (§3.3): the Flows tab, the step and
23
- // transition templates and the decisions' owners, each card dropped on the
24
- // canvas;
23
+ // transition templates and the decisions' owners, each a record of its own
24
+ // that one rail narrows, each card dropped on the canvas;
25
25
  // - `flowchartDepot`, a flow from the host's tables (§3.4): decisions,
26
26
  // evidence, a state class, an in-place transition and an unresolved one,
27
- // narrowed by a slice, read only;
27
+ // read only;
28
28
  // - `flowchartHandover`, the host's one flow, top down, with no pane;
29
29
  // - `flowchartDetail`, a record's one flow edited on the canvas, a
30
30
  // connection veto, and a state's and a transition's own Details.
@@ -39,8 +39,12 @@ import e3 from "@elaraai/e3";
39
39
  // Every flowchart binds its flows from e3, so each runs on e3-web in the
40
40
  // showcase (§2a): a record of flows written with `Flowchart.values`, whose
41
41
  // patch mutation every Save commits through; an input of one flow written
42
- // with `Flowchart.value`; or the host's tables, each an input. `State` holds
43
- // only what the viewer owns: the configurator's axes and what it heard.
42
+ // with `Flowchart.value`; or the host's tables, each an input. A flowchart's
43
+ // narrowing is one `Slice.bindRecords` (#1346): a `flows` source over a record
44
+ // of flows narrows the Flows tab, which pages it, and each other source the
45
+ // templates list or the tab that names it; the host's tables are never
46
+ // narrowed. `State` holds only what the viewer owns: the configurator's axes
47
+ // and what it heard.
44
48
  //
45
49
  // A flowchart fills its parent, as a ui task's page fills the window: each
46
50
  // example gives it a box of its own height. One page shows them all, so every
@@ -111,32 +115,39 @@ export const handoverFlow = e3.input("flowchart_handover", Flowchart.Types.Flow,
111
115
  ],
112
116
  triggers: [{ key: "attempt", label: "attempt", owner: "driver" }],
113
117
  })));
114
- // The library's rows (#1248): each tab its own bound data, apart from the
115
- // flows and from the other tabs — the step types an input's rows, the
116
- // transition types a record's rows by name, and the roles that own a decision
117
- // another input's.
118
- export const StepTemplate = StructType({ code: StringType, name: StringType, kind: StringType, slots: OptionType(IntegerType) });
119
- export const stepTemplates = e3.input("flowchart_step_templates", ArrayType(StepTemplate), variant("value", [
120
- { code: "ARV", name: "Arrived", kind: "Intake", slots: none },
121
- { code: "SCN", name: "Scanned", kind: "Intake", slots: none },
122
- { code: "CH*", name: "Sort chutes", kind: "Sort", slots: some(12n) },
123
- { code: "HLD", name: "Held", kind: "Hold", slots: none },
124
- { code: "LDD", name: "Loaded", kind: "Load", slots: none },
118
+ // The library's records (#1248, #1346): each tab its own bound data, apart
119
+ // from the flows and from the other tabs — the step types by code, the
120
+ // transition types by name and the roles that own a decision, each a record
121
+ // of its own, its cards its rows by key, and each indexed on the field the
122
+ // rail narrows it by.
123
+ export const StepTemplate = StructType({ name: StringType, kind: StringType, slots: OptionType(IntegerType) });
124
+ export const stepTemplates = e3.record("flowchart_step_templates", DictType(StringType, StepTemplate), new Map([
125
+ ["ARV", { name: "Arrived", kind: "Intake", slots: none }],
126
+ ["SCN", { name: "Scanned", kind: "Intake", slots: none }],
127
+ ["CH*", { name: "Sort chutes", kind: "Sort", slots: some(12n) }],
128
+ ["HLD", { name: "Held", kind: "Hold", slots: none }],
129
+ ["LDD", { name: "Loaded", kind: "Load", slots: none }],
125
130
  ]));
131
+ export const stepsByKind = e3.recordIndex("flowchart_steps_by_kind", stepTemplates, { on: ["kind"] });
132
+ /** The step types' patch door: what another writer adds a step type through, the Steps tab's cards following. */
133
+ export const stepTemplatesPatch = e3.mutation.patch(stepTemplates);
126
134
  export const MoveTemplate = StructType({ kind: Flowchart.Types.Kind, decision: OptionType(StringType), note: StringType });
127
135
  export const moveTemplates = e3.record("flowchart_move_templates", DictType(StringType, MoveTemplate), new Map([
128
136
  ["Observed", { kind: variant("observed", null), decision: none, note: "Mined from the scans" }],
129
137
  ["Planned", { kind: variant("planned", null), decision: none, note: "The designed path" }],
130
138
  ["Routed", { kind: variant("planned", null), decision: some("route"), note: "Governed by the route decision" }],
131
139
  ]));
132
- export const DecisionOwner = StructType({ role: StringType, name: StringType, desk: StringType });
133
- export const decisionOwners = e3.input("flowchart_decision_owners", ArrayType(DecisionOwner), variant("value", [
134
- { role: "sort-planner", name: "Sort planner", desk: "Sort hall" },
135
- { role: "customs-desk", name: "Customs desk", desk: "Hold bay" },
140
+ export const movesByKind = e3.recordIndex("flowchart_moves_by_kind", moveTemplates, { on: ["kind"] });
141
+ export const DecisionOwner = StructType({ name: StringType, desk: StringType });
142
+ export const decisionOwners = e3.record("flowchart_decision_owners", DictType(StringType, DecisionOwner), new Map([
143
+ ["sort-planner", { name: "Sort planner", desk: "Sort hall" }],
144
+ ["customs-desk", { name: "Customs desk", desk: "Hold bay" }],
136
145
  ]));
146
+ export const ownersByDesk = e3.recordIndex("flowchart_owners_by_desk", decisionOwners, { on: ["desk"] });
137
147
  // The depot's own tables (§3.4), each an input of the app's own rows: its
138
- // steps by phase, the transitions mined from its scans — what the slice
139
- // narrows — and its decisions. `Flowchart.over` builds one flow from them.
148
+ // steps by phase, the transitions mined from its scans and its decisions.
149
+ // `Flowchart.over` builds one flow from them; a task narrows the rows it
150
+ // builds one from, for the flowchart narrows no table of the host's (#1346).
140
151
  export const DepotState = StructType({ code: StringType, name: StringType, phase: StringType, slots: OptionType(IntegerType) });
141
152
  export const depotStates = e3.input("flowchart_depot_states", ArrayType(DepotState), variant("value", [
142
153
  { code: "ARV", name: "Arrived", phase: "intake", slots: none },
@@ -250,40 +261,53 @@ export const flowchartVariants = example({
250
261
  inputs: [],
251
262
  });
252
263
  /**
253
- * The library (#1248): the Flows tab, then the step types, the transition
254
- * types and the roles that own a decision — each tab its own bound data,
255
- * apart from the flows and from the other tabs: an input's rows, a record's
256
- * rows by name, another input's. Each template card is a drag source, as is
257
- * each of the author's cards, whose tab declares a `drop`; a click selects a
258
- * card, and a click on the selected card lets it go.
264
+ * The library (#1248, #1346): the Flows tab, then the step types, the
265
+ * transition types and the roles that own a decision — each tab its own
266
+ * bound data, apart from the flows and from the other tabs: a templates
267
+ * record by code, one by name, and a record of roles. One rail narrows them,
268
+ * a source each: each templates list and the Owners tab follow the source
269
+ * they name, counting what they show (`2 of 5`) and saying so, with Clear
270
+ * filters, when the rail leaves them none. Each template card is a drag
271
+ * source, as is each of the author's cards, whose tab declares a `drop`; a
272
+ * click selects a card, and a click on the selected card lets it go.
259
273
  */
260
274
  export const flowchartLibrary = example({
261
- keywords: ["Flowchart", "library", "Flowchart.library.states", "Flowchart.library.transitions", "Flowchart.library.tab", "templates", "state templates", "transition templates", "author's tab", "bound data", "Data.bind", "Record.bind", "drag", "cards", "Flowchart.patch"],
262
- description: "A record of flows with its library — the Flows tab, step types from an input's rows, transition types from a record's rows by name, and the author's own cards — each tab its own bound data, each card a drag source a click selects",
275
+ keywords: ["Flowchart", "library", "Flowchart.library.states", "Flowchart.library.transitions", "Flowchart.library.tab", "templates", "state templates", "transition templates", "templates records", "author's tab", "bound data", "Data.bind", "Data.bindPaged", "recordIndex", "Slice.bindRecords", "source", "narrowing", "Record.bind", "drag", "cards", "Flowchart.patch"],
276
+ description: "A record of flows with its library — the Flows tab, step types and transition types from templates records, and the author's own cards from a record of roles — each tab its own bound data, one Slice.bindRecords rail narrowing each through the source it names, each card a drag source a click selects",
263
277
  fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
264
278
  const flows = $.let(Record.bind(depotFlows, [depotFlowsPatch]));
279
+ // What a tab reads whole binds with Data.bind, which keeps it loaded beside its pages.
265
280
  const steps = $.let(Data.bind(stepTemplates));
266
- const moves = $.let(Record.bind(moveTemplates, []));
281
+ const moves = $.let(Data.bind(moveTemplates));
267
282
  const owners = $.let(Data.bind(decisionOwners));
268
- return (_jsx(Box, { height: "560px", children: _jsx(Flowchart, { record: flows, flow: "Inbound parcels", name: "depot", library: [
283
+ // One rail over the library's records, a source each (#1346): each tab follows the source it names.
284
+ const slice = $.let(Slice.bindRecords("flowchart.depot", {
285
+ steps: { source: Data.bindPaged(stepTemplates, { indexes: [stepsByKind] }), label: "Steps", icon: { prefix: "fas", name: "box" },
286
+ fields: { kind: { label: "Step kind", hints: ["Intake", "Sort", "Hold", "Load"] } } },
287
+ moves: { source: Data.bindPaged(moveTemplates, { indexes: [movesByKind] }), label: "Transitions", icon: { prefix: "fas", name: "arrow-right" },
288
+ fields: { kind: { label: "Transition kind" } } },
289
+ owners: { source: Data.bindPaged(decisionOwners, { indexes: [ownersByDesk] }), label: "Owners", icon: { prefix: "fas", name: "user-tie" },
290
+ fields: { desk: { label: "Desk", hints: ["Sort hall", "Hold bay"] } } },
291
+ }));
292
+ return (_jsx(Box, { height: "560px", children: _jsx(Flowchart, { record: flows, flow: "Inbound parcels", name: "depot", slice: { slice }, library: [
269
293
  Flowchart.library.flows(),
270
- // Step types, an input's rows: a card dropped on a lane adds a state seeded with what its drop sets.
294
+ // Step types, a templates record by code: a card dropped on a lane adds a state seeded with what its drop sets.
271
295
  Flowchart.library.states(steps.read(), {
272
- name: "Steps", icon: "box",
273
- key: s => s.code, label: s => s.name, meta: s => some(s.code), group: s => s.kind,
274
- drop: s => Flowchart.patch(Flowchart.Types.State, { key: s.code, label: some(s.name), members: s.slots }),
296
+ name: "Steps", icon: "box", source: "steps",
297
+ label: s => s.name, meta: (_s, code) => some(code), group: s => s.kind,
298
+ drop: (s, code) => Flowchart.patch(Flowchart.Types.State, { key: code, label: some(s.name), members: s.slots }),
275
299
  }),
276
- // Transition types, a record's rows by name: a card dropped on a transition retypes it.
300
+ // Transition types, a templates record by name: a card dropped on a transition retypes it.
277
301
  Flowchart.library.transitions(moves.read(), {
278
- icon: "arrow-right",
279
- key: (_m, name) => name, label: (_m, name) => name, meta: m => some(m.note),
302
+ icon: "arrow-right", source: "moves",
303
+ label: (_m, name) => name, meta: m => some(m.note),
280
304
  drop: m => Flowchart.patch(Flowchart.Types.Link, { kind: some(m.kind), trigger: m.decision }),
281
305
  }),
282
- // The author's own cards: a role dropped on a decision owns it.
306
+ // The author's own cards, a record of roles: a role dropped on a decision owns it.
283
307
  Flowchart.library.tab(owners.read(), {
284
- name: "Owners", icon: "user-tie",
285
- key: o => o.role, label: o => o.name, meta: o => some(o.desk),
286
- drop: o => Flowchart.patch(Flowchart.Types.Trigger, { owner: some(o.role) }),
308
+ name: "Owners", icon: "user-tie", source: "owners",
309
+ key: (_o, role) => role, label: o => o.name, meta: o => some(o.desk),
310
+ drop: (_o, role) => Flowchart.patch(Flowchart.Types.Trigger, { owner: some(role) }),
287
311
  }),
288
312
  ] }) }));
289
313
  } }))),
@@ -294,30 +318,20 @@ export const flowchartLibrary = example({
294
318
  * transitions mined from its scans and its decisions, each an e3 input of the
295
319
  * app's own rows, built into one flow by `Flowchart.over` through their row
296
320
  * mappers and shown read only: decision triggers, evidence-weighted links, a
297
- * ×14 state class, an ↻ in-place loop and an unresolved ghost. A bound slice
298
- * narrows the transitions the flow is built from, its rail at the toolbar's
299
- * end, and the freshness chip names the evidence. Its one pane is the
300
- * inspector, every field of what is selected printed, its Issues the
301
- * unresolved transition.
321
+ * ×14 state class, an ↻ in-place loop and an unresolved ghost. The freshness
322
+ * chip names the evidence. Its one pane is the inspector, every field of what
323
+ * is selected printed, its Issues the unresolved transition.
302
324
  */
303
325
  export const flowchartDepot = example({
304
- keywords: ["Flowchart", "Flowchart.over", "data", "states", "links", "lanes", "tables", "row mappers", "minimal", "planned", "observed", "triggers", "evidence", "slice", "Slice.rows", "Data.bind", "e3.input", "scans", "inspector", "Details", "Issues", "read only", "state class", "in-place", "unresolved", "freshness"],
305
- description: "Parcel-depot flowchart over the host's tables, each an e3 input bound with Data.bind and built into one flow by Flowchart.over, read only — decision triggers, evidence-weighted links, a ×14 state class, an ↻ in-place loop, an unresolved ghost, a bound slice narrowing the transitions, the freshness chip, and the inspector showing the selected state, transition or decision read only, its Issues the unresolved transition",
326
+ keywords: ["Flowchart", "Flowchart.over", "data", "states", "links", "lanes", "tables", "row mappers", "minimal", "planned", "observed", "triggers", "evidence", "Data.bind", "e3.input", "scans", "inspector", "Details", "Issues", "read only", "state class", "in-place", "unresolved", "freshness"],
327
+ description: "Parcel-depot flowchart over the host's tables, each an e3 input bound with Data.bind and built into one flow by Flowchart.over, read only — decision triggers, evidence-weighted links, a ×14 state class, an ↻ in-place loop, an unresolved ghost, the freshness chip, and the inspector showing the selected state, transition or decision read only, its Issues the unresolved transition",
306
328
  fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
307
329
  const states = $.let(Data.bind(depotStates));
308
330
  const scans = $.let(Data.bind(scanTransitions));
309
331
  const decisions = $.let(Data.bind(depotDecisions));
310
- const slice = $.let(Slice.bind("flowchart-depot", scans.read(), {
311
- fields: {
312
- service: { label: "Service" },
313
- src: { label: "From" },
314
- dst: { label: "To" },
315
- },
316
- search: ["src", "dst"],
317
- }));
318
332
  return (_jsx(Box, { height: "600px", children: _jsx(Flowchart, { data: Flowchart.over(states.read(), {
319
333
  state: s => ({ key: s.code, label: s.name, lane: s.phase, members: s.slots }),
320
- links: Slice.rows(slice),
334
+ links: scans.read(),
321
335
  link: l => ({
322
336
  key: l.id, from: l.src, to: l.dst, kind: l.kind, trigger: l.trigger,
323
337
  evidence: { volume: l.parcels, count: l.n, measuredAt: some(l.at), unit: "parcels" },
@@ -329,7 +343,7 @@ export const flowchartDepot = example({
329
343
  ],
330
344
  triggers: decisions.read(),
331
345
  trigger: t => ({ key: t.id, label: t.name, owner: t.who }),
332
- }), slice: slice, affordances: ["filter", "search"], freshness: { label: "evidence-2026.06", date: new Date("2026-06-30T00:00:00Z") }, name: "scans" }) }));
346
+ }), freshness: { label: "evidence-2026.06", date: new Date("2026-06-30T00:00:00Z") }, name: "scans" }) }));
333
347
  } }))),
334
348
  inputs: [],
335
349
  });
@@ -422,7 +436,15 @@ export const indexedFlows = e3.record("flowchart_indexed_flows", Flowchart.Types
422
436
  }];
423
437
  }))));
424
438
  export const indexedFlowsPatch = e3.mutation.patch(indexedFlows);
439
+ // A flow's name is its record's key: an index of its own, so the Flows tab's
440
+ // search finds a flow by its name (#1346), alone and after a description.
441
+ export const flowsByName = e3.recordIndex("name", indexedFlows, {
442
+ key: East.function([StringType, Flowchart.Types.Flow], StringType, (_$, name, _flow) => name),
443
+ });
425
444
  export const flowsByDescription = e3.recordIndex("flowchart_by_description", indexedFlows, { on: ["description"] });
445
+ export const flowsByDescriptionName = e3.recordIndex("flowchart_by_description_name", indexedFlows, {
446
+ key: East.function([StringType, Flowchart.Types.Flow], StructType({ description: OptionType(StringType), name: StringType }), (_$, name, flow) => ({ description: flow.description, name })),
447
+ });
426
448
  // Slice derives controls from each computed index’s declared key type. Scalar
427
449
  // keys use the index name; a composite key supplies its field names.
428
450
  export const flowsByStateCount = e3.recordIndex("stateCount", indexedFlows, {
@@ -438,27 +460,32 @@ export const flowsByDecisionOwner = e3.recordIndex("decisionOwner", indexedFlows
438
460
  keys: East.function([StringType, Flowchart.Types.Flow], SetType(OptionType(StringType)), (_$, _id, flow) => flow.triggers.toSet((_$2, trigger) => trigger.owner)),
439
461
  });
440
462
  export const flowchartRecordIndexes = example({
441
- keywords: ["Flowchart", "record", "indexes", "computed indexes", "state count", "lane", "decision owner", "recordIndex", "Slice.bindRecord", "Slice.rows", "Data.bindPaged", "paging", "Flows tab", "mobile", "Save"],
442
- description: "2,048 route flowcharts in a paged record. Shared Slice filters use maintained indexes on description, computed state count, lane and decision owner. Choose an exact description plus a state-count range together; lane and owner use exact membership. The Flows tab pages results, and drafts keep their original record ID through filtering and Save.",
463
+ keywords: ["Flowchart", "record", "indexes", "computed indexes", "state count", "lane", "decision owner", "recordIndex", "Slice.bindRecords", "flows", "Data.bindPaged", "paging", "Flows tab", "count", "search", "mobile", "Save"],
464
+ description: "2,048 route flowcharts in a paged record, narrowed through the rail's flows source by maintained indexes on name, description, computed state count, lane and decision owner. Choose an exact description plus a state-count range together; lane and owner use exact membership. The Flows tab pages and counts what the rail narrows to, its search box finds a flow by name within it, and drafts keep their original record ID through filtering and Save.",
443
465
  fn: East.function([], UIComponentType, (_$) => (_jsx(Reactive, { children: $ => {
444
466
  const flows = $.let(Record.bind(indexedFlows, [indexedFlowsPatch]));
445
- const indexed = $.let(Data.bindPaged(indexedFlows, { indexes: [flowsByDescription, flowsByStateCount, flowsByDescriptionStateCount, flowsByLane, flowsByDecisionOwner] }));
446
- const slice = $.let(Slice.bindRecord("flowchart.recordIndexes", indexed, {
447
- fields: {
448
- description: { label: "Flows" },
449
- stateCount: { label: "State count" },
450
- lane: { label: "Lane" },
451
- decisionOwner: { label: "Decision owner" },
467
+ // One rail over the flows (#1346): its `flows` source narrows the Flows tab, which pages and counts what it narrows to.
468
+ const slice = $.let(Slice.bindRecords("flowchart.recordIndexes", {
469
+ flows: {
470
+ source: Data.bindPaged(indexedFlows, { indexes: [flowsByName, flowsByDescription, flowsByDescriptionName, flowsByStateCount, flowsByDescriptionStateCount, flowsByLane, flowsByDecisionOwner] }),
471
+ fields: {
472
+ description: { label: "Flows" },
473
+ stateCount: { label: "State count" },
474
+ lane: { label: "Lane" },
475
+ decisionOwner: { label: "Decision owner" },
476
+ name: { label: "Name" },
477
+ },
478
+ search: ["name", "description", "lane", "decisionOwner"],
452
479
  },
453
- search: ["description", "lane", "decisionOwner"],
480
+ }, {
454
481
  presets: [
455
- { id: "inbound", name: "Inbound", where: { description: ["Inbound parcels"] } },
456
- { id: "inbound-review", name: "Inbound · 4–6 states", where: { description: ["Inbound parcels"], stateCount: { from: 4n, to: 7n } } },
457
- { id: "review", name: "Review lane", where: { lane: ["review"] } },
458
- { id: "customs", name: "Customs decisions", where: { decisionOwner: ["customs-desk"] } },
482
+ { id: "inbound", name: "Inbound", where: { flows: { description: ["Inbound parcels"] } } },
483
+ { id: "inbound-review", name: "Inbound · 4–6 states", where: { flows: { description: ["Inbound parcels"], stateCount: { from: 4n, to: 7n } } } },
484
+ { id: "review", name: "Review lane", where: { flows: { lane: ["review"] } } },
485
+ { id: "customs", name: "Customs decisions", where: { flows: { decisionOwner: ["customs-desk"] } } },
459
486
  ],
460
487
  }));
461
- return (_jsx(Box, { width: "100%", height: "640px", children: _jsx(Flowchart, { record: flows, window: Slice.rows(slice), slice: { slice, affordances: ["fields", "search", "presets", "summary"] }, library: [Flowchart.library.flows()], name: "recordIndexes" }) }));
488
+ return (_jsx(Box, { width: "100%", height: "640px", children: _jsx(Flowchart, { record: flows, slice: { slice, affordances: ["fields", "search", "presets", "summary"] }, library: [Flowchart.library.flows()], name: "recordIndexes" }) }));
462
489
  } }))),
463
490
  inputs: [],
464
491
  });