@sectile/vue 0.18.3 → 0.20.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 (286) hide show
  1. package/README.md +127 -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 +33 -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/number-field.d.ts +18 -1
  116. package/dist/number-field.js +1 -1
  117. package/dist/number-field.js.map +1 -1
  118. package/dist/overlay/dialog.d.ts +1 -0
  119. package/dist/overlay/dialog.js.map +1 -1
  120. package/dist/overlay/drawer.d.ts +33 -4
  121. package/dist/overlay/drawer.js +1 -1
  122. package/dist/overlay/drawer.js.map +1 -1
  123. package/dist/overlay/popover.d.ts +2 -1
  124. package/dist/overlay/popover.js.map +1 -1
  125. package/dist/overlay/popup.d.ts +50 -2
  126. package/dist/overlay/popup.js +1 -1
  127. package/dist/overlay/popup.js.map +1 -1
  128. package/dist/overlay/tooltip.d.ts +38 -3
  129. package/dist/overlay/tooltip.js +1 -1
  130. package/dist/overlay/tooltip.js.map +1 -1
  131. package/dist/pagination.js +1 -1
  132. package/dist/pagination.js.map +1 -1
  133. package/dist/pin-input.js +1 -1
  134. package/dist/pin-input.js.map +1 -1
  135. package/dist/presence/presence.d.ts +1 -1
  136. package/dist/presence/presence.js +1 -1
  137. package/dist/presence/presence.js.map +1 -1
  138. package/dist/primitive.d.ts +37 -3
  139. package/dist/primitive.js +1 -1
  140. package/dist/primitive.js.map +1 -1
  141. package/dist/quantity-field.js +1 -1
  142. package/dist/quantity-field.js.map +1 -1
  143. package/dist/radio-group.js +1 -1
  144. package/dist/radio-group.js.map +1 -1
  145. package/dist/rating.js +1 -1
  146. package/dist/rating.js.map +1 -1
  147. package/dist/reorder.d.ts +169 -77
  148. package/dist/reorder.js +1 -1
  149. package/dist/reorder.js.map +1 -1
  150. package/dist/select.d.ts +21 -0
  151. package/dist/select.js +1 -1
  152. package/dist/select.js.map +1 -1
  153. package/dist/slider.js +1 -1
  154. package/dist/slider.js.map +1 -1
  155. package/dist/spin-button.d.ts +19 -0
  156. package/dist/spin-button.js +1 -1
  157. package/dist/spin-button.js.map +1 -1
  158. package/dist/stepper.js +1 -1
  159. package/dist/stepper.js.map +1 -1
  160. package/dist/switch.js +1 -1
  161. package/dist/switch.js.map +1 -1
  162. package/dist/tabs.d.ts +2 -0
  163. package/dist/tabs.js +1 -1
  164. package/dist/tabs.js.map +1 -1
  165. package/dist/tabular/components.d.ts +5 -0
  166. package/dist/tabular/components.js.map +1 -1
  167. package/dist/tabular/controller.d.ts +1 -0
  168. package/dist/tabular/controller.js +1 -1
  169. package/dist/tabular/controller.js.map +1 -1
  170. package/dist/tabular/data-grid.d.ts +4 -4
  171. package/dist/tabular/data-grid.js +1 -1
  172. package/dist/tabular/data-grid.js.map +1 -1
  173. package/dist/tabular/data-table.d.ts +4 -4
  174. package/dist/tabular/data-table.js +1 -1
  175. package/dist/tabular/data-table.js.map +1 -1
  176. package/dist/tabular/data-tree-grid.d.ts +4 -4
  177. package/dist/tabular/data-tree-grid.js +1 -1
  178. package/dist/tabular/data-tree-grid.js.map +1 -1
  179. package/dist/tabular/parts.d.ts +11 -1
  180. package/dist/tabular/parts.js +1 -1
  181. package/dist/tabular/parts.js.map +1 -1
  182. package/dist/tags-input.d.ts +12 -1
  183. package/dist/tags-input.js +1 -1
  184. package/dist/tags-input.js.map +1 -1
  185. package/dist/temporal/calendar.d.ts +15 -111
  186. package/dist/temporal/calendar.js +1 -1
  187. package/dist/temporal/calendar.js.map +1 -1
  188. package/dist/temporal/capabilities/date-picker.js +1 -1
  189. package/dist/temporal/capabilities/date-picker.js.map +1 -1
  190. package/dist/temporal/capabilities/date-time-picker.js +1 -1
  191. package/dist/temporal/capabilities/date-time-picker.js.map +1 -1
  192. package/dist/temporal/capabilities/date-time-range-picker.js +1 -1
  193. package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -1
  194. package/dist/temporal/capability.d.ts +13 -1
  195. package/dist/temporal/capability.js.map +1 -1
  196. package/dist/temporal/date-field.d.ts +1 -1
  197. package/dist/temporal/date-field.js +1 -1
  198. package/dist/temporal/date-field.js.map +1 -1
  199. package/dist/temporal/date-picker.d.ts +3 -1
  200. package/dist/temporal/date-picker.js.map +1 -1
  201. package/dist/temporal/date-range-field.d.ts +20 -0
  202. package/dist/temporal/date-range-field.js +1 -1
  203. package/dist/temporal/date-range-field.js.map +1 -1
  204. package/dist/temporal/date-range-picker.d.ts +3 -1
  205. package/dist/temporal/date-range-picker.js.map +1 -1
  206. package/dist/temporal/date-time-field.d.ts +4 -1
  207. package/dist/temporal/date-time-field.js +1 -1
  208. package/dist/temporal/date-time-field.js.map +1 -1
  209. package/dist/temporal/date-time-picker.d.ts +3 -1
  210. package/dist/temporal/date-time-picker.js +1 -1
  211. package/dist/temporal/date-time-picker.js.map +1 -1
  212. package/dist/temporal/date-time-range-field.d.ts +158 -0
  213. package/dist/temporal/date-time-range-field.js +2 -0
  214. package/dist/temporal/date-time-range-field.js.map +1 -0
  215. package/dist/temporal/date-time-range-picker.d.ts +3 -1
  216. package/dist/temporal/date-time-range-picker.js +1 -1
  217. package/dist/temporal/date-time-range-picker.js.map +1 -1
  218. package/dist/temporal/internal/time-presentation.d.ts +15 -0
  219. package/dist/temporal/internal/time-presentation.js +2 -0
  220. package/dist/temporal/internal/time-presentation.js.map +1 -0
  221. package/dist/temporal/month-picker.d.ts +3 -1
  222. package/dist/temporal/month-picker.js.map +1 -1
  223. package/dist/temporal/month-range-picker.d.ts +3 -1
  224. package/dist/temporal/month-range-picker.js.map +1 -1
  225. package/dist/temporal/picker.d.ts +23 -1
  226. package/dist/temporal/picker.js +1 -1
  227. package/dist/temporal/picker.js.map +1 -1
  228. package/dist/temporal/range-calendar.d.ts +119 -2
  229. package/dist/temporal/range-calendar.js +1 -1
  230. package/dist/temporal/range-calendar.js.map +1 -1
  231. package/dist/temporal/temporal-provider.d.ts +23 -0
  232. package/dist/temporal/temporal-provider.js +1 -1
  233. package/dist/temporal/temporal-provider.js.map +1 -1
  234. package/dist/temporal/time-field.d.ts +4 -1
  235. package/dist/temporal/time-field.js +1 -1
  236. package/dist/temporal/time-field.js.map +1 -1
  237. package/dist/temporal/time-picker.d.ts +112 -0
  238. package/dist/temporal/time-picker.js +2 -0
  239. package/dist/temporal/time-picker.js.map +1 -0
  240. package/dist/temporal/time-range-field.d.ts +32 -1
  241. package/dist/temporal/time-range-field.js +1 -1
  242. package/dist/temporal/time-range-field.js.map +1 -1
  243. package/dist/temporal/year-picker.d.ts +3 -1
  244. package/dist/temporal/year-picker.js.map +1 -1
  245. package/dist/temporal/year-range-picker.d.ts +3 -1
  246. package/dist/temporal/year-range-picker.js.map +1 -1
  247. package/dist/text.d.ts +43 -1
  248. package/dist/text.js +1 -1
  249. package/dist/text.js.map +1 -1
  250. package/dist/timer.d.ts +16 -5
  251. package/dist/timer.js +1 -1
  252. package/dist/timer.js.map +1 -1
  253. package/dist/toast.js +1 -1
  254. package/dist/toast.js.map +1 -1
  255. package/dist/toggle-group.js +1 -1
  256. package/dist/toggle-group.js.map +1 -1
  257. package/dist/toolbar.js +1 -1
  258. package/dist/toolbar.js.map +1 -1
  259. package/dist/transfer.d.ts +191 -0
  260. package/dist/transfer.js +2 -0
  261. package/dist/transfer.js.map +1 -0
  262. package/dist/tree-grid.d.ts +122 -0
  263. package/dist/tree-grid.js +1 -1
  264. package/dist/tree-grid.js.map +1 -1
  265. package/dist/tree-select.d.ts +186 -0
  266. package/dist/tree-select.js +2 -0
  267. package/dist/tree-select.js.map +1 -0
  268. package/dist/tree-view.js +1 -1
  269. package/dist/tree-view.js.map +1 -1
  270. package/dist/virtual/virtual-collection.d.ts +2 -0
  271. package/dist/virtual/virtual-collection.js.map +1 -1
  272. package/dist/virtual/virtual-grid.d.ts +12 -2
  273. package/dist/virtual/virtual-grid.js +1 -1
  274. package/dist/virtual/virtual-grid.js.map +1 -1
  275. package/dist/virtual/virtual-list.d.ts +12 -3
  276. package/dist/virtual/virtual-list.js +1 -1
  277. package/dist/virtual/virtual-list.js.map +1 -1
  278. package/dist/virtual/virtual-masonry.d.ts +12 -2
  279. package/dist/virtual/virtual-masonry.js +1 -1
  280. package/dist/virtual/virtual-masonry.js.map +1 -1
  281. package/dist/virtual/virtual-spatial.d.ts +12 -2
  282. package/dist/virtual/virtual-spatial.js +1 -1
  283. package/dist/virtual/virtual-spatial.js.map +1 -1
  284. package/dist/window-splitter.js +1 -1
  285. package/dist/window-splitter.js.map +1 -1
  286. package/package.json +88 -17
package/README.md CHANGED
@@ -1,20 +1,133 @@
1
1
  # @sectile/vue
2
2
 
3
- Headless Vue components backed by Sectile DOM semantics.
3
+ Headless Vue compound components backed by Sectile DOM semantics.
4
4
 
5
- ## Responsibility
5
+ ```sh
6
+ pnpm add @sectile/vue vue
7
+ ```
6
8
 
7
- - Expose controlled and uncontrolled state through Vue conventions
8
- - Render accessible compound components without aesthetic styles
9
- - Forward attributes and styling hooks to consumer-owned elements
10
- - Reuse `@sectile/dom` projections for ARIA and interaction behavior
11
- - Follow Vue and HTML naming at the public boundary instead of exposing core policies
9
+ Import focused entries such as `@sectile/vue/checkbox`. Components expose
10
+ `data-scope`, `data-part` and state attributes for application-owned styling.
11
+ Install the corresponding optional domain package for domain integrations.
12
12
 
13
- Components expose stable `data-scope`, `data-part`, and `data-state` attributes. Styling, themes, spacing, and animation remain application responsibilities.
13
+ Within a `FormField`, compose `SelectRoot` with `SelectTrigger`. `FormLabel`
14
+ targets the trigger button, and the hidden native select inherits the field's
15
+ submission name and constraints in the initial server HTML. Put `FormLabel`
16
+ before the trigger as usual; hydration preserves their generated IDs.
17
+ An explicit name, form association, or constraint on `SelectRoot` overrides
18
+ the field default. For an explicit trigger ID, supply the matching `for` on
19
+ `FormLabel`. A trigger rendered through `as` or `asChild` must resolve to a
20
+ native button, matching the Select connection's trigger contract.
14
21
 
