@vuetify/nightly 3.8.1-next.2025-04-15 → 3.8.2-dev.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 (212) hide show
  1. package/CHANGELOG.md +6 -13
  2. package/dist/json/attributes.json +2755 -2755
  3. package/dist/json/importMap-labs.json +12 -12
  4. package/dist/json/importMap.json +158 -158
  5. package/dist/json/web-types.json +5117 -5157
  6. package/dist/vuetify-labs.cjs +172 -247
  7. package/dist/vuetify-labs.css +25188 -23458
  8. package/dist/vuetify-labs.d.ts +633 -225
  9. package/dist/vuetify-labs.esm.js +172 -247
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +172 -247
  12. package/dist/vuetify-labs.min.css +4 -3
  13. package/dist/vuetify.cjs +148 -229
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +23920 -22194
  16. package/dist/vuetify.d.ts +760 -352
  17. package/dist/vuetify.esm.js +148 -229
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +148 -229
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +4 -3
  22. package/dist/vuetify.min.js +293 -278
  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/VOverlay/_variables.scss +1 -1
  110. package/lib/components/VPagination/VPagination.css +8 -10
  111. package/lib/components/VParallax/VParallax.css +6 -8
  112. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  113. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  114. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  115. package/lib/components/VRating/VRating.css +53 -52
  116. package/lib/components/VResponsive/VResponsive.css +26 -25
  117. package/lib/components/VSelect/VSelect.css +51 -53
  118. package/lib/components/VSelect/VSelect.d.ts +9 -18
  119. package/lib/components/VSelect/VSelect.js +3 -6
  120. package/lib/components/VSelect/VSelect.js.map +1 -1
  121. package/lib/components/VSelectionControl/VSelectionControl.css +100 -98
  122. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  123. package/lib/components/VSheet/VSheet.css +36 -38
  124. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  125. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  126. package/lib/components/VSlider/VSlider.css +57 -53
  127. package/lib/components/VSlider/VSliderThumb.css +153 -142
  128. package/lib/components/VSlider/VSliderTrack.css +174 -155
  129. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  130. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  131. package/lib/components/VStepper/VStepper.css +56 -55
  132. package/lib/components/VStepper/VStepperItem.css +115 -112
  133. package/lib/components/VSwitch/VSwitch.css +139 -129
  134. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  135. package/lib/components/VTable/VTable.css +141 -140
  136. package/lib/components/VTable/VTable.sass +2 -4
  137. package/lib/components/VTabs/VTab.css +29 -30
  138. package/lib/components/VTabs/VTabs.css +65 -59
  139. package/lib/components/VTextField/VTextField.css +85 -77
  140. package/lib/components/VTextarea/VTextarea.css +40 -48
  141. package/lib/components/VTextarea/VTextarea.sass +2 -4
  142. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  143. package/lib/components/VTimeline/VTimeline.css +427 -388
  144. package/lib/components/VToolbar/VToolbar.css +144 -137
  145. package/lib/components/VTooltip/VTooltip.css +23 -27
  146. package/lib/components/VTooltip/VTooltip.sass +6 -8
  147. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  148. package/lib/components/VWindow/VWindow.css +70 -73
  149. package/lib/composables/calendar.d.ts +3 -2
  150. package/lib/composables/calendar.js +5 -7
  151. package/lib/composables/calendar.js.map +1 -1
  152. package/lib/composables/date/DateAdapter.d.ts +1 -0
  153. package/lib/composables/date/DateAdapter.js.map +1 -1
  154. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  155. package/lib/composables/date/adapters/vuetify.js +101 -160
  156. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  157. package/lib/composables/date/date.d.ts +1 -1
  158. package/lib/composables/date/date.js +0 -20
  159. package/lib/composables/date/date.js.map +1 -1
  160. package/lib/composables/filter.js +2 -1
  161. package/lib/composables/filter.js.map +1 -1
  162. package/lib/composables/theme.js +5 -5
  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/directives/ripple/VRipple.css +36 -38
  167. package/lib/entry-bundler.d.ts +1 -0
  168. package/lib/entry-bundler.js +1 -1
  169. package/lib/entry-bundler.js.map +1 -1
  170. package/lib/framework.d.ts +55 -52
  171. package/lib/framework.js +1 -1
  172. package/lib/framework.js.map +1 -1
  173. package/lib/labs/VCalendar/VCalendar.css +225 -219
  174. package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
  175. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  176. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  177. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  178. package/lib/labs/VCalendar/VCalendarInterval.js +25 -19
  179. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  180. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  181. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  182. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  183. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  184. package/lib/labs/VFileUpload/VFileUpload.css +77 -74
  185. package/lib/labs/VIconBtn/VIconBtn.css +164 -162
  186. package/lib/labs/VPicker/VPicker.css +63 -58
  187. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  188. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  189. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  190. package/lib/labs/VTreeview/VTreeviewItem.css +28 -30
  191. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -3
  192. package/lib/labs/entry-bundler.d.ts +1 -0
  193. package/lib/styles/elements/_global.sass +1 -1
  194. package/lib/styles/generic/_colors.scss +3 -3
  195. package/lib/styles/generic/_layers.scss +1 -13
  196. package/lib/styles/generic/_reset.scss +1 -0
  197. package/lib/styles/generic/_transitions.scss +32 -32
  198. package/lib/styles/main.css +16142 -14667
  199. package/lib/styles/settings/_utilities.scss +5 -0
  200. package/lib/styles/settings/_variables.scss +2 -1
  201. package/lib/styles/tools/_bootable.sass +3 -0
  202. package/lib/styles/tools/_border.sass +4 -4
  203. package/lib/styles/tools/_display.sass +10 -0
  204. package/lib/styles/tools/_elevation.sass +2 -2
  205. package/lib/styles/tools/_index.sass +2 -0
  206. package/lib/styles/tools/_layer.scss +2 -4
  207. package/lib/styles/tools/_position.sass +2 -2
  208. package/lib/styles/tools/_radius.sass +10 -0
  209. package/lib/styles/tools/_rounded.sass +2 -2
  210. package/lib/styles/tools/_utilities.sass +5 -1
  211. package/lib/styles/utilities/_elevation.scss +1 -1
  212. package/package.json +46 -45
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-next.2025-04-15
2
+ * Vuetify v3.8.2-dev.2025-04-17
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));
@@ -7228,6 +7241,11 @@ function useValidation(props) {
7228
7241
  }
