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

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 (217) hide show
  1. package/CHANGELOG.md +5 -27
  2. package/dist/json/attributes.json +3031 -3031
  3. package/dist/json/importMap-labs.json +36 -36
  4. package/dist/json/importMap.json +150 -150
  5. package/dist/json/web-types.json +5537 -5577
  6. package/dist/vuetify-labs.cjs +197 -346
  7. package/dist/vuetify-labs.css +25469 -23739
  8. package/dist/vuetify-labs.d.ts +677 -274
  9. package/dist/vuetify-labs.esm.js +198 -347
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +197 -346
  12. package/dist/vuetify-labs.min.css +4 -3
  13. package/dist/vuetify.cjs +173 -328
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +24041 -22315
  16. package/dist/vuetify.d.ts +680 -277
  17. package/dist/vuetify.esm.js +174 -329
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +173 -328
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +4 -3
  22. package/dist/vuetify.min.js +1161 -1152
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/blueprints/md3.js +18 -5
  25. package/lib/blueprints/md3.js.map +1 -1
  26. package/lib/components/VAlert/VAlert.css +215 -207
  27. package/lib/components/VApp/VApp.css +15 -16
  28. package/lib/components/VAppBar/VAppBar.css +12 -14
  29. package/lib/components/VAutocomplete/VAutocomplete.css +84 -85
  30. package/lib/components/VAutocomplete/VAutocomplete.d.ts +9 -18
  31. package/lib/components/VAutocomplete/VAutocomplete.js +3 -6
  32. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  33. package/lib/components/VAvatar/VAvatar.css +106 -108
  34. package/lib/components/VBadge/VBadge.css +77 -77
  35. package/lib/components/VBanner/VBanner.css +166 -161
  36. package/lib/components/VBottomNavigation/VBottomNavigation.css +64 -65
  37. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  38. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  39. package/lib/components/VBtn/VBtn.css +408 -385
  40. package/lib/components/VBtn/VBtn.sass +4 -4
  41. package/lib/components/VBtnGroup/VBtnGroup.css +64 -63
  42. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  43. package/lib/components/VCard/VCard.css +302 -294
  44. package/lib/components/VCarousel/VCarousel.css +65 -63
  45. package/lib/components/VCarousel/VCarousel.sass +1 -1
  46. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  47. package/lib/components/VChip/VChip.css +411 -378
  48. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  49. package/lib/components/VCode/VCode.css +11 -10
  50. package/lib/components/VCode/VCode.sass +3 -0
  51. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  52. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  53. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  54. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  55. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  56. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  57. package/lib/components/VCombobox/VCombobox.css +84 -85
  58. package/lib/components/VCombobox/VCombobox.d.ts +9 -18
  59. package/lib/components/VCombobox/VCombobox.js +3 -6
  60. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  61. package/lib/components/VCounter/VCounter.css +5 -7
  62. package/lib/components/VDataTable/VDataTable.css +186 -189
  63. package/lib/components/VDataTable/VDataTable.sass +11 -21
  64. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  65. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  66. package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
  67. package/lib/components/VDatePicker/VDatePickerControls.css +57 -55
  68. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  69. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  70. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
  71. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  72. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  73. package/lib/components/VDialog/VDialog.css +98 -98
  74. package/lib/components/VDivider/VDivider.css +52 -52
  75. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  76. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  77. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  78. package/lib/components/VFab/VFab.css +73 -78
  79. package/lib/components/VFab/VFab.sass +4 -5
  80. package/lib/components/VField/VField.css +589 -548
  81. package/lib/components/VFileInput/VFileInput.css +28 -30
  82. package/lib/components/VFooter/VFooter.css +36 -38
  83. package/lib/components/VForm/VForm.d.ts +531 -111
  84. package/lib/components/VForm/VForm.js +1 -11
  85. package/lib/components/VForm/VForm.js.map +1 -1
  86. package/lib/components/VGrid/VGrid.css +592 -565
  87. package/lib/components/VIcon/VIcon.css +53 -52
  88. package/lib/components/VImg/VImg.css +51 -50
  89. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  90. package/lib/components/VInput/VInput.css +147 -136
  91. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  92. package/lib/components/VKbd/VKbd.css +11 -13
  93. package/lib/components/VLabel/VLabel.css +15 -16
  94. package/lib/components/VLayout/VLayout.css +8 -10
  95. package/lib/components/VLayout/VLayoutItem.css +7 -8
  96. package/lib/components/VList/VList.css +108 -104
  97. package/lib/components/VList/VList.sass +1 -1
  98. package/lib/components/VList/VListItem.css +452 -440
  99. package/lib/components/VList/VListItem.sass +1 -2
  100. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  101. package/lib/components/VMain/VMain.css +30 -32
  102. package/lib/components/VMenu/VMenu.css +19 -21
  103. package/lib/components/VMessages/VMessages.css +15 -17
  104. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +104 -102
  105. package/lib/components/VNumberInput/VNumberInput.css +46 -48
  106. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  107. package/lib/components/VOverlay/VOverlay.css +64 -61
  108. package/lib/components/VOverlay/VOverlay.sass +13 -14
  109. package/lib/components/VPagination/VPagination.css +8 -10
  110. package/lib/components/VParallax/VParallax.css +6 -8
  111. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  112. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  113. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  114. package/lib/components/VRating/VRating.css +53 -52
  115. package/lib/components/VResponsive/VResponsive.css +26 -25
  116. package/lib/components/VSelect/VSelect.css +51 -53
  117. package/lib/components/VSelect/VSelect.d.ts +9 -18
  118. package/lib/components/VSelect/VSelect.js +3 -6
  119. package/lib/components/VSelect/VSelect.js.map +1 -1
  120. package/lib/components/VSelectionControl/VSelectionControl.css +100 -98
  121. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  122. package/lib/components/VSheet/VSheet.css +36 -38
  123. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  124. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  125. package/lib/components/VSlider/VSlider.css +57 -53
  126. package/lib/components/VSlider/VSliderThumb.css +153 -142
  127. package/lib/components/VSlider/VSliderTrack.css +174 -155
  128. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  129. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  130. package/lib/components/VStepper/VStepper.css +56 -55
  131. package/lib/components/VStepper/VStepperItem.css +115 -112
  132. package/lib/components/VSwitch/VSwitch.css +139 -129
  133. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  134. package/lib/components/VTable/VTable.css +141 -140
  135. package/lib/components/VTable/VTable.sass +2 -4
  136. package/lib/components/VTabs/VTab.css +29 -30
  137. package/lib/components/VTabs/VTabs.css +65 -59
  138. package/lib/components/VTextField/VTextField.css +85 -77
  139. package/lib/components/VTextarea/VTextarea.css +40 -48
  140. package/lib/components/VTextarea/VTextarea.sass +2 -4
  141. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  142. package/lib/components/VTimeline/VTimeline.css +427 -388
  143. package/lib/components/VToolbar/VToolbar.css +144 -137
  144. package/lib/components/VTooltip/VTooltip.css +23 -27
  145. package/lib/components/VTooltip/VTooltip.sass +6 -8
  146. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  147. package/lib/components/VWindow/VWindow.css +70 -73
  148. package/lib/composables/calendar.d.ts +2 -2
  149. package/lib/composables/calendar.js +5 -7
  150. package/lib/composables/calendar.js.map +1 -1
  151. package/lib/composables/date/DateAdapter.d.ts +1 -0
  152. package/lib/composables/date/DateAdapter.js.map +1 -1
  153. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  154. package/lib/composables/date/adapters/vuetify.js +101 -160
  155. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  156. package/lib/composables/date/date.d.ts +1 -1
  157. package/lib/composables/date/date.js +0 -20
  158. package/lib/composables/date/date.js.map +1 -1
  159. package/lib/composables/filter.js +2 -1
  160. package/lib/composables/filter.js.map +1 -1
  161. package/lib/composables/theme.d.ts +1 -6
  162. package/lib/composables/theme.js +30 -98
  163. package/lib/composables/theme.js.map +1 -1
  164. package/lib/composables/validation.js +5 -0
  165. package/lib/composables/validation.js.map +1 -1
  166. package/lib/composables/virtual.js +1 -6
  167. package/lib/composables/virtual.js.map +1 -1
  168. package/lib/directives/ripple/VRipple.css +36 -38
  169. package/lib/entry-bundler.d.ts +1 -0
  170. package/lib/entry-bundler.js +1 -1
  171. package/lib/entry-bundler.js.map +1 -1
  172. package/lib/framework.d.ts +64 -66
  173. package/lib/framework.js +1 -1
  174. package/lib/framework.js.map +1 -1
  175. package/lib/labs/VCalendar/VCalendar.css +225 -219
  176. package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
  177. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  178. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  179. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  180. package/lib/labs/VCalendar/VCalendarInterval.js +25 -19
  181. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  182. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  183. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  184. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  185. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  186. package/lib/labs/VFileUpload/VFileUpload.css +77 -74
  187. package/lib/labs/VIconBtn/VIconBtn.css +164 -162
  188. package/lib/labs/VPicker/VPicker.css +63 -58
  189. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  190. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  191. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  192. package/lib/labs/VTreeview/VTreeviewItem.css +28 -30
  193. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -3
  194. package/lib/labs/entry-bundler.d.ts +1 -0
  195. package/lib/styles/elements/_global.sass +1 -1
  196. package/lib/styles/generic/_colors.scss +3 -3
  197. package/lib/styles/generic/_layers.scss +1 -13
  198. package/lib/styles/generic/_reset.scss +1 -0
  199. package/lib/styles/generic/_transitions.scss +32 -32
  200. package/lib/styles/main.css +16142 -14667
  201. package/lib/styles/settings/_utilities.scss +5 -0
  202. package/lib/styles/settings/_variables.scss +2 -1
  203. package/lib/styles/tools/_bootable.sass +3 -0
  204. package/lib/styles/tools/_border.sass +4 -4
  205. package/lib/styles/tools/_display.sass +10 -0
  206. package/lib/styles/tools/_elevation.sass +2 -2
  207. package/lib/styles/tools/_index.sass +2 -0
  208. package/lib/styles/tools/_layer.scss +2 -4
  209. package/lib/styles/tools/_position.sass +2 -2
  210. package/lib/styles/tools/_radius.sass +10 -0
  211. package/lib/styles/tools/_rounded.sass +2 -2
  212. package/lib/styles/tools/_utilities.sass +5 -1
  213. package/lib/styles/utilities/_elevation.scss +1 -1
  214. package/lib/util/globals.d.ts +0 -1
  215. package/lib/util/globals.js +0 -1
  216. package/lib/util/globals.js.map +1 -1
  217. package/package.json +46 -45
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-next.2025-04-15
2
+ * Vuetify v3.8.2-master.2025-04-17
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -14,7 +14,6 @@
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';
18
17
 
