@vuetify/nightly 3.7.14-master.2025-02-26 → 3.7.14-master.2025-02-28

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 (37) hide show
  1. package/CHANGELOG.md +15 -3
  2. package/dist/json/attributes.json +2592 -2592
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +166 -166
  5. package/dist/json/web-types.json +4878 -4878
  6. package/dist/vuetify-labs.css +5270 -5270
  7. package/dist/vuetify-labs.d.ts +15 -9
  8. package/dist/vuetify-labs.esm.js +97 -24
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +97 -24
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +4070 -4070
  13. package/dist/vuetify.d.ts +55 -55
  14. package/dist/vuetify.esm.js +6 -3
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +6 -3
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +5 -5
  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/VSlider/slider.mjs +1 -0
  24. package/lib/components/VSlider/slider.mjs.map +1 -1
  25. package/lib/entry-bundler.mjs +1 -1
  26. package/lib/framework.mjs +1 -1
  27. package/lib/index.d.mts +55 -55
  28. package/lib/labs/VNumberInput/VNumberInput.mjs +53 -18
  29. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  30. package/lib/labs/VNumberInput/hold.mjs +31 -0
  31. package/lib/labs/VNumberInput/hold.mjs.map +1 -0
  32. package/lib/labs/VNumberInput/index.d.mts +1 -1
  33. package/lib/labs/VTreeview/VTreeviewItem.mjs +11 -4
  34. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  35. package/lib/labs/VTreeview/index.d.mts +14 -8
  36. package/lib/labs/components.d.mts +15 -9
  37. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.14-master.2025-02-26
2
+ * Vuetify v3.7.14-master.2025-02-28
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);
@@ -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({
@@ -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": {
@@ -30134,7 +30200,6 @@
30134
30200
 
30135
30201
  const makeVTreeviewItemProps = propsFactory({
30136
30202
  loading: Boolean,
30137
- onToggleExpand: EventProp(),
30138
30203
  toggleIcon: IconValue,
30139
30204
  ...makeVListItemProps({
30140
30205
  slim: true
@@ -30143,9 +30208,13 @@
30143
30208
  const VTreeviewItem = genericComponent()({
30144
30209
  name: 'VTreeviewItem',
30145
30210
  props: makeVTreeviewItemProps(),
30211
+ emits: {
30212
+ toggleExpand: value => true
30213
+ },
30146
30214
  setup(props, _ref) {
30147
30215
  let {
30148
- slots
30216
+ slots,
30217
+ emit
30149
30218
  } = _ref;
30150
30219
  const visibleIds = vue.inject(VTreeviewSymbol, {
30151
30220
  visibleIds: vue.ref()
@@ -30160,6 +30229,10 @@
30160
30229
  vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
30161
30230
  }
30162
30231
  }
30232
+ function onClickAction(e) {
30233
+ e.preventDefault();
30234
+ emit('toggleExpand', e);
30235
+ }
30163
30236
  useRender(() => {
30164
30237
  const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
30165
30238
  const hasPrepend = slots.prepend || props.toggleIcon;
@@ -30184,7 +30257,7 @@
30184
30257
  "icon": props.toggleIcon,
30185
30258
  "loading": props.loading,
30186
30259
  "variant": "text",
30187
- "onClick": props.onToggleExpand
30260
+ "onClick": onClickAction
30188
30261
  }, {
30189
30262
  loader() {
30190
30263
  return vue.createVNode(VProgressCircular, {
@@ -30979,7 +31052,7 @@
30979
31052
  goTo
30980
31053
  };
30981
31054
  }
30982
- const version$1 = "3.7.14-master.2025-02-26";
31055
+ const version$1 = "3.7.14-master.2025-02-28";
30983
31056
  createVuetify$1.version = version$1;
30984
31057
 
30985
31058
  // Vue's inject() can only be used in setup
@@ -31232,7 +31305,7 @@
31232
31305
 
31233
31306
  /* eslint-disable local-rules/sort-imports */
31234
31307
 
31235
- const version = "3.7.14-master.2025-02-26";
31308
+ const version = "3.7.14-master.2025-02-28";
31236
31309
 
31237
31310
  /* eslint-disable local-rules/sort-imports */
31238
31311