@vuetify/nightly 3.9.2-master.2025-07-28 → 3.9.3-master.2025-07-30

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 (186) hide show
  1. package/CHANGELOG.md +9 -51
  2. package/dist/json/attributes.json +3076 -3076
  3. package/dist/json/importMap-labs.json +30 -30
  4. package/dist/json/importMap.json +154 -154
  5. package/dist/json/web-types.json +5573 -5573
  6. package/dist/vuetify-labs.cjs +91 -35
  7. package/dist/vuetify-labs.css +4963 -4960
  8. package/dist/vuetify-labs.d.ts +60 -59
  9. package/dist/vuetify-labs.esm.js +91 -35
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +91 -35
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +59 -20
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4049 -4046
  16. package/dist/vuetify.d.ts +60 -59
  17. package/dist/vuetify.esm.js +59 -20
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +59 -20
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +200 -198
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VCombobox/VCombobox.js +10 -6
  25. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  26. package/lib/components/VDatePicker/VDatePickerControls.js +8 -1
  27. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  28. package/lib/components/VDatePicker/VDatePickerMonth.js +11 -0
  29. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  30. package/lib/components/VDatePicker/VDatePickerMonths.js +3 -0
  31. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  32. package/lib/components/VList/VListChildren.js +3 -4
  33. package/lib/components/VList/VListChildren.js.map +1 -1
  34. package/lib/components/VSlider/VSliderThumb.css +9 -14
  35. package/lib/components/VSlider/VSliderThumb.js +13 -7
  36. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  37. package/lib/components/VSlider/VSliderThumb.sass +9 -14
  38. package/lib/components/VSlider/slider.d.ts +1 -0
  39. package/lib/components/VSlider/slider.js +2 -0
  40. package/lib/components/VSlider/slider.js.map +1 -1
  41. package/lib/components/VWindow/VWindow.css +8 -0
  42. package/lib/components/VWindow/VWindow.sass +9 -0
  43. package/lib/composables/theme.d.ts +1 -0
  44. package/lib/composables/theme.js +3 -1
  45. package/lib/composables/theme.js.map +1 -1
  46. package/lib/directives/ripple/index.js +2 -2
  47. package/lib/directives/ripple/index.js.map +1 -1
  48. package/lib/entry-bundler.js +1 -1
  49. package/lib/framework.d.ts +60 -59
  50. package/lib/framework.js +1 -1
  51. package/lib/labs/VVideo/VVideo.css +1 -1
  52. package/lib/labs/VVideo/VVideo.js +2 -2
  53. package/lib/labs/VVideo/VVideo.js.map +1 -1
  54. package/lib/labs/VVideo/VVideo.sass +2 -0
  55. package/lib/labs/VVideo/VVideoControls.js +32 -15
  56. package/lib/labs/VVideo/VVideoControls.js.map +1 -1
  57. package/lib/locale/af.d.ts +7 -0
  58. package/lib/locale/af.js +7 -0
  59. package/lib/locale/af.js.map +1 -1
  60. package/lib/locale/ar.d.ts +7 -0
  61. package/lib/locale/ar.js +13 -6
  62. package/lib/locale/ar.js.map +1 -1
  63. package/lib/locale/az.d.ts +7 -0
  64. package/lib/locale/az.js +7 -0
  65. package/lib/locale/az.js.map +1 -1
  66. package/lib/locale/bg.d.ts +7 -0
  67. package/lib/locale/bg.js +7 -0
  68. package/lib/locale/bg.js.map +1 -1
  69. package/lib/locale/ca.d.ts +7 -0
  70. package/lib/locale/ca.js +7 -0
  71. package/lib/locale/ca.js.map +1 -1
  72. package/lib/locale/ckb.d.ts +7 -0
  73. package/lib/locale/ckb.js +7 -0
  74. package/lib/locale/ckb.js.map +1 -1
  75. package/lib/locale/cs.d.ts +7 -0
  76. package/lib/locale/cs.js +7 -0
  77. package/lib/locale/cs.js.map +1 -1
  78. package/lib/locale/da.d.ts +7 -0
  79. package/lib/locale/da.js +7 -0
  80. package/lib/locale/da.js.map +1 -1
  81. package/lib/locale/de.d.ts +7 -0
  82. package/lib/locale/de.js +7 -0
  83. package/lib/locale/de.js.map +1 -1
  84. package/lib/locale/el.d.ts +7 -0
  85. package/lib/locale/el.js +7 -0
  86. package/lib/locale/el.js.map +1 -1
  87. package/lib/locale/en.d.ts +7 -0
  88. package/lib/locale/en.js +8 -0
  89. package/lib/locale/en.js.map +1 -1
  90. package/lib/locale/es.d.ts +7 -0
  91. package/lib/locale/es.js +7 -0
  92. package/lib/locale/es.js.map +1 -1
  93. package/lib/locale/et.d.ts +7 -0
  94. package/lib/locale/et.js +7 -0
  95. package/lib/locale/et.js.map +1 -1
  96. package/lib/locale/fa.d.ts +7 -0
  97. package/lib/locale/fa.js +7 -0
  98. package/lib/locale/fa.js.map +1 -1
  99. package/lib/locale/fi.d.ts +7 -0
  100. package/lib/locale/fi.js +7 -0
  101. package/lib/locale/fi.js.map +1 -1
  102. package/lib/locale/fr.d.ts +7 -0
  103. package/lib/locale/fr.js +7 -0
  104. package/lib/locale/fr.js.map +1 -1
  105. package/lib/locale/he.d.ts +7 -0
  106. package/lib/locale/he.js +7 -0
  107. package/lib/locale/he.js.map +1 -1
  108. package/lib/locale/hr.d.ts +7 -0
  109. package/lib/locale/hr.js +7 -0
  110. package/lib/locale/hr.js.map +1 -1
  111. package/lib/locale/hu.d.ts +7 -0
  112. package/lib/locale/hu.js +7 -0
  113. package/lib/locale/hu.js.map +1 -1
  114. package/lib/locale/id.d.ts +7 -0
  115. package/lib/locale/id.js +7 -0
  116. package/lib/locale/id.js.map +1 -1
  117. package/lib/locale/it.d.ts +7 -0
  118. package/lib/locale/it.js +7 -0
  119. package/lib/locale/it.js.map +1 -1
  120. package/lib/locale/ja.d.ts +7 -0
  121. package/lib/locale/ja.js +7 -0
  122. package/lib/locale/ja.js.map +1 -1
  123. package/lib/locale/km.d.ts +7 -0
  124. package/lib/locale/km.js +7 -0
  125. package/lib/locale/km.js.map +1 -1
  126. package/lib/locale/ko.d.ts +7 -0
  127. package/lib/locale/ko.js +7 -0
  128. package/lib/locale/ko.js.map +1 -1
  129. package/lib/locale/lt.d.ts +7 -0
  130. package/lib/locale/lt.js +7 -0
  131. package/lib/locale/lt.js.map +1 -1
  132. package/lib/locale/lv.d.ts +7 -0
  133. package/lib/locale/lv.js +7 -0
  134. package/lib/locale/lv.js.map +1 -1
  135. package/lib/locale/nl.d.ts +7 -0
  136. package/lib/locale/nl.js +7 -0
  137. package/lib/locale/nl.js.map +1 -1
  138. package/lib/locale/no.d.ts +7 -0
  139. package/lib/locale/no.js +7 -0
  140. package/lib/locale/no.js.map +1 -1
  141. package/lib/locale/pl.d.ts +7 -0
  142. package/lib/locale/pl.js +7 -0
  143. package/lib/locale/pl.js.map +1 -1
  144. package/lib/locale/pt.d.ts +7 -0
  145. package/lib/locale/pt.js +7 -0
  146. package/lib/locale/pt.js.map +1 -1
  147. package/lib/locale/ro.d.ts +7 -0
  148. package/lib/locale/ro.js +7 -0
  149. package/lib/locale/ro.js.map +1 -1
  150. package/lib/locale/ru.d.ts +7 -0
  151. package/lib/locale/ru.js +7 -0
  152. package/lib/locale/ru.js.map +1 -1
  153. package/lib/locale/sk.d.ts +7 -0
  154. package/lib/locale/sk.js +7 -0
  155. package/lib/locale/sk.js.map +1 -1
  156. package/lib/locale/sl.d.ts +7 -0
  157. package/lib/locale/sl.js +7 -0
  158. package/lib/locale/sl.js.map +1 -1
  159. package/lib/locale/sr-Cyrl.d.ts +7 -0
  160. package/lib/locale/sr-Cyrl.js +7 -0
  161. package/lib/locale/sr-Cyrl.js.map +1 -1
  162. package/lib/locale/sr-Latn.d.ts +7 -0
  163. package/lib/locale/sr-Latn.js +7 -0
  164. package/lib/locale/sr-Latn.js.map +1 -1
  165. package/lib/locale/sv.d.ts +7 -0
  166. package/lib/locale/sv.js +7 -0
  167. package/lib/locale/sv.js.map +1 -1
  168. package/lib/locale/th.d.ts +7 -0
  169. package/lib/locale/th.js +7 -0
  170. package/lib/locale/th.js.map +1 -1
  171. package/lib/locale/tr.d.ts +7 -0
  172. package/lib/locale/tr.js +7 -0
  173. package/lib/locale/tr.js.map +1 -1
  174. package/lib/locale/uk.d.ts +7 -0
  175. package/lib/locale/uk.js +7 -0
  176. package/lib/locale/uk.js.map +1 -1
  177. package/lib/locale/vi.d.ts +7 -0
  178. package/lib/locale/vi.js +7 -0
  179. package/lib/locale/vi.js.map +1 -1
  180. package/lib/locale/zh-Hans.d.ts +7 -0
  181. package/lib/locale/zh-Hans.js +7 -0
  182. package/lib/locale/zh-Hans.js.map +1 -1
  183. package/lib/locale/zh-Hant.d.ts +7 -0
  184. package/lib/locale/zh-Hant.js +7 -0
  185. package/lib/locale/zh-Hant.js.map +1 -1
  186. package/package.json +1 -1
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.2-master.2025-07-28
2
+ * Vuetify v3.9.3-master.2025-07-30
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2617,6 +2617,14 @@
2617
2617
  header: 'Enter date',
