@vuetify/nightly 3.8.1-next.2025-04-18 → 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 (215) hide show
  1. package/CHANGELOG.md +6 -16
  2. package/dist/json/attributes.json +2619 -2619
  3. package/dist/json/importMap-labs.json +18 -18
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/web-types.json +5094 -5134
  6. package/dist/vuetify-labs.cjs +172 -247
  7. package/dist/vuetify-labs.css +25227 -23477
  8. package/dist/vuetify-labs.d.ts +635 -227
  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 +24037 -22291
  16. package/dist/vuetify.d.ts +762 -354
  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 -372
  40. package/lib/components/VBtn/VBtn.sass +23 -10
  41. package/lib/components/VBtn/_variables.scss +1 -1
  42. package/lib/components/VBtnGroup/VBtnGroup.css +64 -63
  43. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  44. package/lib/components/VCard/VCard.css +302 -294
  45. package/lib/components/VCarousel/VCarousel.css +65 -63
  46. package/lib/components/VCarousel/VCarousel.sass +1 -1
  47. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  48. package/lib/components/VChip/VChip.css +411 -378
  49. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  50. package/lib/components/VCode/VCode.css +11 -10
  51. package/lib/components/VCode/VCode.sass +3 -0
  52. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  53. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  54. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  55. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  56. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  57. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  58. package/lib/components/VCombobox/VCombobox.css +84 -85
  59. package/lib/components/VCombobox/VCombobox.d.ts +9 -18
  60. package/lib/components/VCombobox/VCombobox.js +3 -6
  61. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  62. package/lib/components/VCounter/VCounter.css +5 -7
  63. package/lib/components/VDataTable/VDataTable.css +186 -189
  64. package/lib/components/VDataTable/VDataTable.sass +11 -21
  65. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  66. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  67. package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
  68. package/lib/components/VDatePicker/VDatePickerControls.css +57 -55
  69. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  70. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  71. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
  72. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  73. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  74. package/lib/components/VDialog/VDialog.css +98 -98
  75. package/lib/components/VDivider/VDivider.css +52 -52
  76. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  77. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  78. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  79. package/lib/components/VFab/VFab.css +73 -78
  80. package/lib/components/VFab/VFab.sass +4 -5
  81. package/lib/components/VField/VField.css +589 -541
  82. package/lib/components/VField/VField.sass +11 -4
  83. package/lib/components/VField/_variables.scss +1 -1
  84. package/lib/components/VFileInput/VFileInput.css +28 -30
  85. package/lib/components/VFooter/VFooter.css +36 -38
  86. package/lib/components/VForm/VForm.d.ts +531 -111
  87. package/lib/components/VForm/VForm.js +1 -11
  88. package/lib/components/VForm/VForm.js.map +1 -1
  89. package/lib/components/VGrid/VGrid.css +592 -565
  90. package/lib/components/VIcon/VIcon.css +53 -52
  91. package/lib/components/VImg/VImg.css +51 -50
  92. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  93. package/lib/components/VInput/VInput.css +147 -136
  94. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  95. package/lib/components/VKbd/VKbd.css +11 -13
  96. package/lib/components/VLabel/VLabel.css +15 -16
  97. package/lib/components/VLayout/VLayout.css +8 -10
  98. package/lib/components/VLayout/VLayoutItem.css +7 -8
  99. package/lib/components/VList/VList.css +108 -104
  100. package/lib/components/VList/VList.sass +1 -1
  101. package/lib/components/VList/VListItem.css +452 -440
  102. package/lib/components/VList/VListItem.sass +1 -2
  103. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  104. package/lib/components/VMain/VMain.css +30 -32
  105. package/lib/components/VMenu/VMenu.css +19 -21
  106. package/lib/components/VMessages/VMessages.css +15 -17
  107. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +104 -102
  108. package/lib/components/VNumberInput/VNumberInput.css +46 -48
  109. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  110. package/lib/components/VOverlay/VOverlay.css +64 -61
  111. package/lib/components/VOverlay/VOverlay.sass +13 -14
  112. package/lib/components/VOverlay/_variables.scss +1 -1
  113. package/lib/components/VPagination/VPagination.css +8 -10
  114. package/lib/components/VParallax/VParallax.css +6 -8
  115. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  116. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  117. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  118. package/lib/components/VRating/VRating.css +53 -52
  119. package/lib/components/VResponsive/VResponsive.css +26 -25
  120. package/lib/components/VSelect/VSelect.css +51 -53
  121. package/lib/components/VSelect/VSelect.d.ts +9 -18
  122. package/lib/components/VSelect/VSelect.js +3 -6
  123. package/lib/components/VSelect/VSelect.js.map +1 -1
  124. package/lib/components/VSelectionControl/VSelectionControl.css +100 -98
  125. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  126. package/lib/components/VSheet/VSheet.css +36 -38
  127. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  128. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  129. package/lib/components/VSlider/VSlider.css +57 -53
  130. package/lib/components/VSlider/VSliderThumb.css +153 -142
  131. package/lib/components/VSlider/VSliderTrack.css +174 -155
  132. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  133. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  134. package/lib/components/VStepper/VStepper.css +56 -55
  135. package/lib/components/VStepper/VStepperItem.css +115 -112
  136. package/lib/components/VSwitch/VSwitch.css +139 -129
  137. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  138. package/lib/components/VTable/VTable.css +141 -140
  139. package/lib/components/VTable/VTable.sass +2 -4
  140. package/lib/components/VTabs/VTab.css +29 -30
  141. package/lib/components/VTabs/VTabs.css +65 -59
  142. package/lib/components/VTextField/VTextField.css +85 -77
  143. package/lib/components/VTextarea/VTextarea.css +40 -48
  144. package/lib/components/VTextarea/VTextarea.sass +2 -4
  145. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  146. package/lib/components/VTimeline/VTimeline.css +427 -388
  147. package/lib/components/VToolbar/VToolbar.css +144 -137
  148. package/lib/components/VTooltip/VTooltip.css +23 -27
  149. package/lib/components/VTooltip/VTooltip.sass +6 -8
  150. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  151. package/lib/components/VWindow/VWindow.css +70 -73
  152. package/lib/composables/calendar.d.ts +3 -2
  153. package/lib/composables/calendar.js +5 -7
  154. package/lib/composables/calendar.js.map +1 -1
  155. package/lib/composables/date/DateAdapter.d.ts +1 -0
  156. package/lib/composables/date/DateAdapter.js.map +1 -1
  157. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  158. package/lib/composables/date/adapters/vuetify.js +101 -160
  159. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  160. package/lib/composables/date/date.d.ts +1 -1
  161. package/lib/composables/date/date.js +0 -20
  162. package/lib/composables/date/date.js.map +1 -1
  163. package/lib/composables/filter.js +2 -1
  164. package/lib/composables/filter.js.map +1 -1
  165. package/lib/composables/theme.js +5 -5
  166. package/lib/composables/theme.js.map +1 -1
  167. package/lib/composables/validation.js +5 -0
  168. package/lib/composables/validation.js.map +1 -1
  169. package/lib/directives/ripple/VRipple.css +36 -38
  170. package/lib/entry-bundler.d.ts +1 -0
  171. package/lib/entry-bundler.js +1 -1
  172. package/lib/entry-bundler.js.map +1 -1
  173. package/lib/framework.d.ts +57 -54
  174. package/lib/framework.js +1 -1
  175. package/lib/framework.js.map +1 -1
  176. package/lib/labs/VCalendar/VCalendar.css +225 -219
  177. package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
  178. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  179. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  180. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  181. package/lib/labs/VCalendar/VCalendarInterval.js +25 -19
  182. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  183. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  184. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  185. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  186. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  187. package/lib/labs/VFileUpload/VFileUpload.css +77 -74
  188. package/lib/labs/VIconBtn/VIconBtn.css +164 -162
  189. package/lib/labs/VPicker/VPicker.css +63 -58
  190. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  191. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  192. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  193. package/lib/labs/VTreeview/VTreeviewItem.css +28 -30
  194. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -3
  195. package/lib/labs/entry-bundler.d.ts +1 -0
  196. package/lib/styles/elements/_global.sass +1 -1
  197. package/lib/styles/generic/_colors.scss +3 -3
  198. package/lib/styles/generic/_layers.scss +1 -13
  199. package/lib/styles/generic/_reset.scss +1 -0
  200. package/lib/styles/generic/_transitions.scss +32 -32
  201. package/lib/styles/main.css +16142 -14667
  202. package/lib/styles/settings/_utilities.scss +5 -0
  203. package/lib/styles/settings/_variables.scss +3 -2
  204. package/lib/styles/tools/_bootable.sass +3 -0
  205. package/lib/styles/tools/_border.sass +4 -4
  206. package/lib/styles/tools/_display.sass +10 -0
  207. package/lib/styles/tools/_elevation.sass +2 -2
  208. package/lib/styles/tools/_index.sass +2 -0
  209. package/lib/styles/tools/_layer.scss +2 -4
  210. package/lib/styles/tools/_position.sass +2 -2
  211. package/lib/styles/tools/_radius.sass +10 -0
  212. package/lib/styles/tools/_rounded.sass +2 -2
  213. package/lib/styles/tools/_utilities.sass +5 -1
  214. package/lib/styles/utilities/_elevation.scss +1 -1
  215. package/package.json +46 -45
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-next.2025-04-18
2
+ * Vuetify v3.8.2-dev.2025-04-17
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1941,7 +1941,7 @@
1941
1941
  flat: true
