@vuetify/nightly 3.8.1-master.2025-04-15 → 3.8.1-next.2025-04-15

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 (215) hide show
  1. package/CHANGELOG.md +33 -32
  2. package/dist/json/attributes.json +3374 -3374
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +218 -218
  5. package/dist/json/web-types.json +5962 -5922
  6. package/dist/vuetify-labs.cjs +341 -179
  7. package/dist/vuetify-labs.css +26033 -27763
  8. package/dist/vuetify-labs.d.ts +253 -656
  9. package/dist/vuetify-labs.esm.js +342 -180
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +341 -179
  12. package/dist/vuetify-labs.min.css +3 -4
  13. package/dist/vuetify.cjs +323 -155
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +22790 -24516
  16. package/dist/vuetify.d.ts +278 -681
  17. package/dist/vuetify.esm.js +324 -156
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +323 -155
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +3 -4
  22. package/dist/vuetify.min.js +1152 -1161
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAlert/VAlert.css +207 -215
  25. package/lib/components/VApp/VApp.css +16 -15
  26. package/lib/components/VAppBar/VAppBar.css +14 -12
  27. package/lib/components/VAutocomplete/VAutocomplete.css +85 -84
  28. package/lib/components/VAutocomplete/VAutocomplete.d.ts +18 -9
  29. package/lib/components/VAutocomplete/VAutocomplete.js +6 -3
  30. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  31. package/lib/components/VAvatar/VAvatar.css +108 -106
  32. package/lib/components/VBadge/VBadge.css +77 -77
  33. package/lib/components/VBanner/VBanner.css +161 -166
  34. package/lib/components/VBottomNavigation/VBottomNavigation.css +65 -64
  35. package/lib/components/VBottomSheet/VBottomSheet.css +34 -31
  36. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +54 -57
  37. package/lib/components/VBtn/VBtn.css +385 -408
  38. package/lib/components/VBtn/VBtn.sass +4 -4
  39. package/lib/components/VBtnGroup/VBtnGroup.css +63 -64
  40. package/lib/components/VBtnToggle/VBtnToggle.css +16 -14
  41. package/lib/components/VCard/VCard.css +294 -302
  42. package/lib/components/VCarousel/VCarousel.css +63 -65
  43. package/lib/components/VCarousel/VCarousel.sass +1 -1
  44. package/lib/components/VCheckbox/VCheckbox.css +7 -5
  45. package/lib/components/VChip/VChip.css +378 -411
  46. package/lib/components/VChipGroup/VChipGroup.css +19 -18
  47. package/lib/components/VCode/VCode.css +10 -11
  48. package/lib/components/VCode/VCode.sass +0 -3
  49. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  50. package/lib/components/VColorPicker/VColorPickerCanvas.css +24 -22
  51. package/lib/components/VColorPicker/VColorPickerEdit.css +29 -28
  52. package/lib/components/VColorPicker/VColorPickerPreview.css +69 -67
  53. package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -2
  54. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  55. package/lib/components/VCombobox/VCombobox.css +85 -84
  56. package/lib/components/VCombobox/VCombobox.d.ts +18 -9
  57. package/lib/components/VCombobox/VCombobox.js +6 -3
  58. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  59. package/lib/components/VCounter/VCounter.css +7 -5
  60. package/lib/components/VDataTable/VDataTable.css +189 -186
  61. package/lib/components/VDataTable/VDataTable.sass +21 -11
  62. package/lib/components/VDataTable/VDataTableFooter.css +33 -31
  63. package/lib/components/VDatePicker/VDatePicker.css +8 -6
  64. package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
  65. package/lib/components/VDatePicker/VDatePickerControls.css +55 -57
  66. package/lib/components/VDatePicker/VDatePickerHeader.css +56 -60
  67. package/lib/components/VDatePicker/VDatePickerMonth.css +51 -55
  68. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
  69. package/lib/components/VDatePicker/VDatePickerMonths.css +20 -19
  70. package/lib/components/VDatePicker/VDatePickerYears.css +16 -15
  71. package/lib/components/VDialog/VDialog.css +98 -98
  72. package/lib/components/VDivider/VDivider.css +52 -52
  73. package/lib/components/VEmptyState/VEmptyState.css +62 -67
  74. package/lib/components/VExpansionPanel/VExpansionPanel.css +203 -209
  75. package/lib/components/VExpansionPanel/VExpansionPanel.sass +27 -25
  76. package/lib/components/VFab/VFab.css +78 -73
  77. package/lib/components/VFab/VFab.sass +5 -4
  78. package/lib/components/VField/VField.css +548 -589
  79. package/lib/components/VFileInput/VFileInput.css +30 -28
  80. package/lib/components/VFooter/VFooter.css +38 -36
  81. package/lib/components/VForm/VForm.d.ts +111 -531
  82. package/lib/components/VForm/VForm.js +11 -1
  83. package/lib/components/VForm/VForm.js.map +1 -1
  84. package/lib/components/VGrid/VGrid.css +565 -592
  85. package/lib/components/VIcon/VIcon.css +52 -53
  86. package/lib/components/VImg/VImg.css +50 -51
  87. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +36 -37
  88. package/lib/components/VInput/VInput.css +136 -147
  89. package/lib/components/VItemGroup/VItemGroup.css +7 -5
  90. package/lib/components/VKbd/VKbd.css +13 -11
  91. package/lib/components/VLabel/VLabel.css +16 -15
  92. package/lib/components/VLayout/VLayout.css +10 -8
  93. package/lib/components/VLayout/VLayoutItem.css +8 -7
  94. package/lib/components/VList/VList.css +104 -108
  95. package/lib/components/VList/VList.sass +1 -1
  96. package/lib/components/VList/VListItem.css +440 -452
  97. package/lib/components/VList/VListItem.sass +2 -1
  98. package/lib/components/VLocaleProvider/VLocaleProvider.css +4 -2
  99. package/lib/components/VMain/VMain.css +32 -30
  100. package/lib/components/VMenu/VMenu.css +21 -19
  101. package/lib/components/VMessages/VMessages.css +17 -15
  102. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +102 -104
  103. package/lib/components/VNumberInput/VNumberInput.css +48 -46
  104. package/lib/components/VOtpInput/VOtpInput.css +56 -58
  105. package/lib/components/VOverlay/VOverlay.css +61 -64
  106. package/lib/components/VOverlay/VOverlay.sass +14 -13
  107. package/lib/components/VPagination/VPagination.css +10 -8
  108. package/lib/components/VParallax/VParallax.css +8 -6
  109. package/lib/components/VProgressCircular/VProgressCircular.css +95 -101
  110. package/lib/components/VProgressLinear/VProgressLinear.css +209 -222
  111. package/lib/components/VRadioGroup/VRadioGroup.css +14 -12
  112. package/lib/components/VRating/VRating.css +52 -53
  113. package/lib/components/VResponsive/VResponsive.css +25 -26
  114. package/lib/components/VSelect/VSelect.css +53 -51
  115. package/lib/components/VSelect/VSelect.d.ts +18 -9
  116. package/lib/components/VSelect/VSelect.js +6 -3
  117. package/lib/components/VSelect/VSelect.js.map +1 -1
  118. package/lib/components/VSelectionControl/VSelectionControl.css +98 -100
  119. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +10 -8
  120. package/lib/components/VSheet/VSheet.css +38 -36
  121. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +225 -224
  122. package/lib/components/VSlideGroup/VSlideGroup.css +53 -55
  123. package/lib/components/VSlider/VSlider.css +53 -57
  124. package/lib/components/VSlider/VSliderThumb.css +142 -153
  125. package/lib/components/VSlider/VSliderTrack.css +155 -174
  126. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  127. package/lib/components/VSpeedDial/VSpeedDial.css +43 -41
  128. package/lib/components/VStepper/VStepper.css +55 -56
  129. package/lib/components/VStepper/VStepperItem.css +112 -115
  130. package/lib/components/VSwitch/VSwitch.css +129 -139
  131. package/lib/components/VSystemBar/VSystemBar.css +45 -43
  132. package/lib/components/VTable/VTable.css +140 -141
  133. package/lib/components/VTable/VTable.sass +4 -2
  134. package/lib/components/VTabs/VTab.css +30 -29
  135. package/lib/components/VTabs/VTabs.css +59 -65
  136. package/lib/components/VTextField/VTextField.css +77 -85
  137. package/lib/components/VTextarea/VTextarea.css +48 -40
  138. package/lib/components/VTextarea/VTextarea.sass +4 -2
  139. package/lib/components/VThemeProvider/VThemeProvider.css +5 -3
  140. package/lib/components/VTimeline/VTimeline.css +388 -427
  141. package/lib/components/VToolbar/VToolbar.css +137 -144
  142. package/lib/components/VTooltip/VTooltip.css +27 -23
  143. package/lib/components/VTooltip/VTooltip.sass +8 -6
  144. package/lib/components/VVirtualScroll/VVirtualScroll.css +11 -9
  145. package/lib/components/VWindow/VWindow.css +73 -70
  146. package/lib/composables/calendar.d.ts +2 -3
  147. package/lib/composables/calendar.js +7 -5
  148. package/lib/composables/calendar.js.map +1 -1
  149. package/lib/composables/date/DateAdapter.d.ts +0 -1
  150. package/lib/composables/date/DateAdapter.js.map +1 -1
  151. package/lib/composables/date/adapters/vuetify.d.ts +0 -1
  152. package/lib/composables/date/adapters/vuetify.js +160 -101
  153. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  154. package/lib/composables/date/date.d.ts +1 -1
  155. package/lib/composables/date/date.js +20 -0
  156. package/lib/composables/date/date.js.map +1 -1
  157. package/lib/composables/filter.js +1 -2
  158. package/lib/composables/filter.js.map +1 -1
  159. package/lib/composables/theme.d.ts +6 -1
  160. package/lib/composables/theme.js +98 -30
  161. package/lib/composables/theme.js.map +1 -1
  162. package/lib/composables/validation.js +0 -5
  163. package/lib/composables/validation.js.map +1 -1
  164. package/lib/composables/virtual.js +6 -1
  165. package/lib/composables/virtual.js.map +1 -1
  166. package/lib/directives/ripple/VRipple.css +38 -36
  167. package/lib/entry-bundler.d.ts +0 -1
  168. package/lib/entry-bundler.js +1 -1
  169. package/lib/entry-bundler.js.map +1 -1
  170. package/lib/framework.d.ts +80 -78
  171. package/lib/framework.js +1 -1
  172. package/lib/framework.js.map +1 -1
  173. package/lib/labs/VCalendar/VCalendar.css +219 -225
  174. package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
  175. package/lib/labs/VCalendar/VCalendarDay.css +33 -32
  176. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  177. package/lib/labs/VCalendar/VCalendarInterval.css +43 -42
  178. package/lib/labs/VCalendar/VCalendarInterval.js +19 -25
  179. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  180. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +7 -5
  181. package/lib/labs/VCalendar/VCalendarMonthDay.css +61 -58
  182. package/lib/labs/VCalendar/VCalendarMonthDay.sass +3 -2
  183. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  184. package/lib/labs/VFileUpload/VFileUpload.css +74 -77
  185. package/lib/labs/VIconBtn/VIconBtn.css +162 -164
  186. package/lib/labs/VPicker/VPicker.css +58 -63
  187. package/lib/labs/VTimePicker/VTimePicker.css +9 -7
  188. package/lib/labs/VTimePicker/VTimePickerClock.css +126 -129
  189. package/lib/labs/VTimePicker/VTimePickerControls.css +102 -103
  190. package/lib/labs/VTreeview/VTreeviewItem.css +30 -28
  191. package/lib/labs/VTreeview/VTreeviewItem.sass +3 -2
  192. package/lib/labs/entry-bundler.d.ts +0 -1
  193. package/lib/styles/elements/_global.sass +1 -1
  194. package/lib/styles/generic/_colors.scss +3 -3
  195. package/lib/styles/generic/_layers.scss +13 -1
  196. package/lib/styles/generic/_reset.scss +0 -1
  197. package/lib/styles/generic/_transitions.scss +32 -32
  198. package/lib/styles/main.css +14668 -16143
  199. package/lib/styles/settings/_utilities.scss +0 -5
  200. package/lib/styles/settings/_variables.scss +1 -2
  201. package/lib/styles/tools/_border.sass +4 -4
  202. package/lib/styles/tools/_display.sass +0 -10
  203. package/lib/styles/tools/_elevation.sass +2 -2
  204. package/lib/styles/tools/_index.sass +0 -2
  205. package/lib/styles/tools/_layer.scss +4 -2
  206. package/lib/styles/tools/_position.sass +2 -2
  207. package/lib/styles/tools/_rounded.sass +2 -2
  208. package/lib/styles/tools/_utilities.sass +1 -5
  209. package/lib/styles/utilities/_elevation.scss +1 -1
  210. package/lib/util/globals.d.ts +1 -0
  211. package/lib/util/globals.js +1 -0
  212. package/lib/util/globals.js.map +1 -1
  213. package/package.json +45 -46
  214. package/lib/styles/tools/_bootable.sass +0 -3
  215. package/lib/styles/tools/_radius.sass +0 -10
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-master.2025-04-15
2
+ * Vuetify v3.8.1-next.2025-04-15
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -85,6 +85,7 @@
85
85
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
86
86
  const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
