vuetify 3.7.14 → 3.7.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 (124) hide show
  1. package/dist/json/attributes.json +3592 -3596
  2. package/dist/json/importMap-labs.json +22 -22
  3. package/dist/json/importMap.json +172 -172
  4. package/dist/json/tags.json +0 -1
  5. package/dist/json/web-types.json +6319 -6328
  6. package/dist/vuetify-labs.css +2227 -2223
  7. package/dist/vuetify-labs.d.ts +15 -15
  8. package/dist/vuetify-labs.esm.js +102 -28
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +102 -28
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +6087 -6087
  13. package/dist/vuetify.d.ts +61 -61
  14. package/dist/vuetify.esm.js +7 -4
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +7 -4
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +6 -6
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VList/VListItem.mjs +2 -0
  22. package/lib/components/VList/VListItem.mjs.map +1 -1
  23. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  24. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  25. package/lib/components/VSlider/slider.mjs +1 -0
  26. package/lib/components/VSlider/slider.mjs.map +1 -1
  27. package/lib/entry-bundler.mjs +1 -1
  28. package/lib/framework.mjs +1 -1
  29. package/lib/index.d.mts +61 -61
  30. package/lib/labs/VDateInput/VDateInput.mjs +2 -2
  31. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  32. package/lib/labs/VFileUpload/VFileUpload.css +5 -1
  33. package/lib/labs/VFileUpload/VFileUpload.sass +4 -0
  34. package/lib/labs/VFileUpload/_variables.scss +1 -1
  35. package/lib/labs/VNumberInput/VNumberInput.mjs +55 -19
  36. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  37. package/lib/labs/VNumberInput/hold.mjs +31 -0
  38. package/lib/labs/VNumberInput/hold.mjs.map +1 -0
  39. package/lib/labs/VNumberInput/index.d.mts +1 -7
  40. package/lib/labs/VTreeview/VTreeviewItem.mjs +11 -4
  41. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  42. package/lib/labs/VTreeview/index.d.mts +14 -8
  43. package/lib/labs/components.d.mts +15 -15
  44. package/lib/locale/af.mjs +42 -42
  45. package/lib/locale/af.mjs.map +1 -1
  46. package/lib/locale/az.mjs +7 -7
  47. package/lib/locale/az.mjs.map +1 -1
  48. package/lib/locale/bg.mjs +7 -7
  49. package/lib/locale/bg.mjs.map +1 -1
  50. package/lib/locale/ca.mjs +25 -25
  51. package/lib/locale/ca.mjs.map +1 -1
  52. package/lib/locale/ckb.mjs +29 -29
  53. package/lib/locale/ckb.mjs.map +1 -1
  54. package/lib/locale/cs.mjs +13 -13
  55. package/lib/locale/cs.mjs.map +1 -1
  56. package/lib/locale/da.mjs +22 -22
  57. package/lib/locale/da.mjs.map +1 -1
  58. package/lib/locale/el.mjs +41 -41
  59. package/lib/locale/el.mjs.map +1 -1
  60. package/lib/locale/es.mjs +26 -26
  61. package/lib/locale/es.mjs.map +1 -1
  62. package/lib/locale/et.mjs +29 -29
  63. package/lib/locale/et.mjs.map +1 -1
  64. package/lib/locale/fa.mjs +5 -5
  65. package/lib/locale/fa.mjs.map +1 -1
  66. package/lib/locale/fi.mjs +22 -22
  67. package/lib/locale/fi.mjs.map +1 -1
  68. package/lib/locale/fr.mjs +6 -6
  69. package/lib/locale/fr.mjs.map +1 -1
  70. package/lib/locale/he.mjs +29 -29
  71. package/lib/locale/he.mjs.map +1 -1
  72. package/lib/locale/hr.mjs +28 -28
  73. package/lib/locale/hr.mjs.map +1 -1
  74. package/lib/locale/hu.mjs +10 -10
  75. package/lib/locale/hu.mjs.map +1 -1
  76. package/lib/locale/id.mjs +30 -30
  77. package/lib/locale/id.mjs.map +1 -1
  78. package/lib/locale/it.mjs +7 -7
  79. package/lib/locale/it.mjs.map +1 -1
  80. package/lib/locale/ja.mjs +9 -9
  81. package/lib/locale/ja.mjs.map +1 -1
  82. package/lib/locale/km.mjs +6 -6
  83. package/lib/locale/km.mjs.map +1 -1
  84. package/lib/locale/ko.mjs +27 -27
  85. package/lib/locale/ko.mjs.map +1 -1
  86. package/lib/locale/lt.mjs +5 -5
  87. package/lib/locale/lt.mjs.map +1 -1
  88. package/lib/locale/lv.mjs +33 -33
  89. package/lib/locale/lv.mjs.map +1 -1
  90. package/lib/locale/nl.mjs +10 -10
  91. package/lib/locale/nl.mjs.map +1 -1
  92. package/lib/locale/no.mjs +11 -11
  93. package/lib/locale/no.mjs.map +1 -1
  94. package/lib/locale/pl.mjs +7 -7
  95. package/lib/locale/pl.mjs.map +1 -1
  96. package/lib/locale/pt.mjs +11 -11
  97. package/lib/locale/pt.mjs.map +1 -1
  98. package/lib/locale/ro.mjs +9 -9
  99. package/lib/locale/ro.mjs.map +1 -1
  100. package/lib/locale/ru.mjs +6 -6
  101. package/lib/locale/ru.mjs.map +1 -1
  102. package/lib/locale/sk.mjs +5 -5
  103. package/lib/locale/sk.mjs.map +1 -1
  104. package/lib/locale/sl.mjs +4 -4
  105. package/lib/locale/sl.mjs.map +1 -1
  106. package/lib/locale/sr-Cyrl.mjs +30 -30
  107. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  108. package/lib/locale/sr-Latn.mjs +28 -28
  109. package/lib/locale/sr-Latn.mjs.map +1 -1
  110. package/lib/locale/sv.mjs +17 -17
  111. package/lib/locale/sv.mjs.map +1 -1
  112. package/lib/locale/th.mjs +30 -30
  113. package/lib/locale/th.mjs.map +1 -1
  114. package/lib/locale/tr.mjs +31 -31
  115. package/lib/locale/tr.mjs.map +1 -1
  116. package/lib/locale/uk.mjs +29 -29
  117. package/lib/locale/uk.mjs.map +1 -1
  118. package/lib/locale/vi.mjs +28 -28
  119. package/lib/locale/vi.mjs.map +1 -1
  120. package/lib/locale/zh-Hans.mjs +31 -31
  121. package/lib/locale/zh-Hans.mjs.map +1 -1
  122. package/lib/locale/zh-Hant.mjs +31 -31
  123. package/lib/locale/zh-Hant.mjs.map +1 -1
  124. package/package.json +7 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.14
2
+ * Vuetify v3.7.15
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -9060,6 +9060,8 @@
9060
9060
  }
9061
9061
  }
9062
9062
  function onKeyDown(e) {
9063
+ const target = e.target;
9064
+ if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
9063
9065
  if (e.key === 'Enter' || e.key === ' ') {
9064
9066
  e.preventDefault();
9065
9067
  e.target.dispatchEvent(new MouseEvent('click', e));
@@ -15685,6 +15687,7 @@
15685
15687
  });
15686
15688
  }
15687
15689
  function onSliderMousedown(e) {
15690
+ if (e.button !== 0) return;
15688
15691
  e.preventDefault();
15689
15692
  handleStart(e);
15690
15693
  window.addEventListener('mousemove', onMouseMove, moveListenerOptions);
@@ -24599,7 +24602,7 @@
24599
24602
  "disabled": props.disabled,
24600
24603
  "inputmode": props.type === 'number' ? 'numeric' : 'text',
24601
24604
  "min": props.type === 'number' ? 0 : undefined,
24602
- "maxlength": "1",
24605
+ "maxlength": i === 0 ? length.value : '1',
24603
24606
  "placeholder": props.placeholder,
24604
24607
  "type": props.type === 'number' ? 'text' : props.type,
24605
24608
  "value": model.value[i],
@@ -28250,9 +28253,9 @@
28250
28253
  if (props.multiple === 'range') {
28251
28254
  const start = value[0];
28252
28255
  const end = value[value.length - 1];
28253
- return adapter.isValid(start) && adapter.isValid(end) ? `${adapter.format(start, 'keyboardDate')} - ${adapter.format(end, 'keyboardDate')}` : '';
28256
+ return adapter.isValid(start) && adapter.isValid(end) ? `${adapter.format(adapter.date(start), 'keyboardDate')} - ${adapter.format(adapter.date(end), 'keyboardDate')}` : '';
28254
28257
  }
28255
- return adapter.isValid(model.value) ? adapter.format(model.value, 'keyboardDate') : '';
28258
+ return adapter.isValid(model.value) ? adapter.format(adapter.date(model.value), 'keyboardDate') : '';
28256
28259
  });
28257
28260
  const isInteractive = vue.computed(() => !props.disabled && !props.readonly);
28258
28261
  function onKeydown(e) {
@@ -28658,6 +28661,36 @@
28658
28661
  }
28659
28662
  });
28660
28663
 
