@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
@@ -71161,7 +71161,7 @@ declare const VFileUploadItem: {
71161
71161
  type VFileUploadItem = InstanceType<typeof VFileUploadItem>;
71162
71162
 
71163
71163
  type ControlSlot = {
71164
- click: (e: MouseEvent) => void;
71164
+ props: Record<string, unknown>;
71165
71165
  };
71166
71166
  type ControlVariant = 'default' | 'stacked' | 'split' | 'hidden';
71167
71167
  declare const VNumberInput: {
@@ -82073,7 +82073,6 @@ declare const VTreeviewItem: {
82073
82073
  prependAvatar?: string | undefined;
82074
82074
  subtitle?: string | number | undefined;
82075
82075
  toggleIcon?: IconValue | undefined;
82076
- onToggleExpand?: ((args_0: MouseEvent) => void) | undefined;
82077
82076
  } & {
82078
82077
  $children?: vue.VNodeChild | {
82079
82078
  prepend?: ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
@@ -82095,7 +82094,11 @@ declare const VTreeviewItem: {
82095
82094
  "v-slot:default"?: false | ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
82096
82095
  "v-slot:title"?: false | ((arg: ListItemTitleSlot) => vue.VNodeChild) | undefined;
82097
82096
  "v-slot:subtitle"?: false | ((arg: ListItemSubtitleSlot) => vue.VNodeChild) | undefined;
82098
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
82097
+ } & {
82098
+ onToggleExpand?: ((value: PointerEvent) => any) | undefined;
82099
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
82100
+ toggleExpand: (value: PointerEvent) => true;
82101
+ }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
82099
82102
  replace: boolean;
82100
82103
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
82101
82104
  exact: boolean;
@@ -82141,7 +82144,6 @@ declare const VTreeviewItem: {
82141
82144
  prependAvatar?: string | undefined;
82142
82145
  subtitle?: string | number | undefined;
82143
82146
  toggleIcon?: IconValue | undefined;
82144
- onToggleExpand?: ((args_0: MouseEvent) => void) | undefined;
82145
82147
  } & {
82146
82148
  $children?: vue.VNodeChild | {
82147
82149
  prepend?: ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
@@ -82163,6 +82165,8 @@ declare const VTreeviewItem: {
82163
82165
  "v-slot:default"?: false | ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
82164
82166
  "v-slot:title"?: false | ((arg: ListItemTitleSlot) => vue.VNodeChild) | undefined;
82165
82167
  "v-slot:subtitle"?: false | ((arg: ListItemSubtitleSlot) => vue.VNodeChild) | undefined;
82168
+ } & {
82169
+ onToggleExpand?: ((value: PointerEvent) => any) | undefined;
82166
82170
  }, {
82167
82171
  replace: boolean;
82168
82172
  link: boolean;
@@ -82240,7 +82244,6 @@ declare const VTreeviewItem: {
82240
82244
  prependAvatar?: string | undefined;
82241
82245
  subtitle?: string | number | undefined;
82242
82246
  toggleIcon?: IconValue | undefined;
82243
- onToggleExpand?: ((args_0: MouseEvent) => void) | undefined;
82244
82247
  } & {
82245
82248
  $children?: vue.VNodeChild | {
82246
82249
  prepend?: ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
@@ -82262,6 +82265,8 @@ declare const VTreeviewItem: {
82262
82265
  "v-slot:default"?: false | ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
82263
82266
  "v-slot:title"?: false | ((arg: ListItemTitleSlot) => vue.VNodeChild) | undefined;
82264
82267
  "v-slot:subtitle"?: false | ((arg: ListItemSubtitleSlot) => vue.VNodeChild) | undefined;
82268
+ } & {
82269
+ onToggleExpand?: ((value: PointerEvent) => any) | undefined;
82265
82270
  }, {}, {}, {}, {}, {
82266
82271
  replace: boolean;
82267
82272
  link: boolean;
@@ -82330,7 +82335,6 @@ declare const VTreeviewItem: {
82330
82335
  prependAvatar?: string | undefined;
82331
82336
  subtitle?: string | number | undefined;
82332
82337
  toggleIcon?: IconValue | undefined;
82333
- onToggleExpand?: ((args_0: MouseEvent) => void) | undefined;
82334
82338
  } & {
82335
82339
  $children?: vue.VNodeChild | {
82336
82340
  prepend?: ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
@@ -82352,7 +82356,11 @@ declare const VTreeviewItem: {
82352
82356
  "v-slot:default"?: false | ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
82353
82357
  "v-slot:title"?: false | ((arg: ListItemTitleSlot) => vue.VNodeChild) | undefined;
82354
82358
  "v-slot:subtitle"?: false | ((arg: ListItemSubtitleSlot) => vue.VNodeChild) | undefined;
82355
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
82359
+ } & {
82360
+ onToggleExpand?: ((value: PointerEvent) => any) | undefined;
82361
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
82362
+ toggleExpand: (value: PointerEvent) => true;
82363
+ }, string, {
82356
82364
  replace: boolean;
82357
82365
  link: boolean;
82358
82366
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
@@ -82453,7 +82461,6 @@ declare const VTreeviewItem: {
82453
82461
  onClick: vue.PropType<(args_0: MouseEvent | KeyboardEvent) => void>;
82454
82462
  onClickOnce: vue.PropType<(args_0: MouseEvent) => void>;
82455
82463
  loading: BooleanConstructor;
82456
- onToggleExpand: vue.PropType<(args_0: MouseEvent) => void>;
82457
82464
  toggleIcon: vue.PropType<IconValue>;
82458
82465
  }, vue.ExtractPropTypes<{
82459
82466
  color: StringConstructor;
@@ -82532,7 +82539,6 @@ declare const VTreeviewItem: {
82532
82539
  onClick: vue.PropType<(args_0: MouseEvent | KeyboardEvent) => void>;
82533
82540
  onClickOnce: vue.PropType<(args_0: MouseEvent) => void>;
82534
82541
  loading: BooleanConstructor;
82535
- onToggleExpand: vue.PropType<(args_0: MouseEvent) => void>;
82536
82542
  toggleIcon: vue.PropType<IconValue>;
82537
82543
  }>>;
82538
82544
  type VTreeviewItem = InstanceType<typeof VTreeviewItem>;
@@ -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
  */
@@ -9056,6 +9056,8 @@ const VListItem = genericComponent()({
9056
9056
  }
9057
9057
  }
9058
9058
  function onKeyDown(e) {
9059
+ const target = e.target;
9060
+ if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
9059
9061
  if (e.key === 'Enter' || e.key === ' ') {
9060
9062
  e.preventDefault();
9061
9063
  e.target.dispatchEvent(new MouseEvent('click', e));
@@ -15681,6 +15683,7 @@ const useSlider = _ref => {
15681
15683
  });
15682
15684
  }
15683
15685
  function onSliderMousedown(e) {
15686
+ if (e.button !== 0) return;
15684
15687
  e.preventDefault();
15685
15688
  handleStart(e);
15686
15689
  window.addEventListener('mousemove', onMouseMove, moveListenerOptions);
@@ -28654,6 +28657,36 @@ const VFileUpload = genericComponent()({
28654
28657
  }
28655
28658
  });
28656
28659
 
28660
+ // Utilities
28661
+ const HOLD_REPEAT = 50;
28662
+ const HOLD_DELAY = 500;
28663
+ function useHold(_ref) {
28664
+ let {
28665
+ toggleUpDown
28666
+ } = _ref;
28667
+ let timeout = -1;
28668
+ let interval = -1;
28669
+ onScopeDispose(holdStop);
28670
+ function holdStart(value) {
28671
+ holdStop();
28672
+ tick(value);
28673
+ timeout = window.setTimeout(() => {
28674
+ interval = window.setInterval(() => tick(value), HOLD_REPEAT);
28675
+ }, HOLD_DELAY);
28676
+ }
28677
+ function holdStop() {
28678
+ window.clearTimeout(timeout);
28679
+ window.clearInterval(interval);
28680
+ }
28681
+ function tick(value) {
28682
+ toggleUpDown(value === 'up');
28683
+ }
28684
+ return {
28685
+ holdStart,
28686
+ holdStop
28687
+ };
28688
+ }
28689
+
28657
28690
  // Types
28658
28691
 
28659
28692
  const makeVNumberInputProps = propsFactory({
@@ -28698,9 +28731,19 @@ const VNumberInput = genericComponent()({
28698
28731
  slots
28699
28732
  } = _ref;
28700
28733
  const vTextFieldRef = ref();
28734
+ const {
28735
+ holdStart,
28736
+ holdStop
28737
+ } = useHold({
28738
+ toggleUpDown
28739
+ });
28701
28740
  const form = useForm(props);
28702
28741
  const controlsDisabled = computed(() => form.isDisabled.value || form.isReadonly.value);
28703
- const isFocused = ref(false);
28742
+ const {
28743
+ isFocused,
28744
+ focus,
28745
+ blur
28746
+ } = useFocus(props);
28704
28747
  function correctPrecision(val) {
28705
28748
  let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
28706
28749
  const fixed = precision == null ? String(val) : val.toFixed(precision);
@@ -28744,10 +28787,18 @@ const VNumberInput = genericComponent()({
28744
28787
  const controlNodeSize = computed(() => controlVariant.value === 'split' ? 'default' : 'small');
28745
28788
  const controlNodeDefaultHeight = computed(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
28746
28789
  const incrementSlotProps = computed(() => ({
28747
- click: onClickUp
28790
+ props: {
28791
+ onClick: onControlClick,
28792
+ onPointerup: onControlMouseup,
28793
+ onPointerdown: onUpControlMousedown
28794
+ }
28748
28795
  }));
28749
28796
  const decrementSlotProps = computed(() => ({
28750
- click: onClickDown
28797
+ props: {
28798
+ onClick: onControlClick,
28799
+ onPointerup: onControlMouseup,
28800
+ onPointerdown: onDownControlMousedown
28801
+ }
28751
28802
  }));
28752
28803
  watch(() => props.precision, () => formatInputValue());
28753
28804
  onMounted(() => {
@@ -28774,14 +28825,6 @@ const VNumberInput = genericComponent()({
28774
28825
  if (canDecrease.value) inputText.value = correctPrecision(model.value - props.step, inferredPrecision);
28775
28826
  }
28776
28827
  }
28777
- function onClickUp(e) {
28778
- e.stopPropagation();
28779
- toggleUpDown();
28780
- }
28781
- function onClickDown(e) {
28782
- e.stopPropagation();
28783
- toggleUpDown(false);
28784
- }
28785
28828
  function onBeforeinput(e) {
28786
28829
  if (!e.data) return;
28787
28830
  const existingTxt = e.target?.value;
@@ -28819,8 +28862,29 @@ const VNumberInput = genericComponent()({
28819
28862
  }
28820
28863
  }
28821
28864
  }
28822
- function onControlMousedown(e) {
28865
+ function onControlClick(e) {
28866
+ e.stopPropagation();
28867
+ }
28868
+ function onControlMouseup(e) {
28869
+ const el = e.currentTarget;
28870
+ el?.releasePointerCapture(e.pointerId);
28871
+ e.preventDefault();
28872
+ e.stopPropagation();
28873
+ holdStop();
28874
+ }
28875
+ function onUpControlMousedown(e) {
28876
+ const el = e.currentTarget;
28877
+ el?.setPointerCapture(e.pointerId);
28878
+ e.preventDefault();
28879
+ e.stopPropagation();
28880
+ holdStart('up');
28881
+ }
28882
+ function onDownControlMousedown(e) {
28883
+ const el = e.currentTarget;
28884
+ el?.setPointerCapture(e.pointerId);
28885
+ e.preventDefault();
28823
28886
  e.stopPropagation();
28887
+ holdStart('down');
28824
28888
  }
28825
28889
  function clampModel() {
28826
28890
  if (controlsDisabled.value) return;
@@ -28849,11 +28913,11 @@ const VNumberInput = genericComponent()({
28849
28913
  inputText.value = model.value.toString();
28850
28914
  }
28851
28915
  function onFocus() {
28852
- isFocused.value = true;
28916
+ focus();
28853
28917
  trimDecimalZeros();
28854
28918
  }
28855
28919
  function onBlur() {
28856
- isFocused.value = false;
28920
+ blur();
28857
28921
  clampModel();
28858
28922
  }
28859
28923
  useRender(() => {
@@ -28870,8 +28934,9 @@ const VNumberInput = genericComponent()({
28870
28934
  "data-testid": "increment",
28871
28935
  "aria-hidden": "true",
28872
28936
  "icon": incrementIcon.value,
28873
- "onClick": onClickUp,
28874
- "onMousedown": onControlMousedown,
28937
+ "onClick": onControlClick,
28938
+ "onPointerup": onControlMouseup,
28939
+ "onPointerdown": onUpControlMousedown,
28875
28940
  "size": controlNodeSize.value,
28876
28941
  "tabindex": "-1"
28877
28942
  }, null) : createVNode(VDefaultsProvider, {
@@ -28900,8 +28965,9 @@ const VNumberInput = genericComponent()({
28900
28965
  "icon": decrementIcon.value,
28901
28966
  "size": controlNodeSize.value,
28902
28967
  "tabindex": "-1",
28903
- "onClick": onClickDown,
28904
- "onMousedown": onControlMousedown
28968
+ "onClick": onControlClick,
28969
+ "onPointerup": onControlMouseup,
28970
+ "onPointerdown": onDownControlMousedown
28905
28971
  }, null) : createVNode(VDefaultsProvider, {
28906
28972
  "key": "decrement-defaults",
28907
28973
  "defaults": {
@@ -30130,7 +30196,6 @@ const VTreeviewSymbol = Symbol.for('vuetify:v-treeview');
30130
30196
 
30131
30197
  const makeVTreeviewItemProps = propsFactory({
30132
30198
  loading: Boolean,
30133
- onToggleExpand: EventProp(),
30134
30199
  toggleIcon: IconValue,
30135
30200
  ...makeVListItemProps({
30136
30201
  slim: true
@@ -30139,9 +30204,13 @@ const makeVTreeviewItemProps = propsFactory({
30139
30204
  const VTreeviewItem = genericComponent()({
30140
30205
  name: 'VTreeviewItem',
30141
30206
  props: makeVTreeviewItemProps(),
30207
+ emits: {
30208
+ toggleExpand: value => true
30209
+ },
30142
30210
  setup(props, _ref) {
30143
30211
  let {
30144
- slots
30212
+ slots,
30213
+ emit
30145
30214
  } = _ref;
30146
30215
  const visibleIds = inject$1(VTreeviewSymbol, {
30147
30216
  visibleIds: ref()
@@ -30156,6 +30225,10 @@ const VTreeviewItem = genericComponent()({
30156
30225
  vListItemRef.value?.activate(!vListItemRef.value?.isActivated, e);
30157
30226
  }
30158
30227
  }
30228
+ function onClickAction(e) {
30229
+ e.preventDefault();
30230
+ emit('toggleExpand', e);
30231
+ }
30159
30232
  useRender(() => {
30160
30233
  const listItemProps = omit(VListItem.filterProps(props), ['onClick']);
30161
30234
  const hasPrepend = slots.prepend || props.toggleIcon;
@@ -30180,7 +30253,7 @@ const VTreeviewItem = genericComponent()({
30180
30253
  "icon": props.toggleIcon,
30181
30254
  "loading": props.loading,
30182
30255
  "variant": "text",
30183
- "onClick": props.onToggleExpand
30256
+ "onClick": onClickAction
30184
30257
  }, {
30185
30258
  loader() {
30186
30259
  return createVNode(VProgressCircular, {
@@ -30975,7 +31048,7 @@ function createVuetify$1() {
30975
31048
  goTo
30976
31049
  };
30977
31050
  }
30978
- const version$1 = "3.7.14-master.2025-02-26";
31051
+ const version$1 = "3.7.14-master.2025-02-28";
30979
31052
  createVuetify$1.version = version$1;
30980
31053
 
30981
31054
  // Vue's inject() can only be used in setup
@@ -31228,7 +31301,7 @@ var index = /*#__PURE__*/Object.freeze({
31228
31301
 
31229
31302
  /* eslint-disable local-rules/sort-imports */
31230
31303
 
31231
- const version = "3.7.14-master.2025-02-26";
31304
+ const version = "3.7.14-master.2025-02-28";
31232
31305
 
31233
31306
  /* eslint-disable local-rules/sort-imports */
31234
31307