87
87
  const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
88
+ const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
88
89
 
89
90
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
90
91
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -2284,7 +2285,8 @@
2284
2285
  }, 'theme');
2285
2286
  function genDefaults$2() {
2286
2287
  return {
2287
- defaultTheme: 'light',
2288
+ defaultTheme: 'system',
2289
+ prefix: 'v-',
2288
2290
  variations: {
2289
2291
  colors: [],
2290
2292
  lighten: 0,
@@ -2335,8 +2337,8 @@
2335
2337
  surface: '#212121',
2336
2338
  'surface-bright': '#ccbfd6',
2337
2339
  'surface-light': '#424242',
2338
- 'surface-variant': '#c8c8c8',
2339
- 'on-surface-variant': '#000000',
2340
+ 'surface-variant': '#a3a3a3',
2341
+ 'on-surface-variant': '#424242',
2340
2342
  primary: '#2196F3',
2341
2343
  'primary-darken-1': '#277CC1',
2342
2344
  secondary: '#54B6B2',
@@ -2366,7 +2368,10 @@
2366
2368
  }
2367
2369
  }
2368
2370
  },
2369
- stylesheetId: 'vuetify-theme-stylesheet'
2371
+ stylesheetId: 'vuetify-theme-stylesheet',
2372
+ scoped: false,
2373
+ unimportant: true,
2374
+ utilities: true
2370
2375
  };