28664
+ // Utilities
28665
+ const HOLD_REPEAT = 50;
28666
+ const HOLD_DELAY = 500;
28667
+ function useHold(_ref) {
28668
+ let {
28669
+ toggleUpDown
28670
+ } = _ref;
28671
+ let timeout = -1;
28672
+ let interval = -1;
28673
+ vue.onScopeDispose(holdStop);
28674
+ function holdStart(value) {
28675
+ holdStop();
28676
+ tick(value);
28677
+ timeout = window.setTimeout(() => {
28678
+ interval = window.setInterval(() => tick(value), HOLD_REPEAT);
28679
+ }, HOLD_DELAY);
28680
+ }
28681
+ function holdStop() {
28682
+ window.clearTimeout(timeout);
28683
+ window.clearInterval(interval);
28684
+ }
28685
+ function tick(value) {
28686
+ toggleUpDown(value === 'up');
28687
+ }
28688
+ return {
28689
+ holdStart,
28690
+ holdStop
28691
+ };
28692
+ }
28693
+
28661
28694
  // Types
28662
28695
 
28663
28696
  const makeVNumberInputProps = propsFactory({
@@ -28687,7 +28720,7 @@
28687
28720
  type: Number,
28688
28721
  default: 0
28689
28722
  },
28690
- ...omit(makeVTextFieldProps({}), ['modelValue'])
28723
+ ...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
28691
28724
  }, 'VNumberInput');
28692
28725
  const VNumberInput = genericComponent()({
28693
28726
  name: 'VNumberInput',
@@ -28702,9 +28735,19 @@
28702
28735
  slots
28703
28736
  } = _ref;
28704
28737
  const vTextFieldRef = vue.ref();
28738
+ const {
28739
+ holdStart,
28740
+ holdStop
28741
+ } = useHold({
28742
+ toggleUpDown
28743
+ });
28705
28744
  const form = useForm(props);
28706
28745
  const controlsDisabled = vue.computed(() => form.isDisabled.value || form.isReadonly.value);
28707
- const isFocused = vue.ref(false);
28746
+ const {
28747
+ isFocused,
28748
+ focus,
28749
+ blur
28750
+ } = useFocus(props);
28708
28751
  function correctPrecision(val) {
28709
28752
  let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
28710
28753
  const fixed = precision == null ? String(val) : val.toFixed(precision);
@@ -28748,10 +28791,18 @@
28748
28791
  const controlNodeSize = vue.computed(() => controlVariant.value === 'split' ? 'default' : 'small');
28749
28792
  const controlNodeDefaultHeight = vue.computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
28750
28793
  const incrementSlotProps = vue.computed(() => ({
28751
- click: onClickUp
28794
+ props: {
28795
+ onClick: onControlClick,
28796
+ onPointerup: onControlMouseup,
28797
+ onPointerdown: onUpControlMousedown
28798
+ }
28752
28799
  }));
28753
28800
  const decrementSlotProps = vue.computed(() => ({
28754
- click: onClickDown
28801
+ props: {
28802
+ onClick: onControlClick,
28803
+ onPointerup: onControlMouseup,
28804
+ onPointerdown: onDownControlMousedown
28805
+ }
28755
28806
  }));
28756
28807
  vue.watch(() => props.precision, () => formatInputValue());
28757
28808
  vue.onMounted(() => {
@@ -28778,14 +28829,6 @@
28778
28829
  if (canDecrease.value) inputText.value = correctPrecision(model.value - props.step, inferredPrecision);
28779
28830
  }
28780
28831
  }
28781
- function onClickUp(e) {
28782
- e.stopPropagation();
28783
- toggleUpDown();
28784
- }
28785
- function onClickDown(e) {
28786
- e.stopPropagation();
28787
- toggleUpDown(false);
28788
- }
28789
28832
  function onBeforeinput(e) {
28790
28833
  if (!e.data) return;
28791
28834
  const existingTxt = e.target?.value;
@@ -28823,8 +28866,29 @@
28823
28866
  }
28824
28867
  }
28825
28868
  }