7229
7242
  async function validate() {
7230
7243
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7244
+ if (props.disabled || props.readonly) {
7245
+ internalErrorMessages.value = [];
7246
+ isValidating.value = false;
7247
+ return internalErrorMessages.value;
7248
+ }
7231
7249
  const results = [];
7232
7250
  isValidating.value = true;
7233
7251
  for (const rule of props.rules) {
@@ -13271,8 +13289,7 @@ const VSelect = genericComponent()({
13271
13289
  onClick: () => select(item, null)
13272
13290
  });
13273
13291
  return slots.item?.({
13274
- item: item.raw,
13275
- internalItem: item,
13292
+ item,
13276
13293
  index,
13277
13294
  props: itemProps
13278
13295
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13320,13 +13337,11 @@ const VSelect = genericComponent()({
13320
13337
  };
13321
13338
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13322
13339
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13323
- item: item.raw,
13324
- internalItem: item,
13340
+ item,
13325
13341
  index,
13326
13342
  props: slotProps
13327
13343
  }) : slots.selection({
13328
- item: item.raw,
13329
- internalItem: item,
13344
+ item,
13330
13345
  index
13331
13346
  })) : undefined;
13332
13347
  if (hasSlot && !slotContent) return undefined;
@@ -13392,6 +13407,7 @@ const VSelect = genericComponent()({
13392
13407
  // Composables
13393
13408
  const defaultFilter = (value, query, item) => {
13394
13409
  if (value == null || query == null) return -1;
13410
+ if (!query.length) return 0;
13395
13411
  value = value.toString().toLocaleLowerCase();
13396
13412
  query = query.toString().toLocaleLowerCase();
13397
13413
  const result = [];
@@ -13404,7 +13420,7 @@ const defaultFilter = (value, query, item) => {
13404
13420
  };
13405
13421
  function normaliseMatch(match, query) {
13406
13422
  if (match == null || typeof match === 'boolean' || match === -1) return;
13407
- if (typeof match === 'number') return [[match, query.length]];
13423
+ if (typeof match === 'number') return [[match, match + query.length]];
13408
13424
  if (Array.isArray(match[0])) return match;
13409
13425
  return [match];
13410
13426
  }
@@ -13872,8 +13888,7 @@ const VAutocomplete = genericComponent()({
13872
13888
  onClick: () => select(item, null)
13873
13889
  });
13874
13890
  return slots.item?.({
13875
- item: item.raw,
13876
- internalItem: item,
13891
+ item,
13877
13892
  index,
13878
13893
  props: itemProps
13879
13894
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13924,13 +13939,11 @@ const VAutocomplete = genericComponent()({
13924
13939
  };
13925
13940
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13926
13941
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13927
- item: item.raw,
13928
- internalItem: item,
13942
+ item,
13929
13943
  index,
13930
13944
  props: slotProps
13931
13945
  }) : slots.selection({
13932
- item: item.raw,
13933
- internalItem: item,
13946
+ item,
13934
13947
  index
13935
13948
  })) : undefined;
13936
13949
  if (hasSlot && !slotContent) return undefined;
@@ -17322,165 +17335,81 @@ const VPicker = genericComponent()({
17322
17335
 
17323
17336
  // Types
17324
17337
 
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
- };
17338
+ function weekInfo(locale) {
17339
+ // https://simplelocalize.io/data/locales/
17340
+ // then `new Intl.Locale(...).getWeekInfo()`
17341
+ const code = locale.slice(-2).toUpperCase();
17342
+ switch (true) {
17343
+ case locale === 'GB-alt-variant':
17344
+ {
17345
+ return {
17346
+ firstDay: 0,
17347
+ firstWeekSize: 4
17348
+ };
17349
+ }
17350
+ case locale === '001':
17351
+ {
17352
+ return {
17353
+ firstDay: 1,
17354
+ firstWeekSize: 1
17355
+ };
17356
+ }
17357
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17358
+ 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
17359
+ VE VI WS YE ZA ZW`.includes(code):
17360
+ {
17361
+ return {
17362
+ firstDay: 0,
17363
+ firstWeekSize: 1
17364
+ };
17365
+ }
17366
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17367
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17368
+ {
17369
+ return {
17370
+ firstDay: 1,
17371
+ firstWeekSize: 1
17372
+ };
17373
+ }
17374
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17375
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17376
+ {
17377
+ return {
17378
+ firstDay: 1,
17379
+ firstWeekSize: 4
17380
+ };
17381
+ }
17382
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17383
+ {
17384
+ return {
17385
+ firstDay: 6,
17386
+ firstWeekSize: 1
17387
+ };
17388
+ }
17389
+ case code === 'MV':
17390
+ {
17391
+ return {
17392
+ firstDay: 5,
17393
+ firstWeekSize: 1
17394
+ };
17395
+ }
17396
+ case code === 'PT':
17397
+ {
17398
+ return {
17399
+ firstDay: 0,
17400
+ firstWeekSize: 4
17401
+ };
17402
+ }
17403
+ default:
17404
+ return null;
17405
+ }
17406
+ }
17478
17407
  function getWeekArray(date, locale, firstDayOfWeek) {
17479
17408
  const weeks = [];
17480
17409
  let currentWeek = [];
17481
17410
  const firstDayOfMonth = startOfMonth(date);
17482
17411
  const lastDayOfMonth = endOfMonth(date);
17483
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17412
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17484
17413
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17485
17414
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17486
17415
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17511,7 +17440,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17511
17440
  return weeks;
17512
17441
  }
17513
17442
  function startOfWeek(date, locale, firstDayOfWeek) {
17514
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17443
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17515
17444
  const d = new Date(date);
17516
17445
  while (d.getDay() !== day) {
17517
17446
  d.setDate(d.getDate() - 1);
@@ -17520,7 +17449,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17520
17449
  }
17521
17450
  function endOfWeek(date, locale) {
17522
17451
  const d = new Date(date);
17523
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17452
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17524
17453
  while (d.getDay() !== lastDay) {
17525
17454
  d.setDate(d.getDate() + 1);
17526
17455
  }
@@ -17555,7 +17484,7 @@ function date(value) {
17555
17484
  }
17556
17485
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17557
17486
  function getWeekdays(locale, firstDayOfWeek) {
17558
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17487
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17559
17488
  return createRange(7).map(i => {
17560
17489
  const weekday = new Date(sundayJanuarySecond2000);
17561
17490
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17803,6 +17732,24 @@ function getYear(date) {
17803
17732
  function getMonth(date) {
17804
17733
  return date.getMonth();
17805
17734
  }
17735
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17736
+ const weekInfoFromLocale = weekInfo(locale);
17737
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17738
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17739
+ function firstWeekSize(year) {
17740
+ const yearStart = new Date(year, 0, 1);
17741
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17742
+ }
17743
+ let year = getYear(date);
17744
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17745
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17746
+ year++;
17747
+ }
17748
+ const yearStart = new Date(year, 0, 1);
17749
+ const size = firstWeekSize(year);
17750
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17751
+ return 1 + getDiff(date, d1w1, 'weeks');
17752
+ }
17806
17753
  function getDate(date) {
17807
17754
  return date.getDate();
17808
17755
  }
@@ -17942,10 +17889,12 @@ class VuetifyDateAdapter {
17942
17889
  return addMonths(date, amount);
17943
17890
  }
17944
17891
  getWeekArray(date, firstDayOfWeek) {
17945
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17892
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17893
+ return getWeekArray(date, this.locale, firstDay);
17946
17894
  }
17947
17895
  startOfWeek(date, firstDayOfWeek) {
17948
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17896
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17897
+ return startOfWeek(date, this.locale, firstDay);
17949
17898
  }
17950
17899
  endOfWeek(date) {
17951
17900
  return endOfWeek(date, this.locale);
@@ -18005,7 +17954,8 @@ class VuetifyDateAdapter {
18005
17954
  return getDiff(date, comparing, unit);
18006
17955
  }
18007
17956
  getWeekdays(firstDayOfWeek) {
18008
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17957
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17958
+ return getWeekdays(this.locale, firstDay);
18009
17959
  }
18010
17960
  getYear(date) {
18011
17961
  return getYear(date);
@@ -18013,6 +17963,10 @@ class VuetifyDateAdapter {
18013
17963
  getMonth(date) {
18014
17964
  return getMonth(date);
18015
17965
  }
17966
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17967
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17968
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17969
+ }
18016
17970
  getDate(date) {
18017
17971
  return getDate(date);
18018
17972
  }
@@ -18116,26 +18070,6 @@ function useDate() {
18116
18070
  return createInstance(options, locale);
18117
18071
  }
18118
18072
 
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
18073
  // Types
18140
18074
 
18141
18075
  const makeVColorPickerProps = propsFactory({
@@ -18682,8 +18616,7 @@ const VCombobox = genericComponent()({
18682
18616
  onClick: () => select(item, null)
18683
18617
  });
18684
18618
  return slots.item?.({
18685
- item: item.raw,
18686
- internalItem: item,
18619
+ item,
18687
18620
  index,
18688
18621
  props: itemProps
18689
18622
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -18734,13 +18667,11 @@ const VCombobox = genericComponent()({
18734
18667
  };
18735
18668
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18736
18669
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18737
- item: item.raw,
18738
- internalItem: item,
18670
+ item,
18739
18671
  index,
18740
18672
  props: slotProps
18741
18673
  }) : slots.selection({
18742
- item: item.raw,
18743
- internalItem: item,
18674
+ item,
18744
18675
  index
18745
18676
  })) : undefined;
18746
18677
  if (hasSlot && !slotContent) return undefined;
@@ -22327,7 +22258,7 @@ const makeCalendarProps = propsFactory({
22327
22258
  },
22328
22259
  firstDayOfWeek: {
22329
22260
  type: [Number, String],
22330
- default: 0
22261
+ default: undefined
22331
22262
  }
22332
22263
  }, 'calendar');
22333
22264
  function useCalendar(props) {
@@ -22350,14 +22281,12 @@ function useCalendar(props) {
22350
22281
  return adapter.setMonth(date, value);
22351
22282
  }, v => adapter.getMonth(v));
22352
22283
  const weekDays = computed(() => {
22353
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22354
-
22284
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22355
22285
  // Always generate all days, regardless of props.weekdays
22356
22286
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22357
22287
  });
22358
22288
  const weeksInMonth = computed(() => {
22359
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22360
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22289
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22361
22290
  const days = weeks.flat();
22362
22291
 
22363
22292
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22421,7 +22350,7 @@ function useCalendar(props) {
22421
22350
  });
22422
22351
  const weekNumbers = computed(() => {
22423
22352
  return weeksInMonth.value.map(week => {
22424
- return week.length ? getWeek(adapter, week[0]) : null;
22353
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22425
22354
  });
22426
22355
  });
22427
22356
  function isDisabled(value) {
@@ -23910,17 +23839,7 @@ const VForm = genericComponent()({
23910
23839
  "novalidate": true,
23911
23840
  "onReset": onReset,
23912
23841
  "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
- })]));
23842
+ }, [slots.default?.(form)]));
23924
23843
  return forwardRefs(form, formRef);
23925
23844
  }
23926
23845
  });
@@ -29329,7 +29248,7 @@ function createVuetify$1() {
29329
29248
  };
29330
29249
  });
29331
29250
  }
29332
- const version$1 = "3.8.1-next.2025-04-15";
29251
+ const version$1 = "3.8.2-dev.2025-04-17";
29333
29252
  createVuetify$1.version = version$1;
29334
29253
 
29335
29254
  // Vue's inject() can only be used in setup
@@ -29354,7 +29273,7 @@ const createVuetify = function () {
29354
29273
  ...options
29355
29274
  });
29356
29275
  };
29357
- const version = "3.8.1-next.2025-04-15";
29276
+ const version = "3.8.2-dev.2025-04-17";
29358
29277
  createVuetify.version = version;
29359
29278
 
29360
29279
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };