@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
@@ -1,16 +1,15 @@
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
  */
6
6
 
7
- import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, getCurrentScope, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
11
11
  const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
12
12
  const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
13
- const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
14
13
 
15
14
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
16
15
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -1937,7 +1936,7 @@ const md3 = {
1937
1936
  flat: true
1938
1937
  },
1939
1938
  VAutocomplete: {
1940
- variant: 'filled'
1939
+ variant: 'outlined'
1941
1940
  },
1942
1941
  VBanner: {
1943
1942
  color: 'primary'
@@ -1966,7 +1965,10 @@ const md3 = {
1966
1965
  rounded: 'sm'
1967
1966
  },
1968
1967
  VCombobox: {
1969
- variant: 'filled'
1968
+ variant: 'outlined'
1969
+ },
1970
+ VDateInput: {
1971
+ variant: 'outlined'
1970
1972
  },
1971
1973
  VDatePicker: {
1972
1974
  controlHeight: 48,
@@ -1980,6 +1982,9 @@ const md3 = {
1980
1982
  rounded: 'circle'
1981
1983
  }
1982
1984
  },
1985
+ VFileInput: {
1986
+ variant: 'outlined'
1987
+ },
1983
1988
  VNavigationDrawer: {
1984
1989
  // VList: {
1985
1990
  // nav: true,
@@ -1988,8 +1993,15 @@ const md3 = {
1988
1993
  // },
1989
1994
  // },
1990
1995
  },
1996
+ VNumberInput: {
1997
+ variant: 'outlined',
1998
+ VBtn: {
1999
+ color: undefined,
2000
+ rounded: undefined
2001
+ }
2002
+ },
1991
2003
  VSelect: {
1992
- variant: 'filled'
2004
+ variant: 'outlined'
1993
2005
  },
1994
2006
  VSlider: {
1995
2007
  color: 'primary'
@@ -1998,10 +2010,10 @@ const md3 = {
1998
2010
  color: 'primary'
1999
2011
  },
2000
2012
  VTextarea: {
2001
- variant: 'filled'
2013
+ variant: 'outlined'
2002
2014
  },
2003
2015
  VTextField: {
2004
- variant: 'filled'
2016
+ variant: 'outlined'
2005
2017
  },
2006
2018
  VToolbar: {
2007
2019
  VBtn: {
@@ -2754,8 +2766,7 @@ const makeThemeProps = propsFactory({
2754
2766
  }, 'theme');
2755
2767
  function genDefaults$1() {
2756
2768
  return {
2757
- defaultTheme: 'system',
2758
- prefix: 'v-',
2769
+ defaultTheme: 'light',
2759
2770
  variations: {
2760
2771
  colors: [],
2761
2772
  lighten: 0,
@@ -2806,8 +2817,8 @@ function genDefaults$1() {
2806
2817
  surface: '#212121',
2807
2818
  'surface-bright': '#ccbfd6',
2808
2819
  'surface-light': '#424242',
2809
- 'surface-variant': '#a3a3a3',
2810
- 'on-surface-variant': '#424242',
2820
+ 'surface-variant': '#c8c8c8',
2821
+ 'on-surface-variant': '#000000',
2811
2822
  primary: '#2196F3',
2812
2823
  'primary-darken-1': '#277CC1',
2813
2824
  secondary: '#54B6B2',
@@ -2837,10 +2848,7 @@ function genDefaults$1() {
2837
2848
  }
2838
2849
  }
2839
2850
  },
2840
- stylesheetId: 'vuetify-theme-stylesheet',
2841
- scoped: false,
2842
- unimportant: true,
2843
- utilities: true
2851
+ stylesheetId: 'vuetify-theme-stylesheet'
2844
2852
  };
2845
2853
  }
2846
2854
  function parseThemeOptions() {
@@ -2863,21 +2871,21 @@ function parseThemeOptions() {
2863
2871
  function createCssClass(lines, selector, content, scope) {
2864
2872
  lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
2865
2873
  }
2866
- function genCssVariables(theme, prefix) {
2874
+ function genCssVariables(theme) {
2867
2875
  const lightOverlay = theme.dark ? 2 : 1;
2868
2876
  const darkOverlay = theme.dark ? 1 : 2;
2869
2877
  const variables = [];
2870
2878
  for (const [key, value] of Object.entries(theme.colors)) {
2871
2879
  const rgb = parseColor(value);
2872
- variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2880
+ variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2873
2881
  if (!key.startsWith('on-')) {
2874
- variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2882
+ variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2875
2883
  }
2876
2884
  }
2877
2885
  for (const [key, value] of Object.entries(theme.variables)) {
2878
2886
  const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
2879
2887
  const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
2880
- variables.push(`--${prefix}${key}: ${rgb ?? value}`);
2888
+ variables.push(`--v-${key}: ${rgb ?? value}`);
2881
2889
  }
2882
2890
  return variables;
2883
2891
  }
@@ -2921,8 +2929,7 @@ function getScopedSelector(selector, scope) {
2921
2929
  const scopeSelector = `:where(${scope})`;
2922
2930
  return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
2923
2931
  }
2924
- function upsertStyles(id, cspNonce, styles) {
2925
- const styleEl = getOrCreateStyleElement(id, cspNonce);
2932
+ function upsertStyles(styleEl, styles) {
2926
2933
  if (!styleEl) return;
2927
2934
  styleEl.innerHTML = styles;
2928
2935
  }
@@ -2942,17 +2949,8 @@ function getOrCreateStyleElement(id, cspNonce) {
2942
2949
  // Composables
2943
2950
  function createTheme(options) {
2944
2951
  const parsedOptions = parseThemeOptions(options);
2945
- const _name = shallowRef(parsedOptions.defaultTheme);
2952
+ const name = shallowRef(parsedOptions.defaultTheme);
2946
2953
  const themes = ref(parsedOptions.themes);
2947
- const systemName = shallowRef('light');
2948
- const name = computed({
2949
- get() {
2950
- return _name.value === 'system' ? systemName.value : _name.value;
2951
- },
2952
- set(val) {
2953
- _name.value = val;
2954
- }
2955
- });
2956
2954
  const computedThemes = computed(() => {
2957
2955
  const acc = {};
2958
2956
  for (const [name, original] of Object.entries(themes.value)) {
@@ -2973,49 +2971,28 @@ function createTheme(options) {
2973
2971
  const current = computed(() => computedThemes.value[name.value]);
2974
2972
  const styles = computed(() => {
2975
2973
  const lines = [];
2976
- const important = parsedOptions.unimportant ? '' : ' !important';
2977
- const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
2978
2974
  if (current.value?.dark) {
2979
2975
  createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
2980
2976
  }
2981
- createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
2977
+ createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
2982
2978
  for (const [themeName, theme] of Object.entries(computedThemes.value)) {
2983
- createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
2984
- }
2985
- if (parsedOptions.utilities) {
2986
- const bgLines = [];
2987
- const fgLines = [];
2988
- const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2989
- for (const key of colors) {
2990
- if (key.startsWith('on-')) {
2991
- createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
2992
- } else {
2993
- 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);
2994
- createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
2995
- createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
2996
- }
2979
+ createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
2980
+ }
2981
+ const bgLines = [];
2982
+ const fgLines = [];
2983
+ const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2984
+ for (const key of colors) {
2985
+ if (key.startsWith('on-')) {
2986
+ createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2987
+ } else {
2988
+ 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);
2989
+ createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2990
+ createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
2997
2991
  }
2998
- lines.push(...bgLines, ...fgLines);
2999
2992
  }
3000
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2993
+ lines.push(...bgLines, ...fgLines);
2994
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
3001
2995
  });
3002
- const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
3003
- const themeNames = computed(() => Object.keys(computedThemes.value));
3004
- if (SUPPORTS_MATCH_MEDIA) {
3005
- const media = window.matchMedia('(prefers-color-scheme: dark)');
3006
- function updateSystemName() {
3007
- systemName.value = media.matches ? 'dark' : 'light';
3008
- }
3009
- updateSystemName();
3010
- media.addEventListener('change', updateSystemName, {
3011
- passive: true
3012
- });
3013
- if (getCurrentScope()) {
3014
- onScopeDispose(() => {
3015
- media.removeEventListener('change', updateSystemName);
3016
- });
3017
- }
3018
- }
3019
2996
  function install(app) {
3020
2997
  if (parsedOptions.isDisabled) return;
3021
2998
  const head = app._context.provides.usehead;
@@ -3053,55 +3030,22 @@ function createTheme(options) {
3053
3030
  updateStyles();
3054
3031
  }
3055
3032
  function updateStyles() {
3056
- upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
3033
+ upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
3057
3034
  }
3058
3035
  }
3059
3036
  }
3060
- function change(themeName) {
3061
- if (!themeNames.value.includes(themeName)) {
3062
- consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
3063
- return;
3064
- }
3065
- name.value = themeName;
3066
- }
3067
- function cycle() {
3068
- let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
3069
- const currentIndex = themeArray.indexOf(name.value);
3070
- const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
3071
- change(themeArray[nextIndex]);
3072
- }
3073
- function toggle() {
3074
- let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
3075
- cycle(themeArray);
3076
- }
3077
- const globalName = new Proxy(name, {
3078
- get(target, prop) {
3079
- return target[prop];
3080
- },
3081
- set(target, prop, val) {
3082
- if (prop === 'value') {
3083
- deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
3084
- }
3085
- // @ts-expect-error
3086
- target[prop] = val;
3087
- return true;
3088
- }
3089
- });
3037
+ const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
3090
3038
  return {
3091
3039
  install,
3092
- change,
3093
- cycle,
3094
- toggle,
3095
3040
  isDisabled: parsedOptions.isDisabled,
3096
3041
  name,
3097
3042
  themes,
3098
3043
  current,
3099
3044
  computedThemes,
3100
- prefix: parsedOptions.prefix,
3101
3045
  themeClasses,
3102
3046
  styles,
3103
3047
  global: {
3104
- name: globalName,
3048
+ name,
3105
3049
  current
3106
3050
  }
3107
3051
  };
@@ -3112,7 +3056,7 @@ function provideTheme(props) {
3112
3056
  if (!theme) throw new Error('Could not find Vuetify theme injection');
3113
3057
  const name = computed(() => props.theme ?? theme.name.value);
3114
3058
  const current = computed(() => theme.themes.value[name.value]);
3115
- const themeClasses = computed(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
3059
+ const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
3116
3060
  const newTheme = {
3117
3061
  ...theme,
3118
3062
  name,
@@ -7228,6 +7172,11 @@ function useValidation(props) {
7228
7172
  }
7229
7173
  async function validate() {
7230
7174
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7175
+ if (props.disabled || props.readonly) {
7176
+ internalErrorMessages.value = [];
7177
+ isValidating.value = false;
7178
+ return internalErrorMessages.value;
7179
+ }
7231
7180
  const results = [];
7232
7181
  isValidating.value = true;
7233
7182
  for (const rule of props.rules) {
@@ -12637,12 +12586,7 @@ function useVirtual(props, items) {
12637
12586
  }
12638
12587
  function calculateOffset(index) {
12639
12588
  index = clamp(index, 0, items.value.length - 1);
12640
- const whole = Math.floor(index);
12641
- const fraction = index % 1;
12642
- const next = whole + 1;
12643
- const wholeOffset = offsets[whole] || 0;
12644
- const nextOffset = offsets[next] || wholeOffset;
12645
- return wholeOffset + (nextOffset - wholeOffset) * fraction;
12589
+ return offsets[index] || 0;
12646
12590
  }
12647
12591
  function calculateIndex(scrollTop) {
12648
12592
  return binaryClosest(offsets, scrollTop);
@@ -13271,8 +13215,7 @@ const VSelect = genericComponent()({
13271
13215
  onClick: () => select(item, null)
13272
13216
  });
13273
13217
  return slots.item?.({
13274
- item: item.raw,
13275
- internalItem: item,
13218
+ item,
13276
13219
  index,
13277
13220
  props: itemProps
13278
13221
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13320,13 +13263,11 @@ const VSelect = genericComponent()({
13320
13263
  };
13321
13264
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13322
13265
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13323
- item: item.raw,
13324
- internalItem: item,
13266
+ item,
13325
13267
  index,
13326
13268
  props: slotProps
13327
13269
  }) : slots.selection({
13328
- item: item.raw,
13329
- internalItem: item,
13270
+ item,
13330
13271
  index
13331
13272
  })) : undefined;
13332
13273
  if (hasSlot && !slotContent) return undefined;
@@ -13392,6 +13333,7 @@ const VSelect = genericComponent()({
13392
13333
  // Composables
13393
13334
  const defaultFilter = (value, query, item) => {
13394
13335
  if (value == null || query == null) return -1;
13336
+ if (!query.length) return 0;
13395
13337
  value = value.toString().toLocaleLowerCase();
13396
13338
  query = query.toString().toLocaleLowerCase();
13397
13339
  const result = [];
@@ -13404,7 +13346,7 @@ const defaultFilter = (value, query, item) => {
13404
13346
  };
13405
13347
  function normaliseMatch(match, query) {
13406
13348
  if (match == null || typeof match === 'boolean' || match === -1) return;
13407
- if (typeof match === 'number') return [[match, query.length]];
13349
+ if (typeof match === 'number') return [[match, match + query.length]];
13408
13350
  if (Array.isArray(match[0])) return match;
13409
13351
  return [match];
13410
13352
  }
@@ -13872,8 +13814,7 @@ const VAutocomplete = genericComponent()({
13872
13814
  onClick: () => select(item, null)
13873
13815
  });
13874
13816
  return slots.item?.({
13875
- item: item.raw,
13876
- internalItem: item,
13817
+ item,
13877
13818
  index,
13878
13819
  props: itemProps
13879
13820
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13924,13 +13865,11 @@ const VAutocomplete = genericComponent()({
13924
13865
  };
13925
13866
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13926
13867
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13927
- item: item.raw,
13928
- internalItem: item,
13868
+ item,
13929
13869
  index,
13930
13870
  props: slotProps
13931
13871
  }) : slots.selection({
13932
- item: item.raw,
13933
- internalItem: item,
13872
+ item,
13934
13873
  index
13935
13874
  })) : undefined;
13936
13875
  if (hasSlot && !slotContent) return undefined;
@@ -17322,165 +17261,81 @@ const VPicker = genericComponent()({
17322
17261
 
17323
17262
  // Types
17324
17263
 
17325
- const firstDay = {
17326
- '001': 1,
17327
- AD: 1,
17328
- AE: 6,
17329
- AF: 6,
17330
- AG: 0,
17331
- AI: 1,
17332
- AL: 1,
17333
- AM: 1,
17334
- AN: 1,
17335
- AR: 1,
17336
- AS: 0,
17337
- AT: 1,
17338
- AU: 1,
17339
- AX: 1,
17340
- AZ: 1,
17341
- BA: 1,
17342
- BD: 0,
17343
- BE: 1,
17344
- BG: 1,
17345
- BH: 6,
17346
- BM: 1,
17347
- BN: 1,
17348
- BR: 0,
17349
- BS: 0,
17350
- BT: 0,
17351
- BW: 0,
17352
- BY: 1,
17353
- BZ: 0,
17354
- CA: 0,
17355
- CH: 1,
17356
- CL: 1,
17357
- CM: 1,
17358
- CN: 1,
17359
- CO: 0,
17360
- CR: 1,
17361
- CY: 1,
17362
- CZ: 1,
17363
- DE: 1,
17364
- DJ: 6,
17365
- DK: 1,
17366
- DM: 0,
17367
- DO: 0,
17368
- DZ: 6,
17369
- EC: 1,
17370
- EE: 1,
17371
- EG: 6,
17372
- ES: 1,
17373
- ET: 0,
17374
- FI: 1,
17375
- FJ: 1,
17376
- FO: 1,
17377
- FR: 1,
17378
- GB: 1,
17379
- 'GB-alt-variant': 0,
17380
- GE: 1,
17381
- GF: 1,
17382
- GP: 1,
17383
- GR: 1,
17384
- GT: 0,
17385
- GU: 0,
17386
- HK: 0,
17387
- HN: 0,
17388
- HR: 1,
17389
- HU: 1,
17390
- ID: 0,
17391
- IE: 1,
17392
- IL: 0,
17393
- IN: 0,
17394
- IQ: 6,
17395
- IR: 6,
17396
- IS: 1,
17397
- IT: 1,
17398
- JM: 0,
17399
- JO: 6,
17400
- JP: 0,
17401
- KE: 0,
17402
- KG: 1,
17403
- KH: 0,
17404
- KR: 0,
17405
- KW: 6,
17406
- KZ: 1,
17407
- LA: 0,
17408
- LB: 1,
17409
- LI: 1,
17410
- LK: 1,
17411
- LT: 1,
17412
- LU: 1,
17413
- LV: 1,
17414
- LY: 6,
17415
- MC: 1,
17416
- MD: 1,
17417
- ME: 1,
17418
- MH: 0,
17419
- MK: 1,
17420
- MM: 0,
17421
- MN: 1,
17422
- MO: 0,
17423
- MQ: 1,
17424
- MT: 0,
17425
- MV: 5,
17426
- MX: 0,
17427
- MY: 1,
17428
- MZ: 0,
17429
- NI: 0,
17430
- NL: 1,
17431
- NO: 1,
17432
- NP: 0,
17433
- NZ: 1,
17434
- OM: 6,
17435
- PA: 0,
17436
- PE: 0,
17437
- PH: 0,
17438
- PK: 0,
17439
- PL: 1,
17440
- PR: 0,
17441
- PT: 0,
17442
- PY: 0,
17443
- QA: 6,
17444
- RE: 1,
17445
- RO: 1,
17446
- RS: 1,
17447
- RU: 1,
17448
- SA: 0,
17449
- SD: 6,
17450
- SE: 1,
17451
- SG: 0,
17452
- SI: 1,
17453
- SK: 1,
17454
- SM: 1,
17455
- SV: 0,
17456
- SY: 6,
17457
- TH: 0,
17458
- TJ: 1,
17459
- TM: 1,
17460
- TR: 1,
17461
- TT: 0,
17462
- TW: 0,
17463
- UA: 1,
17464
- UM: 0,
17465
- US: 0,
17466
- UY: 1,
17467
- UZ: 1,
17468
- VA: 1,
17469
- VE: 0,
17470
- VI: 0,
17471
- VN: 1,
17472
- WS: 0,
17473
- XK: 1,
17474
- YE: 0,
17475
- ZA: 0,
17476
- ZW: 0
17477
- };
17264
+ function weekInfo(locale) {
17265
+ // https://simplelocalize.io/data/locales/
17266
+ // then `new Intl.Locale(...).getWeekInfo()`
17267
+ const code = locale.slice(-2).toUpperCase();
17268
+ switch (true) {
17269
+ case locale === 'GB-alt-variant':
17270
+ {
17271
+ return {
17272
+ firstDay: 0,
17273
+ firstWeekSize: 4
17274
+ };
17275
+ }
17276
+ case locale === '001':
17277
+ {
17278
+ return {
17279
+ firstDay: 1,
17280
+ firstWeekSize: 1
17281
+ };
17282
+ }
17283
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17284
+ 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
17285
+ VE VI WS YE ZA ZW`.includes(code):
17286
+ {
17287
+ return {
17288
+ firstDay: 0,
17289
+ firstWeekSize: 1
17290
+ };
17291
+ }
17292
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17293
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17294
+ {
17295
+ return {
17296
+ firstDay: 1,
17297
+ firstWeekSize: 1
17298
+ };
17299
+ }
17300
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17301
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17302
+ {
17303
+ return {
17304
+ firstDay: 1,
17305
+ firstWeekSize: 4
17306
+ };
17307
+ }
17308
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17309
+ {
17310
+ return {
17311
+ firstDay: 6,
17312
+ firstWeekSize: 1
17313
+ };
17314
+ }
17315
+ case code === 'MV':
17316
+ {
17317
+ return {
17318
+ firstDay: 5,
17319
+ firstWeekSize: 1
17320
+ };
17321
+ }
17322
+ case code === 'PT':
17323
+ {
17324
+ return {
17325
+ firstDay: 0,
17326
+ firstWeekSize: 4
17327
+ };
17328
+ }
17329
+ default:
17330
+ return null;
17331
+ }
17332
+ }
17478
17333
  function getWeekArray(date, locale, firstDayOfWeek) {
17479
17334
  const weeks = [];
17480
17335
  let currentWeek = [];
17481
17336
  const firstDayOfMonth = startOfMonth(date);
17482
17337
  const lastDayOfMonth = endOfMonth(date);
17483
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17338
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17484
17339
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17485
17340
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17486
17341
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17511,7 +17366,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17511
17366
  return weeks;
17512
17367
  }
17513
17368
  function startOfWeek(date, locale, firstDayOfWeek) {
17514
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17369
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17515
17370
  const d = new Date(date);
17516
17371
  while (d.getDay() !== day) {
17517
17372
  d.setDate(d.getDate() - 1);
@@ -17520,7 +17375,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17520
17375
  }
17521
17376
  function endOfWeek(date, locale) {
17522
17377
  const d = new Date(date);
17523
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17378
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17524
17379
  while (d.getDay() !== lastDay) {
17525
17380
  d.setDate(d.getDate() + 1);
17526
17381
  }
@@ -17555,7 +17410,7 @@ function date(value) {
17555
17410
  }
17556
17411
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17557
17412
  function getWeekdays(locale, firstDayOfWeek) {
17558
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17413
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17559
17414
  return createRange(7).map(i => {
17560
17415
  const weekday = new Date(sundayJanuarySecond2000);
17561
17416
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17803,6 +17658,24 @@ function getYear(date) {
17803
17658
  function getMonth(date) {
17804
17659
  return date.getMonth();
17805
17660
  }
17661
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17662
+ const weekInfoFromLocale = weekInfo(locale);
17663
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17664
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17665
+ function firstWeekSize(year) {
17666
+ const yearStart = new Date(year, 0, 1);
17667
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17668
+ }
17669
+ let year = getYear(date);
17670
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17671
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17672
+ year++;
17673
+ }
17674
+ const yearStart = new Date(year, 0, 1);
17675
+ const size = firstWeekSize(year);
17676
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17677
+ return 1 + getDiff(date, d1w1, 'weeks');
17678
+ }
17806
17679
  function getDate(date) {
17807
17680
  return date.getDate();
17808
17681
  }
@@ -17942,10 +17815,12 @@ class VuetifyDateAdapter {
17942
17815
  return addMonths(date, amount);
17943
17816
  }
17944
17817
  getWeekArray(date, firstDayOfWeek) {
17945
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17818
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17819
+ return getWeekArray(date, this.locale, firstDay);
17946
17820
  }
17947
17821
  startOfWeek(date, firstDayOfWeek) {
17948
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17822
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17823
+ return startOfWeek(date, this.locale, firstDay);
17949
17824
  }
17950
17825
  endOfWeek(date) {
17951
17826
  return endOfWeek(date, this.locale);
@@ -18005,7 +17880,8 @@ class VuetifyDateAdapter {
18005
17880
  return getDiff(date, comparing, unit);
18006
17881
  }
18007
17882
  getWeekdays(firstDayOfWeek) {
18008
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17883
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17884
+ return getWeekdays(this.locale, firstDay);
18009
17885
  }
18010
17886
  getYear(date) {
18011
17887
  return getYear(date);
@@ -18013,6 +17889,10 @@ class VuetifyDateAdapter {
18013
17889
  getMonth(date) {
18014
17890
  return getMonth(date);
18015
17891
  }
17892
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17893
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17894
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17895
+ }
18016
17896
  getDate(date) {
18017
17897
  return getDate(date);
18018
17898
  }
@@ -18116,26 +17996,6 @@ function useDate() {
18116
17996
  return createInstance(options, locale);
18117
17997
  }
18118
17998
 
18119
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
18120
- function getWeek(adapter, value) {
18121
- const date = adapter.toJsDate(value);
18122
- let year = date.getFullYear();
18123
- let d1w1 = new Date(year, 0, 1);
18124
- if (date < d1w1) {
18125
- year = year - 1;
18126
- d1w1 = new Date(year, 0, 1);
18127
- } else {
18128
- const tv = new Date(year + 1, 0, 1);
18129
- if (date >= tv) {
18130
- year = year + 1;
18131
- d1w1 = tv;
18132
- }
18133
- }
18134
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
18135
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
18136
- return Math.floor(diffDays / 7) + 1;
18137
- }
18138
-
18139
17999
  // Types
18140
18000
 
18141
18001
  const makeVColorPickerProps = propsFactory({
@@ -18682,8 +18542,7 @@ const VCombobox = genericComponent()({
18682
18542
  onClick: () => select(item, null)
18683
18543
  });
18684
18544
  return slots.item?.({
18685
- item: item.raw,
18686
- internalItem: item,
18545
+ item,
18687
18546
  index,
18688
18547
  props: itemProps
18689
18548
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -18734,13 +18593,11 @@ const VCombobox = genericComponent()({
18734
18593
  };
18735
18594
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18736
18595
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18737
- item: item.raw,
18738
- internalItem: item,
18596
+ item,
18739
18597
  index,
18740
18598
  props: slotProps
18741
18599
  }) : slots.selection({
18742
- item: item.raw,
18743
- internalItem: item,
18600
+ item,
18744
18601
  index
18745
18602
  })) : undefined;
18746
18603
  if (hasSlot && !slotContent) return undefined;
@@ -22327,7 +22184,7 @@ const makeCalendarProps = propsFactory({
22327
22184
  },
22328
22185
  firstDayOfWeek: {
22329
22186
  type: [Number, String],
22330
- default: 0
22187
+ default: undefined
22331
22188
  }
22332
22189
  }, 'calendar');
22333
22190
  function useCalendar(props) {
@@ -22350,14 +22207,12 @@ function useCalendar(props) {
22350
22207
  return adapter.setMonth(date, value);
22351
22208
  }, v => adapter.getMonth(v));
22352
22209
  const weekDays = computed(() => {
22353
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22354
-
22210
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22355
22211
  // Always generate all days, regardless of props.weekdays
22356
22212
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22357
22213
  });
22358
22214
  const weeksInMonth = computed(() => {
22359
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22360
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22215
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22361
22216
  const days = weeks.flat();
22362
22217
 
22363
22218
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22421,7 +22276,7 @@ function useCalendar(props) {
22421
22276
  });
22422
22277
  const weekNumbers = computed(() => {
22423
22278
  return weeksInMonth.value.map(week => {
22424
- return week.length ? getWeek(adapter, week[0]) : null;
22279
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22425
22280
  });
22426
22281
  });
22427
22282
  function isDisabled(value) {
@@ -23910,17 +23765,7 @@ const VForm = genericComponent()({
23910
23765
  "novalidate": true,
23911
23766
  "onReset": onReset,
23912
23767
  "onSubmit": onSubmit
23913
- }, [slots.default?.({
23914
- errors: form.errors.value,
23915
- isDisabled: form.isDisabled.value,
23916
- isReadonly: form.isReadonly.value,
23917
- isValidating: form.isValidating.value,
23918
- isValid: form.isValid.value,
23919
- items: form.items.value,
23920
- validate: form.validate,
23921
- reset: form.reset,
23922
- resetValidation: form.resetValidation
23923
- })]));
23768
+ }, [slots.default?.(form)]));
23924
23769
  return forwardRefs(form, formRef);
23925
23770
  }
23926
23771
  });
@@ -29329,7 +29174,7 @@ function createVuetify$1() {
29329
29174
  };
29330
29175
  });
29331
29176
  }
29332
- const version$1 = "3.8.1-next.2025-04-15";
29177
+ const version$1 = "3.8.2-master.2025-04-17";
29333
29178
  createVuetify$1.version = version$1;
29334
29179
 
29335
29180
  // Vue's inject() can only be used in setup
@@ -29354,7 +29199,7 @@ const createVuetify = function () {
29354
29199
  ...options
29355
29200
  });
29356
29201
  };
29357
- const version = "3.8.1-next.2025-04-15";
29202
+ const version = "3.8.2-master.2025-04-17";
29358
29203
  createVuetify.version = version;
29359
29204
 
29360
29205
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };