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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/CHANGELOG.md +6 -16
  2. package/dist/json/attributes.json +2619 -2619
  3. package/dist/json/importMap-labs.json +18 -18
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/web-types.json +5094 -5134
  6. package/dist/vuetify-labs.cjs +172 -247
  7. package/dist/vuetify-labs.css +25227 -23477
  8. package/dist/vuetify-labs.d.ts +635 -227
  9. package/dist/vuetify-labs.esm.js +172 -247
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +172 -247
  12. package/dist/vuetify-labs.min.css +4 -3
  13. package/dist/vuetify.cjs +148 -229
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +24037 -22291
  16. package/dist/vuetify.d.ts +762 -354
  17. package/dist/vuetify.esm.js +148 -229
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +148 -229
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +4 -3
  22. package/dist/vuetify.min.js +293 -278
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/blueprints/md3.js +18 -5
  25. package/lib/blueprints/md3.js.map +1 -1
  26. package/lib/components/VAlert/VAlert.css +215 -207
  27. package/lib/components/VApp/VApp.css +15 -16
  28. package/lib/components/VAppBar/VAppBar.css +12 -14
  29. package/lib/components/VAutocomplete/VAutocomplete.css +84 -85
  30. package/lib/components/VAutocomplete/VAutocomplete.d.ts +9 -18
  31. package/lib/components/VAutocomplete/VAutocomplete.js +3 -6
  32. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  33. package/lib/components/VAvatar/VAvatar.css +106 -108
  34. package/lib/components/VBadge/VBadge.css +77 -77
  35. package/lib/components/VBanner/VBanner.css +166 -161
  36. package/lib/components/VBottomNavigation/VBottomNavigation.css +64 -65
  37. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  38. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  39. package/lib/components/VBtn/VBtn.css +408 -372
  40. package/lib/components/VBtn/VBtn.sass +23 -10
  41. package/lib/components/VBtn/_variables.scss +1 -1
  42. package/lib/components/VBtnGroup/VBtnGroup.css +64 -63
  43. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  44. package/lib/components/VCard/VCard.css +302 -294
  45. package/lib/components/VCarousel/VCarousel.css +65 -63
  46. package/lib/components/VCarousel/VCarousel.sass +1 -1
  47. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  48. package/lib/components/VChip/VChip.css +411 -378
  49. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  50. package/lib/components/VCode/VCode.css +11 -10
  51. package/lib/components/VCode/VCode.sass +3 -0
  52. package/lib/components/VColorPicker/VColorPicker.css +23 -23
  53. package/lib/components/VColorPicker/VColorPickerCanvas.css +22 -24
  54. package/lib/components/VColorPicker/VColorPickerEdit.css +28 -29
  55. package/lib/components/VColorPicker/VColorPickerPreview.css +67 -69
  56. package/lib/components/VColorPicker/VColorPickerPreview.sass +2 -4
  57. package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
  58. package/lib/components/VCombobox/VCombobox.css +84 -85
  59. package/lib/components/VCombobox/VCombobox.d.ts +9 -18
  60. package/lib/components/VCombobox/VCombobox.js +3 -6
  61. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  62. package/lib/components/VCounter/VCounter.css +5 -7
  63. package/lib/components/VDataTable/VDataTable.css +186 -189
  64. package/lib/components/VDataTable/VDataTable.sass +11 -21
  65. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  66. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  67. package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
  68. package/lib/components/VDatePicker/VDatePickerControls.css +57 -55
  69. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  70. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  71. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
  72. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  73. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  74. package/lib/components/VDialog/VDialog.css +98 -98
  75. package/lib/components/VDivider/VDivider.css +52 -52
  76. package/lib/components/VEmptyState/VEmptyState.css +67 -62
  77. package/lib/components/VExpansionPanel/VExpansionPanel.css +209 -203
  78. package/lib/components/VExpansionPanel/VExpansionPanel.sass +25 -27
  79. package/lib/components/VFab/VFab.css +73 -78
  80. package/lib/components/VFab/VFab.sass +4 -5
  81. package/lib/components/VField/VField.css +589 -541
  82. package/lib/components/VField/VField.sass +11 -4
  83. package/lib/components/VField/_variables.scss +1 -1
  84. package/lib/components/VFileInput/VFileInput.css +28 -30
  85. package/lib/components/VFooter/VFooter.css +36 -38
  86. package/lib/components/VForm/VForm.d.ts +531 -111
  87. package/lib/components/VForm/VForm.js +1 -11
  88. package/lib/components/VForm/VForm.js.map +1 -1
  89. package/lib/components/VGrid/VGrid.css +592 -565
  90. package/lib/components/VIcon/VIcon.css +53 -52
  91. package/lib/components/VImg/VImg.css +51 -50
  92. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  93. package/lib/components/VInput/VInput.css +147 -136
  94. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  95. package/lib/components/VKbd/VKbd.css +11 -13
  96. package/lib/components/VLabel/VLabel.css +15 -16
  97. package/lib/components/VLayout/VLayout.css +8 -10
  98. package/lib/components/VLayout/VLayoutItem.css +7 -8
  99. package/lib/components/VList/VList.css +108 -104
  100. package/lib/components/VList/VList.sass +1 -1
  101. package/lib/components/VList/VListItem.css +452 -440
  102. package/lib/components/VList/VListItem.sass +1 -2
  103. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  104. package/lib/components/VMain/VMain.css +30 -32
  105. package/lib/components/VMenu/VMenu.css +19 -21
  106. package/lib/components/VMessages/VMessages.css +15 -17
  107. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +104 -102
  108. package/lib/components/VNumberInput/VNumberInput.css +46 -48
  109. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  110. package/lib/components/VOverlay/VOverlay.css +64 -61
  111. package/lib/components/VOverlay/VOverlay.sass +13 -14
  112. package/lib/components/VOverlay/_variables.scss +1 -1
  113. package/lib/components/VPagination/VPagination.css +8 -10
  114. package/lib/components/VParallax/VParallax.css +6 -8
  115. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  116. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  117. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  118. package/lib/components/VRating/VRating.css +53 -52
  119. package/lib/components/VResponsive/VResponsive.css +26 -25
  120. package/lib/components/VSelect/VSelect.css +51 -53
  121. package/lib/components/VSelect/VSelect.d.ts +9 -18
  122. package/lib/components/VSelect/VSelect.js +3 -6
  123. package/lib/components/VSelect/VSelect.js.map +1 -1
  124. package/lib/components/VSelectionControl/VSelectionControl.css +100 -98
  125. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  126. package/lib/components/VSheet/VSheet.css +36 -38
  127. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  128. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  129. package/lib/components/VSlider/VSlider.css +57 -53
  130. package/lib/components/VSlider/VSliderThumb.css +153 -142
  131. package/lib/components/VSlider/VSliderTrack.css +174 -155
  132. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  133. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  134. package/lib/components/VStepper/VStepper.css +56 -55
  135. package/lib/components/VStepper/VStepperItem.css +115 -112
  136. package/lib/components/VSwitch/VSwitch.css +139 -129
  137. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  138. package/lib/components/VTable/VTable.css +141 -140
  139. package/lib/components/VTable/VTable.sass +2 -4
  140. package/lib/components/VTabs/VTab.css +29 -30
  141. package/lib/components/VTabs/VTabs.css +65 -59
  142. package/lib/components/VTextField/VTextField.css +85 -77
  143. package/lib/components/VTextarea/VTextarea.css +40 -48
  144. package/lib/components/VTextarea/VTextarea.sass +2 -4
  145. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  146. package/lib/components/VTimeline/VTimeline.css +427 -388
  147. package/lib/components/VToolbar/VToolbar.css +144 -137
  148. package/lib/components/VTooltip/VTooltip.css +23 -27
  149. package/lib/components/VTooltip/VTooltip.sass +6 -8
  150. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  151. package/lib/components/VWindow/VWindow.css +70 -73
  152. package/lib/composables/calendar.d.ts +3 -2
  153. package/lib/composables/calendar.js +5 -7
  154. package/lib/composables/calendar.js.map +1 -1
  155. package/lib/composables/date/DateAdapter.d.ts +1 -0
  156. package/lib/composables/date/DateAdapter.js.map +1 -1
  157. package/lib/composables/date/adapters/vuetify.d.ts +1 -0
  158. package/lib/composables/date/adapters/vuetify.js +101 -160
  159. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  160. package/lib/composables/date/date.d.ts +1 -1
  161. package/lib/composables/date/date.js +0 -20
  162. package/lib/composables/date/date.js.map +1 -1
  163. package/lib/composables/filter.js +2 -1
  164. package/lib/composables/filter.js.map +1 -1
  165. package/lib/composables/theme.js +5 -5
  166. package/lib/composables/theme.js.map +1 -1
  167. package/lib/composables/validation.js +5 -0
  168. package/lib/composables/validation.js.map +1 -1
  169. package/lib/directives/ripple/VRipple.css +36 -38
  170. package/lib/entry-bundler.d.ts +1 -0
  171. package/lib/entry-bundler.js +1 -1
  172. package/lib/entry-bundler.js.map +1 -1
  173. package/lib/framework.d.ts +57 -54
  174. package/lib/framework.js +1 -1
  175. package/lib/framework.js.map +1 -1
  176. package/lib/labs/VCalendar/VCalendar.css +225 -219
  177. package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
  178. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  179. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  180. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  181. package/lib/labs/VCalendar/VCalendarInterval.js +25 -19
  182. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  183. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  184. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  185. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  186. package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
  187. package/lib/labs/VFileUpload/VFileUpload.css +77 -74
  188. package/lib/labs/VIconBtn/VIconBtn.css +164 -162
  189. package/lib/labs/VPicker/VPicker.css +63 -58
  190. package/lib/labs/VTimePicker/VTimePicker.css +7 -9
  191. package/lib/labs/VTimePicker/VTimePickerClock.css +129 -126
  192. package/lib/labs/VTimePicker/VTimePickerControls.css +103 -102
  193. package/lib/labs/VTreeview/VTreeviewItem.css +28 -30
  194. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -3
  195. package/lib/labs/entry-bundler.d.ts +1 -0
  196. package/lib/styles/elements/_global.sass +1 -1
  197. package/lib/styles/generic/_colors.scss +3 -3
  198. package/lib/styles/generic/_layers.scss +1 -13
  199. package/lib/styles/generic/_reset.scss +1 -0
  200. package/lib/styles/generic/_transitions.scss +32 -32
  201. package/lib/styles/main.css +16142 -14667
  202. package/lib/styles/settings/_utilities.scss +5 -0
  203. package/lib/styles/settings/_variables.scss +3 -2
  204. package/lib/styles/tools/_bootable.sass +3 -0
  205. package/lib/styles/tools/_border.sass +4 -4
  206. package/lib/styles/tools/_display.sass +10 -0
  207. package/lib/styles/tools/_elevation.sass +2 -2
  208. package/lib/styles/tools/_index.sass +2 -0
  209. package/lib/styles/tools/_layer.scss +2 -4
  210. package/lib/styles/tools/_position.sass +2 -2
  211. package/lib/styles/tools/_radius.sass +10 -0
  212. package/lib/styles/tools/_rounded.sass +2 -2
  213. package/lib/styles/tools/_utilities.sass +5 -1
  214. package/lib/styles/utilities/_elevation.scss +1 -1
  215. package/package.json +46 -45
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.1-next.2025-04-18
2
+ * Vuetify v3.8.2-dev.2025-04-17
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -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));
@@ -6963,6 +6963,11 @@ function useValidation(props) {
6963
6963
  }
