reka-ui 2.8.0 → 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 +12 -6
- package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.js +13 -7
- 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/Calendar/CalendarRoot.cjs +12 -7
- package/dist/Calendar/CalendarRoot.cjs.map +1 -1
- package/dist/Calendar/CalendarRoot.js +13 -8
- package/dist/Calendar/CalendarRoot.js.map +1 -1
- package/dist/Calendar/useCalendar.cjs +32 -2
- package/dist/Calendar/useCalendar.cjs.map +1 -1
- package/dist/Calendar/useCalendar.js +33 -3
- package/dist/Calendar/useCalendar.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 +11 -3
- package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.js +11 -3
- 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/DatePicker/DatePickerRoot.cjs +4 -3
- package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
- package/dist/DatePicker/DatePickerRoot.js +4 -3
- package/dist/DatePicker/DatePickerRoot.js.map +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/DateRangePicker/DateRangePickerRoot.cjs +4 -3
- package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.js +5 -4
- package/dist/DateRangePicker/DateRangePickerRoot.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/RangeCalendarCellTrigger.cjs +8 -2
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js +8 -2
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.cjs +2 -1
- package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.js +2 -1
- package/dist/RangeCalendar/RangeCalendarGrid.js.map +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 +31 -17
- package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.js +32 -18
- package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.cjs +35 -6
- package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.js +35 -6
- 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 +70 -9
- package/dist/date/calendar.cjs.map +1 -1
- package/dist/date/calendar.js +54 -11
- 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 +1 -2
- package/dist/date/useDateField.cjs.map +1 -1
- package/dist/date/useDateField.js +1 -2
- package/dist/date/useDateField.js.map +1 -1
- package/dist/date.cjs +12 -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 -8829
- package/dist/index.d.ts +3 -8829
- package/dist/index.js +116 -47
- package/dist/index2.d.cts +66 -3
- package/dist/index2.d.cts.map +1 -1
- package/dist/index2.d.ts +66 -3
- 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 +7 -3
- package/dist/shared/useForwardExpose.cjs.map +1 -1
- package/dist/shared/useForwardExpose.js +8 -4
- 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 +21 -13
- 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 +10 -2
- package/src/Calendar/CalendarNext.vue +8 -2
- package/src/Calendar/CalendarPrev.vue +8 -2
- package/src/Calendar/CalendarRoot.vue +20 -8
- package/src/Calendar/useCalendar.ts +43 -3
- 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 +14 -1
- package/src/DateField/DateFieldRoot.vue +1 -1
- package/src/DatePicker/DatePickerRoot.vue +4 -4
- package/src/DateRangeField/DateRangeFieldRoot.vue +11 -4
- package/src/DateRangePicker/DateRangePickerRoot.vue +5 -5
- 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/RadioGroup/RadioGroupRoot.vue +1 -1
- package/src/RangeCalendar/RangeCalendarCellTrigger.vue +13 -3
- package/src/RangeCalendar/RangeCalendarGrid.vue +1 -0
- package/src/RangeCalendar/RangeCalendarNext.vue +10 -4
- package/src/RangeCalendar/RangeCalendarPrev.vue +10 -4
- package/src/RangeCalendar/RangeCalendarRoot.vue +48 -32
- package/src/RangeCalendar/useRangeCalendar.ts +41 -16
- 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 +71 -18
- 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 +40 -40
- package/src/shared/macro.ts +11 -0
- package/src/shared/useArrowNavigation.ts +8 -2
- package/src/shared/useForwardExpose.ts +21 -6
- 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'
|
|
@@ -82,8 +82,15 @@ const isOutsideVisibleView = computed(() =>
|
|
|
82
82
|
const isDisabled = computed(() => rootContext.isDateDisabled(props.day) || (rootContext.disableDaysOutsideCurrentView.value && isOutsideView.value))
|
|
83
83
|
|
|
84
84
|
const isFocusedDate = computed(() => {
|
|
85
|
-
|
|
85
|
+
if (isOutsideView.value || isDisabled.value)
|
|
86
|
+
return false
|
|
87
|
+
if (!rootContext.disabled.value && rootContext.isPlaceholderFocusable.value && isSameDay(props.day, rootContext.placeholder.value))
|
|
88
|
+
return true
|
|
89
|
+
if ((!rootContext.hasSelectedDate.value || rootContext.isSelectedDateDisabled.value) && !rootContext.isPlaceholderFocusable.value)
|
|
90
|
+
return rootContext.firstFocusableDate.value && isSameDay(props.day, rootContext.firstFocusableDate.value)
|
|
91
|
+
return false
|
|
86
92
|
})
|
|
93
|
+
|
|
87
94
|
const isSelectedDate = computed(() => rootContext.isDateSelected(props.day))
|
|
88
95
|
|
|
89
96
|
function changeDate(date: DateValue) {
|
|
@@ -164,7 +171,8 @@ function handleArrowKey(e: KeyboardEvent) {
|
|
|
164
171
|
<template>
|
|
165
172
|
<Primitive
|
|
166
173
|
ref="primitiveElement"
|
|
167
|
-
|
|
174
|
+
:as="props.as"
|
|
175
|
+
:as-child="props.asChild"
|
|
168
176
|
role="button"
|
|
169
177
|
:aria-label="labelText"
|
|
170
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
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
import type { DateValue } from '@internationalized/date'
|
|
3
3
|
|
|
4
4
|
import type { Ref } from 'vue'
|
|
5
|
-
import type { Grid, Matcher, WeekDayFormat } from '@/date'
|
|
5
|
+
import type { Grid, Matcher, WeekDayFormat, WeekStartsOn } from '@/date'
|
|
6
6
|
import type { PrimitiveProps } from '@/Primitive'
|
|
7
7
|
|
|
8
8
|
import type { Formatter } from '@/shared'
|
|
9
9
|
import type { Direction } from '@/shared/types'
|
|
10
10
|
import { isEqualDay, isSameDay } from '@internationalized/date'
|
|
11
|
+
import { getWeekStartsOn } from '@/date'
|
|
11
12
|
import { createContext, useDirection, useLocale } from '@/shared'
|
|
12
13
|
import { getDefaultDate, handleCalendarInitialFocus } from '@/shared/date'
|
|
13
14
|
import { useCalendar, useCalendarState } from './useCalendar'
|
|
@@ -20,7 +21,7 @@ type CalendarRootContext = {
|
|
|
20
21
|
preventDeselect: Ref<boolean>
|
|
21
22
|
grid: Ref<Grid<DateValue>[]>
|
|
22
23
|
weekDays: Ref<string[]>
|
|
23
|
-
weekStartsOn: Ref<
|
|
24
|
+
weekStartsOn: Ref<WeekStartsOn>
|
|
24
25
|
weekdayFormat: Ref<WeekDayFormat>
|
|
25
26
|
fixedWeeks: Ref<boolean>
|
|
26
27
|
multiple: Ref<boolean>
|
|
@@ -47,6 +48,10 @@ type CalendarRootContext = {
|
|
|
47
48
|
disableDaysOutsideCurrentView: Ref<boolean>
|
|
48
49
|
minValue: Ref<DateValue | undefined>
|
|
49
50
|
maxValue: Ref<DateValue | undefined>
|
|
51
|
+
isPlaceholderFocusable: Ref<boolean>
|
|
52
|
+
firstFocusableDate: Ref<DateValue | undefined>
|
|
53
|
+
hasSelectedDate: Ref<boolean>
|
|
54
|
+
isSelectedDateDisabled: Ref<boolean>
|
|
50
55
|
}
|
|
51
56
|
|
|
52
57
|
export interface CalendarRootProps extends PrimitiveProps {
|
|
@@ -61,7 +66,7 @@ export interface CalendarRootProps extends PrimitiveProps {
|
|
|
61
66
|
/** Whether or not to prevent the user from deselecting a date without selecting another date first */
|
|
62
67
|
preventDeselect?: boolean
|
|
63
68
|
/** The day of the week to start the calendar on */
|
|
64
|
-
weekStartsOn?:
|
|
69
|
+
weekStartsOn?: WeekStartsOn
|
|
65
70
|
/** The format to use for the weekday strings provided via the weekdays slot prop */
|
|
66
71
|
weekdayFormat?: WeekDayFormat
|
|
67
72
|
/** The accessible label for the calendar */
|
|
@@ -92,7 +97,7 @@ export interface CalendarRootProps extends PrimitiveProps {
|
|
|
92
97
|
nextPage?: (placeholder: DateValue) => DateValue
|
|
93
98
|
/** A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component. */
|
|
94
99
|
prevPage?: (placeholder: DateValue) => DateValue
|
|
95
|
-
/** The controlled
|
|
100
|
+
/** The controlled selected date value of the calendar. Can be bound as `v-model`. */
|
|
96
101
|
modelValue?: DateValue | DateValue[] | undefined
|
|
97
102
|
/** Whether multiple dates can be selected */
|
|
98
103
|
multiple?: boolean
|
|
@@ -113,7 +118,7 @@ export const [injectCalendarRootContext, provideCalendarRootContext]
|
|
|
113
118
|
|
|
114
119
|
<script setup lang="ts">
|
|
115
120
|
import { useVModel } from '@vueuse/core'
|
|
116
|
-
import { onMounted, toRefs, watch } from 'vue'
|
|
121
|
+
import { computed, onMounted, toRefs, watch } from 'vue'
|
|
117
122
|
import { Primitive, usePrimitiveElement } from '@/Primitive'
|
|
118
123
|
|
|
119
124
|
const props = withDefaults(defineProps<CalendarRootProps>(), {
|
|
@@ -121,7 +126,6 @@ const props = withDefaults(defineProps<CalendarRootProps>(), {
|
|
|
121
126
|
as: 'div',
|
|
122
127
|
pagedNavigation: false,
|
|
123
128
|
preventDeselect: false,
|
|
124
|
-
weekStartsOn: 0,
|
|
125
129
|
weekdayFormat: 'narrow',
|
|
126
130
|
fixedWeeks: false,
|
|
127
131
|
multiple: false,
|
|
@@ -144,7 +148,7 @@ defineSlots<{
|
|
|
144
148
|
/** The days of the week */
|
|
145
149
|
weekDays: string[]
|
|
146
150
|
/** The start of the week */
|
|
147
|
-
weekStartsOn:
|
|
151
|
+
weekStartsOn: WeekStartsOn
|
|
148
152
|
/** The calendar locale */
|
|
149
153
|
locale: string
|
|
150
154
|
/** Whether or not to always display 6 weeks in the calendar */
|
|
@@ -159,7 +163,6 @@ const {
|
|
|
159
163
|
readonly,
|
|
160
164
|
initialFocus,
|
|
161
165
|
pagedNavigation,
|
|
162
|
-
weekStartsOn,
|
|
163
166
|
weekdayFormat,
|
|
164
167
|
fixedWeeks,
|
|
165
168
|
multiple,
|
|
@@ -182,6 +185,7 @@ const { primitiveElement, currentElement: parentElement }
|
|
|
182
185
|
= usePrimitiveElement()
|
|
183
186
|
const locale = useLocale(propLocale)
|
|
184
187
|
const dir = useDirection(propDir)
|
|
188
|
+
const weekStartsOn = computed(() => props.weekStartsOn ?? getWeekStartsOn(locale.value))
|
|
185
189
|
|
|
186
190
|
const modelValue = useVModel(props, 'modelValue', emits, {
|
|
187
191
|
defaultValue: defaultValue.value,
|
|
@@ -216,6 +220,8 @@ const {
|
|
|
216
220
|
prevPage,
|
|
217
221
|
formatter,
|
|
218
222
|
grid,
|
|
223
|
+
isPlaceholderFocusable,
|
|
224
|
+
firstFocusableDate,
|
|
219
225
|
} = useCalendar({
|
|
220
226
|
locale,
|
|
221
227
|
placeholder,
|
|
@@ -237,6 +243,8 @@ const {
|
|
|
237
243
|
const {
|
|
238
244
|
isInvalid,
|
|
239
245
|
isDateSelected,
|
|
246
|
+
hasSelectedDate,
|
|
247
|
+
isSelectedDateDisabled,
|
|
240
248
|
} = useCalendarState({
|
|
241
249
|
date: modelValue,
|
|
242
250
|
isDateDisabled,
|
|
@@ -327,6 +335,10 @@ provideCalendarRootContext({
|
|
|
327
335
|
disableDaysOutsideCurrentView,
|
|
328
336
|
minValue,
|
|
329
337
|
maxValue,
|
|
338
|
+
isPlaceholderFocusable,
|
|
339
|
+
firstFocusableDate,
|
|
340
|
+
hasSelectedDate,
|
|
341
|
+
isSelectedDateDisabled,
|
|
330
342
|
})
|
|
331
343
|
</script>
|
|
332
344
|
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
import type { DateFields, DateValue } from '@internationalized/date'
|
|
6
6
|
import type { Ref } from 'vue'
|
|
7
|
-
import type { Grid, Matcher, WeekDayFormat } from '@/date'
|
|
7
|
+
import type { Grid, Matcher, WeekDayFormat, WeekStartsOn } from '@/date'
|
|
8
8
|
import type { DateFormatterOptions } from '@/shared/useDateFormatter'
|
|
9
|
-
import { isEqualMonth, isSameDay } from '@internationalized/date'
|
|
9
|
+
import { isEqualMonth, isSameDay, isSameMonth } from '@internationalized/date'
|
|
10
10
|
import { computed, ref, watch } from 'vue'
|
|
11
11
|
import { createMonths, getDaysInMonth, isAfter, isBefore, toDate } from '@/date'
|
|
12
12
|
import { useDateFormatter } from '@/shared'
|
|
@@ -14,7 +14,7 @@ import { useDateFormatter } from '@/shared'
|
|
|
14
14
|
export type UseCalendarProps = {
|
|
15
15
|
locale: Ref<string>
|
|
16
16
|
placeholder: Ref<DateValue>
|
|
17
|
-
weekStartsOn: Ref<
|
|
17
|
+
weekStartsOn: Ref<WeekStartsOn>
|
|
18
18
|
fixedWeeks: Ref<boolean>
|
|
19
19
|
numberOfMonths: Ref<number>
|
|
20
20
|
minValue: Ref<DateValue | undefined>
|
|
@@ -71,9 +71,26 @@ export function useCalendarState(props: UseCalendarStateProps) {
|
|
|
71
71
|
},
|
|
72
72
|
)
|
|
73
73
|
|
|
74
|
+
const hasSelectedDate = computed(() => {
|
|
75
|
+
return Array.isArray(props.date.value) ? props.date.value.length > 0 : !!props.date.value
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
const isSelectedDateDisabled = computed(() => {
|
|
79
|
+
if (Array.isArray(props.date.value)) {
|
|
80
|
+
if (!props.date.value.length)
|
|
81
|
+
return false
|
|
82
|
+
return props.date.value.some(dateObj => props.isDateDisabled?.(dateObj))
|
|
83
|
+
}
|
|
84
|
+
if (!props.date.value)
|
|
85
|
+
return false
|
|
86
|
+
return !!props.isDateDisabled?.(props.date.value)
|
|
87
|
+
})
|
|
88
|
+
|
|
74
89
|
return {
|
|
75
90
|
isDateSelected,
|
|
76
91
|
isInvalid,
|
|
92
|
+
hasSelectedDate,
|
|
93
|
+
isSelectedDateDisabled,
|
|
77
94
|
}
|
|
78
95
|
}
|
|
79
96
|
|
|
@@ -336,6 +353,27 @@ export function useCalendar(props: UseCalendarProps) {
|
|
|
336
353
|
|
|
337
354
|
const fullCalendarLabel = computed(() => `${props.calendarLabel.value ?? 'Event Date'}, ${headingValue.value}`)
|
|
338
355
|
|
|
356
|
+
const isPlaceholderFocusable = computed(() => {
|
|
357
|
+
return !(isDateDisabled(props.placeholder.value) || isDateUnavailable(props.placeholder.value) || isOutsideVisibleView(props.placeholder.value))
|
|
358
|
+
})
|
|
359
|
+
|
|
360
|
+
const firstFocusableDate = computed(() => {
|
|
361
|
+
for (const month of grid.value) {
|
|
362
|
+
if (props.minValue.value && isBefore(month.value, props.minValue.value))
|
|
363
|
+
continue
|
|
364
|
+
|
|
365
|
+
const daysInMonth = getDaysInMonth(month.value)
|
|
366
|
+
const startDay = props.minValue.value && isSameMonth(props.minValue.value, month.value) ? props.minValue.value.day : 1
|
|
367
|
+
|
|
368
|
+
for (let day = startDay; day <= daysInMonth; day++) {
|
|
369
|
+
const date = month.value.set({ day })
|
|
370
|
+
if (isDateDisabled(date) || isDateUnavailable(date))
|
|
371
|
+
continue
|
|
372
|
+
return date
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
})
|
|
376
|
+
|
|
339
377
|
return {
|
|
340
378
|
isDateDisabled,
|
|
341
379
|
isDateUnavailable,
|
|
@@ -350,5 +388,7 @@ export function useCalendar(props: UseCalendarProps) {
|
|
|
350
388
|
prevPage,
|
|
351
389
|
headingValue,
|
|
352
390
|
fullCalendarLabel,
|
|
391
|
+
isPlaceholderFocusable,
|
|
392
|
+
firstFocusableDate,
|
|
353
393
|
}
|
|
354
394
|
}
|