1942
1942
  },
1943
1943
  VAutocomplete: {
1944
- variant: 'filled'
1944
+ variant: 'outlined'
1945
1945
  },
1946
1946
  VBanner: {
1947
1947
  color: 'primary'
@@ -1970,7 +1970,10 @@
1970
1970
  rounded: 'sm'
1971
1971
  },
1972
1972
  VCombobox: {
1973
- variant: 'filled'
1973
+ variant: 'outlined'
1974
+ },
1975
+ VDateInput: {
1976
+ variant: 'outlined'
1974
1977
  },
1975
1978
  VDatePicker: {
1976
1979
  controlHeight: 48,
@@ -1984,6 +1987,9 @@
1984
1987
  rounded: 'circle'
1985
1988
  }
1986
1989
  },
1990
+ VFileInput: {
1991
+ variant: 'outlined'
1992
+ },
1987
1993
  VNavigationDrawer: {
1988
1994
  // VList: {
1989
1995
  // nav: true,
@@ -1992,8 +1998,15 @@
1992
1998
  // },
1993
1999
  // },
1994
2000
  },
2001
+ VNumberInput: {
2002
+ variant: 'outlined',
2003
+ VBtn: {
2004
+ color: undefined,
2005
+ rounded: undefined
2006
+ }
2007
+ },
1995
2008
  VSelect: {
1996
- variant: 'filled'
2009
+ variant: 'outlined'
1997
2010
  },
