reka-ui 2.1.1 → 2.2.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/README.md +1 -1
- package/dist/Accordion/AccordionContent.cjs +2 -1
- package/dist/Accordion/AccordionContent.cjs.map +1 -1
- package/dist/Accordion/AccordionContent.js +3 -2
- package/dist/Accordion/AccordionContent.js.map +1 -1
- package/dist/Accordion/AccordionHeader.js +1 -1
- package/dist/Accordion/AccordionItem.cjs +2 -2
- package/dist/Accordion/AccordionItem.cjs.map +1 -1
- package/dist/Accordion/AccordionItem.js +3 -3
- package/dist/Accordion/AccordionItem.js.map +1 -1
- package/dist/Accordion/AccordionRoot.cjs +1 -1
- package/dist/Accordion/AccordionRoot.js +2 -2
- package/dist/Accordion/AccordionTrigger.cjs +2 -2
- package/dist/Accordion/AccordionTrigger.cjs.map +1 -1
- package/dist/Accordion/AccordionTrigger.js +3 -3
- package/dist/Accordion/AccordionTrigger.js.map +1 -1
- package/dist/AlertDialog/AlertDialogAction.js +1 -1
- package/dist/AlertDialog/AlertDialogCancel.js +1 -1
- package/dist/AlertDialog/AlertDialogContent.cjs +1 -1
- package/dist/AlertDialog/AlertDialogContent.js +2 -2
- package/dist/AlertDialog/AlertDialogDescription.js +1 -1
- package/dist/AlertDialog/AlertDialogOverlay.js +1 -1
- package/dist/AlertDialog/AlertDialogPortal.js +1 -1
- package/dist/AlertDialog/AlertDialogRoot.js +1 -1
- package/dist/AlertDialog/AlertDialogTitle.js +1 -1
- package/dist/AlertDialog/AlertDialogTrigger.js +1 -1
- package/dist/AspectRatio/AspectRatio.js +1 -1
- package/dist/Avatar/AvatarFallback.js +1 -1
- package/dist/Avatar/AvatarImage.js +1 -1
- package/dist/Avatar/AvatarRoot.cjs +1 -1
- package/dist/Avatar/AvatarRoot.js +2 -2
- package/dist/Calendar/CalendarCell.cjs +2 -2
- package/dist/Calendar/CalendarCell.js +3 -3
- package/dist/Calendar/CalendarCellTrigger.cjs +74 -50
- package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.js +75 -51
- package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
- package/dist/Calendar/CalendarGrid.cjs +2 -2
- package/dist/Calendar/CalendarGrid.cjs.map +1 -1
- package/dist/Calendar/CalendarGrid.js +3 -3
- package/dist/Calendar/CalendarGrid.js.map +1 -1
- package/dist/Calendar/CalendarGridBody.js +1 -1
- package/dist/Calendar/CalendarGridHead.js +1 -1
- package/dist/Calendar/CalendarGridRow.js +1 -1
- package/dist/Calendar/CalendarHeadCell.js +1 -1
- package/dist/Calendar/CalendarHeader.js +1 -1
- package/dist/Calendar/CalendarHeading.cjs +1 -1
- package/dist/Calendar/CalendarHeading.js +2 -2
- package/dist/Calendar/CalendarNext.cjs +3 -3
- package/dist/Calendar/CalendarNext.js +4 -4
- package/dist/Calendar/CalendarPrev.cjs +3 -3
- package/dist/Calendar/CalendarPrev.js +4 -4
- package/dist/Calendar/CalendarRoot.cjs +14 -12
- package/dist/Calendar/CalendarRoot.cjs.map +1 -1
- package/dist/Calendar/CalendarRoot.js +15 -13
- package/dist/Calendar/CalendarRoot.js.map +1 -1
- package/dist/Calendar/useCalendar.js +1 -1
- package/dist/Calendar/utils.cjs +9 -0
- package/dist/Calendar/utils.cjs.map +1 -0
- package/dist/Calendar/utils.js +7 -0
- package/dist/Calendar/utils.js.map +1 -0
- package/dist/Checkbox/CheckboxGroupRoot.cjs +3 -3
- package/dist/Checkbox/CheckboxGroupRoot.js +4 -4
- package/dist/Checkbox/CheckboxIndicator.cjs +1 -1
- package/dist/Checkbox/CheckboxIndicator.js +2 -2
- package/dist/Checkbox/CheckboxRoot.cjs +8 -8
- package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
- package/dist/Checkbox/CheckboxRoot.js +10 -10
- package/dist/Checkbox/CheckboxRoot.js.map +1 -1
- package/dist/Collapsible/CollapsibleContent.cjs +4 -4
- package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
- package/dist/Collapsible/CollapsibleContent.js +5 -5
- package/dist/Collapsible/CollapsibleContent.js.map +1 -1
- package/dist/Collapsible/CollapsibleRoot.cjs +4 -4
- package/dist/Collapsible/CollapsibleRoot.js +5 -5
- package/dist/Collapsible/CollapsibleTrigger.cjs +2 -2
- package/dist/Collapsible/CollapsibleTrigger.js +3 -3
- package/dist/Combobox/ComboboxAnchor.js +1 -1
- package/dist/Combobox/ComboboxArrow.js +1 -1
- package/dist/Combobox/ComboboxCancel.cjs +1 -1
- package/dist/Combobox/ComboboxCancel.js +2 -2
- package/dist/Combobox/ComboboxContent.cjs +1 -1
- package/dist/Combobox/ComboboxContent.cjs.map +1 -1
- package/dist/Combobox/ComboboxContent.js +2 -2
- package/dist/Combobox/ComboboxContent.js.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.cjs +1 -1
- package/dist/Combobox/ComboboxContentImpl.js +2 -2
- package/dist/Combobox/ComboboxEmpty.js +1 -1
- package/dist/Combobox/ComboboxGroup.cjs +3 -3
- package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
- package/dist/Combobox/ComboboxGroup.js +4 -4
- package/dist/Combobox/ComboboxGroup.js.map +1 -1
- package/dist/Combobox/ComboboxInput.cjs +1 -1
- package/dist/Combobox/ComboboxInput.js +2 -2
- package/dist/Combobox/ComboboxItem.cjs +2 -2
- package/dist/Combobox/ComboboxItem.cjs.map +1 -1
- package/dist/Combobox/ComboboxItem.js +3 -3
- package/dist/Combobox/ComboboxItem.js.map +1 -1
- package/dist/Combobox/ComboboxItemIndicator.js +1 -1
- package/dist/Combobox/ComboboxLabel.cjs +1 -1
- package/dist/Combobox/ComboboxLabel.cjs.map +1 -1
- package/dist/Combobox/ComboboxLabel.js +2 -2
- package/dist/Combobox/ComboboxLabel.js.map +1 -1
- package/dist/Combobox/ComboboxPortal.js +1 -1
- package/dist/Combobox/ComboboxRoot.cjs +7 -7
- package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
- package/dist/Combobox/ComboboxRoot.js +8 -8
- package/dist/Combobox/ComboboxRoot.js.map +1 -1
- package/dist/Combobox/ComboboxSeparator.js +1 -1
- package/dist/Combobox/ComboboxTrigger.cjs +3 -3
- package/dist/Combobox/ComboboxTrigger.js +4 -4
- package/dist/Combobox/ComboboxViewport.cjs +1 -1
- package/dist/Combobox/ComboboxViewport.js +2 -2
- package/dist/Combobox/ComboboxVirtualizer.js +1 -1
- package/dist/ConfigProvider/ConfigProvider.cjs +2 -2
- package/dist/ConfigProvider/ConfigProvider.js +2 -2
- package/dist/ContextMenu/ContextMenuArrow.js +1 -1
- package/dist/ContextMenu/ContextMenuCheckboxItem.js +1 -1
- package/dist/ContextMenu/ContextMenuContent.js +1 -1
- package/dist/ContextMenu/ContextMenuGroup.js +1 -1
- package/dist/ContextMenu/ContextMenuItem.js +1 -1
- package/dist/ContextMenu/ContextMenuItemIndicator.js +1 -1
- package/dist/ContextMenu/ContextMenuLabel.js +1 -1
- package/dist/ContextMenu/ContextMenuPortal.js +1 -1
- package/dist/ContextMenu/ContextMenuRadioGroup.js +1 -1
- package/dist/ContextMenu/ContextMenuRadioItem.js +1 -1
- package/dist/ContextMenu/ContextMenuRoot.cjs +1 -1
- package/dist/ContextMenu/ContextMenuRoot.js +2 -2
- package/dist/ContextMenu/ContextMenuSeparator.js +1 -1
- package/dist/ContextMenu/ContextMenuSub.cjs +2 -2
- package/dist/ContextMenu/ContextMenuSub.js +3 -3
- package/dist/ContextMenu/ContextMenuSubContent.js +1 -1
- package/dist/ContextMenu/ContextMenuSubTrigger.js +1 -1
- package/dist/ContextMenu/ContextMenuTrigger.cjs +1 -1
- package/dist/ContextMenu/ContextMenuTrigger.js +2 -2
- package/dist/DateField/DateFieldInput.cjs +5 -5
- package/dist/DateField/DateFieldInput.js +6 -6
- package/dist/DateField/DateFieldRoot.cjs +10 -10
- package/dist/DateField/DateFieldRoot.js +11 -11
- package/dist/DatePicker/DatePickerArrow.js +1 -1
- package/dist/DatePicker/DatePickerCalendar.js +1 -1
- package/dist/DatePicker/DatePickerCell.js +1 -1
- package/dist/DatePicker/DatePickerCellTrigger.js +1 -1
- package/dist/DatePicker/DatePickerClose.js +1 -1
- package/dist/DatePicker/DatePickerContent.js +1 -1
- package/dist/DatePicker/DatePickerField.js +1 -1
- package/dist/DatePicker/DatePickerGrid.js +1 -1
- package/dist/DatePicker/DatePickerGridBody.js +1 -1
- package/dist/DatePicker/DatePickerGridHead.js +1 -1
- package/dist/DatePicker/DatePickerGridRow.js +1 -1
- package/dist/DatePicker/DatePickerHeadCell.js +1 -1
- package/dist/DatePicker/DatePickerHeader.js +1 -1
- package/dist/DatePicker/DatePickerHeading.js +1 -1
- package/dist/DatePicker/DatePickerInput.js +1 -1
- package/dist/DatePicker/DatePickerNext.js +1 -1
- package/dist/DatePicker/DatePickerPrev.js +1 -1
- package/dist/DatePicker/DatePickerRoot.cjs +11 -11
- package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
- package/dist/DatePicker/DatePickerRoot.js +12 -12
- package/dist/DatePicker/DatePickerRoot.js.map +1 -1
- package/dist/DatePicker/DatePickerTrigger.js +1 -1
- package/dist/DateRangeField/DateRangeFieldInput.cjs +5 -5
- package/dist/DateRangeField/DateRangeFieldInput.js +6 -6
- package/dist/DateRangeField/DateRangeFieldRoot.cjs +22 -18
- package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.js +23 -19
- package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerAnchor.js +1 -1
- package/dist/DateRangePicker/DateRangePickerArrow.js +1 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.js +1 -1
- package/dist/DateRangePicker/DateRangePickerCell.js +1 -1
- package/dist/DateRangePicker/DateRangePickerCellTrigger.js +1 -1
- package/dist/DateRangePicker/DateRangePickerClose.js +1 -1
- package/dist/DateRangePicker/DateRangePickerContent.js +1 -1
- package/dist/DateRangePicker/DateRangePickerField.js +1 -1
- package/dist/DateRangePicker/DateRangePickerGrid.js +1 -1
- package/dist/DateRangePicker/DateRangePickerGridBody.js +1 -1
- package/dist/DateRangePicker/DateRangePickerGridHead.js +1 -1
- package/dist/DateRangePicker/DateRangePickerGridRow.js +1 -1
- package/dist/DateRangePicker/DateRangePickerHeadCell.js +1 -1
- package/dist/DateRangePicker/DateRangePickerHeader.js +1 -1
- package/dist/DateRangePicker/DateRangePickerHeading.js +1 -1
- package/dist/DateRangePicker/DateRangePickerInput.js +1 -1
- package/dist/DateRangePicker/DateRangePickerNext.js +1 -1
- package/dist/DateRangePicker/DateRangePickerPrev.js +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.cjs +11 -11
- package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.js +12 -12
- package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerTrigger.js +1 -1
- package/dist/Dialog/DialogClose.cjs +1 -1
- package/dist/Dialog/DialogClose.js +2 -2
- package/dist/Dialog/DialogContent.js +1 -1
- package/dist/Dialog/DialogContentImpl.cjs +2 -2
- package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
- package/dist/Dialog/DialogContentImpl.js +3 -3
- package/dist/Dialog/DialogContentImpl.js.map +1 -1
- package/dist/Dialog/DialogContentModal.js +1 -1
- package/dist/Dialog/DialogContentNonModal.js +1 -1
- package/dist/Dialog/DialogDescription.js +1 -1
- package/dist/Dialog/DialogOverlay.js +1 -1
- package/dist/Dialog/DialogOverlayImpl.js +1 -1
- package/dist/Dialog/DialogPortal.js +1 -1
- package/dist/Dialog/DialogRoot.cjs +2 -2
- package/dist/Dialog/DialogRoot.js +2 -2
- package/dist/Dialog/DialogTitle.js +1 -1
- package/dist/Dialog/DialogTrigger.cjs +3 -3
- package/dist/Dialog/DialogTrigger.cjs.map +1 -1
- package/dist/Dialog/DialogTrigger.js +4 -4
- package/dist/Dialog/DialogTrigger.js.map +1 -1
- package/dist/DismissableLayer/DismissableLayer.cjs +1 -1
- package/dist/DismissableLayer/DismissableLayer.js +2 -2
- package/dist/DismissableLayer/DismissableLayerBranch.js +1 -1
- package/dist/DismissableLayer/utils.cjs +1 -0
- package/dist/DismissableLayer/utils.cjs.map +1 -1
- package/dist/DismissableLayer/utils.js +1 -0
- package/dist/DismissableLayer/utils.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuArrow.js +1 -1
- package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.cjs +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.js +2 -2
- package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuGroup.js +1 -1
- package/dist/DropdownMenu/DropdownMenuItem.js +1 -1
- package/dist/DropdownMenu/DropdownMenuItemIndicator.js +1 -1
- package/dist/DropdownMenu/DropdownMenuLabel.js +1 -1
- package/dist/DropdownMenu/DropdownMenuPortal.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioGroup.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRadioItem.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.cjs +3 -3
- package/dist/DropdownMenu/DropdownMenuRoot.js +4 -4
- package/dist/DropdownMenu/DropdownMenuSeparator.js +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.cjs +2 -2
- package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.js +3 -3
- package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSubContent.js +1 -1
- package/dist/DropdownMenu/DropdownMenuSubTrigger.js +1 -1
- package/dist/DropdownMenu/DropdownMenuTrigger.cjs +4 -4
- package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuTrigger.js +5 -5
- package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
- package/dist/Editable/EditableArea.cjs +7 -7
- package/dist/Editable/EditableArea.js +8 -8
- package/dist/Editable/EditableCancelTrigger.cjs +4 -4
- package/dist/Editable/EditableCancelTrigger.js +5 -5
- package/dist/Editable/EditableEditTrigger.cjs +4 -4
- package/dist/Editable/EditableEditTrigger.js +5 -5
- package/dist/Editable/EditableInput.cjs +4 -4
- package/dist/Editable/EditableInput.js +5 -5
- package/dist/Editable/EditablePreview.cjs +4 -4
- package/dist/Editable/EditablePreview.js +5 -5
- package/dist/Editable/EditableRoot.cjs +2 -2
- package/dist/Editable/EditableRoot.js +3 -3
- package/dist/Editable/EditableSubmitTrigger.cjs +4 -4
- package/dist/Editable/EditableSubmitTrigger.js +5 -5
- package/dist/FocusScope/FocusScope.js +1 -1
- package/dist/FocusScope/utils.cjs +1 -1
- package/dist/FocusScope/utils.cjs.map +1 -1
- package/dist/FocusScope/utils.js +1 -1
- package/dist/FocusScope/utils.js.map +1 -1
- package/dist/HoverCard/HoverCardArrow.js +1 -1
- package/dist/HoverCard/HoverCardContent.js +1 -1
- package/dist/HoverCard/HoverCardContentImpl.cjs +2 -2
- package/dist/HoverCard/HoverCardContentImpl.js +3 -3
- package/dist/HoverCard/HoverCardPortal.js +1 -1
- package/dist/HoverCard/HoverCardRoot.cjs +3 -3
- package/dist/HoverCard/HoverCardRoot.js +4 -4
- package/dist/HoverCard/HoverCardTrigger.js +1 -1
- package/dist/HoverCard/utils.cjs +1 -1
- package/dist/HoverCard/utils.cjs.map +1 -1
- package/dist/HoverCard/utils.js +1 -1
- package/dist/HoverCard/utils.js.map +1 -1
- package/dist/Label/Label.js +1 -1
- package/dist/Listbox/ListboxContent.cjs +2 -2
- package/dist/Listbox/ListboxContent.js +3 -3
- package/dist/Listbox/ListboxFilter.cjs +8 -5
- package/dist/Listbox/ListboxFilter.cjs.map +1 -1
- package/dist/Listbox/ListboxFilter.js +9 -6
- package/dist/Listbox/ListboxFilter.js.map +1 -1
- package/dist/Listbox/ListboxGroup.cjs +2 -2
- package/dist/Listbox/ListboxGroup.cjs.map +1 -1
- package/dist/Listbox/ListboxGroup.js +3 -3
- package/dist/Listbox/ListboxGroup.js.map +1 -1
- package/dist/Listbox/ListboxGroupLabel.js +1 -1
- package/dist/Listbox/ListboxItem.cjs +6 -6
- package/dist/Listbox/ListboxItem.cjs.map +1 -1
- package/dist/Listbox/ListboxItem.js +7 -7
- package/dist/Listbox/ListboxItem.js.map +1 -1
- package/dist/Listbox/ListboxItemIndicator.js +1 -1
- package/dist/Listbox/ListboxRoot.cjs +6 -6
- package/dist/Listbox/ListboxRoot.cjs.map +1 -1
- package/dist/Listbox/ListboxRoot.js +7 -7
- package/dist/Listbox/ListboxRoot.js.map +1 -1
- package/dist/Listbox/ListboxVirtualizer.js +1 -1
- package/dist/Listbox/utils.cjs +2 -2
- package/dist/Listbox/utils.cjs.map +1 -1
- package/dist/Listbox/utils.js +2 -2
- package/dist/Listbox/utils.js.map +1 -1
- package/dist/Menu/MenuAnchor.js +1 -1
- package/dist/Menu/MenuArrow.js +1 -1
- package/dist/Menu/MenuCheckboxItem.js +1 -1
- package/dist/Menu/MenuContent.js +1 -1
- package/dist/Menu/MenuContentImpl.cjs +2 -2
- package/dist/Menu/MenuContentImpl.js +4 -4
- package/dist/Menu/MenuGroup.js +1 -1
- package/dist/Menu/MenuItem.js +1 -1
- package/dist/Menu/MenuItemImpl.cjs +3 -3
- package/dist/Menu/MenuItemImpl.js +4 -4
- package/dist/Menu/MenuItemIndicator.cjs +1 -1
- package/dist/Menu/MenuItemIndicator.js +2 -2
- package/dist/Menu/MenuLabel.js +1 -1
- package/dist/Menu/MenuPortal.js +1 -1
- package/dist/Menu/MenuRadioGroup.js +1 -1
- package/dist/Menu/MenuRadioItem.js +1 -1
- package/dist/Menu/MenuRoot.js +1 -1
- package/dist/Menu/MenuRootContentModal.js +1 -1
- package/dist/Menu/MenuRootContentNonModal.js +1 -1
- package/dist/Menu/MenuSeparator.js +1 -1
- package/dist/Menu/MenuSub.cjs +2 -2
- package/dist/Menu/MenuSub.js +3 -3
- package/dist/Menu/MenuSubContent.cjs +1 -1
- package/dist/Menu/MenuSubContent.cjs.map +1 -1
- package/dist/Menu/MenuSubContent.js +2 -2
- package/dist/Menu/MenuSubContent.js.map +1 -1
- package/dist/Menu/MenuSubTrigger.cjs +2 -2
- package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
- package/dist/Menu/MenuSubTrigger.js +3 -3
- package/dist/Menu/MenuSubTrigger.js.map +1 -1
- package/dist/Menubar/MenubarArrow.js +1 -1
- package/dist/Menubar/MenubarCheckboxItem.js +1 -1
- package/dist/Menubar/MenubarContent.cjs +1 -1
- package/dist/Menubar/MenubarContent.cjs.map +1 -1
- package/dist/Menubar/MenubarContent.js +2 -2
- package/dist/Menubar/MenubarContent.js.map +1 -1
- package/dist/Menubar/MenubarGroup.js +1 -1
- package/dist/Menubar/MenubarItem.js +1 -1
- package/dist/Menubar/MenubarItemIndicator.js +1 -1
- package/dist/Menubar/MenubarLabel.js +1 -1
- package/dist/Menubar/MenubarMenu.cjs +1 -1
- package/dist/Menubar/MenubarMenu.js +2 -2
- package/dist/Menubar/MenubarPortal.js +1 -1
- package/dist/Menubar/MenubarRadioGroup.js +1 -1
- package/dist/Menubar/MenubarRadioItem.js +1 -1
- package/dist/Menubar/MenubarRoot.cjs +3 -3
- package/dist/Menubar/MenubarRoot.js +4 -4
- package/dist/Menubar/MenubarSeparator.js +1 -1
- package/dist/Menubar/MenubarSub.cjs +2 -2
- package/dist/Menubar/MenubarSub.js +3 -3
- package/dist/Menubar/MenubarSubContent.js +1 -1
- package/dist/Menubar/MenubarSubTrigger.js +1 -1
- package/dist/Menubar/MenubarTrigger.cjs +5 -5
- package/dist/Menubar/MenubarTrigger.js +6 -6
- package/dist/NavigationMenu/NavigationMenuContent.cjs +1 -1
- package/dist/NavigationMenu/NavigationMenuContent.js +2 -2
- package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.js +2 -2
- package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuIndicator.js +1 -1
- package/dist/NavigationMenu/NavigationMenuItem.cjs +2 -2
- package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
- package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuLink.cjs +2 -2
- package/dist/NavigationMenu/NavigationMenuLink.js +3 -3
- package/dist/NavigationMenu/NavigationMenuList.js +1 -1
- package/dist/NavigationMenu/NavigationMenuRoot.cjs +4 -4
- package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuRoot.js +5 -5
- package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuSub.cjs +1 -1
- package/dist/NavigationMenu/NavigationMenuSub.js +2 -2
- package/dist/NavigationMenu/NavigationMenuTrigger.cjs +2 -2
- package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuTrigger.js +3 -3
- package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuViewport.cjs +7 -7
- package/dist/NavigationMenu/NavigationMenuViewport.js +9 -9
- package/dist/NavigationMenu/utils.cjs +1 -1
- package/dist/NavigationMenu/utils.cjs.map +1 -1
- package/dist/NavigationMenu/utils.js +1 -1
- package/dist/NavigationMenu/utils.js.map +1 -1
- package/dist/NumberField/NumberFieldDecrement.cjs +5 -5
- package/dist/NumberField/NumberFieldDecrement.js +6 -6
- package/dist/NumberField/NumberFieldIncrement.cjs +5 -5
- package/dist/NumberField/NumberFieldIncrement.js +6 -6
- package/dist/NumberField/NumberFieldInput.cjs +3 -3
- package/dist/NumberField/NumberFieldInput.js +4 -4
- package/dist/NumberField/NumberFieldRoot.cjs +7 -7
- package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
- package/dist/NumberField/NumberFieldRoot.js +8 -8
- package/dist/NumberField/NumberFieldRoot.js.map +1 -1
- package/dist/NumberField/utils.js +1 -1
- package/dist/Pagination/PaginationEllipsis.js +1 -1
- package/dist/Pagination/PaginationFirst.cjs +1 -1
- package/dist/Pagination/PaginationFirst.js +2 -2
- package/dist/Pagination/PaginationLast.cjs +1 -1
- package/dist/Pagination/PaginationLast.js +2 -2
- package/dist/Pagination/PaginationList.js +1 -1
- package/dist/Pagination/PaginationListItem.cjs +3 -3
- package/dist/Pagination/PaginationListItem.js +4 -4
- package/dist/Pagination/PaginationNext.cjs +1 -1
- package/dist/Pagination/PaginationNext.js +2 -2
- package/dist/Pagination/PaginationPrev.cjs +1 -1
- package/dist/Pagination/PaginationPrev.js +2 -2
- package/dist/Pagination/PaginationRoot.cjs +2 -2
- package/dist/Pagination/PaginationRoot.js +3 -3
- package/dist/PinInput/PinInputInput.cjs +4 -4
- package/dist/PinInput/PinInputInput.cjs.map +1 -1
- package/dist/PinInput/PinInputInput.js +5 -5
- package/dist/PinInput/PinInputInput.js.map +1 -1
- package/dist/PinInput/PinInputRoot.cjs +4 -4
- package/dist/PinInput/PinInputRoot.js +5 -5
- package/dist/Popover/PopoverAnchor.js +1 -1
- package/dist/Popover/PopoverArrow.js +1 -1
- package/dist/Popover/PopoverClose.cjs +1 -1
- package/dist/Popover/PopoverClose.js +2 -2
- package/dist/Popover/PopoverContent.cjs +1 -1
- package/dist/Popover/PopoverContent.cjs.map +1 -1
- package/dist/Popover/PopoverContent.js +2 -2
- package/dist/Popover/PopoverContent.js.map +1 -1
- package/dist/Popover/PopoverContentImpl.js +1 -1
- package/dist/Popover/PopoverContentModal.js +1 -1
- package/dist/Popover/PopoverContentNonModal.js +1 -1
- package/dist/Popover/PopoverPortal.js +1 -1
- package/dist/Popover/PopoverRoot.cjs +2 -2
- package/dist/Popover/PopoverRoot.js +3 -3
- package/dist/Popover/PopoverTrigger.cjs +2 -2
- package/dist/Popover/PopoverTrigger.cjs.map +1 -1
- package/dist/Popover/PopoverTrigger.js +3 -3
- package/dist/Popover/PopoverTrigger.js.map +1 -1
- package/dist/Popper/PopperAnchor.js +1 -1
- package/dist/Popper/PopperArrow.cjs +4 -4
- package/dist/Popper/PopperArrow.js +5 -5
- package/dist/Popper/PopperContent.cjs +3 -3
- package/dist/Popper/PopperContent.cjs.map +1 -1
- package/dist/Popper/PopperContent.js +5 -5
- package/dist/Popper/PopperContent.js.map +1 -1
- package/dist/Presence/usePresence.cjs +2 -2
- package/dist/Presence/usePresence.cjs.map +1 -1
- package/dist/Presence/usePresence.js +2 -2
- package/dist/Presence/usePresence.js.map +1 -1
- package/dist/Primitive/Primitive.cjs +1 -1
- package/dist/Primitive/Primitive.cjs.map +1 -1
- package/dist/Primitive/Primitive.js +1 -1
- package/dist/Primitive/Primitive.js.map +1 -1
- package/dist/Progress/ProgressIndicator.cjs +1 -1
- package/dist/Progress/ProgressIndicator.js +2 -2
- package/dist/Progress/ProgressRoot.cjs +5 -5
- package/dist/Progress/ProgressRoot.js +6 -6
- package/dist/RadioGroup/Radio.cjs +6 -6
- package/dist/RadioGroup/Radio.cjs.map +1 -1
- package/dist/RadioGroup/Radio.js +7 -7
- package/dist/RadioGroup/Radio.js.map +1 -1
- package/dist/RadioGroup/RadioGroupIndicator.cjs +1 -1
- package/dist/RadioGroup/RadioGroupIndicator.js +2 -2
- package/dist/RadioGroup/RadioGroupItem.cjs +2 -2
- package/dist/RadioGroup/RadioGroupItem.js +3 -3
- package/dist/RadioGroup/RadioGroupRoot.cjs +5 -5
- package/dist/RadioGroup/RadioGroupRoot.js +6 -6
- package/dist/RangeCalendar/RangeCalendarCell.cjs +2 -2
- package/dist/RangeCalendar/RangeCalendarCell.js +3 -3
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +84 -60
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js +85 -61
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.cjs +2 -2
- package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.js +3 -3
- package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGridBody.js +1 -1
- package/dist/RangeCalendar/RangeCalendarGridHead.js +1 -1
- package/dist/RangeCalendar/RangeCalendarGridRow.js +1 -1
- package/dist/RangeCalendar/RangeCalendarHeadCell.js +1 -1
- package/dist/RangeCalendar/RangeCalendarHeader.js +1 -1
- package/dist/RangeCalendar/RangeCalendarHeading.cjs +1 -1
- package/dist/RangeCalendar/RangeCalendarHeading.js +2 -2
- package/dist/RangeCalendar/RangeCalendarNext.cjs +3 -3
- package/dist/RangeCalendar/RangeCalendarNext.js +4 -4
- package/dist/RangeCalendar/RangeCalendarPrev.cjs +3 -3
- package/dist/RangeCalendar/RangeCalendarPrev.js +4 -4
- package/dist/RangeCalendar/RangeCalendarRoot.cjs +17 -15
- package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.js +18 -16
- package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
- package/dist/RovingFocus/RovingFocusGroup.cjs +4 -4
- package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
- package/dist/RovingFocus/RovingFocusGroup.js +5 -5
- package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
- package/dist/RovingFocus/RovingFocusItem.cjs +4 -4
- package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
- package/dist/RovingFocus/RovingFocusItem.js +5 -5
- package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
- package/dist/RovingFocus/utils.cjs +2 -2
- package/dist/RovingFocus/utils.cjs.map +1 -1
- package/dist/RovingFocus/utils.js +2 -2
- package/dist/RovingFocus/utils.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaCorner.js +1 -1
- package/dist/ScrollArea/ScrollAreaCornerImpl.cjs +2 -2
- package/dist/ScrollArea/ScrollAreaCornerImpl.js +3 -3
- package/dist/ScrollArea/ScrollAreaRoot.cjs +4 -4
- package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaRoot.js +5 -5
- package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbar.cjs +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbar.js +2 -2
- package/dist/ScrollArea/ScrollAreaScrollbarAuto.js +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarHover.js +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.js +2 -2
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarScroll.js +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarVisible.js +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarX.cjs +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarX.js +2 -2
- package/dist/ScrollArea/ScrollAreaScrollbarY.cjs +3 -3
- package/dist/ScrollArea/ScrollAreaScrollbarY.js +4 -4
- package/dist/ScrollArea/ScrollAreaThumb.js +1 -1
- package/dist/ScrollArea/ScrollAreaViewport.cjs +1 -1
- package/dist/ScrollArea/ScrollAreaViewport.js +2 -2
- package/dist/Select/BubbleSelect.cjs +2 -2
- package/dist/Select/BubbleSelect.cjs.map +1 -1
- package/dist/Select/BubbleSelect.js +3 -3
- package/dist/Select/BubbleSelect.js.map +1 -1
- package/dist/Select/SelectArrow.js +1 -1
- package/dist/Select/SelectContent.js +1 -1
- package/dist/Select/SelectContentImpl.cjs +2 -2
- package/dist/Select/SelectContentImpl.js +3 -3
- package/dist/Select/SelectGroup.cjs +2 -2
- package/dist/Select/SelectGroup.cjs.map +1 -1
- package/dist/Select/SelectGroup.js +3 -3
- package/dist/Select/SelectGroup.js.map +1 -1
- package/dist/Select/SelectIcon.js +1 -1
- package/dist/Select/SelectItem.cjs +6 -6
- package/dist/Select/SelectItem.cjs.map +1 -1
- package/dist/Select/SelectItem.js +7 -7
- package/dist/Select/SelectItem.js.map +1 -1
- package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
- package/dist/Select/SelectItemAlignedPosition.js +2 -2
- package/dist/Select/SelectItemIndicator.js +1 -1
- package/dist/Select/SelectItemText.js +1 -1
- package/dist/Select/SelectLabel.js +1 -1
- package/dist/Select/SelectPopperPosition.js +1 -1
- package/dist/Select/SelectPortal.js +1 -1
- package/dist/Select/SelectRoot.cjs +6 -6
- package/dist/Select/SelectRoot.cjs.map +1 -1
- package/dist/Select/SelectRoot.js +7 -7
- package/dist/Select/SelectRoot.js.map +1 -1
- package/dist/Select/SelectScrollButtonImpl.js +1 -1
- package/dist/Select/SelectScrollDownButton.cjs +1 -1
- package/dist/Select/SelectScrollDownButton.cjs.map +1 -1
- package/dist/Select/SelectScrollDownButton.js +2 -2
- package/dist/Select/SelectScrollDownButton.js.map +1 -1
- package/dist/Select/SelectScrollUpButton.cjs +1 -1
- package/dist/Select/SelectScrollUpButton.cjs.map +1 -1
- package/dist/Select/SelectScrollUpButton.js +2 -2
- package/dist/Select/SelectScrollUpButton.js.map +1 -1
- package/dist/Select/SelectSeparator.js +1 -1
- package/dist/Select/SelectTrigger.cjs +4 -4
- package/dist/Select/SelectTrigger.cjs.map +1 -1
- package/dist/Select/SelectTrigger.js +5 -5
- package/dist/Select/SelectTrigger.js.map +1 -1
- package/dist/Select/SelectValue.cjs +1 -1
- package/dist/Select/SelectValue.js +2 -2
- package/dist/Select/SelectViewport.cjs +1 -1
- package/dist/Select/SelectViewport.cjs.map +1 -1
- package/dist/Select/SelectViewport.js +2 -2
- package/dist/Select/SelectViewport.js.map +1 -1
- package/dist/Select/utils.cjs +2 -2
- package/dist/Select/utils.cjs.map +1 -1
- package/dist/Select/utils.js +2 -2
- package/dist/Select/utils.js.map +1 -1
- package/dist/Separator/Separator.js +1 -1
- package/dist/Slider/SliderHorizontal.cjs +2 -2
- package/dist/Slider/SliderHorizontal.js +3 -3
- package/dist/Slider/SliderImpl.js +1 -1
- package/dist/Slider/SliderRange.cjs +1 -1
- package/dist/Slider/SliderRange.js +2 -2
- package/dist/Slider/SliderRoot.cjs +3 -3
- package/dist/Slider/SliderRoot.js +4 -4
- package/dist/Slider/SliderThumb.js +1 -1
- package/dist/Slider/SliderThumbImpl.cjs +4 -4
- package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
- package/dist/Slider/SliderThumbImpl.js +5 -5
- package/dist/Slider/SliderThumbImpl.js.map +1 -1
- package/dist/Slider/SliderTrack.cjs +1 -1
- package/dist/Slider/SliderTrack.js +2 -2
- package/dist/Slider/SliderVertical.cjs +2 -2
- package/dist/Slider/SliderVertical.js +3 -3
- 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 +2 -2
- package/dist/Splitter/SplitterGroup.cjs.map +1 -1
- package/dist/Splitter/SplitterGroup.js +3 -3
- package/dist/Splitter/SplitterGroup.js.map +1 -1
- package/dist/Splitter/SplitterPanel.cjs +3 -3
- package/dist/Splitter/SplitterPanel.cjs.map +1 -1
- package/dist/Splitter/SplitterPanel.js +4 -4
- package/dist/Splitter/SplitterPanel.js.map +1 -1
- package/dist/Splitter/SplitterResizeHandle.cjs +2 -2
- package/dist/Splitter/SplitterResizeHandle.js +3 -3
- package/dist/Stepper/StepperDescription.js +1 -1
- package/dist/Stepper/StepperIndicator.js +1 -1
- package/dist/Stepper/StepperItem.cjs +6 -6
- package/dist/Stepper/StepperItem.cjs.map +1 -1
- package/dist/Stepper/StepperItem.js +7 -7
- package/dist/Stepper/StepperItem.js.map +1 -1
- package/dist/Stepper/StepperRoot.cjs +3 -3
- package/dist/Stepper/StepperRoot.js +4 -4
- package/dist/Stepper/StepperSeparator.js +1 -1
- package/dist/Stepper/StepperTitle.js +1 -1
- package/dist/Stepper/StepperTrigger.cjs +5 -5
- package/dist/Stepper/StepperTrigger.cjs.map +1 -1
- package/dist/Stepper/StepperTrigger.js +6 -6
- package/dist/Stepper/StepperTrigger.js.map +1 -1
- package/dist/Switch/SwitchRoot.cjs +6 -6
- package/dist/Switch/SwitchRoot.cjs.map +1 -1
- package/dist/Switch/SwitchRoot.js +7 -7
- package/dist/Switch/SwitchRoot.js.map +1 -1
- package/dist/Switch/SwitchThumb.cjs +1 -1
- package/dist/Switch/SwitchThumb.js +2 -2
- package/dist/Tabs/TabsContent.cjs +1 -1
- package/dist/Tabs/TabsContent.js +2 -2
- package/dist/Tabs/TabsIndicator.js +1 -1
- package/dist/Tabs/TabsList.cjs +1 -1
- package/dist/Tabs/TabsList.js +2 -2
- package/dist/Tabs/TabsRoot.cjs +3 -3
- package/dist/Tabs/TabsRoot.cjs.map +1 -1
- package/dist/Tabs/TabsRoot.js +4 -4
- package/dist/Tabs/TabsRoot.js.map +1 -1
- package/dist/Tabs/TabsTrigger.cjs +3 -3
- package/dist/Tabs/TabsTrigger.js +4 -4
- package/dist/TagsInput/TagsInputClear.cjs +2 -2
- package/dist/TagsInput/TagsInputClear.js +3 -3
- package/dist/TagsInput/TagsInputInput.cjs +1 -1
- package/dist/TagsInput/TagsInputInput.js +2 -2
- package/dist/TagsInput/TagsInputItem.cjs +2 -2
- package/dist/TagsInput/TagsInputItem.js +3 -3
- package/dist/TagsInput/TagsInputItemDelete.cjs +2 -2
- package/dist/TagsInput/TagsInputItemDelete.js +3 -3
- package/dist/TagsInput/TagsInputItemText.cjs +1 -1
- package/dist/TagsInput/TagsInputItemText.cjs.map +1 -1
- package/dist/TagsInput/TagsInputItemText.js +2 -2
- package/dist/TagsInput/TagsInputItemText.js.map +1 -1
- package/dist/TagsInput/TagsInputRoot.cjs +7 -7
- package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
- package/dist/TagsInput/TagsInputRoot.js +8 -8
- package/dist/TagsInput/TagsInputRoot.js.map +1 -1
- package/dist/Teleport/Teleport.js +1 -1
- package/dist/TimeField/TimeFieldInput.cjs +5 -5
- package/dist/TimeField/TimeFieldInput.js +6 -6
- package/dist/TimeField/TimeFieldRoot.cjs +17 -14
- package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
- package/dist/TimeField/TimeFieldRoot.js +19 -16
- package/dist/TimeField/TimeFieldRoot.js.map +1 -1
- package/dist/Toast/FocusProxy.js +1 -1
- package/dist/Toast/ToastAction.js +1 -1
- package/dist/Toast/ToastAnnounce.js +1 -1
- package/dist/Toast/ToastAnnounceExclude.cjs +1 -1
- package/dist/Toast/ToastAnnounceExclude.js +2 -2
- package/dist/Toast/ToastClose.cjs +1 -1
- package/dist/Toast/ToastClose.js +2 -2
- package/dist/Toast/ToastDescription.js +1 -1
- package/dist/Toast/ToastPortal.js +1 -1
- package/dist/Toast/ToastRoot.cjs +2 -2
- package/dist/Toast/ToastRoot.js +3 -3
- package/dist/Toast/ToastRootImpl.cjs +1 -1
- package/dist/Toast/ToastRootImpl.js +3 -3
- package/dist/Toast/ToastTitle.js +1 -1
- package/dist/Toast/ToastViewport.cjs +3 -3
- package/dist/Toast/ToastViewport.js +4 -4
- package/dist/Toast/utils.js +1 -1
- package/dist/Toggle/Toggle.cjs +4 -4
- package/dist/Toggle/Toggle.js +5 -5
- package/dist/ToggleGroup/ToggleGroupItem.cjs +1 -1
- package/dist/ToggleGroup/ToggleGroupItem.js +2 -2
- package/dist/ToggleGroup/ToggleGroupRoot.cjs +4 -4
- package/dist/ToggleGroup/ToggleGroupRoot.js +5 -5
- package/dist/Toolbar/ToolbarButton.cjs +2 -2
- package/dist/Toolbar/ToolbarButton.js +3 -3
- package/dist/Toolbar/ToolbarLink.cjs +1 -1
- package/dist/Toolbar/ToolbarLink.js +2 -2
- package/dist/Toolbar/ToolbarRoot.cjs +2 -2
- package/dist/Toolbar/ToolbarRoot.js +3 -3
- package/dist/Toolbar/ToolbarSeparator.js +1 -1
- package/dist/Toolbar/ToolbarToggleGroup.js +1 -1
- package/dist/Toolbar/ToolbarToggleItem.js +1 -1
- package/dist/Tooltip/TooltipArrow.js +1 -1
- package/dist/Tooltip/TooltipContent.js +1 -1
- package/dist/Tooltip/TooltipContentHoverable.js +1 -1
- package/dist/Tooltip/TooltipContentImpl.js +1 -1
- package/dist/Tooltip/TooltipPortal.js +1 -1
- package/dist/Tooltip/TooltipProvider.cjs +1 -1
- package/dist/Tooltip/TooltipProvider.js +1 -1
- package/dist/Tooltip/TooltipRoot.cjs +8 -8
- package/dist/Tooltip/TooltipRoot.js +9 -9
- package/dist/Tooltip/TooltipTrigger.cjs +2 -2
- package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
- package/dist/Tooltip/TooltipTrigger.js +3 -3
- package/dist/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/Tree/TreeItem.cjs +5 -5
- package/dist/Tree/TreeItem.cjs.map +1 -1
- package/dist/Tree/TreeItem.js +6 -6
- package/dist/Tree/TreeItem.js.map +1 -1
- package/dist/Tree/TreeRoot.cjs +8 -8
- package/dist/Tree/TreeRoot.cjs.map +1 -1
- package/dist/Tree/TreeRoot.js +9 -9
- package/dist/Tree/TreeRoot.js.map +1 -1
- package/dist/Tree/TreeVirtualizer.js +1 -1
- package/dist/Viewport/Viewport.js +1 -1
- package/dist/VisuallyHidden/VisuallyHidden.cjs +3 -3
- package/dist/VisuallyHidden/VisuallyHidden.js +4 -4
- package/dist/VisuallyHidden/VisuallyHiddenInput.cjs +9 -3
- package/dist/VisuallyHidden/VisuallyHiddenInput.cjs.map +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInput.js +10 -4
- package/dist/VisuallyHidden/VisuallyHiddenInput.js.map +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js +2 -2
- package/dist/component/Arrow.cjs +2 -2
- package/dist/component/Arrow.js +3 -3
- package/dist/component/BaseSeparator.cjs +1 -1
- package/dist/component/BaseSeparator.js +2 -2
- package/dist/constant/components.cjs +4 -0
- package/dist/constant/components.cjs.map +1 -1
- package/dist/constant/components.js +4 -0
- package/dist/constant/components.js.map +1 -1
- package/dist/date/comparators.cjs +1 -1
- package/dist/date/comparators.cjs.map +1 -1
- package/dist/date/comparators.js +2 -2
- package/dist/date/comparators.js.map +1 -1
- package/dist/date/parser.cjs +2 -2
- package/dist/date/parser.js +3 -3
- package/dist/date/useDateField.cjs +9 -9
- package/dist/date/useDateField.cjs.map +1 -1
- package/dist/date/useDateField.js +10 -10
- package/dist/date/useDateField.js.map +1 -1
- package/dist/date/utils.cjs +2 -2
- package/dist/date/utils.cjs.map +1 -1
- package/dist/date/utils.js +2 -2
- package/dist/date/utils.js.map +1 -1
- package/dist/index.cjs +91 -87
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +66 -2
- package/dist/index.js +42 -40
- package/dist/index.js.map +1 -1
- package/dist/shared/nullish.cjs +1 -1
- package/dist/shared/nullish.cjs.map +1 -1
- package/dist/shared/nullish.js +1 -1
- package/dist/shared/nullish.js.map +1 -1
- package/dist/shared/useBodyScrollLock.cjs +2 -2
- package/dist/shared/useBodyScrollLock.cjs.map +1 -1
- package/dist/shared/useBodyScrollLock.js +4 -4
- package/dist/shared/useBodyScrollLock.js.map +1 -1
- package/dist/shared/useDateFormatter.js +2 -2
- package/dist/shared/useForwardProps.cjs +2 -2
- package/dist/shared/useForwardProps.cjs.map +1 -1
- package/dist/shared/useForwardProps.js +2 -2
- package/dist/shared/useForwardProps.js.map +1 -1
- package/dist/shared/useGraceArea.cjs +1 -1
- package/dist/shared/useGraceArea.cjs.map +1 -1
- package/dist/shared/useGraceArea.js +1 -1
- package/dist/shared/useGraceArea.js.map +1 -1
- package/dist/shared/useId.cjs +1 -1
- package/dist/shared/useId.cjs.map +1 -1
- package/dist/shared/useId.js +1 -1
- package/dist/shared/useId.js.map +1 -1
- package/dist/shared/useSelectionBehavior.cjs +1 -1
- package/dist/shared/useSelectionBehavior.cjs.map +1 -1
- package/dist/shared/useSelectionBehavior.js +1 -1
- package/dist/shared/useSelectionBehavior.js.map +1 -1
- package/dist/shared/useSingleOrMultipleValue.cjs +5 -5
- package/dist/shared/useSingleOrMultipleValue.cjs.map +1 -1
- package/dist/shared/useSingleOrMultipleValue.js +5 -5
- package/dist/shared/useSingleOrMultipleValue.js.map +1 -1
- package/dist/shared/useSize.cjs +1 -1
- package/dist/shared/useSize.cjs.map +1 -1
- package/dist/shared/useSize.js +1 -1
- package/dist/shared/useSize.js.map +1 -1
- package/dist/shared/useTypeahead.cjs +1 -1
- package/dist/shared/useTypeahead.cjs.map +1 -1
- package/dist/shared/useTypeahead.js +1 -1
- package/dist/shared/useTypeahead.js.map +1 -1
- package/dist/utils/layout.cjs +1 -1
- package/dist/utils/layout.cjs.map +1 -1
- package/dist/utils/layout.js +1 -1
- package/dist/utils/layout.js.map +1 -1
- package/dist/utils/style.cjs +2 -2
- package/dist/utils/style.cjs.map +1 -1
- package/dist/utils/style.js +3 -3
- package/dist/utils/style.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBodyScrollLock.cjs","sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":["import {\n createSharedComposable,\n useEventListener,\n} from '@vueuse/core'\nimport { type Fn, isClient, isIOS, tryOnBeforeUnmount } from '@vueuse/shared'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { defu } from 'defu'\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.body.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.body.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":";;;;;;;;AASA,MAAM,qBAAA,GAAwBA,4BAAuB,MAAM;AACzD,EAAA,MAAM,GAAM,GAAAC,OAAA,iBAA8B,IAAA,GAAA,EAAK,CAAA;AAC/C,EAAA,MAAM,kBAAkBA,OAAwB,EAAA;AAEhD,EAAM,MAAA,MAAA,GAASC,aAAS,MAAM;AAC5B,IAAA,KAAA,MAAW,KAAS,IAAA,GAAA,CAAI,KAAM,CAAA,MAAA,EAAU,EAAA;AACtC,MAAI,IAAA,KAAA;AACF,QAAO,OAAA,IAAA;AAAA;AAEX,IAAO,OAAA,KAAA;AAAA,GACR,CAAA;AAED,EAAA,MAAM,UAAUC,yDAA4B,CAAA;AAAA,IAC1C,UAAA,EAAYF,QAAI,IAAI;AAAA,GACrB,CAAA;AAED,EAAA,IAAI,qBAAmC,GAAA,IAAA;AAEvC,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,YAAe,GAAA,EAAA;AACnC,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,WAAc,GAAA,EAAA;AAClC,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,aAAgB,GAAA,EAAA;AACpC,IAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,cAAA,CAAe,mBAAmB,CAAA;AACtD,IAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,QAAW,GAAA,eAAA,CAAgB,KAAS,IAAA,EAAA;AACxD,IAAAG,YAAA,IAAS,qBAAwB,IAAA;AAEjC,IAAA,eAAA,CAAgB,KAAQ,GAAA,
|
|
1
|
+
{"version":3,"file":"useBodyScrollLock.cjs","sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":["import {\n createSharedComposable,\n useEventListener,\n} from '@vueuse/core'\nimport { type Fn, isClient, isIOS, tryOnBeforeUnmount } from '@vueuse/shared'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { defu } from 'defu'\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.body.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.body.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":";;;;;;;;AASA,MAAM,qBAAA,GAAwBA,4BAAuB,MAAM;AACzD,EAAA,MAAM,GAAM,GAAAC,OAAA,iBAA8B,IAAA,GAAA,EAAK,CAAA;AAC/C,EAAA,MAAM,kBAAkBA,OAAwB,EAAA;AAEhD,EAAM,MAAA,MAAA,GAASC,aAAS,MAAM;AAC5B,IAAA,KAAA,MAAW,KAAS,IAAA,GAAA,CAAI,KAAM,CAAA,MAAA,EAAU,EAAA;AACtC,MAAI,IAAA,KAAA;AACF,QAAO,OAAA,IAAA;AAAA;AAEX,IAAO,OAAA,KAAA;AAAA,GACR,CAAA;AAED,EAAA,MAAM,UAAUC,yDAA4B,CAAA;AAAA,IAC1C,UAAA,EAAYF,QAAI,IAAI;AAAA,GACrB,CAAA;AAED,EAAA,IAAI,qBAAmC,GAAA,IAAA;AAEvC,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,YAAe,GAAA,EAAA;AACnC,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,WAAc,GAAA,EAAA;AAClC,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,aAAgB,GAAA,EAAA;AACpC,IAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,cAAA,CAAe,mBAAmB,CAAA;AACtD,IAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,QAAW,GAAA,eAAA,CAAgB,KAAS,IAAA,EAAA;AACxD,IAAAG,YAAA,IAAS,qBAAwB,IAAA;AAEjC,IAAA,eAAA,CAAgB,KAAQ,GAAA,MAAA;AAAA,GAC1B;AAEA,EAAMC,SAAA,CAAA,MAAA,EAAQ,CAAC,GAAA,EAAK,MAAW,KAAA;AAC7B,IAAA,IAAI,CAACC,eAAA;AACH,MAAA;AAEF,IAAA,IAAI,CAAC,GAAK,EAAA;AACR,MAAI,IAAA,MAAA;AACF,QAAe,cAAA,EAAA;AACjB,MAAA;AAAA;AAGF,IAAA,IAAI,gBAAgB,KAAU,KAAA,MAAA;AAC5B,MAAgB,eAAA,CAAA,KAAA,GAAQ,QAAS,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA;AAE9C,IAAA,MAAM,sBAAyB,GAAA,MAAA,CAAO,UAAa,GAAA,QAAA,CAAS,eAAgB,CAAA,WAAA;AAC5E,IAAA,MAAM,aAAgB,GAAA,EAAE,OAAS,EAAA,sBAAA,EAAwB,QAAQ,CAAE,EAAA;AAEnE,IAAM,MAAA,MAAA,GAAS,QAAQ,UAAY,EAAA,KAAA,GAC/B,OAAO,OAAQ,CAAA,UAAA,CAAW,KAAU,KAAA,QAAA,GAClCC,SAAK,CAAA;AAAA,MACL,OAAA,EAAS,QAAQ,UAAW,CAAA,KAAA,CAAM,YAAY,IAAO,GAAA,sBAAA,GAAyB,OAAQ,CAAA,UAAA,CAAW,KAAM,CAAA,OAAA;AAAA,MACvG,MAAA,EAAQ,QAAQ,UAAW,CAAA,KAAA,CAAM,WAAW,IAAO,GAAA,sBAAA,GAAyB,OAAQ,CAAA,UAAA,CAAW,KAAM,CAAA;AAAA,KACvG,EAAG,aAAa,CACd,GAAA,aAAA,GACD,EAAE,OAAS,EAAA,CAAA,EAAG,QAAQ,CAAE,EAAA;AAE7B,IAAA,IAAI,yBAAyB,CAAG,EAAA;AAC9B,MAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,YAAe,GAAA,OAAO,MAAO,CAAA,OAAA,KAAY,QAAW,GAAA,CAAA,EAAG,MAAO,CAAA,OAAO,CAAO,EAAA,CAAA,GAAA,MAAA,CAAO,OAAO,OAAO,CAAA;AACrH,MAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,WAAc,GAAA,OAAO,MAAO,CAAA,MAAA,KAAW,QAAW,GAAA,CAAA,EAAG,MAAO,CAAA,MAAM,CAAO,EAAA,CAAA,GAAA,MAAA,CAAO,OAAO,MAAM,CAAA;AACjH,MAAA,QAAA,CAAS,KAAK,KAAM,CAAA,WAAA,CAAY,mBAAqB,EAAA,CAAA,EAAG,sBAAsB,CAAI,EAAA,CAAA,CAAA;AAClF,MAAS,QAAA,CAAA,IAAA,CAAK,MAAM,QAAW,GAAA,QAAA;AAAA;AAGjC,IAAA,IAAIH,YAAO,EAAA;AACT,MAAwB,qBAAA,GAAAI,qBAAA;AAAA,QACtB,QAAA;AAAA,QACA,WAAA;AAAA,QACA,CAAC,CAAkB,KAAA,cAAA,CAAe,CAAC,CAAA;AAAA,QACnC,EAAE,SAAS,KAAM;AAAA,OACnB;AAAA;AAIF,IAAAC,YAAA,CAAS,MAAM;AACb,MAAS,QAAA,CAAA,IAAA,CAAK,MAAM,aAAgB,GAAA,MAAA;AACpC,MAAS,QAAA,CAAA,IAAA,CAAK,MAAM,QAAW,GAAA,QAAA;AAAA,KAChC,CAAA;AAAA,KACA,EAAE,SAAA,EAAW,IAAM,EAAA,KAAA,EAAO,QAAQ,CAAA;AAErC,EAAO,OAAA,GAAA;AACT,CAAC,CAAA;AAEM,SAAS,kBAAkB,YAAoC,EAAA;AACpE,EAAM,MAAA,EAAA,GAAK,KAAK,MAAO,EAAA,CAAE,SAAS,EAAE,CAAA,CAAE,SAAU,CAAA,CAAA,EAAG,CAAC,CAAA;AACpD,EAAA,MAAM,MAAM,qBAAsB,EAAA;AAElC,EAAA,GAAA,CAAI,KAAM,CAAA,GAAA,CAAI,EAAI,EAAA,YAAA,IAAgB,KAAK,CAAA;AAEvC,EAAA,MAAM,SAASP,YAAS,CAAA;AAAA,IACtB,KAAK,MAAM,GAAA,CAAI,KAAM,CAAA,GAAA,CAAI,EAAE,CAAK,IAAA,KAAA;AAAA,IAChC,KAAK,CAAS,KAAA,KAAA,GAAA,CAAI,KAAM,CAAA,GAAA,CAAI,IAAI,KAAK;AAAA,GACtC,CAAA;AAED,EAAAQ,yBAAA,CAAmB,MAAM;AACvB,IAAI,GAAA,CAAA,KAAA,CAAM,OAAO,EAAE,CAAA;AAAA,GACpB,CAAA;AAED,EAAO,OAAA,MAAA;AACT;AAGA,SAAS,oBAAoB,GAAuB,EAAA;AAClD,EAAM,MAAA,KAAA,GAAQ,MAAO,CAAA,gBAAA,CAAiB,GAAG,CAAA;AACzC,EAAA,IACE,MAAM,SAAc,KAAA,QAAA,IACjB,MAAM,SAAc,KAAA,QAAA,IACnB,MAAM,SAAc,KAAA,MAAA,IAAU,IAAI,WAAc,GAAA,GAAA,CAAI,eACpD,KAAM,CAAA,SAAA,KAAc,UAAU,GAAI,CAAA,YAAA,GAAe,IAAI,YACzD,EAAA;AACA,IAAO,OAAA,IAAA;AAAA,GAEJ,MAAA;AACH,IAAA,MAAM,SAAS,GAAI,CAAA,UAAA;AAEnB,IAAA,IAAI,EAAE,MAAA,YAAkB,OAAY,CAAA,IAAA,MAAA,CAAO,OAAY,KAAA,MAAA;AACrD,MAAO,OAAA,KAAA;AAET,IAAA,OAAO,oBAAoB,MAAM,CAAA;AAAA;AAErC;AAEA,SAAS,eAAe,QAA+B,EAAA;AACrD,EAAM,MAAA,CAAA,GAAI,YAAY,MAAO,CAAA,KAAA;AAE7B,EAAA,MAAM,UAAU,CAAE,CAAA,MAAA;AAGlB,EAAI,IAAA,OAAA,YAAmB,OAAW,IAAA,mBAAA,CAAoB,OAAO,CAAA;AAC3D,IAAO,OAAA,KAAA;AAGT,EAAI,IAAA,CAAA,CAAE,QAAQ,MAAS,GAAA,CAAA;AACrB,IAAO,OAAA,IAAA;AAET,EAAI,IAAA,CAAA,CAAE,kBAAkB,CAAE,CAAA,UAAA;AACxB,IAAA,CAAA,CAAE,cAAe,EAAA;AAEnB,EAAO,OAAA,KAAA;AACT;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createSharedComposable, useEventListener } from '@vueuse/core';
|
|
2
|
-
import { isClient, isIOS
|
|
3
|
-
import {
|
|
2
|
+
import { tryOnBeforeUnmount, isClient, isIOS } from '@vueuse/shared';
|
|
3
|
+
import { computed, ref, watch, nextTick } from 'vue';
|
|
4
4
|
import { defu } from 'defu';
|
|
5
5
|
import { i as injectConfigProviderContext } from '../ConfigProvider/ConfigProvider.js';
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ const useBodyLockStackCount = createSharedComposable(() => {
|
|
|
25
25
|
document.body.style.removeProperty("--scrollbar-width");
|
|
26
26
|
document.body.style.overflow = initialOverflow.value ?? "";
|
|
27
27
|
isIOS && stopTouchMoveListener?.();
|
|
28
|
-
initialOverflow.value =
|
|
28
|
+
initialOverflow.value = void 0;
|
|
29
29
|
};
|
|
30
30
|
watch(locked, (val, oldVal) => {
|
|
31
31
|
if (!isClient)
|
|
@@ -35,7 +35,7 @@ const useBodyLockStackCount = createSharedComposable(() => {
|
|
|
35
35
|
resetBodyStyle();
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
38
|
-
if (initialOverflow.value ===
|
|
38
|
+
if (initialOverflow.value === void 0)
|
|
39
39
|
initialOverflow.value = document.body.style.overflow;
|
|
40
40
|
const verticalScrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
41
41
|
const defaultConfig = { padding: verticalScrollbarWidth, margin: 0 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBodyScrollLock.js","sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":["import {\n createSharedComposable,\n useEventListener,\n} from '@vueuse/core'\nimport { type Fn, isClient, isIOS, tryOnBeforeUnmount } from '@vueuse/shared'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { defu } from 'defu'\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.body.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.body.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":";;;;;;AASA,MAAM,qBAAA,GAAwB,uBAAuB,MAAM;AACzD,EAAA,MAAM,GAAM,GAAA,GAAA,iBAA8B,IAAA,GAAA,EAAK,CAAA;AAC/C,EAAA,MAAM,kBAAkB,GAAwB,EAAA;AAEhD,EAAM,MAAA,MAAA,GAAS,SAAS,MAAM;AAC5B,IAAA,KAAA,MAAW,KAAS,IAAA,GAAA,CAAI,KAAM,CAAA,MAAA,EAAU,EAAA;AACtC,MAAI,IAAA,KAAA;AACF,QAAO,OAAA,IAAA;AAAA;AAEX,IAAO,OAAA,KAAA;AAAA,GACR,CAAA;AAED,EAAA,MAAM,UAAU,2BAA4B,CAAA;AAAA,IAC1C,UAAA,EAAY,IAAI,IAAI;AAAA,GACrB,CAAA;AAED,EAAA,IAAI,qBAAmC,GAAA,IAAA;AAEvC,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,YAAe,GAAA,EAAA;AACnC,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,WAAc,GAAA,EAAA;AAClC,IAAS,QAAA,CAAA,IAAA,CAAK,MAAM,aAAgB,GAAA,EAAA;AACpC,IAAS,QAAA,CAAA,IAAA,CAAK,KAAM,CAAA,cAAA,CAAe,mBAAmB,CAAA;AACtD,IAAA,QAAA,CAAS,IAAK,CAAA,KAAA,CAAM,QAAW,GAAA,eAAA,CAAgB,KAAS,IAAA,EAAA;AACxD,IAAA,KAAA,IAAS,qBAAwB,IAAA;AAEjC,IAAA,eAAA,CAAgB,KAAQ,GAAA,
|
|
1
|
+
{"version":3,"file":"useBodyScrollLock.js","sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":["import {\n createSharedComposable,\n useEventListener,\n} from '@vueuse/core'\nimport { type Fn, isClient, isIOS, tryOnBeforeUnmount } from '@vueuse/shared'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { defu } from 'defu'\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.body.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.body.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,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { today, getLocalTimeZone, DateFormatter } from '@internationalized/date';
|
|
2
|
+
import { t as toDate, h as hasTime, a as isZonedDateTime } from '../date/comparators.js';
|
|
3
3
|
import { ref } from 'vue';
|
|
4
4
|
|
|
5
5
|
function useDateFormatter(initialLocale) {
|
|
@@ -6,7 +6,7 @@ function useForwardProps(props) {
|
|
|
6
6
|
const vm = vue.getCurrentInstance();
|
|
7
7
|
const defaultProps = Object.keys(vm?.type.props ?? {}).reduce((prev, curr) => {
|
|
8
8
|
const defaultValue = (vm?.type.props[curr]).default;
|
|
9
|
-
if (defaultValue !==
|
|
9
|
+
if (defaultValue !== void 0)
|
|
10
10
|
prev[curr] = defaultValue;
|
|
11
11
|
return prev;
|
|
12
12
|
}, {});
|
|
@@ -18,7 +18,7 @@ function useForwardProps(props) {
|
|
|
18
18
|
preservedProps[vue.camelize(key)] = assignedProps[key];
|
|
19
19
|
});
|
|
20
20
|
return Object.keys({ ...defaultProps, ...preservedProps }).reduce((prev, curr) => {
|
|
21
|
-
if (refProps.value[curr] !==
|
|
21
|
+
if (refProps.value[curr] !== void 0)
|
|
22
22
|
prev[curr] = refProps.value[curr];
|
|
23
23
|
return prev;
|
|
24
24
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForwardProps.cjs","sources":["../../src/shared/useForwardProps.ts"],"sourcesContent":["import { type MaybeRefOrGetter, 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 if (refProps.value[curr] !== undefined)\n prev[curr as keyof T] = refProps.value[curr]\n return prev\n }, {} as T)\n })\n}\n"],"names":["getCurrentInstance","toRef","computed","camelize"],"mappings":";;;;AAeO,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,
|
|
1
|
+
{"version":3,"file":"useForwardProps.cjs","sources":["../../src/shared/useForwardProps.ts"],"sourcesContent":["import { type MaybeRefOrGetter, 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 if (refProps.value[curr] !== undefined)\n prev[curr as keyof T] = refProps.value[curr]\n return prev\n }, {} as T)\n })\n}\n"],"names":["getCurrentInstance","toRef","computed","camelize"],"mappings":";;;;AAeO,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,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,MAAI,IAAA,QAAA,CAAS,KAAM,CAAA,IAAI,CAAM,KAAA,MAAA;AAC3B,QAAA,IAAA,CAAK,IAAe,CAAA,GAAI,QAAS,CAAA,KAAA,CAAM,IAAI,CAAA;AAC7C,MAAO,OAAA,IAAA;AAAA,KACT,EAAG,EAAO,CAAA;AAAA,GACX,CAAA;AACH;;;;"}
|
|
@@ -4,7 +4,7 @@ function useForwardProps(props) {
|
|
|
4
4
|
const vm = getCurrentInstance();
|
|
5
5
|
const defaultProps = Object.keys(vm?.type.props ?? {}).reduce((prev, curr) => {
|
|
6
6
|
const defaultValue = (vm?.type.props[curr]).default;
|
|
7
|
-
if (defaultValue !==
|
|
7
|
+
if (defaultValue !== void 0)
|
|
8
8
|
prev[curr] = defaultValue;
|
|
9
9
|
return prev;
|
|
10
10
|
}, {});
|
|
@@ -16,7 +16,7 @@ function useForwardProps(props) {
|
|
|
16
16
|
preservedProps[camelize(key)] = assignedProps[key];
|
|
17
17
|
});
|
|
18
18
|
return Object.keys({ ...defaultProps, ...preservedProps }).reduce((prev, curr) => {
|
|
19
|
-
if (refProps.value[curr] !==
|
|
19
|
+
if (refProps.value[curr] !== void 0)
|
|
20
20
|
prev[curr] = refProps.value[curr];
|
|
21
21
|
return prev;
|
|
22
22
|
}, {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForwardProps.js","sources":["../../src/shared/useForwardProps.ts"],"sourcesContent":["import { type MaybeRefOrGetter, 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 if (refProps.value[curr] !== undefined)\n prev[curr as keyof T] = refProps.value[curr]\n return prev\n }, {} as T)\n })\n}\n"],"names":[],"mappings":";;AAeO,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,
|
|
1
|
+
{"version":3,"file":"useForwardProps.js","sources":["../../src/shared/useForwardProps.ts"],"sourcesContent":["import { type MaybeRefOrGetter, 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 if (refProps.value[curr] !== undefined)\n prev[curr as keyof T] = refProps.value[curr]\n return prev\n }, {} as T)\n })\n}\n"],"names":[],"mappings":";;AAeO,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,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,MAAI,IAAA,QAAA,CAAS,KAAM,CAAA,IAAI,CAAM,KAAA,MAAA;AAC3B,QAAA,IAAA,CAAK,IAAe,CAAA,GAAI,QAAS,CAAA,KAAA,CAAM,IAAI,CAAA;AAC7C,MAAO,OAAA,IAAA;AAAA,KACT,EAAG,EAAO,CAAA;AAAA,GACX,CAAA;AACH;;;;"}
|
|
@@ -36,7 +36,7 @@ function useGraceArea(triggerElement, containerElement) {
|
|
|
36
36
|
vue.watchEffect((cleanupFn) => {
|
|
37
37
|
if (pointerGraceArea.value) {
|
|
38
38
|
const handleTrackPointerGrace = (event) => {
|
|
39
|
-
if (!pointerGraceArea.value)
|
|
39
|
+
if (!pointerGraceArea.value || !(event.target instanceof HTMLElement))
|
|
40
40
|
return;
|
|
41
41
|
const target = event.target;
|
|
42
42
|
const pointerPosition = { x: event.clientX, y: event.clientY };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraceArea.cjs","sources":["../../src/shared/useGraceArea.ts"],"sourcesContent":["import { type Ref, ref, watchEffect } from 'vue'\nimport type { Side } from '@/Popper/utils'\nimport { createEventHook, refAutoReset } from '@vueuse/shared'\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)\n return\n const target = event.target as HTMLElement\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":";;;;;AAIgB,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,gBAAiB,CAAA,KAAA;AACpB,UAAA;AACF,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, ref, watchEffect } from 'vue'\nimport type { Side } from '@/Popper/utils'\nimport { createEventHook, refAutoReset } from '@vueuse/shared'\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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"}
|
|
@@ -34,7 +34,7 @@ function useGraceArea(triggerElement, containerElement) {
|
|
|
34
34
|
watchEffect((cleanupFn) => {
|
|
35
35
|
if (pointerGraceArea.value) {
|
|
36
36
|
const handleTrackPointerGrace = (event) => {
|
|
37
|
-
if (!pointerGraceArea.value)
|
|
37
|
+
if (!pointerGraceArea.value || !(event.target instanceof HTMLElement))
|
|
38
38
|
return;
|
|
39
39
|
const target = event.target;
|
|
40
40
|
const pointerPosition = { x: event.clientX, y: event.clientY };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGraceArea.js","sources":["../../src/shared/useGraceArea.ts"],"sourcesContent":["import { type Ref, ref, watchEffect } from 'vue'\nimport type { Side } from '@/Popper/utils'\nimport { createEventHook, refAutoReset } from '@vueuse/shared'\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)\n return\n const target = event.target as HTMLElement\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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useGraceArea.js","sources":["../../src/shared/useGraceArea.ts"],"sourcesContent":["import { type Ref, ref, watchEffect } from 'vue'\nimport type { Side } from '@/Popper/utils'\nimport { createEventHook, refAutoReset } from '@vueuse/shared'\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":[],"mappings":"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"}
|
package/dist/shared/useId.cjs
CHANGED
|
@@ -26,7 +26,7 @@ let count = 0;
|
|
|
26
26
|
function useId(deterministicId, prefix = "reka") {
|
|
27
27
|
if (deterministicId)
|
|
28
28
|
return deterministicId;
|
|
29
|
-
const configProviderContext = ConfigProvider_ConfigProvider.injectConfigProviderContext({ useId:
|
|
29
|
+
const configProviderContext = ConfigProvider_ConfigProvider.injectConfigProviderContext({ useId: void 0 });
|
|
30
30
|
if (vue__namespace.useId) {
|
|
31
31
|
return `${prefix}-${vue__namespace.useId()}`;
|
|
32
32
|
} else if (configProviderContext.useId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useId.cjs","sources":["../../src/shared/useId.ts"],"sourcesContent":["// Inspired from https://github.com/tailwindlabs/headlessui/issues/2913\n// as the alternative, and a fallback for Vue version < 3.5\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport * as vue from 'vue'\n\nlet count = 0\n/**\n * The `useId` function generates a unique identifier using a provided deterministic ID or a default\n * one prefixed with \"reka-\", or the provided one via `useId` props from `<ConfigProvider>`.\n * @param {string | null | undefined} [deterministicId] - The `useId` function you provided takes an\n * optional parameter `deterministicId`, which can be a string, null, or undefined. If\n * `deterministicId` is provided, the function will return it. Otherwise, it will generate an id using\n * the `useId` function obtained\n */\nexport function useId(deterministicId?: string | null | undefined, prefix = 'reka') {\n if (deterministicId)\n return deterministicId\n\n const configProviderContext = injectConfigProviderContext({ useId: undefined })\n\n if (vue.useId) {\n return `${prefix}-${vue.useId()}`\n }\n else if (configProviderContext.useId) {\n return `${prefix}-${configProviderContext.useId()}`\n }\n\n return `${prefix}-${++count}`\n}\n"],"names":["injectConfigProviderContext","vue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAI,KAAQ,GAAA,CAAA;AASI,SAAA,KAAA,CAAM,eAA6C,EAAA,MAAA,GAAS,MAAQ,EAAA;AAClF,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,eAAA;AAET,EAAA,MAAM,qBAAwB,GAAAA,yDAAA,CAA4B,EAAE,KAAA,EAAO,
|
|
1
|
+
{"version":3,"file":"useId.cjs","sources":["../../src/shared/useId.ts"],"sourcesContent":["// Inspired from https://github.com/tailwindlabs/headlessui/issues/2913\n// as the alternative, and a fallback for Vue version < 3.5\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport * as vue from 'vue'\n\nlet count = 0\n/**\n * The `useId` function generates a unique identifier using a provided deterministic ID or a default\n * one prefixed with \"reka-\", or the provided one via `useId` props from `<ConfigProvider>`.\n * @param {string | null | undefined} [deterministicId] - The `useId` function you provided takes an\n * optional parameter `deterministicId`, which can be a string, null, or undefined. If\n * `deterministicId` is provided, the function will return it. Otherwise, it will generate an id using\n * the `useId` function obtained\n */\nexport function useId(deterministicId?: string | null | undefined, prefix = 'reka') {\n if (deterministicId)\n return deterministicId\n\n const configProviderContext = injectConfigProviderContext({ useId: undefined })\n\n if (vue.useId) {\n return `${prefix}-${vue.useId()}`\n }\n else if (configProviderContext.useId) {\n return `${prefix}-${configProviderContext.useId()}`\n }\n\n return `${prefix}-${++count}`\n}\n"],"names":["injectConfigProviderContext","vue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA,IAAI,KAAQ,GAAA,CAAA;AASI,SAAA,KAAA,CAAM,eAA6C,EAAA,MAAA,GAAS,MAAQ,EAAA;AAClF,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,eAAA;AAET,EAAA,MAAM,qBAAwB,GAAAA,yDAAA,CAA4B,EAAE,KAAA,EAAO,QAAW,CAAA;AAE9E,EAAA,IAAIC,eAAI,KAAO,EAAA;AACb,IAAA,OAAO,CAAG,EAAA,MAAM,CAAI,CAAA,EAAAA,cAAA,CAAI,OAAO,CAAA,CAAA;AAAA,GACjC,MAAA,IACS,sBAAsB,KAAO,EAAA;AACpC,IAAA,OAAO,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,qBAAA,CAAsB,OAAO,CAAA,CAAA;AAAA;AAGnD,EAAA,OAAO,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,EAAE,KAAK,CAAA,CAAA;AAC7B;;;;"}
|
package/dist/shared/useId.js
CHANGED
|
@@ -5,7 +5,7 @@ let count = 0;
|
|
|
5
5
|
function useId(deterministicId, prefix = "reka") {
|
|
6
6
|
if (deterministicId)
|
|
7
7
|
return deterministicId;
|
|
8
|
-
const configProviderContext = injectConfigProviderContext({ useId:
|
|
8
|
+
const configProviderContext = injectConfigProviderContext({ useId: void 0 });
|
|
9
9
|
if (vue.useId) {
|
|
10
10
|
return `${prefix}-${vue.useId()}`;
|
|
11
11
|
} else if (configProviderContext.useId) {
|
package/dist/shared/useId.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useId.js","sources":["../../src/shared/useId.ts"],"sourcesContent":["// Inspired from https://github.com/tailwindlabs/headlessui/issues/2913\n// as the alternative, and a fallback for Vue version < 3.5\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport * as vue from 'vue'\n\nlet count = 0\n/**\n * The `useId` function generates a unique identifier using a provided deterministic ID or a default\n * one prefixed with \"reka-\", or the provided one via `useId` props from `<ConfigProvider>`.\n * @param {string | null | undefined} [deterministicId] - The `useId` function you provided takes an\n * optional parameter `deterministicId`, which can be a string, null, or undefined. If\n * `deterministicId` is provided, the function will return it. Otherwise, it will generate an id using\n * the `useId` function obtained\n */\nexport function useId(deterministicId?: string | null | undefined, prefix = 'reka') {\n if (deterministicId)\n return deterministicId\n\n const configProviderContext = injectConfigProviderContext({ useId: undefined })\n\n if (vue.useId) {\n return `${prefix}-${vue.useId()}`\n }\n else if (configProviderContext.useId) {\n return `${prefix}-${configProviderContext.useId()}`\n }\n\n return `${prefix}-${++count}`\n}\n"],"names":[],"mappings":";;;AAKA,IAAI,KAAQ,GAAA,CAAA;AASI,SAAA,KAAA,CAAM,eAA6C,EAAA,MAAA,GAAS,MAAQ,EAAA;AAClF,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,eAAA;AAET,EAAA,MAAM,qBAAwB,GAAA,2BAAA,CAA4B,EAAE,KAAA,EAAO,
|
|
1
|
+
{"version":3,"file":"useId.js","sources":["../../src/shared/useId.ts"],"sourcesContent":["// Inspired from https://github.com/tailwindlabs/headlessui/issues/2913\n// as the alternative, and a fallback for Vue version < 3.5\nimport { injectConfigProviderContext } from '@/ConfigProvider/ConfigProvider.vue'\nimport * as vue from 'vue'\n\nlet count = 0\n/**\n * The `useId` function generates a unique identifier using a provided deterministic ID or a default\n * one prefixed with \"reka-\", or the provided one via `useId` props from `<ConfigProvider>`.\n * @param {string | null | undefined} [deterministicId] - The `useId` function you provided takes an\n * optional parameter `deterministicId`, which can be a string, null, or undefined. If\n * `deterministicId` is provided, the function will return it. Otherwise, it will generate an id using\n * the `useId` function obtained\n */\nexport function useId(deterministicId?: string | null | undefined, prefix = 'reka') {\n if (deterministicId)\n return deterministicId\n\n const configProviderContext = injectConfigProviderContext({ useId: undefined })\n\n if (vue.useId) {\n return `${prefix}-${vue.useId()}`\n }\n else if (configProviderContext.useId) {\n return `${prefix}-${configProviderContext.useId()}`\n }\n\n return `${prefix}-${++count}`\n}\n"],"names":[],"mappings":";;;AAKA,IAAI,KAAQ,GAAA,CAAA;AASI,SAAA,KAAA,CAAM,eAA6C,EAAA,MAAA,GAAS,MAAQ,EAAA;AAClF,EAAI,IAAA,eAAA;AACF,IAAO,OAAA,eAAA;AAET,EAAA,MAAM,qBAAwB,GAAA,2BAAA,CAA4B,EAAE,KAAA,EAAO,QAAW,CAAA;AAE9E,EAAA,IAAI,IAAI,KAAO,EAAA;AACb,IAAA,OAAO,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,GAAA,CAAI,OAAO,CAAA,CAAA;AAAA,GACjC,MAAA,IACS,sBAAsB,KAAO,EAAA;AACpC,IAAA,OAAO,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,qBAAA,CAAsB,OAAO,CAAA,CAAA;AAAA;AAGnD,EAAA,OAAO,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,EAAE,KAAK,CAAA,CAAA;AAC7B;;;;"}
|
|
@@ -22,7 +22,7 @@ function useSelectionBehavior(modelValue, props) {
|
|
|
22
22
|
modelValue.value = { ...val };
|
|
23
23
|
} else {
|
|
24
24
|
if (!Array.isArray(modelValue.value) && condition(modelValue.value))
|
|
25
|
-
modelValue.value =
|
|
25
|
+
modelValue.value = void 0;
|
|
26
26
|
else
|
|
27
27
|
modelValue.value = { ...val };
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectionBehavior.cjs","sources":["../../src/shared/useSelectionBehavior.ts"],"sourcesContent":["import { type Ref, type UnwrapNestedRefs, ref } from 'vue'\nimport { findValuesBetween } from './arrays'\n\nexport function useSelectionBehavior<T>(\n modelValue: Ref<T | T[]>,\n props: UnwrapNestedRefs<{ multiple?: boolean, selectionBehavior?: 'toggle' | 'replace' }>,\n) {\n const firstValue = ref()\n\n const onSelectItem = (val: T, condition: (existingValue: T) => boolean) => {\n // multiple select\n if (props.multiple && Array.isArray(modelValue.value)) {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = [val]\n firstValue.value = val\n }\n else {\n const index = modelValue.value.findIndex(v => condition(v))\n if (index !== -1)\n modelValue.value.splice(index, 1)\n else\n modelValue.value.push(val)\n }\n }\n // single select\n else {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = { ...val }\n }\n else {\n if (!Array.isArray(modelValue.value) && condition(modelValue.value))\n modelValue.value = undefined as any\n else\n modelValue.value = { ...val }\n }\n }\n return modelValue.value\n }\n\n function handleMultipleReplace(intent: 'first' | 'last' | 'prev' | 'next', currentElement: HTMLElement | Element | null, getItems: () => { ref: HTMLElement, value?: any }[], options: any[]) {\n if (!firstValue?.value || !props.multiple || !Array.isArray(modelValue.value))\n return\n\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n const lastValue = collection.find(i => i.ref === currentElement)?.value\n if (!lastValue)\n return\n\n let value: T[] | null = null\n switch (intent) {\n case 'prev':\n case 'next': {\n value = findValuesBetween(options, firstValue.value, lastValue)\n break\n }\n case 'first': {\n value = findValuesBetween(options, firstValue.value, options?.[0])\n break\n }\n case 'last': {\n value = findValuesBetween(options, firstValue.value, options?.[options.length - 1])\n break\n }\n }\n\n modelValue.value = value\n }\n\n return {\n firstValue,\n onSelectItem,\n handleMultipleReplace,\n }\n}\n"],"names":["ref","findValuesBetween"],"mappings":";;;;;AAGgB,SAAA,oBAAA,CACd,YACA,KACA,EAAA;AACA,EAAA,MAAM,aAAaA,OAAI,EAAA;AAEvB,EAAM,MAAA,YAAA,GAAe,CAAC,GAAA,EAAQ,SAA6C,KAAA;AAEzE,IAAA,IAAI,MAAM,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACrD,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OAEhB,MAAA;AACH,QAAA,MAAM,QAAQ,UAAW,CAAA,KAAA,CAAM,UAAU,CAAK,CAAA,KAAA,SAAA,CAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,IAAI,KAAU,KAAA,EAAA;AACZ,UAAW,UAAA,CAAA,KAAA,CAAM,MAAO,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA;AAEhC,UAAW,UAAA,CAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA;AAC7B,KAGG,MAAA;AACH,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA,OAEzB,MAAA;AACH,QAAI,IAAA,CAAC,MAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,
|
|
1
|
+
{"version":3,"file":"useSelectionBehavior.cjs","sources":["../../src/shared/useSelectionBehavior.ts"],"sourcesContent":["import { type Ref, type UnwrapNestedRefs, ref } from 'vue'\nimport { findValuesBetween } from './arrays'\n\nexport function useSelectionBehavior<T>(\n modelValue: Ref<T | T[]>,\n props: UnwrapNestedRefs<{ multiple?: boolean, selectionBehavior?: 'toggle' | 'replace' }>,\n) {\n const firstValue = ref()\n\n const onSelectItem = (val: T, condition: (existingValue: T) => boolean) => {\n // multiple select\n if (props.multiple && Array.isArray(modelValue.value)) {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = [val]\n firstValue.value = val\n }\n else {\n const index = modelValue.value.findIndex(v => condition(v))\n if (index !== -1)\n modelValue.value.splice(index, 1)\n else\n modelValue.value.push(val)\n }\n }\n // single select\n else {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = { ...val }\n }\n else {\n if (!Array.isArray(modelValue.value) && condition(modelValue.value))\n modelValue.value = undefined as any\n else\n modelValue.value = { ...val }\n }\n }\n return modelValue.value\n }\n\n function handleMultipleReplace(intent: 'first' | 'last' | 'prev' | 'next', currentElement: HTMLElement | Element | null, getItems: () => { ref: HTMLElement, value?: any }[], options: any[]) {\n if (!firstValue?.value || !props.multiple || !Array.isArray(modelValue.value))\n return\n\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n const lastValue = collection.find(i => i.ref === currentElement)?.value\n if (!lastValue)\n return\n\n let value: T[] | null = null\n switch (intent) {\n case 'prev':\n case 'next': {\n value = findValuesBetween(options, firstValue.value, lastValue)\n break\n }\n case 'first': {\n value = findValuesBetween(options, firstValue.value, options?.[0])\n break\n }\n case 'last': {\n value = findValuesBetween(options, firstValue.value, options?.[options.length - 1])\n break\n }\n }\n\n modelValue.value = value\n }\n\n return {\n firstValue,\n onSelectItem,\n handleMultipleReplace,\n }\n}\n"],"names":["ref","findValuesBetween"],"mappings":";;;;;AAGgB,SAAA,oBAAA,CACd,YACA,KACA,EAAA;AACA,EAAA,MAAM,aAAaA,OAAI,EAAA;AAEvB,EAAM,MAAA,YAAA,GAAe,CAAC,GAAA,EAAQ,SAA6C,KAAA;AAEzE,IAAA,IAAI,MAAM,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACrD,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OAEhB,MAAA;AACH,QAAA,MAAM,QAAQ,UAAW,CAAA,KAAA,CAAM,UAAU,CAAK,CAAA,KAAA,SAAA,CAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,IAAI,KAAU,KAAA,EAAA;AACZ,UAAW,UAAA,CAAA,KAAA,CAAM,MAAO,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA;AAEhC,UAAW,UAAA,CAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA;AAC7B,KAGG,MAAA;AACH,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA,OAEzB,MAAA;AACH,QAAI,IAAA,CAAC,MAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,MAAA;AAAA;AAEnB,UAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA;AAChC;AAEF,IAAA,OAAO,UAAW,CAAA,KAAA;AAAA,GACpB;AAEA,EAAA,SAAS,qBAAsB,CAAA,MAAA,EAA4C,cAA8C,EAAA,QAAA,EAAqD,OAAgB,EAAA;AAC5L,IAAI,IAAA,CAAC,UAAY,EAAA,KAAA,IAAS,CAAC,KAAA,CAAM,YAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAC1E,MAAA;AAEF,IAAM,MAAA,UAAA,GAAa,UAAW,CAAA,MAAA,CAAO,OAAK,CAAE,CAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,KAAa,EAAE,CAAA;AACvE,IAAA,MAAM,YAAY,UAAW,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,GAAA,KAAQ,cAAc,CAAG,EAAA,KAAA;AAClE,IAAA,IAAI,CAAC,SAAA;AACH,MAAA;AAEF,IAAA,IAAI,KAAoB,GAAA,IAAA;AACxB,IAAA,QAAQ,MAAQ;AAAA,MACd,KAAK,MAAA;AAAA,MACL,KAAK,MAAQ,EAAA;AACX,QAAA,KAAA,GAAQC,+BAAkB,CAAA,OAAA,EAAS,UAAW,CAAA,KAAA,EAAO,SAAS,CAAA;AAC9D,QAAA;AAAA;AACF,MACA,KAAK,OAAS,EAAA;AACZ,QAAA,KAAA,GAAQA,gCAAkB,OAAS,EAAA,UAAA,CAAW,KAAO,EAAA,OAAA,GAAU,CAAC,CAAC,CAAA;AACjE,QAAA;AAAA;AACF,MACA,KAAK,MAAQ,EAAA;AACX,QAAQ,KAAA,GAAAA,+BAAA,CAAkB,SAAS,UAAW,CAAA,KAAA,EAAO,UAAU,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAClF,QAAA;AAAA;AACF;AAGF,IAAA,UAAA,CAAW,KAAQ,GAAA,KAAA;AAAA;AAGrB,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -20,7 +20,7 @@ function useSelectionBehavior(modelValue, props) {
|
|
|
20
20
|
modelValue.value = { ...val };
|
|
21
21
|
} else {
|
|
22
22
|
if (!Array.isArray(modelValue.value) && condition(modelValue.value))
|
|
23
|
-
modelValue.value =
|
|
23
|
+
modelValue.value = void 0;
|
|
24
24
|
else
|
|
25
25
|
modelValue.value = { ...val };
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectionBehavior.js","sources":["../../src/shared/useSelectionBehavior.ts"],"sourcesContent":["import { type Ref, type UnwrapNestedRefs, ref } from 'vue'\nimport { findValuesBetween } from './arrays'\n\nexport function useSelectionBehavior<T>(\n modelValue: Ref<T | T[]>,\n props: UnwrapNestedRefs<{ multiple?: boolean, selectionBehavior?: 'toggle' | 'replace' }>,\n) {\n const firstValue = ref()\n\n const onSelectItem = (val: T, condition: (existingValue: T) => boolean) => {\n // multiple select\n if (props.multiple && Array.isArray(modelValue.value)) {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = [val]\n firstValue.value = val\n }\n else {\n const index = modelValue.value.findIndex(v => condition(v))\n if (index !== -1)\n modelValue.value.splice(index, 1)\n else\n modelValue.value.push(val)\n }\n }\n // single select\n else {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = { ...val }\n }\n else {\n if (!Array.isArray(modelValue.value) && condition(modelValue.value))\n modelValue.value = undefined as any\n else\n modelValue.value = { ...val }\n }\n }\n return modelValue.value\n }\n\n function handleMultipleReplace(intent: 'first' | 'last' | 'prev' | 'next', currentElement: HTMLElement | Element | null, getItems: () => { ref: HTMLElement, value?: any }[], options: any[]) {\n if (!firstValue?.value || !props.multiple || !Array.isArray(modelValue.value))\n return\n\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n const lastValue = collection.find(i => i.ref === currentElement)?.value\n if (!lastValue)\n return\n\n let value: T[] | null = null\n switch (intent) {\n case 'prev':\n case 'next': {\n value = findValuesBetween(options, firstValue.value, lastValue)\n break\n }\n case 'first': {\n value = findValuesBetween(options, firstValue.value, options?.[0])\n break\n }\n case 'last': {\n value = findValuesBetween(options, firstValue.value, options?.[options.length - 1])\n break\n }\n }\n\n modelValue.value = value\n }\n\n return {\n firstValue,\n onSelectItem,\n handleMultipleReplace,\n }\n}\n"],"names":[],"mappings":";;;AAGgB,SAAA,oBAAA,CACd,YACA,KACA,EAAA;AACA,EAAA,MAAM,aAAa,GAAI,EAAA;AAEvB,EAAM,MAAA,YAAA,GAAe,CAAC,GAAA,EAAQ,SAA6C,KAAA;AAEzE,IAAA,IAAI,MAAM,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACrD,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OAEhB,MAAA;AACH,QAAA,MAAM,QAAQ,UAAW,CAAA,KAAA,CAAM,UAAU,CAAK,CAAA,KAAA,SAAA,CAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,IAAI,KAAU,KAAA,EAAA;AACZ,UAAW,UAAA,CAAA,KAAA,CAAM,MAAO,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA;AAEhC,UAAW,UAAA,CAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA;AAC7B,KAGG,MAAA;AACH,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA,OAEzB,MAAA;AACH,QAAI,IAAA,CAAC,MAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,
|
|
1
|
+
{"version":3,"file":"useSelectionBehavior.js","sources":["../../src/shared/useSelectionBehavior.ts"],"sourcesContent":["import { type Ref, type UnwrapNestedRefs, ref } from 'vue'\nimport { findValuesBetween } from './arrays'\n\nexport function useSelectionBehavior<T>(\n modelValue: Ref<T | T[]>,\n props: UnwrapNestedRefs<{ multiple?: boolean, selectionBehavior?: 'toggle' | 'replace' }>,\n) {\n const firstValue = ref()\n\n const onSelectItem = (val: T, condition: (existingValue: T) => boolean) => {\n // multiple select\n if (props.multiple && Array.isArray(modelValue.value)) {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = [val]\n firstValue.value = val\n }\n else {\n const index = modelValue.value.findIndex(v => condition(v))\n if (index !== -1)\n modelValue.value.splice(index, 1)\n else\n modelValue.value.push(val)\n }\n }\n // single select\n else {\n if (props.selectionBehavior === 'replace') {\n modelValue.value = { ...val }\n }\n else {\n if (!Array.isArray(modelValue.value) && condition(modelValue.value))\n modelValue.value = undefined as any\n else\n modelValue.value = { ...val }\n }\n }\n return modelValue.value\n }\n\n function handleMultipleReplace(intent: 'first' | 'last' | 'prev' | 'next', currentElement: HTMLElement | Element | null, getItems: () => { ref: HTMLElement, value?: any }[], options: any[]) {\n if (!firstValue?.value || !props.multiple || !Array.isArray(modelValue.value))\n return\n\n const collection = getItems().filter(i => i.ref.dataset.disabled !== '')\n const lastValue = collection.find(i => i.ref === currentElement)?.value\n if (!lastValue)\n return\n\n let value: T[] | null = null\n switch (intent) {\n case 'prev':\n case 'next': {\n value = findValuesBetween(options, firstValue.value, lastValue)\n break\n }\n case 'first': {\n value = findValuesBetween(options, firstValue.value, options?.[0])\n break\n }\n case 'last': {\n value = findValuesBetween(options, firstValue.value, options?.[options.length - 1])\n break\n }\n }\n\n modelValue.value = value\n }\n\n return {\n firstValue,\n onSelectItem,\n handleMultipleReplace,\n }\n}\n"],"names":[],"mappings":";;;AAGgB,SAAA,oBAAA,CACd,YACA,KACA,EAAA;AACA,EAAA,MAAM,aAAa,GAAI,EAAA;AAEvB,EAAM,MAAA,YAAA,GAAe,CAAC,GAAA,EAAQ,SAA6C,KAAA;AAEzE,IAAA,IAAI,MAAM,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAG,EAAA;AACrD,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,CAAC,GAAG,CAAA;AACvB,QAAA,UAAA,CAAW,KAAQ,GAAA,GAAA;AAAA,OAEhB,MAAA;AACH,QAAA,MAAM,QAAQ,UAAW,CAAA,KAAA,CAAM,UAAU,CAAK,CAAA,KAAA,SAAA,CAAU,CAAC,CAAC,CAAA;AAC1D,QAAA,IAAI,KAAU,KAAA,EAAA;AACZ,UAAW,UAAA,CAAA,KAAA,CAAM,MAAO,CAAA,KAAA,EAAO,CAAC,CAAA;AAAA;AAEhC,UAAW,UAAA,CAAA,KAAA,CAAM,KAAK,GAAG,CAAA;AAAA;AAC7B,KAGG,MAAA;AACH,MAAI,IAAA,KAAA,CAAM,sBAAsB,SAAW,EAAA;AACzC,QAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA,OAEzB,MAAA;AACH,QAAI,IAAA,CAAC,MAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAK,IAAA,SAAA,CAAU,WAAW,KAAK,CAAA;AAChE,UAAA,UAAA,CAAW,KAAQ,GAAA,MAAA;AAAA;AAEnB,UAAW,UAAA,CAAA,KAAA,GAAQ,EAAE,GAAG,GAAI,EAAA;AAAA;AAChC;AAEF,IAAA,OAAO,UAAW,CAAA,KAAA;AAAA,GACpB;AAEA,EAAA,SAAS,qBAAsB,CAAA,MAAA,EAA4C,cAA8C,EAAA,QAAA,EAAqD,OAAgB,EAAA;AAC5L,IAAI,IAAA,CAAC,UAAY,EAAA,KAAA,IAAS,CAAC,KAAA,CAAM,YAAY,CAAC,KAAA,CAAM,OAAQ,CAAA,UAAA,CAAW,KAAK,CAAA;AAC1E,MAAA;AAEF,IAAM,MAAA,UAAA,GAAa,UAAW,CAAA,MAAA,CAAO,OAAK,CAAE,CAAA,GAAA,CAAI,OAAQ,CAAA,QAAA,KAAa,EAAE,CAAA;AACvE,IAAA,MAAM,YAAY,UAAW,CAAA,IAAA,CAAK,OAAK,CAAE,CAAA,GAAA,KAAQ,cAAc,CAAG,EAAA,KAAA;AAClE,IAAA,IAAI,CAAC,SAAA;AACH,MAAA;AAEF,IAAA,IAAI,KAAoB,GAAA,IAAA;AACxB,IAAA,QAAQ,MAAQ;AAAA,MACd,KAAK,MAAA;AAAA,MACL,KAAK,MAAQ,EAAA;AACX,QAAA,KAAA,GAAQ,iBAAkB,CAAA,OAAA,EAAS,UAAW,CAAA,KAAA,EAAO,SAAS,CAAA;AAC9D,QAAA;AAAA;AACF,MACA,KAAK,OAAS,EAAA;AACZ,QAAA,KAAA,GAAQ,kBAAkB,OAAS,EAAA,UAAA,CAAW,KAAO,EAAA,OAAA,GAAU,CAAC,CAAC,CAAA;AACjE,QAAA;AAAA;AACF,MACA,KAAK,MAAQ,EAAA;AACX,QAAQ,KAAA,GAAA,iBAAA,CAAkB,SAAS,UAAW,CAAA,KAAA,EAAO,UAAU,OAAQ,CAAA,MAAA,GAAS,CAAC,CAAC,CAAA;AAClF,QAAA;AAAA;AACF;AAGF,IAAA,UAAA,CAAW,KAAQ,GAAA,KAAA;AAAA;AAGrB,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -7,7 +7,7 @@ const shared_isValueEqualOrExist = require('./isValueEqualOrExist.cjs');
|
|
|
7
7
|
|
|
8
8
|
function validateProps({ type, defaultValue, modelValue }) {
|
|
9
9
|
const value = modelValue || defaultValue;
|
|
10
|
-
const canTypeBeInferred = modelValue !==
|
|
10
|
+
const canTypeBeInferred = modelValue !== void 0 || defaultValue !== void 0;
|
|
11
11
|
if (canTypeBeInferred)
|
|
12
12
|
return Array.isArray(value) ? "multiple" : "single";
|
|
13
13
|
else
|
|
@@ -19,20 +19,20 @@ function getDefaultType({ type, defaultValue, modelValue }) {
|
|
|
19
19
|
return validateProps({ type, defaultValue, modelValue });
|
|
20
20
|
}
|
|
21
21
|
function getDefaultValue({ type, defaultValue }) {
|
|
22
|
-
if (defaultValue !==
|
|
22
|
+
if (defaultValue !== void 0)
|
|
23
23
|
return defaultValue;
|
|
24
|
-
return type === "single" ?
|
|
24
|
+
return type === "single" ? void 0 : [];
|
|
25
25
|
}
|
|
26
26
|
function useSingleOrMultipleValue(props, emits) {
|
|
27
27
|
const type = vue.computed(() => getDefaultType(props));
|
|
28
28
|
const modelValue = core.useVModel(props, "modelValue", emits, {
|
|
29
29
|
defaultValue: getDefaultValue(props),
|
|
30
|
-
passive: props.modelValue ===
|
|
30
|
+
passive: props.modelValue === void 0,
|
|
31
31
|
deep: true
|
|
32
32
|
});
|
|
33
33
|
function changeModelValue(value) {
|
|
34
34
|
if (type.value === "single") {
|
|
35
|
-
modelValue.value = ohash.isEqual(value, modelValue.value) ?
|
|
35
|
+
modelValue.value = ohash.isEqual(value, modelValue.value) ? void 0 : value;
|
|
36
36
|
} else {
|
|
37
37
|
const modelValueArray = Array.isArray(modelValue.value) ? [...modelValue.value || []] : [modelValue.value].filter(Boolean);
|
|
38
38
|
if (shared_isValueEqualOrExist.isValueEqualOrExist(modelValueArray, value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSingleOrMultipleValue.cjs","sources":["../../src/shared/useSingleOrMultipleValue.ts"],"sourcesContent":["import { useVModel } from '@vueuse/core'\nimport { type Ref, computed } from 'vue'\nimport type { AcceptableValue, SingleOrMultipleProps } from './types'\nimport { isEqual } from 'ohash'\nimport { isValueEqualOrExist } from './isValueEqualOrExist'\n\n/**\n * Validates the props and it makes sure that the types are coherent with each other\n *\n * 1. If type, defaultValue, and modelValue are all undefined, throw an error.\n * 2. If modelValue and defaultValue are defined and not of the same type, throw an error.\n * 3. If type is defined:\n * a. If type is 'single' and either modelValue or defaultValue is an array, log an error and return 'multiple'.\n * b. If type is 'multiple' and neither modelValue nor defaultValue is an array, log an error and return 'single'.\n * 4. Return 'multiple' if modelValue is an array, else return 'single'.\n */\nfunction validateProps({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n const value = modelValue || defaultValue\n const canTypeBeInferred = modelValue !== undefined || defaultValue !== undefined\n\n if (canTypeBeInferred)\n return Array.isArray(value) ? 'multiple' : 'single'\n else\n return type ?? 'single' // always fallback to `single`\n}\n\nfunction getDefaultType({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n if (type)\n return type\n\n return validateProps({ type, defaultValue, modelValue })\n}\n\nfunction getDefaultValue({ type, defaultValue }: SingleOrMultipleProps) {\n if (defaultValue !== undefined)\n return defaultValue\n\n return (type === 'single') ? undefined : []\n}\n\nexport function useSingleOrMultipleValue<P extends SingleOrMultipleProps, Name extends string>(\n props: P,\n emits: (name: Name, ...args: any[]) => void,\n) {\n const type = computed(() => getDefaultType(props))\n const modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: getDefaultValue(props),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n }) as Ref<AcceptableValue | AcceptableValue[] | undefined>\n\n function changeModelValue(value: AcceptableValue) {\n if (type.value === 'single') {\n modelValue.value = isEqual(value, modelValue.value) ? undefined : value\n }\n else {\n const modelValueArray = Array.isArray(modelValue.value) ? [...(modelValue.value as AcceptableValue[] || [])] : [modelValue.value].filter(Boolean)\n if (isValueEqualOrExist(modelValueArray, value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(value)\n }\n modelValue.value = modelValueArray\n }\n }\n\n const isSingle = computed(() => type.value === 'single')\n\n return {\n modelValue,\n changeModelValue,\n isSingle,\n }\n}\n"],"names":["computed","useVModel","isEqual","isValueEqualOrExist"],"mappings":";;;;;;;AAgBA,SAAS,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AAChF,EAAA,MAAM,QAAQ,UAAc,IAAA,YAAA;AAC5B,EAAM,MAAA,iBAAA,GAAoB,UAAe,KAAA,
|
|
1
|
+
{"version":3,"file":"useSingleOrMultipleValue.cjs","sources":["../../src/shared/useSingleOrMultipleValue.ts"],"sourcesContent":["import { useVModel } from '@vueuse/core'\nimport { type Ref, computed } from 'vue'\nimport type { AcceptableValue, SingleOrMultipleProps } from './types'\nimport { isEqual } from 'ohash'\nimport { isValueEqualOrExist } from './isValueEqualOrExist'\n\n/**\n * Validates the props and it makes sure that the types are coherent with each other\n *\n * 1. If type, defaultValue, and modelValue are all undefined, throw an error.\n * 2. If modelValue and defaultValue are defined and not of the same type, throw an error.\n * 3. If type is defined:\n * a. If type is 'single' and either modelValue or defaultValue is an array, log an error and return 'multiple'.\n * b. If type is 'multiple' and neither modelValue nor defaultValue is an array, log an error and return 'single'.\n * 4. Return 'multiple' if modelValue is an array, else return 'single'.\n */\nfunction validateProps({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n const value = modelValue || defaultValue\n const canTypeBeInferred = modelValue !== undefined || defaultValue !== undefined\n\n if (canTypeBeInferred)\n return Array.isArray(value) ? 'multiple' : 'single'\n else\n return type ?? 'single' // always fallback to `single`\n}\n\nfunction getDefaultType({ type, defaultValue, modelValue }: SingleOrMultipleProps) {\n if (type)\n return type\n\n return validateProps({ type, defaultValue, modelValue })\n}\n\nfunction getDefaultValue({ type, defaultValue }: SingleOrMultipleProps) {\n if (defaultValue !== undefined)\n return defaultValue\n\n return (type === 'single') ? undefined : []\n}\n\nexport function useSingleOrMultipleValue<P extends SingleOrMultipleProps, Name extends string>(\n props: P,\n emits: (name: Name, ...args: any[]) => void,\n) {\n const type = computed(() => getDefaultType(props))\n const modelValue = useVModel(props, 'modelValue', emits, {\n defaultValue: getDefaultValue(props),\n passive: (props.modelValue === undefined) as false,\n deep: true,\n }) as Ref<AcceptableValue | AcceptableValue[] | undefined>\n\n function changeModelValue(value: AcceptableValue) {\n if (type.value === 'single') {\n modelValue.value = isEqual(value, modelValue.value) ? undefined : value\n }\n else {\n const modelValueArray = Array.isArray(modelValue.value) ? [...(modelValue.value as AcceptableValue[] || [])] : [modelValue.value].filter(Boolean)\n if (isValueEqualOrExist(modelValueArray, value)) {\n const index = modelValueArray.findIndex(i => isEqual(i, value))\n modelValueArray.splice(index, 1)\n }\n else {\n modelValueArray.push(value)\n }\n modelValue.value = modelValueArray\n }\n }\n\n const isSingle = computed(() => type.value === 'single')\n\n return {\n modelValue,\n changeModelValue,\n isSingle,\n }\n}\n"],"names":["computed","useVModel","isEqual","isValueEqualOrExist"],"mappings":";;;;;;;AAgBA,SAAS,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AAChF,EAAA,MAAM,QAAQ,UAAc,IAAA,YAAA;AAC5B,EAAM,MAAA,iBAAA,GAAoB,UAAe,KAAA,MAAA,IAAa,YAAiB,KAAA,MAAA;AAEvE,EAAI,IAAA,iBAAA;AACF,IAAA,OAAO,KAAM,CAAA,OAAA,CAAQ,KAAK,CAAA,GAAI,UAAa,GAAA,QAAA;AAAA;AAE3C,IAAA,OAAO,IAAQ,IAAA,QAAA;AACnB;AAEA,SAAS,cAAe,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAqC,EAAA;AACjF,EAAI,IAAA,IAAA;AACF,IAAO,OAAA,IAAA;AAET,EAAA,OAAO,aAAc,CAAA,EAAE,IAAM,EAAA,YAAA,EAAc,YAAY,CAAA;AACzD;AAEA,SAAS,eAAgB,CAAA,EAAE,IAAM,EAAA,YAAA,EAAuC,EAAA;AACtE,EAAA,IAAI,YAAiB,KAAA,MAAA;AACnB,IAAO,OAAA,YAAA;AAET,EAAQ,OAAA,IAAA,KAAS,QAAY,GAAA,MAAA,GAAY,EAAC;AAC5C;AAEgB,SAAA,wBAAA,CACd,OACA,KACA,EAAA;AACA,EAAA,MAAM,IAAO,GAAAA,YAAA,CAAS,MAAM,cAAA,CAAe,KAAK,CAAC,CAAA;AACjD,EAAA,MAAM,UAAa,GAAAC,cAAA,CAAU,KAAO,EAAA,YAAA,EAAc,KAAO,EAAA;AAAA,IACvD,YAAA,EAAc,gBAAgB,KAAK,CAAA;AAAA,IACnC,OAAA,EAAU,MAAM,UAAe,KAAA,MAAA;AAAA,IAC/B,IAAM,EAAA;AAAA,GACP,CAAA;AAED,EAAA,SAAS,iBAAiB,KAAwB,EAAA;AAChD,IAAI,IAAA,IAAA,CAAK,UAAU,QAAU,EAAA;AAC3B,MAAA,UAAA,CAAW,QAAQC,aAAQ,CAAA,KAAA,EAAO,UAAW,CAAA,KAAK,IAAI,MAAY,GAAA,KAAA;AAAA,KAE/D,MAAA;AACH,MAAA,MAAM,kBAAkB,KAAM,CAAA,OAAA,CAAQ,WAAW,KAAK,CAAA,GAAI,CAAC,GAAI,UAAA,CAAW,KAA8B,IAAA,EAAG,CAAI,GAAA,CAAC,WAAW,KAAK,CAAA,CAAE,OAAO,OAAO,CAAA;AAChJ,MAAI,IAAAC,8CAAA,CAAoB,eAAiB,EAAA,KAAK,CAAG,EAAA;AAC/C,QAAA,MAAM,QAAQ,eAAgB,CAAA,SAAA,CAAU,OAAKD,aAAQ,CAAA,CAAA,EAAG,KAAK,CAAC,CAAA;AAC9D,QAAgB,eAAA,CAAA,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,OAE5B,MAAA;AACH,QAAA,eAAA,CAAgB,KAAK,KAAK,CAAA;AAAA;AAE5B,MAAA,UAAA,CAAW,KAAQ,GAAA,eAAA;AAAA;AACrB;AAGF,EAAA,MAAM,QAAW,GAAAF,YAAA,CAAS,MAAM,IAAA,CAAK,UAAU,QAAQ,CAAA;AAEvD,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,gBAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}
|
|
@@ -5,7 +5,7 @@ import { i as isValueEqualOrExist } from './isValueEqualOrExist.js';
|
|
|
5
5
|
|
|
6
6
|
function validateProps({ type, defaultValue, modelValue }) {
|
|
7
7
|
const value = modelValue || defaultValue;
|
|
8
|
-
const canTypeBeInferred = modelValue !==
|
|
8
|
+
const canTypeBeInferred = modelValue !== void 0 || defaultValue !== void 0;
|
|
9
9
|
if (canTypeBeInferred)
|
|
10
10
|
return Array.isArray(value) ? "multiple" : "single";
|
|
11
11
|
else
|
|
@@ -17,20 +17,20 @@ function getDefaultType({ type, defaultValue, modelValue }) {
|
|
|
17
17
|
return validateProps({ type, defaultValue, modelValue });
|
|
18
18
|
}
|
|
19
19
|
function getDefaultValue({ type, defaultValue }) {
|
|
20
|
-
if (defaultValue !==
|
|
20
|
+
if (defaultValue !== void 0)
|
|
21
21
|
return defaultValue;
|
|
22
|
-
return type === "single" ?
|
|
22
|
+
return type === "single" ? void 0 : [];
|
|
23
23
|
}
|
|
24
24
|
function useSingleOrMultipleValue(props, emits) {
|
|
25
25
|
const type = computed(() => getDefaultType(props));
|
|
26
26
|
const modelValue = useVModel(props, "modelValue", emits, {
|
|
27
27
|
defaultValue: getDefaultValue(props),
|
|
28
|
-
passive: props.modelValue ===
|
|
28
|
+
passive: props.modelValue === void 0,
|
|
29
29
|
deep: true
|
|
30
30
|
});
|
|
31
31
|
function changeModelValue(value) {
|
|
32
32
|
if (type.value === "single") {
|
|
33
|
-
modelValue.value = isEqual(value, modelValue.value) ?
|
|
33
|
+
modelValue.value = isEqual(value, modelValue.value) ? void 0 : value;
|
|
34
34
|
} else {
|
|
35
35
|
const modelValueArray = Array.isArray(modelValue.value) ? [...modelValue.value || []] : [modelValue.value].filter(Boolean);
|
|
36
36
|
if (isValueEqualOrExist(modelValueArray, value)) {
|