2371
2376
  }
2372
2377
  function parseThemeOptions() {
@@ -2389,21 +2394,21 @@
2389
2394
  function createCssClass(lines, selector, content, scope) {
2390
2395
  lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
2391
2396
  }
2392
- function genCssVariables(theme) {
2397
+ function genCssVariables(theme, prefix) {
2393
2398
  const lightOverlay = theme.dark ? 2 : 1;
2394
2399
  const darkOverlay = theme.dark ? 1 : 2;
2395
2400
  const variables = [];
2396
2401
  for (const [key, value] of Object.entries(theme.colors)) {
2397
2402
  const rgb = parseColor(value);
2398
- variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2403
+ variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2399
2404
  if (!key.startsWith('on-')) {
2400
- variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2405
+ variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2401
2406
  }
2402
2407
  }
2403
2408
  for (const [key, value] of Object.entries(theme.variables)) {
2404
2409
  const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
2405
2410
  const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
2406
- variables.push(`--v-${key}: ${rgb ?? value}`);
2411
+ variables.push(`--${prefix}${key}: ${rgb ?? value}`);
2407
2412
  }
2408
2413
  return variables;
2409
2414
  }
@@ -2447,7 +2452,8 @@
2447
2452
  const scopeSelector = `:where(${scope})`;
2448
2453
  return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
2449
2454
  }
2450
- function upsertStyles(styleEl, styles) {
2455
+ function upsertStyles(id, cspNonce, styles) {
2456
+ const styleEl = getOrCreateStyleElement(id, cspNonce);
2451
2457
  if (!styleEl) return;
2452
2458
  styleEl.innerHTML = styles;
2453
2459
  }
@@ -2467,8 +2473,17 @@
2467
2473
  // Composables
2468
2474
  function createTheme(options) {
2469
2475
  const parsedOptions = parseThemeOptions(options);
2470
- const name = vue.shallowRef(parsedOptions.defaultTheme);
2476
+ const _name = vue.shallowRef(parsedOptions.defaultTheme);
2471
2477
  const themes = vue.ref(parsedOptions.themes);
2478
+ const systemName = vue.shallowRef('light');
2479
+ const name = vue.computed({
2480
+ get() {
2481
+ return _name.value === 'system' ? systemName.value : _name.value;
2482
+ },
2483
+ set(val) {
2484
+ _name.value = val;
2485
+ }
2486
+ });
2472
2487
  const computedThemes = vue.computed(() => {
2473
2488
  const acc = {};
2474
2489
  for (const [name, original] of Object.entries(themes.value)) {
@@ -2489,28 +2504,49 @@
2489
2504
  const current = vue.computed(() => computedThemes.value[name.value]);
2490
2505
  const styles = vue.computed(() => {
2491
2506
  const lines = [];
2507
+ const important = parsedOptions.unimportant ? '' : ' !important';
2508
+ const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
2492
2509
  if (current.value?.dark) {
2493
2510
  createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
2494
2511
  }
2495
- createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
2512
+ createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
2496
2513
  for (const [themeName, theme] of Object.entries(computedThemes.value)) {
2497
- createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
2498
- }
2499
- const bgLines = [];
2500
- const fgLines = [];
2501
- const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2502
- for (const key of colors) {
2503
- if (key.startsWith('on-')) {
2504
- createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2505
- } else {
2506
- createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`], parsedOptions.scope);
2507
- createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2508
- createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
2514
+ createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
2515
+ }
2516
+ if (parsedOptions.utilities) {
2517
+ const bgLines = [];
2518
+ const fgLines = [];
2519
+ const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2520
+ for (const key of colors) {
2521
+ if (key.startsWith('on-')) {
2522
+ createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
2523
+ } else {
2524
+ createCssClass(bgLines, `.${scoped}bg-${key}`, [`--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`, `color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))${important}`], parsedOptions.scope);
2525
+ createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
2526
+ createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
2527
+ }
2509
2528
  }
2529
+ lines.push(...bgLines, ...fgLines);
2510
2530
  }
2511
- lines.push(...bgLines, ...fgLines);
2512
- return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
2531
+ return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2513
2532
  });
2533
+ const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
2534
+ const themeNames = vue.computed(() => Object.keys(computedThemes.value));
2535
+ if (SUPPORTS_MATCH_MEDIA) {
2536
+ const media = window.matchMedia('(prefers-color-scheme: dark)');
2537
+ function updateSystemName() {
2538
+ systemName.value = media.matches ? 'dark' : 'light';
2539
+ }
2540
+ updateSystemName();
2541
+ media.addEventListener('change', updateSystemName, {
2542
+ passive: true
2543
+ });
2544
+ if (vue.getCurrentScope()) {
2545
+ vue.onScopeDispose(() => {
2546
+ media.removeEventListener('change', updateSystemName);
2547
+ });
2548
+ }
2549
+ }
2514
2550
  function install(app) {
2515
2551
  if (parsedOptions.isDisabled) return;
2516
2552
  const head = app._context.provides.usehead;
@@ -2548,22 +2584,55 @@
2548
2584
  updateStyles();
2549
2585
  }
2550
2586
  function updateStyles() {
2551
- upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
2587
+ upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
2552
2588
  }
2553
2589
  }
2554
2590
  }
2555
- const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
2591
+ function change(themeName) {
2592
+ if (!themeNames.value.includes(themeName)) {
2593
+ consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
2594
+ return;
2595
+ }
2596
+ name.value = themeName;
2597
+ }
2598
+ function cycle() {
2599
+ let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
2600
+ const currentIndex = themeArray.indexOf(name.value);
2601
+ const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
2602
+ change(themeArray[nextIndex]);
2603
+ }
2604
+ function toggle() {
2605
+ let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
2606
+ cycle(themeArray);
2607
+ }
2608
+ const globalName = new Proxy(name, {
2609
+ get(target, prop) {
2610
+ return target[prop];
2611
+ },
2612
+ set(target, prop, val) {
2613
+ if (prop === 'value') {
2614
+ deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
2615
+ }
2616
+ // @ts-expect-error
2617
+ target[prop] = val;
2618
+ return true;
2619
+ }
2620
+ });
2556
2621
  return {
2557
2622
  install,
2623
+ change,
2624
+ cycle,
2625
+ toggle,
2558
2626
  isDisabled: parsedOptions.isDisabled,
2559
2627
  name,
2560
2628
  themes,
2561
2629
  current,
2562
2630
  computedThemes,
2631
+ prefix: parsedOptions.prefix,
2563
2632
  themeClasses,
2564
2633
  styles,
2565
2634
  global: {
2566
- name,
2635
+ name: globalName,
2567
2636
  current
2568
2637
  }
2569
2638
  };
@@ -2574,7 +2643,7 @@
2574
2643
  if (!theme) throw new Error('Could not find Vuetify theme injection');
2575
2644
  const name = vue.computed(() => props.theme ?? theme.name.value);
2576
2645
  const current = vue.computed(() => theme.themes.value[name.value]);
2577
- const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
2646
+ const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
2578
2647
  const newTheme = {
2579
2648
  ...theme,
2580
2649
  name,
@@ -6898,11 +6967,6 @@
6898
6967
  }
6899
6968
  async function validate() {
6900
6969
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6901
- if (props.disabled || props.readonly) {
6902
- internalErrorMessages.value = [];
6903
- isValidating.value = false;
6904
- return internalErrorMessages.value;
6905
- }
6906
6970
  const results = [];
6907
6971
  isValidating.value = true;
6908
6972
  for (const rule of props.rules) {
@@ -12312,7 +12376,12 @@
12312
12376
  }
12313
12377
  function calculateOffset(index) {
12314
12378
  index = clamp(index, 0, items.value.length - 1);
12315
- return offsets[index] || 0;
12379
+ const whole = Math.floor(index);
12380
+ const fraction = index % 1;
12381
+ const next = whole + 1;
12382
+ const wholeOffset = offsets[whole] || 0;
12383
+ const nextOffset = offsets[next] || wholeOffset;
12384
+ return wholeOffset + (nextOffset - wholeOffset) * fraction;
12316
12385
  }
12317
12386
  function calculateIndex(scrollTop) {
12318
12387
  return binaryClosest(offsets, scrollTop);
@@ -12941,7 +13010,8 @@
12941
13010
  onClick: () => select(item, null)
12942
13011
  });
12943
13012
  return slots.item?.({
12944
- item,
13013
+ item: item.raw,
13014
+ internalItem: item,
12945
13015
  index,
12946
13016
  props: itemProps
12947
13017
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -12989,11 +13059,13 @@
12989
13059
  };
12990
13060
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
12991
13061
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
12992
- item,
13062
+ item: item.raw,
13063
+ internalItem: item,
12993
13064
  index,
12994
13065
  props: slotProps
12995
13066
  }) : slots.selection({
12996
- item,
13067
+ item: item.raw,
13068
+ internalItem: item,
12997
13069
  index
12998
13070
  })) : undefined;
12999
13071
  if (hasSlot && !slotContent) return undefined;
@@ -13059,7 +13131,6 @@
13059
13131
  // Composables
13060
13132
  const defaultFilter = (value, query, item) => {
13061
13133
  if (value == null || query == null) return -1;
13062
- if (!query.length) return 0;
13063
13134
  value = value.toString().toLocaleLowerCase();
13064
13135
  query = query.toString().toLocaleLowerCase();
13065
13136
  const result = [];
@@ -13072,7 +13143,7 @@
13072
13143
  };
13073
13144
  function normaliseMatch(match, query) {
13074
13145
  if (match == null || typeof match === 'boolean' || match === -1) return;
13075
- if (typeof match === 'number') return [[match, match + query.length]];
13146
+ if (typeof match === 'number') return [[match, query.length]];
13076
13147
  if (Array.isArray(match[0])) return match;
13077
13148
  return [match];
13078
13149
  }
@@ -13540,7 +13611,8 @@
13540
13611
  onClick: () => select(item, null)
13541
13612
  });
13542
13613
  return slots.item?.({
13543
- item,
13614
+ item: item.raw,
13615
+ internalItem: item,
13544
13616
  index,
13545
13617
  props: itemProps
13546
13618
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13591,11 +13663,13 @@
13591
13663
  };
13592
13664
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13593
13665
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13594
- item,
13666
+ item: item.raw,
13667
+ internalItem: item,
13595
13668
  index,
13596
13669
  props: slotProps
13597
13670
  }) : slots.selection({
13598
- item,
13671
+ item: item.raw,
13672
+ internalItem: item,
13599
13673
  index
13600
13674
  })) : undefined;
13601
13675
  if (hasSlot && !slotContent) return undefined;
@@ -16987,81 +17061,165 @@
16987
17061
 
16988
17062
  // Types
16989
17063
 
16990
- function weekInfo(locale) {
16991
- // https://simplelocalize.io/data/locales/
16992
- // then `new Intl.Locale(...).getWeekInfo()`
16993
- const code = locale.slice(-2).toUpperCase();
16994
- switch (true) {
16995
- case locale === 'GB-alt-variant':
16996
- {
16997
- return {
16998
- firstDay: 0,
16999
- firstWeekSize: 4
17000
- };
17001
- }
17002
- case locale === '001':
17003
- {
17004
- return {
17005
- firstDay: 1,
17006
- firstWeekSize: 1
17007
- };
17008
- }
17009
- case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17010
- 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
17011
- VE VI WS YE ZA ZW`.includes(code):
17012
- {
17013
- return {
17014
- firstDay: 0,
17015
- firstWeekSize: 1
17016
- };
17017
- }
17018
- case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17019
- MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17020
- {
17021
- return {
17022
- firstDay: 1,
17023
- firstWeekSize: 1
17024
- };
17025
- }
17026
- case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17027
- IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17028
- {
17029
- return {
17030
- firstDay: 1,
17031
- firstWeekSize: 4
17032
- };
17033
- }
17034
- case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17035
- {
17036
- return {
17037
- firstDay: 6,
17038
- firstWeekSize: 1
17039
- };
17040
- }
17041
- case code === 'MV':
17042
- {
17043
- return {
17044
- firstDay: 5,
17045
- firstWeekSize: 1
17046
- };
17047
- }
17048
- case code === 'PT':
17049
- {
17050
- return {
17051
- firstDay: 0,
17052
- firstWeekSize: 4
17053
- };
17054
- }
17055
- default:
17056
- return null;
17057
- }
17058
- }
17064
+ const firstDay = {
17065
+ '001': 1,
17066
+ AD: 1,
17067
+ AE: 6,
17068
+ AF: 6,
17069
+ AG: 0,
17070
+ AI: 1,
17071
+ AL: 1,
17072
+ AM: 1,
17073
+ AN: 1,
17074
+ AR: 1,
17075
+ AS: 0,
17076
+ AT: 1,
17077
+ AU: 1,
17078
+ AX: 1,
17079
+ AZ: 1,
17080
+ BA: 1,
17081
+ BD: 0,
17082
+ BE: 1,
17083
+ BG: 1,
17084
+ BH: 6,
17085
+ BM: 1,
17086
+ BN: 1,
17087
+ BR: 0,
17088
+ BS: 0,
17089
+ BT: 0,
17090
+ BW: 0,
17091
+ BY: 1,
17092
+ BZ: 0,
17093
+ CA: 0,
17094
+ CH: 1,
17095
+ CL: 1,
17096
+ CM: 1,
17097
+ CN: 1,
17098
+ CO: 0,
17099
+ CR: 1,
17100
+ CY: 1,
17101
+ CZ: 1,
17102
+ DE: 1,
17103
+ DJ: 6,
17104
+ DK: 1,
17105
+ DM: 0,
17106
+ DO: 0,
17107
+ DZ: 6,
17108
+ EC: 1,
17109
+ EE: 1,
17110
+ EG: 6,
17111
+ ES: 1,
17112
+ ET: 0,
17113
+ FI: 1,
17114
+ FJ: 1,
17115
+ FO: 1,
17116
+ FR: 1,
17117
+ GB: 1,
17118
+ 'GB-alt-variant': 0,
17119
+ GE: 1,
17120
+ GF: 1,
17121
+ GP: 1,
17122
+ GR: 1,
17123
+ GT: 0,
17124
+ GU: 0,
17125
+ HK: 0,
17126
+ HN: 0,
17127
+ HR: 1,
17128
+ HU: 1,
17129
+ ID: 0,
17130
+ IE: 1,
17131
+ IL: 0,
17132
+ IN: 0,
17133
+ IQ: 6,
17134
+ IR: 6,
17135
+ IS: 1,
17136
+ IT: 1,
17137
+ JM: 0,
17138
+ JO: 6,
17139
+ JP: 0,
17140
+ KE: 0,
17141
+ KG: 1,
17142
+ KH: 0,
17143
+ KR: 0,
17144
+ KW: 6,
17145
+ KZ: 1,
17146
+ LA: 0,
17147
+ LB: 1,
17148
+ LI: 1,
17149
+ LK: 1,
17150
+ LT: 1,
17151
+ LU: 1,
17152
+ LV: 1,
17153
+ LY: 6,
17154
+ MC: 1,
17155
+ MD: 1,
17156
+ ME: 1,
17157
+ MH: 0,
17158
+ MK: 1,
17159
+ MM: 0,
17160
+ MN: 1,
17161
+ MO: 0,
17162
+ MQ: 1,
17163
+ MT: 0,
17164
+ MV: 5,
17165
+ MX: 0,
17166
+ MY: 1,
17167
+ MZ: 0,
17168
+ NI: 0,
17169
+ NL: 1,
17170
+ NO: 1,
17171
+ NP: 0,
17172
+ NZ: 1,
17173
+ OM: 6,
17174
+ PA: 0,
17175
+ PE: 0,
17176
+ PH: 0,
17177
+ PK: 0,
17178
+ PL: 1,
17179
+ PR: 0,
17180
+ PT: 0,
17181
+ PY: 0,
17182
+ QA: 6,
17183
+ RE: 1,
17184
+ RO: 1,
17185
+ RS: 1,
17186
+ RU: 1,
17187
+ SA: 0,
17188
+ SD: 6,
17189
+ SE: 1,
17190
+ SG: 0,
17191
+ SI: 1,
17192
+ SK: 1,
17193
+ SM: 1,
17194
+ SV: 0,
17195
+ SY: 6,
17196
+ TH: 0,
17197
+ TJ: 1,
17198
+ TM: 1,
17199
+ TR: 1,
17200
+ TT: 0,
17201
+ TW: 0,
17202
+ UA: 1,
17203
+ UM: 0,
17204
+ US: 0,
17205
+ UY: 1,
17206
+ UZ: 1,
17207
+ VA: 1,
17208
+ VE: 0,
17209
+ VI: 0,
17210
+ VN: 1,
17211
+ WS: 0,
17212
+ XK: 1,
17213
+ YE: 0,
17214
+ ZA: 0,
17215
+ ZW: 0
17216
+ };
17059
17217
  function getWeekArray(date, locale, firstDayOfWeek) {
17060
17218
  const weeks = [];
17061
17219
  let currentWeek = [];
17062
17220
  const firstDayOfMonth = startOfMonth(date);
17063
17221
  const lastDayOfMonth = endOfMonth(date);
17064
- const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17222
+ const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17065
17223
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17066
17224
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17067
17225
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17092,7 +17250,7 @@
17092
17250
  return weeks;
17093
17251
  }
17094
17252
  function startOfWeek(date, locale, firstDayOfWeek) {
17095
- const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17253
+ const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17096
17254
  const d = new Date(date);
17097
17255
  while (d.getDay() !== day) {
17098
17256
  d.setDate(d.getDate() - 1);
@@ -17101,7 +17259,7 @@
17101
17259
  }
17102
17260
  function endOfWeek(date, locale) {
17103
17261
  const d = new Date(date);
17104
- const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17262
+ const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17105
17263
  while (d.getDay() !== lastDay) {
17106
17264
  d.setDate(d.getDate() + 1);
17107
17265
  }
@@ -17136,7 +17294,7 @@
17136
17294
  }
17137
17295
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17138
17296
  function getWeekdays(locale, firstDayOfWeek) {
17139
- const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17297
+ const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17140
17298
  return createRange(7).map(i => {
17141
17299
  const weekday = new Date(sundayJanuarySecond2000);
17142
17300
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17384,24 +17542,6 @@
17384
17542
  function getMonth(date) {
17385
17543
  return date.getMonth();
17386
17544
  }
17387
- function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17388
- const weekInfoFromLocale = weekInfo(locale);
17389
- const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17390
- const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17391
- function firstWeekSize(year) {
17392
- const yearStart = new Date(year, 0, 1);
17393
- return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17394
- }
17395
- let year = getYear(date);
17396
- const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17397
- if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17398
- year++;
17399
- }
17400
- const yearStart = new Date(year, 0, 1);
17401
- const size = firstWeekSize(year);
17402
- const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17403
- return 1 + getDiff(date, d1w1, 'weeks');
17404
- }
17405
17545
  function getDate(date) {
17406
17546
  return date.getDate();
17407
17547
  }
@@ -17541,12 +17681,10 @@
17541
17681
  return addMonths(date, amount);
17542
17682
  }
17543
17683
  getWeekArray(date, firstDayOfWeek) {
17544
- const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17545
- return getWeekArray(date, this.locale, firstDay);
17684
+ return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17546
17685
  }
17547
17686
  startOfWeek(date, firstDayOfWeek) {
17548
- const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17549
- return startOfWeek(date, this.locale, firstDay);
17687
+ return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17550
17688
  }
17551
17689
  endOfWeek(date) {
17552
17690
  return endOfWeek(date, this.locale);
@@ -17606,8 +17744,7 @@
17606
17744
  return getDiff(date, comparing, unit);
17607
17745
  }
17608
17746
  getWeekdays(firstDayOfWeek) {
17609
- const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17610
- return getWeekdays(this.locale, firstDay);
17747
+ return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17611
17748
  }
17612
17749
  getYear(date) {
17613
17750
  return getYear(date);
@@ -17615,10 +17752,6 @@
17615
17752
  getMonth(date) {
17616
17753
  return getMonth(date);
17617
17754
  }
17618
- getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17619
- const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17620
- return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17621
- }
17622
17755
  getDate(date) {
17623
17756
  return getDate(date);
17624
17757
  }
@@ -17722,6 +17855,26 @@
17722
17855
  return createInstance(options, locale);
17723
17856
  }
17724
17857
 
17858
+ // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
17859
+ function getWeek(adapter, value) {
17860
+ const date = adapter.toJsDate(value);
17861
+ let year = date.getFullYear();
17862
+ let d1w1 = new Date(year, 0, 1);
17863
+ if (date < d1w1) {
17864
+ year = year - 1;
17865
+ d1w1 = new Date(year, 0, 1);
17866
+ } else {
17867
+ const tv = new Date(year + 1, 0, 1);
17868
+ if (date >= tv) {
17869
+ year = year + 1;
17870
+ d1w1 = tv;
17871
+ }
17872
+ }
17873
+ const diffTime = Math.abs(date.getTime() - d1w1.getTime());
17874
+ const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
17875
+ return Math.floor(diffDays / 7) + 1;
17876
+ }
17877
+
17725
17878
  // Types
17726
17879
 
17727
17880
  const makeVColorPickerProps = propsFactory({
@@ -18268,7 +18421,8 @@
18268
18421
  onClick: () => select(item, null)
18269
18422
  });
18270
18423
  return slots.item?.({
18271
- item,
18424
+ item: item.raw,
18425
+ internalItem: item,
18272
18426
  index,
18273
18427
  props: itemProps
18274
18428
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -18319,11 +18473,13 @@
18319
18473
  };
18320
18474
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18321
18475
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18322
- item,
18476
+ item: item.raw,
18477
+ internalItem: item,
18323
18478
  index,
18324
18479
  props: slotProps
18325
18480
  }) : slots.selection({
18326
- item,
18481
+ item: item.raw,
18482
+ internalItem: item,
18327
18483
  index
18328
18484
  })) : undefined;
18329
18485
  if (hasSlot && !slotContent) return undefined;
@@ -21910,7 +22066,7 @@
21910
22066
  },
21911
22067
  firstDayOfWeek: {
21912
22068
  type: [Number, String],
21913
- default: undefined
22069
+ default: 0
21914
22070
  }
21915
22071
  }, 'calendar');
21916
22072
  function useCalendar(props) {
@@ -21933,12 +22089,14 @@
21933
22089
  return adapter.setMonth(date, value);
21934
22090
  }, v => adapter.getMonth(v));
