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,140 @@
|
|
|
1
|
+
import type { Color, HSBColor, HSLColor, RGBColor } from './types'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Parses a color string into a Color object.
|
|
5
|
+
* Supports hex (#rrggbb, #rgb), rgb(), hsl(), and hsb()/hsv() formats.
|
|
6
|
+
*/
|
|
7
|
+
export function parseColor(value: string): Color {
|
|
8
|
+
const trimmed = value.trim().toLowerCase()
|
|
9
|
+
|
|
10
|
+
// Hex format
|
|
11
|
+
if (trimmed.startsWith('#')) {
|
|
12
|
+
return parseHex(trimmed)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// rgb() format
|
|
16
|
+
if (trimmed.startsWith('rgb')) {
|
|
17
|
+
return parseRgb(trimmed)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// hsl() format
|
|
21
|
+
if (trimmed.startsWith('hsl')) {
|
|
22
|
+
return parseHsl(trimmed)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// hsb() or hsv() format
|
|
26
|
+
if (trimmed.startsWith('hsb') || trimmed.startsWith('hsv')) {
|
|
27
|
+
return parseHsb(trimmed)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
throw new Error(`Unable to parse color: ${value}`)
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function parseHex(hex: string): RGBColor {
|
|
34
|
+
let normalized = hex.slice(1)
|
|
35
|
+
|
|
36
|
+
// Validate hex format (3, 6, or 8 hex digits)
|
|
37
|
+
if (!/^[0-9A-F]{3}$/i.test(normalized) && !/^[0-9A-F]{6}$/i.test(normalized) && !/^[0-9A-F]{8}$/i.test(normalized)) {
|
|
38
|
+
throw new Error(`Invalid hex color: ${hex}. Expected format: #RGB, #RRGGBB, or #RRGGBBAA`)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Expand shorthand (e.g., #f00 -> #ff0000)
|
|
42
|
+
if (normalized.length === 3) {
|
|
43
|
+
normalized = normalized.split('').map(c => c + c).join('')
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Handle 6-digit hex
|
|
47
|
+
if (normalized.length === 6) {
|
|
48
|
+
const bigint = parseInt(normalized, 16)
|
|
49
|
+
return {
|
|
50
|
+
space: 'rgb',
|
|
51
|
+
r: (bigint >> 16) & 255,
|
|
52
|
+
g: (bigint >> 8) & 255,
|
|
53
|
+
b: bigint & 255,
|
|
54
|
+
alpha: 1,
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Handle 8-digit hex (with alpha)
|
|
59
|
+
if (normalized.length === 8) {
|
|
60
|
+
const bigint = parseInt(normalized, 16)
|
|
61
|
+
return {
|
|
62
|
+
space: 'rgb',
|
|
63
|
+
r: (bigint >> 24) & 255,
|
|
64
|
+
g: (bigint >> 16) & 255,
|
|
65
|
+
b: (bigint >> 8) & 255,
|
|
66
|
+
alpha: (bigint & 255) / 255,
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
throw new Error(`Invalid hex color: ${hex}`)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function parseRgb(rgb: string): RGBColor {
|
|
74
|
+
const match = rgb.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)/)
|
|
75
|
+
if (!match) {
|
|
76
|
+
throw new Error(`Invalid RGB color: ${rgb}`)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return {
|
|
80
|
+
space: 'rgb',
|
|
81
|
+
r: parseFloat(match[1]),
|
|
82
|
+
g: parseFloat(match[2]),
|
|
83
|
+
b: parseFloat(match[3]),
|
|
84
|
+
alpha: match[4] ? parseFloat(match[4]) : 1,
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function parseHsl(hsl: string): HSLColor {
|
|
89
|
+
const match = hsl.match(/hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%\s*(?:,\s*([\d.]+)\s*)?\)/)
|
|
90
|
+
if (!match) {
|
|
91
|
+
throw new Error(`Invalid HSL color: ${hsl}`)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return {
|
|
95
|
+
space: 'hsl',
|
|
96
|
+
h: parseFloat(match[1]),
|
|
97
|
+
s: parseFloat(match[2]),
|
|
98
|
+
l: parseFloat(match[3]),
|
|
99
|
+
alpha: match[4] ? parseFloat(match[4]) : 1,
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function parseHsb(hsb: string): HSBColor {
|
|
104
|
+
const match = hsb.match(/hsb[av]?\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?\s*(?:,\s*([\d.]+)\s*)?\)/)
|
|
105
|
+
if (!match) {
|
|
106
|
+
throw new Error(`Invalid HSB color: ${hsb}`)
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return {
|
|
110
|
+
space: 'hsb',
|
|
111
|
+
h: parseFloat(match[1]),
|
|
112
|
+
s: parseFloat(match[2]),
|
|
113
|
+
b: parseFloat(match[3]),
|
|
114
|
+
alpha: match[4] ? parseFloat(match[4]) : 1,
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Normalizes a value to a Color object.
|
|
120
|
+
* If already a Color, returns it. If a string, parses it.
|
|
121
|
+
*/
|
|
122
|
+
export function normalizeColor(value: string | Color): Color {
|
|
123
|
+
if (typeof value === 'string') {
|
|
124
|
+
return parseColor(value)
|
|
125
|
+
}
|
|
126
|
+
return value
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Checks if a string is a valid color.
|
|
131
|
+
*/
|
|
132
|
+
export function isValidColor(value: string): boolean {
|
|
133
|
+
try {
|
|
134
|
+
parseColor(value)
|
|
135
|
+
return true
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
return false
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export type ColorSpace = 'rgb' | 'hsl' | 'hsb'
|
|
2
|
+
|
|
3
|
+
export interface RGBColor {
|
|
4
|
+
space: 'rgb'
|
|
5
|
+
r: number
|
|
6
|
+
g: number
|
|
7
|
+
b: number
|
|
8
|
+
alpha: number
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface HSLColor {
|
|
12
|
+
space: 'hsl'
|
|
13
|
+
h: number
|
|
14
|
+
s: number
|
|
15
|
+
l: number
|
|
16
|
+
alpha: number
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface HSBColor {
|
|
20
|
+
space: 'hsb'
|
|
21
|
+
h: number
|
|
22
|
+
s: number
|
|
23
|
+
b: number
|
|
24
|
+
alpha: number
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export type Color = RGBColor | HSLColor | HSBColor
|
|
28
|
+
|
|
29
|
+
export type RGBChannel = 'red' | 'green' | 'blue' | 'alpha'
|
|
30
|
+
export type HSLChannel = 'hue' | 'saturation' | 'lightness' | 'alpha'
|
|
31
|
+
export type HSBChannel = 'hue' | 'saturation' | 'brightness' | 'alpha'
|
|
32
|
+
export type ColorChannel = RGBChannel | HSLChannel | HSBChannel
|
|
33
|
+
|
|
34
|
+
export interface ChannelRange {
|
|
35
|
+
min: number
|
|
36
|
+
max: number
|
|
37
|
+
step: number
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsb'
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a hex color string to RGB (Red, Green, Blue).
|
|
3
|
+
* @param hex Hex color string (e.g., "#ff5733" or "#f53")
|
|
4
|
+
* @returns An object containing red, green, and blue values (0-255).
|
|
5
|
+
*/
|
|
6
|
+
export function hexToRGB(hex: string): { r: number, g: number, b: number } {
|
|
7
|
+
hex = hex.replace(/^#/, '')
|
|
8
|
+
|
|
9
|
+
// Validate hex format (3 or 6 hex digits)
|
|
10
|
+
if (!/^[0-9A-F]{6}$/i.test(hex) && !/^[0-9A-F]{3}$/i.test(hex)) {
|
|
11
|
+
throw new Error(`Invalid hex color: ${hex}. Expected format: #RGB or #RRGGBB`)
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// Handle shorthand hex (e.g., "#FFF" -> "#FFFFFF")
|
|
15
|
+
if (hex.length === 3) {
|
|
16
|
+
hex = hex.split('').map(c => c + c).join('')
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const bigint = parseInt(hex, 16)
|
|
20
|
+
const r = (bigint >> 16) & 255
|
|
21
|
+
const g = (bigint >> 8) & 255
|
|
22
|
+
const b = bigint & 255
|
|
23
|
+
return { r, g, b }
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Converts a hex color string to HSL (Hue, Saturation, Lightness).
|
|
28
|
+
* @param hex Hex color string (e.g., "#ff5733")
|
|
29
|
+
* @returns An object containing hue (0-360), saturation (0-100), and lightness (0-100) values.
|
|
30
|
+
*/
|
|
31
|
+
export function hexToHSL(hex: string): { h: number, s: number, l: number } {
|
|
32
|
+
let { r, g, b } = hexToRGB(hex)
|
|
33
|
+
|
|
34
|
+
r /= 255
|
|
35
|
+
g /= 255
|
|
36
|
+
b /= 255
|
|
37
|
+
|
|
38
|
+
const max = Math.max(r, g, b)
|
|
39
|
+
const min = Math.min(r, g, b)
|
|
40
|
+
let h: number
|
|
41
|
+
let s: number
|
|
42
|
+
let l: number = (max + min) / 2
|
|
43
|
+
|
|
44
|
+
if (max === min) {
|
|
45
|
+
h = s = 0 // achromatic
|
|
46
|
+
l *= 100 // Scale l to 0-100 for consistency with chromatic case
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
const d = max - min
|
|
50
|
+
s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
|
|
51
|
+
if (max === r) {
|
|
52
|
+
h = (g - b) / d + (g < b ? 6 : 0)
|
|
53
|
+
}
|
|
54
|
+
else if (max === g) {
|
|
55
|
+
h = (b - r) / d + 2
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
h = (r - g) / d + 4
|
|
59
|
+
}
|
|
60
|
+
h /= 6
|
|
61
|
+
h *= 360
|
|
62
|
+
s *= 100
|
|
63
|
+
l *= 100
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return { h, s, l }
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Converts a hex color string to a human-readable color name.
|
|
71
|
+
* @param hex Hex color string (e.g., "#ff5733")
|
|
72
|
+
* @returns A human-readable color name based on the hue, saturation, and lightness.
|
|
73
|
+
*/
|
|
74
|
+
export function getColorName(hex: string) {
|
|
75
|
+
const { h, s, l } = hexToHSL(hex)
|
|
76
|
+
|
|
77
|
+
// Handle achromatic colors (low saturation)
|
|
78
|
+
// Using 0-100 scale for all comparisons
|
|
79
|
+
if (s < 10) {
|
|
80
|
+
if (l < 10)
|
|
81
|
+
return 'black'
|
|
82
|
+
if (l > 95)
|
|
83
|
+
return 'white'
|
|
84
|
+
if (l < 20)
|
|
85
|
+
return 'very dark gray'
|
|
86
|
+
if (l < 35)
|
|
87
|
+
return 'dark gray'
|
|
88
|
+
if (l < 65)
|
|
89
|
+
return 'gray'
|
|
90
|
+
if (l < 80)
|
|
91
|
+
return 'light gray'
|
|
92
|
+
return 'very light gray'
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Determine base color by hue
|
|
96
|
+
let baseName
|
|
97
|
+
if (h < 15 || h >= 345)
|
|
98
|
+
baseName = 'red'
|
|
99
|
+
else if (h < 45)
|
|
100
|
+
baseName = 'orange'
|
|
101
|
+
else if (h < 75)
|
|
102
|
+
baseName = 'yellow'
|
|
103
|
+
else if (h < 105)
|
|
104
|
+
baseName = 'yellow-green'
|
|
105
|
+
else if (h < 135)
|
|
106
|
+
baseName = 'green'
|
|
107
|
+
else if (h < 165)
|
|
108
|
+
baseName = 'green-cyan'
|
|
109
|
+
else if (h < 195)
|
|
110
|
+
baseName = 'cyan'
|
|
111
|
+
else if (h < 225)
|
|
112
|
+
baseName = 'blue'
|
|
113
|
+
else if (h < 255)
|
|
114
|
+
baseName = 'blue-violet'
|
|
115
|
+
else if (h < 285)
|
|
116
|
+
baseName = 'violet'
|
|
117
|
+
else if (h < 315)
|
|
118
|
+
baseName = 'magenta'
|
|
119
|
+
else baseName = 'red-magenta'
|
|
120
|
+
|
|
121
|
+
// Add descriptors based on saturation and lightness
|
|
122
|
+
// Using 0-100 scale for all comparisons
|
|
123
|
+
const descriptors = []
|
|
124
|
+
if (s > 80)
|
|
125
|
+
descriptors.push('vibrant')
|
|
126
|
+
else if (s < 30)
|
|
127
|
+
descriptors.push('muted')
|
|
128
|
+
|
|
129
|
+
if (l > 80)
|
|
130
|
+
descriptors.push('light')
|
|
131
|
+
else if (l < 30)
|
|
132
|
+
descriptors.push('dark')
|
|
133
|
+
|
|
134
|
+
return descriptors.length > 0
|
|
135
|
+
? `${descriptors.join(' ')} ${baseName}`
|
|
136
|
+
: baseName
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
export function getColorContrast(hex: string): 'light' | 'dark' {
|
|
140
|
+
const { r, g, b } = hexToRGB(hex)
|
|
141
|
+
const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255
|
|
142
|
+
return luminance > 0.5 ? 'dark' : 'light'
|
|
143
|
+
}
|
package/src/shared/date/types.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type { DateValue } from '@internationalized/date'
|
|
6
6
|
|
|
7
7
|
export type { DateValue }
|
|
8
|
+
import type { TimeValue } from './comparators'
|
|
8
9
|
import type { DATE_SEGMENT_PARTS, EDITABLE_SEGMENT_PARTS, NON_EDITABLE_SEGMENT_PARTS, TIME_SEGMENT_PARTS } from './parts'
|
|
9
10
|
|
|
10
11
|
// Days of the week, starting with Sunday
|
|
@@ -28,6 +29,11 @@ export type DateRange = {
|
|
|
28
29
|
end: DateValue | undefined
|
|
29
30
|
}
|
|
30
31
|
|
|
32
|
+
export type TimeRange = {
|
|
33
|
+
start: TimeValue | undefined
|
|
34
|
+
end: TimeValue | undefined
|
|
35
|
+
}
|
|
36
|
+
|
|
31
37
|
export type HourCycle = 12 | 24 | undefined
|
|
32
38
|
|
|
33
39
|
export type DateSegmentPart = (typeof DATE_SEGMENT_PARTS)[number]
|
|
@@ -371,11 +371,11 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
371
371
|
}
|
|
372
372
|
|
|
373
373
|
if (prev === null) {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
374
|
+
/**
|
|
375
|
+
* If the user types a 0 as the first number, we want
|
|
376
|
+
* to keep track of that so that when they type the next
|
|
377
|
+
* number, we can move to the next segment.
|
|
378
|
+
*/
|
|
379
379
|
|
|
380
380
|
if (num === 0) {
|
|
381
381
|
props.lastKeyZero.value = true
|
|
@@ -389,7 +389,7 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
389
389
|
*/
|
|
390
390
|
|
|
391
391
|
if (props.lastKeyZero.value || num > maxStart) {
|
|
392
|
-
|
|
392
|
+
// move to next
|
|
393
393
|
moveToNext = true
|
|
394
394
|
}
|
|
395
395
|
props.lastKeyZero.value = false
|
|
@@ -417,13 +417,13 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
417
417
|
*/
|
|
418
418
|
|
|
419
419
|
if (digits === 2 || total > max) {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
420
|
+
/**
|
|
421
|
+
* As we're doing elsewhere, we're checking if the number is greater
|
|
422
|
+
* than the max start digit (0-3 in most months), and if so, we're
|
|
423
|
+
* going to move to the next segment.
|
|
424
|
+
*/
|
|
425
425
|
if (num > maxStart || total > max) {
|
|
426
|
-
|
|
426
|
+
// move to next
|
|
427
427
|
moveToNext = true
|
|
428
428
|
}
|
|
429
429
|
return { value: num, moveToNext }
|
|
@@ -449,11 +449,11 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
449
449
|
}
|
|
450
450
|
|
|
451
451
|
if (prev === null) {
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
452
|
+
/**
|
|
453
|
+
* If the user types a 0 as the first number, we want
|
|
454
|
+
* to keep track of that so that when they type the next
|
|
455
|
+
* number, we can move to the next segment.
|
|
456
|
+
*/
|
|
457
457
|
|
|
458
458
|
if (num === 0) {
|
|
459
459
|
props.lastKeyZero.value = true
|
|
@@ -467,7 +467,7 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
467
467
|
*/
|
|
468
468
|
|
|
469
469
|
if (props.lastKeyZero.value || num > maxStart) {
|
|
470
|
-
|
|
470
|
+
// move to next
|
|
471
471
|
moveToNext = true
|
|
472
472
|
}
|
|
473
473
|
props.lastKeyZero.value = false
|
|
@@ -496,13 +496,13 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
496
496
|
*/
|
|
497
497
|
|
|
498
498
|
if (digits === 2 || total > max) {
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
499
|
+
/**
|
|
500
|
+
* As we're doing elsewhere, we're checking if the number is greater
|
|
501
|
+
* than the max start digit (0-3 in most months), and if so, we're
|
|
502
|
+
* going to move to the next segment.
|
|
503
|
+
*/
|
|
504
504
|
if (num > maxStart) {
|
|
505
|
-
|
|
505
|
+
// move to next
|
|
506
506
|
moveToNext = true
|
|
507
507
|
}
|
|
508
508
|
return { value: num, moveToNext }
|
|
@@ -528,11 +528,11 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
528
528
|
}
|
|
529
529
|
|
|
530
530
|
if (prev === null) {
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
531
|
+
/**
|
|
532
|
+
* If the user types a 0 as the first number, we want
|
|
533
|
+
* to keep track of that so that when they type the next
|
|
534
|
+
* number, we can move to the next segment.
|
|
535
|
+
*/
|
|
536
536
|
|
|
537
537
|
if (num === 0) {
|
|
538
538
|
props.lastKeyZero.value = true
|
|
@@ -546,7 +546,7 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
546
546
|
*/
|
|
547
547
|
|
|
548
548
|
if (props.lastKeyZero.value || num > maxStart) {
|
|
549
|
-
|
|
549
|
+
// move to next
|
|
550
550
|
moveToNext = true
|
|
551
551
|
}
|
|
552
552
|
props.lastKeyZero.value = false
|
|
@@ -575,13 +575,13 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
575
575
|
*/
|
|
576
576
|
|
|
577
577
|
if (digits === 2 || total > max) {
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
578
|
+
/**
|
|
579
|
+
* As we're doing elsewhere, we're checking if the number is greater
|
|
580
|
+
* than the max start digit (0-3 in most months), and if so, we're
|
|
581
|
+
* going to move to the next segment.
|
|
582
|
+
*/
|
|
583
583
|
if (num > maxStart) {
|
|
584
|
-
|
|
584
|
+
// move to next
|
|
585
585
|
moveToNext = true
|
|
586
586
|
}
|
|
587
587
|
return { value: num, moveToNext }
|
|
@@ -874,8 +874,6 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
874
874
|
function handleSegmentKeydown(e: KeyboardEvent) {
|
|
875
875
|
const disabled = props.disabled.value
|
|
876
876
|
const readonly = props.readonly.value
|
|
877
|
-
if (e.key !== kbd.TAB)
|
|
878
|
-
e.preventDefault()
|
|
879
877
|
|
|
880
878
|
if (disabled || readonly)
|
|
881
879
|
return
|
|
@@ -887,7 +885,7 @@ export function useDateField(props: UseDateFieldProps) {
|
|
|
887
885
|
minute: handleMinuteSegmentKeydown,
|
|
888
886
|
second: handleSecondSegmentKeydown,
|
|
889
887
|
dayPeriod: handleDayPeriodSegmentKeydown,
|
|
890
|
-
timeZoneName: () => {},
|
|
888
|
+
timeZoneName: () => { },
|
|
891
889
|
} as const
|
|
892
890
|
|
|
893
891
|
segmentKeydownHandlers[props.part as keyof typeof segmentKeydownHandlers](e)
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function isCut(event: KeyboardEvent) {
|
|
2
|
+
return (event.key === 'x' || event.key === 'X') && (event.ctrlKey || event.metaKey)
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export function isCopy(event: KeyboardEvent) {
|
|
6
|
+
return (event.key === 'c' || event.key === 'C') && (event.ctrlKey || event.metaKey)
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function isPaste(event: KeyboardEvent) {
|
|
10
|
+
return (event.key === 'v' || event.key === 'V') && (event.ctrlKey || event.metaKey)
|
|
11
|
+
}
|
|
@@ -169,13 +169,19 @@ function findNextFocusableElement(
|
|
|
169
169
|
elements: HTMLElement[],
|
|
170
170
|
currentElement: HTMLElement,
|
|
171
171
|
options: FindNextFocusableElementOptions,
|
|
172
|
-
iterations = elements.length,
|
|
172
|
+
iterations = !elements.includes(currentElement) ? elements.length + 1 : elements.length,
|
|
173
173
|
): HTMLElement | null {
|
|
174
174
|
if (--iterations === 0)
|
|
175
175
|
return null
|
|
176
176
|
|
|
177
177
|
const index = elements.indexOf(currentElement)
|
|
178
|
-
|
|
178
|
+
let newIndex: number
|
|
179
|
+
if (index === -1) {
|
|
180
|
+
newIndex = options.goForward ? 0 : elements.length - 1
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
newIndex = options.goForward ? index + 1 : index - 1
|
|
184
|
+
}
|
|
179
185
|
|
|
180
186
|
if (!options.loop && (newIndex < 0 || newIndex >= elements.length))
|
|
181
187
|
return null
|
|
@@ -1,18 +1,33 @@
|
|
|
1
|
+
import type { MaybeElement } from '@vueuse/core'
|
|
1
2
|
import type { ComponentPublicInstance } from 'vue'
|
|
2
3
|
// reference: https://github.com/vuejs/rfcs/issues/258#issuecomment-1068697672
|
|
3
4
|
import { unrefElement } from '@vueuse/core'
|
|
4
|
-
import { computed, getCurrentInstance, ref } from 'vue'
|
|
5
|
+
import { computed, getCurrentInstance, onUpdated, ref, triggerRef } from 'vue'
|
|
5
6
|
|
|
6
7
|
export function useForwardExpose<T extends ComponentPublicInstance>() {
|
|
7
8
|
const instance = getCurrentInstance()!
|
|
8
9
|
|
|
9
10
|
const currentRef = ref<Element | T | null>()
|
|
10
|
-
const currentElement = computed
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
const currentElement = computed(() => resolveCurrentElement())
|
|
12
|
+
|
|
13
|
+
// When using as-child with conditional rendering (v-if/v-else), the underlying
|
|
14
|
+
// DOM element ($el) changes but currentRef (component instance) stays the same.
|
|
15
|
+
// Since $el is not reactive, we sync currentElement after DOM updates.
|
|
16
|
+
onUpdated(() => {
|
|
17
|
+
if (currentElement.value !== resolveCurrentElement()) {
|
|
18
|
+
triggerRef(currentRef)
|
|
19
|
+
}
|
|
14
20
|
})
|
|
15
21
|
|
|
22
|
+
function resolveCurrentElement() {
|
|
23
|
+
// $el could be text/comment for non-single root normal or text root, thus we retrieve the nextElementSibling
|
|
24
|
+
return currentRef.value
|
|
25
|
+
&& '$el' in currentRef.value
|
|
26
|
+
&& ['#text', '#comment'].includes(currentRef.value.$el.nodeName)
|
|
27
|
+
? currentRef.value.$el.nextElementSibling as HTMLElement
|
|
28
|
+
: unrefElement(currentRef as unknown as MaybeElement) as HTMLElement
|
|
29
|
+
}
|
|
30
|
+
|
|
16
31
|
// Do give us credit if you reference our code :D
|
|
17
32
|
// localExpose should only be assigned once else will create infinite loop
|
|
18
33
|
const localExpose: Record<string, any> | null = Object.assign({}, instance.exposed)
|
package/src/shared/useId.ts
CHANGED
|
@@ -16,15 +16,14 @@ export function useId(deterministicId?: string | null | undefined, prefix = 'rek
|
|
|
16
16
|
if (deterministicId)
|
|
17
17
|
return deterministicId
|
|
18
18
|
|
|
19
|
+
let id: string
|
|
19
20
|
if ('useId' in vue) {
|
|
20
|
-
|
|
21
|
+
id = vue.useId?.()
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (configProviderContext.useId) {
|
|
26
|
-
return `${prefix}-${configProviderContext.useId()}`
|
|
23
|
+
else {
|
|
24
|
+
const configProviderContext = injectConfigProviderContext({ useId: undefined })
|
|
25
|
+
id = configProviderContext.useId?.() ?? `${++count}`
|
|
27
26
|
}
|
|
28
27
|
|
|
29
|
-
return `${prefix}-${
|
|
28
|
+
return prefix ? `${prefix}-${id}` : id
|
|
30
29
|
}
|