@vuetify/nightly 3.8.5-master.2025-05-20 → 3.8.6-master.2025-05-21

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 (57) hide show
  1. package/CHANGELOG.md +10 -15
  2. package/dist/json/attributes.json +3366 -3382
  3. package/dist/json/importMap-labs.json +26 -26
  4. package/dist/json/importMap.json +162 -162
  5. package/dist/json/tags.json +0 -4
  6. package/dist/json/web-types.json +6264 -6300
  7. package/dist/vuetify-labs.cjs +67 -31
  8. package/dist/vuetify-labs.css +4385 -4385
  9. package/dist/vuetify-labs.d.ts +63 -83
  10. package/dist/vuetify-labs.esm.js +67 -31
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +67 -31
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +67 -31
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +1780 -1780
  17. package/dist/vuetify.d.ts +63 -73
  18. package/dist/vuetify.esm.js +67 -31
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +67 -31
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +37 -34
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VDatePicker/VDatePicker.d.ts +0 -10
  26. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +0 -10
  27. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
  28. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  29. package/lib/components/VNavigationDrawer/touch.js +2 -4
  30. package/lib/components/VNavigationDrawer/touch.js.map +1 -1
  31. package/lib/components/VNumberInput/VNumberInput.js +18 -10
  32. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  33. package/lib/components/VProgressCircular/VProgressCircular.js +2 -2
  34. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  35. package/lib/components/VSelect/VSelect.js +36 -7
  36. package/lib/components/VSelect/VSelect.js.map +1 -1
  37. package/lib/components/VSlider/slider.js +1 -1
  38. package/lib/components/VSlider/slider.js.map +1 -1
  39. package/lib/composables/calendar.d.ts +0 -5
  40. package/lib/composables/calendar.js +1 -2
  41. package/lib/composables/calendar.js.map +1 -1
  42. package/lib/composables/date/DateAdapter.d.ts +1 -1
  43. package/lib/composables/date/DateAdapter.js.map +1 -1
  44. package/lib/composables/date/adapters/vuetify.d.ts +1 -1
  45. package/lib/composables/date/adapters/vuetify.js +4 -4
  46. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  47. package/lib/composables/date/date.d.ts +1 -1
  48. package/lib/composables/goto.js +1 -1
  49. package/lib/composables/goto.js.map +1 -1
  50. package/lib/entry-bundler.d.ts +1 -1
  51. package/lib/entry-bundler.js +1 -1
  52. package/lib/framework.d.ts +63 -63
  53. package/lib/framework.js +1 -1
  54. package/lib/labs/VCalendar/VCalendar.d.ts +0 -10
  55. package/lib/labs/VDateInput/VDateInput.d.ts +0 -10
  56. package/lib/labs/entry-bundler.d.ts +1 -1
  57. package/package.json +5 -5
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.5-master.2025-05-20
2
+ * Vuetify v3.8.6-master.2025-05-21
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -4859,7 +4859,7 @@
4859
4859
  resizeRef,
4860
4860
  contentRect
4861
4861
  } = useResizeObserver();
