reka-ui 2.2.1 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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.map +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.map +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 +7 -3
- package/dist/DismissableLayer/utils.cjs.map +1 -1
- package/dist/DismissableLayer/utils.js +8 -4
- 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 +1 -1
- package/dist/Editable/EditableRoot.cjs.map +1 -1
- package/dist/Editable/EditableRoot.js +1 -1
- 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.map +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.map +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.map +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 +1 -1
- package/dist/PinInput/PinInputInput.cjs.map +1 -1
- package/dist/PinInput/PinInputInput.js +1 -1
- package/dist/PinInput/PinInputInput.js.map +1 -1
- package/dist/PinInput/PinInputRoot.cjs.map +1 -1
- 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/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.map +1 -1
- 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 +1 -1
- package/dist/Select/SelectContentImpl.cjs.map +1 -1
- package/dist/Select/SelectContentImpl.js +1 -1
- 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 +30 -3
- package/dist/Stepper/StepperRoot.cjs.map +1 -1
- package/dist/Stepper/StepperRoot.js +30 -3
- 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 +1 -1
- package/dist/Toast/ToastViewport.cjs.map +1 -1
- package/dist/Toast/ToastViewport.js +1 -1
- 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 +1 -1
- package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.js +1 -1
- 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 +492 -351
- 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/useForwardProps.cjs +4 -2
- package/dist/shared/useForwardProps.cjs.map +1 -1
- package/dist/shared/useForwardProps.js +5 -3
- package/dist/shared/useForwardProps.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
|
@@ -24,7 +24,7 @@ const useBodyLockStackCount = core.createSharedComposable(() => {
|
|
|
24
24
|
document.body.style.paddingRight = "";
|
|
25
25
|
document.body.style.marginRight = "";
|
|
26
26
|
document.body.style.pointerEvents = "";
|
|
27
|
-
document.
|
|
27
|
+
document.documentElement.style.removeProperty("--scrollbar-width");
|
|
28
28
|
document.body.style.overflow = initialOverflow.value ?? "";
|
|
29
29
|
shared.isIOS && stopTouchMoveListener?.();
|
|
30
30
|
initialOverflow.value = void 0;
|
|
@@ -48,7 +48,7 @@ const useBodyLockStackCount = core.createSharedComposable(() => {
|
|
|
48
48
|
if (verticalScrollbarWidth > 0) {
|
|
49
49
|
document.body.style.paddingRight = typeof config.padding === "number" ? `${config.padding}px` : String(config.padding);
|
|
50
50
|
document.body.style.marginRight = typeof config.margin === "number" ? `${config.margin}px` : String(config.margin);
|
|
51
|
-
document.
|
|
51
|
+
document.documentElement.style.setProperty("--scrollbar-width", `${verticalScrollbarWidth}px`);
|
|
52
52
|
document.body.style.overflow = "hidden";
|
|
53
53
|
}
|
|
54
54
|
if (shared.isIOS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBodyScrollLock.cjs","sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":["import type { Fn } from '@vueuse/shared'\nimport {
|
|
1
|
+
{"version":3,"file":"useBodyScrollLock.cjs","sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":["import type { Fn } from '@vueuse/shared'\nimport {\n createSharedComposable,\n useEventListener,\n} from '@vueuse/core'\nimport { isClient, isIOS, tryOnBeforeUnmount } from '@vueuse/shared'\nimport { defu } from 'defu'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\n\nconst useBodyLockStackCount = createSharedComposable(() => {\n const map = ref<Map<string, boolean>>(new Map())\n const initialOverflow = ref<string | undefined>()\n\n const locked = computed(() => {\n for (const value of map.value.values()) {\n if (value)\n return true\n }\n return false\n })\n\n const context = injectConfigProviderContext({\n scrollBody: ref(true),\n })\n\n let stopTouchMoveListener: Fn | null = null\n\n const resetBodyStyle = () => {\n document.body.style.paddingRight = ''\n document.body.style.marginRight = ''\n document.body.style.pointerEvents = ''\n document.documentElement.style.removeProperty('--scrollbar-width')\n document.body.style.overflow = initialOverflow.value ?? ''\n isIOS && stopTouchMoveListener?.()\n\n initialOverflow.value = undefined\n }\n\n watch(locked, (val, oldVal) => {\n if (!isClient)\n return\n\n if (!val) {\n if (oldVal)\n resetBodyStyle()\n return\n }\n\n if (initialOverflow.value === undefined)\n initialOverflow.value = document.body.style.overflow\n\n const verticalScrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n const defaultConfig = { padding: verticalScrollbarWidth, margin: 0 }\n\n const config = context.scrollBody?.value\n ? typeof context.scrollBody.value === 'object'\n ? defu({\n padding: context.scrollBody.value.padding === true ? verticalScrollbarWidth : context.scrollBody.value.padding,\n margin: context.scrollBody.value.margin === true ? verticalScrollbarWidth : context.scrollBody.value.margin,\n }, defaultConfig)\n : defaultConfig\n : ({ padding: 0, margin: 0 })\n\n if (verticalScrollbarWidth > 0) {\n document.body.style.paddingRight = typeof config.padding === 'number' ? `${config.padding}px` : String(config.padding)\n document.body.style.marginRight = typeof config.margin === 'number' ? `${config.margin}px` : String(config.margin)\n document.documentElement.style.setProperty('--scrollbar-width', `${verticalScrollbarWidth}px`)\n document.body.style.overflow = 'hidden'\n }\n\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n document,\n 'touchmove',\n (e: TouchEvent) => preventDefault(e),\n { passive: false },\n )\n }\n\n // let dismissibleLayer set previous pointerEvent first\n nextTick(() => {\n document.body.style.pointerEvents = 'none'\n document.body.style.overflow = 'hidden'\n })\n }, { immediate: true, flush: 'sync' })\n\n return map\n})\n\nexport function useBodyScrollLock(initialState?: boolean | undefined) {\n const id = Math.random().toString(36).substring(2, 7) // just simple random id, need not to be cryptographically secure\n const map = useBodyLockStackCount()\n\n map.value.set(id, initialState ?? false)\n\n const locked = computed({\n get: () => map.value.get(id) ?? false,\n set: value => map.value.set(id, value),\n })\n\n tryOnBeforeUnmount(() => {\n map.value.delete(id)\n })\n\n return locked\n}\n\n// Adapt from https://github.com/vueuse/vueuse/blob/main/packages/core/useScrollLock/index.ts#L28C10-L28C24\nfunction checkOverflowScroll(ele: Element): boolean {\n const style = window.getComputedStyle(ele)\n if (\n style.overflowX === 'scroll'\n || style.overflowY === 'scroll'\n || (style.overflowX === 'auto' && ele.clientWidth < ele.scrollWidth)\n || (style.overflowY === 'auto' && ele.clientHeight < ele.scrollHeight)\n ) {\n return true\n }\n else {\n const parent = ele.parentNode\n\n if (!(parent instanceof Element) || parent.tagName === 'BODY')\n return false\n\n return checkOverflowScroll(parent)\n }\n}\n\nfunction preventDefault(rawEvent: TouchEvent): boolean {\n const e = rawEvent || window.event\n\n const _target = e.target\n\n // Do not prevent if element or parentNodes have overflow: scroll set.\n if (_target instanceof Element && checkOverflowScroll(_target))\n return false\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1)\n return true\n\n if (e.preventDefault && e.cancelable)\n e.preventDefault()\n\n return false\n}\n"],"names":["createSharedComposable","ref","computed","injectConfigProviderContext","isIOS","watch","isClient","defu","useEventListener","nextTick","tryOnBeforeUnmount"],"mappings":"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"}
|
|
@@ -22,7 +22,7 @@ const useBodyLockStackCount = createSharedComposable(() => {
|
|
|
22
22
|
document.body.style.paddingRight = "";
|
|
23
23
|
document.body.style.marginRight = "";
|
|
24
24
|
document.body.style.pointerEvents = "";
|
|
25
|
-
document.
|
|
25
|
+
document.documentElement.style.removeProperty("--scrollbar-width");
|
|
26
26
|
document.body.style.overflow = initialOverflow.value ?? "";
|
|
27
27
|
isIOS && stopTouchMoveListener?.();
|
|
28
28
|
initialOverflow.value = void 0;
|
|
@@ -46,7 +46,7 @@ const useBodyLockStackCount = createSharedComposable(() => {
|
|
|
46
46
|
if (verticalScrollbarWidth > 0) {
|
|
47
47
|
document.body.style.paddingRight = typeof config.padding === "number" ? `${config.padding}px` : String(config.padding);
|
|
48
48
|
document.body.style.marginRight = typeof config.margin === "number" ? `${config.margin}px` : String(config.margin);
|
|
49
|
-
document.
|
|
49
|
+
document.documentElement.style.setProperty("--scrollbar-width", `${verticalScrollbarWidth}px`);
|
|
50
50
|
document.body.style.overflow = "hidden";
|
|
51
51
|
}
|
|
52
52
|
if (isIOS) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBodyScrollLock.js","sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":["import type { Fn } from '@vueuse/shared'\nimport {
|
|
1
|
+
{"version":3,"file":"useBodyScrollLock.js","sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":["import type { Fn } from '@vueuse/shared'\nimport {\n createSharedComposable,\n useEventListener,\n} from '@vueuse/core'\nimport { isClient, isIOS, tryOnBeforeUnmount } from '@vueuse/shared'\nimport { defu } from 'defu'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\n\nconst useBodyLockStackCount = createSharedComposable(() => {\n const map = ref<Map<string, boolean>>(new Map())\n const initialOverflow = ref<string | undefined>()\n\n const locked = computed(() => {\n for (const value of map.value.values()) {\n if (value)\n return true\n }\n return false\n })\n\n const context = injectConfigProviderContext({\n scrollBody: ref(true),\n })\n\n let stopTouchMoveListener: Fn | null = null\n\n const resetBodyStyle = () => {\n document.body.style.paddingRight = ''\n document.body.style.marginRight = ''\n document.body.style.pointerEvents = ''\n document.documentElement.style.removeProperty('--scrollbar-width')\n document.body.style.overflow = initialOverflow.value ?? ''\n isIOS && stopTouchMoveListener?.()\n\n initialOverflow.value = undefined\n }\n\n watch(locked, (val, oldVal) => {\n if (!isClient)\n return\n\n if (!val) {\n if (oldVal)\n resetBodyStyle()\n return\n }\n\n if (initialOverflow.value === undefined)\n initialOverflow.value = document.body.style.overflow\n\n const verticalScrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n const defaultConfig = { padding: verticalScrollbarWidth, margin: 0 }\n\n const config = context.scrollBody?.value\n ? typeof context.scrollBody.value === 'object'\n ? defu({\n padding: context.scrollBody.value.padding === true ? verticalScrollbarWidth : context.scrollBody.value.padding,\n margin: context.scrollBody.value.margin === true ? verticalScrollbarWidth : context.scrollBody.value.margin,\n }, defaultConfig)\n : defaultConfig\n : ({ padding: 0, margin: 0 })\n\n if (verticalScrollbarWidth > 0) {\n document.body.style.paddingRight = typeof config.padding === 'number' ? `${config.padding}px` : String(config.padding)\n document.body.style.marginRight = typeof config.margin === 'number' ? `${config.margin}px` : String(config.margin)\n document.documentElement.style.setProperty('--scrollbar-width', `${verticalScrollbarWidth}px`)\n document.body.style.overflow = 'hidden'\n }\n\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n document,\n 'touchmove',\n (e: TouchEvent) => preventDefault(e),\n { passive: false },\n )\n }\n\n // let dismissibleLayer set previous pointerEvent first\n nextTick(() => {\n document.body.style.pointerEvents = 'none'\n document.body.style.overflow = 'hidden'\n })\n }, { immediate: true, flush: 'sync' })\n\n return map\n})\n\nexport function useBodyScrollLock(initialState?: boolean | undefined) {\n const id = Math.random().toString(36).substring(2, 7) // just simple random id, need not to be cryptographically secure\n const map = useBodyLockStackCount()\n\n map.value.set(id, initialState ?? false)\n\n const locked = computed({\n get: () => map.value.get(id) ?? false,\n set: value => map.value.set(id, value),\n })\n\n tryOnBeforeUnmount(() => {\n map.value.delete(id)\n })\n\n return locked\n}\n\n// Adapt from https://github.com/vueuse/vueuse/blob/main/packages/core/useScrollLock/index.ts#L28C10-L28C24\nfunction checkOverflowScroll(ele: Element): boolean {\n const style = window.getComputedStyle(ele)\n if (\n style.overflowX === 'scroll'\n || style.overflowY === 'scroll'\n || (style.overflowX === 'auto' && ele.clientWidth < ele.scrollWidth)\n || (style.overflowY === 'auto' && ele.clientHeight < ele.scrollHeight)\n ) {\n return true\n }\n else {\n const parent = ele.parentNode\n\n if (!(parent instanceof Element) || parent.tagName === 'BODY')\n return false\n\n return checkOverflowScroll(parent)\n }\n}\n\nfunction preventDefault(rawEvent: TouchEvent): boolean {\n const e = rawEvent || window.event\n\n const _target = e.target\n\n // Do not prevent if element or parentNodes have overflow: scroll set.\n if (_target instanceof Element && checkOverflowScroll(_target))\n return false\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1)\n return true\n\n if (e.preventDefault && e.cancelable)\n e.preventDefault()\n\n return false\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const date_comparators = require('../date/comparators.cjs');
|
|
4
3
|
const date = require('@internationalized/date');
|
|
5
4
|
const vue = require('vue');
|
|
5
|
+
const date_comparators = require('../date/comparators.cjs');
|
|
6
6
|
|
|
7
|
-
function useDateFormatter(initialLocale) {
|
|
7
|
+
function useDateFormatter(initialLocale, opts = {}) {
|
|
8
8
|
const locale = vue.ref(initialLocale);
|
|
9
9
|
function getLocale() {
|
|
10
10
|
return locale.value;
|
|
@@ -13,7 +13,7 @@ function useDateFormatter(initialLocale) {
|
|
|
13
13
|
locale.value = newLocale;
|
|
14
14
|
}
|
|
15
15
|
function custom(date$1, options) {
|
|
16
|
-
return new date.DateFormatter(locale.value, options).format(date$1);
|
|
16
|
+
return new date.DateFormatter(locale.value, { ...opts, ...options }).format(date$1);
|
|
17
17
|
}
|
|
18
18
|
function selectedDate(date, includeTime = true) {
|
|
19
19
|
if (date_comparators.hasTime(date) && includeTime) {
|
|
@@ -28,10 +28,10 @@ function useDateFormatter(initialLocale) {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
function fullMonthAndYear(date$1, options = {}) {
|
|
31
|
-
return new date.DateFormatter(locale.value, { month: "long", year: "numeric", ...options }).format(date$1);
|
|
31
|
+
return new date.DateFormatter(locale.value, { ...opts, month: "long", year: "numeric", ...options }).format(date$1);
|
|
32
32
|
}
|
|
33
33
|
function fullMonth(date$1, options = {}) {
|
|
34
|
-
return new date.DateFormatter(locale.value, { month: "long", ...options }).format(date$1);
|
|
34
|
+
return new date.DateFormatter(locale.value, { ...opts, month: "long", ...options }).format(date$1);
|
|
35
35
|
}
|
|
36
36
|
function getMonths() {
|
|
37
37
|
const defaultDate = date.today(date.getLocalTimeZone());
|
|
@@ -39,23 +39,25 @@ function useDateFormatter(initialLocale) {
|
|
|
39
39
|
return months.map((item) => ({ label: fullMonth(date_comparators.toDate(defaultDate.set({ month: item }))), value: item }));
|
|
40
40
|
}
|
|
41
41
|
function fullYear(date$1, options = {}) {
|
|
42
|
-
return new date.DateFormatter(locale.value, { year: "numeric", ...options }).format(date$1);
|
|
42
|
+
return new date.DateFormatter(locale.value, { ...opts, year: "numeric", ...options }).format(date$1);
|
|
43
43
|
}
|
|
44
44
|
function toParts(date$1, options) {
|
|
45
45
|
if (date_comparators.isZonedDateTime(date$1)) {
|
|
46
46
|
return new date.DateFormatter(locale.value, {
|
|
47
|
+
...opts,
|
|
47
48
|
...options,
|
|
48
49
|
timeZone: date$1.timeZone
|
|
49
50
|
}).formatToParts(date_comparators.toDate(date$1));
|
|
50
51
|
} else {
|
|
51
|
-
return new date.DateFormatter(locale.value, options).formatToParts(date_comparators.toDate(date$1));
|
|
52
|
+
return new date.DateFormatter(locale.value, { ...opts, ...options }).formatToParts(date_comparators.toDate(date$1));
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
function dayOfWeek(date$1, length = "narrow") {
|
|
55
|
-
return new date.DateFormatter(locale.value, { weekday: length }).format(date$1);
|
|
56
|
+
return new date.DateFormatter(locale.value, { ...opts, weekday: length }).format(date$1);
|
|
56
57
|
}
|
|
57
58
|
function dayPeriod(date$1) {
|
|
58
59
|
const parts = new date.DateFormatter(locale.value, {
|
|
60
|
+
...opts,
|
|
59
61
|
hour: "numeric",
|
|
60
62
|
minute: "numeric"
|
|
61
63
|
}).formatToParts(date$1);
|
|
@@ -73,8 +75,8 @@ function useDateFormatter(initialLocale) {
|
|
|
73
75
|
second: "numeric"
|
|
74
76
|
};
|
|
75
77
|
function part(dateObj, type, options = {}) {
|
|
76
|
-
const
|
|
77
|
-
const parts = toParts(dateObj,
|
|
78
|
+
const opts2 = { ...defaultPartOptions, ...options };
|
|
79
|
+
const parts = toParts(dateObj, opts2);
|
|
78
80
|
const part2 = parts.find((p) => p.type === type);
|
|
79
81
|
return part2 ? part2.value : "";
|
|
80
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDateFormatter.cjs","sources":["../../src/shared/useDateFormatter.ts"],"sourcesContent":["/*\n * Implementation ported from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/internal/helpers/date/formatter.ts\n*/\n\nimport type { DateValue, ZonedDateTime } from '@internationalized/date'\nimport {
|
|
1
|
+
{"version":3,"file":"useDateFormatter.cjs","sources":["../../src/shared/useDateFormatter.ts"],"sourcesContent":["/*\n * Implementation ported from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/internal/helpers/date/formatter.ts\n*/\n\nimport type { DateValue, ZonedDateTime } from '@internationalized/date'\nimport { DateFormatter, getLocalTimeZone, today } from '@internationalized/date'\nimport { ref } from 'vue'\nimport { hasTime, isZonedDateTime, toDate } from '@/date'\n\nexport interface DateFormatterOptions extends Intl.DateTimeFormatOptions {\n calendar?: string\n}\n\nexport type Formatter = {\n getLocale: () => string\n setLocale: (newLocale: string) => void\n custom: (date: Date, options: DateFormatterOptions) => string\n selectedDate: (date: DateValue, includeTime?: boolean) => string\n dayOfWeek: (date: Date, length?: DateFormatterOptions['weekday']) => string\n fullMonthAndYear: (date: Date, options?: DateFormatterOptions) => string\n fullMonth: (date: Date, options?: DateFormatterOptions) => string\n fullYear: (date: Date, options?: DateFormatterOptions) => string\n dayPeriod: (date: Date) => string\n part: (dateObj: DateValue, type: Intl.DateTimeFormatPartTypes, options?: DateFormatterOptions) => string\n toParts: (date: DateValue, options?: DateFormatterOptions) => Intl.DateTimeFormatPart[]\n getMonths: () => { label: string, value: number }[]\n}\n\n/**\n * Creates a wrapper around the `DateFormatter`, which is\n * an improved version of the {@link Intl.DateTimeFormat} API,\n * that is used internally by the various date builders to\n * easily format dates in a consistent way.\n *\n * @see [DateFormatter](https://react-spectrum.adobe.com/internationalized/date/DateFormatter.html)\n */\nexport function useDateFormatter(initialLocale: string, opts: DateFormatterOptions = {}): Formatter {\n const locale = ref(initialLocale)\n\n function getLocale() {\n return locale.value\n }\n\n function setLocale(newLocale: string) {\n locale.value = newLocale\n }\n\n function custom(date: Date, options: DateFormatterOptions) {\n return new DateFormatter(locale.value, { ...opts, ...options }).format(date)\n }\n\n function selectedDate(date: DateValue, includeTime = true) {\n if (hasTime(date) && includeTime) {\n return custom(toDate(date), {\n dateStyle: 'long',\n timeStyle: 'long',\n })\n }\n else {\n return custom(toDate(date), {\n dateStyle: 'long',\n })\n }\n }\n\n function fullMonthAndYear(date: Date, options: DateFormatterOptions = {}) {\n return new DateFormatter(locale.value, { ...opts, month: 'long', year: 'numeric', ...options }).format(date)\n }\n\n function fullMonth(date: Date, options: DateFormatterOptions = {}) {\n return new DateFormatter(locale.value, { ...opts, month: 'long', ...options }).format(date)\n }\n\n function getMonths() {\n const defaultDate = today(getLocalTimeZone())\n const months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n return months.map(item => ({ label: fullMonth(toDate(defaultDate.set({ month: item }))), value: item }))\n }\n\n function fullYear(date: Date, options: DateFormatterOptions = {}) {\n return new DateFormatter(locale.value, { ...opts, year: 'numeric', ...options }).format(date)\n }\n\n function toParts(date: DateValue, options?: DateFormatterOptions) {\n if (isZonedDateTime(date)) {\n return new DateFormatter(locale.value, {\n ...opts,\n ...options,\n timeZone: (date as ZonedDateTime).timeZone,\n }).formatToParts(toDate(date))\n }\n else {\n return new DateFormatter(locale.value, { ...opts, ...options }).formatToParts(toDate(date))\n }\n }\n\n function dayOfWeek(date: Date, length: DateFormatterOptions['weekday'] = 'narrow') {\n return new DateFormatter(locale.value, { ...opts, weekday: length }).format(date)\n }\n\n function dayPeriod(date: Date) {\n const parts = new DateFormatter(locale.value, {\n ...opts,\n hour: 'numeric',\n minute: 'numeric',\n }).formatToParts(date)\n const value = parts.find(p => p.type === 'dayPeriod')?.value\n if (value === 'PM')\n return 'PM'\n\n return 'AM'\n }\n\n const defaultPartOptions: DateFormatterOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n }\n\n function part(\n dateObj: DateValue,\n type: Intl.DateTimeFormatPartTypes,\n options: DateFormatterOptions = {},\n ) {\n const opts = { ...defaultPartOptions, ...options }\n const parts = toParts(dateObj, opts)\n const part = parts.find(p => p.type === type)\n return part ? part.value : ''\n }\n\n return {\n setLocale,\n getLocale,\n fullMonth,\n fullYear,\n fullMonthAndYear,\n toParts,\n custom,\n part,\n dayPeriod,\n selectedDate,\n dayOfWeek,\n getMonths,\n }\n}\n"],"names":["ref","date","DateFormatter","hasTime","toDate","today","getLocalTimeZone","isZonedDateTime","opts","part"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as toDate, h as hasTime, a as isZonedDateTime } from '../date/comparators.js';
|
|
2
1
|
import { today, getLocalTimeZone, DateFormatter } from '@internationalized/date';
|
|
3
2
|
import { ref } from 'vue';
|
|
3
|
+
import { t as toDate, h as hasTime, a as isZonedDateTime } from '../date/comparators.js';
|
|
4
4
|
|
|
5
|
-
function useDateFormatter(initialLocale) {
|
|
5
|
+
function useDateFormatter(initialLocale, opts = {}) {
|
|
6
6
|
const locale = ref(initialLocale);
|
|
7
7
|
function getLocale() {
|
|
8
8
|
return locale.value;
|
|
@@ -11,7 +11,7 @@ function useDateFormatter(initialLocale) {
|
|
|
11
11
|
locale.value = newLocale;
|
|
12
12
|
}
|
|
13
13
|
function custom(date, options) {
|
|
14
|
-
return new DateFormatter(locale.value, options).format(date);
|
|
14
|
+
return new DateFormatter(locale.value, { ...opts, ...options }).format(date);
|
|
15
15
|
}
|
|
16
16
|
function selectedDate(date, includeTime = true) {
|
|
17
17
|
if (hasTime(date) && includeTime) {
|
|
@@ -26,10 +26,10 @@ function useDateFormatter(initialLocale) {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
function fullMonthAndYear(date, options = {}) {
|
|
29
|
-
return new DateFormatter(locale.value, { month: "long", year: "numeric", ...options }).format(date);
|
|
29
|
+
return new DateFormatter(locale.value, { ...opts, month: "long", year: "numeric", ...options }).format(date);
|
|
30
30
|
}
|
|
31
31
|
function fullMonth(date, options = {}) {
|
|
32
|
-
return new DateFormatter(locale.value, { month: "long", ...options }).format(date);
|
|
32
|
+
return new DateFormatter(locale.value, { ...opts, month: "long", ...options }).format(date);
|
|
33
33
|
}
|
|
34
34
|
function getMonths() {
|
|
35
35
|
const defaultDate = today(getLocalTimeZone());
|
|
@@ -37,23 +37,25 @@ function useDateFormatter(initialLocale) {
|
|
|
37
37
|
return months.map((item) => ({ label: fullMonth(toDate(defaultDate.set({ month: item }))), value: item }));
|
|
38
38
|
}
|
|
39
39
|
function fullYear(date, options = {}) {
|
|
40
|
-
return new DateFormatter(locale.value, { year: "numeric", ...options }).format(date);
|
|
40
|
+
return new DateFormatter(locale.value, { ...opts, year: "numeric", ...options }).format(date);
|
|
41
41
|
}
|
|
42
42
|
function toParts(date, options) {
|
|
43
43
|
if (isZonedDateTime(date)) {
|
|
44
44
|
return new DateFormatter(locale.value, {
|
|
45
|
+
...opts,
|
|
45
46
|
...options,
|
|
46
47
|
timeZone: date.timeZone
|
|
47
48
|
}).formatToParts(toDate(date));
|
|
48
49
|
} else {
|
|
49
|
-
return new DateFormatter(locale.value, options).formatToParts(toDate(date));
|
|
50
|
+
return new DateFormatter(locale.value, { ...opts, ...options }).formatToParts(toDate(date));
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
53
|
function dayOfWeek(date, length = "narrow") {
|
|
53
|
-
return new DateFormatter(locale.value, { weekday: length }).format(date);
|
|
54
|
+
return new DateFormatter(locale.value, { ...opts, weekday: length }).format(date);
|
|
54
55
|
}
|
|
55
56
|
function dayPeriod(date) {
|
|
56
57
|
const parts = new DateFormatter(locale.value, {
|
|
58
|
+
...opts,
|
|
57
59
|
hour: "numeric",
|
|
58
60
|
minute: "numeric"
|
|
59
61
|
}).formatToParts(date);
|
|
@@ -71,8 +73,8 @@ function useDateFormatter(initialLocale) {
|
|
|
71
73
|
second: "numeric"
|
|
72
74
|
};
|
|
73
75
|
function part(dateObj, type, options = {}) {
|
|
74
|
-
const
|
|
75
|
-
const parts = toParts(dateObj,
|
|
76
|
+
const opts2 = { ...defaultPartOptions, ...options };
|
|
77
|
+
const parts = toParts(dateObj, opts2);
|
|
76
78
|
const part2 = parts.find((p) => p.type === type);
|
|
77
79
|
return part2 ? part2.value : "";
|
|
78
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDateFormatter.js","sources":["../../src/shared/useDateFormatter.ts"],"sourcesContent":["/*\n * Implementation ported from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/internal/helpers/date/formatter.ts\n*/\n\nimport type { DateValue, ZonedDateTime } from '@internationalized/date'\nimport {
|
|
1
|
+
{"version":3,"file":"useDateFormatter.js","sources":["../../src/shared/useDateFormatter.ts"],"sourcesContent":["/*\n * Implementation ported from https://github.com/melt-ui/melt-ui/blob/develop/src/lib/internal/helpers/date/formatter.ts\n*/\n\nimport type { DateValue, ZonedDateTime } from '@internationalized/date'\nimport { DateFormatter, getLocalTimeZone, today } from '@internationalized/date'\nimport { ref } from 'vue'\nimport { hasTime, isZonedDateTime, toDate } from '@/date'\n\nexport interface DateFormatterOptions extends Intl.DateTimeFormatOptions {\n calendar?: string\n}\n\nexport type Formatter = {\n getLocale: () => string\n setLocale: (newLocale: string) => void\n custom: (date: Date, options: DateFormatterOptions) => string\n selectedDate: (date: DateValue, includeTime?: boolean) => string\n dayOfWeek: (date: Date, length?: DateFormatterOptions['weekday']) => string\n fullMonthAndYear: (date: Date, options?: DateFormatterOptions) => string\n fullMonth: (date: Date, options?: DateFormatterOptions) => string\n fullYear: (date: Date, options?: DateFormatterOptions) => string\n dayPeriod: (date: Date) => string\n part: (dateObj: DateValue, type: Intl.DateTimeFormatPartTypes, options?: DateFormatterOptions) => string\n toParts: (date: DateValue, options?: DateFormatterOptions) => Intl.DateTimeFormatPart[]\n getMonths: () => { label: string, value: number }[]\n}\n\n/**\n * Creates a wrapper around the `DateFormatter`, which is\n * an improved version of the {@link Intl.DateTimeFormat} API,\n * that is used internally by the various date builders to\n * easily format dates in a consistent way.\n *\n * @see [DateFormatter](https://react-spectrum.adobe.com/internationalized/date/DateFormatter.html)\n */\nexport function useDateFormatter(initialLocale: string, opts: DateFormatterOptions = {}): Formatter {\n const locale = ref(initialLocale)\n\n function getLocale() {\n return locale.value\n }\n\n function setLocale(newLocale: string) {\n locale.value = newLocale\n }\n\n function custom(date: Date, options: DateFormatterOptions) {\n return new DateFormatter(locale.value, { ...opts, ...options }).format(date)\n }\n\n function selectedDate(date: DateValue, includeTime = true) {\n if (hasTime(date) && includeTime) {\n return custom(toDate(date), {\n dateStyle: 'long',\n timeStyle: 'long',\n })\n }\n else {\n return custom(toDate(date), {\n dateStyle: 'long',\n })\n }\n }\n\n function fullMonthAndYear(date: Date, options: DateFormatterOptions = {}) {\n return new DateFormatter(locale.value, { ...opts, month: 'long', year: 'numeric', ...options }).format(date)\n }\n\n function fullMonth(date: Date, options: DateFormatterOptions = {}) {\n return new DateFormatter(locale.value, { ...opts, month: 'long', ...options }).format(date)\n }\n\n function getMonths() {\n const defaultDate = today(getLocalTimeZone())\n const months = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n return months.map(item => ({ label: fullMonth(toDate(defaultDate.set({ month: item }))), value: item }))\n }\n\n function fullYear(date: Date, options: DateFormatterOptions = {}) {\n return new DateFormatter(locale.value, { ...opts, year: 'numeric', ...options }).format(date)\n }\n\n function toParts(date: DateValue, options?: DateFormatterOptions) {\n if (isZonedDateTime(date)) {\n return new DateFormatter(locale.value, {\n ...opts,\n ...options,\n timeZone: (date as ZonedDateTime).timeZone,\n }).formatToParts(toDate(date))\n }\n else {\n return new DateFormatter(locale.value, { ...opts, ...options }).formatToParts(toDate(date))\n }\n }\n\n function dayOfWeek(date: Date, length: DateFormatterOptions['weekday'] = 'narrow') {\n return new DateFormatter(locale.value, { ...opts, weekday: length }).format(date)\n }\n\n function dayPeriod(date: Date) {\n const parts = new DateFormatter(locale.value, {\n ...opts,\n hour: 'numeric',\n minute: 'numeric',\n }).formatToParts(date)\n const value = parts.find(p => p.type === 'dayPeriod')?.value\n if (value === 'PM')\n return 'PM'\n\n return 'AM'\n }\n\n const defaultPartOptions: DateFormatterOptions = {\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n }\n\n function part(\n dateObj: DateValue,\n type: Intl.DateTimeFormatPartTypes,\n options: DateFormatterOptions = {},\n ) {\n const opts = { ...defaultPartOptions, ...options }\n const parts = toParts(dateObj, opts)\n const part = parts.find(p => p.type === type)\n return part ? part.value : ''\n }\n\n return {\n setLocale,\n getLocale,\n fullMonth,\n fullYear,\n fullMonthAndYear,\n toParts,\n custom,\n part,\n dayPeriod,\n selectedDate,\n dayOfWeek,\n getMonths,\n }\n}\n"],"names":["opts","part"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDirection.cjs","sources":["../../src/shared/useDirection.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { Direction } from './types'\nimport {
|
|
1
|
+
{"version":3,"file":"useDirection.cjs","sources":["../../src/shared/useDirection.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { Direction } from './types'\nimport { computed, ref } from 'vue'\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\n\nexport function useDirection(dir?: Ref<Direction | undefined>) {\n const context = injectConfigProviderContext({\n dir: ref('ltr'),\n })\n return computed(() => dir?.value || context.dir?.value || 'ltr')\n}\n"],"names":["injectConfigProviderContext","ref","computed"],"mappings":";;;;;AAKO,SAAS,aAAa,GAAkC,EAAA;AAC7D,EAAA,MAAM,UAAUA,yDAA4B,CAAA;AAAA,IAC1C,GAAA,EAAKC,QAAI,KAAK;AAAA,GACf,CAAA;AACD,EAAA,OAAOC,aAAS,MAAM,GAAA,EAAK,SAAS,OAAQ,CAAA,GAAA,EAAK,SAAS,KAAK,CAAA;AACjE;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDirection.js","sources":["../../src/shared/useDirection.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { Direction } from './types'\nimport {
|
|
1
|
+
{"version":3,"file":"useDirection.js","sources":["../../src/shared/useDirection.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { Direction } from './types'\nimport { computed, ref } from 'vue'\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\n\nexport function useDirection(dir?: Ref<Direction | undefined>) {\n const context = injectConfigProviderContext({\n dir: ref('ltr'),\n })\n return computed(() => dir?.value || context.dir?.value || 'ltr')\n}\n"],"names":[],"mappings":";;;AAKO,SAAS,aAAa,GAAkC,EAAA;AAC7D,EAAA,MAAM,UAAU,2BAA4B,CAAA;AAAA,IAC1C,GAAA,EAAK,IAAI,KAAK;AAAA,GACf,CAAA;AACD,EAAA,OAAO,SAAS,MAAM,GAAA,EAAK,SAAS,OAAQ,CAAA,GAAA,EAAK,SAAS,KAAK,CAAA;AACjE;;;;"}
|
|
@@ -12,14 +12,16 @@ function useForwardProps(props) {
|
|
|
12
12
|
}, {});
|
|
13
13
|
const refProps = vue.toRef(props);
|
|
14
14
|
return vue.computed(() => {
|
|
15
|
+
const propsAsRefs = vue.toRefs(refProps.value);
|
|
15
16
|
const preservedProps = {};
|
|
16
17
|
const assignedProps = vm?.vnode.props ?? {};
|
|
17
18
|
Object.keys(assignedProps).forEach((key) => {
|
|
18
19
|
preservedProps[vue.camelize(key)] = assignedProps[key];
|
|
19
20
|
});
|
|
20
21
|
return Object.keys({ ...defaultProps, ...preservedProps }).reduce((prev, curr) => {
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
const val = propsAsRefs[curr]?.value;
|
|
23
|
+
if (val !== void 0)
|
|
24
|
+
prev[curr] = val;
|
|
23
25
|
return prev;
|
|
24
26
|
}, {});
|
|
25
27
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForwardProps.cjs","sources":["../../src/shared/useForwardProps.ts"],"sourcesContent":["import type { MaybeRefOrGetter } from 'vue'\nimport { camelize, computed, getCurrentInstance, toRef } from 'vue'\n\ninterface PropOptions {\n type?: any\n required?: boolean\n default?: any\n}\n\n/**\n * The `useForwardProps` function in TypeScript takes in a set of props and returns a computed value\n * that combines default props with assigned props from the current instance.\n * @param {T} props - The `props` parameter is an object that represents the props passed to a\n * component.\n * @returns computed value that combines the default props, preserved props, and assigned props.\n */\nexport function useForwardProps<T extends Record<string, any>>(props: MaybeRefOrGetter<T>) {\n const vm = getCurrentInstance()\n // Default value for declared props\n const defaultProps = Object.keys(vm?.type.props ?? {}).reduce((prev, curr) => {\n const defaultValue = (vm?.type.props[curr] as PropOptions).default\n if (defaultValue !== undefined)\n prev[curr as keyof T] = defaultValue\n return prev\n }, {} as T)\n\n const refProps = toRef(props)\n return computed(() => {\n const preservedProps = {} as T\n const assignedProps = vm?.vnode.props ?? {}\n\n Object.keys(assignedProps).forEach((key) => {\n preservedProps[camelize(key) as keyof T] = assignedProps[key]\n })\n\n // Only return value from the props parameter\n return Object.keys({ ...defaultProps, ...preservedProps }).reduce((prev, curr) => {\n
|
|
1
|
+
{"version":3,"file":"useForwardProps.cjs","sources":["../../src/shared/useForwardProps.ts"],"sourcesContent":["import type { MaybeRefOrGetter } from 'vue'\nimport { camelize, computed, getCurrentInstance, toRef, toRefs } from 'vue'\n\ninterface PropOptions {\n type?: any\n required?: boolean\n default?: any\n}\n\n/**\n * The `useForwardProps` function in TypeScript takes in a set of props and returns a computed value\n * that combines default props with assigned props from the current instance.\n * @param {T} props - The `props` parameter is an object that represents the props passed to a\n * component.\n * @returns computed value that combines the default props, preserved props, and assigned props.\n */\nexport function useForwardProps<T extends Record<string, any>>(props: MaybeRefOrGetter<T>) {\n const vm = getCurrentInstance()\n // Default value for declared props\n const defaultProps = Object.keys(vm?.type.props ?? {}).reduce((prev, curr) => {\n const defaultValue = (vm?.type.props[curr] as PropOptions).default\n if (defaultValue !== undefined)\n prev[curr as keyof T] = defaultValue\n return prev\n }, {} as T)\n\n const refProps = toRef(props)\n return computed(() => {\n const propsAsRefs = toRefs(refProps.value)\n const preservedProps = {} as T\n const assignedProps = vm?.vnode.props ?? {}\n\n Object.keys(assignedProps).forEach((key) => {\n preservedProps[camelize(key) as keyof T] = assignedProps[key]\n })\n\n // Only return value from the props parameter\n return Object.keys({ ...defaultProps, ...preservedProps }).reduce((prev, curr) => {\n const val = propsAsRefs[curr]?.value\n if (val !== undefined)\n prev[curr as keyof T] = val\n return prev\n }, {} as T)\n })\n}\n"],"names":["getCurrentInstance","toRef","computed","toRefs","camelize"],"mappings":";;;;AAgBO,SAAS,gBAA+C,KAA4B,EAAA;AACzF,EAAA,MAAM,KAAKA,sBAAmB,EAAA;AAE9B,EAAA,MAAM,YAAe,GAAA,MAAA,CAAO,IAAK,CAAA,EAAA,EAAI,IAAK,CAAA,KAAA,IAAS,EAAE,CAAE,CAAA,MAAA,CAAO,CAAC,IAAA,EAAM,IAAS,KAAA;AAC5E,IAAA,MAAM,YAAgB,GAAA,CAAA,EAAA,EAAI,IAAK,CAAA,KAAA,CAAM,IAAI,CAAkB,EAAA,OAAA;AAC3D,IAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,MAAA,IAAA,CAAK,IAAe,CAAI,GAAA,YAAA;AAC1B,IAAO,OAAA,IAAA;AAAA,GACT,EAAG,EAAO,CAAA;AAEV,EAAM,MAAA,QAAA,GAAWC,UAAM,KAAK,CAAA;AAC5B,EAAA,OAAOC,aAAS,MAAM;AACpB,IAAM,MAAA,WAAA,GAAcC,UAAO,CAAA,QAAA,CAAS,KAAK,CAAA;AACzC,IAAA,MAAM,iBAAiB,EAAC;AACxB,IAAA,MAAM,aAAgB,GAAA,EAAA,EAAI,KAAM,CAAA,KAAA,IAAS,EAAC;AAE1C,IAAA,MAAA,CAAO,IAAK,CAAA,aAAa,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAC1C,MAAA,cAAA,CAAeC,YAAS,CAAA,GAAG,CAAY,CAAA,GAAI,cAAc,GAAG,CAAA;AAAA,KAC7D,CAAA;AAGD,IAAA,OAAO,MAAO,CAAA,IAAA,CAAK,EAAE,GAAG,YAAc,EAAA,GAAG,cAAe,EAAC,CAAE,CAAA,MAAA,CAAO,CAAC,IAAA,EAAM,IAAS,KAAA;AAChF,MAAM,MAAA,GAAA,GAAM,WAAY,CAAA,IAAI,CAAG,EAAA,KAAA;AAC/B,MAAA,IAAI,GAAQ,KAAA,MAAA;AACV,QAAA,IAAA,CAAK,IAAe,CAAI,GAAA,GAAA;AAC1B,MAAO,OAAA,IAAA;AAAA,KACT,EAAG,EAAO,CAAA;AAAA,GACX,CAAA;AACH;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getCurrentInstance, toRef, computed, camelize } from 'vue';
|
|
1
|
+
import { getCurrentInstance, toRef, computed, toRefs, camelize } from 'vue';
|
|
2
2
|
|
|
3
3
|
function useForwardProps(props) {
|
|
4
4
|
const vm = getCurrentInstance();
|
|
@@ -10,14 +10,16 @@ function useForwardProps(props) {
|
|
|
10
10
|
}, {});
|
|
11
11
|
const refProps = toRef(props);
|
|
12
12
|
return computed(() => {
|
|
13
|
+
const propsAsRefs = toRefs(refProps.value);
|
|
13
14
|
const preservedProps = {};
|
|
14
15
|
const assignedProps = vm?.vnode.props ?? {};
|
|
15
16
|
Object.keys(assignedProps).forEach((key) => {
|
|
16
17
|
preservedProps[camelize(key)] = assignedProps[key];
|
|
17
18
|
});
|
|
18
19
|
return Object.keys({ ...defaultProps, ...preservedProps }).reduce((prev, curr) => {
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
const val = propsAsRefs[curr]?.value;
|
|
21
|
+
if (val !== void 0)
|
|
22
|
+
prev[curr] = val;
|
|
21
23
|
return prev;
|
|
22
24
|
}, {});
|
|
23
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForwardProps.js","sources":["../../src/shared/useForwardProps.ts"],"sourcesContent":["import type { MaybeRefOrGetter } from 'vue'\nimport { camelize, computed, getCurrentInstance, toRef } from 'vue'\n\ninterface PropOptions {\n type?: any\n required?: boolean\n default?: any\n}\n\n/**\n * The `useForwardProps` function in TypeScript takes in a set of props and returns a computed value\n * that combines default props with assigned props from the current instance.\n * @param {T} props - The `props` parameter is an object that represents the props passed to a\n * component.\n * @returns computed value that combines the default props, preserved props, and assigned props.\n */\nexport function useForwardProps<T extends Record<string, any>>(props: MaybeRefOrGetter<T>) {\n const vm = getCurrentInstance()\n // Default value for declared props\n const defaultProps = Object.keys(vm?.type.props ?? {}).reduce((prev, curr) => {\n const defaultValue = (vm?.type.props[curr] as PropOptions).default\n if (defaultValue !== undefined)\n prev[curr as keyof T] = defaultValue\n return prev\n }, {} as T)\n\n const refProps = toRef(props)\n return computed(() => {\n const preservedProps = {} as T\n const assignedProps = vm?.vnode.props ?? {}\n\n Object.keys(assignedProps).forEach((key) => {\n preservedProps[camelize(key) as keyof T] = assignedProps[key]\n })\n\n // Only return value from the props parameter\n return Object.keys({ ...defaultProps, ...preservedProps }).reduce((prev, curr) => {\n
|
|
1
|
+
{"version":3,"file":"useForwardProps.js","sources":["../../src/shared/useForwardProps.ts"],"sourcesContent":["import type { MaybeRefOrGetter } from 'vue'\nimport { camelize, computed, getCurrentInstance, toRef, toRefs } from 'vue'\n\ninterface PropOptions {\n type?: any\n required?: boolean\n default?: any\n}\n\n/**\n * The `useForwardProps` function in TypeScript takes in a set of props and returns a computed value\n * that combines default props with assigned props from the current instance.\n * @param {T} props - The `props` parameter is an object that represents the props passed to a\n * component.\n * @returns computed value that combines the default props, preserved props, and assigned props.\n */\nexport function useForwardProps<T extends Record<string, any>>(props: MaybeRefOrGetter<T>) {\n const vm = getCurrentInstance()\n // Default value for declared props\n const defaultProps = Object.keys(vm?.type.props ?? {}).reduce((prev, curr) => {\n const defaultValue = (vm?.type.props[curr] as PropOptions).default\n if (defaultValue !== undefined)\n prev[curr as keyof T] = defaultValue\n return prev\n }, {} as T)\n\n const refProps = toRef(props)\n return computed(() => {\n const propsAsRefs = toRefs(refProps.value)\n const preservedProps = {} as T\n const assignedProps = vm?.vnode.props ?? {}\n\n Object.keys(assignedProps).forEach((key) => {\n preservedProps[camelize(key) as keyof T] = assignedProps[key]\n })\n\n // Only return value from the props parameter\n return Object.keys({ ...defaultProps, ...preservedProps }).reduce((prev, curr) => {\n const val = propsAsRefs[curr]?.value\n if (val !== undefined)\n prev[curr as keyof T] = val\n return prev\n }, {} as T)\n })\n}\n"],"names":[],"mappings":";;AAgBO,SAAS,gBAA+C,KAA4B,EAAA;AACzF,EAAA,MAAM,KAAK,kBAAmB,EAAA;AAE9B,EAAA,MAAM,YAAe,GAAA,MAAA,CAAO,IAAK,CAAA,EAAA,EAAI,IAAK,CAAA,KAAA,IAAS,EAAE,CAAE,CAAA,MAAA,CAAO,CAAC,IAAA,EAAM,IAAS,KAAA;AAC5E,IAAA,MAAM,YAAgB,GAAA,CAAA,EAAA,EAAI,IAAK,CAAA,KAAA,CAAM,IAAI,CAAkB,EAAA,OAAA;AAC3D,IAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,MAAA,IAAA,CAAK,IAAe,CAAI,GAAA,YAAA;AAC1B,IAAO,OAAA,IAAA;AAAA,GACT,EAAG,EAAO,CAAA;AAEV,EAAM,MAAA,QAAA,GAAW,MAAM,KAAK,CAAA;AAC5B,EAAA,OAAO,SAAS,MAAM;AACpB,IAAM,MAAA,WAAA,GAAc,MAAO,CAAA,QAAA,CAAS,KAAK,CAAA;AACzC,IAAA,MAAM,iBAAiB,EAAC;AACxB,IAAA,MAAM,aAAgB,GAAA,EAAA,EAAI,KAAM,CAAA,KAAA,IAAS,EAAC;AAE1C,IAAA,MAAA,CAAO,IAAK,CAAA,aAAa,CAAE,CAAA,OAAA,CAAQ,CAAC,GAAQ,KAAA;AAC1C,MAAA,cAAA,CAAe,QAAS,CAAA,GAAG,CAAY,CAAA,GAAI,cAAc,GAAG,CAAA;AAAA,KAC7D,CAAA;AAGD,IAAA,OAAO,MAAO,CAAA,IAAA,CAAK,EAAE,GAAG,YAAc,EAAA,GAAG,cAAe,EAAC,CAAE,CAAA,MAAA,CAAO,CAAC,IAAA,EAAM,IAAS,KAAA;AAChF,MAAM,MAAA,GAAA,GAAM,WAAY,CAAA,IAAI,CAAG,EAAA,KAAA;AAC/B,MAAA,IAAI,GAAQ,KAAA,MAAA;AACV,QAAA,IAAA,CAAK,IAAe,CAAI,GAAA,GAAA;AAC1B,MAAO,OAAA,IAAA;AAAA,KACT,EAAG,EAAO,CAAA;AAAA,GACX,CAAA;AACH;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraceArea.cjs","sources":["../../src/shared/useGraceArea.ts"],"sourcesContent":["import type { Side } from '@/Popper/utils'\nimport type { Ref } from 'vue'\nimport { createEventHook, refAutoReset } from '@vueuse/shared'\nimport { ref, watchEffect } from 'vue'\n\nexport function useGraceArea(triggerElement: Ref<HTMLElement | undefined>, containerElement: Ref<HTMLElement | undefined>) {\n// Reset the inTransit state if idle/scrolled.\n const isPointerInTransit = refAutoReset(false, 300)\n\n const pointerGraceArea = ref<Polygon | null>(null)\n const pointerExit = createEventHook<void>()\n\n function handleRemoveGraceArea() {\n pointerGraceArea.value = null\n isPointerInTransit.value = false\n }\n\n function handleCreateGraceArea(event: PointerEvent, hoverTarget: HTMLElement) {\n const currentTarget = event.currentTarget as HTMLElement\n const exitPoint = { x: event.clientX, y: event.clientY }\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect())\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide)\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect())\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints])\n pointerGraceArea.value = graceArea\n isPointerInTransit.value = true\n }\n\n watchEffect((cleanupFn) => {\n if (triggerElement.value && containerElement.value) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, containerElement.value!)\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, triggerElement.value!)\n\n triggerElement.value.addEventListener('pointerleave', handleTriggerLeave)\n containerElement.value.addEventListener('pointerleave', handleContentLeave)\n\n cleanupFn(() => {\n triggerElement.value?.removeEventListener('pointerleave', handleTriggerLeave)\n containerElement.value?.removeEventListener('pointerleave', handleContentLeave)\n })\n }\n })\n\n watchEffect((cleanupFn) => {\n if (pointerGraceArea.value) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n if (!pointerGraceArea.value || !(event.target instanceof HTMLElement))\n return\n\n const target = event.target\n const pointerPosition = { x: event.clientX, y: event.clientY }\n const hasEnteredTarget = triggerElement.value?.contains(target) || containerElement.value?.contains(target)\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea.value)\n const isAnotherGraceAreaTrigger = !!target.closest('[data-grace-area-trigger]')\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea()\n }\n else if (isPointerOutsideGraceArea || isAnotherGraceAreaTrigger) {\n handleRemoveGraceArea()\n pointerExit.trigger()\n }\n }\n triggerElement.value?.ownerDocument.addEventListener('pointermove', handleTrackPointerGrace)\n\n cleanupFn(() => triggerElement.value?.ownerDocument.removeEventListener('pointermove', handleTrackPointerGrace))\n }\n })\n\n return {\n isPointerInTransit,\n onPointerExit: pointerExit.on,\n }\n}\n\ninterface Point { x: number, y: number }\n type Polygon = Point[]\n\nfunction getExitSideFromRect(point: Point, rect: DOMRect): Side {\n const top = Math.abs(rect.top - point.y)\n const bottom = Math.abs(rect.bottom - point.y)\n const right = Math.abs(rect.right - point.x)\n const left = Math.abs(rect.left - point.x)\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left'\n case right:\n return 'right'\n case top:\n return 'top'\n case bottom:\n return 'bottom'\n default:\n throw new Error('unreachable')\n }\n}\n\nfunction getPaddedExitPoints(exitPoint: Point, exitSide: Side, padding = 5) {\n const paddedExitPoints: Point[] = []\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n )\n break\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n )\n break\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n )\n break\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n )\n break\n }\n return paddedExitPoints\n}\n\nfunction getPointsFromRect(rect: DOMRect) {\n const { top, right, bottom, left } = rect\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ]\n}\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point\n let inside = false\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x\n const yi = polygon[i].y\n const xj = polygon[j].x\n const yj = polygon[j].y\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi)\n if (intersect)\n inside = !inside\n }\n\n return inside\n}\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n const newPoints: Array<P> = points.slice()\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x)\n return -1\n else if (a.x > b.x)\n return +1\n else if (a.y < b.y)\n return -1\n else if (a.y > b.y)\n return +1\n else return 0\n })\n return getHullPresorted(newPoints)\n}\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n if (points.length <= 1)\n return points.slice()\n\n const upperHull: Array<P> = []\n for (let i = 0; i < points.length; i++) {\n const p = points[i]\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1]\n const r = upperHull[upperHull.length - 2]\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n upperHull.pop()\n else break\n }\n upperHull.push(p)\n }\n upperHull.pop()\n\n const lowerHull: Array<P> = []\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i]\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1]\n const r = lowerHull[lowerHull.length - 2]\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n lowerHull.pop()\n else break\n }\n lowerHull.push(p)\n }\n lowerHull.pop()\n\n if (\n upperHull.length === 1\n && lowerHull.length === 1\n && upperHull[0].x === lowerHull[0].x\n && upperHull[0].y === lowerHull[0].y\n ) {\n return upperHull\n }\n\n else {\n return upperHull.concat(lowerHull)\n }\n}\n"],"names":["refAutoReset","ref","createEventHook","watchEffect"],"mappings":";;;;;AAKgB,SAAA,YAAA,CAAa,gBAA8C,gBAAgD,EAAA;AAEzH,EAAM,MAAA,kBAAA,GAAqBA,mBAAa,CAAA,KAAA,EAAO,GAAG,CAAA;AAElD,EAAM,MAAA,gBAAA,GAAmBC,QAAoB,IAAI,CAAA;AACjD,EAAA,MAAM,cAAcC,sBAAsB,EAAA;AAE1C,EAAA,SAAS,qBAAwB,GAAA;AAC/B,IAAA,gBAAA,CAAiB,KAAQ,GAAA,IAAA;AACzB,IAAA,kBAAA,CAAmB,KAAQ,GAAA,KAAA;AAAA;AAG7B,EAAS,SAAA,qBAAA,CAAsB,OAAqB,WAA0B,EAAA;AAC5E,IAAA,MAAM,gBAAgB,KAAM,CAAA,aAAA;AAC5B,IAAA,MAAM,YAAY,EAAE,CAAA,EAAG,MAAM,OAAS,EAAA,CAAA,EAAG,MAAM,OAAQ,EAAA;AACvD,IAAA,MAAM,QAAW,GAAA,mBAAA,CAAoB,SAAW,EAAA,aAAA,CAAc,uBAAuB,CAAA;AACrF,IAAM,MAAA,gBAAA,GAAmB,mBAAoB,CAAA,SAAA,EAAW,QAAQ,CAAA;AAChE,IAAA,MAAM,iBAAoB,GAAA,iBAAA,CAAkB,WAAY,CAAA,qBAAA,EAAuB,CAAA;AAC/E,IAAA,MAAM,YAAY,OAAQ,CAAA,CAAC,GAAG,gBAAkB,EAAA,GAAG,iBAAiB,CAAC,CAAA;AACrE,IAAA,gBAAA,CAAiB,KAAQ,GAAA,SAAA;AACzB,IAAA,kBAAA,CAAmB,KAAQ,GAAA,IAAA;AAAA;AAG7B,EAAAC,eAAA,CAAY,CAAC,SAAc,KAAA;AACzB,IAAI,IAAA,cAAA,CAAe,KAAS,IAAA,gBAAA,CAAiB,KAAO,EAAA;AAClD,MAAA,MAAM,qBAAqB,CAAC,KAAA,KAAwB,qBAAsB,CAAA,KAAA,EAAO,iBAAiB,KAAM,CAAA;AACxG,MAAA,MAAM,qBAAqB,CAAC,KAAA,KAAwB,qBAAsB,CAAA,KAAA,EAAO,eAAe,KAAM,CAAA;AAEtG,MAAe,cAAA,CAAA,KAAA,CAAM,gBAAiB,CAAA,cAAA,EAAgB,kBAAkB,CAAA;AACxE,MAAiB,gBAAA,CAAA,KAAA,CAAM,gBAAiB,CAAA,cAAA,EAAgB,kBAAkB,CAAA;AAE1E,MAAA,SAAA,CAAU,MAAM;AACd,QAAe,cAAA,CAAA,KAAA,EAAO,mBAAoB,CAAA,cAAA,EAAgB,kBAAkB,CAAA;AAC5E,QAAiB,gBAAA,CAAA,KAAA,EAAO,mBAAoB,CAAA,cAAA,EAAgB,kBAAkB,CAAA;AAAA,OAC/E,CAAA;AAAA;AACH,GACD,CAAA;AAED,EAAAA,eAAA,CAAY,CAAC,SAAc,KAAA;AACzB,IAAA,IAAI,iBAAiB,KAAO,EAAA;AAC1B,MAAM,MAAA,uBAAA,GAA0B,CAAC,KAAwB,KAAA;AACvD,QAAA,IAAI,CAAC,gBAAA,CAAiB,KAAS,IAAA,EAAE,MAAM,MAAkB,YAAA,WAAA,CAAA;AACvD,UAAA;AAEF,QAAA,MAAM,SAAS,KAAM,CAAA,MAAA;AACrB,QAAA,MAAM,kBAAkB,EAAE,CAAA,EAAG,MAAM,OAAS,EAAA,CAAA,EAAG,MAAM,OAAQ,EAAA;AAC7D,QAAM,MAAA,gBAAA,GAAmB,eAAe,KAAO,EAAA,QAAA,CAAS,MAAM,CAAK,IAAA,gBAAA,CAAiB,KAAO,EAAA,QAAA,CAAS,MAAM,CAAA;AAC1G,QAAA,MAAM,yBAA4B,GAAA,CAAC,gBAAiB,CAAA,eAAA,EAAiB,iBAAiB,KAAK,CAAA;AAC3F,QAAA,MAAM,yBAA4B,GAAA,CAAC,CAAC,MAAA,CAAO,QAAQ,2BAA2B,CAAA;AAE9E,QAAA,IAAI,gBAAkB,EAAA;AACpB,UAAsB,qBAAA,EAAA;AAAA,SACxB,MAAA,IACS,6BAA6B,yBAA2B,EAAA;AAC/D,UAAsB,qBAAA,EAAA;AACtB,UAAA,WAAA,CAAY,OAAQ,EAAA;AAAA;AACtB,OACF;AACA,MAAA,cAAA,CAAe,KAAO,EAAA,aAAA,CAAc,gBAAiB,CAAA,aAAA,EAAe,uBAAuB,CAAA;AAE3F,MAAA,SAAA,CAAU,MAAM,cAAe,CAAA,KAAA,EAAO,cAAc,mBAAoB,CAAA,aAAA,EAAe,uBAAuB,CAAC,CAAA;AAAA;AACjH,GACD,CAAA;AAED,EAAO,OAAA;AAAA,IACL,kBAAA;AAAA,IACA,eAAe,WAAY,CAAA;AAAA,GAC7B;AACF;AAKA,SAAS,mBAAA,CAAoB,OAAc,IAAqB,EAAA;AAC9D,EAAA,MAAM,MAAM,IAAK,CAAA,GAAA,CAAI,IAAK,CAAA,GAAA,GAAM,MAAM,CAAC,CAAA;AACvC,EAAA,MAAM,SAAS,IAAK,CAAA,GAAA,CAAI,IAAK,CAAA,MAAA,GAAS,MAAM,CAAC,CAAA;AAC7C,EAAA,MAAM,QAAQ,IAAK,CAAA,GAAA,CAAI,IAAK,CAAA,KAAA,GAAQ,MAAM,CAAC,CAAA;AAC3C,EAAA,MAAM,OAAO,IAAK,CAAA,GAAA,CAAI,IAAK,CAAA,IAAA,GAAO,MAAM,CAAC,CAAA;AAEzC,EAAA,QAAQ,KAAK,GAAI,CAAA,GAAA,EAAK,MAAQ,EAAA,KAAA,EAAO,IAAI,CAAG;AAAA,IAC1C,KAAK,IAAA;AACH,MAAO,OAAA,MAAA;AAAA,IACT,KAAK,KAAA;AACH,MAAO,OAAA,OAAA;AAAA,IACT,KAAK,GAAA;AACH,MAAO,OAAA,KAAA;AAAA,IACT,KAAK,MAAA;AACH,MAAO,OAAA,QAAA;AAAA,IACT;AACE,MAAM,MAAA,IAAI,MAAM,aAAa,CAAA;AAAA;AAEnC;AAEA,SAAS,mBAAoB,CAAA,SAAA,EAAkB,QAAgB,EAAA,OAAA,GAAU,CAAG,EAAA;AAC1E,EAAA,MAAM,mBAA4B,EAAC;AACnC,EAAA,QAAQ,QAAU;AAAA,IAChB,KAAK,KAAA;AACH,MAAiB,gBAAA,CAAA,IAAA;AAAA,QACf,EAAE,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,CAAG,EAAA,SAAA,CAAU,IAAI,OAAQ,EAAA;AAAA,QACrD,EAAE,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,CAAG,EAAA,SAAA,CAAU,IAAI,OAAQ;AAAA,OACvD;AACA,MAAA;AAAA,IACF,KAAK,QAAA;AACH,MAAiB,gBAAA,CAAA,IAAA;AAAA,QACf,EAAE,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,CAAG,EAAA,SAAA,CAAU,IAAI,OAAQ,EAAA;AAAA,QACrD,EAAE,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,CAAG,EAAA,SAAA,CAAU,IAAI,OAAQ;AAAA,OACvD;AACA,MAAA;AAAA,IACF,KAAK,MAAA;AACH,MAAiB,gBAAA,CAAA,IAAA;AAAA,QACf,EAAE,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,CAAG,EAAA,SAAA,CAAU,IAAI,OAAQ,EAAA;AAAA,QACrD,EAAE,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,CAAG,EAAA,SAAA,CAAU,IAAI,OAAQ;AAAA,OACvD;AACA,MAAA;AAAA,IACF,KAAK,OAAA;AACH,MAAiB,gBAAA,CAAA,IAAA;AAAA,QACf,EAAE,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,CAAG,EAAA,SAAA,CAAU,IAAI,OAAQ,EAAA;AAAA,QACrD,EAAE,GAAG,SAAU,CAAA,CAAA,GAAI,SAAS,CAAG,EAAA,SAAA,CAAU,IAAI,OAAQ;AAAA,OACvD;AACA,MAAA;AAAA;AAEJ,EAAO,OAAA,gBAAA;AACT;AAEA,SAAS,kBAAkB,IAAe,EAAA;AACxC,EAAA,MAAM,EAAE,GAAA,EAAK,KAAO,EAAA,MAAA,EAAQ,MAAS,GAAA,IAAA;AACrC,EAAO,OAAA;AAAA,IACL,EAAE,CAAA,EAAG,IAAM,EAAA,CAAA,EAAG,GAAI,EAAA;AAAA,IAClB,EAAE,CAAA,EAAG,KAAO,EAAA,CAAA,EAAG,GAAI,EAAA;AAAA,IACnB,EAAE,CAAA,EAAG,KAAO,EAAA,CAAA,EAAG,MAAO,EAAA;AAAA,IACtB,EAAE,CAAA,EAAG,IAAM,EAAA,CAAA,EAAG,MAAO;AAAA,GACvB;AACF;AAIA,SAAS,gBAAA,CAAiB,OAAc,OAAkB,EAAA;AACxD,EAAM,MAAA,EAAE,CAAG,EAAA,CAAA,EAAM,GAAA,KAAA;AACjB,EAAA,IAAI,MAAS,GAAA,KAAA;AACb,EAAS,KAAA,IAAA,CAAA,GAAI,CAAG,EAAA,CAAA,GAAI,OAAQ,CAAA,MAAA,GAAS,GAAG,CAAI,GAAA,OAAA,CAAQ,MAAQ,EAAA,CAAA,GAAI,CAAK,EAAA,EAAA;AACnE,IAAM,MAAA,EAAA,GAAK,OAAQ,CAAA,CAAC,CAAE,CAAA,CAAA;AACtB,IAAM,MAAA,EAAA,GAAK,OAAQ,CAAA,CAAC,CAAE,CAAA,CAAA;AACtB,IAAM,MAAA,EAAA,GAAK,OAAQ,CAAA,CAAC,CAAE,CAAA,CAAA;AACtB,IAAM,MAAA,EAAA,GAAK,OAAQ,CAAA,CAAC,CAAE,CAAA,CAAA;AAGtB,IAAM,MAAA,SAAA,GAAc,EAAK,GAAA,CAAA,KAAQ,EAAK,GAAA,CAAA,IAAQ,CAAK,GAAA,CAAA,EAAA,GAAK,EAAO,KAAA,CAAA,GAAI,EAAO,CAAA,IAAA,EAAA,GAAK,EAAM,CAAA,GAAA,EAAA;AACrF,IAAI,IAAA,SAAA;AACF,MAAA,MAAA,GAAS,CAAC,MAAA;AAAA;AAGd,EAAO,OAAA,MAAA;AACT;AAIA,SAAS,QAAyB,MAAsC,EAAA;AACtE,EAAM,MAAA,SAAA,GAAsB,OAAO,KAAM,EAAA;AACzC,EAAU,SAAA,CAAA,IAAA,CAAK,CAAC,CAAA,EAAU,CAAa,KAAA;AACrC,IAAI,IAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA;AACV,MAAO,OAAA,EAAA;AAAA,SACA,IAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA;AACf,MAAO,OAAA,CAAA;AAAA,SACA,IAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA;AACf,MAAO,OAAA,EAAA;AAAA,SACA,IAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA;AACf,MAAO,OAAA,CAAA;AAAA,SACG,OAAA,CAAA;AAAA,GACb,CAAA;AACD,EAAA,OAAO,iBAAiB,SAAS,CAAA;AACnC;AAGA,SAAS,iBAAkC,MAAsC,EAAA;AAC/E,EAAA,IAAI,OAAO,MAAU,IAAA,CAAA;AACnB,IAAA,OAAO,OAAO,KAAM,EAAA;AAEtB,EAAA,MAAM,YAAsB,EAAC;AAC7B,EAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAI,GAAA,MAAA,CAAO,QAAQ,CAAK,EAAA,EAAA;AACtC,IAAM,MAAA,CAAA,GAAI,OAAO,CAAC,CAAA;AAClB,IAAO,OAAA,SAAA,CAAU,UAAU,CAAG,EAAA;AAC5B,MAAA,MAAM,CAAI,GAAA,SAAA,CAAU,SAAU,CAAA,MAAA,GAAS,CAAC,CAAA;AACxC,MAAA,MAAM,CAAI,GAAA,SAAA,CAAU,SAAU,CAAA,MAAA,GAAS,CAAC,CAAA;AACxC,MAAA,IAAA,CAAK,CAAE,CAAA,CAAA,GAAI,CAAE,CAAA,CAAA,KAAM,EAAE,CAAI,GAAA,CAAA,CAAE,CAAO,CAAA,IAAA,CAAA,CAAA,CAAE,CAAI,GAAA,CAAA,CAAE,CAAM,KAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA,CAAA;AACtD,QAAA,SAAA,CAAU,GAAI,EAAA;AAAA,WACX;AAAA;AAEP,IAAA,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA;AAElB,EAAA,SAAA,CAAU,GAAI,EAAA;AAEd,EAAA,MAAM,YAAsB,EAAC;AAC7B,EAAA,KAAA,IAAS,IAAI,MAAO,CAAA,MAAA,GAAS,CAAG,EAAA,CAAA,IAAK,GAAG,CAAK,EAAA,EAAA;AAC3C,IAAM,MAAA,CAAA,GAAI,OAAO,CAAC,CAAA;AAClB,IAAO,OAAA,SAAA,CAAU,UAAU,CAAG,EAAA;AAC5B,MAAA,MAAM,CAAI,GAAA,SAAA,CAAU,SAAU,CAAA,MAAA,GAAS,CAAC,CAAA;AACxC,MAAA,MAAM,CAAI,GAAA,SAAA,CAAU,SAAU,CAAA,MAAA,GAAS,CAAC,CAAA;AACxC,MAAA,IAAA,CAAK,CAAE,CAAA,CAAA,GAAI,CAAE,CAAA,CAAA,KAAM,EAAE,CAAI,GAAA,CAAA,CAAE,CAAO,CAAA,IAAA,CAAA,CAAA,CAAE,CAAI,GAAA,CAAA,CAAE,CAAM,KAAA,CAAA,CAAE,IAAI,CAAE,CAAA,CAAA,CAAA;AACtD,QAAA,SAAA,CAAU,GAAI,EAAA;AAAA,WACX;AAAA;AAEP,IAAA,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA;AAElB,EAAA,SAAA,CAAU,GAAI,EAAA;AAEd,EACE,IAAA,SAAA,CAAU,WAAW,CAClB,IAAA,SAAA,CAAU,WAAW,CACrB,IAAA,SAAA,CAAU,CAAC,CAAE,CAAA,CAAA,KAAM,UAAU,CAAC,CAAA,CAAE,KAChC,SAAU,CAAA,CAAC,EAAE,CAAM,KAAA,SAAA,CAAU,CAAC,CAAA,CAAE,CACnC,EAAA;AACA,IAAO,OAAA,SAAA;AAAA,GAGJ,MAAA;AACH,IAAO,OAAA,SAAA,CAAU,OAAO,SAAS,CAAA;AAAA;AAErC;;;;"}
|
|
1
|
+
{"version":3,"file":"useGraceArea.cjs","sources":["../../src/shared/useGraceArea.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport type { Side } from '@/Popper/utils'\nimport { createEventHook, refAutoReset } from '@vueuse/shared'\nimport { ref, watchEffect } from 'vue'\n\nexport function useGraceArea(triggerElement: Ref<HTMLElement | undefined>, containerElement: Ref<HTMLElement | undefined>) {\n// Reset the inTransit state if idle/scrolled.\n const isPointerInTransit = refAutoReset(false, 300)\n\n const pointerGraceArea = ref<Polygon | null>(null)\n const pointerExit = createEventHook<void>()\n\n function handleRemoveGraceArea() {\n pointerGraceArea.value = null\n isPointerInTransit.value = false\n }\n\n function handleCreateGraceArea(event: PointerEvent, hoverTarget: HTMLElement) {\n const currentTarget = event.currentTarget as HTMLElement\n const exitPoint = { x: event.clientX, y: event.clientY }\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect())\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide)\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect())\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints])\n pointerGraceArea.value = graceArea\n isPointerInTransit.value = true\n }\n\n watchEffect((cleanupFn) => {\n if (triggerElement.value && containerElement.value) {\n const handleTriggerLeave = (event: PointerEvent) => handleCreateGraceArea(event, containerElement.value!)\n const handleContentLeave = (event: PointerEvent) => handleCreateGraceArea(event, triggerElement.value!)\n\n triggerElement.value.addEventListener('pointerleave', handleTriggerLeave)\n containerElement.value.addEventListener('pointerleave', handleContentLeave)\n\n cleanupFn(() => {\n triggerElement.value?.removeEventListener('pointerleave', handleTriggerLeave)\n containerElement.value?.removeEventListener('pointerleave', handleContentLeave)\n })\n }\n })\n\n watchEffect((cleanupFn) => {\n if (pointerGraceArea.value) {\n const handleTrackPointerGrace = (event: PointerEvent) => {\n if (!pointerGraceArea.value || !(event.target instanceof HTMLElement))\n return\n\n const target = event.target\n const pointerPosition = { x: event.clientX, y: event.clientY }\n const hasEnteredTarget = triggerElement.value?.contains(target) || containerElement.value?.contains(target)\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea.value)\n const isAnotherGraceAreaTrigger = !!target.closest('[data-grace-area-trigger]')\n\n if (hasEnteredTarget) {\n handleRemoveGraceArea()\n }\n else if (isPointerOutsideGraceArea || isAnotherGraceAreaTrigger) {\n handleRemoveGraceArea()\n pointerExit.trigger()\n }\n }\n triggerElement.value?.ownerDocument.addEventListener('pointermove', handleTrackPointerGrace)\n\n cleanupFn(() => triggerElement.value?.ownerDocument.removeEventListener('pointermove', handleTrackPointerGrace))\n }\n })\n\n return {\n isPointerInTransit,\n onPointerExit: pointerExit.on,\n }\n}\n\ninterface Point { x: number, y: number }\n type Polygon = Point[]\n\nfunction getExitSideFromRect(point: Point, rect: DOMRect): Side {\n const top = Math.abs(rect.top - point.y)\n const bottom = Math.abs(rect.bottom - point.y)\n const right = Math.abs(rect.right - point.x)\n const left = Math.abs(rect.left - point.x)\n\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return 'left'\n case right:\n return 'right'\n case top:\n return 'top'\n case bottom:\n return 'bottom'\n default:\n throw new Error('unreachable')\n }\n}\n\nfunction getPaddedExitPoints(exitPoint: Point, exitSide: Side, padding = 5) {\n const paddedExitPoints: Point[] = []\n switch (exitSide) {\n case 'top':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n )\n break\n case 'bottom':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n )\n break\n case 'left':\n paddedExitPoints.push(\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n )\n break\n case 'right':\n paddedExitPoints.push(\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n )\n break\n }\n return paddedExitPoints\n}\n\nfunction getPointsFromRect(rect: DOMRect) {\n const { top, right, bottom, left } = rect\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ]\n}\n\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point: Point, polygon: Polygon) {\n const { x, y } = point\n let inside = false\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x\n const yi = polygon[i].y\n const xj = polygon[j].x\n const yj = polygon[j].y\n\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi)\n if (intersect)\n inside = !inside\n }\n\n return inside\n}\n\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n const newPoints: Array<P> = points.slice()\n newPoints.sort((a: Point, b: Point) => {\n if (a.x < b.x)\n return -1\n else if (a.x > b.x)\n return +1\n else if (a.y < b.y)\n return -1\n else if (a.y > b.y)\n return +1\n else return 0\n })\n return getHullPresorted(newPoints)\n}\n\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted<P extends Point>(points: Readonly<Array<P>>): Array<P> {\n if (points.length <= 1)\n return points.slice()\n\n const upperHull: Array<P> = []\n for (let i = 0; i < points.length; i++) {\n const p = points[i]\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1]\n const r = upperHull[upperHull.length - 2]\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n upperHull.pop()\n else break\n }\n upperHull.push(p)\n }\n upperHull.pop()\n\n const lowerHull: Array<P> = []\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i]\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1]\n const r = lowerHull[lowerHull.length - 2]\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n lowerHull.pop()\n else break\n }\n lowerHull.push(p)\n }\n lowerHull.pop()\n\n if (\n upperHull.length === 1\n && lowerHull.length === 1\n && upperHull[0].x === lowerHull[0].x\n && upperHull[0].y === lowerHull[0].y\n ) {\n return upperHull\n }\n\n else {\n return upperHull.concat(lowerHull)\n }\n}\n"],"names":["refAutoReset","ref","createEventHook","watchEffect"],"mappings":"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"}
|