@vuetify/nightly 3.8.1-next.2025-04-18 → 3.8.2-dev.2025-04-28

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 (222) hide show
  1. package/CHANGELOG.md +7 -16
  2. package/dist/json/attributes.json +2825 -2817
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +168 -168
  5. package/dist/json/tags.json +2 -0
  6. package/dist/json/web-types.json +5590 -5610
  7. package/dist/vuetify-labs.cjs +180 -249
  8. package/dist/vuetify-labs.css +25246 -23473
  9. package/dist/vuetify-labs.d.ts +715 -279
  10. package/dist/vuetify-labs.esm.js +180 -249
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +180 -249
  13. package/dist/vuetify-labs.min.css +4 -3
  14. package/dist/vuetify.cjs +156 -231
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +23931 -22162
  17. package/dist/vuetify.d.ts +753 -317
  18. package/dist/vuetify.esm.js +156 -231
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +156 -231
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +4 -3
  23. package/dist/vuetify.min.js +295 -280
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/blueprints/md3.js +18 -5
  26. package/lib/blueprints/md3.js.map +1 -1
  27. package/lib/components/VAlert/VAlert.css +215 -207
  28. package/lib/components/VApp/VApp.css +15 -16
  29. package/lib/components/VAppBar/VAppBar.css +12 -14
  30. package/lib/components/VAutocomplete/VAutocomplete.css +84 -85
  31. package/lib/components/VAutocomplete/VAutocomplete.d.ts +9 -18
  32. package/lib/components/VAutocomplete/VAutocomplete.js +3 -6
  33. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  34. package/lib/components/VAvatar/VAvatar.css +106 -108
  35. package/lib/components/VBadge/VBadge.css +77 -77
  36. package/lib/components/VBanner/VBanner.css +166 -161
  37. package/lib/components/VBottomNavigation/VBottomNavigation.css +64 -65
  38. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  39. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  40. package/lib/components/VBtn/VBtn.css +408 -372
  41. package/lib/components/VBtn/VBtn.sass +23 -10
  42. package/lib/components/VBtn/_variables.scss +1 -1
  43. package/lib/components/VBtnGroup/VBtnGroup.css +87 -63
  44. package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
  45. package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
  46. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  47. package/lib/components/VBtnGroup/VBtnGroup.sass +44 -17
  48. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  49. package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
  50. package/lib/components/VCard/VCard.css +302 -294
  51. package/lib/components/VCarousel/VCarousel.css +65 -63
  52. package/lib/components/VCarousel/VCarousel.sass +1 -1
  53. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  54. package/lib/components/VChip/VChip.css +411 -378
  55. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  56. package/lib/components/VCode/VCode.css +11 -10
  57. package/lib/components/VCode/VCode.sass +3 -0
  58. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  59. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  60. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  61. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  62. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  63. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  64. package/lib/components/VCombobox/VCombobox.css +84 -85
  65. package/lib/components/VCombobox/VCombobox.d.ts +9 -18
  66. package/lib/components/VCombobox/VCombobox.js +3 -6
  67. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  68. package/lib/components/VCounter/VCounter.css +5 -7
  69. package/lib/components/VDataTable/VDataTable.css +186 -189
  70. package/lib/components/VDataTable/VDataTable.sass +11 -21
  71. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  72. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  73. package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
  74. package/lib/components/VDatePicker/VDatePickerControls.css +57 -55
  75. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  76. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  77. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
  78. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  79. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  80. package/lib/components/VDialog/VDialog.css +98 -98
  81. package/lib/components/VDivider/VDivider.css +52 -52
  82. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  83. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  84. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  85. package/lib/components/VFab/VFab.css +73 -78
  86. package/lib/components/VFab/VFab.sass +4 -5
  87. package/lib/components/VField/VField.css +589 -541
  88. package/lib/components/VField/VField.sass +11 -4
  89. package/lib/components/VField/_variables.scss +1 -1
  90. package/lib/components/VFileInput/VFileInput.css +28 -30
  91. package/lib/components/VFooter/VFooter.css +36 -38
  92. package/lib/components/VForm/VForm.d.ts +531 -111
  93. package/lib/components/VForm/VForm.js +1 -11
  94. package/lib/components/VForm/VForm.js.map +1 -1
  95. package/lib/components/VGrid/VGrid.css +592 -565
  96. package/lib/components/VIcon/VIcon.css +53 -52
  97. package/lib/components/VImg/VImg.css +51 -50
  98. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  99. package/lib/components/VInput/VInput.css +147 -136
  100. package/lib/components/VInput/VInput.d.ts +1 -1
  101. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  102. package/lib/components/VKbd/VKbd.css +11 -13
  103. package/lib/components/VLabel/VLabel.css +15 -16
  104. package/lib/components/VLayout/VLayout.css +8 -10
  105. package/lib/components/VLayout/VLayoutItem.css +7 -8
  106. package/lib/components/VList/VList.css +108 -104
  107. package/lib/components/VList/VList.sass +1 -1
  108. package/lib/components/VList/VListItem.css +452 -440
  109. package/lib/components/VList/VListItem.sass +1 -2
  110. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  111. package/lib/components/VMain/VMain.css +30 -32
  112. package/lib/components/VMenu/VMenu.css +19 -21
  113. package/lib/components/VMessages/VMessages.css +15 -17
  114. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +104 -102
  115. package/lib/components/VNumberInput/VNumberInput.css +46 -48
  116. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  117. package/lib/components/VOverlay/VOverlay.css +64 -61
  118. package/lib/components/VOverlay/VOverlay.sass +13 -14
  119. package/lib/components/VOverlay/_variables.scss +1 -1
  120. package/lib/components/VPagination/VPagination.css +8 -10
  121. package/lib/components/VParallax/VParallax.css +6 -8
  122. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  123. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  124. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  125. package/lib/components/VRating/VRating.css +53 -52
  126. package/lib/components/VResponsive/VResponsive.css +26 -25
  127. package/lib/components/VSelect/VSelect.css +51 -53
  128. package/lib/components/VSelect/VSelect.d.ts +9 -18
  129. package/lib/components/VSelect/VSelect.js +3 -6
  130. package/lib/components/VSelect/VSelect.js.map +1 -1
  131. package/lib/components/VSelectionControl/VSelectionControl.css +100 -98
  132. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  133. package/lib/components/VSheet/VSheet.css +36 -38
  134. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  135. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  136. package/lib/components/VSlider/VSlider.css +57 -53
  137. package/lib/components/VSlider/VSliderThumb.css +153 -142
  138. package/lib/components/VSlider/VSliderTrack.css +174 -155
  139. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  140. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  141. package/lib/components/VStepper/VStepper.css +56 -55
  142. package/lib/components/VStepper/VStepperItem.css +115 -112
  143. package/lib/components/VSwitch/VSwitch.css +139 -129
  144. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  145. package/lib/components/VTable/VTable.css +141 -140
  146. package/lib/components/VTable/VTable.sass +2 -4
  147. package/lib/components/VTabs/VTab.css +29 -30
  148. package/lib/components/VTabs/VTabs.css +65 -59
  149. package/lib/components/VTextField/VTextField.css +85 -77
  150. package/lib/components/VTextarea/VTextarea.css +40 -48
  151. package/lib/components/VTextarea/VTextarea.sass +2 -4
  152. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  153. package/lib/components/VTimeline/VTimeline.css +427 -388
  154. package/lib/components/VToolbar/VToolbar.css +144 -137
  155. package/lib/components/VTooltip/VTooltip.css +23 -27
  156. package/lib/components/VTooltip/VTooltip.sass +6 -8
  157. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  158. package/lib/components/VWindow/VWindow.css +70 -73
  159. package/lib/composables/calendar.d.ts +3 -2
  160. package/lib/composables/calendar.js +5 -7
  161. package/lib/composables/calendar.js.map +1 -1
  162. package/lib/composables/date/DateAdapter.d.ts +1 -0
  163. package/lib/composables/date/DateAdapter.js.map +1 -1
  164. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  165. package/lib/composables/date/adapters/vuetify.js +101 -160
  166. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  167. package/lib/composables/date/date.d.ts +1 -1
  168. package/lib/composables/date/date.js +0 -20
  169. package/lib/composables/date/date.js.map +1 -1
  170. package/lib/composables/filter.js +2 -1
  171. package/lib/composables/filter.js.map +1 -1
  172. package/lib/composables/theme.js +5 -5
  173. package/lib/composables/theme.js.map +1 -1
  174. package/lib/composables/validation.js +5 -0
  175. package/lib/composables/validation.js.map +1 -1
  176. package/lib/directives/ripple/VRipple.css +36 -38
  177. package/lib/entry-bundler.d.ts +1 -0
  178. package/lib/entry-bundler.js +1 -1
  179. package/lib/entry-bundler.js.map +1 -1
  180. package/lib/framework.d.ts +62 -59
  181. package/lib/framework.js +1 -1
  182. package/lib/framework.js.map +1 -1
  183. package/lib/labs/VCalendar/VCalendar.css +225 -219
  184. package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
  185. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  186. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  187. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  188. package/lib/labs/VCalendar/VCalendarInterval.js +25 -19
  189. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  190. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  191. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  192. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  193. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  194. package/lib/labs/VFileUpload/VFileUpload.css +77 -74
  195. package/lib/labs/VIconBtn/VIconBtn.css +164 -162
  196. package/lib/labs/VPicker/VPicker.css +63 -58
  197. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  198. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  199. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  200. package/lib/labs/VTreeview/VTreeviewItem.css +28 -30
  201. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -3
  202. package/lib/labs/entry-bundler.d.ts +1 -0
  203. package/lib/styles/elements/_global.sass +1 -1
  204. package/lib/styles/generic/_colors.scss +3 -3
  205. package/lib/styles/generic/_layers.scss +1 -13
  206. package/lib/styles/generic/_reset.scss +1 -0
  207. package/lib/styles/generic/_transitions.scss +32 -32
  208. package/lib/styles/main.css +16142 -14667
  209. package/lib/styles/settings/_utilities.scss +5 -0
  210. package/lib/styles/settings/_variables.scss +3 -2
  211. package/lib/styles/tools/_bootable.sass +3 -0
  212. package/lib/styles/tools/_border.sass +4 -4
  213. package/lib/styles/tools/_display.sass +10 -0
  214. package/lib/styles/tools/_elevation.sass +2 -2
  215. package/lib/styles/tools/_index.sass +2 -0
  216. package/lib/styles/tools/_layer.scss +2 -4
  217. package/lib/styles/tools/_position.sass +2 -2
  218. package/lib/styles/tools/_radius.sass +10 -0
  219. package/lib/styles/tools/_rounded.sass +2 -2
  220. package/lib/styles/tools/_utilities.sass +5 -1
  221. package/lib/styles/utilities/_elevation.scss +1 -1
  222. package/package.json +46 -45
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-next.2025-04-18
2
+ * Vuetify v3.8.2-dev.2025-04-28
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1937,7 +1937,7 @@ const md3 = {
1937
1937
  flat: true
1938
1938
  },