19
18
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
20
19
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -1941,7 +1940,7 @@
1941
1940
  flat: true
1942
1941
  },
1943
1942
  VAutocomplete: {
1944
- variant: 'filled'
1943
+ variant: 'outlined'
1945
1944
  },
1946
1945
  VBanner: {
1947
1946
  color: 'primary'
@@ -1970,7 +1969,10 @@
1970
1969
  rounded: 'sm'
1971
1970
  },
1972
1971
  VCombobox: {
1973
- variant: 'filled'
1972
+ variant: 'outlined'
1973
+ },
1974
+ VDateInput: {
1975
+ variant: 'outlined'
1974
1976
  },
1975
1977
  VDatePicker: {
1976
1978
  controlHeight: 48,
@@ -1984,6 +1986,9 @@
1984
1986
  rounded: 'circle'
1985
1987
  }
1986
1988
  },
1989
+ VFileInput: {
1990
+ variant: 'outlined'
1991
+ },
1987
1992
  VNavigationDrawer: {
1988
1993
  // VList: {
1989
1994
  // nav: true,
@@ -1992,8 +1997,15 @@
1992
1997
  // },
1993
1998
  // },
1994
1999
  },
2000
+ VNumberInput: {
2001
+ variant: 'outlined',
2002
+ VBtn: {
2003
+ color: undefined,
2004
+ rounded: undefined
2005
+ }
2006
+ },
1995
2007
  VSelect: {
1996
- variant: 'filled'
2008
+ variant: 'outlined'
1997
2009
  },
