@vuetify/nightly 3.10.9-dev.2025-11-05 → 3.10.9-dev.2025-11-06

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 (58) hide show
  1. package/CHANGELOG.md +6 -3
  2. package/dist/json/attributes.json +3507 -3455
  3. package/dist/json/importMap-labs.json +26 -26
  4. package/dist/json/importMap.json +164 -164
  5. package/dist/json/tags.json +14 -1
  6. package/dist/json/web-types.json +6462 -6338
  7. package/dist/vuetify-labs.cjs +76 -37
  8. package/dist/vuetify-labs.css +4631 -4631
  9. package/dist/vuetify-labs.d.ts +394 -129
  10. package/dist/vuetify-labs.esm.js +76 -37
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +76 -37
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +76 -37
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3336 -3336
  17. package/dist/vuetify.d.ts +334 -109
  18. package/dist/vuetify.esm.js +76 -37
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +76 -37
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +22 -21
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.d.ts +33 -11
  26. package/lib/components/VBottomSheet/VBottomSheet.d.ts +25 -0
  27. package/lib/components/VBreadcrumbs/VBreadcrumbs.d.ts +13 -0
  28. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +3 -2
  29. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  30. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.d.ts +20 -0
  31. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +7 -2
  32. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  33. package/lib/components/VCombobox/VCombobox.d.ts +33 -11
  34. package/lib/components/VDialog/VDialog.d.ts +52 -9
  35. package/lib/components/VMenu/VMenu.d.ts +52 -9
  36. package/lib/components/VOverlay/VOverlay.d.ts +25 -0
  37. package/lib/components/VOverlay/locationStrategies.d.ts +12 -0
  38. package/lib/components/VOverlay/locationStrategies.js +10 -7
  39. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  40. package/lib/components/VSelect/VSelect.d.ts +51 -17
  41. package/lib/components/VSnackbar/VSnackbar.d.ts +27 -9
  42. package/lib/components/VSnackbar/VSnackbar.js +1 -1
  43. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  44. package/lib/components/VSpeedDial/VSpeedDial.d.ts +25 -0
  45. package/lib/components/VTabs/VTab.d.ts +20 -0
  46. package/lib/components/VTabs/VTab.js +46 -17
  47. package/lib/components/VTabs/VTab.js.map +1 -1
  48. package/lib/components/VTabs/VTabs.d.ts +20 -0
  49. package/lib/components/VTabs/VTabs.js +9 -7
  50. package/lib/components/VTabs/VTabs.js.map +1 -1
  51. package/lib/components/VTooltip/VTooltip.d.ts +52 -9
  52. package/lib/entry-bundler.js +1 -1
  53. package/lib/framework.d.ts +86 -67
  54. package/lib/framework.js +1 -1
  55. package/lib/labs/VVideo/VVideo.d.ts +63 -21
  56. package/lib/labs/VVideo/VVideoControls.d.ts +30 -10
  57. package/lib/labs/VVideo/VVideoVolume.d.ts +30 -10
  58. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.10.9-dev.2025-11-05
2
+ * Vuetify v3.10.9-dev.2025-11-06
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -10679,7 +10679,11 @@
10679
10679
  default: 'auto'
10680
10680
  },
10681
10681
  offset: [Number, String, Array],
10682
- stickToTarget: Boolean
10682
+ stickToTarget: Boolean,
10683
+ viewportMargin: {
10684
+ type: [Number, String],
10685
+ default: 12
10686
+ }
10683
10687
  }, 'VOverlay-location-strategies');
10684
10688
  function useLocationStrategies(props, data) {
10685
10689
  const contentStyles = vue.ref({});
@@ -10866,8 +10870,7 @@
10866
10870
 
10867
10871
  const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
10868
10872
  const scrollParents = getScrollParents(data.contentEl.value);
10869
- const viewportMargin = props.stickToTarget ? 0 : 12; // TOOD: prop.viewportMargin
10870
-
10873
+ const viewportMargin = Number(props.viewportMargin);
10871
10874
  if (!scrollParents.length) {
10872
10875
  scrollParents.push(document.documentElement);
10873
10876
  if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
@@ -10888,10 +10891,10 @@
10888
10891
  return scrollBox;
10889
10892
  }, undefined);