6964
6964
  async function validate() {
6965
6965
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6966
+ if (props.disabled || props.readonly) {
6967
+ internalErrorMessages.value = [];
6968
+ isValidating.value = false;
6969
+ return internalErrorMessages.value;
6970
+ }
6966
6971
  const results = [];
6967
6972
  isValidating.value = true;
6968
6973
  for (const rule of props.rules) {
@@ -13006,8 +13011,7 @@ const VSelect = genericComponent()({
13006
13011
  onClick: () => select(item, null)
13007
13012
  });
13008
13013
  return slots.item?.({
13009
- item: item.raw,
13010
- internalItem: item,
13014
+ item,
13011
13015
  index,
13012
13016
  props: itemProps
13013
13017
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13055,13 +13059,11 @@ const VSelect = genericComponent()({
13055
13059
  };
13056
13060
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13057
13061
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13058
- item: item.raw,
13059
- internalItem: item,
13062
+ item,
13060
13063
  index,
13061
13064
  props: slotProps
13062
13065
  }) : slots.selection({
13063
- item: item.raw,
13064
- internalItem: item,
13066
+ item,
13065
13067
  index
13066
13068
  })) : undefined;
13067
13069
  if (hasSlot && !slotContent) return undefined;
@@ -13127,6 +13129,7 @@ const VSelect = genericComponent()({
13127
13129
  // Composables
13128
13130
  const defaultFilter = (value, query, item) => {
13129
13131
  if (value == null || query == null) return -1;
13132
+ if (!query.length) return 0;
13130
13133
  value = value.toString().toLocaleLowerCase();
13131
13134
  query = query.toString().toLocaleLowerCase();
13132
13135
  const result = [];
@@ -13139,7 +13142,7 @@ const defaultFilter = (value, query, item) => {
13139
13142
  };
13140
13143
  function normaliseMatch(match, query) {
13141
13144
  if (match == null || typeof match === 'boolean' || match === -1) return;
13142
- if (typeof match === 'number') return [[match, query.length]];
13145
+ if (typeof match === 'number') return [[match, match + query.length]];
13143
13146
  if (Array.isArray(match[0])) return match;
13144
13147
  return [match];
13145
13148
  }
@@ -13607,8 +13610,7 @@ const VAutocomplete = genericComponent()({
13607
13610
  onClick: () => select(item, null)
13608
13611
  });
13609
13612
  return slots.item?.({
13610
- item: item.raw,
13611
- internalItem: item,
13613
+ item,
13612
13614
  index,
13613
13615
  props: itemProps
13614
13616
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -13659,13 +13661,11 @@ const VAutocomplete = genericComponent()({
13659
13661
  };
13660
13662
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13661
13663
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13662
- item: item.raw,
13663
- internalItem: item,
13664
+ item,
13664
13665
  index,
13665
13666
  props: slotProps
13666
13667
  }) : slots.selection({
13667
- item: item.raw,
13668
- internalItem: item,
13668
+ item,
13669
13669
  index
13670
13670
  })) : undefined;
13671
13671
  if (hasSlot && !slotContent) return undefined;
@@ -17057,165 +17057,81 @@ const VPicker = genericComponent()({
17057
17057
 
17058
17058
  // Types
17059
17059
 
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
- };
17060
+ function weekInfo(locale) {
17061
+ // https://simplelocalize.io/data/locales/
17062
+ // then `new Intl.Locale(...).getWeekInfo()`
17063
+ const code = locale.slice(-2).toUpperCase();
17064
+ switch (true) {
17065
+ case locale === 'GB-alt-variant':
17066
+ {
17067
+ return {
17068
+ firstDay: 0,
17069
+ firstWeekSize: 4
17070
+ };
17071
+ }
17072
+ case locale === '001':
17073
+ {
17074
+ return {
17075
+ firstDay: 1,
17076
+ firstWeekSize: 1
17077
+ };
17078
+ }
17079
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17080
+ 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
17081
+ VE VI WS YE ZA ZW`.includes(code):
17082
+ {
17083
+ return {
17084
+ firstDay: 0,
17085
+ firstWeekSize: 1
17086
+ };
17087
+ }
17088
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17089
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17090
+ {
17091
+ return {
17092
+ firstDay: 1,
17093
+ firstWeekSize: 1
17094
+ };
17095
+ }
17096
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17097
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17098
+ {
17099
+ return {
17100
+ firstDay: 1,
17101
+ firstWeekSize: 4
17102
+ };
17103
+ }
17104
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17105
+ {
17106
+ return {
17107
+ firstDay: 6,
17108
+ firstWeekSize: 1
17109
+ };
17110
+ }
17111
+ case code === 'MV':
17112
+ {
17113
+ return {
17114
+ firstDay: 5,
17115
+ firstWeekSize: 1
17116
+ };
17117
+ }
17118
+ case code === 'PT':
17119
+ {
17120
+ return {
17121
+ firstDay: 0,
17122
+ firstWeekSize: 4
17123
+ };
17124
+ }
17125
+ default:
17126
+ return null;
17127
+ }
17128
+ }
17213
17129
  function getWeekArray(date, locale, firstDayOfWeek) {
17214
17130
  const weeks = [];
17215
17131
  let currentWeek = [];
17216
17132
  const firstDayOfMonth = startOfMonth(date);
17217
17133
  const lastDayOfMonth = endOfMonth(date);
17218
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17134
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17219
17135
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17220
17136
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17221
17137
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17246,7 +17162,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
17246
17162
  return weeks;
17247
17163
  }
17248
17164
  function startOfWeek(date, locale, firstDayOfWeek) {
17249
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17165
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17250
17166
  const d = new Date(date);
17251
17167
  while (d.getDay() !== day) {
17252
17168
  d.setDate(d.getDate() - 1);
@@ -17255,7 +17171,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
17255
17171
  }
17256
17172
  function endOfWeek(date, locale) {
17257
17173
  const d = new Date(date);
17258
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17174
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17259
17175
  while (d.getDay() !== lastDay) {
17260
17176
  d.setDate(d.getDate() + 1);
17261
17177
  }
@@ -17290,7 +17206,7 @@ function date(value) {
17290
17206
  }
17291
17207
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17292
17208
  function getWeekdays(locale, firstDayOfWeek) {
17293
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17209
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17294
17210
  return createRange(7).map(i => {
17295
17211
  const weekday = new Date(sundayJanuarySecond2000);
17296
17212
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17538,6 +17454,24 @@ function getYear(date) {
17538
17454
  function getMonth(date) {
17539
17455
  return date.getMonth();
17540
17456
  }
17457
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17458
+ const weekInfoFromLocale = weekInfo(locale);
17459
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17460
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17461
+ function firstWeekSize(year) {
17462
+ const yearStart = new Date(year, 0, 1);
17463
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17464
+ }
17465
+ let year = getYear(date);
17466
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17467
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17468
+ year++;
17469
+ }
17470
+ const yearStart = new Date(year, 0, 1);
17471
+ const size = firstWeekSize(year);
17472
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17473
+ return 1 + getDiff(date, d1w1, 'weeks');
17474
+ }
17541
17475
  function getDate(date) {
17542
17476
  return date.getDate();
17543
17477
  }
@@ -17677,10 +17611,12 @@ class VuetifyDateAdapter {
17677
17611
  return addMonths(date, amount);
17678
17612
  }
17679
17613
  getWeekArray(date, firstDayOfWeek) {
17680
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17614
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17615
+ return getWeekArray(date, this.locale, firstDay);
17681
17616
  }
17682
17617
  startOfWeek(date, firstDayOfWeek) {
17683
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17618
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17619
+ return startOfWeek(date, this.locale, firstDay);
17684
17620
  }
17685
17621
  endOfWeek(date) {
17686
17622
  return endOfWeek(date, this.locale);
@@ -17740,7 +17676,8 @@ class VuetifyDateAdapter {
17740
17676
  return getDiff(date, comparing, unit);
17741
17677
  }
17742
17678
  getWeekdays(firstDayOfWeek) {
17743
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17679
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17680
+ return getWeekdays(this.locale, firstDay);
17744
17681
  }
17745
17682
  getYear(date) {
17746
17683
  return getYear(date);
@@ -17748,6 +17685,10 @@ class VuetifyDateAdapter {
17748
17685
  getMonth(date) {
17749
17686
  return getMonth(date);
17750
17687
  }
17688
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17689
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17690
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17691
+ }
17751
17692
  getDate(date) {
17752
17693
  return getDate(date);
17753
17694
  }
@@ -17851,26 +17792,6 @@ function useDate() {
17851
17792
  return createInstance(options, locale);
17852
17793
  }
17853
17794
 
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
17795
  // Types
17875
17796
 
17876
17797
  const makeVColorPickerProps = propsFactory({
@@ -18417,8 +18338,7 @@ const VCombobox = genericComponent()({
18417
18338
  onClick: () => select(item, null)
18418
18339
  });
18419
18340
  return slots.item?.({
18420
- item: item.raw,
18421
- internalItem: item,
18341
+ item,
18422
18342
  index,
18423
18343
  props: itemProps
18424
18344
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
@@ -18469,13 +18389,11 @@ const VCombobox = genericComponent()({
18469
18389
  };
18470
18390
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18471
18391
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18472
- item: item.raw,
18473
- internalItem: item,
18392
+ item,
18474
18393
  index,
18475
18394
  props: slotProps
18476
18395
  }) : slots.selection({
18477
- item: item.raw,
18478
- internalItem: item,
18396
+ item,
18479
18397
  index
18480
18398
  })) : undefined;
18481
18399
  if (hasSlot && !slotContent) return undefined;
@@ -22062,7 +21980,7 @@ const makeCalendarProps = propsFactory({
22062
21980
  },
22063
21981
  firstDayOfWeek: {
22064
21982
  type: [Number, String],
22065
- default: 0
21983
+ default: undefined
22066
21984
  }
22067
21985
  }, 'calendar');
22068
21986
  function useCalendar(props) {
@@ -22085,14 +22003,12 @@ function useCalendar(props) {
22085
22003
  return adapter.setMonth(date, value);
22086
22004
  }, v => adapter.getMonth(v));
22087
22005
  const weekDays = computed(() => {
22088
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22089
-
22006
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22090
22007
  // Always generate all days, regardless of props.weekdays
22091
22008
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22092
22009
  });
22093
22010
  const weeksInMonth = computed(() => {
22094
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22095
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22011
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22096
22012
  const days = weeks.flat();
22097
22013
 
22098
22014
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22156,7 +22072,7 @@ function useCalendar(props) {
22156
22072
  });
22157
22073
  const weekNumbers = computed(() => {
22158
22074
  return weeksInMonth.value.map(week => {
22159
- return week.length ? getWeek(adapter, week[0]) : null;
22075
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22160
22076
  });
22161
22077
  });
22162
22078
  function isDisabled(value) {
@@ -23645,17 +23561,7 @@ const VForm = genericComponent()({
23645
23561
  "novalidate": true,
23646
23562
  "onReset": onReset,
23647
23563
  "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
- })]));
23564
+ }, [slots.default?.(form)]));
23659
23565
  return forwardRefs(form, formRef);
23660
23566
  }
23661
23567
  });
@@ -28714,37 +28620,43 @@ const VCalendarInterval = genericComponent()({
28714
28620
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28715
28621
  }, [createVNode("div", {
28716
28622
  "class": "v-calendar-day__row-label"
28717
- }, [createVNode("slot", {
28623
+ }, [createVNode(resolveComponent("slot"), {
28718
28624
  "name": "intervalFormat",
28719
28625
  "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", {
28626
+ }, {
28627
+ default: () => [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '']
28628
+ })]), createVNode("div", {
28721
28629
  "class": "v-calendar-day__row-hairline"
28722
28630
  }, null), createVNode("div", {
28723
28631
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28724
- }, [createVNode("slot", {
28632
+ }, [createVNode(resolveComponent("slot"), {
28725
28633
  "name": "intervalBody",
28726
28634
  "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", {
28635
+ }, {
28636
+ default: () => [interval.value.events?.map(event => createVNode(VCalendarIntervalEvent, {
28637
+ "event": event,
28638
+ "interval": interval.value,
28639
+ "intervalDivisions": props.intervalDivisions,
28640
+ "intervalDuration": props.intervalDuration,
28641
+ "intervalHeight": props.intervalHeight
28642
+ }, null))]
28643
+ })])]) : createVNode("div", {
28734
28644
  "class": "v-calendar-day__row-without-label",
28735
28645
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28736
28646
  }, [createVNode("div", {
28737
28647
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28738
- }, [createVNode("slot", {
28648
+ }, [createVNode(resolveComponent("slot"), {
28739
28649
  "name": "intervalBody",
28740
28650
  "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))])])]);
28651
+ }, {
28652
+ default: () => [interval.value.events?.filter(event => !event.allDay).map(event => createVNode(VCalendarIntervalEvent, {
28653
+ "event": event,
28654
+ "interval": interval.value,
28655
+ "intervalDivisions": props.intervalDivisions,
28656
+ "intervalDuration": props.intervalDuration,
28657
+ "intervalHeight": props.intervalHeight
28658
+ }, null))]
28659
+ })])]);
28748
28660
  });
28749
28661
  return {
28750
28662
  interval
@@ -31653,7 +31565,7 @@ function createVuetify$1() {
31653
31565
  };
31654
31566
  });
31655
31567
  }
31656
- const version$1 = "3.8.1-next.2025-04-18";
31568
+ const version$1 = "3.8.2-dev.2025-04-17";
31657
31569
  createVuetify$1.version = version$1;
31658
31570
 
31659
31571
  // Vue's inject() can only be used in setup
@@ -31836,7 +31748,7 @@ const md3 = {
31836
31748
  flat: true
31837
31749
  },
31838
31750
  VAutocomplete: {
31839
- variant: 'filled'
31751
+ variant: 'outlined'
31840
31752
  },
31841
31753
  VBanner: {
31842
31754
  color: 'primary'
@@ -31865,7 +31777,10 @@ const md3 = {
31865
31777
  rounded: 'sm'
31866
31778
  },
31867
31779
  VCombobox: {
31868
- variant: 'filled'
31780
+ variant: 'outlined'
31781
+ },
31782
+ VDateInput: {
31783
+ variant: 'outlined'
31869
31784
  },
31870
31785
  VDatePicker: {
31871
31786
  controlHeight: 48,
@@ -31879,6 +31794,9 @@ const md3 = {
31879
31794
  rounded: 'circle'
31880
31795
  }
31881
31796
  },
31797
+ VFileInput: {
31798
+ variant: 'outlined'
31799
+ },
31882
31800
  VNavigationDrawer: {
31883
31801
  // VList: {
31884
31802
  // nav: true,
@@ -31887,8 +31805,15 @@ const md3 = {
31887
31805
  // },
31888
31806
  // },
31889
31807
  },
31808
+ VNumberInput: {
31809
+ variant: 'outlined',
31810
+ VBtn: {
31811
+ color: undefined,
31812
+ rounded: undefined
31813
+ }
31814
+ },
31890
31815
  VSelect: {
31891
- variant: 'filled'
31816
+ variant: 'outlined'
31892
31817
  },
31893
31818
  VSlider: {
31894
31819
  color: 'primary'
@@ -31897,10 +31822,10 @@ const md3 = {
31897
31822
  color: 'primary'
31898
31823
  },
31899
31824
  VTextarea: {
31900
- variant: 'filled'
31825
+ variant: 'outlined'
31901
31826
  },
31902
31827
  VTextField: {
31903
- variant: 'filled'
31828
+ variant: 'outlined'
31904
31829
  },
31905
31830
  VToolbar: {
31906
31831
  VBtn: {
@@ -31938,7 +31863,7 @@ var index = /*#__PURE__*/Object.freeze({
31938
31863
 
31939
31864
  /* eslint-disable local-rules/sort-imports */
31940
31865
 
31941
- const version = "3.8.1-next.2025-04-18";
31866
+ const version = "3.8.2-dev.2025-04-17";
31942
31867
 
31943
31868
  /* eslint-disable local-rules/sort-imports */
31944
31869