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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/CHANGELOG.md +7 -16
  2. package/dist/json/attributes.json +2825 -2817
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +168 -168
  5. package/dist/json/tags.json +2 -0
  6. package/dist/json/web-types.json +5590 -5610
  7. package/dist/vuetify-labs.cjs +180 -249
  8. package/dist/vuetify-labs.css +25246 -23473
  9. package/dist/vuetify-labs.d.ts +715 -279
  10. package/dist/vuetify-labs.esm.js +180 -249
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +180 -249
  13. package/dist/vuetify-labs.min.css +4 -3
  14. package/dist/vuetify.cjs +156 -231
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +23931 -22162
  17. package/dist/vuetify.d.ts +753 -317
  18. package/dist/vuetify.esm.js +156 -231
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +156 -231
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +4 -3
  23. package/dist/vuetify.min.js +295 -280
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/blueprints/md3.js +18 -5
  26. package/lib/blueprints/md3.js.map +1 -1
  27. package/lib/components/VAlert/VAlert.css +215 -207
  28. package/lib/components/VApp/VApp.css +15 -16
  29. package/lib/components/VAppBar/VAppBar.css +12 -14
  30. package/lib/components/VAutocomplete/VAutocomplete.css +84 -85
  31. package/lib/components/VAutocomplete/VAutocomplete.d.ts +9 -18
  32. package/lib/components/VAutocomplete/VAutocomplete.js +3 -6
  33. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  34. package/lib/components/VAvatar/VAvatar.css +106 -108
  35. package/lib/components/VBadge/VBadge.css +77 -77
  36. package/lib/components/VBanner/VBanner.css +166 -161
  37. package/lib/components/VBottomNavigation/VBottomNavigation.css +64 -65
  38. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  39. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  40. package/lib/components/VBtn/VBtn.css +408 -372
  41. package/lib/components/VBtn/VBtn.sass +23 -10
  42. package/lib/components/VBtn/_variables.scss +1 -1
  43. package/lib/components/VBtnGroup/VBtnGroup.css +87 -63
  44. package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
  45. package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
  46. package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
  47. package/lib/components/VBtnGroup/VBtnGroup.sass +44 -17
  48. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  49. package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
  50. package/lib/components/VCard/VCard.css +302 -294
  51. package/lib/components/VCarousel/VCarousel.css +65 -63
  52. package/lib/components/VCarousel/VCarousel.sass +1 -1
  53. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  54. package/lib/components/VChip/VChip.css +411 -378
  55. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  56. package/lib/components/VCode/VCode.css +11 -10
  57. package/lib/components/VCode/VCode.sass +3 -0
  58. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  59. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  60. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  61. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  62. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  63. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  64. package/lib/components/VCombobox/VCombobox.css +84 -85
  65. package/lib/components/VCombobox/VCombobox.d.ts +9 -18
  66. package/lib/components/VCombobox/VCombobox.js +3 -6
  67. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  68. package/lib/components/VCounter/VCounter.css +5 -7
  69. package/lib/components/VDataTable/VDataTable.css +186 -189
  70. package/lib/components/VDataTable/VDataTable.sass +11 -21
  71. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  72. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  73. package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
  74. package/lib/components/VDatePicker/VDatePickerControls.css +57 -55
  75. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  76. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  77. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
  78. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  79. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  80. package/lib/components/VDialog/VDialog.css +98 -98
  81. package/lib/components/VDivider/VDivider.css +52 -52
  82. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  83. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  84. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  85. package/lib/components/VFab/VFab.css +73 -78
  86. package/lib/components/VFab/VFab.sass +4 -5
  87. package/lib/components/VField/VField.css +589 -541
  88. package/lib/components/VField/VField.sass +11 -4
  89. package/lib/components/VField/_variables.scss +1 -1
  90. package/lib/components/VFileInput/VFileInput.css +28 -30
  91. package/lib/components/VFooter/VFooter.css +36 -38
  92. package/lib/components/VForm/VForm.d.ts +531 -111
  93. package/lib/components/VForm/VForm.js +1 -11
  94. package/lib/components/VForm/VForm.js.map +1 -1
  95. package/lib/components/VGrid/VGrid.css +592 -565
  96. package/lib/components/VIcon/VIcon.css +53 -52
  97. package/lib/components/VImg/VImg.css +51 -50
  98. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  99. package/lib/components/VInput/VInput.css +147 -136
  100. package/lib/components/VInput/VInput.d.ts +1 -1
  101. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  102. package/lib/components/VKbd/VKbd.css +11 -13
  103. package/lib/components/VLabel/VLabel.css +15 -16
  104. package/lib/components/VLayout/VLayout.css +8 -10
  105. package/lib/components/VLayout/VLayoutItem.css +7 -8
  106. package/lib/components/VList/VList.css +108 -104
  107. package/lib/components/VList/VList.sass +1 -1
  108. package/lib/components/VList/VListItem.css +452 -440
  109. package/lib/components/VList/VListItem.sass +1 -2
  110. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  111. package/lib/components/VMain/VMain.css +30 -32
  112. package/lib/components/VMenu/VMenu.css +19 -21
  113. package/lib/components/VMessages/VMessages.css +15 -17
  114. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +104 -102
  115. package/lib/components/VNumberInput/VNumberInput.css +46 -48
  116. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  117. package/lib/components/VOverlay/VOverlay.css +64 -61
  118. package/lib/components/VOverlay/VOverlay.sass +13 -14
  119. package/lib/components/VOverlay/_variables.scss +1 -1
  120. package/lib/components/VPagination/VPagination.css +8 -10
  121. package/lib/components/VParallax/VParallax.css +6 -8
  122. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  123. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  124. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  125. package/lib/components/VRating/VRating.css +53 -52
  126. package/lib/components/VResponsive/VResponsive.css +26 -25
  127. package/lib/components/VSelect/VSelect.css +51 -53
  128. package/lib/components/VSelect/VSelect.d.ts +9 -18
  129. package/lib/components/VSelect/VSelect.js +3 -6
  130. package/lib/components/VSelect/VSelect.js.map +1 -1
  131. package/lib/components/VSelectionControl/VSelectionControl.css +100 -98
  132. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  133. package/lib/components/VSheet/VSheet.css +36 -38
  134. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  135. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  136. package/lib/components/VSlider/VSlider.css +57 -53
  137. package/lib/components/VSlider/VSliderThumb.css +153 -142
  138. package/lib/components/VSlider/VSliderTrack.css +174 -155
  139. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  140. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  141. package/lib/components/VStepper/VStepper.css +56 -55
  142. package/lib/components/VStepper/VStepperItem.css +115 -112
  143. package/lib/components/VSwitch/VSwitch.css +139 -129
  144. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  145. package/lib/components/VTable/VTable.css +141 -140
  146. package/lib/components/VTable/VTable.sass +2 -4
  147. package/lib/components/VTabs/VTab.css +29 -30
  148. package/lib/components/VTabs/VTabs.css +65 -59
  149. package/lib/components/VTextField/VTextField.css +85 -77
  150. package/lib/components/VTextarea/VTextarea.css +40 -48
  151. package/lib/components/VTextarea/VTextarea.sass +2 -4
  152. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  153. package/lib/components/VTimeline/VTimeline.css +427 -388
  154. package/lib/components/VToolbar/VToolbar.css +144 -137
  155. package/lib/components/VTooltip/VTooltip.css +23 -27
  156. package/lib/components/VTooltip/VTooltip.sass +6 -8
  157. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  158. package/lib/components/VWindow/VWindow.css +70 -73
  159. package/lib/composables/calendar.d.ts +3 -2
  160. package/lib/composables/calendar.js +5 -7
  161. package/lib/composables/calendar.js.map +1 -1
  162. package/lib/composables/date/DateAdapter.d.ts +1 -0
  163. package/lib/composables/date/DateAdapter.js.map +1 -1
  164. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  165. package/lib/composables/date/adapters/vuetify.js +101 -160
  166. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  167. package/lib/composables/date/date.d.ts +1 -1
  168. package/lib/composables/date/date.js +0 -20
  169. package/lib/composables/date/date.js.map +1 -1
  170. package/lib/composables/filter.js +2 -1
  171. package/lib/composables/filter.js.map +1 -1
  172. package/lib/composables/theme.js +5 -5
  173. package/lib/composables/theme.js.map +1 -1
  174. package/lib/composables/validation.js +5 -0
  175. package/lib/composables/validation.js.map +1 -1
  176. package/lib/directives/ripple/VRipple.css +36 -38
  177. package/lib/entry-bundler.d.ts +1 -0
  178. package/lib/entry-bundler.js +1 -1
  179. package/lib/entry-bundler.js.map +1 -1
  180. package/lib/framework.d.ts +62 -59
  181. package/lib/framework.js +1 -1
  182. package/lib/framework.js.map +1 -1
  183. package/lib/labs/VCalendar/VCalendar.css +225 -219
  184. package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
  185. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  186. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  187. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  188. package/lib/labs/VCalendar/VCalendarInterval.js +25 -19
  189. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  190. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  191. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  192. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  193. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  194. package/lib/labs/VFileUpload/VFileUpload.css +77 -74
  195. package/lib/labs/VIconBtn/VIconBtn.css +164 -162
  196. package/lib/labs/VPicker/VPicker.css +63 -58
  197. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  198. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  199. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  200. package/lib/labs/VTreeview/VTreeviewItem.css +28 -30
  201. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -3
  202. package/lib/labs/entry-bundler.d.ts +1 -0
  203. package/lib/styles/elements/_global.sass +1 -1
  204. package/lib/styles/generic/_colors.scss +3 -3
  205. package/lib/styles/generic/_layers.scss +1 -13
  206. package/lib/styles/generic/_reset.scss +1 -0
  207. package/lib/styles/generic/_transitions.scss +32 -32
  208. package/lib/styles/main.css +16142 -14667
  209. package/lib/styles/settings/_utilities.scss +5 -0
  210. package/lib/styles/settings/_variables.scss +3 -2
  211. package/lib/styles/tools/_bootable.sass +3 -0
  212. package/lib/styles/tools/_border.sass +4 -4
  213. package/lib/styles/tools/_display.sass +10 -0
  214. package/lib/styles/tools/_elevation.sass +2 -2
  215. package/lib/styles/tools/_index.sass +2 -0
  216. package/lib/styles/tools/_layer.scss +2 -4
  217. package/lib/styles/tools/_position.sass +2 -2
  218. package/lib/styles/tools/_radius.sass +10 -0
  219. package/lib/styles/tools/_rounded.sass +2 -2
  220. package/lib/styles/tools/_utilities.sass +5 -1
  221. package/lib/styles/utilities/_elevation.scss +1 -1
  222. package/package.json +46 -45
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-next.2025-04-18
2
+ * Vuetify v3.8.2-dev.2025-04-28
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2281,7 +2281,7 @@ const makeThemeProps = propsFactory({
2281
2281
  }, 'theme');
