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
package/dist/vuetify.js CHANGED
@@ -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
  */
@@ -5327,7 +5327,7 @@
5327
5327
  // vue-router useLink `to` prop needs to be reactive and useLink will crash if undefined
5328
5328
  const linkProps = vue.computed(() => ({
5329
5329
  ...props,
5330
- to: props.to ? props.to : {}
5330
+ to: vue.toRef(() => props.to || {})
5331
5331
  }));
5332
5332
  const routerLink = RouterLink.useLink(linkProps.value);
5333
5333
  // Actual link needs to be undefined when to prop is not used
@@ -5826,8 +5826,10 @@
5826
5826
  'v-btn--stacked': props.stacked
5827
5827
  }, themeClasses.value, borderClasses.value, hasColor ? colorClasses.value : undefined, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
5828
5828
  "style": [hasColor ? colorStyles.value : undefined, dimensionStyles.value, locationStyles.value, sizeStyles.value, props.style],
5829
+ "aria-busy": props.loading ? true : undefined,
5829
5830
  "disabled": isDisabled.value || undefined,
5830
5831
  "href": link.href.value,
5832
+ "tabindex": props.loading ? -1 : undefined,
5831
5833
  "onClick": onClick,
5832
5834
  "value": valueAttr.value
5833
5835
  }, {
@@ -7854,6 +7856,7 @@
7854
7856
  const closeProps = vue.computed(() => ({
7855
7857
  'aria-label': t(props.closeLabel),
7856
7858
  onClick(e) {
7859
+ e.preventDefault();
7857
7860
  e.stopPropagation();
7858
7861
  isActive.value = false;
7859
7862
  emit('click:close', e);
@@ -11371,6 +11374,12 @@
11371
11374
  e.preventDefault();
11372
11375
  }
11373
11376
  }
11377
+ function onKeydownClear(e) {
11378
+ if (e.key !== 'Enter' && e.key !== ' ') return;
11379
+ e.preventDefault();
11380
+ e.stopPropagation();
11381
+ props['onClick:clear']?.(new MouseEvent('click'));
11382
+ }
11374
11383
  useRender(() => {
11375
11384
  const isOutlined = props.variant === 'outlined';
11376
11385
  const hasPrepend = !!(slots['prepend-inner'] || props.prependInnerIcon);
@@ -11451,9 +11460,28 @@
11451
11460
  e.preventDefault();
11452
11461
  e.stopPropagation();
11453
11462
  }
11454
- }, [slots.clear ? slots.clear() : vue.createVNode(InputIcon, {
11455
- "name": "clear"
11456
- }, null)]), [[vue.vShow, props.dirty]])]
11463
+ }, [vue.createVNode(VDefaultsProvider, {
11464
+ "defaults": {
11465
+ VIcon: {
11466
+ icon: props.clearIcon
11467
+ }
11468
+ }
11469
+ }, {
11470
+ default: () => [slots.clear ? slots.clear({
11471
+ ...slotProps.value,
11472
+ props: {
11473
+ onKeydown: onKeydownClear,
11474
+ onFocus: focus,
11475
+ onBlur: blur,
11476
+ onClick: props['onClick:clear']
11477
+ }
11478
+ }) : vue.createVNode(InputIcon, {
11479
+ "name": "clear",
11480
+ "onKeydown": onKeydownClear,
11481
+ "onFocus": focus,
11482
+ "onBlur": blur
11483
+ }, null)]
11484
+ })]), [[vue.vShow, props.dirty]])]
11457
11485
  }), hasAppend && vue.createVNode("div", {
11458
11486
  "key": "append",
11459
11487
  "class": "v-field__append-inner"
@@ -12476,6 +12504,12 @@
12476
12504
  }
12477
12505
  const slotProps = {
12478
12506
  'onClick:close': onChipClose,
12507
+ onKeydown(e) {
12508
+ if (e.key !== 'Enter' && e.key !== ' ') return;
12509
+ e.preventDefault();
12510
+ e.stopPropagation();
12511
+ onChipClose(e);
12512
+ },
12479
12513
  onMousedown(e) {
12480
12514
  e.preventDefault();
12481
12515
  e.stopPropagation();
@@ -13040,6 +13074,12 @@
13040
13074
  }
13041
13075
  const slotProps = {
13042
13076
  'onClick:close': onChipClose,
13077
+ onKeydown(e) {
13078
+ if (e.key !== 'Enter' && e.key !== ' ') return;
13079
+ e.preventDefault();
13080
+ e.stopPropagation();
13081
+ onChipClose(e);
13082
+ },
13043
13083
  onMousedown(e) {
13044
13084
  e.preventDefault();
13045
13085
  e.stopPropagation();
@@ -16848,6 +16888,12 @@
16848
16888
  }
16849
16889
  const slotProps = {
16850
16890
  'onClick:close': onChipClose,
16891
+ onKeydown(e) {
16892
+ if (e.key !== 'Enter' && e.key !== ' ') return;
16893
+ e.preventDefault();
16894
+ e.stopPropagation();
16895
+ onChipClose(e);
16896
+ },
16851
16897
  onMousedown(e) {
16852
16898
  e.preventDefault();
16853
16899
  e.stopPropagation();
@@ -17797,6 +17843,9 @@
17797
17843
  function getMonth(date) {
17798
17844
  return date.getMonth();
17799
17845
  }
17846
+ function getDate(date) {
17847
+ return date.getDate();
17848
+ }
17800
17849
  function getNextMonth(date) {
17801
17850
  return new Date(date.getFullYear(), date.getMonth() + 1, 1);
17802
17851
  }
@@ -17875,6 +17924,11 @@
17875
17924
  d.setMonth(count);
17876
17925
  return d;
17877
17926
  }
17927
+ function setDate(date, day) {
17928
+ const d = new Date(date);
17929
+ d.setDate(day);
17930
+ return d;
17931
+ }
17878
17932
  function setYear(date, year) {
17879
17933
  const d = new Date(date);
17880
17934
  d.setFullYear(year);
@@ -17966,6 +18020,9 @@
17966
18020
  setMonth(date, count) {
17967
18021
  return setMonth(date, count);
17968
18022
  }
18023
+ setDate(date, day) {
18024
+ return setDate(date, day);
18025
+ }
17969
18026
  setYear(date, year) {
17970
18027
  return setYear(date, year);
17971
18028
  }
@@ -17981,6 +18038,9 @@
17981
18038
  getMonth(date) {
17982
18039
  return getMonth(date);
17983
18040
  }
18041
+ getDate(date) {
18042
+ return getDate(date);
18043
+ }
17984
18044
  getNextMonth(date) {
17985
18045
  return getNextMonth(date);
17986
18046
  }
@@ -20408,9 +20468,9 @@
20408
20468
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
20409
20469
  "items": flatItems.value
20410
20470
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
20411
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : vue.createVNode(VDataTableFooter, dataTableFooterProps, {
20471
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : vue.createVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
20412
20472
  prepend: slots['footer.prepend']
20413
- })
20473
+ })])
20414
20474
  });