2618
2618
  input: {
2619
2619
  placeholder: 'Enter date'
2620
+ },
2621
+ ariaLabel: {
2622
+ previousMonth: 'Previous month',
2623
+ nextMonth: 'Next month',
2624
+ selectYear: 'Select year',
2625
+ selectDate: '{0}',
2626
+ // Full date format
2627
+ currentDate: 'Today, {0}'
2620
2628
  }
2621
2629
  },
2622
2630
  noDataText: 'No data available',
@@ -3155,6 +3163,7 @@
3155
3163
  return acc;
3156
3164
  });
3157
3165
  const current = vue.toRef(() => computedThemes.value[name.value]);
3166
+ const isSystem = vue.toRef(() => _name.value === 'system');
3158
3167
  const styles = vue.computed(() => {
3159
3168
  const lines = [];
3160
3169
  const important = parsedOptions.unimportant ? '' : ' !important';
@@ -3242,7 +3251,7 @@
3242
3251
  }
3243
3252
  }
3244
3253
  function change(themeName) {
3245
- if (!themeNames.value.includes(themeName)) {
3254
+ if (themeName !== 'system' && !themeNames.value.includes(themeName)) {
3246
3255
  consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
3247
3256
  return;
3248
3257
  }
@@ -3275,6 +3284,7 @@
3275
3284
  cycle,
3276
3285
  toggle,
3277
3286
  isDisabled: parsedOptions.isDisabled,
3287
+ isSystem,
3278
3288
  name,
3279
3289
  themes,
3280
3290
  current,
@@ -5927,8 +5937,8 @@
5927
5937
  if (!el?._ripple?.enabled) return;
5928
5938
  const ripples = el.getElementsByClassName('v-ripple__animation');
5929
5939
  if (ripples.length === 0) return;
5930
- const animation = ripples[ripples.length - 1];
5931
- if (animation.dataset.isHiding) return;else animation.dataset.isHiding = 'true';
5940
+ const animation = Array.from(ripples).findLast(ripple => !ripple.dataset.isHiding);
5941
+ if (!animation) return;else animation.dataset.isHiding = 'true';
5932
5942
  const diff = performance.now() - Number(animation.dataset.activated);
5933
5943
  const delay = Math.max(250 - diff, 0);
5934
5944
  setTimeout(() => {
@@ -10146,11 +10156,9 @@
10146
10156
  let {
10147
10157
  props: activatorProps
10148
10158
  } = _ref3;
10149
- const listItemProps = {
10150
- ...itemProps,
10151
- ...activatorProps,
10159
+ const listItemProps = vue.mergeProps(itemProps, activatorProps, {
10152
10160
  value: props.returnObject ? item : itemProps.value
10153
- };
10161
+ });
10154
10162
  return slots.header ? slots.header({
10155
10163
  props: listItemProps
10156
10164
  }) : vue.createVNode(VListItem, listItemProps, slotsWithItem);
@@ -16554,6 +16562,7 @@
16554
16562
  const numTicks = vue.computed(() => (max.value - min.value) / step.value);
16555
16563
  const disabled = vue.toRef(() => props.disabled);
16556
16564
  const thumbColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
16565
+ const thumbLabelColor = vue.computed(() => props.error || props.disabled ? undefined : props.thumbColor);
16557
16566
  const trackColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
16558
16567
  const trackFillColor = vue.computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
16559
16568
  const mousePressed = vue.shallowRef(false);
@@ -16711,6 +16720,7 @@
16711
16720
  step,
16712
16721
  thumbSize,
16713
16722
  thumbColor,
16723
+ thumbLabelColor,
16714
16724
  thumbLabel: vue.toRef(() => props.thumbLabel),
16715
16725
  ticks: vue.toRef(() => props.ticks),
16716
16726
  tickSize,
@@ -16776,6 +16786,7 @@
16776
16786
  min,
16777
16787
  max,
16778
16788
  thumbColor,
16789
+ thumbLabelColor,
16779
16790
  step,
16780
16791
  disabled,
16781
16792
  thumbSize,
@@ -16797,6 +16808,10 @@
16797
16808
  textColorClasses,
16798
16809
  textColorStyles
16799
16810
  } = useTextColor(thumbColor);
16811
+ const {
16812
+ backgroundColorClasses,
16813
+ backgroundColorStyles
16814
+ } = useBackgroundColor(thumbLabelColor);
16800
16815
  const {
16801
16816
  pageup,
16802
16817
  pagedown,
@@ -16862,9 +16877,7 @@
16862
16877
  "onKeydown": !readonly.value ? onKeydown : undefined
16863
16878
  }, [vue.createElementVNode("div", {
16864
16879
  "class": vue.normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
16865
- "style": {
16866
- ...textColorStyles.value
16867
- }
16880
+ "style": vue.normalizeStyle(textColorStyles.value)
16868
16881
  }, null), vue.withDirectives(vue.createElementVNode("div", {
16869
16882
  "class": vue.normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
16870
16883
  "style": vue.normalizeStyle(textColorStyles.value)
@@ -16877,10 +16890,13 @@
16877
16890
  default: () => [vue.withDirectives(vue.createElementVNode("div", {
16878
16891
  "class": "v-slider-thumb__label-container"
16879
16892
  }, [vue.createElementVNode("div", {
16880
- "class": vue.normalizeClass(['v-slider-thumb__label', textColorClasses.value])
16893
+ "class": vue.normalizeClass(['v-slider-thumb__label', backgroundColorClasses.value]),
16894
+ "style": vue.normalizeStyle(backgroundColorStyles.value)
16881
16895
  }, [vue.createElementVNode("div", null, [slots['thumb-label']?.({
16882
16896
  modelValue: props.modelValue
16883
- }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vue.vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
16897
+ }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)]), vue.createElementVNode("div", {
16898
+ "class": "v-slider-thumb__label-wedge"
16899
+ }, null)])]), [[vue.vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
16884
16900
  })]);
16885
16901
  });
16886
16902
  return {};
@@ -19027,19 +19043,23 @@
19027
19043
  get: () => {
19028
19044
  return _search.value;
19029
19045
  },
19030
- set: val => {
19046
+ set: async val => {
19031
19047
  _search.value = val ?? '';
19032
19048
  if (!props.multiple && !hasSelectionSlot.value) {
19033
19049
  model.value = [transformItem$3(props, val)];
19034
19050
  vue.nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
19035
19051
  }
19036
19052
  if (val && props.multiple && props.delimiters?.length) {
19037
- const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
19053
+ const signsToMatch = props.delimiters.map(escapeForRegex).join('|');
19054
+ const values = val.split(new RegExp(`(?:${signsToMatch})+`));
19038
19055
  if (values.length > 1) {
19039
- values.forEach(v => {
19056
+ for (let v of values) {
19040
19057
  v = v.trim();
19041
- if (v) select(transformItem$3(props, v));
19042
- });
19058
+ if (v) {
19059
+ select(transformItem$3(props, v));
19060
+ await vue.nextTick();
19061
+ }
19062
+ }
19043
19063
  _search.value = '';
19044
19064
  }
19045
19065
  }
@@ -22894,6 +22914,9 @@
22894
22914
  let {
22895
22915
  emit
22896
22916
  } = _ref;
22917
+ const {
22918
+ t
22919
+ } = useLocale();
22897
22920
  const disableMonth = vue.computed(() => {
22898
22921
  return Array.isArray(props.disabled) ? props.disabled.includes('text') : !!props.disabled;
22899
22922
  });
@@ -22940,6 +22963,7 @@
22940
22963
  "density": "comfortable",
22941
22964
  "icon": props.modeIcon,
22942
22965
  "variant": "text",
22966
+ "aria-label": t('$vuetify.datePicker.ariaLabel.selectYear'),
22943
22967
  "onClick": onClickYear
22944
22968
  }, null), vue.createVNode(VSpacer, null, null), vue.createElementVNode("div", {
22945
22969
  "class": "v-date-picker-controls__month"
@@ -22949,6 +22973,7 @@
22949
22973
  "density": "comfortable",
22950
22974
  "icon": props.prevIcon,
22951
22975
  "variant": "text",
22976
+ "aria-label": t('$vuetify.datePicker.ariaLabel.previousMonth'),
22952
22977
  "onClick": onClickPrev
22953
22978
  }, null), vue.createVNode(VBtn, {
22954
22979
  "data-testid": "next-month",
@@ -22956,6 +22981,7 @@
22956
22981
  "icon": props.nextIcon,
22957
22982
  "density": "comfortable",
22958
22983
  "variant": "text",
22984
+ "aria-label": t('$vuetify.datePicker.ariaLabel.nextMonth'),
22959
22985
  "onClick": onClickNext
22960
22986
  }, null)])]);
22961
22987
  });
@@ -23220,6 +23246,9 @@
23220
23246
  slots
23221
23247
  } = _ref;
23222
23248
  const daysRef = vue.ref();
23249
+ const {
23250
+ t
23251
+ } = useLocale();
23223
23252
  const {
23224
23253
  daysInMonth,
23225
23254
  model,
@@ -23276,6 +23305,11 @@
23276
23305
  model.value = [rangeStart.value];
23277
23306
  }
23278
23307
  }
23308
+ function getDateAriaLabel(item) {
23309
+ const fullDate = adapter.format(item.date, 'fullDateWithWeekday');
23310
+ const localeKey = item.isToday ? 'currentDate' : 'selectDate';
23311
+ return t(`$vuetify.datePicker.ariaLabel.${localeKey}`, fullDate);
23312
+ }
23279
23313
  function onMultipleClick(value) {
23280
23314
  const index = model.value.findIndex(selection => adapter.isSameDay(selection, value));
23281
23315
  if (index === -1) {
@@ -23327,6 +23361,8 @@
23327
23361
  ripple: false,
23328
23362
  text: item.localized,
23329
23363
  variant: item.isSelected ? 'flat' : item.isToday ? 'outlined' : 'text',
23364
+ 'aria-label': getDateAriaLabel(item),
23365
+ 'aria-current': item.isToday ? 'date' : undefined,
23330
23366
  onClick: () => onClick(item.date)
23331
23367
  },
23332
23368
  item,
@@ -23381,11 +23417,13 @@
23381
23417
  }
23382
23418
  return createRange(12).map(i => {
23383
23419
  const text = adapter.format(date, 'monthShort');
23420
+ const label = adapter.format(date, 'month');
23384
23421
  const isDisabled = !!(!isMonthAllowed(i) || props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
23385
23422
  date = adapter.getNextMonth(date);
23386
23423
  return {
23387
23424
  isDisabled,
23388
23425
  text,
23426
+ label,
23389
23427
  value: i
23390
23428
  };
23391
23429
  });
@@ -23412,6 +23450,7 @@
23412
23450
  }, [months.value.map((month, i) => {
23413
23451
  const btnProps = {
23414
23452
  active: model.value === i,
23453
+ ariaLabel: month.label,
23415
23454
  color: model.value === i ? props.color : undefined,
23416
23455
  disabled: month.isDisabled,
23417
23456
  rounded: true,
@@ -31436,7 +31475,7 @@
31436
31475
  };
31437
31476
  });
31438
31477
  }
31439
- const version$1 = "3.9.2-master.2025-07-28";
31478
+ const version$1 = "3.9.3-master.2025-07-30";
31440
31479
  createVuetify$1.version = version$1;
31441
31480
 
31442
31481
  // Vue's inject() can only be used in setup
@@ -31461,7 +31500,7 @@
31461
31500
  ...options
31462
31501
  });
31463
31502
  };
31464
- const version = "3.9.2-master.2025-07-28";
31503
+ const version = "3.9.3-master.2025-07-30";
31465
31504
  createVuetify.version = version;
31466
31505
 
31467
31506
  exports.blueprints = index;