4862
- const normalizedValue = vue.toRef(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
4862
+ const normalizedValue = vue.toRef(() => clamp(parseFloat(props.modelValue), 0, 100));
4863
4863
  const width = vue.toRef(() => Number(props.width));
4864
4864
  const size = vue.toRef(() => {
4865
4865
  // Get size from element if size prop value is small, large etc
@@ -7466,7 +7466,7 @@
7466
7466
  min = 0;
7467
7467
  max = scrollHeight + -containerHeight;
7468
7468
  }
7469
- return Math.max(Math.min(value, max), min);
7469
+ return clamp(value, min, max);
7470
7470
  }
7471
7471
 
7472
7472
  function calculateUpdatedTarget(_ref) {
@@ -12743,6 +12743,7 @@
12743
12743
  const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
12744
12744
  const isFocused = vue.shallowRef(false);
12745
12745
  let keyboardLookupPrefix = '';
12746
+ let keyboardLookupIndex = -1;
12746
12747
  let keyboardLookupLastTime;
12747
12748
  const displayItems = vue.computed(() => {
12748
12749
  if (props.hideSelected) {
@@ -12810,18 +12811,46 @@
12810
12811
  const now = performance.now();
12811
12812
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
12812
12813
  keyboardLookupPrefix = '';
12814
+ keyboardLookupIndex = -1;
12813
12815
  }
12814
12816
  keyboardLookupPrefix += e.key.toLowerCase();
12815
12817
  keyboardLookupLastTime = now;
12816
- const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
12817
- if (item !== undefined) {
12818
- if (!props.multiple) {
12819
- model.value = [item];
12818
+ const items = displayItems.value;
12819
+ function findItem() {
12820
+ let result = findItemBase();
12821
+ if (result) return result;
12822
+ if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {
12823
+ // No matches but we have a repeated letter, try the next item with that prefix
12824
+ keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1);
12825
+ result = findItemBase();
12826
+ if (result) return result;
12820
12827
  }
12821
- const index = displayItems.value.indexOf(item);
12822
- if (~index && IN_BROWSER) {
12823
- listRef.value?.focus(index);
12828
+
12829
+ // Still nothing, wrap around to the top
12830
+ keyboardLookupIndex = -1;
12831
+ result = findItemBase();
12832
+ if (result) return result;
12833
+
12834
+ // Still nothing, try just the new letter
12835
+ keyboardLookupPrefix = e.key.toLowerCase();
12836
+ return findItemBase();
12837
+ }
12838
+ function findItemBase() {
12839
+ for (let i = keyboardLookupIndex + 1; i < items.length; i++) {
12840
+ const _item = items[i];
12841
+ if (_item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {
12842
+ return [_item, i];
12843
+ }
12824
12844
  }
12845
+ return undefined;
12846
+ }
12847
+ const result = findItem();
12848
+ if (!result) return;
12849
+ const [item, index] = result;
12850
+ keyboardLookupIndex = index;
12851
+ listRef.value?.focus(index);
12852
+ if (!props.multiple) {
12853
+ model.value = [item];
12825
12854
  }
12826
12855
  }
12827
12856
 
@@ -15865,7 +15894,7 @@
15865
15894
  const clickOffset = getPosition(e, position);
15866
15895
 
15867
15896
  // It is possible for left to be NaN, force to number
15868
- let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;
15897
+ let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0;
15869
15898
  if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;
15870
15899
  return roundValue(min.value + clickPos * (max.value - min.value));
15871
15900
  }
@@ -17163,13 +17192,13 @@
17163
17192
  return null;
17164
17193
  }
17165
17194
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17166
- function getWeekdays(locale, firstDayOfWeek, weekdayFormat) {
17195
+ function getWeekdays(locale, firstDayOfWeek) {
17167
17196
  const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17168
17197
  return createRange(7).map(i => {
17169
17198
  const weekday = new Date(sundayJanuarySecond2000);
17170
17199
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
17171
17200
  return new Intl.DateTimeFormat(locale, {
17172
- weekday: weekdayFormat ?? 'narrow'
17201
+ weekday: 'narrow'
17173
17202
  }).format(weekday);
17174
17203
  });
17175
17204
  }
@@ -17633,9 +17662,9 @@
17633
17662
  getDiff(date, comparing, unit) {
17634
17663
  return getDiff(date, comparing, unit);
17635
17664
  }
17636
- getWeekdays(firstDayOfWeek, weekdayFormat) {
17665
+ getWeekdays(firstDayOfWeek) {
17637
17666
  const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17638
- return getWeekdays(this.locale, firstDay, weekdayFormat);
17667
+ return getWeekdays(this.locale, firstDay);
17639
17668
  }
17640
17669
  getYear(date) {
17641
17670
  return getYear(date);
@@ -21937,8 +21966,7 @@
21937
21966
  firstDayOfWeek: {
21938
21967
  type: [Number, String],
21939
21968
  default: undefined
21940
- },
21941
- weekdayFormat: String
21969
+ }
21942
21970
  }, 'calendar');
21943
21971
  function useCalendar(props) {
21944
21972
  const adapter = useDate();
@@ -22186,7 +22214,7 @@
22186
22214
  "ref": daysRef,
22187
22215
  "key": daysInMonth.value[0].date?.toString(),
22188
22216
  "class": "v-date-picker-month__days"
22189
- }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat).map(weekDay => vue.createVNode("div", {
22217
+ }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createVNode("div", {
22190
22218
  "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
22191
22219
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22192
22220
  const slotProps = {
@@ -24304,7 +24332,7 @@
24304
24332
  function getProgress(pos) {
24305
24333
  let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
24306
24334
  const progress = position.value === 'left' ? (pos - offset.value) / width.value : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value : position.value === 'top' ? (pos - offset.value) / width.value : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value : oops();
24307
- return limit ? Math.max(0, Math.min(1, progress)) : progress;
24335
+ return limit ? clamp(progress) : progress;
24308
24336
  }
24309
24337
  function onTouchstart(e) {
24310
24338
  if (touchless.value) return;
@@ -24789,6 +24817,9 @@
24789
24817
  const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
24790
24818
  const incrementSlotProps = {
24791
24819
  props: {
24820
+ style: {
24821
+ touchAction: 'none'
24822
+ },
24792
24823
  onClick: onControlClick,
24793
24824
  onPointerup: onControlMouseup,
24794
24825
  onPointerdown: onUpControlMousedown
@@ -24796,6 +24827,9 @@
24796
24827
  };
24797
24828
  const decrementSlotProps = {
24798
24829
  props: {
24830
+ style: {
24831
+ touchAction: 'none'
24832
+ },
24799
24833
  onClick: onControlClick,
24800
24834
  onPointerup: onControlMouseup,
24801
24835
  onPointerdown: onDownControlMousedown
@@ -24928,17 +24962,18 @@
24928
24962
  } = VTextField.filterProps(props);
24929
24963
  function incrementControlNode() {
24930
24964
  return !slots.increment ? vue.createVNode(VBtn, {
24965
+ "aria-hidden": "true",
24966
+ "data-testid": "increment",
24931
24967
  "disabled": !canIncrease.value,
24932
24968
  "flat": true,
24933
- "key": "increment-btn",
24934
24969
  "height": controlNodeDefaultHeight.value,
24935
- "data-testid": "increment",
24936
- "aria-hidden": "true",
24937
24970
  "icon": incrementIcon.value,
24971
+ "key": "increment-btn",
24938
24972
  "onClick": onControlClick,
24939
- "onPointerup": onControlMouseup,
24940
24973
  "onPointerdown": onUpControlMousedown,
24974
+ "onPointerup": onControlMouseup,
24941
24975
  "size": controlNodeSize.value,
24976
+ "style": "touch-action: none",
24942
24977
  "tabindex": "-1"
24943
24978
  }, null) : vue.createVNode(VDefaultsProvider, {
24944
24979
  "key": "increment-defaults",
@@ -24957,18 +24992,19 @@
24957
24992
  }
24958
24993
  function decrementControlNode() {
24959
24994
  return !slots.decrement ? vue.createVNode(VBtn, {
24995
+ "aria-hidden": "true",
24996
+ "data-testid": "decrement",
24960
24997
  "disabled": !canDecrease.value,
24961
24998
  "flat": true,
24962
- "key": "decrement-btn",
24963
24999
  "height": controlNodeDefaultHeight.value,
24964
- "data-testid": "decrement",
24965
- "aria-hidden": "true",
24966
25000
  "icon": decrementIcon.value,
24967
- "size": controlNodeSize.value,
24968
- "tabindex": "-1",
25001
+ "key": "decrement-btn",
24969
25002
  "onClick": onControlClick,
25003
+ "onPointerdown": onDownControlMousedown,
24970
25004
  "onPointerup": onControlMouseup,
24971
- "onPointerdown": onDownControlMousedown
25005
+ "size": controlNodeSize.value,
25006
+ "style": "touch-action: none",
25007
+ "tabindex": "-1"
24972
25008
  }, null) : vue.createVNode(VDefaultsProvider, {
24973
25009
  "key": "decrement-defaults",
24974
25010
  "defaults": {
@@ -31918,7 +31954,7 @@
31918
31954
  };
31919
31955
  });
31920
31956
  }
31921
- const version$1 = "3.8.5-master.2025-05-20";
31957
+ const version$1 = "3.8.6-master.2025-05-21";
31922
31958
  createVuetify$1.version = version$1;
31923
31959
 
31924
31960
  // Vue's inject() can only be used in setup
@@ -32216,7 +32252,7 @@
32216
32252
 
32217
32253
  /* eslint-disable local-rules/sort-imports */
32218
32254
 
32219
- const version = "3.8.5-master.2025-05-20";
32255
+ const version = "3.8.6-master.2025-05-21";
32220
32256
 
32221
32257
  /* eslint-disable local-rules/sort-imports */
32222
32258