@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
package/dist/vuetify.js CHANGED
@@ -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
  */
@@ -2871,15 +2871,15 @@
2871
2871
  const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2872
2872
  for (const key of colors) {
2873
2873
  if (/^on-[a-z]/.test(key)) {
2874
- createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key}))`]);
2874
+ createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
2875
2875
  } else {
2876
- 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}))`]);
2877
- createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key}))`]);
2876
+ 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`]);
2877
+ createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
2878
2878
  createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
2879
2879
  }
2880
2880
  }
2881
2881
  lines.push(...bgLines, ...fgLines);
2882
- return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
2882
+ return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
2883
2883
  });
2884
2884
  function getHead() {
2885
2885
  return {
@@ -6907,8 +6907,13 @@
6907
6907
  resetValidation
6908
6908
  };
6909
6909
  }
6910
- function useForm() {
6911
- return vue.inject(FormKey, null);
6910
+ function useForm(props) {
6911
+ const form = vue.inject(FormKey, null);
6912
+ return {
6913
+ ...form,
6914
+ isReadonly: vue.computed(() => !!(props?.readonly ?? form?.isReadonly.value)),
6915
+ isDisabled: vue.computed(() => !!(props?.disabled ?? form?.isDisabled.value))
6916
+ };
6912
6917
  }
6913
6918
 
6914
6919
  // Composables
@@ -6949,17 +6954,15 @@
6949
6954
  let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();
6950
6955
  const model = useProxiedModel(props, 'modelValue');
6951
6956
  const validationModel = vue.computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6952
- const form = useForm();
6957
+ const form = useForm(props);
6953
6958
  const internalErrorMessages = vue.ref([]);
6954
6959
  const isPristine = vue.shallowRef(true);
6955
6960
  const isDirty = vue.computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6956
- const isDisabled = vue.computed(() => !!(props.disabled ?? form?.isDisabled.value));
6957
- const isReadonly = vue.computed(() => !!(props.readonly ?? form?.isReadonly.value));
6958
6961
  const errorMessages = vue.computed(() => {
6959
6962
  return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6960
6963
  });
6961
6964
  const validateOn = vue.computed(() => {
6962
- let value = (props.validateOn ?? form?.validateOn.value) || 'input';
6965
+ let value = (props.validateOn ?? form.validateOn?.value) || 'input';
6963
6966
  if (value === 'lazy') value = 'input lazy';
6964
6967
  if (value === 'eager') value = 'input eager';
6965
6968
  const set = new Set(value?.split(' ') ?? []);
@@ -6985,14 +6988,14 @@
6985
6988
  return {
6986
6989
  [`${name}--error`]: isValid.value === false,
6987
6990
  [`${name}--dirty`]: isDirty.value,
6988
- [`${name}--disabled`]: isDisabled.value,
6989
- [`${name}--readonly`]: isReadonly.value
6991
+ [`${name}--disabled`]: form.isDisabled.value,
6992
+ [`${name}--readonly`]: form.isReadonly.value
6990
6993
  };
6991
6994
  });
6992
6995
  const vm = getCurrentInstance('validation');
6993
6996
  const uid = vue.computed(() => props.name ?? vue.unref(id));
6994
6997
  vue.onBeforeMount(() => {
6995
- form?.register({
6998
+ form.register?.({
6996
6999
  id: uid.value,
6997
7000
  vm,
6998
7001
  validate,
@@ -7001,13 +7004,13 @@
7001
7004
  });
7002
7005
  });
7003
7006
  vue.onBeforeUnmount(() => {
7004
- form?.unregister(uid.value);
7007
+ form.unregister?.(uid.value);
7005
7008
  });
7006
7009
  vue.onMounted(async () => {
7007
7010
  if (!validateOn.value.lazy) {
7008
7011
  await validate(!validateOn.value.eager);
7009
7012
  }
7010
- form?.update(uid.value, isValid.value, errorMessages.value);
7013
+ form.update?.(uid.value, isValid.value, errorMessages.value);
7011
7014
  });
7012
7015
  useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
7013
7016
  vue.watch(validationModel, () => {
@@ -7027,7 +7030,7 @@
7027
7030
  });
7028
7031
  });
7029
7032
  vue.watch([isValid, errorMessages], () => {
7030
- form?.update(uid.value, isValid.value, errorMessages.value);
7033
+ form.update?.(uid.value, isValid.value, errorMessages.value);
7031
7034
  });
7032
7035
  async function reset() {
7033
7036
  model.value = null;
@@ -7068,8 +7071,8 @@
7068
7071
  return {
7069
7072
  errorMessages,
7070
7073
  isDirty,
7071
- isDisabled,
7072
- isReadonly,
7074
+ isDisabled: form.isDisabled,
7075
+ isReadonly: form.isReadonly,
7073
7076
  isPristine,
7074
7077
  isValid,
7075
7078
  isValidating,
@@ -7988,6 +7991,7 @@
7988
7991
 
7989
7992
  const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
7990
7993
  const makeVChipGroupProps = propsFactory({
7994
+ baseColor: String,
7991
7995
  column: Boolean,
7992
7996
  filter: Boolean,
7993
7997
  valueComparator: {
@@ -8027,6 +8031,7 @@
8027
8031
  } = useGroup(props, VChipGroupSymbol);
8028
8032
  provideDefaults({
8029
8033
  VChip: {
8034
+ baseColor: vue.toRef(props, 'baseColor'),
8030
8035
  color: vue.toRef(props, 'color'),
8031
8036
  disabled: vue.toRef(props, 'disabled'),
8032
8037
  filter: vue.toRef(props, 'filter'),
@@ -8060,6 +8065,7 @@
8060
8065
  activeClass: String,
8061
8066
  appendAvatar: String,
8062
8067
  appendIcon: IconValue,
8068
+ baseColor: String,
8063
8069
  closable: Boolean,
8064
8070
  closeIcon: {
8065
8071
  type: IconValue,
@@ -8072,7 +8078,7 @@
8072
8078
  draggable: Boolean,
8073
8079
  filter: Boolean,
8074
8080
  filterIcon: {
8075
- type: String,
8081
+ type: IconValue,
8076
8082
  default: '$complete'
8077
8083
  },
8078
8084
  label: Boolean,
@@ -8134,11 +8140,6 @@
8134
8140
  const {
8135
8141
  borderClasses
8136
8142
  } = useBorder(props);
8137
- const {
8138
- colorClasses,
8139
- colorStyles,
8140
- variantClasses
8141
- } = useVariant(props);
8142
8143
  const {
8143
8144
  densityClasses
8144
8145
  } = useDensity(props);
@@ -8168,6 +8169,18 @@
8168
8169
  emit('click:close', e);
8169
8170
  }
8170
8171
  }));
8172
+ const variantProps = vue.computed(() => {
8173
+ const showColor = !group || group.isSelected.value;
8174
+ return {
8175
+ color: showColor ? props.color ?? props.baseColor : props.baseColor,
8176
+ variant: props.variant
8177
+ };
8178
+ });
8179
+ const {
8180
+ colorClasses,
8181
+ colorStyles,
8182
+ variantClasses
8183
+ } = useVariant(variantProps);
8171
8184
  function onClick(e) {
8172
8185
  emit('click', e);
8173
8186
  if (!isClickable.value) return;
@@ -8188,16 +8201,16 @@
8188
8201
  const hasFilter = !!(slots.filter || props.filter) && group;
8189
8202
  const hasPrependMedia = !!(props.prependIcon || props.prependAvatar);
8190
8203
  const hasPrepend = !!(hasPrependMedia || slots.prepend);
8191
- const hasColor = !group || group.isSelected.value;
8192
8204
  return isActive.value && vue.withDirectives(vue.createVNode(Tag, vue.mergeProps({
8193
8205
  "class": ['v-chip', {
8194
8206
  'v-chip--disabled': props.disabled,
8195
8207
  'v-chip--label': props.label,
8196
8208
  'v-chip--link': isClickable.value,
8197
8209
  'v-chip--filter': hasFilter,
8198
- 'v-chip--pill': props.pill
8199
- }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
8200
- "style": [hasColor ? colorStyles.value : undefined, props.style],
8210
+ 'v-chip--pill': props.pill,
8211
+ [`${props.activeClass}`]: props.activeClass && link.isActive?.value
8212
+ }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
8213
+ "style": [colorStyles.value, props.style],
8201
8214
  "disabled": props.disabled || undefined,
8202
8215
  "draggable": props.draggable,
8203
8216
  "tabindex": isClickable.value ? 0 : undefined,
@@ -9169,7 +9182,8 @@
9169
9182
  const list = useList();
9170
9183
  const isActive = vue.computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
9171
9184
  const isLink = vue.computed(() => props.link !== false && link.isLink.value);
9172
- const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || !!list && (root.selectable.value || root.activatable.value || props.value != null)));
9185
+ const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
9186
+ const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
9173
9187
  const roundedProps = vue.computed(() => props.rounded || props.nav);
9174
9188
  const color = vue.computed(() => props.color ?? props.activeColor);
9175
9189
  const variantProps = vue.computed(() => ({
@@ -9260,7 +9274,7 @@
9260
9274
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
9261
9275
  "style": [colorStyles.value, dimensionStyles.value, props.style],
9262
9276
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9263
- "aria-selected": root.activatable.value ? isActivated.value : isSelected.value,
9277
+ "aria-selected": isSelectable.value ? root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value : undefined,
9264
9278
  "onClick": onClick,
9265
9279
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9266
9280
  }, link.linkProps), {
@@ -9677,8 +9691,8 @@
9677
9691
  activeClass: String,
9678
9692
  bgColor: String,
9679
9693
  disabled: Boolean,
9680
- expandIcon: String,
9681
- collapseIcon: String,
9694
+ expandIcon: IconValue,
9695
+ collapseIcon: IconValue,
9682
9696
  lines: {
9683
9697
  type: [Boolean, String],
9684
9698
  default: 'one'
@@ -11852,7 +11866,8 @@
11852
11866
  "style": textColorStyles.value
11853
11867
  }, {
11854
11868
  default: () => [label()]
11855
- }), vue.createVNode(VFieldLabel, {
11869
+ }), hasLabel.value && vue.createVNode(VFieldLabel, {
11870
+ "key": "label",
11856
11871
  "ref": labelRef,
11857
11872
  "for": id.value
11858
11873
  }, {
@@ -12678,7 +12693,7 @@
12678
12693
  const counterValue = vue.computed(() => {
12679
12694
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12680
12695
  });
12681
- const form = useForm();
12696
+ const form = useForm(props);
12682
12697
  const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
12683
12698
  const isFocused = vue.shallowRef(false);
12684
12699
  const label = vue.computed(() => menu.value ? props.closeText : props.openText);
@@ -12690,7 +12705,7 @@
12690
12705
  }
12691
12706
  return items.value;
12692
12707
  });
12693
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12708
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12694
12709
  const computedMenuProps = vue.computed(() => {
12695
12710
  return {
12696
12711
  ...props.menuProps,
@@ -12717,7 +12732,7 @@
12717
12732
  }
12718
12733
  }
12719
12734
  function onKeydown(e) {
12720
- if (!e.key || props.readonly || form?.isReadonly.value) return;
12735
+ if (!e.key || form.isReadonly.value) return;
12721
12736
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
12722
12737
  e.preventDefault();
12723
12738
  }
@@ -13195,7 +13210,7 @@
13195
13210
  const counterValue = vue.computed(() => {
13196
13211
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
13197
13212
  });
13198
- const form = useForm();
13213
+ const form = useForm(props);
13199
13214
  const {
13200
13215
  filteredItems,
13201
13216
  getMatches
@@ -13213,7 +13228,7 @@
13213
13228
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
13214
13229
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
13215
13230
  });
13216
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
13231
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
13217
13232
  const listRef = vue.ref();
13218
13233
  const listEvents = useScrolling(listRef, vTextFieldRef);
13219
13234
  function onClear(e) {
@@ -13240,7 +13255,7 @@
13240
13255
  }
13241
13256
  }
13242
13257
  function onKeydown(e) {
13243
- if (props.readonly || form?.isReadonly.value) return;
13258
+ if (form.isReadonly.value) return;
13244
13259
  const selectionStart = vTextFieldRef.value.selectionStart;
13245
13260
  const length = model.value.length;
13246
13261
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -13417,7 +13432,7 @@
13417
13432
  'v-autocomplete--selecting-index': selectionIndex.value > -1
13418
13433
  }, props.class],
13419
13434
  "style": props.style,
13420
- "readonly": props.readonly,
13435
+ "readonly": form.isReadonly.value,
13421
13436
  "placeholder": isDirty ? undefined : props.placeholder,
13422
13437
  "onClick:clear": onClear,
13423
13438
  "onMousedown:control": onMousedownControl,
@@ -17036,7 +17051,7 @@
17036
17051
  const transformed = transformOut(v);
17037
17052
  return props.multiple ? transformed : transformed[0] ?? null;
17038
17053
  });
17039
- const form = useForm();
17054
+ const form = useForm(props);
17040
17055
  const hasChips = vue.computed(() => !!(props.chips || slots.chip));
17041
17056
  const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
17042
17057
  const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
@@ -17096,7 +17111,7 @@
17096
17111
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
17097
17112
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
17098
17113
  });
17099
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
17114
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
17100
17115
  const listRef = vue.ref();
17101
17116
  const listEvents = useScrolling(listRef, vTextFieldRef);
17102
17117
  function onClear(e) {
@@ -17124,7 +17139,7 @@
17124
17139
  }
17125
17140
  // eslint-disable-next-line complexity
17126
17141
  function onKeydown(e) {
17127
- if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
17142
+ if (isComposingIgnoreKey(e) || form.isReadonly.value) return;
17128
17143
  const selectionStart = vTextFieldRef.value.selectionStart;
17129
17144
  const length = model.value.length;
17130
17145
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -17296,7 +17311,7 @@
17296
17311
  [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
17297
17312
  }, props.class],
17298
17313
  "style": props.style,
17299
- "readonly": props.readonly,
17314
+ "readonly": form.isReadonly.value,
17300
17315
  "placeholder": isDirty ? undefined : props.placeholder,
17301
17316
  "onClick:clear": onClear,
17302
17317
  "onMousedown:control": onMousedownControl,
@@ -18340,21 +18355,23 @@
18340
18355
  internalModel.value = structuredClone(vue.toRaw(model.value));
18341
18356
  emit('cancel');
18342
18357
  }
18343
- let actionsUsed = false;
18344
- useRender(() => {
18345
- const actions = vue.createVNode(vue.Fragment, null, [vue.createVNode(VBtn, {
18358
+ function actions(actionsProps) {
18359
+ return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBtn, vue.mergeProps({
18346
18360
  "disabled": isPristine.value,
18347
18361
  "variant": "text",
18348
18362
  "color": props.color,
18349
18363
  "onClick": cancel,
18350
18364
  "text": t(props.cancelText)
18351
- }, null), vue.createVNode(VBtn, {
18365
+ }, actionsProps), null), vue.createVNode(VBtn, vue.mergeProps({
18352
18366
  "disabled": isPristine.value,
18353
18367
  "variant": "text",
18354
18368
  "color": props.color,
18355
18369
  "onClick": save,
18356
18370
  "text": t(props.okText)
18357
- }, null)]);
18371
+ }, actionsProps), null)]);
18372
+ }
18373
+ let actionsUsed = false;
18374
+ useRender(() => {
18358
18375
  return vue.createVNode(vue.Fragment, null, [slots.default?.({
18359
18376
  model: internalModel,
18360
18377
  save,
@@ -18364,7 +18381,7 @@
18364
18381
  actionsUsed = true;
18365
18382
  return actions;
18366
18383
  }
18367
- }), !actionsUsed && actions]);
18384
+ }), !actionsUsed && actions()]);
18368
18385
  });
18369
18386
  return {
18370
18387
  save,
@@ -21654,7 +21671,7 @@
21654
21671
  // Types
21655
21672
 
21656
21673
  const makeVDatePickerHeaderProps = propsFactory({
21657
- appendIcon: String,
21674
+ appendIcon: IconValue,
21658
21675
  color: String,
21659
21676
  header: String,
21660
21677
  transition: String,
@@ -26310,20 +26327,20 @@
26310
26327
  subtitle: String,
26311
26328
  complete: Boolean,
26312
26329
  completeIcon: {
26313
- type: String,
26330
+ type: IconValue,
26314
26331
  default: '$complete'
26315
26332
  },
26316
26333
  editable: Boolean,
26317
26334
  editIcon: {
26318
- type: String,
26335
+ type: IconValue,
26319
26336
  default: '$edit'
26320
26337
  },
26321
26338
  error: Boolean,
26322
26339
  errorIcon: {
26323
- type: String,
26340
+ type: IconValue,
26324
26341
  default: '$error'
26325
26342
  },
26326
- icon: String,
26343
+ icon: IconValue,
26327
26344
  ripple: {
26328
26345
  type: [Boolean, Object],
26329
26346
  default: true
@@ -26484,10 +26501,10 @@
26484
26501
  const makeStepperProps = propsFactory({
26485
26502
  altLabels: Boolean,
26486
26503
  bgColor: String,
26487
- completeIcon: String,
26488
- editIcon: String,
26504
+ completeIcon: IconValue,
26505
+ editIcon: IconValue,
26489
26506
  editable: Boolean,
26490
- errorIcon: String,
26507
+ errorIcon: IconValue,
26491
26508
  hideActions: Boolean,
26492
26509
  items: {
26493
26510
  type: Array,
@@ -28264,7 +28281,7 @@
28264
28281
  goTo
28265
28282
  };
28266
28283
  }
28267
- const version$1 = "3.7.4-next.2024-11-06";
28284
+ const version$1 = "3.7.5-dev.2024-12-03";
28268
28285
  createVuetify$1.version = version$1;
28269
28286
 
28270
28287
  // Vue's inject() can only be used in setup
@@ -28289,7 +28306,7 @@
28289
28306
  ...options
28290
28307
  });
28291
28308
  };
28292
- const version = "3.7.4-next.2024-11-06";
28309
+ const version = "3.7.5-dev.2024-12-03";
28293
28310
  createVuetify.version = version;
28294
28311
 
28295
28312
  exports.blueprints = index;