15
- `@sectile/vue/virtual/core` provides the typed `useVirtualizer` composable and
16
- `VirtualizerRoot`, `VirtualizerHeader`, `VirtualizerSurface`, `VirtualizerItem`,
17
- and `VirtualizerFooter` headless parts. `VirtualizerItem` supports `asChild`, so
18
- existing collection items keep their semantic element while receiving virtual
19
- placement and measurement refs. Install `@sectile/virtual` separately when using
20
- this subpath; the rest of `@sectile/vue` does not require it.
22
+ Sectile composite controls declare their label semantics so `FormField` can
23
+ render group labels and inherited native submission metadata during SSR.
24
+ Labels can precede controls, including controls inside native wrappers and
25
+ fragments. `FormField` does not execute child component slots to inspect them.
26
+ For an opaque wrapper around a Sectile group control, use
27
+ `labelMode="labelledby"` on `FormField`; a native field can use `"for"`, and a
28
+ fieldset can use `"legend"`. External controls must also register their semantic
29
+ and submission targets through the Form hooks or supply their own native IDs,
30
+ names and labelling. Explicit label targets and control metadata retain their
31
+ precedence. Native event connections, validation, focus recovery, and
32
+ reset coordination start after mounting.
33
+
34
+ `Anchor` from `@sectile/vue/primitive` renders a native link or adopts one native
35
+ `<a>` with `asChild`. An enabled link requires a nonempty `href`. Disabled links
36
+ remove their destination and tab stop; activation guards run before adopted
37
+ navigation callbacks. Router custom slots supply the anchor, destination and
38
+ navigation callback. Routing remains application-owned. Ordinary `Primitive`
39
+ adoption keeps its existing child-first event order.
40
+
41
+ `useFullscreen` from `@sectile/vue/fullscreen` observes an HTML template ref and
42
+ exposes readonly shallow `snapshot` and `error` refs, plus `enter()`, `exit()` and
43
+ `refresh()`. Call `enter()` directly from an activating handler. Native capability
44
+ does not guarantee permission or activation; each operation returns its own result.
45
+ Observation pauses with the optional `active` ref, inherited host inactivity or
46
+ KeepAlive deactivation. Pausing or unmounting settles pending calls as disposed
47
+ and removes observation, without cancelling a native request or implicitly exiting
48
+ fullscreen. Before mount or while inactive, the snapshot is undefined.
49
+
50
+ `useMediaGesture` from `@sectile/vue/media-gesture` connects an HTML template ref
51
+ to native drag, pinch and optional wheel facts. Supply `onStart` admission and
52
+ `onMove`; optional `onEnd` and `onWheel` receive the native owner's notifications.
53
+ Stable `measure()` projects up to four client points with tuple types preserved;
54
+ `cancel()` ends the current contacts. Inactive measurement returns unavailable.
55
+ The readonly shallow `error` reports connection admission, not media state.
56
+ Observation follows the `active` ref, inherited host activity and KeepAlive.
57
+ Target/activity retirement reports an active gesture's disconnect; terminal
58
+ scope disposal is silent. Media state, zoom policy and presentation remain with
59
+ their owners.
60
+
61
+ `admitPointer` can explicitly admit an authored media button using the event
62
+ origin and `protectedOrigin`. Its default 4-client-pixel `dragThreshold` preserves
63
+ native focus and click activation until a drag is claimed. `onStart` runs at
64
+ that claim boundary; ordinary protected controls still decline unless the
65
+ predicate admits them. Pending observation follows the same participation and
66
+ component lifetime as active contacts.
67
+
68
+ Retained `DrawerRoot` content can move between `presentation="inline"` and
69
+ `"overlay"` with `:unmount-on-exit="false"`. When an action inside the inline
70
+ content opens the overlay, accepting a close together with a return to inline
71
+ restores that action after exit and rendering finish. A valid internal
72
+ `restoreFocusTarget` or compound `DrawerTrigger` takes precedence over the
73
+ original focused action. Unavailable targets are skipped, and a newer focus
74
+ owner outside the content is preserved. Closing without requesting inline does
75
+ not schedule a later focus transfer for an unrelated presentation change.
76
+
77
+ `SequenceReorderRoot` and `TreeReorderRoot` expose `interaction`,
78
+ `getPreviewState()`, `cancelInteraction()` and `refreshDropTarget()` in their
79
+ default slot. Accepted `items` or `nodes` stay unchanged during preview, so a
80
+ composition can render a lifted item or an insertion marker independently.
81
+ `getPreviewState()` returns a Result containing the full proposed Core state;
82
+ request it only when that complete order is needed. `interaction.clientPoint`
83
+ and `refreshDropTarget()` support application-owned auto-scroll without a second
84
+ pointer sensor. The `interaction-change` event reports start, preview,
85
+ commit/cancel and end; commit's `accepted` flag distinguishes an immediate canonical update
86
+ from a controlled proposal awaiting new props.
87
+
88
+ Set `keyboardMode="preview"` to lift with Space, preview with direction/Home/End
89
+ keys, commit with Enter or Space, and cancel with Escape. Alt+direction keys keep
90
+ their immediate behavior. Host suspension and unmount retire the native owner
91
+ and its preview; they leave no scrolling task running.
92
+
93
+ Changing `TextField.multiline` transfers the current text and native selection
94
+ to the replacement input/textarea. It restores focus only when the old editor
95
+ owned it. An active composition finishes on the original element before the
96
+ representation changes. A single-line request waits while the current text has
97
+ line breaks, then proceeds when editing removes them. Native undo history belongs
98
+ to each browser element and cannot be transferred to a different element.
99
+
100
+ A `NumberField` component ref exposes `getText()`, `commitValue(string | null)`,
101
+ `clear()` and `stepBy(decimalString)`. Edit methods return a Promise of
102
+ `NumberFieldEditResult`: accepted with the final value, or rejected with a reason.
103
+ They are deliberate edits, separate from model synchronization that preserves a
104
+ live draft. `stepBy('0.1')` evaluates the current valid draft and adds an exact
105
+ decimal amount; it does not require finite bounds or use JavaScript floating
106
+ point. Stepping an empty nullable field starts from zero. Invalid drafts, bounds,
107
+ required values, disabled/readonly state and active composition can reject an
108
+ edit. A controlled owner may refuse or transform it; settlement then restores
109
+ the owner's accepted value. Concurrent edits return `busy`; saved methods become
110
+ unavailable after unmount. Core NumberField exposes the corresponding `set-value`
111
+ and `step` events through the existing DOM `handleEvent` connection.
112
+
113
+ `TooltipRoot` accepts `openDelay` and `closeDelay` in milliseconds, both defaulting
114
+ to zero. Keyboard focus opens immediately. Share a `createTooltipGroup({ skipDelay:
115
+ 300 })` token through the `group` prop to skip the hover opening delay while a
116
+ peer is open or shortly after an accepted close. Groups are explicit scopes and
117
+ retain only timing/count facts. Pending hover work retires on leave, suspension,
118
+ reconfiguration and unmount; controlled refusal does not warm the group.
119
+
120
+ Link branches use the existing `NavigationMenuRoot`, `NavigationMenuTrigger` and
121
+ `NavigationMenuContent`. Render leaf `NavigationMenuLink` as an anchor (or borrow
122
+ an anchor with `asChild`) so href, modified clicks and browser link semantics stay
123
+ native. Branch buttons enter child groups; Escape/logical back closes a submenu
124
+ and restores its trigger. For a pointer Back action, the DOM
125
+ `createNavigationMenu` connection already accepts `handleEvent('close-submenu')`.
126
+ It is unnecessary to substitute a selection listbox or maintain another branch
127
+ state machine.
128
+
129
+ Sectile's modal popup remains the focus/isolation owner. Calling native
130
+ `HTMLDialogElement.showModal()` on that same popup is not a supported promotion:
131
+ the browser would acquire a second modal/focus owner. Retained inline/overlay
132
+ content uses the documented Drawer composition instead. Layer-host placement
133
+ and native browser top-layer promotion are separate capabilities.
package/dist/accordion.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{createAccordionController,getAccordionPanelAttributes,getAccordionRootAttributes,getAccordionTriggerAttributes,toAccordionEvent}from"@sectile/dom/accordion";import{Primitive}from"./primitive.js";import{useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const accordionRootContextKey=Symbol("SectileAccordionRoot");const accordionItemContextKey=Symbol("SectileAccordionItem");const accordionHeaderProps=accordionPartProps("h3");const accordionTriggerProps=accordionPartProps("button");const accordionContentProps={...accordionPartProps("div"),...conditionalPresenceProps};const AccordionRoot=defineComponent({name:"SectileAccordionRoot",inheritAttrs:false,props:{items:{type:Array,required:true},type:{type:String,default:"single"},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},collapsible:{type:Boolean,default:true},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("AccordionRoot","modelValue",()=>props.modelValue);const controller=shallowRef(createController(controlled,toIDs(controlled?props.modelValue:props.defaultValue,props.type),props,emit));const snapshot=shallowRef(controller.value.getSnapshot());const refresh=()=>{snapshot.value=controller.value.getSnapshot()};const rebuild=()=>{const requested=controlled?toIDs(props.modelValue,props.type):snapshot.value.state.openIDs;const reconciled=reconcileCollectionState(props.items,requested,snapshot.value.state.cursor.current,props.disabledItems,props.type);controller.value=createController(controlled,reconciled.selected,props,emit);refresh();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.type))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.type)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.type,()=>props.collapsible,()=>props.disabled,()=>props.readonly,()=>props.disabledItems],rebuild);const openIDs=computed(()=>snapshot.value.state.openIDs);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(openIDs.value,props.type),disabled:disabled.value,readonly:readonly.value}));const toggle=id=>{const result=controller.value.handleEvent({type:"toggle",id});if(result.ok)snapshot.value=result.snapshot};const handleKeydown=event=>{const semantic=toAccordionEvent(event);if(semantic===null||semantic==="toggle")return;event.preventDefault();const result=controller.value.handleEvent(semantic);if(!result.ok)return;snapshot.value=result.snapshot;queueMicrotask(()=>focusAccordionTrigger(event.currentTarget,result.snapshot.state.cursor.current))};provide(accordionRootContextKey,{openIDs,disabled,readonly,disabledItems,toggle,handleKeydown});const attributes=computed(()=>getAccordionRootAttributes({disabled:props.disabled,readOnly:props.readonly}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown}),{default:()=>slots["default"]?.(slotProps.value)})}});const AccordionItem=defineComponent({name:"SectileAccordionItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useAccordionRootContext("AccordionItem");const generatedID=useHostId();const triggerID=`sectile-accordion-trigger-${generatedID}`;const panelID=`sectile-accordion-panel-${generatedID}`;const slotProps=computed(()=>Object.freeze({value:props.value,open:root.openIDs.value.includes(props.value),disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(accordionItemContextKey,{value:props.value,triggerID,panelID,slotProps});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"accordion","data-part":"item","data-state":slotProps.value.open?"open":"closed","data-disabled":slotProps.value.disabled?"":void 0}),{default:()=>slots["default"]?.(slotProps.value)})}});const AccordionHeader=defineComponent({name:"SectileAccordionHeader",inheritAttrs:false,props:accordionHeaderProps,slots:Object,setup(props,{attrs,slots}){const item=useAccordionItemContext("AccordionHeader");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"accordion","data-part":"header","data-state":item.slotProps.value.open?"open":"closed"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const AccordionTrigger=defineComponent({name:"SectileAccordionTrigger",inheritAttrs:false,props:accordionTriggerProps,slots:Object,setup(props,{attrs,slots}){const root=useAccordionRootContext("AccordionTrigger");const item=useAccordionItemContext("AccordionTrigger");const attributes=computed(()=>getAccordionTriggerAttributes({has:id=>root.openIDs.value.includes(id)},{id:item.value,triggerID:item.triggerID,panelID:item.panelID,disabled:item.slotProps.value.disabled},{disabled:root.disabled.value,readOnly:root.readonly.value,native:props.as==="button"&&!props.asChild}));const handleClick=event=>{if(!event.defaultPrevented)root.toggle(item.value)};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const AccordionContent=defineComponent({name:"SectileAccordionContent",inheritAttrs:false,props:accordionContentProps,slots:Object,setup(props,{attrs,slots}){const item=useAccordionItemContext("AccordionContent");const active=computed(()=>item.slotProps.value.open);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);const attributes=computed(()=>getAccordionPanelAttributes({has:id=>id===item.value&&item.slotProps.value.open},item.value,{panelID:item.panelID,triggerID:item.triggerID}));return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{}}),{default:()=>slots["default"]?.(item.slotProps.value)})}}});function accordionPartProps(defaultAs){return{as:{type:[String,Object,Function],default:defaultAs},asChild:{type:Boolean,default:false}}}function useAccordionRootContext(part){const context=inject(accordionRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside AccordionRoot.`);return context}function useAccordionItemContext(part){const context=inject(accordionItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside AccordionItem.`);return context}function createController(controlled,value,props,emit){const result=createAccordionController({items:props.items,expansion:props.type??"single",collapsible:props.collapsible??true,disabledItems:props.disabledItems??[],disabled:props.disabled??false,readOnly:props.readonly??false,...controlled?{value}:{defaultValue:value},onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.type??"single"))});if(!result.ok)throw new TypeError(result.error.message);return result.value}function toIDs(value,type){if(value===void 0||value==="")return[];if(Array.isArray(value))return type==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,type){return type==="single"?value[0]??"":value}function focusAccordionTrigger(root,id){if(id===null)return;for(const trigger of root.querySelectorAll("[data-accordion-id]")){if(trigger.dataset["accordionId"]===id)trigger.focus()}}export{AccordionContent,AccordionHeader,AccordionItem,AccordionRoot,AccordionTrigger};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,provide,shallowRef,watch}from"vue";import{createAccordionController,getAccordionPanelAttributes,getAccordionRootAttributes,getAccordionTriggerAttributes,toAccordionEvent}from"@sectile/dom/accordion";import{stableIDToken}from"@sectile/dom/identity";import{Primitive}from"./primitive.js";import{useHostId}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{useNextTickTask}from"./internal/scheduled-task.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const accordionRootContextKey=Symbol("SectileAccordionRoot");const accordionItemContextKey=Symbol("SectileAccordionItem");const accordionHeaderProps=accordionPartProps("h3");const accordionTriggerProps=accordionPartProps("button");const accordionContentProps={...accordionPartProps("div"),...conditionalPresenceProps};const AccordionRoot=defineComponent({name:"SectileAccordionRoot",inheritAttrs:false,props:{items:{type:Array,required:true},type:{type:String,default:"single"},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},collapsible:{type:Boolean,default:true},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("AccordionRoot","modelValue",()=>props.modelValue);const controller=shallowRef(createController(controlled,toIDs(controlled?props.modelValue:props.defaultValue,props.type),props,emit));const snapshot=shallowRef(controller.value.getSnapshot());let alive=true;let rootElement=null,pendingFocusRoot=null;const setRootElement=value=>{rootElement=alive?value:null};const focusTask=useNextTickTask(()=>{const root=pendingFocusRoot;pendingFocusRoot=null;if(alive&&!props.disabled&&root?.isConnected)focusAccordionTrigger(root,controller.value.getSnapshot().state.cursor.current)});onBeforeUnmount(()=>{alive=false;rootElement=null;pendingFocusRoot=null;focusTask.cancel()});const refresh=()=>{snapshot.value=controller.value.getSnapshot()};const rebuild=()=>{const requested=controlled?toIDs(props.modelValue,props.type):snapshot.value.state.openIDs;const reconciled=reconcileCollectionState(props.items,requested,snapshot.value.state.cursor.current,props.disabledItems,props.type);controller.value=createController(controlled,reconciled.selected,props,emit);refresh();if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.type))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.type)});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.type,()=>props.collapsible,()=>props.disabled,()=>props.readonly,()=>props.disabledItems],rebuild);const openIDs=computed(()=>snapshot.value.state.openIDs);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const slotProps=computed(()=>Object.freeze({value:fromIDs(openIDs.value,props.type),disabled:disabled.value,readonly:readonly.value}));const toggle=id=>{if(!alive)return;const result=controller.value.handleEvent({type:"toggle",id});if(result.ok)snapshot.value=result.snapshot};const focus=id=>{if(!alive)return;const result=controller.value.handleEvent({type:"focus",id});if(result.ok)snapshot.value=result.snapshot};const handleKeydown=event=>{if(!alive||event.defaultPrevented)return;const semantic=toAccordionEvent(event);if(semantic===null||semantic==="toggle")return;event.preventDefault();const result=controller.value.handleEvent(semantic);if(!result.ok)return;snapshot.value=result.snapshot;pendingFocusRoot=rootElement;if(pendingFocusRoot)focusTask.schedule()};provide(accordionRootContextKey,{openIDs,disabled,readonly,disabledItems,toggle,focus,handleKeydown});const attributes=computed(()=>getAccordionRootAttributes({disabled:props.disabled,readOnly:props.readonly}));return()=>{const primitiveProps=mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,elementRef:setRootElement});if(attrs["aria-label"]===void 0)delete primitiveProps["aria-label"];else primitiveProps["aria-label"]=attrs["aria-label"];return h(Primitive,primitiveProps,{default:()=>slots["default"]?.(slotProps.value)})}}});const AccordionItem=defineComponent({name:"SectileAccordionItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useAccordionRootContext("AccordionItem");const generatedID=useHostId();const triggerID=`sectile-accordion-trigger-${generatedID}`;const panelID=`sectile-accordion-panel-${generatedID}`;const slotProps=computed(()=>Object.freeze({value:props.value,open:root.openIDs.value.includes(props.value),disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(accordionItemContextKey,{value:props.value,triggerID,panelID,slotProps});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"accordion","data-part":"item","data-state":slotProps.value.open?"open":"closed","data-disabled":slotProps.value.disabled?"":void 0}),{default:()=>slots["default"]?.(slotProps.value)})}});const AccordionHeader=defineComponent({name:"SectileAccordionHeader",inheritAttrs:false,props:accordionHeaderProps,slots:Object,setup(props,{attrs,slots}){const item=useAccordionItemContext("AccordionHeader");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"accordion","data-part":"header","data-state":item.slotProps.value.open?"open":"closed"}),{default:()=>slots["default"]?.(item.slotProps.value)})}});const AccordionTrigger=defineComponent({name:"SectileAccordionTrigger",inheritAttrs:false,props:accordionTriggerProps,slots:Object,setup(props,{attrs,slots}){const root=useAccordionRootContext("AccordionTrigger");const item=useAccordionItemContext("AccordionTrigger");const attributes=computed(()=>getAccordionTriggerAttributes({has:id=>root.openIDs.value.includes(id)},{id:item.value,triggerID:item.triggerID,panelID:item.panelID,disabled:item.slotProps.value.disabled},{disabled:root.disabled.value,readOnly:root.readonly.value,native:props.as==="button"&&!props.asChild}));const handleClick=event=>{if(!event.defaultPrevented)root.toggle(item.value)};const handleFocus=event=>{if(event.currentTarget?.matches(":focus"))root.focus(item.value)};return()=>{const primitiveProps=mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick,onFocus:handleFocus,onKeydown:root.handleKeydown});if(props.asChild&&primitiveProps["disabled"]===void 0)delete primitiveProps["disabled"];return h(Primitive,primitiveProps,{default:()=>slots["default"]?.(item.slotProps.value)})}}});const AccordionContent=defineComponent({name:"SectileAccordionContent",inheritAttrs:false,props:accordionContentProps,slots:Object,setup(props,{attrs,slots}){const item=useAccordionItemContext("AccordionContent");const active=computed(()=>item.slotProps.value.open);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);const attributes=computed(()=>getAccordionPanelAttributes({has:id=>id===item.value&&item.slotProps.value.open},item.value,{panelID:item.panelID,triggerID:item.triggerID}));return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{}}),{default:()=>slots["default"]?.(item.slotProps.value)})}}});function accordionPartProps(defaultAs){return{as:{type:[String,Object,Function],default:defaultAs},asChild:{type:Boolean,default:false}}}function useAccordionRootContext(part){const context=inject(accordionRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside AccordionRoot.`);return context}function useAccordionItemContext(part){const context=inject(accordionItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside AccordionItem.`);return context}function createController(controlled,value,props,emit){const result=createAccordionController({items:props.items,expansion:props.type??"single",collapsible:props.collapsible??true,disabledItems:props.disabledItems??[],disabled:props.disabled??false,readOnly:props.readonly??false,...controlled?{value}:{defaultValue:value},onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.type??"single"))});if(!result.ok)throw new TypeError(result.error.message);return result.value}function toIDs(value,type){if(value===void 0||value==="")return[];if(Array.isArray(value))return type==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,type){return type==="single"?value[0]??"":value}function focusAccordionTrigger(root,id){if(id===null)return;const token=stableIDToken(id);for(const trigger of root.querySelectorAll("[data-accordion-id]")){if(trigger.dataset["accordionId"]===token)trigger.focus()}}export{AccordionContent,AccordionHeader,AccordionItem,AccordionRoot,AccordionTrigger};
2
2
  //# sourceMappingURL=accordion.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/accordion.ts"],"mappings":"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","names":[],"file":"accordion.js"}
1
+ {"version":3,"sources":["../src/accordion.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,gBACA,QACA,WACA,UAKK,MACP,OACE,0BACA,4BACA,2BACA,8BACA,qBAEK,yBACP,OAAS,kBAAqB,wBAC9B,OAAS,cAAmC,iBAC5C,OAAS,cAAiB,qBAC1B,OAAS,yBAA0B,YAAe,2BAClD,OAAS,gCAAmC,iCAC5C,OAAS,oBAAuB,+BAChC,OACE,yBACA,2BAEK,qCA0EP,MAAM,wBAA0B,OAAO,sBAAsB,EAC7D,MAAM,wBAA0B,OAAO,sBAAsB,EAC7D,MAAM,qBAAuB,mBAAmB,IAAI,EACpD,MAAM,sBAAwB,mBAAmB,QAAQ,EACzD,MAAM,sBAAwB,CAAE,GAAG,mBAAmB,KAAK,EAAG,GAAG,wBAAwB,EAElF,MAAM,cAAgB,gBAAgB,CAC3C,KAAM,uBACN,aAAc,MACd,MAAO,CACL,MAAO,CAAE,KAAM,MAAsC,SAAU,IAAI,EACnE,KAAM,CAAE,KAAM,OAAmC,QAAS,QAAQ,EAClE,WAAY,CAAE,KAAM,CAAC,OAAQ,KAAK,EAA+B,QAAS,MAAS,EACnF,aAAc,CAAE,KAAM,CAAC,OAAQ,KAAK,EAA+B,QAAS,MAAS,EACrF,YAAa,CAAE,KAAM,QAAS,QAAS,IAAI,EAC3C,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,cAAe,CAAE,KAAM,MAAsC,QAAS,IAAM,CAAA,CAAE,EAC9E,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE1C,MAAO,CACL,oBAAsB,QAAoC,MAE5D,MAAO,OAGP,MAAM,MAAO,CAAE,MAAO,KAAM,KAAK,EAAE,CACjC,MAAM,WAAa,4BAA4B,gBAAiB,aAAc,IAAM,MAAM,UAAU,EACpG,MAAM,WAAa,WAAW,iBAC5B,WACA,MAAM,WAAa,MAAM,WAAa,MAAM,aAAc,MAAM,IAAI,EACpE,MACA,IAAI,CACL,EACD,MAAM,SAAW,WAAW,WAAW,MAAM,YAAW,CAAE,EAC1D,IAAI,MAAQ,KACZ,IAAI,YAAkC,KAAM,iBAAuC,KACnF,MAAM,eAAkB,OAAwB,CAAG,YAAc,MAAQ,MAA8B,IAAM,EAC7G,MAAM,UAAY,gBAAgB,IAAK,CACrC,MAAM,KAAO,iBACb,iBAAmB,KACnB,GAAI,OAAS,CAAC,MAAM,UAAY,MAAM,YAAa,sBAAsB,KAAM,WAAW,MAAM,YAAW,EAAG,MAAM,OAAO,OAAO,CACpI,CAAC,EACD,gBAAgB,IAAK,CAAG,MAAQ,MAAO,YAAc,KAAM,iBAAmB,KAAM,UAAU,OAAM,CAAI,CAAC,EACzG,MAAM,QAAU,IAAW,CAAG,SAAS,MAAQ,WAAW,MAAM,YAAW,CAAI,EAC/E,MAAM,QAAU,IAAW,CACzB,MAAM,UAAY,WACd,MAAM,MAAM,WAAY,MAAM,IAAI,EAClC,SAAS,MAAM,MAAM,QACzB,MAAM,WAAa,yBACjB,MAAM,MACN,UACA,SAAS,MAAM,MAAM,OAAO,QAC5B,MAAM,cACN,MAAM,IAAI,EAEZ,WAAW,MAAQ,iBAAiB,WAAY,WAAW,SAAU,MAAO,IAAI,EAChF,QAAO,EACP,GAAI,YAAc,CAAC,QAAQ,UAAW,WAAW,QAAQ,EAAG,CAC1D,KAAK,oBAAqB,QAAQ,WAAW,SAAU,MAAM,IAAI,CAAC,CACpE,CACF,EAEA,MAAM,IAAM,MAAM,WAAa,OAAS,CACtC,GAAI,CAAC,YAAc,QAAU,OAAW,OACxC,MAAM,OAAS,WAAW,MAAM,qBAAqB,CAAE,MAAO,MAAM,MAAO,MAAM,IAAI,CAAC,CAAE,EACxF,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,SAAS,MAAQ,OAAO,KAC1B,CAAC,EACD,MACE,CAAC,IAAM,MAAM,MAAO,IAAM,MAAM,KAAM,IAAM,MAAM,YAAa,IAAM,MAAM,SACzE,IAAM,MAAM,SAAU,IAAM,MAAM,aAAa,EACjD,OAAO,EAGT,MAAM,QAAU,SAAS,IAAM,SAAS,MAAM,MAAM,OAAO,EAC3D,MAAM,SAAW,SAAS,IAAM,MAAM,QAAQ,EAC9C,MAAM,SAAW,SAAS,IAAM,MAAM,QAAQ,EAC9C,MAAM,cAAgB,SAA8B,IAAM,IAAI,IAAI,MAAM,aAAa,CAAC,EACtF,MAAM,UAAY,SAAiC,IAAM,OAAO,OAAO,CACrE,MAAO,QAAQ,QAAQ,MAAO,MAAM,IAAI,EACxC,SAAU,SAAS,MACnB,SAAU,SAAS,MACpB,CAAC,EACF,MAAM,OAAU,IAAoB,CAClC,GAAI,CAAC,MAAO,OACZ,MAAM,OAAS,WAAW,MAAM,YAAY,CAAE,KAAM,SAAU,EAAE,CAAE,EAClE,GAAI,OAAO,GAAI,SAAS,MAAQ,OAAO,QACzC,EACA,MAAM,MAAS,IAAoB,CACjC,GAAI,CAAC,MAAO,OACZ,MAAM,OAAS,WAAW,MAAM,YAAY,CAAE,KAAM,QAAS,EAAE,CAAE,EACjE,GAAI,OAAO,GAAI,SAAS,MAAQ,OAAO,QACzC,EACA,MAAM,cAAiB,OAA8B,CACnD,GAAI,CAAC,OAAS,MAAM,iBAAkB,OACtC,MAAM,SAAW,iBAAyB,KAAK,EAC/C,GAAI,WAAa,MAAQ,WAAa,SAAU,OAChD,MAAM,eAAc,EACpB,MAAM,OAAS,WAAW,MAAM,YAAY,QAAQ,EACpD,GAAI,CAAC,OAAO,GAAI,OAChB,SAAS,MAAQ,OAAO,SACxB,iBAAmB,YACnB,GAAI,iBAAkB,UAAU,SAAQ,CAC1C,EACA,QAA8B,wBAAyB,CACrD,QACA,SACA,SACA,cACA,OACA,MACA,cACD,EAED,MAAM,WAAa,SAAS,IAAM,2BAA2B,CAC3D,SAAU,MAAM,SAChB,SAAU,MAAM,SACjB,CAAC,EACF,MAAO,IAAiB,CACtB,MAAM,eAAiB,WAAW,MAAO,WAAW,MAAkC,CACpF,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,WAAY,eACnD,EAED,GAAI,MAAM,YAAY,IAAM,OAAW,OAAO,eAAe,YAAY,OACpE,eAAe,YAAY,EAAI,MAAM,YAAY,EACtD,OAAO,EAAE,UAAW,eAAgB,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,UAAU,KAAK,CAAC,CAAE,CAC5F,CACF,EACD,EAIM,MAAM,cAAgB,gBAAgB,CAC3C,KAAM,uBACN,aAAc,MACd,MAAO,CACL,MAAO,CAAE,KAAM,OAAQ,SAAU,IAAI,EACrC,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE1C,MAAO,OAGP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,wBAAwB,eAAe,EACpD,MAAM,YAAc,UAAS,EAC7B,MAAM,UAAY,6BAA6B,WAAW,GAC1D,MAAM,QAAU,2BAA2B,WAAW,GACtD,MAAM,UAAY,SAAiC,IAAM,OAAO,OAAO,CACrE,MAAO,MAAM,MACb,KAAM,KAAK,QAAQ,MAAM,SAAS,MAAM,KAAK,EAC7C,SAAU,KAAK,SAAS,OAAS,MAAM,UAAY,KAAK,cAAc,MAAM,IAAI,MAAM,KAAK,EAC5F,CAAC,EACF,QAA8B,wBAAyB,CACrD,MAAO,MAAM,MACb,UACA,QACA,UACD,EACD,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GACV,QAAS,MAAM,QACf,aAAc,YACd,YAAa,OACb,aAAc,UAAU,MAAM,KAAO,OAAS,SAC9C,gBAAiB,UAAU,MAAM,SAAW,GAAK,OAClD,EAAG,CACF,QAAS,IAAM,MAAM,SAAS,IAAI,UAAU,KAAK,EAClD,CACH,EACD,EAEM,MAAM,gBAAkB,gBAAgB,CAC7C,KAAM,yBACN,aAAc,MACd,MAAO,qBACP,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,wBAAwB,iBAAiB,EACtD,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GACV,QAAS,MAAM,QACf,aAAc,YACd,YAAa,SACb,aAAc,KAAK,UAAU,MAAM,KAAO,OAAS,SACpD,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,UAAU,KAAK,CAAC,CAAE,CACjE,EACD,EAEM,MAAM,iBAAmB,gBAAgB,CAC9C,KAAM,0BACN,aAAc,MACd,MAAO,sBACP,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,wBAAwB,kBAAkB,EACvD,MAAM,KAAO,wBAAwB,kBAAkB,EACvD,MAAM,WAAa,SAAS,IAAM,8BAChC,CAAE,IAAM,IAAe,KAAK,QAAQ,MAAM,SAAS,EAAE,CAAC,EACtD,CACE,GAAI,KAAK,MACT,UAAW,KAAK,UAChB,QAAS,KAAK,QACd,SAAU,KAAK,UAAU,MAAM,UAEjC,CACE,SAAU,KAAK,SAAS,MACxB,SAAU,KAAK,SAAS,MACxB,OAAQ,MAAM,KAAO,UAAY,CAAC,MAAM,QACzC,CACF,EACD,MAAM,YAAe,OAA2B,CAC9C,GAAI,CAAC,MAAM,iBAAkB,KAAK,OAAO,KAAK,KAAK,CACrD,EACA,MAAM,YAAe,OAA2B,CAE9C,GAAK,MAAM,eAAkC,QAAQ,QAAQ,EAAG,KAAK,MAAM,KAAK,KAAK,CACvF,EACA,MAAO,IAAiB,CACtB,MAAM,eAAiB,WACrB,MACA,WAAW,MACX,CACE,GAAI,MAAM,GACV,QAAS,MAAM,QACf,QAAS,YACT,QAAS,YACT,UAAW,KAAK,cACjB,EAIH,GAAI,MAAM,SAAW,eAAe,UAAU,IAAM,OAAW,OAAO,eAAe,UAAU,EAC/F,OAAO,EAAE,UAAW,eAAgB,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,UAAU,KAAK,CAAC,CAAE,CACjG,CACF,EACD,EAEM,MAAM,iBAAmB,gBAAgB,CAC9C,KAAM,0BACN,aAAc,MACd,MAAO,sBACP,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,wBAAwB,kBAAkB,EACvD,MAAM,OAAS,SAAS,IAAM,KAAK,UAAU,MAAM,IAAI,EACvD,MAAM,aAAe,SAAS,IAAM,MAAM,YAAY,EACtD,MAAM,SAAW,uBAAuB,OAAQ,YAAY,EAC5D,MAAM,WAAa,SAAS,IAAM,4BAChC,CAAE,IAAM,IAAe,KAAO,KAAK,OAAS,KAAK,UAAU,MAAM,IAAI,EACrE,KAAK,MACL,CAAE,QAAS,KAAK,QAAS,UAAW,KAAK,SAAS,CAAE,CACrD,EACD,MAAO,IAAiB,CACtB,MAAM,gBAAkB,CAAC,OAAO,OAAS,SAAS,QAAQ,MAC1D,OAAO,EAAE,UAAW,WAClB,MACA,WAAW,MACX,CACE,GAAI,MAAM,GACV,QAAS,MAAM,QACf,WAAY,SAAS,SACrB,OAAQ,SAAS,OAAO,MACxB,GAAI,gBAAkB,CAAE,MAAO,KAAM,cAAe,MAAM,EAAK,CAAA,EAChE,EACA,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,UAAU,KAAK,CAAC,CAAE,CAChE,CACF,EACD,EAED,SAAS,mBAAmB,UAAsB,CAChD,MAAO,CACL,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,SAAS,EACnF,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,EAE5C,CAEA,SAAS,wBAAwB,KAAY,CAC3C,MAAM,QAAU,OAA6B,uBAAuB,EACpE,GAAI,UAAY,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,qCAAqC,EAC3F,OAAO,OACT,CAEA,SAAS,wBAAwB,KAAY,CAC3C,MAAM,QAAU,OAA6B,uBAAuB,EACpE,GAAI,UAAY,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,qCAAqC,EAC3F,OAAO,OACT,CAEA,SAAS,iBACP,WACA,MACA,MACA,KAAmB,CAEnB,MAAM,OAAS,0BAA0B,CACvC,MAAO,MAAM,MACb,UAAW,MAAM,MAAQ,SACzB,YAAa,MAAM,aAAe,KAClC,cAAe,MAAM,eAAiB,CAAA,EACtC,SAAU,MAAM,UAAY,MAC5B,SAAU,MAAM,UAAY,MAC5B,GAAI,WAAa,CAAE,KAAK,EAAK,CAAE,aAAc,KAAK,EAClD,cAAgB,QAAW,KAAK,oBAAqB,QAAQ,OAAO,MAAO,MAAM,MAAQ,QAAQ,CAAC,EACnG,EACD,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,OAAO,OAAO,KAChB,CAEA,SAAS,MAAM,MAAmC,KAAmB,CACnE,GAAI,QAAU,QAAa,QAAU,GAAI,MAAO,CAAA,EAChD,GAAI,MAAM,QAAQ,KAAK,EAAG,OAAO,OAAS,SAAW,MAAM,MAAM,EAAG,CAAC,EAAI,MACzE,MAAO,CAAC,KAAe,CACzB,CAEA,SAAS,QAAQ,MAA0B,KAAmB,CAC5D,OAAO,OAAS,SAAW,MAAM,CAAC,GAAK,GAAK,KAC9C,CAEA,SAAS,sBAAsB,KAAmB,GAAiB,CACjE,GAAI,KAAO,KAAM,OACjB,MAAM,MAAQ,cAAc,EAAE,EAC9B,UAAW,WAAW,KAAK,iBAA8B,qBAAqB,EAAG,CAC/E,GAAI,QAAQ,QAAQ,aAAa,IAAM,MAAO,QAAQ,MAAK,CAC7D,CACF","names":[],"file":"accordion.js"}
@@ -13,6 +13,8 @@ export interface CarouselRootProps {
13
13
  readonly autoplay?: boolean | CarouselAutoplayOptions;
14
14
  readonly policies?: CarouselPolicies;
15
15
  readonly label?: string;
16
+ readonly indicatorGroupLabel?: string;
17
+ readonly getPauseLabel?: (paused: boolean) => string;
16
18
  readonly getSlideLabel?: (id: string, index: number, count: number) => string;
17
19
  readonly getIndicatorLabel?: (id: string, index: number, count: number) => string;
18
20
  readonly as?: PrimitiveAs;
@@ -87,6 +89,14 @@ export declare const CarouselRoot: import("vue").DefineComponent<import("vue").E
87
89
  type: PropType<CarouselIndicatorLabelResolver>;
88
90
  default: undefined;
89
91
  };
92
+ indicatorGroupLabel: {
93
+ type: StringConstructor;
94
+ default: undefined;
95
+ };
96
+ getPauseLabel: {
97
+ type: PropType<NonNullable<CarouselRootProps['getPauseLabel']>>;
98
+ default: undefined;
99
+ };
90
100
  as: {
91
101
  type: PropType<PrimitiveAs>;
92
102
  default: string;
@@ -148,6 +158,14 @@ export declare const CarouselRoot: import("vue").DefineComponent<import("vue").E
148
158
  type: PropType<CarouselIndicatorLabelResolver>;
149
159
  default: undefined;
150
160
  };
161
+ indicatorGroupLabel: {
162
+ type: StringConstructor;
163
+ default: undefined;
164
+ };
165
+ getPauseLabel: {
166
+ type: PropType<NonNullable<CarouselRootProps['getPauseLabel']>>;
167
+ default: undefined;
168
+ };
151
169
  as: {
152
170
  type: PropType<PrimitiveAs>;
153
171
  default: string;
@@ -172,6 +190,8 @@ export declare const CarouselRoot: import("vue").DefineComponent<import("vue").E
172
190
  label: string;
173
191
  getSlideLabel: (id: string, index: number, count: number) => string;
174
192
  getIndicatorLabel: (id: string, index: number, count: number) => string;
193
+ indicatorGroupLabel: string;
194
+ getPauseLabel: (paused: boolean) => string;
175
195
  as: PrimitiveAs;
176
196
  asChild: boolean;
177
197
  }, SlotsType<{
package/dist/carousel.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCarousel}from"@sectile/dom/carousel";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileCarouselRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const CarouselRoot=defineComponent({name:"SectileCarouselRoot",inheritAttrs:false,props:{slides:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:void 0},paused:{type:Boolean,default:void 0},defaultPaused:{type:Boolean,default:false},disabled:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},autoplay:{type:[Boolean,Object],default:false},policies:{type:Object,default:void 0},label:{type:String,default:void 0},getSlideLabel:{type:Function,default:void 0},getIndicatorLabel:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"section"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:paused":_value=>true,announce:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const generatedID=`sectile-carousel-${useHostId()}`;const direction=useHostDirection();const elements=new Map;const connection=shallowRef();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue??props.slides[0]??null);const localPaused=shallowRef(props.paused??props.defaultPaused);const controlled={value:useControlledStateInvariant("CarouselRoot","modelValue",()=>props.modelValue),paused:useControlledStateInvariant("CarouselRoot","paused",()=>props.paused)};const state=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;const foundIndex=value===null?-1:props.slides.indexOf(value);return Object.freeze({value,index:foundIndex<0?null:foundIndex,count:props.slides.length,paused:props.paused??localPaused.value,disabled:props.disabled})});const refreshParts=()=>{const root=elements.get("root");if(root===void 0||connection.value===void 0)return;root.querySelectorAll("[data-sectile-carousel-slide]").forEach(element=>{const id=element.dataset["sectileCarouselSlide"];if(id!==void 0)connection.value?.setSlideAttributes(element,id)});root.querySelectorAll("[data-sectile-carousel-indicator]").forEach(element=>{const id=element.dataset["sectileCarouselIndicator"];if(id!==void 0)connection.value?.setIndicatorAttributes(element,id)})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.cursor.current;localPaused.value=snapshot.paused;refreshParts()};const connect=()=>{connection.value?.disconnect();const root=elements.get("root");if(root===void 0)return;const requestedValue=controlled.value?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(props.slides,requestedValue===null?[]:[requestedValue],requestedValue,[],"single",{preserveNullCurrent:true});const value=reconciled.current;localValue.value=value;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCarousel({root,slides:props.slides,manageVisibility:false,...controlled.value?{value}:{defaultValue:value},...controlled.paused?{paused:props.paused}:{defaultPaused:localPaused.value},disabled:props.disabled,orientation:props.orientation,direction:direction.value,autoplay:props.autoplay,...props.policies===void 0?{}:{policies:props.policies},...props.label===void 0?{}:{label:props.label},...props.getSlideLabel===void 0?{}:{getSlideLabel:props.getSlideLabel},...props.getIndicatorLabel===void 0?{}:{getIndicatorLabel:props.getIndicatorLabel},...elements.get("previous")===void 0?{}:{previousButton:elements.get("previous")},...elements.get("next")===void 0?{}:{nextButton:elements.get("next")},...elements.get("pause")===void 0?{}:{pauseButton:elements.get("pause")},...elements.get("indicators")===void 0?{}:{indicatorGroup:elements.get("indicators")},onValueChange:value2=>{localValue.value=value2;emit("update:modelValue",value2)},onPausedChange:value2=>{localPaused.value=value2;emit("update:paused",value2)},onAnnounce:value2=>emit("announce",value2),onUpdate:refresh});refreshParts();refresh()};provide(key,{state,register:(part2,element)=>{if(element===void 0)elements.delete(part2);else elements.set(part2,element)},registerSlide:(element,id)=>connection.value?.setSlideAttributes(element,id),registerIndicator:(element,id)=>connection.value?.setIndicatorAttributes(element,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.slides,()=>props.disabled,()=>props.orientation,()=>props.autoplay,()=>props.policies,()=>props.label,()=>props.getSlideLabel,()=>props.getIndicatorLabel,direction],connect);watch([()=>props.modelValue,()=>props.paused],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.paused?{paused:props.paused}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)elements.set("root",node)},id:typeof attrs["id"]==="string"?attrs["id"]:generatedID,dir:direction.value,"data-scope":"carousel","data-part":"root","data-orientation":props.orientation}),{default:()=>slots["default"]?.(state.value)})}});const CarouselViewport=part("SectileCarouselViewport","viewport","div");const CarouselTrack=part("SectileCarouselTrack","track","div");const CarouselIndicatorGroup=registeredPart("SectileCarouselIndicatorGroup","indicators","indicator-group","div");const CarouselPrevious=registeredPart("SectileCarouselPrevious","previous","previous","button");const CarouselNext=registeredPart("SectileCarouselNext","next","next","button");const CarouselPause=registeredPart("SectileCarouselPause","pause","pause","button");const CarouselSlide=defineComponent({name:"SectileCarouselSlide",inheritAttrs:false,props:{value:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CarouselSlide");const state=computed(()=>({...root.state.value,value:props.value,active:root.state.value.value===props.value}));const active=computed(()=>state.value.active);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const element=presence.register(node);if(element!==void 0)root.registerSlide(element,props.value)},hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-sectile-carousel-slide":props.value,"data-scope":"carousel","data-part":"slide","data-state":active.value?"active":"inactive"}),{default:()=>slots["default"]?.(state.value)})}}});const CarouselIndicator=defineComponent({name:"SectileCarouselIndicator",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CarouselIndicator");const state=computed(()=>({...root.state.value,value:props.value,active:root.state.value.value===props.value}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerIndicator(node,props.value)},"data-sectile-carousel-indicator":props.value,"data-scope":"carousel","data-part":"indicator","data-state":state.value.active?"active":"inactive"}),{default:()=>slots["default"]?.(state.value)})}});function part(name,dataPart,defaultAs){return defineComponent({name,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:defaultAs}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"carousel","data-part":dataPart}),{default:()=>slots["default"]?.(root.state.value)})}})}function registeredPart(name,registration,dataPart,defaultAs){return defineComponent({name,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:defaultAs}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);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=>root.register(registration,node instanceof HTMLElement?node:void 0),"data-scope":"carousel","data-part":dataPart}),{default:()=>slots["default"]?.(root.state.value)})}})}function useRoot(partName){const root=inject(key);if(root===void 0)throw new TypeError(`${partName} must be used inside CarouselRoot.`);return root}export{CarouselIndicator,CarouselIndicatorGroup,CarouselNext,CarouselPause,CarouselPrevious,CarouselRoot,CarouselSlide,CarouselTrack,CarouselViewport};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCarousel}from"@sectile/dom/carousel";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileCarouselRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const CarouselRoot=defineComponent({name:"SectileCarouselRoot",inheritAttrs:false,props:{slides:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:void 0},paused:{type:Boolean,default:void 0},defaultPaused:{type:Boolean,default:false},disabled:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},autoplay:{type:[Boolean,Object],default:false},policies:{type:Object,default:void 0},label:{type:String,default:void 0},getSlideLabel:{type:Function,default:void 0},getIndicatorLabel:{type:Function,default:void 0},indicatorGroupLabel:{type:String,default:void 0},getPauseLabel:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"section"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:paused":_value=>true,announce:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const generatedID=`sectile-carousel-${useHostId()}`;const direction=useHostDirection();const elements=new Map;const connection=shallowRef();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue??props.slides[0]??null);const localPaused=shallowRef(props.paused??props.defaultPaused);const controlled={value:useControlledStateInvariant("CarouselRoot","modelValue",()=>props.modelValue),paused:useControlledStateInvariant("CarouselRoot","paused",()=>props.paused)};const state=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;const foundIndex=value===null?-1:props.slides.indexOf(value);return Object.freeze({value,index:foundIndex<0?null:foundIndex,count:props.slides.length,paused:props.paused??localPaused.value,disabled:props.disabled})});const refreshParts=()=>{const root=elements.get("root");if(root===void 0||connection.value===void 0)return;root.querySelectorAll("[data-sectile-carousel-slide]").forEach(element=>{const id=element.dataset["sectileCarouselSlide"];if(id!==void 0)connection.value?.setSlideAttributes(element,id)});root.querySelectorAll("[data-sectile-carousel-indicator]").forEach(element=>{const id=element.dataset["sectileCarouselIndicator"];if(id!==void 0)connection.value?.setIndicatorAttributes(element,id)})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.cursor.current;localPaused.value=snapshot.paused;refreshParts()};const connect=()=>{connection.value?.disconnect();const root=elements.get("root");if(root===void 0)return;const requestedValue=controlled.value?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(props.slides,requestedValue===null?[]:[requestedValue],requestedValue,[],"single",{preserveNullCurrent:true});const value=reconciled.current;localValue.value=value;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCarousel({root,slides:props.slides,manageVisibility:false,...controlled.value?{value}:{defaultValue:value},...controlled.paused?{paused:props.paused}:{defaultPaused:localPaused.value},disabled:props.disabled,orientation:props.orientation,direction:direction.value,autoplay:props.autoplay,...props.policies===void 0?{}:{policies:props.policies},...props.label===void 0?{}:{label:props.label},...props.getSlideLabel===void 0?{}:{getSlideLabel:props.getSlideLabel},...props.getIndicatorLabel===void 0?{}:{getIndicatorLabel:props.getIndicatorLabel},...props.indicatorGroupLabel===void 0?{}:{indicatorGroupLabel:props.indicatorGroupLabel},...props.getPauseLabel===void 0?{}:{getPauseLabel:props.getPauseLabel},...elements.get("previous")===void 0?{}:{previousButton:elements.get("previous")},...elements.get("next")===void 0?{}:{nextButton:elements.get("next")},...elements.get("pause")===void 0?{}:{pauseButton:elements.get("pause")},...elements.get("indicators")===void 0?{}:{indicatorGroup:elements.get("indicators")},onValueChange:value2=>{localValue.value=value2;emit("update:modelValue",value2)},onPausedChange:value2=>{localPaused.value=value2;emit("update:paused",value2)},onAnnounce:value2=>emit("announce",value2),onUpdate:refresh});refreshParts();refresh()};provide(key,{state,register:(part2,element)=>{if(element===void 0)elements.delete(part2);else elements.set(part2,element)},registerSlide:(element,id)=>connection.value?.setSlideAttributes(element,id),registerIndicator:(element,id)=>connection.value?.setIndicatorAttributes(element,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.slides,()=>props.disabled,()=>props.orientation,()=>props.autoplay,()=>props.policies,()=>props.label,()=>props.getSlideLabel,()=>props.getIndicatorLabel,()=>props.indicatorGroupLabel,()=>props.getPauseLabel,direction],connect);watch([()=>props.modelValue,()=>props.paused],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.paused?{paused:props.paused}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)elements.set("root",node)},id:typeof attrs["id"]==="string"?attrs["id"]:generatedID,dir:direction.value,"data-scope":"carousel","data-part":"root","data-orientation":props.orientation}),{default:()=>slots["default"]?.(state.value)})}});const CarouselViewport=part("SectileCarouselViewport","viewport","div");const CarouselTrack=part("SectileCarouselTrack","track","div");const CarouselIndicatorGroup=registeredPart("SectileCarouselIndicatorGroup","indicators","indicator-group","div");const CarouselPrevious=registeredPart("SectileCarouselPrevious","previous","previous","button");const CarouselNext=registeredPart("SectileCarouselNext","next","next","button");const CarouselPause=registeredPart("SectileCarouselPause","pause","pause","button");const CarouselSlide=defineComponent({name:"SectileCarouselSlide",inheritAttrs:false,props:{value:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CarouselSlide");const state=computed(()=>({...root.state.value,value:props.value,active:root.state.value.value===props.value}));const active=computed(()=>state.value.active);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>{const inactivePresent=!active.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const element=presence.register(node);if(element!==void 0)root.registerSlide(element,props.value)},hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-sectile-carousel-slide":props.value,"data-scope":"carousel","data-part":"slide","data-state":active.value?"active":"inactive"}),{default:()=>slots["default"]?.(state.value)})}}});const CarouselIndicator=defineComponent({name:"SectileCarouselIndicator",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CarouselIndicator");const state=computed(()=>({...root.state.value,value:props.value,active:root.state.value.value===props.value}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerIndicator(node,props.value)},"data-sectile-carousel-indicator":props.value,"data-scope":"carousel","data-part":"indicator","data-state":state.value.active?"active":"inactive"}),{default:()=>slots["default"]?.(state.value)})}});function part(name,dataPart,defaultAs){return defineComponent({name,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:defaultAs}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"carousel","data-part":dataPart}),{default:()=>slots["default"]?.(root.state.value)})}})}function registeredPart(name,registration,dataPart,defaultAs){return defineComponent({name,inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:defaultAs}},slots:Object,setup(props,{attrs,slots}){const root=useRoot(name);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=>root.register(registration,node instanceof HTMLElement?node:void 0),"data-scope":"carousel","data-part":dataPart}),{default:()=>slots["default"]?.(root.state.value)})}})}function useRoot(partName){const root=inject(key);if(root===void 0)throw new TypeError(`${partName} must be used inside CarouselRoot.`);return root}export{CarouselIndicator,CarouselIndicatorGroup,CarouselNext,CarouselPause,CarouselPrevious,CarouselRoot,CarouselSlide,CarouselTrack,CarouselViewport};
2
2
  //# sourceMappingURL=carousel.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/carousel.ts"],"mappings":"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","names":["value","part"],"file":"carousel.js"}