21935
22091
  const weekDays = vue.computed(() => {
21936
- const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22092
+ const firstDayOfWeek = Number(props.firstDayOfWeek);
22093
+
21937
22094
  // Always generate all days, regardless of props.weekdays
21938
22095
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
21939
22096
  });
21940
22097
  const weeksInMonth = vue.computed(() => {
21941
- const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22098
+ const firstDayOfWeek = Number(props.firstDayOfWeek);
22099
+ const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
21942
22100
  const days = weeks.flat();
21943
22101
 
21944
22102
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22002,7 +22160,7 @@
22002
22160
  });
22003
22161
  const weekNumbers = vue.computed(() => {
22004
22162
  return weeksInMonth.value.map(week => {
22005
- return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22163
+ return week.length ? getWeek(adapter, week[0]) : null;
22006
22164
  });
22007
22165
  });
22008
22166
  function isDisabled(value) {
@@ -23491,7 +23649,17 @@
23491
23649
  "novalidate": true,
23492
23650
  "onReset": onReset,
23493
23651
  "onSubmit": onSubmit
23494
- }, [slots.default?.(form)]));
23652
+ }, [slots.default?.({
23653
+ errors: form.errors.value,
23654
+ isDisabled: form.isDisabled.value,
23655
+ isReadonly: form.isReadonly.value,
23656
+ isValidating: form.isValidating.value,
23657
+ isValid: form.isValid.value,
23658
+ items: form.items.value,
23659
+ validate: form.validate,
23660
+ reset: form.reset,
23661
+ resetValidation: form.resetValidation
23662
+ })]));
23495
23663
  return forwardRefs(form, formRef);
