@rupe/v-datepicker 1.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/components/Calendar/CalendarCell.d.ts +17 -0
- package/dist/components/Calendar/CalendarCell.vue.js +34 -0
- package/dist/components/Calendar/CalendarCell.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarCell.vue2.js +5 -0
- package/dist/components/Calendar/CalendarCell.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarCellTrigger.d.ts +72 -0
- package/dist/components/Calendar/CalendarCellTrigger.vue.js +159 -0
- package/dist/components/Calendar/CalendarCellTrigger.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarCellTrigger.vue2.js +5 -0
- package/dist/components/Calendar/CalendarCellTrigger.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarGrid.d.ts +13 -0
- package/dist/components/Calendar/CalendarGrid.vue.js +40 -0
- package/dist/components/Calendar/CalendarGrid.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarGrid.vue2.js +5 -0
- package/dist/components/Calendar/CalendarGrid.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarGridBody.d.ts +13 -0
- package/dist/components/Calendar/CalendarGridBody.vue.js +25 -0
- package/dist/components/Calendar/CalendarGridBody.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarGridBody.vue2.js +5 -0
- package/dist/components/Calendar/CalendarGridBody.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarGridHead.d.ts +13 -0
- package/dist/components/Calendar/CalendarGridHead.vue.js +25 -0
- package/dist/components/Calendar/CalendarGridHead.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarGridHead.vue2.js +5 -0
- package/dist/components/Calendar/CalendarGridHead.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarGridRow.d.ts +13 -0
- package/dist/components/Calendar/CalendarGridRow.vue.js +25 -0
- package/dist/components/Calendar/CalendarGridRow.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarGridRow.vue2.js +5 -0
- package/dist/components/Calendar/CalendarGridRow.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarHeadCell.d.ts +13 -0
- package/dist/components/Calendar/CalendarHeadCell.vue.js +25 -0
- package/dist/components/Calendar/CalendarHeadCell.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarHeadCell.vue2.js +5 -0
- package/dist/components/Calendar/CalendarHeadCell.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarHeader.d.ts +13 -0
- package/dist/components/Calendar/CalendarHeader.vue.js +25 -0
- package/dist/components/Calendar/CalendarHeader.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarHeader.vue2.js +5 -0
- package/dist/components/Calendar/CalendarHeader.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarHeading.d.ts +21 -0
- package/dist/components/Calendar/CalendarHeading.vue.js +33 -0
- package/dist/components/Calendar/CalendarHeading.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarHeading.vue2.js +5 -0
- package/dist/components/Calendar/CalendarHeading.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarMonthHeading.d.ts +22 -0
- package/dist/components/Calendar/CalendarMonthHeading.vue.js +49 -0
- package/dist/components/Calendar/CalendarMonthHeading.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarMonthHeading.vue2.js +5 -0
- package/dist/components/Calendar/CalendarMonthHeading.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarMonthYearOverlay.d.ts +27 -0
- package/dist/components/Calendar/CalendarMonthYearOverlay.vue.js +61 -0
- package/dist/components/Calendar/CalendarMonthYearOverlay.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarMonthYearOverlay.vue2.js +5 -0
- package/dist/components/Calendar/CalendarMonthYearOverlay.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarNext.d.ts +21 -0
- package/dist/components/Calendar/CalendarNext.vue.js +42 -0
- package/dist/components/Calendar/CalendarNext.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarNext.vue2.js +5 -0
- package/dist/components/Calendar/CalendarNext.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarOverlayItem.d.ts +24 -0
- package/dist/components/Calendar/CalendarOverlayItem.vue.js +34 -0
- package/dist/components/Calendar/CalendarOverlayItem.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarOverlayItem.vue2.js +5 -0
- package/dist/components/Calendar/CalendarOverlayItem.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarPrev.d.ts +21 -0
- package/dist/components/Calendar/CalendarPrev.vue.js +42 -0
- package/dist/components/Calendar/CalendarPrev.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarPrev.vue2.js +5 -0
- package/dist/components/Calendar/CalendarPrev.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarRoot.d.ts +210 -0
- package/dist/components/Calendar/CalendarRoot.vue.js +253 -0
- package/dist/components/Calendar/CalendarRoot.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarRoot.vue2.js +8 -0
- package/dist/components/Calendar/CalendarRoot.vue2.js.map +1 -0
- package/dist/components/Calendar/CalendarYearHeading.d.ts +22 -0
- package/dist/components/Calendar/CalendarYearHeading.vue.js +49 -0
- package/dist/components/Calendar/CalendarYearHeading.vue.js.map +1 -0
- package/dist/components/Calendar/CalendarYearHeading.vue2.js +5 -0
- package/dist/components/Calendar/CalendarYearHeading.vue2.js.map +1 -0
- package/dist/components/Calendar/index.d.ts +15 -0
- package/dist/components/Calendar/useCalendar.d.ts +50 -0
- package/dist/components/Calendar/useCalendar.js +317 -0
- package/dist/components/Calendar/useCalendar.js.map +1 -0
- package/dist/components/ConfigProvider/ConfigProvider.d.ts +51 -0
- package/dist/components/ConfigProvider/ConfigProvider.vue.js +7 -0
- package/dist/components/ConfigProvider/ConfigProvider.vue.js.map +1 -0
- package/dist/components/ConfigProvider/index.d.ts +1 -0
- package/dist/components/DateField/DateFieldInput.d.ts +15 -0
- package/dist/components/DateField/DateFieldInput.vue.js +70 -0
- package/dist/components/DateField/DateFieldInput.vue.js.map +1 -0
- package/dist/components/DateField/DateFieldInput.vue2.js +5 -0
- package/dist/components/DateField/DateFieldInput.vue2.js.map +1 -0
- package/dist/components/DateField/DateFieldRoot.d.ts +151 -0
- package/dist/components/DateField/DateFieldRoot.vue.js +237 -0
- package/dist/components/DateField/DateFieldRoot.vue.js.map +1 -0
- package/dist/components/DateField/DateFieldRoot.vue2.js +8 -0
- package/dist/components/DateField/DateFieldRoot.vue2.js.map +1 -0
- package/dist/components/DateField/index.d.ts +2 -0
- package/dist/components/DatePicker/DatePickerAnchor.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerAnchor.vue.js +29 -0
- package/dist/components/DatePicker/DatePickerAnchor.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerAnchor.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerAnchor.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerArrow.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerArrow.vue.js +31 -0
- package/dist/components/DatePicker/DatePickerArrow.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerArrow.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerArrow.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerCalendar.d.ts +17 -0
- package/dist/components/DatePicker/DatePickerCalendar.vue.js +60 -0
- package/dist/components/DatePicker/DatePickerCalendar.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerCalendar.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerCalendar.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerCell.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerCell.vue.js +28 -0
- package/dist/components/DatePicker/DatePickerCell.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerCell.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerCell.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerCellTrigger.d.ts +10 -0
- package/dist/components/DatePicker/DatePickerCellTrigger.vue.js +29 -0
- package/dist/components/DatePicker/DatePickerCellTrigger.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerCellTrigger.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerCellTrigger.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerClose.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerClose.vue.js +28 -0
- package/dist/components/DatePicker/DatePickerClose.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerClose.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerClose.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerContent.d.ts +31 -0
- package/dist/components/DatePicker/DatePickerContent.vue.js +69 -0
- package/dist/components/DatePicker/DatePickerContent.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerContent.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerContent.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerField.d.ts +16 -0
- package/dist/components/DatePicker/DatePickerField.vue.js +55 -0
- package/dist/components/DatePicker/DatePickerField.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerField.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerField.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerGrid.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerGrid.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerGrid.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerGrid.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerGrid.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerGridBody.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerGridBody.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerGridBody.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerGridBody.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerGridBody.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerGridHead.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerGridHead.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerGridHead.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerGridHead.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerGridHead.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerGridRow.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerGridRow.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerGridRow.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerGridRow.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerGridRow.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerHeadCell.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerHeadCell.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerHeadCell.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerHeadCell.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerHeadCell.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerHeader.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerHeader.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerHeader.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerHeader.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerHeader.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerHeading.d.ts +19 -0
- package/dist/components/DatePicker/DatePickerHeading.vue.js +29 -0
- package/dist/components/DatePicker/DatePickerHeading.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerHeading.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerHeading.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerInput.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerInput.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerInput.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerInput.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerInput.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerMonthHeading.d.ts +13 -0
- package/dist/components/DatePicker/DatePickerMonthHeading.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerMonthHeading.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerMonthHeading.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerMonthHeading.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerMonthYearOverlay.d.ts +24 -0
- package/dist/components/DatePicker/DatePickerMonthYearOverlay.vue.js +30 -0
- package/dist/components/DatePicker/DatePickerMonthYearOverlay.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerMonthYearOverlay.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerMonthYearOverlay.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerNext.d.ts +10 -0
- package/dist/components/DatePicker/DatePickerNext.vue.js +28 -0
- package/dist/components/DatePicker/DatePickerNext.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerNext.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerNext.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerOverlayItem.d.ts +19 -0
- package/dist/components/DatePicker/DatePickerOverlayItem.vue.js +25 -0
- package/dist/components/DatePicker/DatePickerOverlayItem.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerOverlayItem.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerOverlayItem.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerPrev.d.ts +10 -0
- package/dist/components/DatePicker/DatePickerPrev.vue.js +28 -0
- package/dist/components/DatePicker/DatePickerPrev.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerPrev.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerPrev.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerRoot.d.ts +84 -0
- package/dist/components/DatePicker/DatePickerRoot.vue.js +169 -0
- package/dist/components/DatePicker/DatePickerRoot.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerRoot.vue2.js +8 -0
- package/dist/components/DatePicker/DatePickerRoot.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerTrigger.d.ts +11 -0
- package/dist/components/DatePicker/DatePickerTrigger.vue.js +37 -0
- package/dist/components/DatePicker/DatePickerTrigger.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerTrigger.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerTrigger.vue2.js.map +1 -0
- package/dist/components/DatePicker/DatePickerYearHeading.d.ts +13 -0
- package/dist/components/DatePicker/DatePickerYearHeading.vue.js +27 -0
- package/dist/components/DatePicker/DatePickerYearHeading.vue.js.map +1 -0
- package/dist/components/DatePicker/DatePickerYearHeading.vue2.js +5 -0
- package/dist/components/DatePicker/DatePickerYearHeading.vue2.js.map +1 -0
- package/dist/components/DatePicker/index.d.ts +24 -0
- package/dist/components/DismissableLayer/DismissableLayer.d.ts +67 -0
- package/dist/components/DismissableLayer/DismissableLayer.vue.js +118 -0
- package/dist/components/DismissableLayer/DismissableLayer.vue.js.map +1 -0
- package/dist/components/DismissableLayer/DismissableLayer.vue2.js +7 -0
- package/dist/components/DismissableLayer/DismissableLayer.vue2.js.map +1 -0
- package/dist/components/DismissableLayer/DismissableLayerBranch.d.ts +11 -0
- package/dist/components/DismissableLayer/index.d.ts +3 -0
- package/dist/components/DismissableLayer/utils.d.ts +28 -0
- package/dist/components/DismissableLayer/utils.js +112 -0
- package/dist/components/DismissableLayer/utils.js.map +1 -0
- package/dist/components/FocusScope/FocusScope.d.ts +82 -0
- package/dist/components/FocusScope/FocusScope.test.d.ts +1 -0
- package/dist/components/FocusScope/FocusScope.vue.js +149 -0
- package/dist/components/FocusScope/FocusScope.vue.js.map +1 -0
- package/dist/components/FocusScope/FocusScope.vue2.js +5 -0
- package/dist/components/FocusScope/FocusScope.vue2.js.map +1 -0
- package/dist/components/FocusScope/index.d.ts +1 -0
- package/dist/components/FocusScope/stack.d.ts +12 -0
- package/dist/components/FocusScope/stack.js +38 -0
- package/dist/components/FocusScope/stack.js.map +1 -0
- package/dist/components/FocusScope/utils.d.ts +46 -0
- package/dist/components/FocusScope/utils.js +70 -0
- package/dist/components/FocusScope/utils.js.map +1 -0
- package/dist/components/Popover/PopoverAnchor.d.ts +11 -0
- package/dist/components/Popover/PopoverAnchor.vue.js +37 -0
- package/dist/components/Popover/PopoverAnchor.vue.js.map +1 -0
- package/dist/components/Popover/PopoverAnchor.vue2.js +5 -0
- package/dist/components/Popover/PopoverAnchor.vue2.js.map +1 -0
- package/dist/components/Popover/PopoverArrow.d.ts +15 -0
- package/dist/components/Popover/PopoverArrow.vue.js +31 -0
- package/dist/components/Popover/PopoverArrow.vue.js.map +1 -0
- package/dist/components/Popover/PopoverArrow.vue2.js +5 -0
- package/dist/components/Popover/PopoverArrow.vue2.js.map +1 -0
- package/dist/components/Popover/PopoverClose.d.ts +13 -0
- package/dist/components/Popover/PopoverClose.vue.js +34 -0
- package/dist/components/Popover/PopoverClose.vue.js.map +1 -0
- package/dist/components/Popover/PopoverClose.vue2.js +5 -0
- package/dist/components/Popover/PopoverClose.vue2.js.map +1 -0
- package/dist/components/Popover/PopoverContent.d.ts +32 -0
- package/dist/components/Popover/PopoverContent.vue.js +61 -0
- package/dist/components/Popover/PopoverContent.vue.js.map +1 -0
- package/dist/components/Popover/PopoverContent.vue2.js +5 -0
- package/dist/components/Popover/PopoverContent.vue2.js.map +1 -0
- package/dist/components/Popover/PopoverContentImpl.d.ts +47 -0
- package/dist/components/Popover/PopoverContentImpl.vue.js +97 -0
- package/dist/components/Popover/PopoverContentImpl.vue.js.map +1 -0
- package/dist/components/Popover/PopoverContentImpl.vue2.js +5 -0
- package/dist/components/Popover/PopoverContentImpl.vue2.js.map +1 -0
- package/dist/components/Popover/PopoverContentNonModal.d.ts +32 -0
- package/dist/components/Popover/PopoverContentNonModal.vue.js +78 -0
- package/dist/components/Popover/PopoverContentNonModal.vue.js.map +1 -0
- package/dist/components/Popover/PopoverContentNonModal.vue2.js +5 -0
- package/dist/components/Popover/PopoverContentNonModal.vue2.js.map +1 -0
- package/dist/components/Popover/PopoverPortal.d.ts +11 -0
- package/dist/components/Popover/PopoverPortal.vue.js +26 -0
- package/dist/components/Popover/PopoverPortal.vue.js.map +1 -0
- package/dist/components/Popover/PopoverPortal.vue2.js +5 -0
- package/dist/components/Popover/PopoverPortal.vue2.js.map +1 -0
- package/dist/components/Popover/PopoverRoot.d.ts +55 -0
- package/dist/components/Popover/PopoverRoot.vue.js +55 -0
- package/dist/components/Popover/PopoverRoot.vue.js.map +1 -0
- package/dist/components/Popover/PopoverRoot.vue2.js +8 -0
- package/dist/components/Popover/PopoverRoot.vue2.js.map +1 -0
- package/dist/components/Popover/PopoverTrigger.d.ts +13 -0
- package/dist/components/Popover/PopoverTrigger.vue.js +51 -0
- package/dist/components/Popover/PopoverTrigger.vue.js.map +1 -0
- package/dist/components/Popover/PopoverTrigger.vue2.js +5 -0
- package/dist/components/Popover/PopoverTrigger.vue2.js.map +1 -0
- package/dist/components/Popover/index.d.ts +7 -0
- package/dist/components/Popper/PopperAnchor.d.ts +19 -0
- package/dist/components/Popper/PopperAnchor.vue.js +37 -0
- package/dist/components/Popper/PopperAnchor.vue.js.map +1 -0
- package/dist/components/Popper/PopperAnchor.vue2.js +5 -0
- package/dist/components/Popper/PopperAnchor.vue2.js.map +1 -0
- package/dist/components/Popper/PopperArrow.d.ts +15 -0
- package/dist/components/Popper/PopperArrow.vue.js +76 -0
- package/dist/components/Popper/PopperArrow.vue.js.map +1 -0
- package/dist/components/Popper/PopperArrow.vue2.js +5 -0
- package/dist/components/Popper/PopperArrow.vue2.js.map +1 -0
- package/dist/components/Popper/PopperContent.d.ts +179 -0
- package/dist/components/Popper/PopperContent.vue.js +9 -0
- package/dist/components/Popper/PopperContent.vue.js.map +1 -0
- package/dist/components/Popper/PopperContent.vue2.js +230 -0
- package/dist/components/Popper/PopperContent.vue2.js.map +1 -0
- package/dist/components/Popper/PopperRoot.d.ts +19 -0
- package/dist/components/Popper/PopperRoot.vue.js +25 -0
- package/dist/components/Popper/PopperRoot.vue.js.map +1 -0
- package/dist/components/Popper/PopperRoot.vue2.js +8 -0
- package/dist/components/Popper/PopperRoot.vue2.js.map +1 -0
- package/dist/components/Popper/index.d.ts +5 -0
- package/dist/components/Popper/utils.d.ts +12 -0
- package/dist/components/Popper/utils.js +46 -0
- package/dist/components/Popper/utils.js.map +1 -0
- package/dist/components/Presence/Presence.d.ts +43 -0
- package/dist/components/Presence/Presence.js +61 -0
- package/dist/components/Presence/Presence.js.map +1 -0
- package/dist/components/Presence/index.d.ts +1 -0
- package/dist/components/Presence/usePresence.d.ts +4 -0
- package/dist/components/Presence/usePresence.js +131 -0
- package/dist/components/Presence/usePresence.js.map +1 -0
- package/dist/components/Primitive/Primitive.d.ts +39 -0
- package/dist/components/Primitive/Primitive.js +29 -0
- package/dist/components/Primitive/Primitive.js.map +1 -0
- package/dist/components/Primitive/Slot.d.ts +5 -0
- package/dist/components/Primitive/Slot.js +30 -0
- package/dist/components/Primitive/Slot.js.map +1 -0
- package/dist/components/Primitive/index.d.ts +3 -0
- package/dist/components/Primitive/usePrimitiveElement.d.ts +5 -0
- package/dist/components/Primitive/usePrimitiveElement.js +14 -0
- package/dist/components/Primitive/usePrimitiveElement.js.map +1 -0
- package/dist/components/Teleport/Teleport.d.ts +37 -0
- package/dist/components/Teleport/Teleport.vue.js +28 -0
- package/dist/components/Teleport/Teleport.vue.js.map +1 -0
- package/dist/components/Teleport/Teleport.vue2.js +5 -0
- package/dist/components/Teleport/Teleport.vue2.js.map +1 -0
- package/dist/components/Teleport/index.d.ts +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +16 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.vue.js +49 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.vue.js.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.vue2.js +5 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.vue2.js.map +1 -0
- package/dist/components/VisuallyHidden/VisuallyHiddenInput.d.ts +14 -0
- package/dist/components/VisuallyHidden/VisuallyHiddenInputBubble.d.ts +22 -0
- package/dist/components/VisuallyHidden/index.d.ts +2 -0
- package/dist/date/calendar.d.ts +59 -0
- package/dist/date/calendar.js +90 -0
- package/dist/date/calendar.js.map +1 -0
- package/dist/date/comparators.d.ts +80 -0
- package/dist/date/comparators.js +61 -0
- package/dist/date/comparators.js.map +1 -0
- package/dist/date/index.d.ts +3 -0
- package/dist/date/types.d.ts +28 -0
- package/dist/date/utils.d.ts +12 -0
- package/dist/date/utils.js +10 -0
- package/dist/date/utils.js.map +1 -0
- package/dist/index.cjs +9097 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +54 -0
- package/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +722 -0
- package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -0
- package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +626 -0
- package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -0
- package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +174 -0
- package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -0
- package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +155 -0
- package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -0
- package/dist/node_modules/.pnpm/@floating-ui_vue@1.1.9_vue@3.5.26_typescript@5.9.3_/node_modules/@floating-ui/vue/dist/floating-ui.vue.js +180 -0
- package/dist/node_modules/.pnpm/@floating-ui_vue@1.1.9_vue@3.5.26_typescript@5.9.3_/node_modules/@floating-ui/vue/dist/floating-ui.vue.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/BuddhistCalendar.js +34 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/BuddhistCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/CalendarDate.js +213 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/CalendarDate.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/DateFormatter.js +116 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/DateFormatter.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/EthiopicCalendar.js +129 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/EthiopicCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/GregorianCalendar.js +123 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/GregorianCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/HebrewCalendar.js +114 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/HebrewCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/IndianCalendar.js +77 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/IndianCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/IslamicCalendar.js +141 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/IslamicCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/JapaneseCalendar.js +155 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/JapaneseCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/PersianCalendar.js +59 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/PersianCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/TaiwanCalendar.js +59 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/TaiwanCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/conversion.js +170 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/conversion.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/createCalendar.js +44 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/createCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/manipulation.js +301 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/manipulation.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/queries.js +141 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/queries.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/string.js +35 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/string.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/utils.js +7 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/utils.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/weekStartData.js +101 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.10.1/node_modules/@internationalized/date/dist/weekStartData.js.map +1 -0
- package/dist/node_modules/.pnpm/@swc_helpers@0.5.18/node_modules/@swc/helpers/esm/_check_private_redeclaration.js +9 -0
- package/dist/node_modules/.pnpm/@swc_helpers@0.5.18/node_modules/@swc/helpers/esm/_check_private_redeclaration.js.map +1 -0
- package/dist/node_modules/.pnpm/@swc_helpers@0.5.18/node_modules/@swc/helpers/esm/_class_private_field_init.js +9 -0
- package/dist/node_modules/.pnpm/@swc_helpers@0.5.18/node_modules/@swc/helpers/esm/_class_private_field_init.js.map +1 -0
- package/dist/node_modules/.pnpm/@vueuse_core@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.js +140 -0
- package/dist/node_modules/.pnpm/@vueuse_core@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@vueuse_shared@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js +88 -0
- package/dist/node_modules/.pnpm/@vueuse_shared@14.1.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.js +60 -0
- package/dist/node_modules/.pnpm/defu@6.1.4/node_modules/defu/dist/defu.js.map +1 -0
- package/dist/shared/arrays.d.ts +37 -0
- package/dist/shared/component/Arrow.d.ts +34 -0
- package/dist/shared/component/Arrow.vue.js +45 -0
- package/dist/shared/component/Arrow.vue.js.map +1 -0
- package/dist/shared/component/Arrow.vue2.js +5 -0
- package/dist/shared/component/Arrow.vue2.js.map +1 -0
- package/dist/shared/component/BaseSeparator.d.ts +26 -0
- package/dist/shared/component/index.d.ts +2 -0
- package/dist/shared/constant/countryList.d.ts +1 -0
- package/dist/shared/constant/index.d.ts +1 -0
- package/dist/shared/createContext.d.ts +8 -0
- package/dist/shared/createContext.js +26 -0
- package/dist/shared/createContext.js.map +1 -0
- package/dist/shared/date/comparators.d.ts +27 -0
- package/dist/shared/date/comparators.js +27 -0
- package/dist/shared/date/comparators.js.map +1 -0
- package/dist/shared/date/index.d.ts +8 -0
- package/dist/shared/date/parser.d.ts +37 -0
- package/dist/shared/date/parser.js +161 -0
- package/dist/shared/date/parser.js.map +1 -0
- package/dist/shared/date/parts.d.ts +12 -0
- package/dist/shared/date/parts.js +17 -0
- package/dist/shared/date/parts.js.map +1 -0
- package/dist/shared/date/placeholders.d.ts +8 -0
- package/dist/shared/date/placeholders.js +196 -0
- package/dist/shared/date/placeholders.js.map +1 -0
- package/dist/shared/date/segment.d.ts +5 -0
- package/dist/shared/date/segment.js +44 -0
- package/dist/shared/date/segment.js.map +1 -0
- package/dist/shared/date/types.d.ts +37 -0
- package/dist/shared/date/useDateField.d.ts +142 -0
- package/dist/shared/date/useDateField.js +618 -0
- package/dist/shared/date/useDateField.js.map +1 -0
- package/dist/shared/date/utils.d.ts +11 -0
- package/dist/shared/date/utils.js +76 -0
- package/dist/shared/date/utils.js.map +1 -0
- package/dist/shared/getActiveElement.d.ts +1 -0
- package/dist/shared/getActiveElement.js +14 -0
- package/dist/shared/getActiveElement.js.map +1 -0
- package/dist/shared/handleAndDispatchCustomEvent.d.ts +3 -0
- package/dist/shared/handleAndDispatchCustomEvent.js +15 -0
- package/dist/shared/handleAndDispatchCustomEvent.js.map +1 -0
- package/dist/shared/index.d.ts +22 -0
- package/dist/shared/nullish.d.ts +1 -0
- package/dist/shared/nullish.js +7 -0
- package/dist/shared/nullish.js.map +1 -0
- package/dist/shared/onFocusOutside.d.ts +2 -0
- package/dist/shared/renderSlotFragments.d.ts +2 -0
- package/dist/shared/renderSlotFragments.js +14 -0
- package/dist/shared/renderSlotFragments.js.map +1 -0
- package/dist/shared/trap-focus.d.ts +1 -0
- package/dist/shared/types.d.ts +48 -0
- package/dist/shared/useDateFormatter.d.ts +30 -0
- package/dist/shared/useDateFormatter.js +121 -0
- package/dist/shared/useDateFormatter.js.map +1 -0
- package/dist/shared/useDirection.d.ts +8 -0
- package/dist/shared/useDirection.js +12 -0
- package/dist/shared/useDirection.js.map +1 -0
- package/dist/shared/useEmitAsProps.d.ts +10 -0
- package/dist/shared/useEmitAsProps.js +19 -0
- package/dist/shared/useEmitAsProps.js.map +1 -0
- package/dist/shared/useFocusGuards.d.ts +5 -0
- package/dist/shared/useFocusGuards.js +39 -0
- package/dist/shared/useFocusGuards.js.map +1 -0
- package/dist/shared/useForwardExpose.d.ts +6 -0
- package/dist/shared/useForwardExpose.js +49 -0
- package/dist/shared/useForwardExpose.js.map +1 -0
- package/dist/shared/useForwardProps.d.ts +9 -0
- package/dist/shared/useForwardProps.js +27 -0
- package/dist/shared/useForwardProps.js.map +1 -0
- package/dist/shared/useForwardPropsEmits.d.ts +14 -0
- package/dist/shared/useForwardPropsEmits.js +15 -0
- package/dist/shared/useForwardPropsEmits.js.map +1 -0
- package/dist/shared/useId.d.ts +9 -0
- package/dist/shared/useId.js +19 -0
- package/dist/shared/useId.js.map +1 -0
- package/dist/shared/useIsUsingKeyboard.d.ts +3 -0
- package/dist/shared/useKbd.d.ts +78 -0
- package/dist/shared/useKbd.js +42 -0
- package/dist/shared/useKbd.js.map +1 -0
- package/dist/shared/useLocale.d.ts +7 -0
- package/dist/shared/useLocale.js +12 -0
- package/dist/shared/useLocale.js.map +1 -0
- package/dist/shared/useNonce.d.ts +2 -0
- package/dist/shared/useSize.d.ts +5 -0
- package/dist/shared/useSize.js +44 -0
- package/dist/shared/useSize.js.map +1 -0
- package/dist/shared/useStateMachine.d.ts +25 -0
- package/dist/shared/useStateMachine.js +19 -0
- package/dist/shared/useStateMachine.js.map +1 -0
- package/dist/shared/withDefault.d.ts +22 -0
- package/package.json +72 -0
- package/src/components/Calendar/CalendarCell.vue +39 -0
- package/src/components/Calendar/CalendarCellTrigger.vue +206 -0
- package/src/components/Calendar/CalendarGrid.vue +35 -0
- package/src/components/Calendar/CalendarGridBody.vue +19 -0
- package/src/components/Calendar/CalendarGridHead.vue +19 -0
- package/src/components/Calendar/CalendarGridRow.vue +17 -0
- package/src/components/Calendar/CalendarHeadCell.vue +17 -0
- package/src/components/Calendar/CalendarHeader.vue +17 -0
- package/src/components/Calendar/CalendarHeading.vue +32 -0
- package/src/components/Calendar/CalendarMonthHeading.vue +65 -0
- package/src/components/Calendar/CalendarMonthYearOverlay.vue +48 -0
- package/src/components/Calendar/CalendarNext.vue +51 -0
- package/src/components/Calendar/CalendarOverlayItem.vue +30 -0
- package/src/components/Calendar/CalendarPrev.vue +51 -0
- package/src/components/Calendar/CalendarRoot.vue +394 -0
- package/src/components/Calendar/CalendarYearHeading.vue +63 -0
- package/src/components/Calendar/index.ts +63 -0
- package/src/components/Calendar/useCalendar.ts +453 -0
- package/src/components/ConfigProvider/ConfigProvider.vue +73 -0
- package/src/components/ConfigProvider/index.ts +5 -0
- package/src/components/DateField/DateFieldInput.vue +72 -0
- package/src/components/DateField/DateFieldRoot.vue +359 -0
- package/src/components/DateField/index.ts +10 -0
- package/src/components/DatePicker/DatePickerAnchor.vue +16 -0
- package/src/components/DatePicker/DatePickerArrow.vue +16 -0
- package/src/components/DatePicker/DatePickerCalendar.vue +62 -0
- package/src/components/DatePicker/DatePickerCell.vue +16 -0
- package/src/components/DatePicker/DatePickerCellTrigger.vue +18 -0
- package/src/components/DatePicker/DatePickerClose.vue +16 -0
- package/src/components/DatePicker/DatePickerContent.vue +50 -0
- package/src/components/DatePicker/DatePickerField.vue +53 -0
- package/src/components/DatePicker/DatePickerGrid.vue +16 -0
- package/src/components/DatePicker/DatePickerGridBody.vue +16 -0
- package/src/components/DatePicker/DatePickerGridHead.vue +16 -0
- package/src/components/DatePicker/DatePickerGridRow.vue +16 -0
- package/src/components/DatePicker/DatePickerHeadCell.vue +16 -0
- package/src/components/DatePicker/DatePickerHeader.vue +16 -0
- package/src/components/DatePicker/DatePickerHeading.vue +24 -0
- package/src/components/DatePicker/DatePickerInput.vue +16 -0
- package/src/components/DatePicker/DatePickerMonthHeading.vue +19 -0
- package/src/components/DatePicker/DatePickerMonthYearOverlay.vue +13 -0
- package/src/components/DatePicker/DatePickerNext.vue +19 -0
- package/src/components/DatePicker/DatePickerOverlayItem.vue +16 -0
- package/src/components/DatePicker/DatePickerPrev.vue +18 -0
- package/src/components/DatePicker/DatePickerRoot.vue +216 -0
- package/src/components/DatePicker/DatePickerTrigger.vue +29 -0
- package/src/components/DatePicker/DatePickerYearHeading.vue +19 -0
- package/src/components/DatePicker/index.ts +92 -0
- package/src/components/DismissableLayer/DismissableLayer.vue +175 -0
- package/src/components/DismissableLayer/DismissableLayerBranch.vue +28 -0
- package/src/components/DismissableLayer/index.ts +7 -0
- package/src/components/DismissableLayer/utils.ts +194 -0
- package/src/components/FocusScope/FocusScope.vue +220 -0
- package/src/components/FocusScope/index.ts +5 -0
- package/src/components/FocusScope/stack.ts +49 -0
- package/src/components/FocusScope/utils.ts +108 -0
- package/src/components/Popover/PopoverAnchor.vue +30 -0
- package/src/components/Popover/PopoverArrow.vue +23 -0
- package/src/components/Popover/PopoverClose.vue +29 -0
- package/src/components/Popover/PopoverContent.vue +41 -0
- package/src/components/Popover/PopoverContentImpl.vue +97 -0
- package/src/components/Popover/PopoverContentNonModal.vue +74 -0
- package/src/components/Popover/PopoverPortal.vue +17 -0
- package/src/components/Popover/PopoverRoot.vue +83 -0
- package/src/components/Popover/PopoverTrigger.vue +48 -0
- package/src/components/Popover/index.ts +31 -0
- package/src/components/Popper/PopperAnchor.vue +36 -0
- package/src/components/Popper/PopperArrow.vue +81 -0
- package/src/components/Popper/PopperContent.vue +399 -0
- package/src/components/Popper/PopperRoot.vue +36 -0
- package/src/components/Popper/index.ts +15 -0
- package/src/components/Popper/utils.ts +63 -0
- package/src/components/Presence/Presence.ts +91 -0
- package/src/components/Presence/index.ts +1 -0
- package/src/components/Presence/usePresence.ts +175 -0
- package/src/components/Primitive/Primitive.ts +66 -0
- package/src/components/Primitive/Slot.ts +40 -0
- package/src/components/Primitive/index.ts +3 -0
- package/src/components/Primitive/usePrimitiveElement.ts +13 -0
- package/src/components/Teleport/Teleport.vue +49 -0
- package/src/components/Teleport/index.ts +1 -0
- package/src/components/VisuallyHidden/VisuallyHidden.vue +47 -0
- package/src/components/VisuallyHidden/VisuallyHiddenInput.vue +67 -0
- package/src/components/VisuallyHidden/VisuallyHiddenInputBubble.vue +56 -0
- package/src/components/VisuallyHidden/index.ts +2 -0
- package/src/date/calendar.ts +242 -0
- package/src/date/comparators.ts +199 -0
- package/src/date/index.ts +3 -0
- package/src/date/types.ts +37 -0
- package/src/date/utils.ts +18 -0
- package/src/index.ts +78 -0
- package/src/shared/arrays.ts +66 -0
- package/src/shared/component/Arrow.vue +55 -0
- package/src/shared/component/BaseSeparator.vue +57 -0
- package/src/shared/component/index.ts +2 -0
- package/src/shared/constant/countryList.ts +251 -0
- package/src/shared/constant/index.ts +1 -0
- package/src/shared/createContext.ts +57 -0
- package/src/shared/date/comparators.ts +74 -0
- package/src/shared/date/index.ts +42 -0
- package/src/shared/date/parser.ts +252 -0
- package/src/shared/date/parts.ts +32 -0
- package/src/shared/date/placeholders.ts +221 -0
- package/src/shared/date/segment.ts +50 -0
- package/src/shared/date/types.ts +50 -0
- package/src/shared/date/useDateField.ts +998 -0
- package/src/shared/date/utils.ts +84 -0
- package/src/shared/getActiveElement.ts +12 -0
- package/src/shared/handleAndDispatchCustomEvent.ts +21 -0
- package/src/shared/index.ts +27 -0
- package/src/shared/nullish.ts +3 -0
- package/src/shared/onFocusOutside.ts +29 -0
- package/src/shared/renderSlotFragments.ts +13 -0
- package/src/shared/trap-focus.ts +45 -0
- package/src/shared/types.ts +64 -0
- package/src/shared/useDateFormatter.ts +186 -0
- package/src/shared/useDirection.ts +16 -0
- package/src/shared/useEmitAsProps.ts +32 -0
- package/src/shared/useFocusGuards.ts +46 -0
- package/src/shared/useForwardExpose.ts +66 -0
- package/src/shared/useForwardProps.ts +43 -0
- package/src/shared/useForwardPropsEmits.ts +26 -0
- package/src/shared/useId.ts +34 -0
- package/src/shared/useIsUsingKeyboard.ts +22 -0
- package/src/shared/useKbd.ts +58 -0
- package/src/shared/useLocale.ts +15 -0
- package/src/shared/useNonce.ts +10 -0
- package/src/shared/useSize.ts +64 -0
- package/src/shared/useStateMachine.ts +48 -0
- package/src/shared/withDefault.ts +61 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { getActiveElement } from "../../shared";
|
|
2
|
+
|
|
3
|
+
export const AUTOFOCUS_ON_MOUNT = "focusScope.autoFocusOnMount";
|
|
4
|
+
export const AUTOFOCUS_ON_UNMOUNT = "focusScope.autoFocusOnUnmount";
|
|
5
|
+
export const EVENT_OPTIONS = { bubbles: false, cancelable: true };
|
|
6
|
+
|
|
7
|
+
type FocusableTarget = HTMLElement | { focus: () => void };
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Attempts focusing the first element in a list of candidates.
|
|
11
|
+
* Stops when focus has actually moved.
|
|
12
|
+
*/
|
|
13
|
+
export function focusFirst(candidates: HTMLElement[], { select = false } = {}) {
|
|
14
|
+
const previouslyFocusedElement = getActiveElement();
|
|
15
|
+
for (const candidate of candidates) {
|
|
16
|
+
focus(candidate, { select });
|
|
17
|
+
if (getActiveElement() !== previouslyFocusedElement) return true;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Returns the first and last tabbable elements inside a container.
|
|
23
|
+
*/
|
|
24
|
+
export function getTabbableEdges(container: HTMLElement) {
|
|
25
|
+
const candidates = getTabbableCandidates(container);
|
|
26
|
+
const first = findVisible(candidates, container);
|
|
27
|
+
const last = findVisible(candidates.reverse(), container);
|
|
28
|
+
return [first, last] as const;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Returns a list of potential tabbable candidates.
|
|
33
|
+
*
|
|
34
|
+
* NOTE: This is only a close approximation. For example it doesn't take into account cases like when
|
|
35
|
+
* elements are not visible. This cannot be worked out easily by just reading a property, but rather
|
|
36
|
+
* necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.
|
|
37
|
+
*
|
|
38
|
+
* See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker
|
|
39
|
+
* Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1
|
|
40
|
+
*/
|
|
41
|
+
export function getTabbableCandidates(container: HTMLElement) {
|
|
42
|
+
const nodes: HTMLElement[] = [];
|
|
43
|
+
const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
|
|
44
|
+
acceptNode: (node: any) => {
|
|
45
|
+
const isHiddenInput = node.tagName === "INPUT" && node.type === "hidden";
|
|
46
|
+
if (node.disabled || node.hidden || isHiddenInput)
|
|
47
|
+
return NodeFilter.FILTER_SKIP;
|
|
48
|
+
// `.tabIndex` is not the same as the `tabindex` attribute. It works on the
|
|
49
|
+
// runtime's understanding of tabbability, so this automatically accounts
|
|
50
|
+
// for any kind of element that could be tabbed to.
|
|
51
|
+
return node.tabIndex >= 0
|
|
52
|
+
? NodeFilter.FILTER_ACCEPT
|
|
53
|
+
: NodeFilter.FILTER_SKIP;
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
while (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement);
|
|
57
|
+
// we do not take into account the order of nodes with positive `tabIndex` as it
|
|
58
|
+
// hinders accessibility to have tab order different from visual order.
|
|
59
|
+
return nodes;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Returns the first visible element in a list.
|
|
64
|
+
* NOTE: Only checks visibility up to the `container`.
|
|
65
|
+
*/
|
|
66
|
+
export function findVisible(elements: HTMLElement[], container: HTMLElement) {
|
|
67
|
+
for (const element of elements) {
|
|
68
|
+
// we stop checking if it's hidden at the `container` level (excluding)
|
|
69
|
+
if (!isHidden(element, { upTo: container })) return element;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function isHidden(node: HTMLElement, { upTo }: { upTo?: HTMLElement }) {
|
|
74
|
+
if (getComputedStyle(node).visibility === "hidden") return true;
|
|
75
|
+
while (node) {
|
|
76
|
+
// we stop at `upTo` (excluding it)
|
|
77
|
+
if (upTo !== undefined && node === upTo) return false;
|
|
78
|
+
if (getComputedStyle(node).display === "none") return true;
|
|
79
|
+
node = node.parentElement as HTMLElement;
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function isSelectableInput(
|
|
85
|
+
element: any,
|
|
86
|
+
): element is FocusableTarget & { select: () => void } {
|
|
87
|
+
return element instanceof HTMLInputElement && "select" in element;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export function focus(
|
|
91
|
+
element?: FocusableTarget | null,
|
|
92
|
+
{ select = false } = {},
|
|
93
|
+
) {
|
|
94
|
+
// only focus if that element is focusable
|
|
95
|
+
if (element && element.focus) {
|
|
96
|
+
const previouslyFocusedElement = getActiveElement();
|
|
97
|
+
// NOTE: we prevent scrolling on focus, to minimize jarring transitions for users
|
|
98
|
+
element.focus({ preventScroll: true });
|
|
99
|
+
// only select if its not the same element, it supports selection and we need to select
|
|
100
|
+
if (
|
|
101
|
+
element !== previouslyFocusedElement &&
|
|
102
|
+
isSelectableInput(element) &&
|
|
103
|
+
select
|
|
104
|
+
) {
|
|
105
|
+
element.select();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { PopperAnchorProps } from "../Popper";
|
|
3
|
+
import { useForwardExpose } from "../../shared";
|
|
4
|
+
|
|
5
|
+
export type PopoverAnchorProps = PopperAnchorProps;
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<script setup lang="ts">
|
|
9
|
+
import { onBeforeMount, onUnmounted } from "vue";
|
|
10
|
+
import { PopperAnchor } from "../Popper";
|
|
11
|
+
import { injectPopoverRootContext } from "./PopoverRoot.vue";
|
|
12
|
+
|
|
13
|
+
const props = defineProps<PopoverAnchorProps>();
|
|
14
|
+
|
|
15
|
+
useForwardExpose();
|
|
16
|
+
const rootContext = injectPopoverRootContext();
|
|
17
|
+
|
|
18
|
+
onBeforeMount(() => {
|
|
19
|
+
rootContext.hasCustomAnchor.value = true;
|
|
20
|
+
});
|
|
21
|
+
onUnmounted(() => {
|
|
22
|
+
rootContext.hasCustomAnchor.value = false;
|
|
23
|
+
});
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
<template>
|
|
27
|
+
<PopperAnchor v-bind="props">
|
|
28
|
+
<slot />
|
|
29
|
+
</PopperAnchor>
|
|
30
|
+
</template>
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { PopperArrowProps } from "../Popper";
|
|
3
|
+
import { useForwardExpose } from "../../shared";
|
|
4
|
+
|
|
5
|
+
export type PopoverArrowProps = PopperArrowProps;
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<script setup lang="ts">
|
|
9
|
+
import { PopperArrow } from "../Popper";
|
|
10
|
+
|
|
11
|
+
const props = withDefaults(defineProps<PopoverArrowProps>(), {
|
|
12
|
+
width: 10,
|
|
13
|
+
height: 5,
|
|
14
|
+
as: "svg",
|
|
15
|
+
});
|
|
16
|
+
useForwardExpose();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<template>
|
|
20
|
+
<PopperArrow v-bind="props">
|
|
21
|
+
<slot />
|
|
22
|
+
</PopperArrow>
|
|
23
|
+
</template>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { PrimitiveProps } from "../Primitive";
|
|
3
|
+
import { useForwardExpose } from "../../shared";
|
|
4
|
+
|
|
5
|
+
export type PopoverCloseProps = PrimitiveProps;
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<script setup lang="ts">
|
|
9
|
+
import { Primitive } from "../Primitive";
|
|
10
|
+
import { injectPopoverRootContext } from "./PopoverRoot.vue";
|
|
11
|
+
|
|
12
|
+
const props = withDefaults(defineProps<PopoverCloseProps>(), {
|
|
13
|
+
as: "button",
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
useForwardExpose();
|
|
17
|
+
const rootContext = injectPopoverRootContext();
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<template>
|
|
21
|
+
<Primitive
|
|
22
|
+
:type="as === 'button' ? 'button' : undefined"
|
|
23
|
+
:as="as"
|
|
24
|
+
:as-child="props.asChild"
|
|
25
|
+
@click="rootContext.onOpenChange(false)"
|
|
26
|
+
>
|
|
27
|
+
<slot />
|
|
28
|
+
</Primitive>
|
|
29
|
+
</template>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type {
|
|
3
|
+
PopoverContentImplEmits,
|
|
4
|
+
PopoverContentImplProps,
|
|
5
|
+
} from "./PopoverContentImpl.vue";
|
|
6
|
+
|
|
7
|
+
export type PopoverContentEmits = PopoverContentImplEmits;
|
|
8
|
+
|
|
9
|
+
export interface PopoverContentProps extends PopoverContentImplProps {
|
|
10
|
+
/**
|
|
11
|
+
* Used to force mounting when more control is needed. Useful when
|
|
12
|
+
* controlling animation with Vue animation libraries.
|
|
13
|
+
*/
|
|
14
|
+
forceMount?: boolean;
|
|
15
|
+
}
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<script setup lang="ts">
|
|
19
|
+
import { Presence } from "../Presence";
|
|
20
|
+
import { useForwardExpose, useForwardPropsEmits, useId } from "../../shared";
|
|
21
|
+
import PopoverContentNonModal from "./PopoverContentNonModal.vue";
|
|
22
|
+
import { injectPopoverRootContext } from "./PopoverRoot.vue";
|
|
23
|
+
|
|
24
|
+
const props = defineProps<PopoverContentProps>();
|
|
25
|
+
const emits = defineEmits<PopoverContentEmits>();
|
|
26
|
+
|
|
27
|
+
const rootContext = injectPopoverRootContext();
|
|
28
|
+
|
|
29
|
+
const forwarded = useForwardPropsEmits(props, emits);
|
|
30
|
+
const { forwardRef } = useForwardExpose();
|
|
31
|
+
|
|
32
|
+
rootContext.contentId ||= useId(undefined, "reka-popover-content");
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<template>
|
|
36
|
+
<Presence :present="forceMount || rootContext.open.value">
|
|
37
|
+
<PopoverContentNonModal v-bind="forwarded" :ref="forwardRef">
|
|
38
|
+
<slot />
|
|
39
|
+
</PopoverContentNonModal>
|
|
40
|
+
</Presence>
|
|
41
|
+
</template>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type {
|
|
3
|
+
DismissableLayerEmits,
|
|
4
|
+
DismissableLayerProps,
|
|
5
|
+
} from "../DismissableLayer";
|
|
6
|
+
import type { FocusScopeProps } from "../FocusScope";
|
|
7
|
+
import type { PopperContentProps } from "../Popper";
|
|
8
|
+
import { reactiveOmit } from "@vueuse/shared";
|
|
9
|
+
|
|
10
|
+
export type PopoverContentImplEmits = DismissableLayerEmits & {
|
|
11
|
+
/**
|
|
12
|
+
* Event handler called when auto-focusing on open.
|
|
13
|
+
* Can be prevented.
|
|
14
|
+
*/
|
|
15
|
+
openAutoFocus: [event: Event];
|
|
16
|
+
/**
|
|
17
|
+
* Event handler called when auto-focusing on close.
|
|
18
|
+
* Can be prevented.
|
|
19
|
+
*/
|
|
20
|
+
closeAutoFocus: [event: Event];
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export interface PopoverContentImplProps
|
|
24
|
+
extends PopperContentProps, DismissableLayerProps {}
|
|
25
|
+
|
|
26
|
+
interface PopoverContentImplPrivateProps extends PopoverContentImplProps {
|
|
27
|
+
/**
|
|
28
|
+
* Whether focus should be trapped within the `MenuContent`
|
|
29
|
+
* @defaultValue false
|
|
30
|
+
*/
|
|
31
|
+
trapFocus?: FocusScopeProps["trapped"];
|
|
32
|
+
}
|
|
33
|
+
</script>
|
|
34
|
+
|
|
35
|
+
<script setup lang="ts">
|
|
36
|
+
import { DismissableLayer } from "../DismissableLayer";
|
|
37
|
+
import { FocusScope } from "../FocusScope";
|
|
38
|
+
import { PopperContent } from "../Popper";
|
|
39
|
+
import {
|
|
40
|
+
useFocusGuards,
|
|
41
|
+
useForwardExpose,
|
|
42
|
+
useForwardProps,
|
|
43
|
+
} from "../../shared";
|
|
44
|
+
import { injectPopoverRootContext } from "./PopoverRoot.vue";
|
|
45
|
+
|
|
46
|
+
const props = defineProps<PopoverContentImplPrivateProps>();
|
|
47
|
+
const emits = defineEmits<PopoverContentImplEmits>();
|
|
48
|
+
|
|
49
|
+
const forwarded = useForwardProps(
|
|
50
|
+
reactiveOmit(props, "trapFocus", "disableOutsidePointerEvents"),
|
|
51
|
+
);
|
|
52
|
+
const { forwardRef } = useForwardExpose();
|
|
53
|
+
|
|
54
|
+
const rootContext = injectPopoverRootContext();
|
|
55
|
+
useFocusGuards();
|
|
56
|
+
</script>
|
|
57
|
+
|
|
58
|
+
<template>
|
|
59
|
+
<FocusScope
|
|
60
|
+
as-child
|
|
61
|
+
loop
|
|
62
|
+
:trapped="trapFocus"
|
|
63
|
+
@mount-auto-focus="emits('openAutoFocus', $event)"
|
|
64
|
+
@unmount-auto-focus="emits('closeAutoFocus', $event)"
|
|
65
|
+
>
|
|
66
|
+
<DismissableLayer
|
|
67
|
+
as-child
|
|
68
|
+
:disable-outside-pointer-events="disableOutsidePointerEvents"
|
|
69
|
+
@pointer-down-outside="emits('pointerDownOutside', $event)"
|
|
70
|
+
@interact-outside="emits('interactOutside', $event)"
|
|
71
|
+
@escape-key-down="emits('escapeKeyDown', $event)"
|
|
72
|
+
@focus-outside="emits('focusOutside', $event)"
|
|
73
|
+
@dismiss="rootContext.onOpenChange(false)"
|
|
74
|
+
>
|
|
75
|
+
<PopperContent
|
|
76
|
+
v-bind="forwarded"
|
|
77
|
+
:id="rootContext.contentId"
|
|
78
|
+
:ref="forwardRef"
|
|
79
|
+
:data-state="rootContext.open.value ? 'open' : 'closed'"
|
|
80
|
+
:aria-labelledby="rootContext.triggerId"
|
|
81
|
+
:style="{
|
|
82
|
+
'--reka-popover-content-transform-origin':
|
|
83
|
+
'var(--reka-popper-transform-origin)',
|
|
84
|
+
'--reka-popover-content-available-width':
|
|
85
|
+
'var(--reka-popper-available-width)',
|
|
86
|
+
'--reka-popover-content-available-height':
|
|
87
|
+
'var(--reka-popper-available-height)',
|
|
88
|
+
'--reka-popover-trigger-width': 'var(--reka-popper-anchor-width)',
|
|
89
|
+
'--reka-popover-trigger-height': 'var(--reka-popper-anchor-height)',
|
|
90
|
+
}"
|
|
91
|
+
role="dialog"
|
|
92
|
+
>
|
|
93
|
+
<slot />
|
|
94
|
+
</PopperContent>
|
|
95
|
+
</DismissableLayer>
|
|
96
|
+
</FocusScope>
|
|
97
|
+
</template>
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import type {
|
|
3
|
+
PopoverContentImplEmits,
|
|
4
|
+
PopoverContentImplProps,
|
|
5
|
+
} from "./PopoverContentImpl.vue";
|
|
6
|
+
import { ref } from "vue";
|
|
7
|
+
import { useForwardPropsEmits } from "../../shared";
|
|
8
|
+
import PopoverContentImpl from "./PopoverContentImpl.vue";
|
|
9
|
+
import { injectPopoverRootContext } from "./PopoverRoot.vue";
|
|
10
|
+
|
|
11
|
+
const props = defineProps<PopoverContentImplProps>();
|
|
12
|
+
const emits = defineEmits<PopoverContentImplEmits>();
|
|
13
|
+
const rootContext = injectPopoverRootContext();
|
|
14
|
+
const hasInteractedOutsideRef = ref(false);
|
|
15
|
+
const hasPointerDownOutsideRef = ref(false);
|
|
16
|
+
|
|
17
|
+
const forwarded = useForwardPropsEmits(props, emits);
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<template>
|
|
21
|
+
<PopoverContentImpl
|
|
22
|
+
v-bind="forwarded"
|
|
23
|
+
:trap-focus="false"
|
|
24
|
+
:disable-outside-pointer-events="false"
|
|
25
|
+
@close-auto-focus="
|
|
26
|
+
(event) => {
|
|
27
|
+
emits('closeAutoFocus', event);
|
|
28
|
+
|
|
29
|
+
if (!event.defaultPrevented) {
|
|
30
|
+
if (!hasInteractedOutsideRef)
|
|
31
|
+
rootContext.triggerElement.value?.focus();
|
|
32
|
+
// Always prevent auto focus because we either focus manually or want user agent focus
|
|
33
|
+
event.preventDefault();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
hasInteractedOutsideRef = false;
|
|
37
|
+
hasPointerDownOutsideRef = false;
|
|
38
|
+
}
|
|
39
|
+
"
|
|
40
|
+
@interact-outside="
|
|
41
|
+
async (event) => {
|
|
42
|
+
emits('interactOutside', event);
|
|
43
|
+
|
|
44
|
+
if (!event.defaultPrevented) {
|
|
45
|
+
hasInteractedOutsideRef = true;
|
|
46
|
+
if (event.detail.originalEvent.type === 'pointerdown') {
|
|
47
|
+
hasPointerDownOutsideRef = true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Prevent dismissing when clicking the trigger.
|
|
52
|
+
// As the trigger is already setup to close, without doing so would
|
|
53
|
+
// cause it to close and immediately open.
|
|
54
|
+
const target = event.target as HTMLElement;
|
|
55
|
+
const targetIsTrigger =
|
|
56
|
+
rootContext.triggerElement.value?.contains(target);
|
|
57
|
+
if (targetIsTrigger) event.preventDefault();
|
|
58
|
+
|
|
59
|
+
// On Safari if the trigger is inside a container with tabIndex={0}, when clicked
|
|
60
|
+
// we will get the pointer down outside event on the trigger, but then a subsequent
|
|
61
|
+
// focus outside event on the container, we ignore any focus outside event when we've
|
|
62
|
+
// already had a pointer down outside event.
|
|
63
|
+
if (
|
|
64
|
+
event.detail.originalEvent.type === 'focusin' &&
|
|
65
|
+
hasPointerDownOutsideRef
|
|
66
|
+
) {
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
"
|
|
71
|
+
>
|
|
72
|
+
<slot />
|
|
73
|
+
</PopoverContentImpl>
|
|
74
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { TeleportProps } from "../Teleport";
|
|
3
|
+
|
|
4
|
+
export type PopoverPortalProps = TeleportProps;
|
|
5
|
+
</script>
|
|
6
|
+
|
|
7
|
+
<script setup lang="ts">
|
|
8
|
+
import { TeleportPrimitive } from "../Teleport";
|
|
9
|
+
|
|
10
|
+
const props = defineProps<PopoverPortalProps>();
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<template>
|
|
14
|
+
<TeleportPrimitive v-bind="props">
|
|
15
|
+
<slot />
|
|
16
|
+
</TeleportPrimitive>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Ref } from "vue";
|
|
3
|
+
import { createContext } from "../../shared";
|
|
4
|
+
|
|
5
|
+
export interface PopoverRootProps {
|
|
6
|
+
/**
|
|
7
|
+
* The open state of the popover when it is initially rendered. Use when you do not need to control its open state.
|
|
8
|
+
*/
|
|
9
|
+
defaultOpen?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* The controlled open state of the popover.
|
|
12
|
+
*/
|
|
13
|
+
open?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export type PopoverRootEmits = {
|
|
16
|
+
/**
|
|
17
|
+
* Event handler called when the open state of the popover changes.
|
|
18
|
+
*/
|
|
19
|
+
"update:open": [value: boolean];
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export interface PopoverRootContext {
|
|
23
|
+
triggerElement: Ref<HTMLElement | undefined>;
|
|
24
|
+
triggerId: string;
|
|
25
|
+
contentId: string;
|
|
26
|
+
open: Ref<boolean>;
|
|
27
|
+
onOpenChange: (value: boolean) => void;
|
|
28
|
+
onOpenToggle: () => void;
|
|
29
|
+
hasCustomAnchor: Ref<boolean>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export const [injectPopoverRootContext, providePopoverRootContext] =
|
|
33
|
+
createContext<PopoverRootContext>("PopoverRoot");
|
|
34
|
+
</script>
|
|
35
|
+
|
|
36
|
+
<script setup lang="ts">
|
|
37
|
+
import { useVModel } from "@vueuse/core";
|
|
38
|
+
import { ref, toRefs } from "vue";
|
|
39
|
+
import { PopperRoot } from "../Popper";
|
|
40
|
+
|
|
41
|
+
const props = withDefaults(defineProps<PopoverRootProps>(), {
|
|
42
|
+
defaultOpen: false,
|
|
43
|
+
open: undefined,
|
|
44
|
+
});
|
|
45
|
+
const emit = defineEmits<PopoverRootEmits>();
|
|
46
|
+
|
|
47
|
+
defineSlots<{
|
|
48
|
+
default?: (props: {
|
|
49
|
+
/** Current open state */
|
|
50
|
+
open: typeof open.value;
|
|
51
|
+
/** Close the popover */
|
|
52
|
+
close: () => void;
|
|
53
|
+
}) => any;
|
|
54
|
+
}>();
|
|
55
|
+
|
|
56
|
+
const open = useVModel(props, "open", emit, {
|
|
57
|
+
defaultValue: props.defaultOpen,
|
|
58
|
+
passive: (props.open === undefined) as false,
|
|
59
|
+
}) as Ref<boolean>;
|
|
60
|
+
|
|
61
|
+
const triggerElement = ref<HTMLElement>();
|
|
62
|
+
const hasCustomAnchor = ref(false);
|
|
63
|
+
|
|
64
|
+
providePopoverRootContext({
|
|
65
|
+
contentId: "",
|
|
66
|
+
triggerId: "",
|
|
67
|
+
open,
|
|
68
|
+
onOpenChange: (value) => {
|
|
69
|
+
open.value = value;
|
|
70
|
+
},
|
|
71
|
+
onOpenToggle: () => {
|
|
72
|
+
open.value = !open.value;
|
|
73
|
+
},
|
|
74
|
+
triggerElement,
|
|
75
|
+
hasCustomAnchor,
|
|
76
|
+
});
|
|
77
|
+
</script>
|
|
78
|
+
|
|
79
|
+
<template>
|
|
80
|
+
<PopperRoot>
|
|
81
|
+
<slot :open="open" :close="() => (open = false)" />
|
|
82
|
+
</PopperRoot>
|
|
83
|
+
</template>
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { PrimitiveProps } from "../Primitive";
|
|
3
|
+
import { useForwardExpose, useId } from "../../shared";
|
|
4
|
+
|
|
5
|
+
export type PopoverTriggerProps = PrimitiveProps;
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
<script setup lang="ts">
|
|
9
|
+
import { onMounted } from "vue";
|
|
10
|
+
import { PopperAnchor } from "../Popper";
|
|
11
|
+
import { Primitive } from "../Primitive";
|
|
12
|
+
import { injectPopoverRootContext } from "./PopoverRoot.vue";
|
|
13
|
+
|
|
14
|
+
const props = withDefaults(defineProps<PopoverTriggerProps>(), {
|
|
15
|
+
as: "button",
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
const rootContext = injectPopoverRootContext();
|
|
19
|
+
|
|
20
|
+
const { forwardRef, currentElement: triggerElement } = useForwardExpose();
|
|
21
|
+
|
|
22
|
+
rootContext.triggerId ||= useId(undefined, "reka-popover-trigger");
|
|
23
|
+
onMounted(() => {
|
|
24
|
+
rootContext.triggerElement.value = triggerElement.value;
|
|
25
|
+
});
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<template>
|
|
29
|
+
<component
|
|
30
|
+
:is="rootContext.hasCustomAnchor.value ? Primitive : PopperAnchor"
|
|
31
|
+
as-child
|
|
32
|
+
>
|
|
33
|
+
<Primitive
|
|
34
|
+
:id="rootContext.triggerId"
|
|
35
|
+
:ref="forwardRef"
|
|
36
|
+
:type="as === 'button' ? 'button' : undefined"
|
|
37
|
+
aria-haspopup="dialog"
|
|
38
|
+
:aria-expanded="rootContext.open.value"
|
|
39
|
+
:aria-controls="rootContext.contentId"
|
|
40
|
+
:data-state="rootContext.open.value ? 'open' : 'closed'"
|
|
41
|
+
:as="as"
|
|
42
|
+
:as-child="props.asChild"
|
|
43
|
+
@click="rootContext.onOpenToggle"
|
|
44
|
+
>
|
|
45
|
+
<slot />
|
|
46
|
+
</Primitive>
|
|
47
|
+
</component>
|
|
48
|
+
</template>
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export {
|
|
2
|
+
default as PopoverAnchor,
|
|
3
|
+
type PopoverAnchorProps,
|
|
4
|
+
} from './PopoverAnchor.vue'
|
|
5
|
+
export {
|
|
6
|
+
default as PopoverArrow,
|
|
7
|
+
type PopoverArrowProps,
|
|
8
|
+
} from './PopoverArrow.vue'
|
|
9
|
+
export {
|
|
10
|
+
default as PopoverClose,
|
|
11
|
+
type PopoverCloseProps,
|
|
12
|
+
} from './PopoverClose.vue'
|
|
13
|
+
export {
|
|
14
|
+
default as PopoverContent,
|
|
15
|
+
type PopoverContentEmits,
|
|
16
|
+
type PopoverContentProps,
|
|
17
|
+
} from './PopoverContent.vue'
|
|
18
|
+
export {
|
|
19
|
+
default as PopoverPortal,
|
|
20
|
+
type PopoverPortalProps,
|
|
21
|
+
} from './PopoverPortal.vue'
|
|
22
|
+
export {
|
|
23
|
+
injectPopoverRootContext,
|
|
24
|
+
default as PopoverRoot,
|
|
25
|
+
type PopoverRootEmits,
|
|
26
|
+
type PopoverRootProps,
|
|
27
|
+
} from './PopoverRoot.vue'
|
|
28
|
+
export {
|
|
29
|
+
default as PopoverTrigger,
|
|
30
|
+
type PopoverTriggerProps,
|
|
31
|
+
} from './PopoverTrigger.vue'
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { ReferenceElement } from "@floating-ui/vue";
|
|
3
|
+
import type { PrimitiveProps } from "../Primitive";
|
|
4
|
+
import { useForwardExpose } from "../../shared";
|
|
5
|
+
|
|
6
|
+
export interface PopperAnchorProps extends PrimitiveProps {
|
|
7
|
+
/**
|
|
8
|
+
* The reference (or anchor) element that is being referred to for positioning.
|
|
9
|
+
*
|
|
10
|
+
* If not provided will use the current component as anchor.
|
|
11
|
+
*/
|
|
12
|
+
reference?: ReferenceElement;
|
|
13
|
+
}
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<script setup lang="ts">
|
|
17
|
+
import { watchPostEffect } from "vue";
|
|
18
|
+
import { Primitive } from "../Primitive";
|
|
19
|
+
import { injectPopperRootContext } from "./PopperRoot.vue";
|
|
20
|
+
|
|
21
|
+
const props = defineProps<PopperAnchorProps>();
|
|
22
|
+
|
|
23
|
+
const { forwardRef, currentElement } = useForwardExpose();
|
|
24
|
+
|
|
25
|
+
const rootContext = injectPopperRootContext();
|
|
26
|
+
|
|
27
|
+
watchPostEffect(() => {
|
|
28
|
+
rootContext.onAnchorChange(props.reference ?? currentElement.value);
|
|
29
|
+
});
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<template>
|
|
33
|
+
<Primitive :ref="forwardRef" :as="as" :as-child="asChild">
|
|
34
|
+
<slot />
|
|
35
|
+
</Primitive>
|
|
36
|
+
</template>
|