vuetify 3.5.13 → 3.5.15

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 (100) hide show
  1. package/dist/json/attributes.json +160 -160
  2. package/dist/json/importMap-labs.json +12 -12
  3. package/dist/json/importMap.json +102 -102
  4. package/dist/json/web-types.json +184 -162
  5. package/dist/vuetify-labs.css +1883 -1835
  6. package/dist/vuetify-labs.d.ts +894 -734
  7. package/dist/vuetify-labs.esm.js +107 -34
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +107 -34
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +877 -834
  12. package/dist/vuetify.d.ts +703 -571
  13. package/dist/vuetify.esm.js +92 -22
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +92 -22
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +125 -122
  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.css +4 -0
  28. package/lib/components/VBtn/VBtn.mjs +2 -1
  29. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  30. package/lib/components/VBtn/VBtn.sass +4 -0
  31. package/lib/components/VBtn/_variables.scss +1 -0
  32. package/lib/components/VChip/VChip.mjs +1 -0
  33. package/lib/components/VChip/VChip.mjs.map +1 -1
  34. package/lib/components/VCombobox/VCombobox.mjs +6 -0
  35. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  36. package/lib/components/VCombobox/index.d.mts +34 -28
  37. package/lib/components/VDataTable/VDataTableServer.mjs +3 -2
  38. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  39. package/lib/components/VDataTable/composables/options.mjs +1 -1
  40. package/lib/components/VDataTable/composables/options.mjs.map +1 -1
  41. package/lib/components/VDatePicker/VDatePicker.mjs +9 -2
  42. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  43. package/lib/components/VDialog/VDialog.mjs +3 -1
  44. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  45. package/lib/components/VDialog/index.d.mts +12 -0
  46. package/lib/components/VField/VField.mjs +29 -3
  47. package/lib/components/VField/VField.mjs.map +1 -1
  48. package/lib/components/VField/index.d.mts +9 -3
  49. package/lib/components/VFileInput/VFileInput.mjs +2 -2
  50. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  51. package/lib/components/VFileInput/index.d.mts +51 -23
  52. package/lib/components/VList/VListItem.css +3 -0
  53. package/lib/components/VList/VListItem.sass +4 -0
  54. package/lib/components/VMenu/VMenu.mjs +2 -1
  55. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  56. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  57. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  58. package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -3
  59. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  60. package/lib/components/VSelect/VSelect.mjs +6 -0
  61. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  62. package/lib/components/VSelect/index.d.mts +34 -28
  63. package/lib/components/VSelectionControl/VSelectionControl.mjs +1 -1
  64. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  65. package/lib/components/VSwitch/VSwitch.css +6 -0
  66. package/lib/components/VSwitch/VSwitch.sass +7 -0
  67. package/lib/components/VSwitch/_variables.scss +1 -0
  68. package/lib/components/VTextField/index.d.mts +88 -46
  69. package/lib/components/VTextarea/index.d.mts +54 -26
  70. package/lib/components/index.d.mts +867 -741
  71. package/lib/composables/date/DateAdapter.mjs.map +1 -1
  72. package/lib/composables/date/adapters/vuetify.mjs +14 -0
  73. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  74. package/lib/composables/router.mjs +1 -1
  75. package/lib/composables/router.mjs.map +1 -1
  76. package/lib/entry-bundler.mjs +1 -1
  77. package/lib/framework.mjs +1 -1
  78. package/lib/index.d.mts +38 -32
  79. package/lib/labs/VEmptyState/VEmptyState.css +4 -0
  80. package/lib/labs/VEmptyState/VEmptyState.mjs +6 -1
  81. package/lib/labs/VEmptyState/VEmptyState.mjs.map +1 -1
  82. package/lib/labs/VEmptyState/VEmptyState.sass +4 -0
  83. package/lib/labs/VEmptyState/_variables.scss +1 -0
  84. package/lib/labs/VNumberInput/VNumberInput.css +1 -0
  85. package/lib/labs/VNumberInput/VNumberInput.mjs +0 -4
  86. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  87. package/lib/labs/VNumberInput/VNumberInput.sass +1 -0
  88. package/lib/labs/VNumberInput/index.d.mts +51 -23
  89. package/lib/labs/VTimePicker/VTimePicker.mjs +2 -2
  90. package/lib/labs/VTimePicker/VTimePicker.mjs.map +1 -1
  91. package/lib/labs/VTimePicker/VTimePickerClock.mjs +8 -5
  92. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  93. package/lib/labs/components.d.mts +50 -22
  94. package/lib/locale/lt.mjs +25 -25
  95. package/lib/locale/lt.mjs.map +1 -1
  96. package/lib/locale/sl.mjs +30 -30
  97. package/lib/locale/sl.mjs.map +1 -1
  98. package/lib/styles/main.css +30 -0
  99. package/lib/styles/settings/_variables.scss +1 -0
  100. 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.15
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
  }, {
@@ -5881,7 +5883,6 @@
5881
5883
  }, [slots.loader?.() ?? vue.createVNode(VProgressCircular, {
5882
5884
  "color": typeof props.loading === 'boolean' ? undefined : props.loading,
5883
5885
  "indeterminate": true,
5884
- "size": "23",
5885
5886
  "width": "2"
5886
5887
  }, null)])]