1998
2010
  VSlider: {
1999
2011
  color: 'primary'
@@ -2002,10 +2014,10 @@
2002
2014
  color: 'primary'
2003
2015
  },
2004
2016
  VTextarea: {
2005
- variant: 'filled'
2017
+ variant: 'outlined'
2006
2018
  },
2007
2019
  VTextField: {
2008
- variant: 'filled'
2020
+ variant: 'outlined'
2009
2021
  },
2010
2022
  VToolbar: {
2011
2023
  VBtn: {
@@ -2758,8 +2770,7 @@
2758
2770
  }, 'theme');
2759
2771
  function genDefaults$1() {
2760
2772
  return {
2761
- defaultTheme: 'system',
2762
- prefix: 'v-',
2773
+ defaultTheme: 'light',
2763
2774
  variations: {
2764
2775
  colors: [],
2765
2776
  lighten: 0,
@@ -2810,8 +2821,8 @@
2810
2821
  surface: '#212121',
2811
2822
  'surface-bright': '#ccbfd6',
2812
2823
  'surface-light': '#424242',
2813
- 'surface-variant': '#a3a3a3',
2814
- 'on-surface-variant': '#424242',
2824
+ 'surface-variant': '#c8c8c8',
2825
+ 'on-surface-variant': '#000000',
2815
2826
  primary: '#2196F3',
2816
2827
  'primary-darken-1': '#277CC1',
2817
2828
  secondary: '#54B6B2',
@@ -2841,10 +2852,7 @@
2841
2852
  }
2842
2853
  }
2843
2854
  },