1998
2011
  VSlider: {
1999
2012
  color: 'primary'
@@ -2002,10 +2015,10 @@
2002
2015
  color: 'primary'
2003
2016
  },
2004
2017
  VTextarea: {
2005
- variant: 'filled'
2018
+ variant: 'outlined'
2006
2019
  },
2007
2020
  VTextField: {
2008
- variant: 'filled'
2021
+ variant: 'outlined'
2009
2022
  },
2010
2023
  VToolbar: {
2011
2024
  VBtn: {
@@ -2758,7 +2771,7 @@
2758
2771
  }, 'theme');
2759
2772
  function genDefaults$1() {
2760
2773
  return {
2761
- defaultTheme: 'system',
2774
+ defaultTheme: 'light',
2762
2775
  prefix: 'v-',
2763
2776
  variations: {
2764
2777
  colors: [],
@@ -2810,8 +2823,8 @@
2810
2823
  surface: '#212121',
2811
2824
  'surface-bright': '#ccbfd6',
2812
2825
  'surface-light': '#424242',
2813
- 'surface-variant': '#a3a3a3',
2814
- 'on-surface-variant': '#424242',
2826
+ 'surface-variant': '#c8c8c8',
2827
+ 'on-surface-variant': '#000000',
2815
2828
  primary: '#2196F3',
2816
2829
  'primary-darken-1': '#277CC1',
2817
2830
  secondary: '#54B6B2',
@@ -2843,7 +2856,7 @@
2843
2856
  },
2844
2857
  stylesheetId: 'vuetify-theme-stylesheet',
2845
2858
  scoped: false,
2846
- unimportant: true,
2859
+ unimportant: false,
2847
2860
  utilities: true
2848
2861
  };
2849
2862
  }
@@ -3001,7 +3014,7 @@
3001
3014
  }