5887
5888
  }), [[vue.resolveDirective("ripple"), !isDisabled.value && props.ripple, null]]);
@@ -6363,7 +6364,7 @@
6363
6364
  backgroundColorClasses,
6364
6365
  backgroundColorStyles
6365
6366
  } = useBackgroundColor(vue.computed(() => {
6366
- return model.value && !props.error && !props.disabled ? props.color : undefined;
6367
+ return model.value && !props.error && !props.disabled ? props.color : props.baseColor;
6367
6368
  }));
6368
6369
  const icon = vue.computed(() => model.value ? props.trueIcon : props.falseIcon);
6369
6370
  return {
@@ -7854,6 +7855,7 @@
7854
7855
  const closeProps = vue.computed(() => ({
7855
7856
  'aria-label': t(props.closeLabel),
7856
7857
  onClick(e) {
7858
+ e.preventDefault();
7857
7859
  e.stopPropagation();
7858
7860
  isActive.value = false;
7859
7861
  emit('click:close', e);
@@ -11087,7 +11089,8 @@
11087
11089
  }
11088
11090
  function onKeydown(e) {
11089
11091
  if (props.disabled) return;
11090
- if (e.key === 'Tab') {
11092
+ if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {
11093
+ if (e.key === 'Enter') e.preventDefault();
11091
11094
  const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
11092
11095
  if (!nextElement) {
11093
11096
  isActive.value = false;
@@ -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();
@@ -13487,7 +13527,9 @@
13487
13527
  name: 'VDialog',
13488
13528
  props: makeVDialogProps(),
13489
13529
  emits: {
13490
- 'update:modelValue': value => true
13530
+ 'click:outside': e => true,
13531
+ 'update:modelValue': value => true,
13532
+ afterLeave: () => true
13491
13533
  },
13492
13534
  setup(props, _ref) {
13493
13535
  let {
@@ -16848,6 +16890,12 @@
16848
16890
  }
16849
16891
  const slotProps = {
16850
16892
  'onClick:close': onChipClose,
16893
+ onKeydown(e) {
16894
+ if (e.key !== 'Enter' && e.key !== ' ') return;
16895
+ e.preventDefault();
16896
+ e.stopPropagation();
16897
+ onChipClose(e);
16898
+ },
16851
16899
  onMousedown(e) {
16852
16900
  e.preventDefault();
16853
16901
  e.stopPropagation();
@@ -17137,7 +17185,7 @@
17137
17185
  if (deepEqual(oldOptions, options.value)) return;
17138
17186
 
17139
17187
  // Reset page when searching
17140
- if (oldOptions?.search !== options.value.search) {
17188
+ if (oldOptions && oldOptions.search !== options.value.search) {
17141
17189
  page.value = 1;
17142
17190
  }
17143
17191
  vm.emit('update:options', options.value);
@@ -17797,6 +17845,9 @@
17797
17845
  function getMonth(date) {
17798
17846
  return date.getMonth();
17799
17847
  }
17848
+ function getDate(date) {
17849
+ return date.getDate();
17850
+ }
17800
17851
  function getNextMonth(date) {
17801
17852
  return new Date(date.getFullYear(), date.getMonth() + 1, 1);
17802
17853
  }
@@ -17875,6 +17926,11 @@
17875
17926
  d.setMonth(count);
17876
17927
  return d;
17877
17928
  }
17929
+ function setDate(date, day) {
17930
+ const d = new Date(date);
17931
+ d.setDate(day);
17932
+ return d;
17933
+ }
17878
17934
  function setYear(date, year) {
17879
17935
  const d = new Date(date);
17880
17936
  d.setFullYear(year);
@@ -17966,6 +18022,9 @@
17966
18022
  setMonth(date, count) {
17967
18023
  return setMonth(date, count);
17968
18024
  }
18025
+ setDate(date, day) {
18026
+ return setDate(date, day);
18027
+ }
17969
18028
  setYear(date, year) {
17970
18029
  return setYear(date, year);
17971
18030
  }
@@ -17981,6 +18040,9 @@
17981
18040
  getMonth(date) {
17982
18041
  return getMonth(date);
17983
18042
  }
18043
+ getDate(date) {
18044
+ return getDate(date);
18045
+ }
17984
18046
  getNextMonth(date) {
17985
18047
  return getNextMonth(date);
17986
18048
  }
@@ -20408,9 +20470,9 @@
20408
20470
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
20409
20471
  "items": flatItems.value
20410
20472
  }), 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, {
20473
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : vue.createVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
20412
20474
  prepend: slots['footer.prepend']
20413
- })
20475
+ })])
20414
20476
  });
20415
20477
  });
20416
20478
  }
