@elaraai/e3-ui 1.0.97 → 1.0.99

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 (491) hide show
  1. package/README.md +0 -2
  2. package/dist/src/allocation/adapters.d.ts +1 -1
  3. package/dist/src/allocation/adapters.js +1 -1
  4. package/dist/src/allocation/index.d.ts +232 -25
  5. package/dist/src/allocation/index.d.ts.map +1 -1
  6. package/dist/src/allocation/index.js +35 -6
  7. package/dist/src/allocation/index.js.map +1 -1
  8. package/dist/src/allocation/types.d.ts +41 -0
  9. package/dist/src/allocation/types.d.ts.map +1 -1
  10. package/dist/src/allocation/types.js +35 -0
  11. package/dist/src/allocation/types.js.map +1 -1
  12. package/dist/src/bind/data-indexed.d.ts +286 -37
  13. package/dist/src/bind/data-indexed.d.ts.map +1 -1
  14. package/dist/src/bind/data-indexed.js +259 -38
  15. package/dist/src/bind/data-indexed.js.map +1 -1
  16. package/dist/src/bind/data.d.ts +48 -9
  17. package/dist/src/bind/data.d.ts.map +1 -1
  18. package/dist/src/bind/data.js +48 -3
  19. package/dist/src/bind/data.js.map +1 -1
  20. package/dist/src/bind/record.d.ts +61 -24
  21. package/dist/src/bind/record.d.ts.map +1 -1
  22. package/dist/src/bind/record.js +17 -57
  23. package/dist/src/bind/record.js.map +1 -1
  24. package/dist/src/calendar/index.d.ts +522 -36
  25. package/dist/src/calendar/index.d.ts.map +1 -1
  26. package/dist/src/calendar/index.js +53 -13
  27. package/dist/src/calendar/index.js.map +1 -1
  28. package/dist/src/calendar/paged.d.ts +89 -0
  29. package/dist/src/calendar/paged.d.ts.map +1 -0
  30. package/dist/src/calendar/paged.js +148 -0
  31. package/dist/src/calendar/paged.js.map +1 -0
  32. package/dist/src/flowchart/index.d.ts +35 -31
  33. package/dist/src/flowchart/index.d.ts.map +1 -1
  34. package/dist/src/flowchart/index.js +35 -31
  35. package/dist/src/flowchart/index.js.map +1 -1
  36. package/dist/src/flowchart/library.d.ts +108 -84
  37. package/dist/src/flowchart/library.d.ts.map +1 -1
  38. package/dist/src/flowchart/library.js +108 -84
  39. package/dist/src/flowchart/library.js.map +1 -1
  40. package/dist/src/flowchart/payload.d.ts +105 -17
  41. package/dist/src/flowchart/payload.d.ts.map +1 -1
  42. package/dist/src/flowchart/payload.js +3 -3
  43. package/dist/src/flowchart/payload.js.map +1 -1
  44. package/dist/src/flowchart/values.d.ts +35 -31
  45. package/dist/src/flowchart/values.d.ts.map +1 -1
  46. package/dist/src/flowchart/values.js +35 -31
  47. package/dist/src/flowchart/values.js.map +1 -1
  48. package/dist/src/flowchart/window.d.ts.map +1 -1
  49. package/dist/src/flowchart/window.js +3 -2
  50. package/dist/src/flowchart/window.js.map +1 -1
  51. package/dist/src/index.d.ts +13 -4
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +20 -1
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/internal.d.ts +18 -8
  56. package/dist/src/internal.d.ts.map +1 -1
  57. package/dist/src/internal.js +40 -10
  58. package/dist/src/internal.js.map +1 -1
  59. package/dist/src/plan/assemble.d.ts +8 -0
  60. package/dist/src/plan/assemble.d.ts.map +1 -1
  61. package/dist/src/plan/assemble.js +1 -1
  62. package/dist/src/plan/assemble.js.map +1 -1
  63. package/dist/src/plan/builders.d.ts +1530 -10
  64. package/dist/src/plan/builders.d.ts.map +1 -1
  65. package/dist/src/plan/builders.js +260 -122
  66. package/dist/src/plan/builders.js.map +1 -1
  67. package/dist/src/plan/event-rows.d.ts +224 -157
  68. package/dist/src/plan/event-rows.d.ts.map +1 -1
  69. package/dist/src/plan/event-rows.js +201 -56
  70. package/dist/src/plan/event-rows.js.map +1 -1
  71. package/dist/src/plan/factories.d.ts +72 -4
  72. package/dist/src/plan/factories.d.ts.map +1 -1
  73. package/dist/src/plan/factories.js +147 -1
  74. package/dist/src/plan/factories.js.map +1 -1
  75. package/dist/src/plan/index.d.ts +152 -125
  76. package/dist/src/plan/index.d.ts.map +1 -1
  77. package/dist/src/plan/index.js +138 -122
  78. package/dist/src/plan/index.js.map +1 -1
  79. package/dist/src/plan/ir.d.ts +1139 -8
  80. package/dist/src/plan/ir.d.ts.map +1 -1
  81. package/dist/src/plan/ir.js +5 -0
  82. package/dist/src/plan/ir.js.map +1 -1
  83. package/dist/src/plan/library.d.ts +65 -42
  84. package/dist/src/plan/library.d.ts.map +1 -1
  85. package/dist/src/plan/library.js +65 -42
  86. package/dist/src/plan/library.js.map +1 -1
  87. package/dist/src/plan/nested-checks.d.ts +146 -0
  88. package/dist/src/plan/nested-checks.d.ts.map +1 -0
  89. package/dist/src/plan/nested-checks.js +468 -0
  90. package/dist/src/plan/nested-checks.js.map +1 -0
  91. package/dist/src/plan/nested-patch.d.ts +35 -0
  92. package/dist/src/plan/nested-patch.d.ts.map +1 -0
  93. package/dist/src/plan/nested-patch.js +143 -0
  94. package/dist/src/plan/nested-patch.js.map +1 -0
  95. package/dist/src/plan/nested-read.d.ts +3250 -0
  96. package/dist/src/plan/nested-read.d.ts.map +1 -0
  97. package/dist/src/plan/nested-read.js +163 -0
  98. package/dist/src/plan/nested-read.js.map +1 -0
  99. package/dist/src/plan/nested.d.ts +280 -0
  100. package/dist/src/plan/nested.d.ts.map +1 -0
  101. package/dist/src/plan/nested.js +6 -0
  102. package/dist/src/plan/nested.js.map +1 -0
  103. package/dist/src/plan/ordered-source.d.ts +3067 -1
  104. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  105. package/dist/src/plan/ordered-source.js +67 -17
  106. package/dist/src/plan/ordered-source.js.map +1 -1
  107. package/dist/src/plan/over.d.ts +111 -75
  108. package/dist/src/plan/over.d.ts.map +1 -1
  109. package/dist/src/plan/over.js +111 -75
  110. package/dist/src/plan/over.js.map +1 -1
  111. package/dist/src/plan/pick.d.ts +15 -3
  112. package/dist/src/plan/pick.d.ts.map +1 -1
  113. package/dist/src/plan/pick.js +75 -36
  114. package/dist/src/plan/pick.js.map +1 -1
  115. package/dist/src/plan/plan.d.ts +3143 -501
  116. package/dist/src/plan/plan.d.ts.map +1 -1
  117. package/dist/src/plan/plan.js +133 -34
  118. package/dist/src/plan/plan.js.map +1 -1
  119. package/dist/src/plan/reads.d.ts +421 -0
  120. package/dist/src/plan/reads.d.ts.map +1 -0
  121. package/dist/src/plan/reads.js +143 -0
  122. package/dist/src/plan/reads.js.map +1 -0
  123. package/dist/src/plan/refs.d.ts +111 -75
  124. package/dist/src/plan/refs.d.ts.map +1 -1
  125. package/dist/src/plan/refs.js +111 -75
  126. package/dist/src/plan/refs.js.map +1 -1
  127. package/dist/src/plan/root.d.ts +14 -7
  128. package/dist/src/plan/root.d.ts.map +1 -1
  129. package/dist/src/plan/root.js +82 -17
  130. package/dist/src/plan/root.js.map +1 -1
  131. package/dist/src/plan/series.d.ts +5153 -4331
  132. package/dist/src/plan/series.d.ts.map +1 -1
  133. package/dist/src/plan/series.js +1082 -266
  134. package/dist/src/plan/series.js.map +1 -1
  135. package/dist/src/plan/shade.d.ts +981 -0
  136. package/dist/src/plan/shade.d.ts.map +1 -0
  137. package/dist/src/plan/shade.js +60 -0
  138. package/dist/src/plan/shade.js.map +1 -0
  139. package/dist/src/plan/types.d.ts +192 -18
  140. package/dist/src/plan/types.d.ts.map +1 -1
  141. package/dist/src/plan/types.js +77 -19
  142. package/dist/src/plan/types.js.map +1 -1
  143. package/dist/src/query/builder.d.ts +3 -3
  144. package/dist/src/query/builder.d.ts.map +1 -1
  145. package/dist/src/query/builder.js +1 -1
  146. package/dist/src/query/library.d.ts +3 -3
  147. package/dist/src/query/library.d.ts.map +1 -1
  148. package/dist/src/query/library.js +1 -1
  149. package/dist/src/query/queries.d.ts +2 -2
  150. package/dist/src/query/queries.js +1 -1
  151. package/dist/src/query/saved.d.ts +8 -4
  152. package/dist/src/query/saved.d.ts.map +1 -1
  153. package/dist/src/query/saved.js +8 -4
  154. package/dist/src/query/saved.js.map +1 -1
  155. package/dist/src/query/types.d.ts +8 -3
  156. package/dist/src/query/types.d.ts.map +1 -1
  157. package/dist/src/query/types.js +8 -3
  158. package/dist/src/query/types.js.map +1 -1
  159. package/dist/src/roster/index.d.ts +583 -39
  160. package/dist/src/roster/index.d.ts.map +1 -1
  161. package/dist/src/roster/index.js +109 -35
  162. package/dist/src/roster/index.js.map +1 -1
  163. package/dist/src/roster/library.d.ts +12 -2
  164. package/dist/src/roster/library.d.ts.map +1 -1
  165. package/dist/src/roster/library.js +8 -0
  166. package/dist/src/roster/library.js.map +1 -1
  167. package/dist/src/roster/lists.d.ts +59 -12
  168. package/dist/src/roster/lists.d.ts.map +1 -1
  169. package/dist/src/roster/lists.js +51 -58
  170. package/dist/src/roster/lists.js.map +1 -1
  171. package/dist/src/roster/targets.d.ts +8 -4
  172. package/dist/src/roster/targets.d.ts.map +1 -1
  173. package/dist/src/roster/targets.js +9 -5
  174. package/dist/src/roster/targets.js.map +1 -1
  175. package/dist/src/roster/times.d.ts +402 -0
  176. package/dist/src/roster/times.d.ts.map +1 -1
  177. package/dist/src/roster/types.d.ts +913 -1
  178. package/dist/src/roster/types.d.ts.map +1 -1
  179. package/dist/src/roster/types.js +43 -3
  180. package/dist/src/roster/types.js.map +1 -1
  181. package/dist/src/schedule/cell-checks.d.ts +85 -0
  182. package/dist/src/schedule/cell-checks.d.ts.map +1 -0
  183. package/dist/src/schedule/cell-checks.js +211 -0
  184. package/dist/src/schedule/cell-checks.js.map +1 -0
  185. package/dist/src/schedule/days.d.ts +1 -1
  186. package/dist/src/schedule/days.js +1 -1
  187. package/dist/src/schedule/events.d.ts +52 -16
  188. package/dist/src/schedule/events.d.ts.map +1 -1
  189. package/dist/src/schedule/events.js +574 -356
  190. package/dist/src/schedule/events.js.map +1 -1
  191. package/dist/src/schedule/fields.d.ts +134 -0
  192. package/dist/src/schedule/fields.d.ts.map +1 -0
  193. package/dist/src/schedule/fields.js +207 -0
  194. package/dist/src/schedule/fields.js.map +1 -0
  195. package/dist/src/schedule/library.d.ts +11 -3
  196. package/dist/src/schedule/library.d.ts.map +1 -1
  197. package/dist/src/schedule/library.js +9 -6
  198. package/dist/src/schedule/library.js.map +1 -1
  199. package/dist/src/schedule/optimise.d.ts +124 -0
  200. package/dist/src/schedule/optimise.d.ts.map +1 -0
  201. package/dist/src/schedule/optimise.js +140 -0
  202. package/dist/src/schedule/optimise.js.map +1 -0
  203. package/dist/src/schedule/pages.d.ts +76 -0
  204. package/dist/src/schedule/pages.d.ts.map +1 -0
  205. package/dist/src/schedule/pages.js +86 -0
  206. package/dist/src/schedule/pages.js.map +1 -0
  207. package/dist/src/schedule/patch.d.ts +1 -1
  208. package/dist/src/schedule/patch.js +1 -1
  209. package/dist/src/schedule/periods.d.ts +8 -4
  210. package/dist/src/schedule/periods.d.ts.map +1 -1
  211. package/dist/src/schedule/periods.js +1 -1
  212. package/dist/src/schedule/periods.js.map +1 -1
  213. package/dist/src/schedule/record-window.d.ts +115 -22
  214. package/dist/src/schedule/record-window.d.ts.map +1 -1
  215. package/dist/src/schedule/record-window.js +140 -62
  216. package/dist/src/schedule/record-window.js.map +1 -1
  217. package/dist/src/schedule/resources.d.ts +9 -5
  218. package/dist/src/schedule/resources.d.ts.map +1 -1
  219. package/dist/src/schedule/resources.js +35 -15
  220. package/dist/src/schedule/resources.js.map +1 -1
  221. package/dist/src/schedule/session.d.ts +15 -1
  222. package/dist/src/schedule/session.d.ts.map +1 -1
  223. package/dist/src/schedule/session.js +30 -18
  224. package/dist/src/schedule/session.js.map +1 -1
  225. package/dist/src/schedule/types.d.ts +455 -37
  226. package/dist/src/schedule/types.d.ts.map +1 -1
  227. package/dist/src/schedule/types.js +79 -18
  228. package/dist/src/schedule/types.js.map +1 -1
  229. package/dist/src/schedule/window.d.ts +30 -9
  230. package/dist/src/schedule/window.d.ts.map +1 -1
  231. package/dist/src/schedule/window.js +101 -49
  232. package/dist/src/schedule/window.js.map +1 -1
  233. package/dist/src/schematic/index.d.ts +287 -0
  234. package/dist/src/schematic/index.d.ts.map +1 -0
  235. package/dist/src/schematic/index.js +216 -0
  236. package/dist/src/schematic/index.js.map +1 -0
  237. package/dist/src/schematic/kinds.d.ts +501 -0
  238. package/dist/src/schematic/kinds.d.ts.map +1 -0
  239. package/dist/src/schematic/kinds.js +1027 -0
  240. package/dist/src/schematic/kinds.js.map +1 -0
  241. package/dist/src/schematic/layers.d.ts +74 -0
  242. package/dist/src/schematic/layers.d.ts.map +1 -0
  243. package/dist/src/schematic/layers.js +99 -0
  244. package/dist/src/schematic/layers.js.map +1 -0
  245. package/dist/src/schematic/library.d.ts +202 -0
  246. package/dist/src/schematic/library.d.ts.map +1 -0
  247. package/dist/src/schematic/library.js +244 -0
  248. package/dist/src/schematic/library.js.map +1 -0
  249. package/dist/src/schematic/payload.d.ts +8310 -0
  250. package/dist/src/schematic/payload.d.ts.map +1 -0
  251. package/dist/src/schematic/payload.js +446 -0
  252. package/dist/src/schematic/payload.js.map +1 -0
  253. package/dist/src/schematic/schematic.d.ts +27 -0
  254. package/dist/src/schematic/schematic.d.ts.map +1 -0
  255. package/dist/src/schematic/schematic.js +17 -0
  256. package/dist/src/schematic/schematic.js.map +1 -0
  257. package/dist/src/schematic/shapes.d.ts +150 -0
  258. package/dist/src/schematic/shapes.d.ts.map +1 -0
  259. package/dist/src/schematic/shapes.js +171 -0
  260. package/dist/src/schematic/shapes.js.map +1 -0
  261. package/dist/src/schematic/templates.d.ts +96 -0
  262. package/dist/src/schematic/templates.d.ts.map +1 -0
  263. package/dist/src/schematic/templates.js +91 -0
  264. package/dist/src/schematic/templates.js.map +1 -0
  265. package/dist/src/schematic/types.d.ts +5766 -0
  266. package/dist/src/schematic/types.d.ts.map +1 -0
  267. package/dist/src/schematic/types.js +688 -0
  268. package/dist/src/schematic/types.js.map +1 -0
  269. package/dist/src/schematic/window.d.ts +213 -0
  270. package/dist/src/schematic/window.d.ts.map +1 -0
  271. package/dist/src/schematic/window.js +340 -0
  272. package/dist/src/schematic/window.js.map +1 -0
  273. package/dist/src/sheet/bridge.d.ts +19 -0
  274. package/dist/src/sheet/bridge.d.ts.map +1 -1
  275. package/dist/src/sheet/bridge.js +28 -21
  276. package/dist/src/sheet/bridge.js.map +1 -1
  277. package/dist/src/sheet/editing-bridge.d.ts +4 -2
  278. package/dist/src/sheet/editing-bridge.d.ts.map +1 -1
  279. package/dist/src/sheet/editing-bridge.js +8 -2
  280. package/dist/src/sheet/editing-bridge.js.map +1 -1
  281. package/dist/src/sheet/editing-types.d.ts +9 -5
  282. package/dist/src/sheet/editing-types.d.ts.map +1 -1
  283. package/dist/src/sheet/editing-types.js +9 -5
  284. package/dist/src/sheet/editing-types.js.map +1 -1
  285. package/dist/src/sheet/index.d.ts +84 -54
  286. package/dist/src/sheet/index.d.ts.map +1 -1
  287. package/dist/src/sheet/index.js +81 -53
  288. package/dist/src/sheet/index.js.map +1 -1
  289. package/dist/src/sheet/library.d.ts +13 -8
  290. package/dist/src/sheet/library.d.ts.map +1 -1
  291. package/dist/src/sheet/library.js +13 -8
  292. package/dist/src/sheet/library.js.map +1 -1
  293. package/dist/src/sheet/optimise.d.ts +69 -0
  294. package/dist/src/sheet/optimise.d.ts.map +1 -0
  295. package/dist/src/sheet/optimise.js +81 -0
  296. package/dist/src/sheet/optimise.js.map +1 -0
  297. package/dist/src/sheet/record.d.ts +1 -1
  298. package/dist/src/sheet/record.js +2 -2
  299. package/dist/src/sheet/record.js.map +1 -1
  300. package/dist/src/sheet/registers.d.ts +157 -133
  301. package/dist/src/sheet/registers.d.ts.map +1 -1
  302. package/dist/src/sheet/registers.js +157 -133
  303. package/dist/src/sheet/registers.js.map +1 -1
  304. package/dist/src/sheet/root.d.ts +6 -1
  305. package/dist/src/sheet/root.d.ts.map +1 -1
  306. package/dist/src/sheet/root.js +17 -5
  307. package/dist/src/sheet/root.js.map +1 -1
  308. package/dist/src/sheet/sheet.d.ts +696 -590
  309. package/dist/src/sheet/sheet.d.ts.map +1 -1
  310. package/dist/src/sheet/sheet.js +49 -15
  311. package/dist/src/sheet/sheet.js.map +1 -1
  312. package/dist/src/sheet/sub-rows.d.ts +106 -76
  313. package/dist/src/sheet/sub-rows.d.ts.map +1 -1
  314. package/dist/src/sheet/sub-rows.js +106 -76
  315. package/dist/src/sheet/sub-rows.js.map +1 -1
  316. package/dist/src/sheet/types.d.ts +57 -20
  317. package/dist/src/sheet/types.d.ts.map +1 -1
  318. package/dist/src/sheet/types.js +4 -8
  319. package/dist/src/sheet/types.js.map +1 -1
  320. package/dist/src/studio/builder.d.ts +3 -153
  321. package/dist/src/studio/builder.d.ts.map +1 -1
  322. package/dist/src/studio/builder.js +1 -1
  323. package/dist/src/studio/canvas.d.ts +5 -4
  324. package/dist/src/studio/canvas.d.ts.map +1 -1
  325. package/dist/src/studio/canvas.js +8 -7
  326. package/dist/src/studio/canvas.js.map +1 -1
  327. package/dist/src/studio/component.d.ts +30 -20
  328. package/dist/src/studio/component.d.ts.map +1 -1
  329. package/dist/src/studio/component.js +26 -61
  330. package/dist/src/studio/component.js.map +1 -1
  331. package/dist/src/studio/index.d.ts +2 -2
  332. package/dist/src/studio/index.d.ts.map +1 -1
  333. package/dist/src/studio/index.js +1 -1
  334. package/dist/src/studio/index.js.map +1 -1
  335. package/dist/src/studio/inspector.d.ts +10 -39
  336. package/dist/src/studio/inspector.d.ts.map +1 -1
  337. package/dist/src/studio/inspector.js +11 -31
  338. package/dist/src/studio/inspector.js.map +1 -1
  339. package/dist/src/studio/library.d.ts +3 -169
  340. package/dist/src/studio/library.d.ts.map +1 -1
  341. package/dist/src/studio/library.js +1 -1
  342. package/dist/src/studio/page.d.ts +0 -8
  343. package/dist/src/studio/page.d.ts.map +1 -1
  344. package/dist/src/studio/pages.d.ts +17 -591
  345. package/dist/src/studio/pages.d.ts.map +1 -1
  346. package/dist/src/studio/pages.js +17 -44
  347. package/dist/src/studio/pages.js.map +1 -1
  348. package/dist/src/studio/palette.d.ts +2 -7
  349. package/dist/src/studio/palette.d.ts.map +1 -1
  350. package/dist/src/studio/palette.js +4 -5
  351. package/dist/src/studio/palette.js.map +1 -1
  352. package/dist/src/studio/publish.d.ts +8 -18
  353. package/dist/src/studio/publish.d.ts.map +1 -1
  354. package/dist/src/studio/publish.js +10 -36
  355. package/dist/src/studio/publish.js.map +1 -1
  356. package/dist/src/utils/derive.d.ts +12 -12
  357. package/dist/src/utils/derive.d.ts.map +1 -1
  358. package/dist/src/utils/derive.js +5 -2
  359. package/dist/src/utils/derive.js.map +1 -1
  360. package/dist/src/utils/keyed-rows.d.ts +41 -0
  361. package/dist/src/utils/keyed-rows.d.ts.map +1 -0
  362. package/dist/src/utils/keyed-rows.js +64 -0
  363. package/dist/src/utils/keyed-rows.js.map +1 -0
  364. package/dist/src/utils/optimise.d.ts +79 -0
  365. package/dist/src/utils/optimise.d.ts.map +1 -0
  366. package/dist/src/utils/optimise.js +46 -0
  367. package/dist/src/utils/optimise.js.map +1 -0
  368. package/dist/src/utils/ordered-source.d.ts.map +1 -1
  369. package/dist/src/utils/ordered-source.js +14 -5
  370. package/dist/src/utils/ordered-source.js.map +1 -1
  371. package/dist/test/allocation/allocation.examples.d.ts +1900 -1610
  372. package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
  373. package/dist/test/allocation/allocation.examples.js +179 -89
  374. package/dist/test/allocation/allocation.examples.js.map +1 -1
  375. package/dist/test/allocation/optimise.examples.d.ts +109 -0
  376. package/dist/test/allocation/optimise.examples.d.ts.map +1 -0
  377. package/dist/test/allocation/optimise.examples.js +223 -0
  378. package/dist/test/allocation/optimise.examples.js.map +1 -0
  379. package/dist/test/bind/data/data.examples.d.ts +1172 -514
  380. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  381. package/dist/test/bind/data/data.examples.js +284 -164
  382. package/dist/test/bind/data/data.examples.js.map +1 -1
  383. package/dist/test/bind/record/record.examples.d.ts +457 -428
  384. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  385. package/dist/test/bind/record/record.examples.js +41 -21
  386. package/dist/test/bind/record/record.examples.js.map +1 -1
  387. package/dist/test/calendar/calendar-records.examples.d.ts +162 -170
  388. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  389. package/dist/test/calendar/calendar-records.examples.js +20 -12
  390. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  391. package/dist/test/calendar/calendar-windows.examples.d.ts +9 -0
  392. package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -0
  393. package/dist/test/calendar/calendar-windows.examples.js +111 -0
  394. package/dist/test/calendar/calendar-windows.examples.js.map +1 -0
  395. package/dist/test/calendar/calendar.examples.d.ts +1172 -915
  396. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  397. package/dist/test/calendar/calendar.examples.js +211 -124
  398. package/dist/test/calendar/calendar.examples.js.map +1 -1
  399. package/dist/test/calendar/optimise.examples.d.ts +132 -0
  400. package/dist/test/calendar/optimise.examples.d.ts.map +1 -0
  401. package/dist/test/calendar/optimise.examples.js +75 -0
  402. package/dist/test/calendar/optimise.examples.js.map +1 -0
  403. package/dist/test/examples-package.d.ts +49 -16
  404. package/dist/test/examples-package.d.ts.map +1 -1
  405. package/dist/test/examples-package.js +138 -49
  406. package/dist/test/examples-package.js.map +1 -1
  407. package/dist/test/flowchart/flowchart.examples.d.ts +3841 -2840
  408. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  409. package/dist/test/flowchart/flowchart.examples.js +211 -121
  410. package/dist/test/flowchart/flowchart.examples.js.map +1 -1
  411. package/dist/test/plan/optimise.examples.d.ts +207 -0
  412. package/dist/test/plan/optimise.examples.d.ts.map +1 -0
  413. package/dist/test/plan/optimise.examples.js +98 -0
  414. package/dist/test/plan/optimise.examples.js.map +1 -0
  415. package/dist/test/plan/plan-events.examples.d.ts +4055 -3279
  416. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  417. package/dist/test/plan/plan-events.examples.js +492 -319
  418. package/dist/test/plan/plan-events.examples.js.map +1 -1
  419. package/dist/test/plan/plan-nested.examples.d.ts +1829 -0
  420. package/dist/test/plan/plan-nested.examples.d.ts.map +1 -0
  421. package/dist/test/plan/plan-nested.examples.js +321 -0
  422. package/dist/test/plan/plan-nested.examples.js.map +1 -0
  423. package/dist/test/plan/plan-records.examples.d.ts +391 -244
  424. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  425. package/dist/test/plan/plan-records.examples.js +186 -65
  426. package/dist/test/plan/plan-records.examples.js.map +1 -1
  427. package/dist/test/plan/plan-windows.examples.d.ts +1978 -803
  428. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  429. package/dist/test/plan/plan-windows.examples.js +269 -99
  430. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  431. package/dist/test/plan/plan.examples.d.ts +2238 -5726
  432. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  433. package/dist/test/plan/plan.examples.js +846 -973
  434. package/dist/test/plan/plan.examples.js.map +1 -1
  435. package/dist/test/query/query.examples.d.ts +5221 -3005
  436. package/dist/test/query/query.examples.d.ts.map +1 -1
  437. package/dist/test/query/query.examples.js +169 -118
  438. package/dist/test/query/query.examples.js.map +1 -1
  439. package/dist/test/roster/domain.examples.d.ts +804 -0
  440. package/dist/test/roster/domain.examples.d.ts.map +1 -1
  441. package/dist/test/roster/domain.examples.js +3 -3
  442. package/dist/test/roster/domain.examples.js.map +1 -1
  443. package/dist/test/roster/optimise.examples.d.ts +485 -0
  444. package/dist/test/roster/optimise.examples.d.ts.map +1 -0
  445. package/dist/test/roster/optimise.examples.js +155 -0
  446. package/dist/test/roster/optimise.examples.js.map +1 -0
  447. package/dist/test/roster/roster-records.examples.d.ts +364 -404
  448. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  449. package/dist/test/roster/roster-records.examples.js +40 -26
  450. package/dist/test/roster/roster-records.examples.js.map +1 -1
  451. package/dist/test/roster/roster.examples.d.ts +5091 -1424
  452. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  453. package/dist/test/roster/roster.examples.js +255 -109
  454. package/dist/test/roster/roster.examples.js.map +1 -1
  455. package/dist/test/roster/warehouse.d.ts +150 -7
  456. package/dist/test/roster/warehouse.d.ts.map +1 -1
  457. package/dist/test/roster/warehouse.js +36 -11
  458. package/dist/test/roster/warehouse.js.map +1 -1
  459. package/dist/test/schedule/schedule.examples.d.ts +2646 -2473
  460. package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
  461. package/dist/test/schedule/schedule.examples.js +144 -88
  462. package/dist/test/schedule/schedule.examples.js.map +1 -1
  463. package/dist/test/schematic/schematic-records.examples.d.ts +454 -0
  464. package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -0
  465. package/dist/test/schematic/schematic-records.examples.js +219 -0
  466. package/dist/test/schematic/schematic-records.examples.js.map +1 -0
  467. package/dist/test/schematic/schematic.examples.d.ts +2640 -0
  468. package/dist/test/schematic/schematic.examples.d.ts.map +1 -0
  469. package/dist/test/schematic/schematic.examples.js +559 -0
  470. package/dist/test/schematic/schematic.examples.js.map +1 -0
  471. package/dist/test/sheet/optimise.examples.d.ts +184 -0
  472. package/dist/test/sheet/optimise.examples.d.ts.map +1 -0
  473. package/dist/test/sheet/optimise.examples.js +79 -0
  474. package/dist/test/sheet/optimise.examples.js.map +1 -0
  475. package/dist/test/sheet/sheet-records.examples.d.ts +208 -356
  476. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  477. package/dist/test/sheet/sheet-records.examples.js +66 -29
  478. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  479. package/dist/test/sheet/sheet.examples.d.ts +3650 -3377
  480. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  481. package/dist/test/sheet/sheet.examples.js +406 -296
  482. package/dist/test/sheet/sheet.examples.js.map +1 -1
  483. package/dist/test/studio/component.examples.js +2 -2
  484. package/dist/test/studio/component.examples.js.map +1 -1
  485. package/dist/test/studio/page.examples.js +6 -6
  486. package/dist/test/studio/page.examples.js.map +1 -1
  487. package/dist/test/studio/studio.examples.d.ts +2329 -873
  488. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  489. package/dist/test/studio/studio.examples.js +155 -107
  490. package/dist/test/studio/studio.examples.js.map +1 -1
  491. package/package.json +15 -11
