@sectile/vue 0.18.3 → 0.19.0

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 (283) hide show
  1. package/README.md +53 -14
  2. package/dist/accordion.js +1 -1
  3. package/dist/accordion.js.map +1 -1
  4. package/dist/carousel.d.ts +20 -0
  5. package/dist/carousel.js +1 -1
  6. package/dist/carousel.js.map +1 -1
  7. package/dist/cascade-list.js +1 -1
  8. package/dist/cascade-list.js.map +1 -1
  9. package/dist/cascade-select.js +1 -1
  10. package/dist/cascade-select.js.map +1 -1
  11. package/dist/chart.js +1 -1
  12. package/dist/chart.js.map +1 -1
  13. package/dist/checkbox-group.js +1 -1
  14. package/dist/checkbox-group.js.map +1 -1
  15. package/dist/checkbox-tree.d.ts +102 -0
  16. package/dist/checkbox-tree.js +2 -0
  17. package/dist/checkbox-tree.js.map +1 -0
  18. package/dist/checkbox.js +1 -1
  19. package/dist/checkbox.js.map +1 -1
  20. package/dist/color-picker.d.ts +24 -0
  21. package/dist/color-picker.js +1 -1
  22. package/dist/color-picker.js.map +1 -1
  23. package/dist/combobox.d.ts +47 -1
  24. package/dist/combobox.js +1 -1
  25. package/dist/combobox.js.map +1 -1
  26. package/dist/component-handle.d.ts +8 -0
  27. package/dist/component-handle.js +2 -0
  28. package/dist/component-handle.js.map +1 -0
  29. package/dist/context-menu.d.ts +1 -0
  30. package/dist/context-menu.js +2 -0
  31. package/dist/context-menu.js.map +1 -0
  32. package/dist/drag-drop.d.ts +23 -0
  33. package/dist/drag-drop.js +2 -0
  34. package/dist/drag-drop.js.map +1 -0
  35. package/dist/editable.d.ts +3 -0
  36. package/dist/editable.js +1 -1
  37. package/dist/editable.js.map +1 -1
  38. package/dist/form/context.d.ts +3 -0
  39. package/dist/form/context.js +1 -1
  40. package/dist/form/context.js.map +1 -1
  41. package/dist/form/contracts.d.ts +1 -0
  42. package/dist/form/control-inventory.d.ts +20 -0
  43. package/dist/form/control-inventory.js +1 -1
  44. package/dist/form/control-inventory.js.map +1 -1
  45. package/dist/form/control.d.ts +44 -1
  46. package/dist/form/control.js +1 -1
  47. package/dist/form/control.js.map +1 -1
  48. package/dist/form/field.d.ts +10 -0
  49. package/dist/form/field.js +1 -1
  50. package/dist/form/field.js.map +1 -1
  51. package/dist/form/file-input.d.ts +229 -0
  52. package/dist/form/file-input.js +2 -0
  53. package/dist/form/file-input.js.map +1 -0
  54. package/dist/form/file-upload/group.d.ts +28 -0
  55. package/dist/form/file-upload/group.js +2 -0
  56. package/dist/form/file-upload/group.js.map +1 -0
  57. package/dist/form/file-upload.d.ts +26 -0
  58. package/dist/form/file-upload.js +2 -0
  59. package/dist/form/file-upload.js.map +1 -0
  60. package/dist/form/root.js +1 -1
  61. package/dist/form/root.js.map +1 -1
  62. package/dist/form-boundary.d.ts +2 -0
  63. package/dist/form-boundary.js +2 -0
  64. package/dist/form-boundary.js.map +1 -0
  65. package/dist/fullscreen.d.ts +16 -0
  66. package/dist/fullscreen.js +2 -0
  67. package/dist/fullscreen.js.map +1 -0
  68. package/dist/host-provider.d.ts +99 -1
  69. package/dist/host-provider.js +1 -1
  70. package/dist/host-provider.js.map +1 -1
  71. package/dist/image.d.ts +24 -0
  72. package/dist/image.js +2 -0
  73. package/dist/image.js.map +1 -0
  74. package/dist/index.d.ts +6 -5
  75. package/dist/index.js +1 -1
  76. package/dist/index.js.map +1 -1
  77. package/dist/input/native-field.d.ts +25 -6
  78. package/dist/input/native-field.js +1 -1
  79. package/dist/input/native-field.js.map +1 -1
  80. package/dist/input/native-range-field.d.ts +16 -7
  81. package/dist/input/native-range-field.js +1 -1
  82. package/dist/input/native-range-field.js.map +1 -1
  83. package/dist/internal/cascade-choice.js +1 -1
  84. package/dist/internal/cascade-choice.js.map +1 -1
  85. package/dist/internal/connection-lifetime.d.ts +10 -0
  86. package/dist/internal/connection-lifetime.js +2 -0
  87. package/dist/internal/connection-lifetime.js.map +1 -0
  88. package/dist/internal/popup-presentation.d.ts +32 -0
  89. package/dist/internal/popup-presentation.js +2 -0
  90. package/dist/internal/popup-presentation.js.map +1 -0
  91. package/dist/internal/portal-move.d.ts +11 -0
  92. package/dist/internal/portal-move.js +2 -0
  93. package/dist/internal/portal-move.js.map +1 -0
  94. package/dist/internal/scheduled-task.js +1 -1
  95. package/dist/internal/scheduled-task.js.map +1 -1
  96. package/dist/internal/tabs-context.d.ts +11 -0
  97. package/dist/internal/tabs-context.js +1 -1
  98. package/dist/internal/tabs-context.js.map +1 -1
  99. package/dist/internal/tree-parts.d.ts +142 -0
  100. package/dist/internal/tree-parts.js +2 -0
  101. package/dist/internal/tree-parts.js.map +1 -0
  102. package/dist/listbox.d.ts +11 -0
  103. package/dist/listbox.js +1 -1
  104. package/dist/listbox.js.map +1 -1
  105. package/dist/media-gesture.d.ts +20 -0
  106. package/dist/media-gesture.js +2 -0
  107. package/dist/media-gesture.js.map +1 -0
  108. package/dist/menu.d.ts +239 -0
  109. package/dist/menu.js +1 -1
  110. package/dist/menu.js.map +1 -1
  111. package/dist/meter-group.js +1 -1
  112. package/dist/meter-group.js.map +1 -1
  113. package/dist/multi-thumb-slider.js +1 -1
  114. package/dist/multi-thumb-slider.js.map +1 -1
  115. package/dist/overlay/dialog.d.ts +1 -0
  116. package/dist/overlay/dialog.js.map +1 -1
  117. package/dist/overlay/drawer.d.ts +33 -4
  118. package/dist/overlay/drawer.js +1 -1
  119. package/dist/overlay/drawer.js.map +1 -1
  120. package/dist/overlay/popover.d.ts +2 -1
  121. package/dist/overlay/popover.js.map +1 -1
  122. package/dist/overlay/popup.d.ts +46 -2
  123. package/dist/overlay/popup.js +1 -1
  124. package/dist/overlay/popup.js.map +1 -1
  125. package/dist/overlay/tooltip.d.ts +37 -3
  126. package/dist/overlay/tooltip.js +1 -1
  127. package/dist/overlay/tooltip.js.map +1 -1
  128. package/dist/pagination.js +1 -1
  129. package/dist/pagination.js.map +1 -1
  130. package/dist/pin-input.js +1 -1
  131. package/dist/pin-input.js.map +1 -1
  132. package/dist/presence/presence.d.ts +1 -1
  133. package/dist/presence/presence.js +1 -1
  134. package/dist/presence/presence.js.map +1 -1
  135. package/dist/primitive.d.ts +37 -3
  136. package/dist/primitive.js +1 -1
  137. package/dist/primitive.js.map +1 -1
  138. package/dist/quantity-field.js +1 -1
  139. package/dist/quantity-field.js.map +1 -1
  140. package/dist/radio-group.js +1 -1
  141. package/dist/radio-group.js.map +1 -1
  142. package/dist/rating.js +1 -1
  143. package/dist/rating.js.map +1 -1
  144. package/dist/reorder.d.ts +156 -77
  145. package/dist/reorder.js +1 -1
  146. package/dist/reorder.js.map +1 -1
  147. package/dist/select.d.ts +21 -0
  148. package/dist/select.js +1 -1
  149. package/dist/select.js.map +1 -1
  150. package/dist/slider.js +1 -1
  151. package/dist/slider.js.map +1 -1
  152. package/dist/spin-button.d.ts +19 -0
  153. package/dist/spin-button.js +1 -1
  154. package/dist/spin-button.js.map +1 -1
  155. package/dist/stepper.js +1 -1
  156. package/dist/stepper.js.map +1 -1
  157. package/dist/switch.js +1 -1
  158. package/dist/switch.js.map +1 -1
  159. package/dist/tabs.d.ts +2 -0
  160. package/dist/tabs.js +1 -1
  161. package/dist/tabs.js.map +1 -1
  162. package/dist/tabular/components.d.ts +5 -0
  163. package/dist/tabular/components.js.map +1 -1
  164. package/dist/tabular/controller.d.ts +1 -0
  165. package/dist/tabular/controller.js +1 -1
  166. package/dist/tabular/controller.js.map +1 -1
  167. package/dist/tabular/data-grid.d.ts +4 -4
  168. package/dist/tabular/data-grid.js +1 -1
  169. package/dist/tabular/data-grid.js.map +1 -1
  170. package/dist/tabular/data-table.d.ts +4 -4
  171. package/dist/tabular/data-table.js +1 -1
  172. package/dist/tabular/data-table.js.map +1 -1
  173. package/dist/tabular/data-tree-grid.d.ts +4 -4
  174. package/dist/tabular/data-tree-grid.js +1 -1
  175. package/dist/tabular/data-tree-grid.js.map +1 -1
  176. package/dist/tabular/parts.d.ts +11 -1
  177. package/dist/tabular/parts.js +1 -1
  178. package/dist/tabular/parts.js.map +1 -1
  179. package/dist/tags-input.d.ts +12 -1
  180. package/dist/tags-input.js +1 -1
  181. package/dist/tags-input.js.map +1 -1
  182. package/dist/temporal/calendar.d.ts +15 -111
  183. package/dist/temporal/calendar.js +1 -1
  184. package/dist/temporal/calendar.js.map +1 -1
  185. package/dist/temporal/capabilities/date-picker.js +1 -1
  186. package/dist/temporal/capabilities/date-picker.js.map +1 -1
  187. package/dist/temporal/capabilities/date-time-picker.js +1 -1
  188. package/dist/temporal/capabilities/date-time-picker.js.map +1 -1
  189. package/dist/temporal/capabilities/date-time-range-picker.js +1 -1
  190. package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -1
  191. package/dist/temporal/capability.d.ts +13 -1
  192. package/dist/temporal/capability.js.map +1 -1
  193. package/dist/temporal/date-field.d.ts +1 -1
  194. package/dist/temporal/date-field.js +1 -1
  195. package/dist/temporal/date-field.js.map +1 -1
  196. package/dist/temporal/date-picker.d.ts +3 -1
  197. package/dist/temporal/date-picker.js.map +1 -1
  198. package/dist/temporal/date-range-field.d.ts +20 -0
  199. package/dist/temporal/date-range-field.js +1 -1
  200. package/dist/temporal/date-range-field.js.map +1 -1
  201. package/dist/temporal/date-range-picker.d.ts +3 -1
  202. package/dist/temporal/date-range-picker.js.map +1 -1
  203. package/dist/temporal/date-time-field.d.ts +4 -1
  204. package/dist/temporal/date-time-field.js +1 -1
  205. package/dist/temporal/date-time-field.js.map +1 -1
  206. package/dist/temporal/date-time-picker.d.ts +3 -1
  207. package/dist/temporal/date-time-picker.js +1 -1
  208. package/dist/temporal/date-time-picker.js.map +1 -1
  209. package/dist/temporal/date-time-range-field.d.ts +158 -0
  210. package/dist/temporal/date-time-range-field.js +2 -0
  211. package/dist/temporal/date-time-range-field.js.map +1 -0
  212. package/dist/temporal/date-time-range-picker.d.ts +3 -1
  213. package/dist/temporal/date-time-range-picker.js +1 -1
  214. package/dist/temporal/date-time-range-picker.js.map +1 -1
  215. package/dist/temporal/internal/time-presentation.d.ts +15 -0
  216. package/dist/temporal/internal/time-presentation.js +2 -0
  217. package/dist/temporal/internal/time-presentation.js.map +1 -0
  218. package/dist/temporal/month-picker.d.ts +3 -1
  219. package/dist/temporal/month-picker.js.map +1 -1
  220. package/dist/temporal/month-range-picker.d.ts +3 -1
  221. package/dist/temporal/month-range-picker.js.map +1 -1
  222. package/dist/temporal/picker.d.ts +23 -1
  223. package/dist/temporal/picker.js +1 -1
  224. package/dist/temporal/picker.js.map +1 -1
  225. package/dist/temporal/range-calendar.d.ts +119 -2
  226. package/dist/temporal/range-calendar.js +1 -1
  227. package/dist/temporal/range-calendar.js.map +1 -1
  228. package/dist/temporal/temporal-provider.d.ts +23 -0
  229. package/dist/temporal/temporal-provider.js +1 -1
  230. package/dist/temporal/temporal-provider.js.map +1 -1
  231. package/dist/temporal/time-field.d.ts +4 -1
  232. package/dist/temporal/time-field.js +1 -1
  233. package/dist/temporal/time-field.js.map +1 -1
  234. package/dist/temporal/time-picker.d.ts +112 -0
  235. package/dist/temporal/time-picker.js +2 -0
  236. package/dist/temporal/time-picker.js.map +1 -0
  237. package/dist/temporal/time-range-field.d.ts +32 -1
  238. package/dist/temporal/time-range-field.js +1 -1
  239. package/dist/temporal/time-range-field.js.map +1 -1
  240. package/dist/temporal/year-picker.d.ts +3 -1
  241. package/dist/temporal/year-picker.js.map +1 -1
  242. package/dist/temporal/year-range-picker.d.ts +3 -1
  243. package/dist/temporal/year-range-picker.js.map +1 -1
  244. package/dist/text.d.ts +43 -1
  245. package/dist/text.js +1 -1
  246. package/dist/text.js.map +1 -1
  247. package/dist/timer.d.ts +16 -5
  248. package/dist/timer.js +1 -1
  249. package/dist/timer.js.map +1 -1
  250. package/dist/toast.js +1 -1
  251. package/dist/toast.js.map +1 -1
  252. package/dist/toggle-group.js +1 -1
  253. package/dist/toggle-group.js.map +1 -1
  254. package/dist/toolbar.js +1 -1
  255. package/dist/toolbar.js.map +1 -1
  256. package/dist/transfer.d.ts +191 -0
  257. package/dist/transfer.js +2 -0
  258. package/dist/transfer.js.map +1 -0
  259. package/dist/tree-grid.d.ts +122 -0
  260. package/dist/tree-grid.js +1 -1
  261. package/dist/tree-grid.js.map +1 -1
  262. package/dist/tree-select.d.ts +186 -0
  263. package/dist/tree-select.js +2 -0
  264. package/dist/tree-select.js.map +1 -0
  265. package/dist/tree-view.js +1 -1
  266. package/dist/tree-view.js.map +1 -1
  267. package/dist/virtual/virtual-collection.d.ts +2 -0
  268. package/dist/virtual/virtual-collection.js.map +1 -1
  269. package/dist/virtual/virtual-grid.d.ts +12 -2
  270. package/dist/virtual/virtual-grid.js +1 -1
  271. package/dist/virtual/virtual-grid.js.map +1 -1
  272. package/dist/virtual/virtual-list.d.ts +12 -3
  273. package/dist/virtual/virtual-list.js +1 -1
  274. package/dist/virtual/virtual-list.js.map +1 -1
  275. package/dist/virtual/virtual-masonry.d.ts +12 -2
  276. package/dist/virtual/virtual-masonry.js +1 -1
  277. package/dist/virtual/virtual-masonry.js.map +1 -1
  278. package/dist/virtual/virtual-spatial.d.ts +12 -2
  279. package/dist/virtual/virtual-spatial.js +1 -1
  280. package/dist/virtual/virtual-spatial.js.map +1 -1
  281. package/dist/window-splitter.js +1 -1
  282. package/dist/window-splitter.js.map +1 -1
  283. package/package.json +86 -16
