@jskit-ai/assistant-core 0.1.164 → 0.1.166
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/examples/conversation/App.vue +104 -0
- package/examples/conversation/README.md +42 -0
- package/examples/conversation/dist/assets/index-CSTXm6q3.css +1 -0
- package/examples/conversation/dist/assets/index-DGgOLzoo.js +30 -0
- package/examples/conversation/dist/index.html +4 -0
- package/examples/conversation/index.html +2 -0
- package/examples/conversation/main.js +9 -0
- package/examples/conversation/node_modules/.vite/deps/@mdi_js.js +7450 -0
- package/examples/conversation/node_modules/.vite/deps/@mdi_js.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/VTooltip-jIxO6ULs.js +2311 -0
- package/examples/conversation/node_modules/.vite/deps/VTooltip-jIxO6ULs.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/_metadata.json +70 -0
- package/examples/conversation/node_modules/.vite/deps/defineComponent-DK6LSjDW.js +710 -0
- package/examples/conversation/node_modules/.vite/deps/defineComponent-DK6LSjDW.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/hotkey-parsing-DnoZxtbW.js +1214 -0
- package/examples/conversation/node_modules/.vite/deps/hotkey-parsing-DnoZxtbW.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/icons-ze2hmg7j.js +98 -0
- package/examples/conversation/node_modules/.vite/deps/icons-ze2hmg7j.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/package.json +3 -0
- package/examples/conversation/node_modules/.vite/deps/theme-D78LVcJg.js +1301 -0
- package/examples/conversation/node_modules/.vite/deps/theme-D78LVcJg.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/vue.js +2 -0
- package/examples/conversation/node_modules/.vite/deps/vue.runtime.esm-bundler-YcakWsDn.js +8538 -0
- package/examples/conversation/node_modules/.vite/deps/vue.runtime.esm-bundler-YcakWsDn.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/vuetify.js +413 -0
- package/examples/conversation/node_modules/.vite/deps/vuetify.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/vuetify_components.js +25370 -0
- package/examples/conversation/node_modules/.vite/deps/vuetify_components.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/vuetify_directives.js +132 -0
- package/examples/conversation/node_modules/.vite/deps/vuetify_directives.js.map +1 -0
- package/examples/conversation/node_modules/.vite/deps/vuetify_iconsets_mdi-svg.js +70 -0
- package/examples/conversation/node_modules/.vite/deps/vuetify_iconsets_mdi-svg.js.map +1 -0
- package/examples/conversation/package.json +22 -0
- package/examples/conversation/server.js +123 -0
- package/examples/conversation/vite.config.js +8 -0
- package/package.json +59 -7
- package/src/client/conversation/AssistantComposerActions.vue +43 -0
- package/src/client/conversation/AssistantConversationElement.vue +78 -0
- package/src/client/conversation/AssistantProgress.vue +88 -0
- package/src/client/conversation/AssistantPromptInput.vue +467 -0
- package/src/client/conversation/AssistantTranscript.vue +1361 -0
- package/src/client/conversation/LongTextInlineParts.vue +64 -0
- package/src/client/conversation/LongTextPreviewBlocks.vue +324 -0
- package/src/client/conversation/index.js +9 -0
- package/src/client/conversation/submitText.js +29 -0
- package/src/client/conversation/useScrollToBottom.js +151 -0
- package/src/server/conversation/codexClient.js +328 -0
- package/src/server/conversation/codexEvents.js +623 -0
- package/src/server/conversation/codexTurn.js +280 -0
- package/src/server/conversation/index.js +2 -0
- package/src/server/conversation/memoryStorage.js +76 -0
- package/src/server/conversation/normalize.js +7 -0
- package/src/server/conversation/openCodeClient.js +512 -0
- package/src/server/conversation/transcript.js +92 -0
- package/src/shared/conversation/answerChoiceSugar.js +191 -0
- package/src/shared/conversation/index.js +6 -0
- package/src/shared/conversation/longTextBlocks.js +403 -0
- package/src/shared/conversation/numberedQuestionSugar.js +295 -0
- package/src/shared/conversation/scrollFollowState.js +32 -0
- package/src/shared/conversation/thinkingText.js +13 -0
- package/src/shared/conversation/turns.js +30 -0
- package/src/testing/conversationStorageContract.js +35 -0
- package/test/conversation.test.js +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hotkey-parsing-DnoZxtbW.js","names":[],"sources":["../../../../../../../node_modules/vuetify/lib/composables/date/adapters/vuetify.js","../../../../../../../node_modules/vuetify/lib/composables/date/date.js","../../../../../../../node_modules/vuetify/lib/composables/goto.js","../../../../../../../node_modules/vuetify/lib/composables/resizeObserver.js","../../../../../../../node_modules/vuetify/lib/composables/layout.js","../../../../../../../node_modules/vuetify/lib/composables/hotkey/key-aliases.js","../../../../../../../node_modules/vuetify/lib/composables/hotkey/hotkey-parsing.js"],"sourcesContent":["// Utilities\nimport { consoleWarn, createRange, padStart } from \"../../../util/index.js\"; // Types\nfunction weekInfo(locale) {\n // https://simplelocalize.io/data/locales/\n // then `new Intl.Locale(...).getWeekInfo()`\n const code = locale.slice(-2).toUpperCase();\n switch (true) {\n case locale === 'GB-alt-variant':\n {\n return {\n firstDay: 0,\n firstWeekSize: 4\n };\n }\n case locale === '001':\n {\n return {\n firstDay: 1,\n firstWeekSize: 1\n };\n }\n case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE\n KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PY SA SG SV TH TT TW UM US\n VE VI WS YE ZA ZW`.includes(code):\n {\n return {\n firstDay: 0,\n firstWeekSize: 1\n };\n }\n case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV\n MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):\n {\n return {\n firstDay: 1,\n firstWeekSize: 1\n };\n }\n case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS\n IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):\n {\n return {\n firstDay: 1,\n firstWeekSize: 4\n };\n }\n case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):\n {\n return {\n firstDay: 6,\n firstWeekSize: 1\n };\n }\n case code === 'MV':\n {\n return {\n firstDay: 5,\n firstWeekSize: 1\n };\n }\n case code === 'PT':\n {\n return {\n firstDay: 0,\n firstWeekSize: 4\n };\n }\n default:\n return null;\n }\n}\nfunction getWeekArray(date, locale, firstDayOfWeek) {\n const weeks = [];\n let currentWeek = [];\n const firstDayOfMonth = startOfMonth(date);\n const lastDayOfMonth = endOfMonth(date);\n const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;\n const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;\n const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;\n for (let i = 0; i < firstDayWeekIndex; i++) {\n const adjacentDay = new Date(firstDayOfMonth);\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));\n currentWeek.push(adjacentDay);\n }\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\n const day = new Date(date.getFullYear(), date.getMonth(), i);\n\n // Add the day to the current week\n currentWeek.push(day);\n\n // If the current week has 7 days, add it to the weeks array and start a new week\n if (currentWeek.length === 7) {\n weeks.push(currentWeek);\n currentWeek = [];\n }\n }\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\n const adjacentDay = new Date(lastDayOfMonth);\n adjacentDay.setDate(adjacentDay.getDate() + i);\n currentWeek.push(adjacentDay);\n }\n if (currentWeek.length > 0) {\n weeks.push(currentWeek);\n }\n return weeks;\n}\nfunction startOfWeek(date, locale, firstDayOfWeek) {\n let day = (firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0) % 7;\n\n // prevent infinite loop\n if (![0, 1, 2, 3, 4, 5, 6].includes(day)) {\n consoleWarn('Invalid firstDayOfWeek, expected discrete number in range [0-6]');\n day = 0;\n }\n const d = new Date(date);\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1);\n }\n return d;\n}\nfunction endOfWeek(date, locale) {\n const d = new Date(date);\n const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;\n while (d.getDay() !== lastDay) {\n d.setDate(d.getDate() + 1);\n }\n return d;\n}\nfunction startOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth(), 1);\n}\nfunction endOfMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\n}\nfunction parseLocalDate(value) {\n const parts = value.split('-').map(Number);\n\n // new Date() uses local time zone when passing individual date component values\n return new Date(parts[0], parts[1] - 1, parts[2]);\n}\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/;\nfunction date(value) {\n if (value == null) return new Date();\n if (value instanceof Date) return value;\n if (typeof value === 'string') {\n let parsed;\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value);\n } else {\n parsed = Date.parse(value);\n }\n if (!isNaN(parsed)) return new Date(parsed);\n }\n return null;\n}\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2);\nfunction getWeekdays(locale, firstDayOfWeek, weekdayFormat) {\n const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;\n return createRange(7).map(i => {\n const weekday = new Date(sundayJanuarySecond2000);\n weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);\n return new Intl.DateTimeFormat(locale, {\n weekday: weekdayFormat ?? 'narrow'\n }).format(weekday);\n });\n}\nfunction format(value, formatString, locale, formats) {\n const newDate = date(value) ?? new Date();\n const customFormat = formats?.[formatString];\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale);\n }\n let options = {};\n switch (formatString) {\n case 'fullDate':\n options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric'\n };\n break;\n case 'fullDateWithWeekday':\n options = {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'normalDate':\n const day = newDate.getDate();\n const month = new Intl.DateTimeFormat(locale, {\n month: 'long'\n }).format(newDate);\n return `${day} ${month}`;\n case 'normalDateWithWeekday':\n options = {\n weekday: 'short',\n day: 'numeric',\n month: 'short'\n };\n break;\n case 'shortDate':\n options = {\n month: 'short',\n day: 'numeric'\n };\n break;\n case 'year':\n options = {\n year: 'numeric'\n };\n break;\n case 'month':\n options = {\n month: 'long'\n };\n break;\n case 'monthShort':\n options = {\n month: 'short'\n };\n break;\n case 'monthAndYear':\n options = {\n month: 'long',\n year: 'numeric'\n };\n break;\n case 'monthAndDate':\n options = {\n month: 'long',\n day: 'numeric'\n };\n break;\n case 'weekday':\n options = {\n weekday: 'long'\n };\n break;\n case 'weekdayShort':\n options = {\n weekday: 'short'\n };\n break;\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate());\n case 'hours12h':\n options = {\n hour: 'numeric',\n hour12: true\n };\n break;\n case 'hours24h':\n options = {\n hour: 'numeric',\n hour12: false\n };\n break;\n case 'minutes':\n options = {\n minute: 'numeric'\n };\n break;\n case 'seconds':\n options = {\n second: 'numeric'\n };\n break;\n case 'fullTime':\n options = {\n hour: 'numeric',\n minute: 'numeric'\n };\n break;\n case 'fullTime12h':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n hour12: true\n };\n break;\n case 'fullTime24h':\n options = {\n hour: 'numeric',\n minute: 'numeric',\n hour12: false\n };\n break;\n case 'fullDateTime':\n options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric'\n };\n break;\n case 'fullDateTime12h':\n options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true\n };\n break;\n case 'fullDateTime24h':\n options = {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n hour12: false\n };\n break;\n case 'keyboardDate':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit'\n };\n break;\n case 'keyboardDateTime':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric'\n };\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');\n case 'keyboardDateTime12h':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true\n };\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');\n case 'keyboardDateTime24h':\n options = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: 'numeric',\n minute: 'numeric',\n hour12: false\n };\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ');\n default:\n options = customFormat ?? {\n timeZone: 'UTC',\n timeZoneName: 'short'\n };\n }\n return new Intl.DateTimeFormat(locale, options).format(newDate);\n}\nfunction toISO(adapter, value) {\n const date = adapter.toJsDate(value);\n const year = date.getFullYear();\n const month = padStart(String(date.getMonth() + 1), 2, '0');\n const day = padStart(String(date.getDate()), 2, '0');\n return `${year}-${month}-${day}`;\n}\nfunction parseISO(value) {\n const [year, month, day] = value.split('-').map(Number);\n return new Date(year, month - 1, day);\n}\nfunction addMinutes(date, amount) {\n const d = new Date(date);\n d.setMinutes(d.getMinutes() + amount);\n return d;\n}\nfunction addHours(date, amount) {\n const d = new Date(date);\n d.setHours(d.getHours() + amount);\n return d;\n}\nfunction addDays(date, amount) {\n const d = new Date(date);\n d.setDate(d.getDate() + amount);\n return d;\n}\nfunction addWeeks(date, amount) {\n const d = new Date(date);\n d.setDate(d.getDate() + amount * 7);\n return d;\n}\nfunction addMonths(date, amount) {\n const d = new Date(date);\n d.setDate(1);\n d.setMonth(d.getMonth() + amount);\n return d;\n}\nfunction getYear(date) {\n return date.getFullYear();\n}\nfunction getMonth(date) {\n return date.getMonth();\n}\nfunction getWeek(date, locale, firstDayOfWeek, firstDayOfYear) {\n const weekInfoFromLocale = weekInfo(locale);\n const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;\n const minWeekSize = weekInfoFromLocale?.firstWeekSize ?? 1;\n return firstDayOfYear !== undefined ? calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) : calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize);\n}\nfunction calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) {\n const firstDayOfYearOffset = (7 + firstDayOfYear - weekStart) % 7;\n const currentWeekStart = startOfWeek(date, locale, weekStart);\n const currentWeekEnd = addDays(currentWeekStart, 6);\n function yearStartWeekdayOffset(year) {\n return (7 + new Date(year, 0, 1).getDay() - weekStart) % 7;\n }\n let year = getYear(currentWeekStart);\n if (year < getYear(currentWeekEnd) && yearStartWeekdayOffset(year + 1) <= firstDayOfYearOffset) {\n year++;\n }\n const yearStart = new Date(year, 0, 1);\n const offset = yearStartWeekdayOffset(year);\n const d1w1 = offset <= firstDayOfYearOffset ? addDays(yearStart, -offset) : addDays(yearStart, 7 - offset);\n return 1 + getDiff(endOfDay(currentWeekStart), startOfDay(d1w1), 'weeks');\n}\nfunction calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize) {\n const currentWeekStart = startOfWeek(date, locale, weekStart);\n const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);\n function firstWeekSize(year) {\n const yearStart = new Date(year, 0, 1);\n return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');\n }\n let year = getYear(currentWeekStart);\n if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {\n year++;\n }\n const yearStart = new Date(year, 0, 1);\n const size = firstWeekSize(year);\n const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);\n return 1 + getDiff(endOfDay(currentWeekStart), startOfDay(d1w1), 'weeks');\n}\nfunction getDate(date) {\n return date.getDate();\n}\nfunction getNextMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1);\n}\nfunction getPreviousMonth(date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1);\n}\nfunction getHours(date) {\n return date.getHours();\n}\nfunction getMinutes(date) {\n return date.getMinutes();\n}\nfunction startOfYear(date) {\n return new Date(date.getFullYear(), 0, 1);\n}\nfunction endOfYear(date) {\n return new Date(date.getFullYear(), 11, 31);\n}\nfunction isWithinRange(date, range) {\n return isEqual(date, range[0]) || isEqual(date, range[1]) || isAfter(date, range[0]) && isBefore(date, range[1]);\n}\nfunction isValid(date) {\n const d = new Date(date);\n return d instanceof Date && !isNaN(d.getTime());\n}\nfunction isAfter(date, comparing) {\n return date.getTime() > comparing.getTime();\n}\nfunction isAfterDay(date, comparing) {\n return isAfter(startOfDay(date), startOfDay(comparing));\n}\nfunction isBefore(date, comparing) {\n return date.getTime() < comparing.getTime();\n}\nfunction isEqual(date, comparing) {\n return date.getTime() === comparing.getTime();\n}\nfunction isSameDay(date, comparing) {\n return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();\n}\nfunction isSameMonth(date, comparing) {\n return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();\n}\nfunction isSameYear(date, comparing) {\n return date.getFullYear() === comparing.getFullYear();\n}\nfunction getDiff(date, comparing, unit) {\n const d = new Date(date);\n const c = new Date(comparing);\n switch (unit) {\n case 'years':\n return d.getFullYear() - c.getFullYear();\n case 'quarters':\n return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4);\n case 'months':\n return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;\n case 'weeks':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7));\n case 'days':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));\n case 'hours':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60));\n case 'minutes':\n return Math.floor((d.getTime() - c.getTime()) / (1000 * 60));\n case 'seconds':\n return Math.floor((d.getTime() - c.getTime()) / 1000);\n default:\n {\n return d.getTime() - c.getTime();\n }\n }\n}\nfunction setHours(date, count) {\n const d = new Date(date);\n d.setHours(count);\n return d;\n}\nfunction setMinutes(date, count) {\n const d = new Date(date);\n d.setMinutes(count);\n return d;\n}\nfunction setMonth(date, count) {\n const d = new Date(date);\n d.setMonth(count);\n return d;\n}\nfunction setDate(date, day) {\n const d = new Date(date);\n d.setDate(day);\n return d;\n}\nfunction setYear(date, year) {\n const d = new Date(date);\n d.setFullYear(year);\n return d;\n}\nfunction startOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);\n}\nfunction endOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);\n}\nexport class VuetifyDateAdapter {\n constructor(options) {\n this.locale = options.locale;\n this.formats = options.formats;\n }\n date(value) {\n return date(value);\n }\n toJsDate(date) {\n return date;\n }\n toISO(date) {\n return toISO(this, date);\n }\n parseISO(date) {\n return parseISO(date);\n }\n addMinutes(date, amount) {\n return addMinutes(date, amount);\n }\n addHours(date, amount) {\n return addHours(date, amount);\n }\n addDays(date, amount) {\n return addDays(date, amount);\n }\n addWeeks(date, amount) {\n return addWeeks(date, amount);\n }\n addMonths(date, amount) {\n return addMonths(date, amount);\n }\n getWeekArray(date, firstDayOfWeek) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;\n return getWeekArray(date, this.locale, firstDay);\n }\n startOfWeek(date, firstDayOfWeek) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;\n return startOfWeek(date, this.locale, firstDay);\n }\n endOfWeek(date) {\n return endOfWeek(date, this.locale);\n }\n startOfMonth(date) {\n return startOfMonth(date);\n }\n endOfMonth(date) {\n return endOfMonth(date);\n }\n format(date, formatString) {\n return format(date, formatString, this.locale, this.formats);\n }\n isEqual(date, comparing) {\n return isEqual(date, comparing);\n }\n isValid(date) {\n return isValid(date);\n }\n isWithinRange(date, range) {\n return isWithinRange(date, range);\n }\n isAfter(date, comparing) {\n return isAfter(date, comparing);\n }\n isAfterDay(date, comparing) {\n return isAfterDay(date, comparing);\n }\n isBefore(date, comparing) {\n return !isAfter(date, comparing) && !isEqual(date, comparing);\n }\n isSameDay(date, comparing) {\n return isSameDay(date, comparing);\n }\n isSameMonth(date, comparing) {\n return isSameMonth(date, comparing);\n }\n isSameYear(date, comparing) {\n return isSameYear(date, comparing);\n }\n setMinutes(date, count) {\n return setMinutes(date, count);\n }\n setHours(date, count) {\n return setHours(date, count);\n }\n setMonth(date, count) {\n return setMonth(date, count);\n }\n setDate(date, day) {\n return setDate(date, day);\n }\n setYear(date, year) {\n return setYear(date, year);\n }\n getDiff(date, comparing, unit) {\n return getDiff(date, comparing, unit);\n }\n getWeekdays(firstDayOfWeek, weekdayFormat) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;\n return getWeekdays(this.locale, firstDay, weekdayFormat);\n }\n getYear(date) {\n return getYear(date);\n }\n getMonth(date) {\n return getMonth(date);\n }\n getWeek(date, firstDayOfWeek, firstDayOfYear) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;\n const firstWeekStart = firstDayOfYear !== undefined ? Number(firstDayOfYear) : undefined;\n return getWeek(date, this.locale, firstDay, firstWeekStart);\n }\n getDate(date) {\n return getDate(date);\n }\n getNextMonth(date) {\n return getNextMonth(date);\n }\n getPreviousMonth(date) {\n return getPreviousMonth(date);\n }\n getHours(date) {\n return getHours(date);\n }\n getMinutes(date) {\n return getMinutes(date);\n }\n startOfDay(date) {\n return startOfDay(date);\n }\n endOfDay(date) {\n return endOfDay(date);\n }\n startOfYear(date) {\n return startOfYear(date);\n }\n endOfYear(date) {\n return endOfYear(date);\n }\n}\n//# sourceMappingURL=vuetify.js.map","// Composables\nimport { useLocale } from \"../locale.js\"; // Utilities\nimport { inject, reactive, watch } from 'vue';\nimport { mergeDeep } from \"../../util/index.js\"; // Types\n// Adapters\nimport { VuetifyDateAdapter } from \"./adapters/vuetify.js\";\n/** Supports module augmentation to specify date adapter types */\nexport let DateModule;\nexport const DateOptionsSymbol = Symbol.for('vuetify:date-options');\nexport const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');\nexport function createDate(options, locale) {\n const _options = mergeDeep({\n adapter: VuetifyDateAdapter,\n locale: {\n af: 'af-ZA',\n // ar: '', # not the same value for all variants\n bg: 'bg-BG',\n ca: 'ca-ES',\n ckb: '',\n cs: 'cs-CZ',\n de: 'de-DE',\n el: 'el-GR',\n en: 'en-US',\n // es: '', # not the same value for all variants\n et: 'et-EE',\n fa: 'fa-IR',\n fi: 'fi-FI',\n // fr: '', #not the same value for all variants\n hr: 'hr-HR',\n hu: 'hu-HU',\n he: 'he-IL',\n id: 'id-ID',\n it: 'it-IT',\n ja: 'ja-JP',\n ko: 'ko-KR',\n lv: 'lv-LV',\n lt: 'lt-LT',\n nl: 'nl-NL',\n no: 'no-NO',\n pl: 'pl-PL',\n pt: 'pt-PT',\n ro: 'ro-RO',\n ru: 'ru-RU',\n sk: 'sk-SK',\n sl: 'sl-SI',\n srCyrl: 'sr-SP',\n srLatn: 'sr-SP',\n sv: 'sv-SE',\n th: 'th-TH',\n tr: 'tr-TR',\n az: 'az-AZ',\n uk: 'uk-UA',\n vi: 'vi-VN',\n zhHans: 'zh-CN',\n zhHant: 'zh-TW'\n }\n }, options);\n return {\n options: _options,\n instance: createInstance(_options, locale)\n };\n}\nexport function createDateRange(adapter, start, stop) {\n const diff = daysDiff(adapter, start, stop);\n const datesInRange = [start];\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(start, i);\n datesInRange.push(nextDate);\n }\n if (stop) {\n datesInRange.push(adapter.endOfDay(stop));\n }\n return datesInRange;\n}\nexport function daysDiff(adapter, start, stop) {\n const iso = [`${adapter.toISO(stop ?? start).split('T')[0]}T00:00:00Z`, `${adapter.toISO(start).split('T')[0]}T00:00:00Z`];\n return typeof adapter.date() === 'string' ? adapter.getDiff(iso[0], iso[1], 'days') // for StringDateAdapter\n : adapter.getDiff(adapter.date(iso[0]), adapter.date(iso[1]), 'days');\n}\nfunction createInstance(options, locale) {\n const instance = reactive(typeof options.adapter === 'function'\n // eslint-disable-next-line new-cap\n ? new options.adapter({\n locale: options.locale[locale.current.value] ?? locale.current.value,\n formats: options.formats\n }) : options.adapter);\n watch(locale.current, value => {\n instance.locale = options.locale[value] ?? value ?? instance.locale;\n });\n return instance;\n}\nexport function useDate() {\n const options = inject(DateOptionsSymbol);\n if (!options) throw new Error('[Vuetify] Could not find injected date options');\n const locale = useLocale();\n return createInstance(options, locale);\n}\n//# sourceMappingURL=date.js.map","// Utilities\nimport { inject, toRef } from 'vue';\nimport { useRtl } from \"./locale.js\";\nimport { clamp, consoleWarn, easingPatterns, mergeDeep, PREFERS_REDUCED_MOTION, refElement } from \"../util/index.js\"; // Types\nexport const GoToSymbol = Symbol.for('vuetify:goto');\nfunction genDefaults() {\n return {\n container: undefined,\n duration: 300,\n layout: false,\n offset: 0,\n easing: 'easeInOutCubic',\n patterns: easingPatterns\n };\n}\nfunction getContainer(el) {\n return getTarget(el) ?? (document.scrollingElement || document.body);\n}\nfunction getTarget(el) {\n return typeof el === 'string' ? document.querySelector(el) : refElement(el);\n}\nfunction getOffset(target, horizontal, rtl) {\n if (typeof target === 'number') return horizontal && rtl ? -target : target;\n let el = getTarget(target);\n let totalOffset = 0;\n while (el) {\n totalOffset += horizontal ? el.offsetLeft : el.offsetTop;\n el = el.offsetParent;\n }\n return totalOffset;\n}\nexport function createGoTo(options, locale) {\n return {\n rtl: locale.isRtl,\n options: mergeDeep(genDefaults(), options)\n };\n}\nexport async function scrollTo(_target, _options, horizontal, goTo) {\n const property = horizontal ? 'scrollLeft' : 'scrollTop';\n const options = mergeDeep(goTo?.options ?? genDefaults(), _options);\n const rtl = goTo?.rtl.value;\n const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;\n const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);\n const ease = PREFERS_REDUCED_MOTION() ? options.patterns.instant : typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];\n if (!ease) throw new TypeError(`Easing function \"${options.easing}\" not found.`);\n let targetLocation;\n if (typeof target === 'number') {\n targetLocation = getOffset(target, horizontal, rtl);\n } else {\n targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl);\n if (options.layout) {\n const styles = window.getComputedStyle(target);\n const layoutOffset = styles.getPropertyValue('--v-layout-top');\n if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);\n }\n }\n targetLocation += options.offset;\n targetLocation = clampTarget(container, targetLocation, !!rtl, !!horizontal);\n const startLocation = container[property] ?? 0;\n if (targetLocation === startLocation) return Promise.resolve(targetLocation);\n const startTime = performance.now();\n return new Promise(resolve => requestAnimationFrame(function step(currentTime) {\n const timeElapsed = currentTime - startTime;\n const progress = timeElapsed / options.duration;\n const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));\n container[property] = location;\n\n // Allow for some jitter if target time has elapsed\n if (progress >= 1 && Math.abs(location - container[property]) < 10) {\n return resolve(targetLocation);\n } else if (progress > 2) {\n // The target might not be reachable\n consoleWarn('Scroll target is not reachable');\n return resolve(container[property]);\n }\n requestAnimationFrame(step);\n }));\n}\nexport function useGoTo(_options = {}) {\n const goToInstance = inject(GoToSymbol);\n const {\n isRtl\n } = useRtl();\n if (!goToInstance) throw new Error('[Vuetify] Could not find injected goto instance');\n const goTo = {\n ...goToInstance,\n // can be set via VLocaleProvider\n rtl: toRef(() => goToInstance.rtl.value || isRtl.value)\n };\n async function go(target, options) {\n return scrollTo(target, mergeDeep(_options, options), false, goTo);\n }\n go.horizontal = async (target, options) => {\n return scrollTo(target, mergeDeep(_options, options), true, goTo);\n };\n return go;\n}\n\n/**\n * Clamp target value to achieve a smooth scroll animation\n * when the value goes outside the scroll container size\n */\nfunction clampTarget(container, value, rtl, horizontal) {\n const {\n scrollWidth,\n scrollHeight\n } = container;\n const [containerWidth, containerHeight] = container === document.scrollingElement ? [window.innerWidth, window.innerHeight] : [container.offsetWidth, container.offsetHeight];\n let min;\n let max;\n if (horizontal) {\n if (rtl) {\n min = -(scrollWidth - containerWidth);\n max = 0;\n } else {\n min = 0;\n max = scrollWidth - containerWidth;\n }\n } else {\n min = 0;\n max = scrollHeight + -containerHeight;\n }\n return clamp(value, min, max);\n}\n//# sourceMappingURL=goto.js.map","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue';\nimport { templateRef } from \"../util/index.js\";\nimport { IN_BROWSER } from \"../util/globals.js\"; // Types\nexport function useResizeObserver(callback, box = 'content') {\n const resizeRef = templateRef();\n const contentRect = ref();\n if (IN_BROWSER) {\n const observer = new ResizeObserver(entries => {\n callback?.(entries, observer);\n if (!entries.length) return;\n if (box === 'content') {\n contentRect.value = entries[0].contentRect;\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect();\n }\n });\n onBeforeUnmount(() => {\n observer.disconnect();\n });\n watch(() => resizeRef.el, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue);\n contentRect.value = undefined;\n }\n if (newValue) observer.observe(newValue);\n }, {\n flush: 'post'\n });\n }\n return {\n resizeRef,\n contentRect: readonly(contentRect)\n };\n}\n//# sourceMappingURL=resizeObserver.js.map","// Composables\nimport { useResizeObserver } from \"./resizeObserver.js\"; // Utilities\nimport { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref, shallowRef, toRef, useId } from 'vue';\nimport { consoleWarn, convertToUnit, findChildrenWithProvide, getCurrentInstance, propsFactory } from \"../util/index.js\"; // Types\nexport const VuetifyLayoutKey = Symbol.for('vuetify:layout');\nexport const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');\nconst ROOT_ZINDEX = 1000;\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => []\n },\n fullHeight: Boolean\n}, 'layout');\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String\n },\n order: {\n type: [Number, String],\n default: 0\n },\n absolute: Boolean\n}, 'layout-item');\nexport function useLayout() {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n return {\n getLayoutItem: layout.getLayoutItem,\n mainRect: layout.mainRect,\n mainStyles: layout.mainStyles\n };\n}\nexport function useLayoutItem(options) {\n const layout = inject(VuetifyLayoutKey);\n if (!layout) throw new Error('[Vuetify] Could not find injected layout');\n const id = options.id ?? `layout-item-${useId()}`;\n const vm = getCurrentInstance('useLayoutItem');\n provide(VuetifyLayoutItemKey, {\n id\n });\n const isKeptAlive = shallowRef(false);\n onDeactivated(() => isKeptAlive.value = true);\n onActivated(() => isKeptAlive.value = false);\n const {\n layoutItemStyles,\n layoutItemScrimStyles\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id\n });\n onBeforeUnmount(() => layout.unregister(id));\n return {\n layoutItemStyles,\n layoutRect: layout.layoutRect,\n layoutItemScrimStyles\n };\n}\nconst generateLayers = (layout, positions, layoutSizes, activeItems) => {\n let previousLayer = {\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n };\n const layers = [{\n id: '',\n layer: {\n ...previousLayer\n }\n }];\n for (const id of layout) {\n const position = positions.get(id);\n const amount = layoutSizes.get(id);\n const active = activeItems.get(id);\n if (!position || !amount || !active) continue;\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0)\n };\n layers.push({\n id,\n layer\n });\n previousLayer = layer;\n }\n return layers;\n};\nexport function createLayout(props) {\n const parentLayout = inject(VuetifyLayoutKey, null);\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);\n const registered = ref([]);\n const positions = reactive(new Map());\n const layoutSizes = reactive(new Map());\n const priorities = reactive(new Map());\n const activeItems = reactive(new Map());\n const disabledTransitions = reactive(new Map());\n const {\n resizeRef,\n contentRect: layoutRect\n } = useResizeObserver();\n const computedOverlaps = computed(() => {\n const map = new Map();\n const overlaps = props.overlaps ?? [];\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':');\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;\n const topPosition = positions.get(top);\n const bottomPosition = positions.get(bottom);\n const topAmount = layoutSizes.get(top);\n const bottomAmount = layoutSizes.get(bottom);\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;\n map.set(bottom, {\n position: topPosition.value,\n amount: parseInt(topAmount.value, 10)\n });\n map.set(top, {\n position: bottomPosition.value,\n amount: -parseInt(bottomAmount.value, 10)\n });\n }\n return map;\n });\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);\n const layout = [];\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p);\n layout.push(...items);\n }\n return generateLayers(layout, positions, layoutSizes, activeItems);\n });\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value);\n });\n const mainRect = computed(() => {\n return layers.value[layers.value.length - 1].layer;\n });\n const mainStyles = toRef(() => {\n return {\n '--v-layout-left': convertToUnit(mainRect.value.left),\n '--v-layout-right': convertToUnit(mainRect.value.right),\n '--v-layout-top': convertToUnit(mainRect.value.top),\n '--v-layout-bottom': convertToUnit(mainRect.value.bottom),\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n });\n const items = computed(() => {\n return layers.value.slice(1).map(({\n id\n }, index) => {\n const {\n layer\n } = layers.value[index];\n const size = layoutSizes.get(id);\n const position = positions.get(id);\n return {\n id,\n ...layer,\n size: Number(size.value),\n position: position.value\n };\n });\n });\n const getLayoutItem = id => {\n return items.value.find(item => item.id === id);\n };\n const rootVm = getCurrentInstance('createLayout');\n const isMounted = shallowRef(false);\n onMounted(() => {\n isMounted.value = true;\n });\n provide(VuetifyLayoutKey, {\n register: (vm, {\n id,\n order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute\n }) => {\n priorities.set(id, order);\n positions.set(id, position);\n layoutSizes.set(id, layoutSize);\n activeItems.set(id, active);\n disableTransitions && disabledTransitions.set(id, disableTransitions);\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode);\n const instanceIndex = instances.indexOf(vm);\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);\n const index = computed(() => items.value.findIndex(i => i.id === id));\n const zIndex = computed(() => rootZIndex.value + layers.value.length * 2 - index.value * 2);\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right';\n const isOppositeHorizontal = position.value === 'right';\n const isOppositeVertical = position.value === 'bottom';\n const size = elementSize.value ?? layoutSize.value;\n const unit = size === 0 ? '%' : 'px';\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -(size === 0 ? 100 : size)) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}${unit})`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : {\n transition: 'none'\n })\n };\n if (!isMounted.value) return styles;\n const item = items.value[index.value];\n if (!item) consoleWarn(`[Vuetify] Could not find layout item \"${id}\"`);\n const overlap = computedOverlaps.value.get(id);\n if (overlap) {\n item[overlap.position] += overlap.amount;\n }\n return {\n ...styles,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n left: isOppositeHorizontal ? undefined : `${item.left}px`,\n right: isOppositeHorizontal ? `${item.right}px` : undefined,\n top: position.value !== 'bottom' ? `${item.top}px` : undefined,\n bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined\n };\n });\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1\n }));\n return {\n layoutItemStyles,\n layoutItemScrimStyles,\n zIndex\n };\n },\n unregister: id => {\n priorities.delete(id);\n positions.delete(id);\n layoutSizes.delete(id);\n activeItems.delete(id);\n disabledTransitions.delete(id);\n registered.value = registered.value.filter(v => v !== id);\n },\n mainRect,\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex\n });\n const layoutClasses = toRef(() => ['v-layout', {\n 'v-layout--full-height': props.fullHeight\n }]);\n const layoutStyles = toRef(() => ({\n zIndex: parentLayout ? rootZIndex.value : undefined,\n position: parentLayout ? 'relative' : undefined,\n overflow: parentLayout ? 'hidden' : undefined\n }));\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef\n };\n}\n//# sourceMappingURL=layout.js.map","/**\n * Centralized key alias mapping for consistent key normalization across the hotkey system.\n *\n * This maps various user-friendly aliases to canonical key names that match\n * KeyboardEvent.key values (in lowercase) where possible.\n */\nexport const keyAliasMap = {\n // Modifier aliases (from vue-use, other libraries, and current implementation)\n control: 'ctrl',\n command: 'cmd',\n option: 'alt',\n // Arrow key aliases (common abbreviations)\n up: 'arrowup',\n down: 'arrowdown',\n left: 'arrowleft',\n right: 'arrowright',\n // Other common key aliases\n esc: 'escape',\n spacebar: ' ',\n space: ' ',\n return: 'enter',\n del: 'delete',\n // Symbol aliases (existing from hotkey-parsing.ts)\n minus: '-',\n hyphen: '-'\n};\n\n/**\n * Normalizes a key string to its canonical form using the alias map.\n *\n * @param key - The key string to normalize\n * @returns The canonical key name in lowercase\n */\nexport function normalizeKey(key) {\n const lowerKey = key.toLowerCase();\n return keyAliasMap[lowerKey] || lowerKey;\n}\n//# sourceMappingURL=key-aliases.js.map","// Utilities\nimport { normalizeKey } from \"./key-aliases.js\";\nimport { consoleWarn } from \"../../util/console.js\"; // Types\nexport const MODIFIERS = ['ctrl', 'shift', 'alt', 'meta', 'cmd'];\n\n/**\n * Splits a single combination string into individual key parts.\n *\n * A combination is a set of keys that must be pressed simultaneously.\n * e.g. `ctrl+k`, `shift--`\n */\nexport function splitKeyCombination(combination, isInternal = false) {\n const emptyResult = {\n keys: [],\n separators: []\n };\n if (!combination) {\n if (!isInternal) consoleWarn('Invalid hotkey combination: empty string provided');\n return emptyResult;\n }\n\n // --- VALIDATION ---\n\n const hasInvalidLeadingSeparator = combination.length > 1 &&\n // Starts with a single separator followed by a non-separator character (e.g. '+a', '_a')\n ['+', '/', '_'].some(v => combination.startsWith(v)) && !['++', '//', '__'].some(v => combination.startsWith(v));\n const hasInvalidStructure = hasInvalidLeadingSeparator ||\n // Disallow literal + or _ keys (they require shift)\n combination.includes('++') || combination.includes('__') || combination === '+' || combination === '_' ||\n // Ends with a separator that is not part of a doubled literal\n combination.length > 1 && (combination.endsWith('+') || combination.endsWith('_')) && combination.at(-2) !== combination.at(-1) ||\n // Stand-alone doubled separators (dangling)\n combination === '++' || combination === '--' || combination === '__';\n if (hasInvalidStructure) {\n if (!isInternal) consoleWarn(`Invalid hotkey combination: \"${combination}\" has invalid structure`);\n return emptyResult;\n }\n const keys = [];\n const separators = [];\n let buffer = '';\n const flushBuffer = separator => {\n if (buffer) {\n separator && separators.push(separator);\n keys.push(normalizeKey(buffer));\n buffer = '';\n }\n };\n for (let i = 0; i < combination.length; i++) {\n const char = combination[i];\n const nextChar = combination[i + 1];\n if (['+', '/', '_', '-'].includes(char)) {\n if (char === nextChar) {\n flushBuffer(char);\n keys.push(char);\n i++;\n } else if (['+', '/', '_'].includes(char)) {\n flushBuffer(char);\n } else {\n buffer += char;\n }\n } else {\n buffer += char;\n }\n }\n flushBuffer();\n\n // Within a combination, `-` is only valid as a literal key (e.g., `ctrl+-`).\n // `-` cannot be part of a longer key name within a combination.\n const hasInvalidMinus = keys.some(key => key.length > 1 && key.includes('-') && key !== '--');\n if (hasInvalidMinus) {\n if (!isInternal) consoleWarn(`Invalid hotkey combination: \"${combination}\" has invalid structure`);\n return emptyResult;\n }\n if (keys.length === 0 && combination) {\n return {\n keys: [normalizeKey(combination)],\n separators\n };\n }\n return {\n keys,\n separators\n };\n}\n\n/**\n * Splits a hotkey string into its constituent combination groups.\n *\n * A sequence is a series of combinations that must be pressed in order.\n * e.g. `a-b`, `ctrl+k-p`\n */\nexport function splitKeySequence(str) {\n if (!str) {\n consoleWarn('Invalid hotkey sequence: empty string provided');\n return [];\n }\n\n // A sequence is invalid if it starts or ends with a separator,\n // unless it is part of a combination (e.g., `shift+-`).\n const hasInvalidStart = str.startsWith('-') && !['---', '--+'].includes(str);\n const hasInvalidEnd = str.endsWith('-') && !str.endsWith('+-') && !str.endsWith('_-') && str !== '-' && str !== '---';\n if (hasInvalidStart || hasInvalidEnd) {\n consoleWarn(`Invalid hotkey sequence: \"${str}\" contains invalid combinations`);\n return [];\n }\n const result = [];\n let buffer = '';\n let i = 0;\n while (i < str.length) {\n const char = str[i];\n if (char === '-') {\n // Determine if this hyphen is part of the current combination\n const prevChar = str[i - 1];\n const prevPrevChar = i > 1 ? str[i - 2] : undefined;\n const precededBySeparator = ['+', '_'].includes(prevChar) && !['+', '/'].includes(prevPrevChar ?? '');\n if (precededBySeparator) {\n // Treat as part of the combination (e.g., 'ctrl+-')\n buffer += char;\n i++;\n } else {\n // Treat as sequence separator\n if (buffer) {\n result.push(buffer);\n buffer = '';\n } else {\n // Empty buffer means we have a literal '-' key\n result.push('-');\n }\n i++;\n }\n } else {\n buffer += char;\n i++;\n }\n }\n\n // Add final buffer if it exists\n if (buffer) {\n result.push(buffer);\n }\n\n // Collapse runs of '-' so that every second '-' is removed\n const collapsed = [];\n let minusCount = 0;\n for (const part of result) {\n if (part === '-') {\n if (minusCount % 2 === 0) collapsed.push('-');\n minusCount++;\n } else {\n minusCount = 0;\n collapsed.push(part);\n }\n }\n\n // Validate that each part of the sequence is a valid combination\n const areAllValid = collapsed.every(s => splitKeyCombination(s, true).keys.length > 0);\n if (!areAllValid) {\n consoleWarn(`Invalid hotkey sequence: \"${str}\" contains invalid combinations`);\n return [];\n }\n return collapsed;\n}\n//# sourceMappingURL=hotkey-parsing.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6],"mappings":"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"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Dt as mergeProps, U as computed, W as createBaseVNode, ar as normalizeClass, er as toValue, et as createVNode, xt as inject } from "./vue.runtime.esm-bundler-YcakWsDn.js";
|
|
2
|
+
import { _t as consoleWarn, r as genericComponent, t as defineComponent, u as propsFactory } from "./defineComponent-DK6LSjDW.js";
|
|
3
|
+
//#region ../../../../node_modules/vuetify/lib/composables/icons.js
|
|
4
|
+
var IconValue = [
|
|
5
|
+
String,
|
|
6
|
+
Function,
|
|
7
|
+
Object,
|
|
8
|
+
Array
|
|
9
|
+
];
|
|
10
|
+
var IconSymbol = Symbol.for("vuetify:icons");
|
|
11
|
+
var makeIconProps = propsFactory({
|
|
12
|
+
icon: { type: IconValue },
|
|
13
|
+
tag: {
|
|
14
|
+
type: [
|
|
15
|
+
String,
|
|
16
|
+
Object,
|
|
17
|
+
Function
|
|
18
|
+
],
|
|
19
|
+
required: true
|
|
20
|
+
}
|
|
21
|
+
}, "icon");
|
|
22
|
+
var VComponentIcon = genericComponent()({
|
|
23
|
+
name: "VComponentIcon",
|
|
24
|
+
props: makeIconProps(),
|
|
25
|
+
setup(props, { slots }) {
|
|
26
|
+
return () => {
|
|
27
|
+
const Icon = props.icon;
|
|
28
|
+
return createVNode(props.tag, null, { default: () => [props.icon ? createVNode(Icon, null, null) : slots.default?.()] });
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
var VSvgIcon = defineComponent({
|
|
33
|
+
name: "VSvgIcon",
|
|
34
|
+
inheritAttrs: false,
|
|
35
|
+
props: makeIconProps(),
|
|
36
|
+
setup(props, { attrs }) {
|
|
37
|
+
return () => {
|
|
38
|
+
return createVNode(props.tag, mergeProps(attrs, { "style": null }), { default: () => [createBaseVNode("svg", {
|
|
39
|
+
"class": "v-icon__svg",
|
|
40
|
+
"xmlns": "http://www.w3.org/2000/svg",
|
|
41
|
+
"viewBox": "0 0 24 24",
|
|
42
|
+
"role": "img",
|
|
43
|
+
"aria-hidden": "true"
|
|
44
|
+
}, [Array.isArray(props.icon) ? props.icon.map((path) => Array.isArray(path) ? createBaseVNode("path", {
|
|
45
|
+
"d": path[0],
|
|
46
|
+
"fill-opacity": path[1]
|
|
47
|
+
}, null) : createBaseVNode("path", { "d": path }, null)) : createBaseVNode("path", { "d": props.icon }, null)])] });
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
var VLigatureIcon = defineComponent({
|
|
52
|
+
name: "VLigatureIcon",
|
|
53
|
+
props: makeIconProps(),
|
|
54
|
+
setup(props) {
|
|
55
|
+
return () => {
|
|
56
|
+
return createVNode(props.tag, null, { default: () => [props.icon] });
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
var VClassIcon = defineComponent({
|
|
61
|
+
name: "VClassIcon",
|
|
62
|
+
props: makeIconProps(),
|
|
63
|
+
setup(props) {
|
|
64
|
+
return () => {
|
|
65
|
+
return createVNode(props.tag, { "class": normalizeClass(props.icon) }, null);
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
var useIcon = (props) => {
|
|
70
|
+
const icons = inject(IconSymbol);
|
|
71
|
+
if (!icons) throw new Error("Missing Vuetify Icons provide!");
|
|
72
|
+
return { iconData: computed(() => {
|
|
73
|
+
const iconAlias = toValue(props);
|
|
74
|
+
if (!iconAlias) return { component: VComponentIcon };
|
|
75
|
+
let icon = iconAlias;
|
|
76
|
+
if (typeof icon === "string") {
|
|
77
|
+
icon = icon.trim();
|
|
78
|
+
if (icon.startsWith("$")) icon = icons.aliases?.[icon.slice(1)];
|
|
79
|
+
}
|
|
80
|
+
if (!icon) consoleWarn(`Could not find aliased icon "${iconAlias}"`);
|
|
81
|
+
if (Array.isArray(icon)) return {
|
|
82
|
+
component: VSvgIcon,
|
|
83
|
+
icon
|
|
84
|
+
};
|
|
85
|
+
else if (typeof icon !== "string") return {
|
|
86
|
+
component: VComponentIcon,
|
|
87
|
+
icon
|
|
88
|
+
};
|
|
89
|
+
const iconSetName = Object.keys(icons.sets).find((setName) => typeof icon === "string" && icon.startsWith(`${setName}:`));
|
|
90
|
+
const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;
|
|
91
|
+
return {
|
|
92
|
+
component: icons.sets[iconSetName ?? icons.defaultSet].component,
|
|
93
|
+
icon: iconName
|
|
94
|
+
};
|
|
95
|
+
}) };
|
|
96
|
+
};
|
|
97
|
+
//#endregion
|
|
98
|
+
export { VLigatureIcon as a, VComponentIcon as i, IconValue as n, VSvgIcon as o, VClassIcon as r, useIcon as s, IconSymbol as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icons-ze2hmg7j.js","names":["_createVNode","_mergeProps","_createElementVNode","_normalizeClass"],"sources":["../../../../../../../node_modules/vuetify/lib/composables/icons.js"],"sourcesContent":["// Utilities\nimport { computed, inject, toValue, createVNode as _createVNode, createElementVNode as _createElementVNode, mergeProps as _mergeProps, normalizeClass as _normalizeClass } from 'vue';\nimport { consoleWarn, defineComponent, genericComponent, propsFactory } from \"../util/index.js\"; // Types\nexport const IconValue = [String, Function, Object, Array];\nexport const IconSymbol = Symbol.for('vuetify:icons');\nexport const makeIconProps = propsFactory({\n icon: {\n type: IconValue\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: [String, Object, Function],\n required: true\n }\n}, 'icon');\nexport const VComponentIcon = genericComponent()({\n name: 'VComponentIcon',\n props: makeIconProps(),\n setup(props, {\n slots\n }) {\n return () => {\n const Icon = props.icon;\n return _createVNode(props.tag, null, {\n default: () => [props.icon ? _createVNode(Icon, null, null) : slots.default?.()]\n });\n };\n }\n});\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n inheritAttrs: false,\n props: makeIconProps(),\n setup(props, {\n attrs\n }) {\n return () => {\n return _createVNode(props.tag, _mergeProps(attrs, {\n \"style\": null\n }), {\n default: () => [_createElementVNode(\"svg\", {\n \"class\": \"v-icon__svg\",\n \"xmlns\": \"http://www.w3.org/2000/svg\",\n \"viewBox\": \"0 0 24 24\",\n \"role\": \"img\",\n \"aria-hidden\": \"true\"\n }, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? _createElementVNode(\"path\", {\n \"d\": path[0],\n \"fill-opacity\": path[1]\n }, null) : _createElementVNode(\"path\", {\n \"d\": path\n }, null)) : _createElementVNode(\"path\", {\n \"d\": props.icon\n }, null)])]\n });\n };\n }\n});\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, null, {\n default: () => [props.icon]\n });\n };\n }\n});\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n props: makeIconProps(),\n setup(props) {\n return () => {\n return _createVNode(props.tag, {\n \"class\": _normalizeClass(props.icon)\n }, null);\n };\n }\n});\nexport const useIcon = props => {\n const icons = inject(IconSymbol);\n if (!icons) throw new Error('Missing Vuetify Icons provide!');\n const iconData = computed(() => {\n const iconAlias = toValue(props);\n if (!iconAlias) return {\n component: VComponentIcon\n };\n let icon = iconAlias;\n if (typeof icon === 'string') {\n icon = icon.trim();\n if (icon.startsWith('$')) {\n icon = icons.aliases?.[icon.slice(1)];\n }\n }\n if (!icon) consoleWarn(`Could not find aliased icon \"${iconAlias}\"`);\n if (Array.isArray(icon)) {\n return {\n component: VSvgIcon,\n icon\n };\n } else if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon\n };\n }\n const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet];\n return {\n component: iconSet.component,\n icon: iconName\n };\n });\n return {\n iconData\n };\n};\n//# sourceMappingURL=icons.js.map"],"x_google_ignoreList":[0],"mappings":";;;AAGA,IAAa,YAAY;CAAC;CAAQ;CAAU;CAAQ;AAAK;AACzD,IAAa,aAAa,OAAO,IAAI,eAAe;AACpD,IAAa,gBAAgB,aAAa;CACxC,MAAM,EACJ,MAAM,UACR;CAEA,KAAK;EACH,MAAM;GAAC;GAAQ;GAAQ;EAAQ;EAC/B,UAAU;CACZ;AACF,GAAG,MAAM;AACT,IAAa,iBAAiB,iBAAiB,CAAC,CAAC;CAC/C,MAAM;CACN,OAAO,cAAc;CACrB,MAAM,OAAO,EACX,SACC;EACD,aAAa;GACX,MAAM,OAAO,MAAM;GACnB,OAAOA,YAAa,MAAM,KAAK,MAAM,EACnC,eAAe,CAAC,MAAM,OAAOA,YAAa,MAAM,MAAM,IAAI,IAAI,MAAM,UAAU,CAAC,EACjF,CAAC;EACH;CACF;AACF,CAAC;AACD,IAAa,WAAW,gBAAgB;CACtC,MAAM;CACN,cAAc;CACd,OAAO,cAAc;CACrB,MAAM,OAAO,EACX,SACC;EACD,aAAa;GACX,OAAOA,YAAa,MAAM,KAAKC,WAAY,OAAO,EAChD,SAAS,KACX,CAAC,GAAG,EACF,eAAe,CAACC,gBAAoB,OAAO;IACzC,SAAS;IACT,SAAS;IACT,WAAW;IACX,QAAQ;IACR,eAAe;GACjB,GAAG,CAAC,MAAM,QAAQ,MAAM,IAAI,IAAI,MAAM,KAAK,KAAI,SAAQ,MAAM,QAAQ,IAAI,IAAIA,gBAAoB,QAAQ;IACvG,KAAK,KAAK;IACV,gBAAgB,KAAK;GACvB,GAAG,IAAI,IAAIA,gBAAoB,QAAQ,EACrC,KAAK,KACP,GAAG,IAAI,CAAC,IAAIA,gBAAoB,QAAQ,EACtC,KAAK,MAAM,KACb,GAAG,IAAI,CAAC,CAAC,CAAC,EACZ,CAAC;EACH;CACF;AACF,CAAC;AACD,IAAa,gBAAgB,gBAAgB;CAC3C,MAAM;CACN,OAAO,cAAc;CACrB,MAAM,OAAO;EACX,aAAa;GACX,OAAOF,YAAa,MAAM,KAAK,MAAM,EACnC,eAAe,CAAC,MAAM,IAAI,EAC5B,CAAC;EACH;CACF;AACF,CAAC;AACD,IAAa,aAAa,gBAAgB;CACxC,MAAM;CACN,OAAO,cAAc;CACrB,MAAM,OAAO;EACX,aAAa;GACX,OAAOA,YAAa,MAAM,KAAK,EAC7B,SAASG,eAAgB,MAAM,IAAI,EACrC,GAAG,IAAI;EACT;CACF;AACF,CAAC;AACD,IAAa,WAAU,UAAS;CAC9B,MAAM,QAAQ,OAAO,UAAU;CAC/B,IAAI,CAAC,OAAO,MAAM,IAAI,MAAM,gCAAgC;CAiC5D,OAAO,EACL,UAjCe,eAAe;EAC9B,MAAM,YAAY,QAAQ,KAAK;EAC/B,IAAI,CAAC,WAAW,OAAO,EACrB,WAAW,eACb;EACA,IAAI,OAAO;EACX,IAAI,OAAO,SAAS,UAAU;GAC5B,OAAO,KAAK,KAAK;GACjB,IAAI,KAAK,WAAW,GAAG,GACrB,OAAO,MAAM,UAAU,KAAK,MAAM,CAAC;EAEvC;EACA,IAAI,CAAC,MAAM,YAAY,gCAAgC,UAAU,EAAE;EACnE,IAAI,MAAM,QAAQ,IAAI,GACpB,OAAO;GACL,WAAW;GACX;EACF;OACK,IAAI,OAAO,SAAS,UACzB,OAAO;GACL,WAAW;GACX;EACF;EAEF,MAAM,cAAc,OAAO,KAAK,MAAM,IAAI,CAAC,CAAC,MAAK,YAAW,OAAO,SAAS,YAAY,KAAK,WAAW,GAAG,QAAQ,EAAE,CAAC;EACtH,MAAM,WAAW,cAAc,KAAK,MAAM,YAAY,SAAS,CAAC,IAAI;EAEpE,OAAO;GACL,WAFc,MAAM,KAAK,eAAe,MAAM,WAE5B,CAAC;GACnB,MAAM;EACR;CACF,CAES,EACT;AACF"}
|