@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
package/dist/vuetify.cjs CHANGED
@@ -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
  */
@@ -11003,7 +11003,11 @@
11003
11003
  default: 'auto'
11004
11004
  },
11005
11005
  offset: [Number, String, Array],
11006
- stickToTarget: Boolean
11006
+ stickToTarget: Boolean,
11007
+ viewportMargin: {
11008
+ type: [Number, String],
11009
+ default: 12
11010
+ }
11007
11011
  }, 'VOverlay-location-strategies');
11008
11012
  function useLocationStrategies(props, data) {
11009
11013
  const contentStyles = vue.ref({});
@@ -11190,8 +11194,7 @@
11190
11194
 
11191
11195
  const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
11192
11196
  const scrollParents = getScrollParents(data.contentEl.value);
11193
- const viewportMargin = props.stickToTarget ? 0 : 12; // TOOD: prop.viewportMargin
11194
-
11197
+ const viewportMargin = Number(props.viewportMargin);
11195
11198
  if (!scrollParents.length) {
11196
11199
  scrollParents.push(document.documentElement);
11197
11200
  if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
@@ -11212,10 +11215,10 @@
11212
11215
  return scrollBox;
11213
11216
  }, undefined);
11214
11217
  if (props.stickToTarget) {
11215
- viewport.x += Math.min(0, targetBox.x);
11216
- viewport.y += Math.min(0, targetBox.y);
11217
- viewport.width = Math.max(viewport.width, targetBox.x + targetBox.width);
11218
- viewport.height = Math.max(viewport.height, targetBox.y + targetBox.height);
11218
+ viewport.x += Math.min(viewportMargin, targetBox.x);
11219
+ viewport.y += Math.min(viewportMargin, targetBox.y);
11220
+ viewport.width = Math.max(viewport.width - viewportMargin * 2, targetBox.x + targetBox.width - viewportMargin);
11221
+ viewport.height = Math.max(viewport.height - viewportMargin * 2, targetBox.y + targetBox.height - viewportMargin);
11219
11222
  } else {
11220
11223
  viewport.x += viewportMargin;
11221
11224
  viewport.y += viewportMargin;
@@ -15411,6 +15414,7 @@
15411
15414
  disabled: Boolean,
15412
15415
  title: String,
15413
15416
  ...makeComponentProps(),
15417
+ ...pick(makeDimensionProps(), ['width', 'maxWidth']),
15414
15418
  ...makeRouterProps(),
15415
15419
  ...makeTagProps({
15416
15420
  tag: 'li'
@@ -15426,6 +15430,9 @@
15426
15430
  } = _ref;
15427
15431
  const link = useLink(props, attrs);
15428
15432
  const isActive = vue.computed(() => props.active || link.isActive?.value);
15433
+ const {
15434
+ dimensionStyles
15435
+ } = useDimension(props);
15429
15436
  const {
15430
15437
  textColorClasses,
15431
15438
  textColorStyles
@@ -15437,7 +15444,7 @@
15437
15444
  'v-breadcrumbs-item--disabled': props.disabled,
15438
15445
  [`${props.activeClass}`]: isActive.value && props.activeClass
15439
15446
  }, textColorClasses.value, props.class]),
15440
- "style": vue.normalizeStyle([textColorStyles.value, props.style]),
15447
+ "style": vue.normalizeStyle([textColorStyles.value, dimensionStyles.value, props.style]),
15441
15448
  "aria-current": isActive.value ? 'page' : undefined