2844
- stylesheetId: 'vuetify-theme-stylesheet',
2845
- scoped: false,
2846
- unimportant: true,
2847
- utilities: true
2855
+ stylesheetId: 'vuetify-theme-stylesheet'
2848
2856
  };
2849
2857
  }
2850
2858
  function parseThemeOptions() {
@@ -2867,21 +2875,21 @@
2867
2875
  function createCssClass(lines, selector, content, scope) {
2868
2876
  lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
2869
2877
  }
2870
- function genCssVariables(theme, prefix) {
2878
+ function genCssVariables(theme) {
2871
2879
  const lightOverlay = theme.dark ? 2 : 1;
2872
2880
  const darkOverlay = theme.dark ? 1 : 2;
2873
2881
  const variables = [];
2874
2882
  for (const [key, value] of Object.entries(theme.colors)) {
2875
2883
  const rgb = parseColor(value);
2876
- variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2884
+ variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2877
2885
  if (!key.startsWith('on-')) {
2878
- variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2886
+ variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2879
2887
  }
2880
2888
  }
2881
2889
  for (const [key, value] of Object.entries(theme.variables)) {
2882
2890
  const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
2883
2891
  const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
2884
- variables.push(`--${prefix}${key}: ${rgb ?? value}`);
2892
+ variables.push(`--v-${key}: ${rgb ?? value}`);
2885
2893
  }
2886
2894
  return variables;
2887
2895
  }
@@ -2925,8 +2933,7 @@
2925
2933
  const scopeSelector = `:where(${scope})`;
2926
2934
  return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
2927
2935
  }
2928
- function upsertStyles(id, cspNonce, styles) {
2929
- const styleEl = getOrCreateStyleElement(id, cspNonce);
2936
+ function upsertStyles(styleEl, styles) {
2930
2937
  if (!styleEl) return;
2931
2938
  styleEl.innerHTML = styles;
2932
2939
  }
@@ -2946,17 +2953,8 @@
2946
2953
  // Composables
2947
2954
  function createTheme(options) {
2948
2955
  const parsedOptions = parseThemeOptions(options);
2949
- const _name = vue.shallowRef(parsedOptions.defaultTheme);
2956
+ const name = vue.shallowRef(parsedOptions.defaultTheme);
2950
2957
  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
- });
2960
2958
  const computedThemes = vue.computed(() => {
2961
2959
  const acc = {};
2962
2960
  for (const [name, original] of Object.entries(themes.value)) {
@@ -2977,49 +2975,28 @@
2977
2975
  const current = vue.computed(() => computedThemes.value[name.value]);
2978
2976
  const styles = vue.computed(() => {
2979
2977
  const lines = [];
2980
- const important = parsedOptions.unimportant ? '' : ' !important';
2981
- const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
2982
2978
  if (current.value?.dark) {
2983
2979
  createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
2984
2980
  }
2985
- createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
2981
+ createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
2986
2982
  for (const [themeName, theme] of Object.entries(computedThemes.value)) {
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
- }
2983
+ createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
2984
+ }
2985
+ const bgLines = [];
2986
+ const fgLines = [];
2987
+ const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2988
+ for (const key of colors) {
2989
+ if (key.startsWith('on-')) {
2990
+ createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2991
+ } else {
2992
+ 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);
2993
+ createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2994
+ createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
3001
2995
  }
3002
- lines.push(...bgLines, ...fgLines);
3003
2996
  }
3004
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2997
+ lines.push(...bgLines, ...fgLines);
2998
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
3005
2999
  });
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
- }
3023
3000
  function install(app) {
3024
3001
  if (parsedOptions.isDisabled) return;
3025
3002
  const head = app._context.provides.usehead;
@@ -3057,55 +3034,22 @@
3057
3034
  updateStyles();
3058
3035
  }
3059
3036
  function updateStyles() {
3060
- upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
3037
+ upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
3061
3038
  }
3062
3039
  }