@@ -21440,10 +21502,17 @@
21440
21502
  const year = vue.ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
21441
21503
  const isReversing = vue.shallowRef(false);
21442
21504
  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);
21505
+ if (props.multiple && model.value.length > 1) {
21506
+ return t('$vuetify.datePicker.itemsSelected', model.value.length);
21507
+ }
21508
+ return model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(adapter.date(model.value[0]), 'normalDateWithWeekday') : t(props.header);
21444
21509
  });
21445
21510
  const text = vue.computed(() => {
21446
- return adapter.format(adapter.date(new Date(year.value, month.value, 1)), 'monthAndYear');
21511
+ let date = adapter.date();
21512
+ date = adapter.setYear(date, year.value);
21513
+ date = adapter.setMonth(date, month.value);
21514
+ date = adapter.setDate(date, 1);
21515
+ return adapter.format(date, 'monthAndYear');
21447
21516
  });
21448
21517
  // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
21449
21518
  const headerTransition = vue.computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
@@ -21872,7 +21941,7 @@
21872
21941
  prependIcon: '$file'
21873
21942
  }),
21874
21943
  modelValue: {
21875
- type: Array,
21944
+ type: [Array, Object],
21876
21945
  default: () => [],
21877
21946
  validator: val => {
21878
21947
  return wrapInArray(val).every(v => v != null && typeof v === 'object');
@@ -21901,7 +21970,7 @@
21901
21970
  const {
21902
21971
  t
21903
21972
  } = useLocale();
21904
- const model = useProxiedModel(props, 'modelValue');
21973
+ const model = useProxiedModel(props, 'modelValue', props.modelValue, val => wrapInArray(val), val => props.multiple || Array.isArray(props.modelValue) ? val : val[0]);
21905
21974
  const {
21906
21975
  isFocused,
21907
21976
  focus,
@@ -23330,7 +23399,7 @@
23330
23399
  focus,
23331
23400
  blur
23332
23401
  } = useFocus(props);
23333
- const model = useProxiedModel(props, 'modelValue', '', val => String(val).split(''), val => val.join(''));
23402
+ const model = useProxiedModel(props, 'modelValue', '', val => val == null ? [] : String(val).split(''), val => val.join(''));
23334
23403
  const {
23335
23404
  t
23336
23405
  } = useLocale();
@@ -23756,7 +23825,8 @@
23756
23825
  onSliderMousedown,
23757
23826
  onSliderTouchstart,
23758
23827
  position,
23759
- trackContainerRef
23828
+ trackContainerRef,
23829
+ readonly
23760
23830
  } = useSlider({
23761
23831
  props,
23762
23832
  steps,
@@ -23824,8 +23894,8 @@
23824
23894
  } = _ref4;
23825
23895
  return vue.createVNode("div", {
23826
23896
  "class": "v-slider__container",
23827
- "onMousedown": onSliderMousedown,
23828
- "onTouchstartPassive": onSliderTouchstart
23897
+ "onMousedown": !readonly.value ? onSliderMousedown : undefined,
23898
+ "onTouchstartPassive": !readonly.value ? onSliderTouchstart : undefined
23829
23899
  }, [vue.createVNode("input", {
23830
23900
  "id": `${id.value}_start`,
23831
23901
  "name": props.name || id.value,
@@ -26266,7 +26336,7 @@
26266
26336
  goTo
26267
26337
  };
26268
26338
  }
26269
- const version$1 = "3.5.13";
26339
+ const version$1 = "3.5.15";
26270
26340
  createVuetify$1.version = version$1;
26271
26341
 
26272
26342
  // Vue's inject() can only be used in setup
@@ -26291,7 +26361,7 @@
26291
26361
  ...options
26292
26362
  });
26293
26363
  };
26294
- const version = "3.5.13";
26364
+ const version = "3.5.15";
26295
26365
  createVuetify.version = version;
26296
26366
 
26297
26367
  exports.blueprints = index;