2282
2282
  function genDefaults$2() {
2283
2283
  return {
2284
- defaultTheme: 'system',
2284
+ defaultTheme: 'light',
2285
2285
  prefix: 'v-',
2286
2286
  variations: {
2287
2287
  colors: [],
@@ -2333,8 +2333,8 @@ function genDefaults$2() {
2333
2333
  surface: '#212121',
2334
2334
  'surface-bright': '#ccbfd6',
2335
2335
  'surface-light': '#424242',
2336
- 'surface-variant': '#a3a3a3',
2337
- 'on-surface-variant': '#424242',
2336
+ 'surface-variant': '#c8c8c8',
2337
+ 'on-surface-variant': '#000000',
2338
2338
  primary: '#2196F3',
2339
2339
  'primary-darken-1': '#277CC1',
2340
2340
  secondary: '#54B6B2',
@@ -2366,7 +2366,7 @@ function genDefaults$2() {
2366
2366
  },
2367
2367
  stylesheetId: 'vuetify-theme-stylesheet',
2368
2368
  scoped: false,
2369
- unimportant: true,
2369
+ unimportant: false,
2370
2370
  utilities: true
2371
2371
  };
2372
2372
  }
@@ -2524,7 +2524,7 @@ function createTheme(options) {
2524
2524
  }
2525
2525
  lines.push(...bgLines, ...fgLines);
2526
2526
  }
2527
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2527
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
2528
2528
  });
