reka-ui 2.8.2 → 2.9.1
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/CalendarGrid.cjs +3 -3
- package/dist/Calendar/CalendarGrid.cjs.map +1 -1
- package/dist/Calendar/CalendarGrid.js +4 -4
- package/dist/Calendar/CalendarGrid.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/ComboboxInput.cjs +10 -1
- package/dist/Combobox/ComboboxInput.cjs.map +1 -1
- package/dist/Combobox/ComboboxInput.js +10 -1
- package/dist/Combobox/ComboboxInput.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 +1 -0
- package/dist/DismissableLayer/utils.cjs.map +1 -1
- package/dist/DismissableLayer/utils.js +1 -0
- 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/MenuGroup.cjs +13 -2
- package/dist/Menu/MenuGroup.cjs.map +1 -1
- package/dist/Menu/MenuGroup.js +8 -3
- package/dist/Menu/MenuGroup.js.map +1 -1
- package/dist/Menu/MenuItemImpl.cjs +11 -5
- package/dist/Menu/MenuItemImpl.cjs.map +1 -1
- package/dist/Menu/MenuItemImpl.js +12 -6
- package/dist/Menu/MenuItemImpl.js.map +1 -1
- package/dist/Menu/MenuLabel.cjs +4 -2
- package/dist/Menu/MenuLabel.cjs.map +1 -1
- package/dist/Menu/MenuLabel.js +5 -3
- package/dist/Menu/MenuLabel.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/RangeCalendarGrid.cjs +3 -3
- package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.js +4 -4
- 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 +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 +156 -36
- package/dist/Splitter/SplitterGroup.cjs.map +1 -1
- package/dist/Splitter/SplitterGroup.js +156 -36
- 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/FocusProxy.cjs +0 -1
- package/dist/Toast/FocusProxy.cjs.map +1 -1
- package/dist/Toast/FocusProxy.js +0 -1
- package/dist/Toast/FocusProxy.js.map +1 -1
- 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/Toast/ToastRootImpl.cjs +1 -5
- package/dist/Toast/ToastRootImpl.cjs.map +1 -1
- package/dist/Toast/ToastRootImpl.js +1 -5
- package/dist/Toast/ToastRootImpl.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 +1 -1
- package/dist/date/useDateField.cjs.map +1 -1
- package/dist/date/useDateField.js +1 -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 +217 -47
- package/dist/index.d.cts +3 -8834
- package/dist/index.d.ts +3 -8834
- package/dist/index.js +117 -48
- 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 +11062 -0
- package/dist/index3.d.cts.map +1 -0
- package/dist/index3.d.ts +11062 -0
- package/dist/index3.d.ts.map +1 -0
- package/dist/internal.cjs +81 -0
- package/dist/internal.d.cts +20 -0
- package/dist/internal.d.cts.map +1 -0
- package/dist/internal.d.ts +20 -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/useBodyScrollLock.cjs +1 -0
- package/dist/shared/useBodyScrollLock.cjs.map +1 -1
- package/dist/shared/useBodyScrollLock.js +1 -0
- package/dist/shared/useBodyScrollLock.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/useHideOthers.cjs +1 -1
- package/dist/shared/useHideOthers.cjs.map +1 -1
- package/dist/shared/useHideOthers.js +1 -1
- package/dist/shared/useHideOthers.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/callPanelCallbacks.cjs +10 -7
- package/dist/utils/callPanelCallbacks.cjs.map +1 -1
- package/dist/utils/callPanelCallbacks.js +10 -7
- package/dist/utils/callPanelCallbacks.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 +7 -3
- 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/CalendarGrid.vue +6 -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/Combobox/ComboboxInput.vue +19 -0
- package/src/DateField/DateFieldRoot.vue +1 -1
- package/src/DateRangeField/DateRangeFieldRoot.vue +11 -4
- package/src/DismissableLayer/utils.ts +5 -3
- package/src/DropdownMenu/DropdownMenuFilter.vue +119 -0
- package/src/DropdownMenu/index.ts +5 -0
- package/src/Menu/MenuContentImpl.vue +68 -2
- package/src/Menu/MenuGroup.vue +12 -0
- package/src/Menu/MenuItemImpl.vue +15 -10
- package/src/Menu/MenuLabel.vue +7 -1
- 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 +37 -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 +37 -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/RangeCalendarGrid.vue +6 -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 +243 -54
- package/src/Splitter/SplitterPanel.vue +11 -6
- package/src/Splitter/utils/callPanelCallbacks.ts +16 -8
- 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/FocusProxy.vue +0 -1
- package/src/Toast/ToastAnnounce.vue +4 -1
- package/src/Toast/ToastRootImpl.vue +0 -4
- 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 +37 -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 +37 -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 +39 -40
- package/src/shared/macro.ts +11 -0
- package/src/shared/useArrowNavigation.ts +8 -2
- package/src/shared/useBodyScrollLock.ts +2 -0
- package/src/shared/useForwardExpose.ts +20 -5
- package/src/shared/useHideOthers.ts +2 -1
- package/src/shared/useId.ts +6 -7
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.ts.map +0 -1
|
@@ -26,18 +26,24 @@ defineSlots<RangeCalendarPrevSlot>()
|
|
|
26
26
|
const disabled = computed(() => rootContext.disabled.value || rootContext.isPrevButtonDisabled(props.prevPage))
|
|
27
27
|
|
|
28
28
|
const rootContext = injectRangeCalendarRootContext()
|
|
29
|
+
|
|
30
|
+
function handleClick() {
|
|
31
|
+
if (disabled.value)
|
|
32
|
+
return
|
|
33
|
+
rootContext.prevPage(props.prevPage)
|
|
34
|
+
}
|
|
29
35
|
</script>
|
|
30
36
|
|
|
31
37
|
<template>
|
|
32
38
|
<Primitive
|
|
33
|
-
:as="as"
|
|
34
|
-
:as-child="asChild"
|
|
39
|
+
:as="props.as"
|
|
40
|
+
:as-child="props.asChild"
|
|
35
41
|
aria-label="Previous 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
|
Prev page
|
|
@@ -80,7 +80,7 @@ export interface RangeCalendarRootProps extends PrimitiveProps {
|
|
|
80
80
|
defaultPlaceholder?: DateValue
|
|
81
81
|
/** The default value for the calendar */
|
|
82
82
|
defaultValue?: DateRange
|
|
83
|
-
/** The controlled
|
|
83
|
+
/** The controlled selected date range of the calendar. Can be bound as `v-model`. */
|
|
84
84
|
modelValue?: DateRange | null
|
|
85
85
|
/** The placeholder date, which is used to determine what month to display when no date is selected. This updates as the user navigates the calendar and can be used to programmatically control the calendar view */
|
|
86
86
|
placeholder?: DateValue
|
|
@@ -379,7 +379,7 @@ watch([startValue, endValue], ([_startValue, _endValue]) => {
|
|
|
379
379
|
})
|
|
380
380
|
|
|
381
381
|
const kbd = useKbd()
|
|
382
|
-
useEventListener('keydown', (ev) => {
|
|
382
|
+
useEventListener(parentElement, 'keydown', (ev) => {
|
|
383
383
|
if (ev.key === kbd.ESCAPE && isEditing.value) {
|
|
384
384
|
// Abort start and end selection
|
|
385
385
|
startValue.value = validModelValue.value.start?.copy()
|
|
@@ -124,15 +124,12 @@ export function useRangeCalendarState(props: UseRangeCalendarProps) {
|
|
|
124
124
|
if (props.maximumDays?.value && !props.end.value) {
|
|
125
125
|
const maximumDays = props.maximumDays.value
|
|
126
126
|
const anchor = props.start.value
|
|
127
|
+
const focused = props.focusedValue.value
|
|
127
128
|
|
|
128
|
-
if (
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
const minStart = anchor.subtract({ days: maximumDays - 1 })
|
|
134
|
-
return { start: minStart, end: anchor }
|
|
135
|
-
}
|
|
129
|
+
if (!isBefore(focused, anchor))
|
|
130
|
+
return { start: anchor, end: anchor.add({ days: maximumDays - 1 }) }
|
|
131
|
+
|
|
132
|
+
return { start: anchor.subtract({ days: maximumDays - 1 }), end: anchor }
|
|
136
133
|
}
|
|
137
134
|
|
|
138
135
|
const isValid = areAllDaysBetweenValid(start, end, props.allowNonContiguousRanges.value ? () => false : props.isDateUnavailable, rangeIsDateDisabled, props.isDateHighlightable)
|
|
@@ -79,6 +79,7 @@ import { Primitive } from '@/Primitive'
|
|
|
79
79
|
import { assert } from './utils/assert'
|
|
80
80
|
import { calculateDeltaPercentage, calculateUnsafeDefaultLayout } from './utils/calculate'
|
|
81
81
|
import { callPanelCallbacks } from './utils/callPanelCallbacks'
|
|
82
|
+
import { fuzzyCompareNumbers } from './utils/compare'
|
|
82
83
|
import debounce from './utils/debounce'
|
|
83
84
|
import { getResizeHandleElement } from './utils/dom'
|
|
84
85
|
import { getResizeEventCursorPosition, isKeyDown, isMouseEvent, isTouchEvent } from './utils/events'
|
|
@@ -92,6 +93,7 @@ import {
|
|
|
92
93
|
reportConstraintsViolation,
|
|
93
94
|
} from './utils/registry'
|
|
94
95
|
import { computePanelFlexBoxStyle } from './utils/style'
|
|
96
|
+
import { convertPanelConstraintsToPercent, hasPixelSizedPanel, recalculateLayoutForPixelPanels } from './utils/units'
|
|
95
97
|
import { validatePanelGroupLayout } from './utils/validation'
|
|
96
98
|
|
|
97
99
|
const props = withDefaults(defineProps<SplitterGroupProps>(), {
|
|
@@ -118,6 +120,7 @@ const dir = useDirection()
|
|
|
118
120
|
const { forwardRef, currentElement: panelGroupElementRef } = useForwardExpose()
|
|
119
121
|
|
|
120
122
|
const dragState = ref<DragState | null>(null)
|
|
123
|
+
const groupSizeInPixels = ref<number | null>(null)
|
|
121
124
|
const layout = ref<number[]>([])
|
|
122
125
|
const panelIdToLastNotifiedSizeMapRef = ref<Record<string, number>>({})
|
|
123
126
|
const panelSizeBeforeCollapseRef = ref<Map<string, number>>(new Map())
|
|
@@ -149,8 +152,61 @@ const eagerValuesRef = ref<{
|
|
|
149
152
|
panelDataArrayChanged: false,
|
|
150
153
|
})
|
|
151
154
|
|
|
155
|
+
function getGroupSizeInPixels(): number | null {
|
|
156
|
+
if (groupSizeInPixels.value != null)
|
|
157
|
+
return groupSizeInPixels.value
|
|
158
|
+
|
|
159
|
+
const element = panelGroupElementRef.value
|
|
160
|
+
if (element && element instanceof HTMLElement) {
|
|
161
|
+
const rect = element.getBoundingClientRect()
|
|
162
|
+
const size = direction.value === 'horizontal' ? rect.width : rect.height
|
|
163
|
+
|
|
164
|
+
if (!Number.isNaN(size)) {
|
|
165
|
+
groupSizeInPixels.value = size
|
|
166
|
+
return size
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return null
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function getPanelConstraintsInPercent(groupSizeOverride?: number | null) {
|
|
174
|
+
const groupSize = groupSizeOverride ?? getGroupSizeInPixels()
|
|
175
|
+
|
|
176
|
+
return convertPanelConstraintsToPercent({
|
|
177
|
+
panelDataArray: eagerValuesRef.value.panelDataArray,
|
|
178
|
+
groupSizeInPixels: groupSize,
|
|
179
|
+
})
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
function getPanelDataWithPercentConstraints(groupSizeOverride?: number | null) {
|
|
183
|
+
const percentConstraints = getPanelConstraintsInPercent(groupSizeOverride)
|
|
184
|
+
|
|
185
|
+
if (!percentConstraints)
|
|
186
|
+
return null
|
|
187
|
+
|
|
188
|
+
return eagerValuesRef.value.panelDataArray.map((panelData, index) => ({
|
|
189
|
+
...panelData,
|
|
190
|
+
constraints: percentConstraints[index],
|
|
191
|
+
}))
|
|
192
|
+
}
|
|
193
|
+
|
|
152
194
|
const setLayout = (val: number[]) => layout.value = val
|
|
153
195
|
|
|
196
|
+
/** Convert internal layout (always in %) to native units for each panel */
|
|
197
|
+
function convertLayoutToNativeUnits(internalLayout: number[]): number[] {
|
|
198
|
+
const { panelDataArray } = eagerValuesRef.value
|
|
199
|
+
const groupSize = getGroupSizeInPixels()
|
|
200
|
+
|
|
201
|
+
return internalLayout.map((size, index) => {
|
|
202
|
+
const panelData = panelDataArray[index]
|
|
203
|
+
if (panelData && (panelData.constraints.sizeUnit ?? '%') === 'px' && groupSize != null) {
|
|
204
|
+
return (size / 100) * groupSize
|
|
205
|
+
}
|
|
206
|
+
return size
|
|
207
|
+
})
|
|
208
|
+
}
|
|
209
|
+
|
|
154
210
|
useWindowSplitterPanelGroupBehavior({
|
|
155
211
|
eagerValuesRef,
|
|
156
212
|
groupId,
|
|
@@ -158,6 +214,33 @@ useWindowSplitterPanelGroupBehavior({
|
|
|
158
214
|
panelDataArray: eagerValuesRef.value.panelDataArray,
|
|
159
215
|
setLayout,
|
|
160
216
|
panelGroupElement: panelGroupElementRef,
|
|
217
|
+
getPanelDataWithPercentConstraints,
|
|
218
|
+
})
|
|
219
|
+
|
|
220
|
+
watchEffect((onCleanup) => {
|
|
221
|
+
const element = panelGroupElementRef.value
|
|
222
|
+
if (!element)
|
|
223
|
+
return
|
|
224
|
+
|
|
225
|
+
if (typeof ResizeObserver !== 'function')
|
|
226
|
+
return
|
|
227
|
+
|
|
228
|
+
const resizeObserver = new ResizeObserver((entries) => {
|
|
229
|
+
const entry = entries[0]
|
|
230
|
+
if (!entry)
|
|
231
|
+
return
|
|
232
|
+
|
|
233
|
+
const { height, width } = entry.contentRect
|
|
234
|
+
const nextSize = direction.value === 'horizontal' ? width : height
|
|
235
|
+
|
|
236
|
+
if (!Number.isNaN(nextSize))
|
|
237
|
+
groupSizeInPixels.value = nextSize
|
|
238
|
+
})
|
|
239
|
+
|
|
240
|
+
if (element instanceof HTMLElement)
|
|
241
|
+
resizeObserver.observe(element)
|
|
242
|
+
|
|
243
|
+
onCleanup(() => resizeObserver.disconnect())
|
|
161
244
|
})
|
|
162
245
|
|
|
163
246
|
watchEffect(() => {
|
|
@@ -254,35 +337,86 @@ watch(() => eagerValuesRef.value.panelDataArrayChanged, () => {
|
|
|
254
337
|
}
|
|
255
338
|
|
|
256
339
|
if (unsafeLayout === null) {
|
|
340
|
+
const panelDataArrayWithPercentConstraints = getPanelDataWithPercentConstraints()
|
|
341
|
+
if (!panelDataArrayWithPercentConstraints)
|
|
342
|
+
return
|
|
343
|
+
|
|
257
344
|
unsafeLayout = calculateUnsafeDefaultLayout({
|
|
258
|
-
panelDataArray,
|
|
345
|
+
panelDataArray: panelDataArrayWithPercentConstraints,
|
|
259
346
|
})
|
|
260
347
|
}
|
|
261
348
|
|
|
349
|
+
const panelConstraints = getPanelConstraintsInPercent()
|
|
350
|
+
if (!panelConstraints)
|
|
351
|
+
return
|
|
352
|
+
|
|
262
353
|
// Validate even saved layouts in case something has changed since last render
|
|
263
354
|
// e.g. for pixel groups, this could be the size of the window
|
|
264
355
|
const nextLayout = validatePanelGroupLayout({
|
|
265
356
|
layout: unsafeLayout,
|
|
266
|
-
panelConstraints
|
|
267
|
-
panelData => panelData.constraints,
|
|
268
|
-
),
|
|
357
|
+
panelConstraints,
|
|
269
358
|
})
|
|
270
359
|
|
|
271
360
|
if (!areEqual(prevLayout, nextLayout)) {
|
|
272
361
|
setLayout(nextLayout)
|
|
273
362
|
|
|
274
363
|
eagerValuesRef.value.layout = nextLayout
|
|
275
|
-
emits('layout', nextLayout)
|
|
364
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
276
365
|
|
|
277
366
|
callPanelCallbacks(
|
|
278
367
|
panelDataArray,
|
|
279
368
|
nextLayout,
|
|
280
369
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
370
|
+
getGroupSizeInPixels(),
|
|
281
371
|
)
|
|
282
372
|
}
|
|
283
373
|
}
|
|
284
374
|
})
|
|
285
375
|
|
|
376
|
+
watch(groupSizeInPixels, (nextSize, prevSize) => {
|
|
377
|
+
if (prevSize == null || nextSize == null)
|
|
378
|
+
return
|
|
379
|
+
|
|
380
|
+
const { layout: prevLayout, panelDataArray } = eagerValuesRef.value
|
|
381
|
+
if (prevLayout.length === 0)
|
|
382
|
+
return
|
|
383
|
+
if (!hasPixelSizedPanel(panelDataArray))
|
|
384
|
+
return
|
|
385
|
+
|
|
386
|
+
const recalculatedLayout = recalculateLayoutForPixelPanels({
|
|
387
|
+
layout: prevLayout,
|
|
388
|
+
panelDataArray,
|
|
389
|
+
prevGroupSize: prevSize,
|
|
390
|
+
nextGroupSize: nextSize,
|
|
391
|
+
})
|
|
392
|
+
|
|
393
|
+
if (!recalculatedLayout)
|
|
394
|
+
return
|
|
395
|
+
|
|
396
|
+
const panelConstraints = getPanelConstraintsInPercent(nextSize)
|
|
397
|
+
if (!panelConstraints)
|
|
398
|
+
return
|
|
399
|
+
|
|
400
|
+
const nextLayout = validatePanelGroupLayout({
|
|
401
|
+
layout: recalculatedLayout,
|
|
402
|
+
panelConstraints,
|
|
403
|
+
})
|
|
404
|
+
|
|
405
|
+
if (!compareLayouts(prevLayout, nextLayout)) {
|
|
406
|
+
setLayout(nextLayout)
|
|
407
|
+
|
|
408
|
+
eagerValuesRef.value.layout = nextLayout
|
|
409
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
410
|
+
|
|
411
|
+
callPanelCallbacks(
|
|
412
|
+
panelDataArray,
|
|
413
|
+
nextLayout,
|
|
414
|
+
panelIdToLastNotifiedSizeMapRef.value,
|
|
415
|
+
getGroupSizeInPixels(),
|
|
416
|
+
)
|
|
417
|
+
}
|
|
418
|
+
})
|
|
419
|
+
|
|
286
420
|
function registerResizeHandle(dragHandleId: string) {
|
|
287
421
|
return function resizeHandler(event: ResizeEvent) {
|
|
288
422
|
event.preventDefault()
|
|
@@ -317,7 +451,9 @@ function registerResizeHandle(dragHandleId: string) {
|
|
|
317
451
|
if (dir.value === 'rtl' && isHorizontal)
|
|
318
452
|
delta = -delta
|
|
319
453
|
|
|
320
|
-
const panelConstraints =
|
|
454
|
+
const panelConstraints = getPanelConstraintsInPercent()
|
|
455
|
+
if (!panelConstraints)
|
|
456
|
+
return
|
|
321
457
|
|
|
322
458
|
const nextLayout = adjustLayoutByDelta({
|
|
323
459
|
delta,
|
|
@@ -364,12 +500,13 @@ function registerResizeHandle(dragHandleId: string) {
|
|
|
364
500
|
setLayout(nextLayout)
|
|
365
501
|
|
|
366
502
|
eagerValuesRef.value.layout = nextLayout
|
|
367
|
-
emits('layout', nextLayout)
|
|
503
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
368
504
|
|
|
369
505
|
callPanelCallbacks(
|
|
370
506
|
panelDataArray,
|
|
371
507
|
nextLayout,
|
|
372
508
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
509
|
+
getGroupSizeInPixels(),
|
|
373
510
|
)
|
|
374
511
|
}
|
|
375
512
|
}
|
|
@@ -378,20 +515,35 @@ function registerResizeHandle(dragHandleId: string) {
|
|
|
378
515
|
function resizePanel(panelData: PanelData, unsafePanelSize: number) {
|
|
379
516
|
const { layout: prevLayout, panelDataArray } = eagerValuesRef.value
|
|
380
517
|
|
|
381
|
-
const panelConstraintsArray =
|
|
518
|
+
const panelConstraintsArray = getPanelConstraintsInPercent()
|
|
519
|
+
if (!panelConstraintsArray)
|
|
520
|
+
return
|
|
521
|
+
|
|
522
|
+
const panelIndex = findPanelDataIndex(panelDataArray, panelData)
|
|
523
|
+
const panelUnit = panelData.constraints.sizeUnit ?? '%'
|
|
524
|
+
|
|
525
|
+
// Convert px to percent if needed for internal calculation
|
|
526
|
+
let sizeInPercent = unsafePanelSize
|
|
527
|
+
if (panelUnit === 'px') {
|
|
528
|
+
const groupSize = getGroupSizeInPixels()
|
|
529
|
+
if (groupSize != null) {
|
|
530
|
+
sizeInPercent = (unsafePanelSize / groupSize) * 100
|
|
531
|
+
}
|
|
532
|
+
}
|
|
382
533
|
|
|
383
534
|
const { panelSize, pivotIndices } = panelDataHelper(
|
|
384
535
|
panelDataArray,
|
|
385
536
|
panelData,
|
|
386
537
|
prevLayout,
|
|
538
|
+
panelConstraintsArray,
|
|
387
539
|
)
|
|
388
540
|
|
|
389
541
|
assert(panelSize != null)
|
|
390
542
|
|
|
391
|
-
const isLastPanel =
|
|
543
|
+
const isLastPanel = panelIndex === panelDataArray.length - 1
|
|
392
544
|
const delta = isLastPanel
|
|
393
|
-
? panelSize -
|
|
394
|
-
:
|
|
545
|
+
? panelSize - sizeInPercent
|
|
546
|
+
: sizeInPercent - panelSize
|
|
395
547
|
|
|
396
548
|
const nextLayout = adjustLayoutByDelta({
|
|
397
549
|
delta,
|
|
@@ -405,12 +557,13 @@ function resizePanel(panelData: PanelData, unsafePanelSize: number) {
|
|
|
405
557
|
setLayout(nextLayout)
|
|
406
558
|
|
|
407
559
|
eagerValuesRef.value.layout = nextLayout
|
|
408
|
-
emits('layout', nextLayout)
|
|
560
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
409
561
|
|
|
410
562
|
callPanelCallbacks(
|
|
411
563
|
panelDataArray,
|
|
412
564
|
nextLayout,
|
|
413
565
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
566
|
+
getGroupSizeInPixels(),
|
|
414
567
|
)
|
|
415
568
|
}
|
|
416
569
|
}
|
|
@@ -420,39 +573,29 @@ function reevaluatePanelConstraints(panelData: PanelData, prevConstraints: Panel
|
|
|
420
573
|
const index = findPanelDataIndex(panelDataArray, panelData)
|
|
421
574
|
panelDataArray[index] = panelData
|
|
422
575
|
eagerValuesRef.value.panelDataArrayChanged = true
|
|
423
|
-
const {
|
|
424
|
-
collapsedSize: prevCollapsedSize = 0,
|
|
425
|
-
collapsible: prevCollapsible,
|
|
426
|
-
} = prevConstraints
|
|
427
576
|
|
|
428
|
-
const
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
maxSize: nextMaxSize = 100,
|
|
432
|
-
minSize: nextMinSize = 0,
|
|
433
|
-
} = panelData.constraints
|
|
577
|
+
const panelConstraintsArray = getPanelConstraintsInPercent()
|
|
578
|
+
if (!panelConstraintsArray)
|
|
579
|
+
return
|
|
434
580
|
|
|
581
|
+
const nextConstraints = panelConstraintsArray[index]
|
|
435
582
|
const { panelSize: prevPanelSize } = panelDataHelper(
|
|
436
583
|
panelDataArray,
|
|
437
584
|
panelData,
|
|
438
585
|
layout,
|
|
586
|
+
panelConstraintsArray,
|
|
439
587
|
)
|
|
440
|
-
|
|
441
|
-
|
|
588
|
+
|
|
589
|
+
if (prevPanelSize === null)
|
|
442
590
|
return
|
|
443
|
-
}
|
|
444
591
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
) {
|
|
450
|
-
if (
|
|
592
|
+
const nextCollapsedSize = nextConstraints?.collapsedSize ?? 0
|
|
593
|
+
const nextMaxSize = nextConstraints?.maxSize ?? 100
|
|
594
|
+
const nextMinSize = nextConstraints?.minSize ?? 0
|
|
595
|
+
|
|
596
|
+
if (nextConstraints?.collapsible && isPanelCollapsed(panelData)) {
|
|
597
|
+
if (prevPanelSize !== nextCollapsedSize)
|
|
451
598
|
resizePanel(panelData, nextCollapsedSize)
|
|
452
|
-
}
|
|
453
|
-
else {
|
|
454
|
-
// Stay collapsed
|
|
455
|
-
}
|
|
456
599
|
}
|
|
457
600
|
else if (prevPanelSize < nextMinSize) {
|
|
458
601
|
resizePanel(panelData, nextMinSize)
|
|
@@ -511,15 +654,15 @@ function collapsePanel(panelData: PanelData) {
|
|
|
511
654
|
const { layout: prevLayout, panelDataArray } = eagerValuesRef.value
|
|
512
655
|
|
|
513
656
|
if (panelData.constraints.collapsible) {
|
|
514
|
-
const panelConstraintsArray =
|
|
515
|
-
|
|
516
|
-
|
|
657
|
+
const panelConstraintsArray = getPanelConstraintsInPercent()
|
|
658
|
+
if (!panelConstraintsArray)
|
|
659
|
+
return
|
|
517
660
|
|
|
518
661
|
const {
|
|
519
662
|
collapsedSize = 0,
|
|
520
663
|
panelSize,
|
|
521
664
|
pivotIndices,
|
|
522
|
-
} = panelDataHelper(panelDataArray, panelData, prevLayout)
|
|
665
|
+
} = panelDataHelper(panelDataArray, panelData, prevLayout, panelConstraintsArray)
|
|
523
666
|
|
|
524
667
|
assert(
|
|
525
668
|
panelSize != null,
|
|
@@ -529,7 +672,13 @@ function collapsePanel(panelData: PanelData) {
|
|
|
529
672
|
if (panelSize !== collapsedSize) {
|
|
530
673
|
// Store size before collapse;
|
|
531
674
|
// This is the size that gets restored if the expand() API is used.
|
|
532
|
-
|
|
675
|
+
const sizeUnit = panelData.constraints.sizeUnit ?? '%'
|
|
676
|
+
const groupSize = groupSizeInPixels.value ?? getGroupSizeInPixels()
|
|
677
|
+
const sizeBeforeCollapse = sizeUnit === 'px' && groupSize
|
|
678
|
+
? (panelSize / 100) * groupSize
|
|
679
|
+
: panelSize
|
|
680
|
+
|
|
681
|
+
panelSizeBeforeCollapseRef.value.set(panelData.id, sizeBeforeCollapse)
|
|
533
682
|
|
|
534
683
|
const isLastPanel
|
|
535
684
|
= findPanelDataIndex(panelDataArray, panelData)
|
|
@@ -551,12 +700,13 @@ function collapsePanel(panelData: PanelData) {
|
|
|
551
700
|
|
|
552
701
|
eagerValuesRef.value.layout = nextLayout
|
|
553
702
|
|
|
554
|
-
emits('layout', nextLayout)
|
|
703
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
555
704
|
|
|
556
705
|
callPanelCallbacks(
|
|
557
706
|
panelDataArray,
|
|
558
707
|
nextLayout,
|
|
559
708
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
709
|
+
getGroupSizeInPixels(),
|
|
560
710
|
)
|
|
561
711
|
}
|
|
562
712
|
}
|
|
@@ -567,26 +717,35 @@ function expandPanel(panelData: PanelData) {
|
|
|
567
717
|
const { layout: prevLayout, panelDataArray } = eagerValuesRef.value
|
|
568
718
|
|
|
569
719
|
if (panelData.constraints.collapsible) {
|
|
570
|
-
const panelConstraintsArray =
|
|
571
|
-
|
|
572
|
-
|
|
720
|
+
const panelConstraintsArray = getPanelConstraintsInPercent()
|
|
721
|
+
if (!panelConstraintsArray)
|
|
722
|
+
return
|
|
573
723
|
|
|
574
724
|
const {
|
|
575
725
|
collapsedSize = 0,
|
|
576
|
-
panelSize,
|
|
726
|
+
panelSize = 0,
|
|
577
727
|
minSize = 0,
|
|
578
728
|
pivotIndices,
|
|
579
|
-
} = panelDataHelper(panelDataArray, panelData, prevLayout)
|
|
729
|
+
} = panelDataHelper(panelDataArray, panelData, prevLayout, panelConstraintsArray)
|
|
580
730
|
|
|
581
|
-
if (panelSize
|
|
731
|
+
if (fuzzyCompareNumbers(panelSize, collapsedSize) <= 0) {
|
|
582
732
|
// Restore this panel to the size it was before it was collapsed, if possible.
|
|
583
733
|
const prevPanelSize = panelSizeBeforeCollapseRef.value.get(
|
|
584
734
|
panelData.id,
|
|
585
735
|
)
|
|
736
|
+
const sizeUnit = panelData.constraints.sizeUnit ?? '%'
|
|
737
|
+
const groupSize = groupSizeInPixels.value ?? getGroupSizeInPixels()
|
|
738
|
+
|
|
739
|
+
const restoredSize
|
|
740
|
+
= sizeUnit === 'px' && groupSize
|
|
741
|
+
? prevPanelSize != null
|
|
742
|
+
? (prevPanelSize / groupSize) * 100
|
|
743
|
+
: null
|
|
744
|
+
: prevPanelSize
|
|
586
745
|
|
|
587
746
|
const baseSize
|
|
588
|
-
=
|
|
589
|
-
?
|
|
747
|
+
= restoredSize != null && restoredSize >= minSize
|
|
748
|
+
? restoredSize
|
|
590
749
|
: minSize
|
|
591
750
|
|
|
592
751
|
const isLastPanel
|
|
@@ -607,12 +766,13 @@ function expandPanel(panelData: PanelData) {
|
|
|
607
766
|
|
|
608
767
|
eagerValuesRef.value.layout = nextLayout
|
|
609
768
|
|
|
610
|
-
emits('layout', nextLayout)
|
|
769
|
+
emits('layout', convertLayoutToNativeUnits(nextLayout))
|
|
611
770
|
|
|
612
771
|
callPanelCallbacks(
|
|
613
772
|
panelDataArray,
|
|
614
773
|
nextLayout,
|
|
615
774
|
panelIdToLastNotifiedSizeMapRef.value,
|
|
775
|
+
getGroupSizeInPixels(),
|
|
616
776
|
)
|
|
617
777
|
}
|
|
618
778
|
}
|
|
@@ -629,24 +789,42 @@ function getPanelSize(panelData: PanelData) {
|
|
|
629
789
|
`Panel size not found for panel "${panelData.id}"`,
|
|
630
790
|
)
|
|
631
791
|
|
|
792
|
+
// If the panel uses px units, convert from percent back to px
|
|
793
|
+
const panelUnit = panelData.constraints.sizeUnit ?? '%'
|
|
794
|
+
if (panelUnit === 'px') {
|
|
795
|
+
const groupSize = getGroupSizeInPixels()
|
|
796
|
+
if (groupSize != null) {
|
|
797
|
+
return (panelSize / 100) * groupSize
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
|
|
632
801
|
return panelSize
|
|
633
802
|
}
|
|
634
803
|
|
|
635
804
|
function isPanelCollapsed(panelData: PanelData) {
|
|
636
805
|
const { layout, panelDataArray } = eagerValuesRef.value
|
|
637
806
|
|
|
807
|
+
const panelConstraintsArray = getPanelConstraintsInPercent()
|
|
808
|
+
|
|
638
809
|
const {
|
|
639
810
|
collapsedSize = 0,
|
|
640
811
|
collapsible,
|
|
641
812
|
panelSize,
|
|
642
|
-
} = panelDataHelper(
|
|
813
|
+
} = panelDataHelper(
|
|
814
|
+
panelDataArray,
|
|
815
|
+
panelData,
|
|
816
|
+
layout,
|
|
817
|
+
panelConstraintsArray ?? undefined,
|
|
818
|
+
)
|
|
643
819
|
|
|
644
820
|
if (!collapsible)
|
|
645
821
|
return false
|
|
646
822
|
|
|
647
823
|
// panelSize is undefined during ssr due to vue ssr reactivity limitation.
|
|
648
824
|
if (panelSize === undefined) {
|
|
649
|
-
|
|
825
|
+
const panelIndex = findPanelDataIndex(panelDataArray, panelData)
|
|
826
|
+
const constraints = panelConstraintsArray?.[panelIndex] ?? panelData.constraints
|
|
827
|
+
return constraints.defaultSize === constraints.collapsedSize
|
|
650
828
|
}
|
|
651
829
|
else {
|
|
652
830
|
return panelSize === collapsedSize
|
|
@@ -656,11 +834,18 @@ function isPanelCollapsed(panelData: PanelData) {
|
|
|
656
834
|
function isPanelExpanded(panelData: PanelData) {
|
|
657
835
|
const { layout, panelDataArray } = eagerValuesRef.value
|
|
658
836
|
|
|
837
|
+
const panelConstraintsArray = getPanelConstraintsInPercent()
|
|
838
|
+
|
|
659
839
|
const {
|
|
660
840
|
collapsedSize = 0,
|
|
661
841
|
collapsible,
|
|
662
842
|
panelSize,
|
|
663
|
-
} = panelDataHelper(
|
|
843
|
+
} = panelDataHelper(
|
|
844
|
+
panelDataArray,
|
|
845
|
+
panelData,
|
|
846
|
+
layout,
|
|
847
|
+
panelConstraintsArray ?? undefined,
|
|
848
|
+
)
|
|
664
849
|
|
|
665
850
|
assert(
|
|
666
851
|
panelSize != null,
|
|
@@ -702,6 +887,7 @@ function panelDataHelper(
|
|
|
702
887
|
panelDataArray: PanelData[],
|
|
703
888
|
panelData: PanelData,
|
|
704
889
|
layout: number[],
|
|
890
|
+
panelConstraints?: PanelConstraints[] | null,
|
|
705
891
|
) {
|
|
706
892
|
const panelIndex = findPanelDataIndex(panelDataArray, panelData)
|
|
707
893
|
|
|
@@ -710,10 +896,13 @@ function panelDataHelper(
|
|
|
710
896
|
? [panelIndex - 1, panelIndex]
|
|
711
897
|
: [panelIndex, panelIndex + 1]
|
|
712
898
|
|
|
899
|
+
const constraints = panelConstraints ?? getPanelConstraintsInPercent()
|
|
900
|
+
const panelConstraintsFromGroup = constraints?.[panelIndex]
|
|
901
|
+
|
|
713
902
|
const panelSize = layout[panelIndex]
|
|
714
903
|
|
|
715
904
|
return {
|
|
716
|
-
...panelData.constraints,
|
|
905
|
+
...(panelConstraintsFromGroup ?? panelData.constraints),
|
|
717
906
|
panelSize,
|
|
718
907
|
pivotIndices,
|
|
719
908
|
}
|
|
@@ -4,20 +4,22 @@ import { useId } from '@/shared'
|
|
|
4
4
|
import { PRECISION } from './utils/constants'
|
|
5
5
|
|
|
6
6
|
export interface SplitterPanelProps extends PrimitiveProps {
|
|
7
|
-
/** The size of panel when it is collapsed
|
|
7
|
+
/** The size of panel when it is collapsed; interpreted using `sizeUnit`. */
|
|
8
8
|
collapsedSize?: number
|
|
9
9
|
/** Should panel collapse when resized beyond its `minSize`. When `true`, it will be collapsed to `collapsedSize`. */
|
|
10
10
|
collapsible?: boolean
|
|
11
|
-
/** Initial size of panel (
|
|
11
|
+
/** Initial size of panel, interpreted using `sizeUnit` (percent by default). */
|
|
12
12
|
defaultSize?: number
|
|
13
13
|
/** Panel id (unique within group); falls back to `useId` when not provided */
|
|
14
14
|
id?: string
|
|
15
|
-
/** The maximum allowable size of panel
|
|
15
|
+
/** The maximum allowable size of panel, interpreted using `sizeUnit`; defaults to `100` (percent). */
|
|
16
16
|
maxSize?: number
|
|
17
|
-
/** The minimum allowable size of panel
|
|
17
|
+
/** The minimum allowable size of panel, interpreted using `sizeUnit`; defaults to `10` (percent). */
|
|
18
18
|
minSize?: number
|
|
19
19
|
/** The order of panel within group; required for groups with conditionally rendered panels */
|
|
20
20
|
order?: number
|
|
21
|
+
/** Unit used for sizing values; `%` by default, or `px` for fixed sizing. */
|
|
22
|
+
sizeUnit?: '%' | 'px'
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
export type SplitterPanelEmits = {
|
|
@@ -49,6 +51,7 @@ export type PanelConstraints = {
|
|
|
49
51
|
/** Panel id (unique within group); falls back to useId when not provided */
|
|
50
52
|
maxSize?: number | undefined
|
|
51
53
|
minSize?: number | undefined
|
|
54
|
+
sizeUnit?: '%' | 'px' | undefined
|
|
52
55
|
}
|
|
53
56
|
|
|
54
57
|
export type PanelData = {
|
|
@@ -107,6 +110,7 @@ const panelDataRef = computed(() => ({
|
|
|
107
110
|
/** Panel id (unique within group); falls back to useId when not provided */
|
|
108
111
|
maxSize: props.maxSize,
|
|
109
112
|
minSize: props.minSize,
|
|
113
|
+
sizeUnit: props.sizeUnit ?? '%',
|
|
110
114
|
},
|
|
111
115
|
id: panelId,
|
|
112
116
|
idIsFromProps: props.id !== undefined,
|
|
@@ -121,6 +125,7 @@ watch(() => panelDataRef.value.constraints, (constraints, prevConstraints) => {
|
|
|
121
125
|
|| prevConstraints.collapsible !== constraints.collapsible
|
|
122
126
|
|| prevConstraints.maxSize !== constraints.maxSize
|
|
123
127
|
|| prevConstraints.minSize !== constraints.minSize
|
|
128
|
+
|| prevConstraints.sizeUnit !== constraints.sizeUnit
|
|
124
129
|
) {
|
|
125
130
|
reevaluatePanelConstraints(panelDataRef.value, prevConstraints)
|
|
126
131
|
}
|
|
@@ -157,11 +162,11 @@ defineExpose({
|
|
|
157
162
|
collapse,
|
|
158
163
|
/** If panel is currently collapsed, expand it to its most recent size. */
|
|
159
164
|
expand,
|
|
160
|
-
/** Gets the current size of the panel
|
|
165
|
+
/** Gets the current size of the panel (in the panel's sizeUnit: percentage for '%', pixels for 'px'). */
|
|
161
166
|
getSize() {
|
|
162
167
|
return getPanelSize(panelDataRef.value)
|
|
163
168
|
},
|
|
164
|
-
/** Resize panel to the specified
|
|
169
|
+
/** Resize panel to the specified size (in the panel's sizeUnit: percentage for '%', pixels for 'px'). */
|
|
165
170
|
resize,
|
|
166
171
|
/** Returns `true` if the panel is currently collapsed */
|
|
167
172
|
isCollapsed,
|