@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
  */
@@ -2285,7 +2285,7 @@
2285
2285
  }, 'theme');
2286
2286
  function genDefaults$2() {
2287
2287
  return {
2288
- defaultTheme: 'system',
2288
+ defaultTheme: 'light',
2289
2289
  prefix: 'v-',
2290
2290
  variations: {
2291
2291
  colors: [],
@@ -2337,8 +2337,8 @@
2337
2337
  surface: '#212121',
2338
2338
  'surface-bright': '#ccbfd6',
2339
2339
  'surface-light': '#424242',
2340
- 'surface-variant': '#a3a3a3',
2341
- 'on-surface-variant': '#424242',
2340
+ 'surface-variant': '#c8c8c8',
2341
+ 'on-surface-variant': '#000000',
2342
2342
  primary: '#2196F3',
2343
2343
  'primary-darken-1': '#277CC1',
2344
2344
  secondary: '#54B6B2',
@@ -2370,7 +2370,7 @@
2370
2370
  },
2371
2371
  stylesheetId: 'vuetify-theme-stylesheet',
2372
2372
  scoped: false,
2373
- unimportant: true,
2373
+ unimportant: false,
2374
2374
  utilities: true
2375
2375
  };
2376
2376
  }
@@ -2528,7 +2528,7 @@
2528
2528
  }
2529
2529
  lines.push(...bgLines, ...fgLines);
2530
2530
  }
2531
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2531
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
2532
2532
  });
2533
2533
  const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
2534
2534
  const themeNames = vue.computed(() => Object.keys(computedThemes.value));
@@ -4184,9 +4184,15 @@
4184
4184
  };
4185
4185
  }
4186
4186
 
