@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
package/dist/vuetify.cjs CHANGED
@@ -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
  */
@@ -5137,7 +5137,7 @@
5137
5137
  resizeRef,
5138
5138
  contentRect
5139
5139
  } = useResizeObserver();
5140
- const normalizedValue = vue.toRef(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))));
5140
+ const normalizedValue = vue.toRef(() => clamp(parseFloat(props.modelValue), 0, 100));
5141
5141
  const width = vue.toRef(() => Number(props.width));
5142
5142
  const size = vue.toRef(() => {
5143
5143
  // Get size from element if size prop value is small, large etc
@@ -7744,7 +7744,7 @@
7744
7744
  min = 0;
7745
7745
  max = scrollHeight + -containerHeight;
7746
7746
  }
7747
- return Math.max(Math.min(value, max), min);
7747
+ return clamp(value, min, max);
7748
7748
  }
7749
7749
 
7750
7750
  function calculateUpdatedTarget(_ref) {
@@ -13021,6 +13021,7 @@
13021
13021
  const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
13022
13022
  const isFocused = vue.shallowRef(false);
13023
13023
  let keyboardLookupPrefix = '';
13024
+ let keyboardLookupIndex = -1;
13024
13025
  let keyboardLookupLastTime;
13025
13026
  const displayItems = vue.computed(() => {
13026
13027
  if (props.hideSelected) {
@@ -13088,18 +13089,46 @@
13088
13089
  const now = performance.now();
13089
13090
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
13090
13091
  keyboardLookupPrefix = '';
13092
+ keyboardLookupIndex = -1;
13091
13093
  }
13092
13094
  keyboardLookupPrefix += e.key.toLowerCase();
13093
13095
  keyboardLookupLastTime = now;
13094
- const item = items.value.find(item => item.title.toLowerCase().startsWith(keyboardLookupPrefix));
13095
- if (item !== undefined) {
13096
- if (!props.multiple) {
13097
- model.value = [item];
13096
+ const items = displayItems.value;
13097
+ function findItem() {
13098
+ let result = findItemBase();
13099
+ if (result) return result;
13100
+ if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {
13101
+ // No matches but we have a repeated letter, try the next item with that prefix
13102
+ keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1);
13103
+ result = findItemBase();
13104
+ if (result) return result;
13098
13105
  }
13099
- const index = displayItems.value.indexOf(item);
13100
- if (~index && IN_BROWSER) {
13101
- listRef.value?.focus(index);
13106
+
13107
+ // Still nothing, wrap around to the top
13108
+ keyboardLookupIndex = -1;
13109
+ result = findItemBase();
13110
+ if (result) return result;
13111
+
13112
+ // Still nothing, try just the new letter
13113
+ keyboardLookupPrefix = e.key.toLowerCase();
13114
+ return findItemBase();
13115
+ }
13116
+ function findItemBase() {
13117
+ for (let i = keyboardLookupIndex + 1; i < items.length; i++) {
13118
+ const _item = items[i];
13119
+ if (_item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {
13120
+ return [_item, i];
13121
+ }
13102
13122
  }
13123
+ return undefined;
13124
+ }
13125
+ const result = findItem();
13126
+ if (!result) return;
13127
+ const [item, index] = result;
13128
+ keyboardLookupIndex = index;
13129
+ listRef.value?.focus(index);
13130
+ if (!props.multiple) {
13131
+ model.value = [item];
13103
13132
  }
13104
13133
  }
13105
13134
 
@@ -16143,7 +16172,7 @@
16143
16172
  const clickOffset = getPosition(e, position);
16144
16173
 
16145
16174
  // It is possible for left to be NaN, force to number
16146
- let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0;
16175
+ let clickPos = clamp((clickOffset - trackStart - startOffset.value) / trackLength) || 0;
16147
16176
  if (vertical ? indexFromEnd.value : indexFromEnd.value !== isRtl.value) clickPos = 1 - clickPos;
16148
16177
  return roundValue(min.value + clickPos * (max.value - min.value));
16149
16178
  }
@@ -17441,13 +17470,13 @@
17441
17470
  return null;
17442
17471
  }
17443
17472
  const sundayJanuarySecond2000 = new Date(2000, 0, 2);
17444
- function getWeekdays(locale, firstDayOfWeek, weekdayFormat) {
17473
+ function getWeekdays(locale, firstDayOfWeek) {
17445
17474
  const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
17446
17475
  return createRange(7).map(i => {
17447
17476
  const weekday = new Date(sundayJanuarySecond2000);
17448
17477
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
17449
17478
  return new Intl.DateTimeFormat(locale, {
17450
- weekday: weekdayFormat ?? 'narrow'
17479
+ weekday: 'narrow'
17451
17480
  }).format(weekday);
17452
17481
  });
17453
17482
  }
@@ -17911,9 +17940,9 @@
17911
17940
  getDiff(date, comparing, unit) {
17912
17941
  return getDiff(date, comparing, unit);
17913
17942
  }
17914
- getWeekdays(firstDayOfWeek, weekdayFormat) {
17943
+ getWeekdays(firstDayOfWeek) {
17915
17944
  const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
17916
- return getWeekdays(this.locale, firstDay, weekdayFormat);
17945
+ return getWeekdays(this.locale, firstDay);
17917
17946
  }
17918
17947
  getYear(date) {
17919
17948
  return getYear(date);
@@ -22215,8 +22244,7 @@
22215
22244
  firstDayOfWeek: {
22216
22245
  type: [Number, String],
22217
22246
  default: undefined
22218
- },
22219
- weekdayFormat: String
22247
+ }
22220
22248
  }, 'calendar');
22221
22249
  function useCalendar(props) {
22222
22250
  const adapter = useDate();
@@ -22464,7 +22492,7 @@
22464
22492
  "ref": daysRef,
22465
22493
  "key": daysInMonth.value[0].date?.toString(),
22466
22494
  "class": "v-date-picker-month__days"
22467
- }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat).map(weekDay => vue.createVNode("div", {
22495
+ }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createVNode("div", {
22468
22496
  "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
22469
22497
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22470
22498
  const slotProps = {
@@ -24582,7 +24610,7 @@
24582
24610
  function getProgress(pos) {
24583
24611
  let limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
24584
24612
  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();
24585
- return limit ? Math.max(0, Math.min(1, progress)) : progress;
24613
+ return limit ? clamp(progress) : progress;
24586
24614
  }
24587
24615
  function onTouchstart(e) {
24588
24616
  if (touchless.value) return;
@@ -25067,6 +25095,9 @@
25067
25095
  const controlNodeDefaultHeight = vue.toRef(() => controlVariant.value === 'stacked' ? 'auto' : '100%');
25068
25096
  const incrementSlotProps = {
25069
25097
  props: {
25098
+ style: {
25099
+ touchAction: 'none'
25100
+ },
25070
25101
  onClick: onControlClick,
25071
25102
  onPointerup: onControlMouseup,
25072
25103
  onPointerdown: onUpControlMousedown
@@ -25074,6 +25105,9 @@
25074
25105
  };
25075
25106
  const decrementSlotProps = {
25076
25107
  props: {
25108
+ style: {
25109
+ touchAction: 'none'
25110
+ },
25077
25111
  onClick: onControlClick,
25078
25112
  onPointerup: onControlMouseup,
25079
25113
  onPointerdown: onDownControlMousedown
@@ -25206,17 +25240,18 @@
25206
25240
  } = VTextField.filterProps(props);
25207
25241
  function incrementControlNode() {
25208
25242
  return !slots.increment ? vue.createVNode(VBtn, {
25243
+ "aria-hidden": "true",
25244
+ "data-testid": "increment",
25209
25245
  "disabled": !canIncrease.value,
25210
25246
  "flat": true,
25211
- "key": "increment-btn",
25212
25247
  "height": controlNodeDefaultHeight.value,
25213
- "data-testid": "increment",
25214
- "aria-hidden": "true",
25215
25248
  "icon": incrementIcon.value,
25249
+ "key": "increment-btn",
25216
25250
  "onClick": onControlClick,
25217
- "onPointerup": onControlMouseup,
25218
25251
  "onPointerdown": onUpControlMousedown,
25252
+ "onPointerup": onControlMouseup,
25219
25253
  "size": controlNodeSize.value,
25254
+ "style": "touch-action: none",
25220
25255
  "tabindex": "-1"
25221
25256
  }, null) : vue.createVNode(VDefaultsProvider, {
25222
25257
  "key": "increment-defaults",
@@ -25235,18 +25270,19 @@
25235
25270
  }
25236
25271
  function decrementControlNode() {
25237
25272
  return !slots.decrement ? vue.createVNode(VBtn, {
25273
+ "aria-hidden": "true",
25274
+ "data-testid": "decrement",
25238
25275
  "disabled": !canDecrease.value,
25239
25276
  "flat": true,
25240
- "key": "decrement-btn",
25241
25277
  "height": controlNodeDefaultHeight.value,
25242
- "data-testid": "decrement",
25243
- "aria-hidden": "true",
25244
25278
  "icon": decrementIcon.value,
25245
- "size": controlNodeSize.value,
25246
- "tabindex": "-1",
25279
+ "key": "decrement-btn",
25247
25280
  "onClick": onControlClick,
25281
+ "onPointerdown": onDownControlMousedown,
25248
25282
  "onPointerup": onControlMouseup,
25249
- "onPointerdown": onDownControlMousedown
25283
+ "size": controlNodeSize.value,
25284
+ "style": "touch-action: none",
25285
+ "tabindex": "-1"
25250
25286
  }, null) : vue.createVNode(VDefaultsProvider, {
25251
25287
  "key": "decrement-defaults",
25252
25288
  "defaults": {
@@ -29223,7 +29259,7 @@
29223
29259
  };
29224
29260
  });
29225
29261
  }
29226
- const version$1 = "3.8.5-master.2025-05-20";
29262
+ const version$1 = "3.8.6-master.2025-05-21";
29227
29263
  createVuetify$1.version = version$1;
29228
29264
 
29229
29265
  // Vue's inject() can only be used in setup
@@ -29248,7 +29284,7 @@
29248
29284
  ...options
29249
29285
  });
29250
29286
  };
29251
- const version = "3.8.5-master.2025-05-20";
29287
+ const version = "3.8.6-master.2025-05-21";
29252
29288
  createVuetify.version = version;
29253
29289
 
29254
29290
  exports.blueprints = index;