@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
  */
@@ -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));
@@ -6967,6 +6967,11 @@
6967
6967
  }
6968
6968
  async function validate() {
6969
6969
  let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6970
+ if (props.disabled || props.readonly) {
6971
+ internalErrorMessages.value = [];
6972
+ isValidating.value = false;
6973
+ return internalErrorMessages.value;
6974
+ }
6970
6975
  const results = [];
6971
6976
  isValidating.value = true;
6972
6977
  for (const rule of props.rules) {
@@ -13010,8 +13015,7 @@
13010
13015
  onClick: () => select(item, null)
13011
13016
  });
13012
13017
  return slots.item?.({
13013
- item: item.raw,
13014
- internalItem: item,
13018
+ item,
13015
13019
  index,
13016
13020
  props: itemProps
13017
13021
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13059,13 +13063,11 @@
13059
13063
  };
13060
13064
  const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
13061
13065
  const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
13062
- item: item.raw,
13063
- internalItem: item,
13066
+ item,
13064
13067
  index,
13065
13068
  props: slotProps
13066
13069
  }) : slots.selection({
13067
- item: item.raw,
13068
- internalItem: item,
13070
+ item,
13069
13071
  index
13070
13072
  })) : undefined;
13071
13073
  if (hasSlot && !slotContent) return undefined;
@@ -13131,6 +13133,7 @@
13131
13133
  // Composables
13132
13134
  const defaultFilter = (value, query, item) => {
13133
13135
  if (value == null || query == null) return -1;
13136
+ if (!query.length) return 0;
13134
13137
  value = value.toString().toLocaleLowerCase();
13135
13138
  query = query.toString().toLocaleLowerCase();
13136
13139
  const result = [];
@@ -13143,7 +13146,7 @@
13143
13146
  };
13144
13147
  function normaliseMatch(match, query) {
13145
13148
  if (match == null || typeof match === 'boolean' || match === -1) return;
13146
- if (typeof match === 'number') return [[match, query.length]];
13149
+ if (typeof match === 'number') return [[match, match + query.length]];
13147
13150
  if (Array.isArray(match[0])) return match;
13148
13151
  return [match];
13149
13152
  }
@@ -13611,8 +13614,7 @@
13611
13614
  onClick: () => select(item, null)
13612
13615
  });
13613
13616
  return slots.item?.({
13614
- item: item.raw,
13615
- internalItem: item,
13617
+ item,
13616
13618
  index,
13617
13619
  props: itemProps
13618
13620
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -13663,13 +13665,11 @@
13663
13665
  };
13664
13666
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
13665
13667
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
13666
- item: item.raw,
13667
- internalItem: item,
13668
+ item,
13668
13669
  index,
13669
13670
  props: slotProps
13670
13671
  }) : slots.selection({
13671
- item: item.raw,
13672
- internalItem: item,
13672
+ item,
13673
13673
  index
13674
13674
  })) : undefined;
13675
13675
  if (hasSlot && !slotContent) return undefined;
@@ -17061,165 +17061,81 @@
17061
17061
 
17062
17062
  // Types