4187
+ // Types
4188
+
4187
4189
  const makeVBtnGroupProps = propsFactory({
4188
4190
  baseColor: String,
4189
4191
  divided: Boolean,
4192
+ direction: {
4193
+ type: String,
4194
+ default: 'horizontal'
4195
+ },
4190
4196
  ...makeBorderProps(),
4191
4197
  ...makeComponentProps(),
4192
4198
  ...makeDensityProps(),
@@ -4220,7 +4226,7 @@
4220
4226
  } = useRounded(props);
4221
4227
  provideDefaults({
4222
4228
  VBtn: {
4223
- height: 'auto',
4229
+ height: props.direction === 'horizontal' ? 'auto' : null,
4224
4230
  baseColor: vue.toRef(props, 'baseColor'),
4225
4231
  color: vue.toRef(props, 'color'),
4226
4232
  density: vue.toRef(props, 'density'),
@@ -4230,7 +4236,7 @@
4230
4236
  });
4231
4237
  useRender(() => {
4232
4238
  return vue.createVNode(props.tag, {
4233
- "class": ['v-btn-group', {
4239
+ "class": ['v-btn-group', `v-btn-group--${props.direction}`, {
4234
4240
  'v-btn-group--divided': props.divided
4235
4241
  }, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
4236
4242
  "style": props.style
@@ -6967,6 +6973,11 @@
6967
6973
  }
6968
6974
  async function validate() {
6969
6975
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6976
+ if (props.disabled || props.readonly) {
6977
+ internalErrorMessages.value = [];
6978
+ isValidating.value = false;
6979
+ return internalErrorMessages.value;
6980
+ }
6970
6981
  const results = [];
6971
6982
  isValidating.value = true;
6972
6983
  for (const rule of props.rules) {
@@ -13010,8 +13021,7 @@
13010
13021
  onClick: () => select(item, null)
13011
13022
  });
13012
13023
  return slots.item?.({
13013
- item: item.raw,
13014
- internalItem: item,
13024
+ item,
13015
13025
  index,
13016
13026
  props: itemProps
13017
13027
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13059,13 +13069,11 @@
13059
13069
  };
13060
13070
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13061
13071
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13062
- item: item.raw,
13063
- internalItem: item,
13072
+ item,
13064
13073
  index,
13065
13074
  props: slotProps
13066
13075
  }) : slots.selection({
13067
- item: item.raw,
13068
- internalItem: item,
13076
+ item,
13069
13077
  index
13070
13078
  })) : undefined;
13071
13079
  if (hasSlot && !slotContent) return undefined;
@@ -13131,6 +13139,7 @@
13131
13139
  // Composables
13132
13140
  const defaultFilter = (value, query, item) => {
13133
13141
  if (value == null || query == null) return -1;
13142
+ if (!query.length) return 0;
13134
13143
  value = value.toString().toLocaleLowerCase();
13135
13144
  query = query.toString().toLocaleLowerCase();
13136
13145
  const result = [];
@@ -13143,7 +13152,7 @@
13143
13152
  };
13144
13153
  function normaliseMatch(match, query) {
13145
13154
  if (match == null || typeof match === 'boolean' || match === -1) return;
13146
- if (typeof match === 'number') return [[match, query.length]];
13155
+ if (typeof match === 'number') return [[match, match + query.length]];
13147
13156
  if (Array.isArray(match[0])) return match;
13148
13157
  return [match];
13149
13158
  }
@@ -13611,8 +13620,7 @@
13611
13620
  onClick: () => select(item, null)
13612
13621
  });
13613
13622
  return slots.item?.({
13614
- item: item.raw,
13615
- internalItem: item,
13623
+ item,
13616
13624
  index,
13617
13625
  props: itemProps
13618
13626
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13663,13 +13671,11 @@
13663
13671
  };
13664
13672
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13665
13673
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13666
- item: item.raw,
13667
- internalItem: item,
13674
+ item,
13668
13675
  index,
13669
13676
  props: slotProps
13670
13677
  }) : slots.selection({
13671
- item: item.raw,
13672
- internalItem: item,
13678
+ item,
13673
13679
  index
13674
13680
  })) : undefined;
13675
13681
  if (hasSlot && !slotContent) return undefined;
@@ -17061,165 +17067,81 @@
17061
17067
 
17062
17068
  // Types
17063
17069
 
17064
- const firstDay = {
17065
- '001': 1,
17066
- AD: 1,
17067
- AE: 6,
17068
- AF: 6,
17069
- AG: 0,
17070
- AI: 1,
17071
- AL: 1,
17072
- AM: 1,
17073
- AN: 1,
17074
- AR: 1,
17075
- AS: 0,
17076
- AT: 1,
17077
- AU: 1,
17078
- AX: 1,
17079
- AZ: 1,
17080
- BA: 1,
17081
- BD: 0,
17082
- BE: 1,
17083
- BG: 1,
17084
- BH: 6,
17085
- BM: 1,
17086
- BN: 1,
17087
- BR: 0,
17088
- BS: 0,
17089
- BT: 0,
17090
- BW: 0,
17091
- BY: 1,
17092
- BZ: 0,
17093
- CA: 0,
17094
- CH: 1,
17095
- CL: 1,
17096
- CM: 1,
17097
- CN: 1,
17098
- CO: 0,
17099
- CR: 1,
17100
- CY: 1,
17101
- CZ: 1,
17102
- DE: 1,
17103
- DJ: 6,
17104
- DK: 1,
17105
- DM: 0,
17106
- DO: 0,
17107
- DZ: 6,
17108
- EC: 1,
17109
- EE: 1,
17110
- EG: 6,
17111
- ES: 1,
17112
- ET: 0,
17113
- FI: 1,
17114
- FJ: 1,
17115
- FO: 1,
17116
- FR: 1,
17117
- GB: 1,
17118
- 'GB-alt-variant': 0,
17119
- GE: 1,
17120
- GF: 1,
17121
- GP: 1,
17122
- GR: 1,
17123
- GT: 0,
17124
- GU: 0,
17125
- HK: 0,
17126
- HN: 0,
17127
- HR: 1,
17128
- HU: 1,
17129
- ID: 0,
17130
- IE: 1,
17131
- IL: 0,
17132
- IN: 0,
17133
- IQ: 6,
17134
- IR: 6,
17135
- IS: 1,
17136
- IT: 1,
17137
- JM: 0,
17138
- JO: 6,
17139
- JP: 0,
17140
- KE: 0,
17141
- KG: 1,
17142
- KH: 0,
17143
- KR: 0,
17144
- KW: 6,
17145
- KZ: 1,
17146
- LA: 0,
17147
- LB: 1,
17148
- LI: 1,
17149
- LK: 1,
17150
- LT: 1,
17151
- LU: 1,
17152
- LV: 1,
17153
- LY: 6,
17154
- MC: 1,
17155
- MD: 1,
17156
- ME: 1,
17157
- MH: 0,
17158
- MK: 1,
17159
- MM: 0,
17160
- MN: 1,
17161
- MO: 0,
17162
- MQ: 1,
17163
- MT: 0,
17164
- MV: 5,
17165
- MX: 0,
17166
- MY: 1,
17167
- MZ: 0,
17168
- NI: 0,
17169
- NL: 1,
17170
- NO: 1,
17171
- NP: 0,
17172
- NZ: 1,
17173
- OM: 6,
17174
- PA: 0,
17175
- PE: 0,
17176
- PH: 0,
17177
- PK: 0,
17178
- PL: 1,
17179
- PR: 0,
17180
- PT: 0,
17181
- PY: 0,
17182
- QA: 6,
17183
- RE: 1,
17184
- RO: 1,
17185
- RS: 1,
17186
- RU: 1,
17187
- SA: 0,
17188
- SD: 6,
17189
- SE: 1,
17190
- SG: 0,
17191
- SI: 1,
17192
- SK: 1,
17193
- SM: 1,
17194
- SV: 0,
17195
- SY: 6,
17196
- TH: 0,
17197
- TJ: 1,
17198
- TM: 1,
17199
- TR: 1,
17200
- TT: 0,
17201
- TW: 0,
17202
- UA: 1,
17203
- UM: 0,
17204
- US: 0,
17205
- UY: 1,
17206
- UZ: 1,
17207
- VA: 1,
17208
- VE: 0,
17209
- VI: 0,
17210
- VN: 1,
17211
- WS: 0,
17212
- XK: 1,
17213
- YE: 0,
17214
- ZA: 0,
17215
- ZW: 0
17216
- };
17070
+ function weekInfo(locale) {
17071
+ // https://simplelocalize.io/data/locales/
17072
+ // then `new Intl.Locale(...).getWeekInfo()`
17073
+ const code = locale.slice(-2).toUpperCase();
17074
+ switch (true) {
17075
+ case locale === 'GB-alt-variant':
17076
+ {
17077
+ return {
17078
+ firstDay: 0,
17079
+ firstWeekSize: 4
17080
+ };
17081
+ }
17082
+ case locale === '001':
17083
+ {
17084
+ return {
17085
+ firstDay: 1,
17086
+ firstWeekSize: 1
17087
+ };
17088
+ }
17089
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17090
+ 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
17091
+ VE VI WS YE ZA ZW`.includes(code):
17092
+ {
17093
+ return {
17094
+ firstDay: 0,
17095
+ firstWeekSize: 1
17096
+ };
17097
+ }
17098
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17099
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17100
+ {
17101
+ return {
17102
+ firstDay: 1,
17103
+ firstWeekSize: 1
17104
+ };
17105
+ }
17106
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17107
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17108
+ {
17109
+ return {
17110
+ firstDay: 1,
17111
+ firstWeekSize: 4
17112
+ };
17113
+ }
17114
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17115
+ {
17116
+ return {
17117
+ firstDay: 6,
17118
+ firstWeekSize: 1
17119
+ };
17120
+ }
17121
+ case code === 'MV':
17122
+ {
17123
+ return {
17124
+ firstDay: 5,
17125
+ firstWeekSize: 1
17126
+ };
17127
+ }
17128
+ case code === 'PT':
17129
+ {
17130
+ return {
17131
+ firstDay: 0,
17132
+ firstWeekSize: 4
17133
+ };
17134
+ }
17135
+ default:
17136
+ return null;
17137
+ }
17138
+ }
17217
17139
  function getWeekArray(date, locale, firstDayOfWeek) {
17218
17140
  const weeks = [];
17219
17141
  let currentWeek = [];
17220
17142
  const firstDayOfMonth = startOfMonth(date);
17221
17143
  const lastDayOfMonth = endOfMonth(date);
17222
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17144
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17223
17145
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17224
17146
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17225
17147
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17250,7 +17172,7 @@
17250
17172
  return weeks;
17251
17173
  }
17252
17174
  function startOfWeek(date, locale, firstDayOfWeek) {
17253
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17175
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17254
17176
  const d = new Date(date);
17255
17177
  while (d.getDay() !== day) {
17256
17178
  d.setDate(d.getDate() - 1);
@@ -17259,7 +17181,7 @@
17259
17181
  }
17260
17182
  function endOfWeek(date, locale) {
17261
17183
  const d = new Date(date);
17262
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17184
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17263
17185
  while (d.getDay() !== lastDay) {
17264
17186
  d.setDate(d.getDate() + 1);
17265
17187
  }
@@ -17294,7 +17216,7 @@
17294
17216
  }
17295
17217
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17296
17218
  function getWeekdays(locale, firstDayOfWeek) {
17297
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17219
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17298
17220
  return createRange(7).map(i => {
17299
17221
  const weekday = new Date(sundayJanuarySecond2000);
17300
17222
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17542,6 +17464,24 @@
17542
17464
  function getMonth(date) {
17543
17465
  return date.getMonth();
17544
17466
  }
17467
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17468
+ const weekInfoFromLocale = weekInfo(locale);
17469
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17470
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17471
+ function firstWeekSize(year) {
17472
+ const yearStart = new Date(year, 0, 1);
17473
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17474
+ }
17475
+ let year = getYear(date);
17476
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17477
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17478
+ year++;
17479
+ }
17480
+ const yearStart = new Date(year, 0, 1);
17481
+ const size = firstWeekSize(year);
17482
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17483
+ return 1 + getDiff(date, d1w1, 'weeks');
17484
+ }
17545
17485
  function getDate(date) {
17546
17486
  return date.getDate();
17547
17487
  }
@@ -17681,10 +17621,12 @@
17681
17621
  return addMonths(date, amount);
17682
17622
  }
17683
17623
  getWeekArray(date, firstDayOfWeek) {
17684
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17624
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17625
+ return getWeekArray(date, this.locale, firstDay);
17685
17626
  }
17686
17627
  startOfWeek(date, firstDayOfWeek) {
17687
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17628
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17629
+ return startOfWeek(date, this.locale, firstDay);
17688
17630
  }
17689
17631
  endOfWeek(date) {
17690
17632
  return endOfWeek(date, this.locale);
@@ -17744,7 +17686,8 @@
17744
17686
  return getDiff(date, comparing, unit);
17745
17687
  }
17746
17688
  getWeekdays(firstDayOfWeek) {
17747
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17689
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17690
+ return getWeekdays(this.locale, firstDay);
17748
17691
  }
17749
17692
  getYear(date) {
17750
17693
  return getYear(date);
@@ -17752,6 +17695,10 @@
17752
17695
  getMonth(date) {
17753
17696
  return getMonth(date);
17754
17697
  }
17698
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17699
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17700
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17701
+ }
17755
17702
  getDate(date) {
17756
17703
  return getDate(date);
17757
17704
  }
@@ -17855,26 +17802,6 @@
17855
17802
  return createInstance(options, locale);
17856
17803
  }
17857
17804
 
17858
- // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
17859
- function getWeek(adapter, value) {
17860
- const date = adapter.toJsDate(value);
17861
- let year = date.getFullYear();
17862
- let d1w1 = new Date(year, 0, 1);
17863
- if (date < d1w1) {
17864
- year = year - 1;
17865
- d1w1 = new Date(year, 0, 1);
17866
- } else {
17867
- const tv = new Date(year + 1, 0, 1);
17868
- if (date >= tv) {
17869
- year = year + 1;
17870
- d1w1 = tv;
17871
- }
17872
- }
17873
- const diffTime = Math.abs(date.getTime() - d1w1.getTime());
17874
- const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
17875
- return Math.floor(diffDays / 7) + 1;
17876
- }
17877
-
17878
17805
  // Types
17879
17806
 
17880
17807
  const makeVColorPickerProps = propsFactory({
@@ -18421,8 +18348,7 @@
18421
18348
  onClick: () => select(item, null)
18422
18349
  });
18423
18350
  return slots.item?.({
18424
- item: item.raw,
18425
- internalItem: item,
18351
+ item,
18426
18352
  index,
18427
18353
  props: itemProps
18428
18354
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -18473,13 +18399,11 @@
18473
18399
  };
18474
18400
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18475
18401
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18476
- item: item.raw,
18477
- internalItem: item,
18402
+ item,
18478
18403
  index,
18479
18404
  props: slotProps
18480
18405
  }) : slots.selection({
18481
- item: item.raw,
18482
- internalItem: item,
18406
+ item,
18483
18407
  index
18484
18408
  })) : undefined;
18485
18409
  if (hasSlot && !slotContent) return undefined;
@@ -22066,7 +21990,7 @@
22066
21990
  },
22067
21991
  firstDayOfWeek: {
22068
21992
  type: [Number, String],
22069
- default: 0
21993
+ default: undefined
22070
21994
  }
22071
21995
  }, 'calendar');
22072
21996
  function useCalendar(props) {
@@ -22089,14 +22013,12 @@
22089
22013
  return adapter.setMonth(date, value);
22090
22014
  }, v => adapter.getMonth(v));
22091
22015
  const weekDays = vue.computed(() => {
22092
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22093
-
22016
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22094
22017
  // Always generate all days, regardless of props.weekdays
22095
22018
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22096
22019
  });
22097
22020
  const weeksInMonth = vue.computed(() => {
22098
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22099
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22021
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22100
22022
  const days = weeks.flat();
22101
22023
 
22102
22024
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22160,7 +22082,7 @@
22160
22082
  });
22161
22083
  const weekNumbers = vue.computed(() => {
22162
22084
  return weeksInMonth.value.map(week => {
22163
- return week.length ? getWeek(adapter, week[0]) : null;
22085
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22164
22086
  });
22165
22087
  });
22166
22088
  function isDisabled(value) {
@@ -23649,17 +23571,7 @@
23649
23571
  "novalidate": true,
23650
23572
  "onReset": onReset,
23651
23573
  "onSubmit": onSubmit
23652
- }, [slots.default?.({
23653
- errors: form.errors.value,
23654
- isDisabled: form.isDisabled.value,
23655
- isReadonly: form.isReadonly.value,
23656
- isValidating: form.isValidating.value,
23657
- isValid: form.isValid.value,
23658
- items: form.items.value,
23659
- validate: form.validate,
23660
- reset: form.reset,
23661
- resetValidation: form.resetValidation
23662
- })]));
23574
+ }, [slots.default?.(form)]));
23663
23575
  return forwardRefs(form, formRef);
23664
23576
  }
23665
23577
  });
@@ -28718,37 +28630,43 @@
28718
28630
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28719
28631
  }, [vue.createVNode("div", {
28720
28632
  "class": "v-calendar-day__row-label"
28721
- }, [vue.createVNode("slot", {
28633
+ }, [vue.createVNode(vue.resolveComponent("slot"), {
28722
28634
  "name": "intervalFormat",
28723
28635
  "interval": interval.value
28724
- }, [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : ''])]), vue.createVNode("div", {
28636
+ }, {
28637
+ default: () => [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '']
28638
+ })]), vue.createVNode("div", {
28725
28639
  "class": "v-calendar-day__row-hairline"
28726
28640
  }, null), vue.createVNode("div", {
28727
28641
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28728
- }, [vue.createVNode("slot", {
28642
+ }, [vue.createVNode(vue.resolveComponent("slot"), {
28729
28643
  "name": "intervalBody",
28730
28644
  "interval": interval.value
28731
- }, [interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, {
28732
- "event": event,
28733
- "interval": interval.value,
28734
- "intervalDivisions": props.intervalDivisions,
28735
- "intervalDuration": props.intervalDuration,
28736
- "intervalHeight": props.intervalHeight
28737
- }, null))])])]) : vue.createVNode("div", {
28645
+ }, {
28646
+ default: () => [interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, {
28647
+ "event": event,
28648
+ "interval": interval.value,
28649
+ "intervalDivisions": props.intervalDivisions,
28650
+ "intervalDuration": props.intervalDuration,
28651
+ "intervalHeight": props.intervalHeight
28652
+ }, null))]
28653
+ })])]) : vue.createVNode("div", {
28738
28654
  "class": "v-calendar-day__row-without-label",
28739
28655
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28740
28656
  }, [vue.createVNode("div", {
28741
28657
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28742
- }, [vue.createVNode("slot", {
28658
+ }, [vue.createVNode(vue.resolveComponent("slot"), {
28743
28659
  "name": "intervalBody",
28744
28660
  "interval": interval.value
28745
- }, [interval.value.events?.filter(event => !event.allDay).map(event => vue.createVNode(VCalendarIntervalEvent, {
28746
- "event": event,
28747
- "interval": interval.value,
28748
- "intervalDivisions": props.intervalDivisions,
28749
- "intervalDuration": props.intervalDuration,
28750
- "intervalHeight": props.intervalHeight
28751
- }, null))])])]);
28661
+ }, {
28662
+ default: () => [interval.value.events?.filter(event => !event.allDay).map(event => vue.createVNode(VCalendarIntervalEvent, {
28663
+ "event": event,
28664
+ "interval": interval.value,
28665
+ "intervalDivisions": props.intervalDivisions,
28666
+ "intervalDuration": props.intervalDuration,
28667
+ "intervalHeight": props.intervalHeight
28668
+ }, null))]
28669
+ })])]);
28752
28670
  });
28753
28671
  return {
28754
28672
  interval
@@ -31657,7 +31575,7 @@
31657
31575
  };
31658
31576
  });
31659
31577
  }
31660
- const version$1 = "3.8.1-next.2025-04-18";
31578
+ const version$1 = "3.8.2-dev.2025-04-28";
31661
31579
  createVuetify$1.version = version$1;
31662
31580
 
31663
31581
  // Vue's inject() can only be used in setup
@@ -31840,7 +31758,7 @@
31840
31758
  flat: true
31841
31759
  },
31842
31760
  VAutocomplete: {
31843
- variant: 'filled'
31761
+ variant: 'outlined'
31844
31762
  },
31845
31763
  VBanner: {
31846
31764
  color: 'primary'
@@ -31869,7 +31787,10 @@
31869
31787
  rounded: 'sm'
31870
31788
  },
31871
31789
  VCombobox: {
31872
- variant: 'filled'
31790
+ variant: 'outlined'
31791
+ },
31792
+ VDateInput: {
31793
+ variant: 'outlined'
31873
31794
  },
31874
31795
  VDatePicker: {
31875
31796
  controlHeight: 48,
@@ -31883,6 +31804,9 @@
31883
31804
  rounded: 'circle'
31884
31805
  }
31885
31806
  },
31807
+ VFileInput: {
31808
+ variant: 'outlined'
31809
+ },
31886
31810
  VNavigationDrawer: {
31887
31811
  // VList: {
31888
31812
  // nav: true,
@@ -31891,8 +31815,15 @@
31891
31815
  // },
31892
31816
  // },
31893
31817
  },
31818
+ VNumberInput: {
31819
+ variant: 'outlined',
31820
+ VBtn: {
31821
+ color: undefined,
31822
+ rounded: undefined
31823
+ }
31824
+ },
31894
31825
  VSelect: {
31895
- variant: 'filled'
31826
+ variant: 'outlined'
31896
31827
  },
31897
31828
  VSlider: {
31898
31829
  color: 'primary'
@@ -31901,10 +31832,10 @@
31901
31832
  color: 'primary'
31902
31833
  },
31903
31834
  VTextarea: {
31904
- variant: 'filled'
31835
+ variant: 'outlined'
31905
31836
  },
31906
31837
  VTextField: {
31907
- variant: 'filled'
31838
+ variant: 'outlined'
31908
31839
  },
31909
31840
  VToolbar: {
31910
31841
  VBtn: {
@@ -31942,7 +31873,7 @@
31942
31873
 
31943
31874
  /* eslint-disable local-rules/sort-imports */
31944
31875
 
31945
- const version = "3.8.1-next.2025-04-18";
31876
+ const version = "3.8.2-dev.2025-04-28";
31946
31877
 
31947
31878
  /* eslint-disable local-rules/sort-imports */
31948
31879