vuetify 3.5.13 → 3.5.14

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 (78) hide show
  1. package/dist/json/attributes.json +160 -160
  2. package/dist/json/importMap-labs.json +4 -4
  3. package/dist/json/importMap.json +108 -108
  4. package/dist/json/web-types.json +161 -161
  5. package/dist/vuetify-labs.css +1958 -1944
  6. package/dist/vuetify-labs.d.ts +993 -845
  7. package/dist/vuetify-labs.esm.js +90 -22
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +90 -22
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +762 -753
  12. package/dist/vuetify.d.ts +784 -664
  13. package/dist/vuetify.esm.js +85 -17
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +85 -17
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +121 -119
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +2 -0
  21. package/lib/blueprints/md1.d.mts +2 -0
  22. package/lib/blueprints/md2.d.mts +2 -0
  23. package/lib/blueprints/md3.d.mts +2 -0
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -0
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +34 -28
  27. package/lib/components/VBtn/VBtn.mjs +2 -0
  28. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  29. package/lib/components/VChip/VChip.mjs +1 -0
  30. package/lib/components/VChip/VChip.mjs.map +1 -1
  31. package/lib/components/VCombobox/VCombobox.mjs +6 -0
  32. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  33. package/lib/components/VCombobox/index.d.mts +34 -28
  34. package/lib/components/VDataTable/VDataTableServer.mjs +3 -2
  35. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  36. package/lib/components/VDatePicker/VDatePicker.mjs +9 -2
  37. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  38. package/lib/components/VField/VField.mjs +29 -3
  39. package/lib/components/VField/VField.mjs.map +1 -1
  40. package/lib/components/VField/index.d.mts +9 -3
  41. package/lib/components/VFileInput/VFileInput.mjs +2 -2
  42. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  43. package/lib/components/VFileInput/index.d.mts +51 -23
  44. package/lib/components/VList/VListItem.css +3 -0
  45. package/lib/components/VList/VListItem.sass +4 -0
  46. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  47. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  48. package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -3
  49. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  50. package/lib/components/VSelect/VSelect.mjs +6 -0
  51. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  52. package/lib/components/VSelect/index.d.mts +34 -28
  53. package/lib/components/VSwitch/VSwitch.css +6 -0
  54. package/lib/components/VSwitch/VSwitch.sass +7 -0
  55. package/lib/components/VSwitch/_variables.scss +1 -0
  56. package/lib/components/VTextField/index.d.mts +88 -46
  57. package/lib/components/VTextarea/index.d.mts +54 -26
  58. package/lib/components/index.d.mts +764 -650
  59. package/lib/composables/date/DateAdapter.mjs.map +1 -1
  60. package/lib/composables/date/adapters/vuetify.mjs +14 -0
  61. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  62. package/lib/composables/router.mjs +1 -1
  63. package/lib/composables/router.mjs.map +1 -1
  64. package/lib/entry-bundler.mjs +1 -1
  65. package/lib/framework.mjs +1 -1
  66. package/lib/index.d.mts +39 -33
  67. package/lib/labs/VEmptyState/VEmptyState.css +4 -0
  68. package/lib/labs/VEmptyState/VEmptyState.mjs +6 -1
  69. package/lib/labs/VEmptyState/VEmptyState.mjs.map +1 -1
  70. package/lib/labs/VEmptyState/VEmptyState.sass +4 -0
  71. package/lib/labs/VEmptyState/_variables.scss +1 -0
  72. package/lib/labs/VNumberInput/VNumberInput.css +1 -0
  73. package/lib/labs/VNumberInput/VNumberInput.mjs +0 -4
  74. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  75. package/lib/labs/VNumberInput/VNumberInput.sass +1 -0
  76. package/lib/labs/VNumberInput/index.d.mts +51 -23
  77. package/lib/labs/components.d.mts +50 -22
  78. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.5.13
2
+ * Vuetify v3.5.14
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -5323,7 +5323,7 @@ function useLink(props, attrs) {
5323
5323
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
5324
5324
  const linkProps = computed(() => ({
5325
5325
  ...props,
5326
- to: props.to ? props.to : {}
5326
+ to: toRef(() => props.to || {})
5327
5327
  }));
5328
5328
  const routerLink = RouterLink.useLink(linkProps.value);
5329
5329
  // Actual link needs to be undefined when to prop is not used
@@ -5822,8 +5822,10 @@ const VBtn = genericComponent()({
5822
5822
  'v-btn--stacked': props.stacked
5823
5823
  }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
5824
5824
  "style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
5825
+ "aria-busy": props.loading ? true : undefined,
5825
5826
  "disabled": isDisabled.value || undefined,
5826
5827
  "href": link.href.value,
5828
+ "tabindex": props.loading ? -1 : undefined,
5827
5829
  "onClick": onClick,
5828
5830
  "value": valueAttr.value
5829
5831
  }, {
@@ -7850,6 +7852,7 @@ const VChip = genericComponent()({
7850
7852
  const closeProps = computed(() => ({
7851
7853
  'aria-label': t(props.closeLabel),
7852
7854
  onClick(e) {
7855
+ e.preventDefault();
7853
7856
  e.stopPropagation();
7854
7857
  isActive.value = false;
7855
7858
  emit('click:close', e);
@@ -11367,6 +11370,12 @@ const VField = genericComponent()({
11367
11370
  e.preventDefault();
11368
11371
  }
11369
11372
  }
11373
+ function onKeydownClear(e) {
11374
+ if (e.key !== 'Enter' && e.key !== ' ') return;
11375
+ e.preventDefault();
11376
+ e.stopPropagation();
11377
+ props['onClick:clear']?.(new MouseEvent('click'));
11378
+ }
11370
11379
  useRender(() => {
11371
11380
  const isOutlined = props.variant === 'outlined';
11372
11381
  const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);
@@ -11447,9 +11456,28 @@ const VField = genericComponent()({
11447
11456
  e.preventDefault();
11448
11457
  e.stopPropagation();
11449
11458
  }
11450
- }, [slots.clear ? slots.clear() : createVNode(InputIcon, {
11451
- "name": "clear"
11452
- }, null)]), [[vShow, props.dirty]])]
11459
+ }, [createVNode(VDefaultsProvider, {
11460
+ "defaults": {
11461
+ VIcon: {
11462
+ icon: props.clearIcon
11463
+ }
11464
+ }
11465
+ }, {
11466
+ default: () => [slots.clear ? slots.clear({
11467
+ ...slotProps.value,
11468
+ props: {
11469
+ onKeydown: onKeydownClear,
11470
+ onFocus: focus,
11471
+ onBlur: blur,
11472
+ onClick: props['onClick:clear']
11473
+ }
11474
+ }) : createVNode(InputIcon, {
11475
+ "name": "clear",
11476
+ "onKeydown": onKeydownClear,
11477
+ "onFocus": focus,
11478
+ "onBlur": blur
11479
+ }, null)]
11480
+ })]), [[vShow, props.dirty]])]
11453
11481
  }), hasAppend && createVNode("div", {
11454
11482
  "key": "append",
11455
11483
  "class": "v-field__append-inner"
@@ -12472,6 +12500,12 @@ const VSelect = genericComponent()({
12472
12500
  }
12473
12501
  const slotProps = {
12474
12502
  'onClick:close': onChipClose,
12503
+ onKeydown(e) {
12504
+ if (e.key !== 'Enter' && e.key !== ' ') return;
12505
+ e.preventDefault();
12506
+ e.stopPropagation();
12507
+ onChipClose(e);
12508
+ },
12475
12509
  onMousedown(e) {
12476
12510
  e.preventDefault();
12477
12511
  e.stopPropagation();
@@ -13036,6 +13070,12 @@ const VAutocomplete = genericComponent()({
13036
13070
  }
13037
13071
  const slotProps = {
13038
13072
  'onClick:close': onChipClose,
13073
+ onKeydown(e) {
13074
+ if (e.key !== 'Enter' && e.key !== ' ') return;
13075
+ e.preventDefault();
13076
+ e.stopPropagation();
13077
+ onChipClose(e);
13078
+ },
13039
13079
  onMousedown(e) {
13040
13080
  e.preventDefault();
13041
13081
  e.stopPropagation();
@@ -16844,6 +16884,12 @@ const VCombobox = genericComponent()({
16844
16884
  }
16845
16885
  const slotProps = {
16846
16886
  'onClick:close': onChipClose,
16887
+ onKeydown(e) {
16888
+ if (e.key !== 'Enter' && e.key !== ' ') return;
16889
+ e.preventDefault();
16890
+ e.stopPropagation();
16891
+ onChipClose(e);
16892
+ },
16847
16893
  onMousedown(e) {
16848
16894
  e.preventDefault();
16849
16895
  e.stopPropagation();
@@ -17793,6 +17839,9 @@ function getYear(date) {
17793
17839
  function getMonth(date) {
17794
17840
  return date.getMonth();
17795
17841
  }
17842
+ function getDate(date) {
17843
+ return date.getDate();
17844
+ }
17796
17845
  function getNextMonth(date) {
17797
17846
  return new Date(date.getFullYear(), date.getMonth() + 1, 1);
17798
17847
  }
@@ -17871,6 +17920,11 @@ function setMonth(date, count) {
17871
17920
  d.setMonth(count);
17872
17921
  return d;
17873
17922
  }
17923
+ function setDate(date, day) {
17924
+ const d = new Date(date);
17925
+ d.setDate(day);
17926
+ return d;
17927
+ }
17874
17928
  function setYear(date, year) {
17875
17929
  const d = new Date(date);
17876
17930
  d.setFullYear(year);
@@ -17962,6 +18016,9 @@ class VuetifyDateAdapter {
17962
18016
  setMonth(date, count) {
17963
18017
  return setMonth(date, count);
17964
18018
  }
18019
+ setDate(date, day) {
18020
+ return setDate(date, day);
18021
+ }
17965
18022
  setYear(date, year) {
17966
18023
  return setYear(date, year);
17967
18024
  }
@@ -17977,6 +18034,9 @@ class VuetifyDateAdapter {
17977
18034
  getMonth(date) {
17978
18035
  return getMonth(date);
17979
18036
  }
18037
+ getDate(date) {
18038
+ return getDate(date);
18039
+ }
17980
18040
  getNextMonth(date) {
17981
18041
  return getNextMonth(date);
17982
18042
  }
@@ -20404,9 +20464,9 @@ const VDataTableServer = genericComponent()({
20404
20464
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
20405
20465
  "items": flatItems.value
20406
20466
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
20407
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : createVNode(VDataTableFooter, dataTableFooterProps, {
20467
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : createVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
20408
20468
  prepend: slots['footer.prepend']
20409
- })
20469
+ })])
20410
20470
  });
20411
20471
  });
20412
20472
  }
@@ -21436,10 +21496,17 @@ const VDatePicker = genericComponent()({
21436
21496
  const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
21437
21497
  const isReversing = shallowRef(false);
21438
21498
  const header = computed(() => {
21439
- return props.multiple && model.value.length > 1 ? t('$vuetify.datePicker.itemsSelected', model.value.length) : model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header);
21499
+ if (props.multiple && model.value.length > 1) {
21500
+ return t('$vuetify.datePicker.itemsSelected', model.value.length);
21501
+ }
21502
+ return model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday') : t(props.header);
21440
21503
  });
21441
21504
  const text = computed(() => {
21442
- return adapter.format(adapter.date(new Date(year.value, month.value, 1)), 'monthAndYear');
21505
+ let date = adapter.date();
21506
+ date = adapter.setYear(date, year.value);
21507
+ date = adapter.setMonth(date, month.value);
21508
+ date = adapter.setDate(date, 1);
21509
+ return adapter.format(date, 'monthAndYear');
21443
21510
  });
21444
21511
  // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
21445
21512
  const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
@@ -21868,7 +21935,7 @@ const makeVFileInputProps = propsFactory({
21868
21935
  prependIcon: '$file'
21869
21936
  }),
21870
21937
  modelValue: {
21871
- type: Array,
21938
+ type: [Array, Object],
21872
21939
  default: () => [],
21873
21940
  validator: val => {
21874
21941
  return wrapInArray(val).every(v => v != null && typeof v === 'object');
@@ -21897,7 +21964,7 @@ const VFileInput = genericComponent()({
21897
21964
  const {
21898
21965
  t
21899
21966
  } = useLocale();
21900
- const model = useProxiedModel(props, 'modelValue');
21967
+ const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
21901
21968
  const {
21902
21969
  isFocused,
21903
21970
  focus,
@@ -23326,7 +23393,7 @@ const VOtpInput = genericComponent()({
23326
23393
  focus,
23327
23394
  blur
23328
23395
  } = useFocus(props);
23329
- const model = useProxiedModel(props, 'modelValue', '', val => String(val).split(''), val => val.join(''));
23396
+ const model = useProxiedModel(props, 'modelValue', '', val => val == null ? [] : String(val).split(''), val => val.join(''));
23330
23397
  const {
23331
23398
  t
23332
23399
  } = useLocale();
@@ -23752,7 +23819,8 @@ const VRangeSlider = genericComponent()({
23752
23819
  onSliderMousedown,
23753
23820
  onSliderTouchstart,
23754
23821
  position,
23755
- trackContainerRef
23822
+ trackContainerRef,
23823
+ readonly
23756
23824
  } = useSlider({
23757
23825
  props,
23758
23826
  steps,
@@ -23820,8 +23888,8 @@ const VRangeSlider = genericComponent()({
23820
23888
  } = _ref4;
23821
23889
  return createVNode("div", {
23822
23890
  "class": "v-slider__container",
23823
- "onMousedown": onSliderMousedown,
23824
- "onTouchstartPassive": onSliderTouchstart
23891
+ "onMousedown": !readonly.value ? onSliderMousedown : undefined,
23892
+ "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
23825
23893
  }, [createVNode("input", {
23826
23894
  "id": `${id.value}_start`,
23827
23895
  "name": props.name || id.value,
@@ -26262,7 +26330,7 @@ function createVuetify$1() {
26262
26330
  goTo
26263
26331
  };
26264
26332
  }
26265
- const version$1 = "3.5.13";
26333
+ const version$1 = "3.5.14";
26266
26334
  createVuetify$1.version = version$1;
26267
26335
 
26268
26336
  // Vue's inject() can only be used in setup
@@ -26287,7 +26355,7 @@ const createVuetify = function () {
26287
26355
  ...options
26288
26356
  });
26289
26357
  };
26290
- const version = "3.5.13";
26358
+ const version = "3.5.14";
26291
26359
  createVuetify.version = version;
26292
26360
 
26293
26361
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };