@sectile/vue 0.18.1 → 0.18.3
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/dist/accordion.d.ts +1 -1
- package/dist/accordion.js +1 -1
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +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/checkbox-group.js +1 -1
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox.d.ts +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/color-picker.js +1 -1
- package/dist/color-picker.js.map +1 -1
- package/dist/combobox.d.ts +1 -1
- package/dist/combobox.js +1 -1
- package/dist/combobox.js.map +1 -1
- package/dist/disclosure.d.ts +1 -1
- package/dist/disclosure.js +1 -1
- package/dist/editable.js +1 -1
- package/dist/editable.js.map +1 -1
- package/dist/{internal/form-context.d.ts → form/context.d.ts} +3 -2
- package/dist/{internal/form-context.js → form/context.js} +2 -2
- package/dist/form/context.js.map +1 -0
- package/dist/form/contracts.d.ts +219 -0
- package/dist/form/contracts.js +2 -0
- package/dist/form/contracts.js.map +1 -0
- package/dist/{internal/form-control-inventory.js → form/control-inventory.js} +1 -1
- package/dist/form/control-inventory.js.map +1 -0
- package/dist/form/control.js +2 -0
- package/dist/form/control.js.map +1 -0
- package/dist/form/field.d.ts +81 -0
- package/dist/form/field.js +2 -0
- package/dist/form/field.js.map +1 -0
- package/dist/form/native.d.ts +15 -0
- package/dist/form/native.js +2 -0
- package/dist/form/native.js.map +1 -0
- package/dist/form/part.d.ts +16 -0
- package/dist/form/part.js +2 -0
- package/dist/form/part.js.map +1 -0
- package/dist/form/parts.d.ts +93 -0
- package/dist/form/parts.js +2 -0
- package/dist/form/parts.js.map +1 -0
- package/dist/{internal/form-presence-parts.d.ts → form/presence-parts.d.ts} +1 -1
- package/dist/form/presence-parts.js +2 -0
- package/dist/form/presence-parts.js.map +1 -0
- package/dist/form/root.d.ts +2 -0
- package/dist/form/root.js +2 -0
- package/dist/form/root.js.map +1 -0
- package/dist/form/selectors.d.ts +7 -0
- package/dist/form/selectors.js +2 -0
- package/dist/form/selectors.js.map +1 -0
- package/dist/form.d.ts +8 -398
- package/dist/form.js +1 -1
- package/dist/form.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input/decimal-input.js.map +1 -0
- package/dist/input/native-field.js +2 -0
- package/dist/input/native-field.js.map +1 -0
- package/dist/input/native-input.js.map +1 -0
- package/dist/input/native-range-field.d.ts +86 -0
- package/dist/input/native-range-field.js +2 -0
- package/dist/input/native-range-field.js.map +1 -0
- package/dist/input/native-text-state.d.ts +2 -0
- package/dist/input/native-text-state.js +2 -0
- package/dist/input/native-text-state.js.map +1 -0
- package/dist/internal/cascade-choice.d.ts +1 -1
- package/dist/internal/cascade-choice.js +1 -1
- package/dist/internal/cascade-choice.js.map +1 -1
- package/dist/internal/controlled-state.js +1 -1
- package/dist/internal/controlled-state.js.map +1 -1
- package/dist/listbox.d.ts +1 -1
- package/dist/listbox.js +1 -1
- package/dist/listbox.js.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/meter-group.js +1 -1
- package/dist/meter-group.js.map +1 -1
- package/dist/meter.js +1 -1
- package/dist/meter.js.map +1 -1
- package/dist/multi-thumb-slider.js +1 -1
- package/dist/multi-thumb-slider.js.map +1 -1
- package/dist/navigation-menu.d.ts +1 -1
- package/dist/navigation-menu.js +1 -1
- package/dist/number-field.d.ts +1 -1
- package/dist/number-field.js +1 -1
- package/dist/number-field.js.map +1 -1
- package/dist/{alert-dialog.d.ts → overlay/alert-dialog.d.ts} +1 -1
- package/dist/overlay/alert-dialog.js +2 -0
- package/dist/overlay/alert-dialog.js.map +1 -0
- package/dist/{dialog.d.ts → overlay/dialog.d.ts} +1 -1
- package/dist/overlay/dialog.js +2 -0
- package/dist/overlay/dialog.js.map +1 -0
- package/dist/{drawer.d.ts → overlay/drawer.d.ts} +1 -1
- package/dist/overlay/drawer.js +2 -0
- package/dist/overlay/drawer.js.map +1 -0
- package/dist/{popover.d.ts → overlay/popover.d.ts} +1 -1
- package/dist/overlay/popover.js +2 -0
- package/dist/overlay/popover.js.map +1 -0
- package/dist/overlay/popup.js +2 -0
- package/dist/overlay/popup.js.map +1 -0
- package/dist/{tooltip.d.ts → overlay/tooltip.d.ts} +1 -1
- package/dist/overlay/tooltip.js +2 -0
- package/dist/overlay/tooltip.js.map +1 -0
- package/dist/pin-input.js +1 -1
- package/dist/pin-input.js.map +1 -1
- package/dist/{internal → presence}/conditional-presence.js.map +1 -1
- package/dist/{internal → presence}/presence.js.map +1 -1
- package/dist/progress.js +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/quantity-field.js +1 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.d.ts +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/select.d.ts +1 -1
- 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.js +1 -1
- package/dist/spin-button.js.map +1 -1
- package/dist/switch.js +1 -1
- package/dist/switch.js.map +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{internal/tabular-components.d.ts → tabular/components.d.ts} +1 -1
- package/dist/{internal/tabular-components.js → tabular/components.js} +1 -1
- package/dist/tabular/components.js.map +1 -0
- package/dist/tabular/context.d.ts +16 -0
- package/dist/tabular/context.js +2 -0
- package/dist/tabular/context.js.map +1 -0
- package/dist/{internal/tabular-profile.d.ts → tabular/controller.d.ts} +2 -32
- package/dist/tabular/controller.js +2 -0
- package/dist/tabular/controller.js.map +1 -0
- package/dist/{data-grid.d.ts → tabular/data-grid.d.ts} +7 -5
- package/dist/tabular/data-grid.js +2 -0
- package/dist/tabular/data-grid.js.map +1 -0
- package/dist/{data-table.d.ts → tabular/data-table.d.ts} +9 -36
- package/dist/tabular/data-table.js +2 -0
- package/dist/tabular/data-table.js.map +1 -0
- package/dist/{data-tree-grid.d.ts → tabular/data-tree-grid.d.ts} +7 -5
- package/dist/tabular/data-tree-grid.js +2 -0
- package/dist/tabular/data-tree-grid.js.map +1 -0
- package/dist/{internal/tabular-parts.d.ts → tabular/parts.d.ts} +2 -1
- package/dist/tabular/parts.js +2 -0
- package/dist/tabular/parts.js.map +1 -0
- package/dist/tabular/schema.d.ts +35 -0
- package/dist/tabular/schema.js +2 -0
- package/dist/tabular/schema.js.map +1 -0
- package/dist/tabular/source.d.ts +20 -0
- package/dist/tabular/source.js +2 -0
- package/dist/tabular/source.js.map +1 -0
- package/dist/tags-input.js +1 -1
- package/dist/tags-input.js.map +1 -1
- package/dist/{calendar.d.ts → temporal/calendar.d.ts} +21 -21
- package/dist/temporal/calendar.js +2 -0
- package/dist/temporal/calendar.js.map +1 -0
- package/dist/temporal/capabilities/calendar.d.ts +1 -0
- package/dist/temporal/capabilities/calendar.js +2 -0
- package/dist/temporal/capabilities/calendar.js.map +1 -0
- package/dist/temporal/capabilities/date-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-picker.js +2 -0
- package/dist/temporal/capabilities/date-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-range-picker.js +2 -0
- package/dist/temporal/capabilities/date-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-time-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-time-picker.js +2 -0
- package/dist/temporal/capabilities/date-time-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-time-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-time-range-picker.js +2 -0
- package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/month-picker.d.ts +1 -0
- package/dist/temporal/capabilities/month-picker.js +2 -0
- package/dist/temporal/capabilities/month-picker.js.map +1 -0
- package/dist/temporal/capabilities/month-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/month-range-picker.js +2 -0
- package/dist/temporal/capabilities/month-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/range-calendar.d.ts +1 -0
- package/dist/temporal/capabilities/range-calendar.js +2 -0
- package/dist/temporal/capabilities/range-calendar.js.map +1 -0
- package/dist/temporal/capabilities/year-picker.d.ts +1 -0
- package/dist/temporal/capabilities/year-picker.js +2 -0
- package/dist/temporal/capabilities/year-picker.js.map +1 -0
- package/dist/temporal/capabilities/year-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/year-range-picker.js +2 -0
- package/dist/temporal/capabilities/year-range-picker.js.map +1 -0
- package/dist/{internal/picker-capability.js → temporal/capability.js} +1 -1
- package/dist/temporal/capability.js.map +1 -0
- package/dist/{date-field.d.ts → temporal/date-field.d.ts} +1 -1
- package/dist/temporal/date-field.js +2 -0
- package/dist/temporal/date-field.js.map +1 -0
- package/dist/{date-picker.d.ts → temporal/date-picker.d.ts} +24 -24
- package/dist/temporal/date-picker.js +2 -0
- package/dist/temporal/date-picker.js.map +1 -0
- package/dist/{date-range-field.d.ts → temporal/date-range-field.d.ts} +1 -1
- package/dist/temporal/date-range-field.js +2 -0
- package/dist/temporal/date-range-field.js.map +1 -0
- package/dist/{date-range-picker.d.ts → temporal/date-range-picker.d.ts} +27 -27
- package/dist/temporal/date-range-picker.js +2 -0
- package/dist/temporal/date-range-picker.js.map +1 -0
- package/dist/{date-time-field.d.ts → temporal/date-time-field.d.ts} +1 -1
- package/dist/temporal/date-time-field.js +2 -0
- package/dist/temporal/date-time-field.js.map +1 -0
- package/dist/{date-time-picker.d.ts → temporal/date-time-picker.d.ts} +30 -30
- package/dist/temporal/date-time-picker.js +2 -0
- package/dist/temporal/date-time-picker.js.map +1 -0
- package/dist/{date-time-range-picker.d.ts → temporal/date-time-range-picker.d.ts} +39 -39
- package/dist/temporal/date-time-range-picker.js +2 -0
- package/dist/temporal/date-time-range-picker.js.map +1 -0
- package/dist/{month-picker.d.ts → temporal/month-picker.d.ts} +14 -14
- package/dist/temporal/month-picker.js +2 -0
- package/dist/temporal/month-picker.js.map +1 -0
- package/dist/{month-range-picker.d.ts → temporal/month-range-picker.d.ts} +17 -17
- package/dist/temporal/month-range-picker.js +2 -0
- package/dist/temporal/month-range-picker.js.map +1 -0
- package/dist/{internal/date-picker.d.ts → temporal/picker.d.ts} +2 -3
- package/dist/temporal/picker.js +2 -0
- package/dist/temporal/picker.js.map +1 -0
- package/dist/{range-calendar.d.ts → temporal/range-calendar.d.ts} +11 -11
- package/dist/temporal/range-calendar.js +2 -0
- package/dist/temporal/range-calendar.js.map +1 -0
- package/dist/temporal/temporal-provider.js.map +1 -0
- package/dist/{time-field.d.ts → temporal/time-field.d.ts} +1 -1
- package/dist/temporal/time-field.js +2 -0
- package/dist/temporal/time-field.js.map +1 -0
- package/dist/{time-range-field.d.ts → temporal/time-range-field.d.ts} +1 -1
- package/dist/temporal/time-range-field.js +2 -0
- package/dist/temporal/time-range-field.js.map +1 -0
- package/dist/{year-picker.d.ts → temporal/year-picker.d.ts} +16 -16
- package/dist/temporal/year-picker.js +2 -0
- package/dist/temporal/year-picker.js.map +1 -0
- package/dist/{year-range-picker.d.ts → temporal/year-range-picker.d.ts} +19 -19
- package/dist/temporal/year-range-picker.js +2 -0
- package/dist/temporal/year-range-picker.js.map +1 -0
- package/dist/text.js +1 -1
- package/dist/text.js.map +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/toggle-group.js.map +1 -1
- package/dist/tree-grid.d.ts +1 -1
- package/dist/tree-grid.js +1 -1
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-view.d.ts +1 -1
- package/dist/tree-view.js +1 -1
- package/dist/{internal → virtual}/virtual-collection.d.ts +1 -0
- package/dist/virtual/virtual-collection.js +2 -0
- package/dist/virtual/virtual-collection.js.map +1 -0
- package/dist/{internal → virtual}/virtual-core.d.ts +1 -0
- package/dist/virtual/virtual-core.js +2 -0
- package/dist/virtual/virtual-core.js.map +1 -0
- package/dist/{virtual-grid.d.ts → virtual/virtual-grid.d.ts} +1 -1
- package/dist/virtual/virtual-grid.js +2 -0
- package/dist/virtual/virtual-grid.js.map +1 -0
- package/dist/virtual/virtual-list.js +2 -0
- package/dist/virtual/virtual-list.js.map +1 -0
- package/dist/{virtual-masonry.d.ts → virtual/virtual-masonry.d.ts} +1 -1
- package/dist/virtual/virtual-masonry.js +2 -0
- package/dist/virtual/virtual-masonry.js.map +1 -0
- package/dist/{virtual-spatial.d.ts → virtual/virtual-spatial.d.ts} +1 -1
- package/dist/virtual/virtual-spatial.js +2 -0
- package/dist/virtual/virtual-spatial.js.map +1 -0
- package/dist/virtual-core.d.ts +1 -1
- package/dist/virtual-core.js +1 -1
- package/dist/virtual-list.d.ts +2 -2
- package/dist/virtual-list.js +1 -1
- package/package.json +94 -94
- package/dist/alert-dialog.js +0 -2
- package/dist/alert-dialog.js.map +0 -1
- package/dist/calendar.js +0 -2
- package/dist/calendar.js.map +0 -1
- package/dist/data-grid.js +0 -2
- package/dist/data-grid.js.map +0 -1
- package/dist/data-table.js +0 -2
- package/dist/data-table.js.map +0 -1
- package/dist/data-tree-grid.js +0 -2
- package/dist/data-tree-grid.js.map +0 -1
- package/dist/date-field.js +0 -2
- package/dist/date-field.js.map +0 -1
- package/dist/date-picker.js +0 -2
- package/dist/date-picker.js.map +0 -1
- package/dist/date-range-field.js +0 -2
- package/dist/date-range-field.js.map +0 -1
- package/dist/date-range-picker.js +0 -2
- package/dist/date-range-picker.js.map +0 -1
- package/dist/date-time-field.js +0 -2
- package/dist/date-time-field.js.map +0 -1
- package/dist/date-time-picker.js +0 -2
- package/dist/date-time-picker.js.map +0 -1
- package/dist/date-time-range-picker.js +0 -2
- package/dist/date-time-range-picker.js.map +0 -1
- package/dist/dialog.js +0 -2
- package/dist/dialog.js.map +0 -1
- package/dist/drawer.js +0 -2
- package/dist/drawer.js.map +0 -1
- package/dist/internal/calendar-capability.d.ts +0 -1
- package/dist/internal/calendar-capability.js +0 -2
- package/dist/internal/calendar-capability.js.map +0 -1
- package/dist/internal/date-picker-capability.d.ts +0 -1
- package/dist/internal/date-picker-capability.js +0 -2
- package/dist/internal/date-picker-capability.js.map +0 -1
- package/dist/internal/date-picker.js +0 -2
- package/dist/internal/date-picker.js.map +0 -1
- package/dist/internal/date-range-picker-capability.d.ts +0 -1
- package/dist/internal/date-range-picker-capability.js +0 -2
- package/dist/internal/date-range-picker-capability.js.map +0 -1
- package/dist/internal/date-time-picker-capability.d.ts +0 -1
- package/dist/internal/date-time-picker-capability.js +0 -2
- package/dist/internal/date-time-picker-capability.js.map +0 -1
- package/dist/internal/date-time-range-picker-capability.d.ts +0 -1
- package/dist/internal/date-time-range-picker-capability.js +0 -2
- package/dist/internal/date-time-range-picker-capability.js.map +0 -1
- package/dist/internal/decimal-input.js.map +0 -1
- package/dist/internal/form-context.js.map +0 -1
- package/dist/internal/form-control-inventory.js.map +0 -1
- package/dist/internal/form-control.js +0 -2
- package/dist/internal/form-control.js.map +0 -1
- package/dist/internal/form-presence-parts.js +0 -2
- package/dist/internal/form-presence-parts.js.map +0 -1
- package/dist/internal/month-picker-capability.d.ts +0 -1
- package/dist/internal/month-picker-capability.js +0 -2
- package/dist/internal/month-picker-capability.js.map +0 -1
- package/dist/internal/month-range-picker-capability.d.ts +0 -1
- package/dist/internal/month-range-picker-capability.js +0 -2
- package/dist/internal/month-range-picker-capability.js.map +0 -1
- package/dist/internal/native-field.js +0 -2
- package/dist/internal/native-field.js.map +0 -1
- package/dist/internal/native-input.js.map +0 -1
- package/dist/internal/picker-capability.js.map +0 -1
- package/dist/internal/popup.js +0 -2
- package/dist/internal/popup.js.map +0 -1
- package/dist/internal/range-calendar-capability.d.ts +0 -1
- package/dist/internal/range-calendar-capability.js +0 -2
- package/dist/internal/range-calendar-capability.js.map +0 -1
- package/dist/internal/tabular-components.js.map +0 -1
- package/dist/internal/tabular-parts.js +0 -2
- package/dist/internal/tabular-parts.js.map +0 -1
- package/dist/internal/tabular-profile.js +0 -2
- package/dist/internal/tabular-profile.js.map +0 -1
- package/dist/internal/virtual-collection.js +0 -2
- package/dist/internal/virtual-collection.js.map +0 -1
- package/dist/internal/virtual-core.js +0 -2
- package/dist/internal/virtual-core.js.map +0 -1
- package/dist/internal/virtual-list.js +0 -2
- package/dist/internal/virtual-list.js.map +0 -1
- package/dist/internal/year-picker-capability.d.ts +0 -1
- package/dist/internal/year-picker-capability.js +0 -2
- package/dist/internal/year-picker-capability.js.map +0 -1
- package/dist/internal/year-range-picker-capability.d.ts +0 -1
- package/dist/internal/year-range-picker-capability.js +0 -2
- package/dist/internal/year-range-picker-capability.js.map +0 -1
- package/dist/month-picker.js +0 -2
- package/dist/month-picker.js.map +0 -1
- package/dist/month-range-picker.js +0 -2
- package/dist/month-range-picker.js.map +0 -1
- package/dist/popover.js +0 -2
- package/dist/popover.js.map +0 -1
- package/dist/range-calendar.js +0 -2
- package/dist/range-calendar.js.map +0 -1
- package/dist/temporal-provider.js.map +0 -1
- package/dist/time-field.js +0 -2
- package/dist/time-field.js.map +0 -1
- package/dist/time-range-field.js +0 -2
- package/dist/time-range-field.js.map +0 -1
- package/dist/tooltip.js +0 -2
- package/dist/tooltip.js.map +0 -1
- package/dist/virtual-grid.js +0 -2
- package/dist/virtual-grid.js.map +0 -1
- package/dist/virtual-masonry.js +0 -2
- package/dist/virtual-masonry.js.map +0 -1
- package/dist/virtual-spatial.js +0 -2
- package/dist/virtual-spatial.js.map +0 -1
- package/dist/year-picker.js +0 -2
- package/dist/year-picker.js.map +0 -1
- package/dist/year-range-picker.js +0 -2
- package/dist/year-range-picker.js.map +0 -1
- /package/dist/{internal/form-control-inventory.d.ts → form/control-inventory.d.ts} +0 -0
- /package/dist/{internal/form-control.d.ts → form/control.d.ts} +0 -0
- /package/dist/{internal → input}/decimal-input.d.ts +0 -0
- /package/dist/{internal → input}/decimal-input.js +0 -0
- /package/dist/{internal → input}/native-field.d.ts +0 -0
- /package/dist/{internal → input}/native-input.d.ts +0 -0
- /package/dist/{internal → input}/native-input.js +0 -0
- /package/dist/{internal → overlay}/popup.d.ts +0 -0
- /package/dist/{internal → presence}/conditional-presence.d.ts +0 -0
- /package/dist/{internal → presence}/conditional-presence.js +0 -0
- /package/dist/{internal → presence}/presence.d.ts +0 -0
- /package/dist/{internal → presence}/presence.js +0 -0
- /package/dist/{internal/picker-capability.d.ts → temporal/capability.d.ts} +0 -0
- /package/dist/{temporal-provider.d.ts → temporal/temporal-provider.d.ts} +0 -0
- /package/dist/{temporal-provider.js → temporal/temporal-provider.js} +0 -0
- /package/dist/{internal → virtual}/virtual-list.d.ts +0 -0
package/dist/radio-group.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getRadioGroupInputAttributes,getRadioGroupItemAttributes,getRadioGroupRootAttributes}from"@sectile/dom/radio-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getRadioGroupInputAttributes,getRadioGroupItemAttributes,getRadioGroupRootAttributes}from"@sectile/dom/radio-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useHostDirection}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 rootKey=Symbol("SectileRadioGroupRoot");const itemKey=Symbol("SectileRadioGroupItem");const RadioGroupRoot=defineComponent({name:"SectileRadioGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"vertical"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},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 direction=useHostDirection();const rootElement=shallowRef(null);const inputElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>props.items.map((_,index)=>({element:()=>inputElements[index]??null,capabilities:hiddenInputSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("RadioGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:true},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(controlled?props.modelValue:props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&¤t!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};const part=usePartContract("radio-group","root");provide(rootKey,{value,highlighted,disabled,disabledItems,partContract:part,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="radiogroup"]'))});const rootAttributes=computed(()=>getRadioGroupRootAttributes({orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly}));const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,rootAttributes.value,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope,onKeydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,...props.items.map((id,index)=>h("input",mergeProps(getRadioGroupInputAttributes({...props.name===void 0?{}:{name:props.name},...props.form===void 0?{}:{form:props.form},value:id,checked:value.value===id,required:props.required,disabled:props.disabled||props.disabledItems.includes(id)}),{ref:element=>{inputElements[index]=element instanceof HTMLInputElement?element:null},style:visuallyHiddenInputStyle})))]}}});const RadioGroupItem=defineComponent({name:"SectileRadioGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("RadioGroupItem");const part={scope:root.partContract.scope,part:root.partContract.parts["item"]??"item"};const state=computed(()=>({value:props.value,checked:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state,partContract:root.partContract});const attributes=computed(()=>getRadioGroupItemAttributes({id:props.value,checked:state.value.checked,highlighted:state.value.highlighted,disabled:state.value.disabled}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const RadioGroupIndicator=defineComponent({name:"SectileRadioGroupIndicator",inheritAttrs:false,props:{...conditionalPresenceProps,as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const item=inject(itemKey);if(item===void 0)throw new TypeError("RadioGroupIndicator must be used inside RadioGroupItem.");const part={scope:item.partContract.scope,part:item.partContract.parts["indicator"]??"indicator"};const active=computed(()=>item.state.value.checked);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(active,forcePresent);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,hidden:presence.hidden.value,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-state":item.state.value.checked?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.state.value)})}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside RadioGroupRoot.`);return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-radio-group-id]"))if(item.dataset["radioGroupId"]===id)item.focus()}export{RadioGroupIndicator,RadioGroupItem,RadioGroupRoot};
|
|
2
2
|
//# sourceMappingURL=radio-group.js.map
|
package/dist/radio-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/radio-group.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,SAAU,QAAS,WAAY,UAE5E,MACP,OACE,6BACA,4BACA,gCACK,2BACP,OAAS,qCAAgE,uBACzE,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,
|
|
1
|
+
{"version":3,"sources":["../src/radio-group.ts"],"mappings":"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","names":["value"],"file":"radio-group.js"}
|
package/dist/select.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
|
2
2
|
import { type SelectPolicies } from '@sectile/dom/select';
|
|
3
3
|
import type { PositionBoundary, PositionOptions, PositionPadding, PositionStrategy, PositionTracking } from '@sectile/dom/position';
|
|
4
4
|
import { type PrimitiveAs } from './primitive.js';
|
|
5
|
-
import { type ConditionalPresenceProps } from './
|
|
5
|
+
import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
|
|
6
6
|
export interface SelectRootProps extends Omit<PositionOptions, 'arrowPadding'> {
|
|
7
7
|
readonly items: readonly string[];
|
|
8
8
|
readonly modelValue?: string | null;
|
package/dist/select.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Teleport,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{stableIDElementToken}from"@sectile/dom/identity";import{createSelect}from"@sectile/dom/select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostId,useHostPortalTarget}from"./host-provider.js";import{usePresence}from"./internal/presence.js";import{conditionalPresenceProps,useConditionalPresenceRegistry}from"./internal/conditional-presence.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileSelectRoot");const itemKey=Symbol("SectileSelectItem");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const SelectRoot=defineComponent({name:"SectileSelectRoot",inheritAttrs:false,props:{items:{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},textValue:{type:Function,default:void 0},typeaheadTimeoutMs:{type:Number,default:700},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"},unmountOnExit:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef();const trigger=shallowRef();const popup=shallowRef();const submissionElement=shallowRef(null);const participation=useCompositeFormControl({root:()=>root.value??null,focusTarget:()=>trigger.value??root.value??null,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}]});const connection=shallowRef();const id=useHostId();const contentID=`sectile-select-${id}-content`;const itemID=value=>`${contentID}-item-${stableIDElementToken(value)}`;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const valueControlled=useControlledStateInvariant("SelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("SelectRoot","open",()=>props.open);const unmountOnExit=computed(()=>props.unmountOnExit);const position=computed(()=>props.position);const strategy=computed(()=>props.strategy);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,highlightedValue:highlighted.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 snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.choice.selection.selected[0]??null;highlighted.value=snapshot.choice.cursor.current;localOpen.value=snapshot.open;refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-select-id]").forEach(element=>{const id2=element.dataset["sectileSelectId"];if(id2!==void 0)connection.value?.setItemAttributes(element,id2,props.disabledItems.includes(id2))})};const connect=()=>{connection.value?.disconnect();if(root.value===void 0||trigger.value===void 0||popup.value===void 0)return;const requestedValue=valueControlled?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(props.items,requestedValue===null?[]:[requestedValue],highlighted.value,props.disabledItems,"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;localValue.value=value;highlighted.value=reconciled.current;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createSelect({root:root.value,trigger:trigger.value,popup:popup.value,items:props.items,disabledItems:props.disabledItems,textValue:props.textValue??(value2=>value2),typeaheadTimeoutMs:props.typeaheadTimeoutMs,position:props.position,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,manageVisibility:false,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},defaultHighlightedValue:reconciled.current,...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});refreshItems();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled||props.unmountOnExit&&!state.value.open)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,unmountOnExit,position,strategy,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id2=>id2)),contentID,itemID,disabledItems:computed(()=>new Set(props.disabledItems)),indicatorPresence,registerTrigger:element=>{trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()},registerPopup:element=>{popup.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()},registerItem:(element,id2,disabled)=>connection.value?.setItemAttributes(element,id2,disabled),activateTrigger:event=>{if(event?.defaultPrevented===true||connection.value!==void 0||props.disabled||state.value.open)return;if(!openControlled)localOpen.value=true;emit("update:open",true)},refresh:()=>connection.value?.refresh()});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.textValue,()=>props.typeaheadTimeoutMs,()=>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()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:void 0;scheduleConnect()},"data-scope":"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:submissionElement,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.items.map(id2=>h("option",{value:id2,disabled:props.disabledItems.includes(id2)},props.textValue?.(id2)??id2))])]}}});const SelectTrigger=defineComponent({name:"SectileSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0),onClick:root.activateTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"aria-controls":root.contentID,"aria-label":root.label.value,"data-scope":"select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const SelectValue=defineComponent({name:"SectileSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"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.textValue.value(root.state.value.value))})}});const SelectContent=defineComponent({name:"SectileSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.state.value.open&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)},id:root.contentID,role:"listbox",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,"aria-activedescendant":root.state.value.highlightedValue===null?void 0:root.itemID(root.state.value.highlightedValue),"data-scope":"select","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const SelectItem=defineComponent({name:"SectileSelectItem",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=useRoot("SelectItem");const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,state.value.disabled)},id:root.itemID(props.value),role:"option","aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"data-sectile-select-id":props.value,"data-scope":"select","data-part":"item","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const SelectItemIndicator=defineComponent({name:"SectileSelectItemIndicator",inheritAttrs:false,props:{...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectItemIndicator");const item=useItem("SelectItemIndicator");return()=>{const state=item.state.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.indicatorPresence.register(state.value,element),hidden:!root.indicatorPresence.isPresent(state.value,state.selected,props.forcePresent),"aria-hidden":"true","data-scope":"select","data-part":"item-indicator","data-state":state.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(state)})}}});const SelectViewport=defineComponent({name:"SectileSelectViewport",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"div"}},setup(props,{attrs,slots}){useRoot("SelectViewport");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"select","data-part":"viewport"}),slots)}});const SelectItemText=defineComponent({name:"SectileSelectItemText",inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){useItem("SelectItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"select","data-part":"item-text"}),slots)}});const SelectPortal=defineComponent({name:"SectileSelectPortal",inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useRoot("SelectPortal");const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside SelectRoot.`);return root}function useItem(part){const item=inject(itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside SelectItem.`);return item}export{SelectContent,SelectItem,SelectItemIndicator,SelectItemText,SelectPortal,SelectRoot,SelectTrigger,SelectValue,SelectViewport};
|
|
1
|
+
import{Teleport,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{stableIDElementToken}from"@sectile/dom/identity";import{createSelect}from"@sectile/dom/select";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useHostId,useHostPortalTarget}from"./host-provider.js";import{usePresence}from"./presence/presence.js";import{conditionalPresenceProps,useConditionalPresenceRegistry}from"./presence/conditional-presence.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileSelectRoot");const itemKey=Symbol("SectileSelectItem");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const SelectRoot=defineComponent({name:"SectileSelectRoot",inheritAttrs:false,props:{items:{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},textValue:{type:Function,default:void 0},typeaheadTimeoutMs:{type:Number,default:700},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"},unmountOnExit:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:open":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef();const trigger=shallowRef();const popup=shallowRef();const submissionElement=shallowRef(null);const participation=useCompositeFormControl({root:()=>root.value??null,focusTarget:()=>trigger.value??root.value??null,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}]});const connection=shallowRef();const id=useHostId();const contentID=`sectile-select-${id}-content`;const itemID=value=>`${contentID}-item-${stableIDElementToken(value)}`;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(localValue.value);const valueControlled=useControlledStateInvariant("SelectRoot","modelValue",()=>props.modelValue);const openControlled=useControlledStateInvariant("SelectRoot","open",()=>props.open);const unmountOnExit=computed(()=>props.unmountOnExit);const position=computed(()=>props.position);const strategy=computed(()=>props.strategy);const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,highlightedValue:highlighted.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 snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.choice.selection.selected[0]??null;highlighted.value=snapshot.choice.cursor.current;localOpen.value=snapshot.open;refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-select-id]").forEach(element=>{const id2=element.dataset["sectileSelectId"];if(id2!==void 0)connection.value?.setItemAttributes(element,id2,props.disabledItems.includes(id2))})};const connect=()=>{connection.value?.disconnect();if(root.value===void 0||trigger.value===void 0||popup.value===void 0)return;const requestedValue=valueControlled?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(props.items,requestedValue===null?[]:[requestedValue],highlighted.value,props.disabledItems,"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;localValue.value=value;highlighted.value=reconciled.current;if(valueControlled&&requestedValue!==value)emit("update:modelValue",value);connection.value=createSelect({root:root.value,trigger:trigger.value,popup:popup.value,items:props.items,disabledItems:props.disabledItems,textValue:props.textValue??(value2=>value2),typeaheadTimeoutMs:props.typeaheadTimeoutMs,position:props.position,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,manageVisibility:false,...props.policies===void 0?{}:{policies:props.policies},...valueControlled?{value}:{defaultValue:value},defaultHighlightedValue:reconciled.current,...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});refreshItems();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled||props.unmountOnExit&&!state.value.open)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(rootKey,{state,unmountOnExit,position,strategy,label:computed(()=>props.label),textValue:computed(()=>props.textValue??(id2=>id2)),contentID,itemID,disabledItems:computed(()=>new Set(props.disabledItems)),indicatorPresence,registerTrigger:element=>{trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()},registerPopup:element=>{popup.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()},registerItem:(element,id2,disabled)=>connection.value?.setItemAttributes(element,id2,disabled),activateTrigger:event=>{if(event?.defaultPrevented===true||connection.value!==void 0||props.disabled||state.value.open)return;if(!openControlled)localOpen.value=true;emit("update:open",true)},refresh:()=>connection.value?.refresh()});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.textValue,()=>props.typeaheadTimeoutMs,()=>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()});return()=>{const visual=h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:void 0;scheduleConnect()},"data-scope":"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:submissionElement,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.items.map(id2=>h("option",{value:id2,disabled:props.disabledItems.includes(id2)},props.textValue?.(id2)??id2))])]}}});const SelectTrigger=defineComponent({name:"SectileSelectTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLButtonElement?node:void 0),onClick:root.activateTrigger,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"listbox","aria-expanded":String(root.state.value.open),"aria-controls":root.contentID,"aria-label":root.label.value,"data-scope":"select","data-part":"trigger","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const SelectValue=defineComponent({name:"SectileSelectValue",inheritAttrs:false,props:{placeholder:{type:String,default:""},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"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.textValue.value(root.state.value.value))})}});const SelectContent=defineComponent({name:"SectileSelectContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});return()=>{if(root.unmountOnExit.value&&!present.value)return null;const exiting=!root.state.value.open&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)},id:root.contentID,role:"listbox",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,"aria-activedescendant":root.state.value.highlightedValue===null?void 0:root.itemID(root.state.value.highlightedValue),"data-scope":"select","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const SelectItem=defineComponent({name:"SectileSelectItem",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=useRoot("SelectItem");const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));provide(itemKey,{state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,state.value.disabled)},id:root.itemID(props.value),role:"option","aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"data-sectile-select-id":props.value,"data-scope":"select","data-part":"item","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const SelectItemIndicator=defineComponent({name:"SectileSelectItemIndicator",inheritAttrs:false,props:{...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("SelectItemIndicator");const item=useItem("SelectItemIndicator");return()=>{const state=item.state.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>root.indicatorPresence.register(state.value,element),hidden:!root.indicatorPresence.isPresent(state.value,state.selected,props.forcePresent),"aria-hidden":"true","data-scope":"select","data-part":"item-indicator","data-state":state.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(state)})}}});const SelectViewport=defineComponent({name:"SectileSelectViewport",inheritAttrs:false,props:{...partProps,as:{...partProps.as,default:"div"}},setup(props,{attrs,slots}){useRoot("SelectViewport");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"select","data-part":"viewport"}),slots)}});const SelectItemText=defineComponent({name:"SectileSelectItemText",inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){useItem("SelectItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"select","data-part":"item-text"}),slots)}});const SelectPortal=defineComponent({name:"SectileSelectPortal",inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useRoot("SelectPortal");const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});function useRoot(part){const root=inject(rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside SelectRoot.`);return root}function useItem(part){const item=inject(itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside SelectItem.`);return item}export{SelectContent,SelectItem,SelectItemIndicator,SelectItemText,SelectPortal,SelectRoot,SelectTrigger,SelectValue,SelectViewport};
|
|
2
2
|
//# sourceMappingURL=select.js.map
|
package/dist/select.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/select.ts"],"mappings":"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","names":["id","value"],"file":"select.js"}
|
|
1
|
+
{"version":3,"sources":["../src/select.ts"],"mappings":"AAAA,OACE,SAAU,SAAU,gBAAiB,EAAG,OAAQ,WAAY,SAAU,gBAAiB,UAAW,QAClG,WAAY,UACP,MACP,OAAS,yBAA4B,wBACrC,OAAS,iBAAgE,sBAQzE,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,0BACzC,OAAS,mCAAoC,4BAA+B,oBAC5E,OAAS,UAAW,wBAA2B,qBAC/C,OAAS,gBAAmB,yBAC5B,OACE,yBACA,mCAGK,qCACP,OAAS,6BAAgC,2BACzC,OAAS,gCAAmC,iCAkD5C,MAAM,QAAU,OAAO,mBAAmB,EAAG,MAAM,QAAU,OAAO,mBAAmB,EACvF,MAAM,UAAY,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,MAAM,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EAE3I,MAAM,WAAa,gBAAgB,CACxC,KAAM,oBAAqB,aAAc,MACzC,MAAO,CACL,MAAO,CAAE,KAAM,MAAsC,SAAU,IAAI,EAAI,WAAY,CAAE,KAAM,OAAmC,QAAS,MAAS,EAChJ,aAAc,CAAE,KAAM,OAAmC,QAAS,IAAI,EAAI,KAAM,CAAE,KAAM,QAAS,QAAS,MAAS,EAAI,YAAa,CAAE,KAAM,QAAS,QAAS,KAAK,EACnK,cAAe,CAAE,KAAM,MAAsC,QAAS,IAAM,CAAA,CAAE,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAC3H,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,MAAO,CAAE,KAAM,OAAQ,QAAS,MAAS,EAAI,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EAClI,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACrF,UAAW,CAAE,KAAM,SAA+C,QAAS,MAAS,EACpF,mBAAoB,CAAE,KAAM,OAAQ,QAAS,GAAG,EAChD,SAAU,CAAE,KAAM,QAAS,QAAS,IAAI,EACxC,KAAM,CAAE,KAAM,OAAyD,QAAS,QAAQ,EACxF,MAAO,CAAE,KAAM,OAAgD,QAAS,OAAO,EAC/E,WAAY,CAAE,KAAM,OAAQ,QAAS,CAAC,EAAI,iBAAkB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAgC,QAAS,CAAC,EAC7H,kBAAmB,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAiC,QAAS,MAAS,EAAI,gBAAiB,CAAE,KAAM,QAAS,QAAS,IAAI,EAChJ,iBAAkB,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,SAAU,CAAE,KAAM,OAAsC,QAAS,UAAU,EAChI,SAAU,CAAE,KAAM,OAAsC,QAAS,QAAQ,EACzE,cAAe,CAAE,KAAM,QAAS,QAAS,KAAK,EAC9C,SAAU,CAAE,KAAM,OAA4C,QAAS,MAAS,EAChF,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE7H,MAAO,CACL,oBAAsB,QAAmC,KACzD,cAAgB,QAA6B,KAC7C,UAAY,QAAmC,MAEjD,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAM,KAAK,EAAE,CACjC,MAAM,KAAO,WAAU,EACvB,MAAM,QAAU,WAAU,EAC1B,MAAM,MAAQ,WAAU,EACxB,MAAM,kBAAoB,WAAqC,IAAI,EACnE,MAAM,cAAgB,wBAAwB,CAC5C,KAAM,IAAM,KAAK,OAAS,KAC1B,YAAa,IAAM,QAAQ,OAAS,KAAK,OAAS,KAClD,YAAa,CAAC,CAAE,QAAS,kBAAmB,aAAc,kCAAkC,CAAE,EAC/F,EACD,MAAM,WAAa,WAAU,EAC7B,MAAM,GAAK,UAAS,EAAI,MAAM,UAAY,kBAAkB,EAAE,WAAY,MAAM,OAAU,OAA0B,GAAG,SAAS,SAAS,qBAAqB,KAAK,CAAC,GACpK,MAAM,WAAa,WAA0B,MAAM,aAAe,OAAY,MAAM,WAAa,MAAM,YAAY,EACnH,MAAM,UAAY,WAAW,MAAM,MAAQ,MAAM,WAAW,EAAG,MAAM,YAAc,WAA0B,WAAW,KAAK,EAC7H,MAAM,gBAAkB,4BAA4B,aAAc,aAAc,IAAM,MAAM,UAAU,EACtG,MAAM,eAAiB,4BAA4B,aAAc,OAAQ,IAAM,MAAM,IAAI,EACzF,MAAM,cAAgB,SAAS,IAAM,MAAM,aAAa,EACxD,MAAM,SAAW,SAAS,IAAM,MAAM,QAAQ,EAC9C,MAAM,SAAW,SAAS,IAAM,MAAM,QAAQ,EAC9C,MAAM,MAAQ,SAA8B,IAAM,OAAO,OAAO,CAC9D,MAAO,MAAM,aAAe,OAAY,MAAM,WAAa,WAAW,MACtE,iBAAkB,YAAY,MAAO,KAAM,MAAM,MAAQ,UAAU,MACnE,SAAU,MAAM,SAAU,SAAU,MAAM,SAC3C,CAAC,EACF,MAAM,cAAgB,SAA8B,IAAK,CACvD,MAAM,MAAQ,MAAM,aAAe,OAAY,MAAM,WAAa,WAAW,MAC7E,OAAO,QAAU,KAAO,IAAI,IAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CACrD,CAAC,EACD,MAAM,kBAAoB,+BAA+B,aAAa,EACtE,MAAM,QAAU,IAAW,CACzB,MAAM,SAAW,WAAW,OAAO,YAAW,EAAG,MAAO,GAAI,WAAa,OAAW,OACpF,WAAW,MAAQ,SAAS,OAAO,UAAU,SAAS,CAAC,GAAK,KAAM,YAAY,MAAQ,SAAS,OAAO,OAAO,QAAS,UAAU,MAAQ,SAAS,KACjJ,aAAY,CACd,EACA,MAAM,aAAe,IAAW,CAC9B,GAAI,MAAM,QAAU,QAAa,WAAW,QAAU,OAAW,OACjE,MAAM,MAAM,iBAA8B,0BAA0B,EAAE,QAAS,SAAW,CACxF,MAAMA,IAAK,QAAQ,QAAQ,iBAAiB,EAAG,GAAIA,MAAO,OAAW,WAAW,OAAO,kBAAkB,QAASA,IAAI,MAAM,cAAc,SAASA,GAAE,CAAC,CACxJ,CAAC,CACH,EACA,MAAM,QAAU,IAAW,CACzB,WAAW,OAAO,WAAU,EAC5B,GAAI,KAAK,QAAU,QAAa,QAAQ,QAAU,QAAa,MAAM,QAAU,OAAW,OAC1F,MAAM,eAAiB,gBAAkB,MAAM,WAA8B,WAAW,MACxF,MAAM,WAAa,yBACjB,MAAM,MACN,iBAAmB,KAAO,CAAA,EAAK,CAAC,cAAc,EAC9C,YAAY,MACZ,MAAM,cACN,SACA,CAAE,oBAAqB,IAAI,CAAE,EAE/B,MAAM,MAAQ,WAAW,SAAS,CAAC,GAAK,KACxC,WAAW,MAAQ,MACnB,YAAY,MAAQ,WAAW,QAC/B,GAAI,iBAAmB,iBAAmB,MAAO,KAAK,oBAAqB,KAAK,EAChF,WAAW,MAAQ,aAAa,CAC9B,KAAM,KAAK,MAAO,QAAS,QAAQ,MAAO,MAAO,MAAM,MAAO,MAAO,MAAM,MAAO,cAAe,MAAM,cACvG,UAAW,MAAM,YAAeC,QAAkBA,QAAQ,mBAAoB,MAAM,mBACpF,SAAU,MAAM,SAAU,KAAM,MAAM,KAAM,MAAO,MAAM,MAAO,WAAY,MAAM,WAAY,iBAAkB,MAAM,iBACtH,GAAI,MAAM,oBAAsB,OAAY,CAAA,EAAK,CAAE,kBAAmB,MAAM,iBAAiB,EAAK,gBAAiB,MAAM,gBACzH,iBAAkB,MAAM,iBAAkB,SAAU,MAAM,SAC1D,SAAU,MAAM,SAChB,iBAAkB,MAClB,GAAI,MAAM,WAAa,OAAY,CAAA,EAAK,CAAE,SAAU,MAAM,QAAQ,EAClE,GAAI,gBAAkB,CAAE,KAAK,EAAK,CAAE,aAAc,KAAK,EACvD,wBAAyB,WAAW,QACpC,GAAI,eAAiB,CAAE,KAAM,MAAM,IAAe,EAAK,CAAE,YAAa,UAAU,KAAK,EACrF,SAAU,MAAM,SAAU,SAAU,MAAM,SAAU,GAAI,MAAM,QAAU,OAAY,CAAA,EAAK,CAAE,MAAO,MAAM,KAAK,EAC7G,cAAgB,MAAQ,CAAG,WAAW,MAAQ,KAAM,KAAK,oBAAqB,IAAI,CAAG,EACrF,yBAA2B,MAAQ,CAAG,YAAY,MAAQ,KAAM,KAAK,YAAa,IAAI,CAAG,EACzF,aAAe,MAAQ,CAAG,UAAU,MAAQ,KAAM,KAAK,cAAe,IAAI,CAAG,EAAG,SAAU,QAC3F,EACD,aAAY,EAAI,QAAO,CACzB,EACA,IAAI,QAAU,MACd,IAAI,iBAAmB,MACvB,MAAM,gBAAkB,IAAW,CACjC,GAAI,CAAC,SAAW,kBAAqB,MAAM,eAAiB,CAAC,MAAM,MAAM,KAAO,OAChF,iBAAmB,KACnB,KAAK,SAAS,IAAK,CACjB,iBAAmB,MACnB,GAAI,QAAS,QAAO,CACtB,CAAC,CACH,EACA,QAAqB,QAAS,CAC5B,MAAO,cAAe,SAAU,SAAU,MAAO,SAAS,IAAM,MAAM,KAAK,EAAG,UAAW,SAAS,IAAM,MAAM,YAAeD,KAAeA,IAAG,EAAG,UAAW,OAC7J,cAAe,SAAS,IAAM,IAAI,IAAI,MAAM,aAAa,CAAC,EAC1D,kBACA,gBAAkB,SAAW,CAC3B,QAAQ,MAAQ,QAChB,GAAI,UAAY,OAAW,CACzB,WAAW,OAAO,WAAU,EAC5B,WAAW,MAAQ,MACrB,MAAO,gBAAe,CACxB,EACA,cAAgB,SAAW,CACzB,MAAM,MAAQ,QACd,GAAI,UAAY,OAAW,CACzB,WAAW,OAAO,WAAU,EAC5B,WAAW,MAAQ,MACrB,MAAO,gBAAe,CACxB,EACA,aAAc,CAAC,QAASA,IAAI,WAAa,WAAW,OAAO,kBAAkB,QAASA,IAAI,QAAQ,EAClG,gBAAkB,OAAS,CACzB,GAAI,OAAO,mBAAqB,MAAQ,WAAW,QAAU,QAAa,MAAM,UAAY,MAAM,MAAM,KAAM,OAC9G,GAAI,CAAC,eAAgB,UAAU,MAAQ,KACvC,KAAK,cAAe,IAAI,CAC1B,EACA,QAAS,IAAM,WAAW,OAAO,QAAO,EACzC,EACD,UAAU,IAAK,CAAG,QAAU,KAAM,QAAO,CAAI,CAAC,EAC9C,gBAAgB,IAAK,CAAG,QAAU,MAAO,WAAW,OAAO,WAAU,CAAI,CAAC,EAC1E,MAAM,CAAC,IAAM,MAAM,MAAO,IAAM,MAAM,cAAe,IAAM,MAAM,SAAU,IAAM,MAAM,SAAU,IAAM,MAAM,MAAO,IAAM,MAAM,UAAW,IAAM,MAAM,mBAAoB,IAAM,MAAM,SAAU,IAAM,MAAM,KAAM,IAAM,MAAM,MAAO,IAAM,MAAM,WAAY,IAAM,MAAM,iBAAkB,IAAM,MAAM,kBAAmB,IAAM,MAAM,gBAAiB,IAAM,MAAM,iBAAkB,IAAM,MAAM,SAAU,IAAM,MAAM,SAAU,IAAM,MAAM,QAAQ,EAAG,OAAO,EAChc,MAAM,CAAC,IAAM,MAAM,WAAY,IAAM,MAAM,IAAI,EAAG,IAAK,CACrD,GAAI,WAAW,QAAU,OAAW,OACpC,MAAM,OAAS,WAAW,MAAM,qBAAqB,CACnD,GAAI,gBAAkB,CAAE,MAAO,MAAM,UAA2B,EAAK,CAAA,EACrE,GAAI,eAAiB,CAAE,KAAM,MAAM,IAAe,EAAK,CAAA,EACxD,EACD,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EAAG,QAAO,CACpE,CAAC,EACD,MAAO,IAAiB,CACtB,MAAM,OAAS,EAAE,UAAW,WAAW,MAAO,CAC5C,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,WAAa,MAAiB,CAAG,KAAK,MAAQ,gBAAgB,YAAc,KAAO,OAAW,gBAAe,CAAI,EACvJ,aAAc,SAAU,YAAa,OAAQ,aAAc,MAAM,MAAM,KAAO,OAAS,UACtF,cAAc,aAAa,KAAK,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,CAAE,EACxF,GAAI,CAAC,cAAc,eAAiB,MAAM,OAAS,QAAa,MAAM,OAAS,QAAa,CAAC,MAAM,SAAU,OAAO,OACpH,MAAO,CAAC,OAAQ,EAAE,SAAU,CAC1B,IAAK,kBACL,KAAM,MAAM,KAAM,KAAM,MAAM,KAAM,SAAU,MAAM,SAAU,SAAU,MAAM,SAC9E,MAAO,MAAM,MAAM,OAAS,GAAI,SAAU,GAAI,cAAe,OAAQ,MAAO,0BAC3E,CAAC,EAAE,SAAU,CAAE,MAAO,EAAE,CAAE,EAAG,GAAG,MAAM,MAAM,IAAKA,KAAO,EAAE,SAAU,CAAE,MAAOA,IAAI,SAAU,MAAM,cAAc,SAASA,GAAE,CAAC,EAAI,MAAM,YAAYA,GAAE,GAAKA,GAAE,CAAC,CAAC,CAAC,CAAC,CACnK,CACF,EACD,EAMM,MAAM,cAAgB,gBAAgB,CAC3C,KAAM,uBAAwB,aAAc,MAC5C,MAAO,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,QAAQ,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EACzI,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAM,KAAO,QAAQ,eAAe,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAC9H,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,WAAa,MAAkB,KAAK,gBAAgB,gBAAgB,kBAAoB,KAAO,MAAS,EAC9I,QAAS,KAAK,gBACd,KAAM,MAAM,KAAO,SAAW,SAAW,OAAW,SAAU,KAAK,MAAM,MAAM,SAC/E,gBAAiB,UAAW,gBAAiB,OAAO,KAAK,MAAM,MAAM,IAAI,EAAG,gBAAiB,KAAK,UAAW,aAAc,KAAK,MAAM,MACtI,aAAc,SAAU,YAAa,UAAW,aAAc,KAAK,MAAM,MAAM,KAAO,OAAS,SAChG,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAE,CAAG,EAC/D,EAEM,MAAM,YAAc,gBAAgB,CACzC,KAAM,qBAAsB,aAAc,MAAO,MAAO,CAAE,YAAa,CAAE,KAAM,OAAQ,QAAS,EAAE,EAAI,GAAG,SAAS,EAClH,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAM,KAAO,QAAQ,aAAa,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAC5H,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,SAAU,YAAa,QAC3E,mBAAoB,KAAK,MAAM,MAAM,QAAU,KAAO,GAAK,OAC5D,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,IAAM,KAAK,MAAM,MAAM,QAAU,KAAO,MAAM,YAAc,KAAK,UAAU,MAAM,KAAK,MAAM,MAAM,KAAK,EAAE,CAAE,CAAG,EACvK,EAEM,MAAM,cAAgB,gBAAgB,CAC3C,KAAM,uBAAwB,aAAc,MAC5C,MAAO,CAAE,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EACtI,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,MAAM,KAAO,QAAQ,eAAe,EAAG,MAAM,QAAU,WAAU,EAAiB,MAAM,KAAO,SAAS,IAAM,KAAK,MAAM,MAAM,IAAI,EAAG,MAAM,QAAU,YAAY,KAAM,OAAO,EAAG,MAAM,QAAS,SAAW,CAAG,MAAM,SAAQ,EAAI,KAAK,QAAO,CAAI,EAAG,CAAE,MAAO,MAAM,CAAE,EAAG,MAAO,IAAiB,CAC/T,GAAI,KAAK,cAAc,OAAS,CAAC,QAAQ,MAAO,OAAO,KACvD,MAAM,QAAU,CAAC,KAAK,MAAM,MAAM,MAAQ,QAAQ,MAClD,OAAO,EAAE,UAAW,WAAW,MAAO,CACpC,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,WAAa,MAAiB,CAAG,MAAM,QAAU,gBAAgB,YAAc,KAAO,OAAW,QAAQ,MAAQ,QAAS,KAAK,cAAc,OAAO,CAAG,EAC7L,GAAI,KAAK,UAAW,KAAM,UAAW,OAAQ,CAAC,QAAQ,MAAO,aAAc,KAAK,MAAM,MACtF,GAAI,QAAU,CAAE,MAAO,KAAM,cAAe,MAAM,EAAK,CAAA,EACvD,MAAO,KAAK,SAAS,MACjB,CAAE,SAAU,KAAK,SAAS,MAAO,WAAY,QAAQ,QAAU,OAAY,SAAW,MAAS,EAC/F,OACJ,wBAAyB,KAAK,MAAM,MAAM,mBAAqB,KAAO,OAAY,KAAK,OAAO,KAAK,MAAM,MAAM,gBAAgB,EAC/H,aAAc,SAAU,YAAa,UAAW,aAAc,KAAK,MAAM,MAAM,KAAO,OAAS,SAChG,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,CAAC,CAAE,CAC7D,CAAG,EACJ,EAEM,MAAM,WAAa,gBAAgB,CACxC,KAAM,oBAAqB,aAAc,MACzC,MAAO,CAAE,MAAO,CAAE,KAAM,OAAQ,SAAU,IAAI,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,CAAE,EAC5N,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAQ,YAAY,EAAG,MAAM,MAAQ,SAA8B,KAAO,CACrF,MAAO,MAAM,MAAO,SAAU,KAAK,MAAM,MAAM,QAAU,MAAM,MAAO,YAAa,KAAK,MAAM,MAAM,mBAAqB,MAAM,MAC/H,SAAU,KAAK,MAAM,MAAM,UAAY,MAAM,UAAY,KAAK,cAAc,MAAM,IAAI,MAAM,KAAK,GACjG,EACF,QAAqB,QAAS,CAAE,KAAK,CAAE,EACvC,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GAAI,QAAS,MAAM,QAC7B,WAAa,MAAiB,CAAG,GAAI,gBAAgB,YAAa,KAAK,aAAa,KAAM,MAAM,MAAO,MAAM,MAAM,QAAQ,CAAG,EAC9H,GAAI,KAAK,OAAO,MAAM,KAAK,EAAG,KAAM,SAAU,gBAAiB,OAAO,MAAM,MAAM,QAAQ,EAAG,gBAAiB,MAAM,MAAM,SAAW,OAAS,OAC9I,yBAA0B,MAAM,MAAO,aAAc,SAAU,YAAa,OAC5E,gBAAiB,MAAM,MAAM,SAAW,GAAK,OAAW,mBAAoB,MAAM,MAAM,YAAc,GAAK,OAC5G,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,CAAE,CACxD,EACD,EAEM,MAAM,oBAAsB,gBAAgB,CACjD,KAAM,6BAA8B,aAAc,MAAO,MAAO,CAAE,GAAG,UAAW,GAAG,wBAAwB,EAC3G,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAQ,qBAAqB,EAC1C,MAAM,KAAO,QAAQ,qBAAqB,EAC1C,MAAO,IAAiB,CACtB,MAAM,MAAQ,KAAK,MAAM,MACzB,OAAO,EAAE,UAAW,WAAW,MAAO,CACpC,GAAI,MAAM,GACV,QAAS,MAAM,QACf,WAAa,SAAqB,KAAK,kBAAkB,SAAS,MAAM,MAAO,OAAO,EACtF,OAAQ,CAAC,KAAK,kBAAkB,UAAU,MAAM,MAAO,MAAM,SAAU,MAAM,YAAY,EACzF,cAAe,OACf,aAAc,SACd,YAAa,iBACb,aAAc,MAAM,SAAW,UAAY,YAC5C,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,CAAC,CAAE,CAClD,CACF,EACD,EAEM,MAAM,eAAiB,gBAAgB,CAC5C,KAAM,wBAAyB,aAAc,MAAO,MAAO,CAAE,GAAG,UAAW,GAAI,CAAE,GAAG,UAAU,GAAI,QAAS,KAAK,CAAE,EAClH,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,QAAQ,gBAAgB,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,SAAU,YAAa,UAAU,CAAE,EAAG,KAAK,CAAG,EACzN,EAEM,MAAM,eAAiB,gBAAgB,CAC5C,KAAM,wBAAyB,aAAc,MAAO,MAAO,UAC3D,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAAI,QAAQ,gBAAgB,EAAG,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,aAAc,SAAU,YAAa,WAAW,CAAE,EAAG,KAAK,CAAG,EAC1N,EAEM,MAAM,aAAe,gBAAgB,CAC1C,KAAM,sBACN,aAAc,MACd,MAAO,CACL,GAAI,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAqC,QAAS,MAAS,EAClF,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,MAAO,CAAE,KAAM,QAAS,QAAS,KAAK,GAExC,MAAM,MAAO,CAAE,KAAK,EAAE,CAAI,QAAQ,cAAc,EAAG,MAAM,aAAe,oBAAmB,EAAI,MAAO,IAAkB,EAAE,SAAuB,CAAE,GAAI,MAAM,IAAM,aAAa,OAAS,OAAQ,SAAU,MAAM,SAAU,MAAO,MAAM,KAAK,EAAI,MAAM,SAAS,IAAG,CAAE,CAAG,EACzQ,EAED,SAAS,QAAQ,KAAY,CAAiB,MAAM,KAAO,OAAoB,OAAO,EAAG,GAAI,OAAS,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,kCAAkC,EAAG,OAAO,IAAM,CAC9L,SAAS,QAAQ,KAAY,CAAiB,MAAM,KAAO,OAAoB,OAAO,EAAG,GAAI,OAAS,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,kCAAkC,EAAG,OAAO,IAAM","names":["id","value"],"file":"select.js"}
|
package/dist/slider.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{connectSlider,createSliderControllerFromRange,getSliderAttributes,getSliderInputAttributes}from"@sectile/dom/slider";import{Primitive}from"./primitive.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{connectSlider,createSliderControllerFromRange,getSliderAttributes,getSliderInputAttributes}from"@sectile/dom/slider";import{Primitive}from"./primitive.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{usePartContract}from"./internal/part-contract.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const sliderKey=Symbol("SectileSliderRoot");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const SliderRoot=defineComponent({name:"SectileSliderRoot",inheritAttrs:false,props:{min:{type:[Number,String],default:0},max:{type:[Number,String],default:100},step:{type:[Number,String],default:1},modelValue:{type:[Number,String],default:void 0},defaultValue:{type:[Number,String],default:0},pageStep:{type:Number,default:10},orientation:{type:String,default:"horizontal"},role:{type:String,default:"slider"},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},formatValue:{type:Function,default:void 0},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("SliderRoot","modelValue",()=>props.modelValue);const createController=value2=>{const result=createSliderControllerFromRange({min:String(props.min),max:String(props.max),step:String(props.step),page:props.pageStep,...controlled?{value:value2}:{defaultValue:value2},disabled:props.disabled,readOnly:props.readonly,onValueChange:({value:next})=>emit("update:modelValue",String(next))});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(createController(String(controlled?props.modelValue:props.defaultValue)));const snapshot=shallowRef(controller.value.getSnapshot());const rootElement=shallowRef();const track=shallowRef();const thumb=shallowRef();const submission=shallowRef();const connection=shallowRef();const refresh=()=>{snapshot.value=controller.value.getSnapshot()};watch(()=>props.modelValue,value2=>{if(!controlled||value2===void 0)return;const tick=controller.value.range.tickOf(String(value2));if(tick===null)throw new TypeError("Slider modelValue must be an exact value in the configured range.");const synced=controller.value.syncControlledValues({value:tick});if(!synced.ok)throw new TypeError(synced.error.message);snapshot.value=synced.value;connection.value?.refreshAttributes()});watch([()=>props.disabled,()=>props.readonly],()=>{const current=controller.value.range.valueAt(snapshot.value.state.tick);controller.value=createController(current);snapshot.value=controller.value.getSnapshot()});const value=computed(()=>controller.value.range.valueAt(snapshot.value.state.tick));const state=computed(()=>({value:value.value,percentage:controller.value.range.count===0?0:snapshot.value.state.tick/controller.value.range.count*100,disabled:props.disabled,readonly:props.readonly}));const orientation=computed(()=>props.orientation);const role=computed(()=>props.role);const label=computed(()=>props.label);const formatValue=computed(()=>props.formatValue);const part=usePartContract("slider","root");const participation=useCompositeFormControl({root:()=>rootElement.value??null,focusTarget:()=>thumb.value??null,submissions:[{element:()=>submission.value??null,capabilities:hiddenInputSubmissionCapabilities}]});provide(sliderKey,{controller,state,orientation,role,root:rootElement,track,thumb,connection,label,formatValue,partContract:part,refresh});return()=>{const root=h(Primitive,mergeProps(participation.controlProps.value,attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element instanceof HTMLElement?element:void 0},"data-scope":part.scope,"data-part":part.part,"data-orientation":props.orientation,"data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0,style:{"--sectile-slider-percentage":`${state.value.percentage}%`}}),{default:()=>slots["default"]?.(state.value)});if(props.name===void 0&&props.form===void 0&&!props.required&&!participation.participating)return root;return[root,h("input",mergeProps(getSliderInputAttributes(controller.value,{...props.name===void 0?{}:{name:props.name},...props.form===void 0?{}:{form:props.form},disabled:props.disabled}),{ref:element=>{submission.value=element instanceof HTMLInputElement?element:void 0},required:props.required,style:visuallyHiddenInputStyle}))]}}});const SliderTrack=defineComponent({name:"SectileSliderTrack",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useSlider("SliderTrack");const part={scope:root.partContract.scope,part:root.partContract.parts["track"]??"track"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.track.value=element instanceof HTMLElement?element:void 0},"data-scope":part.scope,"data-part":part.part,"data-orientation":root.orientation.value}),{default:()=>slots["default"]?.(root.state.value)})}});const SliderRange=defineComponent({name:"SectileSliderRange",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useSlider("SliderRange");const part={scope:root.partContract.scope,part:root.partContract.parts["range"]??"range"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-percentage":String(root.state.value.percentage),style:{"--sectile-slider-percentage":`${root.state.value.percentage}%`}}),{default:()=>slots["default"]?.(root.state.value)})}});const SliderThumb=defineComponent({name:"SectileSliderThumb",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useSlider("SliderThumb");const part={scope:root.partContract.scope,part:root.partContract.parts["thumb"]??"thumb"};const element=shallowRef();const connect=()=>{if(element.value===void 0)throw new TypeError("SliderThumb did not render an HTMLElement.");root.connection.value?.disconnect();root.connection.value=connectSlider({controller:root.controller.value,root:element.value,track:root.track.value??root.root.value??element.value,scope:part.scope,part:part.part,orientation:root.orientation.value,role:root.role.value,disabled:root.state.value.disabled,readOnly:root.state.value.readonly,...root.label.value===void 0?{}:{label:root.label.value},...root.formatValue.value===void 0?{}:{formatValue:root.formatValue.value},onUpdate:root.refresh})};onMounted(connect);onBeforeUnmount(()=>{root.connection.value?.disconnect();root.connection.value=void 0});watch(root.controller,connect);const attributes=computed(()=>getSliderAttributes(root.controller.value,{scope:part.scope,part:part.part,orientation:root.orientation.value,role:root.role.value,disabled:root.state.value.disabled,readOnly:root.state.value.readonly,...root.label.value===void 0?{}:{label:root.label.value},...root.formatValue.value===void 0?{}:{formatValue:root.formatValue.value}}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0;root.thumb.value=element.value},"data-scope":part.scope,"data-part":part.part,"data-percentage":String(root.state.value.percentage),style:{"--sectile-slider-percentage":`${root.state.value.percentage}%`}}),{default:()=>slots["default"]?.(root.state.value)})}});function useSlider(part){const root=inject(sliderKey);if(root===void 0)throw new TypeError(`${part} must be used inside SliderRoot.`);return root}export{SliderRange,SliderRoot,SliderThumb,SliderTrack};
|
|
2
2
|
//# sourceMappingURL=slider.js.map
|
package/dist/slider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/slider.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,gBAAiB,UAAW,QAAS,WAAY,UAE9F,MACP,OACE,cACA,gCACA,oBACA,6BAGK,sBACP,OAAS,cAAmC,iBAC5C,OACE,kCACA,4BACK,
|
|
1
|
+
{"version":3,"sources":["../src/slider.ts"],"mappings":"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","names":["value"],"file":"slider.js"}
|
package/dist/spin-button.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createSpinButton}from"@sectile/dom/spin-button";import{Primitive}from"./primitive.js";import{useNativeInputFormControl}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createSpinButton}from"@sectile/dom/spin-button";import{Primitive}from"./primitive.js";import{useNativeInputFormControl}from"./form/control.js";const spinButtonKey=Symbol("SectileSpinButtonRoot");const partProps={as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}};const SpinButtonRoot=defineComponent({name:"SectileSpinButtonRoot",inheritAttrs:false,props:{min:{type:[Number,String],required:true},max:{type:[Number,String],required:true},step:{type:[Number,String],default:1},pageStep:{type:Number,default:10},modelValue:{type:[Number,String],default:void 0},defaultValue:{type:[Number,String],default:void 0},draft:{type:String,default:void 0},defaultDraft:{type:String,default:null},policies:{type:Object,default:void 0},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:draft":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const valueControlled=props.modelValue!==void 0;const draftControlled=props.draft!==void 0;const connection=shallowRef();const inputElement=shallowRef();const initialValue=String(props.defaultValue??props.min);const initialDraft=props.defaultDraft;const value=shallowRef(String(props.modelValue??initialValue));const draft=shallowRef(props.draft!==void 0?props.draft:initialDraft);const revision=shallowRef(0);const noDraftProposal=Symbol("no-draft-proposal");let proposedDraft=noDraftProposal;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const state=computed(()=>({value:value.value,draft:draft.value,text:draft.value??value.value,disabled:props.disabled,readonly:props.readonly}));const min=computed(()=>String(props.min));const max=computed(()=>String(props.max));const label=computed(()=>props.label);const update=()=>{if(connection.value===void 0)return;const snapshot=connection.value.getSnapshot();revision.value=snapshot.revision;value.value=snapshot.state.value;draft.value=snapshot.state.draft};const disconnect=()=>{if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;inputComposing=false;proposedDraft=noDraftProposal;connection.value?.disconnect();connection.value=void 0;inputElement.value=void 0};const connect=input=>{const pendingDraft=proposedDraft;disconnect();proposedDraft=pendingDraft;inputElement.value=input;connection.value=createSpinButton({input,min:String(props.min),max:String(props.max),step:String(props.step),policies:{...props.policies,page:props.pageStep},...valueControlled?{value:String(props.modelValue)}:{defaultValue:value.value},...draftControlled?{draft:pendingDraft===noDraftProposal?props.draft:pendingDraft}:{defaultDraft:draft.value},disabled:props.disabled,readOnly:props.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>emit("update:modelValue",next),onDraftChange:next=>{emit("update:draft",next);if(!draftControlled)return;proposedDraft=next;const proposal=next;void nextTick(()=>{if(connection.value===void 0||proposedDraft!==proposal)return;proposedDraft=noDraftProposal;sync()})},onUpdate:update});update()};const reset=()=>{queueMicrotask(()=>{value.value=valueControlled?String(props.modelValue):initialValue;draft.value=draftControlled?props.draft:initialDraft;proposedDraft=noDraftProposal;if(inputElement.value!==void 0)connect(inputElement.value)})};const sync=()=>{const target=connection.value;if(target===void 0)return;const result=target.syncControlledValues({...valueControlled?{value:String(props.modelValue)}:{},...draftControlled?{draft:props.draft}:{}});if(!result.ok)throw new TypeError("Controlled spin button state could not be synchronized.");update()};const requestReconnect=()=>{if(inputComposing){reconnectPending=true;return}if(inputElement.value!==void 0)connect(inputElement.value)};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(inputComposing||inputElement.value===void 0)return;reconnectPending=false;connect(inputElement.value)},0)};watch([()=>props.modelValue,()=>props.draft],()=>{proposedDraft=noDraftProposal;sync()});watch([()=>props.disabled,()=>props.readonly],requestReconnect);provide(spinButtonKey,{state,min,max,label,connection,connect,disconnect,reset,setInputComposing,step:event=>{if(connection.value?.handleEvent(event))update()}});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"spin-button","data-part":"root","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0,"data-revision":String(revision.value)}),{default:()=>slots["default"]?.(state.value)})}});const SpinButtonInput=defineComponent({name:"SectileSpinButtonInput",inheritAttrs:false,props:{name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useSpinButton("SpinButtonInput");const input=shallowRef(null);const participation=useNativeInputFormControl(input,{reset:root.reset});const renderServerValue=typeof window==="undefined";onMounted(()=>{if(input.value===null)throw new TypeError("SpinButtonInput must render an input element.");root.connect(input.value)});onBeforeUnmount(root.disconnect);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{input.value=element instanceof HTMLInputElement?element:null},role:"spinbutton",type:"text",name:props.name,form:props.form,required:props.required,inputmode:"decimal",...renderServerValue?{value:root.state.value.text}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,onCompositionstart:()=>root.setInputComposing(true),onCompositionend:()=>root.setInputComposing(false),"aria-label":root.label.value,"aria-valuemin":root.min.value,"aria-valuemax":root.max.value,"aria-valuenow":root.state.value.value,"aria-disabled":String(root.state.value.disabled),"aria-readonly":String(root.state.value.readonly),"data-scope":"spin-button","data-part":"input"},participation.controlProps.value),{default:()=>slots["default"]?.(root.state.value)})}});const SpinButtonIncrement=createTrigger("Increment","increment");const SpinButtonDecrement=createTrigger("Decrement","decrement");function createTrigger(name,event){return defineComponent({name:`SectileSpinButton${name}`,inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useSpinButton(`SpinButton${name}`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled||root.state.value.readonly,"aria-label":name,"data-scope":"spin-button","data-part":event,onClick:click=>{if(!click.defaultPrevented)root.step(event)}}),{default:()=>slots["default"]?.(root.state.value)})}})}function useSpinButton(part){const context=inject(spinButtonKey);if(context===void 0)throw new TypeError(`${part} must be used inside SpinButtonRoot.`);return context}export{SpinButtonDecrement,SpinButtonIncrement,SpinButtonInput,SpinButtonRoot};
|
|
2
2
|
//# sourceMappingURL=spin-button.js.map
|
package/dist/spin-button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/spin-button.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,gBACA,UACA,QACA,WACA,UAMK,MACP,OACE,qBAGK,2BACP,OAAS,cAAmC,iBAC5C,OAAS,8BAAiC,
|
|
1
|
+
{"version":3,"sources":["../src/spin-button.ts"],"mappings":"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","names":[],"file":"spin-button.js"}
|
package/dist/switch.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{createSwitchController,getSwitchAttributes,getSwitchInputAttributes}from"@sectile/dom/switch";import{visuallyHiddenInputStyle}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,provide,shallowRef,watch}from"vue";import{createSwitchController,getSwitchAttributes,getSwitchInputAttributes}from"@sectile/dom/switch";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{Primitive}from"./primitive.js";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const switchContextKey=Symbol("SectileSwitch");const SwitchRoot=defineComponent({name:"SectileSwitchRoot",inheritAttrs:false,props:{modelValue:{type:Boolean,default:void 0},defaultValue:{type:Boolean,default:false},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},name:{type:String,default:void 0},value:{type:String,default:"on"},form:{type:String,default:void 0},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const rootElement=shallowRef(null);const inputElement=shallowRef(null);const participation=useCompositeFormControl({root:rootElement,focusTarget:rootElement,submissions:[{element:inputElement,capabilities:hiddenInputSubmissionCapabilities}]});const controlled=useControlledStateInvariant("SwitchRoot","modelValue",()=>props.modelValue);const controller=shallowRef(createController(controlled,controlled?props.modelValue:props.defaultValue,props,emit));const snapshot=shallowRef(controller.value.getSnapshot());const refresh=()=>{snapshot.value=controller.value.getSnapshot()};const rebuild=()=>{const checked=controlled?props.modelValue:snapshot.value.state.checked;controller.value=createController(controlled,checked,props,emit);refresh()};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValue(value);if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.disabled,()=>props.readonly],rebuild);const slotProps=computed(()=>Object.freeze({checked:snapshot.value.state.checked,disabled:props.disabled,readonly:props.readonly}));const attributes=computed(()=>getSwitchAttributes(snapshot.value.state,{disabled:props.disabled,readOnly:props.readonly,required:props.required,native:true}));const inputAttributes=computed(()=>getSwitchInputAttributes(snapshot.value.state,{...props.name===void 0?{}:{name:props.name},value:props.value,...props.form===void 0?{}:{form:props.form},required:props.required,disabled:props.disabled}));const dataState=computed(()=>attributes.value["data-state"]);provide(switchContextKey,{slotProps,dataState});const handleClick=event=>{if(event.defaultPrevented)return;if(controller.value.handleEvent("toggle"))refresh()};return()=>{const root=h(Primitive,mergeProps(attrs,attributes.value,{elementRef:element=>{rootElement.value=element},as:props.as,asChild:props.asChild,...props.as==="button"&&!props.asChild?{type:"button"}:{},onClick:handleClick},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("input",mergeProps(inputAttributes.value,{ref:inputElement,style:visuallyHiddenInputStyle}))]}}});const SwitchThumb=defineComponent({name:"SectileSwitchThumb",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const context=inject(switchContextKey);if(context===void 0)throw new TypeError("SwitchThumb must be used inside SwitchRoot.");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"aria-hidden":"true","data-scope":"switch","data-part":"thumb","data-state":context.dataState.value}),{default:()=>slots["default"]?.(context.slotProps.value)})}});function createController(controlled,checked,props,emit){const result=createSwitchController({...controlled?{checked}:{defaultChecked:checked},disabled:props.disabled,readOnly:props.readonly,onCheckedChange:next=>emit("update:modelValue",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value}export{SwitchRoot,SwitchThumb};
|
|
2
2
|
//# sourceMappingURL=switch.js.map
|
package/dist/switch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/switch.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,QACA,WACA,UAKK,MACP,OACE,uBACA,oBACA,6BAEK,sBACP,OAAS,6BAAgC,
|
|
1
|
+
{"version":3,"sources":["../src/switch.ts"],"mappings":"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","names":[],"file":"switch.js"}
|
package/dist/tabs.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import { type PrimitiveAs } from './primitive.js';
|
|
3
|
-
import { type ConditionalPresenceProps } from './
|
|
3
|
+
import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
|
|
4
4
|
export type TabsActivationMode = 'automatic' | 'manual';
|
|
5
5
|
export interface TabsRootProps {
|
|
6
6
|
readonly items: readonly string[];
|
package/dist/tabs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getTabsContentAttributes,getTabsListAttributes,getTabsRootAttributes,getTabsTriggerAttributes}from"@sectile/dom/tabs";import{stableIDElementToken}from"@sectile/dom/identity";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{usePartContract}from"./internal/part-contract.js";import{tabsRootContextKey,useTabsRootContext}from"./internal/tabs-context.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"./
|
|
1
|
+
import{computed,defineComponent,h,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getTabsContentAttributes,getTabsListAttributes,getTabsRootAttributes,getTabsTriggerAttributes}from"@sectile/dom/tabs";import{stableIDElementToken}from"@sectile/dom/identity";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{usePartContract}from"./internal/part-contract.js";import{tabsRootContextKey,useTabsRootContext}from"./internal/tabs-context.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 TabsRoot=defineComponent({name:"SectileTabsRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:""},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},activationMode:{type:String,default:"automatic"},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,highlight:_value=>true,activate:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const controlled=useControlledStateInvariant("TabsRoot","modelValue",()=>props.modelValue);const instanceID=useHostId();const direction=useHostDirection();const rootElement=shallowRef(null);const idMap=new Map;const ids=value2=>{const found=idMap.get(value2);if(found!==void 0)return found;const safe=stableIDElementToken(value2);const created=Object.freeze({trigger:`sectile-tabs-${instanceID}-${safe}-trigger`,content:`sectile-tabs-${instanceID}-${safe}-content`});idMap.set(value2,created);return created};const makeController=(value2,highlightedValue=value2||null)=>{const selected=value2===""?[]:[value2];const result=createListboxControllerFromItems({items:props.items,selectionMode:"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,policies:{selectionFollowsFocus:props.activationMode==="automatic"},...controlled?{value:selected}:{defaultValue:selected},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next[0]??""),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const initial=controlled?props.modelValue:props.defaultValue||props.items.find(id=>!props.disabledItems.includes(id))||"";const controller=shallowRef(makeController(initial));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected[0]??"";const reconciled=reconcileCollectionState(props.items,requested===""?[]:[requested],snapshot.value.state.cursor.current,props.disabledItems,"single");const current=reconciled.selected[0]??reconciled.current??"";controller.value=makeController(current,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&¤t!==requested)emit("update:modelValue",current)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next===""?[]:[next]});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.activationMode,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected[0]??"");const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const orientation=computed(()=>props.orientation);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>focusTrigger(root,result.snapshot.state.cursor.current));return true};const activateTarget=target=>{if(!apply(controller.value.handleEvent({type:"focus",id:target})))return false;if(!apply(controller.value.handleEvent({type:"activate",id:target})))return false;void nextTick(()=>{if(rootElement.value!==null)focusTrigger(rootElement.value,target)});return true};const part=usePartContract("tabs","root");provide(tabsRootContextKey,{value,highlighted,disabled,readonly,orientation,direction,disabledItems,items:computed(()=>props.items),partContract:part,ids,select:(id,target)=>apply(controller.value.handleEvent({type:"activate",id}),target.closest('[role="tablist"]')),keydown:event=>{if(!apply(controller.value.handleKeyboardInput(event),event.currentTarget))return;event.preventDefault()},activateTarget});const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>h(Primitive,mergeProps(attrs,getTabsRootAttributes(),{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},"data-scope":part.scope}),{default:()=>slots["default"]?.(slotProps.value)})}});const TabsList=defineComponent({name:"SectileTabsList",inheritAttrs:false,props:{label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsList");const part={scope:root.partContract.scope,part:root.partContract.parts["list"]??"list"};const attributes=computed(()=>getTabsListAttributes({orientation:root.orientation.value,direction:root.direction.value,...props.label===void 0?{}:{label:props.label},disabled:root.disabled.value,readOnly:root.readonly.value}));return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,onKeydown:root.keydown}),slots)}});const TabsTrigger=defineComponent({name:"SectileTabsTrigger",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsTrigger");const part={scope:root.partContract.scope,part:root.partContract.parts["trigger"]??"trigger"};const state=computed(()=>({value:props.value,selected:root.value.value===props.value,highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value)}));const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsTriggerAttributes({id:props.value,selected:state.value.selected,highlighted:state.value.highlighted,disabled:state.value.disabled,triggerID:ids.trigger,panelID:ids.content})});return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,"data-scope":part.scope,"data-part":part.part,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled)root.select(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});const TabsContent=defineComponent({name:"SectileTabsContent",inheritAttrs:false,props:{value:{type:String,required:true},...conditionalPresenceProps,as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsContent");const part={scope:root.partContract.scope,part:root.partContract.parts["content"]??"content"};const selected=computed(()=>root.value.value===props.value);const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(selected,forcePresent);const attributes=computed(()=>{const ids=root.ids(props.value);return getTabsContentAttributes({selected:selected.value,contentID:ids.content,triggerID:ids.trigger})});return()=>{const inactivePresent=!selected.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"}:{},"data-scope":part.scope}),{default:()=>slots["default"]?.({value:props.value,selected:selected.value})})}}});const TabsIndicator=defineComponent({name:"SectileTabsIndicator",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTabsRootContext("TabsIndicator");const part={scope:root.partContract.scope,part:root.partContract.parts["indicator"]??"indicator"};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"aria-hidden":"true","data-scope":part.scope,"data-part":part.part,"data-value":root.value.value}),{default:()=>slots["default"]?.({value:root.value.value})})}});function applyEffects(effects,emit){for(const effect of effects)if(effect.type==="dispatch-activation")emit("activate",effect.id)}function focusTrigger(root,id){if(id===null)return;const token=getTabsTriggerAttributes({id,selected:false,highlighted:false})["data-tabs-id"];for(const item of root.querySelectorAll("[data-tabs-id]")){if(item.dataset["tabsId"]===token)item.focus()}}export{TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger};
|
|
2
2
|
//# sourceMappingURL=tabs.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AllowedComponentProps, type Component, type ComponentCustomProps, type VNodeChild, type VNodeProps } from 'vue';
|
|
2
|
-
import type { VueProfileController } from './
|
|
2
|
+
import type { VueProfileController } from './controller.js';
|
|
3
3
|
export type TabularPublicProps<Props> = Props & VNodeProps & AllowedComponentProps & ComponentCustomProps;
|
|
4
4
|
export interface TabularComponent<Props, SlotProps> {
|
|
5
5
|
new (props: TabularPublicProps<Props>): {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{defineComponent,h}from"vue";function createTabularComponentSuite(parts,controller,cache,name,componentMap){const cached=cache.get(controller);if(cached!==void 0)return cached;const runtimeProvider=parts["Provider"];if(runtimeProvider===void 0)throw new TypeError(`${name} runtime Provider is unavailable.`);const Provider=defineComponent({name:`Sectile${name}Provider`,setup(_props,{slots}){return()=>h(runtimeProvider,{controller},slots)}});const selected={Provider};for(const[publicName,runtimeName]of Object.entries(componentMap)){const component=parts[runtimeName];if(component===void 0)throw new TypeError(`${name} runtime ${runtimeName} is unavailable.`);selected[publicName]=component}const suite=Object.freeze(selected);cache.set(controller,suite);return suite}export{createTabularComponentSuite};
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=components.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tabular/components.ts"],"mappings":"AAAA,OACE,gBACA,MAMK,MAsBD,SAAU,4BACd,MACA,WACA,MACA,KACA,aAA8C,CAE9C,MAAM,OAAS,MAAM,IAAI,UAAU,EACnC,GAAI,SAAW,OAAW,OAAO,OACjC,MAAM,gBAAkB,MAAM,UAAU,EACxC,GAAI,kBAAoB,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,mCAAmC,EACjG,MAAM,SAAW,gBAAgB,CAC/B,KAAM,UAAU,IAAI,WACpB,MAAM,OAAQ,CAAE,KAAK,EAAE,CACrB,MAAO,IAAkB,EAAE,gBAAiB,CAAE,UAAU,EAAI,KAAK,CACnE,EACD,EACD,MAAM,SAAsC,CAAE,QAAQ,EACtD,SAAW,CAAC,WAAY,WAAW,IAAK,OAAO,QAAQ,YAAY,EAAG,CACpE,MAAM,UAAY,MAAM,WAAW,EACnC,GAAI,YAAc,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,YAAY,WAAW,kBAAkB,EACjG,SAAS,UAAU,EAAI,SACzB,CACA,MAAM,MAAQ,OAAO,OAAO,QAAQ,EACpC,MAAM,IAAI,WAAY,KAAK,EAC3B,OAAO,KACT","names":[],"file":"components.js"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ComputedRef, type InjectionKey, type ShallowRef } from 'vue';
|
|
2
|
+
import type { TabularAcceptedViewState, TabularAccessState, TabularColumnState, TabularQuery, TabularRequestState, TabularRowSelection } from '@sectile/tabular';
|
|
3
|
+
import { type VueProfileController } from './controller.js';
|
|
4
|
+
export interface ProfileContext<State, Event, Command, Connection> {
|
|
5
|
+
readonly controller: VueProfileController<State, Event, Command>;
|
|
6
|
+
readonly snapshot: Readonly<ShallowRef<State>>;
|
|
7
|
+
readonly acceptedViewState: ComputedRef<TabularAcceptedViewState>;
|
|
8
|
+
readonly requestState: ComputedRef<TabularRequestState>;
|
|
9
|
+
readonly query: ComputedRef<TabularQuery>;
|
|
10
|
+
readonly rowSelection: ComputedRef<TabularRowSelection>;
|
|
11
|
+
readonly columnState: ComputedRef<TabularColumnState>;
|
|
12
|
+
readonly accessState: ComputedRef<TabularAccessState>;
|
|
13
|
+
readonly connection: ShallowRef<Connection | null>;
|
|
14
|
+
}
|
|
15
|
+
export declare function provideProfile<State, Event, Command, Connection>(publicKey: InjectionKey<ProfileContext<State, Event, Command, Connection>>, privateKey: InjectionKey<ProfileContext<State, Event, Command, Connection>>, controller: VueProfileController<State, Event, Command>): ProfileContext<State, Event, Command, Connection>;
|
|
16
|
+
export declare function useProfile<State, Event, Command, Connection>(key: InjectionKey<ProfileContext<State, Event, Command, Connection>>, name: string): ProfileContext<State, Event, Command, Connection>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{computed,inject,provide,shallowRef}from"vue";import{stateOf}from"./controller.js";function provideProfile(publicKey,privateKey,controller){const connection=shallowRef(null);const context=Object.freeze({controller,snapshot:controller.snapshot,acceptedViewState:controller.acceptedViewState,requestState:controller.requestState,query:computed(()=>stateOf(controller.snapshot.value).query),rowSelection:computed(()=>stateOf(controller.snapshot.value).rowSelection),columnState:computed(()=>stateOf(controller.snapshot.value).columnState),accessState:computed(()=>stateOf(controller.snapshot.value).accessState),connection});const publicContext=Object.freeze({controller:context.controller,snapshot:context.snapshot,acceptedViewState:context.acceptedViewState,requestState:context.requestState,query:context.query,rowSelection:context.rowSelection,columnState:context.columnState,accessState:context.accessState});provide(publicKey,publicContext);provide(privateKey,context);return context}function useProfile(key,name){const context=inject(key);if(context===void 0)throw new TypeError(`${name} must be used inside its matching Provider.`);return context}export{provideProfile,useProfile};
|
|
2
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/tabular/context.ts"],"mappings":"AAAA,OAAS,SAAU,OAAQ,QAAS,eAAwE,MAE5G,OAAS,YAA0C,kBAc7C,SAAU,eACd,UACA,WACA,WAAuD,CAEvD,MAAM,WAAa,WAA8B,IAAI,EACrD,MAAM,QAA6D,OAAO,OAAO,CAC/E,WACA,SAAU,WAAW,SACrB,kBAAmB,WAAW,kBAC9B,aAAc,WAAW,aACzB,MAAO,SAAS,IAAM,QAAQ,WAAW,SAAS,KAAK,EAAE,KAAK,EAC9D,aAAc,SAAS,IAAM,QAAQ,WAAW,SAAS,KAAK,EAAE,YAAY,EAC5E,YAAa,SAAS,IAAM,QAAQ,WAAW,SAAS,KAAK,EAAE,WAAW,EAC1E,YAAa,SAAS,IAAM,QAAQ,WAAW,SAAS,KAAK,EAAE,WAAW,EAC1E,WACD,EACD,MAAM,cAAgB,OAAO,OAAO,CAClC,WAAY,QAAQ,WACpB,SAAU,QAAQ,SAClB,kBAAmB,QAAQ,kBAC3B,aAAc,QAAQ,aACtB,MAAO,QAAQ,MACf,aAAc,QAAQ,aACtB,YAAa,QAAQ,YACrB,YAAa,QAAQ,YACtB,EACD,QAAQ,UAAW,aAAa,EAChC,QAAQ,WAAY,OAAO,EAC3B,OAAO,OACT,CAEM,SAAU,WACd,IACA,KAAY,CAEZ,MAAM,QAAU,OAAO,GAAG,EAC1B,GAAI,UAAY,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,6CAA6C,EACnG,OAAO,OACT","names":[],"file":"context.js"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type ComputedRef, type
|
|
2
|
-
import type { TabularAcceptedViewState, TabularAccessState, TabularColumnState, TabularControlledValues, TabularQuery,
|
|
1
|
+
import { type ComputedRef, type ShallowRef } from 'vue';
|
|
2
|
+
import type { TabularAcceptedViewState, TabularAccessState, TabularColumnState, TabularControlledValues, TabularQuery, TabularRequestState, TabularResult, TabularRowSelection, TabularSnapshot, TabularViewResponse } from '@sectile/tabular';
|
|
3
3
|
export interface SemanticController<State, Event, Command, ControlledValues extends TabularControlledValues = TabularControlledValues> {
|
|
4
4
|
getSnapshot(): State;
|
|
5
5
|
dispatch(event: Event, expectedRevision?: number): TabularResult<{
|
|
@@ -26,36 +26,6 @@ export declare function refreshVueProfileController<State, Event, Command>(contr
|
|
|
26
26
|
export declare function semanticController<State, Event, Command>(controller: VueProfileController<State, Event, Command>): SemanticController<State, Event, Command>;
|
|
27
27
|
export declare function aliasVueProfileController<State, Event, Command>(alias: VueProfileController<State, Event, Command>, source: VueProfileController<State, Event, Command>): void;
|
|
28
28
|
export declare function stateOf(value: unknown): TabularSnapshot['state'];
|
|
29
|
-
export interface ProfileContext<State, Event, Command, Connection> {
|
|
30
|
-
readonly controller: VueProfileController<State, Event, Command>;
|
|
31
|
-
readonly snapshot: Readonly<ShallowRef<State>>;
|
|
32
|
-
readonly acceptedViewState: ComputedRef<TabularAcceptedViewState>;
|
|
33
|
-
readonly requestState: ComputedRef<TabularRequestState>;
|
|
34
|
-
readonly query: ComputedRef<TabularQuery>;
|
|
35
|
-
readonly rowSelection: ComputedRef<TabularRowSelection>;
|
|
36
|
-
readonly columnState: ComputedRef<TabularColumnState>;
|
|
37
|
-
readonly accessState: ComputedRef<TabularAccessState>;
|
|
38
|
-
readonly connection: ShallowRef<Connection | null>;
|
|
39
|
-
}
|
|
40
|
-
export declare function provideProfile<State, Event, Command, Connection>(publicKey: InjectionKey<ProfileContext<State, Event, Command, Connection>>, privateKey: InjectionKey<ProfileContext<State, Event, Command, Connection>>, controller: VueProfileController<State, Event, Command>): ProfileContext<State, Event, Command, Connection>;
|
|
41
|
-
export declare function useProfile<State, Event, Command, Connection>(key: InjectionKey<ProfileContext<State, Event, Command, Connection>>, name: string): ProfileContext<State, Event, Command, Connection>;
|
|
42
|
-
export type SourceStatus = 'idle' | 'loading' | 'success' | 'error';
|
|
43
|
-
export type SourceResolver = (request: TabularRequest, context: {
|
|
44
|
-
readonly signal: AbortSignal;
|
|
45
|
-
}) => TabularViewResponse | Promise<TabularViewResponse>;
|
|
46
|
-
export interface SourceOptions {
|
|
47
|
-
readonly onError?: (error: unknown) => void;
|
|
48
|
-
readonly onStatusChange?: (status: SourceStatus) => void;
|
|
49
|
-
}
|
|
50
|
-
export interface SourceReturn<Resolver extends SourceResolver = SourceResolver> {
|
|
51
|
-
readonly status: Readonly<ShallowRef<SourceStatus>>;
|
|
52
|
-
readonly error: Readonly<ShallowRef<unknown | null>>;
|
|
53
|
-
reload(): void;
|
|
54
|
-
cancel(): void;
|
|
55
|
-
replaceResolver(resolver: Resolver): void;
|
|
56
|
-
dispose(): void;
|
|
57
|
-
}
|
|
58
|
-
export declare function useProfileSource<State, Event, Command>(controller: VueProfileController<State, Event, Command>, initialResolver: SourceResolver, options?: SourceOptions): SourceReturn;
|
|
59
29
|
export declare function controlledValues(options: {
|
|
60
30
|
readonly query?: {
|
|
61
31
|
readonly value: TabularQuery;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{computed,shallowRef}from"vue";const semantics=new WeakMap;const refreshers=new WeakMap;function createVueProfileController(semantic){const snapshot=shallowRef(semantic.getSnapshot());const refresh=()=>{snapshot.value=semantic.getSnapshot()};const controller=Object.freeze({snapshot,acceptedViewState:computed(()=>stateOf(snapshot.value).acceptedViewState),requestState:computed(()=>stateOf(snapshot.value).requestState),getSnapshot:()=>semantic.getSnapshot(),dispatch:(event,revision)=>{const result=semantic.dispatch(event,revision);if(result.ok)refresh();return result},synchronizeView:response=>{const result=semantic.synchronizeView(response);if(result.ok)refresh();return result},syncControlledValues:values=>{const result=semantic.syncControlledValues(values);if(result.ok)refresh();return result},requestView:()=>{const result=semantic.requestView();if(result.ok)refresh();return result},abandonRequest:requestID=>{const result=semantic.abandonRequest(requestID);if(result.ok)refresh();return result},subscribeCommands:listener=>semantic.subscribeCommands(listener),attachRequestExecutor:listener=>semantic.attachRequestExecutor(listener),dispose:()=>semantic.dispose()});semantics.set(controller,semantic);refreshers.set(controller,refresh);return controller}function refreshVueProfileController(controller){refreshers.get(controller)?.()}function semanticController(controller){const semantic=semantics.get(controller);if(semantic===void 0)throw new TypeError("Unknown Vue Tabular controller.");return semantic}function aliasVueProfileController(alias,source){const semantic=semantics.get(source);const refresh=refreshers.get(source);if(semantic!==void 0)semantics.set(alias,semantic);if(refresh!==void 0)refreshers.set(alias,refresh)}function stateOf(value){const candidate=value;const state=candidate.tabular?.state??candidate.state;if(state===void 0)throw new TypeError("Invalid Tabular profile snapshot.");return state}function controlledValues(options){return Object.freeze({...options.query===void 0?{}:{query:options.query.value},...options.rowSelection===void 0?{}:{rowSelection:options.rowSelection.value},...options.columnState===void 0?{}:{columnState:options.columnState.value},...options.accessState===void 0?{}:{accessState:options.accessState.value},...options.expansion===void 0?{}:{expansion:options.expansion.value}})}export{aliasVueProfileController,controlledValues,createVueProfileController,refreshVueProfileController,semanticController,stateOf};
|
|
2
|
+
//# sourceMappingURL=controller.js.map
|