@vuetify/nightly 3.7.4-next.2024-11-06 → 3.7.5-dev.2024-12-03

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 (219) hide show
  1. package/dist/json/attributes.json +3034 -3026
  2. package/dist/json/importMap-labs.json +14 -14
  3. package/dist/json/importMap.json +138 -138
  4. package/dist/json/tags.json +2 -0
  5. package/dist/json/web-types.json +5538 -5520
  6. package/dist/vuetify-labs.css +25130 -23413
  7. package/dist/vuetify-labs.d.ts +162 -156
  8. package/dist/vuetify-labs.esm.js +89 -71
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +89 -71
  11. package/dist/vuetify-labs.min.css +4 -3
  12. package/dist/vuetify.css +24211 -22491
  13. package/dist/vuetify.d.ts +146 -140
  14. package/dist/vuetify.esm.js +78 -61
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +78 -61
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +4 -3
  19. package/dist/vuetify.min.js +40 -40
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.css +215 -207
  22. package/lib/components/VApp/VApp.css +15 -16
  23. package/lib/components/VAppBar/VAppBar.css +12 -14
  24. package/lib/components/VAutocomplete/VAutocomplete.css +85 -86
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.mts +16 -16
  28. package/lib/components/VAvatar/VAvatar.css +106 -108
  29. package/lib/components/VBadge/VBadge.css +77 -73
  30. package/lib/components/VBadge/VBadge.sass +4 -0
  31. package/lib/components/VBanner/VBanner.css +166 -161
  32. package/lib/components/VBottomNavigation/VBottomNavigation.css +63 -64
  33. package/lib/components/VBottomSheet/VBottomSheet.css +31 -34
  34. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +57 -54
  35. package/lib/components/VBtn/VBtn.css +408 -385
  36. package/lib/components/VBtn/VBtn.sass +4 -4
  37. package/lib/components/VBtnGroup/VBtnGroup.css +64 -63
  38. package/lib/components/VBtnToggle/VBtnToggle.css +14 -16
  39. package/lib/components/VCard/VCard.css +302 -294
  40. package/lib/components/VCarousel/VCarousel.css +65 -63
  41. package/lib/components/VCarousel/VCarousel.sass +1 -1
  42. package/lib/components/VCheckbox/VCheckbox.css +5 -7
  43. package/lib/components/VChip/VChip.css +411 -378
  44. package/lib/components/VChip/VChip.mjs +18 -10
  45. package/lib/components/VChip/VChip.mjs.map +1 -1
  46. package/lib/components/VChip/index.d.mts +13 -8
  47. package/lib/components/VChipGroup/VChipGroup.css +18 -19
  48. package/lib/components/VChipGroup/VChipGroup.mjs +2 -0
  49. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  50. package/lib/components/VChipGroup/index.d.mts +5 -0
  51. package/lib/components/VCode/VCode.css +8 -10
  52. package/lib/components/VColorPicker/VColorPicker.css +22 -22
  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 +85 -86
  59. package/lib/components/VCombobox/VCombobox.mjs +4 -4
  60. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  61. package/lib/components/VCombobox/index.d.mts +16 -16
  62. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +9 -7
  63. package/lib/components/VConfirmEdit/VConfirmEdit.mjs.map +1 -1
  64. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +1 -1
  65. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -1
  66. package/lib/components/VConfirmEdit/index.d.mts +3 -7
  67. package/lib/components/VCounter/VCounter.css +5 -7
  68. package/lib/components/VDataTable/VDataTable.css +186 -189
  69. package/lib/components/VDataTable/VDataTable.sass +10 -20
  70. package/lib/components/VDataTable/VDataTableFooter.css +31 -33
  71. package/lib/components/VDatePicker/VDatePicker.css +6 -8
  72. package/lib/components/VDatePicker/VDatePickerControls.css +56 -54
  73. package/lib/components/VDatePicker/VDatePickerHeader.css +60 -56
  74. package/lib/components/VDatePicker/VDatePickerHeader.mjs +2 -1
  75. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  76. package/lib/components/VDatePicker/VDatePickerMonth.css +55 -51
  77. package/lib/components/VDatePicker/VDatePickerMonths.css +19 -20
  78. package/lib/components/VDatePicker/VDatePickerYears.css +15 -16
  79. package/lib/components/VDatePicker/index.d.mts +5 -5
  80. package/lib/components/VDialog/VDialog.css +95 -95
  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 +69 -74
  86. package/lib/components/VFab/VFab.sass +4 -5
  87. package/lib/components/VField/VField.css +579 -539
  88. package/lib/components/VField/VField.mjs +2 -1
  89. package/lib/components/VField/VField.mjs.map +1 -1
  90. package/lib/components/VFileInput/VFileInput.css +29 -31
  91. package/lib/components/VFooter/VFooter.css +36 -38
  92. package/lib/components/VGrid/VGrid.css +592 -565
  93. package/lib/components/VIcon/VIcon.css +52 -51
  94. package/lib/components/VImg/VImg.css +51 -50
  95. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +37 -36
  96. package/lib/components/VInput/VInput.css +142 -131
  97. package/lib/components/VItemGroup/VItemGroup.css +5 -7
  98. package/lib/components/VKbd/VKbd.css +11 -13
  99. package/lib/components/VLabel/VLabel.css +15 -16
  100. package/lib/components/VLayout/VLayout.css +8 -10
  101. package/lib/components/VLayout/VLayoutItem.css +7 -8
  102. package/lib/components/VList/VList.css +108 -104
  103. package/lib/components/VList/VList.mjs +3 -2
  104. package/lib/components/VList/VList.mjs.map +1 -1
  105. package/lib/components/VList/VList.sass +1 -1
  106. package/lib/components/VList/VListItem.css +452 -440
  107. package/lib/components/VList/VListItem.mjs +3 -2
  108. package/lib/components/VList/VListItem.mjs.map +1 -1
  109. package/lib/components/VList/VListItem.sass +1 -2
  110. package/lib/components/VList/index.d.mts +10 -10
  111. package/lib/components/VLocaleProvider/VLocaleProvider.css +2 -4
  112. package/lib/components/VMain/VMain.css +30 -32
  113. package/lib/components/VMenu/VMenu.css +19 -21
  114. package/lib/components/VMessages/VMessages.css +15 -17
  115. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +108 -106
  116. package/lib/components/VOtpInput/VOtpInput.css +58 -56
  117. package/lib/components/VOverlay/VOverlay.css +63 -60
  118. package/lib/components/VOverlay/VOverlay.sass +13 -14
  119. package/lib/components/VPagination/VPagination.css +8 -10
  120. package/lib/components/VParallax/VParallax.css +6 -8
  121. package/lib/components/VProgressCircular/VProgressCircular.css +101 -95
  122. package/lib/components/VProgressLinear/VProgressLinear.css +222 -209
  123. package/lib/components/VRadioGroup/VRadioGroup.css +12 -14
  124. package/lib/components/VRating/VRating.css +53 -52
  125. package/lib/components/VResponsive/VResponsive.css +26 -25
  126. package/lib/components/VSelect/VSelect.css +52 -54
  127. package/lib/components/VSelect/VSelect.mjs +3 -3
  128. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  129. package/lib/components/VSelect/index.d.mts +16 -16
  130. package/lib/components/VSelectionControl/VSelectionControl.css +102 -100
  131. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +8 -10
  132. package/lib/components/VSheet/VSheet.css +36 -38
  133. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +224 -225
  134. package/lib/components/VSlideGroup/VSlideGroup.css +55 -53
  135. package/lib/components/VSlider/VSlider.css +57 -53
  136. package/lib/components/VSlider/VSliderThumb.css +153 -142
  137. package/lib/components/VSlider/VSliderTrack.css +174 -155
  138. package/lib/components/VSnackbar/VSnackbar.css +140 -140
  139. package/lib/components/VSpeedDial/VSpeedDial.css +41 -43
  140. package/lib/components/VStepper/VStepper.css +56 -55
  141. package/lib/components/VStepper/VStepper.mjs +5 -4
  142. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  143. package/lib/components/VStepper/VStepperItem.css +115 -112
  144. package/lib/components/VStepper/VStepperItem.mjs +5 -4
  145. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  146. package/lib/components/VStepper/index.d.mts +51 -45
  147. package/lib/components/VSwitch/VSwitch.css +139 -129
  148. package/lib/components/VSystemBar/VSystemBar.css +43 -45
  149. package/lib/components/VTable/VTable.css +141 -140
  150. package/lib/components/VTable/VTable.sass +2 -4
  151. package/lib/components/VTabs/VTab.css +29 -30
  152. package/lib/components/VTabs/VTabs.css +65 -59
  153. package/lib/components/VTextField/VTextField.css +68 -65
  154. package/lib/components/VTextarea/VTextarea.css +39 -47
  155. package/lib/components/VTextarea/VTextarea.sass +2 -4
  156. package/lib/components/VThemeProvider/VThemeProvider.css +3 -5
  157. package/lib/components/VTimeline/VTimeline.css +418 -379
  158. package/lib/components/VToolbar/VToolbar.css +143 -136
  159. package/lib/components/VTooltip/VTooltip.css +21 -25
  160. package/lib/components/VTooltip/VTooltip.sass +6 -8
  161. package/lib/components/VVirtualScroll/VVirtualScroll.css +9 -11
  162. package/lib/components/VWindow/VWindow.css +70 -73
  163. package/lib/components/index.d.mts +98 -92
  164. package/lib/composables/form.mjs +7 -2
  165. package/lib/composables/form.mjs.map +1 -1
  166. package/lib/composables/theme.mjs +4 -4
  167. package/lib/composables/theme.mjs.map +1 -1
  168. package/lib/composables/validation.mjs +10 -12
  169. package/lib/composables/validation.mjs.map +1 -1
  170. package/lib/directives/ripple/VRipple.css +36 -38
  171. package/lib/entry-bundler.mjs +1 -1
  172. package/lib/entry-bundler.mjs.map +1 -1
  173. package/lib/framework.mjs +1 -1
  174. package/lib/framework.mjs.map +1 -1
  175. package/lib/index.d.mts +48 -48
  176. package/lib/labs/VCalendar/VCalendar.css +225 -219
  177. package/lib/labs/VCalendar/VCalendarDay.css +32 -33
  178. package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
  179. package/lib/labs/VCalendar/VCalendarInterval.css +42 -43
  180. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +5 -7
  181. package/lib/labs/VCalendar/VCalendarMonthDay.css +58 -61
  182. package/lib/labs/VCalendar/VCalendarMonthDay.sass +2 -3
  183. package/lib/labs/VDateInput/VDateInput.mjs +1 -1
  184. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  185. package/lib/labs/VNumberInput/VNumberInput.css +38 -40
  186. package/lib/labs/VNumberInput/VNumberInput.mjs +7 -5
  187. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  188. package/lib/labs/VPicker/VPicker.css +57 -53
  189. package/lib/labs/VStepperVertical/index.d.mts +44 -44
  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 +15 -17
  194. package/lib/labs/VTreeview/VTreeviewItem.mjs +3 -4
  195. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  196. package/lib/labs/VTreeview/VTreeviewItem.sass +1 -2
  197. package/lib/labs/VTreeview/index.d.mts +20 -20
  198. package/lib/labs/components.d.mts +64 -64
  199. package/lib/locale/fr.mjs +1 -1
  200. package/lib/locale/fr.mjs.map +1 -1
  201. package/lib/styles/elements/_global.sass +1 -1
  202. package/lib/styles/generic/_colors.scss +3 -3
  203. package/lib/styles/generic/_layers.scss +1 -13
  204. package/lib/styles/generic/_transitions.scss +32 -32
  205. package/lib/styles/main.css +16139 -14666
  206. package/lib/styles/settings/_utilities.scss +5 -0
  207. package/lib/styles/settings/_variables.scss +2 -1
  208. package/lib/styles/tools/_bootable.sass +3 -0
  209. package/lib/styles/tools/_border.sass +4 -4
  210. package/lib/styles/tools/_display.sass +10 -0
  211. package/lib/styles/tools/_elevation.sass +2 -2
  212. package/lib/styles/tools/_index.sass +2 -0
  213. package/lib/styles/tools/_layer.scss +2 -4
  214. package/lib/styles/tools/_position.sass +2 -2
  215. package/lib/styles/tools/_radius.sass +10 -0
  216. package/lib/styles/tools/_rounded.sass +2 -2
  217. package/lib/styles/tools/_utilities.sass +5 -1
  218. package/lib/styles/utilities/_elevation.scss +1 -1
  219. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.4-next.2024-11-06
