@vuetify/nightly 3.9.0-beta.1-dev.2025-06-26 → 3.9.0-beta.1-dev.2025-07-02

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.
Files changed (243) hide show
  1. package/CHANGELOG.md +105 -3
  2. package/dist/_component-variables-labs.sass +1 -0
  3. package/dist/json/attributes.json +2814 -2754
  4. package/dist/json/importMap-labs.json +16 -12
  5. package/dist/json/importMap.json +174 -174
  6. package/dist/json/tags.json +20 -0
  7. package/dist/json/web-types.json +5362 -5196
  8. package/dist/vuetify-labs.cjs +796 -64
  9. package/dist/vuetify-labs.css +3440 -3189
  10. package/dist/vuetify-labs.d.ts +452 -206
  11. package/dist/vuetify-labs.esm.js +796 -65
  12. package/dist/vuetify-labs.esm.js.map +1 -1
  13. package/dist/vuetify-labs.js +796 -64
  14. package/dist/vuetify-labs.min.css +2 -2
  15. package/dist/vuetify.cjs +378 -40
  16. package/dist/vuetify.cjs.map +1 -1
  17. package/dist/vuetify.css +3377 -3368
  18. package/dist/vuetify.d.ts +82 -62
  19. package/dist/vuetify.esm.js +378 -41
  20. package/dist/vuetify.esm.js.map +1 -1
  21. package/dist/vuetify.js +378 -40
  22. package/dist/vuetify.js.map +1 -1
  23. package/dist/vuetify.min.css +2 -2
  24. package/dist/vuetify.min.js +312 -274
  25. package/dist/vuetify.min.js.map +1 -1
  26. package/lib/components/VDataTable/VDataTableColumn.js +0 -1
  27. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  28. package/lib/components/VDataTable/VDataTableHeaders.js +5 -5
  29. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  30. package/lib/components/VDataTable/composables/sort.js +2 -1
  31. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  32. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -2
  33. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  34. package/lib/components/VKbd/VKbd.css +14 -5
  35. package/lib/components/VKbd/VKbd.js.map +1 -1
  36. package/lib/components/VKbd/VKbd.scss +26 -0
  37. package/lib/components/VKbd/_variables.scss +12 -6
  38. package/lib/components/VKbd/index.js.map +1 -1
  39. package/lib/components/VOtpInput/VOtpInput.js +17 -14
  40. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  41. package/lib/components/VOverlay/locationStrategies.js +1 -1
  42. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  43. package/lib/components/VTextField/VTextField.js +1 -1
  44. package/lib/components/VTextField/VTextField.js.map +1 -1
  45. package/lib/composables/calendar.d.ts +0 -1
  46. package/lib/composables/calendar.js +6 -10
  47. package/lib/composables/calendar.js.map +1 -1
  48. package/lib/composables/date/adapters/vuetify.js +1 -1
  49. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  50. package/lib/composables/hotkey/hotkey-parsing.d.ts +15 -0
  51. package/lib/composables/hotkey/hotkey-parsing.js +154 -0
  52. package/lib/composables/hotkey/hotkey-parsing.js.map +1 -0
  53. package/lib/composables/hotkey/hotkey.d.ts +9 -0
  54. package/lib/composables/{hotkey.js → hotkey/hotkey.js} +31 -39
  55. package/lib/composables/hotkey/hotkey.js.map +1 -0
  56. package/lib/composables/hotkey/index.d.ts +1 -0
  57. package/lib/composables/hotkey/index.js +2 -0
  58. package/lib/composables/hotkey/index.js.map +1 -0
  59. package/lib/composables/hotkey/key-aliases.d.ts +14 -0
  60. package/lib/composables/hotkey/key-aliases.js +38 -0
  61. package/lib/composables/hotkey/key-aliases.js.map +1 -0
  62. package/lib/composables/icons.d.ts +11 -0
  63. package/lib/composables/icons.js.map +1 -1
  64. package/lib/composables/index.d.ts +1 -0
  65. package/lib/composables/index.js +1 -0
  66. package/lib/composables/index.js.map +1 -1
  67. package/lib/composables/virtual.js +1 -1
  68. package/lib/composables/virtual.js.map +1 -1
  69. package/lib/entry-bundler.js +1 -1
  70. package/lib/framework.d.ts +83 -62
  71. package/lib/framework.js +1 -1
  72. package/lib/iconsets/fa.js +12 -1
  73. package/lib/iconsets/fa.js.map +1 -1
  74. package/lib/iconsets/fa4.js +12 -1
  75. package/lib/iconsets/fa4.js.map +1 -1
  76. package/lib/iconsets/md.js +12 -1
  77. package/lib/iconsets/md.js.map +1 -1
  78. package/lib/iconsets/mdi-svg.js +12 -1
  79. package/lib/iconsets/mdi-svg.js.map +1 -1
  80. package/lib/iconsets/mdi.js +12 -1
  81. package/lib/iconsets/mdi.js.map +1 -1
  82. package/lib/labs/VCalendar/VCalendar.d.ts +33 -33
  83. package/lib/labs/VCalendar/VCalendar.js +9 -9
  84. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  85. package/lib/labs/VCalendar/VCalendarDay.d.ts +33 -33
  86. package/lib/labs/VCalendar/VCalendarDay.js +1 -1
  87. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  88. package/lib/labs/VCalendar/VCalendarInterval.d.ts +36 -36
  89. package/lib/labs/VCalendar/VCalendarInterval.js +9 -9
  90. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  91. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +12 -12
  92. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +1 -1
  93. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  94. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +36 -36
  95. package/lib/labs/VCalendar/VCalendarMonthDay.js +4 -4
  96. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  97. package/lib/labs/VHotkey/VHotkey.css +242 -0
  98. package/lib/labs/VHotkey/VHotkey.d.ts +387 -0
  99. package/lib/labs/VHotkey/VHotkey.js +432 -0
  100. package/lib/labs/VHotkey/VHotkey.js.map +1 -0
  101. package/lib/labs/VHotkey/VHotkey.scss +253 -0
  102. package/lib/labs/VHotkey/_variables.scss +43 -0
  103. package/lib/labs/VHotkey/index.d.ts +1 -0
  104. package/lib/labs/VHotkey/index.js +2 -0
  105. package/lib/labs/VHotkey/index.js.map +1 -0
  106. package/lib/labs/VIconBtn/VIconBtn.js +1 -0
  107. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  108. package/lib/labs/components.d.ts +1 -0
  109. package/lib/labs/components.js +1 -0
  110. package/lib/labs/components.js.map +1 -1
  111. package/lib/locale/af.d.ts +18 -0
  112. package/lib/locale/af.js +18 -0
  113. package/lib/locale/af.js.map +1 -1
  114. package/lib/locale/ar.d.ts +18 -0
  115. package/lib/locale/ar.js +18 -0
  116. package/lib/locale/ar.js.map +1 -1
  117. package/lib/locale/az.d.ts +18 -0
  118. package/lib/locale/az.js +18 -0
  119. package/lib/locale/az.js.map +1 -1
  120. package/lib/locale/bg.d.ts +18 -0
  121. package/lib/locale/bg.js +18 -0
  122. package/lib/locale/bg.js.map +1 -1
  123. package/lib/locale/ca.d.ts +18 -0
  124. package/lib/locale/ca.js +18 -0
  125. package/lib/locale/ca.js.map +1 -1
  126. package/lib/locale/ckb.d.ts +18 -0
  127. package/lib/locale/ckb.js +18 -0
  128. package/lib/locale/ckb.js.map +1 -1
  129. package/lib/locale/cs.d.ts +18 -0
  130. package/lib/locale/cs.js +18 -0
  131. package/lib/locale/cs.js.map +1 -1
  132. package/lib/locale/da.d.ts +18 -0
  133. package/lib/locale/da.js +18 -0
  134. package/lib/locale/da.js.map +1 -1
  135. package/lib/locale/de.d.ts +18 -0
  136. package/lib/locale/de.js +18 -0
  137. package/lib/locale/de.js.map +1 -1
  138. package/lib/locale/el.d.ts +18 -0
  139. package/lib/locale/el.js +18 -0
  140. package/lib/locale/el.js.map +1 -1
  141. package/lib/locale/en.d.ts +18 -0
  142. package/lib/locale/en.js +18 -0
  143. package/lib/locale/en.js.map +1 -1
  144. package/lib/locale/es.d.ts +18 -0
  145. package/lib/locale/es.js +18 -0
  146. package/lib/locale/es.js.map +1 -1
  147. package/lib/locale/et.d.ts +18 -0
  148. package/lib/locale/et.js +18 -0
  149. package/lib/locale/et.js.map +1 -1
  150. package/lib/locale/fa.d.ts +18 -0
  151. package/lib/locale/fa.js +18 -0
  152. package/lib/locale/fa.js.map +1 -1
  153. package/lib/locale/fi.d.ts +18 -0
  154. package/lib/locale/fi.js +18 -0
  155. package/lib/locale/fi.js.map +1 -1
  156. package/lib/locale/fr.d.ts +18 -0
  157. package/lib/locale/fr.js +18 -0
  158. package/lib/locale/fr.js.map +1 -1
  159. package/lib/locale/he.d.ts +18 -0
  160. package/lib/locale/he.js +18 -0
  161. package/lib/locale/he.js.map +1 -1
  162. package/lib/locale/hr.d.ts +18 -0
  163. package/lib/locale/hr.js +18 -0
  164. package/lib/locale/hr.js.map +1 -1
  165. package/lib/locale/hu.d.ts +18 -0
  166. package/lib/locale/hu.js +18 -0
  167. package/lib/locale/hu.js.map +1 -1
  168. package/lib/locale/id.d.ts +18 -0
  169. package/lib/locale/id.js +18 -0
  170. package/lib/locale/id.js.map +1 -1
  171. package/lib/locale/it.d.ts +18 -0
  172. package/lib/locale/it.js +18 -0
  173. package/lib/locale/it.js.map +1 -1
  174. package/lib/locale/ja.d.ts +18 -0
  175. package/lib/locale/ja.js +18 -0
  176. package/lib/locale/ja.js.map +1 -1
  177. package/lib/locale/km.d.ts +18 -0
  178. package/lib/locale/km.js +18 -0
  179. package/lib/locale/km.js.map +1 -1
  180. package/lib/locale/ko.d.ts +18 -0
  181. package/lib/locale/ko.js +18 -0
  182. package/lib/locale/ko.js.map +1 -1
  183. package/lib/locale/lt.d.ts +18 -0
  184. package/lib/locale/lt.js +18 -0
  185. package/lib/locale/lt.js.map +1 -1
  186. package/lib/locale/lv.d.ts +18 -0
  187. package/lib/locale/lv.js +18 -0
  188. package/lib/locale/lv.js.map +1 -1
  189. package/lib/locale/nl.d.ts +18 -0
  190. package/lib/locale/nl.js +18 -0
  191. package/lib/locale/nl.js.map +1 -1
  192. package/lib/locale/no.d.ts +18 -0
  193. package/lib/locale/no.js +18 -0
  194. package/lib/locale/no.js.map +1 -1
  195. package/lib/locale/pl.d.ts +18 -0
  196. package/lib/locale/pl.js +18 -0
  197. package/lib/locale/pl.js.map +1 -1
  198. package/lib/locale/pt.d.ts +18 -0
  199. package/lib/locale/pt.js +18 -0
  200. package/lib/locale/pt.js.map +1 -1
  201. package/lib/locale/ro.d.ts +18 -0
  202. package/lib/locale/ro.js +18 -0
  203. package/lib/locale/ro.js.map +1 -1
  204. package/lib/locale/ru.d.ts +18 -0
  205. package/lib/locale/ru.js +18 -0
  206. package/lib/locale/ru.js.map +1 -1
  207. package/lib/locale/sk.d.ts +18 -0
  208. package/lib/locale/sk.js +18 -0
  209. package/lib/locale/sk.js.map +1 -1
  210. package/lib/locale/sl.d.ts +18 -0
  211. package/lib/locale/sl.js +18 -0
  212. package/lib/locale/sl.js.map +1 -1
  213. package/lib/locale/sr-Cyrl.d.ts +18 -0
  214. package/lib/locale/sr-Cyrl.js +18 -0
  215. package/lib/locale/sr-Cyrl.js.map +1 -1
  216. package/lib/locale/sr-Latn.d.ts +18 -0
  217. package/lib/locale/sr-Latn.js +18 -0
  218. package/lib/locale/sr-Latn.js.map +1 -1
  219. package/lib/locale/sv.d.ts +18 -0
  220. package/lib/locale/sv.js +18 -0
  221. package/lib/locale/sv.js.map +1 -1
  222. package/lib/locale/th.d.ts +18 -0
  223. package/lib/locale/th.js +18 -0
  224. package/lib/locale/th.js.map +1 -1
  225. package/lib/locale/tr.d.ts +18 -0
  226. package/lib/locale/tr.js +18 -0
  227. package/lib/locale/tr.js.map +1 -1
  228. package/lib/locale/uk.d.ts +18 -0
  229. package/lib/locale/uk.js +18 -0
  230. package/lib/locale/uk.js.map +1 -1
  231. package/lib/locale/vi.d.ts +18 -0
  232. package/lib/locale/vi.js +18 -0
  233. package/lib/locale/vi.js.map +1 -1
  234. package/lib/locale/zh-Hans.d.ts +18 -0
  235. package/lib/locale/zh-Hans.js +18 -0
  236. package/lib/locale/zh-Hans.js.map +1 -1
  237. package/lib/locale/zh-Hant.d.ts +18 -0
  238. package/lib/locale/zh-Hant.js +18 -0
  239. package/lib/locale/zh-Hant.js.map +1 -1
  240. package/package.json +1 -1
  241. package/lib/components/VKbd/VKbd.sass +0 -15
  242. package/lib/composables/hotkey.d.ts +0 -9
  243. package/lib/composables/hotkey.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"vuetify.js","names":["createRange","padStart","weekInfo","locale","code","slice","toUpperCase","firstDay","firstWeekSize","includes","getWeekArray","date","firstDayOfWeek","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","first","firstDayWeekIndex","getDay","lastDayWeekIndex","i","adjacentDay","Date","setDate","getDate","push","day","getFullYear","getMonth","length","startOfWeek","d","endOfWeek","lastDay","parseLocalDate","value","parts","split","map","Number","_YYYMMDD","parsed","test","parse","isNaN","sundayJanuarySecond2000","getWeekdays","weekdayFormat","daysFromSunday","weekday","Intl","DateTimeFormat","format","formatString","formats","newDate","customFormat","options","year","month","NumberFormat","hour","hour12","minute","second","replace","timeZone","timeZoneName","toISO","adapter","toJsDate","String","parseISO","addMinutes","amount","setMinutes","getMinutes","addHours","setHours","getHours","addDays","addWeeks","addMonths","setMonth","getYear","getWeek","firstWeekMinSize","weekInfoFromLocale","weekStart","minWeekSize","yearStart","getDiff","currentWeekEnd","size","d1w1","endOfDay","startOfDay","getNextMonth","getPreviousMonth","startOfYear","endOfYear","isWithinRange","range","isAfter","isBefore","isValid","getTime","comparing","isAfterDay","isEqual","isSameDay","isSameMonth","isSameYear","unit","c","Math","floor","count","setYear","setFullYear","VuetifyDateAdapter","constructor","undefined"],"sources":["../../../../src/composables/date/adapters/vuetify.ts"],"sourcesContent":["// Utilities\nimport { createRange, padStart } from '@/util'\n\n// Types\nimport type { DateAdapter } from '../DateAdapter'\n\ntype CustomDateFormat = Intl.DateTimeFormatOptions | ((date: Date, formatString: string, locale: string) => string)\n\nfunction weekInfo (locale: string): { firstDay: number, firstWeekSize: number } | null {\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 return { firstDay: 0, firstWeekSize: 4 }\n }\n case locale === '001': {\n return { firstDay: 1, firstWeekSize: 1 }\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 return { firstDay: 0, firstWeekSize: 1 }\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 return { firstDay: 1, firstWeekSize: 1 }\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 return { firstDay: 1, firstWeekSize: 4 }\n }\n case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code): {\n return { firstDay: 6, firstWeekSize: 1 }\n }\n case code === 'MV': {\n return { firstDay: 5, firstWeekSize: 1 }\n }\n case code === 'PT': {\n return { firstDay: 0, firstWeekSize: 4 }\n }\n default: return null\n }\n}\n\nfunction getWeekArray (date: Date, locale: string, firstDayOfWeek?: number) {\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\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\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\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\n if (currentWeek.length > 0) {\n weeks.push(currentWeek)\n }\n\n return weeks\n}\n\nfunction startOfWeek (date: Date, locale: string, firstDayOfWeek?: number) {\n const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0\n\n const d = new Date(date)\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date, locale: string) {\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}\n\nfunction startOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction parseLocalDate (value: string): Date {\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}\n\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/\n\nfunction date (value?: any): Date | null {\n if (value == null) return new Date()\n\n if (value instanceof Date) return value\n\n if (typeof value === 'string') {\n let parsed\n\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value)\n } else {\n parsed = Date.parse(value)\n }\n\n if (!isNaN(parsed)) return new Date(parsed)\n }\n\n return null\n}\n\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2)\n\nfunction getWeekdays (locale: string, firstDayOfWeek?: number, weekdayFormat?: 'long' | 'short' | 'narrow') {\n const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0\n\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, { weekday: weekdayFormat ?? 'narrow' }).format(weekday)\n })\n}\n\nfunction format (\n value: Date,\n formatString: string,\n locale: string,\n formats?: Record<string, CustomDateFormat>\n): string {\n const newDate = date(value) ?? new Date()\n const customFormat = formats?.[formatString]\n\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale)\n }\n\n let options: Intl.DateTimeFormatOptions = {}\n switch (formatString) {\n case 'fullDate':\n options = { year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'fullDateWithWeekday':\n options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'normalDate':\n const day = newDate.getDate()\n const month = new Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)\n return `${day} ${month}`\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'shortDate':\n options = { month: 'short', day: 'numeric' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'weekday':\n options = { weekday: 'long' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate())\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'hours24h':\n options = { hour: 'numeric', hour12: false }\n break\n case 'minutes':\n options = { minute: 'numeric' }\n break\n case 'seconds':\n options = { second: 'numeric' }\n break\n case 'fullTime':\n options = { hour: 'numeric', minute: 'numeric' }\n break\n case 'fullTime12h':\n options = { hour: 'numeric', minute: 'numeric', hour12: true }\n break\n case 'fullTime24h':\n options = { hour: 'numeric', minute: 'numeric', hour12: false }\n break\n case 'fullDateTime':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' }\n break\n case 'fullDateTime12h':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: true }\n break\n case 'fullDateTime24h':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: false }\n break\n case 'keyboardDate':\n options = { year: 'numeric', month: '2-digit', day: '2-digit' }\n break\n case 'keyboardDateTime':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric' }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n case 'keyboardDateTime12h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: true }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n case 'keyboardDateTime24h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: false }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n default:\n options = customFormat ?? { timeZone: 'UTC', timeZoneName: 'short' }\n }\n\n return new Intl.DateTimeFormat(locale, options).format(newDate)\n}\n\nfunction toISO (adapter: DateAdapter<any>, value: Date) {\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\n return `${year}-${month}-${day}`\n}\n\nfunction parseISO (value: string) {\n const [year, month, day] = value.split('-').map(Number)\n\n return new Date(year, month - 1, day)\n}\n\nfunction addMinutes (date: Date, amount: number) {\n const d = new Date(date)\n d.setMinutes(d.getMinutes() + amount)\n return d\n}\n\nfunction addHours (date: Date, amount: number) {\n const d = new Date(date)\n d.setHours(d.getHours() + amount)\n return d\n}\n\nfunction addDays (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + amount)\n return d\n}\n\nfunction addWeeks (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + (amount * 7))\n return d\n}\n\nfunction addMonths (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(1)\n d.setMonth(d.getMonth() + amount)\n return d\n}\n\nfunction getYear (date: Date) {\n return date.getFullYear()\n}\n\nfunction getMonth (date: Date) {\n return date.getMonth()\n}\n\nfunction getWeek (date: Date, locale: string, firstDayOfWeek?: number, firstWeekMinSize?: number) {\n const weekInfoFromLocale = weekInfo(locale)\n const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0\n const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1\n function firstWeekSize (year: number) {\n const yearStart = new Date(year, 0, 1)\n return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days')\n }\n\n let year = getYear(date)\n const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6)\n if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {\n year++\n }\n\n const yearStart = new Date(year, 0, 1)\n const size = firstWeekSize(year)\n const d1w1 = size >= minWeekSize\n ? addDays(yearStart, size - 7)\n : addDays(yearStart, size)\n\n return 1 + getDiff(endOfDay(date), startOfDay(d1w1), 'weeks')\n}\n\nfunction getDate (date: Date) {\n return date.getDate()\n}\n\nfunction getNextMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1)\n}\n\nfunction getPreviousMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1)\n}\n\nfunction getHours (date: Date) {\n return date.getHours()\n}\n\nfunction getMinutes (date: Date) {\n return date.getMinutes()\n}\n\nfunction startOfYear (date: Date) {\n return new Date(date.getFullYear(), 0, 1)\n}\nfunction endOfYear (date: Date) {\n return new Date(date.getFullYear(), 11, 31)\n}\n\nfunction isWithinRange (date: Date, range: [Date, Date]) {\n return isAfter(date, range[0]) && isBefore(date, range[1])\n}\n\nfunction isValid (date: any) {\n const d = new Date(date)\n\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction isAfter (date: Date, comparing: Date) {\n return date.getTime() > comparing.getTime()\n}\n\nfunction isAfterDay (date: Date, comparing: Date): boolean {\n return isAfter(startOfDay(date), startOfDay(comparing))\n}\n\nfunction isBefore (date: Date, comparing: Date) {\n return date.getTime() < comparing.getTime()\n}\n\nfunction isEqual (date: Date, comparing: Date) {\n return date.getTime() === comparing.getTime()\n}\n\nfunction isSameDay (date: Date, comparing: Date) {\n return date.getDate() === comparing.getDate() &&\n date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameMonth (date: Date, comparing: Date) {\n return date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameYear (date: Date, comparing: Date) {\n return date.getFullYear() === comparing.getFullYear()\n}\n\nfunction getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\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 return d.getTime() - c.getTime()\n }\n }\n}\n\nfunction setHours (date: Date, count: number) {\n const d = new Date(date)\n d.setHours(count)\n return d\n}\n\nfunction setMinutes (date: Date, count: number) {\n const d = new Date(date)\n d.setMinutes(count)\n return d\n}\n\nfunction setMonth (date: Date, count: number) {\n const d = new Date(date)\n d.setMonth(count)\n return d\n}\n\nfunction setDate (date: Date, day: number) {\n const d = new Date(date)\n d.setDate(day)\n return d\n}\n\nfunction setYear (date: Date, year: number) {\n const d = new Date(date)\n d.setFullYear(year)\n return d\n}\n\nfunction startOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0)\n}\n\nfunction endOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999)\n}\n\nexport class VuetifyDateAdapter implements DateAdapter<Date> {\n locale: string\n formats?: Record<string, CustomDateFormat>\n\n constructor (options: { locale: string, formats?: Record<string, CustomDateFormat> }) {\n this.locale = options.locale\n this.formats = options.formats\n }\n\n date (value?: any) {\n return date(value)\n }\n\n toJsDate (date: Date) {\n return date\n }\n\n toISO (date: Date): string {\n return toISO(this, date)\n }\n\n parseISO (date: string) {\n return parseISO(date)\n }\n\n addMinutes (date: Date, amount: number) {\n return addMinutes(date, amount)\n }\n\n addHours (date: Date, amount: number) {\n return addHours(date, amount)\n }\n\n addDays (date: Date, amount: number) {\n return addDays(date, amount)\n }\n\n addWeeks (date: Date, amount: number) {\n return addWeeks(date, amount)\n }\n\n addMonths (date: Date, amount: number) {\n return addMonths(date, amount)\n }\n\n getWeekArray (date: Date, firstDayOfWeek?: number | string) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeekArray(date, this.locale, firstDay)\n }\n\n startOfWeek (date: Date, firstDayOfWeek?: number | string): Date {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return startOfWeek(date, this.locale, firstDay)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date, this.locale)\n }\n\n startOfMonth (date: Date) {\n return startOfMonth(date)\n }\n\n endOfMonth (date: Date) {\n return endOfMonth(date)\n }\n\n format (date: Date, formatString: string) {\n return format(date, formatString, this.locale, this.formats)\n }\n\n isEqual (date: Date, comparing: Date) {\n return isEqual(date, comparing)\n }\n\n isValid (date: any) {\n return isValid(date)\n }\n\n isWithinRange (date: Date, range: [Date, Date]) {\n return isWithinRange(date, range)\n }\n\n isAfter (date: Date, comparing: Date) {\n return isAfter(date, comparing)\n }\n\n isAfterDay (date: Date, comparing: Date) {\n return isAfterDay(date, comparing)\n }\n\n isBefore (date: Date, comparing: Date) {\n return !isAfter(date, comparing) && !isEqual(date, comparing)\n }\n\n isSameDay (date: Date, comparing: Date) {\n return isSameDay(date, comparing)\n }\n\n isSameMonth (date: Date, comparing: Date) {\n return isSameMonth(date, comparing)\n }\n\n isSameYear (date: Date, comparing: Date) {\n return isSameYear(date, comparing)\n }\n\n setMinutes (date: Date, count: number) {\n return setMinutes(date, count)\n }\n\n setHours (date: Date, count: number) {\n return setHours(date, count)\n }\n\n setMonth (date: Date, count: number) {\n return setMonth(date, count)\n }\n\n setDate (date: Date, day: number): Date {\n return setDate(date, day)\n }\n\n setYear (date: Date, year: number) {\n return setYear(date, year)\n }\n\n getDiff (date: Date, comparing: Date | string, unit?: string) {\n return getDiff(date, comparing, unit)\n }\n\n getWeekdays (firstDayOfWeek?: number | string, weekdayFormat?: 'long' | 'short' | 'narrow') {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeekdays(this.locale, firstDay, weekdayFormat)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getWeek (date: Date, firstDayOfWeek?: number | string, firstWeekMinSize?: number) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeek(date, this.locale, firstDay, firstWeekMinSize)\n }\n\n getDate (date: Date) {\n return getDate(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(date)\n }\n\n getPreviousMonth (date: Date) {\n return getPreviousMonth(date)\n }\n\n getHours (date: Date) {\n return getHours(date)\n }\n\n getMinutes (date: Date) {\n return getMinutes(date)\n }\n\n startOfDay (date: Date) {\n return startOfDay(date)\n }\n\n endOfDay (date: Date) {\n return endOfDay(date)\n }\n\n startOfYear (date: Date) {\n return startOfYear(date)\n }\n\n endOfYear (date: Date) {\n return endOfYear(date)\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"vuetify.js","names":["createRange","padStart","weekInfo","locale","code","slice","toUpperCase","firstDay","firstWeekSize","includes","getWeekArray","date","firstDayOfWeek","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","first","firstDayWeekIndex","getDay","lastDayWeekIndex","i","adjacentDay","Date","setDate","getDate","push","day","getFullYear","getMonth","length","startOfWeek","d","endOfWeek","lastDay","parseLocalDate","value","parts","split","map","Number","_YYYMMDD","parsed","test","parse","isNaN","sundayJanuarySecond2000","getWeekdays","weekdayFormat","daysFromSunday","weekday","Intl","DateTimeFormat","format","formatString","formats","newDate","customFormat","options","year","month","NumberFormat","hour","hour12","minute","second","replace","timeZone","timeZoneName","toISO","adapter","toJsDate","String","parseISO","addMinutes","amount","setMinutes","getMinutes","addHours","setHours","getHours","addDays","addWeeks","addMonths","setMonth","getYear","getWeek","firstWeekMinSize","weekInfoFromLocale","weekStart","minWeekSize","yearStart","getDiff","currentWeekEnd","size","d1w1","endOfDay","startOfDay","getNextMonth","getPreviousMonth","startOfYear","endOfYear","isWithinRange","range","isAfter","isBefore","isValid","getTime","comparing","isAfterDay","isEqual","isSameDay","isSameMonth","isSameYear","unit","c","Math","floor","count","setYear","setFullYear","VuetifyDateAdapter","constructor","undefined"],"sources":["../../../../src/composables/date/adapters/vuetify.ts"],"sourcesContent":["// Utilities\nimport { createRange, padStart } from '@/util'\n\n// Types\nimport type { DateAdapter } from '../DateAdapter'\n\ntype CustomDateFormat = Intl.DateTimeFormatOptions | ((date: Date, formatString: string, locale: string) => string)\n\nfunction weekInfo (locale: string): { firstDay: number, firstWeekSize: number } | null {\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 return { firstDay: 0, firstWeekSize: 4 }\n }\n case locale === '001': {\n return { firstDay: 1, firstWeekSize: 1 }\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 return { firstDay: 0, firstWeekSize: 1 }\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 return { firstDay: 1, firstWeekSize: 1 }\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 return { firstDay: 1, firstWeekSize: 4 }\n }\n case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code): {\n return { firstDay: 6, firstWeekSize: 1 }\n }\n case code === 'MV': {\n return { firstDay: 5, firstWeekSize: 1 }\n }\n case code === 'PT': {\n return { firstDay: 0, firstWeekSize: 4 }\n }\n default: return null\n }\n}\n\nfunction getWeekArray (date: Date, locale: string, firstDayOfWeek?: number) {\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\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\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\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\n if (currentWeek.length > 0) {\n weeks.push(currentWeek)\n }\n\n return weeks\n}\n\nfunction startOfWeek (date: Date, locale: string, firstDayOfWeek?: number) {\n const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0\n\n const d = new Date(date)\n while (d.getDay() !== day) {\n d.setDate(d.getDate() - 1)\n }\n return d\n}\n\nfunction endOfWeek (date: Date, locale: string) {\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}\n\nfunction startOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction parseLocalDate (value: string): Date {\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}\n\nconst _YYYMMDD = /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/\n\nfunction date (value?: any): Date | null {\n if (value == null) return new Date()\n\n if (value instanceof Date) return value\n\n if (typeof value === 'string') {\n let parsed\n\n if (_YYYMMDD.test(value)) {\n return parseLocalDate(value)\n } else {\n parsed = Date.parse(value)\n }\n\n if (!isNaN(parsed)) return new Date(parsed)\n }\n\n return null\n}\n\nconst sundayJanuarySecond2000 = new Date(2000, 0, 2)\n\nfunction getWeekdays (locale: string, firstDayOfWeek?: number, weekdayFormat?: 'long' | 'short' | 'narrow') {\n const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0\n\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, { weekday: weekdayFormat ?? 'narrow' }).format(weekday)\n })\n}\n\nfunction format (\n value: Date,\n formatString: string,\n locale: string,\n formats?: Record<string, CustomDateFormat>\n): string {\n const newDate = date(value) ?? new Date()\n const customFormat = formats?.[formatString]\n\n if (typeof customFormat === 'function') {\n return customFormat(newDate, formatString, locale)\n }\n\n let options: Intl.DateTimeFormatOptions = {}\n switch (formatString) {\n case 'fullDate':\n options = { year: 'numeric', month: 'short', day: 'numeric' }\n break\n case 'fullDateWithWeekday':\n options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }\n break\n case 'normalDate':\n const day = newDate.getDate()\n const month = new Intl.DateTimeFormat(locale, { month: 'long' }).format(newDate)\n return `${day} ${month}`\n case 'normalDateWithWeekday':\n options = { weekday: 'short', day: 'numeric', month: 'short' }\n break\n case 'shortDate':\n options = { month: 'short', day: 'numeric' }\n break\n case 'year':\n options = { year: 'numeric' }\n break\n case 'month':\n options = { month: 'long' }\n break\n case 'monthShort':\n options = { month: 'short' }\n break\n case 'monthAndYear':\n options = { month: 'long', year: 'numeric' }\n break\n case 'monthAndDate':\n options = { month: 'long', day: 'numeric' }\n break\n case 'weekday':\n options = { weekday: 'long' }\n break\n case 'weekdayShort':\n options = { weekday: 'short' }\n break\n case 'dayOfMonth':\n return new Intl.NumberFormat(locale).format(newDate.getDate())\n case 'hours12h':\n options = { hour: 'numeric', hour12: true }\n break\n case 'hours24h':\n options = { hour: 'numeric', hour12: false }\n break\n case 'minutes':\n options = { minute: 'numeric' }\n break\n case 'seconds':\n options = { second: 'numeric' }\n break\n case 'fullTime':\n options = { hour: 'numeric', minute: 'numeric' }\n break\n case 'fullTime12h':\n options = { hour: 'numeric', minute: 'numeric', hour12: true }\n break\n case 'fullTime24h':\n options = { hour: 'numeric', minute: 'numeric', hour12: false }\n break\n case 'fullDateTime':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' }\n break\n case 'fullDateTime12h':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: true }\n break\n case 'fullDateTime24h':\n options = { year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: false }\n break\n case 'keyboardDate':\n options = { year: 'numeric', month: '2-digit', day: '2-digit' }\n break\n case 'keyboardDateTime':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric' }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n case 'keyboardDateTime12h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: true }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n case 'keyboardDateTime24h':\n options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: 'numeric', minute: 'numeric', hour12: false }\n return new Intl.DateTimeFormat(locale, options).format(newDate).replace(/, /g, ' ')\n default:\n options = customFormat ?? { timeZone: 'UTC', timeZoneName: 'short' }\n }\n\n return new Intl.DateTimeFormat(locale, options).format(newDate)\n}\n\nfunction toISO (adapter: DateAdapter<any>, value: Date) {\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\n return `${year}-${month}-${day}`\n}\n\nfunction parseISO (value: string) {\n const [year, month, day] = value.split('-').map(Number)\n\n return new Date(year, month - 1, day)\n}\n\nfunction addMinutes (date: Date, amount: number) {\n const d = new Date(date)\n d.setMinutes(d.getMinutes() + amount)\n return d\n}\n\nfunction addHours (date: Date, amount: number) {\n const d = new Date(date)\n d.setHours(d.getHours() + amount)\n return d\n}\n\nfunction addDays (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + amount)\n return d\n}\n\nfunction addWeeks (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(d.getDate() + (amount * 7))\n return d\n}\n\nfunction addMonths (date: Date, amount: number) {\n const d = new Date(date)\n d.setDate(1)\n d.setMonth(d.getMonth() + amount)\n return d\n}\n\nfunction getYear (date: Date) {\n return date.getFullYear()\n}\n\nfunction getMonth (date: Date) {\n return date.getMonth()\n}\n\nfunction getWeek (date: Date, locale: string, firstDayOfWeek?: number, firstWeekMinSize?: number) {\n const weekInfoFromLocale = weekInfo(locale)\n const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0\n const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1\n function firstWeekSize (year: number) {\n const yearStart = new Date(year, 0, 1)\n return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days')\n }\n\n let year = getYear(date)\n const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6)\n if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {\n year++\n }\n\n const yearStart = new Date(year, 0, 1)\n const size = firstWeekSize(year)\n const d1w1 = size >= minWeekSize\n ? addDays(yearStart, size - 7)\n : addDays(yearStart, size)\n\n return 1 + getDiff(endOfDay(date), startOfDay(d1w1), 'weeks')\n}\n\nfunction getDate (date: Date) {\n return date.getDate()\n}\n\nfunction getNextMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 1)\n}\n\nfunction getPreviousMonth (date: Date) {\n return new Date(date.getFullYear(), date.getMonth() - 1, 1)\n}\n\nfunction getHours (date: Date) {\n return date.getHours()\n}\n\nfunction getMinutes (date: Date) {\n return date.getMinutes()\n}\n\nfunction startOfYear (date: Date) {\n return new Date(date.getFullYear(), 0, 1)\n}\nfunction endOfYear (date: Date) {\n return new Date(date.getFullYear(), 11, 31)\n}\n\nfunction isWithinRange (date: Date, range: [Date, Date]) {\n return isAfter(date, range[0]) && isBefore(date, range[1])\n}\n\nfunction isValid (date: any) {\n const d = new Date(date)\n\n return d instanceof Date && !isNaN(d.getTime())\n}\n\nfunction isAfter (date: Date, comparing: Date) {\n return date.getTime() > comparing.getTime()\n}\n\nfunction isAfterDay (date: Date, comparing: Date): boolean {\n return isAfter(startOfDay(date), startOfDay(comparing))\n}\n\nfunction isBefore (date: Date, comparing: Date) {\n return date.getTime() < comparing.getTime()\n}\n\nfunction isEqual (date: Date, comparing: Date) {\n return date.getTime() === comparing.getTime()\n}\n\nfunction isSameDay (date: Date, comparing: Date) {\n return date.getDate() === comparing.getDate() &&\n date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameMonth (date: Date, comparing: Date) {\n return date.getMonth() === comparing.getMonth() &&\n date.getFullYear() === comparing.getFullYear()\n}\n\nfunction isSameYear (date: Date, comparing: Date) {\n return date.getFullYear() === comparing.getFullYear()\n}\n\nfunction getDiff (date: Date, comparing: Date | string, unit?: string) {\n const d = new Date(date)\n const c = new Date(comparing)\n\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 return d.getTime() - c.getTime()\n }\n }\n}\n\nfunction setHours (date: Date, count: number) {\n const d = new Date(date)\n d.setHours(count)\n return d\n}\n\nfunction setMinutes (date: Date, count: number) {\n const d = new Date(date)\n d.setMinutes(count)\n return d\n}\n\nfunction setMonth (date: Date, count: number) {\n const d = new Date(date)\n d.setMonth(count)\n return d\n}\n\nfunction setDate (date: Date, day: number) {\n const d = new Date(date)\n d.setDate(day)\n return d\n}\n\nfunction setYear (date: Date, year: number) {\n const d = new Date(date)\n d.setFullYear(year)\n return d\n}\n\nfunction startOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0)\n}\n\nfunction endOfDay (date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999)\n}\n\nexport class VuetifyDateAdapter implements DateAdapter<Date> {\n locale: string\n formats?: Record<string, CustomDateFormat>\n\n constructor (options: { locale: string, formats?: Record<string, CustomDateFormat> }) {\n this.locale = options.locale\n this.formats = options.formats\n }\n\n date (value?: any) {\n return date(value)\n }\n\n toJsDate (date: Date) {\n return date\n }\n\n toISO (date: Date): string {\n return toISO(this, date)\n }\n\n parseISO (date: string) {\n return parseISO(date)\n }\n\n addMinutes (date: Date, amount: number) {\n return addMinutes(date, amount)\n }\n\n addHours (date: Date, amount: number) {\n return addHours(date, amount)\n }\n\n addDays (date: Date, amount: number) {\n return addDays(date, amount)\n }\n\n addWeeks (date: Date, amount: number) {\n return addWeeks(date, amount)\n }\n\n addMonths (date: Date, amount: number) {\n return addMonths(date, amount)\n }\n\n getWeekArray (date: Date, firstDayOfWeek?: number | string) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeekArray(date, this.locale, firstDay)\n }\n\n startOfWeek (date: Date, firstDayOfWeek?: number | string): Date {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return startOfWeek(date, this.locale, firstDay)\n }\n\n endOfWeek (date: Date): Date {\n return endOfWeek(date, this.locale)\n }\n\n startOfMonth (date: Date) {\n return startOfMonth(date)\n }\n\n endOfMonth (date: Date) {\n return endOfMonth(date)\n }\n\n format (date: Date, formatString: string) {\n return format(date, formatString, this.locale, this.formats)\n }\n\n isEqual (date: Date, comparing: Date) {\n return isEqual(date, comparing)\n }\n\n isValid (date: any) {\n return isValid(date)\n }\n\n isWithinRange (date: Date, range: [Date, Date]) {\n return isWithinRange(date, range)\n }\n\n isAfter (date: Date, comparing: Date) {\n return isAfter(date, comparing)\n }\n\n isAfterDay (date: Date, comparing: Date) {\n return isAfterDay(date, comparing)\n }\n\n isBefore (date: Date, comparing: Date) {\n return !isAfter(date, comparing) && !isEqual(date, comparing)\n }\n\n isSameDay (date: Date, comparing: Date) {\n return isSameDay(date, comparing)\n }\n\n isSameMonth (date: Date, comparing: Date) {\n return isSameMonth(date, comparing)\n }\n\n isSameYear (date: Date, comparing: Date) {\n return isSameYear(date, comparing)\n }\n\n setMinutes (date: Date, count: number) {\n return setMinutes(date, count)\n }\n\n setHours (date: Date, count: number) {\n return setHours(date, count)\n }\n\n setMonth (date: Date, count: number) {\n return setMonth(date, count)\n }\n\n setDate (date: Date, day: number): Date {\n return setDate(date, day)\n }\n\n setYear (date: Date, year: number) {\n return setYear(date, year)\n }\n\n getDiff (date: Date, comparing: Date | string, unit?: string) {\n return getDiff(date, comparing, unit)\n }\n\n getWeekdays (firstDayOfWeek?: number | string, weekdayFormat?: 'long' | 'short' | 'narrow') {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeekdays(this.locale, firstDay, weekdayFormat)\n }\n\n getYear (date: Date) {\n return getYear(date)\n }\n\n getMonth (date: Date) {\n return getMonth(date)\n }\n\n getWeek (date: Date, firstDayOfWeek?: number | string, firstWeekMinSize?: number) {\n const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined\n return getWeek(date, this.locale, firstDay, firstWeekMinSize)\n }\n\n getDate (date: Date) {\n return getDate(date)\n }\n\n getNextMonth (date: Date) {\n return getNextMonth(date)\n }\n\n getPreviousMonth (date: Date) {\n return getPreviousMonth(date)\n }\n\n getHours (date: Date) {\n return getHours(date)\n }\n\n getMinutes (date: Date) {\n return getMinutes(date)\n }\n\n startOfDay (date: Date) {\n return startOfDay(date)\n }\n\n endOfDay (date: Date) {\n return endOfDay(date)\n }\n\n startOfYear (date: Date) {\n return startOfYear(date)\n }\n\n endOfYear (date: Date) {\n return endOfYear(date)\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ export declare const MODIFIERS: string[];
2
+ /**
3
+ * Splits a single combination string into individual key parts.
4
+ *
5
+ * A combination is a set of keys that must be pressed simultaneously.
6
+ * e.g. `ctrl+k`, `shift--`
7
+ */
8
+ export declare function splitKeyCombination(combination: string, isInternal?: boolean): string[];
9
+ /**
10
+ * Splits a hotkey string into its constituent combination groups.
11
+ *
12
+ * A sequence is a series of combinations that must be pressed in order.
13
+ * e.g. `a-b`, `ctrl+k-p`
14
+ */
15
+ export declare function splitKeySequence(str: string): string[];
@@ -0,0 +1,154 @@
1
+ // Utilities
2
+ import { normalizeKey } from "./key-aliases.js";
3
+ import { consoleWarn } from "../../util/console.js"; // Types
4
+ export const MODIFIERS = ['ctrl', 'shift', 'alt', 'meta', 'cmd'];
5
+
6
+ /**
7
+ * Splits a single combination string into individual key parts.
8
+ *
9
+ * A combination is a set of keys that must be pressed simultaneously.
10
+ * e.g. `ctrl+k`, `shift--`
11
+ */
12
+ export function splitKeyCombination(combination) {
13
+ let isInternal = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
14
+ if (!combination) {
15
+ if (!isInternal) consoleWarn('Invalid hotkey combination: empty string provided');
16
+ return [];
17
+ }
18
+
19
+ // --- VALIDATION ---
20
+ const startsWithPlusOrUnderscore = combination.startsWith('+') || combination.startsWith('_');
21
+ const hasInvalidLeadingSeparator =
22
+ // Starts with a single '+' or '_' followed by a non-separator character (e.g. '+a', '_a')
23
+ startsWithPlusOrUnderscore && !(combination.startsWith('++') || combination.startsWith('__'));
24
+ const hasInvalidStructure =
25
+ // Invalid leading separator patterns
26
+ combination.length > 1 && hasInvalidLeadingSeparator ||
27
+ // Disallow literal + or _ keys (they require shift)
28
+ combination.includes('++') || combination.includes('__') || combination === '+' || combination === '_' ||
29
+ // Ends with a separator that is not part of a doubled literal
30
+ combination.length > 1 && (combination.endsWith('+') || combination.endsWith('_')) && combination.at(-2) !== combination.at(-1) ||
31
+ // Stand-alone doubled separators (dangling)
32
+ combination === '++' || combination === '--' || combination === '__';
33
+ if (hasInvalidStructure) {
34
+ if (!isInternal) consoleWarn(`Invalid hotkey combination: "${combination}" has invalid structure`);
35
+ return [];
36
+ }
37
+ const keys = [];
38
+ let buffer = '';
39
+ const flushBuffer = () => {
40
+ if (buffer) {
41
+ keys.push(normalizeKey(buffer));
42
+ buffer = '';
43
+ }
44
+ };
45
+ for (let i = 0; i < combination.length; i++) {
46
+ const char = combination[i];
47
+ const nextChar = combination[i + 1];
48
+ if (char === '+' || char === '_' || char === '-') {
49
+ if (char === nextChar) {
50
+ flushBuffer();
51
+ keys.push(char);
52
+ i++;
53
+ } else if (char === '+' || char === '_') {
54
+ flushBuffer();
55
+ } else {
56
+ buffer += char;
57
+ }
58
+ } else {
59
+ buffer += char;
60
+ }
61
+ }
62
+ flushBuffer();
63
+
64
+ // Within a combination, `-` is only valid as a literal key (e.g., `ctrl+-`).
65
+ // `-` cannot be part of a longer key name within a combination.
66
+ const hasInvalidMinus = keys.some(key => key.length > 1 && key.includes('-') && key !== '--');
67
+ if (hasInvalidMinus) {
68
+ if (!isInternal) consoleWarn(`Invalid hotkey combination: "${combination}" has invalid structure`);
69
+ return [];
70
+ }
71
+ if (keys.length === 0 && combination) {
72
+ return [normalizeKey(combination)];
73
+ }
74
+ return keys;
75
+ }
76
+
77
+ /**
78
+ * Splits a hotkey string into its constituent combination groups.
79
+ *
80
+ * A sequence is a series of combinations that must be pressed in order.
81
+ * e.g. `a-b`, `ctrl+k-p`
82
+ */
83
+ export function splitKeySequence(str) {
84
+ if (!str) {
85
+ consoleWarn('Invalid hotkey sequence: empty string provided');
86
+ return [];
87
+ }
88
+
89
+ // A sequence is invalid if it starts or ends with a separator,
90
+ // unless it is part of a combination (e.g., `shift+-`).
91
+ const hasInvalidStart = str.startsWith('-') && !['---', '--+'].includes(str);
92
+ const hasInvalidEnd = str.endsWith('-') && !str.endsWith('+-') && !str.endsWith('_-') && str !== '-' && str !== '---';
93
+ if (hasInvalidStart || hasInvalidEnd) {
94
+ consoleWarn(`Invalid hotkey sequence: "${str}" contains invalid combinations`);
95
+ return [];
96
+ }
97
+ const result = [];
98
+ let buffer = '';
99
+ let i = 0;
100
+ while (i < str.length) {
101
+ const char = str[i];
102
+ if (char === '-') {
103
+ // Determine if this hyphen is part of the current combination
104
+ const prevChar = str[i - 1];
105
+ const prevPrevChar = i > 1 ? str[i - 2] : undefined;
106
+ const precededBySinglePlusOrUnderscore = (prevChar === '+' || prevChar === '_') && prevPrevChar !== '+';
107
+ if (precededBySinglePlusOrUnderscore) {
108
+ // Treat as part of the combination (e.g., 'ctrl+-')
109
+ buffer += char;
110
+ i++;
111
+ } else {
112
+ // Treat as sequence separator
113
+ if (buffer) {
114
+ result.push(buffer);
115
+ buffer = '';
116
+ } else {
117
+ // Empty buffer means we have a literal '-' key
118
+ result.push('-');
119
+ }
120
+ i++;
121
+ }
122
+ } else {
123
+ buffer += char;
124
+ i++;
125
+ }
126
+ }
127
+
128
+ // Add final buffer if it exists
129
+ if (buffer) {
130
+ result.push(buffer);
131
+ }
132
+
133
+ // Collapse runs of '-' so that every second '-' is removed
134
+ const collapsed = [];
135
+ let minusCount = 0;
136
+ for (const part of result) {
137
+ if (part === '-') {
138
+ if (minusCount % 2 === 0) collapsed.push('-');
139
+ minusCount++;
140
+ } else {
141
+ minusCount = 0;
142
+ collapsed.push(part);
143
+ }
144
+ }
145
+
146
+ // Validate that each part of the sequence is a valid combination
147
+ const areAllValid = collapsed.every(s => splitKeyCombination(s, true).length > 0);
148
+ if (!areAllValid) {
149
+ consoleWarn(`Invalid hotkey sequence: "${str}" contains invalid combinations`);
150
+ return [];
151
+ }
152
+ return collapsed;
153
+ }
154
+ //# sourceMappingURL=hotkey-parsing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkey-parsing.js","names":["normalizeKey","consoleWarn","MODIFIERS","splitKeyCombination","combination","isInternal","arguments","length","undefined","startsWithPlusOrUnderscore","startsWith","hasInvalidLeadingSeparator","hasInvalidStructure","includes","endsWith","at","keys","buffer","flushBuffer","push","i","char","nextChar","hasInvalidMinus","some","key","splitKeySequence","str","hasInvalidStart","hasInvalidEnd","result","prevChar","prevPrevChar","precededBySinglePlusOrUnderscore","collapsed","minusCount","part","areAllValid","every","s"],"sources":["../../../src/composables/hotkey/hotkey-parsing.ts"],"sourcesContent":["// Utilities\nimport { normalizeKey } from './key-aliases'\nimport { consoleWarn } from '../../util/console'\n\n// 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: string, isInternal = false): string[] {\n if (!combination) {\n if (!isInternal) consoleWarn('Invalid hotkey combination: empty string provided')\n return []\n }\n\n // --- VALIDATION ---\n const startsWithPlusOrUnderscore = combination.startsWith('+') || combination.startsWith('_')\n\n const hasInvalidLeadingSeparator = (\n // Starts with a single '+' or '_' followed by a non-separator character (e.g. '+a', '_a')\n startsWithPlusOrUnderscore &&\n !(combination.startsWith('++') || combination.startsWith('__'))\n )\n\n const hasInvalidStructure = (\n // Invalid leading separator patterns\n (combination.length > 1 && hasInvalidLeadingSeparator) ||\n // Disallow literal + or _ keys (they require shift)\n combination.includes('++') || combination.includes('__') ||\n 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 )\n\n if (hasInvalidStructure) {\n if (!isInternal) consoleWarn(`Invalid hotkey combination: \"${combination}\" has invalid structure`)\n return []\n }\n\n const keys: string[] = []\n let buffer = ''\n\n const flushBuffer = () => {\n if (buffer) {\n keys.push(normalizeKey(buffer))\n buffer = ''\n }\n }\n\n for (let i = 0; i < combination.length; i++) {\n const char = combination[i]\n const nextChar = combination[i + 1]\n\n if (char === '+' || char === '_' || char === '-') {\n if (char === nextChar) {\n flushBuffer()\n keys.push(char)\n i++\n } else if (char === '+' || char === '_') {\n flushBuffer()\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 []\n }\n\n if (keys.length === 0 && combination) {\n return [normalizeKey(combination)]\n }\n\n return keys\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: string): string[] {\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\n if (hasInvalidStart || hasInvalidEnd) {\n consoleWarn(`Invalid hotkey sequence: \"${str}\" contains invalid combinations`)\n return []\n }\n\n const result: string[] = []\n let buffer = ''\n let i = 0\n\n while (i < str.length) {\n const char = str[i]\n\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\n const precededBySinglePlusOrUnderscore = (\n (prevChar === '+' || prevChar === '_') && prevPrevChar !== '+'\n )\n\n if (precededBySinglePlusOrUnderscore) {\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: string[] = []\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).length > 0)\n\n if (!areAllValid) {\n consoleWarn(`Invalid hotkey sequence: \"${str}\" contains invalid combinations`)\n return []\n }\n\n return collapsed\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import type { MaybeRef } from "../../util/index.js";
2
+ interface HotkeyOptions {
3
+ event?: MaybeRef<'keydown' | 'keyup'>;
4
+ inputs?: MaybeRef<boolean>;
5
+ preventDefault?: MaybeRef<boolean>;
6
+ sequenceTimeout?: MaybeRef<number>;
7
+ }
8
+ export declare function useHotkey(keys: MaybeRef<string | undefined>, callback: (e: KeyboardEvent) => void, options?: HotkeyOptions): () => void;
9
+
@@ -1,7 +1,8 @@
1
- // Utilities
1
+ // Composables
2
+ import { splitKeyCombination, splitKeySequence } from "./hotkey-parsing.js"; // Utilities
2
3
  import { onBeforeUnmount, toValue, watch } from 'vue';
3
- import { IN_BROWSER } from "../util/index.js";
4
- import { getCurrentInstance } from "../util/getCurrentInstance.js"; // Types
4
+ import { IN_BROWSER } from "../../util/index.js";
5
+ import { getCurrentInstance } from "../../util/getCurrentInstance.js"; // Types
5
6
  export function useHotkey(keys, callback) {
6
7
  let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
7
8
  if (!IN_BROWSER) return function () {};
@@ -11,7 +12,7 @@ export function useHotkey(keys, callback) {
11
12
  preventDefault = true,
12
13
  sequenceTimeout = 1000
13
14
  } = options;
14
- const isMac = navigator?.userAgent?.includes('Macintosh');
15
+ const isMac = navigator?.userAgent?.includes('Macintosh') ?? false;
15
16
  let timeout = 0;
16
17
  let keyGroups;
17
18
  let isSequence = false;
@@ -22,7 +23,7 @@ export function useHotkey(keys, callback) {
22
23
  timeout = 0;
23
24
  }
24
25
  function isInputFocused() {
25
- if (inputs) return false;
26
+ if (toValue(inputs)) return false;
26
27
  const activeElement = document.activeElement;
27
28
  return activeElement && (activeElement.tagName === 'INPUT' || activeElement.tagName === 'TEXTAREA' || activeElement.isContentEditable || activeElement.contentEditable === 'true');
28
29
  }
@@ -37,7 +38,7 @@ export function useHotkey(keys, callback) {
37
38
  if (isSequence) resetSequence();
38
39
  return;
39
40
  }
40
- if (preventDefault) e.preventDefault();
41
+ if (toValue(preventDefault)) e.preventDefault();
41
42
  if (!isSequence) {
42
43
  callback(e);
43
44
  return;
@@ -49,32 +50,12 @@ export function useHotkey(keys, callback) {
49
50
  resetSequence();
50
51
  return;
51
52
  }
52
- timeout = window.setTimeout(resetSequence, sequenceTimeout);
53
+ timeout = window.setTimeout(resetSequence, toValue(sequenceTimeout));
53
54
  }
54
55
  function cleanup() {
55
- window.removeEventListener(event, handler);
56
+ window.removeEventListener(toValue(event), handler);
56
57
  clearTimer();
57
58
  }
58
- function splitKeySequence(str) {
59
- const groups = [];
60
- let current = '';
61
- for (let i = 0; i < str.length; i++) {
62
- const char = str[i];
63
- if (char === '-') {
64
- const next = str[i + 1];
65
- // Treat '-' as a sequence delimiter only if the next character exists
66
- // and is NOT one of '-', '+', or '_' (these indicate the '-' belongs to the key itself)
67
- if (next && !['-', '+', '_'].includes(next)) {
68
- groups.push(current);
69
- current = '';
70
- continue;
71
- }
72
- }
73
- current += char;
74
- }
75
- groups.push(current);
76
- return groups;
77
- }
78
59
  watch(() => toValue(keys), function (unrefKeys) {
79
60
  cleanup();
80
61
  if (unrefKeys) {
@@ -82,11 +63,19 @@ export function useHotkey(keys, callback) {
82
63
  isSequence = groups.length > 1;
83
64
  keyGroups = groups;
84
65
  resetSequence();
85
- window.addEventListener(event, handler);
66
+ window.addEventListener(toValue(event), handler);
86
67
  }
87
68
  }, {
88
69
  immediate: true
89
70
  });
71
+
72
+ // Watch for changes in the event type to re-register the listener
73
+ watch(() => toValue(event), function (newEvent, oldEvent) {
74
+ if (oldEvent && keyGroups && keyGroups.length > 0) {
75
+ window.removeEventListener(oldEvent, handler);
76
+ window.addEventListener(newEvent, handler);
77
+ }
78
+ });
90
79
  try {
91
80
  getCurrentInstance('useHotkey');
92
81
  onBeforeUnmount(cleanup);
@@ -96,24 +85,25 @@ export function useHotkey(keys, callback) {
96
85
  function parseKeyGroup(group) {
97
86
  const MODIFIERS = ['ctrl', 'shift', 'alt', 'meta', 'cmd'];
98
87
 
99
- // Split on +, -, or _ but keep empty strings which indicate consecutive separators (e.g. alt--)
100
- const parts = group.toLowerCase().split(/[+_-]/);
88
+ // Use the shared combination splitting logic
89
+ const parts = splitKeyCombination(group.toLowerCase());
90
+
91
+ // If the combination is invalid, return empty result
92
+ if (parts.length === 0) {
93
+ return {
94
+ modifiers: Object.fromEntries(MODIFIERS.map(m => [m, false])),
95
+ actualKey: undefined
96
+ };
97
+ }
101
98
  const modifiers = Object.fromEntries(MODIFIERS.map(m => [m, false]));
102
99
  let actualKey;
103
100
  for (const part of parts) {
104
- if (!part) continue; // Skip empty tokens
105
101
  if (MODIFIERS.includes(part)) {
106
102
  modifiers[part] = true;
107
103
  } else {
108
104
  actualKey = part;
109
105
  }
110
106
  }
111
-
112
- // Fallback for cases where actualKey is a literal '+' or '-' (e.g. alt--, alt++ , alt+-, alt-+)
113
- if (!actualKey) {
114
- const lastChar = group.slice(-1);
115
- if (['+', '-', '_'].includes(lastChar)) actualKey = lastChar;
116
- }
117
107
  return {
118
108
  modifiers,
119
109
  actualKey
@@ -124,7 +114,9 @@ export function useHotkey(keys, callback) {
124
114
  modifiers,
125
115
  actualKey
126
116
  } = parseKeyGroup(group);
127
- return e.ctrlKey === (isMac && modifiers.cmd ? false : modifiers.ctrl) && e.metaKey === (isMac && modifiers.cmd ? true : modifiers.meta) && e.shiftKey === modifiers.shift && e.altKey === modifiers.alt && e.key.toLowerCase() === actualKey?.toLowerCase();
117
+ const expectCtrl = modifiers.ctrl || !isMac && (modifiers.cmd || modifiers.meta);
118
+ const expectMeta = isMac && (modifiers.cmd || modifiers.meta);
119
+ return e.ctrlKey === expectCtrl && e.metaKey === expectMeta && e.shiftKey === modifiers.shift && e.altKey === modifiers.alt && e.key.toLowerCase() === actualKey?.toLowerCase();
128
120
  }
129
121
  return cleanup;
130
122
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hotkey.js","names":["splitKeyCombination","splitKeySequence","onBeforeUnmount","toValue","watch","IN_BROWSER","getCurrentInstance","useHotkey","keys","callback","options","arguments","length","undefined","event","inputs","preventDefault","sequenceTimeout","isMac","navigator","userAgent","includes","timeout","keyGroups","isSequence","groupIndex","clearTimer","clearTimeout","isInputFocused","activeElement","document","tagName","isContentEditable","contentEditable","resetSequence","handler","e","group","matchesKeyGroup","window","setTimeout","cleanup","removeEventListener","unrefKeys","groups","toLowerCase","addEventListener","immediate","newEvent","oldEvent","parseKeyGroup","MODIFIERS","parts","modifiers","Object","fromEntries","map","m","actualKey","part","expectCtrl","ctrl","cmd","meta","expectMeta","ctrlKey","metaKey","shiftKey","shift","altKey","alt","key"],"sources":["../../../src/composables/hotkey/hotkey.ts"],"sourcesContent":["// Composables\nimport { splitKeyCombination, splitKeySequence } from '@/composables/hotkey/hotkey-parsing'\n\n// Utilities\nimport { onBeforeUnmount, toValue, watch } from 'vue'\nimport { IN_BROWSER } from '@/util'\nimport { getCurrentInstance } from '@/util/getCurrentInstance'\n\n// Types\nimport type { MaybeRef } from '@/util'\n\ninterface HotkeyOptions {\n event?: MaybeRef<'keydown' | 'keyup'>\n inputs?: MaybeRef<boolean>\n preventDefault?: MaybeRef<boolean>\n sequenceTimeout?: MaybeRef<number>\n}\n\nexport function useHotkey (\n keys: MaybeRef<string | undefined>,\n callback: (e: KeyboardEvent) => void,\n options: HotkeyOptions = {}\n) {\n if (!IN_BROWSER) return function () {}\n\n const {\n event = 'keydown',\n inputs = false,\n preventDefault = true,\n sequenceTimeout = 1000,\n } = options\n\n const isMac = navigator?.userAgent?.includes('Macintosh') ?? false\n let timeout = 0\n let keyGroups: string[]\n let isSequence = false\n let groupIndex = 0\n\n function clearTimer () {\n if (!timeout) return\n\n clearTimeout(timeout)\n timeout = 0\n }\n\n function isInputFocused () {\n if (toValue(inputs)) return false\n\n const activeElement = document.activeElement as HTMLElement\n\n return activeElement && (\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.isContentEditable ||\n activeElement.contentEditable === 'true'\n )\n }\n\n function resetSequence () {\n groupIndex = 0\n clearTimer()\n }\n\n function handler (e: KeyboardEvent) {\n const group = keyGroups[groupIndex]\n\n if (!group || isInputFocused()) return\n\n if (!matchesKeyGroup(e, group)) {\n if (isSequence) resetSequence()\n return\n }\n\n if (toValue(preventDefault)) e.preventDefault()\n\n if (!isSequence) {\n callback(e)\n return\n }\n\n clearTimer()\n groupIndex++\n\n if (groupIndex === keyGroups.length) {\n callback(e)\n resetSequence()\n return\n }\n\n timeout = window.setTimeout(resetSequence, toValue(sequenceTimeout))\n }\n\n function cleanup () {\n window.removeEventListener(toValue(event), handler)\n clearTimer()\n }\n\n watch(() => toValue(keys), function (unrefKeys) {\n cleanup()\n\n if (unrefKeys) {\n const groups = splitKeySequence(unrefKeys.toLowerCase())\n isSequence = groups.length > 1\n keyGroups = groups\n resetSequence()\n window.addEventListener(toValue(event), handler)\n }\n }, { immediate: true })\n\n // Watch for changes in the event type to re-register the listener\n watch(() => toValue(event), function (newEvent, oldEvent) {\n if (oldEvent && keyGroups && keyGroups.length > 0) {\n window.removeEventListener(oldEvent, handler)\n window.addEventListener(newEvent, handler)\n }\n })\n\n try {\n getCurrentInstance('useHotkey')\n onBeforeUnmount(cleanup)\n } catch {\n // Not in Vue setup context\n }\n\n function parseKeyGroup (group: string) {\n const MODIFIERS = ['ctrl', 'shift', 'alt', 'meta', 'cmd']\n\n // Use the shared combination splitting logic\n const parts = splitKeyCombination(group.toLowerCase())\n\n // If the combination is invalid, return empty result\n if (parts.length === 0) {\n return { modifiers: Object.fromEntries(MODIFIERS.map(m => [m, false])), actualKey: undefined }\n }\n\n const modifiers = Object.fromEntries(MODIFIERS.map(m => [m, false])) as Record<string, boolean>\n let actualKey: string | undefined\n\n for (const part of parts) {\n if (MODIFIERS.includes(part)) {\n modifiers[part] = true\n } else {\n actualKey = part\n }\n }\n\n return { modifiers, actualKey }\n }\n\n function matchesKeyGroup (e: KeyboardEvent, group: string) {\n const { modifiers, actualKey } = parseKeyGroup(group)\n\n const expectCtrl = modifiers.ctrl || (!isMac && (modifiers.cmd || modifiers.meta))\n const expectMeta = isMac && (modifiers.cmd || modifiers.meta)\n\n return (\n e.ctrlKey === expectCtrl &&\n e.metaKey === expectMeta &&\n e.shiftKey === modifiers.shift &&\n e.altKey === modifiers.alt &&\n e.key.toLowerCase() === actualKey?.toLowerCase()\n )\n }\n\n return cleanup\n}\n"],"mappings":"AAAA;AAAA,SACSA,mBAAmB,EAAEC,gBAAgB,+BAE9C;AACA,SAASC,eAAe,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5CC,UAAU;AAAA,SACVC,kBAAkB,4CAE3B;AAUA,OAAO,SAASC,SAASA,CACvBC,IAAkC,EAClCC,QAAoC,EAEpC;EAAA,IADAC,OAAsB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAE3B,IAAI,CAACN,UAAU,EAAE,OAAO,YAAY,CAAC,CAAC;EAEtC,MAAM;IACJS,KAAK,GAAG,SAAS;IACjBC,MAAM,GAAG,KAAK;IACdC,cAAc,GAAG,IAAI;IACrBC,eAAe,GAAG;EACpB,CAAC,GAAGP,OAAO;EAEX,MAAMQ,KAAK,GAAGC,SAAS,EAAEC,SAAS,EAAEC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK;EAClE,IAAIC,OAAO,GAAG,CAAC;EACf,IAAIC,SAAmB;EACvB,IAAIC,UAAU,GAAG,KAAK;EACtB,IAAIC,UAAU,GAAG,CAAC;EAElB,SAASC,UAAUA,CAAA,EAAI;IACrB,IAAI,CAACJ,OAAO,EAAE;IAEdK,YAAY,CAACL,OAAO,CAAC;IACrBA,OAAO,GAAG,CAAC;EACb;EAEA,SAASM,cAAcA,CAAA,EAAI;IACzB,IAAIzB,OAAO,CAACY,MAAM,CAAC,EAAE,OAAO,KAAK;IAEjC,MAAMc,aAAa,GAAGC,QAAQ,CAACD,aAA4B;IAE3D,OAAOA,aAAa,KAClBA,aAAa,CAACE,OAAO,KAAK,OAAO,IACjCF,aAAa,CAACE,OAAO,KAAK,UAAU,IACpCF,aAAa,CAACG,iBAAiB,IAC/BH,aAAa,CAACI,eAAe,KAAK,MAAM,CACzC;EACH;EAEA,SAASC,aAAaA,CAAA,EAAI;IACxBT,UAAU,GAAG,CAAC;IACdC,UAAU,CAAC,CAAC;EACd;EAEA,SAASS,OAAOA,CAAEC,CAAgB,EAAE;IAClC,MAAMC,KAAK,GAAGd,SAAS,CAACE,UAAU,CAAC;IAEnC,IAAI,CAACY,KAAK,IAAIT,cAAc,CAAC,CAAC,EAAE;IAEhC,IAAI,CAACU,eAAe,CAACF,CAAC,EAAEC,KAAK,CAAC,EAAE;MAC9B,IAAIb,UAAU,EAAEU,aAAa,CAAC,CAAC;MAC/B;IACF;IAEA,IAAI/B,OAAO,CAACa,cAAc,CAAC,EAAEoB,CAAC,CAACpB,cAAc,CAAC,CAAC;IAE/C,IAAI,CAACQ,UAAU,EAAE;MACff,QAAQ,CAAC2B,CAAC,CAAC;MACX;IACF;IAEAV,UAAU,CAAC,CAAC;IACZD,UAAU,EAAE;IAEZ,IAAIA,UAAU,KAAKF,SAAS,CAACX,MAAM,EAAE;MACnCH,QAAQ,CAAC2B,CAAC,CAAC;MACXF,aAAa,CAAC,CAAC;MACf;IACF;IAEAZ,OAAO,GAAGiB,MAAM,CAACC,UAAU,CAACN,aAAa,EAAE/B,OAAO,CAACc,eAAe,CAAC,CAAC;EACtE;EAEA,SAASwB,OAAOA,CAAA,EAAI;IAClBF,MAAM,CAACG,mBAAmB,CAACvC,OAAO,CAACW,KAAK,CAAC,EAAEqB,OAAO,CAAC;IACnDT,UAAU,CAAC,CAAC;EACd;EAEAtB,KAAK,CAAC,MAAMD,OAAO,CAACK,IAAI,CAAC,EAAE,UAAUmC,SAAS,EAAE;IAC9CF,OAAO,CAAC,CAAC;IAET,IAAIE,SAAS,EAAE;MACb,MAAMC,MAAM,GAAG3C,gBAAgB,CAAC0C,SAAS,CAACE,WAAW,CAAC,CAAC,CAAC;MACxDrB,UAAU,GAAGoB,MAAM,CAAChC,MAAM,GAAG,CAAC;MAC9BW,SAAS,GAAGqB,MAAM;MAClBV,aAAa,CAAC,CAAC;MACfK,MAAM,CAACO,gBAAgB,CAAC3C,OAAO,CAACW,KAAK,CAAC,EAAEqB,OAAO,CAAC;IAClD;EACF,CAAC,EAAE;IAAEY,SAAS,EAAE;EAAK,CAAC,CAAC;;EAEvB;EACA3C,KAAK,CAAC,MAAMD,OAAO,CAACW,KAAK,CAAC,EAAE,UAAUkC,QAAQ,EAAEC,QAAQ,EAAE;IACxD,IAAIA,QAAQ,IAAI1B,SAAS,IAAIA,SAAS,CAACX,MAAM,GAAG,CAAC,EAAE;MACjD2B,MAAM,CAACG,mBAAmB,CAACO,QAAQ,EAAEd,OAAO,CAAC;MAC7CI,MAAM,CAACO,gBAAgB,CAACE,QAAQ,EAAEb,OAAO,CAAC;IAC5C;EACF,CAAC,CAAC;EAEF,IAAI;IACF7B,kBAAkB,CAAC,WAAW,CAAC;IAC/BJ,eAAe,CAACuC,OAAO,CAAC;EAC1B,CAAC,CAAC,MAAM;IACN;EAAA;EAGF,SAASS,aAAaA,CAAEb,KAAa,EAAE;IACrC,MAAMc,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;;IAEzD;IACA,MAAMC,KAAK,GAAGpD,mBAAmB,CAACqC,KAAK,CAACQ,WAAW,CAAC,CAAC,CAAC;;IAEtD;IACA,IAAIO,KAAK,CAACxC,MAAM,KAAK,CAAC,EAAE;MACtB,OAAO;QAAEyC,SAAS,EAAEC,MAAM,CAACC,WAAW,CAACJ,SAAS,CAACK,GAAG,CAACC,CAAC,IAAI,CAACA,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAAEC,SAAS,EAAE7C;MAAU,CAAC;IAChG;IAEA,MAAMwC,SAAS,GAAGC,MAAM,CAACC,WAAW,CAACJ,SAAS,CAACK,GAAG,CAACC,CAAC,IAAI,CAACA,CAAC,EAAE,KAAK,CAAC,CAAC,CAA4B;IAC/F,IAAIC,SAA6B;IAEjC,KAAK,MAAMC,IAAI,IAAIP,KAAK,EAAE;MACxB,IAAID,SAAS,CAAC9B,QAAQ,CAACsC,IAAI,CAAC,EAAE;QAC5BN,SAAS,CAACM,IAAI,CAAC,GAAG,IAAI;MACxB,CAAC,MAAM;QACLD,SAAS,GAAGC,IAAI;MAClB;IACF;IAEA,OAAO;MAAEN,SAAS;MAAEK;IAAU,CAAC;EACjC;EAEA,SAASpB,eAAeA,CAAEF,CAAgB,EAAEC,KAAa,EAAE;IACzD,MAAM;MAAEgB,SAAS;MAAEK;IAAU,CAAC,GAAGR,aAAa,CAACb,KAAK,CAAC;IAErD,MAAMuB,UAAU,GAAGP,SAAS,CAACQ,IAAI,IAAK,CAAC3C,KAAK,KAAKmC,SAAS,CAACS,GAAG,IAAIT,SAAS,CAACU,IAAI,CAAE;IAClF,MAAMC,UAAU,GAAG9C,KAAK,KAAKmC,SAAS,CAACS,GAAG,IAAIT,SAAS,CAACU,IAAI,CAAC;IAE7D,OACE3B,CAAC,CAAC6B,OAAO,KAAKL,UAAU,IACxBxB,CAAC,CAAC8B,OAAO,KAAKF,UAAU,IACxB5B,CAAC,CAAC+B,QAAQ,KAAKd,SAAS,CAACe,KAAK,IAC9BhC,CAAC,CAACiC,MAAM,KAAKhB,SAAS,CAACiB,GAAG,IAC1BlC,CAAC,CAACmC,GAAG,CAAC1B,WAAW,CAAC,CAAC,KAAKa,SAAS,EAAEb,WAAW,CAAC,CAAC;EAEpD;EAEA,OAAOJ,OAAO;AAChB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export { useHotkey } from './hotkey.js';
@@ -0,0 +1,2 @@
1
+ export { useHotkey } from "./hotkey.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useHotkey"],"sources":["../../../src/composables/hotkey/index.ts"],"sourcesContent":["export { useHotkey } from './hotkey'\n"],"mappings":"SAASA,SAAS","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Centralized key alias mapping for consistent key normalization across the hotkey system.
3
+ *
4
+ * This maps various user-friendly aliases to canonical key names that match
5
+ * KeyboardEvent.key values (in lowercase) where possible.
6
+ */
7
+ export declare const keyAliasMap: Record<string, string>;
8
+ /**
9
+ * Normalizes a key string to its canonical form using the alias map.
10
+ *
11
+ * @param key - The key string to normalize
12
+ * @returns The canonical key name in lowercase
13
+ */
14
+ export declare function normalizeKey(key: string): string;