@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/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{SequenceReorderItem,SequenceReorderRoot,TreeReorderItem,TreeReorderRoot}from"./reorder.js";import{HostProvider,useHostDirection,useHostId,useHostPortalTarget}from"./host-provider.js";import{AccordionContent,AccordionHeader,AccordionItem,AccordionRoot,AccordionTrigger}from"./accordion.js";import{AlertDialogClose,AlertDialogContent,AlertDialogDescription,AlertDialogOverlay,AlertDialogPortal,AlertDialogRoot,AlertDialogTitle,AlertDialogTrigger}from"./alert-dialog.js";import{CheckboxIndicator,CheckboxRoot}from"./checkbox.js";import{Primitive}from"./primitive.js";import{DisclosureContent,DisclosureRoot,DisclosureTrigger}from"./disclosure.js";import{DialogClose,DialogContent,DialogDescription,DialogOverlay,DialogPortal,DialogRoot,DialogTitle,DialogTrigger}from"./dialog.js";import{DrawerClose,DrawerContent,DrawerDescription,DrawerHandle,DrawerOverlay,DrawerPortal,DrawerRoot,DrawerTitle,DrawerTrigger}from"./drawer.js";import{PopoverAnchor,PopoverArrow,PopoverClose,PopoverContent,PopoverDescription,PopoverPortal,PopoverRoot,PopoverTitle,PopoverTrigger}from"./popover.js";import{NumberField}from"./number-field.js";import{SwitchRoot,SwitchThumb}from"./switch.js";import{ToggleButton}from"./toggle-button.js";import{ToggleGroupItem,ToggleGroupRoot}from"./toggle-group.js";import{TooltipContent,TooltipPortal,TooltipRoot,TooltipTrigger}from"./tooltip.js";import{TextField}from"./text.js";import{EditableArea,EditableCancelTrigger,EditableEditTrigger,EditableInput,EditablePreview,EditableRoot,EditableSubmitTrigger}from"./editable.js";import{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot}from"./listbox.js";import{RadioGroupIndicator,RadioGroupItem,RadioGroupRoot}from"./radio-group.js";import{RatingClear,RatingIndicator,RatingItem,RatingRoot}from"./rating.js";import{TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger}from"./tabs.js";import{SliderRange,SliderRoot,SliderThumb,SliderTrack}from"./slider.js";import{SpinButtonDecrement,SpinButtonIncrement,SpinButtonInput,SpinButtonRoot}from"./spin-button.js";import{StepperContent,StepperIndicator,StepperList,StepperNext,StepperPrevious,StepperRoot,StepperStep}from"./stepper.js";import{CheckboxGroupIndicator,CheckboxGroupItem,CheckboxGroupRoot}from"./checkbox-group.js";import{MultiThumbSliderRange,MultiThumbSliderRoot,MultiThumbSliderThumb,MultiThumbSliderTrack}from"./multi-thumb-slider.js";import{PaginationFirst,PaginationItem,PaginationLast,PaginationNext,PaginationPrevious,PaginationRoot}from"./pagination.js";import{PinInputInput,PinInputRoot}from"./pin-input.js";import{QuantityFieldInput,QuantityFieldRoot,QuantityFieldUnitSelect,QuantityFieldValue}from"./quantity-field.js";import{TagsInputClear,TagsInputInput,TagsInputItem,TagsInputItemDelete,TagsInputItemText,TagsInputRoot}from"./tags-input.js";import{WindowSplitterHandle,WindowSplitterPane,WindowSplitterRoot}from"./window-splitter.js";import{ComboboxContent,ComboboxEmpty,ComboboxInput,ComboboxItem,ComboboxRoot}from"./combobox.js";import{MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot}from"./menu.js";import{NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,NavigationMenuTrigger,NavigationMenuViewport}from"./navigation-menu.js";import{SelectContent,SelectItem,SelectItemIndicator,SelectRoot,SelectTrigger,SelectValue}from"./select.js";import{ToolbarItem,ToolbarRoot,ToolbarSeparator}from"./toolbar.js";import{CarouselIndicator,CarouselIndicatorGroup,CarouselNext,CarouselPause,CarouselPrevious,CarouselRoot,CarouselSlide,CarouselTrack,CarouselViewport}from"./carousel.js";import{FeedItem,FeedLoadEarlier,FeedLoadNewer,FeedRoot}from"./feed.js";import{ToastProvider,ToastViewport,ToastRoot,ToastTitle,ToastDescription,ToastClose,useToast}from"./toast.js";import{TimerActionTrigger,TimerArea,TimerControl,TimerItem,TimerRoot,TimerSeparator}from"./timer.js";import{CascadeListColumn,CascadeListItem,CascadeListItemChevron,CascadeListItemIndicator,CascadeListRoot,CascadeListValue}from"./cascade-list.js";import{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue}from"./cascade-select.js";import{ColorPickerAlphaSlider,ColorPickerArea,ColorPickerAreaThumb,ColorPickerChannelInput,ColorPickerControl,ColorPickerCoordinateInput,ColorPickerCoordinateSlider,ColorPickerFormatTrigger,ColorPickerHueSlider,ColorPickerLabel,ColorPickerNativeInput,ColorPickerRoot,ColorPickerSwatch,ColorPickerTextInput,ColorPickerValueText}from"./color-picker.js";import{GridCell,GridRoot,GridRow}from"./grid.js";import{TreeViewDisclosure,TreeViewGroup,TreeViewItem,TreeViewRoot}from"./tree-view.js";import{TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow}from"./tree-grid.js";import{MeterIndicator,MeterRoot,MeterTrack,MeterValueText}from"./meter.js";import{MeterGroupIndicator,MeterGroupItem,MeterGroupItemIndicator,MeterGroupItemLabel,MeterGroupItemValue,MeterGroupList,MeterGroupRoot,MeterGroupSegment,MeterGroupTrack,MeterGroupValueText}from"./meter-group.js";import{ProgressIndicator,ProgressRoot,ProgressTrack,ProgressValueText}from"./progress.js";export{AccordionContent,AccordionHeader,AccordionItem,AccordionRoot,AccordionTrigger,AlertDialogClose,AlertDialogContent,AlertDialogDescription,AlertDialogOverlay,AlertDialogPortal,AlertDialogRoot,AlertDialogTitle,AlertDialogTrigger,CarouselIndicator,CarouselIndicatorGroup,CarouselNext,CarouselPause,CarouselPrevious,CarouselRoot,CarouselSlide,CarouselTrack,CarouselViewport,CascadeListColumn,CascadeListItem,CascadeListItemChevron,CascadeListItemIndicator,CascadeListRoot,CascadeListValue,CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue,CheckboxGroupIndicator,CheckboxGroupItem,CheckboxGroupRoot,CheckboxIndicator,CheckboxRoot,ColorPickerAlphaSlider,ColorPickerArea,ColorPickerAreaThumb,ColorPickerChannelInput,ColorPickerControl,ColorPickerCoordinateInput,ColorPickerCoordinateSlider,ColorPickerFormatTrigger,ColorPickerHueSlider,ColorPickerLabel,ColorPickerNativeInput,ColorPickerRoot,ColorPickerSwatch,ColorPickerTextInput,ColorPickerValueText,ComboboxContent,ComboboxEmpty,ComboboxInput,ComboboxItem,ComboboxRoot,DialogClose,DialogContent,DialogDescription,DialogOverlay,DialogPortal,DialogRoot,DialogTitle,DialogTrigger,DisclosureContent,DisclosureRoot,DisclosureTrigger,DrawerClose,DrawerContent,DrawerDescription,DrawerHandle,DrawerOverlay,DrawerPortal,DrawerRoot,DrawerTitle,DrawerTrigger,EditableArea,EditableCancelTrigger,EditableEditTrigger,EditableInput,EditablePreview,EditableRoot,EditableSubmitTrigger,FeedItem,FeedLoadEarlier,FeedLoadNewer,FeedRoot,GridCell,GridRoot,GridRow,HostProvider,ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot,MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot,MeterGroupIndicator,MeterGroupItem,MeterGroupItemIndicator,MeterGroupItemLabel,MeterGroupItemValue,MeterGroupList,MeterGroupRoot,MeterGroupSegment,MeterGroupTrack,MeterGroupValueText,MeterIndicator,MeterRoot,MeterTrack,MeterValueText,MultiThumbSliderRange,MultiThumbSliderRoot,MultiThumbSliderThumb,MultiThumbSliderTrack,NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,NavigationMenuTrigger,NavigationMenuViewport,NumberField,PaginationFirst,PaginationItem,PaginationLast,PaginationNext,PaginationPrevious,PaginationRoot,PinInputInput,PinInputRoot,PopoverAnchor,PopoverArrow,PopoverClose,PopoverContent,PopoverDescription,PopoverPortal,PopoverRoot,PopoverTitle,PopoverTrigger,Primitive,ProgressIndicator,ProgressRoot,ProgressTrack,ProgressValueText,QuantityFieldInput,QuantityFieldRoot,QuantityFieldUnitSelect,QuantityFieldValue,RadioGroupIndicator,RadioGroupItem,RadioGroupRoot,RatingClear,RatingIndicator,RatingItem,RatingRoot,SelectContent,SelectItem,SelectItemIndicator,SelectRoot,SelectTrigger,SelectValue,SequenceReorderItem,SequenceReorderRoot,SliderRange,SliderRoot,SliderThumb,SliderTrack,SpinButtonDecrement,SpinButtonIncrement,SpinButtonInput,SpinButtonRoot,StepperContent,StepperIndicator,StepperList,StepperNext,StepperPrevious,StepperRoot,StepperStep,SwitchRoot,SwitchThumb,TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger,TagsInputClear,TagsInputInput,TagsInputItem,TagsInputItemDelete,TagsInputItemText,TagsInputRoot,TextField,TimerActionTrigger,TimerArea,TimerControl,TimerItem,TimerRoot,TimerSeparator,ToastClose,ToastDescription,ToastProvider,ToastRoot,ToastTitle,ToastViewport,ToggleButton,ToggleGroupItem,ToggleGroupRoot,ToolbarItem,ToolbarRoot,ToolbarSeparator,TooltipContent,TooltipPortal,TooltipRoot,TooltipTrigger,TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow,TreeReorderItem,TreeReorderRoot,TreeViewDisclosure,TreeViewGroup,TreeViewItem,TreeViewRoot,WindowSplitterHandle,WindowSplitterPane,WindowSplitterRoot,useHostDirection,useHostId,useHostPortalTarget,useToast};
|
|
1
|
+
import{SequenceReorderItem,SequenceReorderRoot,TreeReorderItem,TreeReorderRoot}from"./reorder.js";import{HostProvider,useHostDirection,useHostId,useHostPortalTarget}from"./host-provider.js";import{AccordionContent,AccordionHeader,AccordionItem,AccordionRoot,AccordionTrigger}from"./accordion.js";import{AlertDialogClose,AlertDialogContent,AlertDialogDescription,AlertDialogOverlay,AlertDialogPortal,AlertDialogRoot,AlertDialogTitle,AlertDialogTrigger}from"./overlay/alert-dialog.js";import{CheckboxIndicator,CheckboxRoot}from"./checkbox.js";import{Primitive}from"./primitive.js";import{DisclosureContent,DisclosureRoot,DisclosureTrigger}from"./disclosure.js";import{DialogClose,DialogContent,DialogDescription,DialogOverlay,DialogPortal,DialogRoot,DialogTitle,DialogTrigger}from"./overlay/dialog.js";import{DrawerClose,DrawerContent,DrawerDescription,DrawerHandle,DrawerOverlay,DrawerPortal,DrawerRoot,DrawerTitle,DrawerTrigger}from"./overlay/drawer.js";import{PopoverAnchor,PopoverArrow,PopoverClose,PopoverContent,PopoverDescription,PopoverPortal,PopoverRoot,PopoverTitle,PopoverTrigger}from"./overlay/popover.js";import{NumberField}from"./number-field.js";import{SwitchRoot,SwitchThumb}from"./switch.js";import{ToggleButton}from"./toggle-button.js";import{ToggleGroupItem,ToggleGroupRoot}from"./toggle-group.js";import{TooltipContent,TooltipPortal,TooltipRoot,TooltipTrigger}from"./overlay/tooltip.js";import{TextField}from"./text.js";import{EditableArea,EditableCancelTrigger,EditableEditTrigger,EditableInput,EditablePreview,EditableRoot,EditableSubmitTrigger}from"./editable.js";import{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot}from"./listbox.js";import{RadioGroupIndicator,RadioGroupItem,RadioGroupRoot}from"./radio-group.js";import{RatingClear,RatingIndicator,RatingItem,RatingRoot}from"./rating.js";import{TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger}from"./tabs.js";import{SliderRange,SliderRoot,SliderThumb,SliderTrack}from"./slider.js";import{SpinButtonDecrement,SpinButtonIncrement,SpinButtonInput,SpinButtonRoot}from"./spin-button.js";import{StepperContent,StepperIndicator,StepperList,StepperNext,StepperPrevious,StepperRoot,StepperStep}from"./stepper.js";import{CheckboxGroupIndicator,CheckboxGroupItem,CheckboxGroupRoot}from"./checkbox-group.js";import{MultiThumbSliderRange,MultiThumbSliderRoot,MultiThumbSliderThumb,MultiThumbSliderTrack}from"./multi-thumb-slider.js";import{PaginationFirst,PaginationItem,PaginationLast,PaginationNext,PaginationPrevious,PaginationRoot}from"./pagination.js";import{PinInputInput,PinInputRoot}from"./pin-input.js";import{QuantityFieldInput,QuantityFieldRoot,QuantityFieldUnitSelect,QuantityFieldValue}from"./quantity-field.js";import{TagsInputClear,TagsInputInput,TagsInputItem,TagsInputItemDelete,TagsInputItemText,TagsInputRoot}from"./tags-input.js";import{WindowSplitterHandle,WindowSplitterPane,WindowSplitterRoot}from"./window-splitter.js";import{ComboboxContent,ComboboxEmpty,ComboboxInput,ComboboxItem,ComboboxRoot}from"./combobox.js";import{MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot}from"./menu.js";import{NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,NavigationMenuTrigger,NavigationMenuViewport}from"./navigation-menu.js";import{SelectContent,SelectItem,SelectItemIndicator,SelectRoot,SelectTrigger,SelectValue}from"./select.js";import{ToolbarItem,ToolbarRoot,ToolbarSeparator}from"./toolbar.js";import{CarouselIndicator,CarouselIndicatorGroup,CarouselNext,CarouselPause,CarouselPrevious,CarouselRoot,CarouselSlide,CarouselTrack,CarouselViewport}from"./carousel.js";import{FeedItem,FeedLoadEarlier,FeedLoadNewer,FeedRoot}from"./feed.js";import{ToastProvider,ToastViewport,ToastRoot,ToastTitle,ToastDescription,ToastClose,useToast}from"./toast.js";import{TimerActionTrigger,TimerArea,TimerControl,TimerItem,TimerRoot,TimerSeparator}from"./timer.js";import{CascadeListColumn,CascadeListItem,CascadeListItemChevron,CascadeListItemIndicator,CascadeListRoot,CascadeListValue}from"./cascade-list.js";import{CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue}from"./cascade-select.js";import{ColorPickerAlphaSlider,ColorPickerArea,ColorPickerAreaThumb,ColorPickerChannelInput,ColorPickerControl,ColorPickerCoordinateInput,ColorPickerCoordinateSlider,ColorPickerFormatTrigger,ColorPickerHueSlider,ColorPickerLabel,ColorPickerNativeInput,ColorPickerRoot,ColorPickerSwatch,ColorPickerTextInput,ColorPickerValueText}from"./color-picker.js";import{GridCell,GridRoot,GridRow}from"./grid.js";import{TreeViewDisclosure,TreeViewGroup,TreeViewItem,TreeViewRoot}from"./tree-view.js";import{TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow}from"./tree-grid.js";import{MeterIndicator,MeterRoot,MeterTrack,MeterValueText}from"./meter.js";import{MeterGroupIndicator,MeterGroupItem,MeterGroupItemIndicator,MeterGroupItemLabel,MeterGroupItemValue,MeterGroupList,MeterGroupRoot,MeterGroupSegment,MeterGroupTrack,MeterGroupValueText}from"./meter-group.js";import{ProgressIndicator,ProgressRoot,ProgressTrack,ProgressValueText}from"./progress.js";export{AccordionContent,AccordionHeader,AccordionItem,AccordionRoot,AccordionTrigger,AlertDialogClose,AlertDialogContent,AlertDialogDescription,AlertDialogOverlay,AlertDialogPortal,AlertDialogRoot,AlertDialogTitle,AlertDialogTrigger,CarouselIndicator,CarouselIndicatorGroup,CarouselNext,CarouselPause,CarouselPrevious,CarouselRoot,CarouselSlide,CarouselTrack,CarouselViewport,CascadeListColumn,CascadeListItem,CascadeListItemChevron,CascadeListItemIndicator,CascadeListRoot,CascadeListValue,CascadeSelectColumn,CascadeSelectContent,CascadeSelectItem,CascadeSelectItemChevron,CascadeSelectItemIndicator,CascadeSelectRoot,CascadeSelectTrigger,CascadeSelectValue,CheckboxGroupIndicator,CheckboxGroupItem,CheckboxGroupRoot,CheckboxIndicator,CheckboxRoot,ColorPickerAlphaSlider,ColorPickerArea,ColorPickerAreaThumb,ColorPickerChannelInput,ColorPickerControl,ColorPickerCoordinateInput,ColorPickerCoordinateSlider,ColorPickerFormatTrigger,ColorPickerHueSlider,ColorPickerLabel,ColorPickerNativeInput,ColorPickerRoot,ColorPickerSwatch,ColorPickerTextInput,ColorPickerValueText,ComboboxContent,ComboboxEmpty,ComboboxInput,ComboboxItem,ComboboxRoot,DialogClose,DialogContent,DialogDescription,DialogOverlay,DialogPortal,DialogRoot,DialogTitle,DialogTrigger,DisclosureContent,DisclosureRoot,DisclosureTrigger,DrawerClose,DrawerContent,DrawerDescription,DrawerHandle,DrawerOverlay,DrawerPortal,DrawerRoot,DrawerTitle,DrawerTrigger,EditableArea,EditableCancelTrigger,EditableEditTrigger,EditableInput,EditablePreview,EditableRoot,EditableSubmitTrigger,FeedItem,FeedLoadEarlier,FeedLoadNewer,FeedRoot,GridCell,GridRoot,GridRow,HostProvider,ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot,MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot,MeterGroupIndicator,MeterGroupItem,MeterGroupItemIndicator,MeterGroupItemLabel,MeterGroupItemValue,MeterGroupList,MeterGroupRoot,MeterGroupSegment,MeterGroupTrack,MeterGroupValueText,MeterIndicator,MeterRoot,MeterTrack,MeterValueText,MultiThumbSliderRange,MultiThumbSliderRoot,MultiThumbSliderThumb,MultiThumbSliderTrack,NavigationMenuContent,NavigationMenuIndicator,NavigationMenuItem,NavigationMenuLink,NavigationMenuList,NavigationMenuRoot,NavigationMenuTrigger,NavigationMenuViewport,NumberField,PaginationFirst,PaginationItem,PaginationLast,PaginationNext,PaginationPrevious,PaginationRoot,PinInputInput,PinInputRoot,PopoverAnchor,PopoverArrow,PopoverClose,PopoverContent,PopoverDescription,PopoverPortal,PopoverRoot,PopoverTitle,PopoverTrigger,Primitive,ProgressIndicator,ProgressRoot,ProgressTrack,ProgressValueText,QuantityFieldInput,QuantityFieldRoot,QuantityFieldUnitSelect,QuantityFieldValue,RadioGroupIndicator,RadioGroupItem,RadioGroupRoot,RatingClear,RatingIndicator,RatingItem,RatingRoot,SelectContent,SelectItem,SelectItemIndicator,SelectRoot,SelectTrigger,SelectValue,SequenceReorderItem,SequenceReorderRoot,SliderRange,SliderRoot,SliderThumb,SliderTrack,SpinButtonDecrement,SpinButtonIncrement,SpinButtonInput,SpinButtonRoot,StepperContent,StepperIndicator,StepperList,StepperNext,StepperPrevious,StepperRoot,StepperStep,SwitchRoot,SwitchThumb,TabsContent,TabsIndicator,TabsList,TabsRoot,TabsTrigger,TagsInputClear,TagsInputInput,TagsInputItem,TagsInputItemDelete,TagsInputItemText,TagsInputRoot,TextField,TimerActionTrigger,TimerArea,TimerControl,TimerItem,TimerRoot,TimerSeparator,ToastClose,ToastDescription,ToastProvider,ToastRoot,ToastTitle,ToastViewport,ToggleButton,ToggleGroupItem,ToggleGroupRoot,ToolbarItem,ToolbarRoot,ToolbarSeparator,TooltipContent,TooltipPortal,TooltipRoot,TooltipTrigger,TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow,TreeReorderItem,TreeReorderRoot,TreeViewDisclosure,TreeViewGroup,TreeViewItem,TreeViewRoot,WindowSplitterHandle,WindowSplitterPane,WindowSplitterRoot,useHostDirection,useHostId,useHostPortalTarget,useToast};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"mappings":"AAAA,OACE,oBACA,oBACA,gBACA,oBASK,eAEP,OACE,aACA,iBACA,UACA,wBAKK,qBACP,OACE,iBACA,gBACA,cACA,cACA,qBAQK,iBACP,OACE,iBACA,mBACA,uBACA,mBACA,kBACA,gBACA,iBACA,uBAMK,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"mappings":"AAAA,OACE,oBACA,oBACA,gBACA,oBASK,eAEP,OACE,aACA,iBACA,UACA,wBAKK,qBACP,OACE,iBACA,gBACA,cACA,cACA,qBAQK,iBACP,OACE,iBACA,mBACA,uBACA,mBACA,kBACA,gBACA,iBACA,uBAMK,4BACP,OACE,kBACA,iBAKK,gBACP,OAAS,cAAwD,iBACjE,OACE,kBACA,eACA,sBAKK,kBACP,OACE,YACA,cACA,kBACA,cACA,aACA,WACA,YACA,kBAMK,sBACP,OACE,YACA,cACA,kBACA,aACA,cACA,aACA,WACA,YACA,kBAOK,sBACP,OACE,cACA,aACA,aACA,eACA,mBACA,cACA,YACA,aACA,mBAMK,uBAEP,OAAS,gBAA0C,oBACnD,OACE,WACA,gBAIK,cACP,OACE,iBAGK,qBACP,OACE,gBACA,oBAKK,oBACP,OACE,eACA,cACA,YACA,mBAKK,uBACP,OACE,cAGK,YACP,OACE,aACA,sBACA,oBACA,cACA,gBACA,aACA,0BAIK,gBACP,OACE,YACA,qBACA,gBACA,gBAQK,eACP,OACE,oBACA,eACA,mBAMK,mBACP,OACE,YACA,gBACA,WACA,eAIK,cACP,OACE,YACA,cACA,SACA,SACA,gBAUK,YACP,OACE,YACA,WACA,YACA,gBAIK,cACP,OACE,oBACA,oBACA,gBACA,mBAKK,mBACP,OACE,eACA,iBACA,YACA,YACA,gBACA,YACA,gBAIK,eACP,OACE,uBACA,kBACA,sBAIK,sBACP,OACE,sBACA,qBACA,sBACA,0BAMK,0BACP,OACE,gBACA,eACA,eACA,eACA,mBACA,mBAKK,kBACP,OACE,cACA,iBAKK,iBACP,OACE,mBACA,kBACA,wBACA,uBAKK,sBACP,OACE,eACA,eACA,cACA,oBACA,kBACA,kBAMK,kBACP,OACE,qBACA,mBACA,uBAGK,uBACP,OACE,gBACA,cACA,cACA,aACA,iBAMK,gBACP,OACE,kBACA,eACA,kBACA,SACA,SACA,cACA,eACA,gBAQK,YACP,OACE,sBACA,wBACA,mBACA,mBACA,mBACA,mBACA,sBACA,2BAMK,uBACP,OACE,cACA,WACA,oBACA,WACA,cACA,gBAMK,cACP,OACE,YACA,YACA,qBAMK,eACP,OACE,kBACA,uBACA,aACA,cACA,iBACA,aACA,cACA,cACA,qBAKK,gBACP,OACE,SACA,gBACA,cACA,aAKK,YACP,OAAS,cAAe,cAAe,UAAW,WAAY,iBAAkB,WAAY,aAA8J,aAC1P,OAAS,mBAAoB,UAAW,aAAc,UAAW,UAAW,mBAAqF,aACjK,OAAS,kBAAmB,gBAAiB,uBAAwB,yBAA0B,gBAAiB,qBAAqO,oBACrV,OAAS,oBAAqB,qBAAsB,kBAAmB,yBAA0B,2BAA4B,kBAAmB,qBAAsB,uBAAqP,sBAC3Z,OAAS,uBAAwB,gBAAiB,qBAAsB,wBAAyB,mBAAoB,2BAA4B,4BAA6B,yBAA0B,qBAAsB,iBAAkB,uBAAwB,gBAAiB,kBAAmB,qBAAsB,yBAAqQ,oBACvkB,OACE,SACA,SACA,YAKK,YACP,OACE,mBACA,cACA,aACA,iBAOK,iBACP,OACE,aACA,mBACA,eACA,aACA,gBAMK,iBAqNP,OACE,eACA,UACA,WACA,mBAKK,aACP,OACE,oBACA,eACA,wBACA,oBACA,oBACA,eACA,eACA,kBACA,gBACA,wBAWK,mBACP,OACE,kBACA,aACA,cACA,sBAKK","names":[],"file":"index.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/input/decimal-input.ts"],"mappings":"AAAM,SAAU,sBAAsB,MAAsB,CAC1D,GAAI,OAAO,QAAU,SAAU,OAAO,MACtC,GAAI,CAAC,OAAO,SAAS,KAAK,EAAG,MAAM,IAAI,UAAU,sCAAsC,EACvF,OAAO,eAAe,OAAO,KAAK,CAAC,CACrC,CAEA,SAAS,eAAe,MAAa,CACnC,MAAM,MAAQ,4CAA4C,KAAK,KAAK,EACpE,GAAI,QAAU,KAAM,OAAO,MAC3B,MAAM,KAAO,MAAM,CAAC,IAAM,IAAM,IAAM,GACtC,MAAM,QAAU,MAAM,CAAC,GAAK,IAC5B,MAAM,SAAW,MAAM,CAAC,GAAK,GAC7B,MAAM,SAAW,OAAO,MAAM,CAAC,CAAC,EAChC,MAAM,OAAS,GAAG,OAAO,GAAG,QAAQ,GACpC,MAAM,aAAe,QAAQ,OAAS,SACtC,GAAI,cAAgB,EAAG,MAAO,GAAG,IAAI,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,MAAM,GAC5E,GAAI,cAAgB,OAAO,OAAQ,MAAO,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,OAAO,aAAe,OAAO,MAAM,CAAC,GACrG,MAAO,GAAG,IAAI,GAAG,OAAO,MAAM,EAAG,YAAY,CAAC,IAAI,OAAO,MAAM,YAAY,CAAC,EAC9E","names":[],"file":"decimal-input.js"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineComponent,h,mergeProps,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{useNativeInputFormControl}from"../form/control.js";import{useControlledStateInvariant}from"../internal/controlled-state.js";import{captureNativeTextState}from"./native-text-state.js";function createNativeFieldComponent(config){return defineComponent({name:config.name,inheritAttrs:false,props:{modelValue:{type:config.valueType,default:void 0},defaultValue:{type:config.valueType,default:null},policies:{type:Object,default:void 0},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},required:{type:Boolean,default:false},label:{type:String,default:void 0},native:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const input=shallowRef();const participation=useNativeInputFormControl(input);let connection;const controlled=useControlledStateInvariant(config.name,"modelValue",()=>props.modelValue);let acceptedValue=controlled?props.modelValue:void 0;const initialProjectedValue=controlled?props.modelValue:props.defaultValue;const projectedText=shallowRef(initialProjectedValue===null||initialProjectedValue===void 0?"":config.formatValue(initialProjectedValue));const projectOptions=()=>({native:props.native,disabled:props.disabled,readonly:props.readonly,required:props.required});const projected=shallowRef(projectOptions());let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const capture=()=>{const target=connection;const element=input.value;if(target===void 0||element===void 0)return void 0;return{value:target.getValue(),inputState:captureNativeTextState(element,target.getText())}};const connect=preserved=>{const element=input.value;if(element===void 0)return;connection?.disconnect();projected.value=projectOptions();const fieldOptions={input:element,disabled:props.disabled,readOnly:props.readonly,required:props.required,native:props.native,onValueChange:value=>{emit("update:modelValue",value)},onUpdate:()=>{const target=connection;if(target===void 0)return;projectedText.value=target.getText()}};if(props.policies!==void 0)fieldOptions.policies=props.policies;if(controlled)fieldOptions.value=acceptedValue;else fieldOptions.defaultValue=preserved===void 0?props.defaultValue:preserved.value;if(preserved!==void 0)fieldOptions.defaultInputState=preserved.inputState;if(props.label!==void 0)fieldOptions.label=props.label;connection=config.create(fieldOptions);projectedText.value=connection.getText()};const requestConnect=()=>{if(inputComposing){reconnectPending=true;return}connect(capture())};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(inputComposing)return;reconnectPending=false;connect(capture())},0)};onMounted(()=>connect());onBeforeUnmount(()=>{if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection?.disconnect()});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===void 0)return;const result=connection.syncControlledValues({value});if(!result.ok)throw new TypeError("Controlled native field synchronization failed.");acceptedValue=value;projectedText.value=connection.getText()});watch([()=>props.policies,()=>props.disabled,()=>props.readonly,()=>props.required,()=>props.label,()=>props.native],requestConnect);const setInput=element=>{input.value=element instanceof HTMLInputElement?element:void 0};return()=>h("input",mergeProps(attrs,{ref:setInput,"data-scope":config.scope,"data-part":"input",type:projected.value.native&&config.nativeInputType!==void 0?config.nativeInputType:"text",inputmode:projected.value.native?void 0:config.inputMode,placeholder:projected.value.native?void 0:config.placeholder,disabled:projected.value.disabled,readonly:projected.value.readonly,required:projected.value.required,"aria-disabled":String(projected.value.disabled),"aria-readonly":String(projected.value.readonly),"aria-label":props.label,onCompositionstart:()=>setInputComposing(true),onCompositionend:()=>setInputComposing(false),value:projectedText.value},participation.controlProps.value))}})}export{createNativeFieldComponent};
|
|
2
|
+
//# sourceMappingURL=native-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/input/native-field.ts"],"mappings":"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","names":[],"file":"native-field.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/input/native-input.ts"],"mappings":"AAAO,MAAM,yBAA2B,OAAO,OAAO,CACpD,SAAU,WACV,MAAO,MACP,OAAQ,MACR,OAAQ,IACR,QAAS,IACT,cAAe,OAChB","names":[],"file":"native-input.js"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { type SetupContext, type SlotsType, type VNodeChild } from 'vue';
|
|
2
|
+
import type { TextEditingState } from '@sectile/core/text';
|
|
3
|
+
import { type PrimitiveAs } from '../primitive.js';
|
|
4
|
+
interface RangeFieldState<Value> {
|
|
5
|
+
readonly value: Value | null;
|
|
6
|
+
readonly start: {
|
|
7
|
+
readonly inputState: TextEditingState;
|
|
8
|
+
};
|
|
9
|
+
readonly end: {
|
|
10
|
+
readonly inputState: TextEditingState;
|
|
11
|
+
};
|
|
12
|
+
readonly active: 'start' | 'end';
|
|
13
|
+
}
|
|
14
|
+
interface RangeFieldSlotProps<Value> {
|
|
15
|
+
readonly value: Value | null;
|
|
16
|
+
readonly startText: string;
|
|
17
|
+
readonly endText: string;
|
|
18
|
+
readonly active: 'start' | 'end';
|
|
19
|
+
readonly disabled: boolean;
|
|
20
|
+
readonly readonly: boolean;
|
|
21
|
+
}
|
|
22
|
+
interface RangeFieldProps<Value, Policies> {
|
|
23
|
+
readonly modelValue: Value | null | undefined;
|
|
24
|
+
readonly defaultValue: Value | null;
|
|
25
|
+
readonly policies: Policies | undefined;
|
|
26
|
+
readonly disabled: boolean;
|
|
27
|
+
readonly readonly: boolean;
|
|
28
|
+
readonly required: boolean;
|
|
29
|
+
readonly startLabel: string | undefined;
|
|
30
|
+
readonly endLabel: string | undefined;
|
|
31
|
+
readonly as: PrimitiveAs;
|
|
32
|
+
readonly asChild: boolean;
|
|
33
|
+
}
|
|
34
|
+
interface RangeFieldOptions<Value, Policies> {
|
|
35
|
+
readonly startInput: HTMLInputElement;
|
|
36
|
+
readonly endInput: HTMLInputElement;
|
|
37
|
+
readonly value?: Value | null;
|
|
38
|
+
readonly defaultValue?: Value | null;
|
|
39
|
+
readonly defaultStartInputState?: TextEditingState;
|
|
40
|
+
readonly defaultEndInputState?: TextEditingState;
|
|
41
|
+
readonly policies?: Policies;
|
|
42
|
+
readonly disabled: boolean;
|
|
43
|
+
readonly readOnly: boolean;
|
|
44
|
+
readonly required: boolean;
|
|
45
|
+
readonly startLabel?: string;
|
|
46
|
+
readonly endLabel?: string;
|
|
47
|
+
onValueChange(value: Value | null): void;
|
|
48
|
+
onUpdate(): void;
|
|
49
|
+
}
|
|
50
|
+
type RangeResult<State> = {
|
|
51
|
+
readonly ok: true;
|
|
52
|
+
readonly value: State;
|
|
53
|
+
} | {
|
|
54
|
+
readonly ok: false;
|
|
55
|
+
readonly error: {
|
|
56
|
+
readonly message: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
interface RangeFieldConnection<Value, State> {
|
|
60
|
+
getSnapshot(): {
|
|
61
|
+
readonly state: State;
|
|
62
|
+
};
|
|
63
|
+
syncControlledValues(values: {
|
|
64
|
+
readonly value: Value | null;
|
|
65
|
+
}): RangeResult<{
|
|
66
|
+
readonly state: State;
|
|
67
|
+
}>;
|
|
68
|
+
disconnect(): void;
|
|
69
|
+
}
|
|
70
|
+
export interface NativeRangeFieldConfig<Value, Policies, State extends RangeFieldState<Value>> {
|
|
71
|
+
readonly name: string;
|
|
72
|
+
readonly scope: string;
|
|
73
|
+
readonly contextKey: symbol;
|
|
74
|
+
readonly reset?: boolean;
|
|
75
|
+
initial(options: {
|
|
76
|
+
readonly value: Value | null;
|
|
77
|
+
}): RangeResult<State>;
|
|
78
|
+
create(options: RangeFieldOptions<Value, Policies>): RangeFieldConnection<Value, State>;
|
|
79
|
+
}
|
|
80
|
+
export declare function setupNativeRangeField<Value, Policies, State extends RangeFieldState<Value>>(config: NativeRangeFieldConfig<Value, Policies, State>, props: RangeFieldProps<Value, Policies>, { attrs, emit, slots }: SetupContext<{
|
|
81
|
+
'update:modelValue': (value: Value | null) => boolean;
|
|
82
|
+
}, SlotsType<{
|
|
83
|
+
default: (props: RangeFieldSlotProps<Value>) => VNodeChild;
|
|
84
|
+
}>>): () => VNodeChild;
|
|
85
|
+
export declare function createNativeRangeFieldInput(contextKey: symbol, scope: string, placeholder: string, endpoint: 'start' | 'end', name: string, rootName: string): import("vue").DefineComponent<{}, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
86
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{hiddenInputSubmissionCapabilities,useCompositeFormControl}from"../form/control.js";import{Primitive}from"../primitive.js";import{useControlledStateInvariant}from"../internal/controlled-state.js";import{useNextTickTask}from"../internal/scheduled-task.js";import{captureNativeTextState}from"./native-text-state.js";function setupNativeRangeField(config,props,{attrs,emit,slots}){const controlled=useControlledStateInvariant(config.name,"modelValue",()=>props.modelValue);const initial=config.initial({value:controlled?props.modelValue:props.defaultValue});if(!initial.ok)throw new TypeError(initial.error.message);const snapshot=shallowRef(initial.value);const startInput=shallowRef(null);const endInput=shallowRef(null);const root=shallowRef(null);let mounted=false;let connection=null;const participation=useCompositeFormControl({root,focusTarget:startInput,submissions:()=>[{element:startInput,relativeName:"start",capabilities:hiddenInputSubmissionCapabilities},{element:endInput,relativeName:"end",capabilities:hiddenInputSubmissionCapabilities}],...config.reset?{reset:()=>queueMicrotask(()=>{if(!controlled)snapshot.value=initial.value;mount()})}:{}});const refresh=()=>{if(connection!==null)snapshot.value=connection.getSnapshot().state};const mount=(preserveNative=false)=>{if(!mounted||startInput.value===null||endInput.value===null)return;const startState=preserveNative&&connection!==null?captureNativeTextState(startInput.value,snapshot.value.start.inputState.snapshot.text):void 0;const endState=preserveNative&&connection!==null?captureNativeTextState(endInput.value,snapshot.value.end.inputState.snapshot.text):void 0;connection?.disconnect();const fieldOptions={startInput:startInput.value,endInput:endInput.value,disabled:props.disabled,readOnly:props.readonly,required:props.required,onValueChange:value=>emit("update:modelValue",value),onUpdate:refresh};if(controlled)fieldOptions.value=props.modelValue;else fieldOptions.defaultValue=snapshot.value.value;if(startState!==void 0)fieldOptions.defaultStartInputState=startState;if(endState!==void 0)fieldOptions.defaultEndInputState=endState;const{policies,startLabel,endLabel}=props;if(policies!==void 0)fieldOptions.policies=policies;if(startLabel!==void 0)fieldOptions.startLabel=startLabel;if(endLabel!==void 0)fieldOptions.endLabel=endLabel;connection=config.create(fieldOptions);refresh()};const mountTask=useNextTickTask(()=>mount(true));let composingInputs=0;let reconnectPending=false;let reconnectTimer=null;const requestMount=()=>{if(composingInputs!==0){reconnectPending=true;return}mountTask.schedule()};const setInputComposing=(endpoint,composing)=>{const bit=endpoint==="start"?1:2;if(composing)composingInputs|=bit;else composingInputs&=~bit;if(composingInputs!==0||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||composingInputs!==0)return;reconnectPending=false;mountTask.schedule()},0)};onMounted(()=>{mounted=true;mount()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;composingInputs=0;mountTask.cancel();connection?.disconnect();connection=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;const result=connection.syncControlledValues({value});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value.state});watch([()=>props.policies,()=>props.disabled,()=>props.readonly,()=>props.required,()=>props.startLabel,()=>props.endLabel],requestMount);const slotProps=computed(()=>Object.freeze({value:snapshot.value.value,startText:snapshot.value.start.inputState.snapshot.text,endText:snapshot.value.end.inputState.snapshot.text,active:snapshot.value.active,disabled:props.disabled,readonly:props.readonly}));provide(config.contextKey,{slotProps,startInput,endInput,setInputComposing});return()=>h(Primitive,mergeProps(participation.controlProps.value,attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=element},role:"group","data-scope":config.scope,"data-part":"root","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0}),{default:()=>slots["default"]?.(slotProps.value)})}function createNativeRangeFieldInput(contextKey,scope,placeholder,endpoint,name,rootName){return defineComponent({name,inheritAttrs:false,setup(_props,{attrs}){const context=inject(contextKey);if(context===void 0)throw new TypeError(`${name} must be used inside ${rootName}.`);return()=>h("input",mergeProps(attrs,{ref:element=>{context[endpoint==="start"?"startInput":"endInput"].value=element},type:"text",inputmode:"numeric",placeholder,value:endpoint==="start"?context.slotProps.value.startText:context.slotProps.value.endText,disabled:context.slotProps.value.disabled,readonly:context.slotProps.value.readonly,onCompositionstart:()=>context.setInputComposing(endpoint,true),onCompositionend:()=>context.setInputComposing(endpoint,false),"aria-disabled":String(context.slotProps.value.disabled),"aria-readonly":String(context.slotProps.value.readonly),"data-scope":scope,"data-part":`${endpoint}-input`,"data-active":context.slotProps.value.active===endpoint?"":void 0}))}})}export{createNativeRangeFieldInput,setupNativeRangeField};
|
|
2
|
+
//# sourceMappingURL=native-range-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/input/native-range-field.ts"],"mappings":"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","names":[],"file":"native-range-field.js"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{tryCreateTextEditingState}from"@sectile/core/text";function captureNativeTextState(element,fallbackText){const text=element.value;const start=element.selectionStart;const end=element.selectionEnd;const selection=start===null||end===null?{anchorCodeUnitOffset:text.length,focusCodeUnitOffset:text.length}:element.selectionDirection==="backward"?{anchorCodeUnitOffset:end,focusCodeUnitOffset:start}:{anchorCodeUnitOffset:start,focusCodeUnitOffset:end};const state=tryCreateTextEditingState(text,selection);if(state.ok)return state.value;const fallback=tryCreateTextEditingState(fallbackText,{anchorCodeUnitOffset:fallbackText.length,focusCodeUnitOffset:fallbackText.length});if(!fallback.ok)throw new TypeError("Native text fallback state is invalid.");return fallback.value}export{captureNativeTextState};
|
|
2
|
+
//# sourceMappingURL=native-text-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/input/native-text-state.ts"],"mappings":"AAAA,OAAS,8BAAwD,qBAE3D,SAAU,uBACd,QACA,aAAoB,CAEpB,MAAM,KAAO,QAAQ,MACrB,MAAM,MAAQ,QAAQ,eACtB,MAAM,IAAM,QAAQ,aACpB,MAAM,UAAY,QAAU,MAAQ,MAAQ,KACxC,CAAE,qBAAsB,KAAK,OAAQ,oBAAqB,KAAK,MAAM,EACrE,QAAQ,qBAAuB,WAC7B,CAAE,qBAAsB,IAAK,oBAAqB,KAAK,EACvD,CAAE,qBAAsB,MAAO,oBAAqB,GAAG,EAC7D,MAAM,MAAQ,0BAA0B,KAAM,SAAS,EACvD,GAAI,MAAM,GAAI,OAAO,MAAM,MAC3B,MAAM,SAAW,0BAA0B,aAAc,CACvD,qBAAsB,aAAa,OACnC,oBAAqB,aAAa,OACnC,EACD,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,UAAU,wCAAwC,EAC9E,OAAO,SAAS,KAClB","names":[],"file":"native-text-state.js"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type ComputedRef, type InjectionKey, type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import { type TreeNodeInput } from '@sectile/core/tree';
|
|
3
3
|
import { type PrimitiveAs } from '../primitive.js';
|
|
4
|
-
import { type ConditionalPresenceProps, type ConditionalPresenceRegistry } from '
|
|
4
|
+
import { type ConditionalPresenceProps, type ConditionalPresenceRegistry } from '../presence/conditional-presence.js';
|
|
5
5
|
export interface CascadeChoiceRootState {
|
|
6
6
|
readonly value: string | null;
|
|
7
7
|
readonly valuePath: readonly string[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,provide}from"vue";import{tryCreateTree}from"@sectile/core/tree";import{Primitive}from"../primitive.js";import{collectionBranchIDs}from"./collection.js";import{conditionalPresenceProps}from"
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,provide}from"vue";import{tryCreateTree}from"@sectile/core/tree";import{Primitive}from"../primitive.js";import{collectionBranchIDs}from"./collection.js";import{conditionalPresenceProps}from"../presence/conditional-presence.js";const cascadeChoicePartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};function createCascadeChoiceParts(options){const useRoot=part=>{const root=inject(options.rootKey);if(root===void 0)throw new TypeError(`${part} must be used inside ${options.componentName}Root.`);return root};const useItem=part=>{const item=inject(options.itemKey);if(item===void 0)throw new TypeError(`${part} must be used inside ${options.componentName}Item.`);return item};const Column=defineComponent({name:`Sectile${options.componentName}Column`,inheritAttrs:false,props:{depth:{type:Number,required:true},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=useRoot(`${options.componentName}Column`);const state=computed(()=>({depth:props.depth,items:root.state.value.columns[props.depth]??[],parentValue:props.depth===0?null:root.state.value.path[props.depth-1]??null}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerColumn(node,props.depth,props.label)},role:"listbox","aria-label":props.label??root.label.value,"aria-orientation":"vertical",hidden:state.value.items.length===0,"data-scope":options.scope,"data-part":"column","data-depth":String(props.depth)}),{default:()=>slots["default"]?.(state.value)})}});const Item=defineComponent({name:`Sectile${options.componentName}Item`,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(`${options.componentName}Item`);const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,expanded:root.state.value.path.includes(props.value),branch:root.branchItems.value.has(props.value),disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));provide(options.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)},role:"option",tabindex:state.value.disabled?-1:state.value.highlighted?0:-1,"aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"aria-haspopup":state.value.branch?"listbox":void 0,"aria-expanded":state.value.branch?String(state.value.expanded):void 0,[options.itemAttribute]:props.value,"data-scope":options.scope,"data-part":"item","data-state":state.value.selected?"checked":"unchecked","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-expanded":state.value.expanded?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ItemIndicator=defineComponent({name:`Sectile${options.componentName}ItemIndicator`,inheritAttrs:false,props:{...cascadeChoicePartProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot(`${options.componentName}ItemIndicator`);const item=useItem(`${options.componentName}ItemIndicator`);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":options.scope,"data-part":"item-indicator","data-state":state.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(state)})}}});const ItemChevron=defineComponent({name:`Sectile${options.componentName}ItemChevron`,inheritAttrs:false,props:cascadeChoicePartProps,slots:Object,setup(props,{attrs,slots}){const item=useItem(`${options.componentName}ItemChevron`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,hidden:!item.state.value.branch,"aria-hidden":"true","data-scope":options.scope,"data-part":"item-chevron"}),{default:()=>slots["default"]?.(item.state.value)})}});return Object.freeze({Column,Item,ItemIndicator,ItemChevron})}function initialCascadeColumns(nodes,path=[]){const tree=tryCreateTree(nodes);if(!tree.ok)throw new TypeError(tree.error.message);const columns=[tree.value.roots.ids];for(const id of path){const children=tree.value.childrenOf(id)?.ids??[];if(children.length>0)columns.push(children)}return columns}function cascadeItemPath(nodes,value){if(value===null)return[];const tree=tryCreateTree(nodes);if(!tree.ok)throw new TypeError(tree.error.message);const ancestors=tree.value.ancestorsOf(value);return ancestors===null?[]:Object.freeze([...ancestors].reverse().concat(value))}function cascadeBranchItems(nodes){return new Set(collectionBranchIDs(nodes))}export{cascadeBranchItems,cascadeChoicePartProps,cascadeItemPath,createCascadeChoiceParts,initialCascadeColumns};
|
|
2
2
|
//# sourceMappingURL=cascade-choice.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/internal/cascade-choice.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,YAMK,MACP,OAAS,kBAAyC,qBAClD,OAAS,cAAmC,kBAC5C,OAAS,wBAA2B,kBACpC,OACE,6BAGK,
|
|
1
|
+
{"version":3,"sources":["../../src/internal/cascade-choice.ts"],"mappings":"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","names":[],"file":"cascade-choice.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{watch}from"vue";function useControlledStateInvariant(component,property,read){const controlled=read()!==void 0;let warned=false;watch(read,value=>{if(warned||value!==void 0===controlled)return;warned=true;console.warn(`[Sectile] ${component} cannot switch ${property}
|
|
1
|
+
import{watch}from"vue";function useControlledStateInvariant(component,property,read){const controlled=read()!==void 0;let warned=false;watch(read,value=>{if(warned||value!==void 0===controlled)return;warned=true;console.warn(`[Sectile] ${component} cannot switch ${property} ownership. Remount.`)});return controlled}export{useControlledStateInvariant};
|
|
2
2
|
//# sourceMappingURL=controlled-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/internal/controlled-state.ts"],"mappings":"AAAA,OAAS,UAAa,MAEhB,SAAU,4BACd,UACA,SACA,KAA+B,CAE/B,MAAM,WAAa,KAAI,IAAO,OAC9B,IAAI,OAAS,MACb,MAAM,KAAO,OAAS,CACpB,GAAI,QAAW,QAAU,SAAe,WAAY,OACpD,OAAS,KACT,QAAQ,KACN,aAAa,SAAS,kBAAkB,QAAQ,
|
|
1
|
+
{"version":3,"sources":["../../src/internal/controlled-state.ts"],"mappings":"AAAA,OAAS,UAAa,MAEhB,SAAU,4BACd,UACA,SACA,KAA+B,CAE/B,MAAM,WAAa,KAAI,IAAO,OAC9B,IAAI,OAAS,MACb,MAAM,KAAO,OAAS,CACpB,GAAI,QAAW,QAAU,SAAe,WAAY,OACpD,OAAS,KACT,QAAQ,KACN,aAAa,SAAS,kBAAkB,QAAQ,sBAAsB,CAE1E,CAAC,EACD,OAAO,UACT","names":[],"file":"controlled-state.js"}
|
package/dist/listbox.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 ListboxSelectionMode = 'single' | 'multiple';
|
|
5
5
|
export type ListboxValue = string | readonly string[];
|
|
6
6
|
export interface ListboxRootProps {
|
package/dist/listbox.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowReactive,shallowReadonly,shallowRef,watch}from"vue";import{DEFAULT_LISTBOX_SELECTION_MODE,createListboxControllerFromItems,getListboxItemAttributes,getListboxRootAttributes}from"@sectile/dom/listbox";import{stableIDElementToken}from"@sectile/dom/identity";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./internal/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./internal/form-control.js";import{useHostDirection,useHostId}from"./host-provider.js";import{invalidateItemProjection,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresenceRegistry}from"./internal/conditional-presence.js";const listboxRootContextKey=Symbol("SectileListboxRoot");const listboxItemContextKey=Symbol("SectileListboxItem");const listboxPartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ListboxRoot=defineComponent({name:"SectileListboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},selectionMode:{type:String,default:DEFAULT_LISTBOX_SELECTION_MODE},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},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},textValue:{type:Function,default:void 0},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 direction=useHostDirection();const instanceID=useHostId();const itemID=id=>`sectile-listbox-${instanceID}-option-${stableIDElementToken(id)}`;const rootElement=shallowRef(null);const submissionElement=shallowRef(null);let controllerProps=snapshotListboxControllerProps({...props,direction:direction.value});const controlled=useControlledStateInvariant("ListboxRoot","modelValue",()=>props.modelValue);const initialValue=toIDs(controlled?props.modelValue:props.defaultValue,props.selectionMode);const controller=shallowRef(createController(controlled,initialValue,initialValue[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit));const snapshot=shallowRef(controller.value.getSnapshot());const selectedIDs=shallowRef(snapshot.value.state.selection.selected);const selectedIDSet=computed(()=>new Set(selectedIDs.value));const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const itemProjection=shallowReactive(new Map);let currentSelectedSet=new Set(selectedIDs.value);let currentSelectionMode=props.selectionMode;let currentHighlighted=snapshot.value.state.cursor.current;let disabledItemSet=new Set(controllerProps.disabledItems);let submissionIndex=new Map(controllerProps.items.map((id,index)=>[id,index]));const mutableState=shallowReactive({value:fromIDs(selectedIDs.value,props.selectionMode),highlightedValue:currentHighlighted,disabled:controllerProps.disabled,readonly:controllerProps.readonly});const state=shallowReadonly(mutableState);const syncActiveDescendant=()=>{const element=rootElement.value;if(element===null||typeof element.setAttribute!=="function"||typeof element.removeAttribute!=="function")return;if(currentHighlighted===null)element.removeAttribute("aria-activedescendant");else element.setAttribute("aria-activedescendant",itemID(currentHighlighted))};const syncSubmissionSelection=changedIDs=>{const element=submissionElement.value;if(element===null)return;for(const id of changedIDs){const index=submissionIndex.get(id);if(index===void 0)continue;const option=element.options.item(index);if(option!==null&&option.value===id)option.selected=currentSelectedSet.has(id)}};const publishSnapshot=nextSnapshot=>{const nextSelectedIDs=nextSnapshot.state.selection.selected;const previousSelectedIDs=selectedIDs.value;const selectionReferenceChanged=previousSelectedIDs!==nextSelectedIDs;let nextSelectedSet=currentSelectedSet;const changedSelection=new Set;let selectionOrderChanged=false;if(selectionReferenceChanged){nextSelectedSet=new Set(nextSelectedIDs);for(const id of currentSelectedSet)if(!nextSelectedSet.has(id))changedSelection.add(id);for(const id of nextSelectedSet)if(!currentSelectedSet.has(id))changedSelection.add(id);selectionOrderChanged=!sameIDs(previousSelectedIDs,nextSelectedIDs)}const selectionModeChanged=currentSelectionMode!==props.selectionMode;const previousHighlight=currentHighlighted;currentSelectedSet=nextSelectedSet;currentSelectionMode=props.selectionMode;currentHighlighted=nextSnapshot.state.cursor.current;snapshot.value=nextSnapshot;if(selectionOrderChanged)selectedIDs.value=nextSelectedIDs;if(selectionOrderChanged||selectionModeChanged){mutableState.value=fromIDs(nextSelectedIDs,props.selectionMode)}mutableState.highlightedValue=currentHighlighted;for(const id of changedSelection)invalidateItemProjection(itemProjection,id);if(previousHighlight!==currentHighlighted){invalidateItemProjection(itemProjection,previousHighlight);invalidateItemProjection(itemProjection,currentHighlighted)}syncSubmissionSelection(changedSelection);syncActiveDescendant()};const updateControllerProjection=nextControllerProps=>{const nextDisabledItems=new Set(nextControllerProps.disabledItems);if(controllerProps.disabled===nextControllerProps.disabled){for(const id of disabledItemSet)if(!nextDisabledItems.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextDisabledItems)if(!disabledItemSet.has(id))invalidateItemProjection(itemProjection,id)}else mutableState.disabled=nextControllerProps.disabled;mutableState.readonly=nextControllerProps.readonly;disabledItemSet=nextDisabledItems;submissionIndex=new Map(nextControllerProps.items.map((id,index)=>[id,index]))};const participation=useCompositeFormControl({root:rootElement,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{const next=controlled?toIDs(props.modelValue,props.selectionMode):initialValue;controller.value=createController(controlled,next,next[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit);publishSnapshot(controller.value.getSnapshot())})}});const rebuild=()=>{const nextControllerProps=snapshotListboxControllerProps({...props,direction:direction.value});if(sameListboxControllerProps(controllerProps,nextControllerProps))return;const requested=controlled?toIDs(props.modelValue,props.selectionMode):snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(nextControllerProps.items,requested,snapshot.value.state.cursor.current,nextControllerProps.disabledItems,nextControllerProps.selectionMode);controller.value=createController(controlled,reconciled.selected,reconciled.current,nextControllerProps,emit);updateControllerProjection(nextControllerProps);controllerProps=nextControllerProps;publishSnapshot(controller.value.getSnapshot());if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.selectionMode))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.selectionMode)});if(!result.ok)throw new TypeError(result.error.message);publishSnapshot(result.value)});watch([()=>props.items,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.textValue,direction],rebuild);const applyResult=(result,root)=>{if(!result.ok)return false;publishSnapshot(result.snapshot);applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>root.focus());return true};const select=(id,target)=>{const event=props.selectionMode==="multiple"?{type:"toggle",id}:{type:"activate",id};applyResult(controller.value.handleEvent(event),target.closest('[role="listbox"]'))};const handleKeydown=event=>{const result=controller.value.handleKeyboardInput(event);if(!applyResult(result,event.currentTarget))return;event.preventDefault()};provide(listboxRootContextKey,{state,itemProjection,indicatorPresence,itemID,isSelected:id=>currentSelectedSet.has(id),isHighlighted:id=>currentHighlighted===id,isItemDisabled:id=>disabledItemSet.has(id),select});return()=>{const rootAttributes=getListboxRootAttributes({selectionMode:props.selectionMode,orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly,...currentHighlighted===null?{}:{activeDescendantID:itemID(currentHighlighted)}});const root=h(Primitive,mergeProps(attrs,rootAttributes,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown,elementRef:element=>{rootElement.value=element;syncActiveDescendant()}},participation.controlProps.value),{default:()=>slots["default"]?.(state)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("select",{ref:submissionElement,name:props.name,form:props.form,required:props.required,multiple:props.selectionMode==="multiple",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},props.items.map(id=>h("option",{value:id,selected:currentSelectedSet.has(id)},id)))]}}});const ListboxItem=defineComponent({name:"SectileListboxItem",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=useListboxRootContext("ListboxItem");const slotProps=Object.freeze({get value(){return props.value},get selected(){root.itemProjection.get(props.value);return root.isSelected(props.value)},get highlighted(){root.itemProjection.get(props.value);return root.isHighlighted(props.value)},get disabled(){root.itemProjection.get(props.value);return root.state.disabled||props.disabled||root.isItemDisabled(props.value)}});provide(listboxItemContextKey,{slotProps});const attributes=computed(()=>{const selected=slotProps.selected;const highlighted=slotProps.highlighted;const disabled=slotProps.disabled;return getListboxItemAttributes({cursor:{current:highlighted?props.value:null},selection:{has:id=>id===props.value&&selected}},{id:props.value,disabled:props.disabled},{disabled,elementID:root.itemID(props.value)})});const handleClick=event=>{if(!event.defaultPrevented&&!slotProps.disabled){root.select(props.value,event.currentTarget)}};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(slotProps)})}});const ListboxItemText=defineComponent({name:"SectileListboxItemText",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"listbox","data-part":"item-text","data-state":item.slotProps.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps)})}});const ListboxItemIndicator=defineComponent({name:"SectileListboxItemIndicator",inheritAttrs:false,props:{...listboxPartProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItemIndicator");const item=useListboxItemContext("ListboxItemIndicator");return()=>{const state=item.slotProps;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":"listbox","data-part":"item-indicator","data-state":state.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(state)})}}});function useListboxRootContext(part){const context=inject(listboxRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxRoot.`);return context}function snapshotListboxControllerProps(props){return Object.freeze({...props,items:Object.freeze([...props.items]),disabledItems:Object.freeze([...props.disabledItems])})}function sameListboxControllerProps(left,right){return sameIDs(left.items,right.items)&&sameIDs(left.disabledItems,right.disabledItems)&&left.selectionMode===right.selectionMode&&left.disabled===right.disabled&&left.readonly===right.readonly&&left.orientation===right.orientation&&left.direction===right.direction&&left.textValue===right.textValue}function firstEnabledItem(props){if(props.disabledItems.length===0)return props.items[0];const disabled=new Set(props.disabledItems);return props.items.find(id=>!disabled.has(id))}function useListboxItemContext(part){const context=inject(listboxItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxItem.`);return context}function createController(controlled,value,highlightedValue,props,emit){const result=createListboxControllerFromItems({items:props.items,selectionMode:props.selectionMode,disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:props.direction,typeahead:{textValue:props.textValue??(id=>id)},...controlled?{value}:{defaultValue:value},defaultHighlightedValue:highlightedValue,onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.selectionMode)),onHighlightedValueChange:change=>emit("highlight",change.value)});if(!result.ok)throw new TypeError(result.error.message);return result.value}function applyEffects(effects,emit){for(const effect of effects){if(effect.type==="dispatch-activation")emit("activate",effect.id)}}function toIDs(value,mode){if(value===void 0||value==="")return[];if(Array.isArray(value))return mode==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,mode){return mode==="single"?value[0]??"":value}export{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot};
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowReactive,shallowReadonly,shallowRef,watch}from"vue";import{DEFAULT_LISTBOX_SELECTION_MODE,createListboxControllerFromItems,getListboxItemAttributes,getListboxRootAttributes}from"@sectile/dom/listbox";import{stableIDElementToken}from"@sectile/dom/identity";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{hiddenSelectSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useHostDirection,useHostId}from"./host-provider.js";import{invalidateItemProjection,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresenceRegistry}from"./presence/conditional-presence.js";const listboxRootContextKey=Symbol("SectileListboxRoot");const listboxItemContextKey=Symbol("SectileListboxItem");const listboxPartProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ListboxRoot=defineComponent({name:"SectileListboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},selectionMode:{type:String,default:DEFAULT_LISTBOX_SELECTION_MODE},modelValue:{type:[String,Array],default:void 0},defaultValue:{type:[String,Array],default:void 0},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},textValue:{type:Function,default:void 0},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 direction=useHostDirection();const instanceID=useHostId();const itemID=id=>`sectile-listbox-${instanceID}-option-${stableIDElementToken(id)}`;const rootElement=shallowRef(null);const submissionElement=shallowRef(null);let controllerProps=snapshotListboxControllerProps({...props,direction:direction.value});const controlled=useControlledStateInvariant("ListboxRoot","modelValue",()=>props.modelValue);const initialValue=toIDs(controlled?props.modelValue:props.defaultValue,props.selectionMode);const controller=shallowRef(createController(controlled,initialValue,initialValue[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit));const snapshot=shallowRef(controller.value.getSnapshot());const selectedIDs=shallowRef(snapshot.value.state.selection.selected);const selectedIDSet=computed(()=>new Set(selectedIDs.value));const indicatorPresence=useConditionalPresenceRegistry(selectedIDSet);const itemProjection=shallowReactive(new Map);let currentSelectedSet=new Set(selectedIDs.value);let currentSelectionMode=props.selectionMode;let currentHighlighted=snapshot.value.state.cursor.current;let disabledItemSet=new Set(controllerProps.disabledItems);let submissionIndex=new Map(controllerProps.items.map((id,index)=>[id,index]));const mutableState=shallowReactive({value:fromIDs(selectedIDs.value,props.selectionMode),highlightedValue:currentHighlighted,disabled:controllerProps.disabled,readonly:controllerProps.readonly});const state=shallowReadonly(mutableState);const syncActiveDescendant=()=>{const element=rootElement.value;if(element===null||typeof element.setAttribute!=="function"||typeof element.removeAttribute!=="function")return;if(currentHighlighted===null)element.removeAttribute("aria-activedescendant");else element.setAttribute("aria-activedescendant",itemID(currentHighlighted))};const syncSubmissionSelection=changedIDs=>{const element=submissionElement.value;if(element===null)return;for(const id of changedIDs){const index=submissionIndex.get(id);if(index===void 0)continue;const option=element.options.item(index);if(option!==null&&option.value===id)option.selected=currentSelectedSet.has(id)}};const publishSnapshot=nextSnapshot=>{const nextSelectedIDs=nextSnapshot.state.selection.selected;const previousSelectedIDs=selectedIDs.value;const selectionReferenceChanged=previousSelectedIDs!==nextSelectedIDs;let nextSelectedSet=currentSelectedSet;const changedSelection=new Set;let selectionOrderChanged=false;if(selectionReferenceChanged){nextSelectedSet=new Set(nextSelectedIDs);for(const id of currentSelectedSet)if(!nextSelectedSet.has(id))changedSelection.add(id);for(const id of nextSelectedSet)if(!currentSelectedSet.has(id))changedSelection.add(id);selectionOrderChanged=!sameIDs(previousSelectedIDs,nextSelectedIDs)}const selectionModeChanged=currentSelectionMode!==props.selectionMode;const previousHighlight=currentHighlighted;currentSelectedSet=nextSelectedSet;currentSelectionMode=props.selectionMode;currentHighlighted=nextSnapshot.state.cursor.current;snapshot.value=nextSnapshot;if(selectionOrderChanged)selectedIDs.value=nextSelectedIDs;if(selectionOrderChanged||selectionModeChanged){mutableState.value=fromIDs(nextSelectedIDs,props.selectionMode)}mutableState.highlightedValue=currentHighlighted;for(const id of changedSelection)invalidateItemProjection(itemProjection,id);if(previousHighlight!==currentHighlighted){invalidateItemProjection(itemProjection,previousHighlight);invalidateItemProjection(itemProjection,currentHighlighted)}syncSubmissionSelection(changedSelection);syncActiveDescendant()};const updateControllerProjection=nextControllerProps=>{const nextDisabledItems=new Set(nextControllerProps.disabledItems);if(controllerProps.disabled===nextControllerProps.disabled){for(const id of disabledItemSet)if(!nextDisabledItems.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextDisabledItems)if(!disabledItemSet.has(id))invalidateItemProjection(itemProjection,id)}else mutableState.disabled=nextControllerProps.disabled;mutableState.readonly=nextControllerProps.readonly;disabledItemSet=nextDisabledItems;submissionIndex=new Map(nextControllerProps.items.map((id,index)=>[id,index]))};const participation=useCompositeFormControl({root:rootElement,submissions:[{element:submissionElement,capabilities:hiddenSelectSubmissionCapabilities}],reset:()=>{queueMicrotask(()=>{const next=controlled?toIDs(props.modelValue,props.selectionMode):initialValue;controller.value=createController(controlled,next,next[0]??firstEnabledItem(controllerProps)??null,controllerProps,emit);publishSnapshot(controller.value.getSnapshot())})}});const rebuild=()=>{const nextControllerProps=snapshotListboxControllerProps({...props,direction:direction.value});if(sameListboxControllerProps(controllerProps,nextControllerProps))return;const requested=controlled?toIDs(props.modelValue,props.selectionMode):snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(nextControllerProps.items,requested,snapshot.value.state.cursor.current,nextControllerProps.disabledItems,nextControllerProps.selectionMode);controller.value=createController(controlled,reconciled.selected,reconciled.current,nextControllerProps,emit);updateControllerProjection(nextControllerProps);controllerProps=nextControllerProps;publishSnapshot(controller.value.getSnapshot());if(controlled&&!sameIDs(requested,reconciled.selected)){emit("update:modelValue",fromIDs(reconciled.selected,props.selectionMode))}};watch(()=>props.modelValue,value=>{if(!controlled||value===void 0)return;const result=controller.value.syncControlledValues({value:toIDs(value,props.selectionMode)});if(!result.ok)throw new TypeError(result.error.message);publishSnapshot(result.value)});watch([()=>props.items,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.textValue,direction],rebuild);const applyResult=(result,root)=>{if(!result.ok)return false;publishSnapshot(result.snapshot);applyEffects(result.commands,emit);if(root!==void 0)void nextTick(()=>root.focus());return true};const select=(id,target)=>{const event=props.selectionMode==="multiple"?{type:"toggle",id}:{type:"activate",id};applyResult(controller.value.handleEvent(event),target.closest('[role="listbox"]'))};const handleKeydown=event=>{const result=controller.value.handleKeyboardInput(event);if(!applyResult(result,event.currentTarget))return;event.preventDefault()};provide(listboxRootContextKey,{state,itemProjection,indicatorPresence,itemID,isSelected:id=>currentSelectedSet.has(id),isHighlighted:id=>currentHighlighted===id,isItemDisabled:id=>disabledItemSet.has(id),select});return()=>{const rootAttributes=getListboxRootAttributes({selectionMode:props.selectionMode,orientation:props.orientation,direction:direction.value,disabled:props.disabled,readOnly:props.readonly,...currentHighlighted===null?{}:{activeDescendantID:itemID(currentHighlighted)}});const root=h(Primitive,mergeProps(attrs,rootAttributes,{as:props.as,asChild:props.asChild,onKeydown:handleKeydown,elementRef:element=>{rootElement.value=element;syncActiveDescendant()}},participation.controlProps.value),{default:()=>slots["default"]?.(state)});if(!participation.participating&&props.name===void 0&&props.form===void 0&&!props.required)return root;return[root,h("select",{ref:submissionElement,name:props.name,form:props.form,required:props.required,multiple:props.selectionMode==="multiple",tabindex:-1,"aria-hidden":"true",style:visuallyHiddenInputStyle},props.items.map(id=>h("option",{value:id,selected:currentSelectedSet.has(id)},id)))]}}});const ListboxItem=defineComponent({name:"SectileListboxItem",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=useListboxRootContext("ListboxItem");const slotProps=Object.freeze({get value(){return props.value},get selected(){root.itemProjection.get(props.value);return root.isSelected(props.value)},get highlighted(){root.itemProjection.get(props.value);return root.isHighlighted(props.value)},get disabled(){root.itemProjection.get(props.value);return root.state.disabled||props.disabled||root.isItemDisabled(props.value)}});provide(listboxItemContextKey,{slotProps});const attributes=computed(()=>{const selected=slotProps.selected;const highlighted=slotProps.highlighted;const disabled=slotProps.disabled;return getListboxItemAttributes({cursor:{current:highlighted?props.value:null},selection:{has:id=>id===props.value&&selected}},{id:props.value,disabled:props.disabled},{disabled,elementID:root.itemID(props.value)})});const handleClick=event=>{if(!event.defaultPrevented&&!slotProps.disabled){root.select(props.value,event.currentTarget)}};return()=>h(Primitive,mergeProps(attrs,attributes.value,{as:props.as,asChild:props.asChild,onClick:handleClick}),{default:()=>slots["default"]?.(slotProps)})}});const ListboxItemText=defineComponent({name:"SectileListboxItemText",inheritAttrs:false,props:listboxPartProps,slots:Object,setup(props,{attrs,slots}){const item=useListboxItemContext("ListboxItemText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"listbox","data-part":"item-text","data-state":item.slotProps.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(item.slotProps)})}});const ListboxItemIndicator=defineComponent({name:"SectileListboxItemIndicator",inheritAttrs:false,props:{...listboxPartProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useListboxRootContext("ListboxItemIndicator");const item=useListboxItemContext("ListboxItemIndicator");return()=>{const state=item.slotProps;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":"listbox","data-part":"item-indicator","data-state":state.selected?"checked":"unchecked"}),{default:()=>slots["default"]?.(state)})}}});function useListboxRootContext(part){const context=inject(listboxRootContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxRoot.`);return context}function snapshotListboxControllerProps(props){return Object.freeze({...props,items:Object.freeze([...props.items]),disabledItems:Object.freeze([...props.disabledItems])})}function sameListboxControllerProps(left,right){return sameIDs(left.items,right.items)&&sameIDs(left.disabledItems,right.disabledItems)&&left.selectionMode===right.selectionMode&&left.disabled===right.disabled&&left.readonly===right.readonly&&left.orientation===right.orientation&&left.direction===right.direction&&left.textValue===right.textValue}function firstEnabledItem(props){if(props.disabledItems.length===0)return props.items[0];const disabled=new Set(props.disabledItems);return props.items.find(id=>!disabled.has(id))}function useListboxItemContext(part){const context=inject(listboxItemContextKey);if(context===void 0)throw new TypeError(`${part} must be used inside ListboxItem.`);return context}function createController(controlled,value,highlightedValue,props,emit){const result=createListboxControllerFromItems({items:props.items,selectionMode:props.selectionMode,disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:props.direction,typeahead:{textValue:props.textValue??(id=>id)},...controlled?{value}:{defaultValue:value},defaultHighlightedValue:highlightedValue,onValueChange:change=>emit("update:modelValue",fromIDs(change.value,props.selectionMode)),onHighlightedValueChange:change=>emit("highlight",change.value)});if(!result.ok)throw new TypeError(result.error.message);return result.value}function applyEffects(effects,emit){for(const effect of effects){if(effect.type==="dispatch-activation")emit("activate",effect.id)}}function toIDs(value,mode){if(value===void 0||value==="")return[];if(Array.isArray(value))return mode==="single"?value.slice(0,1):value;return[value]}function fromIDs(value,mode){return mode==="single"?value[0]??"":value}export{ListboxItem,ListboxItemIndicator,ListboxItemText,ListboxRoot};
|
|
2
2
|
//# sourceMappingURL=listbox.js.map
|
package/dist/listbox.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/listbox.ts"],"mappings":"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","names":[],"file":"listbox.js"}
|
|
1
|
+
{"version":3,"sources":["../src/listbox.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,SACA,QACA,gBACA,gBACA,WACA,UAIK,MACP,OACE,+BACA,iCACA,yBACA,6BAGK,uBACP,OAAS,yBAA4B,wBACrC,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,0BACzC,OAAS,mCAAoC,4BAA+B,oBAC5E,OAAS,iBAAkB,cAAqC,qBAChE,OACE,yBACA,yBACA,YAEK,2BACP,OAAS,gCAAmC,iCAC5C,OACE,yBACA,mCAGK,qCAoFP,MAAM,sBAAwB,OAAO,oBAAoB,EACzD,MAAM,sBAAwB,OAAO,oBAAoB,EACzD,MAAM,iBAAmB,CACvB,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,MAAM,EAChF,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAGnC,MAAM,YAAc,gBAAgB,CACzC,KAAM,qBACN,aAAc,MACd,MAAO,CACL,MAAO,CAAE,KAAM,MAAsC,SAAU,IAAI,EACnE,cAAe,CAAE,KAAM,OAA0C,QAAS,8BAA8B,EACxG,WAAY,CAAE,KAAM,CAAC,OAAQ,KAAK,EAA6B,QAAS,MAAS,EACjF,aAAc,CAAE,KAAM,CAAC,OAAQ,KAAK,EAA6B,QAAS,MAAS,EACnF,cAAe,CAAE,KAAM,MAAsC,QAAS,IAAM,CAAA,CAAE,EAC9E,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,YAAa,CAAE,KAAM,OAA+C,QAAS,UAAU,EACvF,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EACxC,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EACxC,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,UAAW,CAAE,KAAM,SAAgD,QAAS,MAAS,EACrF,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE1C,MAAO,CACL,oBAAsB,QAAkC,KACxD,UAAY,QAAmC,KAC/C,SAAW,QAA4B,MAEzC,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAM,KAAK,EAAE,CACjC,MAAM,UAAY,iBAAgB,EAClC,MAAM,WAAa,UAAS,EAC5B,MAAM,OAAU,IAAuB,mBAAmB,UAAU,WAAW,qBAAqB,EAAE,CAAC,GACvG,MAAM,YAAc,WAA+B,IAAI,EACvD,MAAM,kBAAoB,WAAqC,IAAI,EACnE,IAAI,gBAAkB,+BAA+B,CACnD,GAAG,MACH,UAAW,UAAU,MACtB,EACD,MAAM,WAAa,4BAA4B,cAAe,aAAc,IAAM,MAAM,UAAU,EAClG,MAAM,aAAe,MAAM,WAAa,MAAM,WAAa,MAAM,aAAc,MAAM,aAAa,EAClG,MAAM,WAAa,WAAW,iBAC5B,WACA,aACA,aAAa,CAAC,GAAK,iBAAiB,eAAe,GAAK,KACxD,gBACA,IAAI,CACL,EACD,MAAM,SAAW,WAAW,WAAW,MAAM,YAAW,CAAE,EAC1D,MAAM,YAAc,WAA8B,SAAS,MAAM,MAAM,UAAU,QAAQ,EACzF,MAAM,cAAgB,SAA8B,IAAM,IAAI,IAAI,YAAY,KAAK,CAAC,EACpF,MAAM,kBAAoB,+BAA+B,aAAa,EACtE,MAAM,eAAiB,gBAAgB,IAAI,GAAmB,EAC9D,IAAI,mBAAqB,IAAI,IAAI,YAAY,KAAK,EAClD,IAAI,qBAAuB,MAAM,cACjC,IAAI,mBAAqB,SAAS,MAAM,MAAM,OAAO,QACrD,IAAI,gBAAkB,IAAI,IAAI,gBAAgB,aAAa,EAC3D,IAAI,gBAAkB,IAAI,IAAI,gBAAgB,MAAM,IAAI,CAAC,GAAI,QAAU,CAAC,GAAI,KAAK,CAAU,CAAC,EAC5F,MAAM,aAAe,gBAAgB,CACnC,MAAO,QAAQ,YAAY,MAAO,MAAM,aAAa,EACrD,iBAAkB,mBAClB,SAAU,gBAAgB,SAC1B,SAAU,gBAAgB,SAC3B,EACD,MAAM,MAA8B,gBAAgB,YAAY,EAChE,MAAM,qBAAuB,IAAW,CACtC,MAAM,QAAU,YAAY,MAC5B,GACE,UAAY,MACT,OAAO,QAAQ,eAAiB,YAChC,OAAO,QAAQ,kBAAoB,WACtC,OACF,GAAI,qBAAuB,KAAM,QAAQ,gBAAgB,uBAAuB,OAC3E,QAAQ,aAAa,wBAAyB,OAAO,kBAAkB,CAAC,CAC/E,EACA,MAAM,wBAA2B,YAAsC,CACrE,MAAM,QAAU,kBAAkB,MAClC,GAAI,UAAY,KAAM,OACtB,UAAW,MAAM,WAAY,CAC3B,MAAM,MAAQ,gBAAgB,IAAI,EAAE,EACpC,GAAI,QAAU,OAAW,SACzB,MAAM,OAAS,QAAQ,QAAQ,KAAK,KAAK,EACzC,GAAI,SAAW,MAAQ,OAAO,QAAU,GAAI,OAAO,SAAW,mBAAmB,IAAI,EAAE,CACzF,CACF,EACA,MAAM,gBACJ,cACQ,CACR,MAAM,gBAAkB,aAAa,MAAM,UAAU,SACrD,MAAM,oBAAsB,YAAY,MACxC,MAAM,0BAA4B,sBAAwB,gBAC1D,IAAI,gBAAkB,mBACtB,MAAM,iBAAmB,IAAI,IAC7B,IAAI,sBAAwB,MAC5B,GAAI,0BAA2B,CAC7B,gBAAkB,IAAI,IAAI,eAAe,EACzC,UAAW,MAAM,mBAAoB,GAAI,CAAC,gBAAgB,IAAI,EAAE,EAAG,iBAAiB,IAAI,EAAE,EAC1F,UAAW,MAAM,gBAAiB,GAAI,CAAC,mBAAmB,IAAI,EAAE,EAAG,iBAAiB,IAAI,EAAE,EAC1F,sBAAwB,CAAC,QAAQ,oBAAqB,eAAe,CACvE,CACA,MAAM,qBAAuB,uBAAyB,MAAM,cAC5D,MAAM,kBAAoB,mBAC1B,mBAAqB,gBACrB,qBAAuB,MAAM,cAC7B,mBAAqB,aAAa,MAAM,OAAO,QAC/C,SAAS,MAAQ,aACjB,GAAI,sBAAuB,YAAY,MAAQ,gBAC/C,GAAI,uBAAyB,qBAAsB,CACjD,aAAa,MAAQ,QAAQ,gBAAiB,MAAM,aAAa,CACnE,CACA,aAAa,iBAAmB,mBAChC,UAAW,MAAM,iBAAkB,yBAAyB,eAAgB,EAAE,EAC9E,GAAI,oBAAsB,mBAAoB,CAC5C,yBAAyB,eAAgB,iBAAiB,EAC1D,yBAAyB,eAAgB,kBAAkB,CAC7D,CACA,wBAAwB,gBAAgB,EACxC,qBAAoB,CACtB,EACA,MAAM,2BAA8B,qBAAqD,CACvF,MAAM,kBAAoB,IAAI,IAAI,oBAAoB,aAAa,EACnE,GAAI,gBAAgB,WAAa,oBAAoB,SAAU,CAC7D,UAAW,MAAM,gBAAiB,GAAI,CAAC,kBAAkB,IAAI,EAAE,EAAG,yBAAyB,eAAgB,EAAE,EAC7G,UAAW,MAAM,kBAAmB,GAAI,CAAC,gBAAgB,IAAI,EAAE,EAAG,yBAAyB,eAAgB,EAAE,CAC/G,MAAO,aAAa,SAAW,oBAAoB,SACnD,aAAa,SAAW,oBAAoB,SAC5C,gBAAkB,kBAClB,gBAAkB,IAAI,IAAI,oBAAoB,MAAM,IAAI,CAAC,GAAI,QAAU,CAAC,GAAI,KAAK,CAAU,CAAC,CAC9F,EACA,MAAM,cAAgB,wBAAwB,CAC5C,KAAM,YACN,YAAa,CAAC,CAAE,QAAS,kBAAmB,aAAc,kCAAkC,CAAE,EAC9F,MAAO,IAAK,CACV,eAAe,IAAK,CAClB,MAAM,KAAO,WACT,MAAM,MAAM,WAAY,MAAM,aAAa,EAC3C,aACJ,WAAW,MAAQ,iBACjB,WACA,KACA,KAAK,CAAC,GAAK,iBAAiB,eAAe,GAAK,KAChD,gBACA,IAAI,EAEN,gBAAgB,WAAW,MAAM,YAAW,CAAE,CAChD,CAAC,CACH,EACD,EACD,MAAM,QAAU,IAAW,CACzB,MAAM,oBAAsB,+BAA+B,CACzD,GAAG,MACH,UAAW,UAAU,MACtB,EACD,GAAI,2BAA2B,gBAAiB,mBAAmB,EAAG,OACtE,MAAM,UAAY,WACd,MAAM,MAAM,WAAY,MAAM,aAAa,EAC3C,SAAS,MAAM,MAAM,UAAU,SACnC,MAAM,WAAa,yBACjB,oBAAoB,MACpB,UACA,SAAS,MAAM,MAAM,OAAO,QAC5B,oBAAoB,cACpB,oBAAoB,aAAa,EAEnC,WAAW,MAAQ,iBACjB,WACA,WAAW,SACX,WAAW,QACX,oBACA,IAAI,EAEN,2BAA2B,mBAAmB,EAC9C,gBAAkB,oBAClB,gBAAgB,WAAW,MAAM,YAAW,CAAE,EAC9C,GAAI,YAAc,CAAC,QAAQ,UAAW,WAAW,QAAQ,EAAG,CAC1D,KAAK,oBAAqB,QAAQ,WAAW,SAAU,MAAM,aAAa,CAAC,CAC7E,CACF,EACA,MAAM,IAAM,MAAM,WAAa,OAAS,CACtC,GAAI,CAAC,YAAc,QAAU,OAAW,OACxC,MAAM,OAAS,WAAW,MAAM,qBAAqB,CACnD,MAAO,MAAM,MAAO,MAAM,aAAa,EACxC,EACD,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,gBAAgB,OAAO,KAAK,CAC9B,CAAC,EACD,MACE,CAAC,IAAM,MAAM,MAAO,IAAM,MAAM,cAAe,IAAM,MAAM,cACzD,IAAM,MAAM,SAAU,IAAM,MAAM,SAAU,IAAM,MAAM,YAAa,IAAM,MAAM,UAAW,SAAS,EACvG,OAAO,EAET,MAAM,YAAc,CAClB,OACA,OACW,CACX,GAAI,CAAC,OAAO,GAAI,MAAO,OACvB,gBAAgB,OAAO,QAAQ,EAC/B,aAAa,OAAO,SAAU,IAAI,EAClC,GAAI,OAAS,OAAW,KAAK,SAAS,IAAM,KAAK,MAAK,CAAE,EACxD,MAAO,KACT,EACA,MAAM,OAAS,CAAC,GAAY,SAA6B,CACvD,MAAM,MAAQ,MAAM,gBAAkB,WAClC,CAAE,KAAM,SAAmB,EAAE,EAC7B,CAAE,KAAM,WAAqB,EAAE,EACnC,YAAY,WAAW,MAAM,YAAY,KAAK,EAAG,OAAO,QAAQ,kBAAkB,CAA4B,CAChH,EACA,MAAM,cAAiB,OAA8B,CACnD,MAAM,OAAS,WAAW,MAAM,oBAAoB,KAAK,EACzD,GAAI,CAAC,YAAY,OAAQ,MAAM,aAA4B,EAAG,OAC9D,MAAM,eAAc,CACtB,EACA,QAA4B,sBAAuB,CACjD,MACA,eACA,kBACA,OACA,WAAa,IAAO,mBAAmB,IAAI,EAAE,EAC7C,cAAgB,IAAO,qBAAuB,GAC9C,eAAiB,IAAO,gBAAgB,IAAI,EAAE,EAC9C,OACD,EACD,MAAO,IAAiB,CACtB,MAAM,eAAiB,yBAAyB,CAC9C,cAAe,MAAM,cACrB,YAAa,MAAM,YACnB,UAAW,UAAU,MACrB,SAAU,MAAM,SAChB,SAAU,MAAM,SAChB,GAAI,qBAAuB,KAAO,CAAA,EAAK,CAAE,mBAAoB,OAAO,kBAAkB,CAAC,EACxF,EACD,MAAM,KAAO,EAAE,UAAW,WACxB,MACA,eACA,CACE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,UAAW,cACjD,WAAa,SAAoB,CAAG,YAAY,MAAQ,QAA+B,qBAAoB,CAAI,GAEjH,cAAc,aAAa,KAAK,EAC/B,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,CAAC,CAAE,EAC/C,GAAI,CAAC,cAAc,eAAiB,MAAM,OAAS,QAAa,MAAM,OAAS,QAAa,CAAC,MAAM,SAAU,OAAO,KACpH,MAAO,CAAC,KAAM,EAAE,SAAU,CACxB,IAAK,kBACL,KAAM,MAAM,KACZ,KAAM,MAAM,KACZ,SAAU,MAAM,SAChB,SAAU,MAAM,gBAAkB,WAClC,SAAU,GACV,cAAe,OACf,MAAO,0BACN,MAAM,MAAM,IAAK,IAAO,EAAE,SAAU,CACrC,MAAO,GACP,SAAU,mBAAmB,IAAI,EAAE,GAClC,EAAE,CAAC,CAAC,CAAC,CACV,CACF,EACD,EAMM,MAAM,YAAc,gBAAgB,CACzC,KAAM,qBACN,aAAc,MACd,MAAO,CACL,MAAO,CAAE,KAAM,OAAQ,SAAU,IAAI,EACrC,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE1C,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,sBAAsB,aAAa,EAChD,MAAM,UAAkC,OAAO,OAAO,CACpD,IAAI,OAAK,CAAK,OAAO,MAAM,KAAO,EAClC,IAAI,UAAQ,CAAK,KAAK,eAAe,IAAI,MAAM,KAAK,EAAG,OAAO,KAAK,WAAW,MAAM,KAAK,CAAG,EAC5F,IAAI,aAAW,CAAK,KAAK,eAAe,IAAI,MAAM,KAAK,EAAG,OAAO,KAAK,cAAc,MAAM,KAAK,CAAG,EAClG,IAAI,UAAQ,CAAK,KAAK,eAAe,IAAI,MAAM,KAAK,EAAG,OAAO,KAAK,MAAM,UAAY,MAAM,UAAY,KAAK,eAAe,MAAM,KAAK,CAAG,EAC1I,EACD,QAA4B,sBAAuB,CAAE,SAAS,CAAE,EAChE,MAAM,WAAa,SAAS,IAAK,CAC/B,MAAM,SAAW,UAAU,SAC3B,MAAM,YAAc,UAAU,YAC9B,MAAM,SAAW,UAAU,SAC3B,OAAO,yBACL,CACE,OAAQ,CAAE,QAAS,YAAc,MAAM,MAAQ,IAAI,EACnD,UAAW,CAAE,IAAM,IAAe,KAAO,MAAM,OAAS,QAAQ,GAElE,CAAE,GAAI,MAAM,MAAO,SAAU,MAAM,QAAQ,EAC3C,CAAE,SAAU,UAAW,KAAK,OAAO,MAAM,KAAK,CAAC,CAAE,CAErD,CAAC,EACD,MAAM,YAAe,OAA2B,CAC9C,GAAI,CAAC,MAAM,kBAAoB,CAAC,UAAU,SAAU,CAClD,KAAK,OAAO,MAAM,MAAO,MAAM,aAA4B,CAC7D,CACF,EACA,MAAO,IAAkB,EAAE,UAAW,WACpC,MACA,WAAW,MACX,CAAE,GAAI,MAAM,GAAI,QAAS,MAAM,QAAS,QAAS,WAAW,CAAE,EAC7D,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,SAAS,CAAC,CAAE,CACrD,EACD,EAEM,MAAM,gBAAkB,gBAAgB,CAC7C,KAAM,yBACN,aAAc,MACd,MAAO,iBACP,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,sBAAsB,iBAAiB,EACpD,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,CACtD,GAAI,MAAM,GACV,QAAS,MAAM,QACf,aAAc,UACd,YAAa,YACb,aAAc,KAAK,UAAU,SAAW,UAAY,YACrD,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,SAAS,CAAC,CAAE,CAC3D,EACD,EAEM,MAAM,qBAAuB,gBAAgB,CAClD,KAAM,8BACN,aAAc,MACd,MAAO,CAAE,GAAG,iBAAkB,GAAG,wBAAwB,EACzD,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,sBAAsB,sBAAsB,EACzD,MAAM,KAAO,sBAAsB,sBAAsB,EACzD,MAAO,IAAiB,CACtB,MAAM,MAAQ,KAAK,UACnB,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,UACd,YAAa,iBACb,aAAc,MAAM,SAAW,UAAY,YAC5C,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,KAAK,CAAC,CAAE,CAClD,CACF,EACD,EAED,SAAS,sBAAsB,KAAY,CACzC,MAAM,QAAU,OAA2B,qBAAqB,EAChE,GAAI,UAAY,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,mCAAmC,EACzF,OAAO,OACT,CAEA,SAAS,+BACP,MAA6B,CAE7B,OAAO,OAAO,OAAO,CACnB,GAAG,MACH,MAAO,OAAO,OAAO,CAAC,GAAG,MAAM,KAAK,CAAC,EACrC,cAAe,OAAO,OAAO,CAAC,GAAG,MAAM,aAAa,CAAC,EACtD,CACH,CAEA,SAAS,2BACP,KACA,MAA6B,CAE7B,OAAO,QAAQ,KAAK,MAAO,MAAM,KAAK,GACjC,QAAQ,KAAK,cAAe,MAAM,aAAa,GAC/C,KAAK,gBAAkB,MAAM,eAC7B,KAAK,WAAa,MAAM,UACxB,KAAK,WAAa,MAAM,UACxB,KAAK,cAAgB,MAAM,aAC3B,KAAK,YAAc,MAAM,WACzB,KAAK,YAAc,MAAM,SAChC,CAEA,SAAS,iBAAiB,MAA6B,CACrD,GAAI,MAAM,cAAc,SAAW,EAAG,OAAO,MAAM,MAAM,CAAC,EAC1D,MAAM,SAAW,IAAI,IAAI,MAAM,aAAa,EAC5C,OAAO,MAAM,MAAM,KAAM,IAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CACnD,CAEA,SAAS,sBAAsB,KAAY,CACzC,MAAM,QAAU,OAA2B,qBAAqB,EAChE,GAAI,UAAY,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,mCAAmC,EACzF,OAAO,OACT,CAEA,SAAS,iBACP,WACA,MACA,iBACA,MACA,KAAiB,CAEjB,MAAM,OAAS,iCAAiC,CAC9C,MAAO,MAAM,MACb,cAAe,MAAM,cACrB,cAAe,MAAM,cACrB,SAAU,MAAM,SAChB,SAAU,MAAM,SAChB,YAAa,MAAM,YACnB,UAAW,MAAM,UACjB,UAAW,CAAE,UAAW,MAAM,YAAe,IAAO,GAAG,EACvD,GAAI,WAAa,CAAE,KAAK,EAAK,CAAE,aAAc,KAAK,EAClD,wBAAyB,iBACzB,cAAgB,QAAW,KAAK,oBAAqB,QAAQ,OAAO,MAAO,MAAM,aAAa,CAAC,EAC/F,yBAA2B,QAAW,KAAK,YAAa,OAAO,KAAK,EACrE,EACD,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,OAAO,OAAO,KAChB,CAEA,SAAS,aAAa,QAA2C,KAAiB,CAChF,UAAW,UAAU,QAAS,CAC5B,GAAI,OAAO,OAAS,sBAAuB,KAAK,WAAY,OAAO,EAAE,CACvE,CACF,CAEA,SAAS,MAAM,MAAiC,KAA0B,CACxE,GAAI,QAAU,QAAa,QAAU,GAAI,MAAO,CAAA,EAChD,GAAI,MAAM,QAAQ,KAAK,EAAG,OAAO,OAAS,SAAW,MAAM,MAAM,EAAG,CAAC,EAAI,MACzE,MAAO,CAAC,KAAe,CACzB,CAEA,SAAS,QAAQ,MAA0B,KAA0B,CACnE,OAAO,OAAS,SAAW,MAAM,CAAC,GAAK,GAAK,KAC9C","names":[],"file":"listbox.js"}
|
package/dist/menu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowReactive,shallowRef,watch}from"vue";import{createMenu}from"@sectile/dom/menu";import{createMenuButton}from"@sectile/dom/menu-button";import{createMenubar}from"@sectile/dom/menubar";import{createNavigationMenu}from"@sectile/dom/navigation-menu";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{invalidateItemProjection,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./internal/presence.js";const key=Symbol("SectileMenuRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const commonProps={items:{type:Array,required:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},defaultHighlightedValue:{type:String,default:null},label:{type:String,default:void 0},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const menuButtonProps={...commonProps,open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"}};function createRoot(kind,rootProps,providerOnly=false){return defineComponent({name:kind==="menu-button"?"SectileMenuButtonRoot":kind==="menubar"?"SectileMenubarRoot":kind==="navigation-menu"?"SectileNavigationMenuRoot":"SectileMenuRoot",inheritAttrs:false,props:rootProps,emits:{"update:open":_value=>true,invoke:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const runtimeProps=props;const direction=useHostDirection();const baseID=useHostId();const root=shallowRef();const trigger=shallowRef();const connection=shallowRef();const controlled=useControlledStateInvariant("MenuButtonRoot","open",()=>kind==="menu-button"?runtimeProps.open:void 0);let currentOpen=kind==="menu-button"?runtimeProps.open??runtimeProps.defaultOpen??false:true;let currentHighlighted=runtimeProps.defaultHighlightedValue;let currentOpenPath=[];let currentOpenPathSet=new Set;let disabledItemSet=new Set(runtimeProps.disabledItems);const itemProjection=shallowReactive(new Map);const state=shallowReactive({open:kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:currentOpen,highlightedValue:currentHighlighted,openPath:currentOpenPath,disabled:runtimeProps.disabled});const position=computed(()=>kind==="menu-button"?runtimeProps.position??true:false);const strategy=computed(()=>runtimeProps.strategy??"absolute");const publishOpen=value=>{currentOpen=value;const publicValue=kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:value;if(state.open!==publicValue)state.open=publicValue};const publishHighlight=value=>{const previous=currentHighlighted;if(previous===value)return;currentHighlighted=value;state.highlightedValue=value;invalidateItemProjection(itemProjection,previous);invalidateItemProjection(itemProjection,value)};const publishOpenPath=value=>{const previousSet=currentOpenPathSet;const nextSet=new Set(value);const pathChanged=!sameIDs(currentOpenPath,value);currentOpenPath=value;currentOpenPathSet=nextSet;if(pathChanged)state.openPath=value;for(const id of previousSet)if(!nextSet.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextSet)if(!previousSet.has(id))invalidateItemProjection(itemProjection,id)};const publishSnapshot=snapshot=>{publishOpen(snapshot.open);publishHighlight(snapshot.cursor.current);publishOpenPath(snapshot.openPath)};const updateOwnerProjection=()=>{const nextDisabledItems=new Set(runtimeProps.disabledItems);if(state.disabled===runtimeProps.disabled){for(const id of disabledItemSet)if(!nextDisabledItems.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextDisabledItems)if(!disabledItemSet.has(id))invalidateItemProjection(itemProjection,id)}else state.disabled=runtimeProps.disabled;disabledItemSet=nextDisabledItems};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot!==void 0)publishSnapshot(snapshot)};const refreshParts=()=>{if(root.value===void 0||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-menu-id]").forEach(element=>{const id=element.dataset["sectileMenuId"];if(id!==void 0)connection.value?.setItemAttributes(element,id)});root.value.querySelectorAll("[data-sectile-submenu-for]").forEach(element=>{const id=element.dataset["sectileSubmenuFor"];if(id!==void 0)connection.value?.setSubmenuAttributes(element,id)})};const connect=()=>{connection.value?.disconnect();updateOwnerProjection();if(root.value===void 0||kind==="menu-button"&&trigger.value===void 0)return;const reconciled=reconcileCollectionState(runtimeProps.items.map(item=>item.id),[],currentHighlighted,runtimeProps.disabledItems,"single",{preserveNullCurrent:true});publishHighlight(reconciled.current);const options={root:root.value,items:runtimeProps.items,disabledItems:runtimeProps.disabledItems,disabled:runtimeProps.disabled,direction:direction.value,baseID,manageVisibility:false,...kind==="menu-button"?{position:runtimeProps.position??true,side:runtimeProps.side??"bottom",align:runtimeProps.align??"start",sideOffset:runtimeProps.sideOffset??8,collisionPadding:runtimeProps.collisionPadding??8,...runtimeProps.collisionBoundary===void 0?{}:{collisionBoundary:runtimeProps.collisionBoundary},avoidCollisions:runtimeProps.avoidCollisions??true,hideWhenDetached:runtimeProps.hideWhenDetached??false,strategy:runtimeProps.strategy??"absolute",tracking:runtimeProps.tracking??"events"}:{},...runtimeProps.policies===void 0?{}:{policies:runtimeProps.policies},defaultHighlightedValue:reconciled.current,...runtimeProps.label===void 0?{}:{label:runtimeProps.label},...runtimeProps.textValue===void 0?{}:{typeahead:{textValue:runtimeProps.textValue}},onOpenChange:value=>{publishOpen(value);emit("update:open",value)},onInvoke:value=>emit("invoke",value),onUpdate:refresh};connection.value=kind==="menu-button"?createMenuButton({...options,trigger:trigger.value,...controlled?{open:runtimeProps.open}:{defaultOpen:currentOpen}}):kind==="menubar"?createMenubar(options):kind==="navigation-menu"?createNavigationMenu(options):createMenu(options);refreshParts();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};const registerRoot=element=>{if(root.value===element)return;root.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};const registerTrigger=element=>{if(trigger.value===element)return;trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};provide(key,{state,kind,label:computed(()=>runtimeProps.label),direction,position,strategy,itemProjection,isItemHighlighted:id=>currentHighlighted===id,isItemOpen:id=>currentOpenPathSet.has(id),isItemDisabled:id=>state.disabled||disabledItemSet.has(id),registerRoot,registerTrigger,refresh:parentID=>connection.value?.refresh(parentID??null),registerItem:(element,id)=>connection.value?.setItemAttributes(element,id),registerSubmenu:(element,parent)=>connection.value?.setSubmenuAttributes(element,parent)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>runtimeProps.items,()=>runtimeProps.disabledItems,()=>runtimeProps.disabled,()=>runtimeProps.label,()=>runtimeProps.textValue,()=>runtimeProps.policies,direction,()=>runtimeProps.position,()=>runtimeProps.side,()=>runtimeProps.align,()=>runtimeProps.sideOffset,()=>runtimeProps.collisionPadding,()=>runtimeProps.collisionBoundary,()=>runtimeProps.avoidCollisions,()=>runtimeProps.hideWhenDetached,()=>runtimeProps.strategy,()=>runtimeProps.tracking],connect);watch(()=>runtimeProps.open,value=>{if(!controlled||value===void 0)return;currentOpen=value;state.open=value;if(connection.value===void 0)return;const result=connection.value.syncControlledValue(value);if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{if(providerOnly)return h(Fragment,null,slots["default"]?.(state)??[]);return h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef:node=>registerRoot(node instanceof HTMLElement?node:void 0),role:kind==="navigation-menu"?"navigation":kind==="menubar"?"menubar":"menu","aria-label":runtimeProps.label,dir:direction.value,"data-scope":kind==="navigation-menu"?"navigation-menu":kind==="menubar"?"menubar":"menu","data-part":"root","data-state":state.open?"open":"closed"}),{default:()=>slots["default"]?.(state)})}}})}const MenuRoot=createRoot("menu",commonProps);const MenubarRoot=createRoot("menubar",commonProps);const NavigationMenuRoot=createRoot("navigation-menu",commonProps);const MenuButtonRoot=createRoot("menu-button",menuButtonProps,true);const MenuButtonTrigger=defineComponent({name:"SectileMenuButtonTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLElement?node:void 0),type:props.as==="button"?"button":void 0,disabled:root.state.disabled,"aria-haspopup":"menu","aria-expanded":String(root.state.open),"data-scope":"menu-button","data-part":"trigger"}),{default:()=>slots["default"]?.(root.state)})}});const MenuButtonContent=defineComponent({name:"SectileMenuButtonContent",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonContent");const element=shallowRef();const open=computed(()=>root.state.open);const present=useMenuPresence(open,element,root.refresh);return()=>{const exiting=!open.value&&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.registerRoot(content)},role:"menu",hidden:!present.value,"aria-label":root.label.value,dir:root.direction.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"menu-button","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state)})}}});const MenuItem=defineComponent({name:"SectileMenuItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuItem");const state=Object.freeze({get value(){return props.value},get highlighted(){root.itemProjection.get(props.value);return root.isItemHighlighted(props.value)},get open(){root.itemProjection.get(props.value);return root.isItemOpen(props.value)},get disabled(){root.itemProjection.get(props.value);return props.disabled||root.isItemDisabled(props.value)}});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.registerItem(node instanceof HTMLElement?node:void 0,props.value)},role:root.kind==="navigation-menu"?void 0:"menuitem","aria-disabled":state.disabled?"true":void 0,"data-sectile-menu-id":props.value,"data-scope":root.kind==="navigation-menu"?"navigation-menu":root.kind==="menubar"?"menubar":"menu","data-part":"item","data-highlighted":state.highlighted?"":void 0,"data-state":state.open?"open":"closed"}),{default:()=>slots["default"]?.(state)})}});const MenuSubContent=defineComponent({name:"SectileMenuSubContent",inheritAttrs:false,props:{for:{type:String,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuSubContent");const element=shallowRef();const open=computed(()=>{root.itemProjection.get(props.for);return root.state.open&&root.isItemOpen(props.for)});const present=useMenuPresence(open,element,()=>root.refresh(props.for));return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const submenu=node instanceof HTMLElement?node:void 0;element.value=submenu;root.registerSubmenu(submenu,props.for)},role:root.kind==="navigation-menu"?void 0:"menu",hidden:!present.value,dir:root.direction.value,"data-sectile-submenu-for":props.for,...exiting?{inert:true,"aria-hidden":"true"}:{},"data-scope":root.kind==="navigation-menu"?"navigation-menu":"menu","data-part":"sub-content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state)})}}});const MenuSeparator=defineComponent({name:"SectileMenuSeparator",inheritAttrs:false,props:partProps,setup(props,{attrs}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"separator","data-scope":"menu","data-part":"separator"}))}});function useMenuPresence(open,element,refresh){const retainedReopen=shallowRef(0);const present=usePresence(open,element,()=>{retainedReopen.value+=1});watch([present,retainedReopen],async(_next,_previous,onCleanup)=>{let active=true;onCleanup(()=>{active=false});await nextTick();if(active)refresh()},{flush:"post"});return present}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside a menu root.`);return root}export{MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot,NavigationMenuRoot};
|
|
1
|
+
import{Fragment,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowReactive,shallowRef,watch}from"vue";import{createMenu}from"@sectile/dom/menu";import{createMenuButton}from"@sectile/dom/menu-button";import{createMenubar}from"@sectile/dom/menubar";import{createNavigationMenu}from"@sectile/dom/navigation-menu";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{invalidateItemProjection,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./presence/presence.js";const key=Symbol("SectileMenuRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const commonProps={items:{type:Array,required:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},defaultHighlightedValue:{type:String,default:null},label:{type:String,default:void 0},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const menuButtonProps={...commonProps,open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"}};function createRoot(kind,rootProps,providerOnly=false){return defineComponent({name:kind==="menu-button"?"SectileMenuButtonRoot":kind==="menubar"?"SectileMenubarRoot":kind==="navigation-menu"?"SectileNavigationMenuRoot":"SectileMenuRoot",inheritAttrs:false,props:rootProps,emits:{"update:open":_value=>true,invoke:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const runtimeProps=props;const direction=useHostDirection();const baseID=useHostId();const root=shallowRef();const trigger=shallowRef();const connection=shallowRef();const controlled=useControlledStateInvariant("MenuButtonRoot","open",()=>kind==="menu-button"?runtimeProps.open:void 0);let currentOpen=kind==="menu-button"?runtimeProps.open??runtimeProps.defaultOpen??false:true;let currentHighlighted=runtimeProps.defaultHighlightedValue;let currentOpenPath=[];let currentOpenPathSet=new Set;let disabledItemSet=new Set(runtimeProps.disabledItems);const itemProjection=shallowReactive(new Map);const state=shallowReactive({open:kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:currentOpen,highlightedValue:currentHighlighted,openPath:currentOpenPath,disabled:runtimeProps.disabled});const position=computed(()=>kind==="menu-button"?runtimeProps.position??true:false);const strategy=computed(()=>runtimeProps.strategy??"absolute");const publishOpen=value=>{currentOpen=value;const publicValue=kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:value;if(state.open!==publicValue)state.open=publicValue};const publishHighlight=value=>{const previous=currentHighlighted;if(previous===value)return;currentHighlighted=value;state.highlightedValue=value;invalidateItemProjection(itemProjection,previous);invalidateItemProjection(itemProjection,value)};const publishOpenPath=value=>{const previousSet=currentOpenPathSet;const nextSet=new Set(value);const pathChanged=!sameIDs(currentOpenPath,value);currentOpenPath=value;currentOpenPathSet=nextSet;if(pathChanged)state.openPath=value;for(const id of previousSet)if(!nextSet.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextSet)if(!previousSet.has(id))invalidateItemProjection(itemProjection,id)};const publishSnapshot=snapshot=>{publishOpen(snapshot.open);publishHighlight(snapshot.cursor.current);publishOpenPath(snapshot.openPath)};const updateOwnerProjection=()=>{const nextDisabledItems=new Set(runtimeProps.disabledItems);if(state.disabled===runtimeProps.disabled){for(const id of disabledItemSet)if(!nextDisabledItems.has(id))invalidateItemProjection(itemProjection,id);for(const id of nextDisabledItems)if(!disabledItemSet.has(id))invalidateItemProjection(itemProjection,id)}else state.disabled=runtimeProps.disabled;disabledItemSet=nextDisabledItems};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot!==void 0)publishSnapshot(snapshot)};const refreshParts=()=>{if(root.value===void 0||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-menu-id]").forEach(element=>{const id=element.dataset["sectileMenuId"];if(id!==void 0)connection.value?.setItemAttributes(element,id)});root.value.querySelectorAll("[data-sectile-submenu-for]").forEach(element=>{const id=element.dataset["sectileSubmenuFor"];if(id!==void 0)connection.value?.setSubmenuAttributes(element,id)})};const connect=()=>{connection.value?.disconnect();updateOwnerProjection();if(root.value===void 0||kind==="menu-button"&&trigger.value===void 0)return;const reconciled=reconcileCollectionState(runtimeProps.items.map(item=>item.id),[],currentHighlighted,runtimeProps.disabledItems,"single",{preserveNullCurrent:true});publishHighlight(reconciled.current);const options={root:root.value,items:runtimeProps.items,disabledItems:runtimeProps.disabledItems,disabled:runtimeProps.disabled,direction:direction.value,baseID,manageVisibility:false,...kind==="menu-button"?{position:runtimeProps.position??true,side:runtimeProps.side??"bottom",align:runtimeProps.align??"start",sideOffset:runtimeProps.sideOffset??8,collisionPadding:runtimeProps.collisionPadding??8,...runtimeProps.collisionBoundary===void 0?{}:{collisionBoundary:runtimeProps.collisionBoundary},avoidCollisions:runtimeProps.avoidCollisions??true,hideWhenDetached:runtimeProps.hideWhenDetached??false,strategy:runtimeProps.strategy??"absolute",tracking:runtimeProps.tracking??"events"}:{},...runtimeProps.policies===void 0?{}:{policies:runtimeProps.policies},defaultHighlightedValue:reconciled.current,...runtimeProps.label===void 0?{}:{label:runtimeProps.label},...runtimeProps.textValue===void 0?{}:{typeahead:{textValue:runtimeProps.textValue}},onOpenChange:value=>{publishOpen(value);emit("update:open",value)},onInvoke:value=>emit("invoke",value),onUpdate:refresh};connection.value=kind==="menu-button"?createMenuButton({...options,trigger:trigger.value,...controlled?{open:runtimeProps.open}:{defaultOpen:currentOpen}}):kind==="menubar"?createMenubar(options):kind==="navigation-menu"?createNavigationMenu(options):createMenu(options);refreshParts();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};const registerRoot=element=>{if(root.value===element)return;root.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};const registerTrigger=element=>{if(trigger.value===element)return;trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};provide(key,{state,kind,label:computed(()=>runtimeProps.label),direction,position,strategy,itemProjection,isItemHighlighted:id=>currentHighlighted===id,isItemOpen:id=>currentOpenPathSet.has(id),isItemDisabled:id=>state.disabled||disabledItemSet.has(id),registerRoot,registerTrigger,refresh:parentID=>connection.value?.refresh(parentID??null),registerItem:(element,id)=>connection.value?.setItemAttributes(element,id),registerSubmenu:(element,parent)=>connection.value?.setSubmenuAttributes(element,parent)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>runtimeProps.items,()=>runtimeProps.disabledItems,()=>runtimeProps.disabled,()=>runtimeProps.label,()=>runtimeProps.textValue,()=>runtimeProps.policies,direction,()=>runtimeProps.position,()=>runtimeProps.side,()=>runtimeProps.align,()=>runtimeProps.sideOffset,()=>runtimeProps.collisionPadding,()=>runtimeProps.collisionBoundary,()=>runtimeProps.avoidCollisions,()=>runtimeProps.hideWhenDetached,()=>runtimeProps.strategy,()=>runtimeProps.tracking],connect);watch(()=>runtimeProps.open,value=>{if(!controlled||value===void 0)return;currentOpen=value;state.open=value;if(connection.value===void 0)return;const result=connection.value.syncControlledValue(value);if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{if(providerOnly)return h(Fragment,null,slots["default"]?.(state)??[]);return h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef:node=>registerRoot(node instanceof HTMLElement?node:void 0),role:kind==="navigation-menu"?"navigation":kind==="menubar"?"menubar":"menu","aria-label":runtimeProps.label,dir:direction.value,"data-scope":kind==="navigation-menu"?"navigation-menu":kind==="menubar"?"menubar":"menu","data-part":"root","data-state":state.open?"open":"closed"}),{default:()=>slots["default"]?.(state)})}}})}const MenuRoot=createRoot("menu",commonProps);const MenubarRoot=createRoot("menubar",commonProps);const NavigationMenuRoot=createRoot("navigation-menu",commonProps);const MenuButtonRoot=createRoot("menu-button",menuButtonProps,true);const MenuButtonTrigger=defineComponent({name:"SectileMenuButtonTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLElement?node:void 0),type:props.as==="button"?"button":void 0,disabled:root.state.disabled,"aria-haspopup":"menu","aria-expanded":String(root.state.open),"data-scope":"menu-button","data-part":"trigger"}),{default:()=>slots["default"]?.(root.state)})}});const MenuButtonContent=defineComponent({name:"SectileMenuButtonContent",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonContent");const element=shallowRef();const open=computed(()=>root.state.open);const present=useMenuPresence(open,element,root.refresh);return()=>{const exiting=!open.value&&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.registerRoot(content)},role:"menu",hidden:!present.value,"aria-label":root.label.value,dir:root.direction.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"menu-button","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state)})}}});const MenuItem=defineComponent({name:"SectileMenuItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuItem");const state=Object.freeze({get value(){return props.value},get highlighted(){root.itemProjection.get(props.value);return root.isItemHighlighted(props.value)},get open(){root.itemProjection.get(props.value);return root.isItemOpen(props.value)},get disabled(){root.itemProjection.get(props.value);return props.disabled||root.isItemDisabled(props.value)}});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.registerItem(node instanceof HTMLElement?node:void 0,props.value)},role:root.kind==="navigation-menu"?void 0:"menuitem","aria-disabled":state.disabled?"true":void 0,"data-sectile-menu-id":props.value,"data-scope":root.kind==="navigation-menu"?"navigation-menu":root.kind==="menubar"?"menubar":"menu","data-part":"item","data-highlighted":state.highlighted?"":void 0,"data-state":state.open?"open":"closed"}),{default:()=>slots["default"]?.(state)})}});const MenuSubContent=defineComponent({name:"SectileMenuSubContent",inheritAttrs:false,props:{for:{type:String,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuSubContent");const element=shallowRef();const open=computed(()=>{root.itemProjection.get(props.for);return root.state.open&&root.isItemOpen(props.for)});const present=useMenuPresence(open,element,()=>root.refresh(props.for));return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const submenu=node instanceof HTMLElement?node:void 0;element.value=submenu;root.registerSubmenu(submenu,props.for)},role:root.kind==="navigation-menu"?void 0:"menu",hidden:!present.value,dir:root.direction.value,"data-sectile-submenu-for":props.for,...exiting?{inert:true,"aria-hidden":"true"}:{},"data-scope":root.kind==="navigation-menu"?"navigation-menu":"menu","data-part":"sub-content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state)})}}});const MenuSeparator=defineComponent({name:"SectileMenuSeparator",inheritAttrs:false,props:partProps,setup(props,{attrs}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"separator","data-scope":"menu","data-part":"separator"}))}});function useMenuPresence(open,element,refresh){const retainedReopen=shallowRef(0);const present=usePresence(open,element,()=>{retainedReopen.value+=1});watch([present,retainedReopen],async(_next,_previous,onCleanup)=>{let active=true;onCleanup(()=>{active=false});await nextTick();if(active)refresh()},{flush:"post"});return present}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside a menu root.`);return root}export{MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot,NavigationMenuRoot};
|
|
2
2
|
//# sourceMappingURL=menu.js.map
|
package/dist/meter-group.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,provide}from"vue";import{createMeterGroupState}from"@sectile/core/meter-group";import{getMeterGroupRootAttributes,getMeterGroupSegmentAttributes,getMeterGroupTrackAttributes}from"@sectile/dom/meter-group";import{Primitive}from"./primitive.js";import{normalizeDecimalInput}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,provide}from"vue";import{createMeterGroupState}from"@sectile/core/meter-group";import{getMeterGroupRootAttributes,getMeterGroupSegmentAttributes,getMeterGroupTrackAttributes}from"@sectile/dom/meter-group";import{Primitive}from"./primitive.js";import{normalizeDecimalInput}from"./input/decimal-input.js";const meterGroupKey=Symbol("SectileMeterGroupRoot");const meterGroupEntryKey=Symbol("SectileMeterGroupEntry");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const keyedPartProps={id:{type:String,required:true},...partProps};const MeterGroupRoot=defineComponent({name:"SectileMeterGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},max:{type:[Number,String],default:100},low:{type:[Number,String],default:void 0},high:{type:[Number,String],default:void 0},optimum:{type:[Number,String],default:void 0},label:{type:String,default:void 0},formatValue:{type:Function,default:void 0},formatTotal:{type:Function,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const projection=computed(()=>{const entries=new Map(props.items.map(entry=>[entry.id,entry]));const state=createMeterGroupState({items:props.items.map(entry=>({id:entry.id,value:normalizeDecimalInput(entry.value)})),max:normalizeDecimalInput(props.max),...props.low===void 0?{}:{low:normalizeDecimalInput(props.low)},...props.high===void 0?{}:{high:normalizeDecimalInput(props.high)},...props.optimum===void 0?{}:{optimum:normalizeDecimalInput(props.optimum)}});const segments=Object.freeze(state.segments.map(segment=>{const entry=entries.get(segment.id);if(entry===void 0)throw new Error("Internal invariant breach: MeterGroup entry lookup failed.");return projectSegment(state,entry,props.formatValue)}));const rootAttributes=getMeterGroupRootAttributes(state);return Object.freeze({state,entries,slot:Object.freeze({segments,max:state.max,total:state.total,remaining:state.remaining,percentage:Number(rootAttributes["data-percentage"]),zone:state.zone,valueText:props.formatTotal?.(state.total,state.max)??`${state.total} / ${state.max}`})})});provide(meterGroupKey,{projection});return()=>{const current=projection.value;const projected=getMeterGroupRootAttributes(current.state,{...props.label===void 0?{}:{label:props.label},...typeof attrs["aria-labelledby"]==="string"?{labelledBy:attrs["aria-labelledby"]}:{},...typeof attrs["aria-describedby"]==="string"?{describedBy:attrs["aria-describedby"]}:{}});return h(Primitive,mergeProps(attrs,projected,{as:props.as,asChild:props.asChild}),{default:()=>slots["default"]?.(current.slot)})}}});const MeterGroupTrack=defineComponent({name:"SectileMeterGroupTrack",inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){const root=useMeterGroup("MeterGroupTrack");return()=>h(Primitive,mergeProps(attrs,getMeterGroupTrackAttributes(root.projection.value.state),{as:props.as,asChild:props.asChild}),slots)}});const MeterGroupSegment=defineComponent({name:"SectileMeterGroupSegment",inheritAttrs:false,props:keyedPartProps,slots:Object,setup(props,{attrs,slots}){const root=useMeterGroup("MeterGroupSegment");const segment=computed(()=>segmentByID(root,props.id??"","MeterGroupSegment"));provide(meterGroupEntryKey,{segment});return()=>{const current=segment.value;const projected=getMeterGroupSegmentAttributes(root.projection.value.state,current.id,{label:current.label,formatValue:()=>current.valueText});if(!projected.ok)throw new TypeError(`MeterGroupSegment id ${current.id} is unavailable.`);return h(Primitive,mergeProps(attrs,projected.value,{as:props.as,asChild:props.asChild}),{default:()=>slots["default"]?.(current)})}}});const MeterGroupIndicator=entryPart("SectileMeterGroupIndicator","indicator","div",segment=>({"aria-hidden":"true","data-percentage":segment.percentage,"data-start-percentage":segment.startPercentage,"data-end-percentage":segment.endPercentage,style:[`--sectile-meter-group-percentage: ${segment.percentage}%`,`--sectile-meter-group-start-percentage: ${segment.startPercentage}%`,`--sectile-meter-group-end-percentage: ${segment.endPercentage}%`].join("; ")}));const MeterGroupValueText=defineComponent({name:"SectileMeterGroupValueText",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useMeterGroup("MeterGroupValueText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"meter-group","data-part":"value-text"}),{default:()=>slots["default"]?.(root.projection.value.slot)??root.projection.value.slot.valueText})}});const MeterGroupList=meterGroupPart("SectileMeterGroupList","list","ul",{"aria-hidden":"true"});const MeterGroupItem=defineComponent({name:"SectileMeterGroupItem",inheritAttrs:false,props:{id:{type:String,required:true},as:{type:[String,Object,Function],default:"li"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useMeterGroup("MeterGroupItem");const segment=computed(()=>segmentByID(root,props.id,"MeterGroupItem"));provide(meterGroupEntryKey,{segment});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"meter-group","data-part":"item","data-id":segment.value.id,"aria-hidden":"true"}),{default:()=>slots["default"]?.(segment.value)})}});const MeterGroupItemIndicator=entryPart("SectileMeterGroupItemIndicator","item-indicator","span",segment=>({"aria-hidden":"true","data-percentage":segment.percentage}));const MeterGroupItemLabel=entryTextPart("SectileMeterGroupItemLabel","item-label",segment=>segment.label);const MeterGroupItemValue=entryTextPart("SectileMeterGroupItemValue","item-value",segment=>segment.valueText);function projectSegment(state,entry,formatValue){const attributes=getMeterGroupSegmentAttributes(state,entry.id,{label:entry.label,...formatValue===void 0?{}:{formatValue:value=>formatValue(value,entry)}});if(!attributes.ok)throw new Error("Internal invariant breach: MeterGroup segment projection failed.");const segment=state.segments.find(candidate=>candidate.id===entry.id);if(segment===void 0)throw new Error("Internal invariant breach: MeterGroup segment lookup failed.");return Object.freeze({id:entry.id,label:entry.label,value:segment.value,valueText:String(attributes.value["aria-valuetext"]),start:segment.start,end:segment.end,percentage:Number(attributes.value["data-percentage"]),startPercentage:Number(attributes.value["data-start-percentage"]),endPercentage:Number(attributes.value["data-end-percentage"])})}function segmentByID(root,id,part){const segment=root.projection.value.slot.segments.find(candidate=>candidate.id===id);if(segment===void 0)throw new TypeError(`${part} id ${id} is unavailable.`);return segment}function meterGroupPart(name,part,defaultAs="div",extra={}){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:defaultAs},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){useMeterGroup(name);return()=>h(Primitive,mergeProps(attrs,extra,{as:props.as,asChild:props.asChild,"data-scope":"meter-group","data-part":part}),slots)}})}function entryPart(name,part,defaultAs,project){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:defaultAs},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const entry=useMeterGroupEntry(name);return()=>h(Primitive,mergeProps(attrs,project(entry.segment.value),{as:props.as,asChild:props.asChild,"data-scope":"meter-group","data-part":part,"data-id":entry.segment.value.id}),slots)}})}function entryTextPart(name,part,text){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const entry=useMeterGroupEntry(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"meter-group","data-part":part,"data-id":entry.segment.value.id}),{default:()=>slots["default"]?.(entry.segment.value)??text(entry.segment.value)})}})}function useMeterGroup(part){const root=inject(meterGroupKey);if(root===void 0)throw new TypeError(`${part} must be used inside MeterGroupRoot.`);return root}function useMeterGroupEntry(part){const entry=inject(meterGroupEntryKey);if(entry===void 0)throw new TypeError(`${part} must be used inside MeterGroupSegment or MeterGroupItem.`);return entry}export{MeterGroupIndicator,MeterGroupItem,MeterGroupItemIndicator,MeterGroupItemLabel,MeterGroupItemValue,MeterGroupList,MeterGroupRoot,MeterGroupSegment,MeterGroupTrack,MeterGroupValueText};
|
|
2
2
|
//# sourceMappingURL=meter-group.js.map
|