@elaraai/east-ui 1.0.30 → 1.0.32

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 (167) hide show
  1. package/README.md +1 -1
  2. package/dist/src/charts/chart/index.d.ts +116 -12
  3. package/dist/src/charts/chart/index.d.ts.map +1 -1
  4. package/dist/src/charts/chart/index.js +100 -37
  5. package/dist/src/charts/chart/index.js.map +1 -1
  6. package/dist/src/charts/index.d.ts +2 -1
  7. package/dist/src/charts/index.d.ts.map +1 -1
  8. package/dist/src/charts/index.js +2 -1
  9. package/dist/src/charts/index.js.map +1 -1
  10. package/dist/src/charts/spec/index.d.ts +5 -3
  11. package/dist/src/charts/spec/index.d.ts.map +1 -1
  12. package/dist/src/charts/spec/index.js +2 -2
  13. package/dist/src/charts/spec/index.js.map +1 -1
  14. package/dist/src/charts/spec/types.d.ts +7 -2
  15. package/dist/src/charts/spec/types.d.ts.map +1 -1
  16. package/dist/src/charts/spec/types.js +7 -2
  17. package/dist/src/charts/spec/types.js.map +1 -1
  18. package/dist/src/collections/blend/index.d.ts +59 -0
  19. package/dist/src/collections/blend/index.d.ts.map +1 -1
  20. package/dist/src/collections/blend/index.js +1 -0
  21. package/dist/src/collections/blend/index.js.map +1 -1
  22. package/dist/src/collections/blend/types.d.ts +66 -0
  23. package/dist/src/collections/blend/types.d.ts.map +1 -1
  24. package/dist/src/collections/blend/types.js +15 -1
  25. package/dist/src/collections/blend/types.js.map +1 -1
  26. package/dist/src/collections/board/index.d.ts +381 -28
  27. package/dist/src/collections/board/index.d.ts.map +1 -1
  28. package/dist/src/collections/board/index.js +133 -5
  29. package/dist/src/collections/board/index.js.map +1 -1
  30. package/dist/src/collections/board/types.d.ts +1 -198
  31. package/dist/src/collections/board/types.d.ts.map +1 -1
  32. package/dist/src/collections/board/types.js +6 -73
  33. package/dist/src/collections/board/types.js.map +1 -1
  34. package/dist/src/collections/gantt/index.d.ts +63 -24
  35. package/dist/src/collections/gantt/index.d.ts.map +1 -1
  36. package/dist/src/collections/gantt/index.js +98 -64
  37. package/dist/src/collections/gantt/index.js.map +1 -1
  38. package/dist/src/collections/gantt/types.d.ts +31 -76
  39. package/dist/src/collections/gantt/types.d.ts.map +1 -1
  40. package/dist/src/collections/gantt/types.js +18 -60
  41. package/dist/src/collections/gantt/types.js.map +1 -1
  42. package/dist/src/collections/library/index.d.ts +700 -17
  43. package/dist/src/collections/library/index.d.ts.map +1 -1
  44. package/dist/src/collections/library/index.js +66 -12
  45. package/dist/src/collections/library/index.js.map +1 -1
  46. package/dist/src/collections/library/types.d.ts +710 -38
  47. package/dist/src/collections/library/types.d.ts.map +1 -1
  48. package/dist/src/collections/library/types.js +48 -20
  49. package/dist/src/collections/library/types.js.map +1 -1
  50. package/dist/src/collections/planner/index.d.ts +45 -26
  51. package/dist/src/collections/planner/index.d.ts.map +1 -1
  52. package/dist/src/collections/planner/index.js +37 -27
  53. package/dist/src/collections/planner/index.js.map +1 -1
  54. package/dist/src/collections/planner/types.d.ts +11 -0
  55. package/dist/src/collections/planner/types.d.ts.map +1 -1
  56. package/dist/src/collections/planner/types.js +11 -0
  57. package/dist/src/collections/planner/types.js.map +1 -1
  58. package/dist/src/collections/roster/index.d.ts +397 -21
  59. package/dist/src/collections/roster/index.d.ts.map +1 -1
  60. package/dist/src/collections/roster/index.js +94 -4
  61. package/dist/src/collections/roster/index.js.map +1 -1
  62. package/dist/src/collections/roster/types.d.ts +15 -161
  63. package/dist/src/collections/roster/types.d.ts.map +1 -1
  64. package/dist/src/collections/roster/types.js +13 -58
  65. package/dist/src/collections/roster/types.js.map +1 -1
  66. package/dist/src/collections/table/index.d.ts +8 -0
  67. package/dist/src/collections/table/index.d.ts.map +1 -1
  68. package/dist/src/collections/table/index.js +22 -0
  69. package/dist/src/collections/table/index.js.map +1 -1
  70. package/dist/src/collections/table/types.d.ts +17 -0
  71. package/dist/src/collections/table/types.d.ts.map +1 -1
  72. package/dist/src/collections/table/types.js.map +1 -1
  73. package/dist/src/component.d.ts +1411 -299
  74. package/dist/src/component.d.ts.map +1 -1
  75. package/dist/src/component.js +131 -11
  76. package/dist/src/component.js.map +1 -1
  77. package/dist/src/contracts/drag.d.ts +122 -1
  78. package/dist/src/contracts/drag.d.ts.map +1 -1
  79. package/dist/src/contracts/drag.js +46 -1
  80. package/dist/src/contracts/drag.js.map +1 -1
  81. package/dist/src/contracts/index.d.ts +2 -1
  82. package/dist/src/contracts/index.d.ts.map +1 -1
  83. package/dist/src/contracts/index.js +2 -1
  84. package/dist/src/contracts/index.js.map +1 -1
  85. package/dist/src/contracts/review.d.ts +198 -0
  86. package/dist/src/contracts/review.d.ts.map +1 -0
  87. package/dist/src/contracts/review.js +163 -0
  88. package/dist/src/contracts/review.js.map +1 -0
  89. package/dist/src/index.d.ts +3 -2
  90. package/dist/src/index.d.ts.map +1 -1
  91. package/dist/src/index.js +4 -2
  92. package/dist/src/index.js.map +1 -1
  93. package/dist/src/internal.d.ts +4 -2
  94. package/dist/src/internal.d.ts.map +1 -1
  95. package/dist/src/internal.js +5 -2
  96. package/dist/src/internal.js.map +1 -1
  97. package/dist/src/layout/expandable/index.d.ts +116 -0
  98. package/dist/src/layout/expandable/index.d.ts.map +1 -0
  99. package/dist/src/layout/expandable/index.js +129 -0
  100. package/dist/src/layout/expandable/index.js.map +1 -0
  101. package/dist/src/layout/expandable/types.d.ts +43 -0
  102. package/dist/src/layout/expandable/types.d.ts.map +1 -0
  103. package/dist/src/layout/expandable/types.js +18 -0
  104. package/dist/src/layout/expandable/types.js.map +1 -0
  105. package/dist/src/layout/index.d.ts +1 -0
  106. package/dist/src/layout/index.d.ts.map +1 -1
  107. package/dist/src/layout/index.js +1 -0
  108. package/dist/src/layout/index.js.map +1 -1
  109. package/dist/src/runtime/charts/chart.d.ts +16 -13
  110. package/dist/src/runtime/charts/chart.d.ts.map +1 -1
  111. package/dist/src/runtime/charts/chart.js +16 -13
  112. package/dist/src/runtime/charts/chart.js.map +1 -1
  113. package/dist/src/runtime/collections/library.d.ts +4 -2
  114. package/dist/src/runtime/collections/library.d.ts.map +1 -1
  115. package/dist/src/runtime/collections/library.js +4 -2
  116. package/dist/src/runtime/collections/library.js.map +1 -1
  117. package/dist/src/runtime/layout/expandable.d.ts +43 -0
  118. package/dist/src/runtime/layout/expandable.d.ts.map +1 -0
  119. package/dist/src/runtime/layout/expandable.js +41 -0
  120. package/dist/src/runtime/layout/expandable.js.map +1 -0
  121. package/dist/src/runtime/layout/index.d.ts +1 -0
  122. package/dist/src/runtime/layout/index.d.ts.map +1 -1
  123. package/dist/src/runtime/layout/index.js +1 -0
  124. package/dist/src/runtime/layout/index.js.map +1 -1
  125. package/dist/test/charts/chart.examples.d.ts +8 -4
  126. package/dist/test/charts/chart.examples.d.ts.map +1 -1
  127. package/dist/test/charts/chart.examples.js +89 -34
  128. package/dist/test/charts/chart.examples.js.map +1 -1
  129. package/dist/test/collections/blend.examples.d.ts +10 -1
  130. package/dist/test/collections/blend.examples.d.ts.map +1 -1
  131. package/dist/test/collections/blend.examples.js +52 -6
  132. package/dist/test/collections/blend.examples.js.map +1 -1
  133. package/dist/test/collections/board.examples.d.ts +8 -1
  134. package/dist/test/collections/board.examples.d.ts.map +1 -1
  135. package/dist/test/collections/board.examples.js +32 -5
  136. package/dist/test/collections/board.examples.js.map +1 -1
  137. package/dist/test/collections/gantt.examples.d.ts +26 -1
  138. package/dist/test/collections/gantt.examples.d.ts.map +1 -1
  139. package/dist/test/collections/gantt.examples.js +153 -27
  140. package/dist/test/collections/gantt.examples.js.map +1 -1
  141. package/dist/test/collections/library.examples.d.ts +3 -0
  142. package/dist/test/collections/library.examples.d.ts.map +1 -1
  143. package/dist/test/collections/library.examples.js +107 -2
  144. package/dist/test/collections/library.examples.js.map +1 -1
  145. package/dist/test/collections/planner.examples.d.ts +14 -0
  146. package/dist/test/collections/planner.examples.d.ts.map +1 -1
  147. package/dist/test/collections/planner.examples.js +127 -3
  148. package/dist/test/collections/planner.examples.js.map +1 -1
  149. package/dist/test/collections/roster.examples.d.ts +17 -1
  150. package/dist/test/collections/roster.examples.d.ts.map +1 -1
  151. package/dist/test/collections/roster.examples.js +89 -9
  152. package/dist/test/collections/roster.examples.js.map +1 -1
  153. package/dist/test/collections/table.examples.d.ts +16 -0
  154. package/dist/test/collections/table.examples.d.ts.map +1 -1
  155. package/dist/test/collections/table.examples.js +62 -2
  156. package/dist/test/collections/table.examples.js.map +1 -1
  157. package/dist/test/disclosure/story.examples.js +3 -3
  158. package/dist/test/disclosure/story.examples.js.map +1 -1
  159. package/dist/test/layout/expandable.examples.d.ts +3 -0
  160. package/dist/test/layout/expandable.examples.d.ts.map +1 -0
  161. package/dist/test/layout/expandable.examples.js +31 -0
  162. package/dist/test/layout/expandable.examples.js.map +1 -0
  163. package/dist/test/layout/index.d.ts +1 -0
  164. package/dist/test/layout/index.d.ts.map +1 -1
  165. package/dist/test/layout/index.js +1 -0
  166. package/dist/test/layout/index.js.map +1 -1
  167. package/package.json +3 -3
@@ -21,13 +21,259 @@
21
21
  *
22
22
  * @packageDocumentation
23
23
  */
24
- import { type ExprType, type SubtypeExprOrValue, type TypeOf, ArrayType, type BooleanType, type FunctionType, type IntegerType, StringType, StructType, type NullType } from "@elaraai/east";
24
+ import { type ExprType, type SubtypeExprOrValue, type TypeOf, ArrayType, BooleanType, FunctionType, IntegerType, OptionType, StringType, StructType, NullType } from "@elaraai/east";
25
25
  import { UIComponentType } from "../../component.js";
26
26
  import { DensityType, type DensityLiteral } from "../../style/interaction.js";
27
- import { type CellRefType, type DragEventType } from "../../contracts/drag.js";
27
+ import { CellRefType, DragEventType } from "../../contracts/drag.js";
28
28
  import { PlannerStateType } from "../planner/types.js";
29
29
  import { BoardModeType, type BoardModeLiteral } from "./types.js";
30
- export { BoardModeType, type BoardModeLiteral, BoardEntityType, BoardAssignmentType, BoardRequirementType, BoardRootType, } from "./types.js";
30
+ import { RowRefType, type ReviewConfig } from "../../contracts/review.js";
31
+ export { BoardModeType, type BoardModeLiteral, BoardEntityType, BoardAssignmentType, BoardRequirementType, } from "./types.js";
32
+ /**
33
+ * East StructType for the Board component.
34
+ *
35
+ * @remarks
36
+ * Flat resolved tables — the renderer groups assignments into cells by
37
+ * `area × shift` and joins each to `people` by person key for the chip face.
38
+ * Assignment states reuse the Planner event-state grammar
39
+ * ({@link PlannerStateType}); the `model` flavour renders as the dashed
40
+ * ghost with the acceptance affordance. The component renders no built-in
41
+ * user-facing copy. Defined here (not `types.ts`) since #265: the root
42
+ * carries the shared review config, whose `summary` is a `UIComponentType` —
43
+ * `component.ts` mirrors this arm inline with the recursion `node`.
44
+ *
45
+ * @property id - DnD target identity
46
+ * @property sources - Library ids accepted for `add` drags
47
+ * @property mode - `published` (committed-only, immutable) or `edit`
48
+ * @property areaHeader - Optional frozen area column header (none = blank)
49
+ * @property areaWidth - Optional CSS width for the frozen area column
50
+ * @property areas - The grid rows
51
+ * @property shifts - The grid columns (this day's shift types, in order)
52
+ * @property people - The chip directory (faces), joined by person key
53
+ * @property assignments - The person chips (grouped into cells by area × shift)
54
+ * @property requirements - Optional per-cell coverage (none = no coverage chrome)
55
+ * @property density - Optional density
56
+ * @property maxVisible - Optional per-cell chip cap before the `+N` overflow
57
+ * @property summary - Optional status-strip text (open / proposed counts)
58
+ * @property canDrop - Optional IR-level drop veto over synthesized candidate events
59
+ * @property onDrag - Drag funnel — add / move / remove events
60
+ * @property onSelect - Assignment / cell click callback
61
+ * @property onAccept - Ghost-assignment acceptance callback (ONE proposed assignment)
62
+ * @property onAddAt - Open-slot / empty-cell click callback (edit mode)
63
+ * @property review - Optional batch review foot (shared contract, #265)
64
+ */
65
+ export declare const BoardRootType: StructType<{
66
+ /** DnD target identity */
67
+ readonly id: StringType;
68
+ /** Library ids accepted for `add` drags */
69
+ readonly sources: ArrayType<StringType>;
70
+ /** `published` (committed-only, immutable) or `edit` */
71
+ readonly mode: import("@elaraai/east").VariantType<{
72
+ readonly published: NullType;
73
+ readonly edit: NullType;
74
+ }>;
75
+ /** Optional frozen area column header (none = blank) */
76
+ readonly areaHeader: OptionType<StringType>;
77
+ /** Optional CSS width for the frozen area column (none = the Planner-consistent 150px) */
78
+ readonly areaWidth: OptionType<StringType>;
79
+ /** The grid rows */
80
+ readonly areas: ArrayType<StructType<{
81
+ readonly key: StringType;
82
+ readonly label: StringType;
83
+ readonly sublabel: OptionType<StringType>;
84
+ }>>;
85
+ /** The grid columns (this day's shift types, in order) */
86
+ readonly shifts: ArrayType<StructType<{
87
+ readonly key: StringType;
88
+ readonly label: StringType;
89
+ readonly sublabel: OptionType<StringType>;
90
+ }>>;
91
+ /** The chip directory (faces), joined by person key */
92
+ readonly people: ArrayType<StructType<{
93
+ readonly key: StringType;
94
+ readonly label: StringType;
95
+ readonly sublabel: OptionType<StringType>;
96
+ }>>;
97
+ /** The person chips (grouped into cells by area × shift) */
98
+ readonly assignments: ArrayType<StructType<{
99
+ readonly key: StringType;
100
+ readonly person: StringType;
101
+ readonly area: StringType;
102
+ readonly shift: StringType;
103
+ readonly state: import("@elaraai/east").VariantType<{
104
+ readonly committed: NullType;
105
+ readonly proposed: import("@elaraai/east").VariantType<{
106
+ readonly added: NullType;
107
+ readonly model: NullType;
108
+ readonly removed: NullType;
109
+ }>;
110
+ readonly rejected: NullType;
111
+ }>;
112
+ }>>;
113
+ /** Optional per-cell coverage (none = no coverage chrome) */
114
+ readonly requirements: OptionType<ArrayType<StructType<{
115
+ readonly area: StringType;
116
+ readonly shift: StringType;
117
+ readonly required: IntegerType;
118
+ }>>>;
119
+ /** Optional density */
120
+ readonly density: OptionType<import("@elaraai/east").VariantType<{
121
+ readonly comfortable: NullType;
122
+ readonly compact: NullType;
123
+ readonly condensed: NullType;
124
+ }>>;
125
+ /** Optional per-cell chip cap before the `+N` overflow */
126
+ readonly maxVisible: OptionType<IntegerType>;
127
+ /** Optional status-strip text (open / proposed counts) */
128
+ readonly summary: OptionType<StringType>;
129
+ /** Optional IR-level drop veto — consulted per hovered cell with the
130
+ * synthesized candidate event ({@link CanDropFnType} semantics); `false`
131
+ * ⇒ the ⊘ invalid stage and the drop is a no-op. Absent ⇒ accept. The
132
+ * factory's deprecated `canAssign` sugar compiles into this predicate. */
133
+ readonly canDrop: OptionType<FunctionType<[import("@elaraai/east").VariantType<{
134
+ readonly add: StructType<{
135
+ readonly from: StructType<{
136
+ readonly library: StringType;
137
+ readonly key: StringType;
138
+ }>;
139
+ readonly into: StructType<{
140
+ readonly surface: StringType;
141
+ readonly row: StringType;
142
+ readonly slot: StringType;
143
+ readonly event: OptionType<StringType>;
144
+ }>;
145
+ readonly duplicate: BooleanType;
146
+ }>;
147
+ readonly move: StructType<{
148
+ readonly from: StructType<{
149
+ readonly surface: StringType;
150
+ readonly row: StringType;
151
+ readonly slot: StringType;
152
+ readonly event: OptionType<StringType>;
153
+ }>;
154
+ readonly to: StructType<{
155
+ readonly surface: StringType;
156
+ readonly row: StringType;
157
+ readonly slot: StringType;
158
+ readonly event: OptionType<StringType>;
159
+ }>;
160
+ }>;
161
+ readonly remove: StructType<{
162
+ readonly from: StructType<{
163
+ readonly surface: StringType;
164
+ readonly row: StringType;
165
+ readonly slot: StringType;
166
+ readonly event: OptionType<StringType>;
167
+ }>;
168
+ readonly to: import("@elaraai/east").VariantType<{
169
+ readonly trash: NullType;
170
+ readonly source: NullType;
171
+ }>;
172
+ }>;
173
+ readonly resize: StructType<{
174
+ readonly event: StructType<{
175
+ readonly surface: StringType;
176
+ readonly row: StringType;
177
+ readonly slot: StringType;
178
+ readonly event: OptionType<StringType>;
179
+ }>;
180
+ readonly edge: import("@elaraai/east").VariantType<{
181
+ readonly start: NullType;
182
+ readonly end: NullType;
183
+ }>;
184
+ }>;
185
+ }>], BooleanType>>;
186
+ /** Drag funnel — add / move / remove events */
187
+ readonly onDrag: OptionType<FunctionType<[import("@elaraai/east").VariantType<{
188
+ readonly add: StructType<{
189
+ readonly from: StructType<{
190
+ readonly library: StringType;
191
+ readonly key: StringType;
192
+ }>;
193
+ readonly into: StructType<{
194
+ readonly surface: StringType;
195
+ readonly row: StringType;
196
+ readonly slot: StringType;
197
+ readonly event: OptionType<StringType>;
198
+ }>;
199
+ readonly duplicate: BooleanType;
200
+ }>;
201
+ readonly move: StructType<{
202
+ readonly from: StructType<{
203
+ readonly surface: StringType;
204
+ readonly row: StringType;
205
+ readonly slot: StringType;
206
+ readonly event: OptionType<StringType>;
207
+ }>;
208
+ readonly to: StructType<{
209
+ readonly surface: StringType;
210
+ readonly row: StringType;
211
+ readonly slot: StringType;
212
+ readonly event: OptionType<StringType>;
213
+ }>;
214
+ }>;
215
+ readonly remove: StructType<{
216
+ readonly from: StructType<{
217
+ readonly surface: StringType;
218
+ readonly row: StringType;
219
+ readonly slot: StringType;
220
+ readonly event: OptionType<StringType>;
221
+ }>;
222
+ readonly to: import("@elaraai/east").VariantType<{
223
+ readonly trash: NullType;
224
+ readonly source: NullType;
225
+ }>;
226
+ }>;
227
+ readonly resize: StructType<{
228
+ readonly event: StructType<{
229
+ readonly surface: StringType;
230
+ readonly row: StringType;
231
+ readonly slot: StringType;
232
+ readonly event: OptionType<StringType>;
233
+ }>;
234
+ readonly edge: import("@elaraai/east").VariantType<{
235
+ readonly start: NullType;
236
+ readonly end: NullType;
237
+ }>;
238
+ }>;
239
+ }>], NullType>>;
240
+ /** Assignment / cell click callback */
241
+ readonly onSelect: OptionType<FunctionType<[StructType<{
242
+ readonly surface: StringType;
243
+ readonly row: StringType;
244
+ readonly slot: StringType;
245
+ readonly event: OptionType<StringType>;
246
+ }>], NullType>>;
247
+ /** Ghost-assignment acceptance callback — resolves ONE proposed
248
+ * assignment; `review`'s batch verbs sign off the whole board. The
249
+ * interplay is host-owned (no implicit cascading in the component). */
250
+ readonly onAccept: OptionType<FunctionType<[StructType<{
251
+ readonly surface: StringType;
252
+ readonly row: StringType;
253
+ readonly slot: StringType;
254
+ readonly event: OptionType<StringType>;
255
+ }>], NullType>>;
256
+ /** Open-slot / empty-cell click callback (edit mode) */
257
+ readonly onAddAt: OptionType<FunctionType<[StructType<{
258
+ readonly surface: StringType;
259
+ readonly row: StringType;
260
+ readonly slot: StringType;
261
+ readonly event: OptionType<StringType>;
262
+ }>], NullType>>;
263
+ /** Optional batch review foot (#265) — the shared contract's commitBar
264
+ * verbs (`onApproveAll` / `onRejectAll` / `onRerun` + `summary`). Board
265
+ * is single-day areas × shifts, so v1 renders the FOOT only: the
266
+ * per-row fields (`columnLabel`, `onApprove`, `onReject`) are unused
267
+ * (a per-area decision column is an epic candidate); the factory warns
268
+ * when they are set. */
269
+ readonly review: OptionType<import("../../contracts/review.js").ReviewStructType<StructType<{
270
+ readonly rowIndex: IntegerType;
271
+ }>, import("@elaraai/east").RecursiveType<import("../../component.js").UIComponentNode>>>;
272
+ }>;
273
+ /**
274
+ * Type representing the Board component.
275
+ */
276
+ export type BoardRootType = typeof BoardRootType;
31
277
  /**
32
278
  * The struct element type of a `SubtypeExprOrValue<ArrayType<StructType>>`.
33
279
  */
