@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
@@ -16,13 +16,250 @@
16
16
  *
17
17
  * @packageDocumentation
18
18
  */
19
- import { type ExprType, type SubtypeExprOrValue, type TypeOf, ArrayType, type FunctionType, IntegerType, type NullType, StringType, StructType } from "@elaraai/east";
19
+ import { type ExprType, type SubtypeExprOrValue, type TypeOf, ArrayType, type BooleanType, FunctionType, IntegerType, NullType, OptionType, StringType, StructType } from "@elaraai/east";
20
20
  import { UIComponentType } from "../../component.js";
21
21
  import { DensityType, type DensityLiteral } from "../../style/interaction.js";
22
- import { type CellRefType, type DragEventType } from "../../contracts/drag.js";
22
+ import { CellRefType, DragEventType } from "../../contracts/drag.js";
23
23
  import { PlannerStateType } from "../planner/types.js";
24
24
  import { RosterModeType, type RosterModeLiteral } from "./types.js";
25
- export { RosterModeType, type RosterModeLiteral, RosterPersonType, RosterShiftType, RosterRootType, } from "./types.js";
25
+ import { ApprovalStateType, RowRefType, type ReviewConfig } from "../../contracts/review.js";
26
+ import { StatusValueType } from "../../feedback/status/types.js";
27
+ export { RosterModeType, type RosterModeLiteral, RosterPersonType, RosterShiftType, } from "./types.js";
28
+ /**
29
+ * East StructType for the Roster component.
30
+ *
31
+ * @remarks
32
+ * Flat resolved tables — the renderer groups shifts into cells by
33
+ * `person × day`. Shift states reuse the Planner event-state grammar
34
+ * ({@link PlannerStateType}); the `model` flavour renders as the dashed
35
+ * ghost with the acceptance affordance. Defined here (not `types.ts`)
36
+ * since #265: the root carries the shared review config, whose `summary`
37
+ * is a `UIComponentType` — `component.ts` mirrors this arm inline with the
38
+ * recursion `node`.
39
+ *
40
+ * @property id - DnD target identity
41
+ * @property sources - Library ids accepted for `add` drags
42
+ * @property mode - `published` (committed-only, immutable) or `edit`
43
+ * @property days - The day columns, in order
44
+ * @property personHeader - The frozen person column's header
45
+ * @property personWidth - Optional CSS width for the frozen person column
46
+ * @property people - The grid rows
47
+ * @property shifts - The shift chips (joined to people by person key)
48
+ * @property density - Optional density
49
+ * @property summary - Optional status-strip text (dirty / ghost counts)
50
+ * @property onDrag - Drag funnel — add / move / remove events
51
+ * @property canDrop - Optional IR-level drop veto over synthesized candidate events
52
+ * @property onSelect - Shift / cell click callback
53
+ * @property onAccept - Ghost-shift acceptance callback (ONE proposed shift)
54
+ * @property onAddAt - Empty-cell click callback (edit mode)
55
+ * @property review - Optional row-level review chrome (shared contract, #265)
56
+ */
57
+ export declare const RosterRootType: StructType<{
58
+ /** DnD target identity */
59
+ readonly id: StringType;
60
+ /** Library ids accepted for `add` drags */
61
+ readonly sources: ArrayType<StringType>;
62
+ /** `published` (committed-only, immutable) or `edit` */
63
+ readonly mode: import("@elaraai/east").VariantType<{
64
+ readonly published: NullType;
65
+ readonly edit: NullType;
66
+ }>;
67
+ /** The day columns, in order */
68
+ readonly days: ArrayType<StringType>;
69
+ /** The frozen person column's header */
70
+ readonly personHeader: StringType;
71
+ /** Optional CSS width for the frozen person column (none = the Planner-consistent 150px) */
72
+ readonly personWidth: OptionType<StringType>;
73
+ /** The grid rows */
74
+ readonly people: ArrayType<StructType<{
75
+ readonly key: StringType;
76
+ readonly label: StringType;
77
+ readonly sublabel: OptionType<StringType>;
78
+ readonly status: OptionType<import("@elaraai/east").VariantType<{
79
+ readonly success: NullType;
80
+ readonly warning: NullType;
81
+ readonly danger: NullType;
82
+ readonly info: NullType;
83
+ readonly neutral: NullType;
84
+ }>>;
85
+ readonly approval: OptionType<import("@elaraai/east").VariantType<{
86
+ readonly approved: NullType;
87
+ readonly pending: NullType;
88
+ readonly rejected: NullType;
89
+ }>>;
90
+ }>>;
91
+ /** The shift chips (joined to people by person key) */
92
+ readonly shifts: ArrayType<StructType<{
93
+ readonly key: StringType;
94
+ readonly person: StringType;
95
+ readonly day: StringType;
96
+ readonly label: StringType;
97
+ readonly state: import("@elaraai/east").VariantType<{
98
+ readonly committed: NullType;
99
+ readonly proposed: import("@elaraai/east").VariantType<{
100
+ readonly added: NullType;
101
+ readonly model: NullType;
102
+ readonly removed: NullType;
103
+ }>;
104
+ readonly rejected: NullType;
105
+ }>;
106
+ }>>;
107
+ /** Optional density */
108
+ readonly density: OptionType<import("@elaraai/east").VariantType<{
109
+ readonly comfortable: NullType;
110
+ readonly compact: NullType;
111
+ readonly condensed: NullType;
112
+ }>>;
113
+ /** Optional status-strip text (dirty / ghost counts) */
114
+ readonly summary: OptionType<StringType>;
115
+ /** Drag funnel — add / move / remove events */
116
+ readonly onDrag: OptionType<FunctionType<[import("@elaraai/east").VariantType<{
117
+ readonly add: StructType<{
118
+ readonly from: StructType<{
119
+ readonly library: StringType;
120
+ readonly key: StringType;
121
+ }>;
122
+ readonly into: StructType<{
123
+ readonly surface: StringType;
124
+ readonly row: StringType;
125
+ readonly slot: StringType;
126
+ readonly event: OptionType<StringType>;
127
+ }>;
128
+ readonly duplicate: BooleanType;
129
+ }>;
130
+ readonly move: StructType<{
131
+ readonly from: StructType<{
132
+ readonly surface: StringType;
133
+ readonly row: StringType;
134
+ readonly slot: StringType;
135
+ readonly event: OptionType<StringType>;
136
+ }>;
137
+ readonly to: StructType<{
138
+ readonly surface: StringType;
139
+ readonly row: StringType;
140
+ readonly slot: StringType;
141
+ readonly event: OptionType<StringType>;
142
+ }>;
143
+ }>;
144
+ readonly remove: StructType<{
145
+ readonly from: StructType<{
146
+ readonly surface: StringType;
147
+ readonly row: StringType;
148
+ readonly slot: StringType;
149
+ readonly event: OptionType<StringType>;
150
+ }>;
151
+ readonly to: import("@elaraai/east").VariantType<{
152
+ readonly trash: NullType;
153
+ readonly source: NullType;
154
+ }>;
155
+ }>;
156
+ readonly resize: StructType<{
157
+ readonly event: StructType<{
158
+ readonly surface: StringType;
159
+ readonly row: StringType;
160
+ readonly slot: StringType;
161
+ readonly event: OptionType<StringType>;
162
+ }>;
163
+ readonly edge: import("@elaraai/east").VariantType<{
164
+ readonly start: NullType;
165
+ readonly end: NullType;
166
+ }>;
167
+ }>;
168
+ }>], NullType>>;
169
+ /** Optional IR-level drop veto — consulted per hovered cell with the
170
+ * synthesized candidate event (`CanDropFnType` semantics); `false`
171
+ * ⇒ the ⊘ invalid stage and the drop is a no-op. Absent ⇒ accept. */
172
+ readonly canDrop: OptionType<FunctionType<[import("@elaraai/east").VariantType<{
173
+ readonly add: StructType<{
174
+ readonly from: StructType<{
175
+ readonly library: StringType;
176
+ readonly key: StringType;
177
+ }>;
178
+ readonly into: StructType<{
179
+ readonly surface: StringType;
180
+ readonly row: StringType;
181
+ readonly slot: StringType;
182
+ readonly event: OptionType<StringType>;
183
+ }>;
184
+ readonly duplicate: BooleanType;
185
+ }>;
186
+ readonly move: StructType<{
187
+ readonly from: StructType<{
188
+ readonly surface: StringType;
189
+ readonly row: StringType;
190
+ readonly slot: StringType;
191
+ readonly event: OptionType<StringType>;
192
+ }>;
193
+ readonly to: StructType<{
194
+ readonly surface: StringType;
195
+ readonly row: StringType;
196
+ readonly slot: StringType;
197
+ readonly event: OptionType<StringType>;
198
+ }>;
199
+ }>;
200
+ readonly remove: StructType<{
201
+ readonly from: StructType<{
202
+ readonly surface: StringType;
203
+ readonly row: StringType;
204
+ readonly slot: StringType;
205
+ readonly event: OptionType<StringType>;
206
+ }>;
207
+ readonly to: import("@elaraai/east").VariantType<{
208
+ readonly trash: NullType;
209
+ readonly source: NullType;
210
+ }>;
211
+ }>;
212
+ readonly resize: StructType<{
213
+ readonly event: StructType<{
214
+ readonly surface: StringType;
215
+ readonly row: StringType;
216
+ readonly slot: StringType;
217
+ readonly event: OptionType<StringType>;
218
+ }>;
219
+ readonly edge: import("@elaraai/east").VariantType<{
220
+ readonly start: NullType;
221
+ readonly end: NullType;
222
+ }>;
223
+ }>;
224
+ }>], BooleanType>>;
225
+ /** Shift / cell click callback */
226
+ readonly onSelect: OptionType<FunctionType<[StructType<{
227
+ readonly surface: StringType;
228
+ readonly row: StringType;
229
+ readonly slot: StringType;
230
+ readonly event: OptionType<StringType>;
231
+ }>], NullType>>;
232
+ /** Ghost-shift acceptance callback — resolves ONE proposed shift. The
233
+ * granularity contract (#265): `onAccept(CellRef)` is the *item*-level
234
+ * call; `review.onApprove({ rowIndex })` signs off a LINE. The interplay
235
+ * is host-owned — the component reports, the host decides whether
236
+ * row-approval implies accepting the row's ghosts (no implicit
237
+ * cascading in the component). */
238
+ readonly onAccept: OptionType<FunctionType<[StructType<{
239
+ readonly surface: StringType;
240
+ readonly row: StringType;
241
+ readonly slot: StringType;
242
+ readonly event: OptionType<StringType>;
243
+ }>], NullType>>;
244
+ /** Empty-cell click callback (edit mode) */
245
+ readonly onAddAt: OptionType<FunctionType<[StructType<{
246
+ readonly surface: StringType;
247
+ readonly row: StringType;
248
+ readonly slot: StringType;
249
+ readonly event: OptionType<StringType>;
250
+ }>], NullType>>;
251
+ /** Optional row-level review chrome (#265) — the shared contract's
252
+ * Decision column + commitBar foot; rows are people. Absent ⇒ a plain
253
+ * Roster (people `status`/`approval` are inert). Composes with — does
254
+ * not replace — per-tile ghost `onAccept`. */
255
+ readonly review: OptionType<import("../../contracts/review.js").ReviewStructType<StructType<{
256
+ readonly rowIndex: IntegerType;
257
+ }>, import("@elaraai/east").RecursiveType<import("../../component.js").UIComponentNode>>>;
258
+ }>;
259
+ /**
260
+ * Type representing the Roster component.
261
+ */
262
+ export type RosterRootType = typeof RosterRootType;
26
263
  /**
27
264
  * The struct element type of a `SubtypeExprOrValue<ArrayType<StructType>>`.
28
265
  */
