reka-ui 2.2.1 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Accordion/AccordionItem.cjs.map +1 -1
- package/dist/Accordion/AccordionItem.js.map +1 -1
- package/dist/Accordion/AccordionRoot.cjs.map +1 -1
- package/dist/Accordion/AccordionRoot.js.map +1 -1
- package/dist/AlertDialog/AlertDialogCancel.cjs.map +1 -1
- package/dist/AlertDialog/AlertDialogCancel.js.map +1 -1
- package/dist/AlertDialog/AlertDialogContent.cjs.map +1 -1
- package/dist/AlertDialog/AlertDialogContent.js.map +1 -1
- package/dist/AspectRatio/AspectRatio.cjs.map +1 -1
- package/dist/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/Avatar/AvatarFallback.cjs +11 -14
- package/dist/Avatar/AvatarFallback.cjs.map +1 -1
- package/dist/Avatar/AvatarFallback.js +12 -15
- package/dist/Avatar/AvatarFallback.js.map +1 -1
- package/dist/Avatar/AvatarImage.cjs +3 -2
- package/dist/Avatar/AvatarImage.cjs.map +1 -1
- package/dist/Avatar/AvatarImage.js +3 -2
- package/dist/Avatar/AvatarImage.js.map +1 -1
- package/dist/Avatar/AvatarRoot.cjs +1 -1
- package/dist/Avatar/AvatarRoot.cjs.map +1 -1
- package/dist/Avatar/AvatarRoot.js +1 -1
- package/dist/Avatar/AvatarRoot.js.map +1 -1
- package/dist/Avatar/utils.cjs +43 -16
- package/dist/Avatar/utils.cjs.map +1 -1
- package/dist/Avatar/utils.js +44 -17
- package/dist/Avatar/utils.js.map +1 -1
- package/dist/Calendar/CalendarCell.cjs +2 -2
- package/dist/Calendar/CalendarCell.cjs.map +1 -1
- package/dist/Calendar/CalendarCell.js +2 -2
- package/dist/Calendar/CalendarCell.js.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.cjs +5 -1
- package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
- package/dist/Calendar/CalendarCellTrigger.js +5 -1
- package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
- package/dist/Calendar/CalendarGrid.cjs.map +1 -1
- package/dist/Calendar/CalendarGrid.js.map +1 -1
- package/dist/Calendar/CalendarHeading.cjs.map +1 -1
- package/dist/Calendar/CalendarHeading.js.map +1 -1
- package/dist/Calendar/CalendarNext.cjs.map +1 -1
- package/dist/Calendar/CalendarNext.js.map +1 -1
- package/dist/Calendar/CalendarPrev.cjs.map +1 -1
- package/dist/Calendar/CalendarPrev.js.map +1 -1
- package/dist/Calendar/CalendarRoot.cjs +7 -4
- package/dist/Calendar/CalendarRoot.cjs.map +1 -1
- package/dist/Calendar/CalendarRoot.js +7 -4
- package/dist/Calendar/CalendarRoot.js.map +1 -1
- package/dist/Calendar/useCalendar.cjs +2 -2
- package/dist/Calendar/useCalendar.cjs.map +1 -1
- package/dist/Calendar/useCalendar.js +2 -2
- package/dist/Calendar/useCalendar.js.map +1 -1
- package/dist/Checkbox/CheckboxGroupRoot.cjs.map +1 -1
- package/dist/Checkbox/CheckboxGroupRoot.js.map +1 -1
- package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
- package/dist/Checkbox/CheckboxRoot.js.map +1 -1
- package/dist/Collapsible/CollapsibleContent.cjs.map +1 -1
- package/dist/Collapsible/CollapsibleContent.js.map +1 -1
- package/dist/Collapsible/CollapsibleRoot.cjs +2 -0
- package/dist/Collapsible/CollapsibleRoot.cjs.map +1 -1
- package/dist/Collapsible/CollapsibleRoot.js +2 -0
- package/dist/Collapsible/CollapsibleRoot.js.map +1 -1
- package/dist/Collection/Collection.cjs.map +1 -1
- package/dist/Collection/Collection.js.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.cjs +1 -1
- package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
- package/dist/Combobox/ComboboxContentImpl.js +1 -1
- package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
- package/dist/Combobox/ComboboxGroup.cjs.map +1 -1
- package/dist/Combobox/ComboboxGroup.js.map +1 -1
- package/dist/Combobox/ComboboxInput.cjs.map +1 -1
- package/dist/Combobox/ComboboxInput.js.map +1 -1
- package/dist/Combobox/ComboboxItem.cjs.map +1 -1
- package/dist/Combobox/ComboboxItem.js.map +1 -1
- package/dist/Combobox/ComboboxRoot.cjs +1 -2
- package/dist/Combobox/ComboboxRoot.cjs.map +1 -1
- package/dist/Combobox/ComboboxRoot.js +1 -2
- package/dist/Combobox/ComboboxRoot.js.map +1 -1
- package/dist/Combobox/ComboboxTrigger.cjs.map +1 -1
- package/dist/Combobox/ComboboxTrigger.js.map +1 -1
- package/dist/Combobox/ComboboxViewport.cjs.map +1 -1
- package/dist/Combobox/ComboboxViewport.js.map +1 -1
- package/dist/Combobox/ComboboxVirtualizer.cjs.map +1 -1
- package/dist/Combobox/ComboboxVirtualizer.js.map +1 -1
- package/dist/ConfigProvider/ConfigProvider.cjs.map +1 -1
- package/dist/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/ContextMenu/ContextMenuContent.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuContent.js.map +1 -1
- package/dist/ContextMenu/ContextMenuRoot.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuRoot.js.map +1 -1
- package/dist/ContextMenu/ContextMenuSub.cjs +1 -1
- package/dist/ContextMenu/ContextMenuSub.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuSub.js +1 -1
- package/dist/ContextMenu/ContextMenuSub.js.map +1 -1
- package/dist/ContextMenu/ContextMenuTrigger.cjs.map +1 -1
- package/dist/ContextMenu/ContextMenuTrigger.js.map +1 -1
- package/dist/DateField/DateFieldInput.cjs +1 -0
- package/dist/DateField/DateFieldInput.cjs.map +1 -1
- package/dist/DateField/DateFieldInput.js +1 -0
- package/dist/DateField/DateFieldInput.js.map +1 -1
- package/dist/DateField/DateFieldRoot.cjs +7 -1
- package/dist/DateField/DateFieldRoot.cjs.map +1 -1
- package/dist/DateField/DateFieldRoot.js +7 -1
- package/dist/DateField/DateFieldRoot.js.map +1 -1
- package/dist/DatePicker/DatePickerCellTrigger.cjs.map +1 -1
- package/dist/DatePicker/DatePickerCellTrigger.js.map +1 -1
- package/dist/DatePicker/DatePickerContent.cjs +8 -3
- package/dist/DatePicker/DatePickerContent.cjs.map +1 -1
- package/dist/DatePicker/DatePickerContent.js +9 -4
- package/dist/DatePicker/DatePickerContent.js.map +1 -1
- package/dist/DatePicker/DatePickerHeading.cjs.map +1 -1
- package/dist/DatePicker/DatePickerHeading.js.map +1 -1
- package/dist/DatePicker/DatePickerNext.cjs.map +1 -1
- package/dist/DatePicker/DatePickerNext.js.map +1 -1
- package/dist/DatePicker/DatePickerPrev.cjs.map +1 -1
- package/dist/DatePicker/DatePickerPrev.js.map +1 -1
- package/dist/DatePicker/DatePickerRoot.cjs +1 -0
- package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
- package/dist/DatePicker/DatePickerRoot.js +1 -0
- package/dist/DatePicker/DatePickerRoot.js.map +1 -1
- package/dist/DateRangeField/DateRangeFieldInput.cjs +1 -0
- package/dist/DateRangeField/DateRangeFieldInput.cjs.map +1 -1
- package/dist/DateRangeField/DateRangeFieldInput.js +1 -0
- package/dist/DateRangeField/DateRangeFieldInput.js.map +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.cjs +13 -9
- package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
- package/dist/DateRangeField/DateRangeFieldRoot.js +13 -9
- package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.cjs +2 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.js +2 -1
- package/dist/DateRangePicker/DateRangePickerCalendar.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerContent.cjs +8 -3
- package/dist/DateRangePicker/DateRangePickerContent.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerContent.js +9 -4
- package/dist/DateRangePicker/DateRangePickerContent.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerHeading.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerHeading.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerNext.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerNext.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerPrev.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerPrev.js.map +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.cjs +6 -2
- package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
- package/dist/DateRangePicker/DateRangePickerRoot.js +6 -2
- package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
- package/dist/Dialog/DialogContentImpl.cjs +1 -1
- package/dist/Dialog/DialogContentImpl.cjs.map +1 -1
- package/dist/Dialog/DialogContentImpl.js +1 -1
- package/dist/Dialog/DialogContentImpl.js.map +1 -1
- package/dist/Dialog/DialogContentNonModal.cjs.map +1 -1
- package/dist/Dialog/DialogContentNonModal.js.map +1 -1
- package/dist/Dialog/DialogRoot.cjs +4 -1
- package/dist/Dialog/DialogRoot.cjs.map +1 -1
- package/dist/Dialog/DialogRoot.js +4 -1
- package/dist/Dialog/DialogRoot.js.map +1 -1
- package/dist/Dialog/DialogTrigger.cjs.map +1 -1
- package/dist/Dialog/DialogTrigger.js.map +1 -1
- package/dist/DismissableLayer/DismissableLayer.cjs.map +1 -1
- package/dist/DismissableLayer/DismissableLayer.js.map +1 -1
- package/dist/DismissableLayer/DismissableLayerBranch.cjs.map +1 -1
- package/dist/DismissableLayer/DismissableLayerBranch.js.map +1 -1
- package/dist/DismissableLayer/utils.cjs +19 -7
- package/dist/DismissableLayer/utils.cjs.map +1 -1
- package/dist/DismissableLayer/utils.js +20 -8
- package/dist/DismissableLayer/utils.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuContent.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.cjs +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.js +1 -1
- package/dist/DropdownMenu/DropdownMenuRoot.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.cjs +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.js +1 -1
- package/dist/DropdownMenu/DropdownMenuSub.js.map +1 -1
- package/dist/DropdownMenu/DropdownMenuTrigger.cjs.map +1 -1
- package/dist/DropdownMenu/DropdownMenuTrigger.js.map +1 -1
- package/dist/Editable/EditableInput.cjs.map +1 -1
- package/dist/Editable/EditableInput.js.map +1 -1
- package/dist/Editable/EditableRoot.cjs +3 -3
- package/dist/Editable/EditableRoot.cjs.map +1 -1
- package/dist/Editable/EditableRoot.js +3 -3
- package/dist/Editable/EditableRoot.js.map +1 -1
- package/dist/FocusScope/FocusScope.cjs.map +1 -1
- package/dist/FocusScope/FocusScope.js.map +1 -1
- package/dist/HoverCard/HoverCardContentImpl.cjs +1 -1
- package/dist/HoverCard/HoverCardContentImpl.cjs.map +1 -1
- package/dist/HoverCard/HoverCardContentImpl.js +1 -1
- package/dist/HoverCard/HoverCardContentImpl.js.map +1 -1
- package/dist/HoverCard/HoverCardRoot.cjs +1 -1
- package/dist/HoverCard/HoverCardRoot.cjs.map +1 -1
- package/dist/HoverCard/HoverCardRoot.js +1 -1
- package/dist/HoverCard/HoverCardRoot.js.map +1 -1
- package/dist/Listbox/ListboxFilter.cjs.map +1 -1
- package/dist/Listbox/ListboxFilter.js.map +1 -1
- package/dist/Listbox/ListboxItem.cjs.map +1 -1
- package/dist/Listbox/ListboxItem.js.map +1 -1
- package/dist/Listbox/ListboxRoot.cjs +1 -1
- package/dist/Listbox/ListboxRoot.cjs.map +1 -1
- package/dist/Listbox/ListboxRoot.js +1 -1
- package/dist/Listbox/ListboxRoot.js.map +1 -1
- package/dist/Listbox/ListboxVirtualizer.cjs +3 -3
- package/dist/Listbox/ListboxVirtualizer.cjs.map +1 -1
- package/dist/Listbox/ListboxVirtualizer.js +3 -3
- package/dist/Listbox/ListboxVirtualizer.js.map +1 -1
- package/dist/Menu/MenuCheckboxItem.cjs.map +1 -1
- package/dist/Menu/MenuCheckboxItem.js.map +1 -1
- package/dist/Menu/MenuContentImpl.cjs +1 -1
- package/dist/Menu/MenuContentImpl.cjs.map +1 -1
- package/dist/Menu/MenuContentImpl.js +1 -1
- package/dist/Menu/MenuContentImpl.js.map +1 -1
- package/dist/Menu/MenuItemImpl.cjs.map +1 -1
- package/dist/Menu/MenuItemImpl.js.map +1 -1
- package/dist/Menu/MenuItemIndicator.cjs.map +1 -1
- package/dist/Menu/MenuItemIndicator.js.map +1 -1
- package/dist/Menu/MenuRadioGroup.cjs.map +1 -1
- package/dist/Menu/MenuRadioGroup.js.map +1 -1
- package/dist/Menu/MenuRoot.cjs +1 -1
- package/dist/Menu/MenuRoot.cjs.map +1 -1
- package/dist/Menu/MenuRoot.js +1 -1
- package/dist/Menu/MenuRoot.js.map +1 -1
- package/dist/Menu/MenuSub.cjs +1 -1
- package/dist/Menu/MenuSub.cjs.map +1 -1
- package/dist/Menu/MenuSub.js +1 -1
- package/dist/Menu/MenuSub.js.map +1 -1
- package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
- package/dist/Menu/MenuSubTrigger.js.map +1 -1
- package/dist/Menubar/MenubarContent.cjs.map +1 -1
- package/dist/Menubar/MenubarContent.js.map +1 -1
- package/dist/Menubar/MenubarMenu.cjs.map +1 -1
- package/dist/Menubar/MenubarMenu.js.map +1 -1
- package/dist/Menubar/MenubarRoot.cjs.map +1 -1
- package/dist/Menubar/MenubarRoot.js.map +1 -1
- package/dist/Menubar/MenubarSub.cjs +1 -1
- package/dist/Menubar/MenubarSub.cjs.map +1 -1
- package/dist/Menubar/MenubarSub.js +1 -1
- package/dist/Menubar/MenubarSub.js.map +1 -1
- package/dist/Menubar/MenubarTrigger.cjs.map +1 -1
- package/dist/Menubar/MenubarTrigger.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContent.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContent.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.cjs +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.js +1 -1
- package/dist/NavigationMenu/NavigationMenuContentImpl.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuIndicator.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuIndicator.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuItem.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuList.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuList.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuRoot.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuRoot.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuSub.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuSub.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuTrigger.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuTrigger.js.map +1 -1
- package/dist/NavigationMenu/NavigationMenuViewport.cjs.map +1 -1
- package/dist/NavigationMenu/NavigationMenuViewport.js.map +1 -1
- package/dist/NumberField/NumberFieldInput.cjs +2 -2
- package/dist/NumberField/NumberFieldInput.cjs.map +1 -1
- package/dist/NumberField/NumberFieldInput.js +2 -2
- package/dist/NumberField/NumberFieldInput.js.map +1 -1
- package/dist/NumberField/NumberFieldRoot.cjs +8 -5
- package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
- package/dist/NumberField/NumberFieldRoot.js +8 -5
- package/dist/NumberField/NumberFieldRoot.js.map +1 -1
- package/dist/Pagination/PaginationFirst.cjs.map +1 -1
- package/dist/Pagination/PaginationFirst.js.map +1 -1
- package/dist/Pagination/PaginationLast.cjs.map +1 -1
- package/dist/Pagination/PaginationLast.js.map +1 -1
- package/dist/Pagination/PaginationList.cjs.map +1 -1
- package/dist/Pagination/PaginationList.js.map +1 -1
- package/dist/Pagination/PaginationListItem.cjs.map +1 -1
- package/dist/Pagination/PaginationListItem.js.map +1 -1
- package/dist/Pagination/PaginationNext.cjs.map +1 -1
- package/dist/Pagination/PaginationNext.js.map +1 -1
- package/dist/Pagination/PaginationPrev.cjs.map +1 -1
- package/dist/Pagination/PaginationPrev.js.map +1 -1
- package/dist/Pagination/PaginationRoot.cjs.map +1 -1
- package/dist/Pagination/PaginationRoot.js.map +1 -1
- package/dist/PinInput/PinInputInput.cjs +14 -6
- package/dist/PinInput/PinInputInput.cjs.map +1 -1
- package/dist/PinInput/PinInputInput.js +14 -6
- package/dist/PinInput/PinInputInput.js.map +1 -1
- package/dist/PinInput/PinInputRoot.cjs +4 -2
- package/dist/PinInput/PinInputRoot.cjs.map +1 -1
- package/dist/PinInput/PinInputRoot.js +4 -2
- package/dist/PinInput/PinInputRoot.js.map +1 -1
- package/dist/Popover/PopoverAnchor.cjs.map +1 -1
- package/dist/Popover/PopoverAnchor.js.map +1 -1
- package/dist/Popover/PopoverContentImpl.cjs +1 -1
- package/dist/Popover/PopoverContentImpl.js +1 -1
- package/dist/Popover/PopoverContentModal.cjs.map +1 -1
- package/dist/Popover/PopoverContentModal.js.map +1 -1
- package/dist/Popover/PopoverContentNonModal.cjs.map +1 -1
- package/dist/Popover/PopoverContentNonModal.js.map +1 -1
- package/dist/Popover/PopoverRoot.cjs +1 -1
- package/dist/Popover/PopoverRoot.cjs.map +1 -1
- package/dist/Popover/PopoverRoot.js +1 -1
- package/dist/Popover/PopoverRoot.js.map +1 -1
- package/dist/Popover/PopoverTrigger.cjs.map +1 -1
- package/dist/Popover/PopoverTrigger.js.map +1 -1
- package/dist/Popper/PopperAnchor.cjs.map +1 -1
- package/dist/Popper/PopperAnchor.js.map +1 -1
- package/dist/Popper/PopperArrow.cjs.map +1 -1
- package/dist/Popper/PopperArrow.js.map +1 -1
- package/dist/Popper/PopperContent.cjs.map +1 -1
- package/dist/Popper/PopperContent.js.map +1 -1
- package/dist/Presence/Presence.cjs.map +1 -1
- package/dist/Presence/Presence.js.map +1 -1
- package/dist/Presence/usePresence.cjs.map +1 -1
- package/dist/Presence/usePresence.js.map +1 -1
- package/dist/Primitive/Slot.cjs +1 -9
- package/dist/Primitive/Slot.cjs.map +1 -1
- package/dist/Primitive/Slot.js +1 -9
- package/dist/Primitive/Slot.js.map +1 -1
- package/dist/Progress/ProgressRoot.cjs +3 -2
- package/dist/Progress/ProgressRoot.cjs.map +1 -1
- package/dist/Progress/ProgressRoot.js +3 -2
- package/dist/Progress/ProgressRoot.js.map +1 -1
- package/dist/RadioGroup/Radio.cjs +2 -0
- package/dist/RadioGroup/Radio.cjs.map +1 -1
- package/dist/RadioGroup/Radio.js +2 -0
- package/dist/RadioGroup/Radio.js.map +1 -1
- package/dist/RadioGroup/RadioGroupItem.cjs.map +1 -1
- package/dist/RadioGroup/RadioGroupItem.js.map +1 -1
- package/dist/RadioGroup/RadioGroupRoot.cjs.map +1 -1
- package/dist/RadioGroup/RadioGroupRoot.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCell.cjs +2 -2
- package/dist/RangeCalendar/RangeCalendarCell.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCell.js +2 -2
- package/dist/RangeCalendar/RangeCalendarCell.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +28 -9
- package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js +28 -9
- package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarHeading.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarHeading.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.cjs +26 -9
- package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
- package/dist/RangeCalendar/RangeCalendarRoot.js +26 -9
- package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.cjs +21 -4
- package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
- package/dist/RangeCalendar/useRangeCalendar.js +21 -4
- package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
- package/dist/RovingFocus/RovingFocusGroup.cjs +1 -1
- package/dist/RovingFocus/RovingFocusGroup.cjs.map +1 -1
- package/dist/RovingFocus/RovingFocusGroup.js +1 -1
- package/dist/RovingFocus/RovingFocusGroup.js.map +1 -1
- package/dist/RovingFocus/RovingFocusItem.cjs.map +1 -1
- package/dist/RovingFocus/RovingFocusItem.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaCornerImpl.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaCornerImpl.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaRoot.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaRoot.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbar.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbar.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarAuto.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarAuto.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarHover.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarHover.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarImpl.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarScroll.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarScroll.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarX.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarX.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarY.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaScrollbarY.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaThumb.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaThumb.js.map +1 -1
- package/dist/ScrollArea/ScrollAreaViewport.cjs.map +1 -1
- package/dist/ScrollArea/ScrollAreaViewport.js.map +1 -1
- package/dist/Select/BubbleSelect.cjs.map +1 -1
- package/dist/Select/BubbleSelect.js.map +1 -1
- package/dist/Select/SelectContent.cjs.map +1 -1
- package/dist/Select/SelectContent.js.map +1 -1
- package/dist/Select/SelectContentImpl.cjs +2 -2
- package/dist/Select/SelectContentImpl.cjs.map +1 -1
- package/dist/Select/SelectContentImpl.js +2 -2
- package/dist/Select/SelectContentImpl.js.map +1 -1
- package/dist/Select/SelectItem.cjs.map +1 -1
- package/dist/Select/SelectItem.js.map +1 -1
- package/dist/Select/SelectItemAlignedPosition.cjs +1 -1
- package/dist/Select/SelectItemAlignedPosition.cjs.map +1 -1
- package/dist/Select/SelectItemAlignedPosition.js +1 -1
- package/dist/Select/SelectItemAlignedPosition.js.map +1 -1
- package/dist/Select/SelectItemText.cjs.map +1 -1
- package/dist/Select/SelectItemText.js.map +1 -1
- package/dist/Select/SelectProvider.cjs.map +1 -1
- package/dist/Select/SelectProvider.js.map +1 -1
- package/dist/Select/SelectRoot.cjs +3 -1
- package/dist/Select/SelectRoot.cjs.map +1 -1
- package/dist/Select/SelectRoot.js +3 -1
- package/dist/Select/SelectRoot.js.map +1 -1
- package/dist/Select/SelectScrollButtonImpl.cjs.map +1 -1
- package/dist/Select/SelectScrollButtonImpl.js.map +1 -1
- package/dist/Select/SelectTrigger.cjs.map +1 -1
- package/dist/Select/SelectTrigger.js.map +1 -1
- package/dist/Select/SelectValue.cjs.map +1 -1
- package/dist/Select/SelectValue.js.map +1 -1
- package/dist/Select/SelectViewport.cjs.map +1 -1
- package/dist/Select/SelectViewport.js.map +1 -1
- package/dist/Slider/SliderHorizontal.cjs +7 -4
- package/dist/Slider/SliderHorizontal.cjs.map +1 -1
- package/dist/Slider/SliderHorizontal.js +7 -4
- package/dist/Slider/SliderHorizontal.js.map +1 -1
- package/dist/Slider/SliderRange.cjs +2 -2
- package/dist/Slider/SliderRange.cjs.map +1 -1
- package/dist/Slider/SliderRange.js +2 -2
- package/dist/Slider/SliderRange.js.map +1 -1
- package/dist/Slider/SliderRoot.cjs.map +1 -1
- package/dist/Slider/SliderRoot.js.map +1 -1
- package/dist/Slider/SliderThumb.cjs.map +1 -1
- package/dist/Slider/SliderThumb.js.map +1 -1
- package/dist/Slider/SliderThumbImpl.cjs +3 -3
- package/dist/Slider/SliderThumbImpl.cjs.map +1 -1
- package/dist/Slider/SliderThumbImpl.js +3 -3
- package/dist/Slider/SliderThumbImpl.js.map +1 -1
- package/dist/Slider/SliderVertical.cjs +7 -4
- package/dist/Slider/SliderVertical.cjs.map +1 -1
- package/dist/Slider/SliderVertical.js +7 -4
- package/dist/Slider/SliderVertical.js.map +1 -1
- package/dist/Slider/utils.cjs +1 -1
- package/dist/Slider/utils.cjs.map +1 -1
- package/dist/Slider/utils.js +1 -1
- package/dist/Slider/utils.js.map +1 -1
- package/dist/Splitter/SplitterGroup.cjs.map +1 -1
- package/dist/Splitter/SplitterGroup.js.map +1 -1
- package/dist/Splitter/SplitterPanel.cjs +16 -10
- package/dist/Splitter/SplitterPanel.cjs.map +1 -1
- package/dist/Splitter/SplitterPanel.js +16 -10
- package/dist/Splitter/SplitterPanel.js.map +1 -1
- package/dist/Stepper/StepperIndicator.cjs.map +1 -1
- package/dist/Stepper/StepperIndicator.js.map +1 -1
- package/dist/Stepper/StepperItem.cjs.map +1 -1
- package/dist/Stepper/StepperItem.js.map +1 -1
- package/dist/Stepper/StepperRoot.cjs +31 -4
- package/dist/Stepper/StepperRoot.cjs.map +1 -1
- package/dist/Stepper/StepperRoot.js +31 -4
- package/dist/Stepper/StepperRoot.js.map +1 -1
- package/dist/Stepper/StepperTrigger.cjs.map +1 -1
- package/dist/Stepper/StepperTrigger.js.map +1 -1
- package/dist/Switch/SwitchRoot.cjs.map +1 -1
- package/dist/Switch/SwitchRoot.js.map +1 -1
- package/dist/Tabs/TabsContent.cjs.map +1 -1
- package/dist/Tabs/TabsContent.js.map +1 -1
- package/dist/Tabs/TabsIndicator.cjs.map +1 -1
- package/dist/Tabs/TabsIndicator.js.map +1 -1
- package/dist/Tabs/TabsList.cjs.map +1 -1
- package/dist/Tabs/TabsList.js.map +1 -1
- package/dist/Tabs/TabsRoot.cjs.map +1 -1
- package/dist/Tabs/TabsRoot.js.map +1 -1
- package/dist/Tabs/TabsTrigger.cjs.map +1 -1
- package/dist/Tabs/TabsTrigger.js.map +1 -1
- package/dist/TagsInput/TagsInputInput.cjs +1 -0
- package/dist/TagsInput/TagsInputInput.cjs.map +1 -1
- package/dist/TagsInput/TagsInputInput.js +1 -0
- package/dist/TagsInput/TagsInputInput.js.map +1 -1
- package/dist/TagsInput/TagsInputItem.cjs.map +1 -1
- package/dist/TagsInput/TagsInputItem.js.map +1 -1
- package/dist/TagsInput/TagsInputItemDelete.cjs.map +1 -1
- package/dist/TagsInput/TagsInputItemDelete.js.map +1 -1
- package/dist/TagsInput/TagsInputRoot.cjs +1 -1
- package/dist/TagsInput/TagsInputRoot.cjs.map +1 -1
- package/dist/TagsInput/TagsInputRoot.js +1 -1
- package/dist/TagsInput/TagsInputRoot.js.map +1 -1
- package/dist/TimeField/TimeFieldInput.cjs +1 -0
- package/dist/TimeField/TimeFieldInput.cjs.map +1 -1
- package/dist/TimeField/TimeFieldInput.js +1 -0
- package/dist/TimeField/TimeFieldInput.js.map +1 -1
- package/dist/TimeField/TimeFieldRoot.cjs +13 -4
- package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
- package/dist/TimeField/TimeFieldRoot.js +13 -4
- package/dist/TimeField/TimeFieldRoot.js.map +1 -1
- package/dist/Toast/ToastAnnounce.cjs.map +1 -1
- package/dist/Toast/ToastAnnounce.js.map +1 -1
- package/dist/Toast/ToastRoot.cjs.map +1 -1
- package/dist/Toast/ToastRoot.js.map +1 -1
- package/dist/Toast/ToastRootImpl.cjs +1 -1
- package/dist/Toast/ToastRootImpl.cjs.map +1 -1
- package/dist/Toast/ToastRootImpl.js +1 -1
- package/dist/Toast/ToastRootImpl.js.map +1 -1
- package/dist/Toast/ToastViewport.cjs +2 -2
- package/dist/Toast/ToastViewport.cjs.map +1 -1
- package/dist/Toast/ToastViewport.js +2 -2
- package/dist/Toast/ToastViewport.js.map +1 -1
- package/dist/Toggle/Toggle.cjs.map +1 -1
- package/dist/Toggle/Toggle.js.map +1 -1
- package/dist/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
- package/dist/ToggleGroup/ToggleGroupItem.js.map +1 -1
- package/dist/ToggleGroup/ToggleGroupRoot.cjs.map +1 -1
- package/dist/ToggleGroup/ToggleGroupRoot.js.map +1 -1
- package/dist/Toolbar/ToolbarRoot.cjs.map +1 -1
- package/dist/Toolbar/ToolbarRoot.js.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.cjs +2 -2
- package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
- package/dist/Tooltip/TooltipContentImpl.js +2 -2
- package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
- package/dist/Tooltip/TooltipRoot.cjs +1 -1
- package/dist/Tooltip/TooltipRoot.cjs.map +1 -1
- package/dist/Tooltip/TooltipRoot.js +1 -1
- package/dist/Tooltip/TooltipRoot.js.map +1 -1
- package/dist/Tooltip/TooltipTrigger.cjs +1 -1
- package/dist/Tooltip/TooltipTrigger.cjs.map +1 -1
- package/dist/Tooltip/TooltipTrigger.js +1 -1
- package/dist/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/Tree/TreeItem.cjs +4 -1
- package/dist/Tree/TreeItem.cjs.map +1 -1
- package/dist/Tree/TreeItem.js +4 -1
- package/dist/Tree/TreeItem.js.map +1 -1
- package/dist/Tree/TreeRoot.cjs +29 -3
- package/dist/Tree/TreeRoot.cjs.map +1 -1
- package/dist/Tree/TreeRoot.js +29 -3
- package/dist/Tree/TreeRoot.js.map +1 -1
- package/dist/Tree/TreeVirtualizer.cjs +2 -2
- package/dist/Tree/TreeVirtualizer.cjs.map +1 -1
- package/dist/Tree/TreeVirtualizer.js +2 -2
- package/dist/Tree/TreeVirtualizer.js.map +1 -1
- package/dist/Viewport/Viewport.cjs.map +1 -1
- package/dist/Viewport/Viewport.js.map +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInputBubble.cjs.map +1 -1
- package/dist/VisuallyHidden/VisuallyHiddenInputBubble.js.map +1 -1
- package/dist/component/BaseSeparator.cjs.map +1 -1
- package/dist/component/BaseSeparator.js.map +1 -1
- package/dist/date/calendar.cjs.map +1 -1
- package/dist/date/calendar.js.map +1 -1
- package/dist/date/parser.cjs +22 -7
- package/dist/date/parser.cjs.map +1 -1
- package/dist/date/parser.js +23 -8
- package/dist/date/parser.js.map +1 -1
- package/dist/date/useDateField.cjs +21 -6
- package/dist/date/useDateField.cjs.map +1 -1
- package/dist/date/useDateField.js +21 -6
- package/dist/date/useDateField.js.map +1 -1
- package/dist/date/utils.cjs +31 -2
- package/dist/date/utils.cjs.map +1 -1
- package/dist/date/utils.js +30 -3
- package/dist/date/utils.js.map +1 -1
- package/dist/index.d.ts +495 -353
- package/dist/shared/useBodyScrollLock.cjs +2 -2
- package/dist/shared/useBodyScrollLock.cjs.map +1 -1
- package/dist/shared/useBodyScrollLock.js +2 -2
- package/dist/shared/useBodyScrollLock.js.map +1 -1
- package/dist/shared/useDateFormatter.cjs +12 -10
- package/dist/shared/useDateFormatter.cjs.map +1 -1
- package/dist/shared/useDateFormatter.js +12 -10
- package/dist/shared/useDateFormatter.js.map +1 -1
- package/dist/shared/useDirection.cjs.map +1 -1
- package/dist/shared/useDirection.js.map +1 -1
- package/dist/shared/useGraceArea.cjs.map +1 -1
- package/dist/shared/useGraceArea.js.map +1 -1
- package/dist/shared/useId.cjs +2 -2
- package/dist/shared/useId.cjs.map +1 -1
- package/dist/shared/useId.js +2 -2
- package/dist/shared/useId.js.map +1 -1
- package/dist/shared/useLocale.cjs.map +1 -1
- package/dist/shared/useLocale.js.map +1 -1
- package/dist/shared/useNonce.cjs.map +1 -1
- package/dist/shared/useNonce.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverAnchor.cjs","sources":["../../src/Popover/PopoverAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperAnchorProps } from '@/Popper'\nimport { useForwardExpose } from '@/shared'\n\nexport interface PopoverAnchorProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"PopoverAnchor.cjs","sources":["../../src/Popover/PopoverAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperAnchorProps } from '@/Popper'\nimport { useForwardExpose } from '@/shared'\n\nexport interface PopoverAnchorProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onBeforeMount, onUnmounted } from 'vue'\nimport { PopperAnchor } from '@/Popper'\nimport { injectPopoverRootContext } from './PopoverRoot.vue'\n\nconst props = defineProps<PopoverAnchorProps>()\n\nuseForwardExpose()\nconst rootContext = injectPopoverRootContext()\n\nonBeforeMount(() => {\n rootContext.hasCustomAnchor.value = true\n})\nonUnmounted(() => {\n rootContext.hasCustomAnchor.value = false\n})\n</script>\n\n<template>\n <PopperAnchor v-bind=\"props\">\n <slot />\n </PopperAnchor>\n</template>\n"],"names":["useForwardExpose","injectPopoverRootContext","onBeforeMount","onUnmounted"],"mappings":";;;;;;;;;;;;;;;AAYA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAiBA,wCAAA,EAAA;AACjB,IAAA,MAAM,cAAcC,4CAAyB,EAAA;AAE7C,IAAAC,iBAAA,CAAc,MAAM;AAClB,MAAA,WAAA,CAAY,gBAAgB,KAAQ,GAAA,IAAA;AAAA,KACrC,CAAA;AACD,IAAAC,eAAA,CAAY,MAAM;AAChB,MAAA,WAAA,CAAY,gBAAgB,KAAQ,GAAA,KAAA;AAAA,KACrC,CAAA;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverAnchor.js","sources":["../../src/Popover/PopoverAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperAnchorProps } from '@/Popper'\nimport { useForwardExpose } from '@/shared'\n\nexport interface PopoverAnchorProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"PopoverAnchor.js","sources":["../../src/Popover/PopoverAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PopperAnchorProps } from '@/Popper'\nimport { useForwardExpose } from '@/shared'\n\nexport interface PopoverAnchorProps extends PopperAnchorProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onBeforeMount, onUnmounted } from 'vue'\nimport { PopperAnchor } from '@/Popper'\nimport { injectPopoverRootContext } from './PopoverRoot.vue'\n\nconst props = defineProps<PopoverAnchorProps>()\n\nuseForwardExpose()\nconst rootContext = injectPopoverRootContext()\n\nonBeforeMount(() => {\n rootContext.hasCustomAnchor.value = true\n})\nonUnmounted(() => {\n rootContext.hasCustomAnchor.value = false\n})\n</script>\n\n<template>\n <PopperAnchor v-bind=\"props\">\n <slot />\n </PopperAnchor>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAYA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAiB,gBAAA,EAAA;AACjB,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAE7C,IAAA,aAAA,CAAc,MAAM;AAClB,MAAA,WAAA,CAAY,gBAAgB,KAAQ,GAAA,IAAA;AAAA,KACrC,CAAA;AACD,IAAA,WAAA,CAAY,MAAM;AAChB,MAAA,WAAA,CAAY,gBAAgB,KAAQ,GAAA,KAAA;AAAA,KACrC,CAAA;;;;;;;;;;;;;;"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const vue = require('vue');
|
|
4
|
-
const DismissableLayer_DismissableLayer = require('../DismissableLayer/DismissableLayer.cjs');
|
|
5
4
|
const Popper_PopperContent = require('../Popper/PopperContent.cjs');
|
|
6
5
|
const shared = require('@vueuse/shared');
|
|
7
6
|
const shared_useForwardProps = require('../shared/useForwardProps.cjs');
|
|
8
7
|
const shared_useForwardExpose = require('../shared/useForwardExpose.cjs');
|
|
9
8
|
const shared_useFocusGuards = require('../shared/useFocusGuards.cjs');
|
|
10
9
|
const FocusScope_FocusScope = require('../FocusScope/FocusScope.cjs');
|
|
10
|
+
const DismissableLayer_DismissableLayer = require('../DismissableLayer/DismissableLayer.cjs');
|
|
11
11
|
const Popover_PopoverRoot = require('./PopoverRoot.cjs');
|
|
12
12
|
|
|
13
13
|
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { defineComponent, createBlock, openBlock, unref, withCtx, createVNode, mergeProps, renderSlot } from 'vue';
|
|
2
|
-
import { _ as _sfc_main$2 } from '../DismissableLayer/DismissableLayer.js';
|
|
3
2
|
import { _ as _sfc_main$3 } from '../Popper/PopperContent.js';
|
|
4
3
|
import { reactiveOmit } from '@vueuse/shared';
|
|
5
4
|
import { u as useForwardProps } from '../shared/useForwardProps.js';
|
|
6
5
|
import { u as useForwardExpose } from '../shared/useForwardExpose.js';
|
|
7
6
|
import { u as useFocusGuards } from '../shared/useFocusGuards.js';
|
|
8
7
|
import { _ as _sfc_main$1 } from '../FocusScope/FocusScope.js';
|
|
8
|
+
import { _ as _sfc_main$2 } from '../DismissableLayer/DismissableLayer.js';
|
|
9
9
|
import { i as injectPopoverRootContext } from './PopoverRoot.js';
|
|
10
10
|
|
|
11
11
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverContentModal.cjs","sources":["../../src/Popover/PopoverContentModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PopoverContentImplEmits, PopoverContentImplProps } from './PopoverContentImpl.vue'\nimport { useForwardExpose, useForwardPropsEmits, useHideOthers } from '@/shared'\nimport { useBodyScrollLock } from '@/shared/useBodyScrollLock'\nimport
|
|
1
|
+
{"version":3,"file":"PopoverContentModal.cjs","sources":["../../src/Popover/PopoverContentModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PopoverContentImplEmits, PopoverContentImplProps } from './PopoverContentImpl.vue'\nimport { ref } from 'vue'\nimport { useForwardExpose, useForwardPropsEmits, useHideOthers } from '@/shared'\nimport { useBodyScrollLock } from '@/shared/useBodyScrollLock'\nimport PopoverContentImpl from './PopoverContentImpl.vue'\nimport { injectPopoverRootContext } from './PopoverRoot.vue'\n\nconst props = defineProps<PopoverContentImplProps>()\nconst emits = defineEmits<PopoverContentImplEmits>()\nconst rootContext = injectPopoverRootContext()\nconst isRightClickOutsideRef = ref(false)\n\nuseBodyScrollLock(true)\n\nconst forwarded = useForwardPropsEmits(props, emits)\n\nconst { forwardRef, currentElement } = useForwardExpose()\nuseHideOthers(currentElement)\n</script>\n\n<template>\n <PopoverContentImpl\n v-bind=\"forwarded\"\n :ref=\"forwardRef\"\n :trap-focus=\"rootContext.open.value\"\n disable-outside-pointer-events\n @close-auto-focus.prevent=\"\n (event) => {\n emits('closeAutoFocus', event);\n\n if (!isRightClickOutsideRef) rootContext.triggerElement.value?.focus();\n }\n \"\n @pointer-down-outside=\"\n (event) => {\n emits('pointerDownOutside', event);\n\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick\n = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef = isRightClick;\n }\n \"\n @focus-outside.prevent\n >\n <slot />\n </PopoverContentImpl>\n</template>\n"],"names":["injectPopoverRootContext","ref","useBodyScrollLock","useForwardPropsEmits","useForwardExpose","useHideOthers"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAC7C,IAAM,MAAA,sBAAA,GAAyBC,QAAI,KAAK,CAAA;AAExC,IAAAC,0CAAA,CAAkB,IAAI,CAAA;AAEtB,IAAM,MAAA,SAAA,GAAYC,gDAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIC,wCAAiB,EAAA;AACxD,IAAAC,kCAAA,CAAc,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverContentModal.js","sources":["../../src/Popover/PopoverContentModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PopoverContentImplEmits, PopoverContentImplProps } from './PopoverContentImpl.vue'\nimport { useForwardExpose, useForwardPropsEmits, useHideOthers } from '@/shared'\nimport { useBodyScrollLock } from '@/shared/useBodyScrollLock'\nimport
|
|
1
|
+
{"version":3,"file":"PopoverContentModal.js","sources":["../../src/Popover/PopoverContentModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PopoverContentImplEmits, PopoverContentImplProps } from './PopoverContentImpl.vue'\nimport { ref } from 'vue'\nimport { useForwardExpose, useForwardPropsEmits, useHideOthers } from '@/shared'\nimport { useBodyScrollLock } from '@/shared/useBodyScrollLock'\nimport PopoverContentImpl from './PopoverContentImpl.vue'\nimport { injectPopoverRootContext } from './PopoverRoot.vue'\n\nconst props = defineProps<PopoverContentImplProps>()\nconst emits = defineEmits<PopoverContentImplEmits>()\nconst rootContext = injectPopoverRootContext()\nconst isRightClickOutsideRef = ref(false)\n\nuseBodyScrollLock(true)\n\nconst forwarded = useForwardPropsEmits(props, emits)\n\nconst { forwardRef, currentElement } = useForwardExpose()\nuseHideOthers(currentElement)\n</script>\n\n<template>\n <PopoverContentImpl\n v-bind=\"forwarded\"\n :ref=\"forwardRef\"\n :trap-focus=\"rootContext.open.value\"\n disable-outside-pointer-events\n @close-auto-focus.prevent=\"\n (event) => {\n emits('closeAutoFocus', event);\n\n if (!isRightClickOutsideRef) rootContext.triggerElement.value?.focus();\n }\n \"\n @pointer-down-outside=\"\n (event) => {\n emits('pointerDownOutside', event);\n\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick\n = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n isRightClickOutsideRef = isRightClick;\n }\n \"\n @focus-outside.prevent\n >\n <slot />\n </PopoverContentImpl>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAC7C,IAAM,MAAA,sBAAA,GAAyB,IAAI,KAAK,CAAA;AAExC,IAAA,iBAAA,CAAkB,IAAI,CAAA;AAEtB,IAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;AAEnD,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AACxD,IAAA,aAAA,CAAc,cAAc,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverContentNonModal.cjs","sources":["../../src/Popover/PopoverContentNonModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PopoverContentImplEmits, PopoverContentImplProps } from './PopoverContentImpl.vue'\nimport {
|
|
1
|
+
{"version":3,"file":"PopoverContentNonModal.cjs","sources":["../../src/Popover/PopoverContentNonModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PopoverContentImplEmits, PopoverContentImplProps } from './PopoverContentImpl.vue'\nimport { ref } from 'vue'\nimport { useForwardPropsEmits } from '@/shared'\nimport PopoverContentImpl from './PopoverContentImpl.vue'\nimport { injectPopoverRootContext } from './PopoverRoot.vue'\n\nconst props = defineProps<PopoverContentImplProps>()\nconst emits = defineEmits<PopoverContentImplEmits>()\nconst rootContext = injectPopoverRootContext()\nconst hasInteractedOutsideRef = ref(false)\nconst hasPointerDownOutsideRef = ref(false)\n\nconst forwarded = useForwardPropsEmits(props, emits)\n</script>\n\n<template>\n <PopoverContentImpl\n v-bind=\"forwarded\"\n :trap-focus=\"false\"\n :disable-outside-pointer-events=\"false\"\n @close-auto-focus=\"\n (event) => {\n emits('closeAutoFocus', event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef) rootContext.triggerElement.value?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef = false;\n hasPointerDownOutsideRef = false;\n }\n \"\n @interact-outside=\"\n async (event) => {\n emits('interactOutside', event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = rootContext.triggerElement.value?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (\n event.detail.originalEvent.type === 'focusin'\n && hasPointerDownOutsideRef\n ) {\n event.preventDefault();\n }\n }\n \"\n >\n <slot />\n </PopoverContentImpl>\n</template>\n"],"names":["injectPopoverRootContext","ref","useForwardPropsEmits"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAC7C,IAAM,MAAA,uBAAA,GAA0BC,QAAI,KAAK,CAAA;AACzC,IAAM,MAAA,wBAAA,GAA2BA,QAAI,KAAK,CAAA;AAE1C,IAAM,MAAA,SAAA,GAAYC,gDAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverContentNonModal.js","sources":["../../src/Popover/PopoverContentNonModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PopoverContentImplEmits, PopoverContentImplProps } from './PopoverContentImpl.vue'\nimport {
|
|
1
|
+
{"version":3,"file":"PopoverContentNonModal.js","sources":["../../src/Popover/PopoverContentNonModal.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PopoverContentImplEmits, PopoverContentImplProps } from './PopoverContentImpl.vue'\nimport { ref } from 'vue'\nimport { useForwardPropsEmits } from '@/shared'\nimport PopoverContentImpl from './PopoverContentImpl.vue'\nimport { injectPopoverRootContext } from './PopoverRoot.vue'\n\nconst props = defineProps<PopoverContentImplProps>()\nconst emits = defineEmits<PopoverContentImplEmits>()\nconst rootContext = injectPopoverRootContext()\nconst hasInteractedOutsideRef = ref(false)\nconst hasPointerDownOutsideRef = ref(false)\n\nconst forwarded = useForwardPropsEmits(props, emits)\n</script>\n\n<template>\n <PopoverContentImpl\n v-bind=\"forwarded\"\n :trap-focus=\"false\"\n :disable-outside-pointer-events=\"false\"\n @close-auto-focus=\"\n (event) => {\n emits('closeAutoFocus', event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef) rootContext.triggerElement.value?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef = false;\n hasPointerDownOutsideRef = false;\n }\n \"\n @interact-outside=\"\n async (event) => {\n emits('interactOutside', event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = rootContext.triggerElement.value?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (\n event.detail.originalEvent.type === 'focusin'\n && hasPointerDownOutsideRef\n ) {\n event.preventDefault();\n }\n }\n \"\n >\n <slot />\n </PopoverContentImpl>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,IAAA,MAAM,KAAQ,GAAA,OAAA;AACd,IAAA,MAAM,KAAQ,GAAA,MAAA;AACd,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAC7C,IAAM,MAAA,uBAAA,GAA0B,IAAI,KAAK,CAAA;AACzC,IAAM,MAAA,wBAAA,GAA2B,IAAI,KAAK,CAAA;AAE1C,IAAM,MAAA,SAAA,GAAY,oBAAqB,CAAA,KAAA,EAAO,KAAK,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const vue = require('vue');
|
|
4
|
-
const Popper_PopperRoot = require('../Popper/PopperRoot.cjs');
|
|
5
4
|
const core = require('@vueuse/core');
|
|
5
|
+
const Popper_PopperRoot = require('../Popper/PopperRoot.cjs');
|
|
6
6
|
const shared_createContext = require('../shared/createContext.cjs');
|
|
7
7
|
|
|
8
8
|
const [injectPopoverRootContext, providePopoverRootContext] = shared_createContext.createContext("PopoverRoot");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverRoot.cjs","sources":["../../src/Popover/PopoverRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\n\nexport interface PopoverRootProps {\n /**\n * The open state of the popover when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * The controlled open state of the popover.\n */\n open?: boolean\n /**\n * The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.\n *\n * @defaultValue false\n */\n modal?: boolean\n}\nexport type PopoverRootEmits = {\n /**\n * Event handler called when the open state of the popover changes.\n */\n 'update:open': [value: boolean]\n}\n\nexport interface PopoverRootContext {\n triggerElement: Ref<HTMLElement | undefined>\n triggerId: string\n contentId: string\n open: Ref<boolean>\n modal: Ref<boolean>\n onOpenChange: (value: boolean) => void\n onOpenToggle: () => void\n hasCustomAnchor: Ref<boolean>\n}\n\nexport const [injectPopoverRootContext, providePopoverRootContext]\n = createContext<PopoverRootContext>('PopoverRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"PopoverRoot.cjs","sources":["../../src/Popover/PopoverRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\n\nexport interface PopoverRootProps {\n /**\n * The open state of the popover when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * The controlled open state of the popover.\n */\n open?: boolean\n /**\n * The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.\n *\n * @defaultValue false\n */\n modal?: boolean\n}\nexport type PopoverRootEmits = {\n /**\n * Event handler called when the open state of the popover changes.\n */\n 'update:open': [value: boolean]\n}\n\nexport interface PopoverRootContext {\n triggerElement: Ref<HTMLElement | undefined>\n triggerId: string\n contentId: string\n open: Ref<boolean>\n modal: Ref<boolean>\n onOpenChange: (value: boolean) => void\n onOpenToggle: () => void\n hasCustomAnchor: Ref<boolean>\n}\n\nexport const [injectPopoverRootContext, providePopoverRootContext]\n = createContext<PopoverRootContext>('PopoverRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { ref, toRefs } from 'vue'\nimport { PopperRoot } from '@/Popper'\n\nconst props = withDefaults(defineProps<PopoverRootProps>(), {\n defaultOpen: false,\n open: undefined,\n modal: false,\n})\nconst emit = defineEmits<PopoverRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nconst { modal } = toRefs(props)\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nconst triggerElement = ref<HTMLElement>()\nconst hasCustomAnchor = ref(false)\n\nprovidePopoverRootContext({\n contentId: '',\n triggerId: '',\n modal,\n open,\n onOpenChange: (value) => {\n open.value = value\n },\n onOpenToggle: () => {\n open.value = !open.value\n },\n triggerElement,\n hasCustomAnchor,\n})\n</script>\n\n<template>\n <PopperRoot>\n <slot :open=\"open\" />\n </PopperRoot>\n</template>\n"],"names":["createContext","toRefs","useVModel","ref"],"mappings":";;;;;;;AAsCO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7DA,mCAAkC,aAAa;;;;;;;;;;AAQnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAA,MAAM,EAAE,KAAA,EAAU,GAAAC,UAAA,CAAO,KAAK,CAAA;AAE9B,IAAA,MAAM,IAAO,GAAAC,cAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,IAAM,EAAA;AAAA,MAC1C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;AAED,IAAA,MAAM,iBAAiBC,OAAiB,EAAA;AACxC,IAAM,MAAA,eAAA,GAAkBA,QAAI,KAAK,CAAA;AAEjC,IAA0B,yBAAA,CAAA;AAAA,MACxB,SAAW,EAAA,EAAA;AAAA,MACX,SAAW,EAAA,EAAA;AAAA,MACX,KAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA,EAAc,CAAC,KAAU,KAAA;AACvB,QAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,OACf;AAAA,MACA,cAAc,MAAM;AAClB,QAAK,IAAA,CAAA,KAAA,GAAQ,CAAC,IAAK,CAAA,KAAA;AAAA,OACrB;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, toRefs, ref, createBlock, openBlock, unref, withCtx, renderSlot } from 'vue';
|
|
2
|
-
import { _ as _sfc_main$1 } from '../Popper/PopperRoot.js';
|
|
3
2
|
import { useVModel } from '@vueuse/core';
|
|
3
|
+
import { _ as _sfc_main$1 } from '../Popper/PopperRoot.js';
|
|
4
4
|
import { c as createContext } from '../shared/createContext.js';
|
|
5
5
|
|
|
6
6
|
const [injectPopoverRootContext, providePopoverRootContext] = createContext("PopoverRoot");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverRoot.js","sources":["../../src/Popover/PopoverRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\n\nexport interface PopoverRootProps {\n /**\n * The open state of the popover when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * The controlled open state of the popover.\n */\n open?: boolean\n /**\n * The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.\n *\n * @defaultValue false\n */\n modal?: boolean\n}\nexport type PopoverRootEmits = {\n /**\n * Event handler called when the open state of the popover changes.\n */\n 'update:open': [value: boolean]\n}\n\nexport interface PopoverRootContext {\n triggerElement: Ref<HTMLElement | undefined>\n triggerId: string\n contentId: string\n open: Ref<boolean>\n modal: Ref<boolean>\n onOpenChange: (value: boolean) => void\n onOpenToggle: () => void\n hasCustomAnchor: Ref<boolean>\n}\n\nexport const [injectPopoverRootContext, providePopoverRootContext]\n = createContext<PopoverRootContext>('PopoverRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"PopoverRoot.js","sources":["../../src/Popover/PopoverRoot.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Ref } from 'vue'\nimport { createContext } from '@/shared'\n\nexport interface PopoverRootProps {\n /**\n * The open state of the popover when it is initially rendered. Use when you do not need to control its open state.\n */\n defaultOpen?: boolean\n /**\n * The controlled open state of the popover.\n */\n open?: boolean\n /**\n * The modality of the popover. When set to true, interaction with outside elements will be disabled and only popover content will be visible to screen readers.\n *\n * @defaultValue false\n */\n modal?: boolean\n}\nexport type PopoverRootEmits = {\n /**\n * Event handler called when the open state of the popover changes.\n */\n 'update:open': [value: boolean]\n}\n\nexport interface PopoverRootContext {\n triggerElement: Ref<HTMLElement | undefined>\n triggerId: string\n contentId: string\n open: Ref<boolean>\n modal: Ref<boolean>\n onOpenChange: (value: boolean) => void\n onOpenToggle: () => void\n hasCustomAnchor: Ref<boolean>\n}\n\nexport const [injectPopoverRootContext, providePopoverRootContext]\n = createContext<PopoverRootContext>('PopoverRoot')\n</script>\n\n<script setup lang=\"ts\">\nimport { useVModel } from '@vueuse/core'\nimport { ref, toRefs } from 'vue'\nimport { PopperRoot } from '@/Popper'\n\nconst props = withDefaults(defineProps<PopoverRootProps>(), {\n defaultOpen: false,\n open: undefined,\n modal: false,\n})\nconst emit = defineEmits<PopoverRootEmits>()\n\ndefineSlots<{\n default?: (props: {\n /** Current open state */\n open: typeof open.value\n }) => any\n}>()\n\nconst { modal } = toRefs(props)\n\nconst open = useVModel(props, 'open', emit, {\n defaultValue: props.defaultOpen,\n passive: (props.open === undefined) as false,\n}) as Ref<boolean>\n\nconst triggerElement = ref<HTMLElement>()\nconst hasCustomAnchor = ref(false)\n\nprovidePopoverRootContext({\n contentId: '',\n triggerId: '',\n modal,\n open,\n onOpenChange: (value) => {\n open.value = value\n },\n onOpenToggle: () => {\n open.value = !open.value\n },\n triggerElement,\n hasCustomAnchor,\n})\n</script>\n\n<template>\n <PopperRoot>\n <slot :open=\"open\" />\n </PopperRoot>\n</template>\n"],"names":[],"mappings":";;;;;AAsCO,MAAM,CAAC,wBAAA,EAA0B,yBAAyB,CAAA,GAC7D,cAAkC,aAAa;;;;;;;;;;AAQnD,IAAA,MAAM,KAAQ,GAAA,OAAA;AAKd,IAAA,MAAM,IAAO,GAAA,MAAA;AASb,IAAA,MAAM,EAAE,KAAA,EAAU,GAAA,MAAA,CAAO,KAAK,CAAA;AAE9B,IAAA,MAAM,IAAO,GAAA,SAAA,CAAU,KAAO,EAAA,MAAA,EAAQ,IAAM,EAAA;AAAA,MAC1C,cAAc,KAAM,CAAA,WAAA;AAAA,MACpB,OAAA,EAAU,MAAM,IAAS,KAAA;AAAA,KAC1B,CAAA;AAED,IAAA,MAAM,iBAAiB,GAAiB,EAAA;AACxC,IAAM,MAAA,eAAA,GAAkB,IAAI,KAAK,CAAA;AAEjC,IAA0B,yBAAA,CAAA;AAAA,MACxB,SAAW,EAAA,EAAA;AAAA,MACX,SAAW,EAAA,EAAA;AAAA,MACX,KAAA;AAAA,MACA,IAAA;AAAA,MACA,YAAA,EAAc,CAAC,KAAU,KAAA;AACvB,QAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AAAA,OACf;AAAA,MACA,cAAc,MAAM;AAClB,QAAK,IAAA,CAAA,KAAA,GAAQ,CAAC,IAAK,CAAA,KAAA;AAAA,OACrB;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACD,CAAA;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverTrigger.cjs","sources":["../../src/Popover/PopoverTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose, useId } from '@/shared'\n\nexport interface PopoverTriggerProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"PopoverTrigger.cjs","sources":["../../src/Popover/PopoverTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose, useId } from '@/shared'\n\nexport interface PopoverTriggerProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted } from 'vue'\nimport { PopperAnchor } from '@/Popper'\nimport { Primitive } from '@/Primitive'\nimport { injectPopoverRootContext } from './PopoverRoot.vue'\n\nconst props = withDefaults(defineProps<PopoverTriggerProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectPopoverRootContext()\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\n\nrootContext.triggerId ||= useId(undefined, 'reka-popover-trigger')\nonMounted(() => {\n rootContext.triggerElement.value = triggerElement.value\n})\n</script>\n\n<template>\n <component\n :is=\"rootContext.hasCustomAnchor.value ? Primitive : PopperAnchor\"\n as-child\n >\n <Primitive\n :id=\"rootContext.triggerId\"\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined\"\n aria-haspopup=\"dialog\"\n :aria-expanded=\"rootContext.open.value\"\n :aria-controls=\"rootContext.contentId\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :as=\"as\"\n :as-child=\"props.asChild\"\n @click=\"rootContext.onOpenToggle\"\n >\n <slot />\n </Primitive>\n </component>\n</template>\n"],"names":["injectPopoverRootContext","useForwardExpose","useId","onMounted"],"mappings":";;;;;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,4CAAyB,EAAA;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmBC,wCAAiB,EAAA;AAExE,IAAY,WAAA,CAAA,SAAA,KAAcC,kBAAM,CAAA,MAAA,EAAW,sBAAsB,CAAA;AACjE,IAAAC,aAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,cAAA,CAAe,QAAQ,cAAe,CAAA,KAAA;AAAA,KACnD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopoverTrigger.js","sources":["../../src/Popover/PopoverTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose, useId } from '@/shared'\n\nexport interface PopoverTriggerProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"PopoverTrigger.js","sources":["../../src/Popover/PopoverTrigger.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose, useId } from '@/shared'\n\nexport interface PopoverTriggerProps extends PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { onMounted } from 'vue'\nimport { PopperAnchor } from '@/Popper'\nimport { Primitive } from '@/Primitive'\nimport { injectPopoverRootContext } from './PopoverRoot.vue'\n\nconst props = withDefaults(defineProps<PopoverTriggerProps>(), {\n as: 'button',\n})\n\nconst rootContext = injectPopoverRootContext()\n\nconst { forwardRef, currentElement: triggerElement } = useForwardExpose()\n\nrootContext.triggerId ||= useId(undefined, 'reka-popover-trigger')\nonMounted(() => {\n rootContext.triggerElement.value = triggerElement.value\n})\n</script>\n\n<template>\n <component\n :is=\"rootContext.hasCustomAnchor.value ? Primitive : PopperAnchor\"\n as-child\n >\n <Primitive\n :id=\"rootContext.triggerId\"\n :ref=\"forwardRef\"\n :type=\"as === 'button' ? 'button' : undefined\"\n aria-haspopup=\"dialog\"\n :aria-expanded=\"rootContext.open.value\"\n :aria-controls=\"rootContext.contentId\"\n :data-state=\"rootContext.open.value ? 'open' : 'closed'\"\n :as=\"as\"\n :as-child=\"props.asChild\"\n @click=\"rootContext.onOpenToggle\"\n >\n <slot />\n </Primitive>\n </component>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAaA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAc,wBAAyB,EAAA;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,cAAgB,EAAA,cAAA,KAAmB,gBAAiB,EAAA;AAExE,IAAY,WAAA,CAAA,SAAA,KAAc,KAAM,CAAA,MAAA,EAAW,sBAAsB,CAAA;AACjE,IAAA,SAAA,CAAU,MAAM;AACd,MAAY,WAAA,CAAA,cAAA,CAAe,QAAQ,cAAe,CAAA,KAAA;AAAA,KACnD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopperAnchor.cjs","sources":["../../src/Popper/PopperAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"PopperAnchor.cjs","sources":["../../src/Popper/PopperAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ReferenceElement } from '@floating-ui/vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface PopperAnchorProps extends PrimitiveProps {\n /**\n * The reference (or anchor) element that is being referred to for positioning.\n *\n * If not provided will use the current component as anchor.\n */\n reference?: ReferenceElement\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { watchPostEffect } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectPopperRootContext } from './PopperRoot.vue'\n\nconst props = defineProps<PopperAnchorProps>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst rootContext = injectPopperRootContext()\n\nwatchPostEffect(() => {\n rootContext.onAnchorChange(props.reference ?? currentElement.value)\n})\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":["useForwardExpose","injectPopperRootContext","watchPostEffect"],"mappings":";;;;;;;;;;;;;;;AAsBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAIA,wCAAiB,EAAA;AAExD,IAAA,MAAM,cAAcC,yCAAwB,EAAA;AAE5C,IAAAC,mBAAA,CAAgB,MAAM;AACpB,MAAA,WAAA,CAAY,cAAe,CAAA,KAAA,CAAM,SAAa,IAAA,cAAA,CAAe,KAAK,CAAA;AAAA,KACnE,CAAA;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopperAnchor.js","sources":["../../src/Popper/PopperAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"PopperAnchor.js","sources":["../../src/Popper/PopperAnchor.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ReferenceElement } from '@floating-ui/vue'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { useForwardExpose } from '@/shared'\n\nexport interface PopperAnchorProps extends PrimitiveProps {\n /**\n * The reference (or anchor) element that is being referred to for positioning.\n *\n * If not provided will use the current component as anchor.\n */\n reference?: ReferenceElement\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { watchPostEffect } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectPopperRootContext } from './PopperRoot.vue'\n\nconst props = defineProps<PopperAnchorProps>()\n\nconst { forwardRef, currentElement } = useForwardExpose()\n\nconst rootContext = injectPopperRootContext()\n\nwatchPostEffect(() => {\n rootContext.onAnchorChange(props.reference ?? currentElement.value)\n})\n</script>\n\n<template>\n <Primitive\n :ref=\"forwardRef\"\n :as=\"as\"\n :as-child=\"asChild\"\n >\n <slot />\n </Primitive>\n</template>\n"],"names":[],"mappings":";;;;;;;;;;;;;AAsBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAEd,IAAA,MAAM,EAAE,UAAA,EAAY,cAAe,EAAA,GAAI,gBAAiB,EAAA;AAExD,IAAA,MAAM,cAAc,uBAAwB,EAAA;AAE5C,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,WAAA,CAAY,cAAe,CAAA,KAAA,CAAM,SAAa,IAAA,cAAA,CAAe,KAAK,CAAA;AAAA,KACnE,CAAA;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopperArrow.cjs","sources":["../../src/Popper/PopperArrow.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"PopperArrow.cjs","sources":["../../src/Popper/PopperArrow.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Side } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { ArrowProps } from '@/shared/component/Arrow.vue'\n\nconst OPPOSITE_SIDE: Record<Side, Side> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n\nexport interface PopperArrowProps extends ArrowProps, PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { useForwardExpose } from '@/shared'\nimport Arrow from '@/shared/component/Arrow.vue'\nimport { injectPopperContentContext } from './PopperContent.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nwithDefaults(\n defineProps<PopperArrowProps>(),\n { as: 'svg' },\n)\n\nconst { forwardRef } = useForwardExpose()\nconst contentContext = injectPopperContentContext()\n\nconst baseSide = computed(() => OPPOSITE_SIDE[contentContext.placedSide.value])\n</script>\n\n<template>\n <span\n :ref=\"(el: HTMLElement) => {\n contentContext.onArrowChange(el)\n return undefined\n }\"\n :style=\"{\n position: 'absolute',\n left: contentContext.arrowX?.value ? `${contentContext.arrowX?.value}px` : undefined,\n top: contentContext.arrowY?.value ? `${contentContext.arrowY?.value}px` : undefined,\n [baseSide]: 0,\n transformOrigin: {\n top: '',\n right: '0 0',\n bottom: 'center 0',\n left: '100% 0',\n }[contentContext.placedSide.value],\n transform: {\n top: 'translateY(100%)',\n right: 'translateY(50%) rotate(90deg) translateX(-50%)',\n bottom: `rotate(180deg)`,\n left: 'translateY(50%) rotate(-90deg) translateX(50%)',\n }[contentContext.placedSide.value],\n visibility: contentContext.shouldHideArrow.value ? 'hidden' : undefined,\n }\"\n >\n <Arrow\n v-bind=\"$attrs\"\n :ref=\"forwardRef\"\n :style=\"{\n display: 'block',\n }\"\n :as=\"as\"\n :as-child=\"asChild\"\n :rounded=\"rounded\"\n :width=\"width\"\n :height=\"height\"\n >\n <slot />\n </Arrow>\n </span>\n</template>\n"],"names":["useForwardExpose","injectPopperContentContext","computed"],"mappings":";;;;;;;AAKA,MAAM,aAAoC,GAAA;AAAA,EACxC,GAAK,EAAA,QAAA;AAAA,EACL,KAAO,EAAA,MAAA;AAAA,EACP,MAAQ,EAAA,KAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAA;;;;;;;;;;;;;;AAoBA,IAAM,MAAA,EAAE,UAAW,EAAA,GAAIA,wCAAiB,EAAA;AACxC,IAAA,MAAM,iBAAiBC,+CAA2B,EAAA;AAElD,IAAA,MAAM,WAAWC,YAAS,CAAA,MAAM,cAAc,cAAe,CAAA,UAAA,CAAW,KAAK,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopperArrow.js","sources":["../../src/Popper/PopperArrow.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {
|
|
1
|
+
{"version":3,"file":"PopperArrow.js","sources":["../../src/Popper/PopperArrow.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Side } from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport type { ArrowProps } from '@/shared/component/Arrow.vue'\n\nconst OPPOSITE_SIDE: Record<Side, Side> = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n}\n\nexport interface PopperArrowProps extends ArrowProps, PrimitiveProps {}\n</script>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { useForwardExpose } from '@/shared'\nimport Arrow from '@/shared/component/Arrow.vue'\nimport { injectPopperContentContext } from './PopperContent.vue'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nwithDefaults(\n defineProps<PopperArrowProps>(),\n { as: 'svg' },\n)\n\nconst { forwardRef } = useForwardExpose()\nconst contentContext = injectPopperContentContext()\n\nconst baseSide = computed(() => OPPOSITE_SIDE[contentContext.placedSide.value])\n</script>\n\n<template>\n <span\n :ref=\"(el: HTMLElement) => {\n contentContext.onArrowChange(el)\n return undefined\n }\"\n :style=\"{\n position: 'absolute',\n left: contentContext.arrowX?.value ? `${contentContext.arrowX?.value}px` : undefined,\n top: contentContext.arrowY?.value ? `${contentContext.arrowY?.value}px` : undefined,\n [baseSide]: 0,\n transformOrigin: {\n top: '',\n right: '0 0',\n bottom: 'center 0',\n left: '100% 0',\n }[contentContext.placedSide.value],\n transform: {\n top: 'translateY(100%)',\n right: 'translateY(50%) rotate(90deg) translateX(-50%)',\n bottom: `rotate(180deg)`,\n left: 'translateY(50%) rotate(-90deg) translateX(50%)',\n }[contentContext.placedSide.value],\n visibility: contentContext.shouldHideArrow.value ? 'hidden' : undefined,\n }\"\n >\n <Arrow\n v-bind=\"$attrs\"\n :ref=\"forwardRef\"\n :style=\"{\n display: 'block',\n }\"\n :as=\"as\"\n :as-child=\"asChild\"\n :rounded=\"rounded\"\n :width=\"width\"\n :height=\"height\"\n >\n <slot />\n </Arrow>\n </span>\n</template>\n"],"names":[],"mappings":";;;;;AAKA,MAAM,aAAoC,GAAA;AAAA,EACxC,GAAK,EAAA,QAAA;AAAA,EACL,KAAO,EAAA,MAAA;AAAA,EACP,MAAQ,EAAA,KAAA;AAAA,EACR,IAAM,EAAA;AACR,CAAA;;;;;;;;;;;;;;AAoBA,IAAM,MAAA,EAAE,UAAW,EAAA,GAAI,gBAAiB,EAAA;AACxC,IAAA,MAAM,iBAAiB,0BAA2B,EAAA;AAElD,IAAA,MAAM,WAAW,QAAS,CAAA,MAAM,cAAc,cAAe,CAAA,UAAA,CAAW,KAAK,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopperContent.cjs","sources":["../../src/Popper/PopperContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type {\n Middleware,\n Placement,\n ReferenceElement,\n} from '@floating-ui/vue'\nimport type { Ref } from 'vue'\nimport type {\n Align,\n Side,\n} from './utils'\nimport { createContext, useForwardExpose, useSize } from '@/shared'\n\nexport const PopperContentPropsDefaultValue = {\n side: 'bottom' as Side,\n sideOffset: 0,\n align: 'center' as Align,\n alignOffset: 0,\n arrowPadding: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial' as 'partial' | 'always',\n hideWhenDetached: false,\n positionStrategy: 'fixed' as 'absolute' | 'fixed',\n updatePositionStrategy: 'optimized' as 'optimized' | 'always',\n prioritizePosition: false,\n}\n\nexport interface PopperContentProps extends PrimitiveProps {\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions\n * is enabled.\n *\n * @defaultValue \"top\"\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger.\n *\n * @defaultValue 0\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger.\n * May change when collisions occur.\n *\n * @defaultValue \"center\"\n */\n align?: Align\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n *\n * @defaultValue 0\n */\n alignOffset?: number\n\n /**\n * When `true`, overrides the side and align preferences\n * to prevent collisions with boundary edges.\n *\n * @defaultValue true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default\n * this is the viewport, though you can provide additional\n * element(s) to be included in this check.\n *\n * @defaultValue []\n */\n collisionBoundary?: Element | null | Array<Element | null>\n\n /**\n * The distance in pixels from the boundary edges where collision\n * detection should occur. Accepts a number (same for all sides),\n * or a partial padding object, for example: { top: 20, left: 20 }.\n *\n * @defaultValue 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The padding between the arrow and the edges of the content.\n * If your content has border-radius, this will prevent it from\n * overflowing the corners.\n *\n * @defaultValue 0\n */\n arrowPadding?: number\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n *\n * @defaultValue \"partial\"\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n *\n * @defaultValue false\n */\n hideWhenDetached?: boolean\n\n /**\n * The type of CSS position property to use.\n */\n positionStrategy?: 'absolute' | 'fixed'\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n *\n * @defaultValue 'optimized'\n */\n updatePositionStrategy?: 'optimized' | 'always'\n\n /**\n * Whether to disable the update position for the content when the layout shifted.\n *\n * @defaultValue false\n */\n disableUpdateOnLayoutShift?: boolean\n\n /**\n * Force content to be position within the viewport.\n *\n * Might overlap the reference element, which may not be desired.\n *\n * @defaultValue false\n */\n prioritizePosition?: boolean\n\n /**\n * The custom element or virtual element that will be set as the reference\n * to position the floating element.\n *\n * If provided, it will replace the default anchor element.\n */\n reference?: ReferenceElement\n}\n\nexport interface PopperContentContext {\n placedSide: Ref<Side>\n onArrowChange: (arrow: HTMLElement | undefined) => void\n arrowX?: Ref<number>\n arrowY?: Ref<number>\n shouldHideArrow: Ref<boolean>\n}\n\nexport const [injectPopperContentContext, providePopperContentContext]\n = createContext<PopperContentContext>('PopperContent')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n Primitive,\n} from '@/Primitive'\nimport {\n autoUpdate,\n flip,\n arrow as floatingUIarrow,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/vue'\nimport { computedEager } from '@vueuse/core'\nimport { computed, ref, watchEffect, watchPostEffect } from 'vue'\nimport { injectPopperRootContext } from './PopperRoot.vue'\nimport {\n getSideAndAlignFromPlacement,\n isNotNull,\n transformOrigin,\n} from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<PopperContentProps>(), {\n ...PopperContentPropsDefaultValue,\n})\nconst emits = defineEmits<{\n placed: [void]\n}>()\n\nconst rootContext = injectPopperRootContext()\nconst { forwardRef, currentElement: contentElement } = useForwardExpose()\n\nconst floatingRef = ref<HTMLElement>()\n\nconst arrow = ref<HTMLElement>()\nconst { width: arrowWidth, height: arrowHeight } = useSize(arrow)\n\nconst desiredPlacement = computed(\n () =>\n (props.side\n + (props.align !== 'center' ? `-${props.align}` : '')) as Placement,\n)\n\nconst collisionPadding = computed(() => {\n return typeof props.collisionPadding === 'number'\n ? props.collisionPadding\n : { top: 0, right: 0, bottom: 0, left: 0, ...props.collisionPadding }\n})\n\nconst boundary = computed(() => {\n return Array.isArray(props.collisionBoundary)\n ? props.collisionBoundary\n : [props.collisionBoundary]\n})\n\nconst detectOverflowOptions = computed(() => {\n return {\n padding: collisionPadding.value,\n boundary: boundary.value.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: boundary.value.length > 0,\n }\n})\n\nconst computedMiddleware = computedEager(() => {\n return [\n offset({\n mainAxis: props.sideOffset + arrowHeight.value,\n alignmentAxis: props.alignOffset,\n }),\n props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n props.avoidCollisions\n && shift({\n mainAxis: true,\n crossAxis: !!props.prioritizePosition,\n limiter: props.sticky === 'partial' ? limitShift() : undefined,\n ...detectOverflowOptions.value,\n }),\n !props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n size({\n ...detectOverflowOptions.value,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference\n const contentStyle = elements.floating.style\n contentStyle.setProperty(\n '--reka-popper-available-width',\n `${availableWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-available-height',\n `${availableHeight}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-width',\n `${anchorWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-height',\n `${anchorHeight}px`,\n )\n },\n }),\n arrow.value\n && floatingUIarrow({ element: arrow.value, padding: props.arrowPadding }),\n transformOrigin({\n arrowWidth: arrowWidth.value,\n arrowHeight: arrowHeight.value,\n }),\n props.hideWhenDetached\n && hide({ strategy: 'referenceHidden', ...detectOverflowOptions.value }),\n ] as Middleware[]\n})\n\n// If provided custom reference, it will overwrite the default anchor element\nconst reference = computed(() => props.reference ?? rootContext.anchor.value)\n\nconst { floatingStyles, placement, isPositioned, middlewareData, update } = useFloating(\n reference,\n floatingRef,\n {\n strategy: props.positionStrategy,\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n layoutShift: !props.disableUpdateOnLayoutShift,\n animationFrame: props.updatePositionStrategy === 'always',\n })\n return cleanup\n },\n middleware: computedMiddleware,\n },\n)\n\nconst placedSide = computed(\n () => getSideAndAlignFromPlacement(placement.value)[0],\n)\nconst placedAlign = computed(\n () => getSideAndAlignFromPlacement(placement.value)[1],\n)\n\nwatchPostEffect(() => {\n if (isPositioned.value)\n emits('placed')\n})\n\nconst cannotCenterArrow = computed(\n () => middlewareData.value.arrow?.centerOffset !== 0,\n)\n\nconst contentZIndex = ref('')\nwatchEffect(() => {\n if (contentElement.value)\n contentZIndex.value = window.getComputedStyle(contentElement.value).zIndex\n})\n\nconst arrowX = computed(() => middlewareData.value.arrow?.x ?? 0)\nconst arrowY = computed(() => middlewareData.value.arrow?.y ?? 0)\n\nprovidePopperContentContext({\n placedSide,\n onArrowChange: element => arrow.value = element,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n})\n</script>\n\n<template>\n <div\n ref=\"floatingRef\"\n data-reka-popper-content-wrapper=\"\"\n :style=\"{\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: contentZIndex,\n ['--reka-popper-transform-origin' as any]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y,\n ].join(' '),\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none',\n }),\n }\"\n >\n <Primitive\n :ref=\"forwardRef\"\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-side=\"placedSide\"\n :data-align=\"placedAlign\"\n :style=\"{\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? 'none' : undefined,\n }\"\n >\n <slot />\n </Primitive>\n </div>\n</template>\n"],"names":["createContext","injectPopperRootContext","useForwardExpose","ref","useSize","computed","isNotNull","computedEager","offset","flip","shift","limitShift","size","floatingUIarrow","transformOrigin","hide","useFloating","autoUpdate","getSideAndAlignFromPlacement","watchPostEffect","watchEffect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PopperContent.cjs","sources":["../../src/Popper/PopperContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n Middleware,\n Placement,\n ReferenceElement,\n} from '@floating-ui/vue'\nimport type { Ref } from 'vue'\nimport type {\n Align,\n Side,\n} from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useForwardExpose, useSize } from '@/shared'\n\nexport const PopperContentPropsDefaultValue = {\n side: 'bottom' as Side,\n sideOffset: 0,\n align: 'center' as Align,\n alignOffset: 0,\n arrowPadding: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial' as 'partial' | 'always',\n hideWhenDetached: false,\n positionStrategy: 'fixed' as 'absolute' | 'fixed',\n updatePositionStrategy: 'optimized' as 'optimized' | 'always',\n prioritizePosition: false,\n}\n\nexport interface PopperContentProps extends PrimitiveProps {\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions\n * is enabled.\n *\n * @defaultValue \"top\"\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger.\n *\n * @defaultValue 0\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger.\n * May change when collisions occur.\n *\n * @defaultValue \"center\"\n */\n align?: Align\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n *\n * @defaultValue 0\n */\n alignOffset?: number\n\n /**\n * When `true`, overrides the side and align preferences\n * to prevent collisions with boundary edges.\n *\n * @defaultValue true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default\n * this is the viewport, though you can provide additional\n * element(s) to be included in this check.\n *\n * @defaultValue []\n */\n collisionBoundary?: Element | null | Array<Element | null>\n\n /**\n * The distance in pixels from the boundary edges where collision\n * detection should occur. Accepts a number (same for all sides),\n * or a partial padding object, for example: { top: 20, left: 20 }.\n *\n * @defaultValue 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The padding between the arrow and the edges of the content.\n * If your content has border-radius, this will prevent it from\n * overflowing the corners.\n *\n * @defaultValue 0\n */\n arrowPadding?: number\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n *\n * @defaultValue \"partial\"\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n *\n * @defaultValue false\n */\n hideWhenDetached?: boolean\n\n /**\n * The type of CSS position property to use.\n */\n positionStrategy?: 'absolute' | 'fixed'\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n *\n * @defaultValue 'optimized'\n */\n updatePositionStrategy?: 'optimized' | 'always'\n\n /**\n * Whether to disable the update position for the content when the layout shifted.\n *\n * @defaultValue false\n */\n disableUpdateOnLayoutShift?: boolean\n\n /**\n * Force content to be position within the viewport.\n *\n * Might overlap the reference element, which may not be desired.\n *\n * @defaultValue false\n */\n prioritizePosition?: boolean\n\n /**\n * The custom element or virtual element that will be set as the reference\n * to position the floating element.\n *\n * If provided, it will replace the default anchor element.\n */\n reference?: ReferenceElement\n}\n\nexport interface PopperContentContext {\n placedSide: Ref<Side>\n onArrowChange: (arrow: HTMLElement | undefined) => void\n arrowX?: Ref<number>\n arrowY?: Ref<number>\n shouldHideArrow: Ref<boolean>\n}\n\nexport const [injectPopperContentContext, providePopperContentContext]\n = createContext<PopperContentContext>('PopperContent')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n autoUpdate,\n flip,\n arrow as floatingUIarrow,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/vue'\nimport { computedEager } from '@vueuse/core'\nimport { computed, ref, watchEffect, watchPostEffect } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectPopperRootContext } from './PopperRoot.vue'\nimport {\n getSideAndAlignFromPlacement,\n isNotNull,\n transformOrigin,\n} from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<PopperContentProps>(), {\n ...PopperContentPropsDefaultValue,\n})\nconst emits = defineEmits<{\n placed: [void]\n}>()\n\nconst rootContext = injectPopperRootContext()\nconst { forwardRef, currentElement: contentElement } = useForwardExpose()\n\nconst floatingRef = ref<HTMLElement>()\n\nconst arrow = ref<HTMLElement>()\nconst { width: arrowWidth, height: arrowHeight } = useSize(arrow)\n\nconst desiredPlacement = computed(\n () =>\n (props.side\n + (props.align !== 'center' ? `-${props.align}` : '')) as Placement,\n)\n\nconst collisionPadding = computed(() => {\n return typeof props.collisionPadding === 'number'\n ? props.collisionPadding\n : { top: 0, right: 0, bottom: 0, left: 0, ...props.collisionPadding }\n})\n\nconst boundary = computed(() => {\n return Array.isArray(props.collisionBoundary)\n ? props.collisionBoundary\n : [props.collisionBoundary]\n})\n\nconst detectOverflowOptions = computed(() => {\n return {\n padding: collisionPadding.value,\n boundary: boundary.value.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: boundary.value.length > 0,\n }\n})\n\nconst computedMiddleware = computedEager(() => {\n return [\n offset({\n mainAxis: props.sideOffset + arrowHeight.value,\n alignmentAxis: props.alignOffset,\n }),\n props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n props.avoidCollisions\n && shift({\n mainAxis: true,\n crossAxis: !!props.prioritizePosition,\n limiter: props.sticky === 'partial' ? limitShift() : undefined,\n ...detectOverflowOptions.value,\n }),\n !props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n size({\n ...detectOverflowOptions.value,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference\n const contentStyle = elements.floating.style\n contentStyle.setProperty(\n '--reka-popper-available-width',\n `${availableWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-available-height',\n `${availableHeight}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-width',\n `${anchorWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-height',\n `${anchorHeight}px`,\n )\n },\n }),\n arrow.value\n && floatingUIarrow({ element: arrow.value, padding: props.arrowPadding }),\n transformOrigin({\n arrowWidth: arrowWidth.value,\n arrowHeight: arrowHeight.value,\n }),\n props.hideWhenDetached\n && hide({ strategy: 'referenceHidden', ...detectOverflowOptions.value }),\n ] as Middleware[]\n})\n\n// If provided custom reference, it will overwrite the default anchor element\nconst reference = computed(() => props.reference ?? rootContext.anchor.value)\n\nconst { floatingStyles, placement, isPositioned, middlewareData, update } = useFloating(\n reference,\n floatingRef,\n {\n strategy: props.positionStrategy,\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n layoutShift: !props.disableUpdateOnLayoutShift,\n animationFrame: props.updatePositionStrategy === 'always',\n })\n return cleanup\n },\n middleware: computedMiddleware,\n },\n)\n\nconst placedSide = computed(\n () => getSideAndAlignFromPlacement(placement.value)[0],\n)\nconst placedAlign = computed(\n () => getSideAndAlignFromPlacement(placement.value)[1],\n)\n\nwatchPostEffect(() => {\n if (isPositioned.value)\n emits('placed')\n})\n\nconst cannotCenterArrow = computed(\n () => middlewareData.value.arrow?.centerOffset !== 0,\n)\n\nconst contentZIndex = ref('')\nwatchEffect(() => {\n if (contentElement.value)\n contentZIndex.value = window.getComputedStyle(contentElement.value).zIndex\n})\n\nconst arrowX = computed(() => middlewareData.value.arrow?.x ?? 0)\nconst arrowY = computed(() => middlewareData.value.arrow?.y ?? 0)\n\nprovidePopperContentContext({\n placedSide,\n onArrowChange: element => arrow.value = element,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n})\n</script>\n\n<template>\n <div\n ref=\"floatingRef\"\n data-reka-popper-content-wrapper=\"\"\n :style=\"{\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: contentZIndex,\n ['--reka-popper-transform-origin' as any]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y,\n ].join(' '),\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none',\n }),\n }\"\n >\n <Primitive\n :ref=\"forwardRef\"\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-side=\"placedSide\"\n :data-align=\"placedAlign\"\n :style=\"{\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? 'none' : undefined,\n }\"\n >\n <slot />\n </Primitive>\n </div>\n</template>\n"],"names":["createContext","injectPopperRootContext","useForwardExpose","ref","useSize","computed","isNotNull","computedEager","offset","flip","shift","limitShift","size","floatingUIarrow","transformOrigin","hide","useFloating","autoUpdate","getSideAndAlignFromPlacement","watchPostEffect","watchEffect"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopperContent.js","sources":["../../src/Popper/PopperContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport type {\n Middleware,\n Placement,\n ReferenceElement,\n} from '@floating-ui/vue'\nimport type { Ref } from 'vue'\nimport type {\n Align,\n Side,\n} from './utils'\nimport { createContext, useForwardExpose, useSize } from '@/shared'\n\nexport const PopperContentPropsDefaultValue = {\n side: 'bottom' as Side,\n sideOffset: 0,\n align: 'center' as Align,\n alignOffset: 0,\n arrowPadding: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial' as 'partial' | 'always',\n hideWhenDetached: false,\n positionStrategy: 'fixed' as 'absolute' | 'fixed',\n updatePositionStrategy: 'optimized' as 'optimized' | 'always',\n prioritizePosition: false,\n}\n\nexport interface PopperContentProps extends PrimitiveProps {\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions\n * is enabled.\n *\n * @defaultValue \"top\"\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger.\n *\n * @defaultValue 0\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger.\n * May change when collisions occur.\n *\n * @defaultValue \"center\"\n */\n align?: Align\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n *\n * @defaultValue 0\n */\n alignOffset?: number\n\n /**\n * When `true`, overrides the side and align preferences\n * to prevent collisions with boundary edges.\n *\n * @defaultValue true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default\n * this is the viewport, though you can provide additional\n * element(s) to be included in this check.\n *\n * @defaultValue []\n */\n collisionBoundary?: Element | null | Array<Element | null>\n\n /**\n * The distance in pixels from the boundary edges where collision\n * detection should occur. Accepts a number (same for all sides),\n * or a partial padding object, for example: { top: 20, left: 20 }.\n *\n * @defaultValue 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The padding between the arrow and the edges of the content.\n * If your content has border-radius, this will prevent it from\n * overflowing the corners.\n *\n * @defaultValue 0\n */\n arrowPadding?: number\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n *\n * @defaultValue \"partial\"\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n *\n * @defaultValue false\n */\n hideWhenDetached?: boolean\n\n /**\n * The type of CSS position property to use.\n */\n positionStrategy?: 'absolute' | 'fixed'\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n *\n * @defaultValue 'optimized'\n */\n updatePositionStrategy?: 'optimized' | 'always'\n\n /**\n * Whether to disable the update position for the content when the layout shifted.\n *\n * @defaultValue false\n */\n disableUpdateOnLayoutShift?: boolean\n\n /**\n * Force content to be position within the viewport.\n *\n * Might overlap the reference element, which may not be desired.\n *\n * @defaultValue false\n */\n prioritizePosition?: boolean\n\n /**\n * The custom element or virtual element that will be set as the reference\n * to position the floating element.\n *\n * If provided, it will replace the default anchor element.\n */\n reference?: ReferenceElement\n}\n\nexport interface PopperContentContext {\n placedSide: Ref<Side>\n onArrowChange: (arrow: HTMLElement | undefined) => void\n arrowX?: Ref<number>\n arrowY?: Ref<number>\n shouldHideArrow: Ref<boolean>\n}\n\nexport const [injectPopperContentContext, providePopperContentContext]\n = createContext<PopperContentContext>('PopperContent')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n Primitive,\n} from '@/Primitive'\nimport {\n autoUpdate,\n flip,\n arrow as floatingUIarrow,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/vue'\nimport { computedEager } from '@vueuse/core'\nimport { computed, ref, watchEffect, watchPostEffect } from 'vue'\nimport { injectPopperRootContext } from './PopperRoot.vue'\nimport {\n getSideAndAlignFromPlacement,\n isNotNull,\n transformOrigin,\n} from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<PopperContentProps>(), {\n ...PopperContentPropsDefaultValue,\n})\nconst emits = defineEmits<{\n placed: [void]\n}>()\n\nconst rootContext = injectPopperRootContext()\nconst { forwardRef, currentElement: contentElement } = useForwardExpose()\n\nconst floatingRef = ref<HTMLElement>()\n\nconst arrow = ref<HTMLElement>()\nconst { width: arrowWidth, height: arrowHeight } = useSize(arrow)\n\nconst desiredPlacement = computed(\n () =>\n (props.side\n + (props.align !== 'center' ? `-${props.align}` : '')) as Placement,\n)\n\nconst collisionPadding = computed(() => {\n return typeof props.collisionPadding === 'number'\n ? props.collisionPadding\n : { top: 0, right: 0, bottom: 0, left: 0, ...props.collisionPadding }\n})\n\nconst boundary = computed(() => {\n return Array.isArray(props.collisionBoundary)\n ? props.collisionBoundary\n : [props.collisionBoundary]\n})\n\nconst detectOverflowOptions = computed(() => {\n return {\n padding: collisionPadding.value,\n boundary: boundary.value.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: boundary.value.length > 0,\n }\n})\n\nconst computedMiddleware = computedEager(() => {\n return [\n offset({\n mainAxis: props.sideOffset + arrowHeight.value,\n alignmentAxis: props.alignOffset,\n }),\n props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n props.avoidCollisions\n && shift({\n mainAxis: true,\n crossAxis: !!props.prioritizePosition,\n limiter: props.sticky === 'partial' ? limitShift() : undefined,\n ...detectOverflowOptions.value,\n }),\n !props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n size({\n ...detectOverflowOptions.value,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference\n const contentStyle = elements.floating.style\n contentStyle.setProperty(\n '--reka-popper-available-width',\n `${availableWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-available-height',\n `${availableHeight}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-width',\n `${anchorWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-height',\n `${anchorHeight}px`,\n )\n },\n }),\n arrow.value\n && floatingUIarrow({ element: arrow.value, padding: props.arrowPadding }),\n transformOrigin({\n arrowWidth: arrowWidth.value,\n arrowHeight: arrowHeight.value,\n }),\n props.hideWhenDetached\n && hide({ strategy: 'referenceHidden', ...detectOverflowOptions.value }),\n ] as Middleware[]\n})\n\n// If provided custom reference, it will overwrite the default anchor element\nconst reference = computed(() => props.reference ?? rootContext.anchor.value)\n\nconst { floatingStyles, placement, isPositioned, middlewareData, update } = useFloating(\n reference,\n floatingRef,\n {\n strategy: props.positionStrategy,\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n layoutShift: !props.disableUpdateOnLayoutShift,\n animationFrame: props.updatePositionStrategy === 'always',\n })\n return cleanup\n },\n middleware: computedMiddleware,\n },\n)\n\nconst placedSide = computed(\n () => getSideAndAlignFromPlacement(placement.value)[0],\n)\nconst placedAlign = computed(\n () => getSideAndAlignFromPlacement(placement.value)[1],\n)\n\nwatchPostEffect(() => {\n if (isPositioned.value)\n emits('placed')\n})\n\nconst cannotCenterArrow = computed(\n () => middlewareData.value.arrow?.centerOffset !== 0,\n)\n\nconst contentZIndex = ref('')\nwatchEffect(() => {\n if (contentElement.value)\n contentZIndex.value = window.getComputedStyle(contentElement.value).zIndex\n})\n\nconst arrowX = computed(() => middlewareData.value.arrow?.x ?? 0)\nconst arrowY = computed(() => middlewareData.value.arrow?.y ?? 0)\n\nprovidePopperContentContext({\n placedSide,\n onArrowChange: element => arrow.value = element,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n})\n</script>\n\n<template>\n <div\n ref=\"floatingRef\"\n data-reka-popper-content-wrapper=\"\"\n :style=\"{\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: contentZIndex,\n ['--reka-popper-transform-origin' as any]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y,\n ].join(' '),\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none',\n }),\n }\"\n >\n <Primitive\n :ref=\"forwardRef\"\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-side=\"placedSide\"\n :data-align=\"placedAlign\"\n :style=\"{\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? 'none' : undefined,\n }\"\n >\n <slot />\n </Primitive>\n </div>\n</template>\n"],"names":["arrow","floatingUIarrow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PopperContent.js","sources":["../../src/Popper/PopperContent.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type {\n Middleware,\n Placement,\n ReferenceElement,\n} from '@floating-ui/vue'\nimport type { Ref } from 'vue'\nimport type {\n Align,\n Side,\n} from './utils'\nimport type { PrimitiveProps } from '@/Primitive'\nimport { createContext, useForwardExpose, useSize } from '@/shared'\n\nexport const PopperContentPropsDefaultValue = {\n side: 'bottom' as Side,\n sideOffset: 0,\n align: 'center' as Align,\n alignOffset: 0,\n arrowPadding: 0,\n avoidCollisions: true,\n collisionBoundary: () => [],\n collisionPadding: 0,\n sticky: 'partial' as 'partial' | 'always',\n hideWhenDetached: false,\n positionStrategy: 'fixed' as 'absolute' | 'fixed',\n updatePositionStrategy: 'optimized' as 'optimized' | 'always',\n prioritizePosition: false,\n}\n\nexport interface PopperContentProps extends PrimitiveProps {\n /**\n * The preferred side of the trigger to render against when open.\n * Will be reversed when collisions occur and avoidCollisions\n * is enabled.\n *\n * @defaultValue \"top\"\n */\n side?: Side\n\n /**\n * The distance in pixels from the trigger.\n *\n * @defaultValue 0\n */\n sideOffset?: number\n\n /**\n * The preferred alignment against the trigger.\n * May change when collisions occur.\n *\n * @defaultValue \"center\"\n */\n align?: Align\n\n /**\n * An offset in pixels from the `start` or `end` alignment options.\n *\n * @defaultValue 0\n */\n alignOffset?: number\n\n /**\n * When `true`, overrides the side and align preferences\n * to prevent collisions with boundary edges.\n *\n * @defaultValue true\n */\n avoidCollisions?: boolean\n\n /**\n * The element used as the collision boundary. By default\n * this is the viewport, though you can provide additional\n * element(s) to be included in this check.\n *\n * @defaultValue []\n */\n collisionBoundary?: Element | null | Array<Element | null>\n\n /**\n * The distance in pixels from the boundary edges where collision\n * detection should occur. Accepts a number (same for all sides),\n * or a partial padding object, for example: { top: 20, left: 20 }.\n *\n * @defaultValue 0\n */\n collisionPadding?: number | Partial<Record<Side, number>>\n\n /**\n * The padding between the arrow and the edges of the content.\n * If your content has border-radius, this will prevent it from\n * overflowing the corners.\n *\n * @defaultValue 0\n */\n arrowPadding?: number\n\n /**\n * The sticky behavior on the align axis. `partial` will keep the\n * content in the boundary as long as the trigger is at least partially\n * in the boundary whilst \"always\" will keep the content in the boundary\n * regardless.\n *\n * @defaultValue \"partial\"\n */\n sticky?: 'partial' | 'always'\n\n /**\n * Whether to hide the content when the trigger becomes fully occluded.\n *\n * @defaultValue false\n */\n hideWhenDetached?: boolean\n\n /**\n * The type of CSS position property to use.\n */\n positionStrategy?: 'absolute' | 'fixed'\n\n /**\n * Strategy to update the position of the floating element on every animation frame.\n *\n * @defaultValue 'optimized'\n */\n updatePositionStrategy?: 'optimized' | 'always'\n\n /**\n * Whether to disable the update position for the content when the layout shifted.\n *\n * @defaultValue false\n */\n disableUpdateOnLayoutShift?: boolean\n\n /**\n * Force content to be position within the viewport.\n *\n * Might overlap the reference element, which may not be desired.\n *\n * @defaultValue false\n */\n prioritizePosition?: boolean\n\n /**\n * The custom element or virtual element that will be set as the reference\n * to position the floating element.\n *\n * If provided, it will replace the default anchor element.\n */\n reference?: ReferenceElement\n}\n\nexport interface PopperContentContext {\n placedSide: Ref<Side>\n onArrowChange: (arrow: HTMLElement | undefined) => void\n arrowX?: Ref<number>\n arrowY?: Ref<number>\n shouldHideArrow: Ref<boolean>\n}\n\nexport const [injectPopperContentContext, providePopperContentContext]\n = createContext<PopperContentContext>('PopperContent')\n</script>\n\n<script setup lang=\"ts\">\nimport {\n autoUpdate,\n flip,\n arrow as floatingUIarrow,\n hide,\n limitShift,\n offset,\n shift,\n size,\n useFloating,\n} from '@floating-ui/vue'\nimport { computedEager } from '@vueuse/core'\nimport { computed, ref, watchEffect, watchPostEffect } from 'vue'\nimport {\n Primitive,\n} from '@/Primitive'\nimport { injectPopperRootContext } from './PopperRoot.vue'\nimport {\n getSideAndAlignFromPlacement,\n isNotNull,\n transformOrigin,\n} from './utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<PopperContentProps>(), {\n ...PopperContentPropsDefaultValue,\n})\nconst emits = defineEmits<{\n placed: [void]\n}>()\n\nconst rootContext = injectPopperRootContext()\nconst { forwardRef, currentElement: contentElement } = useForwardExpose()\n\nconst floatingRef = ref<HTMLElement>()\n\nconst arrow = ref<HTMLElement>()\nconst { width: arrowWidth, height: arrowHeight } = useSize(arrow)\n\nconst desiredPlacement = computed(\n () =>\n (props.side\n + (props.align !== 'center' ? `-${props.align}` : '')) as Placement,\n)\n\nconst collisionPadding = computed(() => {\n return typeof props.collisionPadding === 'number'\n ? props.collisionPadding\n : { top: 0, right: 0, bottom: 0, left: 0, ...props.collisionPadding }\n})\n\nconst boundary = computed(() => {\n return Array.isArray(props.collisionBoundary)\n ? props.collisionBoundary\n : [props.collisionBoundary]\n})\n\nconst detectOverflowOptions = computed(() => {\n return {\n padding: collisionPadding.value,\n boundary: boundary.value.filter(isNotNull),\n // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n altBoundary: boundary.value.length > 0,\n }\n})\n\nconst computedMiddleware = computedEager(() => {\n return [\n offset({\n mainAxis: props.sideOffset + arrowHeight.value,\n alignmentAxis: props.alignOffset,\n }),\n props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n props.avoidCollisions\n && shift({\n mainAxis: true,\n crossAxis: !!props.prioritizePosition,\n limiter: props.sticky === 'partial' ? limitShift() : undefined,\n ...detectOverflowOptions.value,\n }),\n !props.prioritizePosition\n && props.avoidCollisions\n && flip({\n ...detectOverflowOptions.value,\n }),\n size({\n ...detectOverflowOptions.value,\n apply: ({ elements, rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference\n const contentStyle = elements.floating.style\n contentStyle.setProperty(\n '--reka-popper-available-width',\n `${availableWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-available-height',\n `${availableHeight}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-width',\n `${anchorWidth}px`,\n )\n contentStyle.setProperty(\n '--reka-popper-anchor-height',\n `${anchorHeight}px`,\n )\n },\n }),\n arrow.value\n && floatingUIarrow({ element: arrow.value, padding: props.arrowPadding }),\n transformOrigin({\n arrowWidth: arrowWidth.value,\n arrowHeight: arrowHeight.value,\n }),\n props.hideWhenDetached\n && hide({ strategy: 'referenceHidden', ...detectOverflowOptions.value }),\n ] as Middleware[]\n})\n\n// If provided custom reference, it will overwrite the default anchor element\nconst reference = computed(() => props.reference ?? rootContext.anchor.value)\n\nconst { floatingStyles, placement, isPositioned, middlewareData, update } = useFloating(\n reference,\n floatingRef,\n {\n strategy: props.positionStrategy,\n placement: desiredPlacement,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n layoutShift: !props.disableUpdateOnLayoutShift,\n animationFrame: props.updatePositionStrategy === 'always',\n })\n return cleanup\n },\n middleware: computedMiddleware,\n },\n)\n\nconst placedSide = computed(\n () => getSideAndAlignFromPlacement(placement.value)[0],\n)\nconst placedAlign = computed(\n () => getSideAndAlignFromPlacement(placement.value)[1],\n)\n\nwatchPostEffect(() => {\n if (isPositioned.value)\n emits('placed')\n})\n\nconst cannotCenterArrow = computed(\n () => middlewareData.value.arrow?.centerOffset !== 0,\n)\n\nconst contentZIndex = ref('')\nwatchEffect(() => {\n if (contentElement.value)\n contentZIndex.value = window.getComputedStyle(contentElement.value).zIndex\n})\n\nconst arrowX = computed(() => middlewareData.value.arrow?.x ?? 0)\nconst arrowY = computed(() => middlewareData.value.arrow?.y ?? 0)\n\nprovidePopperContentContext({\n placedSide,\n onArrowChange: element => arrow.value = element,\n arrowX,\n arrowY,\n shouldHideArrow: cannotCenterArrow,\n})\n</script>\n\n<template>\n <div\n ref=\"floatingRef\"\n data-reka-popper-content-wrapper=\"\"\n :style=\"{\n ...floatingStyles,\n transform: isPositioned ? floatingStyles.transform : 'translate(0, -200%)', // keep off the page when measuring\n minWidth: 'max-content',\n zIndex: contentZIndex,\n ['--reka-popper-transform-origin' as any]: [\n middlewareData.transformOrigin?.x,\n middlewareData.transformOrigin?.y,\n ].join(' '),\n\n // hide the content if using the hide middleware and should be hidden\n // set visibility to hidden and disable pointer events so the UI behaves\n // as if the PopperContent isn't there at all\n ...(middlewareData.hide?.referenceHidden && {\n visibility: 'hidden',\n pointerEvents: 'none',\n }),\n }\"\n >\n <Primitive\n :ref=\"forwardRef\"\n v-bind=\"$attrs\"\n :as-child=\"props.asChild\"\n :as=\"as\"\n :data-side=\"placedSide\"\n :data-align=\"placedAlign\"\n :style=\"{\n // if the PopperContent hasn't been placed yet (not all measurements done)\n // we prevent animations so that users's animation don't kick in too early referring wrong sides\n animation: !isPositioned ? 'none' : undefined,\n }\"\n >\n <slot />\n </Primitive>\n </div>\n</template>\n"],"names":["arrow","floatingUIarrow"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Presence.cjs","sources":["../../src/Presence/Presence.ts"],"sourcesContent":["import type {\n SlotsType,\n VNode,\n} from 'vue'\nimport {
|
|
1
|
+
{"version":3,"file":"Presence.cjs","sources":["../../src/Presence/Presence.ts"],"sourcesContent":["import type {\n SlotsType,\n VNode,\n} from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport {\n defineComponent,\n getCurrentInstance,\n h,\n ref,\n toRefs,\n} from 'vue'\nimport { renderSlotFragments } from '@/shared'\nimport { usePresence } from './usePresence'\n\nexport interface PresenceProps {\n /**\n * Conditional to mount or unmount the child element. Similar to `v-if`\n *\n * @required true\n */\n present: boolean\n /**\n * Force the element to render all the time.\n *\n * Useful for programmatically render grandchild component with the exposed `present`\n *\n * @defaultValue false\n */\n forceMount?: boolean\n}\n\nexport default defineComponent({\n name: 'Presence',\n props: {\n present: {\n type: Boolean,\n required: true,\n },\n forceMount: {\n type: Boolean,\n },\n },\n slots: {} as SlotsType<{\n default: (opts: { present: boolean }) => any\n }>,\n setup(props, { slots, expose }) {\n const { present, forceMount } = toRefs(props)\n\n const node = ref<HTMLElement>()\n // Mount composables once to prevent duplicated eventListener\n const { isPresent } = usePresence(present, node)\n expose({ present: isPresent })\n\n let children = slots.default({ present: isPresent.value })\n children = renderSlotFragments(children || [])\n const instance = getCurrentInstance()\n\n if (children && children?.length > 1) {\n const componentName = instance?.parent?.type.name\n ? `<${instance.parent.type.name} />`\n : 'component'\n\n throw new Error(\n [\n `Detected an invalid children for \\`${componentName}\\` for \\`Presence\\` component.`,\n '',\n 'Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.',\n 'You can apply a few solutions:',\n [\n 'Provide a single child element so that `presence` directive attach correctly.',\n 'Ensure the first child is an actual element instead of a raw text node or comment node.',\n ]\n .map(line => ` - ${line}`)\n .join('\\n'),\n ].join('\\n'),\n )\n }\n\n return () => {\n if (forceMount.value || present.value || isPresent.value) {\n return h(slots.default({ present: isPresent.value })[0] as VNode, {\n ref: (v) => {\n const el = unrefElement(v as HTMLElement)\n if (typeof el?.hasAttribute === 'undefined')\n return el\n\n // special case to handle animation for PopperContent\n if (el?.hasAttribute('data-reka-popper-content-wrapper'))\n node.value = el.firstElementChild as HTMLElement\n else\n node.value = el\n\n return el\n },\n })\n }\n else { return null }\n }\n },\n})\n"],"names":["defineComponent","toRefs","ref","usePresence","renderSlotFragments","getCurrentInstance","h","unrefElement"],"mappings":";;;;;;;AAgCA,iBAAeA,mBAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,OAAO,EAAC;AAAA,EAGR,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QAAU,EAAA;AAC9B,IAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAIC,WAAO,KAAK,CAAA;AAE5C,IAAA,MAAM,OAAOC,OAAiB,EAAA;AAE9B,IAAA,MAAM,EAAE,SAAA,EAAc,GAAAC,gCAAA,CAAY,SAAS,IAAI,CAAA;AAC/C,IAAO,MAAA,CAAA,EAAE,OAAS,EAAA,SAAA,EAAW,CAAA;AAE7B,IAAA,IAAI,WAAW,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAS,EAAA,SAAA,CAAU,OAAO,CAAA;AACzD,IAAW,QAAA,GAAAC,8CAAA,CAAoB,QAAY,IAAA,EAAE,CAAA;AAC7C,IAAA,MAAM,WAAWC,sBAAmB,EAAA;AAEpC,IAAI,IAAA,QAAA,IAAY,QAAU,EAAA,MAAA,GAAS,CAAG,EAAA;AACpC,MAAM,MAAA,aAAA,GAAgB,QAAU,EAAA,MAAA,EAAQ,IAAK,CAAA,IAAA,GACzC,IAAI,QAAS,CAAA,MAAA,CAAO,IAAK,CAAA,IAAI,CAC7B,GAAA,CAAA,GAAA,WAAA;AAEJ,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,UACE,sCAAsC,aAAa,CAAA,+BAAA,CAAA;AAAA,UACnD,EAAA;AAAA,UACA,iLAAA;AAAA,UACA,gCAAA;AAAA,UACA;AAAA,YACE,+EAAA;AAAA,YACA;AAAA,WACF,CACG,IAAI,CAAQ,IAAA,KAAA,CAAA,IAAA,EAAO,IAAI,CAAE,CAAA,CAAA,CACzB,KAAK,IAAI;AAAA,SACd,CAAE,KAAK,IAAI;AAAA,OACb;AAAA;AAGF,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,UAAW,CAAA,KAAA,IAAS,OAAQ,CAAA,KAAA,IAAS,UAAU,KAAO,EAAA;AACxD,QAAO,OAAAC,KAAA,CAAE,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAA,EAAS,UAAU,KAAM,EAAC,CAAE,CAAA,CAAC,CAAY,EAAA;AAAA,UAChE,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,YAAM,MAAA,EAAA,GAAKC,kBAAa,CAAgB,CAAA;AACxC,YAAI,IAAA,OAAO,IAAI,YAAiB,KAAA,WAAA;AAC9B,cAAO,OAAA,EAAA;AAGT,YAAI,IAAA,EAAA,EAAI,aAAa,kCAAkC,CAAA;AACrD,cAAA,IAAA,CAAK,QAAQ,EAAG,CAAA,iBAAA;AAAA;AAEhB,cAAA,IAAA,CAAK,KAAQ,GAAA,EAAA;AAEf,YAAO,OAAA,EAAA;AAAA;AACT,SACD,CAAA;AAAA,OAEE,MAAA;AAAE,QAAO,OAAA,IAAA;AAAA;AAAK,KACrB;AAAA;AAEJ,CAAC,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Presence.js","sources":["../../src/Presence/Presence.ts"],"sourcesContent":["import type {\n SlotsType,\n VNode,\n} from 'vue'\nimport {
|
|
1
|
+
{"version":3,"file":"Presence.js","sources":["../../src/Presence/Presence.ts"],"sourcesContent":["import type {\n SlotsType,\n VNode,\n} from 'vue'\nimport { unrefElement } from '@vueuse/core'\nimport {\n defineComponent,\n getCurrentInstance,\n h,\n ref,\n toRefs,\n} from 'vue'\nimport { renderSlotFragments } from '@/shared'\nimport { usePresence } from './usePresence'\n\nexport interface PresenceProps {\n /**\n * Conditional to mount or unmount the child element. Similar to `v-if`\n *\n * @required true\n */\n present: boolean\n /**\n * Force the element to render all the time.\n *\n * Useful for programmatically render grandchild component with the exposed `present`\n *\n * @defaultValue false\n */\n forceMount?: boolean\n}\n\nexport default defineComponent({\n name: 'Presence',\n props: {\n present: {\n type: Boolean,\n required: true,\n },\n forceMount: {\n type: Boolean,\n },\n },\n slots: {} as SlotsType<{\n default: (opts: { present: boolean }) => any\n }>,\n setup(props, { slots, expose }) {\n const { present, forceMount } = toRefs(props)\n\n const node = ref<HTMLElement>()\n // Mount composables once to prevent duplicated eventListener\n const { isPresent } = usePresence(present, node)\n expose({ present: isPresent })\n\n let children = slots.default({ present: isPresent.value })\n children = renderSlotFragments(children || [])\n const instance = getCurrentInstance()\n\n if (children && children?.length > 1) {\n const componentName = instance?.parent?.type.name\n ? `<${instance.parent.type.name} />`\n : 'component'\n\n throw new Error(\n [\n `Detected an invalid children for \\`${componentName}\\` for \\`Presence\\` component.`,\n '',\n 'Note: Presence works similarly to `v-if` directly, but it waits for animation/transition to finished before unmounting. So it expect only one direct child of valid VNode type.',\n 'You can apply a few solutions:',\n [\n 'Provide a single child element so that `presence` directive attach correctly.',\n 'Ensure the first child is an actual element instead of a raw text node or comment node.',\n ]\n .map(line => ` - ${line}`)\n .join('\\n'),\n ].join('\\n'),\n )\n }\n\n return () => {\n if (forceMount.value || present.value || isPresent.value) {\n return h(slots.default({ present: isPresent.value })[0] as VNode, {\n ref: (v) => {\n const el = unrefElement(v as HTMLElement)\n if (typeof el?.hasAttribute === 'undefined')\n return el\n\n // special case to handle animation for PopperContent\n if (el?.hasAttribute('data-reka-popper-content-wrapper'))\n node.value = el.firstElementChild as HTMLElement\n else\n node.value = el\n\n return el\n },\n })\n }\n else { return null }\n }\n },\n})\n"],"names":[],"mappings":";;;;;AAgCA,iBAAe,eAAgB,CAAA;AAAA,EAC7B,IAAM,EAAA,UAAA;AAAA,EACN,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,QAAU,EAAA;AAAA,KACZ;AAAA,IACA,UAAY,EAAA;AAAA,MACV,IAAM,EAAA;AAAA;AACR,GACF;AAAA,EACA,OAAO,EAAC;AAAA,EAGR,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,QAAU,EAAA;AAC9B,IAAA,MAAM,EAAE,OAAA,EAAS,UAAW,EAAA,GAAI,OAAO,KAAK,CAAA;AAE5C,IAAA,MAAM,OAAO,GAAiB,EAAA;AAE9B,IAAA,MAAM,EAAE,SAAA,EAAc,GAAA,WAAA,CAAY,SAAS,IAAI,CAAA;AAC/C,IAAO,MAAA,CAAA,EAAE,OAAS,EAAA,SAAA,EAAW,CAAA;AAE7B,IAAA,IAAI,WAAW,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAS,EAAA,SAAA,CAAU,OAAO,CAAA;AACzD,IAAW,QAAA,GAAA,mBAAA,CAAoB,QAAY,IAAA,EAAE,CAAA;AAC7C,IAAA,MAAM,WAAW,kBAAmB,EAAA;AAEpC,IAAI,IAAA,QAAA,IAAY,QAAU,EAAA,MAAA,GAAS,CAAG,EAAA;AACpC,MAAM,MAAA,aAAA,GAAgB,QAAU,EAAA,MAAA,EAAQ,IAAK,CAAA,IAAA,GACzC,IAAI,QAAS,CAAA,MAAA,CAAO,IAAK,CAAA,IAAI,CAC7B,GAAA,CAAA,GAAA,WAAA;AAEJ,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,UACE,sCAAsC,aAAa,CAAA,+BAAA,CAAA;AAAA,UACnD,EAAA;AAAA,UACA,iLAAA;AAAA,UACA,gCAAA;AAAA,UACA;AAAA,YACE,+EAAA;AAAA,YACA;AAAA,WACF,CACG,IAAI,CAAQ,IAAA,KAAA,CAAA,IAAA,EAAO,IAAI,CAAE,CAAA,CAAA,CACzB,KAAK,IAAI;AAAA,SACd,CAAE,KAAK,IAAI;AAAA,OACb;AAAA;AAGF,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,UAAW,CAAA,KAAA,IAAS,OAAQ,CAAA,KAAA,IAAS,UAAU,KAAO,EAAA;AACxD,QAAO,OAAA,CAAA,CAAE,KAAM,CAAA,OAAA,CAAQ,EAAE,OAAA,EAAS,UAAU,KAAM,EAAC,CAAE,CAAA,CAAC,CAAY,EAAA;AAAA,UAChE,GAAA,EAAK,CAAC,CAAM,KAAA;AACV,YAAM,MAAA,EAAA,GAAK,aAAa,CAAgB,CAAA;AACxC,YAAI,IAAA,OAAO,IAAI,YAAiB,KAAA,WAAA;AAC9B,cAAO,OAAA,EAAA;AAGT,YAAI,IAAA,EAAA,EAAI,aAAa,kCAAkC,CAAA;AACrD,cAAA,IAAA,CAAK,QAAQ,EAAG,CAAA,iBAAA;AAAA;AAEhB,cAAA,IAAA,CAAK,KAAQ,GAAA,EAAA;AAEf,YAAO,OAAA,EAAA;AAAA;AACT,SACD,CAAA;AAAA,OAEE,MAAA;AAAE,QAAO,OAAA,IAAA;AAAA;AAAK,KACrB;AAAA;AAEJ,CAAC,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePresence.cjs","sources":["../../src/Presence/usePresence.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { useStateMachine } from '@/shared'\nimport { defaultWindow } from '@vueuse/core'\nimport { isClient } from '@vueuse/shared'\nimport { computed, nextTick, onUnmounted, ref, watch } from 'vue'\n\nexport function usePresence(\n present: Ref<boolean>,\n node: Ref<HTMLElement | undefined>,\n) {\n const stylesRef = ref<CSSStyleDeclaration>({} as any)\n const prevAnimationNameRef = ref<string>('none')\n const prevPresentRef = ref(present)\n const initialState = present.value ? 'mounted' : 'unmounted'\n let timeoutId: number | undefined\n const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow\n\n const { state, dispatch } = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n })\n\n const dispatchCustomEvent = (name: 'enter' | 'after-enter' | 'leave' | 'after-leave') => {\n // We only dispatch this event because CustomEvent is not available in Node18\n // https://github.com/unovue/reka-ui/issues/930\n if (isClient) {\n const customEvent = new CustomEvent(name, { bubbles: false, cancelable: false })\n node.value?.dispatchEvent(customEvent)\n }\n }\n\n watch(\n present,\n async (currentPresent, prevPresent) => {\n const hasPresentChanged = prevPresent !== currentPresent\n await nextTick()\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.value\n const currentAnimationName = getAnimationName(node.value)\n\n if (currentPresent) {\n dispatch('MOUNT')\n dispatchCustomEvent('enter')\n if (currentAnimationName === 'none')\n dispatchCustomEvent('after-enter')\n }\n else if (\n currentAnimationName === 'none' || currentAnimationName === 'undefined'\n || stylesRef.value?.display === 'none'\n ) {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly rv\n dispatch('UNMOUNT')\n dispatchCustomEvent('leave')\n dispatchCustomEvent('after-leave')\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName\n if (prevPresent && isAnimating) {\n dispatch('ANIMATION_OUT')\n dispatchCustomEvent('leave')\n }\n else {\n dispatch('UNMOUNT')\n dispatchCustomEvent('after-leave')\n }\n }\n }\n },\n { immediate: true },\n )\n\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(node.value)\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName,\n )\n const directionName = state.value === 'mounted' ? 'enter' : 'leave'\n if (event.target === node.value && isCurrentAnimation) {\n dispatchCustomEvent(`after-${directionName}`)\n dispatch('ANIMATION_END')\n\n if (!prevPresentRef.value) {\n const currentFillMode = node.value.style.animationFillMode\n node.value.style.animationFillMode = 'forwards'\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow?.setTimeout(() => {\n if (node.value?.style.animationFillMode === 'forwards') {\n node.value.style.animationFillMode = currentFillMode\n }\n })\n }\n }\n // if no animation, immediately trigger 'ANIMATION_END'\n if (event.target === node.value && currentAnimationName === 'none')\n dispatch('ANIMATION_END')\n }\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node.value) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.value = getAnimationName(node.value)\n }\n }\n\n const watcher = watch(\n node,\n (newNode, oldNode) => {\n if (newNode) {\n stylesRef.value = getComputedStyle(newNode)\n newNode.addEventListener('animationstart', handleAnimationStart)\n newNode.addEventListener('animationcancel', handleAnimationEnd)\n newNode.addEventListener('animationend', handleAnimationEnd)\n }\n else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n dispatch('ANIMATION_END')\n\n if (timeoutId !== undefined)\n ownerWindow?.clearTimeout(timeoutId)\n oldNode?.removeEventListener('animationstart', handleAnimationStart)\n oldNode?.removeEventListener('animationcancel', handleAnimationEnd)\n oldNode?.removeEventListener('animationend', handleAnimationEnd)\n }\n },\n { immediate: true },\n )\n\n const stateWatcher = watch(state, () => {\n const currentAnimationName = getAnimationName(node.value)\n prevAnimationNameRef.value\n = state.value === 'mounted' ? currentAnimationName : 'none'\n })\n\n onUnmounted(() => {\n watcher()\n stateWatcher()\n })\n\n const isPresent = computed(() =>\n ['mounted', 'unmountSuspended'].includes(state.value),\n )\n\n return {\n isPresent,\n }\n}\n\nfunction getAnimationName(node?: HTMLElement) {\n return node ? getComputedStyle(node).animationName || 'none' : 'none'\n}\n"],"names":["ref","defaultWindow","useStateMachine","isClient","watch","nextTick","onUnmounted","computed"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePresence.cjs","sources":["../../src/Presence/usePresence.ts"],"sourcesContent":["import type { Ref } from 'vue'\nimport { defaultWindow } from '@vueuse/core'\nimport { isClient } from '@vueuse/shared'\nimport { computed, nextTick, onUnmounted, ref, watch } from 'vue'\nimport { useStateMachine } from '@/shared'\n\nexport function usePresence(\n present: Ref<boolean>,\n node: Ref<HTMLElement | undefined>,\n) {\n const stylesRef = ref<CSSStyleDeclaration>({} as any)\n const prevAnimationNameRef = ref<string>('none')\n const prevPresentRef = ref(present)\n const initialState = present.value ? 'mounted' : 'unmounted'\n let timeoutId: number | undefined\n const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow\n\n const { state, dispatch } = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n })\n\n const dispatchCustomEvent = (name: 'enter' | 'after-enter' | 'leave' | 'after-leave') => {\n // We only dispatch this event because CustomEvent is not available in Node18\n // https://github.com/unovue/reka-ui/issues/930\n if (isClient) {\n const customEvent = new CustomEvent(name, { bubbles: false, cancelable: false })\n node.value?.dispatchEvent(customEvent)\n }\n }\n\n watch(\n present,\n async (currentPresent, prevPresent) => {\n const hasPresentChanged = prevPresent !== currentPresent\n await nextTick()\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.value\n const currentAnimationName = getAnimationName(node.value)\n\n if (currentPresent) {\n dispatch('MOUNT')\n dispatchCustomEvent('enter')\n if (currentAnimationName === 'none')\n dispatchCustomEvent('after-enter')\n }\n else if (\n currentAnimationName === 'none' || currentAnimationName === 'undefined'\n || stylesRef.value?.display === 'none'\n ) {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly rv\n dispatch('UNMOUNT')\n dispatchCustomEvent('leave')\n dispatchCustomEvent('after-leave')\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName\n if (prevPresent && isAnimating) {\n dispatch('ANIMATION_OUT')\n dispatchCustomEvent('leave')\n }\n else {\n dispatch('UNMOUNT')\n dispatchCustomEvent('after-leave')\n }\n }\n }\n },\n { immediate: true },\n )\n\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(node.value)\n const isCurrentAnimation = currentAnimationName.includes(\n event.animationName,\n )\n const directionName = state.value === 'mounted' ? 'enter' : 'leave'\n if (event.target === node.value && isCurrentAnimation) {\n dispatchCustomEvent(`after-${directionName}`)\n dispatch('ANIMATION_END')\n\n if (!prevPresentRef.value) {\n const currentFillMode = node.value.style.animationFillMode\n node.value.style.animationFillMode = 'forwards'\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow?.setTimeout(() => {\n if (node.value?.style.animationFillMode === 'forwards') {\n node.value.style.animationFillMode = currentFillMode\n }\n })\n }\n }\n // if no animation, immediately trigger 'ANIMATION_END'\n if (event.target === node.value && currentAnimationName === 'none')\n dispatch('ANIMATION_END')\n }\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node.value) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.value = getAnimationName(node.value)\n }\n }\n\n const watcher = watch(\n node,\n (newNode, oldNode) => {\n if (newNode) {\n stylesRef.value = getComputedStyle(newNode)\n newNode.addEventListener('animationstart', handleAnimationStart)\n newNode.addEventListener('animationcancel', handleAnimationEnd)\n newNode.addEventListener('animationend', handleAnimationEnd)\n }\n else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n dispatch('ANIMATION_END')\n\n if (timeoutId !== undefined)\n ownerWindow?.clearTimeout(timeoutId)\n oldNode?.removeEventListener('animationstart', handleAnimationStart)\n oldNode?.removeEventListener('animationcancel', handleAnimationEnd)\n oldNode?.removeEventListener('animationend', handleAnimationEnd)\n }\n },\n { immediate: true },\n )\n\n const stateWatcher = watch(state, () => {\n const currentAnimationName = getAnimationName(node.value)\n prevAnimationNameRef.value\n = state.value === 'mounted' ? currentAnimationName : 'none'\n })\n\n onUnmounted(() => {\n watcher()\n stateWatcher()\n })\n\n const isPresent = computed(() =>\n ['mounted', 'unmountSuspended'].includes(state.value),\n )\n\n return {\n isPresent,\n }\n}\n\nfunction getAnimationName(node?: HTMLElement) {\n return node ? getComputedStyle(node).animationName || 'none' : 'none'\n}\n"],"names":["ref","defaultWindow","useStateMachine","isClient","watch","nextTick","onUnmounted","computed"],"mappings":"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"}
|