@@ -114,7 +360,8 @@ export interface BoardRequirementFields {
114
360
  * @property density - Optional density
115
361
  * @property maxVisible - Optional per-cell chip cap before the `+N` overflow
116
362
  * @property summary - Optional status-strip text (open / proposed counts)
117
- * @property canAssign - Optional assignability predicate `(person, area, shift) => Boolean`
363
+ * @property canDrop - Optional IR-level drop veto over synthesized candidate events
364
+ * @property canAssign - Deprecated assignability sugar — compiled into `canDrop`
118
365
  * @property onDrag - Drag funnel — add / move / remove events
119
366
  * @property onSelect - Assignment / cell click callback (a drag-grammar cell ref)
120
367
  * @property onAccept - Ghost-assignment acceptance callback
@@ -147,10 +394,22 @@ export interface BoardConfig<A extends StructType, S extends StructType, P exten
147
394
  maxVisible?: SubtypeExprOrValue<IntegerType> | number;
148
395
  /** Optional status-strip text (open / proposed counts). */
149
396
  summary?: SubtypeExprOrValue<StringType>;
397
+ /** Optional IR-level drop veto — consulted per hovered cell with the
398
+ * synthesized candidate event (`CanDropFnType` semantics, see
399
+ * `contracts/drag.ts`); `false` ⇒ the ⊘ invalid stage and the drop is a
400
+ * no-op. Absent ⇒ accept. When `canAssign` is also given, both must
401
+ * allow. */
402
+ canDrop?: SubtypeExprOrValue<FunctionType<[DragEventType], BooleanType>>;
150
403
  /** Optional assignability predicate `(person, area, shift) => Boolean` — a
151
404
  * `false` verdict renders the invalid-drop treatment (red outline + ⊘)
152
405
  * while dragging and vetoes the drop. Fail-open: a throwing predicate
153
- * logs and allows. */
406
+ * logs and allows.
407
+ *
408
+ * @deprecated Use {@link BoardConfig.canDrop} — `canAssign` is compiled
409
+ * into a `canDrop` predicate by the factory (an `add`'s person is the
410
+ * dragged card's key; a `move`'s person is resolved from the authored
411
+ * assignments by event key, allowing when unresolvable). It will be
412
+ * removed once hosts migrate. */
154
413
  canAssign?: SubtypeExprOrValue<FunctionType<[StringType, StringType, StringType], BooleanType>>;
155
414
  /** Drag funnel — add / move / remove events. */
156
415
  onDrag?: SubtypeExprOrValue<FunctionType<[DragEventType], NullType>>;
@@ -160,6 +419,12 @@ export interface BoardConfig<A extends StructType, S extends StructType, P exten
160
419
  onAccept?: SubtypeExprOrValue<FunctionType<[CellRefType], NullType>>;
161
420
  /** Open-slot / empty-cell click callback (edit mode). */
162
421
  onAddAt?: SubtypeExprOrValue<FunctionType<[CellRefType], NullType>>;
422
+ /** Optional batch review foot (#265) — the shared contract's commitBar
423
+ * verbs (`onApproveAll` / `onRejectAll` / `onRerun` + `summary`). Board
424
+ * v1 renders the foot only: `columnLabel` / `onApprove` / `onReject`
425
+ * are unused (per-area decisions are an epic candidate) and the factory
426
+ * warns when set. Ghost `onAccept` is unchanged and complementary. */
427
+ review?: ReviewConfig<RowRefType>;
163
428
  }
