@sectile/vue 0.18.1 → 0.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.d.ts +1 -1
- package/dist/accordion.js +1 -1
- package/dist/carousel.d.ts +1 -1
- package/dist/carousel.js +1 -1
- package/dist/cascade-list.js +1 -1
- package/dist/cascade-list.js.map +1 -1
- package/dist/cascade-select.js +1 -1
- package/dist/cascade-select.js.map +1 -1
- package/dist/checkbox-group.js +1 -1
- package/dist/checkbox-group.js.map +1 -1
- package/dist/checkbox.d.ts +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/color-picker.js +1 -1
- package/dist/color-picker.js.map +1 -1
- package/dist/combobox.d.ts +1 -1
- package/dist/combobox.js +1 -1
- package/dist/combobox.js.map +1 -1
- package/dist/disclosure.d.ts +1 -1
- package/dist/disclosure.js +1 -1
- package/dist/editable.js +1 -1
- package/dist/editable.js.map +1 -1
- package/dist/{internal/form-context.d.ts → form/context.d.ts} +3 -2
- package/dist/{internal/form-context.js → form/context.js} +2 -2
- package/dist/form/context.js.map +1 -0
- package/dist/form/contracts.d.ts +219 -0
- package/dist/form/contracts.js +2 -0
- package/dist/form/contracts.js.map +1 -0
- package/dist/{internal/form-control-inventory.js → form/control-inventory.js} +1 -1
- package/dist/form/control-inventory.js.map +1 -0
- package/dist/form/control.js +2 -0
- package/dist/form/control.js.map +1 -0
- package/dist/form/field.d.ts +81 -0
- package/dist/form/field.js +2 -0
- package/dist/form/field.js.map +1 -0
- package/dist/form/native.d.ts +15 -0
- package/dist/form/native.js +2 -0
- package/dist/form/native.js.map +1 -0
- package/dist/form/part.d.ts +16 -0
- package/dist/form/part.js +2 -0
- package/dist/form/part.js.map +1 -0
- package/dist/form/parts.d.ts +93 -0
- package/dist/form/parts.js +2 -0
- package/dist/form/parts.js.map +1 -0
- package/dist/{internal/form-presence-parts.d.ts → form/presence-parts.d.ts} +1 -1
- package/dist/form/presence-parts.js +2 -0
- package/dist/form/presence-parts.js.map +1 -0
- package/dist/form/root.d.ts +2 -0
- package/dist/form/root.js +2 -0
- package/dist/form/root.js.map +1 -0
- package/dist/form/selectors.d.ts +7 -0
- package/dist/form/selectors.js +2 -0
- package/dist/form/selectors.js.map +1 -0
- package/dist/form.d.ts +8 -398
- package/dist/form.js +1 -1
- package/dist/form.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/input/decimal-input.js.map +1 -0
- package/dist/input/native-field.js +2 -0
- package/dist/input/native-field.js.map +1 -0
- package/dist/input/native-input.js.map +1 -0
- package/dist/input/native-range-field.d.ts +86 -0
- package/dist/input/native-range-field.js +2 -0
- package/dist/input/native-range-field.js.map +1 -0
- package/dist/input/native-text-state.d.ts +2 -0
- package/dist/input/native-text-state.js +2 -0
- package/dist/input/native-text-state.js.map +1 -0
- package/dist/internal/cascade-choice.d.ts +1 -1
- package/dist/internal/cascade-choice.js +1 -1
- package/dist/internal/cascade-choice.js.map +1 -1
- package/dist/internal/controlled-state.js +1 -1
- package/dist/internal/controlled-state.js.map +1 -1
- package/dist/listbox.d.ts +1 -1
- package/dist/listbox.js +1 -1
- package/dist/listbox.js.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/meter-group.js +1 -1
- package/dist/meter-group.js.map +1 -1
- package/dist/meter.js +1 -1
- package/dist/meter.js.map +1 -1
- package/dist/multi-thumb-slider.js +1 -1
- package/dist/multi-thumb-slider.js.map +1 -1
- package/dist/navigation-menu.d.ts +1 -1
- package/dist/navigation-menu.js +1 -1
- package/dist/number-field.d.ts +1 -1
- package/dist/number-field.js +1 -1
- package/dist/number-field.js.map +1 -1
- package/dist/{alert-dialog.d.ts → overlay/alert-dialog.d.ts} +1 -1
- package/dist/overlay/alert-dialog.js +2 -0
- package/dist/overlay/alert-dialog.js.map +1 -0
- package/dist/{dialog.d.ts → overlay/dialog.d.ts} +1 -1
- package/dist/overlay/dialog.js +2 -0
- package/dist/overlay/dialog.js.map +1 -0
- package/dist/{drawer.d.ts → overlay/drawer.d.ts} +1 -1
- package/dist/overlay/drawer.js +2 -0
- package/dist/overlay/drawer.js.map +1 -0
- package/dist/{popover.d.ts → overlay/popover.d.ts} +1 -1
- package/dist/overlay/popover.js +2 -0
- package/dist/overlay/popover.js.map +1 -0
- package/dist/overlay/popup.js +2 -0
- package/dist/overlay/popup.js.map +1 -0
- package/dist/{tooltip.d.ts → overlay/tooltip.d.ts} +1 -1
- package/dist/overlay/tooltip.js +2 -0
- package/dist/overlay/tooltip.js.map +1 -0
- package/dist/pin-input.js +1 -1
- package/dist/pin-input.js.map +1 -1
- package/dist/{internal → presence}/conditional-presence.js.map +1 -1
- package/dist/{internal → presence}/presence.js.map +1 -1
- package/dist/progress.js +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/quantity-field.js +1 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/radio-group.d.ts +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/radio-group.js.map +1 -1
- package/dist/select.d.ts +1 -1
- package/dist/select.js +1 -1
- package/dist/select.js.map +1 -1
- package/dist/slider.js +1 -1
- package/dist/slider.js.map +1 -1
- package/dist/spin-button.js +1 -1
- package/dist/spin-button.js.map +1 -1
- package/dist/switch.js +1 -1
- package/dist/switch.js.map +1 -1
- package/dist/tabs.d.ts +1 -1
- package/dist/tabs.js +1 -1
- package/dist/{internal/tabular-components.d.ts → tabular/components.d.ts} +1 -1
- package/dist/{internal/tabular-components.js → tabular/components.js} +1 -1
- package/dist/tabular/components.js.map +1 -0
- package/dist/tabular/context.d.ts +16 -0
- package/dist/tabular/context.js +2 -0
- package/dist/tabular/context.js.map +1 -0
- package/dist/{internal/tabular-profile.d.ts → tabular/controller.d.ts} +2 -32
- package/dist/tabular/controller.js +2 -0
- package/dist/tabular/controller.js.map +1 -0
- package/dist/{data-grid.d.ts → tabular/data-grid.d.ts} +7 -5
- package/dist/tabular/data-grid.js +2 -0
- package/dist/tabular/data-grid.js.map +1 -0
- package/dist/{data-table.d.ts → tabular/data-table.d.ts} +9 -36
- package/dist/tabular/data-table.js +2 -0
- package/dist/tabular/data-table.js.map +1 -0
- package/dist/{data-tree-grid.d.ts → tabular/data-tree-grid.d.ts} +7 -5
- package/dist/tabular/data-tree-grid.js +2 -0
- package/dist/tabular/data-tree-grid.js.map +1 -0
- package/dist/{internal/tabular-parts.d.ts → tabular/parts.d.ts} +2 -1
- package/dist/tabular/parts.js +2 -0
- package/dist/tabular/parts.js.map +1 -0
- package/dist/tabular/schema.d.ts +35 -0
- package/dist/tabular/schema.js +2 -0
- package/dist/tabular/schema.js.map +1 -0
- package/dist/tabular/source.d.ts +20 -0
- package/dist/tabular/source.js +2 -0
- package/dist/tabular/source.js.map +1 -0
- package/dist/tags-input.js +1 -1
- package/dist/tags-input.js.map +1 -1
- package/dist/{calendar.d.ts → temporal/calendar.d.ts} +21 -21
- package/dist/temporal/calendar.js +2 -0
- package/dist/temporal/calendar.js.map +1 -0
- package/dist/temporal/capabilities/calendar.d.ts +1 -0
- package/dist/temporal/capabilities/calendar.js +2 -0
- package/dist/temporal/capabilities/calendar.js.map +1 -0
- package/dist/temporal/capabilities/date-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-picker.js +2 -0
- package/dist/temporal/capabilities/date-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-range-picker.js +2 -0
- package/dist/temporal/capabilities/date-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-time-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-time-picker.js +2 -0
- package/dist/temporal/capabilities/date-time-picker.js.map +1 -0
- package/dist/temporal/capabilities/date-time-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/date-time-range-picker.js +2 -0
- package/dist/temporal/capabilities/date-time-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/month-picker.d.ts +1 -0
- package/dist/temporal/capabilities/month-picker.js +2 -0
- package/dist/temporal/capabilities/month-picker.js.map +1 -0
- package/dist/temporal/capabilities/month-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/month-range-picker.js +2 -0
- package/dist/temporal/capabilities/month-range-picker.js.map +1 -0
- package/dist/temporal/capabilities/range-calendar.d.ts +1 -0
- package/dist/temporal/capabilities/range-calendar.js +2 -0
- package/dist/temporal/capabilities/range-calendar.js.map +1 -0
- package/dist/temporal/capabilities/year-picker.d.ts +1 -0
- package/dist/temporal/capabilities/year-picker.js +2 -0
- package/dist/temporal/capabilities/year-picker.js.map +1 -0
- package/dist/temporal/capabilities/year-range-picker.d.ts +1 -0
- package/dist/temporal/capabilities/year-range-picker.js +2 -0
- package/dist/temporal/capabilities/year-range-picker.js.map +1 -0
- package/dist/{internal/picker-capability.js → temporal/capability.js} +1 -1
- package/dist/temporal/capability.js.map +1 -0
- package/dist/{date-field.d.ts → temporal/date-field.d.ts} +1 -1
- package/dist/temporal/date-field.js +2 -0
- package/dist/temporal/date-field.js.map +1 -0
- package/dist/{date-picker.d.ts → temporal/date-picker.d.ts} +24 -24
- package/dist/temporal/date-picker.js +2 -0
- package/dist/temporal/date-picker.js.map +1 -0
- package/dist/{date-range-field.d.ts → temporal/date-range-field.d.ts} +1 -1
- package/dist/temporal/date-range-field.js +2 -0
- package/dist/temporal/date-range-field.js.map +1 -0
- package/dist/{date-range-picker.d.ts → temporal/date-range-picker.d.ts} +27 -27
- package/dist/temporal/date-range-picker.js +2 -0
- package/dist/temporal/date-range-picker.js.map +1 -0
- package/dist/{date-time-field.d.ts → temporal/date-time-field.d.ts} +1 -1
- package/dist/temporal/date-time-field.js +2 -0
- package/dist/temporal/date-time-field.js.map +1 -0
- package/dist/{date-time-picker.d.ts → temporal/date-time-picker.d.ts} +30 -30
- package/dist/temporal/date-time-picker.js +2 -0
- package/dist/temporal/date-time-picker.js.map +1 -0
- package/dist/{date-time-range-picker.d.ts → temporal/date-time-range-picker.d.ts} +39 -39
- package/dist/temporal/date-time-range-picker.js +2 -0
- package/dist/temporal/date-time-range-picker.js.map +1 -0
- package/dist/{month-picker.d.ts → temporal/month-picker.d.ts} +14 -14
- package/dist/temporal/month-picker.js +2 -0
- package/dist/temporal/month-picker.js.map +1 -0
- package/dist/{month-range-picker.d.ts → temporal/month-range-picker.d.ts} +17 -17
- package/dist/temporal/month-range-picker.js +2 -0
- package/dist/temporal/month-range-picker.js.map +1 -0
- package/dist/{internal/date-picker.d.ts → temporal/picker.d.ts} +2 -3
- package/dist/temporal/picker.js +2 -0
- package/dist/temporal/picker.js.map +1 -0
- package/dist/{range-calendar.d.ts → temporal/range-calendar.d.ts} +11 -11
- package/dist/temporal/range-calendar.js +2 -0
- package/dist/temporal/range-calendar.js.map +1 -0
- package/dist/temporal/temporal-provider.js.map +1 -0
- package/dist/{time-field.d.ts → temporal/time-field.d.ts} +1 -1
- package/dist/temporal/time-field.js +2 -0
- package/dist/temporal/time-field.js.map +1 -0
- package/dist/{time-range-field.d.ts → temporal/time-range-field.d.ts} +1 -1
- package/dist/temporal/time-range-field.js +2 -0
- package/dist/temporal/time-range-field.js.map +1 -0
- package/dist/{year-picker.d.ts → temporal/year-picker.d.ts} +16 -16
- package/dist/temporal/year-picker.js +2 -0
- package/dist/temporal/year-picker.js.map +1 -0
- package/dist/{year-range-picker.d.ts → temporal/year-range-picker.d.ts} +19 -19
- package/dist/temporal/year-range-picker.js +2 -0
- package/dist/temporal/year-range-picker.js.map +1 -0
- package/dist/text.js +1 -1
- package/dist/text.js.map +1 -1
- package/dist/toast.js +1 -1
- package/dist/toggle-group.js +1 -1
- package/dist/toggle-group.js.map +1 -1
- package/dist/tree-grid.d.ts +1 -1
- package/dist/tree-grid.js +1 -1
- package/dist/tree-grid.js.map +1 -1
- package/dist/tree-view.d.ts +1 -1
- package/dist/tree-view.js +1 -1
- package/dist/{internal → virtual}/virtual-collection.d.ts +1 -0
- package/dist/virtual/virtual-collection.js +2 -0
- package/dist/virtual/virtual-collection.js.map +1 -0
- package/dist/{internal → virtual}/virtual-core.d.ts +1 -0
- package/dist/virtual/virtual-core.js +2 -0
- package/dist/virtual/virtual-core.js.map +1 -0
- package/dist/{virtual-grid.d.ts → virtual/virtual-grid.d.ts} +1 -1
- package/dist/virtual/virtual-grid.js +2 -0
- package/dist/virtual/virtual-grid.js.map +1 -0
- package/dist/virtual/virtual-list.js +2 -0
- package/dist/virtual/virtual-list.js.map +1 -0
- package/dist/{virtual-masonry.d.ts → virtual/virtual-masonry.d.ts} +1 -1
- package/dist/virtual/virtual-masonry.js +2 -0
- package/dist/virtual/virtual-masonry.js.map +1 -0
- package/dist/{virtual-spatial.d.ts → virtual/virtual-spatial.d.ts} +1 -1
- package/dist/virtual/virtual-spatial.js +2 -0
- package/dist/virtual/virtual-spatial.js.map +1 -0
- package/dist/virtual-core.d.ts +1 -1
- package/dist/virtual-core.js +1 -1
- package/dist/virtual-list.d.ts +2 -2
- package/dist/virtual-list.js +1 -1
- package/package.json +94 -94
- package/dist/alert-dialog.js +0 -2
- package/dist/alert-dialog.js.map +0 -1
- package/dist/calendar.js +0 -2
- package/dist/calendar.js.map +0 -1
- package/dist/data-grid.js +0 -2
- package/dist/data-grid.js.map +0 -1
- package/dist/data-table.js +0 -2
- package/dist/data-table.js.map +0 -1
- package/dist/data-tree-grid.js +0 -2
- package/dist/data-tree-grid.js.map +0 -1
- package/dist/date-field.js +0 -2
- package/dist/date-field.js.map +0 -1
- package/dist/date-picker.js +0 -2
- package/dist/date-picker.js.map +0 -1
- package/dist/date-range-field.js +0 -2
- package/dist/date-range-field.js.map +0 -1
- package/dist/date-range-picker.js +0 -2
- package/dist/date-range-picker.js.map +0 -1
- package/dist/date-time-field.js +0 -2
- package/dist/date-time-field.js.map +0 -1
- package/dist/date-time-picker.js +0 -2
- package/dist/date-time-picker.js.map +0 -1
- package/dist/date-time-range-picker.js +0 -2
- package/dist/date-time-range-picker.js.map +0 -1
- package/dist/dialog.js +0 -2
- package/dist/dialog.js.map +0 -1
- package/dist/drawer.js +0 -2
- package/dist/drawer.js.map +0 -1
- package/dist/internal/calendar-capability.d.ts +0 -1
- package/dist/internal/calendar-capability.js +0 -2
- package/dist/internal/calendar-capability.js.map +0 -1
- package/dist/internal/date-picker-capability.d.ts +0 -1
- package/dist/internal/date-picker-capability.js +0 -2
- package/dist/internal/date-picker-capability.js.map +0 -1
- package/dist/internal/date-picker.js +0 -2
- package/dist/internal/date-picker.js.map +0 -1
- package/dist/internal/date-range-picker-capability.d.ts +0 -1
- package/dist/internal/date-range-picker-capability.js +0 -2
- package/dist/internal/date-range-picker-capability.js.map +0 -1
- package/dist/internal/date-time-picker-capability.d.ts +0 -1
- package/dist/internal/date-time-picker-capability.js +0 -2
- package/dist/internal/date-time-picker-capability.js.map +0 -1
- package/dist/internal/date-time-range-picker-capability.d.ts +0 -1
- package/dist/internal/date-time-range-picker-capability.js +0 -2
- package/dist/internal/date-time-range-picker-capability.js.map +0 -1
- package/dist/internal/decimal-input.js.map +0 -1
- package/dist/internal/form-context.js.map +0 -1
- package/dist/internal/form-control-inventory.js.map +0 -1
- package/dist/internal/form-control.js +0 -2
- package/dist/internal/form-control.js.map +0 -1
- package/dist/internal/form-presence-parts.js +0 -2
- package/dist/internal/form-presence-parts.js.map +0 -1
- package/dist/internal/month-picker-capability.d.ts +0 -1
- package/dist/internal/month-picker-capability.js +0 -2
- package/dist/internal/month-picker-capability.js.map +0 -1
- package/dist/internal/month-range-picker-capability.d.ts +0 -1
- package/dist/internal/month-range-picker-capability.js +0 -2
- package/dist/internal/month-range-picker-capability.js.map +0 -1
- package/dist/internal/native-field.js +0 -2
- package/dist/internal/native-field.js.map +0 -1
- package/dist/internal/native-input.js.map +0 -1
- package/dist/internal/picker-capability.js.map +0 -1
- package/dist/internal/popup.js +0 -2
- package/dist/internal/popup.js.map +0 -1
- package/dist/internal/range-calendar-capability.d.ts +0 -1
- package/dist/internal/range-calendar-capability.js +0 -2
- package/dist/internal/range-calendar-capability.js.map +0 -1
- package/dist/internal/tabular-components.js.map +0 -1
- package/dist/internal/tabular-parts.js +0 -2
- package/dist/internal/tabular-parts.js.map +0 -1
- package/dist/internal/tabular-profile.js +0 -2
- package/dist/internal/tabular-profile.js.map +0 -1
- package/dist/internal/virtual-collection.js +0 -2
- package/dist/internal/virtual-collection.js.map +0 -1
- package/dist/internal/virtual-core.js +0 -2
- package/dist/internal/virtual-core.js.map +0 -1
- package/dist/internal/virtual-list.js +0 -2
- package/dist/internal/virtual-list.js.map +0 -1
- package/dist/internal/year-picker-capability.d.ts +0 -1
- package/dist/internal/year-picker-capability.js +0 -2
- package/dist/internal/year-picker-capability.js.map +0 -1
- package/dist/internal/year-range-picker-capability.d.ts +0 -1
- package/dist/internal/year-range-picker-capability.js +0 -2
- package/dist/internal/year-range-picker-capability.js.map +0 -1
- package/dist/month-picker.js +0 -2
- package/dist/month-picker.js.map +0 -1
- package/dist/month-range-picker.js +0 -2
- package/dist/month-range-picker.js.map +0 -1
- package/dist/popover.js +0 -2
- package/dist/popover.js.map +0 -1
- package/dist/range-calendar.js +0 -2
- package/dist/range-calendar.js.map +0 -1
- package/dist/temporal-provider.js.map +0 -1
- package/dist/time-field.js +0 -2
- package/dist/time-field.js.map +0 -1
- package/dist/time-range-field.js +0 -2
- package/dist/time-range-field.js.map +0 -1
- package/dist/tooltip.js +0 -2
- package/dist/tooltip.js.map +0 -1
- package/dist/virtual-grid.js +0 -2
- package/dist/virtual-grid.js.map +0 -1
- package/dist/virtual-masonry.js +0 -2
- package/dist/virtual-masonry.js.map +0 -1
- package/dist/virtual-spatial.js +0 -2
- package/dist/virtual-spatial.js.map +0 -1
- package/dist/year-picker.js +0 -2
- package/dist/year-picker.js.map +0 -1
- package/dist/year-range-picker.js +0 -2
- package/dist/year-range-picker.js.map +0 -1
- /package/dist/{internal/form-control-inventory.d.ts → form/control-inventory.d.ts} +0 -0
- /package/dist/{internal/form-control.d.ts → form/control.d.ts} +0 -0
- /package/dist/{internal → input}/decimal-input.d.ts +0 -0
- /package/dist/{internal → input}/decimal-input.js +0 -0
- /package/dist/{internal → input}/native-field.d.ts +0 -0
- /package/dist/{internal → input}/native-input.d.ts +0 -0
- /package/dist/{internal → input}/native-input.js +0 -0
- /package/dist/{internal → overlay}/popup.d.ts +0 -0
- /package/dist/{internal → presence}/conditional-presence.d.ts +0 -0
- /package/dist/{internal → presence}/conditional-presence.js +0 -0
- /package/dist/{internal → presence}/presence.d.ts +0 -0
- /package/dist/{internal → presence}/presence.js +0 -0
- /package/dist/{internal/picker-capability.d.ts → temporal/capability.d.ts} +0 -0
- /package/dist/{temporal-provider.d.ts → temporal/temporal-provider.d.ts} +0 -0
- /package/dist/{temporal-provider.js → temporal/temporal-provider.js} +0 -0
- /package/dist/{internal → virtual}/virtual-list.d.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DateRangePickerOptions } from '@sectile/dom/temporal/date-range-picker';
|
|
2
2
|
import type { DateRange, DateValue } from '@sectile/dom/temporal/date-field';
|
|
3
|
-
import { type PickerPartProps, type PickerPortalProps, type PickerPositionProps, type PickerRootSlotProps, type PickerYearCellSlotProps } from './
|
|
3
|
+
import { type PickerRootPartComponent, type PickerPartProps, type PickerPortalProps, type PickerPositionProps, type PickerRootSlotProps, type PickerYearCellSlotProps } from './picker.js';
|
|
4
4
|
export interface YearRangePickerRootProps extends PickerPartProps, PickerPositionProps {
|
|
5
5
|
readonly modelValue?: DateRange | null;
|
|
6
6
|
readonly defaultValue?: DateRange | null;
|
|
@@ -16,13 +16,13 @@ export interface YearRangePickerRootProps extends PickerPartProps, PickerPositio
|
|
|
16
16
|
readonly label?: string;
|
|
17
17
|
readonly policies?: DateRangePickerOptions['policies'];
|
|
18
18
|
}
|
|
19
|
-
export declare const YearRangePickerRoot: import("./
|
|
19
|
+
export declare const YearRangePickerRoot: import("./picker.js").PickerRootComponent<"date-range">;
|
|
20
20
|
export type YearRangePickerRootSlotProps = PickerRootSlotProps<DateRange | null>;
|
|
21
21
|
export type YearRangePickerValueChangeHandler = NonNullable<InstanceType<typeof YearRangePickerRoot>['$props']['onUpdate:modelValue']>;
|
|
22
22
|
export type YearRangePickerOpenChangeHandler = NonNullable<InstanceType<typeof YearRangePickerRoot>['$props']['onUpdate:open']>;
|
|
23
23
|
export type YearRangePickerHighlightedValueChangeHandler = NonNullable<InstanceType<typeof YearRangePickerRoot>['$props']['onUpdate:highlightedValue']>;
|
|
24
|
-
export declare const YearRangePickerTrigger:
|
|
25
|
-
export declare const YearRangePickerAnchor:
|
|
24
|
+
export declare const YearRangePickerTrigger: PickerRootPartComponent<'date-range'>;
|
|
25
|
+
export declare const YearRangePickerAnchor: PickerRootPartComponent<'date-range'>;
|
|
26
26
|
export declare const YearRangePickerPortal: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
27
27
|
to: {
|
|
28
28
|
type: import("vue").PropType<string | HTMLElement>;
|
|
@@ -54,15 +54,15 @@ export declare const YearRangePickerPortal: import("vue").DefineComponent<import
|
|
|
54
54
|
disabled: boolean;
|
|
55
55
|
defer: boolean;
|
|
56
56
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
57
|
-
export declare const YearRangePickerContent:
|
|
58
|
-
export declare const YearRangePickerGrid:
|
|
57
|
+
export declare const YearRangePickerContent: PickerRootPartComponent<'date-range'>;
|
|
58
|
+
export declare const YearRangePickerGrid: PickerRootPartComponent<'date-range'>;
|
|
59
59
|
export declare const YearRangePickerCell: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
60
60
|
value: {
|
|
61
|
-
type: import("vue").PropType<import("./
|
|
61
|
+
type: import("vue").PropType<import("./picker.js").PickerYearValue>;
|
|
62
62
|
required: true;
|
|
63
63
|
};
|
|
64
64
|
as: {
|
|
65
|
-
type: import("vue").PropType<import("
|
|
65
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
66
66
|
default: string;
|
|
67
67
|
};
|
|
68
68
|
asChild: {
|
|
@@ -71,11 +71,11 @@ export declare const YearRangePickerCell: import("vue").DefineComponent<import("
|
|
|
71
71
|
};
|
|
72
72
|
}>, () => import("vue").VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
73
73
|
value: {
|
|
74
|
-
type: import("vue").PropType<import("./
|
|
74
|
+
type: import("vue").PropType<import("./picker.js").PickerYearValue>;
|
|
75
75
|
required: true;
|
|
76
76
|
};
|
|
77
77
|
as: {
|
|
78
|
-
type: import("vue").PropType<import("
|
|
78
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
79
79
|
default: string;
|
|
80
80
|
};
|
|
81
81
|
asChild: {
|
|
@@ -83,7 +83,7 @@ export declare const YearRangePickerCell: import("vue").DefineComponent<import("
|
|
|
83
83
|
default: boolean;
|
|
84
84
|
};
|
|
85
85
|
}>> & Readonly<{}>, {
|
|
86
|
-
as: import("
|
|
86
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
87
87
|
asChild: boolean;
|
|
88
88
|
}, import("vue").SlotsType<{
|
|
89
89
|
default: (props: PickerYearCellSlotProps) => import("vue").VNodeChild;
|
|
@@ -98,7 +98,7 @@ export declare const YearRangePickerStartInput: import("vue").DefineComponent<im
|
|
|
98
98
|
default: undefined;
|
|
99
99
|
};
|
|
100
100
|
as: {
|
|
101
|
-
type: import("vue").PropType<import("
|
|
101
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
102
102
|
default: string;
|
|
103
103
|
};
|
|
104
104
|
asChild: {
|
|
@@ -115,7 +115,7 @@ export declare const YearRangePickerStartInput: import("vue").DefineComponent<im
|
|
|
115
115
|
default: undefined;
|
|
116
116
|
};
|
|
117
117
|
as: {
|
|
118
|
-
type: import("vue").PropType<import("
|
|
118
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
119
119
|
default: string;
|
|
120
120
|
};
|
|
121
121
|
asChild: {
|
|
@@ -125,7 +125,7 @@ export declare const YearRangePickerStartInput: import("vue").DefineComponent<im
|
|
|
125
125
|
}>> & Readonly<{}>, {
|
|
126
126
|
name: string;
|
|
127
127
|
form: string;
|
|
128
|
-
as: import("
|
|
128
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
129
129
|
asChild: boolean;
|
|
130
130
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
131
131
|
export declare const YearRangePickerEndInput: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
@@ -138,7 +138,7 @@ export declare const YearRangePickerEndInput: import("vue").DefineComponent<impo
|
|
|
138
138
|
default: undefined;
|
|
139
139
|
};
|
|
140
140
|
as: {
|
|
141
|
-
type: import("vue").PropType<import("
|
|
141
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
142
142
|
default: string;
|
|
143
143
|
};
|
|
144
144
|
asChild: {
|
|
@@ -155,7 +155,7 @@ export declare const YearRangePickerEndInput: import("vue").DefineComponent<impo
|
|
|
155
155
|
default: undefined;
|
|
156
156
|
};
|
|
157
157
|
as: {
|
|
158
|
-
type: import("vue").PropType<import("
|
|
158
|
+
type: import("vue").PropType<import("../primitive.js").PrimitiveAs>;
|
|
159
159
|
default: string;
|
|
160
160
|
};
|
|
161
161
|
asChild: {
|
|
@@ -165,11 +165,11 @@ export declare const YearRangePickerEndInput: import("vue").DefineComponent<impo
|
|
|
165
165
|
}>> & Readonly<{}>, {
|
|
166
166
|
name: string;
|
|
167
167
|
form: string;
|
|
168
|
-
as: import("
|
|
168
|
+
as: import("../primitive.js").PrimitiveAs;
|
|
169
169
|
asChild: boolean;
|
|
170
170
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
171
|
-
export declare const YearRangePickerPreviousPage:
|
|
172
|
-
export declare const YearRangePickerNextPage:
|
|
171
|
+
export declare const YearRangePickerPreviousPage: PickerRootPartComponent<'date-range'>;
|
|
172
|
+
export declare const YearRangePickerNextPage: PickerRootPartComponent<'date-range'>;
|
|
173
173
|
export type { YearRangePickerValue } from '@sectile/temporal/year-range-picker';
|
|
174
174
|
export type { YearPickerValue } from '@sectile/temporal/year-picker';
|
|
175
175
|
export type { PickerPartProps as YearRangePickerPartProps, PickerPortalProps as YearRangePickerPortalProps, PickerYearCellSlotProps as YearRangePickerCellSlotProps, };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMove,createPickerYearCell,createPickerRoot}from'./picker.js';import{yearRangePickerCapability}from'./capabilities/year-range-picker.js';export const YearRangePickerRoot=/* @__PURE__ */createPickerRoot(yearRangePickerCapability,'SectileYearRangePickerRoot',{scope:'year-range-picker',granularity:'year',defaultView:'year'});export const YearRangePickerTrigger=PickerTrigger;export const YearRangePickerAnchor=PickerAnchor;export const YearRangePickerPortal=PickerPortal;export const YearRangePickerContent=PickerContent;export const YearRangePickerGrid=PickerGrid;export const YearRangePickerCell=/* @__PURE__ */createPickerYearCell('cell','SectileYearRangePickerCell');export const YearRangePickerStartInput=/* @__PURE__ */createPickerInput('start-input','SectileYearRangePickerStartInput');export const YearRangePickerEndInput=/* @__PURE__ */createPickerInput('end-input','SectileYearRangePickerEndInput');export const YearRangePickerPreviousPage=/* @__PURE__ */createPickerMove('year',-1,'SectileYearRangePickerPreviousPage','previous-page');export const YearRangePickerNextPage=/* @__PURE__ */createPickerMove('year',1,'SectileYearRangePickerNextPage','next-page');
|
|
2
|
+
//# sourceMappingURL=year-range-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"year-range-picker.js","names":["PickerAnchor","PickerContent","PickerGrid","PickerPortal","PickerTrigger","createPickerInput","createPickerMove","createPickerYearCell","createPickerRoot","yearRangePickerCapability","YearRangePickerRoot","scope","granularity","defaultView","YearRangePickerTrigger","YearRangePickerAnchor","YearRangePickerPortal","YearRangePickerContent","YearRangePickerGrid","YearRangePickerCell","YearRangePickerStartInput","YearRangePickerEndInput","YearRangePickerPreviousPage","YearRangePickerNextPage"],"sources":["../../src/temporal/year-range-picker.ts"],"mappings":"OAGEA,aAAcC,cAAeC,WAAYC,aAAcC,cAAeC,kBAAmBC,iBAAkBC,qBAC3GC,qBACK,qBACEC,8BAAiC,6CAiBnC,MAAMC,mCAAsCF,iBAAiBC,0BAA2B,6BAA8B,CAAEE,MAAO,oBAAqBC,YAAa,OAAQC,YAAa,gBAKtL,MAAMC,uBAAyBV,qBAC/B,MAAMW,sBAAwBf,oBAC9B,MAAMgB,sBAAwBb,oBAC9B,MAAMc,uBAAyBhB,qBAC/B,MAAMiB,oBAAsBhB,kBAC5B,MAAMiB,mCAAsCZ,qBAAqB,OAAQ,qCACzE,MAAMa,yCAA4Cf,kBAAkB,cAAe,2CACnF,MAAMgB,uCAA0ChB,kBAAkB,YAAa,yCAC/E,MAAMiB,2CAA8ChB,iBAAiB,QAAS,EAAG,qCAAsC,wBACvH,MAAMiB,uCAA0CjB,iBAAiB,OAAQ,EAAG,iCAAkC","ignoreList":[]}
|
package/dist/text.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useNativeInputFormControl}from"./
|
|
1
|
+
import{defineComponent,h,mergeProps,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useNativeInputFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const TextField=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true},setup(props,{attrs,emit}){const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let proposedState=null;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;let mounted=false;const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:props.disabled,readOnly:props.readonly,onValueChange:change=>{const wasComposing=proposedState!==null&&proposedState.composition!==null;proposedState=change.value;if(change.value.composition!==null)return;if(props.modelModifiers.lazy){if(wasComposing)settleControlledProposal(change.value);return}emit("update:modelValue",change.value.snapshot.text);settleControlledProposal(change.value)}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;connection?.disconnect();controller=createController(state);connection=connectText({controller,element:element.value,disabled:props.disabled,readOnly:props.readonly,onTransition:({input})=>{if(!controlled||props.modelModifiers.lazy||input.type!=="composition-commit")return;const proposal=proposedState;if(proposal===null||proposal.composition!==null||connection===null)return;const result=connection.syncControlledValues({value:proposal});if(!result.ok)throw new TypeError(result.error.message)}});connection.render()};const requestReconnect=()=>{if(inputComposing){reconnectPending=true;return}const state=proposedState??controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;requestReconnect()},0)};function settleControlledProposal(proposal){if(!controlled)return;void nextTick(()=>{if(connection===null||proposedState!==proposal||props.modelValue===void 0)return;proposedState=null;const text=String(props.modelValue);const state=proposal.snapshot.text===text?proposal:createTextState(text);if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)})}const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>mountConnection(createTextState(controlled?String(props.modelValue):initialValue)))}});onMounted(()=>{mounted=true;mountConnection(createTextState(initialValue))});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection?.disconnect();connection=null;controller=null;proposedState=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;if(proposedState!==null&&proposedState.composition!==null)return;const text=String(value);const state=proposedState?.snapshot.text===text?proposedState:createTextState(text);proposedState=null;if(props.modelModifiers.lazy){mountConnection(state);return}const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)});watch([()=>props.disabled,()=>props.readonly],requestReconnect);const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};return()=>h(props.multiline?"textarea":"input",mergeProps(attrs,{ref:element,...!props.multiline?{type:props.type}:{},...renderServerValue?{value:initialValue}:{},disabled:props.disabled,readonly:props.readonly,required:props.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onCompositionstart:()=>setInputComposing(true),onCompositionend:()=>setInputComposing(false),onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0},participation.controlProps.value))}});export{TextField};
|
|
2
2
|
//# sourceMappingURL=text.js.map
|
package/dist/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/text.ts"],"mappings":"AAAA,OACE,gBACA,EACA,WACA,SACA,gBACA,UACA,WACA,UAGK,MACP,OACE,YACA,qBACA,oBAIK,oBACP,OAAS,8BAAiC,
|
|
1
|
+
{"version":3,"sources":["../src/text.ts"],"mappings":"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","names":[],"file":"text.js"}
|
package/dist/toast.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createToast,createToastState}from"@sectile/dom/toast";import{Primitive}from"./primitive.js";import{useHostPortalTarget}from"./host-provider.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./internal/presence.js";const key=Symbol("SectileToastProvider");const ToastProvider=defineComponent({name:"SectileToastProvider",inheritAttrs:false,props:{toasts:{type:Array,default:void 0},initialToasts:{type:Array,default:()=>[]},defaultDurationMs:{type:Number,default:5e3},maxVisible:{type:Number,default:3},closeLabel:{type:String,default:"Dismiss notification"},hotkey:{type:[Array,Boolean],default:()=>["F8"]},pauseOnWindowBlur:{type:Boolean,default:true},dismissOnEscape:{type:Boolean,default:true},swipeDirection:{type:String,default:"right"},swipeThreshold:{type:Number,default:50}},emits:{"update:toasts":_items=>true},slots:Object,setup(props,{emit,slots}){const connection=shallowRef();const pending=[];const controlled=useControlledStateInvariant("ToastProvider","toasts",()=>props.toasts);const initialState=createToastState(props.toasts??props.initialToasts,false,{defaultDurationMs:props.defaultDurationMs,maxVisible:props.maxVisible});const state=shallowRef(initialState);const activeIDs=shallowRef(new Set(initialState.items.map(item=>item.id)));const closeLabel=computed(()=>props.closeLabel);const swipeDirection=computed(()=>props.swipeDirection);let activeItems=[...initialState.items];let viewport;const exiting=new Map;const finishExit=id=>{if(activeIDs.value.has(id)||!exiting.delete(id))return;state.value={...state.value,items:Object.freeze(state.value.items.filter(item=>item.id!==id))}};const refresh=()=>{const next=connection.value?.getSnapshot().state;if(next===void 0)return;const nextIDs=new Set(next.items.map(item=>item.id));for(const item of activeItems)if(!nextIDs.has(item.id))exiting.set(item.id,item);for(const item of next.items)exiting.delete(item.id);activeItems=[...next.items];activeIDs.value=nextIDs;const ordered=[];let activeIndex=0;for(const previous of state.value.items){const exitingItem=exiting.get(previous.id);if(exitingItem!==void 0){ordered.push(exitingItem);continue}if(!nextIDs.has(previous.id))continue;const active=next.items[activeIndex];if(active!==void 0){ordered.push(active);activeIndex+=1}}for(;activeIndex<next.items.length;activeIndex+=1)ordered.push(next.items[activeIndex]);state.value={items:Object.freeze(ordered),paused:next.paused}};const connect=(root,label)=>{viewport={root,label};connection.value?.disconnect();connection.value=createToast({root,...controlled?{items:props.toasts}:{initialToasts:activeItems.map(toInput)},label,closeLabel:props.closeLabel,defaultDurationMs:props.defaultDurationMs,maxVisible:props.maxVisible,hotkey:props.hotkey,pauseOnWindowBlur:props.pauseOnWindowBlur,dismissOnEscape:props.dismissOnEscape,swipeDirection:props.swipeDirection,swipeThreshold:props.swipeThreshold,manageVisibility:false,onItemsChange:items=>{emit("update:toasts",items.map(toInput))},onUpdate:refresh});for(const send2 of pending.splice(0))send2(connection.value);root.querySelectorAll("[data-sectile-toast-item]").forEach(node=>{const id=node.dataset["sectileToastItem"];if(id!==void 0)connection.value?.setToastAttributes(node,id)});root.querySelectorAll("[data-sectile-toast-close]").forEach(node=>{const id=node.dataset["sectileToastClose"];if(id!==void 0)connection.value?.setCloseButtonAttributes(node,id)});refresh()};const disconnect=()=>{connection.value?.disconnect();connection.value=void 0;viewport=void 0;exiting.clear();state.value={...state.value,items:Object.freeze([...activeItems])}};const send=event=>{const target=connection.value;if(target===void 0)pending.push(event);else event(target);refresh()};const context={state,activeIDs,connection,closeLabel,swipeDirection,connect,disconnect,push:input=>send(target=>{target.push(input)}),update:(id,toast)=>send(target=>{target.updateToast(id,toast)}),dismiss:id=>send(target=>{target.dismiss(id)}),dismissAll:()=>send(target=>{target.dismissAll()}),finishExit,registerItem:(element,id)=>connection.value?.setToastAttributes(element,id),registerClose:(element,id)=>connection.value?.setCloseButtonAttributes(element,id)};provide(key,context);watch(()=>props.toasts,items=>{if(!controlled||items===void 0||connection.value===void 0)return;const result=connection.value.syncItems(items);if(!result.ok)throw new TypeError(result.error.message);refresh()});watch([()=>props.closeLabel,()=>props.hotkey,()=>props.pauseOnWindowBlur,()=>props.dismissOnEscape,()=>props.swipeDirection,()=>props.swipeThreshold,()=>props.defaultDurationMs,()=>props.maxVisible],()=>{if(viewport!==void 0)connect(viewport.root,viewport.label)});onBeforeUnmount(()=>{disconnect();pending.length=0;exiting.clear()});return()=>h(Fragment,null,slots["default"]?.({toasts:state.value.items,paused:state.value.paused,toast:context.push,update:context.update,dismiss:context.dismiss,dismissAll:context.dismissAll})??[])}});function useToast(){const context=useProvider("useToast");return Object.freeze({toasts:computed(()=>context.state.value.items),paused:computed(()=>context.state.value.paused),toast:context.push,update:context.update,dismiss:context.dismiss,dismissAll:context.dismissAll})}const ToastPortal=defineComponent({name:"SectileToastPortal",inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useProvider("ToastPortal");const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});const ToastViewport=defineComponent({name:"SectileToastViewport",inheritAttrs:false,props:{label:{type:String,default:"Notifications"},as:{type:[String,Object,Function],default:"ol"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useProvider("ToastViewport");const element=shallowRef();let mounted=false;const register=candidate=>{const next=candidate instanceof HTMLElement?candidate:void 0;if(element.value===next)return;element.value=next;if(!mounted)return;if(next===void 0)root.disconnect();else root.connect(next,props.label)};onMounted(()=>{mounted=true;if(element.value!==void 0)root.connect(element.value,props.label)});onBeforeUnmount(()=>{mounted=false;root.disconnect();element.value=void 0});watch(()=>props.label,label=>{if(element.value!==void 0)root.connect(element.value,label)});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,tabindex:-1,role:"region","aria-label":props.label,"aria-live":"polite","data-scope":"toast","data-part":"viewport","data-paused":String(root.state.value.paused)}),slots)}});const toastRootKey=Symbol("SectileToastRoot");const ToastRoot=defineComponent({name:"SectileToastRoot",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"li"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const provider=useProvider("ToastRoot");const id=computed(()=>props.value);const item=computed(()=>provider.state.value.items.find(candidate=>candidate.id===id.value)??null);const open=computed(()=>provider.activeIDs.value.has(id.value));const element=shallowRef();const present=usePresence(open,element);let registeredID;const register=candidate=>{const next=candidate instanceof HTMLElement?candidate:void 0;if(element.value===next&®isteredID===(next===void 0?void 0:id.value))return;if(registeredID!==void 0)provider.registerItem(void 0,registeredID);element.value=next;registeredID=next===void 0?void 0:id.value;if(next!==void 0)provider.registerItem(next,id.value)};watch(id,next=>{if(element.value===void 0||registeredID===next)return;if(registeredID!==void 0)provider.registerItem(void 0,registeredID);registeredID=next;provider.registerItem(element.value,next)});watch([open,present],([active,rendered])=>{if(!active&&!rendered)provider.finishExit(id.value)},{flush:"post"});onBeforeUnmount(()=>{if(registeredID!==void 0)provider.registerItem(void 0,registeredID);registeredID=void 0;element.value=void 0});provide(toastRootKey,{id,item});return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,hidden:!present.value,...exiting?{inert:true,"aria-hidden":"true"}:{},role:item.value?.kind==="error"?"alert":"status","data-sectile-toast-item":id.value,"data-scope":"toast","data-part":"root","data-state":open.value?"open":"closed","data-swipe-direction":provider.swipeDirection.value,"data-kind":item.value?.kind}),{default:()=>slots["default"]?.({toast:item.value,open:open.value})})}}});const ToastTitle=toastTextPart("SectileToastTitle","title");const ToastDescription=toastTextPart("SectileToastDescription","description");const ToastClose=defineComponent({name:"SectileToastClose",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const provider=useProvider("ToastClose");const root=useToastRoot("ToastClose");const element=shallowRef();let registeredID;const register=candidate=>{const next=candidate instanceof HTMLButtonElement?candidate:void 0;if(element.value===next&®isteredID===(next===void 0?void 0:root.id.value))return;if(registeredID!==void 0)provider.registerClose(void 0,registeredID);element.value=next;registeredID=next===void 0?void 0:root.id.value;if(next!==void 0)provider.registerClose(next,root.id.value)};watch(root.id,next=>{if(element.value===void 0||registeredID===next)return;if(registeredID!==void 0)provider.registerClose(void 0,registeredID);registeredID=next;provider.registerClose(element.value,next)});onBeforeUnmount(()=>{if(registeredID!==void 0)provider.registerClose(void 0,registeredID);registeredID=void 0;element.value=void 0});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,type:props.as==="button"?"button":void 0,"aria-label":provider.closeLabel.value,"data-sectile-toast-close":root.id.value,"data-scope":"toast","data-part":"close"}),slots)}});function toastTextPart(name,part){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:part==="title"?"h2":"p"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useToastRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"toast","data-part":part}),{default:()=>slots["default"]?.()??(part==="title"?root.item.value?.title:root.item.value?.description)})}})}function useProvider(part){const context=inject(key);if(context===void 0)throw new TypeError(`${part} must be used inside ToastProvider.`);return context}function useToastRoot(part){const context=inject(toastRootKey);if(context===void 0)throw new TypeError(`${part} must be used inside ToastRoot.`);return context}function toInput(item){return Object.freeze({id:item.id,title:item.title,...item.description===null?{}:{description:item.description},kind:item.kind,durationMs:item.durationMs})}export{ToastClose,ToastDescription,ToastPortal,ToastProvider,ToastRoot,ToastTitle,ToastViewport,useToast};
|
|
1
|
+
import{Fragment,Teleport,computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createToast,createToastState}from"@sectile/dom/toast";import{Primitive}from"./primitive.js";import{useHostPortalTarget}from"./host-provider.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./presence/presence.js";const key=Symbol("SectileToastProvider");const ToastProvider=defineComponent({name:"SectileToastProvider",inheritAttrs:false,props:{toasts:{type:Array,default:void 0},initialToasts:{type:Array,default:()=>[]},defaultDurationMs:{type:Number,default:5e3},maxVisible:{type:Number,default:3},closeLabel:{type:String,default:"Dismiss notification"},hotkey:{type:[Array,Boolean],default:()=>["F8"]},pauseOnWindowBlur:{type:Boolean,default:true},dismissOnEscape:{type:Boolean,default:true},swipeDirection:{type:String,default:"right"},swipeThreshold:{type:Number,default:50}},emits:{"update:toasts":_items=>true},slots:Object,setup(props,{emit,slots}){const connection=shallowRef();const pending=[];const controlled=useControlledStateInvariant("ToastProvider","toasts",()=>props.toasts);const initialState=createToastState(props.toasts??props.initialToasts,false,{defaultDurationMs:props.defaultDurationMs,maxVisible:props.maxVisible});const state=shallowRef(initialState);const activeIDs=shallowRef(new Set(initialState.items.map(item=>item.id)));const closeLabel=computed(()=>props.closeLabel);const swipeDirection=computed(()=>props.swipeDirection);let activeItems=[...initialState.items];let viewport;const exiting=new Map;const finishExit=id=>{if(activeIDs.value.has(id)||!exiting.delete(id))return;state.value={...state.value,items:Object.freeze(state.value.items.filter(item=>item.id!==id))}};const refresh=()=>{const next=connection.value?.getSnapshot().state;if(next===void 0)return;const nextIDs=new Set(next.items.map(item=>item.id));for(const item of activeItems)if(!nextIDs.has(item.id))exiting.set(item.id,item);for(const item of next.items)exiting.delete(item.id);activeItems=[...next.items];activeIDs.value=nextIDs;const ordered=[];let activeIndex=0;for(const previous of state.value.items){const exitingItem=exiting.get(previous.id);if(exitingItem!==void 0){ordered.push(exitingItem);continue}if(!nextIDs.has(previous.id))continue;const active=next.items[activeIndex];if(active!==void 0){ordered.push(active);activeIndex+=1}}for(;activeIndex<next.items.length;activeIndex+=1)ordered.push(next.items[activeIndex]);state.value={items:Object.freeze(ordered),paused:next.paused}};const connect=(root,label)=>{viewport={root,label};connection.value?.disconnect();connection.value=createToast({root,...controlled?{items:props.toasts}:{initialToasts:activeItems.map(toInput)},label,closeLabel:props.closeLabel,defaultDurationMs:props.defaultDurationMs,maxVisible:props.maxVisible,hotkey:props.hotkey,pauseOnWindowBlur:props.pauseOnWindowBlur,dismissOnEscape:props.dismissOnEscape,swipeDirection:props.swipeDirection,swipeThreshold:props.swipeThreshold,manageVisibility:false,onItemsChange:items=>{emit("update:toasts",items.map(toInput))},onUpdate:refresh});for(const send2 of pending.splice(0))send2(connection.value);root.querySelectorAll("[data-sectile-toast-item]").forEach(node=>{const id=node.dataset["sectileToastItem"];if(id!==void 0)connection.value?.setToastAttributes(node,id)});root.querySelectorAll("[data-sectile-toast-close]").forEach(node=>{const id=node.dataset["sectileToastClose"];if(id!==void 0)connection.value?.setCloseButtonAttributes(node,id)});refresh()};const disconnect=()=>{connection.value?.disconnect();connection.value=void 0;viewport=void 0;exiting.clear();state.value={...state.value,items:Object.freeze([...activeItems])}};const send=event=>{const target=connection.value;if(target===void 0)pending.push(event);else event(target);refresh()};const context={state,activeIDs,connection,closeLabel,swipeDirection,connect,disconnect,push:input=>send(target=>{target.push(input)}),update:(id,toast)=>send(target=>{target.updateToast(id,toast)}),dismiss:id=>send(target=>{target.dismiss(id)}),dismissAll:()=>send(target=>{target.dismissAll()}),finishExit,registerItem:(element,id)=>connection.value?.setToastAttributes(element,id),registerClose:(element,id)=>connection.value?.setCloseButtonAttributes(element,id)};provide(key,context);watch(()=>props.toasts,items=>{if(!controlled||items===void 0||connection.value===void 0)return;const result=connection.value.syncItems(items);if(!result.ok)throw new TypeError(result.error.message);refresh()});watch([()=>props.closeLabel,()=>props.hotkey,()=>props.pauseOnWindowBlur,()=>props.dismissOnEscape,()=>props.swipeDirection,()=>props.swipeThreshold,()=>props.defaultDurationMs,()=>props.maxVisible],()=>{if(viewport!==void 0)connect(viewport.root,viewport.label)});onBeforeUnmount(()=>{disconnect();pending.length=0;exiting.clear()});return()=>h(Fragment,null,slots["default"]?.({toasts:state.value.items,paused:state.value.paused,toast:context.push,update:context.update,dismiss:context.dismiss,dismissAll:context.dismissAll})??[])}});function useToast(){const context=useProvider("useToast");return Object.freeze({toasts:computed(()=>context.state.value.items),paused:computed(()=>context.state.value.paused),toast:context.push,update:context.update,dismiss:context.dismiss,dismissAll:context.dismissAll})}const ToastPortal=defineComponent({name:"SectileToastPortal",inheritAttrs:false,props:{to:{type:[String,Object],default:void 0},disabled:{type:Boolean,default:false},defer:{type:Boolean,default:false}},setup(props,{slots}){useProvider("ToastPortal");const portalTarget=useHostPortalTarget();return()=>h(Teleport,{to:props.to??portalTarget.value??"body",disabled:props.disabled,defer:props.defer},slots["default"]?.())}});const ToastViewport=defineComponent({name:"SectileToastViewport",inheritAttrs:false,props:{label:{type:String,default:"Notifications"},as:{type:[String,Object,Function],default:"ol"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useProvider("ToastViewport");const element=shallowRef();let mounted=false;const register=candidate=>{const next=candidate instanceof HTMLElement?candidate:void 0;if(element.value===next)return;element.value=next;if(!mounted)return;if(next===void 0)root.disconnect();else root.connect(next,props.label)};onMounted(()=>{mounted=true;if(element.value!==void 0)root.connect(element.value,props.label)});onBeforeUnmount(()=>{mounted=false;root.disconnect();element.value=void 0});watch(()=>props.label,label=>{if(element.value!==void 0)root.connect(element.value,label)});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,tabindex:-1,role:"region","aria-label":props.label,"aria-live":"polite","data-scope":"toast","data-part":"viewport","data-paused":String(root.state.value.paused)}),slots)}});const toastRootKey=Symbol("SectileToastRoot");const ToastRoot=defineComponent({name:"SectileToastRoot",inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:"li"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const provider=useProvider("ToastRoot");const id=computed(()=>props.value);const item=computed(()=>provider.state.value.items.find(candidate=>candidate.id===id.value)??null);const open=computed(()=>provider.activeIDs.value.has(id.value));const element=shallowRef();const present=usePresence(open,element);let registeredID;const register=candidate=>{const next=candidate instanceof HTMLElement?candidate:void 0;if(element.value===next&®isteredID===(next===void 0?void 0:id.value))return;if(registeredID!==void 0)provider.registerItem(void 0,registeredID);element.value=next;registeredID=next===void 0?void 0:id.value;if(next!==void 0)provider.registerItem(next,id.value)};watch(id,next=>{if(element.value===void 0||registeredID===next)return;if(registeredID!==void 0)provider.registerItem(void 0,registeredID);registeredID=next;provider.registerItem(element.value,next)});watch([open,present],([active,rendered])=>{if(!active&&!rendered)provider.finishExit(id.value)},{flush:"post"});onBeforeUnmount(()=>{if(registeredID!==void 0)provider.registerItem(void 0,registeredID);registeredID=void 0;element.value=void 0});provide(toastRootKey,{id,item});return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,hidden:!present.value,...exiting?{inert:true,"aria-hidden":"true"}:{},role:item.value?.kind==="error"?"alert":"status","data-sectile-toast-item":id.value,"data-scope":"toast","data-part":"root","data-state":open.value?"open":"closed","data-swipe-direction":provider.swipeDirection.value,"data-kind":item.value?.kind}),{default:()=>slots["default"]?.({toast:item.value,open:open.value})})}}});const ToastTitle=toastTextPart("SectileToastTitle","title");const ToastDescription=toastTextPart("SectileToastDescription","description");const ToastClose=defineComponent({name:"SectileToastClose",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const provider=useProvider("ToastClose");const root=useToastRoot("ToastClose");const element=shallowRef();let registeredID;const register=candidate=>{const next=candidate instanceof HTMLButtonElement?candidate:void 0;if(element.value===next&®isteredID===(next===void 0?void 0:root.id.value))return;if(registeredID!==void 0)provider.registerClose(void 0,registeredID);element.value=next;registeredID=next===void 0?void 0:root.id.value;if(next!==void 0)provider.registerClose(next,root.id.value)};watch(root.id,next=>{if(element.value===void 0||registeredID===next)return;if(registeredID!==void 0)provider.registerClose(void 0,registeredID);registeredID=next;provider.registerClose(element.value,next)});onBeforeUnmount(()=>{if(registeredID!==void 0)provider.registerClose(void 0,registeredID);registeredID=void 0;element.value=void 0});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:register,type:props.as==="button"?"button":void 0,"aria-label":provider.closeLabel.value,"data-sectile-toast-close":root.id.value,"data-scope":"toast","data-part":"close"}),slots)}});function toastTextPart(name,part){return defineComponent({name,inheritAttrs:false,props:{as:{type:[String,Object,Function],default:part==="title"?"h2":"p"},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useToastRoot(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"toast","data-part":part}),{default:()=>slots["default"]?.()??(part==="title"?root.item.value?.title:root.item.value?.description)})}})}function useProvider(part){const context=inject(key);if(context===void 0)throw new TypeError(`${part} must be used inside ToastProvider.`);return context}function useToastRoot(part){const context=inject(toastRootKey);if(context===void 0)throw new TypeError(`${part} must be used inside ToastRoot.`);return context}function toInput(item){return Object.freeze({id:item.id,title:item.title,...item.description===null?{}:{description:item.description},kind:item.kind,durationMs:item.durationMs})}export{ToastClose,ToastDescription,ToastPortal,ToastProvider,ToastRoot,ToastTitle,ToastViewport,useToast};
|
|
2
2
|
//# sourceMappingURL=toast.js.map
|
package/dist/toggle-group.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getToggleGroupItemAttributes,getToggleGroupRootAttributes}from"@sectile/dom/toggle-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,nextTick,provide,shallowRef,watch}from"vue";import{getToggleGroupItemAttributes,getToggleGroupRootAttributes}from"@sectile/dom/toggle-group";import{createListboxControllerFromItems}from"@sectile/dom/listbox";import{Primitive}from"./primitive.js";import{visuallyHiddenInputStyle}from"./input/native-input.js";import{provideFormControlOwner}from"./form/control.js";import{hiddenValueSubmissionCapabilities,useCompositeFormControl}from"./form/control.js";import{useHostDirection}from"./host-provider.js";import{reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const rootKey=Symbol("SectileToggleGroupRoot");const ToggleGroupRoot=defineComponent({name:"SectileToggleGroupRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},multiple:{type:Boolean,default:false},deselectable:{type:Boolean,default:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},orientation:{type:String,default:"horizontal"},label:{type:String,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":_value=>true,highlight:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const direction=useHostDirection();const rootElement=shallowRef(null);const submissionElements=[];const participation=useCompositeFormControl({root:rootElement,submissions:()=>value.value.map((_,index)=>({element:()=>submissionElements[index]??null,capabilities:hiddenValueSubmissionCapabilities}))});provideFormControlOwner();const controlled=useControlledStateInvariant("ToggleGroupRoot","modelValue",()=>props.modelValue);const makeController=(value2,highlightedValue=value2[0]??null)=>{const result=createListboxControllerFromItems({items:props.items,selectionMode:props.multiple?"multiple":"single",disabledItems:props.disabledItems,disabled:props.disabled,readOnly:props.readonly,orientation:props.orientation,direction:direction.value,activationMode:"toggle",clearOnEscape:false,policies:{deselectable:props.deselectable,boundary:"wrap"},...controlled?{value:value2}:{defaultValue:value2},defaultHighlightedValue:highlightedValue??props.items.find(id=>!props.disabledItems.includes(id))??null,onValueChange:({value:next})=>emit("update:modelValue",next),onHighlightedValueChange:({value:next})=>emit("highlight",next)});if(!result.ok)throw new TypeError(result.error.message);return result.value};const controller=shallowRef(makeController(props.modelValue??props.defaultValue));const snapshot=shallowRef(controller.value.getSnapshot());const rebuild=()=>{const requested=controlled?props.modelValue:snapshot.value.state.selection.selected;const reconciled=reconcileCollectionState(props.items,requested,snapshot.value.state.cursor.current,props.disabledItems,props.multiple?"multiple":"single");controller.value=makeController(reconciled.selected,reconciled.current);snapshot.value=controller.value.getSnapshot();if(controlled&&!sameIDs(requested,reconciled.selected))emit("update:modelValue",reconciled.selected)};watch(()=>props.modelValue,next=>{if(!controlled||next===void 0)return;const result=controller.value.syncControlledValues({value:next});if(!result.ok)throw new TypeError(result.error.message);snapshot.value=result.value});watch([()=>props.items,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.orientation,()=>props.multiple,()=>props.deselectable,direction],rebuild);const value=computed(()=>snapshot.value.state.selection.selected);const highlighted=computed(()=>snapshot.value.state.cursor.current);const disabled=computed(()=>props.disabled);const readonly=computed(()=>props.readonly);const disabledItems=computed(()=>new Set(props.disabledItems));const apply=(result,root)=>{if(!result.ok)return false;snapshot.value=result.snapshot;if(root!==void 0)void nextTick(()=>focusItem(root,result.snapshot.state.cursor.current));return true};provide(rootKey,{value,highlighted,disabled,readonly,disabledItems,press:(id,target)=>apply(controller.value.handleEvent({type:"toggle",id}),target.closest('[data-scope="toggle-group"][data-part="root"]'))});const slotProps=computed(()=>({value:value.value,highlightedValue:highlighted.value,disabled:props.disabled,readonly:props.readonly}));return()=>{const root=h(Primitive,mergeProps(attrs,getToggleGroupRootAttributes({orientation:props.orientation,direction:direction.value,...props.label===void 0?{}:{label:props.label},disabled:props.disabled,readOnly:props.readonly}),{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement.value=element},onKeydown:event=>{if(apply(controller.value.handleKeyboardInput(event),event.currentTarget))event.preventDefault()}},participation.controlProps.value),{default:()=>slots["default"]?.(slotProps.value)});if(!participation.participating&&props.name===void 0&&props.form===void 0)return root;return[root,...value.value.map((selected,index)=>h("input",{ref:element=>{submissionElements[index]=element instanceof HTMLInputElement?element:null},type:"hidden",name:props.name,form:props.form,value:selected,disabled:props.disabled,style:visuallyHiddenInputStyle}))]}}});const ToggleGroupItem=defineComponent({name:"SectileToggleGroupItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot();const state=computed(()=>({value:props.value,pressed:root.value.value.includes(props.value),highlighted:root.highlighted.value===props.value,disabled:root.disabled.value||props.disabled||root.disabledItems.value.has(props.value),readonly:root.readonly.value}));return()=>h(Primitive,mergeProps(attrs,getToggleGroupItemAttributes({id:props.value,pressed:state.value.pressed,highlighted:state.value.highlighted,disabled:state.value.disabled}),{as:props.as,asChild:props.asChild,onClick:event=>{if(!event.defaultPrevented&&!state.value.disabled&&!state.value.readonly)root.press(props.value,event.currentTarget)}}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(){const root=inject(rootKey);if(root===void 0)throw new TypeError("ToggleGroupItem must be used inside ToggleGroupRoot.");return root}function focusItem(root,id){if(id===null)return;for(const item of root.querySelectorAll("[data-toggle-group-id]"))if(item.dataset["toggleGroupId"]===id)item.focus()}export{ToggleGroupItem,ToggleGroupRoot};
|
|
2
2
|
//# sourceMappingURL=toggle-group.js.map
|
package/dist/toggle-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/toggle-group.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,SAAU,QAAS,WAAY,UAE5E,MACP,OAAS,6BAA8B,iCAAoC,4BAC3E,OAAS,qCAAgE,uBACzE,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,
|
|
1
|
+
{"version":3,"sources":["../src/toggle-group.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,SAAU,QAAS,WAAY,UAE5E,MACP,OAAS,6BAA8B,iCAAoC,4BAC3E,OAAS,qCAAgE,uBACzE,OAAS,cAAmC,iBAC5C,OAAS,6BAAgC,0BACzC,OAAS,4BAA+B,oBACxC,OACE,kCACA,4BACK,oBACP,OAAS,qBAAwB,qBACjC,OAAS,yBAA0B,YAAe,2BAClD,OAAS,gCAAmC,iCA+B5C,MAAM,QAAU,OAAO,wBAAwB,EAExC,MAAM,gBAAkB,gBAAgB,CAC7C,KAAM,yBAA0B,aAAc,MAC9C,MAAO,CACL,MAAO,CAAE,KAAM,MAAsC,SAAU,IAAI,EACnE,WAAY,CAAE,KAAM,MAAsC,QAAS,MAAS,EAC5E,aAAc,CAAE,KAAM,MAAsC,QAAS,IAAM,CAAA,CAAE,EAC7E,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,aAAc,CAAE,KAAM,QAAS,QAAS,IAAI,EACzF,cAAe,CAAE,KAAM,MAAsC,QAAS,IAAM,CAAA,CAAE,EAC9E,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACtF,YAAa,CAAE,KAAM,OAA+C,QAAS,YAAY,EACzF,MAAO,CAAE,KAAM,OAAQ,QAAS,MAAS,EACzC,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EAAI,KAAM,CAAE,KAAM,OAAQ,QAAS,MAAS,EACpF,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,CAAE,oBAAsB,QAAuC,KAAM,UAAY,QAAmC,IAAI,EAC/H,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAM,KAAK,EAAE,CACjC,MAAM,UAAY,iBAAgB,EAClC,MAAM,YAAc,WAA+B,IAAI,EACvD,MAAM,mBAAqD,CAAA,EAC3D,MAAM,cAAgB,wBAAwB,CAC5C,KAAM,YACN,YAAa,IAAM,MAAM,MAAM,IAAI,CAAC,EAAG,SAAW,CAChD,QAAS,IAAM,mBAAmB,KAAK,GAAK,KAC5C,aAAc,mCACd,EACH,EACD,wBAAuB,EACvB,MAAM,WAAa,4BAA4B,kBAAmB,aAAc,IAAM,MAAM,UAAU,EACtG,MAAM,eAAiB,CAACA,OAA0B,iBAAmBA,OAAM,CAAC,GAAK,OAAmC,CAClH,MAAM,OAAS,iCAAiC,CAC9C,MAAO,MAAM,MACb,cAAe,MAAM,SAAW,WAAa,SAC7C,cAAe,MAAM,cAAe,SAAU,MAAM,SAAU,SAAU,MAAM,SAC9E,YAAa,MAAM,YAAa,UAAW,UAAU,MAAO,eAAgB,SAAU,cAAe,MACrG,SAAU,CAAE,aAAc,MAAM,aAAc,SAAU,MAAM,EAC9D,GAAI,WAAa,CAAE,MAAAA,MAAK,EAAK,CAAE,aAAcA,MAAK,EAClD,wBAAyB,kBAAoB,MAAM,MAAM,KAAM,IAAO,CAAC,MAAM,cAAc,SAAS,EAAE,CAAC,GAAK,KAC5G,cAAe,CAAC,CAAE,MAAO,IAAI,IAAO,KAAK,oBAAqB,IAAI,EAClE,yBAA0B,CAAC,CAAE,MAAO,IAAI,IAAO,KAAK,YAAa,IAAI,EACtE,EACD,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,OAAO,OAAO,KAChB,EACA,MAAM,WAAa,WAAW,eAAe,MAAM,YAAc,MAAM,YAAY,CAAC,EACpF,MAAM,SAAW,WAAW,WAAW,MAAM,YAAW,CAAE,EAC1D,MAAM,QAAU,IAAW,CACzB,MAAM,UAAY,WAAa,MAAM,WAAkC,SAAS,MAAM,MAAM,UAAU,SACtG,MAAM,WAAa,yBACjB,MAAM,MACN,UACA,SAAS,MAAM,MAAM,OAAO,QAC5B,MAAM,cACN,MAAM,SAAW,WAAa,QAAQ,EAExC,WAAW,MAAQ,eAAe,WAAW,SAAU,WAAW,OAAO,EACzE,SAAS,MAAQ,WAAW,MAAM,YAAW,EAC7C,GAAI,YAAc,CAAC,QAAQ,UAAW,WAAW,QAAQ,EAAG,KAAK,oBAAqB,WAAW,QAAQ,CAC3G,EACA,MAAM,IAAM,MAAM,WAAa,MAAQ,CACrC,GAAI,CAAC,YAAc,OAAS,OAAW,OACvC,MAAM,OAAS,WAAW,MAAM,qBAAqB,CAAE,MAAO,IAAI,CAAE,EACpE,GAAI,CAAC,OAAO,GAAI,MAAM,IAAI,UAAU,OAAO,MAAM,OAAO,EACxD,SAAS,MAAQ,OAAO,KAC1B,CAAC,EACD,MAAM,CAAC,IAAM,MAAM,MAAO,IAAM,MAAM,cAAe,IAAM,MAAM,SAAU,IAAM,MAAM,SAAU,IAAM,MAAM,YAAa,IAAM,MAAM,SAAU,IAAM,MAAM,aAAc,SAAS,EAAG,OAAO,EAC7L,MAAM,MAAQ,SAAS,IAAM,SAAS,MAAM,MAAM,UAAU,QAAQ,EACpE,MAAM,YAAc,SAAS,IAAM,SAAS,MAAM,MAAM,OAAO,OAAO,EACtE,MAAM,SAAW,SAAS,IAAM,MAAM,QAAQ,EAC9C,MAAM,SAAW,SAAS,IAAM,MAAM,QAAQ,EAC9C,MAAM,cAAgB,SAA8B,IAAM,IAAI,IAAI,MAAM,aAAa,CAAC,EACtF,MAAM,MAAQ,CAAC,OAA8D,OAA+B,CAC1G,GAAI,CAAC,OAAO,GAAI,MAAO,OACvB,SAAS,MAAQ,OAAO,SACxB,GAAI,OAAS,OAAW,KAAK,SAAS,IAAM,UAAU,KAAM,OAAO,SAAS,MAAM,OAAO,OAAO,CAAC,EACjG,MAAO,KACT,EACA,QAAqB,QAAS,CAC5B,MAAO,YAAa,SAAU,SAAU,cACxC,MAAO,CAAC,GAAI,SAAW,MAAM,WAAW,MAAM,YAAY,CAAE,KAAM,SAAU,EAAE,CAAE,EAAG,OAAO,QAAQ,+CAA+C,CAA4B,EAC9K,EACD,MAAM,UAAY,SAAmC,KAAO,CAAE,MAAO,MAAM,MAAO,iBAAkB,YAAY,MAAO,SAAU,MAAM,SAAU,SAAU,MAAM,QAAQ,EAAG,EAC5K,MAAO,IAAiB,CACtB,MAAM,KAAO,EAAE,UAAW,WAAW,MAAO,6BAA6B,CAAE,YAAa,MAAM,YAAa,UAAW,UAAU,MAAO,GAAI,MAAM,QAAU,OAAY,CAAA,EAAK,CAAE,MAAO,MAAM,KAAK,EAAK,SAAU,MAAM,SAAU,SAAU,MAAM,QAAQ,CAAE,EAA8B,CACvR,GAAI,MAAM,GAAI,QAAS,MAAM,QAC7B,WAAa,SAAoB,CAAG,YAAY,MAAQ,OAA+B,EACvF,UAAY,OAAwB,CAAG,GAAI,MAAM,WAAW,MAAM,oBAAoB,KAAK,EAAG,MAAM,aAA4B,EAAG,MAAM,eAAc,CAAI,GACxJ,cAAc,aAAa,KAAK,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,UAAU,KAAK,CAAC,CAAE,EAC5F,GAAI,CAAC,cAAc,eAAiB,MAAM,OAAS,QAAa,MAAM,OAAS,OAAW,OAAO,KACjG,MAAO,CAAC,KAAM,GAAG,MAAM,MAAM,IAAI,CAAC,SAAU,QAAU,EAAE,QAAS,CAC/D,IAAM,SAAoB,CACxB,mBAAmB,KAAK,EAAI,mBAAmB,iBAAmB,QAAU,IAC9E,EACA,KAAM,SAAU,KAAM,MAAM,KAAM,KAAM,MAAM,KAAM,MAAO,SAC3D,SAAU,MAAM,SAAU,MAAO,yBAClC,CAAC,CAAC,CACL,CACF,EACD,EAKM,MAAM,gBAAkB,gBAAgB,CAC7C,KAAM,yBAA0B,aAAc,MAC9C,MAAO,CACL,MAAO,CAAE,KAAM,OAAQ,SAAU,IAAI,EAAI,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EAClF,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,QAAQ,EAAI,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAEhI,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAK,EAAE,CAC3B,MAAM,KAAO,QAAO,EACpB,MAAM,MAAQ,SAAmC,KAAO,CACtD,MAAO,MAAM,MAAO,QAAS,KAAK,MAAM,MAAM,SAAS,MAAM,KAAK,EAAG,YAAa,KAAK,YAAY,QAAU,MAAM,MACnH,SAAU,KAAK,SAAS,OAAS,MAAM,UAAY,KAAK,cAAc,MAAM,IAAI,MAAM,KAAK,EAAG,SAAU,KAAK,SAAS,OACtH,EACF,MAAO,IAAkB,EAAE,UAAW,WAAW,MAAO,6BAA6B,CAAE,GAAI,MAAM,MAAO,QAAS,MAAM,MAAM,QAAS,YAAa,MAAM,MAAM,YAAa,SAAU,MAAM,MAAM,QAAQ,CAAE,EAA8B,CACxO,GAAI,MAAM,GAAI,QAAS,MAAM,QAC7B,QAAU,OAAqB,CAAG,GAAI,CAAC,MAAM,kBAAoB,CAAC,MAAM,MAAM,UAAY,CAAC,MAAM,MAAM,SAAU,KAAK,MAAM,MAAM,MAAO,MAAM,aAA4B,CAAG,EAC/K,EAAG,CAAE,QAAS,IAAM,MAAM,SAAS,IAAI,MAAM,KAAK,CAAC,CAAE,CACxD,EACD,EAED,SAAS,SAAO,CACd,MAAM,KAAO,OAAoB,OAAO,EACxC,GAAI,OAAS,OAAW,MAAM,IAAI,UAAU,sDAAsD,EAClG,OAAO,IACT,CACA,SAAS,UAAU,KAAmB,GAAiB,CACrD,GAAI,KAAO,KAAM,OACjB,UAAW,QAAQ,KAAK,iBAA8B,wBAAwB,EAAG,GAAI,KAAK,QAAQ,eAAe,IAAM,GAAI,KAAK,MAAK,CACvI","names":["value"],"file":"toggle-group.js"}
|
package/dist/tree-grid.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import { type TreeGridEditMode, type TreeGridPolicies, type TreeGridRowInput } from '@sectile/dom/tree-grid';
|
|
3
3
|
import { type PrimitiveAs } from './primitive.js';
|
|
4
|
-
import { type ConditionalPresenceProps } from './
|
|
4
|
+
import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
|
|
5
5
|
export interface TreeGridRootProps {
|
|
6
6
|
readonly rows: readonly TreeGridRowInput<string, string>[];
|
|
7
7
|
readonly getCellValue: (id: string) => string;
|
package/dist/tree-grid.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeGrid}from"@sectile/dom/tree-grid";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const key=Symbol("SectileTreeGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeGridRoot=defineComponent({name:"SectileTreeGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},getCellValue:{type:Function,required:true},setCellValue:{type:Function,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},expandedValue:{type:Array,default:void 0},defaultExpandedValue:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValue!==void 0?props.expandedValue:props.defaultExpandedValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("TreeGridRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeGridRoot","expandedValue",()=>props.expandedValue),highlighted:useControlledStateInvariant("TreeGridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("TreeGridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValue:props.expandedValue!==void 0?props.expandedValue:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const expandedRows=computed(()=>new Set(state.value.expandedValue));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;connection.value.setGridAttributes(props.rows.length,maxTreeGridColumnCount(props.rows));element.value.querySelectorAll("[data-sectile-tree-grid-row]").forEach(node=>connection.value?.setRowAttributes(node,{rowIndex:numberData(node.dataset["rowIndex"],1),level:numberData(node.dataset["level"],1),...node.dataset["expandable"]===void 0?{}:{expanded:node.dataset["expanded"]!==void 0}}));element.value.querySelectorAll("[data-sectile-tree-grid-cell]").forEach(node=>{const id=node.dataset["sectileTreeGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,{id,columnIndex:numberData(node.dataset["columnIndex"],1)})});element.value.querySelectorAll("[data-sectile-tree-grid-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeGridDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)});element.value.querySelectorAll("[data-sectile-tree-grid-editor]").forEach(node=>{const id=node.dataset["sectileTreeGridEditor"];if(id!==void 0)connection.value?.bindEditor(node,{id,...node.getAttribute("aria-label")===null?{}:{label:node.getAttribute("aria-label")}})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const cells=nextOwner.rows.flatMap(row=>row.cells.filter(id=>id!==null));const branches=collectionBranchIDs(nextOwner.rows);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValue:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(cells,requestedValue===null?[]:[requestedValue],requestedHighlight,[],"single",{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localExpanded.value=expanded;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValue",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createTreeGrid({root:element.value,rows:nextOwner.rows,getCellValue:nextOwner.getCellValue,setCellValue:nextOwner.setCellValue,...controlled.value?{value}:{defaultValue:value},...controlled.expanded?{expandedValue:expanded}:{defaultExpandedValue:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onExpandedValueChange:({value:value2})=>{localExpanded.value=value2;emit("update:expandedValue",value2)},onHighlightedValueChange:({value:value2})=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:({value:value2})=>{localEditMode.value=value2;emit("update:editMode",value2)},onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};provide(key,{state,expandedRows,registerRow:(node,rowIndex,level,expanded)=>connection.value?.setRowAttributes(node,{rowIndex,level,...expanded===void 0?{}:{expanded}}),registerCell:(node,id,columnIndex)=>connection.value?.setCellAttributes(node,{id,columnIndex}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id),registerEditor:(node,id,label)=>connection.value?.bindEditor(node,{id,...label===void 0?{}:{label}}),handleEditorKeydown:event=>{if(connection.value?.handleKeyboardEvent(event)!==true)return;event.preventDefault();event.stopPropagation()}});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.rows,()=>props.getCellValue,()=>props.setCellValue,()=>props.disabled,()=>props.readonly,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.expandedValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValue:props.expandedValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridRow=defineComponent({name:"SectileTreeGridRow",inheritAttrs:false,props:{value:{type:String,required:true},rowIndex:{type:Number,required:true},level:{type:Number,default:1},expandable:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridRow");const state=computed(()=>({...root.state.value,value:props.value,expanded:root.expandedRows.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerRow(node,props.rowIndex,props.level,props.expandable?state.value.expanded:void 0)},"data-sectile-tree-grid-row":props.value,"data-row-index":props.rowIndex,"data-level":props.level,"data-expandable":props.expandable?"":void 0,"data-expanded":props.expandable&&state.value.expanded?"":void 0,"data-scope":"tree-grid","data-part":"row"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridCell=defineComponent({name:"SectileTreeGridCell",inheritAttrs:false,props:{value:{type:String,required:true},columnIndex:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridCell");const state=computed(()=>({...root.state.value,value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,editing:root.state.value.highlightedValue===props.value&&root.state.value.editMode==="editing"}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value,props.columnIndex)},"data-sectile-tree-grid-cell":props.value,"data-column-index":props.columnIndex,"data-scope":"tree-grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-editing":state.value.editing?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridDisclosure=defineComponent({name:"SectileTreeGridDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridDisclosure");const state=computed(()=>({...root.state.value,value:props.for,expanded:root.expandedRows.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?root.state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-grid-disclosure":props.for,"data-scope":"tree-grid","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridEditor=defineComponent({name:"SectileTreeGridEditor",inheritAttrs:false,props:{for:{type:String,required:true},label:{type:String,default:void 0},...conditionalPresenceProps},setup(props,{attrs}){const root=useRoot("TreeGridEditor");const editing=computed(()=>root.state.value.highlightedValue===props.for&&root.state.value.editMode==="editing");const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(editing,forcePresent);return()=>{const inactivePresent=!editing.value&&presence.present.value;return h("input",mergeProps(attrs,{ref:node=>{const element=presence.register(node);if(element?.tagName==="INPUT")root.registerEditor(element,props.for,props.label)},hidden:presence.hidden.value,tabindex:inactivePresent?-1:void 0,onKeydown:root.handleEditorKeydown,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":props.label,"data-sectile-tree-grid-editor":props.for,"data-scope":"tree-grid","data-part":"editor","data-state":editing.value?"editing":"idle"}))}}});function numberData(value,fallback){const parsed=Number(value);return Number.isFinite(parsed)?parsed:fallback}function maxTreeGridColumnCount(rows){let maximum=0;for(const row of rows)maximum=Math.max(maximum,row.cells.length);return maximum}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeGridRoot.`);return root}function snapshotTreeGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze({id:row.id,parentID:row.parentID,cells:Object.freeze([...row.cells])}))),getCellValue:props.getCellValue,setCellValue:props.setCellValue,disabled:props.disabled,readonly:props.readonly,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameTreeGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||left.getCellValue!==right.getCellValue||left.setCellValue!==right.setCellValue||left.disabled!==right.disabled||left.readonly!==right.readonly||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;for(let rowIndex=0;rowIndex<left.rows.length;rowIndex+=1){const leftRow=left.rows[rowIndex];const rightRow=right.rows[rowIndex];if(leftRow.id!==rightRow.id||leftRow.parentID!==rightRow.parentID||leftRow.cells.length!==rightRow.cells.length)return false;for(let column=0;column<leftRow.cells.length;column+=1){if(leftRow.cells[column]!==rightRow.cells[column])return false}}return true}export{TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow};
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeGrid}from"@sectile/dom/tree-grid";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileTreeGridRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeGridRoot=defineComponent({name:"SectileTreeGridRoot",inheritAttrs:false,props:{rows:{type:Array,required:true},getCellValue:{type:Function,required:true},setCellValue:{type:Function,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},expandedValue:{type:Array,default:void 0},defaultExpandedValue:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},editMode:{type:String,default:void 0},defaultEditMode:{type:String,default:"navigation"},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValue":_value=>true,"update:highlightedValue":_value=>true,"update:editMode":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValue!==void 0?props.expandedValue:props.defaultExpandedValue);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const localEditMode=shallowRef(props.editMode??props.defaultEditMode);const controlled={value:useControlledStateInvariant("TreeGridRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeGridRoot","expandedValue",()=>props.expandedValue),highlighted:useControlledStateInvariant("TreeGridRoot","highlightedValue",()=>props.highlightedValue),editMode:useControlledStateInvariant("TreeGridRoot","editMode",()=>props.editMode)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValue:props.expandedValue!==void 0?props.expandedValue:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,editMode:props.editMode??localEditMode.value,disabled:props.disabled,readonly:props.readonly}));const expandedRows=computed(()=>new Set(state.value.expandedValue));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;connection.value.setGridAttributes(props.rows.length,maxTreeGridColumnCount(props.rows));element.value.querySelectorAll("[data-sectile-tree-grid-row]").forEach(node=>connection.value?.setRowAttributes(node,{rowIndex:numberData(node.dataset["rowIndex"],1),level:numberData(node.dataset["level"],1),...node.dataset["expandable"]===void 0?{}:{expanded:node.dataset["expanded"]!==void 0}}));element.value.querySelectorAll("[data-sectile-tree-grid-cell]").forEach(node=>{const id=node.dataset["sectileTreeGridCell"];if(id!==void 0)connection.value?.setCellAttributes(node,{id,columnIndex:numberData(node.dataset["columnIndex"],1)})});element.value.querySelectorAll("[data-sectile-tree-grid-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeGridDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)});element.value.querySelectorAll("[data-sectile-tree-grid-editor]").forEach(node=>{const id=node.dataset["sectileTreeGridEditor"];if(id!==void 0)connection.value?.bindEditor(node,{id,...node.getAttribute("aria-label")===null?{}:{label:node.getAttribute("aria-label")}})})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;localEditMode.value=snapshot.editMode;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeGridConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeGridConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const cells=nextOwner.rows.flatMap(row=>row.cells.filter(id=>id!==null));const branches=collectionBranchIDs(nextOwner.rows);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValue:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(cells,requestedValue===null?[]:[requestedValue],requestedHighlight,[],"single",{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;const value=reconciled.selected[0]??null;const requestedEditMode=controlled.editMode?props.editMode:localEditMode.value;const editMode=reconciled.current===null&&requestedEditMode==="editing"?"navigation":requestedEditMode;localValue.value=value;localExpanded.value=expanded;localHighlight.value=reconciled.current;localEditMode.value=editMode;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValue",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);if(controlled.editMode&&props.editMode!==editMode)emit("update:editMode",editMode);connection.value=createTreeGrid({root:element.value,rows:nextOwner.rows,getCellValue:id=>props.getCellValue(id),setCellValue:(id,value2)=>props.setCellValue(id,value2),...controlled.value?{value}:{defaultValue:value},...controlled.expanded?{expandedValue:expanded}:{defaultExpandedValue:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},...controlled.editMode?{editMode}:{defaultEditMode:editMode},disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onExpandedValueChange:({value:value2})=>{localExpanded.value=value2;emit("update:expandedValue",value2)},onHighlightedValueChange:({value:value2})=>{localHighlight.value=value2;emit("update:highlightedValue",value2)},onEditModeChange:({value:value2})=>{localEditMode.value=value2;emit("update:editMode",value2)},onUpdate:refresh});connectionOwner=nextOwner;refreshParts();refresh()};let mounted=false;let editorFocused=false;let editorComposing=false;let reconnectPending=false;let reconnectTimer=null;const editorActive=()=>editorFocused||editorComposing;const requestConnect=()=>{if(editorActive()){reconnectPending=true;return}connect()};const schedulePendingConnect=()=>{if(editorActive()||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||editorActive())return;reconnectPending=false;connect()},0)};const setEditorFocused=focused=>{editorFocused=focused;schedulePendingConnect()};const setEditorComposing=composing=>{editorComposing=composing;schedulePendingConnect()};provide(key,{state,expandedRows,registerRow:(node,rowIndex,level,expanded)=>connection.value?.setRowAttributes(node,{rowIndex,level,...expanded===void 0?{}:{expanded}}),registerCell:(node,id,columnIndex)=>connection.value?.setCellAttributes(node,{id,columnIndex}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id),registerEditor:(node,id,label)=>connection.value?.bindEditor(node,{id,...label===void 0?{}:{label}}),setEditorFocused,setEditorComposing,handleEditorKeydown:event=>{if(connection.value?.handleKeyboardEvent(event)!==true)return;event.preventDefault();event.stopPropagation()}});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;editorFocused=false;editorComposing=false;connection.value?.disconnect()});watch([()=>props.rows,()=>props.getCellValue,()=>props.setCellValue,()=>props.disabled,()=>props.readonly,()=>props.policies],requestConnect);watch([()=>props.modelValue,()=>props.expandedValue,()=>props.highlightedValue,()=>props.editMode],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValue:props.expandedValue}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{},...controlled.editMode?{editMode:props.editMode}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-grid","data-part":"root","data-edit-mode":state.value.editMode}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridRow=defineComponent({name:"SectileTreeGridRow",inheritAttrs:false,props:{value:{type:String,required:true},rowIndex:{type:Number,required:true},level:{type:Number,default:1},expandable:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridRow");const state=computed(()=>({...root.state.value,value:props.value,expanded:root.expandedRows.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerRow(node,props.rowIndex,props.level,props.expandable?state.value.expanded:void 0)},"data-sectile-tree-grid-row":props.value,"data-row-index":props.rowIndex,"data-level":props.level,"data-expandable":props.expandable?"":void 0,"data-expanded":props.expandable&&state.value.expanded?"":void 0,"data-scope":"tree-grid","data-part":"row"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridCell=defineComponent({name:"SectileTreeGridCell",inheritAttrs:false,props:{value:{type:String,required:true},columnIndex:{type:Number,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridCell");const state=computed(()=>({...root.state.value,value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,editing:root.state.value.highlightedValue===props.value&&root.state.value.editMode==="editing"}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerCell(node,props.value,props.columnIndex)},"data-sectile-tree-grid-cell":props.value,"data-column-index":props.columnIndex,"data-scope":"tree-grid","data-part":"cell","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-editing":state.value.editing?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridDisclosure=defineComponent({name:"SectileTreeGridDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeGridDisclosure");const state=computed(()=>({...root.state.value,value:props.for,expanded:root.expandedRows.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?root.state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-grid-disclosure":props.for,"data-scope":"tree-grid","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const TreeGridEditor=defineComponent({name:"SectileTreeGridEditor",inheritAttrs:false,props:{for:{type:String,required:true},label:{type:String,default:void 0},...conditionalPresenceProps},setup(props,{attrs}){const root=useRoot("TreeGridEditor");const editing=computed(()=>root.state.value.highlightedValue===props.for&&root.state.value.editMode==="editing");const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(editing,forcePresent);return()=>{const inactivePresent=!editing.value&&presence.present.value;return h("input",mergeProps(attrs,{ref:node=>{const element=presence.register(node);if(element?.tagName==="INPUT")root.registerEditor(element,props.for,props.label)},hidden:presence.hidden.value,tabindex:inactivePresent?-1:void 0,onKeydown:root.handleEditorKeydown,onFocus:()=>root.setEditorFocused(true),onBlur:()=>root.setEditorFocused(false),onCompositionstart:()=>root.setEditorComposing(true),onCompositionend:()=>root.setEditorComposing(false),...inactivePresent?{inert:true,"aria-hidden":"true"}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":props.label,"data-sectile-tree-grid-editor":props.for,"data-scope":"tree-grid","data-part":"editor","data-state":editing.value?"editing":"idle"}))}}});function numberData(value,fallback){const parsed=Number(value);return Number.isFinite(parsed)?parsed:fallback}function maxTreeGridColumnCount(rows){let maximum=0;for(const row of rows)maximum=Math.max(maximum,row.cells.length);return maximum}function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeGridRoot.`);return root}function snapshotTreeGridConnectionOwner(props){return Object.freeze({rows:Object.freeze(props.rows.map(row=>Object.freeze({id:row.id,parentID:row.parentID,cells:Object.freeze([...row.cells])}))),disabled:props.disabled,readonly:props.readonly,eligible:props.policies?.eligible,boundary:props.policies?.boundary,maxScan:props.policies?.maxScan})}function sameTreeGridConnectionOwner(left,right){if(left.rows.length!==right.rows.length||left.disabled!==right.disabled||left.readonly!==right.readonly||left.eligible!==right.eligible||left.boundary!==right.boundary||left.maxScan!==right.maxScan)return false;for(let rowIndex=0;rowIndex<left.rows.length;rowIndex+=1){const leftRow=left.rows[rowIndex];const rightRow=right.rows[rowIndex];if(leftRow.id!==rightRow.id||leftRow.parentID!==rightRow.parentID||leftRow.cells.length!==rightRow.cells.length)return false;for(let column=0;column<leftRow.cells.length;column+=1){if(leftRow.cells[column]!==rightRow.cells[column])return false}}return true}export{TreeGridCell,TreeGridDisclosure,TreeGridEditor,TreeGridRoot,TreeGridRow};
|
|
2
2
|
//# sourceMappingURL=tree-grid.js.map
|
package/dist/tree-grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tree-grid.ts"],"mappings":"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","names":["value"],"file":"tree-grid.js"}
|
|
1
|
+
{"version":3,"sources":["../src/tree-grid.ts"],"mappings":"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","names":["value"],"file":"tree-grid.js"}
|
package/dist/tree-view.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type PropType, type SlotsType, type VNodeChild } from 'vue';
|
|
2
2
|
import { type TreeNodeInput, type TreeViewSelectionMode } from '@sectile/dom/tree-view';
|
|
3
3
|
import { type PrimitiveAs } from './primitive.js';
|
|
4
|
-
import { type ConditionalPresenceProps } from './
|
|
4
|
+
import { type ConditionalPresenceProps } from './presence/conditional-presence.js';
|
|
5
5
|
export interface TreeViewRootProps {
|
|
6
6
|
readonly nodes: readonly TreeNodeInput<string>[];
|
|
7
7
|
readonly selectionMode?: TreeViewSelectionMode;
|
package/dist/tree-view.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeView}from"@sectile/dom/tree-view";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./internal/conditional-presence.js";const key=Symbol("SectileTreeViewRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeViewRoot=defineComponent({name:"SectileTreeViewRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},selectionMode:{type:String,default:"single"},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},expandedValues:{type:Array,default:void 0},defaultExpandedValues:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValues":_value=>true,"update:highlightedValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValues!==void 0?props.expandedValues:props.defaultExpandedValues);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const controlled={value:useControlledStateInvariant("TreeViewRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeViewRoot","expandedValues",()=>props.expandedValues),highlighted:useControlledStateInvariant("TreeViewRoot","highlightedValue",()=>props.highlightedValue)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValues:props.expandedValues!==void 0?props.expandedValues:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,disabled:props.disabled,readonly:props.readonly}));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;element.value.querySelectorAll("[data-sectile-tree-view-item]").forEach(node=>{const id=node.dataset["sectileTreeViewItem"];if(id!==void 0)connection.value?.setItemAttributes(node,{id,disabled:node.dataset["disabled"]!==void 0})});element.value.querySelectorAll("[data-sectile-tree-view-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeViewDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeViewConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeViewConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const items=nextOwner.nodes.map(node=>node.id);const branches=collectionBranchIDs(nextOwner.nodes);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValues:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(items,requestedValue,requestedHighlight,nextOwner.disabledItems,nextOwner.selectionMode,{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;localValue.value=reconciled.selected;localExpanded.value=expanded;localHighlight.value=reconciled.current;if(controlled.value&&!sameIDs(requestedValue,reconciled.selected))emit("update:modelValue",reconciled.selected);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValues",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);connection.value=createTreeView({root:element.value,nodes:nextOwner.nodes,selectionMode:nextOwner.selectionMode,...controlled.value?{value:reconciled.selected}:{defaultValue:reconciled.selected},...controlled.expanded?{expandedValues:expanded}:{defaultExpandedValues:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},disabledItems:nextOwner.disabledItems,disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value})=>{localValue.value=value;emit("update:modelValue",value)},onExpandedValuesChange:({value})=>{localExpanded.value=value;emit("update:expandedValues",value)},onHighlightedValueChange:({value})=>{localHighlight.value=value;emit("update:highlightedValue",value)},onUpdate:refresh});connectionOwner=nextOwner;connection.value.setTreeAttributes(nextOwner.label);refreshParts();refresh()};const disabledItems=computed(()=>new Set(props.disabledItems));const selectedItems=computed(()=>new Set(state.value.value));const expandedItems=computed(()=>new Set(state.value.expandedValues));provide(key,{state,selectedItems,expandedItems,disabledItems,registerItem:(node,id,disabled)=>connection.value?.setItemAttributes(node,{id,disabled}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.expandedValues,()=>props.highlightedValue],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValues:props.expandedValues}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-view","data-part":"root"}),{default:()=>slots["default"]?.(state.value)})}});const TreeViewGroup=defineComponent({name:"SectileTreeViewGroup",inheritAttrs:false,props:{for:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewGroup");const expanded=computed(()=>root.expandedItems.value.has(props.for));const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(expanded,forcePresent);return()=>{const inactivePresent=!expanded.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,role:"group",hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-scope":"tree-view","data-part":"group","data-state":expanded.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const TreeViewItem=defineComponent({name:"SectileTreeViewItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewItem");const state=computed(()=>({expandedValues:root.state.value.expandedValues,highlightedValue:root.state.value.highlightedValue,readonly:root.state.value.readonly,value:props.value,selectedValues:root.state.value.value,selected:root.selectedItems.value.has(props.value),expanded:root.expandedItems.value.has(props.value),highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,props.disabled)},"data-sectile-tree-view-item":props.value,"data-scope":"tree-view","data-part":"item","data-selected":state.value.selected?"":void 0,"data-expanded":state.value.expanded?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeViewDisclosure=defineComponent({name:"SectileTreeViewDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewDisclosure");const state=computed(()=>({expandedValues:root.state.value.expandedValues,highlightedValue:root.state.value.highlightedValue,readonly:root.state.value.readonly,value:props.for,selectedValues:root.state.value.value,selected:root.selectedItems.value.has(props.for),expanded:root.expandedItems.value.has(props.for),highlighted:root.state.value.highlightedValue===props.for,disabled:root.state.value.disabled||root.disabledItems.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-view-disclosure":props.for,"data-scope":"tree-view","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeViewRoot.`);return root}function snapshotTreeViewConnectionOwner(props){return Object.freeze({nodes:Object.freeze(props.nodes.map(node=>Object.freeze({id:node.id,parentID:node.parentID}))),selectionMode:props.selectionMode,disabledItems:Object.freeze([...props.disabledItems]),disabled:props.disabled,readonly:props.readonly,label:props.label,eligible:props.policies?.eligible})}function sameTreeViewConnectionOwner(left,right){if(left.nodes.length!==right.nodes.length||!sameIDs(left.disabledItems,right.disabledItems)||left.selectionMode!==right.selectionMode||left.disabled!==right.disabled||left.readonly!==right.readonly||left.label!==right.label||left.eligible!==right.eligible)return false;for(let index=0;index<left.nodes.length;index+=1){const leftNode=left.nodes[index];const rightNode=right.nodes[index];if(leftNode.id!==rightNode.id||leftNode.parentID!==rightNode.parentID){return false}}return true}export{TreeViewDisclosure,TreeViewGroup,TreeViewItem,TreeViewRoot};
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createTreeView}from"@sectile/dom/tree-view";import{Primitive}from"./primitive.js";import{collectionBranchIDs,reconcileCollectionState,sameIDs}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{conditionalPresenceProps,useConditionalPresence}from"./presence/conditional-presence.js";const key=Symbol("SectileTreeViewRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const TreeViewRoot=defineComponent({name:"SectileTreeViewRoot",inheritAttrs:false,props:{nodes:{type:Array,required:true},selectionMode:{type:String,default:"single"},modelValue:{type:Array,default:void 0},defaultValue:{type:Array,default:()=>[]},expandedValues:{type:Array,default:void 0},defaultExpandedValues:{type:Array,default:()=>[]},highlightedValue:{type:String,default:void 0},defaultHighlightedValue:{type:String,default:null},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:expandedValues":_value=>true,"update:highlightedValue":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const element=shallowRef();const connection=shallowRef();let connectionOwner;const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localExpanded=shallowRef(props.expandedValues!==void 0?props.expandedValues:props.defaultExpandedValues);const localHighlight=shallowRef(props.highlightedValue!==void 0?props.highlightedValue:props.defaultHighlightedValue);const controlled={value:useControlledStateInvariant("TreeViewRoot","modelValue",()=>props.modelValue),expanded:useControlledStateInvariant("TreeViewRoot","expandedValues",()=>props.expandedValues),highlighted:useControlledStateInvariant("TreeViewRoot","highlightedValue",()=>props.highlightedValue)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,expandedValues:props.expandedValues!==void 0?props.expandedValues:localExpanded.value,highlightedValue:props.highlightedValue!==void 0?props.highlightedValue:localHighlight.value,disabled:props.disabled,readonly:props.readonly}));const refreshParts=()=>{if(element.value===void 0||connection.value===void 0)return;element.value.querySelectorAll("[data-sectile-tree-view-item]").forEach(node=>{const id=node.dataset["sectileTreeViewItem"];if(id!==void 0)connection.value?.setItemAttributes(node,{id,disabled:node.dataset["disabled"]!==void 0})});element.value.querySelectorAll("[data-sectile-tree-view-disclosure]").forEach(node=>{const id=node.dataset["sectileTreeViewDisclosure"];if(id!==void 0)connection.value?.setDisclosureAttributes(node,id)})};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected;localExpanded.value=snapshot.expansion.ids;localHighlight.value=snapshot.cursor.current;refreshParts()};const connect=()=>{const nextOwner=snapshotTreeViewConnectionOwner(props);if(connection.value!==void 0&&connectionOwner!==void 0&&sameTreeViewConnectionOwner(connectionOwner,nextOwner))return;connection.value?.disconnect();if(element.value===void 0)return;const items=nextOwner.nodes.map(node=>node.id);const branches=collectionBranchIDs(nextOwner.nodes);const requestedValue=controlled.value?props.modelValue:localValue.value;const requestedExpanded=controlled.expanded?props.expandedValues:localExpanded.value;const requestedHighlight=controlled.highlighted?props.highlightedValue:localHighlight.value;const reconciled=reconcileCollectionState(items,requestedValue,requestedHighlight,nextOwner.disabledItems,nextOwner.selectionMode,{preserveNullCurrent:true});const expanded=reconcileCollectionState(branches,requestedExpanded,null,[],"multiple",{preserveNullCurrent:true}).selected;localValue.value=reconciled.selected;localExpanded.value=expanded;localHighlight.value=reconciled.current;if(controlled.value&&!sameIDs(requestedValue,reconciled.selected))emit("update:modelValue",reconciled.selected);if(controlled.expanded&&!sameIDs(requestedExpanded,expanded))emit("update:expandedValues",expanded);if(controlled.highlighted&&requestedHighlight!==reconciled.current)emit("update:highlightedValue",reconciled.current);connection.value=createTreeView({root:element.value,nodes:nextOwner.nodes,selectionMode:nextOwner.selectionMode,...controlled.value?{value:reconciled.selected}:{defaultValue:reconciled.selected},...controlled.expanded?{expandedValues:expanded}:{defaultExpandedValues:expanded},...controlled.highlighted?{highlightedValue:reconciled.current}:{defaultHighlightedValue:reconciled.current},disabledItems:nextOwner.disabledItems,disabled:nextOwner.disabled,readOnly:nextOwner.readonly,...props.policies===void 0?{}:{policies:props.policies},onValueChange:({value})=>{localValue.value=value;emit("update:modelValue",value)},onExpandedValuesChange:({value})=>{localExpanded.value=value;emit("update:expandedValues",value)},onHighlightedValueChange:({value})=>{localHighlight.value=value;emit("update:highlightedValue",value)},onUpdate:refresh});connectionOwner=nextOwner;connection.value.setTreeAttributes(nextOwner.label);refreshParts();refresh()};const disabledItems=computed(()=>new Set(props.disabledItems));const selectedItems=computed(()=>new Set(state.value.value));const expandedItems=computed(()=>new Set(state.value.expandedValues));provide(key,{state,selectedItems,expandedItems,disabledItems,registerItem:(node,id,disabled)=>connection.value?.setItemAttributes(node,{id,disabled}),registerDisclosure:(node,id)=>connection.value?.setDisclosureAttributes(node,id)});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.nodes,()=>props.selectionMode,()=>props.disabledItems,()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.expandedValues,()=>props.highlightedValue],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.expanded?{expandedValues:props.expandedValues}:{},...controlled.highlighted?{highlightedValue:props.highlightedValue}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{element.value=node instanceof HTMLElement?node:void 0},"data-scope":"tree-view","data-part":"root"}),{default:()=>slots["default"]?.(state.value)})}});const TreeViewGroup=defineComponent({name:"SectileTreeViewGroup",inheritAttrs:false,props:{for:{type:String,required:true},...partProps,...conditionalPresenceProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewGroup");const expanded=computed(()=>root.expandedItems.value.has(props.for));const forcePresent=computed(()=>props.forcePresent);const presence=useConditionalPresence(expanded,forcePresent);return()=>{const inactivePresent=!expanded.value&&presence.present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:presence.register,role:"group",hidden:presence.hidden.value,...inactivePresent?{inert:true,"aria-hidden":"true"}:{},"data-scope":"tree-view","data-part":"group","data-state":expanded.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const TreeViewItem=defineComponent({name:"SectileTreeViewItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewItem");const state=computed(()=>({expandedValues:root.state.value.expandedValues,highlightedValue:root.state.value.highlightedValue,readonly:root.state.value.readonly,value:props.value,selectedValues:root.state.value.value,selected:root.selectedItems.value.has(props.value),expanded:root.expandedItems.value.has(props.value),highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,props.disabled)},"data-sectile-tree-view-item":props.value,"data-scope":"tree-view","data-part":"item","data-selected":state.value.selected?"":void 0,"data-expanded":state.value.expanded?"":void 0,"data-highlighted":state.value.highlighted?"":void 0,"data-disabled":state.value.disabled?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const TreeViewDisclosure=defineComponent({name:"SectileTreeViewDisclosure",inheritAttrs:false,props:{for:{type:String,required:true},as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("TreeViewDisclosure");const state=computed(()=>({expandedValues:root.state.value.expandedValues,highlightedValue:root.state.value.highlightedValue,readonly:root.state.value.readonly,value:props.for,selectedValues:root.state.value.value,selected:root.selectedItems.value.has(props.for),expanded:root.expandedItems.value.has(props.for),highlighted:root.state.value.highlightedValue===props.for,disabled:root.state.value.disabled||root.disabledItems.value.has(props.for)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:props.as==="button"?state.value.disabled:void 0,elementRef:node=>{if(node instanceof HTMLElement)root.registerDisclosure(node,props.for)},"data-sectile-tree-view-disclosure":props.for,"data-scope":"tree-view","data-part":"disclosure","data-state":state.value.expanded?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside TreeViewRoot.`);return root}function snapshotTreeViewConnectionOwner(props){return Object.freeze({nodes:Object.freeze(props.nodes.map(node=>Object.freeze({id:node.id,parentID:node.parentID}))),selectionMode:props.selectionMode,disabledItems:Object.freeze([...props.disabledItems]),disabled:props.disabled,readonly:props.readonly,label:props.label,eligible:props.policies?.eligible})}function sameTreeViewConnectionOwner(left,right){if(left.nodes.length!==right.nodes.length||!sameIDs(left.disabledItems,right.disabledItems)||left.selectionMode!==right.selectionMode||left.disabled!==right.disabled||left.readonly!==right.readonly||left.label!==right.label||left.eligible!==right.eligible)return false;for(let index=0;index<left.nodes.length;index+=1){const leftNode=left.nodes[index];const rightNode=right.nodes[index];if(leftNode.id!==rightNode.id||leftNode.parentID!==rightNode.parentID){return false}}return true}export{TreeViewDisclosure,TreeViewGroup,TreeViewItem,TreeViewRoot};
|
|
2
2
|
//# sourceMappingURL=tree-view.js.map
|
|
@@ -4,6 +4,7 @@ import type { Sequence } from '@sectile/core/sequence';
|
|
|
4
4
|
import { type VirtualCollectionIDResolver as OwnerVirtualCollectionIDResolver, type VirtualCollectionProjection, type VirtualLanePolicy, type VirtualSizePolicy } from '@sectile/virtual/collection';
|
|
5
5
|
import { type VirtualInsets, type VirtualLayoutPlan, type VirtualPlacement, type VirtualPoint, type VirtualRect, type VirtualScrollAlignment, type VirtualScrollport } from '@sectile/dom/virtual';
|
|
6
6
|
import { type VirtualizerItemSize, type VirtualizerOperationResult, type VirtualizerRootExpose, type VirtualizerScrollportTarget } from './virtual-core.js';
|
|
7
|
+
export declare function virtualCollectionRootStyle({ scrollport, style, }: Readonly<Record<string, unknown>>): unknown;
|
|
7
8
|
export type VirtualCollectionIDResolver<Value, ID extends StableID = StableID> = OwnerVirtualCollectionIDResolver<Value, ID>;
|
|
8
9
|
export type VirtualCollectionItemAttributes<Value> = {
|
|
9
10
|
bivarianceHack(value: Value, index: number): Readonly<Record<string, unknown>>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{defineComponent,h,onBeforeUnmount,shallowReactive,shallowRef}from'vue';import{constrainVirtualCollectionDomain,createVirtualCollection,replaceVirtualCollection}from'@sectile/virtual/collection';import{virtualItemStyle}from'@sectile/dom/virtual';import{asHTMLElement,useVirtualizerSurfaceRegistration,virtualizerNotConnected}from'./virtual-core.js';const rootScrollportStyle={overflow:'auto'};export function virtualCollectionRootStyle({scrollport='root',style}){return scrollport==='root'?style==null?rootScrollportStyle:[rootScrollportStyle,style]:style}export function prepareVirtualCollection(items,getID,maxItems=1_000_000){return createVirtualCollection(items,getID,{maxItems,maxIDCodeUnits:1_024})}export function updatePreparedVirtualCollection(previous,items,getID){return replaceVirtualCollection(previous,items,getID)}export function constrainPreparedVirtualCollection(prepared,maxItems){return constrainVirtualCollectionDomain(prepared,maxItems)}const VirtualCollectionProjectionRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualCollectionProjection',inheritAttrs:false,props:{scope:{type:String,required:true},placements:{type:Array,required:true},prepared:{type:Object,required:true},items:{type:Array,required:true},itemAs:{type:String,required:true},itemAttributes:{type:Function,default:undefined},size:{type:String,required:true}},slots:Object,setup(props,{slots}){const surface=useVirtualizerSurfaceRegistration('VirtualCollectionProjection');const refs=new Map;const itemRef=id=>{const existing=refs.get(id);if(existing!==undefined)return existing;let mounted=null;let unregister;const callback=value=>{const element=asHTMLElement(value);if(element!==null&&mounted===element)return;unregister?.();unregister=undefined;mounted=element;if(element===null){if(refs.get(id)===callback)refs.delete(id);return}unregister=surface.registerItem(element,id)};refs.set(id,callback);return callback};onBeforeUnmount(()=>{for(const callback of refs.values())callback(null);refs.clear()});return()=>{const sizing=itemSizing(props.size);const children=[];for(const placement of props.placements){const index=placement.index;if(index>=props.items.length||props.prepared.domain.at(index)!==placement.id)continue;const value=props.items[index];const attributes=props.itemAttributes?.(value,index)??{};const rendered=slots['default']?.({value,id:placement.id,index,placement});children.push(h(props.itemAs,{...attributes,key:placement.id,ref:itemRef(placement.id),style:[attributes['style'],virtualItemStyle(placement,sizing)],'data-scope':props.scope,'data-virtual-layout':props.scope,'data-part':'item','data-index':placement.index,'data-visible':placement.visible?'':undefined},rendered))}return children}}});const VirtualCollectionBootstrapProjectionRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualCollectionBootstrapProjection',inheritAttrs:false,props:{scope:{type:String,required:true},prepared:{type:Object,required:true},items:{type:Array,required:true},count:{type:Number,required:true},width:{type:Number,required:true},itemAs:{type:String,required:true},itemAttributes:{type:Function,default:undefined},itemRef:{type:Function,required:true}},slots:Object,setup(props,{slots}){const refs=new Map;const bootstrapRef=index=>{const existing=refs.get(index);if(existing!==undefined)return existing;const callback=value=>{props.itemRef(index,value);if(value===null&&refs.get(index)===callback)refs.delete(index)};refs.set(index,callback);return callback};onBeforeUnmount(()=>refs.clear());return()=>{const children=[];const count=Math.min(props.count,props.prepared.domain.size);for(let index=0;index<count;index+=1){const id=props.prepared.domain.at(index);const value=props.items[index];const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze({x:index*props.width,y:0,width:props.width,height:0}),visible:true});children.push(h(props.itemAs,{...attributes,key:id,ref:bootstrapRef(index),style:[attributes['style'],{width:`${props.width}px`}],'data-scope':props.scope,'data-virtual-layout':props.scope,'data-part':'item','data-index':index,'data-bootstrap':''},slots['default']?.({value,id,index,placement})))}return children}}});export function renderHighLevelItems(scope,placements,prepared,items,itemAs,itemAttributes,size,render,empty){if(prepared.domain.size===0){const child=empty?.();return child===undefined||child===null?[]:[child]}return[h(VirtualCollectionProjectionRuntime,{scope,placements,prepared,items,itemAs,...itemAttributes===undefined?{}:{itemAttributes},size},{default:({value,id,index,placement})=>render(value,id,index,placement)})]}export function renderCollectionBootstrapItems(scope,prepared,items,count,width,itemAs,itemAttributes,render,itemRef){return[h(VirtualCollectionBootstrapProjectionRuntime,{scope,prepared,items,count,width,itemAs,...itemAttributes===undefined?{}:{itemAttributes},itemRef},{default:({value,id,index,placement})=>render(value,id,index,placement)})]}export function createVirtualCollectionExpose(root,initialState,phase){const emptyScrollport=shallowRef(null);const emptySurface=shallowRef(null);return shallowReactive({get scrollport(){return root.value?.scrollport??emptyScrollport},get surface(){return root.value?.surface??emptySurface},get state(){return root.value?.state??initialState},get plan(){return root.value?.plan??null},get phase(){return phase()},scrollToID:(id,alignment)=>root.value?.scrollTo(id,alignment)??virtualizerNotConnected(),refresh:()=>root.value?.refresh(),flush:()=>root.value?.flush()??virtualizerNotConnected()})}export function nearlyEqual(left,right){return Math.abs(left-right)<0.01}function itemSizing(size){return Object.freeze({width:size==='width'||size==='both',height:size==='height'||size==='both'})}
|
|
2
|
+
//# sourceMappingURL=virtual-collection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-collection.js","names":["defineComponent","h","onBeforeUnmount","shallowReactive","shallowRef","constrainVirtualCollectionDomain","createVirtualCollection","replaceVirtualCollection","virtualItemStyle","asHTMLElement","useVirtualizerSurfaceRegistration","virtualizerNotConnected","rootScrollportStyle","overflow","virtualCollectionRootStyle","scrollport","style","prepareVirtualCollection","items","getID","maxItems","maxIDCodeUnits","updatePreparedVirtualCollection","previous","constrainPreparedVirtualCollection","prepared","VirtualCollectionProjectionRuntime","name","inheritAttrs","props","scope","type","String","required","placements","Array","Object","itemAs","itemAttributes","Function","default","undefined","size","slots","setup","surface","refs","Map","itemRef","id","existing","get","mounted","unregister","callback","value","element","delete","registerItem","set","values","clear","sizing","itemSizing","children","placement","index","length","domain","at","attributes","rendered","push","key","ref","visible","VirtualCollectionBootstrapProjectionRuntime","count","Number","width","bootstrapRef","Math","min","freeze","rect","x","y","height","renderHighLevelItems","render","empty","child","renderCollectionBootstrapItems","createVirtualCollectionExpose","root","initialState","phase","emptyScrollport","emptySurface","state","plan","scrollToID","alignment","scrollTo","refresh","flush","nearlyEqual","left","right","abs"],"sources":["../../src/virtual/virtual-collection.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -286,6 +286,7 @@ export declare const VirtualizerFooter: import("vue").DefineComponent<import("vu
|
|
|
286
286
|
default: () => VNodeChild;
|
|
287
287
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
288
288
|
export declare function useVirtualizerSurfaceRegistration(part: string): VirtualizerSurfaceRegistration;
|
|
289
|
+
export declare function asHTMLElement(value: unknown): HTMLElement | null;
|
|
289
290
|
export declare function virtualizerNotConnected<T>(): VirtualizerOperationResult<T>;
|
|
290
291
|
export type { VirtualInsets, VirtualLayoutPlan, VirtualLayoutStrategy, VirtualMeasurementResolver, VirtualPlacement, VirtualPoint, VirtualRect, VirtualScrollAlignment, VirtualizerConnection, VirtualizerEnvironment, };
|
|
291
292
|
export { createAxisMeasurementResolver, virtualItemStyle, virtualSurfaceStyle, };
|