@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,175 @@
|
|
|
1
|
+
import type { Ref } from "vue";
|
|
2
|
+
import { useStateMachine } from "../../shared";
|
|
3
|
+
import { defaultWindow } from "@vueuse/core";
|
|
4
|
+
import { isClient } from "@vueuse/shared";
|
|
5
|
+
import { computed, nextTick, onUnmounted, ref, watch } from "vue";
|
|
6
|
+
|
|
7
|
+
export function usePresence(
|
|
8
|
+
present: Ref<boolean>,
|
|
9
|
+
node: Ref<HTMLElement | undefined>,
|
|
10
|
+
) {
|
|
11
|
+
const stylesRef = ref<CSSStyleDeclaration>({} as any);
|
|
12
|
+
const prevAnimationNameRef = ref<string>("none");
|
|
13
|
+
const prevPresentRef = ref(present);
|
|
14
|
+
const initialState = present.value ? "mounted" : "unmounted";
|
|
15
|
+
let timeoutId: number | undefined;
|
|
16
|
+
const ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow;
|
|
17
|
+
|
|
18
|
+
const { state, dispatch } = useStateMachine(initialState, {
|
|
19
|
+
mounted: {
|
|
20
|
+
UNMOUNT: "unmounted",
|
|
21
|
+
ANIMATION_OUT: "unmountSuspended",
|
|
22
|
+
},
|
|
23
|
+
unmountSuspended: {
|
|
24
|
+
MOUNT: "mounted",
|
|
25
|
+
ANIMATION_END: "unmounted",
|
|
26
|
+
},
|
|
27
|
+
unmounted: {
|
|
28
|
+
MOUNT: "mounted",
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
const dispatchCustomEvent = (
|
|
33
|
+
name: "enter" | "after-enter" | "leave" | "after-leave",
|
|
34
|
+
) => {
|
|
35
|
+
// We only dispatch this event because CustomEvent is not available in Node18
|
|
36
|
+
// https://github.com/unovue/reka-ui/issues/930
|
|
37
|
+
if (isClient) {
|
|
38
|
+
const customEvent = new CustomEvent(name, {
|
|
39
|
+
bubbles: false,
|
|
40
|
+
cancelable: false,
|
|
41
|
+
});
|
|
42
|
+
node.value?.dispatchEvent(customEvent);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
watch(
|
|
47
|
+
present,
|
|
48
|
+
async (currentPresent, prevPresent) => {
|
|
49
|
+
const hasPresentChanged = prevPresent !== currentPresent;
|
|
50
|
+
await nextTick();
|
|
51
|
+
if (hasPresentChanged) {
|
|
52
|
+
const prevAnimationName = prevAnimationNameRef.value;
|
|
53
|
+
const currentAnimationName = getAnimationName(node.value);
|
|
54
|
+
|
|
55
|
+
if (currentPresent) {
|
|
56
|
+
dispatch("MOUNT");
|
|
57
|
+
dispatchCustomEvent("enter");
|
|
58
|
+
if (currentAnimationName === "none")
|
|
59
|
+
dispatchCustomEvent("after-enter");
|
|
60
|
+
} else if (
|
|
61
|
+
currentAnimationName === "none" ||
|
|
62
|
+
currentAnimationName === "undefined" ||
|
|
63
|
+
stylesRef.value?.display === "none"
|
|
64
|
+
) {
|
|
65
|
+
// If there is no exit animation or the element is hidden, animations won't run
|
|
66
|
+
// so we unmount instantly rv
|
|
67
|
+
dispatch("UNMOUNT");
|
|
68
|
+
dispatchCustomEvent("leave");
|
|
69
|
+
dispatchCustomEvent("after-leave");
|
|
70
|
+
} else {
|
|
71
|
+
/**
|
|
72
|
+
* When `present` changes to `false`, we check changes to animation-name to
|
|
73
|
+
* determine whether an animation has started. We chose this approach (reading
|
|
74
|
+
* computed styles) because there is no `animationrun` event and `animationstart`
|
|
75
|
+
* fires after `animation-delay` has expired which would be too late.
|
|
76
|
+
*/
|
|
77
|
+
const isAnimating = prevAnimationName !== currentAnimationName;
|
|
78
|
+
if (prevPresent && isAnimating) {
|
|
79
|
+
dispatch("ANIMATION_OUT");
|
|
80
|
+
dispatchCustomEvent("leave");
|
|
81
|
+
} else {
|
|
82
|
+
dispatch("UNMOUNT");
|
|
83
|
+
dispatchCustomEvent("after-leave");
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
{ immediate: true },
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`
|
|
93
|
+
* event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we
|
|
94
|
+
* make sure we only trigger ANIMATION_END for the currently active animation.
|
|
95
|
+
*/
|
|
96
|
+
const handleAnimationEnd = (event: AnimationEvent) => {
|
|
97
|
+
const currentAnimationName = getAnimationName(node.value);
|
|
98
|
+
const isCurrentAnimation = currentAnimationName.includes(
|
|
99
|
+
CSS.escape(event.animationName),
|
|
100
|
+
);
|
|
101
|
+
const directionName = state.value === "mounted" ? "enter" : "leave";
|
|
102
|
+
if (event.target === node.value && isCurrentAnimation) {
|
|
103
|
+
dispatchCustomEvent(`after-${directionName}`);
|
|
104
|
+
dispatch("ANIMATION_END");
|
|
105
|
+
|
|
106
|
+
if (!prevPresentRef.value) {
|
|
107
|
+
const currentFillMode = node.value.style.animationFillMode;
|
|
108
|
+
node.value.style.animationFillMode = "forwards";
|
|
109
|
+
// Reset the style after the node had time to unmount (for cases
|
|
110
|
+
// where the component chooses not to unmount). Doing this any
|
|
111
|
+
// sooner than `setTimeout` (e.g. with `requestAnimationFrame`)
|
|
112
|
+
// still causes a flash.
|
|
113
|
+
timeoutId = ownerWindow?.setTimeout(() => {
|
|
114
|
+
if (node.value?.style.animationFillMode === "forwards") {
|
|
115
|
+
node.value.style.animationFillMode = currentFillMode;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// if no animation, immediately trigger 'ANIMATION_END'
|
|
121
|
+
if (event.target === node.value && currentAnimationName === "none")
|
|
122
|
+
dispatch("ANIMATION_END");
|
|
123
|
+
};
|
|
124
|
+
const handleAnimationStart = (event: AnimationEvent) => {
|
|
125
|
+
if (event.target === node.value) {
|
|
126
|
+
// if animation occurred, store its name as the previous animation.
|
|
127
|
+
prevAnimationNameRef.value = getAnimationName(node.value);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
const watcher = watch(
|
|
132
|
+
node,
|
|
133
|
+
(newNode, oldNode) => {
|
|
134
|
+
if (newNode) {
|
|
135
|
+
stylesRef.value = getComputedStyle(newNode);
|
|
136
|
+
newNode.addEventListener("animationstart", handleAnimationStart);
|
|
137
|
+
newNode.addEventListener("animationcancel", handleAnimationEnd);
|
|
138
|
+
newNode.addEventListener("animationend", handleAnimationEnd);
|
|
139
|
+
} else {
|
|
140
|
+
// Transition to the unmounted state if the node is removed prematurely.
|
|
141
|
+
// We avoid doing so during cleanup as the node may change but still exist.
|
|
142
|
+
dispatch("ANIMATION_END");
|
|
143
|
+
|
|
144
|
+
if (timeoutId !== undefined) ownerWindow?.clearTimeout(timeoutId);
|
|
145
|
+
oldNode?.removeEventListener("animationstart", handleAnimationStart);
|
|
146
|
+
oldNode?.removeEventListener("animationcancel", handleAnimationEnd);
|
|
147
|
+
oldNode?.removeEventListener("animationend", handleAnimationEnd);
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{ immediate: true },
|
|
151
|
+
);
|
|
152
|
+
|
|
153
|
+
const stateWatcher = watch(state, () => {
|
|
154
|
+
const currentAnimationName = getAnimationName(node.value);
|
|
155
|
+
prevAnimationNameRef.value =
|
|
156
|
+
state.value === "mounted" ? currentAnimationName : "none";
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
onUnmounted(() => {
|
|
160
|
+
watcher();
|
|
161
|
+
stateWatcher();
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
const isPresent = computed(() =>
|
|
165
|
+
["mounted", "unmountSuspended"].includes(state.value),
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
return {
|
|
169
|
+
isPresent,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
function getAnimationName(node?: HTMLElement) {
|
|
174
|
+
return node ? getComputedStyle(node).animationName || "none" : "none";
|
|
175
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Component, PropType } from 'vue'
|
|
2
|
+
import { defineComponent, h } from 'vue'
|
|
3
|
+
import { Slot } from './Slot'
|
|
4
|
+
|
|
5
|
+
export type AsTag =
|
|
6
|
+
| 'a'
|
|
7
|
+
| 'button'
|
|
8
|
+
| 'div'
|
|
9
|
+
| 'form'
|
|
10
|
+
| 'h2'
|
|
11
|
+
| 'h3'
|
|
12
|
+
| 'img'
|
|
13
|
+
| 'input'
|
|
14
|
+
| 'label'
|
|
15
|
+
| 'li'
|
|
16
|
+
| 'nav'
|
|
17
|
+
| 'ol'
|
|
18
|
+
| 'p'
|
|
19
|
+
| 'span'
|
|
20
|
+
| 'svg'
|
|
21
|
+
| 'ul'
|
|
22
|
+
| 'template'
|
|
23
|
+
| ({} & string) // any other string
|
|
24
|
+
|
|
25
|
+
export interface PrimitiveProps {
|
|
26
|
+
/**
|
|
27
|
+
* Change the default rendered element for the one passed as a child, merging their props and behavior.
|
|
28
|
+
*
|
|
29
|
+
* Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.
|
|
30
|
+
*/
|
|
31
|
+
asChild?: boolean
|
|
32
|
+
/**
|
|
33
|
+
* The element or component this component should render as. Can be overwritten by `asChild`.
|
|
34
|
+
* @defaultValue "div"
|
|
35
|
+
*/
|
|
36
|
+
as?: AsTag | Component
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// For self closing tags, don't provide default slots because of hydration issue
|
|
40
|
+
const SELF_CLOSING_TAGS = ['area', 'img', 'input']
|
|
41
|
+
|
|
42
|
+
export const Primitive = defineComponent({
|
|
43
|
+
name: 'Primitive',
|
|
44
|
+
inheritAttrs: false,
|
|
45
|
+
props: {
|
|
46
|
+
asChild: {
|
|
47
|
+
type: Boolean,
|
|
48
|
+
default: false,
|
|
49
|
+
},
|
|
50
|
+
as: {
|
|
51
|
+
type: [String, Object] as PropType<AsTag | Component>,
|
|
52
|
+
default: 'div',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
setup(props, { attrs, slots }) {
|
|
56
|
+
const asTag = props.asChild ? 'template' : props.as
|
|
57
|
+
|
|
58
|
+
if (typeof asTag === 'string' && SELF_CLOSING_TAGS.includes(asTag))
|
|
59
|
+
return () => h(asTag, attrs)
|
|
60
|
+
|
|
61
|
+
if (asTag !== 'template')
|
|
62
|
+
return () => h(props.as, attrs, { default: slots.default })
|
|
63
|
+
|
|
64
|
+
return () => h(Slot, attrs, { default: slots.default })
|
|
65
|
+
},
|
|
66
|
+
})
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { cloneVNode, Comment, defineComponent, mergeProps } from "vue";
|
|
2
|
+
import { renderSlotFragments } from "../../shared";
|
|
3
|
+
|
|
4
|
+
export const Slot = defineComponent({
|
|
5
|
+
name: "PrimitiveSlot",
|
|
6
|
+
inheritAttrs: false,
|
|
7
|
+
setup(_, { attrs, slots }) {
|
|
8
|
+
return () => {
|
|
9
|
+
if (!slots.default) return null;
|
|
10
|
+
|
|
11
|
+
const children = renderSlotFragments(slots.default());
|
|
12
|
+
const firstNonCommentChildrenIndex = children.findIndex(
|
|
13
|
+
(child) => child.type !== Comment,
|
|
14
|
+
);
|
|
15
|
+
if (firstNonCommentChildrenIndex === -1) return children;
|
|
16
|
+
|
|
17
|
+
const firstNonCommentChildren = children[firstNonCommentChildrenIndex];
|
|
18
|
+
|
|
19
|
+
// Remove props ref from being inferred
|
|
20
|
+
delete firstNonCommentChildren.props?.ref;
|
|
21
|
+
|
|
22
|
+
// Manually merge props to ensure `firstNonCommentChildren.props`
|
|
23
|
+
// has higher priority than `attrs` and can override `attrs`.
|
|
24
|
+
// Otherwise `cloneVNode(firstNonCommentChildren, attrs)` will
|
|
25
|
+
// prioritize `attrs` and override `firstNonCommentChildren.props`.
|
|
26
|
+
const mergedProps = firstNonCommentChildren.props
|
|
27
|
+
? mergeProps(attrs, firstNonCommentChildren.props)
|
|
28
|
+
: attrs;
|
|
29
|
+
const cloned = cloneVNode(
|
|
30
|
+
{ ...firstNonCommentChildren, props: {} },
|
|
31
|
+
mergedProps,
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
if (children.length === 1) return cloned;
|
|
35
|
+
|
|
36
|
+
children[firstNonCommentChildrenIndex] = cloned;
|
|
37
|
+
return children;
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ComponentPublicInstance } from 'vue'
|
|
2
|
+
import { unrefElement } from '@vueuse/core'
|
|
3
|
+
import { computed, ref } from 'vue'
|
|
4
|
+
|
|
5
|
+
export function usePrimitiveElement<T extends ComponentPublicInstance>() {
|
|
6
|
+
const primitiveElement = ref<T>()
|
|
7
|
+
const currentElement = computed<HTMLElement>(() => ['#text', '#comment'].includes(primitiveElement.value?.$el.nodeName) ? primitiveElement.value?.$el.nextElementSibling : unrefElement(primitiveElement))
|
|
8
|
+
|
|
9
|
+
return {
|
|
10
|
+
primitiveElement,
|
|
11
|
+
currentElement,
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
export interface TeleportProps {
|
|
3
|
+
/**
|
|
4
|
+
* Vue native teleport component prop `:to`
|
|
5
|
+
*
|
|
6
|
+
* {@link https://vuejs.org/guide/built-ins/teleport.html#basic-usage}
|
|
7
|
+
*/
|
|
8
|
+
to?: string | HTMLElement
|
|
9
|
+
/**
|
|
10
|
+
* Disable teleport and render the component inline
|
|
11
|
+
*
|
|
12
|
+
* {@link https://vuejs.org/guide/built-ins/teleport.html#disabling-teleport}
|
|
13
|
+
*/
|
|
14
|
+
disabled?: boolean
|
|
15
|
+
/**
|
|
16
|
+
* Defer the resolving of a Teleport target until other parts of the
|
|
17
|
+
* application have mounted (requires Vue 3.5.0+)
|
|
18
|
+
*
|
|
19
|
+
* {@link https://vuejs.org/guide/built-ins/teleport.html#deferred-teleport}
|
|
20
|
+
*/
|
|
21
|
+
defer?: boolean
|
|
22
|
+
/**
|
|
23
|
+
* Used to force mounting when more control is needed. Useful when
|
|
24
|
+
* controlling animation with Vue animation libraries.
|
|
25
|
+
*/
|
|
26
|
+
forceMount?: boolean
|
|
27
|
+
}
|
|
28
|
+
</script>
|
|
29
|
+
|
|
30
|
+
<script setup lang="ts">
|
|
31
|
+
import { useMounted } from '@vueuse/core'
|
|
32
|
+
|
|
33
|
+
withDefaults(defineProps<TeleportProps>(), {
|
|
34
|
+
to: 'body',
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
const isMounted = useMounted()
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<template>
|
|
41
|
+
<Teleport
|
|
42
|
+
v-if="isMounted || forceMount"
|
|
43
|
+
:to="to"
|
|
44
|
+
:disabled="disabled"
|
|
45
|
+
:defer="defer"
|
|
46
|
+
>
|
|
47
|
+
<slot />
|
|
48
|
+
</Teleport>
|
|
49
|
+
</template>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as TeleportPrimitive, type TeleportProps } from './Teleport.vue'
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { PrimitiveProps } from "../Primitive";
|
|
3
|
+
|
|
4
|
+
export interface VisuallyHiddenProps extends PrimitiveProps {
|
|
5
|
+
feature?: "focusable" | "fully-hidden";
|
|
6
|
+
}
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<script setup lang="ts">
|
|
10
|
+
import { Primitive } from "../Primitive";
|
|
11
|
+
|
|
12
|
+
withDefaults(defineProps<VisuallyHiddenProps>(), {
|
|
13
|
+
as: "span",
|
|
14
|
+
feature: "focusable",
|
|
15
|
+
});
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<template>
|
|
19
|
+
<Primitive
|
|
20
|
+
:as="as"
|
|
21
|
+
:as-child="asChild"
|
|
22
|
+
:aria-hidden="feature === 'focusable' ? 'true' : undefined"
|
|
23
|
+
:data-hidden="feature === 'fully-hidden' ? '' : undefined"
|
|
24
|
+
:tabindex="feature === 'fully-hidden' ? '-1' : undefined"
|
|
25
|
+
:style="{
|
|
26
|
+
// See: https://github.com/twbs/bootstrap/blob/a360960b8dfdb4bf48f87539c2243458fa0366f7/scss/mixins/_visually-hidden.scss
|
|
27
|
+
position: 'absolute',
|
|
28
|
+
border: 0,
|
|
29
|
+
width: '1px',
|
|
30
|
+
height: '1px',
|
|
31
|
+
padding: 0,
|
|
32
|
+
margin: '-1px',
|
|
33
|
+
overflow: 'hidden',
|
|
34
|
+
clip: 'rect(0, 0, 0, 0)',
|
|
35
|
+
clipPath: 'inset(50%)',
|
|
36
|
+
whiteSpace: 'nowrap',
|
|
37
|
+
wordWrap: 'normal',
|
|
38
|
+
|
|
39
|
+
// Prevent causing unnecessary container scroll
|
|
40
|
+
// @see https://github.com/unovue/reka-ui/issues/2127
|
|
41
|
+
top: '-1px',
|
|
42
|
+
left: '-1px',
|
|
43
|
+
}"
|
|
44
|
+
>
|
|
45
|
+
<slot />
|
|
46
|
+
</Primitive>
|
|
47
|
+
</template>
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<script setup lang="ts" generic="T">
|
|
2
|
+
import type { VisuallyHiddenInputBubbleProps } from './VisuallyHiddenInputBubble.vue'
|
|
3
|
+
import { computed } from 'vue'
|
|
4
|
+
import VisuallyHiddenInputBubble from './VisuallyHiddenInputBubble.vue'
|
|
5
|
+
|
|
6
|
+
defineOptions({
|
|
7
|
+
inheritAttrs: false,
|
|
8
|
+
})
|
|
9
|
+
|
|
10
|
+
const props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {
|
|
11
|
+
feature: 'fully-hidden',
|
|
12
|
+
checked: undefined,
|
|
13
|
+
})
|
|
14
|
+
|
|
15
|
+
const isFormArrayEmptyAndRequired = computed(() =>
|
|
16
|
+
typeof props.value === 'object'
|
|
17
|
+
&& Array.isArray(props.value)
|
|
18
|
+
&& props.value.length === 0
|
|
19
|
+
&& props.required,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
const parsedValue = computed(() => {
|
|
23
|
+
// if primitive value
|
|
24
|
+
if (typeof props.value === 'string' || typeof props.value === 'number' || typeof props.value === 'boolean' || props.value === null || props.value === undefined) {
|
|
25
|
+
return [{ name: props.name, value: props.value }]
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// if array value
|
|
29
|
+
else if (typeof props.value === 'object' && Array.isArray(props.value)) {
|
|
30
|
+
return props.value.flatMap((obj, index) => {
|
|
31
|
+
// if item in array is object
|
|
32
|
+
if (typeof obj === 'object')
|
|
33
|
+
return Object.entries(obj).map(([key, value]) => ({ name: `${props.name}[${index}][${key}]`, value }))
|
|
34
|
+
// if item in array is not object, may be primitive
|
|
35
|
+
else
|
|
36
|
+
return ({ name: `${props.name}[${index}]`, value: obj })
|
|
37
|
+
})
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// if object value
|
|
41
|
+
else if (props.value !== null && typeof props.value === 'object' && !Array.isArray(props.value)) {
|
|
42
|
+
return Object.entries(props.value as object).map(([key, value]) => ({ name: `${props.name}[${key}]`, value }))
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return []
|
|
46
|
+
})
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<template>
|
|
50
|
+
<!-- We render single input if it's required -->
|
|
51
|
+
<VisuallyHiddenInputBubble
|
|
52
|
+
v-if="isFormArrayEmptyAndRequired"
|
|
53
|
+
:key="name"
|
|
54
|
+
v-bind="{ ...props, ...$attrs }"
|
|
55
|
+
:name="name"
|
|
56
|
+
:value="value"
|
|
57
|
+
/>
|
|
58
|
+
|
|
59
|
+
<VisuallyHiddenInputBubble
|
|
60
|
+
v-for="parsed in parsedValue"
|
|
61
|
+
v-else
|
|
62
|
+
:key="parsed.name"
|
|
63
|
+
v-bind="{ ...props, ...$attrs }"
|
|
64
|
+
:name="parsed.name"
|
|
65
|
+
:value="parsed.value"
|
|
66
|
+
/>
|
|
67
|
+
</template>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
export interface VisuallyHiddenInputBubbleProps<T> {
|
|
3
|
+
name: string;
|
|
4
|
+
value: T;
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
feature?: VisuallyHiddenProps["feature"];
|
|
9
|
+
}
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<script setup lang="ts" generic="T">
|
|
13
|
+
import type { VisuallyHiddenProps } from "./VisuallyHidden.vue";
|
|
14
|
+
import { computed, watch } from "vue";
|
|
15
|
+
import { usePrimitiveElement } from "../Primitive";
|
|
16
|
+
import VisuallyHidden from "./VisuallyHidden.vue";
|
|
17
|
+
|
|
18
|
+
defineOptions({
|
|
19
|
+
inheritAttrs: false,
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const props = withDefaults(defineProps<VisuallyHiddenInputBubbleProps<T>>(), {
|
|
23
|
+
feature: "fully-hidden",
|
|
24
|
+
checked: undefined,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const { primitiveElement, currentElement } = usePrimitiveElement();
|
|
28
|
+
const valueState = computed(() => props.checked ?? props.value);
|
|
29
|
+
|
|
30
|
+
watch(valueState, (cur, prev) => {
|
|
31
|
+
if (!currentElement.value) return;
|
|
32
|
+
|
|
33
|
+
const input = currentElement.value as HTMLInputElement;
|
|
34
|
+
const inputProto = window.HTMLInputElement.prototype;
|
|
35
|
+
const descriptor = Object.getOwnPropertyDescriptor(
|
|
36
|
+
inputProto,
|
|
37
|
+
"value",
|
|
38
|
+
) as PropertyDescriptor;
|
|
39
|
+
const setValue = descriptor.set;
|
|
40
|
+
if (setValue && cur !== prev) {
|
|
41
|
+
const inputEvent = new Event("input", { bubbles: true });
|
|
42
|
+
const changeEvent = new Event("change", { bubbles: true });
|
|
43
|
+
setValue.call(input, cur);
|
|
44
|
+
input.dispatchEvent(inputEvent);
|
|
45
|
+
input.dispatchEvent(changeEvent);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<VisuallyHidden
|
|
52
|
+
ref="primitiveElement"
|
|
53
|
+
v-bind="{ ...props, ...$attrs }"
|
|
54
|
+
as="input"
|
|
55
|
+
/>
|
|
56
|
+
</template>
|