3063
3040
  }
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
- });
3041
+ const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3094
3042
  return {
3095
3043
  install,
3096
- change,
3097
- cycle,
3098
- toggle,
3099
3044
  isDisabled: parsedOptions.isDisabled,
3100
3045
  name,
3101
3046
  themes,
3102
3047
  current,
3103
3048
  computedThemes,
3104
- prefix: parsedOptions.prefix,
3105
3049
  themeClasses,
3106
3050
  styles,
3107
3051
  global: {
3108
- name: globalName,
3052
+ name,
3109
3053
  current
3110
3054
  }
3111
3055
  };
@@ -3116,7 +3060,7 @@
3116
3060
  if (!theme) throw new Error('Could not find Vuetify theme injection');
3117
3061
  const name = vue.computed(() => props.theme ?? theme.name.value);
3118
3062
  const current = vue.computed(() => theme.themes.value[name.value]);
3119
- const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
3063
+ const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3120
3064
  const newTheme = {
3121
3065
  ...theme,
3122
3066
  name,
@@ -7232,6 +7176,11 @@
7232
7176
  }
7233
7177
  async function validate() {
7234
7178
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7179
+ if (props.disabled || props.readonly) {
7180
+ internalErrorMessages.value = [];
7181
+ isValidating.value = false;
7182
+ return internalErrorMessages.value;
7183
+ }
7235
7184
  const results = [];
7236
7185
  isValidating.value = true;
7237
7186
  for (const rule of props.rules) {
@@ -12641,12 +12590,7 @@
12641
12590
  }
12642
12591
  function calculateOffset(index) {
12643
12592
  index = clamp(index, 0, items.value.length - 1);
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;
12593
+ return offsets[index] || 0;
12650
12594
  }
12651
12595
  function calculateIndex(scrollTop) {
12652
12596
  return binaryClosest(offsets, scrollTop);
@@ -13275,8 +13219,7 @@
13275
13219
  onClick: () => select(item, null)
13276
13220
  });
