@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.
- package/README.md +127 -14
- package/dist/accordion.js +1 -1
- package/dist/accordion.js.map +1 -1
- package/dist/carousel.d.ts +20 -0
- package/dist/carousel.js +1 -1
- package/dist/carousel.js.map +1 -1
- package/dist/cascade-list.js +1 -1
- package/dist/cascade-list.js.map +1 -1
- package/dist/cascade-select.js +1 -1
- package/dist/cascade-select.js.map +1 -1
- package/dist/chart.js +1 -1
- package/dist/chart.js.map +1 -1
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox-tree.d.ts +102 -0
- package/dist/checkbox-tree.js +2 -0
- package/dist/checkbox-tree.js.map +1 -0
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/color-picker.d.ts +24 -0
- package/dist/color-picker.js +1 -1
- package/dist/color-picker.js.map +1 -1
- package/dist/combobox.d.ts +47 -1
- package/dist/combobox.js +1 -1
- package/dist/combobox.js.map +1 -1
- package/dist/component-handle.d.ts +8 -0
- package/dist/component-handle.js +2 -0
- package/dist/component-handle.js.map +1 -0
- package/dist/context-menu.d.ts +1 -0
- package/dist/context-menu.js +2 -0
- package/dist/context-menu.js.map +1 -0
- package/dist/drag-drop.d.ts +23 -0
- package/dist/drag-drop.js +2 -0
- package/dist/drag-drop.js.map +1 -0
- package/dist/editable.d.ts +3 -0
- package/dist/editable.js +1 -1
- package/dist/editable.js.map +1 -1
- package/dist/form/context.d.ts +3 -0
- package/dist/form/context.js +1 -1
- package/dist/form/context.js.map +1 -1
- package/dist/form/contracts.d.ts +1 -0
- package/dist/form/control-inventory.d.ts +20 -0
- package/dist/form/control-inventory.js +1 -1
- package/dist/form/control-inventory.js.map +1 -1
- package/dist/form/control.d.ts +44 -1
- package/dist/form/control.js +1 -1
- package/dist/form/control.js.map +1 -1
- package/dist/form/field.d.ts +10 -0
- package/dist/form/field.js +1 -1
- package/dist/form/field.js.map +1 -1
- package/dist/form/file-input.d.ts +229 -0
- package/dist/form/file-input.js +2 -0
- package/dist/form/file-input.js.map +1 -0
- package/dist/form/file-upload/group.d.ts +28 -0
- package/dist/form/file-upload/group.js +2 -0
- package/dist/form/file-upload/group.js.map +1 -0
- package/dist/form/file-upload.d.ts +26 -0
- package/dist/form/file-upload.js +2 -0
- package/dist/form/file-upload.js.map +1 -0
- package/dist/form/root.js +1 -1
- package/dist/form/root.js.map +1 -1
- package/dist/form-boundary.d.ts +2 -0
- package/dist/form-boundary.js +2 -0
- package/dist/form-boundary.js.map +1 -0
- package/dist/fullscreen.d.ts +16 -0
- package/dist/fullscreen.js +2 -0
- package/dist/fullscreen.js.map +1 -0
- package/dist/host-provider.d.ts +99 -1
- package/dist/host-provider.js +1 -1
- package/dist/host-provider.js.map +1 -1
- package/dist/image.d.ts +24 -0
- package/dist/image.js +2 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input/native-field.d.ts +33 -6
- package/dist/input/native-field.js +1 -1
- package/dist/input/native-field.js.map +1 -1
- package/dist/input/native-range-field.d.ts +16 -7
- package/dist/input/native-range-field.js +1 -1
- package/dist/input/native-range-field.js.map +1 -1
- package/dist/internal/cascade-choice.js +1 -1
- package/dist/internal/cascade-choice.js.map +1 -1
- package/dist/internal/connection-lifetime.d.ts +10 -0
- package/dist/internal/connection-lifetime.js +2 -0
- package/dist/internal/connection-lifetime.js.map +1 -0
- package/dist/internal/popup-presentation.d.ts +32 -0
- package/dist/internal/popup-presentation.js +2 -0
- package/dist/internal/popup-presentation.js.map +1 -0
- package/dist/internal/portal-move.d.ts +11 -0
- package/dist/internal/portal-move.js +2 -0
- package/dist/internal/portal-move.js.map +1 -0
- package/dist/internal/scheduled-task.js +1 -1
- package/dist/internal/scheduled-task.js.map +1 -1
- package/dist/internal/tabs-context.d.ts +11 -0
- package/dist/internal/tabs-context.js +1 -1
- package/dist/internal/tabs-context.js.map +1 -1
- package/dist/internal/tree-parts.d.ts +142 -0
- package/dist/internal/tree-parts.js +2 -0
- package/dist/internal/tree-parts.js.map +1 -0
- package/dist/listbox.d.ts +11 -0
- package/dist/listbox.js +1 -1
- package/dist/listbox.js.map +1 -1
- package/dist/media-gesture.d.ts +20 -0
- package/dist/media-gesture.js +2 -0
- package/dist/media-gesture.js.map +1 -0
- package/dist/menu.d.ts +239 -0
- package/dist/menu.js +1 -1
- package/dist/menu.js.map +1 -1
- package/dist/meter-group.js +1 -1
- package/dist/meter-group.js.map +1 -1
- package/dist/multi-thumb-slider.js +1 -1
- package/dist/multi-thumb-slider.js.map +1 -1
- package/dist/number-field.d.ts +18 -1
- package/dist/number-field.js +1 -1
- package/dist/number-field.js.map +1 -1
- package/dist/overlay/dialog.d.ts +1 -0
- package/dist/overlay/dialog.js.map +1 -1
- package/dist/overlay/drawer.d.ts +33 -4
- package/dist/overlay/drawer.js +1 -1
- package/dist/overlay/drawer.js.map +1 -1
- package/dist/overlay/popover.d.ts +2 -1
- package/dist/overlay/popover.js.map +1 -1
- package/dist/overlay/popup.d.ts +50 -2
- package/dist/overlay/popup.js +1 -1
- package/dist/overlay/popup.js.map +1 -1
- package/dist/overlay/tooltip.d.ts +38 -3
- package/dist/overlay/tooltip.js +1 -1
- package/dist/overlay/tooltip.js.map +1 -1
- package/dist/pagination.js +1 -1
- package/dist/pagination.js.map +1 -1
- package/dist/pin-input.js +1 -1
- package/dist/pin-input.js.map +1 -1
- package/dist/presence/presence.d.ts +1 -1
- package/dist/presence/presence.js +1 -1
- package/dist/presence/presence.js.map +1 -1
- package/dist/primitive.d.ts +37 -3
- package/dist/primitive.js +1 -1
- package/dist/primitive.js.map +1 -1
- package/dist/quantity-field.js +1 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/rating.js +1 -1
- package/dist/rating.js.map +1 -1
- package/dist/reorder.d.ts +169 -77
- package/dist/reorder.js +1 -1
- package/dist/reorder.js.map +1 -1
- package/dist/select.d.ts +21 -0
- package/dist/select.js +1 -1
- package/dist/select.js.map +1 -1
- package/dist/slider.js +1 -1
- package/dist/slider.js.map +1 -1
- package/dist/spin-button.d.ts +19 -0
- package/dist/spin-button.js +1 -1
- package/dist/spin-button.js.map +1 -1
- package/dist/stepper.js +1 -1
- package/dist/stepper.js.map +1 -1
- package/dist/switch.js +1 -1
- package/dist/switch.js.map +1 -1
- package/dist/tabs.d.ts +2 -0
- package/dist/tabs.js +1 -1
- package/dist/tabs.js.map +1 -1
- package/dist/tabular/components.d.ts +5 -0
- package/dist/tabular/components.js.map +1 -1
- package/dist/tabular/controller.d.ts +1 -0
- package/dist/tabular/controller.js +1 -1
- package/dist/tabular/controller.js.map +1 -1
- package/dist/tabular/data-grid.d.ts +4 -4
- package/dist/tabular/data-grid.js +1 -1
- package/dist/tabular/data-grid.js.map +1 -1
- package/dist/tabular/data-table.d.ts +4 -4
- package/dist/tabular/data-table.js +1 -1
- package/dist/tabular/data-table.js.map +1 -1
- package/dist/tabular/data-tree-grid.d.ts +4 -4
- package/dist/tabular/data-tree-grid.js +1 -1
- package/dist/tabular/data-tree-grid.js.map +1 -1
- package/dist/tabular/parts.d.ts +11 -1
- package/dist/tabular/parts.js +1 -1
- package/dist/tabular/parts.js.map +1 -1
- package/dist/tags-input.d.ts +12 -1
- package/dist/tags-input.js +1 -1
- package/dist/tags-input.js.map +1 -1
- package/dist/temporal/calendar.d.ts +15 -111
- package/dist/temporal/calendar.js +1 -1
- package/dist/temporal/calendar.js.map +1 -1
- package/dist/temporal/capabilities/date-picker.js +1 -1
- package/dist/temporal/capabilities/date-picker.js.map +1 -1
- package/dist/temporal/capabilities/date-time-picker.js +1 -1
- package/dist/temporal/capabilities/date-time-picker.js.map +1 -1
- package/dist/temporal/capabilities/date-time-range-picker.js +1 -1
- package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -1
- package/dist/temporal/capability.d.ts +13 -1
- package/dist/temporal/capability.js.map +1 -1
- package/dist/temporal/date-field.d.ts +1 -1
- package/dist/temporal/date-field.js +1 -1
- package/dist/temporal/date-field.js.map +1 -1
- package/dist/temporal/date-picker.d.ts +3 -1
- package/dist/temporal/date-picker.js.map +1 -1
- package/dist/temporal/date-range-field.d.ts +20 -0
- package/dist/temporal/date-range-field.js +1 -1
- package/dist/temporal/date-range-field.js.map +1 -1
- package/dist/temporal/date-range-picker.d.ts +3 -1
- package/dist/temporal/date-range-picker.js.map +1 -1
- package/dist/temporal/date-time-field.d.ts +4 -1
- package/dist/temporal/date-time-field.js +1 -1
- package/dist/temporal/date-time-field.js.map +1 -1
- package/dist/temporal/date-time-picker.d.ts +3 -1
- package/dist/temporal/date-time-picker.js +1 -1
- package/dist/temporal/date-time-picker.js.map +1 -1
- package/dist/temporal/date-time-range-field.d.ts +158 -0
- package/dist/temporal/date-time-range-field.js +2 -0
- package/dist/temporal/date-time-range-field.js.map +1 -0
- package/dist/temporal/date-time-range-picker.d.ts +3 -1
- package/dist/temporal/date-time-range-picker.js +1 -1
- package/dist/temporal/date-time-range-picker.js.map +1 -1
- package/dist/temporal/internal/time-presentation.d.ts +15 -0
- package/dist/temporal/internal/time-presentation.js +2 -0
- package/dist/temporal/internal/time-presentation.js.map +1 -0
- package/dist/temporal/month-picker.d.ts +3 -1
- package/dist/temporal/month-picker.js.map +1 -1
- package/dist/temporal/month-range-picker.d.ts +3 -1
- package/dist/temporal/month-range-picker.js.map +1 -1
- package/dist/temporal/picker.d.ts +23 -1
- package/dist/temporal/picker.js +1 -1
- package/dist/temporal/picker.js.map +1 -1
- package/dist/temporal/range-calendar.d.ts +119 -2
- package/dist/temporal/range-calendar.js +1 -1
- package/dist/temporal/range-calendar.js.map +1 -1
- package/dist/temporal/temporal-provider.d.ts +23 -0
- package/dist/temporal/temporal-provider.js +1 -1
- package/dist/temporal/temporal-provider.js.map +1 -1
- package/dist/temporal/time-field.d.ts +4 -1
- package/dist/temporal/time-field.js +1 -1
- package/dist/temporal/time-field.js.map +1 -1
- package/dist/temporal/time-picker.d.ts +112 -0
- package/dist/temporal/time-picker.js +2 -0
- package/dist/temporal/time-picker.js.map +1 -0
- package/dist/temporal/time-range-field.d.ts +32 -1
- package/dist/temporal/time-range-field.js +1 -1
- package/dist/temporal/time-range-field.js.map +1 -1
- package/dist/temporal/year-picker.d.ts +3 -1
- package/dist/temporal/year-picker.js.map +1 -1
- package/dist/temporal/year-range-picker.d.ts +3 -1
- package/dist/temporal/year-range-picker.js.map +1 -1
- package/dist/text.d.ts +43 -1
- package/dist/text.js +1 -1
- package/dist/text.js.map +1 -1
- package/dist/timer.d.ts +16 -5
- package/dist/timer.js +1 -1
- package/dist/timer.js.map +1 -1
- package/dist/toast.js +1 -1
- package/dist/toast.js.map +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/toggle-group.js.map +1 -1
- package/dist/toolbar.js +1 -1
- package/dist/toolbar.js.map +1 -1
- package/dist/transfer.d.ts +191 -0
- package/dist/transfer.js +2 -0
- package/dist/transfer.js.map +1 -0
- package/dist/tree-grid.d.ts +122 -0
- package/dist/tree-grid.js +1 -1
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-select.d.ts +186 -0
- package/dist/tree-select.js +2 -0
- package/dist/tree-select.js.map +1 -0
- package/dist/tree-view.js +1 -1
- package/dist/tree-view.js.map +1 -1
- package/dist/virtual/virtual-collection.d.ts +2 -0
- package/dist/virtual/virtual-collection.js.map +1 -1
- package/dist/virtual/virtual-grid.d.ts +12 -2
- package/dist/virtual/virtual-grid.js +1 -1
- package/dist/virtual/virtual-grid.js.map +1 -1
- package/dist/virtual/virtual-list.d.ts +12 -3
- package/dist/virtual/virtual-list.js +1 -1
- package/dist/virtual/virtual-list.js.map +1 -1
- package/dist/virtual/virtual-masonry.d.ts +12 -2
- package/dist/virtual/virtual-masonry.js +1 -1
- package/dist/virtual/virtual-masonry.js.map +1 -1
- package/dist/virtual/virtual-spatial.d.ts +12 -2
- package/dist/virtual/virtual-spatial.js +1 -1
- package/dist/virtual/virtual-spatial.js.map +1 -1
- package/dist/window-splitter.js +1 -1
- package/dist/window-splitter.js.map +1 -1
- 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
|
-
|
|
5
|
+
```sh
|
|
6
|
+
pnpm add @sectile/vue vue
|
|
7
|
+
```
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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;
|
|
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
|
package/dist/accordion.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/accordion.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,QACA,WACA,UAKK,MACP,OACE,0BACA,4BACA,2BACA,8BACA,qBAEK,yBACP,OAAS,cAAmC,iBAC5C,OAAS,cAAiB,qBAC1B,OAAS,yBAA0B,YAAe,2BAClD,OAAS,gCAAmC,iCAC5C,OACE,yBACA,2BAEK,
|
|
1
|
+
{"version":3,"sources":["../src/accordion.ts"],"mappings":"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","names":[],"file":"accordion.js"}
|
package/dist/carousel.d.ts
CHANGED
|
@@ -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
|
package/dist/carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/carousel.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,gBAAiB,UAAW,QAC9E,WAAY,UACP,MACP,OACE,mBAIK,wBACP,OAAS,cAAmC,iBAC5C,OAAS,iBAAkB,cAAiB,qBAC5C,OAAS,6BAAgC,2BACzC,OAAS,gCAAmC,iCAC5C,OACE,yBACA,2BAEK,
|
|
1
|
+
{"version":3,"sources":["../src/carousel.ts"],"mappings":"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","names":["value","part"],"file":"carousel.js"}
|
package/dist/cascade-list.js
CHANGED
|
@@ -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:
|
|
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
|
package/dist/cascade-list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,6BAAgC,0BACzC,OAAS,4BAA+B,oBACxC,OACE,mCACA,
|
|
1
|
+
{"version":3,"sources":["../src/cascade-list.ts"],"mappings":"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","names":["branches"],"file":"cascade-list.js"}
|
package/dist/cascade-select.js
CHANGED
|
@@ -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"}
|