3002
3015
  lines.push(...bgLines, ...fgLines);
3003
3016
  }
3004
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
3017
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
3005
3018
  });
3006
3019
  const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
3007
3020
  const themeNames = vue.computed(() => Object.keys(computedThemes.value));
@@ -7232,6 +7245,11 @@
7232
7245
  }
7233
7246
  async function validate() {
7234
7247
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7248
+ if (props.disabled || props.readonly) {
7249
+ internalErrorMessages.value = [];
7250
+ isValidating.value = false;
7251
+ return internalErrorMessages.value;
7252
+ }
7235
7253
  const results = [];
7236
7254
  isValidating.value = true;
7237
7255
  for (const rule of props.rules) {
@@ -13275,8 +13293,7 @@
13275
13293
  onClick: () => select(item, null)
13276
13294
  });
13277
13295
  return slots.item?.({
13278
- item: item.raw,
13279
- internalItem: item,
13296
+ item,
13280
13297
  index,
13281
13298
  props: itemProps
13282
13299
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13324,13 +13341,11 @@
13324
13341
  };
13325
13342
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13326
13343
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13327
- item: item.raw,
13328
- internalItem: item,
13344
+ item,
13329
13345
  index,
13330
13346
  props: slotProps
13331
13347
  }) : slots.selection({
13332
- item: item.raw,
13333
- internalItem: item,
13348
+ item,
13334
13349
  index
13335
13350
  })) : undefined;
13336
13351
  if (hasSlot && !slotContent) return undefined;
@@ -13396,6 +13411,7 @@
13396
13411
  // Composables
13397
13412
  const defaultFilter = (value, query, item) => {
13398
13413
  if (value == null || query == null) return -1;
13414
+ if (!query.length) return 0;
13399
13415
  value = value.toString().toLocaleLowerCase();
13400
13416
  query = query.toString().toLocaleLowerCase();
13401
13417
  const result = [];
@@ -13408,7 +13424,7 @@
13408
13424
  };
13409
13425
  function normaliseMatch(match, query) {
13410
13426
  if (match == null || typeof match === 'boolean' || match === -1) return;
13411
- if (typeof match === 'number') return [[match, query.length]];
13427
+ if (typeof match === 'number') return [[match, match + query.length]];
13412
13428
  if (Array.isArray(match[0])) return match;
13413
13429
  return [match];
13414
13430
  }
@@ -13876,8 +13892,7 @@
13876
13892
  onClick: () => select(item, null)
13877
13893
  });
13878
13894
  return slots.item?.({
13879
- item: item.raw,
13880
- internalItem: item,
13895
+ item,
13881
13896
  index,
13882
13897
  props: itemProps
13883
13898
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13928,13 +13943,11 @@
13928
13943
  };
13929
13944
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13930
13945
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13931
- item: item.raw,
13932
- internalItem: item,
13946
+ item,
13933
13947
  index,
13934
13948
  props: slotProps
13935
13949
  }) : slots.selection({
13936
- item: item.raw,
13937
- internalItem: item,
13950
+ item,
13938
13951
  index
13939
13952
  })) : undefined;
13940
13953
  if (hasSlot && !slotContent) return undefined;
@@ -17326,165 +17339,81 @@
17326
17339
 
17327
17340
  // Types
17328
17341
 