2529
2529
  const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
2530
2530
  const themeNames = computed(() => Object.keys(computedThemes.value));
@@ -4180,9 +4180,15 @@ function useVariant(props) {
4180
4180
  };
4181
4181
  }
4182
4182
 
4183
+ // Types
4184
+
4183
4185
  const makeVBtnGroupProps = propsFactory({
4184
4186
  baseColor: String,
4185
4187
  divided: Boolean,
4188
+ direction: {
4189
+ type: String,
4190
+ default: 'horizontal'
4191
+ },
4186
4192
  ...makeBorderProps(),
4187
4193
  ...makeComponentProps(),
4188
4194
  ...makeDensityProps(),
@@ -4216,7 +4222,7 @@ const VBtnGroup = genericComponent()({
4216
4222
  } = useRounded(props);
4217
4223
  provideDefaults({
4218
4224
  VBtn: {
4219
- height: 'auto',
4225
+ height: props.direction === 'horizontal' ? 'auto' : null,
4220
4226
  baseColor: toRef(props, 'baseColor'),
4221
4227
  color: toRef(props, 'color'),
4222
4228
  density: toRef(props, 'density'),
@@ -4226,7 +4232,7 @@ const VBtnGroup = genericComponent()({
4226
4232
  });
4227
4233
  useRender(() => {
4228
4234
  return createVNode(props.tag, {
4229
- "class": ['v-btn-group', {
4235
+ "class": ['v-btn-group', `v-btn-group--${props.direction}`, {
4230
4236
  'v-btn-group--divided': props.divided
4231
4237
  }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
4232
4238
  "style": props.style
@@ -6963,6 +6969,11 @@ function useValidation(props) {
6963
6969
  }
6964
6970
  async function validate() {
6965
6971
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6972
+ if (props.disabled || props.readonly) {
6973
+ internalErrorMessages.value = [];
6974
+ isValidating.value = false;
6975
+ return internalErrorMessages.value;
6976
+ }
6966
6977
  const results = [];
6967
6978
  isValidating.value = true;
6968
6979
  for (const rule of props.rules) {
@@ -13006,8 +13017,7 @@ const VSelect = genericComponent()({
13006
13017
  onClick: () => select(item, null)
13007
13018
  });
13008
13019
  return slots.item?.({
13009
- item: item.raw,
13010
- internalItem: item,
13020
+ item,
13011
13021
  index,
13012
13022
  props: itemProps
13013
13023
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13055,13 +13065,11 @@ const VSelect = genericComponent()({
13055
13065
  };
13056
13066
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13057
13067
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13058
- item: item.raw,
13059
- internalItem: item,
13068
+ item,
13060
13069
  index,
13061
13070
  props: slotProps
13062
13071
  }) : slots.selection({
13063
- item: item.raw,
13064
- internalItem: item,
13072
+ item,
13065
13073
  index
13066
13074
  })) : undefined;
13067
13075
  if (hasSlot && !slotContent) return undefined;
@@ -13127,6 +13135,7 @@ const VSelect = genericComponent()({
13127
13135
  // Composables
13128
13136
  const defaultFilter = (value, query, item) => {
13129
13137
  if (value == null || query == null) return -1;
13138
+ if (!query.length) return 0;
13130
13139
  value = value.toString().toLocaleLowerCase();
13131
13140
  query = query.toString().toLocaleLowerCase();
13132
13141
  const result = [];
@@ -13139,7 +13148,7 @@ const defaultFilter = (value, query, item) => {
13139
13148
  };
13140
13149
  function normaliseMatch(match, query) {
13141
13150
  if (match == null || typeof match === 'boolean' || match === -1) return;
13142
- if (typeof match === 'number') return [[match, query.length]];
13151
+ if (typeof match === 'number') return [[match, match + query.length]];
13143
13152
  if (Array.isArray(match[0])) return match;
13144
13153
  return [match];
13145
13154
  }
@@ -13607,8 +13616,7 @@ const VAutocomplete = genericComponent()({
13607
13616
  onClick: () => select(item, null)
13608
13617
  });
13609
13618
  return slots.item?.({
13610
- item: item.raw,
13611
- internalItem: item,
13619
+ item,
13612
13620
  index,
13613
13621
  props: itemProps
13614
13622
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13659,13 +13667,11 @@ const VAutocomplete = genericComponent()({
13659
13667
  };
13660
13668
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13661
13669
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13662
- item: item.raw,
13663
- internalItem: item,
13670
+ item,
13664
13671
  index,
13665
13672
  props: slotProps
13666
13673
  }) : slots.selection({
13667
- item: item.raw,
13668
- internalItem: item,
13674
+ item,
13669
13675
  index
13670
13676
  })) : undefined;
13671
13677
  if (hasSlot && !slotContent) return undefined;
@@ -17057,165 +17063,81 @@ const VPicker = genericComponent()({
17057
17063
 
17058
17064
  // Types
17059
17065
 
17060
- const firstDay = {
17061
- '001': 1,
17062
- AD: 1,
17063
- AE: 6,
17064
- AF: 6,
17065
- AG: 0,
17066
- AI: 1,
17067
- AL: 1,
17068
- AM: 1,
17069
- AN: 1,
17070
- AR: 1,
17071
- AS: 0,
17072
- AT: 1,
17073
- AU: 1,
17074
- AX: 1,
17075
- AZ: 1,
17076
- BA: 1,
17077
- BD: 0,
17078
- BE: 1,
17079
- BG: 1,
17080
- BH: 6,
17081
- BM: 1,
17082
- BN: 1,
17083
- BR: 0,
17084
- BS: 0,
17085
- BT: 0,
17086
- BW: 0,
17087
- BY: 1,
17088
- BZ: 0,
17089
- CA: 0,
17090
- CH: 1,
17091
- CL: 1,
17092
- CM: 1,
17093
- CN: 1,
17094
- CO: 0,
17095
- CR: 1,
17096
- CY: 1,
17097
- CZ: 1,
17098
- DE: 1,
17099
- DJ: 6,
17100
- DK: 1,
17101
- DM: 0,
17102
- DO: 0,
17103
- DZ: 6,
17104
- EC: 1,
17105
- EE: 1,
17106
- EG: 6,
17107
- ES: 1,
17108
- ET: 0,
17109
- FI: 1,
17110
- FJ: 1,
17111
- FO: 1,
17112
- FR: 1,
17113
- GB: 1,
17114
- 'GB-alt-variant': 0,
17115
- GE: 1,
17116
- GF: 1,
17117
- GP: 1,
17118
- GR: 1,
17119
- GT: 0,
17120
- GU: 0,
17121
- HK: 0,
17122
- HN: 0,
17123
- HR: 1,
17124
- HU: 1,
17125
- ID: 0,
17126
- IE: 1,
17127
- IL: 0,
17128
- IN: 0,
17129
- IQ: 6,
17130
- IR: 6,
17131
- IS: 1,
17132
- IT: 1,
17133
- JM: 0,
17134
- JO: 6,
17135
- JP: 0,
17136
- KE: 0,
17137
- KG: 1,
17138
- KH: 0,
17139
- KR: 0,
17140
- KW: 6,
17141
- KZ: 1,
17142
- LA: 0,
17143
- LB: 1,
17144
- LI: 1,
17145
- LK: 1,
17146
- LT: 1,
17147
- LU: 1,
17148
- LV: 1,
17149
- LY: 6,
17150
- MC: 1,
17151
- MD: 1,
17152
- ME: 1,
17153
- MH: 0,
17154
- MK: 1,
17155
- MM: 0,
17156
- MN: 1,
17157
- MO: 0,
17158
- MQ: 1,
17159
- MT: 0,
17160
- MV: 5,
17161
- MX: 0,
17162
- MY: 1,
17163
- MZ: 0,
17164
- NI: 0,
17165
- NL: 1,
17166
- NO: 1,
17167
- NP: 0,
17168
- NZ: 1,
17169
- OM: 6,
17170
- PA: 0,
17171
- PE: 0,
17172
- PH: 0,
17173
- PK: 0,
17174
- PL: 1,
17175
- PR: 0,
17176
- PT: 0,
17177
- PY: 0,
17178
- QA: 6,
17179
- RE: 1,
17180
- RO: 1,
17181
- RS: 1,
17182
- RU: 1,
17183
- SA: 0,
17184
- SD: 6,
17185
- SE: 1,
17186
- SG: 0,
17187
- SI: 1,
17188
- SK: 1,
17189
- SM: 1,
17190
- SV: 0,
17191
- SY: 6,
17192
- TH: 0,
17193
- TJ: 1,
17194
- TM: 1,
17195
- TR: 1,
17196
- TT: 0,
17197
- TW: 0,
17198
- UA: 1,
17199
- UM: 0,
17200
- US: 0,
17201
- UY: 1,
17202
- UZ: 1,
17203
- VA: 1,
17204
- VE: 0,
17205
- VI: 0,
17206
- VN: 1,
17207
- WS: 0,
17208
- XK: 1,
17209
- YE: 0,
17210
- ZA: 0,
17211
- ZW: 0
17212
- };
17066
+ function weekInfo(locale) {
17067
+ // https://simplelocalize.io/data/locales/
17068
+ // then `new Intl.Locale(...).getWeekInfo()`
17069
+ const code = locale.slice(-2).toUpperCase();
17070
+ switch (true) {
17071
+ case locale === 'GB-alt-variant':
17072
+ {
17073
+ return {
17074
+ firstDay: 0,
17075
+ firstWeekSize: 4
17076
+ };
17077
+ }
17078
+ case locale === '001':
17079
+ {
17080
+ return {
17081
+ firstDay: 1,
17082
+ firstWeekSize: 1
17083
+ };
17084
+ }
17085
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17086
+ 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
17087
+ VE VI WS YE ZA ZW`.includes(code):
17088
+ {
17089
+ return {
17090
+ firstDay: 0,
17091
+ firstWeekSize: 1
17092
+ };
17093
+ }
17094
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17095
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17096
+ {
17097
+ return {
17098
+ firstDay: 1,
17099
+ firstWeekSize: 1
17100
+ };
17101
+ }
17102
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17103
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17104
+ {
17105
+ return {
17106
+ firstDay: 1,
17107
+ firstWeekSize: 4
17108
+ };
17109
+ }
17110
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17111
+ {
17112
+ return {
17113
+ firstDay: 6,
17114
+ firstWeekSize: 1
17115
+ };
17116
+ }
17117
+ case code === 'MV':
17118
+ {
17119
+ return {
17120
+ firstDay: 5,
17121
+ firstWeekSize: 1
17122
+ };
17123
+ }
17124
+ case code === 'PT':
17125
+ {
17126
+ return {
17127
+ firstDay: 0,
17128
+ firstWeekSize: 4
17129
+ };
17130
+ }
17131
+ default:
17132
+ return null;
17133
+ }
17134
+ }
17213
17135
  function getWeekArray(date, locale, firstDayOfWeek) {
17214
17136
  const weeks = [];
17215
17137
  let currentWeek = [];
17216
17138
  const firstDayOfMonth = startOfMonth(date);
17217
17139
  const lastDayOfMonth = endOfMonth(date);
17218
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17140
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17219
17141
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17220
17142
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17221
17143
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17246,7 +17168,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17246
17168
  return weeks;
17247
17169
  }
17248
17170
  function startOfWeek(date, locale, firstDayOfWeek) {
17249
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17171
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17250
17172
  const d = new Date(date);
17251
17173
  while (d.getDay() !== day) {
17252
17174
  d.setDate(d.getDate() - 1);
@@ -17255,7 +17177,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17255
17177
  }
17256
17178
  function endOfWeek(date, locale) {
17257
17179
  const d = new Date(date);
17258
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17180
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17259
17181
  while (d.getDay() !== lastDay) {
17260
17182
  d.setDate(d.getDate() + 1);
17261
17183
  }
@@ -17290,7 +17212,7 @@ function date(value) {
17290
17212
  }
17291
17213
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17292
17214
  function getWeekdays(locale, firstDayOfWeek) {
17293
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17215
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17294
17216
  return createRange(7).map(i => {
17295
17217
  const weekday = new Date(sundayJanuarySecond2000);
17296
17218
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17538,6 +17460,24 @@ function getYear(date) {
17538
17460
  function getMonth(date) {
17539
17461
  return date.getMonth();
17540
17462
  }
17463
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17464
+ const weekInfoFromLocale = weekInfo(locale);
17465
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17466
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17467
+ function firstWeekSize(year) {
17468
+ const yearStart = new Date(year, 0, 1);
17469
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17470
+ }
17471
+ let year = getYear(date);
17472
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17473
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17474
+ year++;
17475
+ }
17476
+ const yearStart = new Date(year, 0, 1);
17477
+ const size = firstWeekSize(year);
17478
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17479
+ return 1 + getDiff(date, d1w1, 'weeks');
17480
+ }
17541
17481
  function getDate(date) {
17542
17482
  return date.getDate();
17543
17483
  }
@@ -17677,10 +17617,12 @@ class VuetifyDateAdapter {
17677
17617
  return addMonths(date, amount);
17678
17618
  }
17679
17619
  getWeekArray(date, firstDayOfWeek) {
17680
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17620
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17621
+ return getWeekArray(date, this.locale, firstDay);
17681
17622
  }
17682
17623
  startOfWeek(date, firstDayOfWeek) {
17683
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17624
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17625
+ return startOfWeek(date, this.locale, firstDay);
17684
17626
  }
17685
17627
  endOfWeek(date) {
17686
17628
  return endOfWeek(date, this.locale);
@@ -17740,7 +17682,8 @@ class VuetifyDateAdapter {
17740
17682
  return getDiff(date, comparing, unit);
17741
17683
  }
17742
17684
  getWeekdays(firstDayOfWeek) {
17743
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17685
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17686
+ return getWeekdays(this.locale, firstDay);
17744
17687
  }
17745
17688
  getYear(date) {
17746
17689
  return getYear(date);
@@ -17748,6 +17691,10 @@ class VuetifyDateAdapter {
17748
17691
  getMonth(date) {
17749
17692
  return getMonth(date);
17750
17693
  }
17694
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17695
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17696
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17697
+ }
17751
17698
  getDate(date) {
17752
17699
  return getDate(date);
17753
17700
  }
@@ -17851,26 +17798,6 @@ function useDate() {
17851
17798
  return createInstance(options, locale);
17852
17799
  }
17853
17800
 
17854
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
17855
- function getWeek(adapter, value) {
17856
- const date = adapter.toJsDate(value);
17857
- let year = date.getFullYear();
17858
- let d1w1 = new Date(year, 0, 1);
17859
- if (date < d1w1) {
17860
- year = year - 1;
17861
- d1w1 = new Date(year, 0, 1);
17862
- } else {
17863
- const tv = new Date(year + 1, 0, 1);
17864
- if (date >= tv) {
17865
- year = year + 1;
17866
- d1w1 = tv;
17867
- }
17868
- }
17869
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
17870
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
17871
- return Math.floor(diffDays / 7) + 1;
17872
- }
17873
-
17874
17801
  // Types
17875
17802
 
17876
17803
  const makeVColorPickerProps = propsFactory({
@@ -18417,8 +18344,7 @@ const VCombobox = genericComponent()({
18417
18344
  onClick: () => select(item, null)
18418
18345
  });
18419
18346
  return slots.item?.({
18420
- item: item.raw,
18421
- internalItem: item,
18347
+ item,
18422
18348
  index,
18423
18349
  props: itemProps
18424
18350
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -18469,13 +18395,11 @@ const VCombobox = genericComponent()({
18469
18395
  };
18470
18396
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18471
18397
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18472
- item: item.raw,
18473
- internalItem: item,
18398
+ item,
18474
18399
  index,
18475
18400
  props: slotProps
18476
18401
  }) : slots.selection({
18477
- item: item.raw,
18478
- internalItem: item,
18402
+ item,
18479
18403
  index
18480
18404
  })) : undefined;
18481
18405
  if (hasSlot && !slotContent) return undefined;
@@ -22062,7 +21986,7 @@ const makeCalendarProps = propsFactory({
22062
21986
  },
22063
21987
  firstDayOfWeek: {
22064
21988
  type: [Number, String],
22065
- default: 0
21989
+ default: undefined
22066
21990
  }
22067
21991
  }, 'calendar');
22068
21992
  function useCalendar(props) {
@@ -22085,14 +22009,12 @@ function useCalendar(props) {
22085
22009
  return adapter.setMonth(date, value);
22086
22010
  }, v => adapter.getMonth(v));
22087
22011
  const weekDays = computed(() => {
22088
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22089
-
22012
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22090
22013
  // Always generate all days, regardless of props.weekdays
22091
22014
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22092
22015
  });
22093
22016
  const weeksInMonth = computed(() => {
22094
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22095
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22017
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22096
22018
  const days = weeks.flat();
22097
22019
 
22098
22020
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22156,7 +22078,7 @@ function useCalendar(props) {
22156
22078
  });
22157
22079
  const weekNumbers = computed(() => {
22158
22080
  return weeksInMonth.value.map(week => {
22159
- return week.length ? getWeek(adapter, week[0]) : null;
22081
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22160
22082
  });
22161
22083
  });
22162
22084
  function isDisabled(value) {
@@ -23645,17 +23567,7 @@ const VForm = genericComponent()({
23645
23567
  "novalidate": true,
23646
23568
  "onReset": onReset,
23647
23569
  "onSubmit": onSubmit
23648
- }, [slots.default?.({
23649
- errors: form.errors.value,
23650
- isDisabled: form.isDisabled.value,
23651
- isReadonly: form.isReadonly.value,
23652
- isValidating: form.isValidating.value,
23653
- isValid: form.isValid.value,
23654
- items: form.items.value,
23655
- validate: form.validate,
23656
- reset: form.reset,
23657
- resetValidation: form.resetValidation
23658
- })]));
23570
+ }, [slots.default?.(form)]));
23659
23571
  return forwardRefs(form, formRef);
23660
23572
  }
23661
23573
  });
@@ -28714,37 +28626,43 @@ const VCalendarInterval = genericComponent()({
28714
28626
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28715
28627
  }, [createVNode("div", {
28716
28628
  "class": "v-calendar-day__row-label"
28717
- }, [createVNode("slot", {
28629
+ }, [createVNode(resolveComponent("slot"), {
28718
28630
  "name": "intervalFormat",
28719
28631
  "interval": interval.value
28720
- }, [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : ''])]), createVNode("div", {
28632
+ }, {
28633
+ default: () => [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '']
28634
+ })]), createVNode("div", {
28721
28635
  "class": "v-calendar-day__row-hairline"
28722
28636
  }, null), createVNode("div", {
28723
28637
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28724
- }, [createVNode("slot", {
28638
+ }, [createVNode(resolveComponent("slot"), {
28725
28639
  "name": "intervalBody",
28726
28640
  "interval": interval.value
28727
- }, [interval.value.events?.map(event => createVNode(VCalendarIntervalEvent, {
28728
- "event": event,
28729
- "interval": interval.value,
28730
- "intervalDivisions": props.intervalDivisions,
28731
- "intervalDuration": props.intervalDuration,
28732
- "intervalHeight": props.intervalHeight
28733
- }, null))])])]) : createVNode("div", {
28641
+ }, {
28642
+ default: () => [interval.value.events?.map(event => createVNode(VCalendarIntervalEvent, {
28643
+ "event": event,
28644
+ "interval": interval.value,
28645
+ "intervalDivisions": props.intervalDivisions,
28646
+ "intervalDuration": props.intervalDuration,
28647
+ "intervalHeight": props.intervalHeight
28648
+ }, null))]
28649
+ })])]) : createVNode("div", {
28734
28650
  "class": "v-calendar-day__row-without-label",
28735
28651
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28736
28652
  }, [createVNode("div", {
28737
28653
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28738
- }, [createVNode("slot", {
28654
+ }, [createVNode(resolveComponent("slot"), {
28739
28655
  "name": "intervalBody",
28740
28656
  "interval": interval.value
28741
- }, [interval.value.events?.filter(event => !event.allDay).map(event => createVNode(VCalendarIntervalEvent, {
28742
- "event": event,
28743
- "interval": interval.value,
28744
- "intervalDivisions": props.intervalDivisions,
28745
- "intervalDuration": props.intervalDuration,
28746
- "intervalHeight": props.intervalHeight
28747
- }, null))])])]);
28657
+ }, {
28658
+ default: () => [interval.value.events?.filter(event => !event.allDay).map(event => createVNode(VCalendarIntervalEvent, {
28659
+ "event": event,
28660
+ "interval": interval.value,
28661
+ "intervalDivisions": props.intervalDivisions,
28662
+ "intervalDuration": props.intervalDuration,
28663
+ "intervalHeight": props.intervalHeight
28664
+ }, null))]
28665
+ })])]);
28748
28666
  });
28749
28667
  return {
28750
28668
  interval
@@ -31653,7 +31571,7 @@ function createVuetify$1() {
31653
31571
  };
31654
31572
  });
31655
31573
  }
31656
- const version$1 = "3.8.1-next.2025-04-18";
31574
+ const version$1 = "3.8.2-dev.2025-04-28";
31657
31575
  createVuetify$1.version = version$1;
31658
31576
 
31659
31577
  // Vue's inject() can only be used in setup
@@ -31836,7 +31754,7 @@ const md3 = {
31836
31754
  flat: true
31837
31755
  },
31838
31756
  VAutocomplete: {
31839
- variant: 'filled'
31757
+ variant: 'outlined'
31840
31758
  },
31841
31759
  VBanner: {
31842
31760
  color: 'primary'
@@ -31865,7 +31783,10 @@ const md3 = {
31865
31783
  rounded: 'sm'
31866
31784
  },
31867
31785
  VCombobox: {
31868
- variant: 'filled'
31786
+ variant: 'outlined'
31787
+ },
31788
+ VDateInput: {
31789
+ variant: 'outlined'
31869
31790
  },
31870
31791
  VDatePicker: {
31871
31792
  controlHeight: 48,
@@ -31879,6 +31800,9 @@ const md3 = {
31879
31800
  rounded: 'circle'
31880
31801
  }
31881
31802
  },
31803
+ VFileInput: {
31804
+ variant: 'outlined'
31805
+ },
31882
31806
  VNavigationDrawer: {
31883
31807
  // VList: {
31884
31808
  // nav: true,
@@ -31887,8 +31811,15 @@ const md3 = {
31887
31811
  // },
31888
31812
  // },
31889
31813
  },
31814
+ VNumberInput: {
31815
+ variant: 'outlined',
31816
+ VBtn: {
31817
+ color: undefined,
31818
+ rounded: undefined
31819
+ }
31820
+ },
31890
31821
  VSelect: {
31891
- variant: 'filled'
31822
+ variant: 'outlined'
31892
31823
  },
31893
31824
  VSlider: {
31894
31825
  color: 'primary'
@@ -31897,10 +31828,10 @@ const md3 = {
31897
31828
  color: 'primary'
31898
31829
  },
31899
31830
  VTextarea: {
31900
- variant: 'filled'
31831
+ variant: 'outlined'
31901
31832
  },
31902
31833
  VTextField: {
31903
- variant: 'filled'
31834
+ variant: 'outlined'
31904
31835
  },
31905
31836
  VToolbar: {
31906
31837
  VBtn: {
@@ -31938,7 +31869,7 @@ var index = /*#__PURE__*/Object.freeze({
31938
31869
 
31939
31870
  /* eslint-disable local-rules/sort-imports */
31940
31871
 
31941
- const version = "3.8.1-next.2025-04-18";
31872
+ const version = "3.8.2-dev.2025-04-28";
31942
31873
 
31943
31874
  /* eslint-disable local-rules/sort-imports */
31944
31875