@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
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-28
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));
@@ -4657,9 +4670,15 @@
4657
4670
  };
4658
4671
  }
4659
4672
 
4673
+ // Types
4674
+
4660
4675
  const makeVBtnGroupProps = propsFactory({
4661
4676
  baseColor: String,
4662
4677
  divided: Boolean,
4678
+ direction: {
4679
+ type: String,
4680
+ default: 'horizontal'
4681
+ },
4663
4682
  ...makeBorderProps(),
4664
4683
  ...makeComponentProps(),
4665
4684
  ...makeDensityProps(),
@@ -4693,7 +4712,7 @@
4693
4712
  } = useRounded(props);
4694
4713
  provideDefaults({
4695
4714
  VBtn: {
4696
- height: 'auto',
4715
+ height: props.direction === 'horizontal' ? 'auto' : null,
4697
4716
  baseColor: vue.toRef(props, 'baseColor'),
4698
4717
  color: vue.toRef(props, 'color'),
4699
4718
  density: vue.toRef(props, 'density'),
@@ -4703,7 +4722,7 @@
4703
4722
  });
4704
4723
  useRender(() => {
4705
4724
  return vue.createVNode(props.tag, {
4706
- "class": ['v-btn-group', {
4725
+ "class": ['v-btn-group', `v-btn-group--${props.direction}`, {
4707
4726
  'v-btn-group--divided': props.divided
4708
4727
  }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
4709
4728
  "style": props.style
@@ -7232,6 +7251,11 @@
7232
7251
  }
7233
7252
  async function validate() {
7234
7253
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7254
+ if (props.disabled || props.readonly) {
7255
+ internalErrorMessages.value = [];
7256
+ isValidating.value = false;
7257
+ return internalErrorMessages.value;
7258
+ }
7235
7259
  const results = [];
7236
7260
  isValidating.value = true;
7237
7261
  for (const rule of props.rules) {
@@ -13275,8 +13299,7 @@
13275
13299
  onClick: () => select(item, null)
13276
13300
  });
13277
13301
  return slots.item?.({
13278
- item: item.raw,
13279
- internalItem: item,
13302
+ item,
13280
13303
  index,
13281
13304
  props: itemProps
13282
13305
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13324,13 +13347,11 @@
13324
13347
  };
13325
13348
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13326
13349
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13327
- item: item.raw,
13328
- internalItem: item,
13350
+ item,
13329
13351
  index,
13330
13352
  props: slotProps
13331
13353
  }) : slots.selection({
13332
- item: item.raw,
13333
- internalItem: item,
13354
+ item,
13334
13355
  index
13335
13356
  })) : undefined;
13336
13357
  if (hasSlot && !slotContent) return undefined;
@@ -13396,6 +13417,7 @@
13396
13417
  // Composables
13397
13418
  const defaultFilter = (value, query, item) => {
13398
13419
  if (value == null || query == null) return -1;
13420
+ if (!query.length) return 0;
13399
13421
  value = value.toString().toLocaleLowerCase();
13400
13422
  query = query.toString().toLocaleLowerCase();
13401
13423
  const result = [];
@@ -13408,7 +13430,7 @@
13408
13430
  };
13409
13431
  function normaliseMatch(match, query) {
13410
13432
  if (match == null || typeof match === 'boolean' || match === -1) return;
13411
- if (typeof match === 'number') return [[match, query.length]];
13433
+ if (typeof match === 'number') return [[match, match + query.length]];
13412
13434
  if (Array.isArray(match[0])) return match;
13413
13435
  return [match];
13414
13436
  }
@@ -13876,8 +13898,7 @@
13876
13898
  onClick: () => select(item, null)
13877
13899
  });
13878
13900
  return slots.item?.({
13879
- item: item.raw,
13880
- internalItem: item,
13901
+ item,
13881
13902
  index,
13882
13903
  props: itemProps
13883
13904
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13928,13 +13949,11 @@
13928
13949
  };
13929
13950
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13930
13951
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13931
- item: item.raw,
13932
- internalItem: item,
13952
+ item,
13933
13953
  index,
13934
13954
  props: slotProps
13935
13955
  }) : slots.selection({
13936
- item: item.raw,
13937
- internalItem: item,
13956
+ item,
13938
13957
  index
13939
13958
  })) : undefined;
13940
13959
  if (hasSlot && !slotContent) return undefined;
@@ -17326,165 +17345,81 @@
17326
17345
 
17327
17346
  // Types
17328
17347
 
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
- };
17348
+ function weekInfo(locale) {
17349
+ // https://simplelocalize.io/data/locales/
17350
+ // then `new Intl.Locale(...).getWeekInfo()`
17351
+ const code = locale.slice(-2).toUpperCase();
17352
+ switch (true) {
17353
+ case locale === 'GB-alt-variant':
17354
+ {
17355
+ return {
17356
+ firstDay: 0,
17357
+ firstWeekSize: 4
17358
+ };
17359
+ }
17360
+ case locale === '001':
17361
+ {
17362
+ return {
17363
+ firstDay: 1,
17364
+ firstWeekSize: 1
17365
+ };
17366
+ }
17367
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17368
+ 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
17369
+ VE VI WS YE ZA ZW`.includes(code):
17370
+ {
17371
+ return {
17372
+ firstDay: 0,
17373
+ firstWeekSize: 1
17374
+ };
17375
+ }
17376
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17377
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17378
+ {
17379
+ return {
17380
+ firstDay: 1,
17381
+ firstWeekSize: 1
17382
+ };
17383
+ }
17384
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17385
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17386
+ {
17387
+ return {
17388
+ firstDay: 1,
17389
+ firstWeekSize: 4
17390
+ };
17391
+ }
17392
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17393
+ {
17394
+ return {
17395
+ firstDay: 6,
17396
+ firstWeekSize: 1
17397
+ };
17398
+ }
17399
+ case code === 'MV':
17400
+ {
17401
+ return {
17402
+ firstDay: 5,
17403
+ firstWeekSize: 1
17404
+ };
17405
+ }
17406
+ case code === 'PT':
17407
+ {
17408
+ return {
17409
+ firstDay: 0,
17410
+ firstWeekSize: 4
17411
+ };
17412
+ }
17413
+ default:
17414
+ return null;
17415
+ }
17416
+ }
17482
17417
  function getWeekArray(date, locale, firstDayOfWeek) {
17483
17418
  const weeks = [];
17484
17419
  let currentWeek = [];
17485
17420
  const firstDayOfMonth = startOfMonth(date);
17486
17421
  const lastDayOfMonth = endOfMonth(date);
17487
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17422
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17488
17423
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17489
17424
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17490
17425
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17515,7 +17450,7 @@
17515
17450
  return weeks;
17516
17451
  }
17517
17452
  function startOfWeek(date, locale, firstDayOfWeek) {
17518
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17453
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17519
17454
  const d = new Date(date);
17520
17455
  while (d.getDay() !== day) {
17521
17456
  d.setDate(d.getDate() - 1);
@@ -17524,7 +17459,7 @@
17524
17459
  }
17525
17460
  function endOfWeek(date, locale) {
17526
17461
  const d = new Date(date);
17527
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17462
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17528
17463
  while (d.getDay() !== lastDay) {
17529
17464
  d.setDate(d.getDate() + 1);
17530
17465
  }
@@ -17559,7 +17494,7 @@
17559
17494
  }
17560
17495
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17561
17496
  function getWeekdays(locale, firstDayOfWeek) {
17562
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17497
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17563
17498
  return createRange(7).map(i => {
17564
17499
  const weekday = new Date(sundayJanuarySecond2000);
17565
17500
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17807,6 +17742,24 @@
17807
17742
  function getMonth(date) {
17808
17743
  return date.getMonth();
17809
17744
  }
17745
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17746
+ const weekInfoFromLocale = weekInfo(locale);
17747
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17748
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17749
+ function firstWeekSize(year) {
17750
+ const yearStart = new Date(year, 0, 1);
17751
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17752
+ }
17753
+ let year = getYear(date);
17754
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17755
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17756
+ year++;
17757
+ }
17758
+ const yearStart = new Date(year, 0, 1);
17759
+ const size = firstWeekSize(year);
17760
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17761
+ return 1 + getDiff(date, d1w1, 'weeks');
17762
+ }
17810
17763
  function getDate(date) {
17811
17764
  return date.getDate();
17812
17765
  }
@@ -17946,10 +17899,12 @@
17946
17899
  return addMonths(date, amount);
17947
17900
  }
17948
17901
  getWeekArray(date, firstDayOfWeek) {
17949
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17902
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17903
+ return getWeekArray(date, this.locale, firstDay);
17950
17904
  }
17951
17905
  startOfWeek(date, firstDayOfWeek) {
17952
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17906
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17907
+ return startOfWeek(date, this.locale, firstDay);
17953
17908
  }
17954
17909
  endOfWeek(date) {
17955
17910
  return endOfWeek(date, this.locale);
@@ -18009,7 +17964,8 @@
18009
17964
  return getDiff(date, comparing, unit);
18010
17965
  }
18011
17966
  getWeekdays(firstDayOfWeek) {
18012
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17967
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17968
+ return getWeekdays(this.locale, firstDay);
18013
17969
  }
18014
17970
  getYear(date) {
18015
17971
  return getYear(date);
@@ -18017,6 +17973,10 @@
18017
17973
  getMonth(date) {
18018
17974
  return getMonth(date);
18019
17975
  }
17976
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17977
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17978
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17979
+ }
18020
17980
  getDate(date) {
18021
17981
  return getDate(date);
18022
17982
  }
@@ -18120,26 +18080,6 @@
18120
18080
  return createInstance(options, locale);
18121
18081
  }
18122
18082
 
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
18083
  // Types
18144
18084
 
18145
18085
  const makeVColorPickerProps = propsFactory({
@@ -18686,8 +18626,7 @@
18686
18626
  onClick: () => select(item, null)
18687
18627
  });
18688
18628
  return slots.item?.({
18689
- item: item.raw,
18690
- internalItem: item,
18629
+ item,
18691
18630
  index,
18692
18631
  props: itemProps
18693
18632
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -18738,13 +18677,11 @@
18738
18677
  };
18739
18678
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18740
18679
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18741
- item: item.raw,
18742
- internalItem: item,
18680
+ item,
18743
18681
  index,
18744
18682
  props: slotProps
18745
18683
  }) : slots.selection({
18746
- item: item.raw,
18747
- internalItem: item,
18684
+ item,
18748
18685
  index
18749
18686
  })) : undefined;
18750
18687
  if (hasSlot && !slotContent) return undefined;
@@ -22331,7 +22268,7 @@
22331
22268
  },
22332
22269
  firstDayOfWeek: {
22333
22270
  type: [Number, String],
22334
- default: 0
22271
+ default: undefined
22335
22272
  }
22336
22273
  }, 'calendar');
22337
22274
  function useCalendar(props) {
@@ -22354,14 +22291,12 @@
22354
22291
  return adapter.setMonth(date, value);
22355
22292
  }, v => adapter.getMonth(v));
22356
22293
  const weekDays = vue.computed(() => {
22357
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22358
-
22294
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22359
22295
  // Always generate all days, regardless of props.weekdays
22360
22296
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22361
22297
  });
22362
22298
  const weeksInMonth = vue.computed(() => {
22363
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22364
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22299
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22365
22300
  const days = weeks.flat();
22366
22301
 
22367
22302
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22425,7 +22360,7 @@
22425
22360
  });
22426
22361
  const weekNumbers = vue.computed(() => {
22427
22362
  return weeksInMonth.value.map(week => {
22428
- return week.length ? getWeek(adapter, week[0]) : null;
22363
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22429
22364
  });
22430
22365
  });
22431
22366
  function isDisabled(value) {
@@ -23914,17 +23849,7 @@
23914
23849
  "novalidate": true,
23915
23850
  "onReset": onReset,
23916
23851
  "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
- })]));
23852
+ }, [slots.default?.(form)]));
23928
23853
  return forwardRefs(form, formRef);
23929
23854
  }
23930
23855
  });
@@ -29333,7 +29258,7 @@
29333
29258
  };
29334
29259
  });
29335
29260
  }
29336
- const version$1 = "3.8.1-next.2025-04-18";
29261
+ const version$1 = "3.8.2-dev.2025-04-28";
29337
29262
  createVuetify$1.version = version$1;
29338
29263
 
29339
29264
  // Vue's inject() can only be used in setup
@@ -29358,7 +29283,7 @@
29358
29283
  ...options
29359
29284
  });
29360
29285
  };
29361
- const version = "3.8.1-next.2025-04-18";
29286
+ const version = "3.8.2-dev.2025-04-28";
29362
29287
  createVuetify.version = version;
29363
29288
 
29364
29289
  exports.blueprints = index;