13277
13221
  return slots.item?.({
13278
- item: item.raw,
13279
- internalItem: item,
13222
+ item,
13280
13223
  index,
13281
13224
  props: itemProps
13282
13225
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13324,13 +13267,11 @@
13324
13267
  };
13325
13268
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13326
13269
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13327
- item: item.raw,
13328
- internalItem: item,
13270
+ item,
13329
13271
  index,
13330
13272
  props: slotProps
13331
13273
  }) : slots.selection({
13332
- item: item.raw,
13333
- internalItem: item,
13274
+ item,
13334
13275
  index
13335
13276
  })) : undefined;
13336
13277
  if (hasSlot && !slotContent) return undefined;
@@ -13396,6 +13337,7 @@
13396
13337
  // Composables
13397
13338
  const defaultFilter = (value, query, item) => {
13398
13339
  if (value == null || query == null) return -1;
13340
+ if (!query.length) return 0;
13399
13341
  value = value.toString().toLocaleLowerCase();
13400
13342
  query = query.toString().toLocaleLowerCase();
13401
13343
  const result = [];
@@ -13408,7 +13350,7 @@
13408
13350
  };
13409
13351
  function normaliseMatch(match, query) {
13410
13352
  if (match == null || typeof match === 'boolean' || match === -1) return;
13411
- if (typeof match === 'number') return [[match, query.length]];
13353
+ if (typeof match === 'number') return [[match, match + query.length]];
13412
13354
  if (Array.isArray(match[0])) return match;
13413
13355
  return [match];
13414
13356
  }
@@ -13876,8 +13818,7 @@
13876
13818
  onClick: () => select(item, null)
13877
13819
  });
13878
13820
  return slots.item?.({
13879
- item: item.raw,
13880
- internalItem: item,
13821
+ item,
13881
13822
  index,
13882
13823
  props: itemProps
13883
13824
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13928,13 +13869,11 @@
13928
13869
  };
13929
13870
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13930
13871
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13931
- item: item.raw,
13932
- internalItem: item,
13872
+ item,
13933
13873
  index,
13934
13874
  props: slotProps
13935
13875
  }) : slots.selection({
13936
- item: item.raw,
13937
- internalItem: item,
13876
+ item,
13938
13877
  index
13939
13878
  })) : undefined;
13940
13879
  if (hasSlot && !slotContent) return undefined;
@@ -17326,165 +17265,81 @@
17326
17265
 
17327
17266
  // Types