2
+ * Vuetify v3.7.5-dev.2024-12-03
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2427,15 +2427,15 @@ function createTheme(options) {
2427
2427
  const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2428
2428
  for (const key of colors) {
2429
2429
  if (/^on-[a-z]/.test(key)) {
2430
- createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key}))`]);
2430
+ createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
2431
2431
  } else {
2432
- createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key}))`, `color: rgb(var(--v-theme-on-${key}))`]);
2433
- createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key}))`]);
2432
+ createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);
2433
+ createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
2434
2434
  createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
2435
2435
  }
2436
2436
  }
2437
2437
  lines.push(...bgLines, ...fgLines);
2438
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2438
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
2439
2439
  });
2440
2440
  function getHead() {
2441
2441
  return {
@@ -6670,8 +6670,13 @@ function createForm(props) {
6670
6670
  resetValidation
6671
6671
  };
6672
6672
  }
6673
- function useForm() {
6674
- return inject$1(FormKey, null);
6673
+ function useForm(props) {
6674
+ const form = inject$1(FormKey, null);
6675
+ return {
6676
+ ...form,
6677
+ isReadonly: computed(() => !!(props?.readonly ?? form?.isReadonly.value)),
6678
+ isDisabled: computed(() => !!(props?.disabled ?? form?.isDisabled.value))
6679
+ };
6675
6680
  }
6676
6681
 
6677
6682
  // Composables
@@ -6712,17 +6717,15 @@ function useValidation(props) {
6712
6717
  let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();
6713
6718
  const model = useProxiedModel(props, 'modelValue');
6714
6719
  const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6715
- const form = useForm();
6720
+ const form = useForm(props);
6716
6721
  const internalErrorMessages = ref([]);
6717
6722
  const isPristine = shallowRef(true);
6718
6723
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6719
- const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value));
6720
- const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value));
6721
6724
  const errorMessages = computed(() => {
6722
6725
  return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6723
6726
  });
6724
6727
  const validateOn = computed(() => {
6725
- let value = (props.validateOn ?? form?.validateOn.value) || 'input';
6728
+ let value = (props.validateOn ?? form.validateOn?.value) || 'input';
6726
6729
  if (value === 'lazy') value = 'input lazy';
6727
6730
  if (value === 'eager') value = 'input eager';
6728
6731
  const set = new Set(value?.split(' ') ?? []);
@@ -6748,14 +6751,14 @@ function useValidation(props) {
6748
6751
  return {
6749
6752
  [`${name}--error`]: isValid.value === false,
6750
6753
  [`${name}--dirty`]: isDirty.value,
6751
- [`${name}--disabled`]: isDisabled.value,
6752
- [`${name}--readonly`]: isReadonly.value
6754
+ [`${name}--disabled`]: form.isDisabled.value,
6755
+ [`${name}--readonly`]: form.isReadonly.value
6753
6756
  };
6754
6757
  });
6755
6758
  const vm = getCurrentInstance('validation');
6756
6759
  const uid = computed(() => props.name ?? unref(id));
6757
6760
  onBeforeMount(() => {
6758
- form?.register({
6761
+ form.register?.({
6759
6762
  id: uid.value,
6760
6763
  vm,
6761
6764
  validate,
@@ -6764,13 +6767,13 @@ function useValidation(props) {
6764
6767
  });
6765
6768
  });
6766
6769
  onBeforeUnmount(() => {
6767
- form?.unregister(uid.value);
6770
+ form.unregister?.(uid.value);
6768
6771
  });
6769
6772
  onMounted(async () => {
6770
6773
  if (!validateOn.value.lazy) {
6771
6774
  await validate(!validateOn.value.eager);
6772
6775
  }
6773
- form?.update(uid.value, isValid.value, errorMessages.value);
6776
+ form.update?.(uid.value, isValid.value, errorMessages.value);
6774
6777
  });
6775
6778
  useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
6776
6779
  watch(validationModel, () => {
@@ -6790,7 +6793,7 @@ function useValidation(props) {
6790
6793
  });
6791
6794
  });
6792
6795
  watch([isValid, errorMessages], () => {
6793
- form?.update(uid.value, isValid.value, errorMessages.value);
6796
+ form.update?.(uid.value, isValid.value, errorMessages.value);
6794
6797
  });
6795
6798
  async function reset() {
6796
6799
  model.value = null;
@@ -6831,8 +6834,8 @@ function useValidation(props) {
6831
6834
  return {
6832
6835
  errorMessages,
6833
6836
  isDirty,
6834
- isDisabled,
6835
- isReadonly,
6837
+ isDisabled: form.isDisabled,
6838
+ isReadonly: form.isReadonly,
6836
6839
  isPristine,
6837
6840
  isValid,
6838
6841
  isValidating,
@@ -7751,6 +7754,7 @@ const VSlideGroup = genericComponent()({
7751
7754
 
7752
7755
  const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
7753
7756
  const makeVChipGroupProps = propsFactory({
7757
+ baseColor: String,
7754
7758
  column: Boolean,
7755
7759
  filter: Boolean,
7756
7760
  valueComparator: {
@@ -7790,6 +7794,7 @@ const VChipGroup = genericComponent()({
7790
7794
  } = useGroup(props, VChipGroupSymbol);
7791
7795
  provideDefaults({
7792
7796
  VChip: {
7797
+ baseColor: toRef(props, 'baseColor'),
7793
7798
  color: toRef(props, 'color'),
7794
7799
  disabled: toRef(props, 'disabled'),
7795
7800
  filter: toRef(props, 'filter'),
@@ -7823,6 +7828,7 @@ const makeVChipProps = propsFactory({
7823
7828
  activeClass: String,
7824
7829
  appendAvatar: String,
7825
7830
  appendIcon: IconValue,
7831
+ baseColor: String,
7826
7832
  closable: Boolean,
7827
7833
  closeIcon: {
7828
7834
  type: IconValue,
@@ -7835,7 +7841,7 @@ const makeVChipProps = propsFactory({
7835
7841
  draggable: Boolean,
7836
7842
  filter: Boolean,
7837
7843
  filterIcon: {
7838
- type: String,
7844
+ type: IconValue,
7839
7845
  default: '$complete'
7840
7846
  },
7841
7847
  label: Boolean,
@@ -7897,11 +7903,6 @@ const VChip = genericComponent()({
7897
7903
  const {
7898
7904
  borderClasses
7899
7905
  } = useBorder(props);
7900
- const {
7901
- colorClasses,
7902
- colorStyles,
7903
- variantClasses
7904
- } = useVariant(props);
7905
7906
  const {
7906
7907
  densityClasses
7907
7908
  } = useDensity(props);
@@ -7931,6 +7932,18 @@ const VChip = genericComponent()({
7931
7932
  emit('click:close', e);
7932
7933
  }
7933
7934
  }));
7935
+ const variantProps = computed(() => {
7936
+ const showColor = !group || group.isSelected.value;
7937
+ return {
7938
+ color: showColor ? props.color ?? props.baseColor : props.baseColor,
7939
+ variant: props.variant
7940
+ };
7941
+ });
7942
+ const {
7943
+ colorClasses,
7944
+ colorStyles,
7945
+ variantClasses
7946
+ } = useVariant(variantProps);
7934
7947
  function onClick(e) {
7935
7948
  emit('click', e);
7936
7949
  if (!isClickable.value) return;
@@ -7951,16 +7964,16 @@ const VChip = genericComponent()({
7951
7964
  const hasFilter = !!(slots.filter || props.filter) && group;
7952
7965
  const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
7953
7966
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
7954
- const hasColor = !group || group.isSelected.value;
7955
7967
  return isActive.value && withDirectives(createVNode(Tag, mergeProps({
7956
7968
  "class": ['v-chip', {
7957
7969
  'v-chip--disabled': props.disabled,
7958
7970
  'v-chip--label': props.label,
7959
7971
  'v-chip--link': isClickable.value,
7960
7972
  'v-chip--filter': hasFilter,
7961
- 'v-chip--pill': props.pill
7962
- }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
7963
- "style": [hasColor ? colorStyles.value : undefined, props.style],
7973
+ 'v-chip--pill': props.pill,
7974
+ [`${props.activeClass}`]: props.activeClass && link.isActive?.value
7975
+ }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
7976
+ "style": [colorStyles.value, props.style],
7964
7977
  "disabled": props.disabled || undefined,
7965
7978
  "draggable": props.draggable,
7966
7979
  "tabindex": isClickable.value ? 0 : undefined,
@@ -8932,7 +8945,8 @@ const VListItem = genericComponent()({
8932
8945
  const list = useList();
8933
8946
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
8934
8947
  const isLink = computed(() => props.link !== false && link.isLink.value);
8935
- const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || !!list && (root.selectable.value || root.activatable.value || props.value != null)));
8948
+ const isSelectable = computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
8949
+ const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
8936
8950
  const roundedProps = computed(() => props.rounded || props.nav);
8937
8951
  const color = computed(() => props.color ?? props.activeColor);
8938
8952
  const variantProps = computed(() => ({
@@ -9023,7 +9037,7 @@ const VListItem = genericComponent()({
9023
9037
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
9024
9038
  "style": [colorStyles.value, dimensionStyles.value, props.style],
9025
9039
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9026
- "aria-selected": root.activatable.value ? isActivated.value : isSelected.value,
9040
+ "aria-selected": isSelectable.value ? root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value : undefined,
9027
9041
  "onClick": onClick,
9028
9042
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9029
9043
  }, link.linkProps), {
@@ -9440,8 +9454,8 @@ const makeVListProps = propsFactory({
9440
9454
  activeClass: String,
9441
9455
  bgColor: String,
9442
9456
  disabled: Boolean,
9443
- expandIcon: String,
9444
- collapseIcon: String,
9457
+ expandIcon: IconValue,
9458
+ collapseIcon: IconValue,
9445
9459
  lines: {
9446
9460
  type: [Boolean, String],
9447
9461
  default: 'one'
@@ -11615,7 +11629,8 @@ const VField = genericComponent()({
11615
11629
  "style": textColorStyles.value
11616
11630
  }, {
11617
11631
  default: () => [label()]
11618
- }), createVNode(VFieldLabel, {
11632
+ }), hasLabel.value && createVNode(VFieldLabel, {
11633
+ "key": "label",
11619
11634
  "ref": labelRef,
11620
11635
  "for": id.value
11621
11636
  }, {
@@ -12441,7 +12456,7 @@ const VSelect = genericComponent()({
12441
12456
  const counterValue = computed(() => {
12442
12457
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12443
12458
  });
12444
- const form = useForm();
12459
+ const form = useForm(props);
12445
12460
  const selectedValues = computed(() => model.value.map(selection => selection.value));
12446
12461
  const isFocused = shallowRef(false);
12447
12462
  const label = computed(() => menu.value ? props.closeText : props.openText);
@@ -12453,7 +12468,7 @@ const VSelect = genericComponent()({
12453
12468
  }
12454
12469
  return items.value;
12455
12470
  });
12456
- const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12471
+ const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12457
12472
  const computedMenuProps = computed(() => {
12458
12473
  return {
12459
12474
  ...props.menuProps,
@@ -12480,7 +12495,7 @@ const VSelect = genericComponent()({
12480
12495
  }
12481
12496
  }
12482
12497
  function onKeydown(e) {
12483
- if (!e.key || props.readonly || form?.isReadonly.value) return;
12498
+ if (!e.key || form.isReadonly.value) return;
12484
12499
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
12485
12500
  e.preventDefault();
12486
12501
  }
@@ -12958,7 +12973,7 @@ const VAutocomplete = genericComponent()({
12958
12973
  const counterValue = computed(() => {
12959
12974
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12960
12975
  });
12961
- const form = useForm();
12976
+ const form = useForm(props);
12962
12977
  const {
12963
12978
  filteredItems,
12964
12979
  getMatches
@@ -12976,7 +12991,7 @@ const VAutocomplete = genericComponent()({
12976
12991
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
12977
12992
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
12978
12993
  });
12979
- const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12994
+ const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12980
12995
  const listRef = ref();
12981
12996
  const listEvents = useScrolling(listRef, vTextFieldRef);
12982
12997
  function onClear(e) {
@@ -13003,7 +13018,7 @@ const VAutocomplete = genericComponent()({
13003
13018
  }
13004
13019
  }
13005
13020
  function onKeydown(e) {
13006
- if (props.readonly || form?.isReadonly.value) return;
13021
+ if (form.isReadonly.value) return;
13007
13022
  const selectionStart = vTextFieldRef.value.selectionStart;
13008
13023
  const length = model.value.length;
13009
13024
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -13180,7 +13195,7 @@ const VAutocomplete = genericComponent()({
13180
13195
  'v-autocomplete--selecting-index': selectionIndex.value > -1
13181
13196
  }, props.class],
13182
13197
  "style": props.style,
13183
- "readonly": props.readonly,
13198
+ "readonly": form.isReadonly.value,
13184
13199
  "placeholder": isDirty ? undefined : props.placeholder,
13185
13200
  "onClick:clear": onClear,
13186
13201
  "onMousedown:control": onMousedownControl,
@@ -16799,7 +16814,7 @@ const VCombobox = genericComponent()({
16799
16814
  const transformed = transformOut(v);
16800
16815
  return props.multiple ? transformed : transformed[0] ?? null;
16801
16816
  });
16802
- const form = useForm();
16817
+ const form = useForm(props);
16803
16818
  const hasChips = computed(() => !!(props.chips || slots.chip));
16804
16819
  const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
16805
16820
  const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
@@ -16859,7 +16874,7 @@ const VCombobox = genericComponent()({
16859
16874
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
16860
16875
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
16861
16876
  });
16862
- const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16877
+ const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
16863
16878
  const listRef = ref();
16864
16879
  const listEvents = useScrolling(listRef, vTextFieldRef);
16865
16880
  function onClear(e) {
@@ -16887,7 +16902,7 @@ const VCombobox = genericComponent()({
16887
16902
  }
16888
16903
  // eslint-disable-next-line complexity
16889
16904
  function onKeydown(e) {
16890
- if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
16905
+ if (isComposingIgnoreKey(e) || form.isReadonly.value) return;
16891
16906
  const selectionStart = vTextFieldRef.value.selectionStart;
16892
16907
  const length = model.value.length;
16893
16908
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -17059,7 +17074,7 @@ const VCombobox = genericComponent()({
17059
17074
  [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
17060
17075
  }, props.class],
17061
17076
  "style": props.style,
17062
- "readonly": props.readonly,
17077
+ "readonly": form.isReadonly.value,
17063
17078
  "placeholder": isDirty ? undefined : props.placeholder,
17064
17079
  "onClick:clear": onClear,
17065
17080
  "onMousedown:control": onMousedownControl,
@@ -18103,21 +18118,23 @@ const VConfirmEdit = genericComponent()({
18103
18118
  internalModel.value = structuredClone(toRaw(model.value));
18104
18119
  emit('cancel');
18105
18120
  }
18106
- let actionsUsed = false;
18107
- useRender(() => {
18108
- const actions = createVNode(Fragment, null, [createVNode(VBtn, {
18121
+ function actions(actionsProps) {
18122
+ return createVNode(Fragment, null, [createVNode(VBtn, mergeProps({
18109
18123
  "disabled": isPristine.value,
18110
18124
  "variant": "text",
18111
18125
  "color": props.color,
18112
18126
  "onClick": cancel,
18113
18127
  "text": t(props.cancelText)
18114
- }, null), createVNode(VBtn, {
18128
+ }, actionsProps), null), createVNode(VBtn, mergeProps({
18115
18129
  "disabled": isPristine.value,
18116
18130
  "variant": "text",
18117
18131
  "color": props.color,
18118
18132
  "onClick": save,
18119
18133
  "text": t(props.okText)
18120
- }, null)]);
18134
+ }, actionsProps), null)]);
18135
+ }
18136
+ let actionsUsed = false;
18137
+ useRender(() => {
18121
18138
  return createVNode(Fragment, null, [slots.default?.({
18122
18139
  model: internalModel,
18123
18140
  save,
@@ -18127,7 +18144,7 @@ const VConfirmEdit = genericComponent()({
18127
18144
  actionsUsed = true;
18128
18145
  return actions;
18129
18146
  }
18130
- }), !actionsUsed && actions]);
18147
+ }), !actionsUsed && actions()]);
18131
18148
  });
18132
18149
  return {
18133
18150
  save,
@@ -21417,7 +21434,7 @@ const VDatePickerControls = genericComponent()({
21417
21434
  // Types
21418
21435
 
21419
21436
  const makeVDatePickerHeaderProps = propsFactory({
21420
- appendIcon: String,
21437
+ appendIcon: IconValue,
21421
21438
  color: String,
21422
21439
  header: String,
21423
21440
  transition: String,
@@ -26073,20 +26090,20 @@ const makeStepperItemProps = propsFactory({
26073
26090
  subtitle: String,
26074
26091
  complete: Boolean,
26075
26092
  completeIcon: {
26076
- type: String,
26093
+ type: IconValue,
26077
26094
  default: '$complete'
26078
26095
  },
26079
26096
  editable: Boolean,
26080
26097
  editIcon: {
26081
- type: String,
26098
+ type: IconValue,
26082
26099
  default: '$edit'
26083
26100
  },
26084
26101
  error: Boolean,
26085
26102
  errorIcon: {
26086
- type: String,
26103
+ type: IconValue,
26087
26104
  default: '$error'
26088
26105
  },
26089
- icon: String,
26106
+ icon: IconValue,
26090
26107
  ripple: {
26091
26108
  type: [Boolean, Object],
26092
26109
  default: true
@@ -26247,10 +26264,10 @@ const VStepperWindowItem = genericComponent()({
26247
26264
  const makeStepperProps = propsFactory({
26248
26265
  altLabels: Boolean,
26249
26266
  bgColor: String,
26250
- completeIcon: String,
26251
- editIcon: String,
26267
+ completeIcon: IconValue,
26268
+ editIcon: IconValue,
26252
26269
  editable: Boolean,
26253
- errorIcon: String,
26270
+ errorIcon: IconValue,
26254
26271
  hideActions: Boolean,
26255
26272
  items: {
26256
26273
  type: Array,
@@ -28148,7 +28165,7 @@ const VDateInput = genericComponent()({
28148
28165
  },
28149
28166
  "onMousedown": e => e.preventDefault()
28150
28167
  }), {
28151
- actions: !props.hideActions ? () => actions : undefined
28168
+ actions: !props.hideActions ? actions : undefined
28152
28169
  });
28153
28170
  }
28154
28171
  })]
@@ -28213,8 +28230,8 @@ const VNumberInput = genericComponent()({
28213
28230
  const vTextFieldRef = ref();
28214
28231
  const stepDecimals = computed(() => getDecimals(props.step));
28215
28232
  const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0);
28216
- const form = useForm();
28217
- const controlsDisabled = computed(() => props.disabled || props.readonly || form?.isReadonly.value);
28233
+ const form = useForm(props);
28234
+ const controlsDisabled = computed(() => form.isDisabled.value || form.isReadonly.value);
28218
28235
  const canIncrease = computed(() => {
28219
28236
  if (controlsDisabled.value) return false;
28220
28237
  return (model.value ?? 0) + props.step <= props.max;
@@ -28237,7 +28254,7 @@ const VNumberInput = genericComponent()({
28237
28254
  click: onClickDown
28238
28255
  }));
28239
28256
  onMounted(() => {
28240
- if (!props.readonly && !props.disabled) {
28257
+ if (!controlsDisabled.value) {
28241
28258
  clampModel();
28242
28259
  }
28243
28260
  });
@@ -28313,7 +28330,8 @@ const VNumberInput = genericComponent()({
28313
28330
  "flat": true,
28314
28331
  "key": "increment-btn",
28315
28332
  "height": controlNodeDefaultHeight.value,
28316
- "name": "increment-btn",
28333
+ "data-testid": "increment",
28334
+ "aria-hidden": "true",
28317
28335
  "icon": incrementIcon.value,
28318
28336
  "onClick": onClickUp,
28319
28337
  "onMousedown": onControlMousedown,
@@ -28340,7 +28358,8 @@ const VNumberInput = genericComponent()({
28340
28358
  "flat": true,
28341
28359
  "key": "decrement-btn",
28342
28360
  "height": controlNodeDefaultHeight.value,
28343
- "name": "decrement-btn",
28361
+ "data-testid": "decrement",
28362
+ "aria-hidden": "true",
28344
28363
  "icon": decrementIcon.value,
28345
28364
  "size": controlNodeSize.value,
28346
28365
  "tabindex": "-1",
@@ -29592,9 +29611,8 @@ const VTreeviewItem = genericComponent()({
29592
29611
  const vListItemRef = ref();
29593
29612
  const isActivatableGroupActivator = computed(() => vListItemRef.value?.root.activatable.value && vListItemRef.value?.isGroupActivator);
29594
29613
  const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
29595
- function activateItem(e) {
29596
- if (!isClickable.value || !isActivatableGroupActivator.value && vListItemRef.value?.isGroupActivator) return;
29597
- if (vListItemRef.value?.root.activatable.value) {
29614
+ function activateGroupActivator(e) {
29615
+ if (isClickable.value && isActivatableGroupActivator.value) {
29598
29616
  vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29599
29617
  }
29600
29618
  }
@@ -29613,7 +29631,7 @@ const VTreeviewItem = genericComponent()({
29613
29631
  'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(vListItemRef.value?.id)
29614
29632
  }, props.class],
29615
29633
  "ripple": false,
29616
- "onClick": props.onClick ?? activateItem
29634
+ "onClick": props.onClick ?? activateGroupActivator
29617
29635
  }), {
29618
29636
  ...slots,
29619
29637
  prepend: hasPrepend ? slotProps => {
@@ -30403,7 +30421,7 @@ function createVuetify$1() {
30403
30421
  goTo
30404
30422
  };
30405
30423
  }
30406
- const version$1 = "3.7.4-next.2024-11-06";
30424
+ const version$1 = "3.7.5-dev.2024-12-03";
30407
30425
  createVuetify$1.version = version$1;
30408
30426
 
30409
30427
  // Vue's inject() can only be used in setup
@@ -30656,7 +30674,7 @@ var index = /*#__PURE__*/Object.freeze({
30656
30674
 
30657
30675
  /* eslint-disable local-rules/sort-imports */
30658
30676
 
30659
- const version = "3.7.4-next.2024-11-06";
30677
+ const version = "3.7.5-dev.2024-12-03";
30660
30678
 
30661
30679
  /* eslint-disable local-rules/sort-imports */
30662
30680