28826
- function onControlMousedown(e) {
28869
+ function onControlClick(e) {
28870
+ e.stopPropagation();
28871
+ }
28872
+ function onControlMouseup(e) {
28873
+ const el = e.currentTarget;
28874
+ el?.releasePointerCapture(e.pointerId);
28875
+ e.preventDefault();
28876
+ e.stopPropagation();
28877
+ holdStop();
28878
+ }
28879
+ function onUpControlMousedown(e) {
28880
+ const el = e.currentTarget;
28881
+ el?.setPointerCapture(e.pointerId);
28882
+ e.preventDefault();
28883
+ e.stopPropagation();
28884
+ holdStart('up');
28885
+ }
28886
+ function onDownControlMousedown(e) {
28887
+ const el = e.currentTarget;
28888
+ el?.setPointerCapture(e.pointerId);
28889
+ e.preventDefault();
28827
28890
  e.stopPropagation();
28891
+ holdStart('down');
28828
28892
  }
28829
28893
  function clampModel() {
28830
28894
  if (controlsDisabled.value) return;
@@ -28853,11 +28917,11 @@
28853
28917
  inputText.value = model.value.toString();
28854
28918
  }
28855
28919
  function onFocus() {
28856
- isFocused.value = true;
28920
+ focus();
28857
28921
  trimDecimalZeros();
28858
28922
  }
28859
28923
  function onBlur() {
28860
- isFocused.value = false;
28924
+ blur();
28861
28925
  clampModel();
28862
28926
  }
28863
28927
  useRender(() => {
@@ -28874,8 +28938,9 @@
28874
28938
  "data-testid": "increment",
28875
28939
  "aria-hidden": "true",
28876
28940
  "icon": incrementIcon.value,
28877
- "onClick": onClickUp,
28878
- "onMousedown": onControlMousedown,
28941
+ "onClick": onControlClick,
28942
+ "onPointerup": onControlMouseup,
28943
+ "onPointerdown": onUpControlMousedown,
28879
28944
  "size": controlNodeSize.value,
28880
28945
  "tabindex": "-1"
28881
28946
  }, null) : vue.createVNode(VDefaultsProvider, {
@@ -28904,8 +28969,9 @@
28904
28969
  "icon": decrementIcon.value,
28905
28970
  "size": controlNodeSize.value,
28906
28971
  "tabindex": "-1",
28907
- "onClick": onClickDown,
28908
- "onMousedown": onControlMousedown
28972
+ "onClick": onControlClick,
28973
+ "onPointerup": onControlMouseup,
28974
+ "onPointerdown": onDownControlMousedown
28909
28975
  }, null) : vue.createVNode(VDefaultsProvider, {
28910
28976
  "key": "decrement-defaults",
28911
28977
  "defaults": {
@@ -28949,6 +29015,7 @@
28949
29015
  "ref": vTextFieldRef,
28950
29016
  "modelValue": inputText.value,
28951
29017
  "onUpdate:modelValue": $event => inputText.value = $event,
29018
+ "validationValue": model.value,
28952
29019
  "onBeforeinput": onBeforeinput,
28953
29020
  "onFocus": onFocus,
28954
29021
  "onBlur": onBlur,
@@ -30133,7 +30200,6 @@
30133
30200
 
30134
30201
  const makeVTreeviewItemProps = propsFactory({
30135
30202
  loading: Boolean,
30136
- onToggleExpand: EventProp(),
30137
30203
  toggleIcon: IconValue,
30138
30204
  ...makeVListItemProps({
30139
30205
  slim: true
@@ -30142,9 +30208,13 @@
30142
30208
  const VTreeviewItem = genericComponent()({
30143
30209
  name: 'VTreeviewItem',
30144
30210
  props: makeVTreeviewItemProps(),
30211
+ emits: {
30212
+ toggleExpand: value => true
30213
+ },
30145
30214
  setup(props, _ref) {
30146
30215
  let {
30147
- slots
30216
+ slots,
30217
+ emit
30148
30218
  } = _ref;
30149
30219
  const visibleIds = vue.inject(VTreeviewSymbol, {
30150
30220
  visibleIds: vue.ref()
@@ -30159,6 +30229,10 @@
30159
30229
  vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
30160
30230
  }
30161
30231
  }
30232
+ function onClickAction(e) {
30233
+ e.preventDefault();
30234
+ emit('toggleExpand', e);
30235
+ }
30162
30236
  useRender(() => {
30163
30237
  const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
30164
30238
  const hasPrepend = slots.prepend || props.toggleIcon;
@@ -30183,7 +30257,7 @@
30183
30257
  "icon": props.toggleIcon,
30184
30258
  "loading": props.loading,
30185
30259
  "variant": "text",
30186
- "onClick": props.onToggleExpand
30260
+ "onClick": onClickAction
30187
30261
  }, {
30188
30262
  loader() {
30189
30263
  return vue.createVNode(VProgressCircular, {
@@ -30978,7 +31052,7 @@
30978
31052
  goTo
30979
31053
  };
30980
31054
  }
30981
- const version$1 = "3.7.14";
31055
+ const version$1 = "3.7.15";
30982
31056
  createVuetify$1.version = version$1;
30983
31057
 
30984
31058
  // Vue's inject() can only be used in setup
@@ -31231,7 +31305,7 @@
31231
31305
 
31232
31306
  /* eslint-disable local-rules/sort-imports */
31233
31307
 
31234
- const version = "3.7.14";
31308
+ const version = "3.7.15";
31235
31309
 
31236
31310
  /* eslint-disable local-rules/sort-imports */
31237
31311