164
429
  /**
165
430
  * Creates a Board — single-day areas × shifts assignment scheduling.
@@ -288,29 +553,38 @@ export declare const Board: {
288
553
  * @property onAddAt - Open-slot / empty-cell click callback
289
554
  */
290
555
  readonly Board: StructType<{
556
+ /** DnD target identity */
291
557
  readonly id: StringType;
558
+ /** Library ids accepted for `add` drags */
292
559
  readonly sources: ArrayType<StringType>;
560
+ /** `published` (committed-only, immutable) or `edit` */
293
561
  readonly mode: import("@elaraai/east").VariantType<{
294
562
  readonly published: NullType;
295
563
  readonly edit: NullType;
296
564
  }>;
297
- readonly areaHeader: import("@elaraai/east").OptionType<StringType>;
298
- readonly areaWidth: import("@elaraai/east").OptionType<StringType>;
565
+ /** Optional frozen area column header (none = blank) */
566
+ readonly areaHeader: OptionType<StringType>;
567
+ /** Optional CSS width for the frozen area column (none = the Planner-consistent 150px) */
568
+ readonly areaWidth: OptionType<StringType>;
569
+ /** The grid rows */
299
570
  readonly areas: ArrayType<StructType<{
300
571
  readonly key: StringType;
301
572
  readonly label: StringType;
302
- readonly sublabel: import("@elaraai/east").OptionType<StringType>;
573
+ readonly sublabel: OptionType<StringType>;
303
574
  }>>;
575
+ /** The grid columns (this day's shift types, in order) */
304
576
  readonly shifts: ArrayType<StructType<{
305
577
  readonly key: StringType;
306
578
  readonly label: StringType;
307
- readonly sublabel: import("@elaraai/east").OptionType<StringType>;
579
+ readonly sublabel: OptionType<StringType>;
308
580
  }>>;
581
+ /** The chip directory (faces), joined by person key */
309
582
  readonly people: ArrayType<StructType<{
310
583
  readonly key: StringType;
311
584
  readonly label: StringType;
312
- readonly sublabel: import("@elaraai/east").OptionType<StringType>;
585
+ readonly sublabel: OptionType<StringType>;
313
586
  }>>;
587
+ /** The person chips (grouped into cells by area × shift) */
314
588
  readonly assignments: ArrayType<StructType<{
315
589
  readonly key: StringType;
316
590
  readonly person: StringType;
@@ -326,20 +600,81 @@ export declare const Board: {
326
600
  readonly rejected: NullType;
327
601
  }>;
328
602
  }>>;
329
- readonly requirements: import("@elaraai/east").OptionType<ArrayType<StructType<{
603
+ /** Optional per-cell coverage (none = no coverage chrome) */
604
+ readonly requirements: OptionType<ArrayType<StructType<{
330
605
  readonly area: StringType;
331
606
  readonly shift: StringType;
332
607
  readonly required: IntegerType;
333
608
  }>>>;
334
- readonly density: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
609
+ /** Optional density */
610
+ readonly density: OptionType<import("@elaraai/east").VariantType<{
335
611
  readonly comfortable: NullType;
336
612
  readonly compact: NullType;
337
613
  readonly condensed: NullType;
338
614
  }>>;
339
- readonly maxVisible: import("@elaraai/east").OptionType<IntegerType>;
340
- readonly summary: import("@elaraai/east").OptionType<StringType>;
341
- readonly canAssign: import("@elaraai/east").OptionType<FunctionType<[StringType, StringType, StringType], BooleanType>>;
342
- readonly onDrag: import("@elaraai/east").OptionType<FunctionType<[import("@elaraai/east").VariantType<{
615
+ /** Optional per-cell chip cap before the `+N` overflow */
616
+ readonly maxVisible: OptionType<IntegerType>;
617
+ /** Optional status-strip text (open / proposed counts) */
618
+ readonly summary: OptionType<StringType>;
619
+ /** Optional IR-level drop veto — consulted per hovered cell with the
620
+ * synthesized candidate event ({@link CanDropFnType} semantics); `false`
621
+ * ⇒ the ⊘ invalid stage and the drop is a no-op. Absent ⇒ accept. The
622
+ * factory's deprecated `canAssign` sugar compiles into this predicate. */
623
+ readonly canDrop: OptionType<FunctionType<[import("@elaraai/east").VariantType<{
624
+ readonly add: StructType<{
625
+ readonly from: StructType<{
626
+ readonly library: StringType;
627
+ readonly key: StringType;
628
+ }>;
629
+ readonly into: StructType<{
630
+ readonly surface: StringType;
631
+ readonly row: StringType;
632
+ readonly slot: StringType;
633
+ readonly event: OptionType<StringType>;
634
+ }>;
635
+ readonly duplicate: BooleanType;
636
+ }>;
637
+ readonly move: StructType<{
638
+ readonly from: StructType<{
639
+ readonly surface: StringType;
640
+ readonly row: StringType;
641
+ readonly slot: StringType;
642
+ readonly event: OptionType<StringType>;
643
+ }>;
644
+ readonly to: StructType<{
645
+ readonly surface: StringType;
646
+ readonly row: StringType;
647
+ readonly slot: StringType;
648
+ readonly event: OptionType<StringType>;
649
+ }>;
650
+ }>;
651
+ readonly remove: StructType<{
652
+ readonly from: StructType<{
653
+ readonly surface: StringType;
654
+ readonly row: StringType;
655
+ readonly slot: StringType;
656
+ readonly event: OptionType<StringType>;
657
+ }>;
658
+ readonly to: import("@elaraai/east").VariantType<{
659
+ readonly trash: NullType;
660
+ readonly source: NullType;
661
+ }>;
662
+ }>;
663
+ readonly resize: StructType<{
664
+ readonly event: StructType<{
665
+ readonly surface: StringType;
666
+ readonly row: StringType;
667
+ readonly slot: StringType;
668
+ readonly event: OptionType<StringType>;
669
+ }>;
670
+ readonly edge: import("@elaraai/east").VariantType<{
671
+ readonly start: NullType;
672
+ readonly end: NullType;
673
+ }>;
674
+ }>;
675
+ }>], BooleanType>>;
676
+ /** Drag funnel — add / move / remove events */
677
+ readonly onDrag: OptionType<FunctionType<[import("@elaraai/east").VariantType<{
343
678
  readonly add: StructType<{
344
679
  readonly from: StructType<{
345
680
  readonly library: StringType;
@@ -349,7 +684,7 @@ export declare const Board: {
349
684
  readonly surface: StringType;
350
685
  readonly row: StringType;
351
686
  readonly slot: StringType;
352
- readonly event: import("@elaraai/east").OptionType<StringType>;
687
+ readonly event: OptionType<StringType>;
353
688
  }>;
354
689
  readonly duplicate: BooleanType;
355
690
  }>;
@@ -358,13 +693,13 @@ export declare const Board: {
358
693
  readonly surface: StringType;
359
694
  readonly row: StringType;
360
695
  readonly slot: StringType;
361
- readonly event: import("@elaraai/east").OptionType<StringType>;
696
+ readonly event: OptionType<StringType>;
362
697
  }>;
363
698
  readonly to: StructType<{
364
699
  readonly surface: StringType;
365
700
  readonly row: StringType;
366
701
  readonly slot: StringType;
367
- readonly event: import("@elaraai/east").OptionType<StringType>;
702
+ readonly event: OptionType<StringType>;
368
703
  }>;
369
704
  }>;
370
705
  readonly remove: StructType<{
@@ -372,7 +707,7 @@ export declare const Board: {
372
707
  readonly surface: StringType;
373
708
  readonly row: StringType;
374
709
  readonly slot: StringType;
375
- readonly event: import("@elaraai/east").OptionType<StringType>;
710
+ readonly event: OptionType<StringType>;
376
711
  }>;
377
712
  readonly to: import("@elaraai/east").VariantType<{
378
713
  readonly trash: NullType;
@@ -384,7 +719,7 @@ export declare const Board: {
384
719
  readonly surface: StringType;
385
720
  readonly row: StringType;
386
721
  readonly slot: StringType;
387
- readonly event: import("@elaraai/east").OptionType<StringType>;
722
+ readonly event: OptionType<StringType>;
388
723
  }>;
389
724
  readonly edge: import("@elaraai/east").VariantType<{
390
725
  readonly start: NullType;
@@ -392,25 +727,43 @@ export declare const Board: {
392
727
  }>;
393
728
  }>;
394
729
  }>], NullType>>;
395
- readonly onSelect: import("@elaraai/east").OptionType<FunctionType<[StructType<{
730
+ /** Assignment / cell click callback */
731
+ readonly onSelect: OptionType<FunctionType<[StructType<{
396
732
  readonly surface: StringType;
397
733
  readonly row: StringType;
398
734
  readonly slot: StringType;
399
- readonly event: import("@elaraai/east").OptionType<StringType>;
735
+ readonly event: OptionType<StringType>;
400
736
  }>], NullType>>;
401
- readonly onAccept: import("@elaraai/east").OptionType<FunctionType<[StructType<{
737
+ /** Ghost-assignment acceptance callback — resolves ONE proposed
738
+ * assignment; `review`'s batch verbs sign off the whole board. The
739
+ * interplay is host-owned (no implicit cascading in the component). */
740
+ readonly onAccept: OptionType<FunctionType<[StructType<{
402
741
  readonly surface: StringType;
403
742
  readonly row: StringType;
404
743
  readonly slot: StringType;
405
- readonly event: import("@elaraai/east").OptionType<StringType>;
744
+ readonly event: OptionType<StringType>;
406
745
  }>], NullType>>;
407
- readonly onAddAt: import("@elaraai/east").OptionType<FunctionType<[StructType<{
746
+ /** Open-slot / empty-cell click callback (edit mode) */
747
+ readonly onAddAt: OptionType<FunctionType<[StructType<{
408
748
  readonly surface: StringType;
409
749
  readonly row: StringType;
410
750
  readonly slot: StringType;
411
- readonly event: import("@elaraai/east").OptionType<StringType>;
751
+ readonly event: OptionType<StringType>;
412
752
  }>], NullType>>;
753
+ /** Optional batch review foot (#265) — the shared contract's commitBar
754
+ * verbs (`onApproveAll` / `onRejectAll` / `onRerun` + `summary`). Board
755
+ * is single-day areas × shifts, so v1 renders the FOOT only: the
756
+ * per-row fields (`columnLabel`, `onApprove`, `onReject`) are unused
757
+ * (a per-area decision column is an epic candidate); the factory warns
758
+ * when they are set. */
759
+ readonly review: OptionType<import("../../contracts/review.js").ReviewStructType<StructType<{
760
+ readonly rowIndex: IntegerType;
761
+ }>, import("@elaraai/east").RecursiveType<import("../../component.js").UIComponentNode>>>;
413
762
  }>;
763
+ /** The review configuration — the shared `RowReviewType`; Board v1 renders the batch foot only (#265). */
764
+ readonly Review: import("../../contracts/review.js").ReviewStructType<StructType<{
765
+ readonly rowIndex: IntegerType;
766
+ }>, import("@elaraai/east").RecursiveType<import("../../component.js").UIComponentNode>>;
414
767
  /**
415
768
  * Board render mode (`published` / `edit`).
416
769
  *
@@ -431,7 +784,7 @@ export declare const Board: {
431
784
  readonly Entity: StructType<{
432
785
  readonly key: StringType;
433
786
  readonly label: StringType;
434
- readonly sublabel: import("@elaraai/east").OptionType<StringType>;
787
+ readonly sublabel: OptionType<StringType>;
435
788
  }>;
436
789
  /**
437
790
  * A resolved assignment — one person chip in one (area, shift) cell.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/collections/board/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/collections/board/index.ts"],"names":[],"mappings":"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"}