@@ -0,0 +1,688 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * The Schematic's East types (#1386, #1401, `Schematic Builder Spec.md` §4.7,
7
+ * §4.8, §5): the value types its accessors return and its wire carries
8
+ * (`Schematic.Types`) — an app's records hold their own types, which the
9
+ * accessors map (D35) — the references, boxes and the connect veto's candidate
10
+ * the Schematic speaks in, and the kinds' wire: each kind closed over the
11
+ * app's record behind East functions over beast2 bytes, so the payload is one
12
+ * type whatever the rows hold.
13
+ *
14
+ * @packageDocumentation
15
+ */
16
+ import { ArrayType, BlobType, BooleanType, DictType, EastTypeType, FloatType, FunctionType, NullType, OptionType, StringType, StructType, VariantType, } from "@elaraai/east";
17
+ import { RecordCommitInfoType } from "@elaraai/e3-types";
18
+ import { StatusTokenType } from "@elaraai/east-ui";
19
+ import { EditingReadinessType, EditingType, FieldSpecType } from "@elaraai/east-ui/internal";
20
+ import { ScheduleEntriesType, ScheduleFieldWriteType, ScheduleReadyEntryType } from "../schedule/types.js";
21
+ import { RowInspectorType } from "../utils/row-inspector.js";
22
+ // ============================================================================
23
+ // The value types the accessors return
24
+ // ============================================================================
25
+ /**
26
+ * Theme tone for zone strokes, hatching, links and items.
27
+ *
28
+ * @remarks
29
+ * Colour stays theme-owned: data selects a tone and the renderer's recipe
30
+ * maps each tone to its token.
31
+ *
32
+ * @property brand - Brand teal
33
+ * @property ink - Foreground ink
34
+ * @property muted - Muted foreground
35
+ * @property success - Status ok
36
+ * @property warning - Status warn
37
+ * @property danger - Status bad
38
+ */
39
+ export const SchematicToneType = VariantType({
40
+ /** Brand teal */
41
+ brand: NullType,
42
+ /** Foreground ink */
43
+ ink: NullType,
44
+ /** Muted foreground */
45
+ muted: NullType,
46
+ /** Status ok */
47
+ success: NullType,
48
+ /** Status warn */
49
+ warning: NullType,
50
+ /** Status bad */
51
+ danger: NullType,
52
+ });
53
+ /**
54
+ * Zone render pattern — each case carries its style configuration.
55
+ *
56
+ * @property outline - Dashed boundary with an eyebrow label (halls, cages)
57
+ * @property hatch - Hatched band (hot and cold aisles, exclusion zones): an annotation, holding no items and taking no tap
58
+ */
59
+ export const SchematicZonePatternType = VariantType({
60
+ /** Dashed boundary with an eyebrow label (halls, cages) */
61
+ outline: StructType({
62
+ /** Stroke tone (default `muted`) */
63
+ tone: OptionType(SchematicToneType),
64
+ }),
65
+ /** Hatched band (hot and cold aisles, exclusion zones) */
66
+ hatch: StructType({
67
+ /** Hatch-line tone (default `muted`) */
68
+ tone: OptionType(SchematicToneType),
69
+ /** Line spacing in pixels (default 8) */
70
+ spacing: OptionType(FloatType),
71
+ /** Line angle in degrees (default 45) */
72
+ angle: OptionType(FloatType),
73
+ }),
74
+ });
75
+ /**
76
+ * Link render style — each case carries its stroke configuration.
77
+ *
78
+ * @property solid - A physical run (fibre, power cable)
79
+ * @property dashed - A routing / logical connection
80
+ */
81
+ export const SchematicLinkStyleType = VariantType({
82
+ /** A physical run (fibre, power cable) */
83
+ solid: StructType({
84
+ /** Stroke tone (default: the links' muted ink, #1403) */
85
+ tone: OptionType(SchematicToneType),
86
+ /** Stroke width in pixels (default 2.5) */
87
+ weight: OptionType(FloatType),
88
+ }),
89
+ /** A routing / logical connection */
90
+ dashed: StructType({
91
+ /** Stroke tone (default: the links' muted ink, #1403) */
92
+ tone: OptionType(SchematicToneType),
93
+ /** Stroke width in pixels (default 1.5) */
94
+ weight: OptionType(FloatType),
95
+ }),
96
+ });
97
+ /**
98
+ * Link routing mode.
99
+ *
100
+ * @remarks
101
+ * `orthogonal` (the default) routes axis-aligned with rounded corners — the
102
+ * conventional cable-plan look; `direct` draws straight segments between
103
+ * anchors. `via` waypoints apply in both modes.
104
+ *
105
+ * @property orthogonal - Axis-aligned with rounded corners
106
+ * @property direct - Straight segments between anchors
107
+ */
108
+ export const SchematicRouteType = VariantType({
109
+ /** Axis-aligned with rounded corners */
110
+ orthogonal: StructType({
111
+ /** Corner radius in pixels (default 8) */
112
+ corner: OptionType(FloatType),
113
+ }),
114
+ /** Straight segments between anchors */
115
+ direct: NullType,
116
+ });
117
+ /**
118
+ * A point in world units: an item's centre, or a link's waypoint.
119
+ *
120
+ * @property x - World x
121
+ * @property y - World y
122
+ */
123
+ export const SchematicPointType = StructType({
124
+ /** World x */
125
+ x: FloatType,
126
+ /** World y */
127
+ y: FloatType,
128
+ });
129
+ /**
130
+ * A polyline / polygon vertex — an offset from its entity's anchor in world
131
+ * units, plus a DXF `bulge`.
132
+ *
133
+ * @remarks
134
+ * Geometry is drawn about its entity's anchor (D22): an item's centre, or a
135
+ * zone's box centre. `bulge` encodes the edge from THIS vertex to the NEXT
136
+ * one: `0` is a straight segment; nonzero is a circular arc where
137
+ * `bulge = tan(includedAngle / 4)` and the sign gives the turn direction
138
+ * (positive = counter-clockwise in world space), so curved walls and cable
139
+ * routes are stored exactly. For a closed `polygon`, the last vertex's `bulge`
140
+ * applies to the closing edge back to the first vertex.
141
+ *
142
+ * @property x - Offset from the anchor along x, in world units
143
+ * @property y - Offset from the anchor along y, in world units
144
+ * @property bulge - DXF bulge for the edge to the next vertex (0 = straight)
145
+ */
146
+ export const SchematicVertexType = StructType({
147
+ /** Offset from the anchor along x, in world units */
148
+ x: FloatType,
149
+ /** Offset from the anchor along y, in world units */
150
+ y: FloatType,
151
+ /** DXF bulge for the edge to the next vertex (0 = straight; `tan(includedAngle / 4)`) */
152
+ bulge: FloatType,
153
+ });
154
+ /**
155
+ * Shape geometry: an item's `footprint` and a zone's `geometry`, drawn about
156
+ * the entity's anchor (D22) — an item's centre, or a zone's box centre.
157
+ *
158
+ * @remarks
159
+ * Geometry is what the renderer strokes and fills; the entity's box — an
160
+ * item's `width` and `height` about its centre, a zone's `x`, `y`, `width`
161
+ * and `height` — stays its bounds, and geometry outside its box still draws.
162
+ * So an item's outline moves with it, and a template's lands where it is
163
+ * dropped. An import that holds world coordinates subtracts the anchor once.
164
+ *
165
+ * @property rect - The entity's box itself: a zone's rect, an item's card and marker
166
+ * @property circle - A circle centred on the anchor; `radius` in world units (columns, cooling towers)
167
+ * @property polyline - An open, arc-aware polyline, its vertices offsets from the anchor; an optional band `width` in world units
168
+ * @property polygon - A closed, arc-aware polygon (>= 3 vertices, auto-closed), its vertices offsets from the anchor
169
+ */
170
+ export const SchematicGeometryType = VariantType({
171
+ /** The entity's box itself. */
172
+ rect: NullType,
173
+ /** A circle centred on the anchor; `radius` in world units. */
174
+ circle: StructType({
175
+ /** Circle radius in world units. */
176
+ radius: FloatType,
177
+ }),
178
+ /** An open, arc-aware polyline about the anchor; optional band width. */
179
+ polyline: StructType({
180
+ /** Vertices, offsets from the anchor, in order (each carries a DXF bulge). */
181
+ vertices: ArrayType(SchematicVertexType),
182
+ /** Optional band width in world units — the stroke widens into a duct bank / aisle. */
183
+ width: OptionType(FloatType),
184
+ }),
185
+ /** A closed, arc-aware polygon about the anchor (>= 3 vertices, auto-closed). */
186
+ polygon: StructType({
187
+ /** Boundary vertices, offsets from the anchor, in order (each carries a DXF bulge). */
188
+ vertices: ArrayType(SchematicVertexType),
189
+ }),
190
+ });
191
+ /**
192
+ * How one case of an item's status shows: on its card's dot and its marker.
193
+ *
194
+ * @property label - Its words
195
+ * @property tone - Its tone: success, warning, danger, info or neutral
196
+ * @property ring - Whether it draws as an open ring, as a tentative status does
197
+ */
198
+ export const SchematicStatusType = StructType({ label: StringType, tone: StatusTokenType, ring: BooleanType });
199
+ /**
200
+ * Constructs the status table of a status variant: one
201
+ * {@link SchematicStatusType} per case.
202
+ *
203
+ * @typeParam V - The status variant
204
+ * @param statusType - The status variant
205
+ * @returns A struct with a field per case
206
+ * @throws {Error} When the type is not a variant
207
+ */
208
+ export function SchematicStatusCasesFor(statusType) {
209
+ if (statusType.type !== "Variant")
210
+ throw new Error("Schematic.Types.StatusCases: a status is a variant, one case per status");
211
+ const cases = Object.keys(statusType.cases);
212
+ return StructType(Object.fromEntries(cases.map((c) => [c, SchematicStatusType])));
213
+ }
214
+ /**
215
+ * A card's bar: how full an item is.
216
+ *
217
+ * @property value - What it holds
218
+ * @property max - What it holds at most
219
+ */
220
+ export const SchematicMeterType = StructType({ value: FloatType, max: FloatType });
221
+ /**
222
+ * An entity, named by its kind's slot and its key: a rack in the `racks`
223
+ * item slot, a fibre run in the `fibre` link slot.
224
+ *
225
+ * @property kind - The kind's slot name
226
+ * @property key - The entity's key
227
+ */
228
+ export const SchematicRefType = StructType({ kind: StringType, key: StringType });
229
+ /**
230
+ * A box in world units: its minimum and maximum corners.
231
+ *
232
+ * @property minX - Left edge
233
+ * @property minY - Top edge
234
+ * @property maxX - Right edge
235
+ * @property maxY - Bottom edge
236
+ */
237
+ export const SchematicBoxType = StructType({ minX: FloatType, minY: FloatType, maxX: FloatType, maxY: FloatType });
238
+ /**
239
+ * A named layer — a cross-cutting group of items, zones, links and nets the
240
+ * Layers tab shows, hides, isolates and locks together (§8) — as
241
+ * `Schematic.layers` reads it from the app's record (D36).
242
+ *
243
+ * @remarks
244
+ * Membership is by key: an entity's `layer` names the layer it is on, by the
245
+ * layers record's key. The viewer's choices are view state, which the renderer
246
+ * keeps; `visible` and `locked` here are the author's defaults those choices
247
+ * override.
248
+ *
249
+ * @property key - Layer identity: its record's key, which entities name in their `layer`
250
+ * @property label - Its name
251
+ * @property visible - Author default visibility; absent / `some(true)` ⇒ shown, `some(false)` ⇒ ships hidden
252
+ * @property locked - Author default lock (non-selectable); absent ⇒ unlocked
253
+ * @property opacity - Optional dim (0–1) for the layer's items; absent ⇒ full
254
+ * @property tone - Optional swatch tone
255
+ * @property color - Optional swatch colour: a theme colour token (`status.warn`), over its tone
256
+ */
257
+ export const SchematicLayerType = StructType({
258
+ /** Layer identity: its record's key, which entities name in their `layer`. */
259
+ key: StringType,
260
+ /** Its name. */
261
+ label: StringType,
262
+ /** Author default visibility; `some(false)` ships hidden, absent ⇒ shown. */
263
+ visible: OptionType(BooleanType),
264
+ /** Author default lock (non-selectable); absent ⇒ unlocked. */
265
+ locked: OptionType(BooleanType),
266
+ /** Optional dim (0–1) for the layer's items; absent ⇒ full. */
267
+ opacity: OptionType(FloatType),
268
+ /** Optional swatch tone. */
269
+ tone: OptionType(SchematicToneType),
270
+ /** Optional swatch colour: a theme colour token (`status.warn`), over its tone. */
271
+ color: OptionType(StringType),
272
+ });
273
+ /**
274
+ * Positive emphasis on the rows a narrowing holds, when narrowed-out rows are
275
+ * dimmed rather than hidden (§10.3).
276
+ *
277
+ * @property halo - A static ring on each match
278
+ * @property pulse - A ring that breathes
279
+ */
280
+ export const SchematicEmphasisType = VariantType({
281
+ /** A static ring on each match. */
282
+ halo: NullType,
283
+ /** A ring that breathes. */
284
+ pulse: NullType,
285
+ });
286
+ /**
287
+ * How a narrowed-out row draws (§10.3): hidden, or as context.
288
+ *
289
+ * @property show - `hide` (the default) or `dim`
290
+ * @property opacity - A dimmed row's opacity (0.35 by default)
291
+ * @property desaturate - Whether a dimmed row is drained of colour (on by default)
292
+ * @property dot - Whether a dimmed row draws as a bare marker
293
+ * @property emphasis - A ring on each match, whatever `show` is
294
+ * @property frame - Whether the matches are boxed
295
+ * @property fit - Whether the camera flies to the matches when the narrowing changes
296
+ */
297
+ export const SchematicNarrowedType = StructType({
298
+ show: VariantType({ hide: NullType, dim: NullType }),
299
+ opacity: FloatType,
300
+ desaturate: BooleanType,
301
+ dot: BooleanType,
302
+ emphasis: OptionType(SchematicEmphasisType),
303
+ frame: BooleanType,
304
+ fit: BooleanType,
305
+ });
306
+ // ============================================================================
307
+ // The connect veto's candidate
308
+ // ============================================================================
309
+ /**
310
+ * What a Connect, a Retarget or an Extend would write, as `canConnect` hears
311
+ * it before the draft snaps (§5, D34): the link or net kind the gesture writes
312
+ * and its two items.
313
+ *
314
+ * @property kind - The slot of the link or net kind the gesture writes
315
+ * @property from - The item it would run from: a link's `from`, a net's feeding member
316
+ * @property to - The item it would run to: a link's `to`, a net's fed member
317
+ */
318
+ export const SchematicCandidateType = StructType({ kind: StringType, from: SchematicRefType, to: SchematicRefType });
319
+ // ============================================================================
320
+ // The roles a kind's rows give the renderer (§4.8)
321
+ // ============================================================================
322
+ /**
323
+ * One placed item's roles, as its kind reads them from the app's row: what
324
+ * the canvas draws it by.
325
+ *
326
+ * @property position - Its centre in world units; `none` for a row of a kind with a backlog that has no position yet
327
+ * @property label - Its card's name and its labelled dot
328
+ * @property width - Its box's width about its centre: its card's width and the bounds its footprint lies in
329
+ * @property height - Its box's height about its centre
330
+ * @property footprint - The shape drawn at card zoom, about its centre
331
+ * @property layer - The layer it is on
332
+ * @property icon - Its card's Font Awesome solid icon
333
+ * @property sublabel - Its card's second line
334
+ * @property metric - Its card's figure
335
+ * @property meter - Its card's bar
336
+ * @property status - Its status, as its kind's `status` shows the case its row holds
337
+ * @property tone - An override of the status colour
338
+ * @property color - An override of the status colour: a theme colour token (D14)
339
+ * @property weight - Its footprint's stroke
340
+ * @property fillOpacity - Its footprint's fill
341
+ */
342
+ export const SchematicItemType = StructType({
343
+ position: OptionType(SchematicPointType),
344
+ label: StringType,
345
+ width: OptionType(FloatType),
346
+ height: OptionType(FloatType),
347
+ footprint: OptionType(SchematicGeometryType),
348
+ layer: OptionType(StringType),
349
+ icon: OptionType(StringType),
350
+ sublabel: OptionType(StringType),
351
+ metric: OptionType(StringType),
352
+ meter: OptionType(SchematicMeterType),
353
+ status: OptionType(SchematicStatusType),
354
+ tone: OptionType(SchematicToneType),
355
+ color: OptionType(StringType),
356
+ weight: OptionType(FloatType),
357
+ fillOpacity: OptionType(FloatType),
358
+ });
359
+ /**
360
+ * One zone's roles: a hall, a cage, an aisle.
361
+ *
362
+ * @property x - Its box's top-left corner, in world units
363
+ * @property y - Its box's top
364
+ * @property width - Its box's width
365
+ * @property height - Its box's height
366
+ * @property label - The eyebrow on its boundary
367
+ * @property pattern - Outline, or hatch
368
+ * @property geometry - Its drawn shape, about its box's centre; its box stays its bounds
369
+ * @property layer - The layer it is on
370
+ * @property tone - An override of its pattern's tone
371
+ * @property color - An override of its pattern's tone: a theme colour token (D14)
372
+ * @property fillOpacity - Its fill
373
+ * @property weight - Its stroke
374
+ */
375
+ export const SchematicZoneType = StructType({
376
+ x: FloatType,
377
+ y: FloatType,
378
+ width: FloatType,
379
+ height: FloatType,
380
+ label: StringType,
381
+ pattern: SchematicZonePatternType,
382
+ geometry: OptionType(SchematicGeometryType),
383
+ layer: OptionType(StringType),
384
+ tone: OptionType(SchematicToneType),
385
+ color: OptionType(StringType),
386
+ fillOpacity: OptionType(FloatType),
387
+ weight: OptionType(FloatType),
388
+ });
389
+ /**
390
+ * One link's roles: a fibre run between two items.
391
+ *
392
+ * @property from - The item it runs from
393
+ * @property to - The item it runs to
394
+ * @property via - Its waypoints, in world units, in order
395
+ * @property label - Its caption, on a knockout at its path's middle
396
+ * @property metric - The figure after its label
397
+ * @property style - Solid or dashed, its tone and its weight
398
+ * @property route - Orthogonal or direct
399
+ * @property layer - The layer it is on
400
+ */
401
+ export const SchematicLinkType = StructType({
402
+ from: SchematicRefType,
403
+ to: SchematicRefType,
404
+ via: ArrayType(SchematicPointType),
405
+ label: OptionType(StringType),
406
+ metric: OptionType(StringType),
407
+ style: SchematicLinkStyleType,
408
+ route: SchematicRouteType,
409
+ layer: OptionType(StringType),
410
+ });
411
+ /**
412
+ * One net's roles: a trunk joining many items to many, as a power
413
+ * distribution unit feeds a row of racks.
414
+ *
415
+ * @property sources - The items on its feeding side
416
+ * @property destinations - The items on its fed side
417
+ * @property via - Its trunk's waypoints, in world units, in order
418
+ * @property label - Its caption, on a knockout at its trunk's middle
419
+ * @property metric - The figure after its label
420
+ * @property style - Solid or dashed, its tone and its weight
421
+ * @property route - Its trunk: orthogonal or direct
422
+ * @property layer - The layer it is on
423
+ */
424
+ export const SchematicNetType = StructType({
425
+ sources: ArrayType(SchematicRefType),
426
+ destinations: ArrayType(SchematicRefType),
427
+ via: ArrayType(SchematicPointType),
428
+ label: OptionType(StringType),
429
+ metric: OptionType(StringType),
430
+ style: SchematicLinkStyleType,
431
+ route: SchematicRouteType,
432
+ layer: OptionType(StringType),
433
+ });
434
+ /**
435
+ * A details row's roles (§4.5): what an item's card draws from the details
436
+ * record keyed as its kind is.
437
+ *
438
+ * @property status - Its status
439
+ * @property meter - Its card's bar
440
+ * @property metric - Its card's figure
441
+ * @property sublabel - Its card's second line
442
+ */
443
+ export const SchematicDetailsRolesType = StructType({
444
+ status: OptionType(SchematicStatusType),
445
+ meter: OptionType(SchematicMeterType),
446
+ metric: OptionType(StringType),
447
+ sublabel: OptionType(StringType),
448
+ });
449
+ /**
450
+ * Which of an item's card's roles its kind's details give (§4.5): what a card
451
+ * keeps the place of while its details row is read, and draws there as a
452
+ * placeholder until the row lands (#1398) — never a value it has not read.
453
+ *
454
+ * @property status - Whether the details give its status
455
+ * @property meter - Whether they give its card's bar
456
+ * @property metric - Whether they give its card's figure
457
+ * @property sublabel - Whether they give its card's second line
458
+ */
459
+ export const SchematicCardRolesType = StructType({ status: BooleanType, meter: BooleanType, metric: BooleanType, sublabel: BooleanType });
460
+ /**
461
+ * One stored row as a kind's `rows` gives it: its roles, read in the pass
462
+ * that reads the row, and the row as bytes at the record's row type — what a
463
+ * write and the editing session take.
464
+ *
465
+ * @typeParam R - The roles' type
466
+ * @param roles - The roles' type
467
+ * @returns The entry's type
468
+ */
469
+ export function SchematicEntryType(roles) {
470
+ return StructType({ roles, row: BlobType });
471
+ }
472
+ /** One stored item: its roles and its row's bytes. */
473
+ export const SchematicItemEntryType = SchematicEntryType(SchematicItemType);
474
+ /** One stored zone: its roles and its row's bytes. */
475
+ export const SchematicZoneEntryType = SchematicEntryType(SchematicZoneType);
476
+ /** One stored link: its roles and its row's bytes. */
477
+ export const SchematicLinkEntryType = SchematicEntryType(SchematicLinkType);
478
+ /** One stored net: its roles and its row's bytes. */
479
+ export const SchematicNetEntryType = SchematicEntryType(SchematicNetType);
480
+ /** One stored details row: its roles and its row's bytes. */
481
+ export const SchematicDetailsEntryType = SchematicEntryType(SchematicDetailsRolesType);
482
+ /**
483
+ * The fields a kind's box is, as its roles name them (§11.4): what an area
484
+ * index its source lists must name too, for the kind to be read by area — an
485
+ * item's placed by its centre, a zone's by its corner.
486
+ *
487
+ * @property x - The field its box's `x` is
488
+ * @property y - The field its box's `y` is
489
+ * @property width - The field its box's width is; `none` for an item kind with no box, whose items are points
490
+ * @property height - The field its box's height is; `none` as `width` is
491
+ */
492
+ export const SchematicBoxFieldsType = StructType({ x: StringType, y: StringType, width: OptionType(StringType), height: OptionType(StringType) });
493
+ /**
494
+ * A link's ends, as Connect and Retarget write them.
495
+ *
496
+ * @property from - The item it runs from
497
+ * @property to - The item it runs to
498
+ */
499
+ export const SchematicEndsType = StructType({ from: SchematicRefType, to: SchematicRefType });
500
+ /**
501
+ * A net's sides, as Connect's Shift session, a leg's Delete and Extend write
502
+ * them.
503
+ *
504
+ * @property sources - The items on its feeding side
505
+ * @property destinations - The items on its fed side
506
+ */
507
+ export const SchematicSidesType = StructType({ sources: ArrayType(SchematicRefType), destinations: ArrayType(SchematicRefType) });
508
+ /**
509
+ * One template, as the library lists it and a drop creates from it (§4.6).
510
+ *
511
+ * @property key - Its key: its record's key
512
+ * @property name - Its card's name
513
+ * @property group - The library's group for it
514
+ * @property icon - Its card's Font Awesome solid icon
515
+ * @property values - Every field of the row but what a drop places, as bytes
516
+ */
517
+ export const SchematicTemplateType = StructType({
518
+ key: StringType,
519
+ name: StringType,
520
+ group: OptionType(StringType),
521
+ icon: OptionType(StringType),
522
+ values: BlobType,
523
+ });
524
+ // ============================================================================
525
+ // The kinds' wire (§4.8)
526
+ // ============================================================================
527
+ /** A record's commits, newest first, as its handle reads them. */
528
+ const HistoryType = FunctionType([], OptionType(ArrayType(RecordCommitInfoType)));
529
+ /** The author's check over drafted entries, one result each. */
530
+ const ReadyType = FunctionType([ArrayType(ScheduleReadyEntryType)], ArrayType(EditingReadinessType));
531
+ /**
532
+ * What every kind and a kind's details carry: how the record is read and
533
+ * written, and the inspector's form.
534
+ *
535
+ * @property editable - Whether the record is bound with its patch door: what its gestures, drops and edits write
536
+ * @property editing - The shared session over the record, with its patch door; `none` for a record bound read only
537
+ * @property entries - The record read by key, for a record read through its source or bound with `Data.bindPaged`; `none` for one read whole
538
+ * @property history - The record's commits, newest first; `none` for a record bound with `Data.bind` or `Data.bindPaged`
539
+ * @property fields - The inspector's form over the fields no role writes (`Fields`)
540
+ * @property inspector - The kind's own Details in place of its form, over bytes
541
+ * @property ready - The app's check on drafted rows, one result each
542
+ * @property set - The row with each field write applied in order — a field at any depth, its value as bytes at the field's type — and every other field as it was: what an author's card dropped on an entity sets (#1390); `none` for a write naming no field of the row
543
+ * @property rowType - The record's row type
544
+ */
545
+ const RecordSideFields = {
546
+ editable: BooleanType,
547
+ editing: OptionType(EditingType),
548
+ entries: OptionType(ScheduleEntriesType),
549
+ history: OptionType(HistoryType),
550
+ fields: ArrayType(FieldSpecType),
551
+ inspector: OptionType(RowInspectorType),
552
+ ready: OptionType(ReadyType),
553
+ set: FunctionType([BlobType, ArrayType(ScheduleFieldWriteType)], OptionType(BlobType)),
554
+ rowType: EastTypeType,
555
+ };
556
+ /**
557
+ * What a reader read of a record by key or by area, made its stored rows
558
+ * (#1393): the rows as beast2 bytes of an `Array` of `{ key: String, row: R }`
559
+ * at the record's row type `R`, each row's roles read in one pass beside its
560
+ * bytes.
561
+ */
562
+ const RowsRead = (entry) => FunctionType([BlobType], DictType(StringType, entry));
563
+ /**
564
+ * A kind's details (§4.5), closed: a record of the app's, keyed as its kind
565
+ * is, which the inspector shows beside the row and the cards on screen draw.
566
+ *
567
+ * @property rows - The details read whole, by key, each its roles and its row; `none` while the read is in flight. `none` on the wire for details read by key, whose `entries` read them
568
+ * @property rowsOf - The details rows a reader read by key, as bytes, made their roles beside their bytes: a window's cards' details, one request a window (#1393)
569
+ * @property paged - The `id` of the paged read the details are read by key through, beside a kind read through its source: what a reader asks the rows of a window's cards from, all in one request (#1393); `none` for details read whole
570
+ * @property read - A details row's roles, from its bytes and its key
571
+ * @property roles - Which of the kind's cards' roles they give: what a card keeps the place of, a placeholder, while its details row is read (#1398)
572
+ */
573
+ export const SchematicKindDetailsType = StructType({
574
+ ...RecordSideFields,
575
+ rows: OptionType(FunctionType([], OptionType(DictType(StringType, SchematicDetailsEntryType)))),
576
+ rowsOf: RowsRead(SchematicDetailsEntryType),
577
+ paged: OptionType(StringType),
578
+ read: FunctionType([BlobType, StringType], SchematicDetailsRolesType),
579
+ roles: SchematicCardRolesType,
580
+ });
581
+ /**
582
+ * What every kind carries beside its record's side: its slot, its name, its
583
+ * icon and its details.
584
+ *
585
+ * @property key - The kind's slot name
586
+ * @property name - Its name
587
+ * @property icon - Its Font Awesome solid icon; empty for an item kind whose cards' icons are an accessor's
588
+ * @property details - Its details record; `none` for a kind with none
589
+ */
590
+ const KindFields = {
591
+ key: StringType,
592
+ name: StringType,
593
+ icon: StringType,
594
+ details: OptionType(SchematicKindDetailsType),
595
+ ...RecordSideFields,
596
+ };
597
+ /** A kind's stored rows a read holds, by key: each its roles and its row; `none` while the read is in flight. */
598
+ const RowsOf = (entry) => FunctionType([], OptionType(DictType(StringType, entry)));
599
+ /**
600
+ * One item kind, closed (§4.1, §4.8).
601
+ *
602
+ * @property backlog - Whether its `x` and `y` are Options: its rows with no position are its backlog
603
+ * @property status - How each case of its status shows
604
+ * @property rows - Its stored items a read holds, by key, each its roles and its row: its record read whole, or its narrowing read complete through its source
605
+ * @property rowsOf - Its rows a reader read by area, or by key, as bytes, made its stored items: a window's (#1393)
606
+ * @property paged - The `id` of the paged read its rows are read by key through, for a kind read through its source: what
607
+ * a reader asks the far ends of the links and nets touching its window of, all of a window's in one request (#1393);
608
+ * `none` for a kind read whole
609
+ * @property box - The fields its box is, at its centre: what an area index it is read by names (§11.4)
610
+ * @property read - A drafted row's roles, from its bytes and its key
611
+ * @property write - The row with its position written — `none`, unplaced — and every other field as it was; `none` where it can't be: no position for a kind with no backlog
612
+ * @property create - A new row at a position, every other field from a template's values or its type's default; `none` as `write` refuses
613
+ * @property templates - Its templates
614
+ * @property templatesSource - The slice's source its templates list names
615
+ */
616
+ export const SchematicItemKindType = StructType({
617
+ ...KindFields,
618
+ backlog: BooleanType,
619
+ status: ArrayType(StructType({ case: StringType, status: SchematicStatusType })),
620
+ rows: RowsOf(SchematicItemEntryType),
621
+ rowsOf: RowsRead(SchematicItemEntryType),
622
+ paged: OptionType(StringType),
623
+ box: SchematicBoxFieldsType,
624
+ read: FunctionType([BlobType, StringType], SchematicItemType),
625
+ write: FunctionType([BlobType, OptionType(SchematicPointType)], OptionType(BlobType)),
626
+ create: FunctionType([OptionType(SchematicPointType), OptionType(BlobType)], OptionType(BlobType)),
627
+ templates: ArrayType(SchematicTemplateType),
628
+ templatesSource: OptionType(StringType),
629
+ });
630
+ /**
631
+ * One zone kind, closed (§4.2, §4.8). Zones take no gesture on the canvas:
632
+ * their fields are edited through the inspector.
633
+ *
634
+ * @property rows - Its stored zones a read holds, by key, each its roles and its row: its record read whole, or its narrowing read complete through its source
635
+ * @property rowsOf - Its rows a reader read by area, as bytes, made its stored zones: a window's (#1393)
636
+ * @property box - The fields its box is, at its corner: what an area index it is read by names (§11.4)
637
+ * @property read - A drafted row's roles, from its bytes and its key
638
+ */
639
+ export const SchematicZoneKindType = StructType({
640
+ ...KindFields,
641
+ rows: RowsOf(SchematicZoneEntryType),
642
+ rowsOf: RowsRead(SchematicZoneEntryType),
643
+ box: SchematicBoxFieldsType,
644
+ read: FunctionType([BlobType, StringType], SchematicZoneType),
645
+ });
646
+ /**
647
+ * One link kind, closed (§4.3, §4.8).
648
+ *
649
+ * @property ends - The item slots each end holds keys of
650
+ * @property rows - Its stored links a read holds, by key, each its roles and its row
651
+ * @property read - A drafted row's roles, from its bytes and its key
652
+ * @property write - The row with its ends written and every other field as it was; `none` for an end of a slot its field holds no keys of
653
+ * @property create - A new link between two items, every other field from a template's values or its type's default; `none` as `write` refuses
654
+ * @property templates - Its templates, which retype a link they are dropped on
655
+ * @property templatesSource - The slice's source its templates list names
656
+ */
657
+ export const SchematicLinkKindType = StructType({
658
+ ...KindFields,
659
+ ends: StructType({ from: ArrayType(StringType), to: ArrayType(StringType) }),
660
+ rows: RowsOf(SchematicLinkEntryType),
661
+ read: FunctionType([BlobType, StringType], SchematicLinkType),
662
+ write: FunctionType([BlobType, SchematicEndsType], OptionType(BlobType)),
663
+ create: FunctionType([SchematicEndsType, OptionType(BlobType)], OptionType(BlobType)),
664
+ templates: ArrayType(SchematicTemplateType),
665
+ templatesSource: OptionType(StringType),
666
+ });
667
+ /**
668
+ * One net kind, closed (§4.4, §4.8).
669
+ *
670
+ * @property sides - The item slot each side holds keys of
671
+ * @property rows - Its stored nets a read holds, by key, each its roles and its row
672
+ * @property read - A drafted row's roles, from its bytes and its key
673
+ * @property write - The row with its sides written and every other field as it was; `none` for a member of a slot a side holds no keys of
674
+ * @property create - A new net, every other field from a template's values or its type's default; `none` as `write` refuses
675
+ * @property templates - Its templates
676
+ * @property templatesSource - The slice's source its templates list names
677
+ */
678
+ export const SchematicNetKindType = StructType({
679
+ ...KindFields,
680
+ sides: StructType({ sources: StringType, destinations: StringType }),
681
+ rows: RowsOf(SchematicNetEntryType),
682
+ read: FunctionType([BlobType, StringType], SchematicNetType),
683
+ write: FunctionType([BlobType, SchematicSidesType], OptionType(BlobType)),
684
+ create: FunctionType([SchematicSidesType, OptionType(BlobType)], OptionType(BlobType)),
685
+ templates: ArrayType(SchematicTemplateType),
686
+ templatesSource: OptionType(StringType),
687
+ });
688
+ //# sourceMappingURL=types.js.map