@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
package/dist/vuetify.js CHANGED
@@ -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
  */
@@ -14,6 +14,7 @@
14
14
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
15
15
  const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
16
16
  const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
17
+ const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
17
18
 
18
19
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
19
20
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -2757,7 +2758,8 @@
2757
2758
  }, 'theme');
2758
2759
  function genDefaults$1() {
2759
2760
  return {
2760
- defaultTheme: 'light',
2761
+ defaultTheme: 'system',
2762
+ prefix: 'v-',
2761
2763
  variations: {
2762
2764
  colors: [],
2763
2765
  lighten: 0,
@@ -2808,8 +2810,8 @@
2808
2810
  surface: '#212121',
2809
2811
  'surface-bright': '#ccbfd6',
2810
2812
  'surface-light': '#424242',
2811
- 'surface-variant': '#c8c8c8',
2812
- 'on-surface-variant': '#000000',
2813
+ 'surface-variant': '#a3a3a3',
2814
+ 'on-surface-variant': '#424242',
2813
2815
  primary: '#2196F3',
2814
2816
  'primary-darken-1': '#277CC1',
2815
2817
  secondary: '#54B6B2',
@@ -2839,7 +2841,10 @@
2839
2841
  }
2840
2842
  }
2841
2843
  },
2842
- stylesheetId: 'vuetify-theme-stylesheet'
2844
+ stylesheetId: 'vuetify-theme-stylesheet',
2845
+ scoped: false,
2846
+ unimportant: true,
2847
+ utilities: true
2843
2848
  };
2844
2849
  }