10890
10893
  if (props.stickToTarget) {
10891
- viewport.x += Math.min(0, targetBox.x);
10892
- viewport.y += Math.min(0, targetBox.y);
10893
- viewport.width = Math.max(viewport.width, targetBox.x + targetBox.width);
10894
- viewport.height = Math.max(viewport.height, targetBox.y + targetBox.height);
10894
+ viewport.x += Math.min(viewportMargin, targetBox.x);
10895
+ viewport.y += Math.min(viewportMargin, targetBox.y);
10896
+ viewport.width = Math.max(viewport.width - viewportMargin * 2, targetBox.x + targetBox.width - viewportMargin);
10897
+ viewport.height = Math.max(viewport.height - viewportMargin * 2, targetBox.y + targetBox.height - viewportMargin);
10895
10898
  } else {
10896
10899
  viewport.x += viewportMargin;
10897
10900
  viewport.y += viewportMargin;
@@ -15087,6 +15090,7 @@
15087
15090
  disabled: Boolean,
15088
15091
  title: String,
15089
15092
  ...makeComponentProps(),
15093
+ ...pick(makeDimensionProps(), ['width', 'maxWidth']),
15090
15094
  ...makeRouterProps(),
15091
15095
  ...makeTagProps({
15092
15096
  tag: 'li'
@@ -15102,6 +15106,9 @@
15102
15106
  } = _ref;
15103
15107
  const link = useLink(props, attrs);
15104
15108
  const isActive = vue.computed(() => props.active || link.isActive?.value);
15109
+ const {
15110
+ dimensionStyles
15111
+ } = useDimension(props);
15105
15112
  const {
15106
15113
  textColorClasses,
15107
15114
  textColorStyles
@@ -15113,7 +15120,7 @@
15113
15120
  'v-breadcrumbs-item--disabled': props.disabled,
15114
15121
  [`${props.activeClass}`]: isActive.value && props.activeClass
15115
15122
  }, textColorClasses.value, props.class]),
15116
- "style": vue.normalizeStyle([textColorStyles.value, props.style]),
15123
+ "style": vue.normalizeStyle([textColorStyles.value, dimensionStyles.value, props.style]),
15117
15124
  "aria-current": isActive.value ? 'page' : undefined