20415
20475
  });
20416
20476
  }
@@ -21440,10 +21500,17 @@
21440
21500
  const year = vue.ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
21441
21501
  const isReversing = vue.shallowRef(false);
21442
21502
  const header = vue.computed(() => {
21443
- 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);
21503
+ if (props.multiple && model.value.length > 1) {
21504
+ return t('$vuetify.datePicker.itemsSelected', model.value.length);
21505
+ }
21506
+ return model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday') : t(props.header);
21444
21507
  });
21445
21508
  const text = vue.computed(() => {
21446
- return adapter.format(adapter.date(new Date(year.value, month.value, 1)), 'monthAndYear');
21509
+ let date = adapter.date();
21510
+ date = adapter.setYear(date, year.value);
21511
+ date = adapter.setMonth(date, month.value);
21512
+ date = adapter.setDate(date, 1);
21513
+ return adapter.format(date, 'monthAndYear');
21447
21514
  });
21448
21515
  // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
21449
21516
  const headerTransition = vue.computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
@@ -21872,7 +21939,7 @@
21872
21939
  prependIcon: '$file'
21873
21940
  }),
21874
21941
  modelValue: {
21875
- type: Array,
21942
+ type: [Array, Object],
21876
21943
  default: () => [],
21877
21944
  validator: val => {
21878
21945
  return wrapInArray(val).every(v => v != null && typeof v === 'object');
@@ -21901,7 +21968,7 @@
21901
21968
  const {
21902
21969
  t
21903
21970
  } = useLocale();
21904
- const model = useProxiedModel(props, 'modelValue');
21971
+ const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
21905
21972
  const {
21906
21973
  isFocused,
21907
21974
  focus,
@@ -23330,7 +23397,7 @@
23330
23397
  focus,
23331
23398
  blur
23332
23399
  } = useFocus(props);
23333
- const model = useProxiedModel(props, 'modelValue', '', val => String(val).split(''), val => val.join(''));
23400
+ const model = useProxiedModel(props, 'modelValue', '', val => val == null ? [] : String(val).split(''), val => val.join(''));
23334
23401
  const {
23335
23402
  t
23336
23403
  } = useLocale();
@@ -23756,7 +23823,8 @@
23756
23823
  onSliderMousedown,
23757
23824
  onSliderTouchstart,
23758
23825
  position,
23759
- trackContainerRef
23826
+ trackContainerRef,
23827
+ readonly
23760
23828
  } = useSlider({
23761
23829
  props,
23762
23830
  steps,
@@ -23824,8 +23892,8 @@
23824
23892
  } = _ref4;
23825
23893
  return vue.createVNode("div", {
23826
23894
  "class": "v-slider__container",
23827
- "onMousedown": onSliderMousedown,
23828
- "onTouchstartPassive": onSliderTouchstart
23895
+ "onMousedown": !readonly.value ? onSliderMousedown : undefined,
23896
+ "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
23829
23897
  }, [vue.createVNode("input", {
23830
23898
  "id": `${id.value}_start`,
23831
23899
  "name": props.name || id.value,
@@ -26266,7 +26334,7 @@
26266
26334
  goTo
26267
26335
  };
26268
26336
  }
26269
- const version$1 = "3.5.13";
26337
+ const version$1 = "3.5.14";
26270
26338
  createVuetify$1.version = version$1;
26271
26339
 
26272
26340
  // Vue's inject() can only be used in setup
@@ -26291,7 +26359,7 @@
26291
26359
  ...options
26292
26360
  });
26293
26361
  };
26294
- const version = "3.5.13";
26362
+ const version = "3.5.14";
26295
26363
  createVuetify.version = version;
26296
26364
 
26297
26365
  exports.blueprints = index;