bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
1 lines • 313 kB
Source Map (JSON)
{"version":3,"file":"BDatePicker-DfzZBWjU.mjs","names":["startOfMonth","endOfMonth","getDayOfWeek","CalendarDate","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/date/calendar.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":["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 { getDaysInMonth, isAfter, isBefore, toDate } from \"../date/comparators.js\";\nimport { createMonths } from \"../date/calendar.js\";\nimport { useDateFormatter } from \"../shared/useDateFormatter.js\";\nimport { computed, ref, watch } from \"vue\";\nimport { isEqualMonth, isSameDay, isSameMonth } from \"@internationalized/date\";\n\n//#region src/Calendar/useCalendar.ts\nfunction useCalendarState(props) {\n\tfunction isDateSelected(dateObj) {\n\t\tif (Array.isArray(props.date.value)) return props.date.value.some((d) => isSameDay(d, dateObj));\n\t\telse if (!props.date.value) return false;\n\t\telse return isSameDay(props.date.value, dateObj);\n\t}\n\tconst isInvalid = computed(() => {\n\t\tif (Array.isArray(props.date.value)) {\n\t\t\tif (!props.date.value.length) return false;\n\t\t\tfor (const dateObj of props.date.value) {\n\t\t\t\tif (props.isDateDisabled?.(dateObj)) return true;\n\t\t\t\tif (props.isDateUnavailable?.(dateObj)) return true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (!props.date.value) return false;\n\t\t\tif (props.isDateDisabled?.(props.date.value)) return true;\n\t\t\tif (props.isDateUnavailable?.(props.date.value)) return true;\n\t\t}\n\t\treturn false;\n\t});\n\tconst hasSelectedDate = computed(() => {\n\t\treturn Array.isArray(props.date.value) ? props.date.value.length > 0 : !!props.date.value;\n\t});\n\tconst isSelectedDateDisabled = computed(() => {\n\t\tif (Array.isArray(props.date.value)) {\n\t\t\tif (!props.date.value.length) return false;\n\t\t\treturn props.date.value.some((dateObj) => props.isDateDisabled?.(dateObj));\n\t\t}\n\t\tif (!props.date.value) return false;\n\t\treturn !!props.isDateDisabled?.(props.date.value);\n\t});\n\treturn {\n\t\tisDateSelected,\n\t\tisInvalid,\n\t\thasSelectedDate,\n\t\tisSelectedDateDisabled\n\t};\n}\nfunction handleNextDisabled(lastPeriodInView, nextPageFunc) {\n\tconst firstPeriodOfNextPage = nextPageFunc(lastPeriodInView);\n\tconst diff = firstPeriodOfNextPage.compare(lastPeriodInView);\n\tconst duration = {};\n\tif (diff >= 7) duration.day = 1;\n\tif (diff >= getDaysInMonth(lastPeriodInView)) duration.month = 1;\n\treturn firstPeriodOfNextPage.set({ ...duration });\n}\nfunction handlePrevDisabled(firstPeriodInView, prevPageFunc) {\n\tconst lastPeriodOfPrevPage = prevPageFunc(firstPeriodInView);\n\tconst diff = firstPeriodInView.compare(lastPeriodOfPrevPage);\n\tconst duration = {};\n\tif (diff >= 7) duration.day = 35;\n\tif (diff >= getDaysInMonth(firstPeriodInView)) duration.month = 13;\n\treturn lastPeriodOfPrevPage.set({ ...duration });\n}\nfunction handleNextPage(date, nextPageFunc) {\n\treturn nextPageFunc(date);\n}\nfunction handlePrevPage(date, prevPageFunc) {\n\treturn prevPageFunc(date);\n}\nfunction useCalendar(props) {\n\tconst formatter = useDateFormatter(props.locale.value);\n\tconst headingFormatOptions = computed(() => {\n\t\tconst options = { calendar: props.placeholder.value.calendar.identifier };\n\t\tif (props.placeholder.value.calendar.identifier === \"gregory\" && props.placeholder.value.era === \"BC\") options.era = \"short\";\n\t\treturn options;\n\t});\n\tconst grid = ref(createMonths({\n\t\tdateObj: props.placeholder.value,\n\t\tweekStartsOn: props.weekStartsOn.value,\n\t\tlocale: props.locale.value,\n\t\tfixedWeeks: props.fixedWeeks.value,\n\t\tnumberOfMonths: props.numberOfMonths.value\n\t}));\n\tconst visibleView = computed(() => {\n\t\treturn grid.value.map((month) => month.value);\n\t});\n\tfunction isOutsideVisibleView(date) {\n\t\treturn !visibleView.value.some((month) => isEqualMonth(date, month));\n\t}\n\tconst isNextButtonDisabled = (nextPageFunc) => {\n\t\tif (!props.maxValue.value || !grid.value.length) return false;\n\t\tif (props.disabled.value) return true;\n\t\tconst lastPeriodInView = grid.value[grid.value.length - 1].value;\n\t\tif (!nextPageFunc && !props.nextPage.value) {\n\t\t\tconst firstPeriodOfNextPage$1 = lastPeriodInView.add({ months: 1 }).set({ day: 1 });\n\t\t\treturn isAfter(firstPeriodOfNextPage$1, props.maxValue.value);\n\t\t}\n\t\tconst firstPeriodOfNextPage = handleNextDisabled(lastPeriodInView, nextPageFunc || props.nextPage.value);\n\t\treturn isAfter(firstPeriodOfNextPage, props.maxValue.value);\n\t};\n\tconst isPrevButtonDisabled = (prevPageFunc) => {\n\t\tif (!props.minValue.value || !grid.value.length) return false;\n\t\tif (props.disabled.value) return true;\n\t\tconst firstPeriodInView = grid.value[0].value;\n\t\tif (!prevPageFunc && !props.prevPage.value) {\n\t\t\tconst lastPeriodOfPrevPage$1 = firstPeriodInView.subtract({ months: 1 }).set({ day: 35 });\n\t\t\treturn isBefore(lastPeriodOfPrevPage$1, props.minValue.value);\n\t\t}\n\t\tconst lastPeriodOfPrevPage = handlePrevDisabled(firstPeriodInView, prevPageFunc || props.prevPage.value);\n\t\treturn isBefore(lastPeriodOfPrevPage, props.minValue.value);\n\t};\n\tfunction isDateDisabled(dateObj) {\n\t\tif (props.isDateDisabled?.(dateObj) || props.disabled.value) return true;\n\t\tif (props.maxValue.value && isAfter(dateObj, props.maxValue.value)) return true;\n\t\tif (props.minValue.value && isBefore(dateObj, props.minValue.value)) return true;\n\t\treturn false;\n\t}\n\tconst isDateUnavailable = (date) => {\n\t\tif (props.isDateUnavailable?.(date)) return true;\n\t\treturn false;\n\t};\n\tconst weekdays = computed(() => {\n\t\tif (!grid.value.length) return [];\n\t\treturn grid.value[0].rows[0].map((date) => {\n\t\t\treturn formatter.dayOfWeek(toDate(date), props.weekdayFormat.value);\n\t\t});\n\t});\n\tconst nextPage = (nextPageFunc) => {\n\t\tconst firstDate = grid.value[0].value;\n\t\tif (!nextPageFunc && !props.nextPage.value) {\n\t\t\tconst newDate$1 = firstDate.add({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 });\n\t\t\tconst newGrid$1 = createMonths({\n\t\t\t\tdateObj: newDate$1,\n\t\t\t\tweekStartsOn: props.weekStartsOn.value,\n\t\t\t\tlocale: props.locale.value,\n\t\t\t\tfixedWeeks: props.fixedWeeks.value,\n\t\t\t\tnumberOfMonths: props.numberOfMonths.value\n\t\t\t});\n\t\t\tgrid.value = newGrid$1;\n\t\t\tprops.placeholder.value = newGrid$1[0].value.set({ day: 1 });\n\t\t\treturn;\n\t\t}\n\t\tconst newDate = handleNextPage(firstDate, nextPageFunc || props.nextPage.value);\n\t\tconst newGrid = createMonths({\n\t\t\tdateObj: newDate,\n\t\t\tweekStartsOn: props.weekStartsOn.value,\n\t\t\tlocale: props.locale.value,\n\t\t\tfixedWeeks: props.fixedWeeks.value,\n\t\t\tnumberOfMonths: props.numberOfMonths.value\n\t\t});\n\t\tgrid.value = newGrid;\n\t\tconst duration = {};\n\t\tif (!nextPageFunc) {\n\t\t\tconst diff = newGrid[0].value.compare(firstDate);\n\t\t\tif (diff >= getDaysInMonth(firstDate)) duration.day = 1;\n\t\t\tif (diff >= 365) duration.month = 1;\n\t\t}\n\t\tprops.placeholder.value = newGrid[0].value.set({ ...duration });\n\t};\n\tconst prevPage = (prevPageFunc) => {\n\t\tconst firstDate = grid.value[0].value;\n\t\tif (!prevPageFunc && !props.prevPage.value) {\n\t\t\tconst newDate$1 = firstDate.subtract({ months: props.pagedNavigation.value ? props.numberOfMonths.value : 1 });\n\t\t\tconst newGrid$1 = createMonths({\n\t\t\t\tdateObj: newDate$1,\n\t\t\t\tweekStartsOn: props.weekStartsOn.value,\n\t\t\t\tlocale: props.locale.value,\n\t\t\t\tfixedWeeks: props.fixedWeeks.value,\n\t\t\t\tnumberOfMonths: props.numberOfMonths.value\n\t\t\t});\n\t\t\tgrid.value = newGrid$1;\n\t\t\tprops.placeholder.value = newGrid$1[0].value.set({ day: 1 });\n\t\t\treturn;\n\t\t}\n\t\tconst newDate = handlePrevPage(firstDate, prevPageFunc || props.prevPage.value);\n\t\tconst newGrid = createMonths({\n\t\t\tdateObj: newDate,\n\t\t\tweekStartsOn: props.weekStartsOn.value,\n\t\t\tlocale: props.locale.value,\n\t\t\tfixedWeeks: props.fixedWeeks.value,\n\t\t\tnumberOfMonths: props.numberOfMonths.value\n\t\t});\n\t\tgrid.value = newGrid;\n\t\tconst duration = {};\n\t\tif (!prevPageFunc) {\n\t\t\tconst diff = firstDate.compare(newGrid[0].value);\n\t\t\tif (diff >= getDaysInMonth(firstDate)) duration.day = 1;\n\t\t\tif (diff >= 365) duration.month = 1;\n\t\t}\n\t\tprops.placeholder.value = newGrid[0].value.set({ ...duration });\n\t};\n\twatch(props.placeholder, (value) => {\n\t\tif (visibleView.value.some((month) => isEqualMonth(month, value))) return;\n\t\tgrid.value = createMonths({\n\t\t\tdateObj: value,\n\t\t\tweekStartsOn: props.weekStartsOn.value,\n\t\t\tlocale: props.locale.value,\n\t\t\tfixedWeeks: props.fixedWeeks.value,\n\t\t\tnumberOfMonths: props.numberOfMonths.value\n\t\t});\n\t});\n\twatch([\n\t\tprops.locale,\n\t\tprops.weekStartsOn,\n\t\tprops.fixedWeeks,\n\t\tprops.numberOfMonths\n\t], () => {\n\t\tgrid.value = createMonths({\n\t\t\tdateObj: props.placeholder.value,\n\t\t\tweekStartsOn: props.weekStartsOn.value,\n\t\t\tlocale: props.locale.value,\n\t\t\tfixedWeeks: props.fixedWeeks.value,\n\t\t\tnumberOfMonths: props.numberOfMonths.value\n\t\t});\n\t});\n\tconst headingValue = computed(() => {\n\t\tif (!grid.value.length) return \"\";\n\t\tif (props.locale.value !== formatter.getLocale()) formatter.setLocale(props.locale.value);\n\t\tif (grid.value.length === 1) {\n\t\t\tconst month = grid.value[0].value;\n\t\t\treturn `${formatter.fullMonthAndYear(toDate(month), headingFormatOptions.value)}`;\n\t\t}\n\t\tconst startMonth = toDate(grid.value[0].value);\n\t\tconst endMonth = toDate(grid.value[grid.value.length - 1].value);\n\t\tconst startMonthName = formatter.fullMonth(startMonth, headingFormatOptions.value);\n\t\tconst endMonthName = formatter.fullMonth(endMonth, headingFormatOptions.value);\n\t\tconst startMonthYear = formatter.fullYear(startMonth, headingFormatOptions.value);\n\t\tconst endMonthYear = formatter.fullYear(endMonth, headingFormatOptions.value);\n\t\tconst content = startMonthYear === endMonthYear ? `${startMonthName} - ${endMonthName} ${endMonthYear}` : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;\n\t\treturn content;\n\t});\n\tconst fullCalendarLabel = computed(() => `${props.calendarLabel.value ?? \"Event Date\"}, ${headingValue.value}`);\n\tconst isPlaceholderFocusable = computed(() => {\n\t\treturn !(isDateDisabled(props.placeholder.value) || isDateUnavailable(props.placeholder.value) || isOutsideVisibleView(props.placeholder.value));\n\t});\n\tconst firstFocusableDate = computed(() => {\n\t\tfor (const month of grid.value) {\n\t\t\tif (props.minValue.value && isBefore(month.value, props.minValue.value)) continue;\n\t\t\tconst daysInMonth = getDaysInMonth(month.value);\n\t\t\tconst startDay = props.minValue.value && isSameMonth(props.minValue.value, month.value) ? props.minValue.value.day : 1;\n\t\t\tfor (let day = startDay; day <= daysInMonth; day++) {\n\t\t\t\tconst date = month.value.set({ day });\n\t\t\t\tif (isDateDisabled(date) || isDateUnavailable(date)) continue;\n\t\t\t\treturn date;\n\t\t\t}\n\t\t}\n\t});\n\treturn {\n\t\tisDateDisabled,\n\t\tisDateUnavailable,\n\t\tisNextButtonDisabled,\n\t\tisPrevButtonDisabled,\n\t\tgrid,\n\t\tweekdays,\n\t\tvisibleView,\n\t\tisOutsideVisibleView,\n\t\tformatter,\n\t\tnextPage,\n\t\tprevPage,\n\t\theadingValue,\n\t\tfullCalendarLabel,\n\t\tisPlaceholderFocusable,\n\t\tfirstFocusableDate\n\t};\n}\n\n//#endregion\nexport { useCalendar, useCalendarState };\n//# sourceMappingURL=useCalendar.js.map","import { createContext } from \"../shared/createContext.js\";\nimport { getDefaultDate } from \"../date/comparators.js\";\nimport { handleCalendarInitialFocus } from \"../date/utils.js\";\nimport { getWeekStartsOn } from \"../date/calendar.js\";\nimport { useDirection } from \"../shared/useDirection.js\";\nimport { useLocale } from \"../shared/useLocale.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { usePrimitiveElement } from \"../Primitive/usePrimitiveElement.js\";\nimport { useCalendar, useCalendarState } from \"./useCalendar.js\";\nimport { computed, createBlock, createElementVNode, defineComponent, onMounted, openBlock, renderSlot, toDisplayString, toRefs, unref, watch, withCtx } from \"vue\";\nimport { useVModel } from \"@vueuse/core\";\nimport { isEqualDay, isSameDay } from \"@internationalized/date\";\n\n//#region src/Calendar/CalendarRoot.vue?vue&type=script&setup=true&lang.ts\nconst _hoisted_1 = { style: {\n\t\"border\": \"0px\",\n\t\"clip\": \"rect(0px, 0px, 0px, 0px)\",\n\t\"clip-path\": \"inset(50%)\",\n\t\"height\": \"1px\",\n\t\"margin\": \"-1px\",\n\t\"overflow\": \"hidden\",\n\t\"padding\": \"0px\",\n\t\"position\": \"absolute\",\n\t\"white-space\": \"nowrap\",\n\t\"width\": \"1px\"\n} };\nconst _hoisted_2 = {\n\trole: \"heading\",\n\t\"aria-level\": \"2\"\n};\nconst [injectCalendarRootContext, provideCalendarRootContext] = createContext(\"CalendarRoot\");\nvar CalendarRoot_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"CalendarRoot\",\n\tprops: {\n\t\tdefaultValue: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: void 0\n\t\t},\n\t\tdefaultPlaceholder: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tplaceholder: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: void 0\n\t\t},\n\t\tpagedNavigation: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tpreventDeselect: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tweekStartsOn: {\n\t\t\ttype: Number,\n\t\t\trequired: false\n\t\t},\n\t\tweekdayFormat: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: \"narrow\"\n\t\t},\n\t\tcalendarLabel: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tfixedWeeks: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tmaxValue: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tminValue: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tlocale: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tnumberOfMonths: {\n\t\t\ttype: Number,\n\t\t\trequired: false,\n\t\t\tdefault: 1\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\treadonly: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tinitialFocus: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tisDateDisabled: {\n\t\t\ttype: Function,\n\t\t\trequired: false,\n\t\t\tdefault: void 0\n\t\t},\n\t\tisDateUnavailable: {\n\t\t\ttype: Function,\n\t\t\trequired: false,\n\t\t\tdefault: void 0\n\t\t},\n\t\tdir: {\n\t\t\ttype: String,\n\t\t\trequired: false\n\t\t},\n\t\tnextPage: {\n\t\t\ttype: Function,\n\t\t\trequired: false\n\t\t},\n\t\tprevPage: {\n\t\t\ttype: Function,\n\t\t\trequired: false\n\t\t},\n\t\tmodelValue: {\n\t\t\ttype: null,\n\t\t\trequired: false\n\t\t},\n\t\tmultiple: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tdisableDaysOutsideCurrentView: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"div\"\n\t\t}\n\t},\n\temits: [\"update:modelValue\", \"update:placeholder\"],\n\tsetup(__props, { emit: __emit }) {\n\t\tconst props = __props;\n\t\tconst emits = __emit;\n\t\tconst { disabled, readonly, initialFocus, pagedNavigation, weekdayFormat, fixedWeeks, multiple, minValue, maxValue, numberOfMonths, preventDeselect, isDateDisabled: propsIsDateDisabled, isDateUnavailable: propsIsDateUnavailable, calendarLabel, defaultValue, nextPage: propsNextPage, prevPage: propsPrevPage, dir: propDir, locale: propLocale, disableDaysOutsideCurrentView } = toRefs(props);\n\t\tconst { primitiveElement, currentElement: parentElement } = usePrimitiveElement();\n\t\tconst locale = useLocale(propLocale);\n\t\tconst dir = useDirection(propDir);\n\t\tconst weekStartsOn = computed(() => props.weekStartsOn ?? getWeekStartsOn(locale.value));\n\t\tconst modelValue = useVModel(props, \"modelValue\", emits, {\n\t\t\tdefaultValue: defaultValue.value,\n\t\t\tpassive: props.modelValue === void 0\n\t\t});\n\t\tconst defaultDate = getDefaultDate({\n\t\t\tdefaultPlaceholder: props.placeholder,\n\t\t\tdefaultValue: modelValue.value,\n\t\t\tlocale: props.locale\n\t\t});\n\t\tconst placeholder = useVModel(props, \"placeholder\", emits, {\n\t\t\tdefaultValue: props.defaultPlaceholder ?? defaultDate.copy(),\n\t\t\tpassive: props.placeholder === void 0\n\t\t});\n\t\tfunction onPlaceholderChange(value) {\n\t\t\tplaceholder.value = value.copy();\n\t\t}\n\t\tconst { fullCalendarLabel, headingValue, isDateDisabled, isDateUnavailable, isNextButtonDisabled, isPrevButtonDisabled, weekdays, isOutsideVisibleView, nextPage, prevPage, formatter, grid, isPlaceholderFocusable, firstFocusableDate } = useCalendar({\n\t\t\tlocale,\n\t\t\tplaceholder,\n\t\t\tweekStartsOn,\n\t\t\tfixedWeeks,\n\t\t\tnumberOfMonths,\n\t\t\tminValue,\n\t\t\tmaxValue,\n\t\t\tdisabled,\n\t\t\tweekdayFormat,\n\t\t\tpagedNavigation,\n\t\t\tisDateDisabled: propsIsDateDisabled.value,\n\t\t\tisDateUnavailable: propsIsDateUnavailable.value,\n\t\t\tcalendarLabel,\n\t\t\tnextPage: propsNextPage,\n\t\t\tprevPage: propsPrevPage\n\t\t});\n\t\tconst { isInvalid, isDateSelected, hasSelectedDate, isSelectedDateDisabled } = useCalendarState({\n\t\t\tdate: modelValue,\n\t\t\tisDateDisabled,\n\t\t\tisDateUnavailable\n\t\t});\n\t\twatch(modelValue, (_modelValue) => {\n\t\t\tif (Array.isArray(_modelValue) && _modelValue.length) {\n\t\t\t\tconst lastValue = _modelValue[_modelValue.length - 1];\n\t\t\t\tif (lastValue && !isEqualDay(placeholder.value, lastValue)) onPlaceholderChange(lastValue);\n\t\t\t} else if (!Array.isArray(_modelValue) && _modelValue && !isEqualDay(placeholder.value, _modelValue)) onPlaceholderChange(_modelValue);\n\t\t});\n\t\tfunction onDateChange(value) {\n\t\t\tif (!multiple.value) {\n\t\t\t\tif (!modelValue.value) {\n\t\t\t\t\tmodelValue.value = value.copy();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!preventDeselect.value && isEqualDay(modelValue.value, value)) {\n\t\t\t\t\tplaceholder.value = value.copy();\n\t\t\t\t\tmodelValue.value = void 0;\n\t\t\t\t} else modelValue.value = value.copy();\n\t\t\t} else if (!modelValue.value) modelValue.value = [value.copy()];\n\t\t\telse if (Array.isArray(modelValue.value)) {\n\t\t\t\tconst index = modelValue.value.findIndex((date) => isSameDay(date, value));\n\t\t\t\tif (index === -1) modelValue.value = [...modelValue.value, value];\n\t\t\t\telse if (!preventDeselect.value) {\n\t\t\t\t\tconst next = modelValue.value.filter((date) => !isSameDay(date, value));\n\t\t\t\t\tif (!next.length) {\n\t\t\t\t\t\tplaceholder.value = value.copy();\n\t\t\t\t\t\tmodelValue.value = void 0;\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tmodelValue.value = next.map((date) => date.copy());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tonMounted(() => {\n\t\t\tif (initialFocus.value) handleCalendarInitialFocus(parentElement.value);\n\t\t});\n\t\tprovideCalendarRootContext({\n\t\t\tisDateUnavailable,\n\t\t\tdir,\n\t\t\tisDateDisabled,\n\t\t\tlocale,\n\t\t\tformatter,\n\t\t\tmodelValue,\n\t\t\tplaceholder,\n\t\t\tdisabled,\n\t\t\tinitialFocus,\n\t\t\tpagedNavigation,\n\t\t\tgrid,\n\t\t\tweekDays: weekdays,\n\t\t\tweekStartsOn,\n\t\t\tweekdayFormat,\n\t\t\tfixedWeeks,\n\t\t\tmultiple,\n\t\t\tnumberOfMonths,\n\t\t\treadonly,\n\t\t\tpreventDeselect,\n\t\t\tfullCalendarLabel,\n\t\t\theadingValue,\n\t\t\tisInvalid,\n\t\t\tisDateSelected,\n\t\t\tisNextButtonDisabled,\n\t\t\tisPrevButtonDisabled,\n\t\t\tisOutsideVisibleView,\n\t\t\tnextPage,\n\t\t\tprevPage,\n\t\t\tparentElement,\n\t\t\tonPlaceholderChange,\n\t\t\tonDateChange,\n\t\t\tdisableDaysOutsideCurrentView,\n\t\t\tminValue,\n\t\t\tmaxValue,\n\t\t\tisPlaceholderFocusable,\n\t\t\tfirstFocusableDate,\n\t\t\thasSelectedDate,\n\t\t\tisSelectedDateDisabled\n\t\t});\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), {\n\t\t\t\tref_key: \"primitiveElement\",\n\t\t\t\tref: primitiveElement,\n\t\t\t\tas: _ctx.as,\n\t\t\t\t\"as-child\": _ctx.asChild,\n\t\t\t\t\"aria-label\": unref(fullCalendarLabel),\n\t\t\t\t\"data-readonly\": unref(readonly) ? \"\" : void 0,\n\t\t\t\t\"data-disabled\": unref(disabled) ? \"\" : void 0,\n\t\t\t\t\"data-invalid\": unref(isInvalid) ? \"\" : void 0,\n\t\t\t\tdir: unref(dir)\n\t\t\t}, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\", {\n\t\t\t\t\tdate: unref(placeholder),\n\t\t\t\t\tgrid: unref(grid),\n\t\t\t\t\tweekDays: unref(weekdays),\n\t\t\t\t\tweekStartsOn: weekStartsOn.value,\n\t\t\t\t\tlocale: unref(locale),\n\t\t\t\t\tfixedWeeks: unref(fixedWeeks),\n\t\t\t\t\tmodelValue: unref(modelValue)\n\t\t\t\t}), createElementVNode(\"div\", _hoisted_1, [createElementVNode(\"div\", _hoisted_2, toDisplayString(unref(fullCalendarLabel)), 1)])]),\n\t\t\t\t_: 3\n\t\t\t}, 8, [\n\t\t\t\t\"as\",\n\t\t\t\t\"as-child\",\n\t\t\t\t\"aria-label\",\n\t\t\t\t\"data-readonly\",\n\t\t\t\t\"data-disabled\",\n\t\t\t\t\"data-invalid\",\n\t\t\t\t\"dir\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Calendar/CalendarRoot.vue\nvar CalendarRoot_default = CalendarRoot_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { CalendarRoot_default, injectCalendarRootContext };\n//# sourceMappingURL=CalendarRoot.js.map","import { Primitive } from \"../Primitive/Primitive.js\";\nimport { injectCalendarRootContext } from \"./CalendarRoot.js\";\nimport { createBlock, defineComponent, openBlock, renderSlot, unref, withCtx } from \"vue\";\n\n//#region src/Calendar/CalendarCell.vue?vue&type=script&setup=true&lang.ts\nvar CalendarCell_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"CalendarCell\",\n\tprops: {\n\t\tdate: {\n\t\t\ttype: null,\n\t\t\trequired: true\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"td\"\n\t\t}\n\t},\n\tsetup(__props) {\n\t\tconst rootContext = injectCalendarRootContext();\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), {\n\t\t\t\tas: _ctx.as,\n\t\t\t\t\"as-child\": _ctx.asChild,\n\t\t\t\trole: \"gridcell\",\n\t\t\t\t\"aria-selected\": unref(rootContext).isDateSelected(_ctx.date) ? true : void 0,\n\t\t\t\t\"aria-disabled\": unref(rootContext).isDateDisabled(_ctx.date) || unref(rootContext).isDateUnavailable?.(_ctx.date) || unref(rootContext).disableDaysOutsideCurrentView.value,\n\t\t\t\t\"data-disabled\": unref(rootContext).isDateDisabled(_ctx.date) || unref(rootContext).disableDaysOutsideCurrentView.value ? \"\" : void 0\n\t\t\t}, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t}, 8, [\n\t\t\t\t\"as\",\n\t\t\t\t\"as-child\",\n\t\t\t\t\"aria-selected\",\n\t\t\t\t\"aria-disabled\",\n\t\t\t\t\"data-disabled\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Calendar/CalendarCell.vue\nvar CalendarCell_default = CalendarCell_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { CalendarCell_default };\n//# sourceMappingURL=CalendarCell.js.map","import { toDate } from \"../date/comparators.js\";\nimport { useKbd } from \"../shared/useKbd.js\";\nimport { Primitive } from \"../Primitive/Primitive.js\";\nimport { usePrimitiveElement } from \"../Primitive/usePrimitiveElement.js\";\nimport { injectCalendarRootContext } from \"./CalendarRoot.js\";\nimport { computed, createBlock, createTextVNode, defineComponent, nextTick, openBlock, renderSlot, toDisplayString, unref, withCtx, withKeys, withModifiers } from \"vue\";\nimport { getLocalTimeZone, isSameDay, isSameMonth, isToday } from \"@internationalized/date\";\n\n//#region src/Calendar/CalendarCellTrigger.vue?vue&type=script&setup=true&lang.ts\nvar CalendarCellTrigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"CalendarCellTrigger\",\n\tprops: {\n\t\tday: {\n\t\t\ttype: null,\n\t\t\trequired: true\n\t\t},\n\t\tmonth: {\n\t\t\ttype: null,\n\t\t\trequired: true\n\t\t},\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"div\"\n\t\t}\n\t},\n\tsetup(__props) {\n\t\tconst props = __props;\n\t\tconst kbd = useKbd();\n\t\tconst rootContext = injectCalendarRootContext();\n\t\tconst { primitiveElement, currentElement } = usePrimitiveElement();\n\t\tconst dayValue = computed(() => props.day.day.toLocaleString(rootContext.locale.value));\n\t\tconst labelText = computed(() => {\n\t\t\treturn rootContext.formatter.custom(toDate(props.day), {\n\t\t\t\tweekday: \"long\",\n\t\t\t\tmonth: \"long\",\n\t\t\t\tday: \"numeric\",\n\t\t\t\tyear: \"numeric\"\n\t\t\t});\n\t\t});\n\t\tconst isUnavailable = computed(() => rootContext.isDateUnavailable?.(props.day) ?? false);\n\t\tconst isDateToday = computed(() => {\n\t\t\treturn isToday(props.day, getLocalTimeZone());\n\t\t});\n\t\tconst isOutsideView = computed(() => {\n\t\t\treturn !isSameMonth(props.day, props.month);\n\t\t});\n\t\tconst isOutsideVisibleView = computed(() => rootContext.isOutsideVisibleView(props.day));\n\t\tconst isDisabled = computed(() => rootContext.isDateDisabled(props.day) || rootContext.disableDaysOutsideCurrentView.value && isOutsideView.value);\n\t\tconst isFocusedDate = computed(() => {\n\t\t\tif (isOutsideView.value || isDisabled.value) return false;\n\t\t\tif (!rootContext.disabled.value && rootContext.isPlaceholderFocusable.value && isSameDay(props.day, rootContext.placeholder.value)) return true;\n\t\t\tif ((!rootContext.hasSelectedDate.value || rootContext.isSelectedDateDisabled.value) && !rootContext.isPlaceholderFocusable.value) return rootContext.firstFocusableDate.value && isSameDay(props.day, rootContext.firstFocusableDate.value);\n\t\t\treturn false;\n\t\t});\n\t\tconst isSelectedDate = computed(() => rootContext.isDateSelected(props.day));\n\t\tfunction changeDate(date) {\n\t\t\tif (rootContext.readonly.value) return;\n\t\t\tif (rootContext.isDateDisabled(date) || rootContext.isDateUnavailable?.(date)) return;\n\t\t\trootContext.onDateChange(date);\n\t\t}\n\t\tfunction handleClick() {\n\t\t\tif (isDisabled.value) return;\n\t\t\tchangeDate(props.day);\n\t\t}\n\t\tfunction handleArrowKey(e) {\n\t\t\tif (isDisabled.value) return;\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tconst parentElement = rootContext.parentElement.value;\n\t\t\tconst indexIncrementation = 7;\n\t\t\tconst sign = rootContext.dir.value === \"rtl\" ? -1 : 1;\n\t\t\tswitch (e.code) {\n\t\t\t\tcase kbd.ARROW_RIGHT:\n\t\t\t\t\tshiftFocus(props.day, sign);\n\t\t\t\t\tbreak;\n\t\t\t\tcase kbd.ARROW_LEFT:\n\t\t\t\t\tshiftFocus(props.day, -sign);\n\t\t\t\t\tbreak;\n\t\t\t\tcase kbd.ARROW_UP:\n\t\t\t\t\tshiftFocus(props.day, -indexIncrementation);\n\t\t\t\t\tbreak;\n\t\t\t\tcase kbd.ARROW_DOWN:\n\t\t\t\t\tshiftFocus(props.day, indexIncrementation);\n\t\t\t\t\tbreak;\n\t\t\t\tcase kbd.ENTER:\n\t\t\t\tcase kbd.SPACE_CODE: changeDate(props.day);\n\t\t\t}\n\t\t\tfunction shiftFocus(day, add) {\n\t\t\t\tconst candidateDayValue = day.add({ days: add });\n\t\t\t\tif (rootContext.minValue.value && candidateDayValue.compare(rootContext.minValue.value) < 0 || rootContext.maxValue.value && candidateDayValue.compare(rootContext.maxValue.value) > 0) return;\n\t\t\t\tconst candidateDay = parentElement.querySelector(`[data-value='${candidateDayValue.toString()}']:not([data-outside-view])`);\n\t\t\t\tif (!candidateDay) {\n\t\t\t\t\tif (add > 0) {\n\t\t\t\t\t\tif (rootContext.isNextButtonDisabled()) return;\n\t\t\t\t\t\trootContext.nextPage();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (rootContext.isPrevButtonDisabled()) return;\n\t\t\t\t\t\trootContext.prevPage();\n\t\t\t\t\t}\n\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\tshiftFocus(day, add);\n\t\t\t\t\t});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (candidateDay && candidateDay.hasAttribute(\"data-disabled\")) return shiftFocus(candidateDayValue, add);\n\t\t\t\trootContext.onPlaceholderChange(candidateDayValue);\n\t\t\t\tcandidateDay?.focus();\n\t\t\t}\n\t\t}\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), {\n\t\t\t\tref_key: \"primitiveElement\",\n\t\t\t\tref: primitiveElement,\n\t\t\t\tas: props.as,\n\t\t\t\t\"as-child\": props.asChild,\n\t\t\t\trole: \"button\",\n\t\t\t\t\"aria-label\": labelText.value,\n\t\t\t\t\"data-reka-calendar-cell-trigger\": \"\",\n\t\t\t\t\"aria-disabled\": isDisabled.value || isUnavailable.value ? true : void 0,\n\t\t\t\t\"data-selected\": isSelectedDate.value ? true : void 0,\n\t\t\t\t\"data-value\": _ctx.day.toString(),\n\t\t\t\t\"data-disabled\": isDisabled.value ? \"\" : void 0,\n\t\t\t\t\"data-unavailable\": isUnavailable.value ? \"\" : void 0,\n\t\t\t\t\"data-today\": isDateToday.value ? \"\" : void 0,\n\t\t\t\t\"data-outside-view\": isOutsideView.value ? \"\" : void 0,\n\t\t\t\t\"data-outside-visible-view\": isOutsideVisibleView.value ? \"\" : void 0,\n\t\t\t\t\"data-focused\": isFocusedDate.value ? \"\" : void 0,\n\t\t\t\ttabindex: isFocusedDate.value ? 0 : isOutsideView.value || isDisabled.value ? void 0 : -1,\n\t\t\t\tonClick: handleClick,\n\t\t\t\tonKeydown: [withKeys(handleArrowKey, [\n\t\t\t\t\t\"up\",\n\t\t\t\t\t\"down\",\n\t\t\t\t\t\"left\",\n\t\t\t\t\t\"right\",\n\t\t\t\t\t\"space\",\n\t\t\t\t\t\"enter\"\n\t\t\t\t]), _cache[0] || (_cache[0] = withKeys(withModifiers(() => {}, [\"prevent\"]), [\"enter\"]))]\n\t\t\t}, {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\", {\n\t\t\t\t\tdayValue: dayValue.value,\n\t\t\t\t\tdisabled: isDisabled.value,\n\t\t\t\t\ttoday: isDateToday.value,\n\t\t\t\t\tselected: isSelectedDate.value,\n\t\t\t\t\toutsideView: isOutsideView.value,\n\t\t\t\t\toutsideVisibleView: isOutsideVisibleView.value,\n\t\t\t\t\tunavailable: isUnavailable.value\n\t\t\t\t}, () => [createTextVNode(toDisplayString(dayValue.value), 1)])]),\n\t\t\t\t_: 3\n\t\t\t}, 8, [\n\t\t\t\t\"as\",\n\t\t\t\t\"as-child\",\n\t\t\t\t\"aria-label\",\n\t\t\t\t\"aria-disabled\",\n\t\t\t\t\"data-selected\",\n\t\t\t\t\"data-value\",\n\t\t\t\t\"data-disabled\",\n\t\t\t\t\"data-unavailable\",\n\t\t\t\t\"data-today\",\n\t\t\t\t\"data-outside-view\",\n\t\t\t\t\"data-outside-visible-view\",\n\t\t\t\t\"data-focused\",\n\t\t\t\t\"tabindex\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Calendar/CalendarCellTrigger.vue\nvar CalendarCellTrigger_default = CalendarCellTrigger_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { CalendarCellTrigger_default };\n//# sourceMappingURL=CalendarCellTrigger.js.map","import { Primitive } from \"../Primitive/Primitive.js\";\nimport { injectCalendarRootContext } from \"./CalendarRoot.js\";\nimport { computed, createBlock, defineComponent, mergeProps, openBlock, renderSlot, unref, withCtx } from \"vue\";\n\n//#region src/Calendar/CalendarGrid.vue?vue&type=script&setup=true&lang.ts\nvar CalendarGrid_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"CalendarGrid\",\n\tprops: {\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"table\"\n\t\t}\n\t},\n\tsetup(__props) {\n\t\tconst props = __props;\n\t\tconst rootContext = injectCalendarRootContext();\n\t\tconst disabled = computed(() => rootContext.disabled.value ? true : void 0);\n\t\tconst readonly = computed(() => rootContext.readonly.value ? true : void 0);\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), mergeProps(props, {\n\t\t\t\ttabindex: \"-1\",\n\t\t\t\trole: \"application\",\n\t\t\t\t\"aria-readonly\": readonly.value,\n\t\t\t\t\"aria-disabled\": disabled.value,\n\t\t\t\t\"data-readonly\": readonly.value && \"\",\n\t\t\t\t\"data-disabled\": disabled.value && \"\"\n\t\t\t}), {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t}, 16, [\n\t\t\t\t\"aria-readonly\",\n\t\t\t\t\"aria-disabled\",\n\t\t\t\t\"data-readonly\",\n\t\t\t\t\"data-disabled\"\n\t\t\t]);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Calendar/CalendarGrid.vue\nvar CalendarGrid_default = CalendarGrid_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { CalendarGrid_default };\n//# sourceMappingURL=CalendarGrid.js.map","import { Primitive } from \"../Primitive/Primitive.js\";\nimport { createBlock, defineComponent, guardReactiveProps, normalizeProps, openBlock, renderSlot, unref, withCtx } from \"vue\";\n\n//#region src/Calendar/CalendarGridBody.vue?vue&type=script&setup=true&lang.ts\nvar CalendarGridBody_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({\n\t__name: \"CalendarGridBody\",\n\tprops: {\n\t\tasChild: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false\n\t\t},\n\t\tas: {\n\t\t\ttype: null,\n\t\t\trequired: false,\n\t\t\tdefault: \"tbody\"\n\t\t}\n\t},\n\tsetup(__props) {\n\t\tconst props = __props;\n\t\treturn (_ctx, _cache) => {\n\t\t\treturn openBlock(), createBlock(unref(Primitive), normalizeProps(guardReactiveProps(props)), {\n\t\t\t\tdefault: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n\t\t\t\t_: 3\n\t\t\t}, 16);\n\t\t};\n\t}\n});\n\n//#endregion\n//#region src/Calendar/CalendarGridBody.vue\nvar CalendarGridBody_default = CalendarGridBody_vue_vue_type_script_setup_true_lang_default;\n\n//#endregion\nexport { CalendarGridBody_default };\n//# sourceMappingURL=CalendarGridBody.js.map","import { Primitive } from \"../Primitive/Primitive.js\";\nimport { createBlock, defineComponent, mergeProps, openBlock, renderSlot, unref, withCtx } from \"