vuetify 3.3.2 → 3.3.4

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 (356) hide show
  1. package/dist/_component-variables-labs.sass +2 -0
  2. package/dist/json/attributes.json +460 -20
  3. package/dist/json/importMap-labs.json +32 -0
  4. package/dist/json/importMap.json +24 -24
  5. package/dist/json/tags.json +150 -0
  6. package/dist/json/web-types.json +1639 -40
  7. package/dist/vuetify-labs.css +499 -230
  8. package/dist/vuetify-labs.d.ts +5421 -326
  9. package/dist/vuetify-labs.esm.js +2124 -1098
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +2123 -1097
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +219 -210
  14. package/dist/vuetify.d.ts +314 -165
  15. package/dist/vuetify.esm.js +330 -179
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +329 -178
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +792 -784
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.mts +34 -27
  23. package/lib/blueprints/md1.d.mts +34 -27
  24. package/lib/blueprints/md2.d.mts +34 -27
  25. package/lib/blueprints/md3.d.mts +34 -27
  26. package/lib/components/VAppBar/VAppBar.mjs +3 -10
  27. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  28. package/lib/components/VAppBar/index.d.mts +24 -8
  29. package/lib/components/VAutocomplete/VAutocomplete.css +4 -22
  30. package/lib/components/VAutocomplete/VAutocomplete.mjs +17 -12
  31. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  32. package/lib/components/VAutocomplete/VAutocomplete.sass +6 -17
  33. package/lib/components/VBreadcrumbs/index.d.mts +7 -7
  34. package/lib/components/VBtn/VBtn.css +11 -11
  35. package/lib/components/VBtn/VBtn.mjs +1 -1
  36. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  37. package/lib/components/VBtn/VBtn.sass +1 -1
  38. package/lib/components/VBtn/_mixins.scss +1 -1
  39. package/lib/components/VBtn/index.d.mts +24 -8
  40. package/lib/components/VCard/VCard.mjs +1 -1
  41. package/lib/components/VCard/VCard.mjs.map +1 -1
  42. package/lib/components/VCard/index.d.mts +44 -28
  43. package/lib/components/VCheckbox/VCheckbox.mjs +8 -1
  44. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  45. package/lib/components/VCheckbox/index.d.mts +7 -1
  46. package/lib/components/VChip/VChip.css +67 -67
  47. package/lib/components/VChip/VChip.mjs +2 -2
  48. package/lib/components/VChip/VChip.mjs.map +1 -1
  49. package/lib/components/VChip/_variables.scss +1 -1
  50. package/lib/components/VChip/index.d.mts +48 -32
  51. package/lib/components/VCombobox/VCombobox.css +4 -22
  52. package/lib/components/VCombobox/VCombobox.mjs +16 -8
  53. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  54. package/lib/components/VCombobox/VCombobox.sass +6 -17
  55. package/lib/components/VCombobox/_variables.scss +3 -3
  56. package/lib/components/VCounter/index.d.mts +8 -8
  57. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
  58. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  59. package/lib/components/VExpansionPanel/index.d.mts +56 -24
  60. package/lib/components/VField/VField.css +72 -8
  61. package/lib/components/VField/VField.sass +10 -5
  62. package/lib/components/VField/_mixins.sass +7 -0
  63. package/lib/components/VFileInput/VFileInput.css +2 -17
  64. package/lib/components/VFileInput/VFileInput.mjs +0 -2
  65. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  66. package/lib/components/VFileInput/VFileInput.sass +2 -11
  67. package/lib/components/VFileInput/_variables.scss +3 -3
  68. package/lib/components/VIcon/VIcon.mjs +2 -2
  69. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  70. package/lib/components/VInput/VInput.css +14 -1
  71. package/lib/components/VInput/VInput.sass +6 -0
  72. package/lib/components/VInput/_variables.scss +5 -1
  73. package/lib/components/VList/VListItem.mjs +2 -2
  74. package/lib/components/VList/VListItem.mjs.map +1 -1
  75. package/lib/components/VList/index.d.mts +24 -8
  76. package/lib/components/VMenu/VMenu.mjs +29 -3
  77. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  78. package/lib/components/VOverlay/VOverlay.mjs +7 -4
  79. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  80. package/lib/components/VOverlay/useActivator.mjs +29 -35
  81. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  82. package/lib/components/VSelect/VSelect.css +2 -20
  83. package/lib/components/VSelect/VSelect.mjs +16 -11
  84. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  85. package/lib/components/VSelect/VSelect.sass +2 -12
  86. package/lib/components/VSelect/_variables.scss +3 -3
  87. package/lib/components/VSlider/VSliderThumb.mjs +2 -2
  88. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  89. package/lib/components/VTabs/VTab.mjs +2 -2
  90. package/lib/components/VTabs/VTab.mjs.map +1 -1
  91. package/lib/components/VTabs/VTabs.css +1 -0
  92. package/lib/components/VTabs/VTabs.sass +1 -0
  93. package/lib/components/VTabs/index.d.mts +24 -8
  94. package/lib/components/VTextarea/VTextarea.css +7 -7
  95. package/lib/components/VTextarea/VTextarea.sass +9 -9
  96. package/lib/components/VTimePicker/VTimePickerTitle.mjs +1 -1
  97. package/lib/components/index.d.mts +266 -132
  98. package/lib/components/index.mjs +1 -2
  99. package/lib/components/index.mjs.map +1 -1
  100. package/lib/composables/icons.mjs.map +1 -1
  101. package/lib/composables/list-items.mjs +5 -2
  102. package/lib/composables/list-items.mjs.map +1 -1
  103. package/lib/composables/nested/nested.mjs +1 -1
  104. package/lib/composables/nested/nested.mjs.map +1 -1
  105. package/lib/composables/theme.mjs +1 -1
  106. package/lib/composables/theme.mjs.map +1 -1
  107. package/lib/entry-bundler.mjs +1 -1
  108. package/lib/framework.mjs +1 -1
  109. package/lib/iconsets/fa-svg.d.mts +1 -0
  110. package/lib/iconsets/fa.d.mts +1 -0
  111. package/lib/iconsets/fa.mjs +2 -1
  112. package/lib/iconsets/fa.mjs.map +1 -1
  113. package/lib/iconsets/fa4.d.mts +1 -0
  114. package/lib/iconsets/fa4.mjs +2 -1
  115. package/lib/iconsets/fa4.mjs.map +1 -1
  116. package/lib/iconsets/md.d.mts +1 -0
  117. package/lib/iconsets/md.mjs +2 -1
  118. package/lib/iconsets/md.mjs.map +1 -1
  119. package/lib/iconsets/mdi-svg.d.mts +1 -0
  120. package/lib/iconsets/mdi-svg.mjs +36 -35
  121. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  122. package/lib/iconsets/mdi.d.mts +1 -0
  123. package/lib/iconsets/mdi.mjs +2 -1
  124. package/lib/iconsets/mdi.mjs.map +1 -1
  125. package/lib/index.d.mts +48 -33
  126. package/lib/labs/VDataTable/VDataTable.css +4 -14
  127. package/lib/labs/VDataTable/VDataTable.sass +6 -15
  128. package/lib/labs/VDataTable/VDataTableHeaders.mjs +2 -2
  129. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  130. package/lib/labs/VDataTable/VDataTableVirtual.mjs +16 -12
  131. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  132. package/lib/labs/VDataTable/composables/headers.mjs +2 -5
  133. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  134. package/lib/labs/VDataTable/composables/select.mjs +3 -2
  135. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  136. package/lib/labs/VDateInput/VDateInput.mjs +127 -0
  137. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -0
  138. package/lib/labs/VDateInput/VDateInput.sass +11 -0
  139. package/lib/labs/VDateInput/VDateRangeInput.mjs +223 -0
  140. package/lib/labs/VDateInput/VDateRangeInput.mjs.map +1 -0
  141. package/lib/labs/VDateInput/VDateRangeInput.sass +10 -0
  142. package/lib/labs/VDateInput/composables.mjs +59 -0
  143. package/lib/labs/VDateInput/composables.mjs.map +1 -0
  144. package/lib/labs/VDateInput/index.d.mts +1352 -0
  145. package/lib/labs/VDateInput/index.mjs +3 -0
  146. package/lib/labs/VDateInput/index.mjs.map +1 -0
  147. package/lib/labs/VDatePicker/VDateCard.css +33 -0
  148. package/lib/labs/VDatePicker/VDateCard.mjs +112 -0
  149. package/lib/labs/VDatePicker/VDateCard.mjs.map +1 -0
  150. package/lib/labs/VDatePicker/VDateCard.sass +32 -0
  151. package/lib/labs/VDatePicker/VDatePicker.css +23 -0
  152. package/lib/labs/VDatePicker/VDatePicker.mjs +172 -0
  153. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -0
  154. package/lib/labs/VDatePicker/VDatePicker.sass +23 -0
  155. package/lib/labs/VDatePicker/VDatePickerControls.css +15 -0
  156. package/lib/labs/VDatePicker/VDatePickerControls.mjs +80 -0
  157. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -0
  158. package/lib/labs/VDatePicker/VDatePickerControls.sass +15 -0
  159. package/lib/labs/VDatePicker/VDatePickerHeader.css +54 -0
  160. package/lib/labs/VDatePicker/VDatePickerHeader.mjs +75 -0
  161. package/lib/labs/VDatePicker/VDatePickerHeader.mjs.map +1 -0
  162. package/lib/labs/VDatePicker/VDatePickerHeader.sass +51 -0
  163. package/lib/labs/VDatePicker/VDatePickerInput.sass +17 -0
  164. package/lib/labs/VDatePicker/VDatePickerMonth.css +77 -0
  165. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +286 -0
  166. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -0
  167. package/lib/labs/VDatePicker/VDatePickerMonth.sass +69 -0
  168. package/lib/{components → labs}/VDatePicker/VDatePickerTitle.mjs +1 -1
  169. package/lib/labs/VDatePicker/VDatePickerTitle.mjs.map +1 -0
  170. package/lib/labs/VDatePicker/VDatePickerYears.css +18 -0
  171. package/lib/labs/VDatePicker/VDatePickerYears.mjs +64 -0
  172. package/lib/labs/VDatePicker/VDatePickerYears.mjs.map +1 -0
  173. package/lib/labs/VDatePicker/VDatePickerYears.sass +16 -0
  174. package/lib/labs/VDatePicker/composables.mjs +33 -0
  175. package/lib/labs/VDatePicker/composables.mjs.map +1 -0
  176. package/lib/labs/VDatePicker/index.d.mts +4430 -0
  177. package/lib/labs/VDatePicker/index.mjs +7 -0
  178. package/lib/labs/VDatePicker/index.mjs.map +1 -0
  179. package/lib/labs/VDatePicker/mixins/date-picker-table.mjs.map +1 -0
  180. package/lib/labs/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -0
  181. package/lib/labs/VDatePicker/util/eventHelpers.mjs.map +1 -0
  182. package/lib/labs/VDatePicker/util/index.mjs.map +1 -0
  183. package/lib/labs/VDatePicker/util/isDateAllowed.mjs.map +1 -0
  184. package/lib/labs/VDatePicker/util/monthChange.mjs.map +1 -0
  185. package/lib/labs/VDatePicker/util/pad.mjs.map +1 -0
  186. package/lib/labs/VDatePicker/util/sanitizeDateString.mjs.map +1 -0
  187. package/lib/labs/VDatePicker/utils.mjs +69 -0
  188. package/lib/labs/VDatePicker/utils.mjs.map +1 -0
  189. package/lib/labs/VDateRangePicker/VDateRangeCard.mjs +87 -0
  190. package/lib/labs/VDateRangePicker/VDateRangeCard.mjs.map +1 -0
  191. package/lib/labs/VDateRangePicker/VDateRangeCard.sass +33 -0
  192. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs +131 -0
  193. package/lib/labs/VDateRangePicker/VDateRangePicker.mjs.map +1 -0
  194. package/lib/labs/VDateRangePicker/VDateRangePicker.sass +21 -0
  195. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +103 -0
  196. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -0
  197. package/lib/labs/VDateRangePicker/VDateRangePickerHeader.sass +39 -0
  198. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.mjs +61 -0
  199. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.mjs.map +1 -0
  200. package/lib/labs/VDateRangePicker/VDateRangePickerMonth.sass +12 -0
  201. package/lib/labs/VDateRangePicker/index.d.mts +1065 -0
  202. package/lib/labs/VDateRangePicker/index.mjs +3 -0
  203. package/lib/labs/VDateRangePicker/index.mjs.map +1 -0
  204. package/lib/labs/VPicker/VPicker.css +57 -0
  205. package/lib/labs/VPicker/VPicker.mjs +47 -0
  206. package/lib/labs/VPicker/VPicker.mjs.map +1 -0
  207. package/lib/labs/VPicker/VPicker.sass +53 -0
  208. package/lib/labs/VPicker/VPickerTitle.mjs +4 -0
  209. package/lib/labs/VPicker/VPickerTitle.mjs.map +1 -0
  210. package/lib/labs/VPicker/index.d.mts +541 -0
  211. package/lib/labs/VPicker/index.mjs +3 -0
  212. package/lib/labs/VPicker/index.mjs.map +1 -0
  213. package/lib/labs/components.d.mts +5136 -198
  214. package/lib/labs/components.mjs +2 -0
  215. package/lib/labs/components.mjs.map +1 -1
  216. package/lib/labs/date/DateAdapter.mjs.map +1 -1
  217. package/lib/labs/date/adapters/vuetify.d.mts +28 -25
  218. package/lib/labs/date/adapters/vuetify.mjs +65 -75
  219. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  220. package/lib/labs/date/date.mjs +82 -11
  221. package/lib/labs/date/date.mjs.map +1 -1
  222. package/lib/labs/date/index.d.mts +31 -30
  223. package/lib/locale/af.mjs +14 -5
  224. package/lib/locale/af.mjs.map +1 -1
  225. package/lib/locale/ar.mjs +14 -5
  226. package/lib/locale/ar.mjs.map +1 -1
  227. package/lib/locale/az.mjs +14 -5
  228. package/lib/locale/az.mjs.map +1 -1
  229. package/lib/locale/bg.mjs +14 -5
  230. package/lib/locale/bg.mjs.map +1 -1
  231. package/lib/locale/ca.mjs +14 -5
  232. package/lib/locale/ca.mjs.map +1 -1
  233. package/lib/locale/ckb.mjs +14 -5
  234. package/lib/locale/ckb.mjs.map +1 -1
  235. package/lib/locale/cs.mjs +14 -5
  236. package/lib/locale/cs.mjs.map +1 -1
  237. package/lib/locale/da.mjs +14 -5
  238. package/lib/locale/da.mjs.map +1 -1
  239. package/lib/locale/de.mjs +14 -5
  240. package/lib/locale/de.mjs.map +1 -1
  241. package/lib/locale/el.mjs +14 -5
  242. package/lib/locale/el.mjs.map +1 -1
  243. package/lib/locale/en.mjs +14 -5
  244. package/lib/locale/en.mjs.map +1 -1
  245. package/lib/locale/es.mjs +14 -5
  246. package/lib/locale/es.mjs.map +1 -1
  247. package/lib/locale/et.mjs +14 -5
  248. package/lib/locale/et.mjs.map +1 -1
  249. package/lib/locale/fa.mjs +14 -5
  250. package/lib/locale/fa.mjs.map +1 -1
  251. package/lib/locale/fi.mjs +14 -5
  252. package/lib/locale/fi.mjs.map +1 -1
  253. package/lib/locale/fr.mjs +14 -5
  254. package/lib/locale/fr.mjs.map +1 -1
  255. package/lib/locale/he.mjs +14 -5
  256. package/lib/locale/he.mjs.map +1 -1
  257. package/lib/locale/hr.mjs +14 -5
  258. package/lib/locale/hr.mjs.map +1 -1
  259. package/lib/locale/hu.mjs +14 -5
  260. package/lib/locale/hu.mjs.map +1 -1
  261. package/lib/locale/id.mjs +14 -5
  262. package/lib/locale/id.mjs.map +1 -1
  263. package/lib/locale/index.d.mts +588 -210
  264. package/lib/locale/it.mjs +14 -5
  265. package/lib/locale/it.mjs.map +1 -1
  266. package/lib/locale/ja.mjs +14 -5
  267. package/lib/locale/ja.mjs.map +1 -1
  268. package/lib/locale/ko.mjs +14 -5
  269. package/lib/locale/ko.mjs.map +1 -1
  270. package/lib/locale/lt.mjs +14 -5
  271. package/lib/locale/lt.mjs.map +1 -1
  272. package/lib/locale/lv.mjs +14 -5
  273. package/lib/locale/lv.mjs.map +1 -1
  274. package/lib/locale/nl.mjs +14 -5
  275. package/lib/locale/nl.mjs.map +1 -1
  276. package/lib/locale/no.mjs +14 -5
  277. package/lib/locale/no.mjs.map +1 -1
  278. package/lib/locale/pl.mjs +14 -5
  279. package/lib/locale/pl.mjs.map +1 -1
  280. package/lib/locale/pt.mjs +14 -5
  281. package/lib/locale/pt.mjs.map +1 -1
  282. package/lib/locale/ro.mjs +14 -5
  283. package/lib/locale/ro.mjs.map +1 -1
  284. package/lib/locale/ru.mjs +14 -5
  285. package/lib/locale/ru.mjs.map +1 -1
  286. package/lib/locale/sk.mjs +14 -5
  287. package/lib/locale/sk.mjs.map +1 -1
  288. package/lib/locale/sl.mjs +14 -5
  289. package/lib/locale/sl.mjs.map +1 -1
  290. package/lib/locale/sr-Cyrl.mjs +14 -5
  291. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  292. package/lib/locale/sr-Latn.mjs +14 -5
  293. package/lib/locale/sr-Latn.mjs.map +1 -1
  294. package/lib/locale/sv.mjs +14 -5
  295. package/lib/locale/sv.mjs.map +1 -1
  296. package/lib/locale/th.mjs +14 -5
  297. package/lib/locale/th.mjs.map +1 -1
  298. package/lib/locale/tr.mjs +14 -5
  299. package/lib/locale/tr.mjs.map +1 -1
  300. package/lib/locale/uk.mjs +14 -5
  301. package/lib/locale/uk.mjs.map +1 -1
  302. package/lib/locale/vi.mjs +14 -5
  303. package/lib/locale/vi.mjs.map +1 -1
  304. package/lib/locale/zh-Hans.mjs +14 -5
  305. package/lib/locale/zh-Hans.mjs.map +1 -1
  306. package/lib/locale/zh-Hant.mjs +14 -5
  307. package/lib/locale/zh-Hant.mjs.map +1 -1
  308. package/lib/util/bindProps.mjs +49 -0
  309. package/lib/util/bindProps.mjs.map +1 -0
  310. package/lib/util/dateTimeUtils.mjs +68 -0
  311. package/lib/util/dateTimeUtils.mjs.map +1 -1
  312. package/lib/util/helpers.mjs +3 -0
  313. package/lib/util/helpers.mjs.map +1 -1
  314. package/lib/util/index.mjs +1 -0
  315. package/lib/util/index.mjs.map +1 -1
  316. package/package.json +5 -2
  317. package/lib/components/VDatePicker/VDatePicker.mjs +0 -475
  318. package/lib/components/VDatePicker/VDatePicker.mjs.map +0 -1
  319. package/lib/components/VDatePicker/VDatePickerDateTable.mjs +0 -120
  320. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +0 -1
  321. package/lib/components/VDatePicker/VDatePickerHeader.mjs +0 -136
  322. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +0 -1
  323. package/lib/components/VDatePicker/VDatePickerHeader.sass +0 -46
  324. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +0 -48
  325. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +0 -1
  326. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +0 -1
  327. package/lib/components/VDatePicker/VDatePickerYears.mjs +0 -84
  328. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +0 -1
  329. package/lib/components/VDatePicker/VDatePickerYears.sass +0 -30
  330. package/lib/components/VDatePicker/index.mjs +0 -18
  331. package/lib/components/VDatePicker/index.mjs.map +0 -1
  332. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +0 -1
  333. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +0 -1
  334. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +0 -1
  335. package/lib/components/VDatePicker/util/index.mjs.map +0 -1
  336. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +0 -1
  337. package/lib/components/VDatePicker/util/monthChange.mjs.map +0 -1
  338. package/lib/components/VDatePicker/util/pad.mjs.map +0 -1
  339. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +0 -1
  340. package/lib/components/VPicker/VPicker.mjs +0 -86
  341. package/lib/components/VPicker/VPicker.mjs.map +0 -1
  342. package/lib/components/VPicker/VPicker.sass +0 -94
  343. package/lib/components/VPicker/index.mjs +0 -4
  344. package/lib/components/VPicker/index.mjs.map +0 -1
  345. /package/lib/{components → labs}/VDatePicker/VDatePickerTable.sass +0 -0
  346. /package/lib/{components → labs}/VDatePicker/VDatePickerTitle.sass +0 -0
  347. /package/lib/{components → labs}/VDatePicker/_variables.scss +0 -0
  348. /package/lib/{components → labs}/VDatePicker/mixins/date-picker-table.mjs +0 -0
  349. /package/lib/{components → labs}/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -0
  350. /package/lib/{components → labs}/VDatePicker/util/eventHelpers.mjs +0 -0
  351. /package/lib/{components → labs}/VDatePicker/util/index.mjs +0 -0
  352. /package/lib/{components → labs}/VDatePicker/util/isDateAllowed.mjs +0 -0
  353. /package/lib/{components → labs}/VDatePicker/util/monthChange.mjs +0 -0
  354. /package/lib/{components → labs}/VDatePicker/util/pad.mjs +0 -0
  355. /package/lib/{components → labs}/VDatePicker/util/sanitizeDateString.mjs +0 -0
  356. /package/lib/{components → labs}/VPicker/_variables.scss +0 -0
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.3.2
2
+ * Vuetify v3.3.4
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { reactive, computed, watchEffect, toRefs, capitalize, warn, watch, onScopeDispose, effectScope, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, readonly, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, Fragment, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, toHandlers, Teleport, cloneVNode, createTextVNode, onBeforeUpdate, vModelText, onUpdated } from 'vue';
7
+ import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, warn, watch, onScopeDispose, effectScope, ref, unref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, readonly, onDeactivated, onActivated, onMounted, toRaw, createVNode, TransitionGroup, Transition, mergeProps, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, isRef, toRef, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onBeforeUpdate, vModelText, onUpdated } from 'vue';
8
8
 