15118
15125
  }, {
15119
15126
  default: () => [!link.isLink.value ? slots.default?.() ?? props.title : vue.createElementVNode("a", vue.mergeProps({
@@ -15143,6 +15150,7 @@
15143
15150
  type: Array,
15144
15151
  default: () => []
15145
15152
  },
15153
+ itemProps: Boolean,
15146
15154
  ...makeComponentProps(),
15147
15155
  ...makeDensityProps(),
15148
15156
  ...makeRoundedProps(),
@@ -15224,7 +15232,7 @@
15224
15232
  "disabled": index >= array.length - 1
15225
15233
  }, typeof item === 'string' ? {
15226
15234
  title: item
15227
- } : item), {
15235
+ } : item, props.itemProps && isObject(raw) ? raw : {}), {
15228
15236
  default: slots.title ? () => slots.title?.({
15229
15237
  item,
15230
15238
  index
@@ -28286,7 +28294,7 @@
28286
28294
  ...makeThemeProps(),
28287
28295
  ...omit(makeVOverlayProps({
28288
28296
  transition: 'v-snackbar-transition'
28289
- }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy', 'stickToTarget'])
28297
+ }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy', 'stickToTarget', 'viewportMargin'])
28290
28298
  }, 'VSnackbar');
28291
28299
  const VSnackbar = genericComponent()({
28292
28300
  name: 'VSnackbar',
@@ -29724,6 +29732,8 @@
29724
29732
  const makeVTabProps = propsFactory({
29725
29733
  fixed: Boolean,
29726
29734
  sliderColor: String,
29735
+ sliderTransition: String,
29736
+ sliderTransitionDuration: [String, Number],
29727
29737
  hideSlider: Boolean,
29728
29738
  direction: {
29729
29739
  type: String,
@@ -29750,6 +29760,38 @@
29750
29760
  const sliderEl = vue.ref();
29751
29761
  const isHorizontal = vue.computed(() => props.direction === 'horizontal');
29752
29762
  const isSelected = vue.computed(() => rootEl.value?.group?.isSelected.value ?? false);
29763
+ function fade(nextEl, prevEl) {
29764
+ return {
29765
+ opacity: [0, 1]
29766
+ };
29767
+ }
29768
+ function grow(nextEl, prevEl) {
29769
+ return props.direction === 'vertical' ? {
29770
+ transform: ['scaleY(0)', 'scaleY(1)']
29771
+ } : {
29772
+ transform: ['scaleX(0)', 'scaleX(1)']
29773
+ };
29774
+ }
29775
+ function shift(nextEl, prevEl) {
29776
+ const prevBox = prevEl.getBoundingClientRect();
29777
+ const nextBox = nextEl.getBoundingClientRect();
29778
+ const xy = isHorizontal.value ? 'x' : 'y';
29779
+ const XY = isHorizontal.value ? 'X' : 'Y';
29780
+ const rightBottom = isHorizontal.value ? 'right' : 'bottom';
29781
+ const widthHeight = isHorizontal.value ? 'width' : 'height';
29782
+ const prevPos = prevBox[xy];
29783
+ const nextPos = nextBox[xy];
29784
+ const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];
29785
+ const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';
29786
+ const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);
29787
+ const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;
29788
+ const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;
29789
+ const sigma = 1.5;
29790
+ return {
29791
+ transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],
29792
+ transformOrigin: Array(3).fill(origin)
29793
+ };
29794
+ }
29753
29795
  function updateSlider(_ref2) {
29754
29796
  let {
29755
29797
  value
@@ -29759,26 +29801,21 @@
29759
29801
  const nextEl = sliderEl.value;
29760
29802
  if (!prevEl || !nextEl) return;
29761
29803
  const color = getComputedStyle(prevEl).color;
29762
- const prevBox = prevEl.getBoundingClientRect();
29763
- const nextBox = nextEl.getBoundingClientRect();
29764
- const xy = isHorizontal.value ? 'x' : 'y';
29765
- const XY = isHorizontal.value ? 'X' : 'Y';
29766
- const rightBottom = isHorizontal.value ? 'right' : 'bottom';
29767
- const widthHeight = isHorizontal.value ? 'width' : 'height';
29768
- const prevPos = prevBox[xy];
29769
- const nextPos = nextBox[xy];
29770
- const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];
29771
- const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';
29772
- const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);
29773
- const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;
29774
- const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;
29775
- const sigma = 1.5;
29804
+ const keyframes = {
29805
+ fade,
29806
+ grow,
29807
+ shift
29808
+ }[props.sliderTransition ?? 'shift'] ?? shift;
29809
+ const duration = Number(props.sliderTransitionDuration) || ({
29810
+ fade: 400,
29811
+ grow: 350,
29812
+ shift: 225
29813
+ }[props.sliderTransition ?? 'shift'] ?? 225);
29776
29814
  animate(nextEl, {
29777
29815
  backgroundColor: [color, 'currentcolor'],
29778
- transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],
29779
- transformOrigin: Array(3).fill(origin)
29816
+ ...keyframes(nextEl, prevEl)
29780
29817
  }, {
29781
- duration: 225,
29818
+ duration,
29782
29819
  easing: standardEasing
29783
29820
  });
29784
29821
  }
@@ -29912,7 +29949,7 @@
29912
29949
  },
29913
29950
  hideSlider: Boolean,
29914
29951
  sliderColor: String,
29915
- ...pick(makeVTabProps(), ['spaced']),
29952
+ ...pick(makeVTabProps(), ['spaced', 'sliderTransition', 'sliderTransitionDuration']),
29916
29953
  ...makeVSlideGroupProps({
29917
29954
  mandatory: 'force',
29918
29955
  selectedClass: 'v-tab-item--selected'
@@ -29945,12 +29982,14 @@
29945
29982
  } = useScopeId();
29946
29983
  provideDefaults({
29947
29984
  VTab: {
29948
- color: vue.toRef(() => props.color),
29949
- direction: vue.toRef(() => props.direction),
29950
- stacked: vue.toRef(() => props.stacked),
29951
- fixed: vue.toRef(() => props.fixedTabs),
29952
- sliderColor: vue.toRef(() => props.sliderColor),
29953
- hideSlider: vue.toRef(() => props.hideSlider)
29985
+ color: vue.toRef(props, 'color'),
29986
+ direction: vue.toRef(props, 'direction'),
29987
+ stacked: vue.toRef(props, 'stacked'),
29988
+ fixed: vue.toRef(props, 'fixedTabs'),
29989
+ sliderColor: vue.toRef(props, 'sliderColor'),
29990
+ sliderTransition: vue.toRef(props, 'sliderTransition'),
29991
+ sliderTransitionDuration: vue.toRef(props, 'sliderTransitionDuration'),
29992
+ hideSlider: vue.toRef(props, 'hideSlider')
29954
29993
  }
29955
29994
  });
29956
29995
  useRender(() => {
@@ -38354,7 +38393,7 @@
38354
38393
  };
38355
38394
  });
38356
38395
  }
38357
- const version$1 = "3.10.9-dev.2025-11-05";
38396
+ const version$1 = "3.10.9-dev.2025-11-06";
38358
38397
  createVuetify$1.version = version$1;
38359
38398
 
38360
38399
  // Vue's inject() can only be used in setup
@@ -38652,7 +38691,7 @@
38652
38691
 
38653
38692
  /* eslint-disable local-rules/sort-imports */
38654
38693
 
38655
- const version = "3.10.9-dev.2025-11-05";
38694
+ const version = "3.10.9-dev.2025-11-06";
38656
38695
 
38657
38696
  /* eslint-disable local-rules/sort-imports */
38658
38697