17063
17063
 
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
- };
17064
+ function weekInfo(locale) {
17065
+ // https://simplelocalize.io/data/locales/
17066
+ // then `new Intl.Locale(...).getWeekInfo()`
17067
+ const code = locale.slice(-2).toUpperCase();
17068
+ switch (true) {
17069
+ case locale === 'GB-alt-variant':
17070
+ {
17071
+ return {
17072
+ firstDay: 0,
17073
+ firstWeekSize: 4
17074
+ };
17075
+ }
17076
+ case locale === '001':
17077
+ {
17078
+ return {
17079
+ firstDay: 1,
17080
+ firstWeekSize: 1
17081
+ };
17082
+ }
17083
+ case `AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE
17084
+ 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
17085
+ VE VI WS YE ZA ZW`.includes(code):
17086
+ {
17087
+ return {
17088
+ firstDay: 0,
17089
+ firstWeekSize: 1
17090
+ };
17091
+ }
17092
+ case `AI AL AM AR AU AZ BA BM BN BY CL CM CN CR CY EC GE HR KG KZ LB LK LV
17093
+ MD ME MK MN MY NZ RO RS SI TJ TM TR UA UY UZ VN XK`.includes(code):
17094
+ {
17095
+ return {
17096
+ firstDay: 1,
17097
+ firstWeekSize: 1
17098
+ };
17099
+ }
17100
+ case `AD AN AT AX BE BG CH CZ DE DK EE ES FI FJ FO FR GB GF GP GR HU IE IS
17101
+ IT LI LT LU MC MQ NL NO PL RE RU SE SK SM VA`.includes(code):
17102
+ {
17103
+ return {
17104
+ firstDay: 1,
17105
+ firstWeekSize: 4
17106
+ };
17107
+ }
17108
+ case `AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.includes(code):
17109
+ {
17110
+ return {
17111
+ firstDay: 6,
17112
+ firstWeekSize: 1
17113
+ };
17114
+ }
17115
+ case code === 'MV':
17116
+ {
17117
+ return {
17118
+ firstDay: 5,
17119
+ firstWeekSize: 1
17120
+ };
17121
+ }
17122
+ case code === 'PT':
17123
+ {
17124
+ return {
17125
+ firstDay: 0,
17126
+ firstWeekSize: 4
17127
+ };
17128
+ }
17129
+ default:
17130
+ return null;
17131
+ }
17132
+ }
17217
17133
  function getWeekArray(date, locale, firstDayOfWeek) {
17218
17134
  const weeks = [];
17219
17135
  let currentWeek = [];
17220
17136
  const firstDayOfMonth = startOfMonth(date);
17221
17137
  const lastDayOfMonth = endOfMonth(date);
17222
- const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17138
+ const first = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17223
17139
  const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
17224
17140
  const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
17225
17141
  for (let i = 0; i < firstDayWeekIndex; i++) {
@@ -17250,7 +17166,7 @@
17250
17166
  return weeks;
17251
17167
  }
17252
17168
  function startOfWeek(date, locale, firstDayOfWeek) {
17253
- const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17169
+ const day = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17254
17170
  const d = new Date(date);
17255
17171
  while (d.getDay() !== day) {
17256
17172
  d.setDate(d.getDate() - 1);
@@ -17259,7 +17175,7 @@
17259
17175
  }
17260
17176
  function endOfWeek(date, locale) {
17261
17177
  const d = new Date(date);
17262
- const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
17178
+ const lastDay = ((weekInfo(locale)?.firstDay ?? 0) + 6) % 7;
17263
17179
  while (d.getDay() !== lastDay) {
17264
17180
  d.setDate(d.getDate() + 1);
17265
17181
  }
@@ -17294,7 +17210,7 @@
17294
17210
  }
17295
17211
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17296
17212
  function getWeekdays(locale, firstDayOfWeek) {
17297
- const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
17213
+ const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17298
17214
  return createRange(7).map(i => {
17299
17215
  const weekday = new Date(sundayJanuarySecond2000);
17300
17216
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
@@ -17542,6 +17458,24 @@
17542
17458
  function getMonth(date) {
17543
17459
  return date.getMonth();
17544
17460
  }
17461
+ function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
17462
+ const weekInfoFromLocale = weekInfo(locale);
17463
+ const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
17464
+ const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
17465
+ function firstWeekSize(year) {
17466
+ const yearStart = new Date(year, 0, 1);
17467
+ return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
17468
+ }
17469
+ let year = getYear(date);
17470
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
17471
+ if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
17472
+ year++;
17473
+ }
17474
+ const yearStart = new Date(year, 0, 1);
17475
+ const size = firstWeekSize(year);
17476
+ const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
17477
+ return 1 + getDiff(date, d1w1, 'weeks');
17478
+ }
17545
17479
  function getDate(date) {
17546
17480
  return date.getDate();
17547
17481
  }
@@ -17681,10 +17615,12 @@
17681
17615
  return addMonths(date, amount);
17682
17616
  }
17683
17617
  getWeekArray(date, firstDayOfWeek) {
17684
- return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17618
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17619
+ return getWeekArray(date, this.locale, firstDay);
17685
17620
  }
17686
17621
  startOfWeek(date, firstDayOfWeek) {
17687
- return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17622
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17623
+ return startOfWeek(date, this.locale, firstDay);
17688
17624
  }
17689
17625
  endOfWeek(date) {
17690
17626
  return endOfWeek(date, this.locale);
@@ -17744,7 +17680,8 @@
17744
17680
  return getDiff(date, comparing, unit);
17745
17681
  }
17746
17682
  getWeekdays(firstDayOfWeek) {
17747
- return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
17683
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17684
+ return getWeekdays(this.locale, firstDay);
17748
17685
  }
17749
17686
  getYear(date) {
17750
17687
  return getYear(date);
@@ -17752,6 +17689,10 @@
17752
17689
  getMonth(date) {
17753
17690
  return getMonth(date);
17754
17691
  }
17692
+ getWeek(date, firstDayOfWeek, firstWeekMinSize) {
17693
+ const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17694
+ return getWeek(date, this.locale, firstDay, firstWeekMinSize);
17695
+ }
17755
17696
  getDate(date) {
17756
17697
  return getDate(date);
17757
17698
  }
@@ -17855,26 +17796,6 @@
17855
17796
  return createInstance(options, locale);
17856
17797
  }
17857
17798
 
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
17799
  // Types
17879
17800
 
17880
17801
  const makeVColorPickerProps = propsFactory({
@@ -18421,8 +18342,7 @@
18421
18342
  onClick: () => select(item, null)
18422
18343
  });
18423
18344
  return slots.item?.({
18424
- item: item.raw,
18425
- internalItem: item,
18345
+ item,
18426
18346
  index,
18427
18347
  props: itemProps
18428
18348
  }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
@@ -18473,13 +18393,11 @@
18473
18393
  };
18474
18394
  const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
18475
18395
  const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
18476
- item: item.raw,
18477
- internalItem: item,
18396
+ item,
18478
18397
  index,
18479
18398
  props: slotProps
18480
18399
  }) : slots.selection({
18481
- item: item.raw,
18482
- internalItem: item,
18400
+ item,
18483
18401
  index
18484
18402
  })) : undefined;
18485
18403
  if (hasSlot && !slotContent) return undefined;
@@ -22066,7 +21984,7 @@
22066
21984
  },
22067
21985
  firstDayOfWeek: {
22068
21986
  type: [Number, String],
22069
- default: 0
21987
+ default: undefined
22070
21988
  }
22071
21989
  }, 'calendar');
22072
21990
  function useCalendar(props) {
@@ -22089,14 +22007,12 @@
22089
22007
  return adapter.setMonth(date, value);
22090
22008
  }, v => adapter.getMonth(v));
22091
22009
  const weekDays = vue.computed(() => {
22092
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22093
-
22010
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22094
22011
  // Always generate all days, regardless of props.weekdays
22095
22012
  return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22096
22013
  });
22097
22014
  const weeksInMonth = vue.computed(() => {
22098
- const firstDayOfWeek = Number(props.firstDayOfWeek);
22099
- const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
22015
+ const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
22100
22016
  const days = weeks.flat();
22101
22017
 
22102
22018
  // Make sure there's always 6 weeks in month (6 * 7 days)
@@ -22160,7 +22076,7 @@
22160
22076
  });
22161
22077
  const weekNumbers = vue.computed(() => {
22162
22078
  return weeksInMonth.value.map(week => {
22163
- return week.length ? getWeek(adapter, week[0]) : null;
22079
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
22164
22080
  });
22165
22081
  });
22166
22082
  function isDisabled(value) {
@@ -23649,17 +23565,7 @@
23649
23565
  "novalidate": true,
23650
23566
  "onReset": onReset,
23651
23567
  "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
- })]));
23568
+ }, [slots.default?.(form)]));
23663
23569
  return forwardRefs(form, formRef);
23664
23570
  }
23665
23571
  });
@@ -28718,37 +28624,43 @@
28718
28624
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28719
28625
  }, [vue.createVNode("div", {
28720
28626
  "class": "v-calendar-day__row-label"
28721
- }, [vue.createVNode("slot", {
28627
+ }, [vue.createVNode(vue.resolveComponent("slot"), {
28722
28628
  "name": "intervalFormat",
28723
28629
  "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", {
28630
+ }, {
28631
+ default: () => [props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '']
28632
+ })]), vue.createVNode("div", {
28725
28633
  "class": "v-calendar-day__row-hairline"
28726
28634
  }, null), vue.createVNode("div", {
28727
28635
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28728
- }, [vue.createVNode("slot", {
28636
+ }, [vue.createVNode(vue.resolveComponent("slot"), {
28729
28637
  "name": "intervalBody",
28730
28638
  "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", {
28639
+ }, {
28640
+ default: () => [interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, {
28641
+ "event": event,
28642
+ "interval": interval.value,
28643
+ "intervalDivisions": props.intervalDivisions,
28644
+ "intervalDuration": props.intervalDuration,
28645
+ "intervalHeight": props.intervalHeight
28646
+ }, null))]
28647
+ })])]) : vue.createVNode("div", {
28738
28648
  "class": "v-calendar-day__row-without-label",
28739
28649
  "style": `height: ${convertToUnit(props.intervalHeight)}`
28740
28650
  }, [vue.createVNode("div", {
28741
28651
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28742
- }, [vue.createVNode("slot", {
28652
+ }, [vue.createVNode(vue.resolveComponent("slot"), {
28743
28653
  "name": "intervalBody",
28744
28654
  "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))])])]);
28655
+ }, {
28656
+ default: () => [interval.value.events?.filter(event => !event.allDay).map(event => vue.createVNode(VCalendarIntervalEvent, {
28657
+ "event": event,
28658
+ "interval": interval.value,
28659
+ "intervalDivisions": props.intervalDivisions,
28660
+ "intervalDuration": props.intervalDuration,
28661
+ "intervalHeight": props.intervalHeight
28662
+ }, null))]
28663
+ })])]);
28752
28664
  });
28753
28665
  return {
28754
28666
  interval
@@ -31657,7 +31569,7 @@
31657
31569
  };
31658
31570
  });
31659
31571
  }
31660
- const version$1 = "3.8.1-next.2025-04-18";
31572
+ const version$1 = "3.8.2-dev.2025-04-17";
31661
31573
  createVuetify$1.version = version$1;
31662
31574
 
31663
31575
  // Vue's inject() can only be used in setup
@@ -31840,7 +31752,7 @@
31840
31752
  flat: true
31841
31753
  },
31842
31754
  VAutocomplete: {
31843
- variant: 'filled'
31755
+ variant: 'outlined'
31844
31756
  },
31845
31757
  VBanner: {
31846
31758
  color: 'primary'
@@ -31869,7 +31781,10 @@
31869
31781
  rounded: 'sm'
31870
31782
  },
31871
31783
  VCombobox: {
31872
- variant: 'filled'
31784
+ variant: 'outlined'
31785
+ },
31786
+ VDateInput: {
31787
+ variant: 'outlined'
31873
31788
  },
31874
31789
  VDatePicker: {
31875
31790
  controlHeight: 48,
@@ -31883,6 +31798,9 @@
31883
31798
  rounded: 'circle'
31884
31799
  }
31885
31800
  },
31801
+ VFileInput: {
31802
+ variant: 'outlined'
31803
+ },
31886
31804
  VNavigationDrawer: {
31887
31805
  // VList: {
31888
31806
  // nav: true,
@@ -31891,8 +31809,15 @@
31891
31809
  // },
31892
31810
  // },
31893
31811
  },
31812
+ VNumberInput: {
31813
+ variant: 'outlined',
31814
+ VBtn: {
31815
+ color: undefined,
31816
+ rounded: undefined
31817
+ }
31818
+ },
31894
31819
  VSelect: {
31895
- variant: 'filled'
31820
+ variant: 'outlined'
31896
31821
  },
31897
31822
  VSlider: {
31898
31823
  color: 'primary'
@@ -31901,10 +31826,10 @@
31901
31826
  color: 'primary'
31902
31827
  },
31903
31828
  VTextarea: {
31904
- variant: 'filled'
31829
+ variant: 'outlined'
31905
31830
  },
31906
31831
  VTextField: {
31907
- variant: 'filled'
31832
+ variant: 'outlined'
31908
31833
  },
31909
31834
  VToolbar: {
31910
31835
  VBtn: {
@@ -31942,7 +31867,7 @@
31942
31867
 
31943
31868
  /* eslint-disable local-rules/sort-imports */
31944
31869
 
31945
- const version = "3.8.1-next.2025-04-18";
31870
+ const version = "3.8.2-dev.2025-04-17";
31946
31871
 
31947
31872
  /* eslint-disable local-rules/sort-imports */
31948
31873