9
9
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -294,6 +294,15 @@ function mergeDeep() {
294
294
  }
295
295
  return out;
296
296
  }
297
+ function flattenFragments(nodes) {
298
+ return nodes.map(node => {
299
+ if (node.type === Fragment) {
300
+ return flattenFragments(node.children);
301
+ } else {
302
+ return node;
303
+ }
304
+ }).flat();
305
+ }
297
306
  function toKebabCase() {
298
307
  let str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
299
308
  if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str);
@@ -373,6 +382,9 @@ function includes(arr, val) {
373
382
  }
374
383
  const onRE = /^on[^a-z]/;
375
384
  const isOn = key => onRE.test(key);
385
+ function eventName(propName) {
386
+ return propName[2].toLowerCase() + propName.slice(3);
387
+ }
376
388
  const EventProp = () => [Function, Array];
377
389
  function hasEvent(props, name) {
378
390
  name = 'on' + capitalize(name);
@@ -571,6 +583,54 @@ function animate(el, keyframes, options) {
571
583
  return animation;
572
584
  }
573
585
 
586
+ // Utilities
587
+ const handlers = new WeakMap();
588
+ function bindProps(el, props) {
589
+ Object.keys(props).forEach(k => {
590
+ if (isOn(k)) {
591
+ const name = eventName(k);
592
+ const handler = handlers.get(el);
593
+ if (props[k] == null) {
594
+ handler?.forEach(v => {
595
+ const [n, fn] = v;
596
+ if (n === name) {
597
+ el.removeEventListener(name, fn);
598
+ handler.delete(v);
599
+ }
600
+ });
601
+ } else if (!handler || ![...handler]?.some(v => v[0] === name && v[1] === props[k])) {
602
+ el.addEventListener(name, props[k]);
603
+ const _handler = handler || new Set();
604
+ _handler.add([name, props[k]]);
605
+ if (!handlers.has(el)) handlers.set(el, _handler);
606
+ }
607
+ } else {
608
+ if (props[k] == null) {
609
+ el.removeAttribute(k);
610
+ } else {
611
+ el.setAttribute(k, props[k]);
612
+ }
613
+ }
614
+ });
615
+ }
616
+ function unbindProps(el, props) {
617
+ Object.keys(props).forEach(k => {
618
+ if (isOn(k)) {
619
+ const name = eventName(k);
620
+ const handler = handlers.get(el);
621
+ handler?.forEach(v => {
622
+ const [n, fn] = v;
623
+ if (n === name) {
624
+ el.removeEventListener(name, fn);
625
+ handler.delete(v);
626
+ }
627
+ });
628
+ } else {
629
+ el.removeAttribute(k);
630
+ }
631
+ });
632
+ }
633
+
574
634
  /* eslint-disable no-console */
575
635
 
576
636
  function consoleWarn(message) {
@@ -1579,12 +1639,21 @@ var en = {
1579
1639
  lastPage: 'Last page',
1580
1640
  pageText: '{0}-{1} of {2}'
1581
1641
  },
1642
+ dateRangeInput: {
1643
+ divider: 'to'
1644
+ },
1582
1645
  datePicker: {
1583
- itemsSelected: '{0} selected',
1584
- nextMonthAriaLabel: 'Next month',
1585
- nextYearAriaLabel: 'Next year',
1586
- prevMonthAriaLabel: 'Previous month',
1587
- prevYearAriaLabel: 'Previous year'
1646
+ ok: 'OK',
1647
+ cancel: 'Cancel',
1648
+ range: {
1649
+ title: 'Select dates',
1650
+ header: 'Enter dates'
1651
+ },
1652
+ title: 'Select date',
1653
+ header: 'Enter date',
1654
+ input: {
1655
+ placeholder: 'Enter date'
1656
+ }
1588
1657
  },
1589
1658
  noDataText: 'No data available',
1590
1659
  carousel: {
@@ -2154,6 +2223,7 @@ function createTheme(options) {
2154
2223
  };
2155
2224
  }
2156
2225
  function install(app) {
2226
+ if (parsedOptions.isDisabled) return;
2157
2227
  const head = app._context.provides.usehead;
2158
2228
  if (head) {
2159
2229
  if (head.push) {
@@ -2175,7 +2245,6 @@ function createTheme(options) {
2175
2245
  immediate: true
2176
2246
  });
2177
2247
  function updateStyles() {
2178
- if (parsedOptions.isDisabled) return;
2179
2248
  if (typeof document !== 'undefined' && !styleEl) {
2180
2249
  const el = document.createElement('style');
2181
2250
  el.type = 'text/css';
@@ -3567,7 +3636,7 @@ const VAppBar = genericComponent()({
3567
3636
  const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
3568
3637
  return height + extensionHeight;
3569
3638
  });
3570
- function setActive() {
3639
+ watchEffect(() => {
3571
3640
  if (scrollBehavior.value.hide) {
3572
3641
  if (scrollBehavior.value.inverted) {
3573
3642
  isActive.value = currentScroll.value > scrollThreshold.value;
@@ -3577,12 +3646,6 @@ const VAppBar = genericComponent()({
3577
3646
  } else {
3578
3647
  isActive.value = true;
3579
3648
  }
3580
- }
3581
- useToggleScope(() => !!props.scrollBehavior, () => {
3582
- watch(currentScroll, setActive, {
3583
- immediate: true
3584
- });
3585
- watch(scrollBehavior, setActive);
3586
3649
  });
3587
3650
  const {
3588
3651
  ssrBootStyles
@@ -4037,7 +4100,8 @@ const aliases = {
4037
4100
  unfold: 'mdi-unfold-more-horizontal',
4038
4101
  file: 'mdi-paperclip',
4039
4102
  plus: 'mdi-plus',
4040
- minus: 'mdi-minus'
4103
+ minus: 'mdi-minus',
4104
+ calendar: 'mdi-calendar'
4041
4105
  };
4042
4106
  const mdi = {
4043
4107
  // Not using mergeProps here, functional components merge props by default (?)
@@ -4262,7 +4326,7 @@ const VIcon = genericComponent()({
4262
4326
  useRender(() => {
4263
4327
  const slotValue = slots.default?.();
4264
4328
  if (slotValue) {
4265
- slotIcon.value = slotValue.filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
4329
+ slotIcon.value = flattenFragments(slotValue).filter(node => node.type === Text && node.children && typeof node.children === 'string')[0]?.children;
4266
4330
  }
4267
4331
  return createVNode(iconData.value.component, {
4268
4332
  "tag": props.tag,
@@ -5099,7 +5163,7 @@ const makeVBtnProps = propsFactory({
5099
5163
  block: Boolean,
5100
5164
  stacked: Boolean,
5101
5165
  ripple: {
5102
- type: Boolean,
5166
+ type: [Boolean, Object],
5103
5167
  default: true
5104
5168
  },
5105
5169
  text: String,
@@ -6382,6 +6446,7 @@ const VCheckbox = genericComponent()({
6382
6446
  inheritAttrs: false,
6383
6447
  props: makeVCheckboxProps(),
6384
6448
  emits: {
6449
+ 'update:modelValue': value => true,
6385
6450
  'update:focused': focused => true
6386
6451
  },
6387
6452
  setup(props, _ref) {
@@ -6389,6 +6454,7 @@ const VCheckbox = genericComponent()({
6389
6454
  attrs,
6390
6455
  slots
6391
6456
  } = _ref;
6457
+ const model = useProxiedModel(props, 'modelValue');
6392
6458
  const {
6393
6459
  isFocused,
6394
6460
  focus,
@@ -6403,6 +6469,8 @@ const VCheckbox = genericComponent()({
6403
6469
  return createVNode(VInput, mergeProps({
6404
6470
  "class": ['v-checkbox', props.class]
6405
6471
  }, inputAttrs, inputProps, {
6472
+ "modelValue": model.value,
6473
+ "onUpdate:modelValue": $event => model.value = $event,
6406
6474
  "id": id.value,
6407
6475
  "focused": isFocused.value,
6408
6476
  "style": props.style
@@ -6421,6 +6489,8 @@ const VCheckbox = genericComponent()({
6421
6489
  "disabled": isDisabled.value,
6422
6490
  "readonly": isReadonly.value
6423
6491
  }, controlAttrs, {
6492
+ "modelValue": model.value,
6493
+ "onUpdate:modelValue": $event => model.value = $event,
6424
6494
  "onFocus": focus,
6425
6495
  "onBlur": blur
6426
6496
  }), slots);
@@ -6558,6 +6628,8 @@ const VChipGroup = genericComponent()({
6558
6628
  }
6559
6629
  });
6560
6630
 
6631
+ // Types
6632
+
6561
6633
  const makeVChipProps = propsFactory({
6562
6634
  activeClass: String,
6563
6635
  appendAvatar: String,
@@ -6586,7 +6658,7 @@ const makeVChipProps = propsFactory({
6586
6658
  prependAvatar: String,
6587
6659
  prependIcon: IconValue,
6588
6660
  ripple: {
6589
- type: Boolean,
6661
+ type: [Boolean, Object],
6590
6662
  default: true
6591
6663
  },
6592
6664
  text: String,
@@ -7239,7 +7311,7 @@ const useNested = props => {
7239
7311
  const useNestedItem = (id, isGroup) => {
7240
7312
  const parent = inject$1(VNestedSymbol, emptyNested);
7241
7313
  const uidSymbol = Symbol(getUid());
7242
- const computedId = computed(() => id.value ?? uidSymbol);
7314
+ const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol);
7243
7315
  const item = {
7244
7316
  ...parent,
7245
7317
  id: computedId,
@@ -7402,7 +7474,7 @@ const makeVListItemProps = propsFactory({
7402
7474
  prependAvatar: String,
7403
7475
  prependIcon: IconValue,
7404
7476
  ripple: {
7405
- type: Boolean,
7477
+ type: [Boolean, Object],
7406
7478
  default: true
7407
7479
  },
7408
7480
  subtitle: [String, Number, Boolean],
@@ -7439,7 +7511,7 @@ const VListItem = genericComponent()({
7439
7511
  emit
7440
7512
  } = _ref;
7441
7513
  const link = useLink(props, attrs);
7442
- const id = computed(() => props.value ?? link.href.value);
7514
+ const id = computed(() => props.value === undefined ? link.href.value : props.value);
7443
7515
  const {
7444
7516
  select,
7445
7517
  isSelected,
@@ -7836,10 +7908,13 @@ function useItems(props) {
7836
7908
  }
7837
7909
  function useTransformItems(items, transform) {
7838
7910
  function transformIn(value) {
7839
- return value.map(v => {
7911
+ return value
7912
+ // When the model value is null, returns an InternalItem based on null
7913
+ // only if null is one of the items
7914
+ .filter(v => v !== null || items.value.some(item => item.value === null)).map(v => {
7840
7915
  const existingItem = items.value.find(item => deepEqual(v, item.value));
7841
7916
  // Nullish existingItem means value is a custom input value from combobox
7842
- // In this case, use transformItem to create an { value: unknown } based on value
7917
+ // In this case, use transformItem to create an InternalItem based on value
7843
7918
  return existingItem ?? transform(v);
7844
7919
  });
7845
7920
  }
@@ -8775,29 +8850,29 @@ function useActivator(props, _ref) {
8775
8850
  }
8776
8851
  });
8777
8852
  const availableEvents = {
8778
- click: e => {
8853
+ onClick: e => {
8779
8854
  e.stopPropagation();
8780
8855
  activatorEl.value = e.currentTarget || e.target;
8781
8856
  isActive.value = !isActive.value;
8782
8857
  },
8783
- mouseenter: e => {
8858
+ onMouseenter: e => {
8784
8859
  if (e.sourceCapabilities?.firesTouchEvents) return;
8785
8860
  isHovered = true;
8786
8861
  activatorEl.value = e.currentTarget || e.target;
8787
8862
  runOpenDelay();
8788
8863
  },
8789
- mouseleave: e => {
8864
+ onMouseleave: e => {
8790
8865
  isHovered = false;
8791
8866
  runCloseDelay();
8792
8867
  },
8793
- focus: e => {
8868
+ onFocus: e => {
8794
8869
  if (SUPPORTS_FOCUS_VISIBLE && !e.target.matches(':focus-visible')) return;
8795
8870
  isFocused = true;
8796
8871
  e.stopPropagation();
8797
8872
  activatorEl.value = e.currentTarget || e.target;
8798
8873
  runOpenDelay();
8799
8874
  },
8800
- blur: e => {
8875
+ onBlur: e => {
8801
8876
  isFocused = false;
8802
8877
  e.stopPropagation();
8803
8878
  runCloseDelay();
@@ -8806,33 +8881,43 @@ function useActivator(props, _ref) {
8806
8881
  const activatorEvents = computed(() => {
8807
8882
  const events = {};
8808
8883
  if (openOnClick.value) {
8809
- events.click = availableEvents.click;
8884
+ events.onClick = availableEvents.onClick;
8810
8885
  }
8811
8886
  if (props.openOnHover) {
8812
- events.mouseenter = availableEvents.mouseenter;
8813
- events.mouseleave = availableEvents.mouseleave;
8887
+ events.onMouseenter = availableEvents.onMouseenter;
8888
+ events.onMouseleave = availableEvents.onMouseleave;
8814
8889
  }
8815
8890
  if (openOnFocus.value) {
8816
- events.focus = availableEvents.focus;
8817
- events.blur = availableEvents.blur;
8891
+ events.onFocus = availableEvents.onFocus;
8892
+ events.onBlur = availableEvents.onBlur;
8818
8893
  }
8819
8894
  return events;
8820
8895
  });
8821
8896
  const contentEvents = computed(() => {
8822
8897
  const events = {};
8823
8898
  if (props.openOnHover) {
8824
- events.mouseenter = () => {
8899
+ events.onMouseenter = () => {
8825
8900
  isHovered = true;
8826
8901
  runOpenDelay();
8827
8902
  };
8828
- events.mouseleave = () => {
8903
+ events.onMouseleave = () => {
8829
8904
  isHovered = false;
8830
8905
  runCloseDelay();
8831
8906
  };
8832
8907
  }
8908
+ if (openOnFocus.value) {
8909
+ events.onFocusin = () => {
8910
+ isFocused = true;
8911
+ runOpenDelay();
8912
+ };
8913
+ events.onFocusout = () => {
8914
+ isFocused = false;
8915
+ runCloseDelay();
8916
+ };
8917
+ }
8833
8918
  if (props.closeOnContentClick) {
8834
8919
  const menu = inject$1(VMenuSymbol, null);
8835
- events.click = () => {
8920
+ events.onClick = () => {
8836
8921
  isActive.value = false;
8837
8922
  menu?.closeParents();
8838
8923
  };
@@ -8842,14 +8927,14 @@ function useActivator(props, _ref) {
8842
8927
  const scrimEvents = computed(() => {
8843
8928
  const events = {};
8844
8929
  if (props.openOnHover) {
8845
- events.mouseenter = () => {
8930
+ events.onMouseenter = () => {
8846
8931
  if (firstEnter) {
8847
8932
  isHovered = true;
8848
8933
  firstEnter = false;
8849
8934
  runOpenDelay();
8850
8935
  }
8851
8936
  };
8852
- events.mouseleave = () => {
8937
+ events.onMouseleave = () => {
8853
8938
  isHovered = false;
8854
8939
  runCloseDelay();
8855
8940
  };
@@ -8923,29 +9008,13 @@ function _useActivator(props, vm, _ref2) {
8923
9008
  let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
8924
9009
  let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
8925
9010
  if (!el) return;
8926
- Object.entries(activatorEvents.value).forEach(_ref3 => {
8927
- let [name, cb] = _ref3;
8928
- el.addEventListener(name, cb);
8929
- });
8930
- Object.keys(_props).forEach(k => {
8931
- if (_props[k] == null) {
8932
- el.removeAttribute(k);
8933
- } else {
8934
- el.setAttribute(k, _props[k]);
8935
- }
8936
- });
9011
+ bindProps(el, mergeProps(activatorEvents.value, _props));
8937
9012
  }
8938
9013
  function unbindActivatorProps() {
8939
9014
  let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getActivator();
8940
9015
  let _props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.activatorProps;
8941
9016
  if (!el) return;
8942
- Object.entries(activatorEvents.value).forEach(_ref4 => {
8943
- let [name, cb] = _ref4;
8944
- el.removeEventListener(name, cb);
8945
- });
8946
- Object.keys(_props).forEach(k => {
8947
- el.removeAttribute(k);
8948
- });
9017
+ unbindProps(el, mergeProps(activatorEvents.value, _props));
8949
9018
  }
8950
9019
  function getActivator() {
8951
9020
  let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : props.activator;
@@ -9472,6 +9541,9 @@ const VOverlay = genericComponent()({
9472
9541
  if (e.key === 'Escape' && globalTop.value) {
9473
9542
  if (!props.persistent) {
9474
9543
  isActive.value = false;
9544
+ if (contentEl.value?.contains(document.activeElement)) {
9545
+ activatorEl.value?.focus();
9546
+ }
9475
9547
  } else animateClick();
9476
9548
  }
9477
9549
  }
@@ -9514,7 +9586,7 @@ const VOverlay = genericComponent()({
9514
9586
  isActive: isActive.value,
9515
9587
  props: mergeProps({
9516
9588
  ref: activatorRef
9517
- }, toHandlers(activatorEvents.value), props.activatorProps)
9589
+ }, activatorEvents.value, props.activatorProps)
9518
9590
  }), isMounted.value && createVNode(Teleport, {
9519
9591
  "disabled": !teleportTarget.value,
9520
9592
  "to": teleportTarget.value
@@ -9532,7 +9604,7 @@ const VOverlay = genericComponent()({
9532
9604
  }, scopeId, attrs), [createVNode(Scrim, mergeProps({
9533
9605
  "color": scrimColor,
9534
9606
  "modelValue": isActive.value && !!props.scrim
9535
- }, toHandlers(scrimEvents.value)), null), createVNode(MaybeTransition, {
9607
+ }, scrimEvents.value), null), createVNode(MaybeTransition, {
9536
9608
  "appear": true,
9537
9609
  "persisted": true,
9538
9610
  "transition": props.transition,
@@ -9546,7 +9618,7 @@ const VOverlay = genericComponent()({
9546
9618
  "ref": contentEl,
9547
9619
  "class": ['v-overlay__content', props.contentClass],
9548
9620
  "style": [dimensionStyles.value, contentStyles.value]
9549
- }, toHandlers(contentEvents.value), props.contentProps), [slots.default?.({
9621
+ }, contentEvents.value, props.contentProps), [slots.default?.({
9550
9622
  isActive
9551
9623
  })]), [[vShow, isActive.value], [resolveDirective("click-outside"), {
9552
9624
  handler: onClickOutside,
@@ -9706,10 +9778,35 @@ const VMenu = genericComponent()({
9706
9778
  function onClickOutside() {
9707
9779
  parent?.closeParents();
9708
9780
  }
9781
+ function onKeydown(e) {
9782
+ if (props.disabled) return;
9783
+ if (e.key === 'Tab') {
9784
+ isActive.value = false;
9785
+ overlay.value?.activatorEl?.focus();
9786
+ }
9787
+ }
9788
+ function onActivatorKeydown(e) {
9789
+ if (props.disabled) return;
9790
+ const el = overlay.value?.contentEl;
9791
+ if (el && isActive.value) {
9792
+ if (e.key === 'ArrowDown') {
9793
+ e.preventDefault();
9794
+ focusChild(el, 'next');
9795
+ } else if (e.key === 'ArrowUp') {
9796
+ e.preventDefault();
9797
+ focusChild(el, 'prev');
9798
+ }
9799
+ } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {
9800
+ isActive.value = true;
9801
+ e.preventDefault();
9802
+ setTimeout(() => setTimeout(() => onActivatorKeydown(e)));
9803
+ }
9804
+ }
9709
9805
  const activatorProps = computed(() => mergeProps({
9710
9806
  'aria-haspopup': 'menu',
9711
9807
  'aria-expanded': String(isActive.value),
9712
- 'aria-owns': id.value
9808
+ 'aria-owns': id.value,
9809
+ onKeydown: onActivatorKeydown
9713
9810
  }, props.activatorProps));
9714
9811
  useRender(() => {
9715
9812
  const [overlayProps] = VOverlay.filterProps(props);
@@ -9722,7 +9819,8 @@ const VMenu = genericComponent()({
9722
9819
  "onUpdate:modelValue": $event => isActive.value = $event,
9723
9820
  "absolute": true,
9724
9821
  "activatorProps": activatorProps.value,
9725
- "onClick:outside": onClickOutside
9822
+ "onClick:outside": onClickOutside,
9823
+ "onKeydown": onKeydown
9726
9824
  }, scopeId), {
9727
9825
  activator: slots.activator,
9728
9826
  default: function () {
@@ -10346,7 +10444,7 @@ const VSelect = genericComponent()({
10346
10444
  transformIn,
10347
10445
  transformOut
10348
10446
  } = useItems(props);
10349
- const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
10447
+ const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
10350
10448
  const transformed = transformOut(v);
10351
10449
  return props.multiple ? transformed : transformed[0] ?? null;
10352
10450
  });
@@ -10366,6 +10464,7 @@ const VSelect = genericComponent()({
10366
10464
  }
10367
10465
  return items.value;
10368
10466
  });
10467
+ const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
10369
10468
  const listRef = ref();
10370
10469
  function onClear(e) {
10371
10470
  if (props.openOnClear) {
@@ -10373,7 +10472,7 @@ const VSelect = genericComponent()({
10373
10472
  }
10374
10473
  }
10375
10474
  function onMousedownControl() {
10376
- if (props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value) return;
10475
+ if (menuDisabled.value) return;
10377
10476
  menu.value = !menu.value;
10378
10477
  }
10379
10478
  function onKeydown(e) {
@@ -10387,11 +10486,7 @@ const VSelect = genericComponent()({
10387
10486
  if (['Escape', 'Tab'].includes(e.key)) {
10388
10487
  menu.value = false;
10389
10488
  }
10390
- if (e.key === 'ArrowDown') {
10391
- listRef.value?.focus('next');
10392
- } else if (e.key === 'ArrowUp') {
10393
- listRef.value?.focus('prev');
10394
- } else if (e.key === 'Home') {
10489
+ if (e.key === 'Home') {
10395
10490
  listRef.value?.focus('first');
10396
10491
  } else if (e.key === 'End') {
10397
10492
  listRef.value?.focus('last');
@@ -10417,6 +10512,11 @@ const VSelect = genericComponent()({
10417
10512
  model.value = [item];
10418
10513
  }
10419
10514
  }
10515
+ function onListKeydown(e) {
10516
+ if (e.key === 'Tab') {
10517
+ vTextFieldRef.value?.focus();
10518
+ }
10519
+ }
10420
10520
  function select(item) {
10421
10521
  if (props.multiple) {
10422
10522
  const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
@@ -10447,7 +10547,7 @@ const VSelect = genericComponent()({
10447
10547
  }
10448
10548
  useRender(() => {
10449
10549
  const hasChips = !!(props.chips || slots.chip);
10450
- const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
10550
+ const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
10451
10551
  const isDirty = model.value.length > 0;
10452
10552
  const [textFieldProps] = VTextField.filterProps(props);
10453
10553
  const placeholder = isDirty || !isFocused.value && props.label && !props.persistentPlaceholder ? undefined : props.placeholder;
@@ -10484,6 +10584,7 @@ const VSelect = genericComponent()({
10484
10584
  "onUpdate:modelValue": $event => menu.value = $event,
10485
10585
  "activator": "parent",
10486
10586
  "contentClass": "v-select__content",
10587
+ "disabled": menuDisabled.value,
10487
10588
  "eager": props.eager,
10488
10589
  "maxHeight": 310,
10489
10590
  "openOnClick": false,
@@ -10496,11 +10597,13 @@ const VSelect = genericComponent()({
10496
10597
  "selected": selected.value,
10497
10598
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
10498
10599
  "onMousedown": e => e.preventDefault(),
10499
- "onFocusin": onFocusin
10600
+ "onKeydown": onListKeydown,
10601
+ "onFocusin": onFocusin,
10602
+ "tabindex": "-1"
10500
10603
  }, {
10501
- default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
10604
+ default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
10502
10605
  "title": t(props.noDataText)
10503
- }, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => {
10606
+ }, null)), displayItems.value.map((item, index) => {
10504
10607
  const itemProps = mergeProps(item.props, {
10505
10608
  key: index,
10506
10609
  onClick: () => select(item)
@@ -10766,7 +10869,7 @@ const VAutocomplete = genericComponent()({
10766
10869
  textColorStyles
10767
10870
  } = useTextColor(color);
10768
10871
  const search = useProxiedModel(props, 'search', '');
10769
- const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
10872
+ const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
10770
10873
  const transformed = transformOut(v);
10771
10874
  return props.multiple ? transformed : transformed[0] ?? null;
10772
10875
  });
@@ -10792,6 +10895,7 @@ const VAutocomplete = genericComponent()({
10792
10895
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
10793
10896
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
10794
10897
  });
10898
+ const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
10795
10899
  const listRef = ref();
10796
10900
  function onClear(e) {
10797
10901
  if (props.openOnClear) {
@@ -10800,10 +10904,11 @@ const VAutocomplete = genericComponent()({
10800
10904
  search.value = '';
10801
10905
  }
10802
10906
  function onMousedownControl() {
10803
- if (props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value) return;
10907
+ if (menuDisabled.value) return;
10804
10908
  menu.value = true;
10805
10909
  }
10806
10910
  function onMousedownMenuIcon(e) {
10911
+ if (menuDisabled.value) return;
10807
10912
  if (isFocused.value) {
10808
10913
  e.preventDefault();
10809
10914
  e.stopPropagation();
@@ -10829,13 +10934,8 @@ const VAutocomplete = genericComponent()({
10829
10934
  }
10830
10935
  isPristine.value = true;
10831
10936
  }
10832
- if (e.key === 'ArrowDown') {
10937
+ if (e.key === 'ArrowDown' && highlightFirst.value) {
10833
10938
  listRef.value?.focus('next');
10834
- if (highlightFirst.value) {
10835
- listRef.value?.focus('next');
10836
- }
10837
- } else if (e.key === 'ArrowUp') {
10838
- listRef.value?.focus('prev');
10839
10939
  }
10840
10940
  if (!props.multiple) return;
10841
10941
  if (['Backspace', 'Delete'].includes(e.key)) {
@@ -10870,6 +10970,11 @@ const VAutocomplete = genericComponent()({
10870
10970
  }
10871
10971
  }
10872
10972
  }
10973
+ function onListKeydown(e) {
10974
+ if (e.key === 'Tab') {
10975
+ vTextFieldRef.value?.focus();
10976
+ }
10977
+ }
10873
10978
  function onInput(e) {
10874
10979
  search.value = e.target.value;
10875
10980
  }
@@ -10939,7 +11044,7 @@ const VAutocomplete = genericComponent()({
10939
11044
  });
10940
11045
  useRender(() => {
10941
11046
  const hasChips = !!(props.chips || slots.chip);
10942
- const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
11047
+ const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
10943
11048
  const isDirty = model.value.length > 0;
10944
11049
  const [textFieldProps] = VTextField.filterProps(props);
10945
11050
  return createVNode(VTextField, mergeProps({
@@ -10972,6 +11077,7 @@ const VAutocomplete = genericComponent()({
10972
11077
  "onUpdate:modelValue": $event => menu.value = $event,
10973
11078
  "activator": "parent",
10974
11079
  "contentClass": "v-autocomplete__content",
11080
+ "disabled": menuDisabled.value,
10975
11081
  "eager": props.eager,
10976
11082
  "maxHeight": 310,
10977
11083
  "openOnClick": false,
@@ -10984,12 +11090,14 @@ const VAutocomplete = genericComponent()({
10984
11090
  "selected": selected.value,
10985
11091
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
10986
11092
  "onMousedown": e => e.preventDefault(),
11093
+ "onKeydown": onListKeydown,
10987
11094
  "onFocusin": onFocusin,
10988
- "onFocusout": onFocusout
11095
+ "onFocusout": onFocusout,
11096
+ "tabindex": "-1"
10989
11097
  }, {
10990
- default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
11098
+ default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
10991
11099
  "title": t(props.noDataText)
10992
- }, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => {
11100
+ }, null)), displayItems.value.map((item, index) => {
10993
11101
  const itemProps = mergeProps(item.props, {
10994
11102
  key: index,
10995
11103
  active: highlightFirst.value && index === 0 ? true : undefined,
@@ -11739,7 +11847,7 @@ const makeVCardProps = propsFactory({
11739
11847
  prependAvatar: String,
11740
11848
  prependIcon: IconValue,
11741
11849
  ripple: {
11742
- type: Boolean,
11850
+ type: [Boolean, Object],
11743
11851
  default: true
11744
11852
  },
11745
11853
  subtitle: String,
@@ -13144,6 +13252,8 @@ const useSlider = _ref => {
13144
13252
  return data;
13145
13253
  };
13146
13254
 
13255
+ // Types
13256
+
13147
13257
  const makeVSliderThumbProps = propsFactory({
13148
13258
  focused: Boolean,
13149
13259
  max: {
@@ -13163,7 +13273,7 @@ const makeVSliderThumbProps = propsFactory({
13163
13273
  required: true
13164
13274
  },
13165
13275
  ripple: {
13166
- type: Boolean,
13276
+ type: [Boolean, Object],
13167
13277
  default: true
13168
13278
  },
13169
13279
  ...makeComponentProps()
@@ -14322,6 +14432,7 @@ const VCombobox = genericComponent()({
14322
14432
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
14323
14433
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
14324
14434
  });
14435
+ const menuDisabled = computed(() => props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value);
14325
14436
  const listRef = ref();
14326
14437
  function onClear(e) {
14327
14438
  cleared = true;
@@ -14330,10 +14441,11 @@ const VCombobox = genericComponent()({
14330
14441
  }
14331
14442
  }
14332
14443
  function onMousedownControl() {
14333
- if (props.hideNoData && !items.value.length || props.readonly || form?.isReadonly.value) return;
14444
+ if (menuDisabled.value) return;
14334
14445
  menu.value = true;
14335
14446
  }
14336
14447
  function onMousedownMenuIcon(e) {
14448
+ if (menuDisabled.value) return;
14337
14449
  if (isFocused.value) {
14338
14450
  e.preventDefault();
14339
14451
  e.stopPropagation();
@@ -14359,10 +14471,8 @@ const VCombobox = genericComponent()({
14359
14471
  }
14360
14472
  isPristine.value = true;
14361
14473
  }
14362
- if (e.key === 'ArrowDown') {
14474
+ if (e.key === 'ArrowDown' && highlightFirst.value) {
14363
14475
  listRef.value?.focus('next');
14364
- } else if (e.key === 'ArrowUp') {
14365
- listRef.value?.focus('prev');
14366
14476
  }
14367
14477
  if (!props.multiple) return;
14368
14478
  if (['Backspace', 'Delete'].includes(e.key)) {
@@ -14401,6 +14511,11 @@ const VCombobox = genericComponent()({
14401
14511
  search.value = '';
14402
14512
  }
14403
14513
  }
14514
+ function onListKeydown(e) {
14515
+ if (e.key === 'Tab') {
14516
+ vTextFieldRef.value?.focus();
14517
+ }
14518
+ }
14404
14519
  function onAfterLeave() {
14405
14520
  if (isFocused.value) {
14406
14521
  isPristine.value = true;
@@ -14462,7 +14577,7 @@ const VCombobox = genericComponent()({
14462
14577
  });
14463
14578
  useRender(() => {
14464
14579
  const hasChips = !!(props.chips || slots.chip);
14465
- const hasList = !!(!props.hideNoData || displayItems.value.length || slots.prepend || slots.append || slots['no-data']);
14580
+ const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
14466
14581
  const isDirty = model.value.length > 0;
14467
14582
  const [textFieldProps] = VTextField.filterProps(props);
14468
14583
  return createVNode(VTextField, mergeProps({
@@ -14495,6 +14610,7 @@ const VCombobox = genericComponent()({
14495
14610
  "onUpdate:modelValue": $event => menu.value = $event,
14496
14611
  "activator": "parent",
14497
14612
  "contentClass": "v-combobox__content",
14613
+ "disabled": menuDisabled.value,
14498
14614
  "eager": props.eager,
14499
14615
  "maxHeight": 310,
14500
14616
  "openOnClick": false,
@@ -14507,12 +14623,14 @@ const VCombobox = genericComponent()({
14507
14623
  "selected": selected.value,
14508
14624
  "selectStrategy": props.multiple ? 'independent' : 'single-independent',
14509
14625
  "onMousedown": e => e.preventDefault(),
14626
+ "onKeydown": onListKeydown,
14510
14627
  "onFocusin": onFocusin,
14511
- "onFocusout": onFocusout
14628
+ "onFocusout": onFocusout,
14629
+ "tabindex": "-1"
14512
14630
  }, {
14513
- default: () => [!displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
14631
+ default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
14514
14632
  "title": t(props.noDataText)
14515
- }, null)), slots['prepend-item']?.(), displayItems.value.map((item, index) => {
14633
+ }, null)), displayItems.value.map((item, index) => {
14516
14634
  const itemProps = mergeProps(item.props, {
14517
14635
  key: index,
14518
14636
  active: highlightFirst.value && index === 0 ? true : undefined,
@@ -14804,6 +14922,8 @@ const VExpansionPanelText = genericComponent()({
14804
14922
  }
14805
14923
  });
14806
14924
 
14925
+ // Types
14926
+
14807
14927
  const makeVExpansionPanelTitleProps = propsFactory({
14808
14928
  color: String,
14809
14929
  expandIcon: {
@@ -15076,8 +15196,6 @@ const VFileInput = genericComponent()({
15076
15196
  "modelValue": model.value,
15077
15197
  "onUpdate:modelValue": $event => model.value = $event,
15078
15198
  "class": ['v-file-input', {
15079
- 'v-file-input--chips': !!props.chips,
15080
- 'v-file-input--selection-slot': !!slots.selection,
15081
15199
  'v-text-field--plain-underlined': isPlainOrUnderlined.value
15082
15200
  }, props.class],
15083
15201
  "style": props.style,
@@ -18074,8 +18192,8 @@ const VTab = genericComponent()({
18074
18192
  const initialScale = prevBox[widthHeight] / nextBox[widthHeight];
18075
18193
  const sigma = 1.5;
18076
18194
  animate(nextEl, {
18077
- backgroundColor: [color, ''],
18078
- transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, ''],
18195
+ backgroundColor: [color, 'currentcolor'],
18196
+ transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],
18079
18197
  transformOrigin: Array(3).fill(origin)
18080
18198
  }, {
18081
18199
  duration: 225,
@@ -19360,47 +19478,6 @@ var directives = /*#__PURE__*/Object.freeze({
19360
19478
 
19361
19479
  // Types
19362
19480
 
19363
- function getWeekArray(date) {
19364
- let currentWeek = [];
19365
- const weeks = [];
19366
- const firstDayOfMonth = startOfMonth(date);
19367
- const lastDayOfMonth = endOfMonth(date);
19368
- for (let i = 0; i < firstDayOfMonth.getDay(); i++) {
19369
- currentWeek.push(null);
19370
- }
19371
- for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
19372
- const day = new Date(date.getFullYear(), date.getMonth(), i);
19373
-
19374
- // Add the day to the current week
19375
- currentWeek.push(day);
19376
-
19377
- // If the current week has 7 days, add it to the weeks array and start a new week
19378
- if (currentWeek.length === 7) {
19379
- weeks.push(currentWeek);
19380
- currentWeek = [];
19381
- }
19382
- }
19383
- for (let i = currentWeek.length; i < 7; i++) {
19384
- currentWeek.push(null);
19385
- }
19386
- weeks.push(currentWeek);
19387
- return weeks;
19388
- }
19389
- function startOfMonth(date) {
19390
- return new Date(date.getFullYear(), date.getMonth(), 1);
19391
- }
19392
- function endOfMonth(date) {
19393
- return new Date(date.getFullYear(), date.getMonth() + 1, 0);
19394
- }
19395
- function date(value) {
19396
- if (value == null) return null;
19397
- if (value instanceof Date) return value;
19398
- if (typeof value === 'string') {
19399
- const parsed = Date.parse(value);
19400
- if (!isNaN(parsed)) return new Date(parsed);
19401
- }
19402
- return null;
19403
- }
19404
19481
  const firstDay = {
19405
19482
  '001': 1,
19406
19483
  AD: 1,
@@ -19414,7 +19491,7 @@ const firstDay = {
19414
19491
  AR: 1,
19415
19492
  AS: 0,
19416
19493
  AT: 1,
19417
- AU: 0,
19494
+ AU: 1,
19418
19495
  AX: 1,
19419
19496
  AZ: 1,
19420
19497
  BA: 1,
@@ -19434,7 +19511,7 @@ const firstDay = {
19434
19511
  CH: 1,
19435
19512
  CL: 1,
19436
19513
  CM: 1,
19437
- CN: 0,
19514
+ CN: 1,
19438
19515
  CO: 0,
19439
19516
  CR: 1,
19440
19517
  CY: 1,
@@ -19554,6 +19631,53 @@ const firstDay = {
19554
19631
  ZA: 0,
19555
19632
  ZW: 0
19556
19633
  };
19634
+ function getWeekArray(date, locale) {
19635
+ const weeks = [];
19636
+ let currentWeek = [];
19637
+ const firstDayOfMonth = startOfMonth(date);
19638
+ const lastDayOfMonth = endOfMonth(date);
19639
+ const firstDayWeekIndex = firstDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()];
19640
+ const lastDayWeekIndex = lastDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()];
19641
+ for (let i = 0; i < firstDayWeekIndex; i++) {
19642
+ const adjacentDay = new Date(firstDayOfMonth);
19643
+ adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));
19644
+ currentWeek.push(adjacentDay);
19645
+ }
19646
+ for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
19647
+ const day = new Date(date.getFullYear(), date.getMonth(), i);
19648
+
19649
+ // Add the day to the current week
19650
+ currentWeek.push(day);
19651
+
19652
+ // If the current week has 7 days, add it to the weeks array and start a new week
19653
+ if (currentWeek.length === 7) {
19654
+ weeks.push(currentWeek);
19655
+ currentWeek = [];
19656
+ }
19657
+ }
19658
+ for (let i = 1; i < 7 - lastDayWeekIndex; i++) {
19659
+ const adjacentDay = new Date(lastDayOfMonth);
19660
+ adjacentDay.setDate(adjacentDay.getDate() + i);
19661
+ currentWeek.push(adjacentDay);
19662
+ }
19663
+ weeks.push(currentWeek);
19664
+ return weeks;
19665
+ }
19666
+ function startOfMonth(date) {
19667
+ return new Date(date.getFullYear(), date.getMonth(), 1);
19668
+ }
19669
+ function endOfMonth(date) {
19670
+ return new Date(date.getFullYear(), date.getMonth() + 1, 0);
19671
+ }
19672
+ function date(value) {
19673
+ if (value == null) return new Date();
19674
+ if (value instanceof Date) return value;
19675
+ if (typeof value === 'string') {
19676
+ const parsed = Date.parse(value);
19677
+ if (!isNaN(parsed)) return new Date(parsed);
19678
+ }
19679
+ return null;
19680
+ }
19557
19681
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
19558
19682
  function getWeekdays(locale) {
19559
19683
  const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
@@ -19561,7 +19685,7 @@ function getWeekdays(locale) {
19561
19685
  const weekday = new Date(sundayJanuarySecond2000);
19562
19686
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
19563
19687
  return new Intl.DateTimeFormat(locale, {
19564
- weekday: 'long'
19688
+ weekday: 'short'
19565
19689
  }).format(weekday);
19566
19690
  });
19567
19691
  }
@@ -19581,8 +19705,7 @@ function format(value, formatString, locale) {
19581
19705
  options = {
19582
19706
  weekday: 'short',
19583
19707
  day: 'numeric',
19584
- month: 'short',
19585
- year: 'numeric'
19708
+ month: 'short'
19586
19709
  };
19587
19710
  break;
19588
19711
  case 'keyboardDate':
@@ -19600,6 +19723,11 @@ function format(value, formatString, locale) {
19600
19723
  year: 'numeric'
19601
19724
  };
19602
19725
  break;
19726
+ case 'dayOfMonth':
19727
+ options = {
19728
+ day: 'numeric'
19729
+ };
19730
+ break;
19603
19731
  default:
19604
19732
  options = {
19605
19733
  timeZone: 'UTC',
@@ -19630,28 +19758,6 @@ function startOfYear(date) {
19630
19758
  function endOfYear(date) {
19631
19759
  return new Date(date.getFullYear(), 11, 31);
19632
19760
  }
19633
- function getMondayOfFirstWeekOfYear(year) {
19634
- return new Date(year, 0, 1);
19635
- }
19636
-
19637
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
19638
- function getWeek(date) {
19639
- let year = date.getFullYear();
19640
- let d1w1 = getMondayOfFirstWeekOfYear(year);
19641
- if (date < d1w1) {
19642
- year = year - 1;
19643
- d1w1 = getMondayOfFirstWeekOfYear(year);
19644
- } else {
19645
- const tv = getMondayOfFirstWeekOfYear(year + 1);
19646
- if (date >= tv) {
19647
- year = year + 1;
19648
- d1w1 = tv;
19649
- }
19650
- }
19651
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
19652
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
19653
- return Math.floor(diffDays / 7) + 1;
19654
- }
19655
19761
  function isWithinRange(date, range) {
19656
19762
  return isAfter(date, range[0]) && isBefore(date, range[1]);
19657
19763
  }
@@ -19688,13 +19794,15 @@ function setYear(date, year) {
19688
19794
  return d;
19689
19795
  }
19690
19796
  class VuetifyDateAdapter {
19691
- constructor() {
19692
- let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'en';
19693
- this.locale = locale;
19797
+ constructor(options) {
19798
+ this.locale = options.locale;
19694
19799
  }
19695
19800
  date(value) {
19696
19801
  return date(value);
19697
19802
  }
19803
+ toJsDate(date) {
19804
+ return date;
19805
+ }
19698
19806
  addDays(date, amount) {
19699
19807
  return addDays(date, amount);
19700
19808
  }
@@ -19702,7 +19810,7 @@ class VuetifyDateAdapter {
19702
19810
  return addMonths(date, amount);
19703
19811
  }
19704
19812
  getWeekArray(date) {
19705
- return getWeekArray(date);
19813
+ return getWeekArray(date, this.locale);
19706
19814
  }
19707
19815
  startOfMonth(date) {
19708
19816
  return startOfMonth(date);
@@ -19725,6 +19833,9 @@ class VuetifyDateAdapter {
19725
19833
  isAfter(date, comparing) {
19726
19834
  return isAfter(date, comparing);
19727
19835
  }
19836
+ isBefore(date, comparing) {
19837
+ return !isAfter(date, comparing) && !isEqual(date, comparing);
19838
+ }
19728
19839
  isSameDay(date, comparing) {
19729
19840
  return isSameDay(date, comparing);
19730
19841
  }
@@ -19737,9 +19848,6 @@ class VuetifyDateAdapter {
19737
19848
  getDiff(date, comparing, unit) {
19738
19849
  return getDiff(date, comparing, unit);
19739
19850
  }
19740
- getWeek(date) {
19741
- return getWeek(date);
19742
- }
19743
19851
  getWeekdays() {
19744
19852
  return getWeekdays(this.locale);
19745
19853
  }
@@ -19763,9 +19871,52 @@ class VuetifyDateAdapter {
19763
19871
 
19764
19872
  const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
19765
19873
  function createDate(options) {
19766
- return options ?? {
19767
- adapter: VuetifyDateAdapter
19768
- };
19874
+ return mergeDeep({
19875
+ adapter: VuetifyDateAdapter,
19876
+ locale: {
19877
+ af: 'af-ZA',
19878
+ // ar: '', # not the same value for all variants
19879
+ bg: 'bg-BG',
19880
+ ca: 'ca-ES',
19881
+ ckb: '',
19882
+ cs: '',
19883
+ de: 'de-DE',
19884
+ el: 'el-GR',
19885
+ en: 'en-US',
19886
+ // es: '', # not the same value for all variants
19887
+ et: 'et-EE',
19888
+ fa: 'fa-IR',
19889
+ fi: 'fi-FI',
19890
+ // fr: '', #not the same value for all variants
19891
+ hr: 'hr-HR',
19892
+ hu: 'hu-HU',
19893
+ he: 'he-IL',
19894
+ id: 'id-ID',
19895
+ it: 'it-IT',
19896
+ ja: 'ja-JP',
19897
+ ko: 'ko-KR',
19898
+ lv: 'lv-LV',
19899
+ lt: 'lt-LT',
19900
+ nl: 'nl-NL',
19901
+ no: 'nn-NO',
19902
+ pl: 'pl-PL',
19903
+ pt: 'pt-PT',
19904
+ ro: 'ro-RO',
19905
+ ru: 'ru-RU',
19906
+ sk: 'sk-SK',
19907
+ sl: 'sl-SI',
19908
+ srCyrl: 'sr-SP',
19909
+ srLatn: 'sr-SP',
19910
+ sv: 'sv-SE',
19911
+ th: 'th-TH',
19912
+ tr: 'tr-TR',
19913
+ az: 'az-AZ',
19914
+ uk: 'uk-UA',
19915
+ vi: 'vi-VN',
19916
+ zhHans: 'zh-CN',
19917
+ zhHant: 'zh-TW'
19918
+ }
19919
+ }, options);
19769
19920
  }
19770
19921
 
19771
19922
  // Composables
@@ -19853,7 +20004,7 @@ function createVuetify$1() {
19853
20004
  date
19854
20005
  };
19855
20006
  }
19856
- const version$1 = "3.3.2";
20007
+ const version$1 = "3.3.4";
19857
20008
  createVuetify$1.version = version$1;
19858
20009
 
19859
20010
  // Vue's inject() can only be used in setup
@@ -19878,7 +20029,7 @@ const createVuetify = function () {
19878
20029
  ...options
19879
20030
  });
19880
20031
  };
19881
- const version = "3.3.2";
20032
+ const version = "3.3.4";
19882
20033
  createVuetify.version = version;
19883
20034
 
19884
20035
  export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };