reka-ui 2.2.1 → 2.3.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/Accordion/AccordionItem.cjs.map +1 -1
- package/dist/Accordion/AccordionItem.js.map +1 -1
- package/dist/Accordion/AccordionRoot.cjs.map +1 -1
- package/dist/Accordion/AccordionRoot.js.map +1 -1
- package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
- package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
- package/dist/AlertDialog/AlertDialogContent.cjs.map +1 -1
- package/dist/AlertDialog/AlertDialogContent.js.map +1 -1
- package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
- package/dist/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/Avatar/AvatarFallback.cjs +11 -14
- package/dist/Avatar/AvatarFallback.cjs.map +1 -1
- package/dist/Avatar/AvatarFallback.js +12 -15
- package/dist/Avatar/AvatarFallback.js.map +1 -1
- package/dist/Avatar/AvatarImage.cjs +3 -2
- package/dist/Avatar/AvatarImage.cjs.map +1 -1
- package/dist/Avatar/AvatarImage.js +3 -2
- package/dist/Avatar/AvatarImage.js.map +1 -1
- package/dist/Avatar/AvatarRoot.cjs +1 -1
- package/dist/Avatar/AvatarRoot.cjs.map +1 -1
- package/dist/Avatar/AvatarRoot.js +1 -1
- package/dist/Avatar/AvatarRoot.js.map +1 -1
- package/dist/Avatar/utils.cjs +43 -16
- package/dist/Avatar/utils.cjs.map +1 -1
- package/dist/Avatar/utils.js +44 -17
- package/dist/Avatar/utils.js.map +1 -1
- package/dist/Calendar/CalendarCell.cjs +2 -2
- package/dist/Calendar/CalendarCell.cjs.map +1 -1
- package/dist/Calendar/CalendarCell.js +2 -2
- package/dist/Calendar/CalendarCell.js.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.cjs +5 -1
- package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.js +5 -1
- package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
- package/dist/Calendar/CalendarGrid.cjs.map +1 -1
- package/dist/Calendar/CalendarGrid.js.map +1 -1
- package/dist/Calendar/CalendarHeading.cjs.map +1 -1
- package/dist/Calendar/CalendarHeading.js.map +1 -1
- package/dist/Calendar/CalendarNext.cjs.map +1 -1
- package/dist/Calendar/CalendarNext.js.map +1 -1
- package/dist/Calendar/CalendarPrev.cjs.map +1 -1
- package/dist/Calendar/CalendarPrev.js.map +1 -1
- package/dist/Calendar/CalendarRoot.cjs +7 -4
- package/dist/Calendar/CalendarRoot.cjs.map +1 -1
- package/dist/Calendar/CalendarRoot.js +7 -4
- package/dist/Calendar/CalendarRoot.js.map +1 -1
- package/dist/Calendar/useCalendar.cjs +2 -2
- package/dist/Calendar/useCalendar.cjs.map +1 -1
- package/dist/Calendar/useCalendar.js +2 -2
- package/dist/Calendar/useCalendar.js.map +1 -1
- package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
- package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
- package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
- package/dist/Checkbox/CheckboxRoot.js.map +1 -1
- package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
- package/dist/Collapsible/CollapsibleContent.js.map +1 -1
- package/dist/Collapsible/CollapsibleRoot.cjs +2 -0
- package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
- package/dist/Collapsible/CollapsibleRoot.js +2 -0
- package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
- package/dist/Collection/Collection.cjs.map +1 -1
- package/dist/Collection/Collection.js.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.cjs +1 -1
- package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.js +1 -1
- package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
- package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
- package/dist/Combobox/ComboboxGroup.js.map +1 -1
- package/dist/Combobox/ComboboxInput.cjs.map +1 -1
- package/dist/Combobox/ComboboxInput.js.map +1 -1
- package/dist/Combobox/ComboboxItem.cjs.map +1 -1
- package/dist/Combobox/ComboboxItem.js.map +1 -1
- package/dist/Combobox/ComboboxRoot.cjs +1 -2
- package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
- package/dist/Combobox/ComboboxRoot.js +1 -2
- package/dist/Combobox/ComboboxRoot.js.map +1 -1
- package/dist/Combobox/ComboboxTrigger.cjs.map +1 -1
- package/dist/Combobox/ComboboxTrigger.js.map +1 -1
- package/dist/Combobox/ComboboxViewport.cjs.map +1 -1
- package/dist/Combobox/ComboboxViewport.js.map +1 -1
- package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
- package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
- package/dist/ConfigProvider/ConfigProvider.cjs.map +1 -1
- package/dist/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
- package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
- package/dist/ContextMenu/ContextMenuSub.cjs +1 -1
- package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuSub.js +1 -1
- package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
- package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
- package/dist/DateField/DateFieldInput.cjs +1 -0
- package/dist/DateField/DateFieldInput.cjs.map +1 -1
- package/dist/DateField/DateFieldInput.js +1 -0
- package/dist/DateField/DateFieldInput.js.map +1 -1
- package/dist/DateField/DateFieldRoot.cjs +7 -1
- package/dist/DateField/DateFieldRoot.cjs.map +1 -1
- package/dist/DateField/DateFieldRoot.js +7 -1
- package/dist/DateField/DateFieldRoot.js.map +1 -1
- package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
- package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
- package/dist/DatePicker/DatePickerContent.cjs +8 -3
- package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
- package/dist/DatePicker/DatePickerContent.js +9 -4
- package/dist/DatePicker/DatePickerContent.js.map +1 -1
- package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
- package/dist/DatePicker/DatePickerHeading.js.map +1 -1
- package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
- package/dist/DatePicker/DatePickerNext.js.map +1 -1
- package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
- package/dist/DatePicker/DatePickerPrev.js.map +1 -1
- package/dist/DatePicker/DatePickerRoot.cjs +1 -0
- package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
- package/dist/DatePicker/DatePickerRoot.js +1 -0
- package/dist/DatePicker/DatePickerRoot.js.map +1 -1
- package/dist/DateRangeField/DateRangeFieldInput.cjs +1 -0
- package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
- package/dist/DateRangeField/DateRangeFieldInput.js +1 -0
- package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.cjs +13 -9
- package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.js +13 -9
- package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.cjs +2 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.js +2 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerContent.cjs +8 -3
- package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerContent.js +9 -4
- package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.cjs +6 -2
- package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.js +6 -2
- package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
- package/dist/Dialog/DialogContentImpl.cjs +1 -1
- package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
- package/dist/Dialog/DialogContentImpl.js +1 -1
- package/dist/Dialog/DialogContentImpl.js.map +1 -1
- package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
- package/dist/Dialog/DialogContentNonModal.js.map +1 -1
- package/dist/Dialog/DialogRoot.cjs +4 -1
- package/dist/Dialog/DialogRoot.cjs.map +1 -1
- package/dist/Dialog/DialogRoot.js +4 -1
- package/dist/Dialog/DialogRoot.js.map +1 -1
- package/dist/Dialog/DialogTrigger.cjs.map +1 -1
- package/dist/Dialog/DialogTrigger.js.map +1 -1
- package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
- package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
- package/dist/DismissableLayer/DismissableLayerBranch.cjs.map +1 -1
- package/dist/DismissableLayer/DismissableLayerBranch.js.map +1 -1
- package/dist/DismissableLayer/utils.cjs +19 -7
- package/dist/DismissableLayer/utils.cjs.map +1 -1
- package/dist/DismissableLayer/utils.js +20 -8
- package/dist/DismissableLayer/utils.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.cjs +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.cjs +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.js +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
- package/dist/Editable/EditableInput.cjs.map +1 -1
- package/dist/Editable/EditableInput.js.map +1 -1
- package/dist/Editable/EditableRoot.cjs +3 -3
- package/dist/Editable/EditableRoot.cjs.map +1 -1
- package/dist/Editable/EditableRoot.js +3 -3
- package/dist/Editable/EditableRoot.js.map +1 -1
- package/dist/FocusScope/FocusScope.cjs.map +1 -1
- package/dist/FocusScope/FocusScope.js.map +1 -1
- package/dist/HoverCard/HoverCardContentImpl.cjs +1 -1
- package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
- package/dist/HoverCard/HoverCardContentImpl.js +1 -1
- package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
- package/dist/HoverCard/HoverCardRoot.cjs +1 -1
- package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
- package/dist/HoverCard/HoverCardRoot.js +1 -1
- package/dist/HoverCard/HoverCardRoot.js.map +1 -1
- package/dist/Listbox/ListboxFilter.cjs.map +1 -1
- package/dist/Listbox/ListboxFilter.js.map +1 -1
- package/dist/Listbox/ListboxItem.cjs.map +1 -1
- package/dist/Listbox/ListboxItem.js.map +1 -1
- package/dist/Listbox/ListboxRoot.cjs +1 -1
- package/dist/Listbox/ListboxRoot.cjs.map +1 -1
- package/dist/Listbox/ListboxRoot.js +1 -1
- package/dist/Listbox/ListboxRoot.js.map +1 -1
- package/dist/Listbox/ListboxVirtualizer.cjs +3 -3
- package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
- package/dist/Listbox/ListboxVirtualizer.js +3 -3
- package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
- package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
- package/dist/Menu/MenuCheckboxItem.js.map +1 -1
- package/dist/Menu/MenuContentImpl.cjs +1 -1
- package/dist/Menu/MenuContentImpl.cjs.map +1 -1
- package/dist/Menu/MenuContentImpl.js +1 -1
- package/dist/Menu/MenuContentImpl.js.map +1 -1
- package/dist/Menu/MenuItemImpl.cjs.map +1 -1
- package/dist/Menu/MenuItemImpl.js.map +1 -1
- package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
- package/dist/Menu/MenuItemIndicator.js.map +1 -1
- package/dist/Menu/MenuRadioGroup.cjs.map +1 -1
- package/dist/Menu/MenuRadioGroup.js.map +1 -1
- package/dist/Menu/MenuRoot.cjs +1 -1
- package/dist/Menu/MenuRoot.cjs.map +1 -1
- package/dist/Menu/MenuRoot.js +1 -1
- package/dist/Menu/MenuRoot.js.map +1 -1
- package/dist/Menu/MenuSub.cjs +1 -1
- package/dist/Menu/MenuSub.cjs.map +1 -1
- package/dist/Menu/MenuSub.js +1 -1
- package/dist/Menu/MenuSub.js.map +1 -1
- package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
- package/dist/Menu/MenuSubTrigger.js.map +1 -1
- package/dist/Menubar/MenubarContent.cjs.map +1 -1
- package/dist/Menubar/MenubarContent.js.map +1 -1
- package/dist/Menubar/MenubarMenu.cjs.map +1 -1
- package/dist/Menubar/MenubarMenu.js.map +1 -1
- package/dist/Menubar/MenubarRoot.cjs.map +1 -1
- package/dist/Menubar/MenubarRoot.js.map +1 -1
- package/dist/Menubar/MenubarSub.cjs +1 -1
- package/dist/Menubar/MenubarSub.cjs.map +1 -1
- package/dist/Menubar/MenubarSub.js +1 -1
- package/dist/Menubar/MenubarSub.js.map +1 -1
- package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
- package/dist/Menubar/MenubarTrigger.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.js +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
- package/dist/NumberField/NumberFieldInput.cjs +2 -2
- package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
- package/dist/NumberField/NumberFieldInput.js +2 -2
- package/dist/NumberField/NumberFieldInput.js.map +1 -1
- package/dist/NumberField/NumberFieldRoot.cjs +8 -5
- package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
- package/dist/NumberField/NumberFieldRoot.js +8 -5
- package/dist/NumberField/NumberFieldRoot.js.map +1 -1
- package/dist/Pagination/PaginationFirst.cjs.map +1 -1
- package/dist/Pagination/PaginationFirst.js.map +1 -1
- package/dist/Pagination/PaginationLast.cjs.map +1 -1
- package/dist/Pagination/PaginationLast.js.map +1 -1
- package/dist/Pagination/PaginationList.cjs.map +1 -1
- package/dist/Pagination/PaginationList.js.map +1 -1
- package/dist/Pagination/PaginationListItem.cjs.map +1 -1
- package/dist/Pagination/PaginationListItem.js.map +1 -1
- package/dist/Pagination/PaginationNext.cjs.map +1 -1
- package/dist/Pagination/PaginationNext.js.map +1 -1
- package/dist/Pagination/PaginationPrev.cjs.map +1 -1
- package/dist/Pagination/PaginationPrev.js.map +1 -1
- package/dist/Pagination/PaginationRoot.cjs.map +1 -1
- package/dist/Pagination/PaginationRoot.js.map +1 -1
- package/dist/PinInput/PinInputInput.cjs +14 -6
- package/dist/PinInput/PinInputInput.cjs.map +1 -1
- package/dist/PinInput/PinInputInput.js +14 -6
- package/dist/PinInput/PinInputInput.js.map +1 -1
- package/dist/PinInput/PinInputRoot.cjs +4 -2
- package/dist/PinInput/PinInputRoot.cjs.map +1 -1
- package/dist/PinInput/PinInputRoot.js +4 -2
- package/dist/PinInput/PinInputRoot.js.map +1 -1
- package/dist/Popover/PopoverAnchor.cjs.map +1 -1
- package/dist/Popover/PopoverAnchor.js.map +1 -1
- package/dist/Popover/PopoverContentImpl.cjs +1 -1
- package/dist/Popover/PopoverContentImpl.js +1 -1
- package/dist/Popover/PopoverContentModal.cjs.map +1 -1
- package/dist/Popover/PopoverContentModal.js.map +1 -1
- package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
- package/dist/Popover/PopoverContentNonModal.js.map +1 -1
- package/dist/Popover/PopoverRoot.cjs +1 -1
- package/dist/Popover/PopoverRoot.cjs.map +1 -1
- package/dist/Popover/PopoverRoot.js +1 -1
- package/dist/Popover/PopoverRoot.js.map +1 -1
- package/dist/Popover/PopoverTrigger.cjs.map +1 -1
- package/dist/Popover/PopoverTrigger.js.map +1 -1
- package/dist/Popper/PopperAnchor.cjs.map +1 -1
- package/dist/Popper/PopperAnchor.js.map +1 -1
- package/dist/Popper/PopperArrow.cjs.map +1 -1
- package/dist/Popper/PopperArrow.js.map +1 -1
- package/dist/Popper/PopperContent.cjs.map +1 -1
- package/dist/Popper/PopperContent.js.map +1 -1
- package/dist/Presence/Presence.cjs.map +1 -1
- package/dist/Presence/Presence.js.map +1 -1
- package/dist/Presence/usePresence.cjs.map +1 -1
- package/dist/Presence/usePresence.js.map +1 -1
- package/dist/Primitive/Slot.cjs +1 -9
- package/dist/Primitive/Slot.cjs.map +1 -1
- package/dist/Primitive/Slot.js +1 -9
- package/dist/Primitive/Slot.js.map +1 -1
- package/dist/Progress/ProgressRoot.cjs +3 -2
- package/dist/Progress/ProgressRoot.cjs.map +1 -1
- package/dist/Progress/ProgressRoot.js +3 -2
- package/dist/Progress/ProgressRoot.js.map +1 -1
- package/dist/RadioGroup/Radio.cjs +2 -0
- package/dist/RadioGroup/Radio.cjs.map +1 -1
- package/dist/RadioGroup/Radio.js +2 -0
- package/dist/RadioGroup/Radio.js.map +1 -1
- package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
- package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
- package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
- package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCell.cjs +2 -2
- package/dist/RangeCalendar/RangeCalendarCell.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCell.js +2 -2
- package/dist/RangeCalendar/RangeCalendarCell.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +28 -9
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js +28 -9
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarHeading.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarHeading.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.cjs +26 -9
- package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.js +26 -9
- package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.cjs +21 -4
- package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.js +21 -4
- package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
- package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
- package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
- package/dist/RovingFocus/RovingFocusGroup.js +1 -1
- package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
- package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
- package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
- package/dist/Select/BubbleSelect.cjs.map +1 -1
- package/dist/Select/BubbleSelect.js.map +1 -1
- package/dist/Select/SelectContent.cjs.map +1 -1
- package/dist/Select/SelectContent.js.map +1 -1
- package/dist/Select/SelectContentImpl.cjs +2 -2
- package/dist/Select/SelectContentImpl.cjs.map +1 -1
- package/dist/Select/SelectContentImpl.js +2 -2
- package/dist/Select/SelectContentImpl.js.map +1 -1
- package/dist/Select/SelectItem.cjs.map +1 -1
- package/dist/Select/SelectItem.js.map +1 -1
- package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
- package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
- package/dist/Select/SelectItemAlignedPosition.js +1 -1
- package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
- package/dist/Select/SelectItemText.cjs.map +1 -1
- package/dist/Select/SelectItemText.js.map +1 -1
- package/dist/Select/SelectProvider.cjs.map +1 -1
- package/dist/Select/SelectProvider.js.map +1 -1
- package/dist/Select/SelectRoot.cjs +3 -1
- package/dist/Select/SelectRoot.cjs.map +1 -1
- package/dist/Select/SelectRoot.js +3 -1
- package/dist/Select/SelectRoot.js.map +1 -1
- package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
- package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
- package/dist/Select/SelectTrigger.cjs.map +1 -1
- package/dist/Select/SelectTrigger.js.map +1 -1
- package/dist/Select/SelectValue.cjs.map +1 -1
- package/dist/Select/SelectValue.js.map +1 -1
- package/dist/Select/SelectViewport.cjs.map +1 -1
- package/dist/Select/SelectViewport.js.map +1 -1
- package/dist/Slider/SliderHorizontal.cjs +7 -4
- package/dist/Slider/SliderHorizontal.cjs.map +1 -1
- package/dist/Slider/SliderHorizontal.js +7 -4
- package/dist/Slider/SliderHorizontal.js.map +1 -1
- package/dist/Slider/SliderRange.cjs +2 -2
- package/dist/Slider/SliderRange.cjs.map +1 -1
- package/dist/Slider/SliderRange.js +2 -2
- package/dist/Slider/SliderRange.js.map +1 -1
- package/dist/Slider/SliderRoot.cjs.map +1 -1
- package/dist/Slider/SliderRoot.js.map +1 -1
- package/dist/Slider/SliderThumb.cjs.map +1 -1
- package/dist/Slider/SliderThumb.js.map +1 -1
- package/dist/Slider/SliderThumbImpl.cjs +3 -3
- package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
- package/dist/Slider/SliderThumbImpl.js +3 -3
- package/dist/Slider/SliderThumbImpl.js.map +1 -1
- package/dist/Slider/SliderVertical.cjs +7 -4
- package/dist/Slider/SliderVertical.cjs.map +1 -1
- package/dist/Slider/SliderVertical.js +7 -4
- package/dist/Slider/SliderVertical.js.map +1 -1
- package/dist/Slider/utils.cjs +1 -1
- package/dist/Slider/utils.cjs.map +1 -1
- package/dist/Slider/utils.js +1 -1
- package/dist/Slider/utils.js.map +1 -1
- package/dist/Splitter/SplitterGroup.cjs.map +1 -1
- package/dist/Splitter/SplitterGroup.js.map +1 -1
- package/dist/Splitter/SplitterPanel.cjs +16 -10
- package/dist/Splitter/SplitterPanel.cjs.map +1 -1
- package/dist/Splitter/SplitterPanel.js +16 -10
- package/dist/Splitter/SplitterPanel.js.map +1 -1
- package/dist/Stepper/StepperIndicator.cjs.map +1 -1
- package/dist/Stepper/StepperIndicator.js.map +1 -1
- package/dist/Stepper/StepperItem.cjs.map +1 -1
- package/dist/Stepper/StepperItem.js.map +1 -1
- package/dist/Stepper/StepperRoot.cjs +31 -4
- package/dist/Stepper/StepperRoot.cjs.map +1 -1
- package/dist/Stepper/StepperRoot.js +31 -4
- package/dist/Stepper/StepperRoot.js.map +1 -1
- package/dist/Stepper/StepperTrigger.cjs.map +1 -1
- package/dist/Stepper/StepperTrigger.js.map +1 -1
- package/dist/Switch/SwitchRoot.cjs.map +1 -1
- package/dist/Switch/SwitchRoot.js.map +1 -1
- package/dist/Tabs/TabsContent.cjs.map +1 -1
- package/dist/Tabs/TabsContent.js.map +1 -1
- package/dist/Tabs/TabsIndicator.cjs.map +1 -1
- package/dist/Tabs/TabsIndicator.js.map +1 -1
- package/dist/Tabs/TabsList.cjs.map +1 -1
- package/dist/Tabs/TabsList.js.map +1 -1
- package/dist/Tabs/TabsRoot.cjs.map +1 -1
- package/dist/Tabs/TabsRoot.js.map +1 -1
- package/dist/Tabs/TabsTrigger.cjs.map +1 -1
- package/dist/Tabs/TabsTrigger.js.map +1 -1
- package/dist/TagsInput/TagsInputInput.cjs +1 -0
- package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
- package/dist/TagsInput/TagsInputInput.js +1 -0
- package/dist/TagsInput/TagsInputInput.js.map +1 -1
- package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
- package/dist/TagsInput/TagsInputItem.js.map +1 -1
- package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
- package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
- package/dist/TagsInput/TagsInputRoot.cjs +1 -1
- package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
- package/dist/TagsInput/TagsInputRoot.js +1 -1
- package/dist/TagsInput/TagsInputRoot.js.map +1 -1
- package/dist/TimeField/TimeFieldInput.cjs +1 -0
- package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
- package/dist/TimeField/TimeFieldInput.js +1 -0
- package/dist/TimeField/TimeFieldInput.js.map +1 -1
- package/dist/TimeField/TimeFieldRoot.cjs +13 -4
- package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
- package/dist/TimeField/TimeFieldRoot.js +13 -4
- package/dist/TimeField/TimeFieldRoot.js.map +1 -1
- package/dist/Toast/ToastAnnounce.cjs.map +1 -1
- package/dist/Toast/ToastAnnounce.js.map +1 -1
- package/dist/Toast/ToastRoot.cjs.map +1 -1
- package/dist/Toast/ToastRoot.js.map +1 -1
- package/dist/Toast/ToastRootImpl.cjs +1 -1
- package/dist/Toast/ToastRootImpl.cjs.map +1 -1
- package/dist/Toast/ToastRootImpl.js +1 -1
- package/dist/Toast/ToastRootImpl.js.map +1 -1
- package/dist/Toast/ToastViewport.cjs +2 -2
- package/dist/Toast/ToastViewport.cjs.map +1 -1
- package/dist/Toast/ToastViewport.js +2 -2
- package/dist/Toast/ToastViewport.js.map +1 -1
- package/dist/Toggle/Toggle.cjs.map +1 -1
- package/dist/Toggle/Toggle.js.map +1 -1
- package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
- package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
- package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
- package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
- package/dist/Toolbar/ToolbarRoot.cjs.map +1 -1
- package/dist/Toolbar/ToolbarRoot.js.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.cjs +2 -2
- package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.js +2 -2
- package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
- package/dist/Tooltip/TooltipRoot.cjs +1 -1
- package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
- package/dist/Tooltip/TooltipRoot.js +1 -1
- package/dist/Tooltip/TooltipRoot.js.map +1 -1
- package/dist/Tooltip/TooltipTrigger.cjs +1 -1
- package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
- package/dist/Tooltip/TooltipTrigger.js +1 -1
- package/dist/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/Tree/TreeItem.cjs +4 -1
- package/dist/Tree/TreeItem.cjs.map +1 -1
- package/dist/Tree/TreeItem.js +4 -1
- package/dist/Tree/TreeItem.js.map +1 -1
- package/dist/Tree/TreeRoot.cjs +29 -3
- package/dist/Tree/TreeRoot.cjs.map +1 -1
- package/dist/Tree/TreeRoot.js +29 -3
- package/dist/Tree/TreeRoot.js.map +1 -1
- package/dist/Tree/TreeVirtualizer.cjs +2 -2
- package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
- package/dist/Tree/TreeVirtualizer.js +2 -2
- package/dist/Tree/TreeVirtualizer.js.map +1 -1
- package/dist/Viewport/Viewport.cjs.map +1 -1
- package/dist/Viewport/Viewport.js.map +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
- package/dist/component/BaseSeparator.cjs.map +1 -1
- package/dist/component/BaseSeparator.js.map +1 -1
- package/dist/date/calendar.cjs.map +1 -1
- package/dist/date/calendar.js.map +1 -1
- package/dist/date/parser.cjs +22 -7
- package/dist/date/parser.cjs.map +1 -1
- package/dist/date/parser.js +23 -8
- package/dist/date/parser.js.map +1 -1
- package/dist/date/useDateField.cjs +21 -6
- package/dist/date/useDateField.cjs.map +1 -1
- package/dist/date/useDateField.js +21 -6
- package/dist/date/useDateField.js.map +1 -1
- package/dist/date/utils.cjs +31 -2
- package/dist/date/utils.cjs.map +1 -1
- package/dist/date/utils.js +30 -3
- package/dist/date/utils.js.map +1 -1
- package/dist/index.d.ts +495 -353
- package/dist/shared/useBodyScrollLock.cjs +2 -2
- package/dist/shared/useBodyScrollLock.cjs.map +1 -1
- package/dist/shared/useBodyScrollLock.js +2 -2
- package/dist/shared/useBodyScrollLock.js.map +1 -1
- package/dist/shared/useDateFormatter.cjs +12 -10
- package/dist/shared/useDateFormatter.cjs.map +1 -1
- package/dist/shared/useDateFormatter.js +12 -10
- package/dist/shared/useDateFormatter.js.map +1 -1
- package/dist/shared/useDirection.cjs.map +1 -1
- package/dist/shared/useDirection.js.map +1 -1
- package/dist/shared/useGraceArea.cjs.map +1 -1
- package/dist/shared/useGraceArea.js.map +1 -1
- package/dist/shared/useId.cjs +2 -2
- package/dist/shared/useId.cjs.map +1 -1
- package/dist/shared/useId.js +2 -2
- package/dist/shared/useId.js.map +1 -1
- package/dist/shared/useLocale.cjs.map +1 -1
- package/dist/shared/useLocale.js.map +1 -1
- package/dist/shared/useNonce.cjs.map +1 -1
- package/dist/shared/useNonce.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePresence.js","sources":["../../src/Presence/usePresence.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { useStateMachine } from '@/shared'\nimport { defaultWindow } from '@vueuse/core'\nimport { isClient } from '@vueuse/shared'\nimport { computed, nextTick, onUnmounted, ref, watch } from 'vue'\n\nexport function usePresence(\n present: Ref<boolean>,\n node: Ref<HTMLElement | undefined>,\n) {\n const stylesRef = ref<CSSStyleDeclaration>({} as any)\n const prevAnimationNameRef = ref<string>('none')\n const prevPresentRef = ref(present)\n const initialState = present.value ? 'mounted' : 'unmounted'\n let timeoutId: number | undefined\n const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow\n\n const { state, dispatch } = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n })\n\n const dispatchCustomEvent = (name: 'enter' | 'after-enter' | 'leave' | 'after-leave') => {\n // We only dispatch this event because CustomEvent is not available in Node18\n // https://github.com/unovue/reka-ui/issues/930\n if (isClient) {\n const customEvent = new CustomEvent(name, { bubbles: false, cancelable: false })\n node.value?.dispatchEvent(customEvent)\n }\n }\n\n watch(\n present,\n async (currentPresent, prevPresent) => {\n const hasPresentChanged = prevPresent !== currentPresent\n await nextTick()\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.value\n const currentAnimationName = getAnimationName(node.value)\n\n if (currentPresent) {\n dispatch('MOUNT')\n dispatchCustomEvent('enter')\n if (currentAnimationName === 'none')\n dispatchCustomEvent('after-enter')\n }\n else if (\n currentAnimationName === 'none' || currentAnimationName === 'undefined'\n || stylesRef.value?.display === 'none'\n ) {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly rv\n dispatch('UNMOUNT')\n dispatchCustomEvent('leave')\n dispatchCustomEvent('after-leave')\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName\n if (prevPresent && isAnimating) {\n dispatch('ANIMATION_OUT')\n dispatchCustomEvent('leave')\n }\n else {\n dispatch('UNMOUNT')\n dispatchCustomEvent('after-leave')\n }\n }\n }\n },\n { immediate: true },\n )\n\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(node.value)\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName,\n )\n const directionName = state.value === 'mounted' ? 'enter' : 'leave'\n if (event.target === node.value && isCurrentAnimation) {\n dispatchCustomEvent(`after-${directionName}`)\n dispatch('ANIMATION_END')\n\n if (!prevPresentRef.value) {\n const currentFillMode = node.value.style.animationFillMode\n node.value.style.animationFillMode = 'forwards'\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow?.setTimeout(() => {\n if (node.value?.style.animationFillMode === 'forwards') {\n node.value.style.animationFillMode = currentFillMode\n }\n })\n }\n }\n // if no animation, immediately trigger 'ANIMATION_END'\n if (event.target === node.value && currentAnimationName === 'none')\n dispatch('ANIMATION_END')\n }\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node.value) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.value = getAnimationName(node.value)\n }\n }\n\n const watcher = watch(\n node,\n (newNode, oldNode) => {\n if (newNode) {\n stylesRef.value = getComputedStyle(newNode)\n newNode.addEventListener('animationstart', handleAnimationStart)\n newNode.addEventListener('animationcancel', handleAnimationEnd)\n newNode.addEventListener('animationend', handleAnimationEnd)\n }\n else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n dispatch('ANIMATION_END')\n\n if (timeoutId !== undefined)\n ownerWindow?.clearTimeout(timeoutId)\n oldNode?.removeEventListener('animationstart', handleAnimationStart)\n oldNode?.removeEventListener('animationcancel', handleAnimationEnd)\n oldNode?.removeEventListener('animationend', handleAnimationEnd)\n }\n },\n { immediate: true },\n )\n\n const stateWatcher = watch(state, () => {\n const currentAnimationName = getAnimationName(node.value)\n prevAnimationNameRef.value\n = state.value === 'mounted' ? currentAnimationName : 'none'\n })\n\n onUnmounted(() => {\n watcher()\n stateWatcher()\n })\n\n const isPresent = computed(() =>\n ['mounted', 'unmountSuspended'].includes(state.value),\n )\n\n return {\n isPresent,\n }\n}\n\nfunction getAnimationName(node?: HTMLElement) {\n return node ? getComputedStyle(node).animationName || 'none' : 'none'\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePresence.js","sources":["../../src/Presence/usePresence.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { defaultWindow } from '@vueuse/core'\nimport { isClient } from '@vueuse/shared'\nimport { computed, nextTick, onUnmounted, ref, watch } from 'vue'\nimport { useStateMachine } from '@/shared'\n\nexport function usePresence(\n present: Ref<boolean>,\n node: Ref<HTMLElement | undefined>,\n) {\n const stylesRef = ref<CSSStyleDeclaration>({} as any)\n const prevAnimationNameRef = ref<string>('none')\n const prevPresentRef = ref(present)\n const initialState = present.value ? 'mounted' : 'unmounted'\n let timeoutId: number | undefined\n const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow\n\n const { state, dispatch } = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n })\n\n const dispatchCustomEvent = (name: 'enter' | 'after-enter' | 'leave' | 'after-leave') => {\n // We only dispatch this event because CustomEvent is not available in Node18\n // https://github.com/unovue/reka-ui/issues/930\n if (isClient) {\n const customEvent = new CustomEvent(name, { bubbles: false, cancelable: false })\n node.value?.dispatchEvent(customEvent)\n }\n }\n\n watch(\n present,\n async (currentPresent, prevPresent) => {\n const hasPresentChanged = prevPresent !== currentPresent\n await nextTick()\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.value\n const currentAnimationName = getAnimationName(node.value)\n\n if (currentPresent) {\n dispatch('MOUNT')\n dispatchCustomEvent('enter')\n if (currentAnimationName === 'none')\n dispatchCustomEvent('after-enter')\n }\n else if (\n currentAnimationName === 'none' || currentAnimationName === 'undefined'\n || stylesRef.value?.display === 'none'\n ) {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly rv\n dispatch('UNMOUNT')\n dispatchCustomEvent('leave')\n dispatchCustomEvent('after-leave')\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName\n if (prevPresent && isAnimating) {\n dispatch('ANIMATION_OUT')\n dispatchCustomEvent('leave')\n }\n else {\n dispatch('UNMOUNT')\n dispatchCustomEvent('after-leave')\n }\n }\n }\n },\n { immediate: true },\n )\n\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(node.value)\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName,\n )\n const directionName = state.value === 'mounted' ? 'enter' : 'leave'\n if (event.target === node.value && isCurrentAnimation) {\n dispatchCustomEvent(`after-${directionName}`)\n dispatch('ANIMATION_END')\n\n if (!prevPresentRef.value) {\n const currentFillMode = node.value.style.animationFillMode\n node.value.style.animationFillMode = 'forwards'\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow?.setTimeout(() => {\n if (node.value?.style.animationFillMode === 'forwards') {\n node.value.style.animationFillMode = currentFillMode\n }\n })\n }\n }\n // if no animation, immediately trigger 'ANIMATION_END'\n if (event.target === node.value && currentAnimationName === 'none')\n dispatch('ANIMATION_END')\n }\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node.value) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.value = getAnimationName(node.value)\n }\n }\n\n const watcher = watch(\n node,\n (newNode, oldNode) => {\n if (newNode) {\n stylesRef.value = getComputedStyle(newNode)\n newNode.addEventListener('animationstart', handleAnimationStart)\n newNode.addEventListener('animationcancel', handleAnimationEnd)\n newNode.addEventListener('animationend', handleAnimationEnd)\n }\n else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n dispatch('ANIMATION_END')\n\n if (timeoutId !== undefined)\n ownerWindow?.clearTimeout(timeoutId)\n oldNode?.removeEventListener('animationstart', handleAnimationStart)\n oldNode?.removeEventListener('animationcancel', handleAnimationEnd)\n oldNode?.removeEventListener('animationend', handleAnimationEnd)\n }\n },\n { immediate: true },\n )\n\n const stateWatcher = watch(state, () => {\n const currentAnimationName = getAnimationName(node.value)\n prevAnimationNameRef.value\n = state.value === 'mounted' ? currentAnimationName : 'none'\n })\n\n onUnmounted(() => {\n watcher()\n stateWatcher()\n })\n\n const isPresent = computed(() =>\n ['mounted', 'unmountSuspended'].includes(state.value),\n )\n\n return {\n isPresent,\n }\n}\n\nfunction getAnimationName(node?: HTMLElement) {\n return node ? getComputedStyle(node).animationName || 'none' : 'none'\n}\n"],"names":[],"mappings":";;;;;AAMgB,SAAA,WAAA,CACd,SACA,IACA,EAAA;AACA,EAAM,MAAA,SAAA,GAAY,GAAyB,CAAA,EAAS,CAAA;AACpD,EAAM,MAAA,oBAAA,GAAuB,IAAY,MAAM,CAAA;AAC/C,EAAM,MAAA,cAAA,GAAiB,IAAI,OAAO,CAAA;AAClC,EAAM,MAAA,YAAA,GAAe,OAAQ,CAAA,KAAA,GAAQ,SAAY,GAAA,WAAA;AACjD,EAAI,IAAA,SAAA;AACJ,EAAA,MAAM,WAAc,GAAA,IAAA,CAAK,KAAO,EAAA,aAAA,CAAc,WAAe,IAAA,aAAA;AAE7D,EAAA,MAAM,EAAE,KAAA,EAAO,QAAS,EAAA,GAAI,gBAAgB,YAAc,EAAA;AAAA,IACxD,OAAS,EAAA;AAAA,MACP,OAAS,EAAA,WAAA;AAAA,MACT,aAAe,EAAA;AAAA,KACjB;AAAA,IACA,gBAAkB,EAAA;AAAA,MAChB,KAAO,EAAA,SAAA;AAAA,MACP,aAAe,EAAA;AAAA,KACjB;AAAA,IACA,SAAW,EAAA;AAAA,MACT,KAAO,EAAA;AAAA;AACT,GACD,CAAA;AAED,EAAM,MAAA,mBAAA,GAAsB,CAAC,IAA4D,KAAA;AAGvF,IAAA,IAAI,QAAU,EAAA;AACZ,MAAM,MAAA,WAAA,GAAc,IAAI,WAAY,CAAA,IAAA,EAAM,EAAE,OAAS,EAAA,KAAA,EAAO,UAAY,EAAA,KAAA,EAAO,CAAA;AAC/E,MAAK,IAAA,CAAA,KAAA,EAAO,cAAc,WAAW,CAAA;AAAA;AACvC,GACF;AAEA,EAAA,KAAA;AAAA,IACE,OAAA;AAAA,IACA,OAAO,gBAAgB,WAAgB,KAAA;AACrC,MAAA,MAAM,oBAAoB,WAAgB,KAAA,cAAA;AAC1C,MAAA,MAAM,QAAS,EAAA;AACf,MAAA,IAAI,iBAAmB,EAAA;AACrB,QAAA,MAAM,oBAAoB,oBAAqB,CAAA,KAAA;AAC/C,QAAM,MAAA,oBAAA,GAAuB,gBAAiB,CAAA,IAAA,CAAK,KAAK,CAAA;AAExD,QAAA,IAAI,cAAgB,EAAA;AAClB,UAAA,QAAA,CAAS,OAAO,CAAA;AAChB,UAAA,mBAAA,CAAoB,OAAO,CAAA;AAC3B,UAAA,IAAI,oBAAyB,KAAA,MAAA;AAC3B,YAAA,mBAAA,CAAoB,aAAa,CAAA;AAAA,SACrC,MAAA,IAEE,yBAAyB,MAAU,IAAA,oBAAA,KAAyB,eACzD,SAAU,CAAA,KAAA,EAAO,YAAY,MAChC,EAAA;AAGA,UAAA,QAAA,CAAS,SAAS,CAAA;AAClB,UAAA,mBAAA,CAAoB,OAAO,CAAA;AAC3B,UAAA,mBAAA,CAAoB,aAAa,CAAA;AAAA,SAE9B,MAAA;AAOH,UAAA,MAAM,cAAc,iBAAsB,KAAA,oBAAA;AAC1C,UAAA,IAAI,eAAe,WAAa,EAAA;AAC9B,YAAA,QAAA,CAAS,eAAe,CAAA;AACxB,YAAA,mBAAA,CAAoB,OAAO,CAAA;AAAA,WAExB,MAAA;AACH,YAAA,QAAA,CAAS,SAAS,CAAA;AAClB,YAAA,mBAAA,CAAoB,aAAa,CAAA;AAAA;AACnC;AACF;AACF,KACF;AAAA,IACA,EAAE,WAAW,IAAK;AAAA,GACpB;AAOA,EAAM,MAAA,kBAAA,GAAqB,CAAC,KAA0B,KAAA;AACpD,IAAM,MAAA,oBAAA,GAAuB,gBAAiB,CAAA,IAAA,CAAK,KAAK,CAAA;AACxD,IAAA,MAAM,qBAAqB,oBAAqB,CAAA,QAAA;AAAA,MAC9C,KAAM,CAAA;AAAA,KACR;AACA,IAAA,MAAM,aAAgB,GAAA,KAAA,CAAM,KAAU,KAAA,SAAA,GAAY,OAAU,GAAA,OAAA;AAC5D,IAAA,IAAI,KAAM,CAAA,MAAA,KAAW,IAAK,CAAA,KAAA,IAAS,kBAAoB,EAAA;AACrD,MAAoB,mBAAA,CAAA,CAAA,MAAA,EAAS,aAAa,CAAE,CAAA,CAAA;AAC5C,MAAA,QAAA,CAAS,eAAe,CAAA;AAExB,MAAI,IAAA,CAAC,eAAe,KAAO,EAAA;AACzB,QAAM,MAAA,eAAA,GAAkB,IAAK,CAAA,KAAA,CAAM,KAAM,CAAA,iBAAA;AACzC,QAAK,IAAA,CAAA,KAAA,CAAM,MAAM,iBAAoB,GAAA,UAAA;AAKrC,QAAY,SAAA,GAAA,WAAA,EAAa,WAAW,MAAM;AACxC,UAAA,IAAI,IAAK,CAAA,KAAA,EAAO,KAAM,CAAA,iBAAA,KAAsB,UAAY,EAAA;AACtD,YAAK,IAAA,CAAA,KAAA,CAAM,MAAM,iBAAoB,GAAA,eAAA;AAAA;AACvC,SACD,CAAA;AAAA;AACH;AAGF,IAAA,IAAI,KAAM,CAAA,MAAA,KAAW,IAAK,CAAA,KAAA,IAAS,oBAAyB,KAAA,MAAA;AAC1D,MAAA,QAAA,CAAS,eAAe,CAAA;AAAA,GAC5B;AACA,EAAM,MAAA,oBAAA,GAAuB,CAAC,KAA0B,KAAA;AACtD,IAAI,IAAA,KAAA,CAAM,MAAW,KAAA,IAAA,CAAK,KAAO,EAAA;AAE/B,MAAqB,oBAAA,CAAA,KAAA,GAAQ,gBAAiB,CAAA,IAAA,CAAK,KAAK,CAAA;AAAA;AAC1D,GACF;AAEA,EAAA,MAAM,OAAU,GAAA,KAAA;AAAA,IACd,IAAA;AAAA,IACA,CAAC,SAAS,OAAY,KAAA;AACpB,MAAA,IAAI,OAAS,EAAA;AACX,QAAU,SAAA,CAAA,KAAA,GAAQ,iBAAiB,OAAO,CAAA;AAC1C,QAAQ,OAAA,CAAA,gBAAA,CAAiB,kBAAkB,oBAAoB,CAAA;AAC/D,QAAQ,OAAA,CAAA,gBAAA,CAAiB,mBAAmB,kBAAkB,CAAA;AAC9D,QAAQ,OAAA,CAAA,gBAAA,CAAiB,gBAAgB,kBAAkB,CAAA;AAAA,OAExD,MAAA;AAGH,QAAA,QAAA,CAAS,eAAe,CAAA;AAExB,QAAA,IAAI,SAAc,KAAA,MAAA;AAChB,UAAA,WAAA,EAAa,aAAa,SAAS,CAAA;AACrC,QAAS,OAAA,EAAA,mBAAA,CAAoB,kBAAkB,oBAAoB,CAAA;AACnE,QAAS,OAAA,EAAA,mBAAA,CAAoB,mBAAmB,kBAAkB,CAAA;AAClE,QAAS,OAAA,EAAA,mBAAA,CAAoB,gBAAgB,kBAAkB,CAAA;AAAA;AACjE,KACF;AAAA,IACA,EAAE,WAAW,IAAK;AAAA,GACpB;AAEA,EAAM,MAAA,YAAA,GAAe,KAAM,CAAA,KAAA,EAAO,MAAM;AACtC,IAAM,MAAA,oBAAA,GAAuB,gBAAiB,CAAA,IAAA,CAAK,KAAK,CAAA;AACxD,IAAA,oBAAA,CAAqB,KACjB,GAAA,KAAA,CAAM,KAAU,KAAA,SAAA,GAAY,oBAAuB,GAAA,MAAA;AAAA,GACxD,CAAA;AAED,EAAA,WAAA,CAAY,MAAM;AAChB,IAAQ,OAAA,EAAA;AACR,IAAa,YAAA,EAAA;AAAA,GACd,CAAA;AAED,EAAA,MAAM,SAAY,GAAA,QAAA;AAAA,IAAS,MACzB,CAAC,SAAA,EAAW,kBAAkB,CAAE,CAAA,QAAA,CAAS,MAAM,KAAK;AAAA,GACtD;AAEA,EAAO,OAAA;AAAA,IACL;AAAA,GACF;AACF;AAEA,SAAS,iBAAiB,IAAoB,EAAA;AAC5C,EAAA,OAAO,IAAO,GAAA,gBAAA,CAAiB,IAAI,CAAA,CAAE,iBAAiB,MAAS,GAAA,MAAA;AACjE;;;;"}
|
package/dist/Primitive/Slot.cjs
CHANGED
|
@@ -17,15 +17,7 @@ const Slot = vue.defineComponent({
|
|
|
17
17
|
const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex];
|
|
18
18
|
delete firstNonCommentChildren.props?.ref;
|
|
19
19
|
const mergedProps = firstNonCommentChildren.props ? vue.mergeProps(attrs, firstNonCommentChildren.props) : attrs;
|
|
20
|
-
|
|
21
|
-
delete firstNonCommentChildren.props.class;
|
|
22
|
-
const cloned = vue.cloneVNode(firstNonCommentChildren, mergedProps);
|
|
23
|
-
for (const prop in mergedProps) {
|
|
24
|
-
if (prop.startsWith("on")) {
|
|
25
|
-
cloned.props ||= {};
|
|
26
|
-
cloned.props[prop] = mergedProps[prop];
|
|
27
|
-
}
|
|
28
|
-
}
|
|
20
|
+
const cloned = vue.cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps);
|
|
29
21
|
if (childrens.length === 1)
|
|
30
22
|
return cloned;
|
|
31
23
|
childrens[firstNonCommentChildrenIndex] = cloned;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slot.cjs","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"Slot.cjs","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import { cloneVNode, Comment, defineComponent, mergeProps } from 'vue'\nimport { renderSlotFragments } from '@/shared'\n\nexport const Slot = defineComponent({\n name: 'PrimitiveSlot',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n if (!slots.default)\n return null\n\n const childrens = renderSlotFragments(slots.default())\n const firstNonCommentChildrenIndex = childrens.findIndex(child => child.type !== Comment)\n if (firstNonCommentChildrenIndex === -1)\n return childrens\n\n const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex]\n\n // Remove props ref from being inferred\n delete firstNonCommentChildren.props?.ref\n\n // Manually merge props to ensure `firstNonCommentChildren.props`\n // has higher priority than `attrs` and can override `attrs`.\n // Otherwise `cloneVNode(firstNonCommentChildren, attrs)` will\n // prioritize `attrs` and override `firstNonCommentChildren.props`.\n const mergedProps = firstNonCommentChildren.props\n ? mergeProps(attrs, firstNonCommentChildren.props)\n : attrs\n const cloned = cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps)\n\n if (childrens.length === 1)\n return cloned\n\n childrens[firstNonCommentChildrenIndex] = cloned\n return childrens\n }\n },\n})\n"],"names":["defineComponent","renderSlotFragments","Comment","mergeProps","cloneVNode"],"mappings":";;;;;AAGO,MAAM,OAAOA,mBAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAO,OAAS,EAAA;AACzB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AACT,QAAO,OAAA,IAAA;AAET,MAAA,MAAM,SAAY,GAAAC,8CAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,CAAA;AACrD,MAAA,MAAM,+BAA+B,SAAU,CAAA,SAAA,CAAU,CAAS,KAAA,KAAA,KAAA,CAAM,SAASC,WAAO,CAAA;AACxF,MAAA,IAAI,4BAAiC,KAAA,EAAA;AACnC,QAAO,OAAA,SAAA;AAET,MAAM,MAAA,uBAAA,GAA0B,UAAU,4BAA4B,CAAA;AAGtE,MAAA,OAAO,wBAAwB,KAAO,EAAA,GAAA;AAMtC,MAAA,MAAM,cAAc,uBAAwB,CAAA,KAAA,GACxCC,eAAW,KAAO,EAAA,uBAAA,CAAwB,KAAK,CAC/C,GAAA,KAAA;AACJ,MAAM,MAAA,MAAA,GAASC,eAAW,EAAE,GAAG,yBAAyB,KAAO,EAAA,EAAG,EAAA,EAAG,WAAW,CAAA;AAEhF,MAAA,IAAI,UAAU,MAAW,KAAA,CAAA;AACvB,QAAO,OAAA,MAAA;AAET,MAAA,SAAA,CAAU,4BAA4B,CAAI,GAAA,MAAA;AAC1C,MAAO,OAAA,SAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}
|
package/dist/Primitive/Slot.js
CHANGED
|
@@ -15,15 +15,7 @@ const Slot = defineComponent({
|
|
|
15
15
|
const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex];
|
|
16
16
|
delete firstNonCommentChildren.props?.ref;
|
|
17
17
|
const mergedProps = firstNonCommentChildren.props ? mergeProps(attrs, firstNonCommentChildren.props) : attrs;
|
|
18
|
-
|
|
19
|
-
delete firstNonCommentChildren.props.class;
|
|
20
|
-
const cloned = cloneVNode(firstNonCommentChildren, mergedProps);
|
|
21
|
-
for (const prop in mergedProps) {
|
|
22
|
-
if (prop.startsWith("on")) {
|
|
23
|
-
cloned.props ||= {};
|
|
24
|
-
cloned.props[prop] = mergedProps[prop];
|
|
25
|
-
}
|
|
26
|
-
}
|
|
18
|
+
const cloned = cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps);
|
|
27
19
|
if (childrens.length === 1)
|
|
28
20
|
return cloned;
|
|
29
21
|
childrens[firstNonCommentChildrenIndex] = cloned;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slot.js","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"Slot.js","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import { cloneVNode, Comment, defineComponent, mergeProps } from 'vue'\nimport { renderSlotFragments } from '@/shared'\n\nexport const Slot = defineComponent({\n name: 'PrimitiveSlot',\n inheritAttrs: false,\n setup(_, { attrs, slots }) {\n return () => {\n if (!slots.default)\n return null\n\n const childrens = renderSlotFragments(slots.default())\n const firstNonCommentChildrenIndex = childrens.findIndex(child => child.type !== Comment)\n if (firstNonCommentChildrenIndex === -1)\n return childrens\n\n const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex]\n\n // Remove props ref from being inferred\n delete firstNonCommentChildren.props?.ref\n\n // Manually merge props to ensure `firstNonCommentChildren.props`\n // has higher priority than `attrs` and can override `attrs`.\n // Otherwise `cloneVNode(firstNonCommentChildren, attrs)` will\n // prioritize `attrs` and override `firstNonCommentChildren.props`.\n const mergedProps = firstNonCommentChildren.props\n ? mergeProps(attrs, firstNonCommentChildren.props)\n : attrs\n const cloned = cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps)\n\n if (childrens.length === 1)\n return cloned\n\n childrens[firstNonCommentChildrenIndex] = cloned\n return childrens\n }\n },\n})\n"],"names":[],"mappings":";;;AAGO,MAAM,OAAO,eAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAO,OAAS,EAAA;AACzB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AACT,QAAO,OAAA,IAAA;AAET,MAAA,MAAM,SAAY,GAAA,mBAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,CAAA;AACrD,MAAA,MAAM,+BAA+B,SAAU,CAAA,SAAA,CAAU,CAAS,KAAA,KAAA,KAAA,CAAM,SAAS,OAAO,CAAA;AACxF,MAAA,IAAI,4BAAiC,KAAA,EAAA;AACnC,QAAO,OAAA,SAAA;AAET,MAAM,MAAA,uBAAA,GAA0B,UAAU,4BAA4B,CAAA;AAGtE,MAAA,OAAO,wBAAwB,KAAO,EAAA,GAAA;AAMtC,MAAA,MAAM,cAAc,uBAAwB,CAAA,KAAA,GACxC,WAAW,KAAO,EAAA,uBAAA,CAAwB,KAAK,CAC/C,GAAA,KAAA;AACJ,MAAM,MAAA,MAAA,GAAS,WAAW,EAAE,GAAG,yBAAyB,KAAO,EAAA,EAAG,EAAA,EAAG,WAAW,CAAA;AAEhF,MAAA,IAAI,UAAU,MAAW,KAAA,CAAA;AACvB,QAAO,OAAA,MAAA;AAET,MAAA,SAAA,CAAU,4BAA4B,CAAI,GAAA,MAAA;AAC1C,MAAO,OAAA,SAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}
|
|
@@ -36,7 +36,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
36
36
|
props: {
|
|
37
37
|
modelValue: {},
|
|
38
38
|
max: { default: DEFAULT_MAX },
|
|
39
|
-
getValueLabel: { type: Function, default: (value, max) => `${Math.round(value / max * DEFAULT_MAX)}%` },
|
|
39
|
+
getValueLabel: { type: Function, default: (value, max) => isNumber(value) ? `${Math.round(value / max * DEFAULT_MAX)}%` : void 0 },
|
|
40
|
+
getValueText: {},
|
|
40
41
|
asChild: { type: Boolean },
|
|
41
42
|
as: {}
|
|
42
43
|
},
|
|
@@ -90,7 +91,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
90
91
|
"aria-valuemax": vue.unref(max),
|
|
91
92
|
"aria-valuemin": 0,
|
|
92
93
|
"aria-valuenow": isNumber(vue.unref(modelValue)) ? vue.unref(modelValue) : void 0,
|
|
93
|
-
"aria-valuetext": _ctx.
|
|
94
|
+
"aria-valuetext": _ctx.getValueText?.(vue.unref(modelValue), vue.unref(max)),
|
|
94
95
|
"aria-label": _ctx.getValueLabel(vue.unref(modelValue), vue.unref(max)),
|
|
95
96
|
role: "progressbar",
|
|
96
97
|
"data-state": progressState.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressRoot.cjs","sources":["../../src/Progress/ProgressRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"ProgressRoot.cjs","sources":["../../src/Progress/ProgressRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, isNullish, useForwardExpose } from '@/shared'\n\nexport type ProgressRootEmits = {\n /** Event handler called when the progress value changes */\n 'update:modelValue': [value: string[] | undefined]\n /** Event handler called when the max value changes */\n 'update:max': [value: number]\n}\n\nexport interface ProgressRootProps extends PrimitiveProps {\n /** The progress value. Can be bind as `v-model`. */\n modelValue?: number | null\n /** The maximum progress value. */\n max?: number\n /**\n * A function to get the accessible label text in a human-readable format.\n *\n * If not provided, the value label will be read as the numeric value as a percentage of the max value.\n */\n getValueLabel?: (value: number | null | undefined, max: number) => string | undefined\n /**\n * A function to get the accessible value text representing the current value in a human-readable format.\n */\n getValueText?: (value: number | null | undefined, max: number) => string | undefined\n}\n\nconst DEFAULT_MAX = 100\n\ninterface ProgressRootContext {\n modelValue?: Readonly<Ref<ProgressRootProps['modelValue']>>\n max: Readonly<Ref<number>>\n progressState: ComputedRef<ProgressState>\n}\n\nexport const [injectProgressRootContext, provideProgressRootContext]\n = createContext<ProgressRootContext>('ProgressRoot')\n\nexport type ProgressState = 'indeterminate' | 'loading' | 'complete'\n\nconst isNumber = (v: any): v is number => typeof v === 'number'\n\nfunction validateValue(value: any, max: number): number | null {\n const isValidValueError\n = isNullish(value)\n || (isNumber(value) && !Number.isNaN(value) && value <= max && value >= 0)\n\n if (isValidValueError)\n return value as null\n\n console.error(`Invalid prop \\`value\\` of value \\`${value}\\` supplied to \\`ProgressRoot\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`)\n return null\n}\n\nfunction validateMax(max: number): number {\n const isValidMaxError = isNumber(max) && !Number.isNaN(max) && max > 0\n\n if (isValidMaxError)\n return max\n\n console.error(\n `Invalid prop \\`max\\` of value \\`${max}\\` supplied to \\`ProgressRoot\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`,\n )\n return DEFAULT_MAX\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, nextTick, watch } from 'vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = withDefaults(defineProps<ProgressRootProps>(), {\n max: DEFAULT_MAX,\n getValueLabel: (value: number | null | undefined, max: number) =>\n isNumber(value) ? `${Math.round((value / max) * DEFAULT_MAX)}%` : undefined,\n})\n\nconst emit = defineEmits<ProgressRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst modelValue = useVModel(props, 'modelValue', emit, {\n passive: (props.modelValue === undefined) as false,\n})\n\nconst max = useVModel(props, 'max', emit, {\n passive: (props.max === undefined) as false,\n})\n\n// ------- Watch for correct values -------\nwatch(\n () => modelValue.value,\n async (value) => {\n const correctedValue = validateValue(value, props.max)\n if (correctedValue !== value) {\n await nextTick()\n modelValue.value = correctedValue\n }\n },\n { immediate: true },\n)\n\nwatch(\n () => props.max,\n (newMax) => {\n const correctedMax = validateMax(props.max)\n if (correctedMax !== newMax)\n max.value = correctedMax\n },\n { immediate: true },\n)\n// ------- End of watch for correct values -------\n\nconst progressState = computed<ProgressState>(() => {\n if (isNullish(modelValue.value))\n return 'indeterminate'\n if (modelValue.value === max.value)\n return 'complete'\n return 'loading'\n})\n\nprovideProgressRootContext({\n modelValue,\n max,\n progressState,\n})\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n :aria-valuemax=\"max\"\n :aria-valuemin=\"0\"\n :aria-valuenow=\"isNumber(modelValue) ? modelValue : undefined\"\n :aria-valuetext=\"getValueText?.(modelValue, max)\"\n :aria-label=\"getValueLabel(modelValue, max)\"\n role=\"progressbar\"\n :data-state=\"progressState\"\n :data-value=\"modelValue ?? undefined\"\n :data-max=\"max\"\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n</template>\n"],"names":["createContext","isNullish","useForwardExpose","useVModel","watch","nextTick","computed"],"mappings":";;;;;;;;;AA6BA,MAAM,WAAc,GAAA,GAAA;AAQb,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/DA,mCAAmC,cAAc;AAIrD,MAAM,QAAW,GAAA,CAAC,CAAwB,KAAA,OAAO,CAAM,KAAA,QAAA;AAEvD,SAAS,aAAA,CAAc,OAAY,GAA4B,EAAA;AAC7D,EAAA,MAAM,iBACF,GAAAC,wBAAA,CAAU,KAAK,CAAA,IACX,SAAS,KAAK,CAAA,IAAK,CAAC,MAAA,CAAO,KAAM,CAAA,KAAK,CAAK,IAAA,KAAA,IAAS,OAAO,KAAS,IAAA,CAAA;AAE5E,EAAI,IAAA,iBAAA;AACF,IAAO,OAAA,KAAA;AAET,EAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA;AAAA,8CAAA,EAEV,WAAW,CAAA;AAAA;;AAAA,uBAGnC,CAAA,CAAA;AACtB,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,YAAY,GAAqB,EAAA;AACxC,EAAM,MAAA,eAAA,GAAkB,SAAS,GAAG,CAAA,IAAK,CAAC,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,IAAK,GAAM,GAAA,CAAA;AAErE,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,GAAA;AAET,EAAQ,OAAA,CAAA,KAAA;AAAA,IACN,CAAA,gCAAA,EAAmC,GAAG,CAAA,mGAAA,EAAsG,WAAW,CAAA,GAAA;AAAA,GACzJ;AACA,EAAO,OAAA,WAAA;AACT;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiBC,wCAAA,EAAA;AACjB,IAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,IAAM,EAAA;AAAA,MACtD,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,GAAM,GAAAA,cAAA,CAAU,KAAO,EAAA,KAAA,EAAO,IAAM,EAAA;AAAA,MACxC,OAAA,EAAU,MAAM,GAAQ,KAAA;AAAA,KACzB,CAAA;AAGD,IAAAC,SAAA;AAAA,MACE,MAAM,UAAW,CAAA,KAAA;AAAA,MACjB,OAAO,KAAU,KAAA;AACf,QAAA,MAAM,cAAiB,GAAA,aAAA,CAAc,KAAO,EAAA,KAAA,CAAM,GAAG,CAAA;AACrD,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAMC,YAAS,EAAA;AACf,UAAA,UAAA,CAAW,KAAQ,GAAA,cAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAEA,IAAAD,SAAA;AAAA,MACE,MAAM,KAAM,CAAA,GAAA;AAAA,MACZ,CAAC,MAAW,KAAA;AACV,QAAM,MAAA,YAAA,GAAe,WAAY,CAAA,KAAA,CAAM,GAAG,CAAA;AAC1C,QAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,UAAA,GAAA,CAAI,KAAQ,GAAA,YAAA;AAAA,OAChB;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAGA,IAAM,MAAA,aAAA,GAAgBE,aAAwB,MAAM;AAClD,MAAI,IAAAL,wBAAA,CAAU,WAAW,KAAK,CAAA;AAC5B,QAAO,OAAA,eAAA;AACT,MAAI,IAAA,UAAA,CAAW,UAAU,GAAI,CAAA,KAAA;AAC3B,QAAO,OAAA,UAAA;AACT,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAA2B,0BAAA,CAAA;AAAA,MACzB,UAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -34,7 +34,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
34
34
|
props: {
|
|
35
35
|
modelValue: {},
|
|
36
36
|
max: { default: DEFAULT_MAX },
|
|
37
|
-
getValueLabel: { type: Function, default: (value, max) => `${Math.round(value / max * DEFAULT_MAX)}%` },
|
|
37
|
+
getValueLabel: { type: Function, default: (value, max) => isNumber(value) ? `${Math.round(value / max * DEFAULT_MAX)}%` : void 0 },
|
|
38
|
+
getValueText: {},
|
|
38
39
|
asChild: { type: Boolean },
|
|
39
40
|
as: {}
|
|
40
41
|
},
|
|
@@ -88,7 +89,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
88
89
|
"aria-valuemax": unref(max),
|
|
89
90
|
"aria-valuemin": 0,
|
|
90
91
|
"aria-valuenow": isNumber(unref(modelValue)) ? unref(modelValue) : void 0,
|
|
91
|
-
"aria-valuetext": _ctx.
|
|
92
|
+
"aria-valuetext": _ctx.getValueText?.(unref(modelValue), unref(max)),
|
|
92
93
|
"aria-label": _ctx.getValueLabel(unref(modelValue), unref(max)),
|
|
93
94
|
role: "progressbar",
|
|
94
95
|
"data-state": progressState.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressRoot.js","sources":["../../src/Progress/ProgressRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"ProgressRoot.js","sources":["../../src/Progress/ProgressRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef, Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, isNullish, useForwardExpose } from '@/shared'\n\nexport type ProgressRootEmits = {\n /** Event handler called when the progress value changes */\n 'update:modelValue': [value: string[] | undefined]\n /** Event handler called when the max value changes */\n 'update:max': [value: number]\n}\n\nexport interface ProgressRootProps extends PrimitiveProps {\n /** The progress value. Can be bind as `v-model`. */\n modelValue?: number | null\n /** The maximum progress value. */\n max?: number\n /**\n * A function to get the accessible label text in a human-readable format.\n *\n * If not provided, the value label will be read as the numeric value as a percentage of the max value.\n */\n getValueLabel?: (value: number | null | undefined, max: number) => string | undefined\n /**\n * A function to get the accessible value text representing the current value in a human-readable format.\n */\n getValueText?: (value: number | null | undefined, max: number) => string | undefined\n}\n\nconst DEFAULT_MAX = 100\n\ninterface ProgressRootContext {\n modelValue?: Readonly<Ref<ProgressRootProps['modelValue']>>\n max: Readonly<Ref<number>>\n progressState: ComputedRef<ProgressState>\n}\n\nexport const [injectProgressRootContext, provideProgressRootContext]\n = createContext<ProgressRootContext>('ProgressRoot')\n\nexport type ProgressState = 'indeterminate' | 'loading' | 'complete'\n\nconst isNumber = (v: any): v is number => typeof v === 'number'\n\nfunction validateValue(value: any, max: number): number | null {\n const isValidValueError\n = isNullish(value)\n || (isNumber(value) && !Number.isNaN(value) && value <= max && value >= 0)\n\n if (isValidValueError)\n return value as null\n\n console.error(`Invalid prop \\`value\\` of value \\`${value}\\` supplied to \\`ProgressRoot\\`. The \\`value\\` prop must be:\n - a positive number\n - less than the value passed to \\`max\\` (or ${DEFAULT_MAX} if no \\`max\\` prop is set)\n - \\`null\\` or \\`undefined\\` if the progress is indeterminate.\n\nDefaulting to \\`null\\`.`)\n return null\n}\n\nfunction validateMax(max: number): number {\n const isValidMaxError = isNumber(max) && !Number.isNaN(max) && max > 0\n\n if (isValidMaxError)\n return max\n\n console.error(\n `Invalid prop \\`max\\` of value \\`${max}\\` supplied to \\`ProgressRoot\\`. Only numbers greater than 0 are valid max values. Defaulting to \\`${DEFAULT_MAX}\\`.`,\n )\n return DEFAULT_MAX\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, nextTick, watch } from 'vue'\nimport { Primitive } from '@/Primitive'\n\nconst props = withDefaults(defineProps<ProgressRootProps>(), {\n max: DEFAULT_MAX,\n getValueLabel: (value: number | null | undefined, max: number) =>\n isNumber(value) ? `${Math.round((value / max) * DEFAULT_MAX)}%` : undefined,\n})\n\nconst emit = defineEmits<ProgressRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nuseForwardExpose()\nconst modelValue = useVModel(props, 'modelValue', emit, {\n passive: (props.modelValue === undefined) as false,\n})\n\nconst max = useVModel(props, 'max', emit, {\n passive: (props.max === undefined) as false,\n})\n\n// ------- Watch for correct values -------\nwatch(\n () => modelValue.value,\n async (value) => {\n const correctedValue = validateValue(value, props.max)\n if (correctedValue !== value) {\n await nextTick()\n modelValue.value = correctedValue\n }\n },\n { immediate: true },\n)\n\nwatch(\n () => props.max,\n (newMax) => {\n const correctedMax = validateMax(props.max)\n if (correctedMax !== newMax)\n max.value = correctedMax\n },\n { immediate: true },\n)\n// ------- End of watch for correct values -------\n\nconst progressState = computed<ProgressState>(() => {\n if (isNullish(modelValue.value))\n return 'indeterminate'\n if (modelValue.value === max.value)\n return 'complete'\n return 'loading'\n})\n\nprovideProgressRootContext({\n modelValue,\n max,\n progressState,\n})\n</script>\n\n<template>\n <Primitive\n :as-child=\"asChild\"\n :as=\"as\"\n :aria-valuemax=\"max\"\n :aria-valuemin=\"0\"\n :aria-valuenow=\"isNumber(modelValue) ? modelValue : undefined\"\n :aria-valuetext=\"getValueText?.(modelValue, max)\"\n :aria-label=\"getValueLabel(modelValue, max)\"\n role=\"progressbar\"\n :data-state=\"progressState\"\n :data-value=\"modelValue ?? undefined\"\n :data-max=\"max\"\n >\n <slot :model-value=\"modelValue\" />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;AA6BA,MAAM,WAAc,GAAA,GAAA;AAQb,MAAM,CAAC,yBAAA,EAA2B,0BAA0B,CAAA,GAC/D,cAAmC,cAAc;AAIrD,MAAM,QAAW,GAAA,CAAC,CAAwB,KAAA,OAAO,CAAM,KAAA,QAAA;AAEvD,SAAS,aAAA,CAAc,OAAY,GAA4B,EAAA;AAC7D,EAAA,MAAM,iBACF,GAAA,SAAA,CAAU,KAAK,CAAA,IACX,SAAS,KAAK,CAAA,IAAK,CAAC,MAAA,CAAO,KAAM,CAAA,KAAK,CAAK,IAAA,KAAA,IAAS,OAAO,KAAS,IAAA,CAAA;AAE5E,EAAI,IAAA,iBAAA;AACF,IAAO,OAAA,KAAA;AAET,EAAQ,OAAA,CAAA,KAAA,CAAM,qCAAqC,KAAK,CAAA;AAAA;AAAA,8CAAA,EAEV,WAAW,CAAA;AAAA;;AAAA,uBAGnC,CAAA,CAAA;AACtB,EAAO,OAAA,IAAA;AACT;AAEA,SAAS,YAAY,GAAqB,EAAA;AACxC,EAAM,MAAA,eAAA,GAAkB,SAAS,GAAG,CAAA,IAAK,CAAC,MAAO,CAAA,KAAA,CAAM,GAAG,CAAA,IAAK,GAAM,GAAA,CAAA;AAErE,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,GAAA;AAET,EAAQ,OAAA,CAAA,KAAA;AAAA,IACN,CAAA,gCAAA,EAAmC,GAAG,CAAA,mGAAA,EAAsG,WAAW,CAAA,GAAA;AAAA,GACzJ;AACA,EAAO,OAAA,WAAA;AACT;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAMd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAiB,gBAAA,EAAA;AACjB,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,IAAM,EAAA;AAAA,MACtD,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAA,MAAM,GAAM,GAAA,SAAA,CAAU,KAAO,EAAA,KAAA,EAAO,IAAM,EAAA;AAAA,MACxC,OAAA,EAAU,MAAM,GAAQ,KAAA;AAAA,KACzB,CAAA;AAGD,IAAA,KAAA;AAAA,MACE,MAAM,UAAW,CAAA,KAAA;AAAA,MACjB,OAAO,KAAU,KAAA;AACf,QAAA,MAAM,cAAiB,GAAA,aAAA,CAAc,KAAO,EAAA,KAAA,CAAM,GAAG,CAAA;AACrD,QAAA,IAAI,mBAAmB,KAAO,EAAA;AAC5B,UAAA,MAAM,QAAS,EAAA;AACf,UAAA,UAAA,CAAW,KAAQ,GAAA,cAAA;AAAA;AACrB,OACF;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAEA,IAAA,KAAA;AAAA,MACE,MAAM,KAAM,CAAA,GAAA;AAAA,MACZ,CAAC,MAAW,KAAA;AACV,QAAM,MAAA,YAAA,GAAe,WAAY,CAAA,KAAA,CAAM,GAAG,CAAA;AAC1C,QAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,UAAA,GAAA,CAAI,KAAQ,GAAA,YAAA;AAAA,OAChB;AAAA,MACA,EAAE,WAAW,IAAK;AAAA,KACpB;AAGA,IAAM,MAAA,aAAA,GAAgB,SAAwB,MAAM;AAClD,MAAI,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAC5B,QAAO,OAAA,eAAA;AACT,MAAI,IAAA,UAAA,CAAW,UAAU,GAAI,CAAA,KAAA;AAC3B,QAAO,OAAA,UAAA;AACT,MAAO,OAAA,SAAA;AAAA,KACR,CAAA;AAED,IAA2B,0BAAA,CAAA;AAAA,MACzB,UAAA;AAAA,MACA,GAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -32,6 +32,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
32
32
|
const isFormControl = shared_useFormControl.useFormControl(triggerElement);
|
|
33
33
|
const ariaLabel = vue.computed(() => props.id && triggerElement.value ? document.querySelector(`[for="${props.id}"]`)?.innerText ?? props.value : void 0);
|
|
34
34
|
function handleClick(event) {
|
|
35
|
+
if (props.disabled)
|
|
36
|
+
return;
|
|
35
37
|
RadioGroup_utils.handleSelect(event, props.value, (ev) => {
|
|
36
38
|
emits("select", ev);
|
|
37
39
|
if (ev?.defaultPrevented)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.cjs","sources":["../../src/RadioGroup/Radio.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"Radio.cjs","sources":["../../src/RadioGroup/Radio.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { SelectEvent } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\n\nexport type RadioEmits = {\n 'update:checked': [value: boolean]\n 'select': [SelectEvent]\n}\n\nexport interface RadioProps extends PrimitiveProps, FormFieldProps {\n id?: string\n /** The value given as data when submitted with a `name`. */\n value?: AcceptableValue\n /** When `true`, prevents the user from interacting with the radio item. */\n disabled?: boolean\n checked?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, toRefs } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { useFormControl, useForwardExpose } from '@/shared'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\nimport { handleSelect } from './utils'\n\nconst props = withDefaults(defineProps<RadioProps>(), {\n disabled: false,\n checked: undefined,\n as: 'button',\n})\nconst emits = defineEmits<RadioEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current checked state */\n checked: typeof checked.value\n }) => any\n}>()\n\nconst checked = useVModel(props, 'checked', emits, {\n passive: (props.checked === undefined) as false,\n})\n\nconst { value } = toRefs(props)\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst isFormControl = useFormControl(triggerElement)\n\nconst ariaLabel = computed(() => props.id && triggerElement.value ? (document.querySelector(`[for=\"${props.id}\"]`) as HTMLLabelElement)?.innerText ?? props.value : undefined)\n\nfunction handleClick(event: MouseEvent) {\n if (props.disabled)\n return\n\n handleSelect(event, props.value, (ev) => {\n emits('select', ev)\n if (ev?.defaultPrevented)\n return\n\n checked.value = true\n if (isFormControl.value) {\n // if radio is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect radio updates.\n ev.stopPropagation()\n }\n })\n}\n</script>\n\n<template>\n <Primitive\n v-bind=\"$attrs\"\n :id=\"id\"\n :ref=\"forwardRef\"\n role=\"radio\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :as=\"as\"\n :aria-checked=\"checked\"\n :aria-label=\"ariaLabel\"\n :as-child=\"asChild\"\n :disabled=\"disabled ? '' : undefined\"\n :data-state=\"checked ? 'checked' : 'unchecked'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :value=\"value\"\n :required=\"required\"\n :name=\"name\"\n @click.stop=\"handleClick\"\n >\n <slot :checked=\"checked\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n type=\"radio\"\n tabindex=\"-1\"\n :value=\"value\"\n :checked=\"!!checked\"\n :name=\"name\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </Primitive>\n</template>\n"],"names":["useVModel","toRefs","useForwardExpose","useFormControl","computed","handleSelect"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAA,MAAM,OAAU,GAAAA,cAAA,CAAU,KAAO,EAAA,SAAA,EAAW,KAAO,EAAA;AAAA,MACjD,OAAA,EAAU,MAAM,OAAY,KAAA;AAAA,KAC7B,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAU,GAAAC,UAAA,CAAO,KAAK,CAAA;AAC9B,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmBC,wCAAiB,EAAA;AACxE,IAAM,MAAA,aAAA,GAAgBC,qCAAe,cAAc,CAAA;AAEnD,IAAA,MAAM,YAAYC,YAAS,CAAA,MAAM,KAAM,CAAA,EAAA,IAAM,eAAe,KAAS,GAAA,QAAA,CAAS,aAAc,CAAA,CAAA,MAAA,EAAS,MAAM,EAAE,CAAA,EAAA,CAAI,GAAwB,SAAa,IAAA,KAAA,CAAM,QAAQ,MAAS,CAAA;AAE7K,IAAA,SAAS,YAAY,KAAmB,EAAA;AACtC,MAAA,IAAI,KAAM,CAAA,QAAA;AACR,QAAA;AAEF,MAAAC,6BAAA,CAAa,KAAO,EAAA,KAAA,CAAM,KAAO,EAAA,CAAC,EAAO,KAAA;AACvC,QAAA,KAAA,CAAM,UAAU,EAAE,CAAA;AAClB,QAAA,IAAI,EAAI,EAAA,gBAAA;AACN,UAAA;AAEF,QAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA;AAChB,QAAA,IAAI,cAAc,KAAO,EAAA;AAIvB,UAAA,EAAA,CAAG,eAAgB,EAAA;AAAA;AACrB,OACD,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/RadioGroup/Radio.js
CHANGED
|
@@ -30,6 +30,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
30
30
|
const isFormControl = useFormControl(triggerElement);
|
|
31
31
|
const ariaLabel = computed(() => props.id && triggerElement.value ? document.querySelector(`[for="${props.id}"]`)?.innerText ?? props.value : void 0);
|
|
32
32
|
function handleClick(event) {
|
|
33
|
+
if (props.disabled)
|
|
34
|
+
return;
|
|
33
35
|
handleSelect(event, props.value, (ev) => {
|
|
34
36
|
emits("select", ev);
|
|
35
37
|
if (ev?.defaultPrevented)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Radio.js","sources":["../../src/RadioGroup/Radio.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"Radio.js","sources":["../../src/RadioGroup/Radio.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { SelectEvent } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue, FormFieldProps } from '@/shared/types'\n\nexport type RadioEmits = {\n 'update:checked': [value: boolean]\n 'select': [SelectEvent]\n}\n\nexport interface RadioProps extends PrimitiveProps, FormFieldProps {\n id?: string\n /** The value given as data when submitted with a `name`. */\n value?: AcceptableValue\n /** When `true`, prevents the user from interacting with the radio item. */\n disabled?: boolean\n checked?: boolean\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { computed, toRefs } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { useFormControl, useForwardExpose } from '@/shared'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\nimport { handleSelect } from './utils'\n\nconst props = withDefaults(defineProps<RadioProps>(), {\n disabled: false,\n checked: undefined,\n as: 'button',\n})\nconst emits = defineEmits<RadioEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current checked state */\n checked: typeof checked.value\n }) => any\n}>()\n\nconst checked = useVModel(props, 'checked', emits, {\n passive: (props.checked === undefined) as false,\n})\n\nconst { value } = toRefs(props)\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\nconst isFormControl = useFormControl(triggerElement)\n\nconst ariaLabel = computed(() => props.id && triggerElement.value ? (document.querySelector(`[for=\"${props.id}\"]`) as HTMLLabelElement)?.innerText ?? props.value : undefined)\n\nfunction handleClick(event: MouseEvent) {\n if (props.disabled)\n return\n\n handleSelect(event, props.value, (ev) => {\n emits('select', ev)\n if (ev?.defaultPrevented)\n return\n\n checked.value = true\n if (isFormControl.value) {\n // if radio is in a form, stop propagation from the button so that we only propagate\n // one click event (from the input). We propagate changes from an input so that native\n // form validation works and form events reflect radio updates.\n ev.stopPropagation()\n }\n })\n}\n</script>\n\n<template>\n <Primitive\n v-bind=\"$attrs\"\n :id=\"id\"\n :ref=\"forwardRef\"\n role=\"radio\"\n :type=\"as === 'button' ? 'button' : undefined\"\n :as=\"as\"\n :aria-checked=\"checked\"\n :aria-label=\"ariaLabel\"\n :as-child=\"asChild\"\n :disabled=\"disabled ? '' : undefined\"\n :data-state=\"checked ? 'checked' : 'unchecked'\"\n :data-disabled=\"disabled ? '' : undefined\"\n :value=\"value\"\n :required=\"required\"\n :name=\"name\"\n @click.stop=\"handleClick\"\n >\n <slot :checked=\"checked\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n type=\"radio\"\n tabindex=\"-1\"\n :value=\"value\"\n :checked=\"!!checked\"\n :name=\"name\"\n :disabled=\"disabled\"\n :required=\"required\"\n />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAA,MAAM,OAAU,GAAA,SAAA,CAAU,KAAO,EAAA,SAAA,EAAW,KAAO,EAAA;AAAA,MACjD,OAAA,EAAU,MAAM,OAAY,KAAA;AAAA,KAC7B,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAU,GAAA,MAAA,CAAO,KAAK,CAAA;AAC9B,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmB,gBAAiB,EAAA;AACxE,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AAEnD,IAAA,MAAM,YAAY,QAAS,CAAA,MAAM,KAAM,CAAA,EAAA,IAAM,eAAe,KAAS,GAAA,QAAA,CAAS,aAAc,CAAA,CAAA,MAAA,EAAS,MAAM,EAAE,CAAA,EAAA,CAAI,GAAwB,SAAa,IAAA,KAAA,CAAM,QAAQ,MAAS,CAAA;AAE7K,IAAA,SAAS,YAAY,KAAmB,EAAA;AACtC,MAAA,IAAI,KAAM,CAAA,QAAA;AACR,QAAA;AAEF,MAAA,YAAA,CAAa,KAAO,EAAA,KAAA,CAAM,KAAO,EAAA,CAAC,EAAO,KAAA;AACvC,QAAA,KAAA,CAAM,UAAU,EAAE,CAAA;AAClB,QAAA,IAAI,EAAI,EAAA,gBAAA;AACN,UAAA;AAEF,QAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA;AAChB,QAAA,IAAI,cAAc,KAAO,EAAA;AAIvB,UAAA,EAAA,CAAG,eAAgB,EAAA;AAAA;AACrB,OACD,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroupItem.cjs","sources":["../../src/RadioGroup/RadioGroupItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef } from 'vue'\nimport type { RadioProps } from './Radio.vue'\nimport type { SelectEvent } from './utils'\nimport { createContext, useForwardExpose } from '@/shared'\n\nexport interface RadioGroupItemProps extends Omit<RadioProps, 'checked'> {}\nexport type RadioGroupItemEmits = {\n select: [event: SelectEvent]\n}\n\ninterface RadioGroupItemContext {\n disabled: ComputedRef<boolean>\n checked: ComputedRef<boolean>\n}\n\nexport const [injectRadioGroupItemContext, provideRadiogroupItemContext]\n = createContext<RadioGroupItemContext>('RadioGroupItem')\n</script>\n\n<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"RadioGroupItem.cjs","sources":["../../src/RadioGroup/RadioGroupItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef } from 'vue'\nimport type { RadioProps } from './Radio.vue'\nimport type { SelectEvent } from './utils'\nimport { createContext, useForwardExpose } from '@/shared'\n\nexport interface RadioGroupItemProps extends Omit<RadioProps, 'checked'> {}\nexport type RadioGroupItemEmits = {\n select: [event: SelectEvent]\n}\n\ninterface RadioGroupItemContext {\n disabled: ComputedRef<boolean>\n checked: ComputedRef<boolean>\n}\n\nexport const [injectRadioGroupItemContext, provideRadiogroupItemContext]\n = createContext<RadioGroupItemContext>('RadioGroupItem')\n</script>\n\n<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport { isEqual } from 'ohash'\nimport { computed, ref } from 'vue'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport Radio from './Radio.vue'\nimport { injectRadioGroupRootContext } from './RadioGroupRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<RadioGroupItemProps>(), {\n disabled: false,\n as: 'button',\n})\n\nconst emits = defineEmits<RadioGroupItemEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current checked state */\n checked: typeof checked.value\n /** Required state */\n required: typeof required.value\n /** Disabled state */\n disabled: typeof disabled.value\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst rootContext = injectRadioGroupRootContext()\n\nconst disabled = computed(() => rootContext.disabled.value || props.disabled)\nconst required = computed(() => rootContext.required.value || props.required)\nconst checked = computed(() => isEqual(rootContext.modelValue?.value, props.value))\n\nprovideRadiogroupItemContext({ disabled, checked })\n\nconst isArrowKeyPressed = ref(false)\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']\n\nuseEventListener('keydown', (event) => {\n if (ARROW_KEYS.includes(event.key))\n isArrowKeyPressed.value = true\n})\nuseEventListener('keyup', () => {\n isArrowKeyPressed.value = false\n})\n\nfunction handleFocus() {\n setTimeout(() => {\n /**\n * Our `RovingFocusGroup` will focus the radio when navigating with arrow keys\n * and we need to 'check' it in that case. We click it to 'check' it (instead\n * of updating `context.value`) so that the radio change event fires.\n */\n if (isArrowKeyPressed.value)\n currentElement.value?.click()\n }, 0)\n}\n</script>\n\n<template>\n <RovingFocusItem\n :checked=\"checked\"\n :disabled=\"disabled\"\n as-child\n :focusable=\"!disabled\"\n :active=\"checked\"\n >\n <Radio\n v-bind=\"{ ...$attrs, ...props }\"\n :ref=\"forwardRef\"\n :checked=\"checked\"\n :required=\"required\"\n :disabled=\"disabled\"\n @update:checked=\"rootContext.changeModelValue(value)\"\n @select=\"emits('select', $event)\"\n @keydown.enter.prevent\n @focus=\"handleFocus\"\n >\n <slot\n :checked=\"checked\"\n :required=\"required\"\n :disabled=\"disabled\"\n />\n </Radio>\n </RovingFocusItem>\n</template>\n"],"names":["createContext","useForwardExpose","injectRadioGroupRootContext","computed","isEqual","ref","useEventListener"],"mappings":";;;;;;;;;;;AAgBO,MAAM,CAAC,2BAAA,EAA6B,4BAA4B,CAAA,GACnEA,mCAAqC,gBAAgB;;;;;;;;;;;;;;;;;AAezD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAad,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AAExD,IAAA,MAAM,cAAcC,qDAA4B,EAAA;AAEhD,IAAA,MAAM,WAAWC,YAAS,CAAA,MAAM,YAAY,QAAS,CAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAC5E,IAAA,MAAM,WAAWA,YAAS,CAAA,MAAM,YAAY,QAAS,CAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAC5E,IAAM,MAAA,OAAA,GAAUA,aAAS,MAAMC,aAAA,CAAQ,YAAY,UAAY,EAAA,KAAA,EAAO,KAAM,CAAA,KAAK,CAAC,CAAA;AAElF,IAA6B,4BAAA,CAAA,EAAE,QAAU,EAAA,OAAA,EAAS,CAAA;AAElD,IAAM,MAAA,iBAAA,GAAoBC,QAAI,KAAK,CAAA;AACnC,IAAA,MAAM,UAAa,GAAA,CAAC,SAAW,EAAA,WAAA,EAAa,aAAa,YAAY,CAAA;AAErE,IAAiBC,qBAAA,CAAA,SAAA,EAAW,CAAC,KAAU,KAAA;AACrC,MAAI,IAAA,UAAA,CAAW,QAAS,CAAA,KAAA,CAAM,GAAG,CAAA;AAC/B,QAAA,iBAAA,CAAkB,KAAQ,GAAA,IAAA;AAAA,KAC7B,CAAA;AACD,IAAAA,qBAAA,CAAiB,SAAS,MAAM;AAC9B,MAAA,iBAAA,CAAkB,KAAQ,GAAA,KAAA;AAAA,KAC3B,CAAA;AAED,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,UAAA,CAAW,MAAM;AAMf,QAAA,IAAI,iBAAkB,CAAA,KAAA;AACpB,UAAA,cAAA,CAAe,OAAO,KAAM,EAAA;AAAA,SAC7B,CAAC,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroupItem.js","sources":["../../src/RadioGroup/RadioGroupItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef } from 'vue'\nimport type { RadioProps } from './Radio.vue'\nimport type { SelectEvent } from './utils'\nimport { createContext, useForwardExpose } from '@/shared'\n\nexport interface RadioGroupItemProps extends Omit<RadioProps, 'checked'> {}\nexport type RadioGroupItemEmits = {\n select: [event: SelectEvent]\n}\n\ninterface RadioGroupItemContext {\n disabled: ComputedRef<boolean>\n checked: ComputedRef<boolean>\n}\n\nexport const [injectRadioGroupItemContext, provideRadiogroupItemContext]\n = createContext<RadioGroupItemContext>('RadioGroupItem')\n</script>\n\n<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"RadioGroupItem.js","sources":["../../src/RadioGroup/RadioGroupItem.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ComputedRef } from 'vue'\nimport type { RadioProps } from './Radio.vue'\nimport type { SelectEvent } from './utils'\nimport { createContext, useForwardExpose } from '@/shared'\n\nexport interface RadioGroupItemProps extends Omit<RadioProps, 'checked'> {}\nexport type RadioGroupItemEmits = {\n select: [event: SelectEvent]\n}\n\ninterface RadioGroupItemContext {\n disabled: ComputedRef<boolean>\n checked: ComputedRef<boolean>\n}\n\nexport const [injectRadioGroupItemContext, provideRadiogroupItemContext]\n = createContext<RadioGroupItemContext>('RadioGroupItem')\n</script>\n\n<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport { isEqual } from 'ohash'\nimport { computed, ref } from 'vue'\nimport { RovingFocusItem } from '@/RovingFocus'\nimport Radio from './Radio.vue'\nimport { injectRadioGroupRootContext } from './RadioGroupRoot.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<RadioGroupItemProps>(), {\n disabled: false,\n as: 'button',\n})\n\nconst emits = defineEmits<RadioGroupItemEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current checked state */\n checked: typeof checked.value\n /** Required state */\n required: typeof required.value\n /** Disabled state */\n disabled: typeof disabled.value\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst rootContext = injectRadioGroupRootContext()\n\nconst disabled = computed(() => rootContext.disabled.value || props.disabled)\nconst required = computed(() => rootContext.required.value || props.required)\nconst checked = computed(() => isEqual(rootContext.modelValue?.value, props.value))\n\nprovideRadiogroupItemContext({ disabled, checked })\n\nconst isArrowKeyPressed = ref(false)\nconst ARROW_KEYS = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']\n\nuseEventListener('keydown', (event) => {\n if (ARROW_KEYS.includes(event.key))\n isArrowKeyPressed.value = true\n})\nuseEventListener('keyup', () => {\n isArrowKeyPressed.value = false\n})\n\nfunction handleFocus() {\n setTimeout(() => {\n /**\n * Our `RovingFocusGroup` will focus the radio when navigating with arrow keys\n * and we need to 'check' it in that case. We click it to 'check' it (instead\n * of updating `context.value`) so that the radio change event fires.\n */\n if (isArrowKeyPressed.value)\n currentElement.value?.click()\n }, 0)\n}\n</script>\n\n<template>\n <RovingFocusItem\n :checked=\"checked\"\n :disabled=\"disabled\"\n as-child\n :focusable=\"!disabled\"\n :active=\"checked\"\n >\n <Radio\n v-bind=\"{ ...$attrs, ...props }\"\n :ref=\"forwardRef\"\n :checked=\"checked\"\n :required=\"required\"\n :disabled=\"disabled\"\n @update:checked=\"rootContext.changeModelValue(value)\"\n @select=\"emits('select', $event)\"\n @keydown.enter.prevent\n @focus=\"handleFocus\"\n >\n <slot\n :checked=\"checked\"\n :required=\"required\"\n :disabled=\"disabled\"\n />\n </Radio>\n </RovingFocusItem>\n</template>\n"],"names":[],"mappings":";;;;;;;;;AAgBO,MAAM,CAAC,2BAAA,EAA6B,4BAA4B,CAAA,GACnE,cAAqC,gBAAgB;;;;;;;;;;;;;;;;;AAezD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,KAAQ,GAAA,MAAA;AAad,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAA,MAAM,cAAc,2BAA4B,EAAA;AAEhD,IAAA,MAAM,WAAW,QAAS,CAAA,MAAM,YAAY,QAAS,CAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAC5E,IAAA,MAAM,WAAW,QAAS,CAAA,MAAM,YAAY,QAAS,CAAA,KAAA,IAAS,MAAM,QAAQ,CAAA;AAC5E,IAAM,MAAA,OAAA,GAAU,SAAS,MAAM,OAAA,CAAQ,YAAY,UAAY,EAAA,KAAA,EAAO,KAAM,CAAA,KAAK,CAAC,CAAA;AAElF,IAA6B,4BAAA,CAAA,EAAE,QAAU,EAAA,OAAA,EAAS,CAAA;AAElD,IAAM,MAAA,iBAAA,GAAoB,IAAI,KAAK,CAAA;AACnC,IAAA,MAAM,UAAa,GAAA,CAAC,SAAW,EAAA,WAAA,EAAa,aAAa,YAAY,CAAA;AAErE,IAAiB,gBAAA,CAAA,SAAA,EAAW,CAAC,KAAU,KAAA;AACrC,MAAI,IAAA,UAAA,CAAW,QAAS,CAAA,KAAA,CAAM,GAAG,CAAA;AAC/B,QAAA,iBAAA,CAAkB,KAAQ,GAAA,IAAA;AAAA,KAC7B,CAAA;AACD,IAAA,gBAAA,CAAiB,SAAS,MAAM;AAC9B,MAAA,iBAAA,CAAkB,KAAQ,GAAA,KAAA;AAAA,KAC3B,CAAA;AAED,IAAA,SAAS,WAAc,GAAA;AACrB,MAAA,UAAA,CAAW,MAAM;AAMf,QAAA,IAAI,iBAAkB,CAAA,KAAA;AACpB,UAAA,cAAA,CAAe,OAAO,KAAM,EAAA;AAAA,SAC7B,CAAC,CAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroupRoot.cjs","sources":["../../src/RadioGroup/RadioGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps } from '@/shared/types'\nimport
|
|
1
|
+
{"version":3,"file":"RadioGroupRoot.cjs","sources":["../../src/RadioGroup/RadioGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps } from '@/shared/types'\nimport { createContext, useDirection, useFormControl, useForwardExpose } from '@/shared'\n\nexport interface RadioGroupRootProps extends PrimitiveProps, FormFieldProps {\n /** The controlled value of the radio item to check. Can be binded as `v-model`. */\n modelValue?: AcceptableValue\n /**\n * The value of the radio item that should be checked when initially rendered.\n *\n * Use when you do not need to control the state of the radio items.\n */\n defaultValue?: AcceptableValue\n /** When `true`, prevents the user from interacting with radio items. */\n disabled?: boolean\n /** The orientation of the component. */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, keyboard navigation will loop from last item to first, and vice versa. */\n loop?: boolean\n}\nexport type RadioGroupRootEmits = {\n /** Event handler called when the radio group value changes */\n 'update:modelValue': [payload: string]\n}\n\ninterface RadioGroupRootContext {\n modelValue?: Readonly<Ref<AcceptableValue | undefined>>\n changeModelValue: (value?: AcceptableValue) => void\n disabled: Ref<boolean>\n loop: Ref<boolean>\n orientation: Ref<DataOrientation | undefined>\n name?: string\n required: Ref<boolean>\n}\n\nexport const [injectRadioGroupRootContext, provideRadioGroupRootContext]\n = createContext<RadioGroupRootContext>('RadioGroupRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { toRefs } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<RadioGroupRootProps>(), {\n disabled: false,\n required: false,\n orientation: undefined,\n loop: true,\n})\n\nconst emits = defineEmits<RadioGroupRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue,\n passive: (props.modelValue === undefined) as false,\n})\n\nconst { disabled, loop, orientation, name, required, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst isFormControl = useFormControl(currentElement)\n\nprovideRadioGroupRootContext({\n modelValue,\n changeModelValue: (value) => {\n modelValue.value = value\n },\n disabled,\n loop,\n orientation,\n name: name?.value,\n required,\n})\n</script>\n\n<template>\n <RovingFocusGroup\n as-child\n :orientation=\"orientation\"\n :dir=\"dir\"\n :loop=\"loop\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"radiogroup\"\n :data-disabled=\"disabled ? '' : undefined\"\n :as-child=\"asChild\"\n :as=\"as\"\n :aria-orientation=\"orientation\"\n :aria-required=\"required\"\n :dir=\"dir\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :required=\"required\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n :name=\"name\"\n />\n </Primitive>\n </RovingFocusGroup>\n</template>\n"],"names":["createContext","useForwardExpose","useVModel","toRefs","useDirection","useFormControl"],"mappings":";;;;;;;;;;;;AAuCO,MAAM,CAAC,2BAAA,EAA6B,4BAA4B,CAAA,GACnEA,mCAAqC,gBAAgB;;;;;;;;;;;;;;;;;AAUzD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAOd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AACxD,IAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAM,MAAA,EAAE,QAAU,EAAA,IAAA,EAAM,WAAa,EAAA,IAAA,EAAM,UAAU,GAAK,EAAA,OAAA,EAAY,GAAAC,UAAA,CAAO,KAAK,CAAA;AAClF,IAAM,MAAA,GAAA,GAAMC,iCAAa,OAAO,CAAA;AAChC,IAAM,MAAA,aAAA,GAAgBC,qCAAe,cAAc,CAAA;AAEnD,IAA6B,4BAAA,CAAA;AAAA,MAC3B,UAAA;AAAA,MACA,gBAAA,EAAkB,CAAC,KAAU,KAAA;AAC3B,QAAA,UAAA,CAAW,KAAQ,GAAA,KAAA;AAAA,OACrB;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAM,IAAM,EAAA,KAAA;AAAA,MACZ;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroupRoot.js","sources":["../../src/RadioGroup/RadioGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps } from '@/shared/types'\nimport
|
|
1
|
+
{"version":3,"file":"RadioGroupRoot.js","sources":["../../src/RadioGroup/RadioGroupRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { AcceptableValue, DataOrientation, Direction, FormFieldProps } from '@/shared/types'\nimport { createContext, useDirection, useFormControl, useForwardExpose } from '@/shared'\n\nexport interface RadioGroupRootProps extends PrimitiveProps, FormFieldProps {\n /** The controlled value of the radio item to check. Can be binded as `v-model`. */\n modelValue?: AcceptableValue\n /**\n * The value of the radio item that should be checked when initially rendered.\n *\n * Use when you do not need to control the state of the radio items.\n */\n defaultValue?: AcceptableValue\n /** When `true`, prevents the user from interacting with radio items. */\n disabled?: boolean\n /** The orientation of the component. */\n orientation?: DataOrientation\n /** The reading direction of the combobox when applicable. <br> If omitted, inherits globally from `ConfigProvider` or assumes LTR (left-to-right) reading mode. */\n dir?: Direction\n /** When `true`, keyboard navigation will loop from last item to first, and vice versa. */\n loop?: boolean\n}\nexport type RadioGroupRootEmits = {\n /** Event handler called when the radio group value changes */\n 'update:modelValue': [payload: string]\n}\n\ninterface RadioGroupRootContext {\n modelValue?: Readonly<Ref<AcceptableValue | undefined>>\n changeModelValue: (value?: AcceptableValue) => void\n disabled: Ref<boolean>\n loop: Ref<boolean>\n orientation: Ref<DataOrientation | undefined>\n name?: string\n required: Ref<boolean>\n}\n\nexport const [injectRadioGroupRootContext, provideRadioGroupRootContext]\n = createContext<RadioGroupRootContext>('RadioGroupRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { toRefs } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { RovingFocusGroup } from '@/RovingFocus'\nimport { VisuallyHiddenInput } from '@/VisuallyHidden'\n\nconst props = withDefaults(defineProps<RadioGroupRootProps>(), {\n disabled: false,\n required: false,\n orientation: undefined,\n loop: true,\n})\n\nconst emits = defineEmits<RadioGroupRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current input values */\n modelValue: typeof modelValue.value\n }) => any\n}>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\nconst modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: props.defaultValue,\n passive: (props.modelValue === undefined) as false,\n})\n\nconst { disabled, loop, orientation, name, required, dir: propDir } = toRefs(props)\nconst dir = useDirection(propDir)\nconst isFormControl = useFormControl(currentElement)\n\nprovideRadioGroupRootContext({\n modelValue,\n changeModelValue: (value) => {\n modelValue.value = value\n },\n disabled,\n loop,\n orientation,\n name: name?.value,\n required,\n})\n</script>\n\n<template>\n <RovingFocusGroup\n as-child\n :orientation=\"orientation\"\n :dir=\"dir\"\n :loop=\"loop\"\n >\n <Primitive\n :ref=\"forwardRef\"\n role=\"radiogroup\"\n :data-disabled=\"disabled ? '' : undefined\"\n :as-child=\"asChild\"\n :as=\"as\"\n :aria-orientation=\"orientation\"\n :aria-required=\"required\"\n :dir=\"dir\"\n >\n <slot :model-value=\"modelValue\" />\n\n <VisuallyHiddenInput\n v-if=\"isFormControl && name\"\n :required=\"required\"\n :disabled=\"disabled\"\n :value=\"modelValue\"\n :name=\"name\"\n />\n </Primitive>\n </RovingFocusGroup>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;AAuCO,MAAM,CAAC,2BAAA,EAA6B,4BAA4B,CAAA,GACnE,cAAqC,gBAAgB;;;;;;;;;;;;;;;;;AAUzD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAOd,IAAA,MAAM,KAAQ,GAAA,MAAA;AASd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AACxD,IAAA,MAAM,UAAa,GAAA,SAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,MACvD,cAAc,KAAM,CAAA,YAAA;AAAA,MACpB,OAAA,EAAU,MAAM,UAAe,KAAA;AAAA,KAChC,CAAA;AAED,IAAM,MAAA,EAAE,QAAU,EAAA,IAAA,EAAM,WAAa,EAAA,IAAA,EAAM,UAAU,GAAK,EAAA,OAAA,EAAY,GAAA,MAAA,CAAO,KAAK,CAAA;AAClF,IAAM,MAAA,GAAA,GAAM,aAAa,OAAO,CAAA;AAChC,IAAM,MAAA,aAAA,GAAgB,eAAe,cAAc,CAAA;AAEnD,IAA6B,4BAAA,CAAA;AAAA,MAC3B,UAAA;AAAA,MACA,gBAAA,EAAkB,CAAC,KAAU,KAAA;AAC3B,QAAA,UAAA,CAAW,KAAQ,GAAA,KAAA;AAAA,OACrB;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAM,IAAM,EAAA,KAAA;AAAA,MACZ;AAAA,KACD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -19,8 +19,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
19
19
|
"as-child": _ctx.asChild,
|
|
20
20
|
role: "gridcell",
|
|
21
21
|
"aria-selected": vue.unref(rootContext).isSelected(_ctx.date) ? true : void 0,
|
|
22
|
-
"aria-disabled": vue.unref(rootContext).isDateDisabled(_ctx.date) || vue.unref(rootContext).isDateUnavailable?.(_ctx.date),
|
|
23
|
-
"data-disabled": vue.unref(rootContext).isDateDisabled(_ctx.date) ? "" : void 0
|
|
22
|
+
"aria-disabled": vue.unref(rootContext).isDateDisabled(_ctx.date) || vue.unref(rootContext).isDateUnavailable?.(_ctx.date) || vue.unref(rootContext).disableDaysOutsideCurrentView.value,
|
|
23
|
+
"data-disabled": vue.unref(rootContext).isDateDisabled(_ctx.date) || vue.unref(rootContext).disableDaysOutsideCurrentView.value ? "" : void 0
|
|
24
24
|
}, {
|
|
25
25
|
default: vue.withCtx(() => [
|
|
26
26
|
vue.renderSlot(_ctx.$slots, "default")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeCalendarCell.cjs","sources":["../../src/RangeCalendar/RangeCalendarCell.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"RangeCalendarCell.cjs","sources":["../../src/RangeCalendar/RangeCalendarCell.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DateValue } from '@internationalized/date'\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface RangeCalendarCellProps extends PrimitiveProps {\n date: DateValue\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { injectRangeCalendarRootContext } from './RangeCalendarRoot.vue'\n\nwithDefaults(defineProps<RangeCalendarCellProps>(), { as: 'td' })\nconst rootContext = injectRangeCalendarRootContext()\n</script>\n\n<template>\n <Primitive\n :as=\"as\"\n :as-child=\"asChild\"\n role=\"gridcell\"\n :aria-selected=\"rootContext.isSelected(date) ? true : undefined\"\n :aria-disabled=\"rootContext.isDateDisabled(date) || rootContext.isDateUnavailable?.(date) || rootContext.disableDaysOutsideCurrentView.value\"\n :data-disabled=\"rootContext.isDateDisabled(date) || rootContext.disableDaysOutsideCurrentView.value ? '' : undefined\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["injectRangeCalendarRootContext"],"mappings":";;;;;;;;;;;;;;AAcA,IAAA,MAAM,cAAcA,8DAA+B,EAAA;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -17,8 +17,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17
17
|
"as-child": _ctx.asChild,
|
|
18
18
|
role: "gridcell",
|
|
19
19
|
"aria-selected": unref(rootContext).isSelected(_ctx.date) ? true : void 0,
|
|
20
|
-
"aria-disabled": unref(rootContext).isDateDisabled(_ctx.date) || unref(rootContext).isDateUnavailable?.(_ctx.date),
|
|
21
|
-
"data-disabled": unref(rootContext).isDateDisabled(_ctx.date) ? "" : void 0
|
|
20
|
+
"aria-disabled": unref(rootContext).isDateDisabled(_ctx.date) || unref(rootContext).isDateUnavailable?.(_ctx.date) || unref(rootContext).disableDaysOutsideCurrentView.value,
|
|
21
|
+
"data-disabled": unref(rootContext).isDateDisabled(_ctx.date) || unref(rootContext).disableDaysOutsideCurrentView.value ? "" : void 0
|
|
22
22
|
}, {
|
|
23
23
|
default: withCtx(() => [
|
|
24
24
|
renderSlot(_ctx.$slots, "default")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeCalendarCell.js","sources":["../../src/RangeCalendar/RangeCalendarCell.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"RangeCalendarCell.js","sources":["../../src/RangeCalendar/RangeCalendarCell.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { DateValue } from '@internationalized/date'\nimport type { PrimitiveProps } from '@/Primitive'\n\nexport interface RangeCalendarCellProps extends PrimitiveProps {\n date: DateValue\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { Primitive } from '@/Primitive'\nimport { injectRangeCalendarRootContext } from './RangeCalendarRoot.vue'\n\nwithDefaults(defineProps<RangeCalendarCellProps>(), { as: 'td' })\nconst rootContext = injectRangeCalendarRootContext()\n</script>\n\n<template>\n <Primitive\n :as=\"as\"\n :as-child=\"asChild\"\n role=\"gridcell\"\n :aria-selected=\"rootContext.isSelected(date) ? true : undefined\"\n :aria-disabled=\"rootContext.isDateDisabled(date) || rootContext.isDateUnavailable?.(date) || rootContext.disableDaysOutsideCurrentView.value\"\n :data-disabled=\"rootContext.isDateDisabled(date) || rootContext.disableDaysOutsideCurrentView.value ? '' : undefined\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;AAcA,IAAA,MAAM,cAAc,8BAA+B,EAAA;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const vue = require('vue');
|
|
4
|
+
const date = require('@internationalized/date');
|
|
4
5
|
const Calendar_utils = require('../Calendar/utils.cjs');
|
|
5
6
|
const date_comparators = require('../date/comparators.cjs');
|
|
6
|
-
const date = require('@internationalized/date');
|
|
7
7
|
const Primitive_usePrimitiveElement = require('../Primitive/usePrimitiveElement.cjs');
|
|
8
8
|
const Primitive_Primitive = require('../Primitive/Primitive.cjs');
|
|
9
9
|
const shared_useKbd = require('../shared/useKbd.cjs');
|
|
@@ -28,7 +28,6 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
28
28
|
day: "numeric",
|
|
29
29
|
year: "numeric"
|
|
30
30
|
}));
|
|
31
|
-
const isDisabled = vue.computed(() => rootContext.isDateDisabled(props.day));
|
|
32
31
|
const isUnavailable = vue.computed(() => rootContext.isDateUnavailable?.(props.day) ?? false);
|
|
33
32
|
const isSelectedDate = vue.computed(() => rootContext.isSelected(props.day));
|
|
34
33
|
const isSelectionStart = vue.computed(() => rootContext.isSelectionStart(props.day));
|
|
@@ -36,6 +35,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
36
35
|
const isHighlightStart = vue.computed(() => rootContext.isHighlightedStart(props.day));
|
|
37
36
|
const isHighlightEnd = vue.computed(() => rootContext.isHighlightedEnd(props.day));
|
|
38
37
|
const isHighlighted = vue.computed(() => rootContext.highlightedRange.value ? date_comparators.isBetweenInclusive(props.day, rootContext.highlightedRange.value.start, rootContext.highlightedRange.value.end) : false);
|
|
38
|
+
const allowNonContiguousRanges = vue.computed(() => rootContext.allowNonContiguousRanges.value);
|
|
39
39
|
const isDateToday = vue.computed(() => {
|
|
40
40
|
return date.isToday(props.day, date.getLocalTimeZone());
|
|
41
41
|
});
|
|
@@ -45,6 +45,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
45
45
|
const isOutsideVisibleView = vue.computed(
|
|
46
46
|
() => rootContext.isOutsideVisibleView(props.day)
|
|
47
47
|
);
|
|
48
|
+
const isDisabled = vue.computed(() => rootContext.isDateDisabled(props.day) || rootContext.disableDaysOutsideCurrentView.value && isOutsideView.value);
|
|
48
49
|
const dayValue = vue.computed(() => props.day.day.toLocaleString(rootContext.locale.value));
|
|
49
50
|
const isFocusedDate = vue.computed(() => {
|
|
50
51
|
return !rootContext.disabled.value && date.isSameDay(props.day, rootContext.placeholder.value);
|
|
@@ -78,19 +79,37 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
78
79
|
} else if (!rootContext.endValue.value) {
|
|
79
80
|
rootContext.endValue.value = date$1.copy();
|
|
80
81
|
} else if (rootContext.endValue.value && rootContext.startValue.value) {
|
|
81
|
-
rootContext.
|
|
82
|
-
|
|
82
|
+
if (!rootContext.fixedDate.value) {
|
|
83
|
+
rootContext.endValue.value = void 0;
|
|
84
|
+
rootContext.startValue.value = date$1.copy();
|
|
85
|
+
} else if (rootContext.fixedDate.value === "start") {
|
|
86
|
+
if (date$1.compare(rootContext.startValue.value) < 0) {
|
|
87
|
+
rootContext.startValue.value = date$1.copy();
|
|
88
|
+
} else {
|
|
89
|
+
rootContext.endValue.value = date$1.copy();
|
|
90
|
+
}
|
|
91
|
+
} else if (rootContext.fixedDate.value === "end") {
|
|
92
|
+
if (date$1.compare(rootContext.endValue.value) > 0) {
|
|
93
|
+
rootContext.endValue.value = date$1.copy();
|
|
94
|
+
} else {
|
|
95
|
+
rootContext.startValue.value = date$1.copy();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
83
98
|
}
|
|
84
99
|
}
|
|
85
100
|
function handleClick(e) {
|
|
101
|
+
if (isDisabled.value)
|
|
102
|
+
return;
|
|
86
103
|
changeDate(e, props.day);
|
|
87
104
|
}
|
|
88
105
|
function handleFocus() {
|
|
89
|
-
if (
|
|
106
|
+
if (isDisabled.value || rootContext.isDateUnavailable?.(props.day))
|
|
90
107
|
return;
|
|
91
108
|
rootContext.focusedValue.value = props.day.copy();
|
|
92
109
|
}
|
|
93
110
|
function handleArrowKey(e) {
|
|
111
|
+
if (isDisabled.value)
|
|
112
|
+
return;
|
|
94
113
|
e.preventDefault();
|
|
95
114
|
e.stopPropagation();
|
|
96
115
|
const parentElement = rootContext.parentElement.value;
|
|
@@ -187,14 +206,14 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
187
206
|
role: "button",
|
|
188
207
|
"aria-label": labelText.value,
|
|
189
208
|
"data-reka-calendar-cell-trigger": "",
|
|
190
|
-
"aria-selected": isSelectedDate.value && !isUnavailable.value ? true : void 0,
|
|
209
|
+
"aria-selected": isSelectedDate.value && (allowNonContiguousRanges.value || !isUnavailable.value) ? true : void 0,
|
|
191
210
|
"aria-disabled": isDisabled.value || isUnavailable.value ? true : void 0,
|
|
192
|
-
"data-highlighted": isHighlighted.value && !isUnavailable.value ? "" : void 0,
|
|
211
|
+
"data-highlighted": isHighlighted.value && (allowNonContiguousRanges.value || !isUnavailable.value) ? "" : void 0,
|
|
193
212
|
"data-selection-start": isSelectionStart.value ? true : void 0,
|
|
194
213
|
"data-selection-end": isSelectionEnd.value ? true : void 0,
|
|
195
214
|
"data-highlighted-start": isHighlightStart.value ? true : void 0,
|
|
196
215
|
"data-highlighted-end": isHighlightEnd.value ? true : void 0,
|
|
197
|
-
"data-selected": isSelectedDate.value && !isUnavailable.value ? true : void 0,
|
|
216
|
+
"data-selected": isSelectedDate.value && (allowNonContiguousRanges.value || !isUnavailable.value) ? true : void 0,
|
|
198
217
|
"data-outside-visible-view": isOutsideVisibleView.value ? "" : void 0,
|
|
199
218
|
"data-value": _ctx.day.toString(),
|
|
200
219
|
"data-disabled": isDisabled.value ? "" : void 0,
|
|
@@ -217,7 +236,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
217
236
|
outsideView: isOutsideView.value,
|
|
218
237
|
outsideVisibleView: isOutsideVisibleView.value,
|
|
219
238
|
unavailable: isUnavailable.value,
|
|
220
|
-
highlighted: isHighlighted.value && !isUnavailable.value,
|
|
239
|
+
highlighted: isHighlighted.value && (allowNonContiguousRanges.value || !isUnavailable.value),
|
|
221
240
|
highlightedStart: isHighlightStart.value,
|
|
222
241
|
highlightedEnd: isHighlightEnd.value,
|
|
223
242
|
selectionStart: isSelectionStart.value,
|