@@ -45,6 +282,13 @@ export interface RosterPersonFields {
45
282
  label: SubtypeExprOrValue<StringType>;
46
283
  /** Optional muted second line (e.g. target hours). */
47
284
  sublabel?: SubtypeExprOrValue<StringType>;
285
+ /** Optional per-row status — the quiet dot beside the person (some ⇒
286
+ * flagged, none ⇒ clean). Only rendered when `review` is set (#265). */
287
+ status?: SubtypeExprOrValue<OptionType<StatusValueType>>;
288
+ /** Optional per-row review decision (see the shared `deriveApproval`
289
+ * helper: clean ⇒ approved, flagged ⇒ pending). Only rendered when
290
+ * `review` is set (#265). */
291
+ approval?: SubtypeExprOrValue<OptionType<ApprovalStateType>>;
48
292
  }
49
293
  /**
50
294
  * Fields the `shift` mapper returns — one shift chip, before defaults.
@@ -89,6 +333,7 @@ export interface RosterShiftFields {
89
333
  * @property density - Optional density
90
334
  * @property summary - Optional status-strip text (dirty / ghost counts)
91
335
  * @property onDrag - Drag funnel — add / move / remove events
336
+ * @property canDrop - Optional IR-level drop veto over synthesized candidate events
92
337
  * @property onSelect - Shift / cell click callback (a drag-grammar cell ref)
93
338
  * @property onAccept - Ghost-shift acceptance callback
94
339
  * @property onAddAt - Empty-cell click callback (edit mode)
@@ -116,12 +361,23 @@ export interface RosterConfig<P extends StructType, S extends StructType> {
116
361
  summary?: SubtypeExprOrValue<StringType>;
117
362
  /** Drag funnel — add / move / remove events. */