15442
15449
  }, {
15443
15450
  default: () => [!link.isLink.value ? slots.default?.() ?? props.title : vue.createElementVNode("a", vue.mergeProps({
@@ -15467,6 +15474,7 @@
15467
15474
  type: Array,
15468
15475
  default: () => []
15469
15476
  },
15477
+ itemProps: Boolean,
15470
15478
  ...makeComponentProps(),
15471
15479
  ...makeDensityProps(),
15472
15480
  ...makeRoundedProps(),
@@ -15548,7 +15556,7 @@
15548
15556
  "disabled": index >= array.length - 1
15549
15557
  }, typeof item === 'string' ? {
15550
15558
  title: item
15551
- } : item), {
15559
+ } : item, props.itemProps && isObject(raw) ? raw : {}), {
15552
15560
  default: slots.title ? () => slots.title?.({
15553
15561
  item,
15554
15562
  index
@@ -28601,7 +28609,7 @@
28601
28609
  ...makeThemeProps(),
28602
28610
  ...omit(makeVOverlayProps({
28603
28611
  transition: 'v-snackbar-transition'
28604
- }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy', 'stickToTarget'])
28612
+ }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy', 'stickToTarget', 'viewportMargin'])
28605
28613
  }, 'VSnackbar');
28606
28614
  const VSnackbar = genericComponent()({
28607
28615
  name: 'VSnackbar',
@@ -30039,6 +30047,8 @@
30039
30047
  const makeVTabProps = propsFactory({
30040
30048
  fixed: Boolean,
30041
30049
  sliderColor: String,
30050
+ sliderTransition: String,
30051
+ sliderTransitionDuration: [String, Number],
30042
30052
  hideSlider: Boolean,
30043
30053
  direction: {
30044
30054
  type: String,
@@ -30065,6 +30075,38 @@
30065
30075
  const sliderEl = vue.ref();
30066
30076
  const isHorizontal = vue.computed(() => props.direction === 'horizontal');
30067
30077
  const isSelected = vue.computed(() => rootEl.value?.group?.isSelected.value ?? false);
30078
+ function fade(nextEl, prevEl) {
30079
+ return {
30080
+ opacity: [0, 1]
30081
+ };
30082
+ }
30083
+ function grow(nextEl, prevEl) {
30084
+ return props.direction === 'vertical' ? {
30085
+ transform: ['scaleY(0)', 'scaleY(1)']
30086
+ } : {
30087
+ transform: ['scaleX(0)', 'scaleX(1)']
30088
+ };
30089
+ }
30090
+ function shift(nextEl, prevEl) {
30091
+ const prevBox = prevEl.getBoundingClientRect();
30092
+ const nextBox = nextEl.getBoundingClientRect();
30093
+ const xy = isHorizontal.value ? 'x' : 'y';
30094
+ const XY = isHorizontal.value ? 'X' : 'Y';
30095
+ const rightBottom = isHorizontal.value ? 'right' : 'bottom';
30096
+ const widthHeight = isHorizontal.value ? 'width' : 'height';
30097
+ const prevPos = prevBox[xy];
30098
+ const nextPos = nextBox[xy];
30099
+ const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];
30100
+ const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';
30101
+ const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);
30102
+ const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;
30103
+ const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;
30104
+ const sigma = 1.5;
30105
+ return {
30106
+ transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],
30107
+ transformOrigin: Array(3).fill(origin)
30108
+ };
30109
+ }
30068
30110
  function updateSlider(_ref2) {
30069
30111
  let {
30070
30112
  value
@@ -30074,26 +30116,21 @@
30074
30116
  const nextEl = sliderEl.value;
30075
30117
  if (!prevEl || !nextEl) return;
30076
30118
  const color = getComputedStyle(prevEl).color;
30077
- const prevBox = prevEl.getBoundingClientRect();
30078
- const nextBox = nextEl.getBoundingClientRect();
30079
- const xy = isHorizontal.value ? 'x' : 'y';
30080
- const XY = isHorizontal.value ? 'X' : 'Y';
30081
- const rightBottom = isHorizontal.value ? 'right' : 'bottom';
30082
- const widthHeight = isHorizontal.value ? 'width' : 'height';
30083
- const prevPos = prevBox[xy];
30084
- const nextPos = nextBox[xy];
30085
- const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];
30086
- const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';
30087
- const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);
30088
- const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;
30089
- const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;
30090
- const sigma = 1.5;
30119
+ const keyframes = {
30120
+ fade,
30121
+ grow,
30122
+ shift
30123
+ }[props.sliderTransition ?? 'shift'] ?? shift;
30124
+ const duration = Number(props.sliderTransitionDuration) || ({
30125
+ fade: 400,
30126
+ grow: 350,
30127
+ shift: 225
30128
+ }[props.sliderTransition ?? 'shift'] ?? 225);
30091
30129
  animate(nextEl, {
30092
30130
  backgroundColor: [color, 'currentcolor'],
30093
- transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],
30094
- transformOrigin: Array(3).fill(origin)
30131
+ ...keyframes(nextEl, prevEl)
30095
30132
  }, {
30096
- duration: 225,
30133
+ duration,
30097
30134
  easing: standardEasing
30098
30135
  });
30099
30136
  }
@@ -30227,7 +30264,7 @@
30227
30264
  },
30228
30265
  hideSlider: Boolean,
30229
30266
  sliderColor: String,
30230
- ...pick(makeVTabProps(), ['spaced']),
30267
+ ...pick(makeVTabProps(), ['spaced', 'sliderTransition', 'sliderTransitionDuration']),
30231
30268
  ...makeVSlideGroupProps({
30232
30269
  mandatory: 'force',
30233
30270
  selectedClass: 'v-tab-item--selected'
@@ -30260,12 +30297,14 @@
30260
30297
  } = useScopeId();
30261
30298
  provideDefaults({
30262
30299
  VTab: {
30263
- color: vue.toRef(() => props.color),
30264
- direction: vue.toRef(() => props.direction),
30265
- stacked: vue.toRef(() => props.stacked),
30266
- fixed: vue.toRef(() => props.fixedTabs),
30267
- sliderColor: vue.toRef(() => props.sliderColor),
30268
- hideSlider: vue.toRef(() => props.hideSlider)
30300
+ color: vue.toRef(props, 'color'),
30301
+ direction: vue.toRef(props, 'direction'),
30302
+ stacked: vue.toRef(props, 'stacked'),
30303
+ fixed: vue.toRef(props, 'fixedTabs'),
30304
+ sliderColor: vue.toRef(props, 'sliderColor'),
30305
+ sliderTransition: vue.toRef(props, 'sliderTransition'),
30306
+ sliderTransitionDuration: vue.toRef(props, 'sliderTransitionDuration'),
30307
+ hideSlider: vue.toRef(props, 'hideSlider')
30269
30308
  }
30270
30309
  });
30271
30310
  useRender(() => {
@@ -32718,7 +32757,7 @@
32718
32757
  };
32719
32758
  });
32720
32759
  }
32721
- const version$1 = "3.10.9-dev.2025-11-05";
32760
+ const version$1 = "3.10.9-dev.2025-11-06";
32722
32761
  createVuetify$1.version = version$1;
32723
32762
 
32724
32763
  // Vue's inject() can only be used in setup
@@ -32743,7 +32782,7 @@
32743
32782
  ...options
32744
32783
  });
32745
32784
  };
32746
- const version = "3.10.9-dev.2025-11-05";
32785
+ const version = "3.10.9-dev.2025-11-06";
32747
32786
  createVuetify.version = version;
32748
32787
 
32749
32788
  exports.blueprints = index;