2845
2850
  function parseThemeOptions() {
@@ -2862,21 +2867,21 @@
2862
2867
  function createCssClass(lines, selector, content, scope) {
2863
2868
  lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
2864
2869
  }
2865
- function genCssVariables(theme) {
2870
+ function genCssVariables(theme, prefix) {
2866
2871
  const lightOverlay = theme.dark ? 2 : 1;
2867
2872
  const darkOverlay = theme.dark ? 1 : 2;
2868
2873
  const variables = [];
2869
2874
  for (const [key, value] of Object.entries(theme.colors)) {
2870
2875
  const rgb = parseColor(value);
2871
- variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2876
+ variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2872
2877
  if (!key.startsWith('on-')) {
2873
- variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2878
+ variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2874
2879
  }
2875
2880
  }
2876
2881
  for (const [key, value] of Object.entries(theme.variables)) {
2877
2882
  const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
2878
2883
  const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
2879
- variables.push(`--v-${key}: ${rgb ?? value}`);
2884
+ variables.push(`--${prefix}${key}: ${rgb ?? value}`);
2880
2885
  }
2881
2886
  return variables;
2882
2887
  }
@@ -2920,7 +2925,8 @@
2920
2925
  const scopeSelector = `:where(${scope})`;
2921
2926
  return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
2922
2927
  }
2923
- function upsertStyles(styleEl, styles) {
2928
+ function upsertStyles(id, cspNonce, styles) {
2929
+ const styleEl = getOrCreateStyleElement(id, cspNonce);
2924
2930
  if (!styleEl) return;
2925
2931
  styleEl.innerHTML = styles;
2926
2932
  }
@@ -2940,8 +2946,17 @@
2940
2946
  // Composables
2941
2947
  function createTheme(options) {
2942
2948
  const parsedOptions = parseThemeOptions(options);
2943
- const name = vue.shallowRef(parsedOptions.defaultTheme);
2949
+ const _name = vue.shallowRef(parsedOptions.defaultTheme);
2944
2950
  const themes = vue.ref(parsedOptions.themes);
2951
+ const systemName = vue.shallowRef('light');
2952
+ const name = vue.computed({
2953
+ get() {
2954
+ return _name.value === 'system' ? systemName.value : _name.value;
2955
+ },
2956
+ set(val) {
2957
+ _name.value = val;
2958
+ }
2959
+ });
2945
2960
  const computedThemes = vue.computed(() => {
2946
2961
  const acc = {};
2947
2962
  for (const [name, original] of Object.entries(themes.value)) {
@@ -2962,28 +2977,49 @@
2962
2977
  const current = vue.computed(() => computedThemes.value[name.value]);
2963
2978
  const styles = vue.computed(() => {
2964
2979
  const lines = [];
2980
+ const important = parsedOptions.unimportant ? '' : ' !important';
2981
+ const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
2965
2982
  if (current.value?.dark) {
2966
2983
  createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
2967
2984
  }
2968
- createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
2985
+ createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
2969
2986
  for (const [themeName, theme] of Object.entries(computedThemes.value)) {
2970
- createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
2971
- }
2972
- const bgLines = [];
2973
- const fgLines = [];
2974
- const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2975
- for (const key of colors) {
2976
- if (key.startsWith('on-')) {
2977
- createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2978
- } else {
2979
- 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);
2980
- createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2981
- createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
2987
+ createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
2988
+ }
2989
+ if (parsedOptions.utilities) {
2990
+ const bgLines = [];
2991
+ const fgLines = [];
2992
+ const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2993
+ for (const key of colors) {
2994
+ if (key.startsWith('on-')) {
2995
+ createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
2996
+ } else {
2997
+ 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);
2998
+ createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
2999
+ createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
3000
+ }
2982
3001
  }
3002
+ lines.push(...bgLines, ...fgLines);
2983
3003
  }
2984
- lines.push(...bgLines, ...fgLines);
2985
- return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
3004
+ return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2986
3005
  });
3006
+ const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
3007
+ const themeNames = vue.computed(() => Object.keys(computedThemes.value));
3008
+ if (SUPPORTS_MATCH_MEDIA) {
3009
+ const media = window.matchMedia('(prefers-color-scheme: dark)');
3010
+ function updateSystemName() {
3011
+ systemName.value = media.matches ? 'dark' : 'light';
3012
+ }
3013
+ updateSystemName();
3014
+ media.addEventListener('change', updateSystemName, {
3015
+ passive: true
3016
+ });
3017
+ if (vue.getCurrentScope()) {
3018
+ vue.onScopeDispose(() => {
3019
+ media.removeEventListener('change', updateSystemName);
3020
+ });
3021
+ }
3022
+ }
2987
3023
  function install(app) {
2988
3024
  if (parsedOptions.isDisabled) return;
2989
3025
  const head = app._context.provides.usehead;
@@ -3021,22 +3057,55 @@
3021
3057
  updateStyles();
3022
3058
  }
3023
3059
  function updateStyles() {
3024
- upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
3060
+ upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
3025
3061
  }
3026
3062
  }
3027
3063
  }
3028
- const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3064
+ function change(themeName) {
3065
+ if (!themeNames.value.includes(themeName)) {
3066
+ consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
3067
+ return;
3068
+ }
3069
+ name.value = themeName;
3070
+ }
3071
+ function cycle() {
3072
+ let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
3073
+ const currentIndex = themeArray.indexOf(name.value);
3074
+ const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
3075
+ change(themeArray[nextIndex]);
3076
+ }
3077
+ function toggle() {
3078
+ let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
3079
+ cycle(themeArray);
3080
+ }
3081
+ const globalName = new Proxy(name, {
3082
+ get(target, prop) {
3083
+ return target[prop];
3084
+ },
3085
+ set(target, prop, val) {
3086
+ if (prop === 'value') {
3087
+ deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
3088
+ }
3089
+ // @ts-expect-error
3090
+ target[prop] = val;
3091
+ return true;
3092
+ }
3093
+ });
3029
3094
  return {
3030
3095
  install,
3096
+ change,
3097
+ cycle,
3098
+ toggle,
3031
3099
  isDisabled: parsedOptions.isDisabled,
3032
3100
  name,
3033
3101
  themes,
3034
3102
  current,
3035
3103
  computedThemes,
3104
+ prefix: parsedOptions.prefix,
3036
3105
  themeClasses,
3037
3106
  styles,
3038
3107
  global: {
3039
- name,
3108
+ name: globalName,
3040
3109
  current
3041
3110
  }
3042
3111
  };
@@ -3047,7 +3116,7 @@
3047
3116
  if (!theme) throw new Error('Could not find Vuetify theme injection');
3048
3117
  const name = vue.computed(() => props.theme ?? theme.name.value);
3049
3118
  const current = vue.computed(() => theme.themes.value[name.value]);
3050
- const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3119
+ const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
3051
3120
  const newTheme = {
3052
3121
  ...theme,
3053
3122
  name,
@@ -7163,11 +7232,6 @@
7163
7232
  }
7164
7233
  async function validate() {
7165
7234
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7166
- if (props.disabled || props.readonly) {
7167
- internalErrorMessages.value = [];
7168
- isValidating.value = false;
7169
- return internalErrorMessages.value;
7170
- }
7171
7235
  const results = [];
7172
7236
  isValidating.value = true;
7173
7237
  for (const rule of props.rules) {
@@ -12577,7 +12641,12 @@
12577
12641
  }
12578
12642
  function calculateOffset(index) {
12579
12643
  index = clamp(index, 0, items.value.length - 1);
12580
- return offsets[index] || 0;
12644
+ const whole = Math.floor(index);
12645
+ const fraction = index % 1;
12646
+ const next = whole + 1;
12647
+ const wholeOffset = offsets[whole] || 0;
12648
+ const nextOffset = offsets[next] || wholeOffset;
12649
+ return wholeOffset + (nextOffset - wholeOffset) * fraction;
12581
12650
  }
12582
12651
  function calculateIndex(scrollTop) {
12583
12652
  return binaryClosest(offsets, scrollTop);
@@ -13206,7 +13275,8 @@
13206
13275
  onClick: () => select(item, null)
13207
13276
  });
13208
13277
  return slots.item?.({
13209
- item,
13278
+ item: item.raw,
13279
+ internalItem: item,
13210
13280
  index,
13211
13281
  props: itemProps
13212
13282
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13254,11 +13324,13 @@
13254
13324
  };
13255
13325
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13256
13326
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13257
- item,
13327
+ item: item.raw,
13328
+ internalItem: item,
13258
13329
  index,
13259
13330
  props: slotProps
13260
13331
  }) : slots.selection({
13261
- item,
13332
+ item: item.raw,
13333
+ internalItem: item,
13262
13334
  index
13263
13335
  })) : undefined;
13264
13336
  if (hasSlot && !slotContent) return undefined;
@@ -13324,7 +13396,6 @@
13324
13396
  // Composables
13325
13397
  const defaultFilter = (value, query, item) => {
13326
13398
  if (value == null || query == null) return -1;
13327
- if (!query.length) return 0;
13328
13399
  value = value.toString().toLocaleLowerCase();
13329
13400
  query = query.toString().toLocaleLowerCase();
13330
13401
  const result = [];
@@ -13337,7 +13408,7 @@
13337
13408
  };
13338
13409
  function normaliseMatch(match, query) {
13339
13410
  if (match == null || typeof match === 'boolean' || match === -1) return;
13340
- if (typeof match === 'number') return [[match, match + query.length]];
13411
+ if (typeof match === 'number') return [[match, query.length]];
13341
13412
  if (Array.isArray(match[0])) return match;
13342
13413
  return [match];
13343
13414
  }
@@ -13805,7 +13876,8 @@
13805
13876
  onClick: () => select(item, null)
13806
13877
  });