@@ -4,6 +4,8 @@ import { type PrimitiveAs } from './primitive.js';
4
4
  import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
5
5
  export interface TreeGridRootProps {
6
6
  readonly rows: readonly TreeGridRowInput<string, string>[];
7
+ /** Column labels rendered by TreeGridHeader; data row indexes remain one-based. */
8
+ readonly headers?: readonly string[];
7
9
  readonly getCellValue: (id: string) => string;
8
10
  readonly setCellValue: (id: string, value: string) => void;
9
11
  readonly modelValue?: string | null;
@@ -44,6 +46,16 @@ export interface TreeGridPartProps {
44
46
  readonly as?: PrimitiveAs;
45
47
  readonly asChild?: boolean;
46
48
  }
49
+ export interface TreeGridHeaderCellProps extends TreeGridPartProps {
50
+ readonly columnIndex: number;
51
+ }
52
+ export interface TreeGridHeaderCellSlotProps {
53
+ readonly columnIndex: number;
54
+ readonly label: string;
55
+ }
56
+ export interface TreeGridGroupProps extends TreeGridPartProps, ConditionalPresenceProps {
57
+ readonly for: string;
58
+ }
47
59
  export interface TreeGridEditorProps extends ConditionalPresenceProps {
48
60
  readonly for: string;
49
61
  readonly label?: string;
@@ -53,6 +65,10 @@ export declare const TreeGridRoot: import("vue").DefineComponent<import("vue").E
53
65
  type: PropType<readonly TreeGridRowInput<string, string>[]>;
54
66
  required: true;
55
67
  };
68
+ headers: {
69
+ type: PropType<readonly string[]>;
70
+ default: () => never[];
71
+ };
56
72
  getCellValue: {
57
73
  type: PropType<TreeGridCellValueResolver>;
58
74
  required: true;
@@ -123,6 +139,10 @@ export declare const TreeGridRoot: import("vue").DefineComponent<import("vue").E
123
139
  type: PropType<readonly TreeGridRowInput<string, string>[]>;
124
140
  required: true;
125
141
  };
142
+ headers: {
143
+ type: PropType<readonly string[]>;
144
+ default: () => never[];
145
+ };
126
146
  getCellValue: {
127
147
  type: PropType<TreeGridCellValueResolver>;
128
148
  required: true;
@@ -189,6 +209,7 @@ export declare const TreeGridRoot: import("vue").DefineComponent<import("vue").E
189
209
  "onUpdate:highlightedValue"?: (_value: string | null) => any;
190
210
  "onUpdate:modelValue"?: (_value: string | null) => any;
191
211
  }>, {
212
+ headers: readonly string[];
192
213
  modelValue: string | null;
193
214
  defaultValue: string | null;
194
215
  expandedValue: readonly string[];
@@ -209,6 +230,65 @@ export type TreeGridValueChangeHandler = (value: string | null) => void;
209
230
  export type TreeGridExpandedValueChangeHandler = (value: readonly string[]) => void;
210
231
  export type TreeGridHighlightedValueChangeHandler = (value: string | null) => void;
211
232
  export type TreeGridEditModeChangeHandler = (value: TreeGridEditMode) => void;
233
+ /** Authored alongside data rows; the root owns the count and data-index offset. */
234
+ export declare const TreeGridHeader: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
235
+ as: {
236
+ type: PropType<PrimitiveAs>;
237
+ default: string;
238
+ };
239
+ asChild: {
240
+ type: BooleanConstructor;
241
+ default: boolean;
242
+ };
243
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
244
+ as: {
245
+ type: PropType<PrimitiveAs>;
246
+ default: string;
247
+ };
248
+ asChild: {
249
+ type: BooleanConstructor;
250
+ default: boolean;
251
+ };
252
+ }>> & Readonly<{}>, {
253
+ as: PrimitiveAs;
254
+ asChild: boolean;
255
+ }, SlotsType<{
256
+ default: (props: {
257
+ readonly headers: readonly string[];
258
+ }) => VNodeChild;
259
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
260
+ export declare const TreeGridHeaderCell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
261
+ as: {
262
+ type: PropType<PrimitiveAs>;
263
+ default: string;
264
+ };
265
+ asChild: {
266
+ type: BooleanConstructor;
267
+ default: boolean;
268
+ };
269
+ columnIndex: {
270
+ type: NumberConstructor;
271
+ required: true;
272
+ };
273
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
274
+ as: {
275
+ type: PropType<PrimitiveAs>;
276
+ default: string;
277
+ };
278
+ asChild: {
279
+ type: BooleanConstructor;
280
+ default: boolean;
281
+ };
282
+ columnIndex: {
283
+ type: NumberConstructor;
284
+ required: true;
285
+ };
286
+ }>> & Readonly<{}>, {
287
+ as: PrimitiveAs;
288
+ asChild: boolean;
289
+ }, SlotsType<{
290
+ default: (props: TreeGridHeaderCellSlotProps) => VNodeChild;
291
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
212
292
  export declare const TreeGridRow: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
213
293
  as: {
214
294
  type: PropType<PrimitiveAs>;
@@ -267,6 +347,48 @@ export declare const TreeGridRow: import("vue").DefineComponent<import("vue").Ex
267
347
  }, SlotsType<{
268
348
  default: (props: TreeGridRowSlotProps) => VNodeChild;
269
349
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
350
+ /** Rowgroup visibility borrows the root expansion owner and the shared Presence lifecycle. */
351
+ export declare const TreeGridGroup: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
352
+ forcePresent: {
353
+ readonly type: BooleanConstructor;
354
+ readonly default: false;
355
+ };
356
+ as: {
357
+ type: PropType<PrimitiveAs>;
358
+ default: string;
359
+ };
360
+ asChild: {
361
+ type: BooleanConstructor;
362
+ default: boolean;
363
+ };
364
+ for: {
365
+ type: StringConstructor;
366
+ required: true;
367
+ };
368
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
369
+ forcePresent: {
370
+ readonly type: BooleanConstructor;
371
+ readonly default: false;
372
+ };
373
+ as: {
374
+ type: PropType<PrimitiveAs>;
375
+ default: string;
376
+ };
377
+ asChild: {
378
+ type: BooleanConstructor;
379
+ default: boolean;
380
+ };
381
+ for: {
382
+ type: StringConstructor;
383
+ required: true;
384
+ };
385
+ }>> & Readonly<{}>, {
386
+ forcePresent: boolean;
387
+ as: PrimitiveAs;
388
+ asChild: boolean;
389
+ }, SlotsType<{
390
+ default: (props: TreeGridRootSlotProps) => VNodeChild;
391
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
270
392
  export declare const TreeGridCell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
271
393
  as: {
272
394
  type: PropType<PrimitiveAs>;
package/dist/tree-grid.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeGrid}from"@sectile/dom/tree-grid";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileTreeGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeGridRoot=defineComponent({name:"SectileTreeGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},getCellValue:{type:Function,required:true},setCellValue:{type:Function,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},expandedValue:{type:Array,default:void 0},defaultExpandedValue:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValue!==void 0?props.expandedValue:props.defaultExpandedValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("TreeGridRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeGridRoot","expandedValue",()=>props.expandedValue),highlighted:useControlledStateInvariant("TreeGridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("TreeGridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValue:props.expandedValue!==void 0?props.expandedValue:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const expandedRows=computed(()=>new Set(state.value.expandedValue));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;connection.value.setGridAttributes(props.rows.length,maxTreeGridColumnCount(props.rows));element.value.querySelectorAll("[data-sectile-tree-grid-row]").forEach(node=>connection.value?.setRowAttributes(node,{rowIndex:numberData(node.dataset["rowIndex"],1),level:numberData(node.dataset["level"],1),...node.dataset["expandable"]===void 0?{}:{expanded:node.dataset["expanded"]!==void 0}}));element.value.querySelectorAll("[data-sectile-tree-grid-cell]").forEach(node=>{const id=node.dataset["sectileTreeGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,{id,columnIndex:numberData(node.dataset["columnIndex"],1)})});element.value.querySelectorAll("[data-sectile-tree-grid-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeGridDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)});element.value.querySelectorAll("[data-sectile-tree-grid-editor]").forEach(node=>{const id=node.dataset["sectileTreeGridEditor"];if(id!==void 0)connection.value?.bindEditor(node,{id,...node.getAttribute("aria-label")===null?{}:{label:node.getAttribute("aria-label")}})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const cells=nextOwner.rows.flatMap(row=>row.cells.filter(id=>id!==null));const branches=collectionBranchIDs(nextOwner.rows);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValue:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(cells,requestedValue===null?[]:[requestedValue],requestedHighlight,[],"single",{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localExpanded.value=expanded;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValue",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createTreeGrid({root:element.value,rows:nextOwner.rows,getCellValue:id=>props.getCellValue(id),setCellValue:(id,value2)=>props.setCellValue(id,value2),...controlled.value?{value}:{defaultValue:value},...controlled.expanded?{expandedValue:expanded}:{defaultExpandedValue:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onExpandedValueChange:({value:value2})=>{localExpanded.value=value2;emit("update:expandedValue",value2)},onHighlightedValueChange:({value:value2})=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:({value:value2})=>{localEditMode.value=value2;emit("update:editMode",value2)},onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};let mounted=false;let editorFocused=false;let editorComposing=false;let reconnectPending=false;let reconnectTimer=null;const editorActive=()=>editorFocused||editorComposing;const requestConnect=()=>{if(editorActive()){reconnectPending=true;return}connect()};const schedulePendingConnect=()=>{if(editorActive()||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||editorActive())return;reconnectPending=false;connect()},0)};const setEditorFocused=focused=>{editorFocused=focused;schedulePendingConnect()};const setEditorComposing=composing=>{editorComposing=composing;schedulePendingConnect()};provide(key,{state,expandedRows,registerRow:(node,rowIndex,level,expanded)=>connection.value?.setRowAttributes(node,{rowIndex,level,...expanded===void 0?{}:{expanded}}),registerCell:(node,id,columnIndex)=>connection.value?.setCellAttributes(node,{id,columnIndex}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id),registerEditor:(node,id,label)=>connection.value?.bindEditor(node,{id,...label===void 0?{}:{label}}),setEditorFocused,setEditorComposing,handleEditorKeydown:event=>{if(connection.value?.handleKeyboardEvent(event)!==true)return;event.preventDefault();event.stopPropagation()}});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;editorFocused=false;editorComposing=false;connection.value?.disconnect()});watch([()=>props.rows,()=>props.getCellValue,()=>props.setCellValue,()=>props.disabled,()=>props.readonly,()=>props.policies],requestConnect);watch([()=>props.modelValue,()=>props.expandedValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValue:props.expandedValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridRow=defineComponent({name:"SectileTreeGridRow",inheritAttrs:false,props:{value:{type:String,required:true},rowIndex:{type:Number,required:true},level:{type:Number,default:1},expandable:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridRow");const state=computed(()=>({...root.state.value,value:props.value,expanded:root.expandedRows.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerRow(node,props.rowIndex,props.level,props.expandable?state.value.expanded:void 0)},"data-sectile-tree-grid-row":props.value,"data-row-index":props.rowIndex,"data-level":props.level,"data-expandable":props.expandable?"":void 0,"data-expanded":props.expandable&&state.value.expanded?"":void 0,"data-scope":"tree-grid","data-part":"row"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridCell=defineComponent({name:"SectileTreeGridCell",inheritAttrs:false,props:{value:{type:String,required:true},columnIndex:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridCell");const state=computed(()=>({...root.state.value,value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,editing:root.state.value.highlightedValue===props.value&&root.state.value.editMode==="editing"}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value,props.columnIndex)},"data-sectile-tree-grid-cell":props.value,"data-column-index":props.columnIndex,"data-scope":"tree-grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-editing":state.value.editing?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridDisclosure=defineComponent({name:"SectileTreeGridDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridDisclosure");const state=computed(()=>({...root.state.value,value:props.for,expanded:root.expandedRows.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?root.state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-grid-disclosure":props.for,"data-scope":"tree-grid","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridEditor=defineComponent({name:"SectileTreeGridEditor",inheritAttrs:false,props:{for:{type:String,required:true},label:{type:String,default:void 0},...conditionalPresenceProps},setup(props,{attrs}){const root=useRoot("TreeGridEditor");const editing=computed(()=>root.state.value.highlightedValue===props.for&&root.state.value.editMode==="editing");const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(editing,forcePresent);return()=>{const inactivePresent=!editing.value&&presence.present.value;return h("input",mergeProps(attrs,{ref:node=>{const element=presence.register(node);if(element?.tagName==="INPUT")root.registerEditor(element,props.for,props.label)},hidden:presence.hidden.value,tabindex:inactivePresent?-1:void 0,onKeydown:root.handleEditorKeydown,onFocus:()=>root.setEditorFocused(true),onBlur:()=>root.setEditorFocused(false),onCompositionstart:()=>root.setEditorComposing(true),onCompositionend:()=>root.setEditorComposing(false),...inactivePresent?{inert:true,"aria-hidden":"true"}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":props.label,"data-sectile-tree-grid-editor":props.for,"data-scope":"tree-grid","data-part":"editor","data-state":editing.value?"editing":"idle"}))}}});function numberData(value,fallback){const parsed=Number(value);return Number.isFinite(parsed)?parsed:fallback}function maxTreeGridColumnCount(rows){let maximum=0;for(const row of rows)maximum=Math.max(maximum,row.cells.length);return maximum}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeGridRoot.`);return root}function snapshotTreeGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze({id:row.id,parentID:row.parentID,cells:Object.freeze([...row.cells])}))),disabled:props.disabled,readonly:props.readonly,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameTreeGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||left.disabled!==right.disabled||left.readonly!==right.readonly||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;for(let rowIndex=0;rowIndex<left.rows.length;rowIndex+=1){const leftRow=left.rows[rowIndex];const rightRow=right.rows[rowIndex];if(leftRow.id!==rightRow.id||leftRow.parentID!==rightRow.parentID||leftRow.cells.length!==rightRow.cells.length)return false;for(let column=0;column<leftRow.cells.length;column+=1){if(leftRow.cells[column]!==rightRow.cells[column])return false}}return true}export{TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeGrid}from"@sectile/dom/tree-grid";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileTreeGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeGridRoot=defineComponent({name:"SectileTreeGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},headers:{type:Array,default:()=>[]},getCellValue:{type:Function,required:true},setCellValue:{type:Function,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},expandedValue:{type:Array,default:void 0},defaultExpandedValue:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const dataColumnCount=computed(()=>maxTreeGridColumnCount(props.rows));const headers=computed(()=>props.headers);const headerCount=computed(()=>headers.value.length===0?0:1);const columnCount=computed(()=>{if(headerCount.value&&headers.value.length<dataColumnCount.value){throw new TypeError("TreeGrid headers must label every data column.")}return Math.max(dataColumnCount.value,headers.value.length)});const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValue!==void 0?props.expandedValue:props.defaultExpandedValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("TreeGridRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeGridRoot","expandedValue",()=>props.expandedValue),highlighted:useControlledStateInvariant("TreeGridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("TreeGridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValue:props.expandedValue!==void 0?props.expandedValue:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const expandedRows=computed(()=>new Set(state.value.expandedValue));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;connection.value.setGridAttributes(props.rows.length+headerCount.value,columnCount.value);element.value.querySelectorAll("[data-sectile-tree-grid-row]").forEach(node=>connection.value?.setRowAttributes(node,{rowIndex:numberData(node.dataset["rowIndex"],1)+headerCount.value,level:numberData(node.dataset["level"],1),...node.dataset["expandable"]===void 0?{}:{expanded:node.dataset["expanded"]!==void 0}}));element.value.querySelectorAll("[data-sectile-tree-grid-cell]").forEach(node=>{const id=node.dataset["sectileTreeGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,{id,columnIndex:numberData(node.dataset["columnIndex"],1)})});element.value.querySelectorAll("[data-sectile-tree-grid-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeGridDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)});element.value.querySelectorAll("[data-sectile-tree-grid-editor]").forEach(node=>{const id=node.dataset["sectileTreeGridEditor"];if(id!==void 0)connection.value?.bindEditor(node,{id,...node.getAttribute("aria-label")===null?{}:{label:node.getAttribute("aria-label")}})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const cells=nextOwner.rows.flatMap(row=>row.cells.filter(id=>id!==null));const branches=collectionBranchIDs(nextOwner.rows);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValue:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(cells,requestedValue===null?[]:[requestedValue],requestedHighlight,[],"single",{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localExpanded.value=expanded;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValue",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createTreeGrid({root:element.value,rows:nextOwner.rows,getCellValue:id=>props.getCellValue(id),setCellValue:(id,value2)=>props.setCellValue(id,value2),...controlled.value?{value}:{defaultValue:value},...controlled.expanded?{expandedValue:expanded}:{defaultExpandedValue:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onExpandedValueChange:({value:value2})=>{localExpanded.value=value2;emit("update:expandedValue",value2)},onHighlightedValueChange:({value:value2})=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:({value:value2})=>{localEditMode.value=value2;emit("update:editMode",value2)},onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};let mounted=false;let editorFocused;let editorComposing;let reconnectPending=false;let reconnectTimer=null;const editorActive=()=>editorFocused!==void 0||editorComposing!==void 0;const requestConnect=()=>{if(editorActive()){reconnectPending=true;return}connect()};const schedulePendingConnect=()=>{if(editorActive()||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||editorActive())return;reconnectPending=false;connect()},0)};const setEditorFocused=(node,focused)=>{if(focused)editorFocused=node;else if(editorFocused===node)editorFocused=void 0;schedulePendingConnect()};const setEditorComposing=(node,composing)=>{if(composing)editorComposing=node;else if(editorComposing===node)editorComposing=void 0;schedulePendingConnect()};provide(key,{state,expandedRows,headers,headerCount,registerRow:(node,rowIndex,level,expanded)=>connection.value?.setRowAttributes(node,{rowIndex:rowIndex+headerCount.value,level,...expanded===void 0?{}:{expanded}}),registerCell:(node,id,columnIndex)=>connection.value?.setCellAttributes(node,{id,columnIndex}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id),registerEditor:(node,id,label)=>connection.value?.bindEditor(node,{id,...label===void 0?{}:{label}}),unregisterEditor:node=>{connection.value?.unbindEditor(node);setEditorFocused(node,false);setEditorComposing(node,false)},setEditorFocused,setEditorComposing,handleEditorKeydown:event=>{if(connection.value?.handleKeyboardEvent(event)!==true)return;event.preventDefault();event.stopPropagation()}});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;editorFocused=void 0;editorComposing=void 0;connection.value?.disconnect()});watch([()=>props.rows,()=>props.getCellValue,()=>props.setCellValue,()=>props.disabled,()=>props.readonly,()=>props.policies],requestConnect);watch(headers,refreshParts,{flush:"post"});watch([()=>props.modelValue,()=>props.expandedValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValue:props.expandedValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},role:"treegrid","aria-rowcount":props.rows.length+headerCount.value,"aria-colcount":columnCount.value,"data-column-count":columnCount.value,"data-scope":"tree-grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridHeader=defineComponent({name:"SectileTreeGridHeader",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridHeader");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"row","aria-rowindex":1,hidden:root.headerCount.value===0,"data-scope":"tree-grid","data-part":"header"}),{default:()=>slots["default"]?.({headers:root.headers.value})??root.headers.value.map((_label,index)=>h(TreeGridHeaderCell,{key:index,columnIndex:index+1}))})}});const TreeGridHeaderCell=defineComponent({name:"SectileTreeGridHeaderCell",inheritAttrs:false,props:{columnIndex:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridHeaderCell");return()=>{const label=root.headers.value[props.columnIndex-1]??"";return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"columnheader","aria-colindex":props.columnIndex,"data-scope":"tree-grid","data-part":"headerCell"}),{default:()=>slots["default"]?.({columnIndex:props.columnIndex,label})??label})}}});const TreeGridRow=defineComponent({name:"SectileTreeGridRow",inheritAttrs:false,props:{value:{type:String,required:true},rowIndex:{type:Number,required:true},level:{type:Number,default:1},expandable:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridRow");const state=computed(()=>({...root.state.value,value:props.value,expanded:root.expandedRows.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerRow(node,props.rowIndex,props.level,props.expandable?state.value.expanded:void 0)},role:"row","aria-rowindex":props.rowIndex+root.headerCount.value,"aria-level":props.level,"aria-expanded":props.expandable?state.value.expanded:void 0,"data-sectile-tree-grid-row":props.value,"data-row-index":props.rowIndex,"data-level":props.level,"data-expandable":props.expandable?"":void 0,"data-expanded":props.expandable&&state.value.expanded?"":void 0,"data-scope":"tree-grid","data-part":"row"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridGroup=defineComponent({name:"SectileTreeGridGroup",inheritAttrs:false,props:{for:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridGroup"),expanded=computed(()=>root.expandedRows.value.has(props.for));const presence=useConditionalPresence(expanded,computed(()=>props.forcePresent));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,role:"rowgroup",hidden:presence.hidden.value,...!expanded.value&&presence.present.value?{inert:true,"aria-hidden":"true"}:{},"data-scope":"tree-grid","data-part":"group","data-state":expanded.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const TreeGridCell=defineComponent({name:"SectileTreeGridCell",inheritAttrs:false,props:{value:{type:String,required:true},columnIndex:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridCell");const state=computed(()=>({...root.state.value,value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,editing:root.state.value.highlightedValue===props.value&&root.state.value.editMode==="editing"}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value,props.columnIndex)},role:"gridcell","aria-colindex":props.columnIndex,"aria-selected":state.value.selected,"data-sectile-tree-grid-cell":props.value,"data-column-index":props.columnIndex,"data-scope":"tree-grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-editing":state.value.editing?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridDisclosure=defineComponent({name:"SectileTreeGridDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridDisclosure");const state=computed(()=>({...root.state.value,value:props.for,expanded:root.expandedRows.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?root.state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-grid-disclosure":props.for,"data-scope":"tree-grid","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridEditor=defineComponent({name:"SectileTreeGridEditor",inheritAttrs:false,props:{for:{type:String,required:true},label:{type:String,default:void 0},...conditionalPresenceProps},setup(props,{attrs}){const root=useRoot("TreeGridEditor");const editing=computed(()=>root.state.value.highlightedValue===props.for&&root.state.value.editMode==="editing");const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(editing,forcePresent);let registeredInput;const register=node=>{const element=presence.register(node);const input=element?.tagName==="INPUT"?element:void 0;if(registeredInput!==void 0&&registeredInput!==input)root.unregisterEditor(registeredInput);registeredInput=input;if(input!==void 0)root.registerEditor(input,props.for,props.label)};const setFocused=focused=>{if(registeredInput!==void 0)root.setEditorFocused(registeredInput,focused)};const setComposing=composing=>{if(registeredInput!==void 0)root.setEditorComposing(registeredInput,composing)};onBeforeUnmount(()=>{if(registeredInput!==void 0)root.unregisterEditor(registeredInput);registeredInput=void 0});return()=>{const inactivePresent=!editing.value&&presence.present.value;return h("input",mergeProps(attrs,{ref:register,hidden:presence.hidden.value,tabindex:inactivePresent?-1:void 0,onKeydown:root.handleEditorKeydown,onFocus:()=>setFocused(true),onBlur:()=>setFocused(false),onCompositionstart:()=>setComposing(true),onCompositionend:()=>setComposing(false),...inactivePresent?{inert:true,"aria-hidden":"true"}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":props.label,"data-sectile-tree-grid-editor":props.for,"data-scope":"tree-grid","data-part":"editor","data-state":editing.value?"editing":"idle"}))}}});function numberData(value,fallback){const parsed=Number(value);return Number.isFinite(parsed)?parsed:fallback}function maxTreeGridColumnCount(rows){let maximum=0;for(const row of rows)maximum=Math.max(maximum,row.cells.length);return maximum}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeGridRoot.`);return root}function snapshotTreeGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze({id:row.id,parentID:row.parentID,cells:Object.freeze([...row.cells])}))),disabled:props.disabled,readonly:props.readonly,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameTreeGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||left.disabled!==right.disabled||left.readonly!==right.readonly||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;for(let rowIndex=0;rowIndex<left.rows.length;rowIndex+=1){const leftRow=left.rows[rowIndex];const rightRow=right.rows[rowIndex];if(leftRow.id!==rightRow.id||leftRow.parentID!==rightRow.parentID||leftRow.cells.length!==rightRow.cells.length)return false;for(let column=0;column<leftRow.cells.length;column+=1){if(leftRow.cells[column]!==rightRow.cells[column])return false}}return true}export{TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridGroup,TreeGridHeader,TreeGridHeaderCell,TreeGridRoot,TreeGridRow};
2
2
  //# sourceMappingURL=tree-grid.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tree-grid.ts"],"mappings":"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","names":["value"],"file":"tree-grid.js"}
1
+ {"version":3,"sources":["../src/tree-grid.ts"],"mappings":"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","names":["value"],"file":"tree-grid.js"}
@@ -0,0 +1,186 @@
1
+ import { type DefineSetupFnComponent, type EmitsToProps, type PropType, type PublicProps, type SlotsType, type VNodeChild } from 'vue';
2
+ import { type TreeNodeInput } from '@sectile/core/tree';
3
+ import type { TreeSelectSearchRequest, TreeSelectPolicies } from '@sectile/core/tree-select';
4
+ import { type TreeSelectControlledValues } from '@sectile/dom/tree-select';
5
+ import { type PrimitiveAs } from './primitive.js';
6
+ import type { TreeViewGroupProps, TreeViewItemSlotProps, TreeViewPartProps } from './tree-view.js';
7
+ export type { TreeSelectSearchRequest, TreeSelectPolicies } from '@sectile/core/tree-select';
8
+ export interface TreeSelectRootProps<ID extends string = string> extends TreeViewPartProps {
9
+ readonly nodes: readonly TreeNodeInput<ID>[];
10
+ readonly selectionMode?: 'single' | 'multiple';
11
+ readonly modelValue?: readonly NoInfer<ID>[];
12
+ readonly defaultValue?: readonly NoInfer<ID>[];
13
+ readonly expandedValues?: readonly NoInfer<ID>[];
14
+ readonly defaultExpandedValues?: readonly NoInfer<ID>[];
15
+ readonly highlightedValue?: NoInfer<ID> | null;
16
+ readonly defaultHighlightedValue?: NoInfer<ID> | null;
17
+ readonly query?: string;
18
+ readonly defaultQuery?: string;
19
+ readonly open?: boolean;
20
+ readonly defaultOpen?: boolean;
21
+ readonly matches?: readonly NoInfer<ID>[];
22
+ readonly results?: TreeSelectControlledValues<NoInfer<ID>>['results'];
23
+ readonly disabledItems?: readonly NoInfer<ID>[];
24
+ readonly policies?: TreeSelectPolicies<NoInfer<ID>>;
25
+ readonly disabled?: boolean;
26
+ readonly?: boolean;
27
+ readonly label?: string;
28
+ readonly position?: boolean;
29
+ readonly name?: string;
30
+ readonly form?: string;
31
+ readonly required?: boolean;
32
+ }
33
+ export interface TreeSelectRootSlotProps<ID extends string = string> {
34
+ readonly value: readonly ID[];
35
+ readonly expandedValues: readonly ID[];
36
+ readonly highlightedValue: ID | null;
37
+ readonly query: string;
38
+ readonly open: boolean;
39
+ readonly pending: boolean;
40
+ readonly disabled: boolean;
41
+ readonly: boolean;
42
+ readonly request: TreeSelectSearchRequest;
43
+ getChildren(parent: ID | null): readonly ID[];
44
+ isBranch(id: ID): boolean;
45
+ }
46
+ export type TreeSelectEmits<ID extends string = string> = {
47
+ 'update:modelValue': [value: readonly NoInfer<ID>[]];
48
+ 'update:expandedValues': [value: readonly NoInfer<ID>[]];
49
+ 'update:highlightedValue': [value: NoInfer<ID> | null];
50
+ 'update:query': [query: string];
51
+ 'update:open': [open: boolean];
52
+ search: [request: TreeSelectSearchRequest];
53
+ };
54
+ export interface TreeSelectSlots<ID extends string = string> {
55
+ default?: (state: TreeSelectRootSlotProps<ID>) => VNodeChild;
56
+ }
57
+ export interface TreeSelectExpose<ID extends string = string> {
58
+ readonly element: HTMLInputElement | null;
59
+ focus(options?: FocusOptions): void;
60
+ resolveSearch(request: TreeSelectSearchRequest, matches: readonly NoInfer<ID>[]): boolean;
61
+ }
62
+ export interface TreeSelectItemProps extends TreeViewPartProps {
63
+ readonly value: string;
64
+ readonly disabled?: never;
65
+ }
66
+ export type TreeSelectGroupProps = TreeViewGroupProps;
67
+ export interface TreeSelectDisclosureProps extends TreeViewPartProps {
68
+ readonly for: string;
69
+ }
70
+ export type TreeSelectPartProps = TreeViewPartProps;
71
+ type RootProps<ID extends string> = TreeSelectRootProps<ID> & PublicProps & EmitsToProps<TreeSelectEmits<ID>>;
72
+ type RootInstance<ID extends string> = InstanceType<DefineSetupFnComponent<TreeSelectRootProps<ID>, TreeSelectEmits<ID>, SlotsType<TreeSelectSlots<ID>>>> & TreeSelectExpose<ID>;
73
+ export declare const TreeSelectRoot: new <const ID extends string = string>(props: RootProps<ID>) => Omit<RootInstance<ID>, '$props'> & {
74
+ readonly $props: RootProps<ID>;
75
+ };
76
+ export declare const TreeSelectInput: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
77
+ asChild: {
78
+ type: BooleanConstructor;
79
+ default: boolean;
80
+ };
81
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, PublicProps, Readonly<import("vue").ExtractPropTypes<{
82
+ asChild: {
83
+ type: BooleanConstructor;
84
+ default: boolean;
85
+ };
86
+ }>> & Readonly<{}>, {
87
+ asChild: boolean;
88
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
89
+ export declare const TreeSelectContent: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
90
+ as: {
91
+ type: PropType<PrimitiveAs>;
92
+ default: string;
93
+ };
94
+ asChild: {
95
+ type: BooleanConstructor;
96
+ default: boolean;
97
+ };
98
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, PublicProps, Readonly<import("vue").ExtractPropTypes<{
99
+ as: {
100
+ type: PropType<PrimitiveAs>;
101
+ default: string;
102
+ };
103
+ asChild: {
104
+ type: BooleanConstructor;
105
+ default: boolean;
106
+ };
107
+ }>> & Readonly<{}>, {
108
+ as: PrimitiveAs;
109
+ asChild: boolean;
110
+ }, SlotsType<TreeSelectSlots<string>>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
111
+ export declare const TreeSelectItem: DefineSetupFnComponent<TreeSelectItemProps, {}, SlotsType<{
112
+ default?: (state: TreeViewItemSlotProps) => VNodeChild;
113
+ }>>;
114
+ export declare const TreeSelectGroup: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
115
+ forcePresent: {
116
+ readonly type: BooleanConstructor;
117
+ readonly default: false;
118
+ };
119
+ as: {
120
+ type: PropType<PrimitiveAs>;
121
+ default: string;
122
+ };
123
+ asChild: {
124
+ type: BooleanConstructor;
125
+ default: boolean;
126
+ };
127
+ for: {
128
+ type: StringConstructor;
129
+ required: true;
130
+ };
131
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, PublicProps, Readonly<import("vue").ExtractPropTypes<{
132
+ forcePresent: {
133
+ readonly type: BooleanConstructor;
134
+ readonly default: false;
135
+ };
136
+ as: {
137
+ type: PropType<PrimitiveAs>;
138
+ default: string;
139
+ };
140
+ asChild: {
141
+ type: BooleanConstructor;
142
+ default: boolean;
143
+ };
144
+ for: {
145
+ type: StringConstructor;
146
+ required: true;
147
+ };
148
+ }>> & Readonly<{}>, {
149
+ forcePresent: boolean;
150
+ as: PrimitiveAs;
151
+ asChild: boolean;
152
+ }, SlotsType<{
153
+ default: (props: import("./tree-view.js").TreeViewRootSlotProps) => VNodeChild;
154
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
155
+ export declare const TreeSelectDisclosure: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
156
+ for: {
157
+ type: StringConstructor;
158
+ required: true;
159
+ };
160
+ as: {
161
+ type: PropType<PrimitiveAs>;
162
+ default: string;
163
+ };
164
+ asChild: {
165
+ type: BooleanConstructor;
166
+ default: boolean;
167
+ };
168
+ }>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, PublicProps, Readonly<import("vue").ExtractPropTypes<{
169
+ for: {
170
+ type: StringConstructor;
171
+ required: true;
172
+ };
173
+ as: {
174
+ type: PropType<PrimitiveAs>;
175
+ default: string;
176
+ };
177
+ asChild: {
178
+ type: BooleanConstructor;
179
+ default: boolean;
180
+ };
181
+ }>> & Readonly<{}>, {
182
+ as: PrimitiveAs;
183
+ asChild: boolean;
184
+ }, SlotsType<{
185
+ default: (props: TreeViewItemSlotProps) => VNodeChild;
186
+ }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,2 @@
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,useId,watch}from'vue';import{createTree}from'@sectile/core/tree';import{unwrap}from'@sectile/core/result';import{connectTreeSelect,createTreeSelectController}from'@sectile/dom/tree-select';import{stableIDElementToken}from'@sectile/dom/identity';import{Primitive}from'./primitive.js';import{usePopupPresentation}from'./internal/popup-presentation.js';import{useControlledStateInvariant}from'./internal/controlled-state.js';import{useNextTickTask}from'./internal/scheduled-task.js';import{reconcileCollectionState,sameIDs}from'./internal/collection.js';import{createTreeGroup,createTreeItem,createTreeDisclosure,provideTreeParts}from'./internal/tree-parts.js';import{usePresence}from'./presence/presence.js';import{provideHostLayerParent}from'./host-provider.js';import{hiddenSelectSubmissionCapabilities,provideFormControlOwner,useCompositeFormControl,useFormControlFlags,useFormSubmissionProps}from'./form/control.js';import{visuallyHiddenInputStyle}from'./input/native-input.js';const key=/* @__PURE__ */Symbol('SectileTreeSelect');const empty=/* @__PURE__ */Object.freeze([]);const partProps={as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}};function useRoot(name){const root=inject(key);if(!root)throw new TypeError(`${name} must be used inside TreeSelectRoot.`);return root}const RootImplementation=/* @__PURE__ */defineComponent({name:'SectileTreeSelectRoot',inheritAttrs:false,props:{nodes:{type:Array,required:true},selectionMode:{type:String,default:'single'},modelValue:{type:Array,default:undefined},defaultValue:{type:Array,default:()=>empty},expandedValues:{type:Array,default:undefined},defaultExpandedValues:{type:Array,default:()=>empty},highlightedValue:{type:String,default:undefined},defaultHighlightedValue:{type:String,default:null},query:{type:String,default:undefined},defaultQuery:{type:String,default:''},open:{type:Boolean,default:undefined},defaultOpen:{type:Boolean,default:false},matches:{type:Array,default:undefined},results:{type:Object,default:undefined},disabledItems:{type:Array,default:()=>empty},policies:{type:Object,default:undefined},disabled:{type:Boolean,default:undefined},readonly:{type:Boolean,default:undefined},required:{type:Boolean,default:undefined},label:String,name:String,form:String,position:{type:Boolean,default:true},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:{'update:modelValue':_value=>true,'update:expandedValues':_value=>true,'update:highlightedValue':_value=>true,'update:query':_value=>true,'update:open':_value=>true,search:_request=>true},slots:Object,setup(props,{attrs,emit,slots,expose}){const input=shallowRef(),popup=shallowRef(),submission=shallowRef();const controller=shallowRef(),accepted=shallowRef();const connection=shallowRef();const flags=useFormControlFlags(props);const disabled=computed(()=>flags.value.disabled),readonly=computed(()=>flags.value.readonly);const required=computed(()=>flags.value.required);const inputID=`sectile-tree-select-${useId()}`,popupID=`${inputID}-popup`;const elementID=id=>`${popupID}-${stableIDElementToken(id)}`;const items=new Map,disclosures=new Map;let alive=true,mounted=false,generation=0;const controlled={value:useControlledStateInvariant('TreeSelectRoot','modelValue',()=>props.modelValue),expansion:useControlledStateInvariant('TreeSelectRoot','expandedValues',()=>props.expandedValues),cursor:useControlledStateInvariant('TreeSelectRoot','highlightedValue',()=>props.highlightedValue),query:useControlledStateInvariant('TreeSelectRoot','query',()=>props.query),open:useControlledStateInvariant('TreeSelectRoot','open',()=>props.open)};const initial={value:props.defaultValue,expansion:props.defaultExpandedValues,cursor:props.defaultHighlightedValue,query:props.defaultQuery,open:props.defaultOpen};const snapshot=computed(()=>accepted.value.state);const navigation=computed(()=>(snapshot.value.results?.tree??controller.value.tree).visible(snapshot.value.view.expansion.ids));const publish=()=>{if(alive&&controller.value)accepted.value=controller.value.getSnapshot()};const refreshParts=()=>{const current=connection.value;if(!current)return;for(const[element,id]of items)current.setItemAttributes(element,{id});for(const[element,id]of disclosures)current.setDisclosureAttributes(element,id)};const refresh=()=>{publish();refreshParts();connection.value?.render()};const disconnect=()=>{try{lifecycle.release()}finally{try{connection.value?.disconnect()}finally{connection.value=undefined}}};const attach=()=>{disconnect();if(!alive||!mounted||!input.value||!popup.value||!controller.value)return;connection.value=connectTreeSelect({controller:controller.value,input:input.value,popup:popup.value,position:props.position,manageVisibility:false,...lifecycle.layerHost.value===undefined?{}:{layerHost:lifecycle.layerHost.value},getItemElementID:elementID,onUpdate:()=>{publish();refreshParts();lifecycle.update()}});refresh()};const open=computed(()=>accepted.value?.state.open??props.open??props.defaultOpen);const lifecycle=usePopupPresentation({connection,open,connect:attach,refresh,trackLayerHost:true});const attachmentTask=useNextTickTask(()=>{if(alive&&mounted)lifecycle.reconnect()});const scheduleAttach=()=>{if(alive&&mounted)attachmentTask.schedule()};const values=()=>({...controlled.value?{value:props.modelValue}:{},...controlled.expansion?{expandedValues:props.expandedValues}:{},...controlled.cursor?{highlightedValue:props.highlightedValue}:{},...controlled.query?{query:props.query}:{},...controlled.open?{open:props.open}:{},...props.results===undefined?{}:{results:props.results}});const build=(reset=false)=>{if(!alive)return;const prior=controller.value?.getSnapshot().state,previous=reset?undefined:prior,tree=createTree(props.nodes);const requested=controlled.value?props.modelValue:previous?.selection.selected??initial.value;const value=prior?reconcileCollectionState(tree.preorder().ids,requested,null,empty,props.selectionMode,{preserveNullCurrent:true}).selected:requested;const expanded=tree.normalizeExpansion(controlled.expansion?props.expandedValues:previous?.expansion.ids??initial.expansion).ids;const query=controlled.query?props.query:previous?.request.query??initial.query;const requestedCursor=controlled.cursor?props.highlightedValue:previous?.view.cursor.current??initial.cursor;const visible=tree.visible(expanded).ids;const cursor=!prior?requestedCursor:query===''?reconcileCollectionState(visible,empty,requestedCursor,props.disabledItems,'multiple',{preserveNullCurrent:true}).current:controlled.cursor?requestedCursor:null;const nextGeneration=generation+1,current=()=>alive&&generation===nextGeneration;const next=unwrap(createTreeSelectController({tree,selectionMode:props.selectionMode,disabled:disabled.value,readOnly:readonly.value,disabledItems:props.disabledItems,...props.policies===undefined?{}:{policies:props.policies},...props.matches===undefined?{}:{matches:props.matches},...controlled.value?{value}:{defaultValue:value},...controlled.expansion?{expandedValues:expanded}:{defaultExpandedValues:expanded},...controlled.cursor?{highlightedValue:cursor}:{defaultHighlightedValue:cursor},...controlled.query?{query}:{defaultQuery:query},...controlled.open?{open:props.open}:{defaultOpen:previous?.open??initial.open},onValueChange:value=>{if(current())emit('update:modelValue',value)},onExpandedValuesChange:value=>{if(current())emit('update:expandedValues',value)},onHighlightedValueChange:value=>{if(current())emit('update:highlightedValue',value)},onQueryChange:value=>{if(current())emit('update:query',value)},onOpenChange:value=>{if(current())emit('update:open',value)},onSearch:request=>{if(current())emit('search',request)},onUpdate:()=>{if(current())refresh()}}));const old=controller.value;disconnect();generation=nextGeneration;controller.value=next;old?.dispose();publish();if(previous&&!sameIDs(requested,value))emit('update:modelValue',value);if(previous&&requestedCursor!==cursor)emit('update:highlightedValue',cursor);scheduleAttach()};build();const getChildren=parent=>{if(!alive||!controller.value)return empty;const tree=snapshot.value.results?.tree??controller.value.tree;return parent===null?tree.roots.ids:tree.childrenOf(parent)?.ids??empty};const isBranch=id=>alive&&controller.value?.tree.isLeaf(id)===false;const state=computed(()=>({value:snapshot.value.selection.selected,expandedValues:snapshot.value.view.expansion.ids,highlightedValue:snapshot.value.view.cursor.current,query:snapshot.value.request.query,open:snapshot.value.open,pending:snapshot.value.pending,request:snapshot.value.request,disabled:disabled.value||!lifecycle.active.value,readonly:readonly.value,getChildren,isBranch}));const resetTask=useNextTickTask(()=>{if(alive)build(true)});const submissionProps=useFormSubmissionProps({element:submission,capabilities:hiddenSelectSubmissionCapabilities},props);const participation=useCompositeFormControl({root:input,focusTarget:input,validationTarget:submission,labelMode:'for',submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}],getValue:()=>snapshot.value.selection.selected,isValueEqual:(left,right)=>Array.isArray(left)&&Array.isArray(right)&&sameIDs(left,right),reset:resetTask.schedule});provideFormControlOwner();provide(key,{state,snapshot,inputID,popupID,elementID,position:computed(()=>props.position),label:computed(()=>props.label),controlProps:participation.controlProps,connection,active:lifecycle.active,presentation:lifecycle.presentation,registerPresence:lifecycle.registerPresence,registerInput:node=>{const next=typeof HTMLInputElement!=='undefined'&&node instanceof HTMLInputElement?node:undefined;if(input.value!==next){input.value=next;scheduleAttach()}},registerPopup:node=>{const next=typeof HTMLElement!=='undefined'&&node instanceof HTMLElement?node:undefined;if(popup.value!==next){popup.value=next;scheduleAttach()}}});provideTreeParts({scope:'tree-select',state,selectedItems:computed(()=>snapshot.value.selection),expandedItems:computed(()=>snapshot.value.view.expansion),disabledItems:computed(()=>{accepted.value;return{has:id=>snapshot.value.pending||controller.value?.isDisabled(id)!==false}}),selecting:{levelOf:id=>(controller.value.tree.depthOf(id)??0)+1,isLeaf:id=>controller.value.tree.isLeaf(id)!==false,isVisible:id=>navigation.value.contains(id),elementID},registerItem:(element,id)=>{items.set(element,id);connection.value?.setItemAttributes(element,{id})},unregisterItem:(element,id)=>{if(items.get(element)===id){items.delete(element);connection.value?.releaseItem(element,id)}},registerDisclosure:(element,id)=>{disclosures.set(element,id);connection.value?.setDisclosureAttributes(element,id)},unregisterDisclosure:(element,id)=>{if(disclosures.get(element)===id)disclosures.delete(element)}});expose({get element(){return input.value??null},focus(options){if(alive&&lifecycle.active.value)input.value?.focus(options)},resolveSearch(request,matches){return alive&&!!controller.value?.resolveSearch(request,matches).ok}});onMounted(()=>{mounted=true;lifecycle.reconnect()});onBeforeUnmount(()=>{alive=false;mounted=false;generation++;attachmentTask.cancel();resetTask.cancel();try{disconnect()}finally{try{controller.value?.dispose()}finally{controller.value=undefined;items.clear();disclosures.clear()}}});watch([()=>props.nodes,()=>props.disabledItems,()=>props.selectionMode,()=>props.policies,()=>props.matches],()=>build());watch([disabled,readonly],()=>{if(controller.value)unwrap(controller.value.syncInteraction({disabled:disabled.value,readOnly:readonly.value}))});watch([()=>props.modelValue,()=>props.expandedValues,()=>props.highlightedValue,()=>props.query,()=>props.open,()=>props.results],()=>{if(!alive||!controller.value)return;lifecycle.prepareModelUpdate();const supplied=values(),result=controller.value.syncControlledValues(supplied);if(!result.ok&&result.error.code==='tree-select-stale-results'){const{results:_stale,...controls}=supplied;unwrap(controller.value.syncControlledValues(controls))}else unwrap(result)},{flush:'post'});watch(()=>props.position,scheduleAttach);const selected=computed(()=>snapshot.value.selection),sourceIDs=computed(()=>controller.value.tree.preorder().ids);const encoding=computed(()=>h('select',{ref:node=>{submission.value=typeof HTMLSelectElement!=='undefined'&&node instanceof HTMLSelectElement?node:undefined},...submissionProps.value,required:required.value,disabled:disabled.value,multiple:props.selectionMode==='multiple',tabindex:-1,'aria-hidden':'true',style:visuallyHiddenInputStyle},[...props.selectionMode==='single'?[h('option',{value:'',selected:selected.value.size===0})]:[],...sourceIDs.value.map(id=>h('option',{key:id,value:id,selected:selected.value.has(id)},id))]));return()=>[h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,'data-scope':'tree-select','data-part':'root','data-state':state.value.open?'open':'closed'}),{default:()=>slots.default?.(state.value)}),...participation.participating||props.name!==undefined||props.form!==undefined||required.value?[encoding.value]:[]]}});export const TreeSelectRoot=RootImplementation;export const TreeSelectInput=/* @__PURE__ */defineComponent({name:'SectileTreeSelectInput',inheritAttrs:false,props:{asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useRoot('TreeSelectInput'),composing=shallowRef(false),element=shallowRef();return()=>h(Primitive,mergeProps(attrs,root.controlProps.value,{as:'input',asChild:props.asChild,elementRef:node=>{element.value=typeof HTMLInputElement!=='undefined'&&node instanceof HTMLInputElement?node:undefined;root.registerInput(node)},id:attrs['id']??root.controlProps.value['id']??root.inputID,name:undefined,required:false,type:'text',value:composing.value?element.value?.value:root.state.value.query,onCompositionstart:()=>{composing.value=true},onCompositionend:()=>{composing.value=false},role:'combobox','aria-haspopup':'tree','aria-autocomplete':'list','aria-controls':root.popupID,'aria-expanded':root.active.value&&root.state.value.open,'aria-activedescendant':element.value?element.value.getAttribute('aria-activedescendant')??undefined:root.active.value&&root.state.value.open&&!root.state.value.pending&&root.state.value.highlightedValue!==null?root.elementID(root.state.value.highlightedValue):undefined,'aria-label':root.label.value??attrs['aria-label'],disabled:root.state.value.disabled,readonly:root.state.value.readonly,'data-scope':'tree-select','data-part':'input'}),slots)}});export const TreeSelectContent=/* @__PURE__ */defineComponent({name:'SectileTreeSelectContent',inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot('TreeSelectContent'),element=shallowRef(),open=computed(()=>root.state.value.open);provideHostLayerParent({active:root.active,open,element,presentation:root.presentation});const present=usePresence(open,element,undefined,root.active);onBeforeUnmount(root.registerPresence(present));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=typeof HTMLElement!=='undefined'&&node instanceof HTMLElement?node:undefined;root.registerPopup(node)},id:root.popupID,role:'tree',tabindex:-1,hidden:!root.active.value||!present.value,'aria-label':root.label.value,'aria-busy':root.state.value.pending,'aria-multiselectable':root.snapshot.value.selectionMode==='multiple'?'true':undefined,...!open.value||!root.active.value?{inert:true,'aria-hidden':'true'}:{},style:root.position.value?{position:'absolute',visibility:element.value===undefined?'hidden':undefined}:undefined,'data-scope':'tree-select','data-part':'content','data-state':open.value?'open':'closed'}),{default:()=>slots.default?.(root.state.value)})}});export const TreeSelectItem=/* @__PURE__ */createTreeItem('SectileTreeSelectItem','tree-select');export const TreeSelectGroup=/* @__PURE__ */createTreeGroup('SectileTreeSelectGroup','tree-select');export const TreeSelectDisclosure=/* @__PURE__ */createTreeDisclosure('SectileTreeSelectDisclosure','tree-select');
2
+ //# sourceMappingURL=tree-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-select.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onMounted","provide","shallowRef","useId","watch","createTree","unwrap","connectTreeSelect","createTreeSelectController","stableIDElementToken","Primitive","usePopupPresentation","useControlledStateInvariant","useNextTickTask","reconcileCollectionState","sameIDs","createTreeGroup","createTreeItem","createTreeDisclosure","provideTreeParts","usePresence","provideHostLayerParent","hiddenSelectSubmissionCapabilities","provideFormControlOwner","useCompositeFormControl","useFormControlFlags","useFormSubmissionProps","visuallyHiddenInputStyle","key","Symbol","empty","Object","freeze","partProps","as","type","String","Function","default","asChild","Boolean","useRoot","name","root","TypeError","RootImplementation","inheritAttrs","props","nodes","Array","required","selectionMode","modelValue","undefined","defaultValue","expandedValues","defaultExpandedValues","highlightedValue","defaultHighlightedValue","query","defaultQuery","open","defaultOpen","matches","results","disabledItems","policies","disabled","readonly","label","form","position","emits","_value","search","_request","slots","setup","attrs","emit","expose","input","popup","submission","controller","accepted","connection","flags","value","inputID","popupID","elementID","id","items","Map","disclosures","alive","mounted","generation","controlled","expansion","cursor","initial","snapshot","state","navigation","tree","visible","view","ids","publish","getSnapshot","refreshParts","current","element","setItemAttributes","setDisclosureAttributes","refresh","render","disconnect","lifecycle","release","attach","manageVisibility","layerHost","getItemElementID","onUpdate","update","connect","trackLayerHost","attachmentTask","reconnect","scheduleAttach","schedule","values","build","reset","prior","previous","requested","selection","selected","preorder","preserveNullCurrent","expanded","normalizeExpansion","request","requestedCursor","nextGeneration","next","readOnly","onValueChange","onExpandedValuesChange","onHighlightedValueChange","onQueryChange","onOpenChange","onSearch","old","dispose","getChildren","parent","roots","childrenOf","isBranch","isLeaf","pending","active","resetTask","submissionProps","capabilities","participation","focusTarget","validationTarget","labelMode","submissions","getValue","isValueEqual","left","right","isArray","controlProps","presentation","registerPresence","registerInput","node","HTMLInputElement","registerPopup","HTMLElement","scope","selectedItems","expandedItems","has","isDisabled","selecting","levelOf","depthOf","isVisible","contains","registerItem","set","unregisterItem","get","delete","releaseItem","registerDisclosure","unregisterDisclosure","focus","options","resolveSearch","ok","cancel","clear","syncInteraction","prepareModelUpdate","supplied","result","syncControlledValues","error","code","_stale","controls","flush","sourceIDs","encoding","ref","HTMLSelectElement","multiple","tabindex","style","size","map","participating","TreeSelectRoot","TreeSelectInput","composing","elementRef","onCompositionstart","onCompositionend","role","getAttribute","TreeSelectContent","present","hidden","inert","visibility","TreeSelectItem","TreeSelectGroup","TreeSelectDisclosure"],"sources":["../src/tree-select.ts"],"mappings":"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","ignoreList":[]}