23496
23664
  }
23497
23665
  });
@@ -28550,43 +28718,37 @@
28550
28718
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28551
28719
  }, [vue.createVNode("div", {
28552
28720
  "class": "v-calendar-day__row-label"
28553
- }, [vue.createVNode(vue.resolveComponent("slot"), {
28721
+ }, [vue.createVNode("slot", {
28554
28722
  "name": "intervalFormat",
28555
28723
  "interval": interval.value
28556
- }, {
28557
- default: () => [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '']
28558
- })]), vue.createVNode("div", {
28724
+ }, [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : ''])]), vue.createVNode("div", {
28559
28725
  "class": "v-calendar-day__row-hairline"
28560
28726
  }, null), vue.createVNode("div", {
28561
28727
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28562
- }, [vue.createVNode(vue.resolveComponent("slot"), {
28728
+ }, [vue.createVNode("slot", {
28563
28729
  "name": "intervalBody",
28564
28730
  "interval": interval.value
28565
- }, {
28566
- default: () => [interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, {
28567
- "event": event,
28568
- "interval": interval.value,
28569
- "intervalDivisions": props.intervalDivisions,
28570
- "intervalDuration": props.intervalDuration,
28571
- "intervalHeight": props.intervalHeight
28572
- }, null))]
28573
- })])]) : vue.createVNode("div", {
28731
+ }, [interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, {
28732
+ "event": event,
28733
+ "interval": interval.value,
28734
+ "intervalDivisions": props.intervalDivisions,
28735
+ "intervalDuration": props.intervalDuration,
28736
+ "intervalHeight": props.intervalHeight
28737
+ }, null))])])]) : vue.createVNode("div", {
28574
28738
  "class": "v-calendar-day__row-without-label",
28575
28739
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28576
28740
  }, [vue.createVNode("div", {
28577
28741
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28578
- }, [vue.createVNode(vue.resolveComponent("slot"), {
28742
+ }, [vue.createVNode("slot", {
28579
28743
  "name": "intervalBody",
28580
28744
  "interval": interval.value
28581
- }, {
28582
- default: () => [interval.value.events?.filter(event => !event.allDay).map(event => vue.createVNode(VCalendarIntervalEvent, {
28583
- "event": event,
28584
- "interval": interval.value,
28585
- "intervalDivisions": props.intervalDivisions,
28586
- "intervalDuration": props.intervalDuration,
28587
- "intervalHeight": props.intervalHeight
28588
- }, null))]
28589
- })])]);
28745
+ }, [interval.value.events?.filter(event => !event.allDay).map(event => vue.createVNode(VCalendarIntervalEvent, {
28746
+ "event": event,
28747
+ "interval": interval.value,
28748
+ "intervalDivisions": props.intervalDivisions,
28749
+ "intervalDuration": props.intervalDuration,
28750
+ "intervalHeight": props.intervalHeight
28751
+ }, null))])])]);
28590
28752
  });
28591
28753
  return {
28592
28754
  interval
@@ -31495,7 +31657,7 @@
31495
31657
  };
31496
31658
  });
31497
31659
  }
31498
- const version$1 = "3.8.1-master.2025-04-15";
31660
+ const version$1 = "3.8.1-next.2025-04-15";
31499
31661
  createVuetify$1.version = version$1;
31500
31662
 
31501
31663
  // Vue's inject() can only be used in setup
@@ -31780,7 +31942,7 @@
31780
31942
 
31781
31943
  /* eslint-disable local-rules/sort-imports */
31782
31944
 
31783
- const version = "3.8.1-master.2025-04-15";
31945
+ const version = "3.8.1-next.2025-04-15";
31784
31946
 
31785
31947
  /* eslint-disable local-rules/sort-imports */
31786
31948