reka-ui 2.8.2 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Autocomplete/AutocompleteInput.cjs +128 -0
- package/dist/Autocomplete/AutocompleteInput.cjs.map +1 -0
- package/dist/Autocomplete/AutocompleteInput.js +122 -0
- package/dist/Autocomplete/AutocompleteInput.js.map +1 -0
- package/dist/Autocomplete/AutocompleteRoot.cjs +258 -0
- package/dist/Autocomplete/AutocompleteRoot.cjs.map +1 -0
- package/dist/Autocomplete/AutocompleteRoot.js +246 -0
- package/dist/Autocomplete/AutocompleteRoot.js.map +1 -0
- package/dist/Calendar/CalendarCellTrigger.cjs +8 -5
- package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.js +9 -6
- package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
- package/dist/Calendar/CalendarNext.cjs +7 -3
- package/dist/Calendar/CalendarNext.cjs.map +1 -1
- package/dist/Calendar/CalendarNext.js +7 -3
- package/dist/Calendar/CalendarNext.js.map +1 -1
- package/dist/Calendar/CalendarPrev.cjs +7 -3
- package/dist/Calendar/CalendarPrev.cjs.map +1 -1
- package/dist/Calendar/CalendarPrev.js +7 -3
- package/dist/Calendar/CalendarPrev.js.map +1 -1
- package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
- package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
- package/dist/Checkbox/CheckboxRoot.cjs +21 -10
- package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
- package/dist/Checkbox/CheckboxRoot.js +21 -10
- package/dist/Checkbox/CheckboxRoot.js.map +1 -1
- package/dist/ColorArea/ColorAreaArea.cjs +143 -0
- package/dist/ColorArea/ColorAreaArea.cjs.map +1 -0
- package/dist/ColorArea/ColorAreaArea.js +137 -0
- package/dist/ColorArea/ColorAreaArea.js.map +1 -0
- package/dist/ColorArea/ColorAreaRoot.cjs +240 -0
- package/dist/ColorArea/ColorAreaRoot.cjs.map +1 -0
- package/dist/ColorArea/ColorAreaRoot.js +228 -0
- package/dist/ColorArea/ColorAreaRoot.js.map +1 -0
- package/dist/ColorArea/ColorAreaThumb.cjs +91 -0
- package/dist/ColorArea/ColorAreaThumb.cjs.map +1 -0
- package/dist/ColorArea/ColorAreaThumb.js +85 -0
- package/dist/ColorArea/ColorAreaThumb.js.map +1 -0
- package/dist/ColorArea/utils.cjs +32 -0
- package/dist/ColorArea/utils.cjs.map +1 -0
- package/dist/ColorArea/utils.js +21 -0
- package/dist/ColorArea/utils.js.map +1 -0
- package/dist/ColorField/ColorFieldInput.cjs +140 -0
- package/dist/ColorField/ColorFieldInput.cjs.map +1 -0
- package/dist/ColorField/ColorFieldInput.js +134 -0
- package/dist/ColorField/ColorFieldInput.js.map +1 -0
- package/dist/ColorField/ColorFieldRoot.cjs +281 -0
- package/dist/ColorField/ColorFieldRoot.cjs.map +1 -0
- package/dist/ColorField/ColorFieldRoot.js +269 -0
- package/dist/ColorField/ColorFieldRoot.js.map +1 -0
- package/dist/ColorSlider/ColorSliderRoot.cjs +230 -0
- package/dist/ColorSlider/ColorSliderRoot.cjs.map +1 -0
- package/dist/ColorSlider/ColorSliderRoot.js +218 -0
- package/dist/ColorSlider/ColorSliderRoot.js.map +1 -0
- package/dist/ColorSlider/ColorSliderThumb.cjs +66 -0
- package/dist/ColorSlider/ColorSliderThumb.cjs.map +1 -0
- package/dist/ColorSlider/ColorSliderThumb.js +60 -0
- package/dist/ColorSlider/ColorSliderThumb.js.map +1 -0
- package/dist/ColorSlider/ColorSliderTrack.cjs +55 -0
- package/dist/ColorSlider/ColorSliderTrack.cjs.map +1 -0
- package/dist/ColorSlider/ColorSliderTrack.js +49 -0
- package/dist/ColorSlider/ColorSliderTrack.js.map +1 -0
- package/dist/ColorSwatch/ColorSwatch.cjs +106 -0
- package/dist/ColorSwatch/ColorSwatch.cjs.map +1 -0
- package/dist/ColorSwatch/ColorSwatch.js +100 -0
- package/dist/ColorSwatch/ColorSwatch.js.map +1 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs +78 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs.map +1 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js +66 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js.map +1 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs +40 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs.map +1 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js +34 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js.map +1 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs +43 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs.map +1 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js +37 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js.map +1 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs +110 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs.map +1 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js +104 -0
- package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js.map +1 -0
- package/dist/Combobox/ComboboxContent.cjs +4 -0
- package/dist/Combobox/ComboboxContent.cjs.map +1 -1
- package/dist/Combobox/ComboboxContent.js +4 -0
- package/dist/Combobox/ComboboxContent.js.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.cjs +9 -2
- package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.js +9 -2
- package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
- package/dist/Combobox/ComboboxRoot.cjs +7 -1
- package/dist/Combobox/ComboboxRoot.js +2 -2
- package/dist/DateField/DateFieldRoot.cjs +1 -1
- package/dist/DateField/DateFieldRoot.js +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.cjs +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.js +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
- package/dist/DismissableLayer/utils.cjs.map +1 -1
- package/dist/DismissableLayer/utils.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuFilter.cjs +134 -0
- package/dist/DropdownMenu/DropdownMenuFilter.cjs.map +1 -0
- package/dist/DropdownMenu/DropdownMenuFilter.js +128 -0
- package/dist/DropdownMenu/DropdownMenuFilter.js.map +1 -0
- package/dist/Listbox/ListboxRoot.cjs +1 -1
- package/dist/Listbox/ListboxRoot.js +1 -1
- package/dist/Listbox/ListboxVirtualizer.cjs +1 -1
- package/dist/Listbox/ListboxVirtualizer.js +1 -1
- package/dist/Menu/MenuContentImpl.cjs +44 -4
- package/dist/Menu/MenuContentImpl.cjs.map +1 -1
- package/dist/Menu/MenuContentImpl.js +44 -4
- package/dist/Menu/MenuContentImpl.js.map +1 -1
- package/dist/Menu/MenuItemImpl.cjs +8 -3
- package/dist/Menu/MenuItemImpl.cjs.map +1 -1
- package/dist/Menu/MenuItemImpl.js +9 -4
- package/dist/Menu/MenuItemImpl.js.map +1 -1
- package/dist/Menu/MenuSubContent.cjs +8 -2
- package/dist/Menu/MenuSubContent.cjs.map +1 -1
- package/dist/Menu/MenuSubContent.js +9 -3
- package/dist/Menu/MenuSubContent.js.map +1 -1
- package/dist/Menu/MenuSubTrigger.cjs +7 -0
- package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
- package/dist/Menu/MenuSubTrigger.js +8 -1
- package/dist/Menu/MenuSubTrigger.js.map +1 -1
- package/dist/MonthPicker/MonthPickerCell.cjs +59 -0
- package/dist/MonthPicker/MonthPickerCell.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerCell.js +53 -0
- package/dist/MonthPicker/MonthPickerCell.js.map +1 -0
- package/dist/MonthPicker/MonthPickerCellTrigger.cjs +197 -0
- package/dist/MonthPicker/MonthPickerCellTrigger.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerCellTrigger.js +191 -0
- package/dist/MonthPicker/MonthPickerCellTrigger.js.map +1 -0
- package/dist/MonthPicker/MonthPickerGrid.cjs +59 -0
- package/dist/MonthPicker/MonthPickerGrid.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerGrid.js +53 -0
- package/dist/MonthPicker/MonthPickerGrid.js.map +1 -0
- package/dist/MonthPicker/MonthPickerGridBody.cjs +41 -0
- package/dist/MonthPicker/MonthPickerGridBody.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerGridBody.js +35 -0
- package/dist/MonthPicker/MonthPickerGridBody.js.map +1 -0
- package/dist/MonthPicker/MonthPickerGridRow.cjs +41 -0
- package/dist/MonthPicker/MonthPickerGridRow.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerGridRow.js +35 -0
- package/dist/MonthPicker/MonthPickerGridRow.js.map +1 -0
- package/dist/MonthPicker/MonthPickerHeader.cjs +41 -0
- package/dist/MonthPicker/MonthPickerHeader.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerHeader.js +35 -0
- package/dist/MonthPicker/MonthPickerHeader.js.map +1 -0
- package/dist/MonthPicker/MonthPickerHeading.cjs +48 -0
- package/dist/MonthPicker/MonthPickerHeading.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerHeading.js +42 -0
- package/dist/MonthPicker/MonthPickerHeading.js.map +1 -0
- package/dist/MonthPicker/MonthPickerNext.cjs +68 -0
- package/dist/MonthPicker/MonthPickerNext.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerNext.js +62 -0
- package/dist/MonthPicker/MonthPickerNext.js.map +1 -0
- package/dist/MonthPicker/MonthPickerPrev.cjs +68 -0
- package/dist/MonthPicker/MonthPickerPrev.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerPrev.js +62 -0
- package/dist/MonthPicker/MonthPickerPrev.js.map +1 -0
- package/dist/MonthPicker/MonthPickerRoot.cjs +281 -0
- package/dist/MonthPicker/MonthPickerRoot.cjs.map +1 -0
- package/dist/MonthPicker/MonthPickerRoot.js +269 -0
- package/dist/MonthPicker/MonthPickerRoot.js.map +1 -0
- package/dist/MonthPicker/useMonthPicker.cjs +148 -0
- package/dist/MonthPicker/useMonthPicker.cjs.map +1 -0
- package/dist/MonthPicker/useMonthPicker.js +136 -0
- package/dist/MonthPicker/useMonthPicker.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerCell.cjs +59 -0
- package/dist/MonthRangePicker/MonthRangePickerCell.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerCell.js +53 -0
- package/dist/MonthRangePicker/MonthRangePickerCell.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs +258 -0
- package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js +252 -0
- package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +59 -0
- package/dist/MonthRangePicker/MonthRangePickerGrid.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerGrid.js +53 -0
- package/dist/MonthRangePicker/MonthRangePickerGrid.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs +41 -0
- package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerGridBody.js +35 -0
- package/dist/MonthRangePicker/MonthRangePickerGridBody.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs +41 -0
- package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerGridRow.js +35 -0
- package/dist/MonthRangePicker/MonthRangePickerGridRow.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerHeader.cjs +41 -0
- package/dist/MonthRangePicker/MonthRangePickerHeader.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerHeader.js +35 -0
- package/dist/MonthRangePicker/MonthRangePickerHeader.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerHeading.cjs +48 -0
- package/dist/MonthRangePicker/MonthRangePickerHeading.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerHeading.js +42 -0
- package/dist/MonthRangePicker/MonthRangePickerHeading.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerNext.cjs +68 -0
- package/dist/MonthRangePicker/MonthRangePickerNext.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerNext.js +62 -0
- package/dist/MonthRangePicker/MonthRangePickerNext.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerPrev.cjs +68 -0
- package/dist/MonthRangePicker/MonthRangePickerPrev.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerPrev.js +62 -0
- package/dist/MonthRangePicker/MonthRangePickerPrev.js.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerRoot.cjs +347 -0
- package/dist/MonthRangePicker/MonthRangePickerRoot.cjs.map +1 -0
- package/dist/MonthRangePicker/MonthRangePickerRoot.js +335 -0
- package/dist/MonthRangePicker/MonthRangePickerRoot.js.map +1 -0
- package/dist/MonthRangePicker/useRangeMonthPicker.cjs +128 -0
- package/dist/MonthRangePicker/useRangeMonthPicker.cjs.map +1 -0
- package/dist/MonthRangePicker/useRangeMonthPicker.js +122 -0
- package/dist/MonthRangePicker/useRangeMonthPicker.js.map +1 -0
- package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
- package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
- package/dist/NumberField/NumberFieldRoot.cjs +3 -2
- package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
- package/dist/NumberField/NumberFieldRoot.js +3 -2
- package/dist/NumberField/NumberFieldRoot.js.map +1 -1
- package/dist/Progress/ProgressRoot.cjs.map +1 -1
- package/dist/Progress/ProgressRoot.js.map +1 -1
- package/dist/RadioGroup/RadioGroupRoot.cjs +1 -1
- package/dist/RadioGroup/RadioGroupRoot.js +1 -1
- package/dist/RangeCalendar/RangeCalendarNext.cjs +9 -5
- package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarNext.js +9 -5
- package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarPrev.cjs +9 -5
- package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarPrev.js +9 -5
- package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.cjs +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.js +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.cjs +9 -13
- package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.js +9 -13
- package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
- package/dist/Splitter/SplitterGroup.cjs +136 -26
- package/dist/Splitter/SplitterGroup.cjs.map +1 -1
- package/dist/Splitter/SplitterGroup.js +136 -26
- package/dist/Splitter/SplitterGroup.js.map +1 -1
- package/dist/Splitter/SplitterPanel.cjs +7 -2
- package/dist/Splitter/SplitterPanel.cjs.map +1 -1
- package/dist/Splitter/SplitterPanel.js +7 -2
- package/dist/Splitter/SplitterPanel.js.map +1 -1
- package/dist/Switch/SwitchRoot.cjs +23 -9
- package/dist/Switch/SwitchRoot.cjs.map +1 -1
- package/dist/Switch/SwitchRoot.js +23 -9
- package/dist/Switch/SwitchRoot.js.map +1 -1
- package/dist/Switch/SwitchThumb.cjs +1 -1
- package/dist/Switch/SwitchThumb.cjs.map +1 -1
- package/dist/Switch/SwitchThumb.js +1 -1
- package/dist/Switch/SwitchThumb.js.map +1 -1
- package/dist/TimeField/TimeFieldRoot.cjs +1 -1
- package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
- package/dist/TimeField/TimeFieldRoot.js +1 -1
- package/dist/TimeField/TimeFieldRoot.js.map +1 -1
- package/dist/TimeRangeField/TimeRangeFieldInput.cjs +102 -0
- package/dist/TimeRangeField/TimeRangeFieldInput.cjs.map +1 -0
- package/dist/TimeRangeField/TimeRangeFieldInput.js +96 -0
- package/dist/TimeRangeField/TimeRangeFieldInput.js.map +1 -0
- package/dist/TimeRangeField/TimeRangeFieldRoot.cjs +402 -0
- package/dist/TimeRangeField/TimeRangeFieldRoot.cjs.map +1 -0
- package/dist/TimeRangeField/TimeRangeFieldRoot.js +390 -0
- package/dist/TimeRangeField/TimeRangeFieldRoot.js.map +1 -0
- package/dist/Toast/ToastAnnounce.cjs +4 -1
- package/dist/Toast/ToastAnnounce.cjs.map +1 -1
- package/dist/Toast/ToastAnnounce.js +4 -1
- package/dist/Toast/ToastAnnounce.js.map +1 -1
- package/dist/ToggleGroup/ToggleGroupRoot.cjs +1 -1
- package/dist/ToggleGroup/ToggleGroupRoot.js +1 -1
- package/dist/Tooltip/TooltipContent.cjs +1 -2
- package/dist/Tooltip/TooltipContent.cjs.map +1 -1
- package/dist/Tooltip/TooltipContent.js +1 -2
- package/dist/Tooltip/TooltipContent.js.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.cjs +25 -18
- package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.js +25 -18
- package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
- package/dist/Tooltip/TooltipProvider.cjs +7 -2
- package/dist/Tooltip/TooltipProvider.cjs.map +1 -1
- package/dist/Tooltip/TooltipProvider.js +7 -2
- package/dist/Tooltip/TooltipProvider.js.map +1 -1
- package/dist/YearPicker/YearPickerCell.cjs +59 -0
- package/dist/YearPicker/YearPickerCell.cjs.map +1 -0
- package/dist/YearPicker/YearPickerCell.js +53 -0
- package/dist/YearPicker/YearPickerCell.js.map +1 -0
- package/dist/YearPicker/YearPickerCellTrigger.cjs +197 -0
- package/dist/YearPicker/YearPickerCellTrigger.cjs.map +1 -0
- package/dist/YearPicker/YearPickerCellTrigger.js +191 -0
- package/dist/YearPicker/YearPickerCellTrigger.js.map +1 -0
- package/dist/YearPicker/YearPickerGrid.cjs +59 -0
- package/dist/YearPicker/YearPickerGrid.cjs.map +1 -0
- package/dist/YearPicker/YearPickerGrid.js +53 -0
- package/dist/YearPicker/YearPickerGrid.js.map +1 -0
- package/dist/YearPicker/YearPickerGridBody.cjs +41 -0
- package/dist/YearPicker/YearPickerGridBody.cjs.map +1 -0
- package/dist/YearPicker/YearPickerGridBody.js +35 -0
- package/dist/YearPicker/YearPickerGridBody.js.map +1 -0
- package/dist/YearPicker/YearPickerGridRow.cjs +41 -0
- package/dist/YearPicker/YearPickerGridRow.cjs.map +1 -0
- package/dist/YearPicker/YearPickerGridRow.js +35 -0
- package/dist/YearPicker/YearPickerGridRow.js.map +1 -0
- package/dist/YearPicker/YearPickerHeader.cjs +41 -0
- package/dist/YearPicker/YearPickerHeader.cjs.map +1 -0
- package/dist/YearPicker/YearPickerHeader.js +35 -0
- package/dist/YearPicker/YearPickerHeader.js.map +1 -0
- package/dist/YearPicker/YearPickerHeading.cjs +48 -0
- package/dist/YearPicker/YearPickerHeading.cjs.map +1 -0
- package/dist/YearPicker/YearPickerHeading.js +42 -0
- package/dist/YearPicker/YearPickerHeading.js.map +1 -0
- package/dist/YearPicker/YearPickerNext.cjs +68 -0
- package/dist/YearPicker/YearPickerNext.cjs.map +1 -0
- package/dist/YearPicker/YearPickerNext.js +62 -0
- package/dist/YearPicker/YearPickerNext.js.map +1 -0
- package/dist/YearPicker/YearPickerPrev.cjs +68 -0
- package/dist/YearPicker/YearPickerPrev.cjs.map +1 -0
- package/dist/YearPicker/YearPickerPrev.js +62 -0
- package/dist/YearPicker/YearPickerPrev.js.map +1 -0
- package/dist/YearPicker/YearPickerRoot.cjs +287 -0
- package/dist/YearPicker/YearPickerRoot.cjs.map +1 -0
- package/dist/YearPicker/YearPickerRoot.js +275 -0
- package/dist/YearPicker/YearPickerRoot.js.map +1 -0
- package/dist/YearPicker/useYearPicker.cjs +180 -0
- package/dist/YearPicker/useYearPicker.cjs.map +1 -0
- package/dist/YearPicker/useYearPicker.js +168 -0
- package/dist/YearPicker/useYearPicker.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerCell.cjs +59 -0
- package/dist/YearRangePicker/YearRangePickerCell.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerCell.js +53 -0
- package/dist/YearRangePicker/YearRangePickerCell.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs +256 -0
- package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerCellTrigger.js +250 -0
- package/dist/YearRangePicker/YearRangePickerCellTrigger.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerGrid.cjs +59 -0
- package/dist/YearRangePicker/YearRangePickerGrid.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerGrid.js +53 -0
- package/dist/YearRangePicker/YearRangePickerGrid.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerGridBody.cjs +41 -0
- package/dist/YearRangePicker/YearRangePickerGridBody.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerGridBody.js +35 -0
- package/dist/YearRangePicker/YearRangePickerGridBody.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerGridRow.cjs +41 -0
- package/dist/YearRangePicker/YearRangePickerGridRow.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerGridRow.js +35 -0
- package/dist/YearRangePicker/YearRangePickerGridRow.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerHeader.cjs +41 -0
- package/dist/YearRangePicker/YearRangePickerHeader.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerHeader.js +35 -0
- package/dist/YearRangePicker/YearRangePickerHeader.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerHeading.cjs +48 -0
- package/dist/YearRangePicker/YearRangePickerHeading.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerHeading.js +42 -0
- package/dist/YearRangePicker/YearRangePickerHeading.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerNext.cjs +68 -0
- package/dist/YearRangePicker/YearRangePickerNext.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerNext.js +62 -0
- package/dist/YearRangePicker/YearRangePickerNext.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerPrev.cjs +68 -0
- package/dist/YearRangePicker/YearRangePickerPrev.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerPrev.js +62 -0
- package/dist/YearRangePicker/YearRangePickerPrev.js.map +1 -0
- package/dist/YearRangePicker/YearRangePickerRoot.cjs +350 -0
- package/dist/YearRangePicker/YearRangePickerRoot.cjs.map +1 -0
- package/dist/YearRangePicker/YearRangePickerRoot.js +338 -0
- package/dist/YearRangePicker/YearRangePickerRoot.js.map +1 -0
- package/dist/YearRangePicker/useRangeYearPicker.cjs +128 -0
- package/dist/YearRangePicker/useRangeYearPicker.cjs.map +1 -0
- package/dist/YearRangePicker/useRangeYearPicker.js +122 -0
- package/dist/YearRangePicker/useRangeYearPicker.js.map +1 -0
- package/dist/color/channel.cjs +378 -0
- package/dist/color/channel.cjs.map +1 -0
- package/dist/color/channel.js +349 -0
- package/dist/color/channel.js.map +1 -0
- package/dist/color/convert.cjs +285 -0
- package/dist/color/convert.cjs.map +1 -0
- package/dist/color/convert.js +237 -0
- package/dist/color/convert.js.map +1 -0
- package/dist/color/gradient.cjs +377 -0
- package/dist/color/gradient.cjs.map +1 -0
- package/dist/color/gradient.js +354 -0
- package/dist/color/gradient.js.map +1 -0
- package/dist/color/parse.cjs +113 -0
- package/dist/color/parse.cjs.map +1 -0
- package/dist/color/parse.js +95 -0
- package/dist/color/parse.js.map +1 -0
- package/dist/color/utils.cjs +112 -0
- package/dist/color/utils.cjs.map +1 -0
- package/dist/color/utils.js +100 -0
- package/dist/color/utils.js.map +1 -0
- package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +11 -7
- package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
- package/dist/composables/useWindowSplitterPanelGroupBehavior.js +11 -7
- package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
- package/dist/constant/components.cjs +87 -1
- package/dist/constant/components.cjs.map +1 -1
- package/dist/constant/components.js +87 -1
- package/dist/constant/components.js.map +1 -1
- package/dist/constant.d.cts +12 -1
- package/dist/constant.d.cts.map +1 -1
- package/dist/constant.d.ts +12 -1
- package/dist/constant.d.ts.map +1 -1
- package/dist/date/calendar.cjs +41 -0
- package/dist/date/calendar.cjs.map +1 -1
- package/dist/date/calendar.js +30 -1
- package/dist/date/calendar.js.map +1 -1
- package/dist/date/comparators.cjs +129 -0
- package/dist/date/comparators.cjs.map +1 -1
- package/dist/date/comparators.js +76 -1
- package/dist/date/comparators.js.map +1 -1
- package/dist/date/useDateField.cjs +0 -1
- package/dist/date/useDateField.cjs.map +1 -1
- package/dist/date/useDateField.js +0 -1
- package/dist/date/useDateField.js.map +1 -1
- package/dist/date.cjs +11 -0
- package/dist/date.d.cts +2 -2
- package/dist/date.d.ts +2 -2
- package/dist/date.js +3 -3
- package/dist/index.cjs +216 -46
- package/dist/index.d.cts +3 -8834
- package/dist/index.d.ts +3 -8834
- package/dist/index.js +116 -47
- package/dist/index2.d.cts +58 -2
- package/dist/index2.d.cts.map +1 -1
- package/dist/index2.d.ts +58 -2
- package/dist/index2.d.ts.map +1 -1
- package/dist/index3.d.cts +11061 -0
- package/dist/index3.d.cts.map +1 -0
- package/dist/index3.d.ts +11061 -0
- package/dist/index3.d.ts.map +1 -0
- package/dist/internal.cjs +81 -0
- package/dist/internal.d.cts +22 -0
- package/dist/internal.d.cts.map +1 -0
- package/dist/internal.d.ts +22 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +64 -0
- package/dist/internal2.cjs +0 -0
- package/dist/internal2.js +0 -0
- package/dist/namespaced/index.cjs +33 -1
- package/dist/namespaced/index.d.cts +32 -4
- package/dist/namespaced/index.d.mts +32 -4
- package/dist/namespaced/index.mjs +32 -4
- package/dist/shared/useArrowNavigation.cjs +4 -2
- package/dist/shared/useArrowNavigation.cjs.map +1 -1
- package/dist/shared/useArrowNavigation.js +4 -2
- package/dist/shared/useArrowNavigation.js.map +1 -1
- package/dist/shared/useForwardExpose.cjs +6 -2
- package/dist/shared/useForwardExpose.cjs.map +1 -1
- package/dist/shared/useForwardExpose.js +7 -3
- package/dist/shared/useForwardExpose.js.map +1 -1
- package/dist/shared/useId.cjs +7 -4
- package/dist/shared/useId.cjs.map +1 -1
- package/dist/shared/useId.js +7 -4
- package/dist/shared/useId.js.map +1 -1
- package/dist/utils/storage.cjs +7 -1
- package/dist/utils/storage.cjs.map +1 -1
- package/dist/utils/storage.js +7 -1
- package/dist/utils/storage.js.map +1 -1
- package/dist/utils/units.cjs +101 -0
- package/dist/utils/units.cjs.map +1 -0
- package/dist/utils/units.js +83 -0
- package/dist/utils/units.js.map +1 -0
- package/package.json +6 -2
- package/src/Autocomplete/AutocompleteInput.vue +112 -0
- package/src/Autocomplete/AutocompleteRoot.vue +272 -0
- package/src/Autocomplete/index.ts +72 -0
- package/src/Calendar/CalendarCellTrigger.vue +2 -1
- package/src/Calendar/CalendarNext.vue +8 -2
- package/src/Calendar/CalendarPrev.vue +8 -2
- package/src/Calendar/CalendarRoot.vue +1 -1
- package/src/Checkbox/CheckboxRoot.vue +32 -13
- package/src/ColorArea/ColorAreaArea.vue +145 -0
- package/src/ColorArea/ColorAreaRoot.vue +255 -0
- package/src/ColorArea/ColorAreaThumb.vue +75 -0
- package/src/ColorArea/index.ts +14 -0
- package/src/ColorArea/utils.ts +24 -0
- package/src/ColorField/ColorFieldInput.vue +133 -0
- package/src/ColorField/ColorFieldRoot.vue +326 -0
- package/src/ColorField/index.ts +10 -0
- package/src/ColorSlider/ColorSliderRoot.vue +224 -0
- package/src/ColorSlider/ColorSliderThumb.vue +54 -0
- package/src/ColorSlider/ColorSliderTrack.vue +36 -0
- package/src/ColorSlider/index.ts +14 -0
- package/src/ColorSlider/utils.ts +39 -0
- package/src/ColorSwatch/ColorSwatch.vue +97 -0
- package/src/ColorSwatch/index.ts +4 -0
- package/src/ColorSwatchPicker/ColorSwatchPickerItem.vue +60 -0
- package/src/ColorSwatchPicker/ColorSwatchPickerItemIndicator.vue +17 -0
- package/src/ColorSwatchPicker/ColorSwatchPickerItemSwatch.vue +21 -0
- package/src/ColorSwatchPicker/ColorSwatchPickerRoot.vue +50 -0
- package/src/ColorSwatchPicker/index.ts +17 -0
- package/src/Combobox/ComboboxContentImpl.vue +13 -1
- package/src/DateField/DateFieldRoot.vue +1 -1
- package/src/DateRangeField/DateRangeFieldRoot.vue +11 -4
- package/src/DismissableLayer/utils.ts +1 -2
- package/src/DropdownMenu/DropdownMenuFilter.vue +119 -0
- package/src/DropdownMenu/index.ts +5 -0
- package/src/Menu/MenuContentImpl.vue +68 -2
- package/src/Menu/MenuItemImpl.vue +11 -6
- package/src/Menu/MenuSubContent.vue +14 -3
- package/src/Menu/MenuSubTrigger.vue +13 -1
- package/src/MonthPicker/MonthPickerCell.vue +30 -0
- package/src/MonthPicker/MonthPickerCellTrigger.vue +214 -0
- package/src/MonthPicker/MonthPickerGrid.vue +32 -0
- package/src/MonthPicker/MonthPickerGridBody.vue +17 -0
- package/src/MonthPicker/MonthPickerGridRow.vue +20 -0
- package/src/MonthPicker/MonthPickerHeader.vue +17 -0
- package/src/MonthPicker/MonthPickerHeading.vue +35 -0
- package/src/MonthPicker/MonthPickerNext.vue +52 -0
- package/src/MonthPicker/MonthPickerPrev.vue +52 -0
- package/src/MonthPicker/MonthPickerRoot.vue +311 -0
- package/src/MonthPicker/index.ts +42 -0
- package/src/MonthPicker/useMonthPicker.ts +193 -0
- package/src/MonthRangePicker/MonthRangePickerCell.vue +30 -0
- package/src/MonthRangePicker/MonthRangePickerCellTrigger.vue +309 -0
- package/src/MonthRangePicker/MonthRangePickerGrid.vue +32 -0
- package/src/MonthRangePicker/MonthRangePickerGridBody.vue +17 -0
- package/src/MonthRangePicker/MonthRangePickerGridRow.vue +20 -0
- package/src/MonthRangePicker/MonthRangePickerHeader.vue +17 -0
- package/src/MonthRangePicker/MonthRangePickerHeading.vue +35 -0
- package/src/MonthRangePicker/MonthRangePickerNext.vue +52 -0
- package/src/MonthRangePicker/MonthRangePickerPrev.vue +52 -0
- package/src/MonthRangePicker/MonthRangePickerRoot.vue +391 -0
- package/src/MonthRangePicker/index.ts +42 -0
- package/src/MonthRangePicker/useRangeMonthPicker.ts +165 -0
- package/src/NumberField/NumberFieldRoot.vue +2 -1
- package/src/Progress/ProgressRoot.vue +3 -1
- package/src/RangeCalendar/RangeCalendarNext.vue +10 -4
- package/src/RangeCalendar/RangeCalendarPrev.vue +10 -4
- package/src/RangeCalendar/RangeCalendarRoot.vue +2 -2
- package/src/RangeCalendar/useRangeCalendar.ts +5 -8
- package/src/Splitter/SplitterGroup.vue +218 -49
- package/src/Splitter/SplitterPanel.vue +11 -6
- package/src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts +16 -6
- package/src/Splitter/utils/storage.ts +14 -0
- package/src/Splitter/utils/units.ts +161 -0
- package/src/Splitter/utils/validation.ts +3 -2
- package/src/Switch/SwitchRoot.vue +36 -19
- package/src/Switch/SwitchThumb.vue +1 -1
- package/src/TimeField/TimeFieldRoot.vue +0 -3
- package/src/TimeRangeField/TimeRangeFieldInput.vue +74 -0
- package/src/TimeRangeField/TimeRangeFieldRoot.vue +473 -0
- package/src/TimeRangeField/index.ts +2 -0
- package/src/Toast/ToastAnnounce.vue +4 -1
- package/src/Tooltip/TooltipContent.vue +1 -3
- package/src/Tooltip/TooltipContentImpl.vue +18 -10
- package/src/Tooltip/TooltipProvider.vue +8 -1
- package/src/YearPicker/YearPickerCell.vue +30 -0
- package/src/YearPicker/YearPickerCellTrigger.vue +218 -0
- package/src/YearPicker/YearPickerGrid.vue +32 -0
- package/src/YearPicker/YearPickerGridBody.vue +17 -0
- package/src/YearPicker/YearPickerGridRow.vue +20 -0
- package/src/YearPicker/YearPickerHeader.vue +17 -0
- package/src/YearPicker/YearPickerHeading.vue +35 -0
- package/src/YearPicker/YearPickerNext.vue +52 -0
- package/src/YearPicker/YearPickerPrev.vue +52 -0
- package/src/YearPicker/YearPickerRoot.vue +314 -0
- package/src/YearPicker/index.ts +42 -0
- package/src/YearPicker/useYearPicker.ts +202 -0
- package/src/YearRangePicker/YearRangePickerCell.vue +30 -0
- package/src/YearRangePicker/YearRangePickerCellTrigger.vue +311 -0
- package/src/YearRangePicker/YearRangePickerGrid.vue +32 -0
- package/src/YearRangePicker/YearRangePickerGridBody.vue +17 -0
- package/src/YearRangePicker/YearRangePickerGridRow.vue +20 -0
- package/src/YearRangePicker/YearRangePickerHeader.vue +17 -0
- package/src/YearRangePicker/YearRangePickerHeading.vue +35 -0
- package/src/YearRangePicker/YearRangePickerNext.vue +52 -0
- package/src/YearRangePicker/YearRangePickerPrev.vue +52 -0
- package/src/YearRangePicker/YearRangePickerRoot.vue +391 -0
- package/src/YearRangePicker/index.ts +42 -0
- package/src/YearRangePicker/useRangeYearPicker.ts +165 -0
- package/src/date/calendar.ts +29 -0
- package/src/date/comparators.ts +97 -0
- package/src/index.ts +41 -0
- package/src/internal.ts +7 -0
- package/src/shared/color/channel.ts +424 -0
- package/src/shared/color/convert.ts +293 -0
- package/src/shared/color/gradient.ts +347 -0
- package/src/shared/color/index.ts +35 -0
- package/src/shared/color/parse.ts +140 -0
- package/src/shared/color/types.ts +40 -0
- package/src/shared/color/utils.ts +143 -0
- package/src/shared/date/types.ts +6 -0
- package/src/shared/date/useDateField.ts +37 -39
- package/src/shared/macro.ts +11 -0
- package/src/shared/useArrowNavigation.ts +8 -2
- package/src/shared/useForwardExpose.ts +20 -5
- package/src/shared/useId.ts +6 -7
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.ts.map +0 -1
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Ref } from 'vue'
|
|
3
|
+
import type { PrimitiveProps } from '@/Primitive'
|
|
4
|
+
import type { Direction, GenericComponentInstance } from '@/shared/types'
|
|
5
|
+
import { provideComboboxRootContext } from '@/Combobox/ComboboxRoot.vue'
|
|
6
|
+
import { usePrimitiveElement } from '@/Primitive'
|
|
7
|
+
import { createContext, useDirection, useFilter } from '@/shared'
|
|
8
|
+
|
|
9
|
+
export interface AutocompleteRootProps extends PrimitiveProps {
|
|
10
|
+
/** The controlled value of the Autocomplete (the input text). Can be bound with `v-model`. */
|
|
11
|
+
modelValue?: string
|
|
12
|
+
/** The value of the autocomplete when initially rendered. Use when you do not need to control the state. */
|
|
13
|
+
defaultValue?: string
|
|
14
|
+
/** The controlled open state of the Autocomplete. Can be bound with `v-model:open`. */
|
|
15
|
+
open?: boolean
|
|
16
|
+
/** The open state of the autocomplete when it is initially rendered. Use when you do not need to control its open state. */
|
|
17
|
+
defaultOpen?: boolean
|
|
18
|
+
/** When `true`, prevents the user from interacting with autocomplete */
|
|
19
|
+
disabled?: boolean
|
|
20
|
+
/** The reading direction of the autocomplete when applicable. */
|
|
21
|
+
dir?: Direction
|
|
22
|
+
/** The name of the field. Submitted with its owning form as part of a name/value pair. */
|
|
23
|
+
name?: string
|
|
24
|
+
/** When `true`, indicates that the user must set the value before the owning form can be submitted. */
|
|
25
|
+
required?: boolean
|
|
26
|
+
/**
|
|
27
|
+
* Whether to reset the searchTerm when the Autocomplete input blurred
|
|
28
|
+
* @defaultValue `false`
|
|
29
|
+
*/
|
|
30
|
+
resetSearchTermOnBlur?: boolean
|
|
31
|
+
/**
|
|
32
|
+
* Whether to open the autocomplete when the input is focused
|
|
33
|
+
* @defaultValue `false`
|
|
34
|
+
*/
|
|
35
|
+
openOnFocus?: boolean
|
|
36
|
+
/**
|
|
37
|
+
* Whether to open the autocomplete when the input is clicked
|
|
38
|
+
* @defaultValue `false`
|
|
39
|
+
*/
|
|
40
|
+
openOnClick?: boolean
|
|
41
|
+
/**
|
|
42
|
+
* When `true`, disable the default filters
|
|
43
|
+
*/
|
|
44
|
+
ignoreFilter?: boolean
|
|
45
|
+
/** When `true`, hover over item will trigger highlight */
|
|
46
|
+
highlightOnHover?: boolean
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export type AutocompleteRootEmits = {
|
|
50
|
+
/** Event handler called when the value changes. */
|
|
51
|
+
'update:modelValue': [value: string]
|
|
52
|
+
/** Event handler when highlighted element changes. */
|
|
53
|
+
'highlight': [payload: { ref: HTMLElement, value: string } | undefined]
|
|
54
|
+
/** Event handler called when the open state of the autocomplete changes. */
|
|
55
|
+
'update:open': [value: boolean]
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type AutocompleteRootContext = {
|
|
59
|
+
modelValue: Ref<string>
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export const [injectAutocompleteRootContext, provideAutocompleteRootContext]
|
|
63
|
+
= createContext<AutocompleteRootContext>('AutocompleteRoot')
|
|
64
|
+
</script>
|
|
65
|
+
|
|
66
|
+
<script setup lang="ts">
|
|
67
|
+
import { createEventHook, useVModel } from '@vueuse/core'
|
|
68
|
+
import { computed, getCurrentInstance, nextTick, onMounted, ref, toRefs } from 'vue'
|
|
69
|
+
import { ListboxRoot } from '@/Listbox'
|
|
70
|
+
import { PopperRoot } from '@/Popper'
|
|
71
|
+
|
|
72
|
+
const props = withDefaults(defineProps<AutocompleteRootProps>(), {
|
|
73
|
+
open: undefined,
|
|
74
|
+
resetSearchTermOnBlur: false,
|
|
75
|
+
openOnFocus: false,
|
|
76
|
+
openOnClick: false,
|
|
77
|
+
highlightOnHover: true,
|
|
78
|
+
})
|
|
79
|
+
const emits = defineEmits<AutocompleteRootEmits>()
|
|
80
|
+
|
|
81
|
+
defineSlots<{
|
|
82
|
+
default?: (props: {
|
|
83
|
+
/** Current open state */
|
|
84
|
+
open: typeof open.value
|
|
85
|
+
/** Current active value */
|
|
86
|
+
modelValue: typeof modelValue.value
|
|
87
|
+
}) => any
|
|
88
|
+
}>()
|
|
89
|
+
|
|
90
|
+
const { primitiveElement, currentElement: parentElement } = usePrimitiveElement<GenericComponentInstance<typeof ListboxRoot>>()
|
|
91
|
+
const { disabled, ignoreFilter, openOnFocus, openOnClick, dir: propDir, highlightOnHover } = toRefs(props)
|
|
92
|
+
|
|
93
|
+
const dir = useDirection(propDir)
|
|
94
|
+
|
|
95
|
+
const modelValue = useVModel(props, 'modelValue', emits, {
|
|
96
|
+
defaultValue: props.defaultValue ?? '',
|
|
97
|
+
passive: (props.modelValue === undefined) as false,
|
|
98
|
+
}) as Ref<string>
|
|
99
|
+
|
|
100
|
+
const open = useVModel(props, 'open', emits, {
|
|
101
|
+
defaultValue: props.defaultOpen,
|
|
102
|
+
passive: (props.open === undefined) as false,
|
|
103
|
+
}) as Ref<boolean>
|
|
104
|
+
|
|
105
|
+
// Writable computed that converts any value to string for the ComboboxRootContext.
|
|
106
|
+
// This handles the case when ComboboxItem sets modelValue to a non-string value,
|
|
107
|
+
// or when ComboboxCancel resets modelValue to null.
|
|
108
|
+
const contextModelValue = computed({
|
|
109
|
+
get: () => modelValue.value,
|
|
110
|
+
set: (val: any) => {
|
|
111
|
+
if (val === null || val === undefined) {
|
|
112
|
+
modelValue.value = ''
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
modelValue.value = String(val)
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
})
|
|
119
|
+
|
|
120
|
+
async function onOpenChange(val: boolean) {
|
|
121
|
+
open.value = val
|
|
122
|
+
|
|
123
|
+
if (val) {
|
|
124
|
+
// When opening, set filter to current text so items are filtered by what's in the input
|
|
125
|
+
filterSearch.value = modelValue.value || ''
|
|
126
|
+
|
|
127
|
+
await nextTick()
|
|
128
|
+
primitiveElement.value?.highlightSelected()
|
|
129
|
+
isUserInputted.value = true
|
|
130
|
+
inputElement.value?.focus()
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
isUserInputted.value = false
|
|
134
|
+
filterSearch.value = ''
|
|
135
|
+
setTimeout(() => {
|
|
136
|
+
if (!val && props.resetSearchTermOnBlur)
|
|
137
|
+
resetSearchTerm.trigger()
|
|
138
|
+
}, 1)
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const resetSearchTerm = createEventHook()
|
|
143
|
+
const isUserInputted = ref(false)
|
|
144
|
+
const isVirtual = ref(false)
|
|
145
|
+
const inputElement = ref<HTMLInputElement>()
|
|
146
|
+
const triggerElement = ref<HTMLElement>()
|
|
147
|
+
|
|
148
|
+
const highlightedElement = computed(() => primitiveElement.value?.highlightedElement ?? undefined)
|
|
149
|
+
|
|
150
|
+
const allItems = ref<Map<string, string>>(new Map())
|
|
151
|
+
const allGroups = ref<Map<string, Set<string>>>(new Map())
|
|
152
|
+
|
|
153
|
+
const { contains } = useFilter({ sensitivity: 'base' })
|
|
154
|
+
|
|
155
|
+
const filterSearch = ref('')
|
|
156
|
+
|
|
157
|
+
const filterState = computed<{
|
|
158
|
+
count: number
|
|
159
|
+
items: Map<string, number>
|
|
160
|
+
groups: Set<string>
|
|
161
|
+
}>((oldValue) => {
|
|
162
|
+
if (!filterSearch.value || props.ignoreFilter || isVirtual.value) {
|
|
163
|
+
return {
|
|
164
|
+
count: allItems.value.size,
|
|
165
|
+
items: oldValue?.items ?? new Map(),
|
|
166
|
+
groups: oldValue?.groups ?? new Set(allGroups.value.keys()),
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
let itemCount = 0
|
|
171
|
+
const filteredItems = new Map<string, number>()
|
|
172
|
+
const filteredGroups = new Set<string>()
|
|
173
|
+
|
|
174
|
+
for (const [id, value] of allItems.value) {
|
|
175
|
+
const score = contains(value, filterSearch.value)
|
|
176
|
+
filteredItems.set(id, score ? 1 : 0)
|
|
177
|
+
if (score)
|
|
178
|
+
itemCount++
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
for (const [groupId, group] of allGroups.value) {
|
|
182
|
+
for (const itemId of group) {
|
|
183
|
+
if (filteredItems.get(itemId)! > 0) {
|
|
184
|
+
filteredGroups.add(groupId)
|
|
185
|
+
break
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
return {
|
|
191
|
+
count: itemCount,
|
|
192
|
+
items: filteredItems,
|
|
193
|
+
groups: filteredGroups,
|
|
194
|
+
}
|
|
195
|
+
})
|
|
196
|
+
|
|
197
|
+
const inst = getCurrentInstance()
|
|
198
|
+
onMounted(() => {
|
|
199
|
+
if (inst?.exposed) {
|
|
200
|
+
inst.exposed.highlightItem = primitiveElement.value?.highlightItem
|
|
201
|
+
inst.exposed.highlightFirstItem = primitiveElement.value?.highlightFirstItem
|
|
202
|
+
inst.exposed.highlightSelected = primitiveElement.value?.highlightSelected
|
|
203
|
+
}
|
|
204
|
+
})
|
|
205
|
+
|
|
206
|
+
defineExpose({
|
|
207
|
+
filtered: filterState,
|
|
208
|
+
highlightedElement,
|
|
209
|
+
highlightItem: primitiveElement.value?.highlightItem,
|
|
210
|
+
highlightFirstItem: primitiveElement.value?.highlightFirstItem,
|
|
211
|
+
highlightSelected: primitiveElement.value?.highlightSelected,
|
|
212
|
+
})
|
|
213
|
+
|
|
214
|
+
// Provide the Combobox context so all Combobox sub-components work inside Autocomplete
|
|
215
|
+
provideComboboxRootContext({
|
|
216
|
+
modelValue: contextModelValue as any,
|
|
217
|
+
multiple: ref(false),
|
|
218
|
+
disabled,
|
|
219
|
+
open,
|
|
220
|
+
onOpenChange,
|
|
221
|
+
contentId: '',
|
|
222
|
+
isUserInputted,
|
|
223
|
+
isVirtual,
|
|
224
|
+
inputElement,
|
|
225
|
+
highlightedElement,
|
|
226
|
+
onInputElementChange: val => inputElement.value = val,
|
|
227
|
+
triggerElement,
|
|
228
|
+
onTriggerElementChange: val => triggerElement.value = val,
|
|
229
|
+
parentElement,
|
|
230
|
+
resetSearchTermOnSelect: ref(false),
|
|
231
|
+
onResetSearchTerm: resetSearchTerm.on,
|
|
232
|
+
allItems,
|
|
233
|
+
allGroups,
|
|
234
|
+
filterSearch,
|
|
235
|
+
filterState,
|
|
236
|
+
ignoreFilter,
|
|
237
|
+
openOnFocus,
|
|
238
|
+
openOnClick,
|
|
239
|
+
resetModelValueOnClear: ref(true),
|
|
240
|
+
})
|
|
241
|
+
|
|
242
|
+
// Provide autocomplete-specific context
|
|
243
|
+
provideAutocompleteRootContext({
|
|
244
|
+
modelValue,
|
|
245
|
+
})
|
|
246
|
+
</script>
|
|
247
|
+
|
|
248
|
+
<template>
|
|
249
|
+
<PopperRoot>
|
|
250
|
+
<ListboxRoot
|
|
251
|
+
ref="primitiveElement"
|
|
252
|
+
v-bind="$attrs"
|
|
253
|
+
v-model="(contextModelValue as any)"
|
|
254
|
+
:style="{
|
|
255
|
+
pointerEvents: open ? 'auto' : undefined,
|
|
256
|
+
}"
|
|
257
|
+
:as="as"
|
|
258
|
+
:as-child="asChild"
|
|
259
|
+
:dir="dir"
|
|
260
|
+
:name="name"
|
|
261
|
+
:required="required"
|
|
262
|
+
:disabled="disabled"
|
|
263
|
+
:highlight-on-hover="highlightOnHover"
|
|
264
|
+
@highlight="emits('highlight', $event as any)"
|
|
265
|
+
>
|
|
266
|
+
<slot
|
|
267
|
+
:open="open"
|
|
268
|
+
:model-value="modelValue"
|
|
269
|
+
/>
|
|
270
|
+
</ListboxRoot>
|
|
271
|
+
</PopperRoot>
|
|
272
|
+
</template>
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export {
|
|
2
|
+
default as AutocompleteInput,
|
|
3
|
+
type AutocompleteInputEmits,
|
|
4
|
+
type AutocompleteInputProps,
|
|
5
|
+
} from './AutocompleteInput.vue'
|
|
6
|
+
export {
|
|
7
|
+
default as AutocompleteRoot,
|
|
8
|
+
type AutocompleteRootEmits,
|
|
9
|
+
type AutocompleteRootProps,
|
|
10
|
+
injectAutocompleteRootContext,
|
|
11
|
+
} from './AutocompleteRoot.vue'
|
|
12
|
+
|
|
13
|
+
// Re-export Combobox sub-components as Autocomplete equivalents.
|
|
14
|
+
// These components inject ComboboxRootContext which AutocompleteRoot provides.
|
|
15
|
+
export {
|
|
16
|
+
ComboboxAnchor as AutocompleteAnchor,
|
|
17
|
+
type ComboboxAnchorProps as AutocompleteAnchorProps,
|
|
18
|
+
} from '@/Combobox'
|
|
19
|
+
export {
|
|
20
|
+
ComboboxArrow as AutocompleteArrow,
|
|
21
|
+
type ComboboxArrowProps as AutocompleteArrowProps,
|
|
22
|
+
} from '@/Combobox'
|
|
23
|
+
export {
|
|
24
|
+
ComboboxCancel as AutocompleteCancel,
|
|
25
|
+
type ComboboxCancelProps as AutocompleteCancelProps,
|
|
26
|
+
} from '@/Combobox'
|
|
27
|
+
export {
|
|
28
|
+
ComboboxContent as AutocompleteContent,
|
|
29
|
+
type ComboboxContentEmits as AutocompleteContentEmits,
|
|
30
|
+
type ComboboxContentProps as AutocompleteContentProps,
|
|
31
|
+
} from '@/Combobox'
|
|
32
|
+
export {
|
|
33
|
+
ComboboxEmpty as AutocompleteEmpty,
|
|
34
|
+
type ComboboxEmptyProps as AutocompleteEmptyProps,
|
|
35
|
+
} from '@/Combobox'
|
|
36
|
+
export {
|
|
37
|
+
ComboboxGroup as AutocompleteGroup,
|
|
38
|
+
type ComboboxGroupProps as AutocompleteGroupProps,
|
|
39
|
+
} from '@/Combobox'
|
|
40
|
+
export {
|
|
41
|
+
ComboboxItem as AutocompleteItem,
|
|
42
|
+
type ComboboxItemEmits as AutocompleteItemEmits,
|
|
43
|
+
type ComboboxItemProps as AutocompleteItemProps,
|
|
44
|
+
} from '@/Combobox'
|
|
45
|
+
export {
|
|
46
|
+
ComboboxItemIndicator as AutocompleteItemIndicator,
|
|
47
|
+
type ComboboxItemIndicatorProps as AutocompleteItemIndicatorProps,
|
|
48
|
+
} from '@/Combobox'
|
|
49
|
+
export {
|
|
50
|
+
ComboboxLabel as AutocompleteLabel,
|
|
51
|
+
type ComboboxLabelProps as AutocompleteLabelProps,
|
|
52
|
+
} from '@/Combobox'
|
|
53
|
+
export {
|
|
54
|
+
ComboboxPortal as AutocompletePortal,
|
|
55
|
+
type ComboboxPortalProps as AutocompletePortalProps,
|
|
56
|
+
} from '@/Combobox'
|
|
57
|
+
export {
|
|
58
|
+
ComboboxSeparator as AutocompleteSeparator,
|
|
59
|
+
type ComboboxSeparatorProps as AutocompleteSeparatorProps,
|
|
60
|
+
} from '@/Combobox'
|
|
61
|
+
export {
|
|
62
|
+
ComboboxTrigger as AutocompleteTrigger,
|
|
63
|
+
type ComboboxTriggerProps as AutocompleteTriggerProps,
|
|
64
|
+
} from '@/Combobox'
|
|
65
|
+
export {
|
|
66
|
+
ComboboxViewport as AutocompleteViewport,
|
|
67
|
+
type ComboboxViewportProps as AutocompleteViewportProps,
|
|
68
|
+
} from '@/Combobox'
|
|
69
|
+
export {
|
|
70
|
+
ComboboxVirtualizer as AutocompleteVirtualizer,
|
|
71
|
+
type ComboboxVirtualizerProps as AutocompleteVirtualizerProps,
|
|
72
|
+
} from '@/Combobox'
|
|
@@ -171,7 +171,8 @@ function handleArrowKey(e: KeyboardEvent) {
|
|
|
171
171
|
<template>
|
|
172
172
|
<Primitive
|
|
173
173
|
ref="primitiveElement"
|
|
174
|
-
|
|
174
|
+
:as="props.as"
|
|
175
|
+
:as-child="props.asChild"
|
|
175
176
|
role="button"
|
|
176
177
|
:aria-label="labelText"
|
|
177
178
|
data-reka-calendar-cell-trigger
|
|
@@ -26,6 +26,12 @@ defineSlots<CalendarNextSlot>()
|
|
|
26
26
|
const disabled = computed(() => rootContext.disabled.value || rootContext.isNextButtonDisabled(props.nextPage))
|
|
27
27
|
|
|
28
28
|
const rootContext = injectCalendarRootContext()
|
|
29
|
+
|
|
30
|
+
function handleClick() {
|
|
31
|
+
if (disabled.value)
|
|
32
|
+
return
|
|
33
|
+
rootContext.nextPage(props.nextPage)
|
|
34
|
+
}
|
|
29
35
|
</script>
|
|
30
36
|
|
|
31
37
|
<template>
|
|
@@ -33,11 +39,11 @@ const rootContext = injectCalendarRootContext()
|
|
|
33
39
|
:as="props.as"
|
|
34
40
|
:as-child="props.asChild"
|
|
35
41
|
aria-label="Next page"
|
|
36
|
-
:type="as === 'button' ? 'button' : undefined"
|
|
42
|
+
:type="props.as === 'button' ? 'button' : undefined"
|
|
37
43
|
:aria-disabled="disabled || undefined"
|
|
38
44
|
:data-disabled="disabled || undefined"
|
|
39
45
|
:disabled="disabled"
|
|
40
|
-
@click="
|
|
46
|
+
@click="handleClick"
|
|
41
47
|
>
|
|
42
48
|
<slot :disabled>
|
|
43
49
|
Next page
|
|
@@ -26,6 +26,12 @@ defineSlots<CalendarPrevSlot>()
|
|
|
26
26
|
const disabled = computed(() => rootContext.disabled.value || rootContext.isPrevButtonDisabled(props.prevPage))
|
|
27
27
|
|
|
28
28
|
const rootContext = injectCalendarRootContext()
|
|
29
|
+
|
|
30
|
+
function handleClick() {
|
|
31
|
+
if (disabled.value)
|
|
32
|
+
return
|
|
33
|
+
rootContext.prevPage(props.prevPage)
|
|
34
|
+
}
|
|
29
35
|
</script>
|
|
30
36
|
|
|
31
37
|
<template>
|
|
@@ -33,11 +39,11 @@ const rootContext = injectCalendarRootContext()
|
|
|
33
39
|
aria-label="Previous page"
|
|
34
40
|
:as="props.as"
|
|
35
41
|
:as-child="props.asChild"
|
|
36
|
-
:type="as === 'button' ? 'button' : undefined"
|
|
42
|
+
:type="props.as === 'button' ? 'button' : undefined"
|
|
37
43
|
:aria-disabled="disabled || undefined"
|
|
38
44
|
:data-disabled="disabled || undefined"
|
|
39
45
|
:disabled="disabled"
|
|
40
|
-
@click="
|
|
46
|
+
@click="handleClick"
|
|
41
47
|
>
|
|
42
48
|
<slot :disabled>
|
|
43
49
|
Prev page
|
|
@@ -97,7 +97,7 @@ export interface CalendarRootProps extends PrimitiveProps {
|
|
|
97
97
|
nextPage?: (placeholder: DateValue) => DateValue
|
|
98
98
|
/** A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component. */
|
|
99
99
|
prevPage?: (placeholder: DateValue) => DateValue
|
|
100
|
-
/** The controlled
|
|
100
|
+
/** The controlled selected date value of the calendar. Can be bound as `v-model`. */
|
|
101
101
|
modelValue?: DateValue | DateValue[] | undefined
|
|
102
102
|
/** Whether multiple dates can be selected */
|
|
103
103
|
multiple?: boolean
|
|
@@ -7,11 +7,11 @@ import { useVModel } from '@vueuse/core'
|
|
|
7
7
|
import { createContext, isNullish, isValueEqualOrExist, useFormControl, useForwardExpose } from '@/shared'
|
|
8
8
|
import { injectCheckboxGroupRootContext } from './CheckboxGroupRoot.vue'
|
|
9
9
|
|
|
10
|
-
export interface CheckboxRootProps extends PrimitiveProps, FormFieldProps {
|
|
10
|
+
export interface CheckboxRootProps<T = boolean> extends PrimitiveProps, FormFieldProps {
|
|
11
11
|
/** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */
|
|
12
|
-
defaultValue?:
|
|
12
|
+
defaultValue?: T | 'indeterminate'
|
|
13
13
|
/** The controlled value of the checkbox. Can be binded with v-model. */
|
|
14
|
-
modelValue?:
|
|
14
|
+
modelValue?: T | 'indeterminate' | null
|
|
15
15
|
/** When `true`, prevents the user from interacting with the checkbox */
|
|
16
16
|
disabled?: boolean
|
|
17
17
|
/**
|
|
@@ -21,11 +21,19 @@ export interface CheckboxRootProps extends PrimitiveProps, FormFieldProps {
|
|
|
21
21
|
value?: AcceptableValue
|
|
22
22
|
/** Id of the element */
|
|
23
23
|
id?: string
|
|
24
|
+
/**
|
|
25
|
+
* The value used when the checkbox is checked. Defaults to `true`.
|
|
26
|
+
*/
|
|
27
|
+
trueValue?: T
|
|
28
|
+
/**
|
|
29
|
+
* The value used when the checkbox is unchecked. Defaults to `false`.
|
|
30
|
+
*/
|
|
31
|
+
falseValue?: T
|
|
24
32
|
}
|
|
25
33
|
|
|
26
|
-
export type CheckboxRootEmits = {
|
|
34
|
+
export type CheckboxRootEmits<T = boolean> = {
|
|
27
35
|
/** Event handler called when the value of the checkbox changes. */
|
|
28
|
-
'update:modelValue': [value:
|
|
36
|
+
'update:modelValue': [value: T | 'indeterminate']
|
|
29
37
|
}
|
|
30
38
|
|
|
31
39
|
interface CheckboxRootContext {
|
|
@@ -37,7 +45,7 @@ export const [injectCheckboxRootContext, provideCheckboxRootContext]
|
|
|
37
45
|
= createContext<CheckboxRootContext>('CheckboxRoot')
|
|
38
46
|
</script>
|
|
39
47
|
|
|
40
|
-
<script setup lang="ts">
|
|
48
|
+
<script setup lang="ts" generic="T = boolean">
|
|
41
49
|
import { isEqual } from 'ohash'
|
|
42
50
|
import { computed } from 'vue'
|
|
43
51
|
import { Primitive } from '@/Primitive'
|
|
@@ -49,12 +57,14 @@ defineOptions({
|
|
|
49
57
|
inheritAttrs: false,
|
|
50
58
|
})
|
|
51
59
|
|
|
52
|
-
const props = withDefaults(defineProps<CheckboxRootProps
|
|
60
|
+
const props = withDefaults(defineProps<CheckboxRootProps<T>>(), {
|
|
53
61
|
modelValue: undefined,
|
|
54
62
|
value: 'on',
|
|
55
63
|
as: 'button',
|
|
64
|
+
trueValue: (() => true) as unknown as undefined,
|
|
65
|
+
falseValue: (() => false) as unknown as undefined,
|
|
56
66
|
})
|
|
57
|
-
const emits = defineEmits<CheckboxRootEmits
|
|
67
|
+
const emits = defineEmits<CheckboxRootEmits<T>>()
|
|
58
68
|
|
|
59
69
|
defineSlots<{
|
|
60
70
|
default?: (props: {
|
|
@@ -69,19 +79,23 @@ const { forwardRef, currentElement } = useForwardExpose()
|
|
|
69
79
|
|
|
70
80
|
const checkboxGroupContext = injectCheckboxGroupRootContext(null)
|
|
71
81
|
|
|
72
|
-
const modelValue = useVModel(props, 'modelValue', emits, {
|
|
73
|
-
defaultValue: props.defaultValue,
|
|
82
|
+
const modelValue = useVModel(props as any, 'modelValue', emits as any, {
|
|
83
|
+
defaultValue: props.defaultValue ?? props.falseValue,
|
|
74
84
|
passive: (props.modelValue === undefined) as false,
|
|
75
|
-
}) as Ref<
|
|
85
|
+
}) as Ref<T | 'indeterminate'>
|
|
76
86
|
|
|
77
87
|
const disabled = computed(() => checkboxGroupContext?.disabled.value || props.disabled)
|
|
78
88
|
|
|
89
|
+
const isChecked = computed(() => isEqual(modelValue.value, props.trueValue))
|
|
90
|
+
|
|
79
91
|
const checkboxState = computed<CheckedState>(() => {
|
|
80
92
|
if (!isNullish(checkboxGroupContext?.modelValue.value)) {
|
|
81
93
|
return isValueEqualOrExist(checkboxGroupContext.modelValue.value, props.value)
|
|
82
94
|
}
|
|
83
95
|
else {
|
|
84
|
-
|
|
96
|
+
if (modelValue.value === 'indeterminate')
|
|
97
|
+
return 'indeterminate'
|
|
98
|
+
return isChecked.value
|
|
85
99
|
}
|
|
86
100
|
})
|
|
87
101
|
|
|
@@ -98,7 +112,12 @@ function handleClick() {
|
|
|
98
112
|
checkboxGroupContext.modelValue.value = modelValueArray
|
|
99
113
|
}
|
|
100
114
|
else {
|
|
101
|
-
|
|
115
|
+
if (modelValue.value === 'indeterminate') {
|
|
116
|
+
modelValue.value = props.trueValue as T
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
modelValue.value = isChecked.value ? props.falseValue as T : props.trueValue as T
|
|
120
|
+
}
|
|
102
121
|
}
|
|
103
122
|
}
|
|
104
123
|
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { PrimitiveProps } from '@/Primitive'
|
|
3
|
+
|
|
4
|
+
export interface ColorAreaAreaProps extends PrimitiveProps {}
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<script setup lang="ts">
|
|
8
|
+
import { ref } from 'vue'
|
|
9
|
+
import { Primitive, usePrimitiveElement } from '@/Primitive'
|
|
10
|
+
import { injectColorAreaRootContext } from './ColorAreaRoot.vue'
|
|
11
|
+
import { linearScale } from './utils'
|
|
12
|
+
|
|
13
|
+
const props = withDefaults(defineProps<ColorAreaAreaProps>(), {
|
|
14
|
+
as: 'div',
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
const rootContext = injectColorAreaRootContext()
|
|
18
|
+
const { primitiveElement, currentElement: areaElement } = usePrimitiveElement()
|
|
19
|
+
|
|
20
|
+
const isDragging = ref(false)
|
|
21
|
+
|
|
22
|
+
// Convert pointer position to channel values
|
|
23
|
+
function getValuesFromPointer(event: PointerEvent) {
|
|
24
|
+
const rect = areaElement.value!.getBoundingClientRect()
|
|
25
|
+
|
|
26
|
+
const xInput: [number, number] = [0, rect.width]
|
|
27
|
+
const xOutput: [number, number] = [rootContext.xRange.value.min, rootContext.xRange.value.max]
|
|
28
|
+
const xScale = linearScale(xInput, xOutput)
|
|
29
|
+
const xValue = xScale(event.clientX - rect.left)
|
|
30
|
+
|
|
31
|
+
// Y is inverted (top is max, bottom is min for most channels)
|
|
32
|
+
const yInput: [number, number] = [0, rect.height]
|
|
33
|
+
const yOutput: [number, number] = [rootContext.yRange.value.max, rootContext.yRange.value.min]
|
|
34
|
+
const yScale = linearScale(yInput, yOutput)
|
|
35
|
+
const yValue = yScale(event.clientY - rect.top)
|
|
36
|
+
|
|
37
|
+
return { x: xValue, y: yValue }
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function handlePointerDown(event: PointerEvent) {
|
|
41
|
+
if (rootContext.disabled.value)
|
|
42
|
+
return
|
|
43
|
+
|
|
44
|
+
const target = event.target as HTMLElement
|
|
45
|
+
target.setPointerCapture(event.pointerId)
|
|
46
|
+
event.preventDefault()
|
|
47
|
+
|
|
48
|
+
isDragging.value = true
|
|
49
|
+
const { x, y } = getValuesFromPointer(event)
|
|
50
|
+
rootContext.updateValues(x, y)
|
|
51
|
+
|
|
52
|
+
// Focus the thumb when dragging starts
|
|
53
|
+
rootContext.thumbRef.value?.focus()
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function handlePointerMove(event: PointerEvent) {
|
|
57
|
+
if (!isDragging.value || rootContext.disabled.value)
|
|
58
|
+
return
|
|
59
|
+
|
|
60
|
+
const target = event.target as HTMLElement
|
|
61
|
+
if (target.hasPointerCapture(event.pointerId)) {
|
|
62
|
+
const { x, y } = getValuesFromPointer(event)
|
|
63
|
+
rootContext.updateValues(x, y)
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function handlePointerUp(event: PointerEvent) {
|
|
68
|
+
if (!isDragging.value)
|
|
69
|
+
return
|
|
70
|
+
|
|
71
|
+
const target = event.target as HTMLElement
|
|
72
|
+
target.releasePointerCapture(event.pointerId)
|
|
73
|
+
isDragging.value = false
|
|
74
|
+
rootContext.commitValues()
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Keyboard navigation
|
|
78
|
+
function handleKeyDown(event: KeyboardEvent) {
|
|
79
|
+
if (rootContext.disabled.value)
|
|
80
|
+
return
|
|
81
|
+
|
|
82
|
+
const stepMultiplier = event.shiftKey ? 10 : 1
|
|
83
|
+
const xStepSize = rootContext.xRange.value.step * stepMultiplier
|
|
84
|
+
const yStepSize = rootContext.yRange.value.step * stepMultiplier
|
|
85
|
+
|
|
86
|
+
let xDelta = 0
|
|
87
|
+
let yDelta = 0
|
|
88
|
+
|
|
89
|
+
switch (event.key) {
|
|
90
|
+
case 'ArrowLeft':
|
|
91
|
+
xDelta = -xStepSize
|
|
92
|
+
break
|
|
93
|
+
case 'ArrowRight':
|
|
94
|
+
xDelta = xStepSize
|
|
95
|
+
break
|
|
96
|
+
case 'ArrowUp':
|
|
97
|
+
yDelta = yStepSize
|
|
98
|
+
break
|
|
99
|
+
case 'ArrowDown':
|
|
100
|
+
yDelta = -yStepSize
|
|
101
|
+
break
|
|
102
|
+
case 'PageUp':
|
|
103
|
+
yDelta = yStepSize * 10
|
|
104
|
+
break
|
|
105
|
+
case 'PageDown':
|
|
106
|
+
yDelta = -yStepSize * 10
|
|
107
|
+
break
|
|
108
|
+
case 'Home':
|
|
109
|
+
xDelta = -xStepSize * 10
|
|
110
|
+
break
|
|
111
|
+
case 'End':
|
|
112
|
+
xDelta = xStepSize * 10
|
|
113
|
+
break
|
|
114
|
+
default:
|
|
115
|
+
return
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
event.preventDefault()
|
|
119
|
+
rootContext.updateValues(
|
|
120
|
+
rootContext.xValue.value + xDelta,
|
|
121
|
+
rootContext.yValue.value + yDelta,
|
|
122
|
+
)
|
|
123
|
+
}
|
|
124
|
+
</script>
|
|
125
|
+
|
|
126
|
+
<template>
|
|
127
|
+
<Primitive
|
|
128
|
+
ref="primitiveElement"
|
|
129
|
+
:as-child="asChild"
|
|
130
|
+
:as="as"
|
|
131
|
+
role="application"
|
|
132
|
+
aria-roledescription="Color picker"
|
|
133
|
+
:aria-disabled="rootContext.disabled.value ? 'true' : undefined"
|
|
134
|
+
:data-disabled="rootContext.disabled.value ? '' : undefined"
|
|
135
|
+
:style="{
|
|
136
|
+
touchAction: 'none',
|
|
137
|
+
}"
|
|
138
|
+
@keydown="handleKeyDown"
|
|
139
|
+
@pointerdown="handlePointerDown"
|
|
140
|
+
@pointermove="handlePointerMove"
|
|
141
|
+
@pointerup="handlePointerUp"
|
|
142
|
+
>
|
|
143
|
+
<slot />
|
|
144
|
+
</Primitive>
|
|
145
|
+
</template>
|