17328
17267
 
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
- };
17268
+ function weekInfo(locale) {
17269
+ // https://simplelocalize.io/data/locales/
17270
+ // then `new Intl.Locale(...).getWeekInfo()`
17271
+ const code = locale.slice(-2).toUpperCase();
17272
+ switch (true) {
17273
+ case locale === 'GB-alt-variant':
17274
+ {
17275
+ return {
17276
+ firstDay: 0,
17277
+ firstWeekSize: 4
17278
+ };
17279
+ }
17280
+ case locale === '001':
17281
+ {
17282
+ return {
17283
+ firstDay: 1,
17284
+ firstWeekSize: 1
17285
+ };
17286
+ }
17287
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17288
+ 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
17289
+ VE VI WS YE ZA ZW`.includes(code):
17290
+ {
17291
+ return {
17292
+ firstDay: 0,
17293
+ firstWeekSize: 1
17294
+ };
17295
+ }
17296
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17297
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17298
+ {
17299
+ return {
17300
+ firstDay: 1,
17301
+ firstWeekSize: 1
17302
+ };
17303
+ }
17304
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17305
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17306
+ {
17307
+ return {
17308
+ firstDay: 1,
17309
+ firstWeekSize: 4
17310
+ };
17311
+ }
17312
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17313
+ {
17314
+ return {
17315
+ firstDay: 6,
17316
+ firstWeekSize: 1
17317
+ };
17318
+ }
17319
+ case code === 'MV':
17320
+ {
17321
+ return {
17322
+ firstDay: 5,
17323
+ firstWeekSize: 1
17324
+ };
17325
+ }
17326
+ case code === 'PT':
17327
+ {
17328
+ return {
17329
+ firstDay: 0,
17330
+ firstWeekSize: 4
17331
+ };
17332
+ }
17333
+ default:
17334
+ return null;
17335
+ }
17336
+ }
17482
17337
  function getWeekArray(date, locale, firstDayOfWeek) {
17483
17338
  const weeks = [];
17484
17339
  let currentWeek = [];
17485
17340
  const firstDayOfMonth = startOfMonth(date);
17486
17341
  const lastDayOfMonth = endOfMonth(date);
17487
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17342
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17488
17343
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17489
17344
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17490
17345
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17515,7 +17370,7 @@
17515
17370
  return weeks;
17516
17371
  }
17517
17372
  function startOfWeek(date, locale, firstDayOfWeek) {
17518
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17373
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17519
17374
  const d = new Date(date);
17520
17375
  while (d.getDay() !== day) {
17521
17376
  d.setDate(d.getDate() - 1);
@@ -17524,7 +17379,7 @@
17524
17379
  }
17525
17380
  function endOfWeek(date, locale) {
17526
17381
  const d = new Date(date);
17527
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17382
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17528
17383
  while (d.getDay() !== lastDay) {
17529
17384
  d.setDate(d.getDate() + 1);
17530
17385
  }
@@ -17559,7 +17414,7 @@
17559
17414
  }
17560
17415
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17561
17416
  function getWeekdays(locale, firstDayOfWeek) {
17562
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17417
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17563
17418
  return createRange(7).map(i => {
17564
17419
  const weekday = new Date(sundayJanuarySecond2000);
17565
17420
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17807,6 +17662,24 @@
17807
17662
  function getMonth(date) {
17808
17663
  return date.getMonth();
17809
17664
  }
17665
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17666
+ const weekInfoFromLocale = weekInfo(locale);
17667
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17668
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17669
+ function firstWeekSize(year) {
17670
+ const yearStart = new Date(year, 0, 1);
17671
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17672
+ }
17673
+ let year = getYear(date);
17674
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17675
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17676
+ year++;
17677
+ }
17678
+ const yearStart = new Date(year, 0, 1);
17679
+ const size = firstWeekSize(year);
17680
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17681
+ return 1 + getDiff(date, d1w1, 'weeks');
17682
+ }
17810
17683
  function getDate(date) {
17811
17684
  return date.getDate();
17812
17685
  }
@@ -17946,10 +17819,12 @@
17946
17819
  return addMonths(date, amount);
17947
17820
  }
17948
17821
  getWeekArray(date, firstDayOfWeek) {
17949
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17822
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17823
+ return getWeekArray(date, this.locale, firstDay);
17950
17824
  }
17951
17825
  startOfWeek(date, firstDayOfWeek) {
17952
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17826
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17827
+ return startOfWeek(date, this.locale, firstDay);
17953
17828
  }
17954
17829
  endOfWeek(date) {
17955
17830
  return endOfWeek(date, this.locale);
@@ -18009,7 +17884,8 @@
18009
17884
  return getDiff(date, comparing, unit);
18010
17885
  }
18011
17886
  getWeekdays(firstDayOfWeek) {
18012
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17887
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17888
+ return getWeekdays(this.locale, firstDay);
18013
17889
  }
18014
17890
  getYear(date) {
18015
17891
  return getYear(date);
@@ -18017,6 +17893,10 @@
18017
17893
  getMonth(date) {
18018
17894
  return getMonth(date);
18019
17895
  }
17896
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17897
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17898
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17899
+ }
18020
17900
  getDate(date) {
18021
17901
  return getDate(date);
18022
17902
  }
@@ -18120,26 +18000,6 @@
18120
18000
  return createInstance(options, locale);
18121
18001
  }
18122
18002
 
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
-
18143
18003
  // Types
18144
18004
 
18145
18005
  const makeVColorPickerProps = propsFactory({
@@ -18686,8 +18546,7 @@
18686
18546
  onClick: () => select(item, null)
18687
18547
  });
18688
18548
  return slots.item?.({
18689
- item: item.raw,
18690
- internalItem: item,
18549
+ item,
18691
18550
  index,
18692
18551
  props: itemProps
18693
18552
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -18738,13 +18597,11 @@
18738
18597
  };
18739
18598
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18740
18599
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18741
- item: item.raw,
18742
- internalItem: item,
18600
+ item,
18743
18601
  index,
18744
18602
  props: slotProps
18745
18603
  }) : slots.selection({
18746
- item: item.raw,
18747
- internalItem: item,
18604
+ item,
18748
18605
  index
18749
18606
  })) : undefined;
18750
18607
  if (hasSlot && !slotContent) return undefined;
@@ -22331,7 +22188,7 @@
22331
22188
  },
22332
22189
  firstDayOfWeek: {
22333
22190
  type: [Number, String],
22334
- default: 0
22191
+ default: undefined
22335
22192
  }
22336
22193
  }, 'calendar');
22337
22194
  function useCalendar(props) {
@@ -22354,14 +22211,12 @@
22354
22211
  return adapter.setMonth(date, value);
22355
22212
  }, v => adapter.getMonth(v));
22356
22213
  const weekDays = vue.computed(() => {
22357
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22358
-
22214
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22359
22215
  // Always generate all days, regardless of props.weekdays
22360
22216
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22361
22217
  });
22362
22218
  const weeksInMonth = vue.computed(() => {
22363
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22364
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22219
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22365
22220
  const days = weeks.flat();
22366
22221
 
22367
22222
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22425,7 +22280,7 @@
22425
22280
  });
22426
22281
  const weekNumbers = vue.computed(() => {
22427
22282
  return weeksInMonth.value.map(week => {
22428
- return week.length ? getWeek(adapter, week[0]) : null;
22283
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22429
22284
  });
22430
22285
  });
22431
22286
  function isDisabled(value) {
@@ -23914,17 +23769,7 @@
23914
23769
  "novalidate": true,
23915
23770
  "onReset": onReset,
23916
23771
  "onSubmit": onSubmit
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
- })]));
23772
+ }, [slots.default?.(form)]));
23928
23773
  return forwardRefs(form, formRef);
23929
23774
  }
23930
23775
  });
@@ -29333,7 +29178,7 @@
29333
29178
  };
29334
29179
  });
29335
29180
  }
29336
- const version$1 = "3.8.1-next.2025-04-15";
29181
+ const version$1 = "3.8.2-master.2025-04-17";
29337
29182
  createVuetify$1.version = version$1;
29338
29183
 
29339
29184
  // Vue's inject() can only be used in setup
@@ -29358,7 +29203,7 @@
29358
29203
  ...options
29359
29204
  });
29360
29205
  };
29361
- const version = "3.8.1-next.2025-04-15";
29206
+ const version = "3.8.2-master.2025-04-17";
29362
29207
  createVuetify.version = version;
29363
29208
 
29364
29209
  exports.blueprints = index;