118
363
  onDrag?: SubtypeExprOrValue<FunctionType<[DragEventType], NullType>>;
364
+ /** Optional IR-level drop veto — consulted per hovered cell with the
365
+ * synthesized candidate event (`CanDropFnType` semantics, see
366
+ * `contracts/drag.ts`); `false` ⇒ the ⊘ invalid stage and the drop is a
367
+ * no-op. Absent ⇒ accept (the pre-#261 behaviour). */
368
+ canDrop?: SubtypeExprOrValue<FunctionType<[DragEventType], BooleanType>>;
119
369
  /** Shift / cell click callback (a drag-grammar cell ref). */
120
370
  onSelect?: SubtypeExprOrValue<FunctionType<[CellRefType], NullType>>;
121
371
  /** Ghost-shift acceptance callback. */
122
372
  onAccept?: SubtypeExprOrValue<FunctionType<[CellRefType], NullType>>;
123
373
  /** Empty-cell click callback (edit mode). */
124
374
  onAddAt?: SubtypeExprOrValue<FunctionType<[CellRefType], NullType>>;
375
+ /** Optional row-level review chrome (#265) — the shared contract's
376
+ * Decision column + commitBar foot; rows are people, callbacks receive
377
+ * `{ rowIndex }`. Presence is the opt-in. Composes with — does not
378
+ * replace — per-tile ghost `onAccept`: accept resolves ONE ghost,
379
+ * approve signs off a LINE; the interplay is host-owned. */
380
+ review?: ReviewConfig<RowRefType>;
125
381
  }