1
+ {"version":3,"sources":["../src/carousel.ts"],"mappings":"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","names":["value","part"],"file":"carousel.js"}
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeList}from"@sectile/dom/cascade-list";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{useConditionalPresenceRegistry}from"./presence/conditional-presence.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeListRoot");const itemKey=Symbol("SectileCascadeListItem");const partProps=cascadeChoicePartProps;const CascadeListRoot=defineComponent({name:"SectileCascadeListRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:root,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const highlighted=shallowRef(localValue.value??firstAvailableRoot(props.nodes,props.disabledItems));const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeListRoot","modelValue",()=>props.modelValue);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,disabled:props.disabled,readonly:props.readonly}));const selectedIDSet=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;return value===null?new Set:new Set([value])});const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const refreshItems=()=>{if(root.value===null||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-cascade-list-id]").forEach(element=>{const id=element.dataset["sectileCascadeListId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const connect=()=>{connection.value?.disconnect();if(root.value===null)return;const branches2=cascadeBranchItems(props.nodes);const leaves=new Set(props.nodes.filter(node=>!branches2.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leaves.has(requestedValue)?requestedValue:null;const ids=new Set(props.nodes.map(node=>node.id));const requestedHighlight=highlighted.value;const defaultHighlightedValue=requestedHighlight!==null&&ids.has(requestedHighlight)&&!props.disabledItems.includes(requestedHighlight)?requestedHighlight:value??firstAvailableRoot(props.nodes,props.disabledItems);localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeList({root:root.value,nodes:props.nodes,disabledItems:props.disabledItems,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},defaultHighlightedValue,disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));provide(rootKey,{state,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,indicatorPresence,registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch(()=>props.modelValue,()=>{if(connection.value===void 0||!valueControlled)return;const result=connection.value.syncControlledValues({value:props.modelValue});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},role:"group",tabindex:-1,"aria-label":props.label,"aria-disabled":props.disabled?"true":void 0,"aria-readonly":props.readonly?"true":void 0,"data-scope":"cascade-list","data-part":"root","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:"",selected:state.value.value===null}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,selected:state.value.value===node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeListValue=defineComponent({name:"SectileCascadeListValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeListValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-list","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const cascadeListParts=createCascadeChoiceParts({scope:"cascade-list",componentName:"CascadeList",itemAttribute:"data-sectile-cascade-list-id",rootKey,itemKey});const CascadeListColumn=cascadeListParts.Column;const CascadeListItem=cascadeListParts.Item;const CascadeListItemIndicator=cascadeListParts.ItemIndicator;const CascadeListItemChevron=cascadeListParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeListRoot.`);return root}function firstAvailableRoot(nodes,disabledItems){const disabled=new Set(disabledItems);return nodes.find(node=>node.parentID===null&&!disabled.has(node.id))?.id??null}export{CascadeListColumn,CascadeListItem,CascadeListItemChevron,CascadeListItemIndicator,CascadeListRoot,CascadeListValue};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeList}from"@sectile/dom/cascade-list";import{Primitive}from"./primitive.js";import{useHostDirection}from"./host-provider.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl,useFormSubmissionProps,useFormControlFlags}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{useConditionalPresenceRegistry}from"./presence/conditional-presence.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeListRoot");const itemKey=Symbol("SectileCascadeListItem");const partProps=cascadeChoicePartProps;const CascadeListRoot=defineComponent({__sectileFormLabelMode:"labelledby",name:"SectileCascadeListRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const flags=useFormControlFlags(props);const direction=useHostDirection();const root=shallowRef(null);const submission=shallowRef(null);const connection=shallowRef();const initialValue=props.modelValue!==void 0?props.modelValue:props.defaultValue;let mounted=false;const submissionProps=useFormSubmissionProps({element:submission,capabilities:hiddenSelectSubmissionCapabilities},props);const participation=useCompositeFormControl({root,focusTarget:root,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{if(!mounted)return;localValue.value=valueControlled?props.modelValue:initialValue;highlighted.value=null;connect();if(submission.value!==null)submission.value.value=state.value.value??""})}});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const highlighted=shallowRef(localValue.value??firstAvailableRoot(props.nodes,props.disabledItems));const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeListRoot","modelValue",()=>props.modelValue);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const selectedIDSet=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;return value===null?new Set:new Set([value])});const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const refreshItems=()=>{if(root.value===null||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-cascade-list-id]").forEach(element=>{const id=element.dataset["sectileCascadeListId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const connect=()=>{connection.value?.disconnect();if(root.value===null)return;const branches2=cascadeBranchItems(props.nodes);const leaves=new Set(props.nodes.filter(node=>!branches2.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leaves.has(requestedValue)?requestedValue:null;const ids=new Set(props.nodes.map(node=>node.id));const requestedHighlight=highlighted.value;const defaultHighlightedValue=requestedHighlight!==null&&ids.has(requestedHighlight)&&!props.disabledItems.includes(requestedHighlight)?requestedHighlight:value??firstAvailableRoot(props.nodes,props.disabledItems);localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeList({root:root.value,direction:direction.value,nodes:props.nodes,disabledItems:props.disabledItems,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},defaultHighlightedValue,disabled:flags.value.disabled,readOnly:flags.value.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));provide(rootKey,{state,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,indicatorPresence,registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.nodes,()=>props.disabledItems,()=>flags.value.disabled,()=>flags.value.readonly,()=>props.label,()=>props.policies,direction],connect);watch(()=>props.modelValue,()=>{if(connection.value===void 0||!valueControlled)return;const result=connection.value.syncControlledValues({value:props.modelValue});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:null},role:"group",tabindex:-1,"aria-label":props.label,"aria-disabled":flags.value.disabled?"true":void 0,"aria-readonly":flags.value.readonly?"true":void 0,"data-scope":"cascade-list","data-part":"root",dir:direction.value,"data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},...submissionProps.value,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:"",selected:state.value.value===null}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,selected:state.value.value===node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeListValue=defineComponent({name:"SectileCascadeListValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeListValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-list","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const cascadeListParts=createCascadeChoiceParts({scope:"cascade-list",componentName:"CascadeList",itemAttribute:"data-sectile-cascade-list-id",rootKey,itemKey});const CascadeListColumn=cascadeListParts.Column;const CascadeListItem=cascadeListParts.Item;const CascadeListItemIndicator=cascadeListParts.ItemIndicator;const CascadeListItemChevron=cascadeListParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeListRoot.`);return root}function firstAvailableRoot(nodes,disabledItems){const disabled=new Set(disabledItems);return nodes.find(node=>node.parentID===null&&!disabled.has(node.id))?.id??null}export{CascadeListColumn,CascadeListItem,CascadeListItemChevron,CascadeListItemIndicator,CascadeListRoot,CascadeListValue};
2
2
  //# sourceMappingURL=cascade-list.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cascade-list.ts"],"mappings":"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","names":["branches"],"file":"cascade-list.js"}
1
+ {"version":3,"sources":["../src/cascade-list.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,gBACA,UACA,QACA,WACA,UAKK,MACP,OACE,sBAIK,4BACP,OAAS,cAAmC,iBAC5C,OAAS,qBAAwB,qBACjC,OAAS,6BAAgC,0BACzC,OAAS,4BAA+B,oBACxC,OACE,mCACA,wBACA,uBACA,wBACK,oBACP,OAAS,gCAAmC,iCAC5C,OAAS,mCAAsC,qCAC/C,OACE,mBACA,uBACA,gBACA,yBACA,0BAUK,+BA8BP,MAAM,QAAqC,OAAO,wBAAwB,EAC1E,MAAM,QAAkD,OAAO,wBAAwB,EACvF,MAAM,UAAY,uBAEX,MAAM,gBAAkB,gBAAgB,CAC7C,uBAAwB,aACxB,KAAM,yBACN,aAAc,MACd,MAAO,CACL,MAAO,CAAE,KAAM,MAAiE,SAAU,IAAI,EAC9F,WAAY,CAAE,KAAM,OAAmC,QAAS,MAAS,EACzE,aAAc,CAAE,KAAM,OAAmC,QAAS,IAAI,EACtE,cAAe,CAAE,KAAM,MAAsC,QAAS,IAAM,CAAA,CAAE,EAC9E,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,MAAO,CAAE,KAAM,OAAQ,QAAS,MAAS,EACzC,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EACxC,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EACxC,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,UAAW,CAAE,KAAM,SAAoD,QAAS,MAAS,EACzF,SAAU,CAAE,KAAM,OAAiD,QAAS,MAAS,EACrF,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE1C,MAAO,CACL,oBAAsB,QAAmC,KACzD,UAAY,QAAmC,MAEjD,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAM,KAAK,EAAE,CACjC,MAAM,MAAQ,oBAAoB,KAAK,EACvC,MAAM,UAAY,iBAAgB,EAClC,MAAM,KAAO,WAA+B,IAAI,EAChD,MAAM,WAAa,WAAqC,IAAI,EAC5D,MAAM,WAAa,WAAU,EAC7B,MAAM,aAAe,MAAM,aAAe,OAAY,MAAM,WAAa,MAAM,aAC/E,IAAI,QAAU,MACd,MAAM,gBAAkB,uBAAuB,CAAE,QAAS,WAAY,aAAc,kCAAkC,EAAI,KAAK,EAC/H,MAAM,cAAgB,wBAAwB,CAC5C,KACA,YAAa,KACb,YAAa,CAAC,CACZ,QAAS,WACT,aAAc,mCACf,EACD,MAAO,IAAK,CACV,eAAe,IAAK,CAClB,GAAI,CAAC,QAAS,OACd,WAAW,MAAQ,gBAAkB,MAAM,WAA8B,aACzE,YAAY,MAAQ,KACpB,QAAO,EACP,GAAI,WAAW,QAAU,KAAM,WAAW,MAAM,MAAQ,MAAM,MAAM,OAAS,EAC/E,CAAC,CACH,EACD,EACD,wBAAuB,EACvB,MAAM,WAAa,WAA0B,MAAM,aAAe,OAAY,MAAM,WAAa,MAAM,YAAY,EACnH,MAAM,iBAAmB,gBAAgB,MAAM,MAAO,WAAW,KAAK,EACtE,MAAM,kBAAoB,iBAAiB,MAAM,EAAG,EAAE,EACtD,MAAM,YAAc,WAA0B,WAAW,OAAS,mBAAmB,MAAM,MAAO,MAAM,aAAa,CAAC,EACtH,MAAM,KAAO,WAA8B,iBAAiB,EAC5D,MAAM,QAAU,WAA2C,sBAAsB,MAAM,MAAO,iBAAiB,CAAC,EAChH,MAAM,UAAY,WAA8B,gBAAgB,EAChE,MAAM,gBAAkB,4BAA4B,kBAAmB,aAAc,IAAM,MAAM,UAAU,EAC3G,MAAM,MAAQ,SAAmC,IAAM,OAAO,OAAO,CACnE,MAAO,MAAM,aAAe,OAAY,MAAM,WAAa,WAAW,MACtE,UAAW,UAAU,MACrB,iBAAkB,YAAY,MAC9B,KAAM,KAAK,MACX,QAAS,QAAQ,MACjB,SAAU,MAAM,MAAM,SACtB,SAAU,MAAM,MAAM,SACvB,CAAC,EACF,MAAM,cAAgB,SAA8B,IAAK,CACvD,MAAM,MAAQ,MAAM,aAAe,OAAY,MAAM,WAAa,WAAW,MAC7E,OAAO,QAAU,KAAO,IAAI,IAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CACrD,CAAC,EACD,MAAM,kBAAoB,+BAA+B,aAAa,EACtE,MAAM,aAAe,IAAW,CAC9B,GAAI,KAAK,QAAU,MAAQ,WAAW,QAAU,OAAW,OAC3D,KAAK,MAAM,iBAA8B,gCAAgC,EAAE,QAAS,SAAW,CAC7F,MAAM,GAAK,QAAQ,QAAQ,sBAAsB,EACjD,GAAI,KAAO,OAAW,WAAW,OAAO,kBAAkB,QAAS,GAAI,MAAM,cAAc,SAAS,EAAE,CAAC,CACzG,CAAC,CACH,EACA,MAAM,QAAU,IAAW,CACzB,MAAM,QAAU,WAAW,OAAO,YAAW,EAAG,MAChD,GAAI,UAAY,OAAW,OAC3B,WAAW,MAAQ,QAAQ,MAC3B,YAAY,MAAQ,QAAQ,YAC5B,KAAK,MAAQ,QAAQ,KACrB,QAAQ,MAAQ,WAAW,OAAO,WAAU,GAAM,CAAA,EAClD,UAAU,MAAQ,WAAW,OAAO,aAAY,GAAM,CAAA,EACtD,aAAY,CACd,EACA,MAAM,QAAU,IAAW,CACzB,WAAW,OAAO,WAAU,EAC5B,GAAI,KAAK,QAAU,KAAM,OACzB,MAAMA,UAAW,mBAAmB,MAAM,KAAK,EAC/C,MAAM,OAAS,IAAI,IAAI,MAAM,MAAM,OAAQ,MAAS,CAACA,UAAS,IAAI,KAAK,EAAE,CAAC,EAAE,IAAK,MAAS,KAAK,EAAE,CAAC,EAClG,MAAM,eAAiB,gBAAkB,MAAM,WAA8B,WAAW,MACxF,MAAM,MAAQ,iBAAmB,MAAQ,OAAO,IAAI,cAAc,EAAI,eAAiB,KACvF,MAAM,IAAM,IAAI,IAAI,MAAM,MAAM,IAAK,MAAS,KAAK,EAAE,CAAC,EACtD,MAAM,mBAAqB,YAAY,MACvC,MAAM,wBAA0B,qBAAuB,MAClD,IAAI,IAAI,kBAAkB,GAC1B,CAAC,MAAM,cAAc,SAAS,kBAAkB,EACjD,mBACA,OAAS,mBAAmB,MAAM,MAAO,MAAM,aAAa,EAChE,WAAW,MAAQ,MACnB,GAAI,iBAAmB,iBAAmB,MAAO,KAAK,oBAAqB,KAAK,EAChF,WAAW,MAAQ,kBAAkB,CACnC,KAAM,KAAK,MACX,UAAW,UAAU,MACrB,MAAO,MAAM,MACb,cAAe,MAAM,cACrB,GAAI,MAAM,WAAa,OAAY,CAAA,EAAK,CAAE,SAAU,MAAM,QAAQ,EAClE,GAAI,gBAAkB,CAAE,KAAK,EAAK,CAAE,aAAc,KAAK,EACvD,wBACA,SAAU,MAAM,MAAM,SACtB,SAAU,MAAM,MAAM,SACtB,GAAI,MAAM,QAAU,OAAY,CAAA,EAAK,CAAE,MAAO,MAAM,KAAK,EACzD,cAAgB,MAAQ,CACtB,WAAW,MAAQ,KACnB,KAAK,oBAAqB,IAAI,CAChC,EACA,yBAA2B,MAAQ,CACjC,YAAY,MAAQ,KACpB,KAAK,YAAa,IAAI,CACxB,EACA,SAAU,QACX,EACD,QAAO,CACT,EACA,MAAM,SAAW,SAAS,IAAM,mBAAmB,MAAM,KAAK,CAAC,EAC/D,QAAqB,QAAS,CAC5B,MACA,MAAO,SAAS,IAAM,MAAM,KAAK,EACjC,UAAW,SAAS,IAAM,MAAM,YAAe,IAAe,GAAG,EACjE,cAAe,SAAS,IAAM,IAAI,IAAI,MAAM,aAAa,CAAC,EAC1D,YAAa,SACb,kBACA,eAAgB,CAAC,QAAS,MAAO,QAAU,WAAW,OAAO,oBAC3D,QACA,QAAU,EAAI,KAAO,MAAM,MAAM,KAAK,MAAQ,CAAC,GAAK,KACpD,KAAK,EAEP,aAAc,CAAC,QAAS,GAAI,WAAa,WAAW,OAAO,kBAAkB,QAAS,GAAI,QAAQ,EACnG,EACD,UAAU,IAAK,CAAG,QAAU,KAAM,QAAO,CAAI,CAAC,EAC9C,gBAAgB,IAAK,CAAG,QAAU,MAAO,WAAW,OAAO,WAAU,CAAI,CAAC,EAC1E,MAAM,CACJ,IAAM,MAAM,MACZ,IAAM,MAAM,cACZ,IAAM,MAAM,MAAM,SAClB,IAAM,MAAM,MAAM,SAClB,IAAM,MAAM,MACZ,IAAM,MAAM,SACZ,WACC,OAAO,EACV,MAAM,IAAM,MAAM,WAAY,IAAK,CACjC,GAAI,WAAW,QAAU,QAAa,CAAC,gBAAiB,OACxD,MAAM,OAAS,WAAW,MAAM,qBAAqB,CAAE,MAAO,MAAM,UAA2B,CAAE,EACjG,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,QAAO,CACT,CAAC,EACD,MAAO,IAAiB,CACtB,MAAM,OAAS,EAAE,UAAW,WAAW,MAAO,CAC5C,GAAI,MAAM,GACV,QAAS,MAAM,QACf,WAAa,MAAiB,CAAG,KAAK,MAAQ,gBAAgB,YAAc,KAAO,IAAM,EACzF,KAAM,QACN,SAAU,GACV,aAAc,MAAM,MACpB,gBAAiB,MAAM,MAAM,SAAW,OAAS,OACjD,gBAAiB,MAAM,MAAM,SAAW,OAAS,OACjD,aAAc,eACd,YAAa,OACb,IAAK,UAAU,MACf,gBAAiB,MAAM,MAAM,SAAW,GAAK,OAC7C,gBAAiB,MAAM,MAAM,SAAW,GAAK,QAC5C,cAAc,aAAa,KAAK,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,CAAE,EACxF,GAAI,CAAC,cAAc,eAAiB,MAAM,OAAS,QAAa,MAAM,OAAS,QAAa,CAAC,MAAM,SAAU,OAAO,OACpH,MAAO,CAAC,OAAQ,EAAE,SAAU,CAC1B,IAAM,SAAoB,CAAG,WAAW,MAAQ,mBAAmB,kBAAoB,QAAU,IAAM,EACvG,GAAG,gBAAgB,MACnB,MAAO,MAAM,MAAM,OAAS,GAC5B,SAAU,GACV,cAAe,OACf,MAAO,0BACN,CACD,EAAE,SAAU,CAAE,MAAO,GAAI,SAAU,MAAM,MAAM,QAAU,IAAI,CAAE,EAC/D,GAAG,MAAM,MACN,OAAQ,MAAS,CAAC,SAAS,MAAM,IAAI,KAAK,EAAE,CAAC,EAC7C,IAAK,MAAS,EAAE,SAAU,CACzB,MAAO,KAAK,GACZ,SAAU,MAAM,MAAM,QAAU,KAAK,GACrC,SAAU,MAAM,cAAc,SAAS,KAAK,EAAE,GAC7C,MAAM,YAAY,KAAK,EAAE,GAAK,KAAK,EAAE,CAAC,EAC5C,CAAC,CACJ,CACF,EACD,EAKM,MAAM,iBAAmB,gBAAgB,CAC9C,KAAM,0BACN,aAAc,MACd,MAAO,CACL,YAAa,CAAE,KAAM,OAAQ,QAAS,EAAE,EACxC,UAAW,CAAE,KAAM,OAAQ,QAAS,KAAK,EACzC,GAAG,WAEL,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAQ,kBAAkB,EACvC,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GACV,QAAS,MAAM,QACf,aAAc,eACd,YAAa,QACb,mBAAoB,KAAK,MAAM,MAAM,QAAU,KAAO,GAAK,OAC5D,EAAG,CACF,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,IAC5C,KAAK,MAAM,MAAM,QAAU,KAC3B,MAAM,YACN,KAAK,MAAM,MAAM,UAAU,IAAI,KAAK,UAAU,KAAK,EAAE,KAAK,MAAM,SAAS,GAChF,CACH,EACD,EAED,MAAM,iBAAmB,yBAAmD,CAC1E,MAAO,eACP,cAAe,cACf,cAAe,+BACf,QACA,QACD,EAEM,MAAM,kBAAoB,iBAAiB,OAC3C,MAAM,gBAAkB,iBAAiB,KACzC,MAAM,yBAA2B,iBAAiB,cAClD,MAAM,uBAAyB,iBAAiB,YAEvD,SAAS,QAAQ,KAAY,CAC3B,MAAM,KAAO,OAAO,OAAO,EAC3B,GAAI,OAAS,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,uCAAuC,EAC1F,OAAO,IACT,CAEA,SAAS,mBACP,MACA,cAAgC,CAEhC,MAAM,SAAW,IAAI,IAAI,aAAa,EACtC,OAAO,MAAM,KAAM,MAAS,KAAK,WAAa,MAAQ,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,GAAG,IAAM,IACvF","names":["branches"],"file":"cascade-list.js"}
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeSelect}from"@sectile/dom/cascade-select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./presence/presence.js";import{useConditionalPresenceRegistry}from"./presence/conditional-presence.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeSelectRoot");const itemKey=Symbol("SectileCascadeSelectItem");const partProps=cascadeChoicePartProps;const CascadeSelectRoot=defineComponent({name:"SectileCascadeSelectRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef(null);const trigger=shallowRef(null);const popup=shallowRef();const submission=shallowRef(null);const connection=shallowRef();const participation=useCompositeFormControl({root,focusTarget:trigger,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}]});provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeSelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("CascadeSelectRoot","open",()=>props.open);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const selectedIDSet=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;return value===null?new Set:new Set([value])});const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;localOpen.value=current.open;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-cascade-select-id]").forEach(element=>{const id=element.dataset["sectileCascadeSelectId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const connect=()=>{connection.value?.disconnect();if(root.value===null||trigger.value===null||popup.value===void 0)return;const branchIDs=cascadeBranchItems(props.nodes);const leafIDs=new Set(props.nodes.filter(node=>!branchIDs.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leafIDs.has(requestedValue)?requestedValue:null;localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCascadeSelect({root:root.value,trigger:trigger.value,popup:popup.value,nodes:props.nodes,disabledItems:props.disabledItems,position:props.position,manageVisibility:false,side:props.side,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},...openControlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onOpenChange:next=>{localOpen.value=next;emit("update:open",next)},onUpdate:refresh});refresh()};const branches=computed(()=>cascadeBranchItems(props.nodes));let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,indicatorPresence,registerTrigger:element=>{const next=element??null;const changed=trigger.value!==next;trigger.value=next;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},refresh:()=>connection.value?.refresh(),registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.nodes,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.position,()=>props.side,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.open],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...openControlled?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});const registerRoot=node=>{const next=node instanceof HTMLElement?node:null;const changed=root.value!==next;root.value=next;if(changed)scheduleConnect()};return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerRoot,"data-scope":"cascade-select","data-part":"root","data-state":state.value.open?"open":"closed"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},name:props.name,form:props.form,required:props.required,disabled:props.disabled,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:""}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeSelectTrigger=defineComponent({name:"SectileCascadeSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectTrigger");const registerTrigger=node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"data-scope":"cascade-select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const CascadeSelectValue=defineComponent({name:"SectileCascadeSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-select","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const CascadeSelectContent=defineComponent({name:"SectileCascadeSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});const registerContent=node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)};return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerContent,role:"group",hidden:!present.value,"aria-label":root.label.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"cascade-select","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const cascadeSelectParts=createCascadeChoiceParts({scope:"cascade-select",componentName:"CascadeSelect",itemAttribute:"data-sectile-cascade-select-id",rootKey,itemKey});const CascadeSelectColumn=cascadeSelectParts.Column;const CascadeSelectItem=cascadeSelectParts.Item;const CascadeSelectItemIndicator=cascadeSelectParts.ItemIndicator;const CascadeSelectItemChevron=cascadeSelectParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeSelectRoot.`);return root}export{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCascadeSelect,tryCreateCascadeSelect}from"@sectile/dom/cascade-select";import{unwrap}from"@sectile/core/result";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl,useFormSubmissionProps,useFormControlFlags}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePopupPresentation}from"./internal/popup-presentation.js";import{provideHostLayerParent,useHostDirection}from"./host-provider.js";import{usePresence}from"./presence/presence.js";import{useConditionalPresenceRegistry}from"./presence/conditional-presence.js";import{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns}from"./internal/cascade-choice.js";const rootKey=Symbol("SectileCascadeSelectRoot");const itemKey=Symbol("SectileCascadeSelectItem");const partProps=cascadeChoicePartProps;const CascadeSelectRoot=defineComponent({__sectileFormLabelMode:"labelledby",name:"SectileCascadeSelectRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const flags=useFormControlFlags(props);const direction=useHostDirection();const root=shallowRef(null);const trigger=shallowRef(null);const popup=shallowRef();const submission=shallowRef(null);const connection=shallowRef();const initialValue=props.modelValue!==void 0?props.modelValue:props.defaultValue;const initialOpen=props.open??props.defaultOpen;provideFormControlOwner();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const initialValuePath=cascadeItemPath(props.nodes,localValue.value);const initialBranchPath=initialValuePath.slice(0,-1);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const path=shallowRef(initialBranchPath);const columns=shallowRef(initialCascadeColumns(props.nodes,initialBranchPath));const valuePath=shallowRef(initialValuePath);const valueControlled=useControlledStateInvariant("CascadeSelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("CascadeSelectRoot","open",()=>props.open);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,valuePath:valuePath.value,highlightedValue:highlighted.value,path:path.value,columns:columns.value,open:props.open??localOpen.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const lifecycle=usePopupPresentation({connection,open:computed(()=>state.value.open),connect:()=>connect(),refresh:()=>refresh(),trackLayerHost:true});const submissionProps=useFormSubmissionProps({element:submission,capabilities:hiddenSelectSubmissionCapabilities},props);const participation=useCompositeFormControl({root,focusTarget:()=>lifecycle.active.value?trigger.value:null,validationTarget:()=>lifecycle.active.value?root.value:null,submissions:[{element:submission,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{if(!mounted)return;disconnect();localValue.value=valueControlled?props.modelValue:initialValue;localOpen.value=openControlled?props.open:initialOpen;highlighted.value=null;lifecycle.reconnect();if(submission.value!==null)submission.value.value=state.value.value??""})}});const selectedIDSet=computed(()=>{const value=props.modelValue!==void 0?props.modelValue:localValue.value;return value===null?new Set:new Set([value])});const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const refresh=()=>{const current=connection.value?.getSnapshot().state;if(current===void 0)return;localValue.value=current.value;localOpen.value=current.open;highlighted.value=current.highlighted;path.value=current.path;columns.value=connection.value?.getColumns()??[];valuePath.value=connection.value?.getValuePath()??[];lifecycle.update();refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-cascade-select-id]").forEach(element=>{const id=element.dataset["sectileCascadeSelectId"];if(id!==void 0)connection.value?.setItemAttributes(element,id,props.disabledItems.includes(id))})};const connect=()=>{const navigation=connection.value===void 0?{}:{defaultPath:path.value,defaultHighlightedValue:highlighted.value};disconnect();if(root.value===null||trigger.value===null||popup.value===void 0)return;const branchIDs=cascadeBranchItems(props.nodes);const leafIDs=new Set(props.nodes.filter(node=>!branchIDs.has(node.id)).map(node=>node.id));const requestedValue=valueControlled?props.modelValue:localValue.value;const value=requestedValue!==null&&leafIDs.has(requestedValue)?requestedValue:null;localValue.value=value;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);const options={root:root.value,trigger:trigger.value,popup:popup.value,nodes:props.nodes,disabledItems:props.disabledItems,position:props.position,manageVisibility:false,side:props.side,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},...openControlled?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>{localValue.value=next;emit("update:modelValue",next)},onHighlightedValueChange:next=>{highlighted.value=next;emit("highlight",next)},onOpenChange:next=>{if(!openControlled)localOpen.value=next;emit("update:open",next)},onUpdate:refresh};const host=lifecycle.layerHost.value;const layer=host===void 0?{}:{layerHost:host};const interaction={disabled:flags.value.disabled,readOnly:flags.value.readonly};const candidate=tryCreateCascadeSelect({...options,...interaction,...navigation,...layer,direction:direction.value});if(!candidate.ok&&(candidate.error.code==="cascade-select-highlight-outside-tree"||candidate.error.code==="cascade-select-path-outside-tree"||candidate.error.code==="cascade-select-leaf-in-path"||candidate.error.code==="invalid-cascade-select-path"))connection.value=createCascadeSelect({...options,...interaction,...layer,direction:direction.value});else connection.value=unwrap(candidate);refresh()};const disconnect=()=>{lifecycle.release();try{connection.value?.disconnect()}finally{connection.value=void 0}};const branches=computed(()=>cascadeBranchItems(props.nodes));let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;if(!lifecycle.availability.value){lifecycle.invalidate();return}connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)lifecycle.reconnect()})};provide(rootKey,{state,active:lifecycle.active,presentation:lifecycle.presentation,registerPresence:lifecycle.registerPresence,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id=>id)),disabledItems:computed(()=>new Set(props.disabledItems)),branchItems:branches,indicatorPresence,registerTrigger:element=>{const next=element??null;const changed=trigger.value!==next;trigger.value=next;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},refresh:()=>connection.value?.refresh(),registerColumn:(element,depth,label)=>connection.value?.setColumnAttributes(element,depth===0?null:state.value.path[depth-1]??null,label),registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,id,disabled)});onMounted(()=>{mounted=true;lifecycle.reconnect()});onBeforeUnmount(()=>{mounted=false;disconnect()});watch([()=>props.nodes,()=>props.disabledItems,()=>flags.value.disabled,()=>flags.value.readonly,()=>props.label,()=>props.position,()=>props.side,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking,()=>props.policies,direction],lifecycle.reconnect);watch([()=>props.modelValue,()=>props.open],()=>{lifecycle.prepareModelUpdate();if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{value:props.modelValue}:{},...openControlled?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});const registerRoot=node=>{const next=node instanceof HTMLElement?node:null;const changed=root.value!==next;root.value=next;if(changed)scheduleConnect()};return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerRoot,"data-scope":"cascade-select","data-part":"root",dir:direction.value,"data-state":state.value.open?"open":"closed"},participation.controlProps.value),{default:()=>slots["default"]?.(state.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return visual;return[visual,h("select",{ref:element=>{submission.value=element instanceof HTMLSelectElement?element:null},...submissionProps.value,value:state.value.value??"",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},[h("option",{value:"",selected:state.value.value===null}),...props.nodes.filter(node=>!branches.value.has(node.id)).map(node=>h("option",{value:node.id,selected:state.value.value===node.id,disabled:props.disabledItems.includes(node.id)},props.textValue?.(node.id)??node.id))])]}}});const CascadeSelectTrigger=defineComponent({name:"SectileCascadeSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectTrigger");const registerTrigger=node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"data-scope":"cascade-select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const CascadeSelectValue=defineComponent({name:"SectileCascadeSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},separator:{type:String,default:" / "},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"cascade-select","data-part":"value","data-placeholder":root.state.value.value===null?"":void 0}),{default:()=>slots["default"]?.(root.state.value)??(root.state.value.value===null?props.placeholder:root.state.value.valuePath.map(root.textValue.value).join(props.separator))})}});const CascadeSelectContent=defineComponent({name:"SectileCascadeSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("CascadeSelectContent");const element=shallowRef();const open=computed(()=>root.state.value.open);provideHostLayerParent({element,open,active:root.active,presentation:root.presentation});const present=usePresence(open,element,void 0,root.active);onBeforeUnmount(root.registerPresence(present));watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});const registerContent=node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)};return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerContent,role:"group",hidden:!root.active.value||!present.value,"aria-label":root.label.value,...exiting||!root.active.value?{inert:true,"aria-hidden":"true"}:{},style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"cascade-select","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const cascadeSelectParts=createCascadeChoiceParts({scope:"cascade-select",componentName:"CascadeSelect",itemAttribute:"data-sectile-cascade-select-id",rootKey,itemKey});const CascadeSelectColumn=cascadeSelectParts.Column;const CascadeSelectItem=cascadeSelectParts.Item;const CascadeSelectItemIndicator=cascadeSelectParts.ItemIndicator;const CascadeSelectItemChevron=cascadeSelectParts.ItemChevron;function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside CascadeSelectRoot.`);return root}export{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue};
2
2
  //# sourceMappingURL=cascade-select.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cascade-select.ts"],"mappings":"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","names":[],"file":"cascade-select.js"}
1
+ {"version":3,"sources":["../src/cascade-select.ts"],"mappings":"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","names":[],"file":"cascade-select.js"}