bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
1 lines • 412 kB
Source Map (JSON)
{"version":3,"file":"BDatePicker-DPtAqGyV.mjs","names":["startOfMonth","endOfMonth","getDayOfWeek","CalendarDate","count","useId","isSameDay","isEqualMonth","isSameMonth","_hoisted_1","_hoisted_2","isEqualDay","isSameDay","isToday","getLocalTimeZone","isSameMonth","isSameDay","isEqualDay","useId","useId","isSameDay","_hoisted_1","isEqualDay","isEqualDay","isToday","getLocalTimeZone","isSameMonth","isSameDay","isEqualDay"],"sources":["../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/getActiveElement.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/handleAndDispatchCustomEvent.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useBodyScrollLock.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/date/calendar.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useEmitAsProps.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useFocusGuards.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useForwardExpose.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useForwardProps.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useForwardPropsEmits.js","../../../node_modules/.pnpm/aria-hidden@1.2.6/node_modules/aria-hidden/dist/es2015/index.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useHideOthers.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useId.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useSize.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/shared/useStateMachine.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Presence/usePresence.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Presence/Presence.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DismissableLayer/utils.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DismissableLayer/DismissableLayer.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/FocusScope/stack.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/FocusScope/utils.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/FocusScope/FocusScope.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Teleport/Teleport.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popper/PopperRoot.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popper/PopperAnchor.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popper/utils.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popper/PopperContent.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/useCalendar.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarRoot.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarCell.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarCellTrigger.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarGrid.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarGridBody.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarGridHead.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarGridRow.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarHeadCell.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarHeader.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarHeading.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarNext.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Calendar/CalendarPrev.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popover/PopoverRoot.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerRoot.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerCalendar.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerCell.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerCellTrigger.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popover/PopoverContentImpl.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popover/PopoverContentModal.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popover/PopoverContentNonModal.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popover/PopoverContent.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popover/PopoverPortal.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerContent.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerField.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerGrid.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerGridBody.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerGridHead.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerGridRow.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerHeadCell.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerHeader.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerHeading.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerInput.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerNext.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerPrev.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/Popover/PopoverTrigger.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DatePicker/DatePickerTrigger.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerRoot.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/useRangeCalendar.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarRoot.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerCalendar.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarCell.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerCell.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarCellTrigger.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerCellTrigger.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerContent.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerField.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarGrid.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerGrid.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarGridBody.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerGridBody.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarGridHead.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerGridHead.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarGridRow.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerGridRow.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarHeadCell.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerHeadCell.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarHeader.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerHeader.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarHeading.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerHeading.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerInput.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarNext.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerNext.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/RangeCalendar/RangeCalendarPrev.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerPrev.js","../../../node_modules/.pnpm/reka-ui@2.9.2_vue@3.5.31_typescript@5.9.3_/node_modules/reka-ui/dist/DateRangePicker/DateRangePickerTrigger.js","../src/components/BDatePicker/BDatePicker.vue","../src/components/BDatePicker/BDatePicker.vue","../src/components/BDatePicker/BDateRangePicker.vue","../src/components/BDatePicker/BDateRangePicker.vue"],"sourcesContent":["//#region src/shared/getActiveElement.ts\nfunction getActiveElement() {\n\tlet activeElement = document.activeElement;\n\tif (activeElement == null) return null;\n\twhile (activeElement != null && activeElement.shadowRoot != null && activeElement.shadowRoot.activeElement != null) activeElement = activeElement.shadowRoot.activeElement;\n\treturn activeElement;\n}\n\n//#endregion\nexport { getActiveElement };\n//# sourceMappingURL=getActiveElement.js.map","//#region src/shared/handleAndDispatchCustomEvent.ts\nfunction handleAndDispatchCustomEvent(name, handler, detail) {\n\tconst target = detail.originalEvent.target;\n\tconst event = new CustomEvent(name, {\n\t\tbubbles: false,\n\t\tcancelable: true,\n\t\tdetail\n\t});\n\tif (handler) target.addEventListener(name, handler, { once: true });\n\ttarget.dispatchEvent(event);\n}\n\n//#endregion\nexport { handleAndDispatchCustomEvent };\n//# sourceMappingURL=handleAndDispatchCustomEvent.js.map","import { injectConfigProviderContext } from \"../ConfigProvider/ConfigProvider.js\";\nimport { computed, nextTick, ref, watch } from \"vue\";\nimport { createSharedComposable, useEventListener } from \"@vueuse/core\";\nimport { isClient, isIOS, tryOnBeforeUnmount } from \"@vueuse/shared\";\nimport { defu } from \"defu\";\n\n//#region src/shared/useBodyScrollLock.ts\nconst useBodyLockStackCount = createSharedComposable(() => {\n\tconst map = ref(/* @__PURE__ */ new Map());\n\tconst initialOverflow = ref();\n\tconst locked = computed(() => {\n\t\tfor (const value of map.value.values()) if (value) return true;\n\t\treturn false;\n\t});\n\tconst context = injectConfigProviderContext({ scrollBody: ref(true) });\n\tlet stopTouchMoveListener = null;\n\tconst resetBodyStyle = () => {\n\t\tdocument.body.style.paddingRight = \"\";\n\t\tdocument.body.style.marginRight = \"\";\n\t\tdocument.body.style.pointerEvents = \"\";\n\t\tdocument.documentElement.style.removeProperty(\"--scrollbar-width\");\n\t\tdocument.body.style.overflow = initialOverflow.value ?? \"\";\n\t\tisIOS && stopTouchMoveListener?.();\n\t\tinitialOverflow.value = void 0;\n\t};\n\twatch(locked, (val, oldVal) => {\n\t\tif (!isClient) return;\n\t\tif (!val) {\n\t\t\tif (oldVal) resetBodyStyle();\n\t\t\treturn;\n\t\t}\n\t\tif (initialOverflow.value === void 0) initialOverflow.value = document.body.style.overflow;\n\t\tconst verticalScrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n\t\tconst defaultConfig = {\n\t\t\tpadding: verticalScrollbarWidth,\n\t\t\tmargin: 0\n\t\t};\n\t\tconst config = context.scrollBody?.value ? typeof context.scrollBody.value === \"object\" ? defu({\n\t\t\tpadding: context.scrollBody.value.padding === true ? verticalScrollbarWidth : context.scrollBody.value.padding,\n\t\t\tmargin: context.scrollBody.value.margin === true ? verticalScrollbarWidth : context.scrollBody.value.margin\n\t\t}, defaultConfig) : defaultConfig : {\n\t\t\tpadding: 0,\n\t\t\tmargin: 0\n\t\t};\n\t\tif (verticalScrollbarWidth > 0) {\n\t\t\tdocument.body.style.paddingRight = typeof config.padding === \"number\" ? `${config.padding}px` : String(config.padding);\n\t\t\tdocument.body.style.marginRight = typeof config.margin === \"number\" ? `${config.margin}px` : String(config.margin);\n\t\t\tdocument.documentElement.style.setProperty(\"--scrollbar-width\", `${verticalScrollbarWidth}px`);\n\t\t\tdocument.body.style.overflow = \"hidden\";\n\t\t}\n\t\tif (isIOS) stopTouchMoveListener = useEventListener(document, \"touchmove\", (e) => preventDefault(e), { passive: false });\n\t\tnextTick(() => {\n\t\t\tif (!locked.value) return;\n\t\t\tdocument.body.style.pointerEvents = \"none\";\n\t\t\tdocument.body.style.overflow = \"hidden\";\n\t\t});\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"sync\"\n\t});\n\treturn map;\n});\nfunction useBodyScrollLock(initialState) {\n\tconst id = Math.random().toString(36).substring(2, 7);\n\tconst map = useBodyLockStackCount();\n\tmap.value.set(id, initialState ?? false);\n\tconst locked = computed({\n\t\tget: () => map.value.get(id) ?? false,\n\t\tset: (value) => map.value.set(id, value)\n\t});\n\ttryOnBeforeUnmount(() => {\n\t\tmap.value.delete(id);\n\t});\n\treturn locked;\n}\nfunction checkOverflowScroll(ele) {\n\tconst style = window.getComputedStyle(ele);\n\tif (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) return true;\n\telse {\n\t\tconst parent = ele.parentNode;\n\t\tif (!(parent instanceof Element) || parent.tagName === \"BODY\") return false;\n\t\treturn checkOverflowScroll(parent);\n\t}\n}\nfunction preventDefault(rawEvent) {\n\tconst e = rawEvent || window.event;\n\tconst _target = e.target;\n\tif (_target instanceof Element && checkOverflowScroll(_target)) return false;\n\tif (e.touches.length > 1) return true;\n\tif (e.preventDefault && e.cancelable) e.preventDefault();\n\treturn false;\n}\n\n//#endregion\nexport { useBodyScrollLock };\n//# sourceMappingURL=useBodyScrollLock.js.map","import { getDaysInMonth, getLastFirstDayOfWeek, getNextLastDayOfWeek } from \"./comparators.js\";\nimport { chunk } from \"./utils.js\";\nimport { CalendarDate, endOfMonth, endOfYear, getDayOfWeek, startOfMonth, startOfWeek, startOfYear } from \"@internationalized/date\";\n\n//#region src/date/calendar.ts\n/**\n* Retrieves an array of date values representing the days between\n* the provided start and end dates.\n*/\nfunction getDaysBetween(start, end) {\n\tconst days = [];\n\tlet dCurrent = start.add({ days: 1 });\n\tconst dEnd = end;\n\twhile (dCurrent.compare(dEnd) < 0) {\n\t\tdays.push(dCurrent);\n\t\tdCurrent = dCurrent.add({ days: 1 });\n\t}\n\treturn days;\n}\nfunction createMonth(props) {\n\tconst { dateObj, weekStartsOn, fixedWeeks, locale } = props;\n\tconst daysInMonth = getDaysInMonth(dateObj);\n\tconst datesArray = Array.from({ length: daysInMonth }, (_, i) => dateObj.set({ day: i + 1 }));\n\tconst firstDayOfMonth = startOfMonth(dateObj);\n\tconst lastDayOfMonth = endOfMonth(dateObj);\n\tconst lastSunday = getLastFirstDayOfWeek(firstDayOfMonth, weekStartsOn, locale);\n\tconst nextSaturday = getNextLastDayOfWeek(lastDayOfMonth, weekStartsOn, locale);\n\tconst lastMonthDays = getDaysBetween(lastSunday.subtract({ days: 1 }), firstDayOfMonth);\n\tconst nextMonthDays = getDaysBetween(lastDayOfMonth, nextSaturday.add({ days: 1 }));\n\tconst totalDays = lastMonthDays.length + datesArray.length + nextMonthDays.length;\n\tif (fixedWeeks && totalDays < 42) {\n\t\tconst extraDays = 42 - totalDays;\n\t\tlet startFrom = nextMonthDays[nextMonthDays.length - 1];\n\t\tif (!startFrom) startFrom = endOfMonth(dateObj);\n\t\tconst extraDaysArray = Array.from({ length: extraDays }, (_, i) => {\n\t\t\tconst incr = i + 1;\n\t\t\treturn startFrom.add({ days: incr });\n\t\t});\n\t\tnextMonthDays.push(...extraDaysArray);\n\t}\n\tconst allDays = lastMonthDays.concat(datesArray, nextMonthDays);\n\tconst weeks = chunk(allDays, 7);\n\treturn {\n\t\tvalue: dateObj,\n\t\tcells: allDays,\n\t\trows: weeks\n\t};\n}\nfunction startOfDecade(dateObj) {\n\treturn startOfYear(dateObj.subtract({ years: dateObj.year - Math.floor(dateObj.year / 10) * 10 }).set({\n\t\tday: 1,\n\t\tmonth: 1\n\t}));\n}\nfunction endOfDecade(dateObj) {\n\treturn endOfYear(dateObj.add({ years: Math.ceil((dateObj.year + 1) / 10) * 10 - dateObj.year - 1 }).set({\n\t\tday: 35,\n\t\tmonth: 12\n\t}));\n}\nfunction createDecade(props) {\n\tconst { dateObj, startIndex, endIndex } = props;\n\tconst decadeArray = Array.from({ length: Math.abs(startIndex ?? 0) + endIndex }, (_, i) => i <= Math.abs(startIndex ?? 0) ? dateObj.subtract({ years: i }).set({\n\t\tday: 1,\n\t\tmonth: 1\n\t}) : dateObj.add({ years: i - endIndex }).set({\n\t\tday: 1,\n\t\tmonth: 1\n\t}));\n\tdecadeArray.sort((a, b) => a.year - b.year);\n\treturn decadeArray;\n}\nfunction createYear(props) {\n\tconst { dateObj, numberOfMonths = 1, pagedNavigation = false } = props;\n\tif (numberOfMonths && pagedNavigation) {\n\t\tconst monthsArray$1 = Array.from({ length: Math.floor(12 / numberOfMonths) }, (_, i) => startOfMonth(dateObj.set({ month: i * numberOfMonths + 1 })));\n\t\treturn monthsArray$1;\n\t}\n\tconst monthsArray = Array.from({ length: 12 }, (_, i) => startOfMonth(dateObj.set({ month: i + 1 })));\n\treturn monthsArray;\n}\nfunction createMonths(props) {\n\tconst { numberOfMonths, dateObj,...monthProps } = props;\n\tconst months = [];\n\tif (!numberOfMonths || numberOfMonths === 1) {\n\t\tmonths.push(createMonth({\n\t\t\t...monthProps,\n\t\t\tdateObj\n\t\t}));\n\t\treturn months;\n\t}\n\tmonths.push(createMonth({\n\t\t...monthProps,\n\t\tdateObj\n\t}));\n\tfor (let i = 1; i < numberOfMonths; i++) {\n\t\tconst nextMonth = dateObj.add({ months: i });\n\t\tmonths.push(createMonth({\n\t\t\t...monthProps,\n\t\t\tdateObj: nextMonth\n\t\t}));\n\t}\n\treturn months;\n}\n/**\n* Creates a 3x4 grid of months for a given year.\n*/\nfunction createMonthGrid(props) {\n\tconst { dateObj } = props;\n\tconst months = createYear({ dateObj });\n\treturn {\n\t\tvalue: dateObj,\n\t\tcells: months,\n\t\trows: chunk(months, 4)\n\t};\n}\n/**\n* Creates a 3x4 grid of years (decade-aligned).\n* The grid starts from the decade that contains the given date.\n*/\nfunction createYearGrid(props) {\n\tconst { dateObj, yearsPerPage = 12, decadeAligned = true } = props;\n\tlet startYear;\n\tif (decadeAligned) startYear = startOfDecade(dateObj).year;\n\telse startYear = dateObj.year;\n\tconst years = Array.from({ length: yearsPerPage }, (_, i) => startOfYear(dateObj.set({ year: startYear + i })));\n\tconst firstYear = years[0];\n\treturn {\n\t\tvalue: firstYear,\n\t\tcells: years,\n\t\trows: chunk(years, 4)\n\t};\n}\nfunction createYearRange({ start, end }) {\n\tconst years = [];\n\tif (!start || !end) return years;\n\tlet current = startOfYear(start);\n\twhile (current.compare(end) <= 0) {\n\t\tyears.push(current);\n\t\tcurrent = startOfYear(current.add({ years: 1 }));\n\t}\n\treturn years;\n}\nfunction createDateRange({ start, end }) {\n\tconst dates = [];\n\tif (!start || !end) return dates;\n\tlet current = start;\n\twhile (current.compare(end) <= 0) {\n\t\tdates.push(current);\n\t\tcurrent = current.add({ days: 1 });\n\t}\n\treturn dates;\n}\n/**\n* It's better to use `getWeekStart` from `@internationalized/date`,\n* but sadly it is not yet exported from the package.\n* And the `Intl.Locale` API is not supported well enough yet.\n*/\nfunction getWeekStartsOn(locale) {\n\tconst monday = new CalendarDate(2025, 1, 6);\n\tconst dayOfWeek = getDayOfWeek(monday, locale);\n\treturn (1 - dayOfWeek + 7) % 7;\n}\n/**\n* Returns the locale-specific week number\n*/\nfunction getWeekNumber(date, locale = \"en-US\", firstDayOfWeek) {\n\tconst jan1 = new CalendarDate(date.year, 1, 1);\n\tconst usesISOWeek = jan1.toDate(\"UTC\").getUTCDay() !== getDayOfWeek(jan1, locale);\n\tconst weekStartsOn = firstDayOfWeek ?? (usesISOWeek ? \"mon\" : \"sun\");\n\tconst firstWeekContainsDate = usesISOWeek ? 4 : 1;\n\tconst dayOfWeek = getDayOfWeek(date, locale, weekStartsOn);\n\tconst decidingDay = date.add({ days: 7 - firstWeekContainsDate - dayOfWeek });\n\tconst weekYear = decidingDay.year;\n\tconst week1Ref = new CalendarDate(weekYear, 1, firstWeekContainsDate);\n\tconst week1Start = startOfWeek(week1Ref, locale, weekStartsOn);\n\tconst currentWeekStart = startOfWeek(date, locale, weekStartsOn);\n\tconst MS_PER_WEEK = 7 * 24 * 60 * 60 * 1e3;\n\tconst daysDiff = Math.round((currentWeekStart.toDate(\"UTC\").getTime() - week1Start.toDate(\"UTC\").getTime()) / MS_PER_WEEK);\n\treturn daysDiff + 1;\n}\n\n//#endregion\nexport { createDateRange, createDecade, createMonth, createMonthGrid, createMonths, createYear, createYearGrid, createYearRange, endOfDecade, getDaysBetween, getWeekNumber, getWeekStartsOn, startOfDecade };\n//# sourceMappingURL=calendar.js.map","import { camelize, getCurrentInstance, toHandlerKey } from \"vue\";\n\n//#region src/shared/useEmitAsProps.ts\n/**\n* The `useEmitAsProps` function is a TypeScript utility that converts emitted events into props for a\n* Vue component.\n* @param emit - The `emit` parameter is a function that is used to emit events from a component. It\n* takes two parameters: `name` which is the name of the event to be emitted, and `...args` which are\n* the arguments to be passed along with the event.\n* @returns The function `useEmitAsProps` returns an object that maps event names to functions that\n* call the `emit` function with the corresponding event name and arguments.\n*/\nfunction useEmitAsProps(emit) {\n\tconst vm = getCurrentInstance();\n\tconst events = vm?.type.emits;\n\tconst result = {};\n\tif (!events?.length) console.warn(`No emitted event found. Please check component: ${vm?.type.__name}`);\n\tevents?.forEach((ev) => {\n\t\tresult[toHandlerKey(camelize(ev))] = (...arg) => emit(ev, ...arg);\n\t});\n\treturn result;\n}\n\n//#endregion\nexport { useEmitAsProps };\n//# sourceMappingURL=useEmitAsProps.js.map","import { watchEffect } from \"vue\";\nimport { isClient } from \"@vueuse/shared\";\n\n//#region src/shared/useFocusGuards.ts\n/** Number of components which have requested interest to have focus guards */\nlet count = 0;\n/**\n* Injects a pair of focus guards at the edges of the whole DOM tree\n* to ensure `focusin` & `focusout` events can be caught consistently.\n*/\nfunction useFocusGuards() {\n\twatchEffect((cleanupFn) => {\n\t\tif (!isClient) return;\n\t\tconst edgeGuards = document.querySelectorAll(\"[data-reka-focus-guard]\");\n\t\tdocument.body.insertAdjacentElement(\"afterbegin\", edgeGuards[0] ?? createFocusGuard());\n\t\tdocument.body.insertAdjacentElement(\"beforeend\", edgeGuards[1] ?? createFocusGuard());\n\t\tcount++;\n\t\tcleanupFn(() => {\n\t\t\tif (count === 1) document.querySelectorAll(\"[data-reka-focus-guard]\").forEach((node) => node.remove());\n\t\t\tcount--;\n\t\t});\n\t});\n}\nfunction createFocusGuard() {\n\tconst element = document.createElement(\"span\");\n\telement.setAttribute(\"data-reka-focus-guard\", \"\");\n\telement.tabIndex = 0;\n\telement.style.outline = \"none\";\n\telement.style.opacity = \"0\";\n\telement.style.position = \"fixed\";\n\telement.style.pointerEvents = \"none\";\n\treturn element;\n}\n\n//#endregion\nexport { useFocusGuards };\n//# sourceMappingURL=useFocusGuards.js.map","import { computed, getCurrentInstance, onUpdated, ref, triggerRef } from \"vue\";\nimport { unrefElement } from \"@vueuse/core\";\n\n//#region src/shared/useForwardExpose.ts\nfunction useForwardExpose() {\n\tconst instance = getCurrentInstance();\n\tconst currentRef = ref();\n\tconst currentElement = computed(() => resolveCurrentElement());\n\tonUpdated(() => {\n\t\tif (currentElement.value !== resolveCurrentElement()) triggerRef(currentRef);\n\t});\n\tfunction resolveCurrentElement() {\n\t\treturn currentRef.value && \"$el\" in currentRef.value && [\"#text\", \"#comment\"].includes(currentRef.value.$el.nodeName) ? currentRef.value.$el.nextElementSibling : unrefElement(currentRef);\n\t}\n\tconst localExpose = Object.assign({}, instance.exposed);\n\tconst ret = {};\n\tfor (const key in instance.props) Object.defineProperty(ret, key, {\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t\tget: () => instance.props[key]\n\t});\n\tif (Object.keys(localExpose).length > 0) for (const key in localExpose) Object.defineProperty(ret, key, {\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t\tget: () => localExpose[key]\n\t});\n\tObject.defineProperty(ret, \"$el\", {\n\t\tenumerable: true,\n\t\tconfigurable: true,\n\t\tget: () => instance.vnode.el\n\t});\n\tinstance.exposed = ret;\n\tfunction forwardRef(ref$1) {\n\t\tcurrentRef.value = ref$1;\n\t\tif (!ref$1) return;\n\t\tObject.defineProperty(ret, \"$el\", {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tget: () => ref$1 instanceof Element ? ref$1 : ref$1.$el\n\t\t});\n\t\tif (!(ref$1 instanceof Element) && !Object.prototype.hasOwnProperty.call(ref$1, \"$el\")) {\n\t\t\tconst childExposed = ref$1.$.exposed;\n\t\t\tconst merged = Object.assign({}, ret);\n\t\t\tfor (const key in childExposed) Object.defineProperty(merged, key, {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true,\n\t\t\t\tget: () => childExposed[key]\n\t\t\t});\n\t\t\tinstance.exposed = merged;\n\t\t}\n\t}\n\treturn {\n\t\tforwardRef,\n\t\tcurrentRef,\n\t\tcurrentElement\n\t};\n}\n\n//#endregion\nexport { useForwardExpose };\n//# sourceMappingURL=useForwardExpose.js.map","import { camelize, computed, getCurrentInstance, toRef } from \"vue\";\n\n//#region src/shared/useForwardProps.ts\n/**\n* The `useForwardProps` function in TypeScript takes in a set of props and returns a computed value\n* that combines default props with assigned props from the current instance.\n* @param {T} props - The `props` parameter is an object that represents the props passed to a\n* component.\n* @returns computed value that combines the default props, preserved props, and assigned props.\n*/\nfunction useForwardProps(props) {\n\tconst vm = getCurrentInstance();\n\tconst defaultProps = Object.keys(vm?.type.props ?? {}).reduce((prev, curr) => {\n\t\tconst defaultValue = (vm?.type.props[curr]).default;\n\t\tif (defaultValue !== void 0) prev[curr] = defaultValue;\n\t\treturn prev;\n\t}, {});\n\tconst refProps = toRef(props);\n\treturn computed(() => {\n\t\tconst preservedProps = {};\n\t\tconst assignedProps = vm?.vnode.props ?? {};\n\t\tObject.keys(assignedProps).forEach((key) => {\n\t\t\tpreservedProps[camelize(key)] = assignedProps[key];\n\t\t});\n\t\treturn Object.keys({\n\t\t\t...defaultProps,\n\t\t\t...preservedProps\n\t\t}).reduce((prev, curr) => {\n\t\t\tif (refProps.value[curr] !== void 0) prev[curr] = refProps.value[curr];\n\t\t\treturn prev;\n\t\t}, {});\n\t});\n}\n\n//#endregion\nexport { useForwardProps };\n//# sourceMappingURL=useForwardProps.js.map","import { useEmitAsProps } from \"./useEmitAsProps.js\";\nimport { useForwardProps } from \"./useForwardProps.js\";\nimport { computed } from \"vue\";\n\n//#region src/shared/useForwardPropsEmits.ts\n/**\n* The function `useForwardPropsEmits` takes in props and an optional emit function, and returns a\n* computed object that combines the parsed props and emits as props.\n* @param {T} props - The `props` parameter is of type `T`, which is a generic type that extends the\n* parameters of the `useForwardProps` function. It represents the props object that is passed to the\n* `useForwardProps` function.\n* @param [emit] - The `emit` parameter is a function that can be used to emit events. It takes two\n* arguments: `name`, which is the name of the event to be emitted, and `args`, which are the arguments\n* to be passed along with the event.\n* @returns a computed property that combines the parsed\n* props and emits as props.\n*/\nfunction useForwardPropsEmits(props, emit) {\n\tconst parsedProps = useForwardProps(props);\n\tconst emitsAsProps = emit ? useEmitAsProps(emit) : {};\n\treturn computed(() => ({\n\t\t...parsedProps.value,\n\t\t...emitsAsProps\n\t}));\n}\n\n//#endregion\nexport { useForwardPropsEmits };\n//# sourceMappingURL=useForwardPropsEmits.js.map","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide aria-live elements - https://github.com/theKashey/aria-hidden/issues/10\n // and script elements, as they have no impact on accessibility.\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live], script')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","import { onUnmounted, watch } from \"vue\";\nimport { unrefElement } from \"@vueuse/core\";\nimport { hideOthers } from \"aria-hidden\";\n\n//#region src/shared/useHideOthers.ts\n/**\n* The `useHideOthers` function is a TypeScript function that takes a target element reference and\n* hides all other elements in ARIA when the target element is present, and restores the visibility of the\n* hidden elements when the target element is removed.\n* @param {MaybeElementRef} target - The `target` parameter is a reference to the element that you want\n* to hide other elements when it is clicked or focused.\n*/\nfunction useHideOthers(target) {\n\tlet undo;\n\twatch(() => unrefElement(target), (el) => {\n\t\tlet isInsideClosedPopover = false;\n\t\ttry {\n\t\t\tisInsideClosedPopover = !!el?.closest(\"[popover]:not(:popover-open)\");\n\t\t} catch {}\n\t\tif (el && !isInsideClosedPopover) undo = hideOthers(el);\n\t\telse if (undo) undo();\n\t});\n\tonUnmounted(() => {\n\t\tif (undo) undo();\n\t});\n}\n\n//#endregion\nexport { useHideOthers };\n//# sourceMappingURL=useHideOthers.js.map","import { injectConfigProviderContext } from \"../ConfigProvider/ConfigProvider.js\";\nimport * as vue from \"vue\";\n\n//#region src/shared/useId.ts\nlet count = 0;\n/**\n* The `useId` function generates a unique identifier using a provided deterministic ID or a default\n* one prefixed with \"reka-\", or the provided one via `useId` props from `<ConfigProvider>`.\n* @param {string | null | undefined} [deterministicId] - The `useId` function you provided takes an\n* optional parameter `deterministicId`, which can be a string, null, or undefined. If\n* `deterministicId` is provided, the function will return it. Otherwise, it will generate an id using\n* the `useId` function obtained\n*/\nfunction useId(deterministicId, prefix = \"reka\") {\n\tif (deterministicId) return deterministicId;\n\tlet id;\n\tif (\"useId\" in vue) id = vue.useId?.();\n\telse {\n\t\tconst configProviderContext = injectConfigProviderContext({ useId: void 0 });\n\t\tid = configProviderContext.useId?.() ?? `${++count}`;\n\t}\n\treturn prefix ? `${prefix}-${id}` : id;\n}\n\n//#endregion\nexport { useId };\n//# sourceMappingURL=useId.js.map","import { computed, onMounted, ref } from \"vue\";\nimport { unrefElement } from \"@vueuse/core\";\n\n//#region src/shared/useSize.ts\nfunction useSize(element) {\n\tconst size = ref();\n\tconst width = computed(() => size.value?.width ?? 0);\n\tconst height = computed(() => size.value?.height ?? 0);\n\tonMounted(() => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) {\n\t\t\tsize.value = {\n\t\t\t\twidth: el.offsetWidth,\n\t\t\t\theight: el.offsetHeight\n\t\t\t};\n\t\t\tconst resizeObserver = new ResizeObserver((entries) => {\n\t\t\t\tif (!Array.isArray(entries)) return;\n\t\t\t\tif (!entries.length) return;\n\t\t\t\tconst entry = entries[0];\n\t\t\t\tlet width$1;\n\t\t\t\tlet height$1;\n\t\t\t\tif (\"borderBoxSize\" in entry) {\n\t\t\t\t\tconst borderSizeEntry = entry.borderBoxSize;\n\t\t\t\t\tconst borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n\t\t\t\t\twidth$1 = borderSize.inlineSize;\n\t\t\t\t\theight$1 = borderSize.blockSize;\n\t\t\t\t} else {\n\t\t\t\t\twidth$1 = el.offsetWidth;\n\t\t\t\t\theight$1 = el.offsetHeight;\n\t\t\t\t}\n\t\t\t\tsize.value = {\n\t\t\t\t\twidth: width$1,\n\t\t\t\t\theight: height$1\n\t\t\t\t};\n\t\t\t});\n\t\t\tresizeObserver.observe(el, { box: \"border-box\" });\n\t\t\treturn () => resizeObserver.unobserve(el);\n\t\t} else size.value = void 0;\n\t});\n\treturn {\n\t\twidth,\n\t\theight\n\t};\n}\n\n//#endregion\nexport { useSize };\n//# sourceMappingURL=useSize.js.map","import { ref } from \"vue\";\n\n//#region src/shared/useStateMachine.ts\n/**\n* The `useStateMachine` function is a TypeScript function that creates a state machine and returns the\n* current state and a dispatch function to update the state based on events.\n* @param initialState - The `initialState` parameter is the initial state of the state machine. It\n* represents the starting point of the state machine's state.\n* @param machine - The `machine` parameter is an object that represents a state machine. It should\n* have keys that correspond to the possible states of the machine, and the values should be objects\n* that represent the possible events and their corresponding next states.\n* @returns The `useStateMachine` function returns an object with two properties: `state` and\n* `dispatch`.\n*/\nfunction useStateMachine(initialState, machine) {\n\tconst state = ref(initialState);\n\tfunction reducer(event) {\n\t\tconst nextState = machine[state.value][event];\n\t\treturn nextState ?? state.value;\n\t}\n\tconst dispatch = (event) => {\n\t\tstate.value = reducer(event);\n\t};\n\treturn {\n\t\tstate,\n\t\tdispatch\n\t};\n}\n\n//#endregion\nexport { useStateMachine };\n//# sourceMappingURL=useStateMachine.js.map","import { useStateMachine } from \"../shared/useStateMachine.js\";\nimport { computed, nextTick, onUnmounted, ref, watch } from \"vue\";\nimport { defaultWindow } from \"@vueuse/core\";\nimport { isClient } from \"@vueuse/shared\";\n\n//#region src/Presence/usePresence.ts\nfunction usePresence(present, node) {\n\tconst stylesRef = ref({});\n\tconst prevAnimationNameRef = ref(\"none\");\n\tconst prevPresentRef = ref(present);\n\tconst initialState = present.value ? \"mounted\" : \"unmounted\";\n\tlet timeoutId;\n\tconst ownerWindow = node.value?.ownerDocument.defaultView ?? defaultWindow;\n\tconst { state, dispatch } = useStateMachine(initialState, {\n\t\tmounted: {\n\t\t\tUNMOUNT: \"unmounted\",\n\t\t\tANIMATION_OUT: \"unmountSuspended\"\n\t\t},\n\t\tunmountSuspended: {\n\t\t\tMOUNT: \"mounted\",\n\t\t\tANIMATION_END: \"unmounted\"\n\t\t},\n\t\tunmounted: { MOUNT: \"mounted\" }\n\t});\n\tconst dispatchCustomEvent = (name) => {\n\t\tif (isClient) {\n\t\t\tconst customEvent = new CustomEvent(name, {\n\t\t\t\tbubbles: false,\n\t\t\t\tcancelable: false\n\t\t\t});\n\t\t\tnode.value?.dispatchEvent(customEvent);\n\t\t}\n\t};\n\twatch(present, async (currentPresent, prevPresent) => {\n\t\tconst hasPresentChanged = prevPresent !== currentPresent;\n\t\tawait nextTick();\n\t\tif (hasPresentChanged) {\n\t\t\tconst prevAnimationName = prevAnimationNameRef.value;\n\t\t\tconst currentAnimationName = getAnimationName(node.value);\n\t\t\tif (currentPresent) {\n\t\t\t\tdispatch(\"MOUNT\");\n\t\t\t\tdispatchCustomEvent(\"enter\");\n\t\t\t\tif (currentAnimationName === \"none\") dispatchCustomEvent(\"after-enter\");\n\t\t\t} else if (currentAnimationName === \"none\" || currentAnimationName === \"undefined\" || stylesRef.value?.display === \"none\") {\n\t\t\t\tdispatch(\"UNMOUNT\");\n\t\t\t\tdispatchCustomEvent(\"leave\");\n\t\t\t\tdispatchCustomEvent(\"after-leave\");\n\t\t\t} else {\n\t\t\t\t/**\n\t\t\t\t* When `present` changes to `false`, we check changes to animation-name to\n\t\t\t\t* determine whether an animation has started. We chose this approach (reading\n\t\t\t\t* computed styles) because there is no `animationrun` event and `animationstart`\n\t\t\t\t* fires after `animation-delay` has expired which would be too late.\n\t\t\t\t*/\n\t\t\t\tconst isAnimating = prevAnimationName !== currentAnimationName;\n\t\t\t\tif (prevPresent && isAnimating) {\n\t\t\t\t\tdispatch(\"ANIMATION_OUT\");\n\t\t\t\t\tdispatchCustomEvent(\"leave\");\n\t\t\t\t} else {\n\t\t\t\t\tdispatch(\"UNMOUNT\");\n\t\t\t\t\tdispatchCustomEvent(\"after-leave\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, { immediate: true });\n\t/**\n\t* Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n\t* event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n\t* make sure we only trigger ANIMATION_END for the currently active animation.\n\t*/\n\tconst handleAnimationEnd = (event) => {\n\t\tconst currentAnimationName = getAnimationName(node.value);\n\t\tconst isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n\t\tconst directionName = state.value === \"mounted\" ? \"enter\" : \"leave\";\n\t\tif (event.target === node.value && isCurrentAnimation) {\n\t\t\tdispatchCustomEvent(`after-${directionName}`);\n\t\t\tdispatch(\"ANIMATION_END\");\n\t\t\tif (!prevPresentRef.value) {\n\t\t\t\tconst currentFillMode = node.value.style.animationFillMode;\n\t\t\t\tnode.value.style.animationFillMode = \"forwards\";\n\t\t\t\ttimeoutId = ownerWindow?.setTimeout(() => {\n\t\t\t\t\tif (node.value?.style.animationFillMode === \"forwards\") node.value.style.animationFillMode = currentFillMode;\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (event.target === node.value && currentAnimationName === \"none\") dispatch(\"ANIMATION_END\");\n\t};\n\tconst handleAnimationStart = (event) => {\n\t\tif (event.target === node.value) prevAnimationNameRef.value = getAnimationName(node.value);\n\t};\n\tconst watcher = watch(node, (newNode, oldNode) => {\n\t\tif (newNode) {\n\t\t\tstylesRef.value = getComputedStyle(newNode);\n\t\t\tnewNode.addEventListener(\"animationstart\", handleAnimationStart);\n\t\t\tnewNode.addEventListener(\"animationcancel\", handleAnimationEnd);\n\t\t\tnewNode.addEventListener(\"animationend\", handleAnimationEnd);\n\t\t} else {\n\t\t\tdispatch(\"ANIMATION_END\");\n\t\t\tif (timeoutId !== void 0) ownerWindow?.clearTimeout(timeoutId);\n\t\t\toldNode?.removeEventListener(\"animationstart\", handleAnimationStart);\n\t\t\toldNode?.removeEventListener(\"animationcancel\", handleAnimationEnd);\n\t\t\toldNode?.removeEventListener(\"animationend\", handleAnimationEnd);\n\t\t}\n\t}, { immediate: true });\n\tconst stateWatcher = watch(state, () => {\n\t\tconst currentAnimationName = getAnimationName(node.value);\n\t\tprevAnimationNameRef.value = state.value === \"mounted\" ? currentAnimationName : \"none\";\n\t});\n\tonUnmounted(() => {\n\t\twatcher();\n\t\tstateWatcher();\n\t});\n\tconst isPresent = computed(() => [\"mounted\", \"unmountSuspended\"].includes(state.value));\n\treturn { isPresent };\n}\nfunction getAnimationName(node) {\n\treturn node ? getComputedStyle(node).animationName || \"none\" : \"none\";\n}\n\n//#endregion\nexport { usePresence };\n//# sourceMappingURL=usePresence.js.map","import { renderSlotFragments } from \"../shared/renderSlotFragments.js\";\nimport { usePresence } from \"./usePresence.js\";\nimport { defineComponent, getCurrentInstance, h, ref, toRefs } from \"vue\";\nimport { unrefElement } from \"@vueuse/core\";\n\n//#region src/Presence/Presence.ts\nvar Presence_default = defineComponent({\n\tname: \"Presence\",\n\tprops: {\n\t\tpresent: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true\n\t\t},\n\t\tforceMount: { type: Boolean }\n\t},\n\tslots: {},\n\tsetup(props, { slots, expose }) {\n\t\tconst { present, forceMount } = toRefs(props);\n\t\tconst node = ref();\n\t\tconst { isPresent } = usePresence(present, node);\n\t\texpose({ present: isPresent });\n\t\tlet children = slots.default({ present: isPresent.value });\n\t\tchildren = renderSlotFragments(children || []);\n\t\tconst instance = get