126
382
  /**
127
383
  * Creates a Roster — people × days-of-week shift scheduling.
@@ -225,20 +481,40 @@ export declare const Roster: {
225
481
  * @property onAddAt - Empty-cell click callback
226
482
  */
227
483
  readonly Roster: StructType<{
484
+ /** DnD target identity */
228
485
  readonly id: StringType;
486
+ /** Library ids accepted for `add` drags */
229
487
  readonly sources: ArrayType<StringType>;
488
+ /** `published` (committed-only, immutable) or `edit` */
230
489
  readonly mode: import("@elaraai/east").VariantType<{
231
490
  readonly published: NullType;
232
491
  readonly edit: NullType;
233
492
  }>;
493
+ /** The day columns, in order */
234
494
  readonly days: ArrayType<StringType>;
495
+ /** The frozen person column's header */
235
496
  readonly personHeader: StringType;
236
- readonly personWidth: import("@elaraai/east").OptionType<StringType>;
497
+ /** Optional CSS width for the frozen person column (none = the Planner-consistent 150px) */
498
+ readonly personWidth: OptionType<StringType>;
499
+ /** The grid rows */
237
500
  readonly people: ArrayType<StructType<{
238
501
  readonly key: StringType;
239
502
  readonly label: StringType;
240
- readonly sublabel: import("@elaraai/east").OptionType<StringType>;
503
+ readonly sublabel: OptionType<StringType>;
504
+ readonly status: OptionType<import("@elaraai/east").VariantType<{
505
+ readonly success: NullType;
506
+ readonly warning: NullType;
507
+ readonly danger: NullType;
508
+ readonly info: NullType;
509
+ readonly neutral: NullType;
510
+ }>>;
511
+ readonly approval: OptionType<import("@elaraai/east").VariantType<{
512
+ readonly approved: NullType;
513
+ readonly pending: NullType;
514
+ readonly rejected: NullType;
515
+ }>>;
241
516
  }>>;
517
+ /** The shift chips (joined to people by person key) */
242
518
  readonly shifts: ArrayType<StructType<{
243
519
  readonly key: StringType;
244
520
  readonly person: StringType;
@@ -254,13 +530,16 @@ export declare const Roster: {
254
530
  readonly rejected: NullType;
255
531
  }>;
256
532
  }>>;
257
- readonly density: import("@elaraai/east").OptionType<import("@elaraai/east").VariantType<{
533
+ /** Optional density */
534
+ readonly density: OptionType<import("@elaraai/east").VariantType<{
258
535
  readonly comfortable: NullType;
259
536
  readonly compact: NullType;
260
537
  readonly condensed: NullType;
261
538
  }>>;
262
- readonly summary: import("@elaraai/east").OptionType<StringType>;
263
- readonly onDrag: import("@elaraai/east").OptionType<FunctionType<[import("@elaraai/east").VariantType<{
539
+ /** Optional status-strip text (dirty / ghost counts) */
540
+ readonly summary: OptionType<StringType>;
541
+ /** Drag funnel — add / move / remove events */
542
+ readonly onDrag: OptionType<FunctionType<[import("@elaraai/east").VariantType<{
264
543
  readonly add: StructType<{
265
544
  readonly from: StructType<{
266
545
  readonly library: StringType;
@@ -270,22 +549,22 @@ export declare const Roster: {
270
549
  readonly surface: StringType;
271
550
  readonly row: StringType;
272
551
  readonly slot: StringType;
273
- readonly event: import("@elaraai/east").OptionType<StringType>;
552
+ readonly event: OptionType<StringType>;
274
553
  }>;
275
- readonly duplicate: import("@elaraai/east").BooleanType;
554
+ readonly duplicate: BooleanType;
276
555
  }>;
277
556
  readonly move: StructType<{
278
557
  readonly from: StructType<{
279
558
  readonly surface: StringType;
280
559
  readonly row: StringType;
281
560
  readonly slot: StringType;
282
- readonly event: import("@elaraai/east").OptionType<StringType>;
561
+ readonly event: OptionType<StringType>;
283
562
  }>;
284
563
  readonly to: StructType<{
285
564
  readonly surface: StringType;
286
565
  readonly row: StringType;
287
566
  readonly slot: StringType;
288
- readonly event: import("@elaraai/east").OptionType<StringType>;
567
+ readonly event: OptionType<StringType>;
289
568
  }>;
290
569
  }>;
291
570
  readonly remove: StructType<{
@@ -293,7 +572,7 @@ export declare const Roster: {
293
572
  readonly surface: StringType;
294
573
  readonly row: StringType;
295
574
  readonly slot: StringType;
296
- readonly event: import("@elaraai/east").OptionType<StringType>;
575
+ readonly event: OptionType<StringType>;
297
576
  }>;
298
577
  readonly to: import("@elaraai/east").VariantType<{
299
578
  readonly trash: NullType;
@@ -305,7 +584,7 @@ export declare const Roster: {
305
584
  readonly surface: StringType;
306
585
  readonly row: StringType;
307
586
  readonly slot: StringType;
308
- readonly event: import("@elaraai/east").OptionType<StringType>;
587
+ readonly event: OptionType<StringType>;
309
588
  }>;
310
589
  readonly edge: import("@elaraai/east").VariantType<{
311
590
  readonly start: NullType;
@@ -313,24 +592,109 @@ export declare const Roster: {
313
592
  }>;
314
593
  }>;
315
594
  }>], NullType>>;
316
- readonly onSelect: import("@elaraai/east").OptionType<FunctionType<[StructType<{
595
+ /** Optional IR-level drop veto — consulted per hovered cell with the
596
+ * synthesized candidate event (`CanDropFnType` semantics); `false`
597
+ * ⇒ the ⊘ invalid stage and the drop is a no-op. Absent ⇒ accept. */
598
+ readonly canDrop: OptionType<FunctionType<[import("@elaraai/east").VariantType<{
599
+ readonly add: StructType<{
600
+ readonly from: StructType<{
601
+ readonly library: StringType;
602
+ readonly key: StringType;
603
+ }>;
604
+ readonly into: StructType<{
605
+ readonly surface: StringType;
606
+ readonly row: StringType;
607
+ readonly slot: StringType;
608
+ readonly event: OptionType<StringType>;
609
+ }>;
610
+ readonly duplicate: BooleanType;
611
+ }>;
612
+ readonly move: StructType<{
613
+ readonly from: StructType<{
614
+ readonly surface: StringType;
615
+ readonly row: StringType;
616
+ readonly slot: StringType;
617
+ readonly event: OptionType<StringType>;
618
+ }>;
619
+ readonly to: StructType<{
620
+ readonly surface: StringType;
621
+ readonly row: StringType;
622
+ readonly slot: StringType;
623
+ readonly event: OptionType<StringType>;
624
+ }>;
625
+ }>;
626
+ readonly remove: StructType<{
627
+ readonly from: StructType<{
628
+ readonly surface: StringType;
629
+ readonly row: StringType;
630
+ readonly slot: StringType;
631
+ readonly event: OptionType<StringType>;
632
+ }>;
633
+ readonly to: import("@elaraai/east").VariantType<{
634
+ readonly trash: NullType;
635
+ readonly source: NullType;
636
+ }>;
637
+ }>;
638
+ readonly resize: StructType<{
639
+ readonly event: StructType<{
640
+ readonly surface: StringType;
641
+ readonly row: StringType;
642
+ readonly slot: StringType;
643
+ readonly event: OptionType<StringType>;
644
+ }>;
645
+ readonly edge: import("@elaraai/east").VariantType<{
646
+ readonly start: NullType;
647
+ readonly end: NullType;
648
+ }>;
649
+ }>;
650
+ }>], BooleanType>>;
651
+ /** Shift / cell click callback */
652
+ readonly onSelect: OptionType<FunctionType<[StructType<{
317
653
  readonly surface: StringType;
318
654
  readonly row: StringType;
319
655
  readonly slot: StringType;
320
- readonly event: import("@elaraai/east").OptionType<StringType>;
656
+ readonly event: OptionType<StringType>;
321
657
  }>], NullType>>;
322
- readonly onAccept: import("@elaraai/east").OptionType<FunctionType<[StructType<{
658
+ /** Ghost-shift acceptance callback — resolves ONE proposed shift. The
659
+ * granularity contract (#265): `onAccept(CellRef)` is the *item*-level
660
+ * call; `review.onApprove({ rowIndex })` signs off a LINE. The interplay
661
+ * is host-owned — the component reports, the host decides whether
662
+ * row-approval implies accepting the row's ghosts (no implicit
663
+ * cascading in the component). */
664
+ readonly onAccept: OptionType<FunctionType<[StructType<{
323
665
  readonly surface: StringType;
324
666
  readonly row: StringType;
325
667
  readonly slot: StringType;
326
- readonly event: import("@elaraai/east").OptionType<StringType>;
668
+ readonly event: OptionType<StringType>;
327
669
  }>], NullType>>;
328
- readonly onAddAt: import("@elaraai/east").OptionType<FunctionType<[StructType<{
670
+ /** Empty-cell click callback (edit mode) */
671
+ readonly onAddAt: OptionType<FunctionType<[StructType<{
329
672
  readonly surface: StringType;
330
673
  readonly row: StringType;
331
674
  readonly slot: StringType;
332
- readonly event: import("@elaraai/east").OptionType<StringType>;
675
+ readonly event: OptionType<StringType>;
333
676
  }>], NullType>>;
677
+ /** Optional row-level review chrome (#265) — the shared contract's
678
+ * Decision column + commitBar foot; rows are people. Absent ⇒ a plain
679
+ * Roster (people `status`/`approval` are inert). Composes with — does
680
+ * not replace — per-tile ghost `onAccept`. */
681
+ readonly review: OptionType<import("../../contracts/review.js").ReviewStructType<StructType<{
682
+ readonly rowIndex: IntegerType;
683
+ }>, import("@elaraai/east").RecursiveType<import("../../component.js").UIComponentNode>>>;
684
+ }>;
685
+ /** A row's review decision — the shared `ApprovalStateType` (#265). */
686
+ readonly Approval: import("@elaraai/east").VariantType<{
687
+ readonly approved: NullType;
688
+ readonly pending: NullType;
689
+ readonly rejected: NullType;
690
+ }>;
691
+ /** The review configuration — the shared row-granularity `RowReviewType` (#265). */
692
+ readonly Review: import("../../contracts/review.js").ReviewStructType<StructType<{
693
+ readonly rowIndex: IntegerType;
694
+ }>, import("@elaraai/east").RecursiveType<import("../../component.js").UIComponentNode>>;
695
+ /** The per-row approve / reject payload — the shared `RowRefType` (`{ rowIndex }`). */
696
+ readonly ApproveEvent: StructType<{
697
+ readonly rowIndex: IntegerType;
334
698
  }>;
335
699
  /**
336
700
  * Roster render mode (`published` / `edit`).
@@ -352,7 +716,19 @@ export declare const Roster: {
352
716
  readonly Person: StructType<{
353
717
  readonly key: StringType;
354
718
  readonly label: StringType;
355
- readonly sublabel: import("@elaraai/east").OptionType<StringType>;
719
+ readonly sublabel: OptionType<StringType>;
720
+ readonly status: OptionType<import("@elaraai/east").VariantType<{
721
+ readonly success: NullType;
722
+ readonly warning: NullType;
723
+ readonly danger: NullType;
724
+ readonly info: NullType;
725
+ readonly neutral: NullType;
726
+ }>>;
727
+ readonly approval: OptionType<import("@elaraai/east").VariantType<{
728
+ readonly approved: NullType;
729
+ readonly pending: NullType;
730
+ readonly rejected: NullType;
731
+ }>>;
356
732
  }>;
357
733
  /**
358
734
  * A resolved shift chip.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/collections/roster/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/collections/roster/index.ts"],"names":[],"mappings":"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"}