17329
- const firstDay = {
17330
- '001': 1,
17331
- AD: 1,
17332
- AE: 6,
17333
- AF: 6,
17334
- AG: 0,
17335
- AI: 1,
17336
- AL: 1,
17337
- AM: 1,
17338
- AN: 1,
17339
- AR: 1,
17340
- AS: 0,
17341
- AT: 1,
17342
- AU: 1,
17343
- AX: 1,
17344
- AZ: 1,
17345
- BA: 1,
17346
- BD: 0,
17347
- BE: 1,
17348
- BG: 1,
17349
- BH: 6,
17350
- BM: 1,
17351
- BN: 1,
17352
- BR: 0,
17353
- BS: 0,
17354
- BT: 0,
17355
- BW: 0,
17356
- BY: 1,
17357
- BZ: 0,
17358
- CA: 0,
17359
- CH: 1,
17360
- CL: 1,
17361
- CM: 1,
17362
- CN: 1,
17363
- CO: 0,
17364
- CR: 1,
17365
- CY: 1,
17366
- CZ: 1,
17367
- DE: 1,
17368
- DJ: 6,
17369
- DK: 1,
17370
- DM: 0,
17371
- DO: 0,
17372
- DZ: 6,
17373
- EC: 1,
17374
- EE: 1,
17375
- EG: 6,
17376
- ES: 1,
17377
- ET: 0,
17378
- FI: 1,
17379
- FJ: 1,
17380
- FO: 1,
17381
- FR: 1,
17382
- GB: 1,
17383
- 'GB-alt-variant': 0,
17384
- GE: 1,
17385
- GF: 1,
17386
- GP: 1,
17387
- GR: 1,
17388
- GT: 0,
17389
- GU: 0,
17390
- HK: 0,
17391
- HN: 0,
17392
- HR: 1,
17393
- HU: 1,
17394
- ID: 0,
17395
- IE: 1,
17396
- IL: 0,
17397
- IN: 0,
17398
- IQ: 6,
17399
- IR: 6,
17400
- IS: 1,
17401
- IT: 1,
17402
- JM: 0,
17403
- JO: 6,
17404
- JP: 0,
17405
- KE: 0,
17406
- KG: 1,
17407
- KH: 0,
17408
- KR: 0,
17409
- KW: 6,
17410
- KZ: 1,
17411
- LA: 0,
17412
- LB: 1,
17413
- LI: 1,
17414
- LK: 1,
17415
- LT: 1,
17416
- LU: 1,
17417
- LV: 1,
17418
- LY: 6,
17419
- MC: 1,
17420
- MD: 1,
17421
- ME: 1,
17422
- MH: 0,
17423
- MK: 1,
17424
- MM: 0,
17425
- MN: 1,
17426
- MO: 0,
17427
- MQ: 1,
17428
- MT: 0,
17429
- MV: 5,
17430
- MX: 0,
17431
- MY: 1,
17432
- MZ: 0,
17433
- NI: 0,
17434
- NL: 1,
17435
- NO: 1,
17436
- NP: 0,
17437
- NZ: 1,
17438
- OM: 6,
17439
- PA: 0,
17440
- PE: 0,
17441
- PH: 0,
17442
- PK: 0,
17443
- PL: 1,
17444
- PR: 0,
17445
- PT: 0,
17446
- PY: 0,
17447
- QA: 6,
17448
- RE: 1,
17449
- RO: 1,
17450
- RS: 1,
17451
- RU: 1,
17452
- SA: 0,
17453
- SD: 6,
17454
- SE: 1,
17455
- SG: 0,
17456
- SI: 1,
17457
- SK: 1,
17458
- SM: 1,
17459
- SV: 0,
17460
- SY: 6,
17461
- TH: 0,
17462
- TJ: 1,
17463
- TM: 1,
17464
- TR: 1,
17465
- TT: 0,
17466
- TW: 0,
17467
- UA: 1,
17468
- UM: 0,
17469
- US: 0,
17470
- UY: 1,
17471
- UZ: 1,
17472
- VA: 1,
17473
- VE: 0,
17474
- VI: 0,
17475
- VN: 1,
17476
- WS: 0,
17477
- XK: 1,
17478
- YE: 0,
17479
- ZA: 0,
17480
- ZW: 0
17481
- };
17342
+ function weekInfo(locale) {
17343
+ // https://simplelocalize.io/data/locales/
17344
+ // then `new Intl.Locale(...).getWeekInfo()`
17345
+ const code = locale.slice(-2).toUpperCase();
17346
+ switch (true) {
17347
+ case locale === 'GB-alt-variant':
17348
+ {
17349
+ return {
17350
+ firstDay: 0,
17351
+ firstWeekSize: 4
17352
+ };
17353
+ }
17354
+ case locale === '001':
17355
+ {
17356
+ return {
17357
+ firstDay: 1,
17358
+ firstWeekSize: 1
17359
+ };
17360
+ }
17361
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17362
+ 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
17363
+ VE VI WS YE ZA ZW`.includes(code):
17364
+ {
17365
+ return {
17366
+ firstDay: 0,
17367
+ firstWeekSize: 1
17368
+ };
17369
+ }
17370
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17371
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17372
+ {
17373
+ return {
17374
+ firstDay: 1,
17375
+ firstWeekSize: 1
17376
+ };
17377
+ }
17378
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17379
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17380
+ {
17381
+ return {
17382
+ firstDay: 1,
17383
+ firstWeekSize: 4
17384
+ };
17385
+ }
17386
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17387
+ {
17388
+ return {
17389
+ firstDay: 6,
17390
+ firstWeekSize: 1
17391
+ };
17392
+ }
17393
+ case code === 'MV':
17394
+ {
17395
+ return {
17396
+ firstDay: 5,
17397
+ firstWeekSize: 1
17398
+ };
17399
+ }
17400
+ case code === 'PT':
17401
+ {
17402
+ return {
17403
+ firstDay: 0,
17404
+ firstWeekSize: 4
17405
+ };
17406
+ }
17407
+ default:
17408
+ return null;
17409
+ }
17410
+ }
17482
17411
  function getWeekArray(date, locale, firstDayOfWeek) {
17483
17412
  const weeks = [];
17484
17413
  let currentWeek = [];
17485
17414
  const firstDayOfMonth = startOfMonth(date);
17486
17415
  const lastDayOfMonth = endOfMonth(date);
17487
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17416
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17488
17417
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17489
17418
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17490
17419
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17515,7 +17444,7 @@
17515
17444
  return weeks;
17516
17445
  }
17517
17446
  function startOfWeek(date, locale, firstDayOfWeek) {
17518
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17447
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17519
17448
  const d = new Date(date);
17520
17449
  while (d.getDay() !== day) {
17521
17450
  d.setDate(d.getDate() - 1);
@@ -17524,7 +17453,7 @@
17524
17453
  }
17525
17454
  function endOfWeek(date, locale) {
17526
17455
  const d = new Date(date);
17527
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17456
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17528
17457
  while (d.getDay() !== lastDay) {
17529
17458
  d.setDate(d.getDate() + 1);
17530
17459
  }
@@ -17559,7 +17488,7 @@
17559
17488
  }
17560
17489
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17561
17490
  function getWeekdays(locale, firstDayOfWeek) {
17562
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17491
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17563
17492
  return createRange(7).map(i => {
17564
17493
  const weekday = new Date(sundayJanuarySecond2000);
17565
17494
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17807,6 +17736,24 @@
17807
17736
  function getMonth(date) {
17808
17737
  return date.getMonth();
17809
17738
  }
17739
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17740
+ const weekInfoFromLocale = weekInfo(locale);
17741
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17742
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17743
+ function firstWeekSize(year) {
17744
+ const yearStart = new Date(year, 0, 1);
17745
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17746
+ }
17747
+ let year = getYear(date);
17748
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17749
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17750
+ year++;
17751
+ }
17752
+ const yearStart = new Date(year, 0, 1);
17753
+ const size = firstWeekSize(year);
17754
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17755
+ return 1 + getDiff(date, d1w1, 'weeks');
17756
+ }
17810
17757
  function getDate(date) {
17811
17758
  return date.getDate();
17812
17759
  }
@@ -17946,10 +17893,12 @@
17946
17893
  return addMonths(date, amount);
17947
17894
  }
17948
17895
  getWeekArray(date, firstDayOfWeek) {
17949
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17896
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17897
+ return getWeekArray(date, this.locale, firstDay);
17950
17898
  }
17951
17899
  startOfWeek(date, firstDayOfWeek) {
17952
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17900
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17901
+ return startOfWeek(date, this.locale, firstDay);
17953
17902
  }
17954
17903
  endOfWeek(date) {
17955
17904
  return endOfWeek(date, this.locale);
@@ -18009,7 +17958,8 @@
18009
17958
  return getDiff(date, comparing, unit);
18010
17959
  }
18011
17960
  getWeekdays(firstDayOfWeek) {
18012
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17961
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17962
+ return getWeekdays(this.locale, firstDay);
18013
17963
  }
18014
17964
  getYear(date) {
18015
17965
  return getYear(date);
@@ -18017,6 +17967,10 @@
18017
17967
  getMonth(date) {
18018
17968
  return getMonth(date);
18019
17969
  }
17970
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17971
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17972
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17973
+ }
18020
17974
  getDate(date) {
18021
17975
  return getDate(date);
18022
17976
  }
@@ -18120,26 +18074,6 @@
18120
18074
  return createInstance(options, locale);
18121
18075
  }
18122
18076
 
18123
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
18124
- function getWeek(adapter, value) {
18125
- const date = adapter.toJsDate(value);
18126
- let year = date.getFullYear();
18127
- let d1w1 = new Date(year, 0, 1);
18128
- if (date < d1w1) {
18129
- year = year - 1;
18130
- d1w1 = new Date(year, 0, 1);
18131
- } else {
18132
- const tv = new Date(year + 1, 0, 1);
18133
- if (date >= tv) {
18134
- year = year + 1;
18135
- d1w1 = tv;
18136
- }
18137
- }
18138
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
18139
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
18140
- return Math.floor(diffDays / 7) + 1;
18141
- }
18142
-
18143
18077
  // Types
18144
18078
 
18145
18079
  const makeVColorPickerProps = propsFactory({
@@ -18686,8 +18620,7 @@
18686
18620
  onClick: () => select(item, null)
18687
18621
  });
18688
18622
  return slots.item?.({
18689
- item: item.raw,
18690
- internalItem: item,
18623
+ item,
18691
18624
  index,
18692
18625
  props: itemProps
18693
18626
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -18738,13 +18671,11 @@
18738
18671
  };
18739
18672
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18740
18673
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18741
- item: item.raw,
18742
- internalItem: item,
18674
+ item,
18743
18675
  index,
18744
18676
  props: slotProps
18745
18677
  }) : slots.selection({
18746
- item: item.raw,
18747
- internalItem: item,
18678
+ item,
18748
18679
  index
18749
18680
  })) : undefined;
18750
18681
  if (hasSlot && !slotContent) return undefined;
@@ -22331,7 +22262,7 @@
22331
22262
  },
22332
22263
  firstDayOfWeek: {
22333
22264
  type: [Number, String],
22334
- default: 0
22265
+ default: undefined
22335
22266
  }
22336
22267
  }, 'calendar');
22337
22268
  function useCalendar(props) {
@@ -22354,14 +22285,12 @@
22354
22285
  return adapter.setMonth(date, value);
22355
22286
  }, v => adapter.getMonth(v));
22356
22287
  const weekDays = vue.computed(() => {
22357
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22358
-
22288
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22359
22289
  // Always generate all days, regardless of props.weekdays
22360
22290
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22361
22291
  });
22362
22292
  const weeksInMonth = vue.computed(() => {
22363
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22364
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22293
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22365
22294
  const days = weeks.flat();
22366
22295
 
22367
22296
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22425,7 +22354,7 @@
22425
22354
  });
22426
22355
  const weekNumbers = vue.computed(() => {
22427
22356
  return weeksInMonth.value.map(week => {
22428
- return week.length ? getWeek(adapter, week[0]) : null;
22357
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22429
22358
  });
22430
22359
  });
22431
22360
  function isDisabled(value) {
@@ -23914,17 +23843,7 @@
23914
23843
  "novalidate": true,
23915
23844
  "onReset": onReset,
23916
23845
  "onSubmit": onSubmit
23917
- }, [slots.default?.({
23918
- errors: form.errors.value,
23919
- isDisabled: form.isDisabled.value,
23920
- isReadonly: form.isReadonly.value,
23921
- isValidating: form.isValidating.value,
23922
- isValid: form.isValid.value,
23923
- items: form.items.value,
23924
- validate: form.validate,
23925
- reset: form.reset,
23926
- resetValidation: form.resetValidation
23927
- })]));
23846
+ }, [slots.default?.(form)]));
23928
23847
  return forwardRefs(form, formRef);
23929
23848
  }
23930
23849
  });
@@ -29333,7 +29252,7 @@
29333
29252
  };
29334
29253
  });
29335
29254
  }
29336
- const version$1 = "3.8.1-next.2025-04-18";
29255
+ const version$1 = "3.8.2-dev.2025-04-17";
29337
29256
  createVuetify$1.version = version$1;
29338
29257
 
29339
29258
  // Vue's inject() can only be used in setup
@@ -29358,7 +29277,7 @@
29358
29277
  ...options
29359
29278
  });
29360
29279
  };
29361
- const version = "3.8.1-next.2025-04-18";
29280
+ const version = "3.8.2-dev.2025-04-17";
29362
29281
  createVuetify.version = version;
29363
29282
 
29364
29283
  exports.blueprints = index;