@sectile/vue 0.18.1 → 0.18.2
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/{internal/form-control.js → form/control.js} +1 -1
- 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-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/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} +1 -1
- 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/virtual/virtual-collection.js.map +1 -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.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 +93 -93
- 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.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.map +0 -1
- package/dist/internal/virtual-core.js.map +0 -1
- 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-collection.d.ts +0 -0
- /package/dist/{internal → virtual}/virtual-collection.js +0 -0
- /package/dist/{internal → virtual}/virtual-core.d.ts +0 -0
- /package/dist/{internal → virtual}/virtual-core.js +0 -0
- /package/dist/{internal → virtual}/virtual-list.d.ts +0 -0
- /package/dist/{internal → virtual}/virtual-list.js +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){const component=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);const connection=shallowRef();const controlled=useControlledStateInvariant(config.name,"modelValue",()=>props.modelValue);const acceptedValue=shallowRef(controlled?props.modelValue:void 0);const initialProjectedValue=controlled?props.modelValue:props.defaultValue;const projectedText=shallowRef(initialProjectedValue===null||initialProjectedValue===void 0?"":config.formatValue(initialProjectedValue));const projectedNative=shallowRef(props.native);const projectedDisabled=shallowRef(props.disabled);const projectedReadonly=shallowRef(props.readonly);const projectedRequired=shallowRef(props.required);let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const capture=()=>{const target=connection.value;const element=input.value;if(target===void 0||element===void 0)return void 0;return Object.freeze({value:target.getValue(),inputState:captureNativeTextState(element,target.getText())})};const connect=preserved=>{const element=input.value;if(element===void 0)return;connection.value?.disconnect();projectedNative.value=props.native;projectedDisabled.value=props.disabled;projectedReadonly.value=props.readonly;projectedRequired.value=props.required;const fieldOptions={input:element,...props.policies===void 0?{}:{policies:props.policies},...controlled?{value:acceptedValue.value}:{defaultValue:preserved===void 0?props.defaultValue:preserved.value},...preserved===void 0?{}:{defaultInputState:preserved.inputState},disabled:props.disabled,readOnly:props.readonly,required:props.required,...props.label===void 0?{}:{label:props.label},native:props.native,onValueChange:value=>{emit("update:modelValue",value)},onUpdate:()=>{const target=connection.value;if(target===void 0)return;void target.getSnapshot().revision;projectedText.value=target.getText()}};connection.value=config.create(fieldOptions);projectedText.value=connection.value.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.value?.disconnect()});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection.value===void 0)return;const result=connection.value.syncControlledValues({value});if(!result.ok)throw new TypeError("Controlled native field synchronization failed.");acceptedValue.value=value;projectedText.value=connection.value.getText()});watch([()=>props.policies,()=>props.disabled,()=>props.readonly,()=>props.required,()=>props.label,()=>props.native],requestConnect);return()=>h("input",mergeProps(attrs,{ref:element=>{input.value=element instanceof HTMLInputElement?element:void 0},"data-scope":config.scope,"data-part":"input",type:projectedNative.value&&config.nativeInputType!==void 0?config.nativeInputType:"text",inputmode:projectedNative.value?void 0:config.inputMode,placeholder:projectedNative.value?void 0:config.placeholder,disabled:projectedDisabled.value,readonly:projectedReadonly.value,required:projectedRequired.value,"aria-disabled":String(projectedDisabled.value),"aria-readonly":String(projectedReadonly.value),"aria-label":props.label,onCompositionstart:()=>setInputComposing(true),onCompositionend:()=>setInputComposing(false),value:projectedText.value},participation.controlProps.value))}});return component}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,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"}
|
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":"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,6BACzC,OAAS,mCAAoC,4BAA+B,6BAC5E,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"}
|
|
1
|
+
{"version":3,"sources":["../src/listbox.ts"],"mappings":"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","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
|
package/dist/meter-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/meter-group.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,YAKK,MACP,OAAS,0BAAmD,4BAC5D,OACE,4BACA,+BACA,iCACK,2BACP,OAAS,cAAmC,iBAC5C,OAAS,0BAA6B,
|
|
1
|
+
{"version":3,"sources":["../src/meter-group.ts"],"mappings":"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","names":[],"file":"meter-group.js"}
|
package/dist/meter.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,provide}from"vue";import{createMeterState}from"@sectile/core/meter";import{getMeterIndicatorAttributes,getMeterRootAttributes}from"@sectile/dom/meter";import{Primitive}from"./primitive.js";import{normalizeDecimalInput}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,provide}from"vue";import{createMeterState}from"@sectile/core/meter";import{getMeterIndicatorAttributes,getMeterRootAttributes}from"@sectile/dom/meter";import{Primitive}from"./primitive.js";import{normalizeDecimalInput}from"./input/decimal-input.js";const meterKey=Symbol("SectileMeterRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const MeterRoot=defineComponent({name:"SectileMeterRoot",inheritAttrs:false,props:{value:{type:[Number,String],required:true},min:{type:[Number,String],default:0},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},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const state=computed(()=>{const meter=createMeterState({value:normalizeDecimalInput(props.value),min:normalizeDecimalInput(props.min),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 projected=getMeterRootAttributes(meter);const valueText=props.formatValue?.(meter.value)??meter.value;return Object.freeze({value:meter.value,min:meter.min,max:meter.max,low:meter.low,high:meter.high,optimum:meter.optimum,valueText,percentage:Number(projected["data-percentage"]),zone:meter.zone})});provide(meterKey,{state});return()=>{const current=state.value;const projected=getMeterRootAttributes(createMeterState({value:current.value,min:current.min,max:current.max,low:current.low,high:current.high,optimum:current.optimum}),{...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"]}:{},...props.formatValue===void 0?{}:{formatValue:props.formatValue}});return h(Primitive,mergeProps(attrs,projected,{as:props.as,asChild:props.asChild}),{default:()=>slots["default"]?.(current)})}}});const MeterTrack=meterPart("SectileMeterTrack","track");const MeterIndicator=defineComponent({name:"SectileMeterIndicator",inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){const root=useMeter("MeterIndicator");return()=>{const current=root.state.value;const meter=createMeterState({value:current.value,min:current.min,max:current.max,low:current.low,high:current.high,optimum:current.optimum});return h(Primitive,mergeProps(attrs,getMeterIndicatorAttributes(meter),{as:props.as,asChild:props.asChild}),slots)}}});const MeterValueText=defineComponent({name:"SectileMeterValueText",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useMeter("MeterValueText");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"meter","data-part":"value-text"}),{default:()=>slots["default"]?.(root.state.value)??root.state.value.valueText})}});function meterPart(name,part){return defineComponent({name,inheritAttrs:false,props:partProps,setup(props,{attrs,slots}){useMeter(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"meter","data-part":part}),slots)}})}function useMeter(part){const root=inject(meterKey);if(root===void 0)throw new TypeError(`${part} must be used inside MeterRoot.`);return root}export{MeterIndicator,MeterRoot,MeterTrack,MeterValueText};
|
|
2
2
|
//# sourceMappingURL=meter.js.map
|
package/dist/meter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/meter.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,YAKK,MACP,OAAS,qBAAwB,sBACjC,OACE,4BACA,2BACK,qBACP,OAAS,cAAmC,iBAC5C,OAAS,0BAA6B,
|
|
1
|
+
{"version":3,"sources":["../src/meter.ts"],"mappings":"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","names":[],"file":"meter.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createMultiThumbSlider}from"@sectile/dom/multi-thumb-slider";import{createSliderControllerFromRange}from"@sectile/dom/slider";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createMultiThumbSlider}from"@sectile/dom/multi-thumb-slider";import{createSliderControllerFromRange}from"@sectile/dom/slider";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{Primitive}from"./primitive.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileMultiThumbSliderRoot");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const MultiThumbSliderRoot=defineComponent({name:"SectileMultiThumbSliderRoot",inheritAttrs:false,props:{thumbs:{type:Array,required:true},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:void 0},min:{type:[Number,String],default:0},max:{type:[Number,String],default:100},step:{type:[Number,String],default:1},orientation:{type:String,default:"horizontal"},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},getThumbLabel:{type:Function,default:void 0},formatValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_values=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef();const track=shallowRef();const submissions=new Map;const connection=shallowRef();const local=shallowRef(normalizeValues(props.modelValue??props.defaultValue??props.thumbs.map(()=>props.min)));const controlled=useControlledStateInvariant("MultiThumbSliderRoot","modelValue",()=>props.modelValue);const rangeController=computed(()=>{const result=createSliderControllerFromRange({min:String(props.min),max:String(props.max),step:String(props.step)});if(!result.ok)throw new TypeError(result.error.message);return result.value});const current=computed(()=>normalizeValues(props.modelValue??local.value));const percentages=computed(()=>current.value.map(value=>{const tick=rangeController.value.range.tickOf(value);if(tick===null)throw new TypeError(`Multi-thumb slider value ${value} is outside its exact range.`);return rangeController.value.range.count===0?0:tick/rangeController.value.range.count*100}));const active=shallowRef(props.thumbs[0]??null);const participation=useCompositeFormControl({root:()=>root.value??null,focusTarget:()=>root.value?.querySelector("[data-sectile-multi-thumb]")??root.value??null,submissions:()=>current.value.flatMap((_value,index)=>{const element=submissions.get(index);return element===void 0?[]:[{element:()=>element,relativeName:[index],capabilities:hiddenValueSubmissionCapabilities}]})});const state=computed(()=>Object.freeze({values:current.value,percentages:percentages.value,activeThumb:active.value,disabled:props.disabled,readonly:props.readonly}));const ticks=values=>values.map(value=>{const tick=rangeController.value.range.tickOf(value);if(tick===null)throw new TypeError(`Multi-thumb slider value ${value} is outside its exact range.`);return tick});const refresh=()=>{if(connection.value===void 0)return;local.value=connection.value.getValues();active.value=connection.value.getSnapshot().state.cursor.current};const connect=()=>{connection.value?.disconnect();if(root.value===void 0)return;connection.value=createMultiThumbSlider({root:root.value,...track.value===void 0?{}:{track:track.value},thumbs:props.thumbs,min:String(props.min),max:String(props.max),step:String(props.step),...controlled?{values:ticks(current.value)}:{defaultValues:ticks(current.value)},disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,...props.label===void 0?{}:{label:props.label},...props.getThumbLabel===void 0?{}:{getThumbLabel:props.getThumbLabel},...props.formatValue===void 0?{}:{formatValue:props.formatValue},...props.policies===void 0?{}:{policies:props.policies},onValuesChange:nextTicks=>{const next=Object.freeze(nextTicks.map(tick=>{const value=rangeController.value.range.valueAt(tick);if(value===null)throw new TypeError(`Multi-thumb slider tick ${tick} is outside its exact range.`);return value}));local.value=next;emit("update:modelValue",next)},onUpdate:refresh});refreshThumbs();refresh()};const refreshThumbs=()=>{if(root.value===void 0||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-multi-thumb]").forEach(element=>{const id=element.dataset["sectileMultiThumb"];if(id!==void 0)connection.value?.setThumbAttributes(element,id)})};provide(key,{state,thumbs:computed(()=>props.thumbs),orientation:computed(()=>props.orientation),connection:computed(()=>connection.value),registerTrack:element=>{track.value=element},registerThumb:(id,element)=>connection.value?.setThumbAttributes(element,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.thumbs,()=>props.min,()=>props.max,()=>props.step,()=>props.orientation,()=>props.disabled,()=>props.readonly,()=>props.policies],connect);watch(()=>props.modelValue,values=>{if(!controlled||values===void 0||connection.value===void 0)return;const result=connection.value.syncControlledValues({values:ticks(normalizeValues(values)),highlightedValue:active.value});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{const style=Object.fromEntries(percentages.value.map((value,index)=>[`--sectile-thumb-${index}-percentage`,`${value}%`]));const visual=h(Primitive,mergeProps(participation.controlProps.value,attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.value=node instanceof HTMLElement?node:void 0},role:"group","aria-label":props.label,"data-scope":"multi-thumb-slider","data-part":"root","data-orientation":props.orientation,style}),{default:()=>slots["default"]?.(state.value)});if(props.name===void 0&&props.form===void 0&&!props.required&&!participation.participating)return visual;return[visual,...current.value.map((value,index)=>h("input",{key:index,ref:element=>{if(element instanceof HTMLInputElement)submissions.set(index,element);else submissions.delete(index)},type:"hidden",name:props.name,form:props.form,value,disabled:props.disabled}))]}}});const MultiThumbSliderTrack=defineComponent({name:"SectileMultiThumbSliderTrack",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("MultiThumbSliderTrack");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrack(node instanceof HTMLElement?node:void 0),"data-scope":"multi-thumb-slider","data-part":"track","data-orientation":root.orientation.value}),{default:()=>slots["default"]?.(root.state.value)})}});const MultiThumbSliderRange=defineComponent({name:"SectileMultiThumbSliderRange",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("MultiThumbSliderRange");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"aria-hidden":"true","data-scope":"multi-thumb-slider","data-part":"range",style:{"--sectile-range-start":`${Math.min(...root.state.value.percentages)}%`,"--sectile-range-end":`${Math.max(...root.state.value.percentages)}%`}}),{default:()=>slots["default"]?.(root.state.value)})}});const MultiThumbSliderThumb=defineComponent({name:"SectileMultiThumbSliderThumb",inheritAttrs:false,props:{value:{type:String,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MultiThumbSliderThumb");const slot=computed(()=>{const index=root.thumbs.value.indexOf(props.value);return{...root.state.value,value:props.value,index,percentage:root.state.value.percentages[index]??0}});return()=>{const index=root.thumbs.value.indexOf(props.value);return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerThumb(props.value,node)},"data-sectile-multi-thumb":props.value,"data-scope":"multi-thumb-slider","data-part":"thumb","data-index":index,style:{"--sectile-thumb-percentage":`${root.state.value.percentages[index]??0}%`}}),{default:()=>slots["default"]?.({...slot.value,index,percentage:root.state.value.percentages[index]??0})})}}});function normalizeValues(values){return Object.freeze(values.map(String))}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside MultiThumbSliderRoot.`);return root}export{MultiThumbSliderRange,MultiThumbSliderRoot,MultiThumbSliderThumb,MultiThumbSliderTrack};
|
|
2
2
|
//# sourceMappingURL=multi-thumb-slider.js.map
|