@vuetify/nightly 3.8.9-master.2025-06-12 → 3.8.9-master.2025-06-13

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 (43) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/dist/json/attributes.json +3537 -3537
  3. package/dist/json/importMap-labs.json +28 -28
  4. package/dist/json/importMap.json +164 -164
  5. package/dist/json/web-types.json +6485 -6485
  6. package/dist/vuetify-labs.cjs +43 -22
  7. package/dist/vuetify-labs.css +4940 -4940
  8. package/dist/vuetify-labs.d.ts +61 -61
  9. package/dist/vuetify-labs.esm.js +43 -22
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +43 -22
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +41 -22
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3520 -3520
  16. package/dist/vuetify.d.ts +61 -61
  17. package/dist/vuetify.esm.js +41 -22
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +41 -22
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +19 -17
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDatePicker/VDatePicker.js +19 -13
  25. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  26. package/lib/components/VDatePicker/VDatePickerYears.js +1 -3
  27. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  28. package/lib/components/VField/VField.js +10 -2
  29. package/lib/components/VField/VField.js.map +1 -1
  30. package/lib/composables/hotkey.d.ts +9 -0
  31. package/lib/composables/hotkey.js +131 -0
  32. package/lib/composables/hotkey.js.map +1 -0
  33. package/lib/composables/transition.js +3 -3
  34. package/lib/composables/transition.js.map +1 -1
  35. package/lib/entry-bundler.js +1 -1
  36. package/lib/framework.d.ts +61 -61
  37. package/lib/framework.js +1 -1
  38. package/lib/labs/VTimePicker/VTimePickerClock.js +3 -1
  39. package/lib/labs/VTimePicker/VTimePickerClock.js.map +1 -1
  40. package/lib/util/helpers.d.ts +3 -0
  41. package/lib/util/helpers.js +7 -0
  42. package/lib/util/helpers.js.map +1 -1
  43. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.9-master.2025-06-12
2
+ * Vuetify v3.8.9-master.2025-06-13
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -613,6 +613,13 @@
613
613
  }
614
614
  return out;
615
615
  }
616
+ function onlyDefinedProps(props) {
617
+ const booleanAttributes = ['checked', 'disabled'];
618
+ return Object.fromEntries(Object.entries(props).filter(_ref => {
619
+ let [key, v] = _ref;
620
+ return booleanAttributes.includes(key) ? !!v : v !== undefined;
621
+ }));
622
+ }
616
623
 
617
624
  // Utilities
618
625
  const block = ['top', 'bottom'];
@@ -3325,10 +3332,10 @@
3325
3332
  } = isObject(transition) ? transition : {};
3326
3333
  let transitionProps;
3327
3334
  if (isObject(transition)) {
3328
- transitionProps = vue.mergeProps(customProps, JSON.parse(JSON.stringify({
3335
+ transitionProps = vue.mergeProps(customProps, onlyDefinedProps({
3329
3336
  disabled,
3330
3337
  group
3331
- })), rest);
3338
+ }), rest);
3332
3339
  } else {
3333
3340
  transitionProps = vue.mergeProps({
3334
3341
  name: disabled || !transition ? '' : transition
@@ -11949,7 +11956,11 @@
11949
11956
  default: slots.loader
11950
11957
  }), hasPrepend && vue.createElementVNode("div", {
11951
11958
  "key": "prepend",
11952
- "class": "v-field__prepend-inner"
11959
+ "class": "v-field__prepend-inner",
11960
+ "onMousedown": e => {
11961
+ e.preventDefault();
11962
+ e.stopPropagation();
11963
+ }
11953
11964
  }, [props.prependInnerIcon && vue.createVNode(InputIcon, {
11954
11965
  "key": "prepend-icon",
11955
11966
  "name": "prependInner",
@@ -12018,7 +12029,11 @@
12018
12029
  })]), [[vue.vShow, props.dirty]])]
12019
12030
  }), hasAppend && vue.createElementVNode("div", {
12020
12031
  "key": "append",
12021
- "class": "v-field__append-inner"
12032
+ "class": "v-field__append-inner",
12033
+ "onMousedown": e => {
12034
+ e.preventDefault();
12035
+ e.stopPropagation();
12036
+ }
12022
12037
  }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && vue.createVNode(InputIcon, {
12023
12038
  "key": "append-icon",
12024
12039
  "name": "appendInner",
@@ -22477,9 +22492,7 @@
22477
22492
  const yearRef = templateRef();
22478
22493
  vue.onMounted(async () => {
22479
22494
  await vue.nextTick();
22480
- yearRef.el?.scrollIntoView({
22481
- block: 'center'
22482
- });
22495
+ yearRef.el?.focus();
22483
22496
  });
22484
22497
  function isYearAllowed(year) {
22485
22498
  if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
@@ -22615,8 +22628,16 @@
22615
22628
  return value && adapter.isValid(value) ? value : today;
22616
22629
  });
22617
22630
  const headerColor = vue.toRef(() => props.headerColor ?? props.color);
22618
- const month = vue.ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))));
22619
- const year = vue.ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))));
22631
+ const _month = useProxiedModel(props, 'month');
22632
+ const month = vue.computed({
22633
+ get: () => Number(_month.value ?? adapter.getMonth(adapter.startOfMonth(internal.value))),
22634
+ set: v => _month.value = v
22635
+ });
22636
+ const _year = useProxiedModel(props, 'year');
22637
+ const year = vue.computed({
22638
+ get: () => Number(_year.value ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))),
22639
+ set: v => _year.value = v
22640
+ });
22620
22641
  const isReversing = vue.shallowRef(false);
22621
22642
  const header = vue.computed(() => {
22622
22643
  if (props.multiple && model.value.length > 1) {
@@ -22700,9 +22721,9 @@
22700
22721
  } else {
22701
22722
  year.value++;
22702
22723
  month.value = 0;
22703
- onUpdateYear(year.value);
22724
+ onUpdateYear();
22704
22725
  }
22705
- onUpdateMonth(month.value);
22726
+ onUpdateMonth();
22706
22727
  }
22707
22728
  function onClickPrev() {
22708
22729
  if (month.value > 0) {
@@ -22710,9 +22731,9 @@
22710
22731
  } else {
22711
22732
  year.value--;
22712
22733
  month.value = 11;
22713
- onUpdateYear(year.value);
22734
+ onUpdateYear();
22714
22735
  }
22715
- onUpdateMonth(month.value);
22736
+ onUpdateMonth();
22716
22737
  }
22717
22738
  function onClickDate() {
22718
22739
  viewMode.value = 'month';
@@ -22723,13 +22744,11 @@
22723
22744
  function onClickYear() {
22724
22745
  viewMode.value = viewMode.value === 'year' ? 'month' : 'year';
22725
22746
  }
22726
- function onUpdateMonth(value) {
22747
+ function onUpdateMonth() {
22727
22748
  if (viewMode.value === 'months') onClickMonth();
22728
- emit('update:month', value);
22729
22749
  }
22730
- function onUpdateYear(value) {
22750
+ function onUpdateYear() {
22731
22751
  if (viewMode.value === 'year') onClickYear();
22732
- emit('update:year', value);
22733
22752
  }
22734
22753
  vue.watch(model, (val, oldVal) => {
22735
22754
  const arrBefore = wrapInArray(oldVal);
@@ -22741,11 +22760,11 @@
22741
22760
  const newYear = adapter.getYear(after);
22742
22761
  if (newMonth !== month.value) {
22743
22762
  month.value = newMonth;
22744
- onUpdateMonth(month.value);
22763
+ onUpdateMonth();
22745
22764
  }
22746
22765
  if (newYear !== year.value) {
22747
22766
  year.value = newYear;
22748
- onUpdateYear(year.value);
22767
+ onUpdateYear();
22749
22768
  }
22750
22769
  isReversing.value = adapter.isBefore(before, after);
22751
22770
  });
@@ -30675,6 +30694,7 @@
30675
30694
  const isDragging = vue.ref(false);
30676
30695
  const valueOnMouseDown = vue.ref(null);
30677
30696
  const valueOnMouseUp = vue.ref(null);
30697
+ const emitChangeDebounced = debounce(value => emit('change', value), 750);
30678
30698
  const {
30679
30699
  textColorClasses,
30680
30700
  textColorStyles
@@ -30720,6 +30740,7 @@
30720
30740
  if (value !== props.displayedValue) {
30721
30741
  update(value);
30722
30742
  }
30743
+ emitChangeDebounced(value);
30723
30744
  }
30724
30745
  function isInner(value) {
30725
30746
  return props.double && value - props.min >= roundCount.value;
@@ -32153,7 +32174,7 @@
32153
32174
  };
32154
32175
  });
32155
32176
  }
32156
- const version$1 = "3.8.9-master.2025-06-12";
32177
+ const version$1 = "3.8.9-master.2025-06-13";
32157
32178
  createVuetify$1.version = version$1;
32158
32179
 
32159
32180
  // Vue's inject() can only be used in setup
@@ -32451,7 +32472,7 @@
32451
32472
 
32452
32473
  /* eslint-disable local-rules/sort-imports */
32453
32474
 
32454
- const version = "3.8.9-master.2025-06-12";
32475
+ const version = "3.8.9-master.2025-06-13";
32455
32476
 
32456
32477
  /* eslint-disable local-rules/sort-imports */
32457
32478