1939
1939
  VAutocomplete: {
1940
- variant: 'filled'
1940
+ variant: 'outlined'
1941
1941
  },
1942
1942
  VBanner: {
1943
1943
  color: 'primary'
@@ -1966,7 +1966,10 @@ const md3 = {
1966
1966
  rounded: 'sm'
1967
1967
  },
1968
1968
  VCombobox: {
1969
- variant: 'filled'
1969
+ variant: 'outlined'
1970
+ },
1971
+ VDateInput: {
1972
+ variant: 'outlined'
1970
1973
  },
1971
1974
  VDatePicker: {
1972
1975
  controlHeight: 48,
@@ -1980,6 +1983,9 @@ const md3 = {
1980
1983
  rounded: 'circle'
1981
1984
  }
1982
1985
  },
1986
+ VFileInput: {
1987
+ variant: 'outlined'
1988
+ },
1983
1989
  VNavigationDrawer: {
1984
1990
  // VList: {
1985
1991
  // nav: true,
@@ -1988,8 +1994,15 @@ const md3 = {
1988
1994
  // },
1989
1995
  // },
1990
1996
  },
1997
+ VNumberInput: {
1998
+ variant: 'outlined',
1999
+ VBtn: {
2000
+ color: undefined,
2001
+ rounded: undefined
2002
+ }
2003
+ },
1991
2004
  VSelect: {
1992
- variant: 'filled'
2005
+ variant: 'outlined'
1993
2006
  },
1994
2007
  VSlider: {
1995
2008
  color: 'primary'
@@ -1998,10 +2011,10 @@ const md3 = {
1998
2011
  color: 'primary'
1999
2012
  },
2000
2013
  VTextarea: {
2001
- variant: 'filled'
2014
+ variant: 'outlined'
2002
2015
  },
2003
2016
  VTextField: {
2004
- variant: 'filled'
2017
+ variant: 'outlined'
2005
2018
  },
2006
2019
  VToolbar: {
2007
2020
  VBtn: {
@@ -2754,7 +2767,7 @@ const makeThemeProps = propsFactory({
2754
2767
  }, 'theme');
2755
2768
  function genDefaults$1() {
2756
2769
  return {
2757
- defaultTheme: 'system',
2770
+ defaultTheme: 'light',
2758
2771
  prefix: 'v-',
2759
2772
  variations: {
2760
2773
  colors: [],
@@ -2806,8 +2819,8 @@ function genDefaults$1() {
2806
2819
  surface: '#212121',
2807
2820
  'surface-bright': '#ccbfd6',
2808
2821
  'surface-light': '#424242',
2809
- 'surface-variant': '#a3a3a3',
2810
- 'on-surface-variant': '#424242',
2822
+ 'surface-variant': '#c8c8c8',
2823
+ 'on-surface-variant': '#000000',
2811
2824
  primary: '#2196F3',
2812
2825
  'primary-darken-1': '#277CC1',
2813
2826
  secondary: '#54B6B2',
@@ -2839,7 +2852,7 @@ function genDefaults$1() {
2839
2852
  },
2840
2853
  stylesheetId: 'vuetify-theme-stylesheet',
2841
2854
  scoped: false,
2842
- unimportant: true,
2855
+ unimportant: false,
2843
2856
  utilities: true
2844
2857
  };
2845
2858
  }
@@ -2997,7 +3010,7 @@ function createTheme(options) {
2997
3010
  }
2998
3011
  lines.push(...bgLines, ...fgLines);
2999
3012
  }
3000
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
3013
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
3001
3014
  });
3002
3015
  const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
3003
3016
  const themeNames = computed(() => Object.keys(computedThemes.value));
@@ -4653,9 +4666,15 @@ function useVariant(props) {
4653
4666
  };
4654
4667
  }
4655
4668
 
4669
+ // Types
4670
+
4656
4671
  const makeVBtnGroupProps = propsFactory({
4657
4672
  baseColor: String,
4658
4673
  divided: Boolean,
4674
+ direction: {
4675
+ type: String,
4676
+ default: 'horizontal'
4677
+ },
4659
4678
  ...makeBorderProps(),
4660
4679
  ...makeComponentProps(),
4661
4680
  ...makeDensityProps(),
@@ -4689,7 +4708,7 @@ const VBtnGroup = genericComponent()({
4689
4708
  } = useRounded(props);
4690
4709
  provideDefaults({
4691
4710
  VBtn: {
4692
- height: 'auto',
4711
+ height: props.direction === 'horizontal' ? 'auto' : null,
4693
4712
  baseColor: toRef(props, 'baseColor'),
4694
4713
  color: toRef(props, 'color'),
4695
4714
  density: toRef(props, 'density'),
@@ -4699,7 +4718,7 @@ const VBtnGroup = genericComponent()({
4699
4718
  });
4700
4719
  useRender(() => {
4701
4720
  return createVNode(props.tag, {
4702
- "class": ['v-btn-group', {
4721
+ "class": ['v-btn-group', `v-btn-group--${props.direction}`, {
4703
4722
  'v-btn-group--divided': props.divided
4704
4723
  }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
4705
4724
  "style": props.style
@@ -7228,6 +7247,11 @@ function useValidation(props) {
7228
7247
  }
7229
7248
  async function validate() {
7230
7249
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7250
+ if (props.disabled || props.readonly) {
7251
+ internalErrorMessages.value = [];
7252
+ isValidating.value = false;
7253
+ return internalErrorMessages.value;
7254
+ }
7231
7255
  const results = [];
7232
7256
  isValidating.value = true;
7233
7257
  for (const rule of props.rules) {
@@ -13271,8 +13295,7 @@ const VSelect = genericComponent()({
13271
13295
  onClick: () => select(item, null)
13272
13296
  });
13273
13297
  return slots.item?.({
13274
- item: item.raw,
13275
- internalItem: item,
13298
+ item,
13276
13299
  index,
13277
13300
  props: itemProps
13278
13301
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13320,13 +13343,11 @@ const VSelect = genericComponent()({
13320
13343
  };
13321
13344
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13322
13345
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13323
- item: item.raw,
13324
- internalItem: item,
13346
+ item,
13325
13347
  index,
13326
13348
  props: slotProps
13327
13349
  }) : slots.selection({
13328
- item: item.raw,
13329
- internalItem: item,
13350
+ item,
13330
13351
  index
13331
13352
  })) : undefined;
13332
13353
  if (hasSlot && !slotContent) return undefined;
@@ -13392,6 +13413,7 @@ const VSelect = genericComponent()({
13392
13413
  // Composables
13393
13414
  const defaultFilter = (value, query, item) => {
13394
13415
  if (value == null || query == null) return -1;
13416
+ if (!query.length) return 0;
13395
13417
  value = value.toString().toLocaleLowerCase();
13396
13418
  query = query.toString().toLocaleLowerCase();
13397
13419
  const result = [];
@@ -13404,7 +13426,7 @@ const defaultFilter = (value, query, item) => {
13404
13426
  };
13405
13427
  function normaliseMatch(match, query) {
13406
13428
  if (match == null || typeof match === 'boolean' || match === -1) return;
13407
- if (typeof match === 'number') return [[match, query.length]];
13429
+ if (typeof match === 'number') return [[match, match + query.length]];
13408
13430
  if (Array.isArray(match[0])) return match;
13409
13431
  return [match];
13410
13432
  }
@@ -13872,8 +13894,7 @@ const VAutocomplete = genericComponent()({
13872
13894
  onClick: () => select(item, null)
13873
13895
  });
13874
13896
  return slots.item?.({
13875
- item: item.raw,
13876
- internalItem: item,
13897
+ item,
13877
13898
  index,
13878
13899
  props: itemProps
13879
13900
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13924,13 +13945,11 @@ const VAutocomplete = genericComponent()({
13924
13945
  };
13925
13946
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13926
13947
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13927
- item: item.raw,
13928
- internalItem: item,
13948
+ item,
13929
13949
  index,
13930
13950
  props: slotProps
13931
13951
  }) : slots.selection({
13932
- item: item.raw,
13933
- internalItem: item,
13952
+ item,
13934
13953
  index
13935
13954
  })) : undefined;
13936
13955
  if (hasSlot && !slotContent) return undefined;
@@ -17322,165 +17341,81 @@ const VPicker = genericComponent()({
17322
17341
 
17323
17342
  // Types
17324
17343
 
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
- };
17344
+ function weekInfo(locale) {
17345
+ // https://simplelocalize.io/data/locales/
17346
+ // then `new Intl.Locale(...).getWeekInfo()`
17347
+ const code = locale.slice(-2).toUpperCase();
17348
+ switch (true) {
17349
+ case locale === 'GB-alt-variant':
17350
+ {
17351
+ return {
17352
+ firstDay: 0,
17353
+ firstWeekSize: 4
17354
+ };
17355
+ }
17356
+ case locale === '001':
17357
+ {
17358
+ return {
17359
+ firstDay: 1,
17360
+ firstWeekSize: 1
17361
+ };
17362
+ }
17363
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17364
+ 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
17365
+ VE VI WS YE ZA ZW`.includes(code):
17366
+ {
17367
+ return {
17368
+ firstDay: 0,
17369
+ firstWeekSize: 1
17370
+ };
17371
+ }
17372
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17373
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17374
+ {
17375
+ return {
17376
+ firstDay: 1,
17377
+ firstWeekSize: 1
17378
+ };
17379
+ }
17380
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17381
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17382
+ {
17383
+ return {
17384
+ firstDay: 1,
17385
+ firstWeekSize: 4
17386
+ };
17387
+ }
17388
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17389
+ {
17390
+ return {
17391
+ firstDay: 6,
17392
+ firstWeekSize: 1
17393
+ };
17394
+ }
17395
+ case code === 'MV':
17396
+ {
17397
+ return {
17398
+ firstDay: 5,
17399
+ firstWeekSize: 1
17400
+ };
17401
+ }
17402
+ case code === 'PT':
17403
+ {
17404
+ return {
17405
+ firstDay: 0,
17406
+ firstWeekSize: 4
17407
+ };
17408
+ }
17409
+ default:
17410
+ return null;
17411
+ }
17412
+ }
17478
17413
  function getWeekArray(date, locale, firstDayOfWeek) {
17479
17414
  const weeks = [];
17480
17415
  let currentWeek = [];
17481
17416
  const firstDayOfMonth = startOfMonth(date);
17482
17417
  const lastDayOfMonth = endOfMonth(date);
17483
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17418
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17484
17419
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17485
17420
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17486
17421
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17511,7 +17446,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17511
17446
  return weeks;
17512
17447
  }
17513
17448
  function startOfWeek(date, locale, firstDayOfWeek) {
17514
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17449
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17515
17450
  const d = new Date(date);
17516
17451
  while (d.getDay() !== day) {
17517
17452
  d.setDate(d.getDate() - 1);
@@ -17520,7 +17455,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17520
17455
  }
17521
17456
  function endOfWeek(date, locale) {
17522
17457
  const d = new Date(date);
17523
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17458
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17524
17459
  while (d.getDay() !== lastDay) {
17525
17460
  d.setDate(d.getDate() + 1);
17526
17461
  }
@@ -17555,7 +17490,7 @@ function date(value) {
17555
17490
  }
17556
17491
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17557
17492
  function getWeekdays(locale, firstDayOfWeek) {
17558
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17493
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17559
17494
  return createRange(7).map(i => {
17560
17495
  const weekday = new Date(sundayJanuarySecond2000);
17561
17496
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17803,6 +17738,24 @@ function getYear(date) {
17803
17738
  function getMonth(date) {
17804
17739
  return date.getMonth();
17805
17740
  }
17741
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17742
+ const weekInfoFromLocale = weekInfo(locale);
17743
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17744
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17745
+ function firstWeekSize(year) {
17746
+ const yearStart = new Date(year, 0, 1);
17747
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17748
+ }
17749
+ let year = getYear(date);
17750
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17751
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17752
+ year++;
17753
+ }
17754
+ const yearStart = new Date(year, 0, 1);
17755
+ const size = firstWeekSize(year);
17756
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17757
+ return 1 + getDiff(date, d1w1, 'weeks');
17758
+ }
17806
17759
  function getDate(date) {
17807
17760
  return date.getDate();
17808
17761
  }
@@ -17942,10 +17895,12 @@ class VuetifyDateAdapter {
17942
17895
  return addMonths(date, amount);
17943
17896
  }
17944
17897
  getWeekArray(date, firstDayOfWeek) {
17945
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17898
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17899
+ return getWeekArray(date, this.locale, firstDay);
17946
17900
  }
17947
17901
  startOfWeek(date, firstDayOfWeek) {
17948
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17902
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17903
+ return startOfWeek(date, this.locale, firstDay);
17949
17904
  }
17950
17905
  endOfWeek(date) {
17951
17906
  return endOfWeek(date, this.locale);
@@ -18005,7 +17960,8 @@ class VuetifyDateAdapter {
18005
17960
  return getDiff(date, comparing, unit);
18006
17961
  }
18007
17962
  getWeekdays(firstDayOfWeek) {
18008
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17963
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17964
+ return getWeekdays(this.locale, firstDay);
18009
17965
  }
18010
17966
  getYear(date) {
18011
17967
  return getYear(date);
@@ -18013,6 +17969,10 @@ class VuetifyDateAdapter {
18013
17969
  getMonth(date) {
18014
17970
  return getMonth(date);
18015
17971
  }
17972
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17973
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17974
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17975
+ }
18016
17976
  getDate(date) {
18017
17977
  return getDate(date);
18018
17978
  }
@@ -18116,26 +18076,6 @@ function useDate() {
18116
18076
  return createInstance(options, locale);
18117
18077
  }
18118
18078
 
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
18079
  // Types
18140
18080
 
18141
18081
  const makeVColorPickerProps = propsFactory({
@@ -18682,8 +18622,7 @@ const VCombobox = genericComponent()({
18682
18622
  onClick: () => select(item, null)
18683
18623
  });
18684
18624
  return slots.item?.({
18685
- item: item.raw,
18686
- internalItem: item,
18625
+ item,
18687
18626
  index,
18688
18627
  props: itemProps
18689
18628
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -18734,13 +18673,11 @@ const VCombobox = genericComponent()({
18734
18673
  };
18735
18674
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18736
18675
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18737
- item: item.raw,
18738
- internalItem: item,
18676
+ item,
18739
18677
  index,
18740
18678
  props: slotProps
18741
18679
  }) : slots.selection({
18742
- item: item.raw,
18743
- internalItem: item,
18680
+ item,
18744
18681
  index
18745
18682
  })) : undefined;
18746
18683
  if (hasSlot && !slotContent) return undefined;
@@ -22327,7 +22264,7 @@ const makeCalendarProps = propsFactory({
22327
22264
  },
22328
22265
  firstDayOfWeek: {
22329
22266
  type: [Number, String],
22330
- default: 0
22267
+ default: undefined
22331
22268
  }
22332
22269
  }, 'calendar');
22333
22270
  function useCalendar(props) {
@@ -22350,14 +22287,12 @@ function useCalendar(props) {
22350
22287
  return adapter.setMonth(date, value);
22351
22288
  }, v => adapter.getMonth(v));
22352
22289
  const weekDays = computed(() => {
22353
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22354
-
22290
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22355
22291
  // Always generate all days, regardless of props.weekdays
22356
22292
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22357
22293
  });
22358
22294
  const weeksInMonth = computed(() => {
22359
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22360
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22295
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22361
22296
  const days = weeks.flat();
22362
22297
 
22363
22298
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22421,7 +22356,7 @@ function useCalendar(props) {
22421
22356
  });
22422
22357
  const weekNumbers = computed(() => {
22423
22358
  return weeksInMonth.value.map(week => {
22424
- return week.length ? getWeek(adapter, week[0]) : null;
22359
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22425
22360
  });
22426
22361
  });
22427
22362
  function isDisabled(value) {
@@ -23910,17 +23845,7 @@ const VForm = genericComponent()({
23910
23845
  "novalidate": true,
23911
23846
  "onReset": onReset,
23912
23847
  "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
- })]));
23848
+ }, [slots.default?.(form)]));
23924
23849
  return forwardRefs(form, formRef);
23925
23850
  }
23926
23851
  });
@@ -29329,7 +29254,7 @@ function createVuetify$1() {
29329
29254
  };
29330
29255
  });
29331
29256
  }
29332
- const version$1 = "3.8.1-next.2025-04-18";
29257
+ const version$1 = "3.8.2-dev.2025-04-28";
29333
29258
  createVuetify$1.version = version$1;
29334
29259
 
29335
29260
  // Vue's inject() can only be used in setup
@@ -29354,7 +29279,7 @@ const createVuetify = function () {
29354
29279
  ...options
29355
29280
  });
29356
29281
  };
29357
- const version = "3.8.1-next.2025-04-18";
29282
+ const version = "3.8.2-dev.2025-04-28";
29358
29283
  createVuetify.version = version;
29359
29284
 
29360
29285
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };