vuetify 3.7.3 → 3.7.5

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 (95) hide show
  1. package/dist/json/attributes.json +5352 -5304
  2. package/dist/json/importMap-labs.json +22 -22
  3. package/dist/json/importMap.json +158 -158
  4. package/dist/json/tags.json +14 -1
  5. package/dist/json/web-types.json +10068 -9980
  6. package/dist/vuetify-labs.css +4693 -4689
  7. package/dist/vuetify-labs.d.ts +204 -207
  8. package/dist/vuetify-labs.esm.js +91 -66
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +91 -66
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +2681 -2677
  13. package/dist/vuetify.d.ts +187 -190
  14. package/dist/vuetify.esm.js +80 -56
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +80 -56
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +50 -50
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VAutocomplete/index.d.mts +28 -28
  24. package/lib/components/VBadge/VBadge.css +4 -0
  25. package/lib/components/VBadge/VBadge.sass +4 -0
  26. package/lib/components/VBtn/VBtn.css +2 -2
  27. package/lib/components/VBtn/VBtn.sass +7 -8
  28. package/lib/components/VBtnToggle/VBtnToggle.css +3 -0
  29. package/lib/components/VBtnToggle/VBtnToggle.sass +3 -0
  30. package/lib/components/VChip/VChip.mjs +3 -2
  31. package/lib/components/VChip/VChip.mjs.map +1 -1
  32. package/lib/components/VChip/index.d.mts +9 -9
  33. package/lib/components/VCode/index.mjs +1 -1
  34. package/lib/components/VCode/index.mjs.map +1 -1
  35. package/lib/components/VCombobox/VCombobox.mjs +4 -4
  36. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  37. package/lib/components/VCombobox/index.d.mts +28 -28
  38. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +9 -7
  39. package/lib/components/VConfirmEdit/VConfirmEdit.mjs.map +1 -1
  40. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +1 -1
  41. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs.map +1 -1
  42. package/lib/components/VConfirmEdit/index.d.mts +3 -7
  43. package/lib/components/VDataTable/VDataTableFooter.mjs.map +1 -1
  44. package/lib/components/VDataTable/index.d.mts +1 -0
  45. package/lib/components/VDatePicker/VDatePickerHeader.mjs +2 -1
  46. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  47. package/lib/components/VDatePicker/index.d.mts +6 -6
  48. package/lib/components/VDialog/VDialog.css +3 -7
  49. package/lib/components/VDialog/VDialog.mjs +8 -1
  50. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  51. package/lib/components/VDialog/VDialog.sass +6 -7
  52. package/lib/components/VField/VField.mjs +2 -1
  53. package/lib/components/VField/VField.mjs.map +1 -1
  54. package/lib/components/VKbd/index.mjs +1 -1
  55. package/lib/components/VKbd/index.mjs.map +1 -1
  56. package/lib/components/VList/VList.mjs +3 -2
  57. package/lib/components/VList/VList.mjs.map +1 -1
  58. package/lib/components/VList/VListItem.css +8 -7
  59. package/lib/components/VList/VListItem.mjs +3 -2
  60. package/lib/components/VList/VListItem.mjs.map +1 -1
  61. package/lib/components/VList/VListItem.sass +16 -10
  62. package/lib/components/VList/_variables.scss +0 -11
  63. package/lib/components/VList/index.d.mts +12 -12
  64. package/lib/components/VMenu/VMenu.mjs +15 -6
  65. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  66. package/lib/components/VSelect/VSelect.mjs +3 -3
  67. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  68. package/lib/components/VSelect/index.d.mts +28 -28
  69. package/lib/components/VStepper/VStepper.mjs +5 -4
  70. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  71. package/lib/components/VStepper/VStepperItem.mjs +5 -4
  72. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  73. package/lib/components/VStepper/index.d.mts +58 -52
  74. package/lib/components/index.d.mts +130 -133
  75. package/lib/composables/form.mjs +7 -2
  76. package/lib/composables/form.mjs.map +1 -1
  77. package/lib/composables/validation.mjs +10 -12
  78. package/lib/composables/validation.mjs.map +1 -1
  79. package/lib/entry-bundler.mjs +1 -1
  80. package/lib/framework.mjs +1 -1
  81. package/lib/index.d.mts +56 -56
  82. package/lib/labs/VDateInput/VDateInput.mjs +1 -1
  83. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  84. package/lib/labs/VNumberInput/VNumberInput.mjs +7 -5
  85. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  86. package/lib/labs/VStepperVertical/index.d.mts +51 -51
  87. package/lib/labs/VTreeview/VTreeviewItem.mjs +3 -4
  88. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  89. package/lib/labs/VTreeview/index.d.mts +22 -22
  90. package/lib/labs/components.d.mts +73 -73
  91. package/lib/locale/el.mjs +0 -0
  92. package/lib/locale/fr.mjs +1 -1
  93. package/lib/locale/fr.mjs.map +1 -1
  94. package/lib/locale/index.mjs +0 -0
  95. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.3
2
+ * Vuetify v3.7.5
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -6668,8 +6668,13 @@ function createForm(props) {
6668
6668
  resetValidation
6669
6669
  };
6670
6670
  }
6671
- function useForm() {
6672
- return inject$1(FormKey, null);
6671
+ function useForm(props) {
6672
+ const form = inject$1(FormKey, null);
6673
+ return {
6674
+ ...form,
6675
+ isReadonly: computed(() => !!(props?.readonly ?? form?.isReadonly.value)),
6676
+ isDisabled: computed(() => !!(props?.disabled ?? form?.isDisabled.value))
6677
+ };
6673
6678
  }
6674
6679
 
6675
6680
  // Composables
@@ -6710,17 +6715,15 @@ function useValidation(props) {
6710
6715
  let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();
6711
6716
  const model = useProxiedModel(props, 'modelValue');
6712
6717
  const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6713
- const form = useForm();
6718
+ const form = useForm(props);
6714
6719
  const internalErrorMessages = ref([]);
6715
6720
  const isPristine = shallowRef(true);
6716
6721
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6717
- const isDisabled = computed(() => !!(props.disabled ?? form?.isDisabled.value));
6718
- const isReadonly = computed(() => !!(props.readonly ?? form?.isReadonly.value));
6719
6722
  const errorMessages = computed(() => {
6720
6723
  return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6721
6724
  });
6722
6725
  const validateOn = computed(() => {
6723
- let value = (props.validateOn ?? form?.validateOn.value) || 'input';
6726
+ let value = (props.validateOn ?? form.validateOn?.value) || 'input';
6724
6727
  if (value === 'lazy') value = 'input lazy';
6725
6728
  if (value === 'eager') value = 'input eager';
6726
6729
  const set = new Set(value?.split(' ') ?? []);
@@ -6746,14 +6749,14 @@ function useValidation(props) {
6746
6749
  return {
6747
6750
  [`${name}--error`]: isValid.value === false,
6748
6751
  [`${name}--dirty`]: isDirty.value,
6749
- [`${name}--disabled`]: isDisabled.value,
6750
- [`${name}--readonly`]: isReadonly.value
6752
+ [`${name}--disabled`]: form.isDisabled.value,
6753
+ [`${name}--readonly`]: form.isReadonly.value
6751
6754
  };
6752
6755
  });
6753
6756
  const vm = getCurrentInstance('validation');
6754
6757
  const uid = computed(() => props.name ?? unref(id));
6755
6758
  onBeforeMount(() => {
6756
- form?.register({
6759
+ form.register?.({
6757
6760
  id: uid.value,
6758
6761
  vm,
6759
6762
  validate,
@@ -6762,13 +6765,13 @@ function useValidation(props) {
6762
6765
  });
6763
6766
  });
6764
6767
  onBeforeUnmount(() => {
6765
- form?.unregister(uid.value);
6768
+ form.unregister?.(uid.value);
6766
6769
  });
6767
6770
  onMounted(async () => {
6768
6771
  if (!validateOn.value.lazy) {
6769
6772
  await validate(!validateOn.value.eager);
6770
6773
  }
6771
- form?.update(uid.value, isValid.value, errorMessages.value);
6774
+ form.update?.(uid.value, isValid.value, errorMessages.value);
6772
6775
  });
6773
6776
  useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
6774
6777
  watch(validationModel, () => {
@@ -6788,7 +6791,7 @@ function useValidation(props) {
6788
6791
  });
6789
6792
  });
6790
6793
  watch([isValid, errorMessages], () => {
6791
- form?.update(uid.value, isValid.value, errorMessages.value);
6794
+ form.update?.(uid.value, isValid.value, errorMessages.value);
6792
6795
  });
6793
6796
  async function reset() {
6794
6797
  model.value = null;
@@ -6829,8 +6832,8 @@ function useValidation(props) {
6829
6832
  return {
6830
6833
  errorMessages,
6831
6834
  isDirty,
6832
- isDisabled,
6833
- isReadonly,
6835
+ isDisabled: form.isDisabled,
6836
+ isReadonly: form.isReadonly,
6834
6837
  isPristine,
6835
6838
  isValid,
6836
6839
  isValidating,
@@ -7833,7 +7836,7 @@ const makeVChipProps = propsFactory({
7833
7836
  draggable: Boolean,
7834
7837
  filter: Boolean,
7835
7838
  filterIcon: {
7836
- type: String,
7839
+ type: IconValue,
7837
7840
  default: '$complete'
7838
7841
  },
7839
7842
  label: Boolean,
@@ -7956,7 +7959,8 @@ const VChip = genericComponent()({
7956
7959
  'v-chip--label': props.label,
7957
7960
  'v-chip--link': isClickable.value,
7958
7961
  'v-chip--filter': hasFilter,
7959
- 'v-chip--pill': props.pill
7962
+ 'v-chip--pill': props.pill,
7963
+ [`${props.activeClass}`]: props.activeClass && link.isActive?.value
7960
7964
  }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, group?.selectedClass.value, props.class],
7961
7965
  "style": [hasColor ? colorStyles.value : undefined, props.style],
7962
7966
  "disabled": props.disabled || undefined,
@@ -8930,7 +8934,8 @@ const VListItem = genericComponent()({
8930
8934
  const list = useList();
8931
8935
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
8932
8936
  const isLink = computed(() => props.link !== false && link.isLink.value);
8933
- const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || !!list && (root.selectable.value || root.activatable.value || props.value != null)));
8937
+ const isSelectable = computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
8938
+ const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
8934
8939
  const roundedProps = computed(() => props.rounded || props.nav);
8935
8940
  const color = computed(() => props.color ?? props.activeColor);
8936
8941
  const variantProps = computed(() => ({
@@ -9021,7 +9026,7 @@ const VListItem = genericComponent()({
9021
9026
  }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
9022
9027
  "style": [colorStyles.value, dimensionStyles.value, props.style],
9023
9028
  "tabindex": isClickable.value ? list ? -2 : 0 : undefined,
9024
- "aria-selected": root.activatable.value ? isActivated.value : isSelected.value,
9029
+ "aria-selected": isSelectable.value ? root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value : undefined,
9025
9030
  "onClick": onClick,
9026
9031
  "onKeydown": isClickable.value && !isLink.value && onKeyDown
9027
9032
  }, link.linkProps), {
@@ -9438,8 +9443,8 @@ const makeVListProps = propsFactory({
9438
9443
  activeClass: String,
9439
9444
  bgColor: String,
9440
9445
  disabled: Boolean,
9441
- expandIcon: String,
9442
- collapseIcon: String,
9446
+ expandIcon: IconValue,
9447
+ collapseIcon: IconValue,
9443
9448
  lines: {
9444
9449
  type: [Boolean, String],
9445
9450
  default: 'one'
@@ -11209,7 +11214,10 @@ const VMenu = genericComponent()({
11209
11214
  }, 40);
11210
11215
  }
11211
11216
  });
11212
- onBeforeUnmount(() => parent?.unregister());
11217
+ onBeforeUnmount(() => {
11218
+ parent?.unregister();
11219
+ document.removeEventListener('focusin', onFocusIn);
11220
+ });
11213
11221
  onDeactivated(() => isActive.value = false);
11214
11222
  async function onFocusIn(e) {
11215
11223
  const before = e.relatedTarget;
@@ -11229,13 +11237,19 @@ const VMenu = genericComponent()({
11229
11237
  watch(isActive, val => {
11230
11238
  if (val) {
11231
11239
  parent?.register();
11232
- document.addEventListener('focusin', onFocusIn, {
11233
- once: true
11234
- });
11240
+ if (IN_BROWSER) {
11241
+ document.addEventListener('focusin', onFocusIn, {
11242
+ once: true
11243
+ });
11244
+ }
11235
11245
  } else {
11236
11246
  parent?.unregister();
11237
- document.removeEventListener('focusin', onFocusIn);
11247
+ if (IN_BROWSER) {
11248
+ document.removeEventListener('focusin', onFocusIn);
11249
+ }
11238
11250
  }
11251
+ }, {
11252
+ immediate: true
11239
11253
  });
11240
11254
  function onClickOutside(e) {
11241
11255
  parent?.closeParents(e);
@@ -11604,7 +11618,8 @@ const VField = genericComponent()({
11604
11618
  "style": textColorStyles.value
11605
11619
  }, {
11606
11620
  default: () => [label()]
11607
- }), createVNode(VFieldLabel, {
11621
+ }), hasLabel.value && createVNode(VFieldLabel, {
11622
+ "key": "label",
11608
11623
  "ref": labelRef,
11609
11624
  "for": id.value
11610
11625
  }, {
@@ -12430,7 +12445,7 @@ const VSelect = genericComponent()({
12430
12445
  const counterValue = computed(() => {
12431
12446
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12432
12447
  });
12433
- const form = useForm();
12448
+ const form = useForm(props);
12434
12449
  const selectedValues = computed(() => model.value.map(selection => selection.value));
12435
12450
  const isFocused = shallowRef(false);
12436
12451
  const label = computed(() => menu.value ? props.closeText : props.openText);
@@ -12442,7 +12457,7 @@ const VSelect = genericComponent()({
12442
12457
  }
12443
12458
  return items.value;
12444
12459
  });
12445
- const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12460
+ const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12446
12461
  const computedMenuProps = computed(() => {
12447
12462
  return {
12448
12463
  ...props.menuProps,
@@ -12469,7 +12484,7 @@ const VSelect = genericComponent()({
12469
12484
  }
12470
12485
  }
12471
12486
  function onKeydown(e) {
12472
- if (!e.key || props.readonly || form?.isReadonly.value) return;
12487
+ if (!e.key || form.isReadonly.value) return;
12473
12488
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
12474
12489
  e.preventDefault();
12475
12490
  }
@@ -12947,7 +12962,7 @@ const VAutocomplete = genericComponent()({
12947
12962
  const counterValue = computed(() => {
12948
12963
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12949
12964
  });
12950
- const form = useForm();
12965
+ const form = useForm(props);
12951
12966
  const {
12952
12967
  filteredItems,
12953
12968
  getMatches
@@ -12965,7 +12980,7 @@ const VAutocomplete = genericComponent()({
12965
12980
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
12966
12981
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
12967
12982
  });
12968
- const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12983
+ const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12969
12984
  const listRef = ref();
12970
12985
  const listEvents = useScrolling(listRef, vTextFieldRef);
12971
12986
  function onClear(e) {
@@ -12992,7 +13007,7 @@ const VAutocomplete = genericComponent()({
12992
13007
  }
12993
13008
  }
12994
13009
  function onKeydown(e) {
12995
- if (props.readonly || form?.isReadonly.value) return;
13010
+ if (form.isReadonly.value) return;
12996
13011
  const selectionStart = vTextFieldRef.value.selectionStart;
12997
13012
  const length = model.value.length;
12998
13013
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -13169,7 +13184,7 @@ const VAutocomplete = genericComponent()({
13169
13184
  'v-autocomplete--selecting-index': selectionIndex.value > -1
13170
13185
  }, props.class],
13171
13186
  "style": props.style,
13172
- "readonly": props.readonly,
13187
+ "readonly": form.isReadonly.value,
13173
13188
  "placeholder": isDirty ? undefined : props.placeholder,
13174
13189
  "onClick:clear": onClear,
13175
13190
  "onMousedown:control": onMousedownControl,
@@ -13751,6 +13766,9 @@ const VDialog = genericComponent()({
13751
13766
  }
13752
13767
  }
13753
13768
  }
13769
+ onBeforeUnmount(() => {
13770
+ document.removeEventListener('focusin', onFocusin);
13771
+ });
13754
13772
  if (IN_BROWSER) {
13755
13773
  watch(() => isActive.value && props.retainFocus, val => {
13756
13774
  val ? document.addEventListener('focusin', onFocusin) : document.removeEventListener('focusin', onFocusin);
@@ -13798,6 +13816,10 @@ const VDialog = genericComponent()({
13798
13816
  "aria-modal": "true",
13799
13817
  "activatorProps": activatorProps,
13800
13818
  "contentProps": contentProps,
13819
+ "height": !props.fullscreen ? props.height : undefined,
13820
+ "width": !props.fullscreen ? props.width : undefined,
13821
+ "maxHeight": !props.fullscreen ? props.maxHeight : undefined,
13822
+ "maxWidth": !props.fullscreen ? props.maxWidth : undefined,
13801
13823
  "role": "dialog",
13802
13824
  "onAfterEnter": onAfterEnter,
13803
13825
  "onAfterLeave": onAfterLeave
@@ -14894,7 +14916,7 @@ const VCarouselItem = genericComponent()({
14894
14916
  });
14895
14917
 
14896
14918
  // Styles
14897
- const VCode = createSimpleFunctional('v-code');
14919
+ const VCode = createSimpleFunctional('v-code', 'code');
14898
14920
 
14899
14921
  // Types
14900
14922
 
@@ -16781,7 +16803,7 @@ const VCombobox = genericComponent()({
16781
16803
  const transformed = transformOut(v);
16782
16804
  return props.multiple ? transformed : transformed[0] ?? null;
16783
16805
  });
16784
- const form = useForm();
16806
+ const form = useForm(props);
16785
16807
  const hasChips = computed(() => !!(props.chips || slots.chip));
16786
16808
  const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
16787
16809
  const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
@@ -16841,7 +16863,7 @@ const VCombobox = genericComponent()({
16841
16863
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
16842
16864
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
16843
16865
  });
16844
- const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16866
+ const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
16845
16867
  const listRef = ref();
16846
16868
  const listEvents = useScrolling(listRef, vTextFieldRef);
16847
16869
  function onClear(e) {
@@ -16869,7 +16891,7 @@ const VCombobox = genericComponent()({
16869
16891
  }
16870
16892
  // eslint-disable-next-line complexity
16871
16893
  function onKeydown(e) {
16872
- if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
16894
+ if (isComposingIgnoreKey(e) || form.isReadonly.value) return;
16873
16895
  const selectionStart = vTextFieldRef.value.selectionStart;
16874
16896
  const length = model.value.length;
16875
16897
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -17041,7 +17063,7 @@ const VCombobox = genericComponent()({
17041
17063
  [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
17042
17064
  }, props.class],
17043
17065
  "style": props.style,
17044
- "readonly": props.readonly,
17066
+ "readonly": form.isReadonly.value,
17045
17067
  "placeholder": isDirty ? undefined : props.placeholder,
17046
17068
  "onClick:clear": onClear,
17047
17069
  "onMousedown:control": onMousedownControl,
@@ -18085,21 +18107,23 @@ const VConfirmEdit = genericComponent()({
18085
18107
  internalModel.value = structuredClone(toRaw(model.value));
18086
18108
  emit('cancel');
18087
18109
  }
18088
- let actionsUsed = false;
18089
- useRender(() => {
18090
- const actions = createVNode(Fragment, null, [createVNode(VBtn, {
18110
+ function actions(actionsProps) {
18111
+ return createVNode(Fragment, null, [createVNode(VBtn, mergeProps({
18091
18112
  "disabled": isPristine.value,
18092
18113
  "variant": "text",
18093
18114
  "color": props.color,
18094
18115
  "onClick": cancel,
18095
18116
  "text": t(props.cancelText)
18096
- }, null), createVNode(VBtn, {
18117
+ }, actionsProps), null), createVNode(VBtn, mergeProps({
18097
18118
  "disabled": isPristine.value,
18098
18119
  "variant": "text",
18099
18120
  "color": props.color,
18100
18121
  "onClick": save,
18101
18122
  "text": t(props.okText)
18102
- }, null)]);
18123
+ }, actionsProps), null)]);
18124
+ }
18125
+ let actionsUsed = false;
18126
+ useRender(() => {
18103
18127
  return createVNode(Fragment, null, [slots.default?.({
18104
18128
  model: internalModel,
18105
18129
  save,
@@ -18109,7 +18133,7 @@ const VConfirmEdit = genericComponent()({
18109
18133
  actionsUsed = true;
18110
18134
  return actions;
18111
18135
  }
18112
- }), !actionsUsed && actions]);
18136
+ }), !actionsUsed && actions()]);
18113
18137
  });
18114
18138
  return {
18115
18139
  save,
@@ -21399,7 +21423,7 @@ const VDatePickerControls = genericComponent()({
21399
21423
  // Types
21400
21424
 
21401
21425
  const makeVDatePickerHeaderProps = propsFactory({
21402
- appendIcon: String,
21426
+ appendIcon: IconValue,
21403
21427
  color: String,
21404
21428
  header: String,
21405
21429
  transition: String,
@@ -23463,7 +23487,7 @@ const VItem = genericComponent()({
23463
23487
  });
23464
23488
 
23465
23489
  // Styles
23466
- const VKbd = createSimpleFunctional('v-kbd');
23490
+ const VKbd = createSimpleFunctional('v-kbd', 'kbd');
23467
23491
 
23468
23492
  const makeVLayoutProps = propsFactory({
23469
23493
  ...makeComponentProps(),
@@ -26051,20 +26075,20 @@ const makeStepperItemProps = propsFactory({
26051
26075
  subtitle: String,
26052
26076
  complete: Boolean,
26053
26077
  completeIcon: {
26054
- type: String,
26078
+ type: IconValue,
26055
26079
  default: '$complete'
26056
26080
  },
26057
26081
  editable: Boolean,
26058
26082
  editIcon: {
26059
- type: String,
26083
+ type: IconValue,
26060
26084
  default: '$edit'
26061
26085
  },
26062
26086
  error: Boolean,
26063
26087
  errorIcon: {
26064
- type: String,
26088
+ type: IconValue,
26065
26089
  default: '$error'
26066
26090
  },
26067
- icon: String,
26091
+ icon: IconValue,
26068
26092
  ripple: {
26069
26093
  type: [Boolean, Object],
26070
26094
  default: true
@@ -26225,10 +26249,10 @@ const VStepperWindowItem = genericComponent()({
26225
26249
  const makeStepperProps = propsFactory({
26226
26250
  altLabels: Boolean,
26227
26251
  bgColor: String,
26228
- completeIcon: String,
26229
- editIcon: String,
26252
+ completeIcon: IconValue,
26253
+ editIcon: IconValue,
26230
26254
  editable: Boolean,
26231
- errorIcon: String,
26255
+ errorIcon: IconValue,
26232
26256
  hideActions: Boolean,
26233
26257
  items: {
26234
26258
  type: Array,
@@ -28126,7 +28150,7 @@ const VDateInput = genericComponent()({
28126
28150
  },
28127
28151
  "onMousedown": e => e.preventDefault()
28128
28152
  }), {
28129
- actions: !props.hideActions ? () => actions : undefined
28153
+ actions: !props.hideActions ? actions : undefined
28130
28154
  });
28131
28155
  }
28132
28156
  })]
@@ -28191,8 +28215,8 @@ const VNumberInput = genericComponent()({
28191
28215
  const vTextFieldRef = ref();
28192
28216
  const stepDecimals = computed(() => getDecimals(props.step));
28193
28217
  const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0);
28194
- const form = useForm();
28195
- const controlsDisabled = computed(() => props.disabled || props.readonly || form?.isReadonly.value);
28218
+ const form = useForm(props);
28219
+ const controlsDisabled = computed(() => form.isDisabled.value || form.isReadonly.value);
28196
28220
  const canIncrease = computed(() => {
28197
28221
  if (controlsDisabled.value) return false;
28198
28222
  return (model.value ?? 0) + props.step <= props.max;
@@ -28215,7 +28239,7 @@ const VNumberInput = genericComponent()({
28215
28239
  click: onClickDown
28216
28240
  }));
28217
28241
  onMounted(() => {
28218
- if (!props.readonly && !props.disabled) {
28242
+ if (!controlsDisabled.value) {
28219
28243
  clampModel();
28220
28244
  }
28221
28245
  });
@@ -28291,7 +28315,8 @@ const VNumberInput = genericComponent()({
28291
28315
  "flat": true,
28292
28316
  "key": "increment-btn",
28293
28317
  "height": controlNodeDefaultHeight.value,
28294
- "name": "increment-btn",
28318
+ "data-testid": "increment",
28319
+ "aria-hidden": "true",
28295
28320
  "icon": incrementIcon.value,
28296
28321
  "onClick": onClickUp,
28297
28322
  "onMousedown": onControlMousedown,
@@ -28318,7 +28343,8 @@ const VNumberInput = genericComponent()({
28318
28343
  "flat": true,
28319
28344
  "key": "decrement-btn",
28320
28345
  "height": controlNodeDefaultHeight.value,
28321
- "name": "decrement-btn",
28346
+ "data-testid": "decrement",
28347
+ "aria-hidden": "true",
28322
28348
  "icon": decrementIcon.value,
28323
28349
  "size": controlNodeSize.value,
28324
28350
  "tabindex": "-1",
@@ -29570,9 +29596,8 @@ const VTreeviewItem = genericComponent()({
29570
29596
  const vListItemRef = ref();
29571
29597
  const isActivatableGroupActivator = computed(() => vListItemRef.value?.root.activatable.value && vListItemRef.value?.isGroupActivator);
29572
29598
  const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || props.value != null && !!vListItemRef.value?.list || isActivatableGroupActivator.value));
29573
- function activateItem(e) {
29574
- if (!isClickable.value || !isActivatableGroupActivator.value && vListItemRef.value?.isGroupActivator) return;
29575
- if (vListItemRef.value?.root.activatable.value) {
29599
+ function activateGroupActivator(e) {
29600
+ if (isClickable.value && isActivatableGroupActivator.value) {
29576
29601
  vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
29577
29602
  }
29578
29603
  }
@@ -29591,7 +29616,7 @@ const VTreeviewItem = genericComponent()({
29591
29616
  'v-treeview-item--filtered': visibleIds.value && !visibleIds.value.has(vListItemRef.value?.id)
29592
29617
  }, props.class],
29593
29618
  "ripple": false,
29594
- "onClick": props.onClick ?? activateItem
29619
+ "onClick": props.onClick ?? activateGroupActivator
29595
29620
  }), {
29596
29621
  ...slots,
29597
29622
  prepend: hasPrepend ? slotProps => {
@@ -30381,7 +30406,7 @@ function createVuetify$1() {
30381
30406
  goTo
30382
30407
  };
30383
30408
  }
30384
- const version$1 = "3.7.3";
30409
+ const version$1 = "3.7.5";
30385
30410
  createVuetify$1.version = version$1;
30386
30411
 
30387
30412
  // Vue's inject() can only be used in setup
@@ -30634,7 +30659,7 @@ var index = /*#__PURE__*/Object.freeze({
30634
30659
 
30635
30660
  /* eslint-disable local-rules/sort-imports */
30636
30661
 
30637
- const version = "3.7.3";
30662
+ const version = "3.7.5";
30638
30663
 
30639
30664
  /* eslint-disable local-rules/sort-imports */
30640
30665