13807
13878
  return slots.item?.({
13808
- item,
13879
+ item: item.raw,
13880
+ internalItem: item,
13809
13881
  index,
13810
13882
  props: itemProps
13811
13883
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13856,11 +13928,13 @@
13856
13928
  };
13857
13929
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13858
13930
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13859
- item,
13931
+ item: item.raw,
13932
+ internalItem: item,
13860
13933
  index,
13861
13934
  props: slotProps
13862
13935
  }) : slots.selection({
13863
- item,
13936
+ item: item.raw,
13937
+ internalItem: item,
13864
13938
  index
13865
13939
  })) : undefined;
13866
13940
  if (hasSlot && !slotContent) return undefined;
@@ -17252,81 +17326,165 @@
17252
17326
 
17253
17327
  // Types
17254
17328
 
17255
- function weekInfo(locale) {
17256
- // https://simplelocalize.io/data/locales/
17257
- // then `new Intl.Locale(...).getWeekInfo()`
17258
- const code = locale.slice(-2).toUpperCase();
17259
- switch (true) {
17260
- case locale === 'GB-alt-variant':
17261
- {
17262
- return {
17263
- firstDay: 0,
17264
- firstWeekSize: 4
17265
- };
17266
- }
17267
- case locale === '001':
17268
- {
17269
- return {
17270
- firstDay: 1,
17271
- firstWeekSize: 1
17272
- };
17273
- }
17274
- case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17275
- 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
17276
- VE VI WS YE ZA ZW`.includes(code):
17277
- {
17278
- return {
17279
- firstDay: 0,
17280
- firstWeekSize: 1
17281
- };
17282
- }
17283
- case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17284
- MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17285
- {
17286
- return {
17287
- firstDay: 1,
17288
- firstWeekSize: 1
17289
- };
17290
- }
17291
- case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17292
- IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17293
- {
17294
- return {
17295
- firstDay: 1,
17296
- firstWeekSize: 4
17297
- };
17298
- }
17299
- case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17300
- {
17301
- return {
17302
- firstDay: 6,
17303
- firstWeekSize: 1
17304
- };
17305
- }
17306
- case code === 'MV':
17307
- {
17308
- return {
17309
- firstDay: 5,
17310
- firstWeekSize: 1
17311
- };
17312
- }
17313
- case code === 'PT':
17314
- {
17315
- return {
17316
- firstDay: 0,
17317
- firstWeekSize: 4
17318
- };
17319
- }
17320
- default:
17321
- return null;
17322
- }
17323
- }
17329
+ const firstDay = {
17330
+ '001': 1,
17331
+ AD: 1,
17332
+ AE: 6,
17333
+ AF: 6,
17334
+ AG: 0,
17335
+ AI: 1,
17336
+ AL: 1,
17337
+ AM: 1,
17338
+ AN: 1,
17339
+ AR: 1,
17340
+ AS: 0,
17341
+ AT: 1,
17342
+ AU: 1,
17343
+ AX: 1,
17344
+ AZ: 1,
17345
+ BA: 1,
17346
+ BD: 0,
17347
+ BE: 1,
17348
+ BG: 1,
17349
+ BH: 6,
17350
+ BM: 1,
17351
+ BN: 1,
17352
+ BR: 0,
17353
+ BS: 0,
17354
+ BT: 0,
17355
+ BW: 0,
17356
+ BY: 1,
17357
+ BZ: 0,
17358
+ CA: 0,
17359
+ CH: 1,
17360
+ CL: 1,
17361
+ CM: 1,
17362
+ CN: 1,
17363
+ CO: 0,
17364
+ CR: 1,
17365
+ CY: 1,
17366
+ CZ: 1,
17367
+ DE: 1,
17368
+ DJ: 6,
17369
+ DK: 1,
17370
+ DM: 0,
17371
+ DO: 0,
17372
+ DZ: 6,
17373
+ EC: 1,
17374
+ EE: 1,
17375
+ EG: 6,
17376
+ ES: 1,
17377
+ ET: 0,
17378
+ FI: 1,
17379
+ FJ: 1,
17380
+ FO: 1,
17381
+ FR: 1,
17382
+ GB: 1,
17383
+ 'GB-alt-variant': 0,
17384
+ GE: 1,
17385
+ GF: 1,
17386
+ GP: 1,
17387
+ GR: 1,
17388
+ GT: 0,
17389
+ GU: 0,
17390
+ HK: 0,
17391
+ HN: 0,
17392
+ HR: 1,
17393
+ HU: 1,
17394
+ ID: 0,
17395
+ IE: 1,
17396
+ IL: 0,
17397
+ IN: 0,
17398
+ IQ: 6,
17399
+ IR: 6,
17400
+ IS: 1,
17401
+ IT: 1,
17402
+ JM: 0,
17403
+ JO: 6,
17404
+ JP: 0,
17405
+ KE: 0,
17406
+ KG: 1,
17407
+ KH: 0,
17408
+ KR: 0,
17409
+ KW: 6,
17410
+ KZ: 1,
17411
+ LA: 0,
17412
+ LB: 1,
17413
+ LI: 1,
17414
+ LK: 1,
17415
+ LT: 1,
17416
+ LU: 1,
17417
+ LV: 1,
17418
+ LY: 6,
17419
+ MC: 1,
17420
+ MD: 1,
17421
+ ME: 1,
17422
+ MH: 0,
17423
+ MK: 1,
17424
+ MM: 0,
17425
+ MN: 1,
17426
+ MO: 0,
17427
+ MQ: 1,
17428
+ MT: 0,
17429
+ MV: 5,
17430
+ MX: 0,
17431
+ MY: 1,
17432
+ MZ: 0,
17433
+ NI: 0,
17434
+ NL: 1,
17435
+ NO: 1,
17436
+ NP: 0,
17437
+ NZ: 1,
17438
+ OM: 6,
17439
+ PA: 0,
17440
+ PE: 0,
17441
+ PH: 0,
17442
+ PK: 0,
17443
+ PL: 1,
17444
+ PR: 0,
17445
+ PT: 0,
17446
+ PY: 0,
17447
+ QA: 6,
17448
+ RE: 1,
17449
+ RO: 1,
17450
+ RS: 1,
17451
+ RU: 1,
17452
+ SA: 0,
17453
+ SD: 6,
17454
+ SE: 1,
17455
+ SG: 0,
17456
+ SI: 1,
17457
+ SK: 1,
17458
+ SM: 1,
17459
+ SV: 0,
17460
+ SY: 6,
17461
+ TH: 0,
17462
+ TJ: 1,
17463
+ TM: 1,
17464
+ TR: 1,
17465
+ TT: 0,
17466
+ TW: 0,
17467
+ UA: 1,
17468
+ UM: 0,
17469
+ US: 0,
17470
+ UY: 1,
17471
+ UZ: 1,
17472
+ VA: 1,
17473
+ VE: 0,
17474
+ VI: 0,
17475
+ VN: 1,
17476
+ WS: 0,
17477
+ XK: 1,
17478
+ YE: 0,
17479
+ ZA: 0,
17480
+ ZW: 0
17481
+ };
17324
17482
  function getWeekArray(date, locale, firstDayOfWeek) {
17325
17483
  const weeks = [];
17326
17484
  let currentWeek = [];
17327
17485
  const firstDayOfMonth = startOfMonth(date);
17328
17486
  const lastDayOfMonth = endOfMonth(date);
17329
- const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17487
+ const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17330
17488
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17331
17489
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17332
17490
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17357,7 +17515,7 @@
17357
17515
  return weeks;
17358
17516
  }
17359
17517
  function startOfWeek(date, locale, firstDayOfWeek) {
17360
- const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17518
+ const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17361
17519
  const d = new Date(date);
17362
17520
  while (d.getDay() !== day) {
17363
17521
  d.setDate(d.getDate() - 1);
@@ -17366,7 +17524,7 @@
17366
17524
  }
17367
17525
  function endOfWeek(date, locale) {
17368
17526
  const d = new Date(date);
17369
- const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17527
+ const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17370
17528
  while (d.getDay() !== lastDay) {
17371
17529
  d.setDate(d.getDate() + 1);
17372
17530
  }
@@ -17401,7 +17559,7 @@
17401
17559
  }
17402
17560
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17403
17561
  function getWeekdays(locale, firstDayOfWeek) {
17404
- const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17562
+ const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17405
17563
  return createRange(7).map(i => {
17406
17564
  const weekday = new Date(sundayJanuarySecond2000);
17407
17565
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17649,24 +17807,6 @@
17649
17807
  function getMonth(date) {
17650
17808
  return date.getMonth();
17651
17809
  }
17652
- function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17653
- const weekInfoFromLocale = weekInfo(locale);
17654
- const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17655
- const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17656
- function firstWeekSize(year) {
17657
- const yearStart = new Date(year, 0, 1);
17658
- return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17659
- }
17660
- let year = getYear(date);
17661
- const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17662
- if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17663
- year++;
17664
- }
17665
- const yearStart = new Date(year, 0, 1);
17666
- const size = firstWeekSize(year);
17667
- const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17668
- return 1 + getDiff(date, d1w1, 'weeks');
17669
- }
17670
17810
  function getDate(date) {
17671
17811
  return date.getDate();
17672
17812
  }
@@ -17806,12 +17946,10 @@
17806
17946
  return addMonths(date, amount);
17807
17947
  }
17808
17948
  getWeekArray(date, firstDayOfWeek) {
17809
- const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17810
- return getWeekArray(date, this.locale, firstDay);
17949
+ return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17811
17950
  }
17812
17951
  startOfWeek(date, firstDayOfWeek) {
17813
- const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17814
- return startOfWeek(date, this.locale, firstDay);
17952
+ return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17815
17953
  }
17816
17954
  endOfWeek(date) {
17817
17955
  return endOfWeek(date, this.locale);
@@ -17871,8 +18009,7 @@
17871
18009
  return getDiff(date, comparing, unit);
17872
18010
  }
17873
18011
  getWeekdays(firstDayOfWeek) {
17874
- const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17875
- return getWeekdays(this.locale, firstDay);
18012
+ return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17876
18013
  }
17877
18014
  getYear(date) {
17878
18015
  return getYear(date);
@@ -17880,10 +18017,6 @@
17880
18017
  getMonth(date) {
17881
18018
  return getMonth(date);
17882
18019
  }
17883
- getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17884
- const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17885
- return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17886
- }
17887
18020
  getDate(date) {
17888
18021
  return getDate(date);
17889
18022
  }
@@ -17987,6 +18120,26 @@
17987
18120
  return createInstance(options, locale);
17988
18121
  }
17989
18122
 
18123
+ // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
18124
+ function getWeek(adapter, value) {
18125
+ const date = adapter.toJsDate(value);
18126
+ let year = date.getFullYear();
18127
+ let d1w1 = new Date(year, 0, 1);
18128
+ if (date < d1w1) {
18129
+ year = year - 1;
18130
+ d1w1 = new Date(year, 0, 1);
18131
+ } else {
18132
+ const tv = new Date(year + 1, 0, 1);
18133
+ if (date >= tv) {
18134
+ year = year + 1;
18135
+ d1w1 = tv;
18136
+ }
18137
+ }
18138
+ const diffTime = Math.abs(date.getTime() - d1w1.getTime());
18139
+ const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
18140
+ return Math.floor(diffDays / 7) + 1;
18141
+ }
18142
+
17990
18143
  // Types
17991
18144
 
17992
18145
  const makeVColorPickerProps = propsFactory({
@@ -18533,7 +18686,8 @@
18533
18686
  onClick: () => select(item, null)
18534
18687
  });
18535
18688
  return slots.item?.({
18536
- item,
18689
+ item: item.raw,
18690
+ internalItem: item,
18537
18691
  index,
18538
18692
  props: itemProps
18539
18693
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -18584,11 +18738,13 @@
18584
18738
  };
18585
18739
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18586
18740
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18587
- item,
18741
+ item: item.raw,
18742
+ internalItem: item,
18588
18743
  index,
18589
18744
  props: slotProps
18590
18745
  }) : slots.selection({
18591
- item,
18746
+ item: item.raw,
18747
+ internalItem: item,
18592
18748
  index
18593
18749
  })) : undefined;
18594
18750
  if (hasSlot && !slotContent) return undefined;
@@ -22175,7 +22331,7 @@
22175
22331
  },
22176
22332
  firstDayOfWeek: {
22177
22333
  type: [Number, String],
22178
- default: undefined
22334
+ default: 0
22179
22335
  }
22180
22336
  }, 'calendar');
22181
22337
  function useCalendar(props) {
@@ -22198,12 +22354,14 @@
22198
22354
  return adapter.setMonth(date, value);
22199
22355
  }, v => adapter.getMonth(v));
22200
22356
  const weekDays = vue.computed(() => {
22201
- const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22357
+ const firstDayOfWeek = Number(props.firstDayOfWeek);
22358
+
22202
22359
  // Always generate all days, regardless of props.weekdays
22203
22360
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22204
22361
  });
22205
22362
  const weeksInMonth = vue.computed(() => {
22206
- const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22363
+ const firstDayOfWeek = Number(props.firstDayOfWeek);
22364
+ const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22207
22365
  const days = weeks.flat();
22208
22366
 
22209
22367
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22267,7 +22425,7 @@
22267
22425
  });
22268
22426
  const weekNumbers = vue.computed(() => {
22269
22427
  return weeksInMonth.value.map(week => {
22270
- return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22428
+ return week.length ? getWeek(adapter, week[0]) : null;
22271
22429
  });
22272
22430
  });
22273
22431
  function isDisabled(value) {
@@ -23756,7 +23914,17 @@
23756
23914
  "novalidate": true,
23757
23915
  "onReset": onReset,
23758
23916
  "onSubmit": onSubmit
23759
- }, [slots.default?.(form)]));
23917
+ }, [slots.default?.({
23918
+ errors: form.errors.value,
23919
+ isDisabled: form.isDisabled.value,
23920
+ isReadonly: form.isReadonly.value,
23921
+ isValidating: form.isValidating.value,
23922
+ isValid: form.isValid.value,
23923
+ items: form.items.value,
23924
+ validate: form.validate,
23925
+ reset: form.reset,
23926
+ resetValidation: form.resetValidation
23927
+ })]));
23760
23928
  return forwardRefs(form, formRef);
23761
23929
  }
23762
23930
  });
@@ -29165,7 +29333,7 @@
29165
29333
  };
29166
29334
  });
29167
29335
  }
29168
- const version$1 = "3.8.1-master.2025-04-15";
29336
+ const version$1 = "3.8.1-next.2025-04-15";
29169
29337
  createVuetify$1.version = version$1;
29170
29338
 
29171
29339
  // Vue's inject() can only be used in setup
@@ -29190,7 +29358,7 @@
29190
29358
  ...options
29191
29359
  });
29192
29360
  };
29193
- const version = "3.8.1-master.2025-04-15";
29361
+ const version = "3.8.1-next.2025-04-15";
29194
29362
  createVuetify.version = version;
29195
29363
 
29196
29364
  exports.blueprints = index;