@vuetify/nightly 3.7.0-beta.1-dev.2024-07-29 → 3.7.0-beta.1-dev.2024-08-01

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 (135) hide show
  1. package/dist/json/attributes.json +17 -5
  2. package/dist/json/importMap-labs.json +12 -12
  3. package/dist/json/importMap.json +112 -112
  4. package/dist/json/tags.json +3 -0
  5. package/dist/json/web-types.json +44 -14
  6. package/dist/vuetify-labs.css +4400 -3677
  7. package/dist/vuetify-labs.d.ts +219 -117
  8. package/dist/vuetify-labs.esm.js +125 -77
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +125 -77
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +3534 -2811
  13. package/dist/vuetify.d.ts +230 -146
  14. package/dist/vuetify.esm.js +62 -39
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +62 -39
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +52 -51
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.css +5 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.css +4 -0
  23. package/lib/components/VAutocomplete/index.d.mts +42 -24
  24. package/lib/components/VAvatar/VAvatar.css +8 -4
  25. package/lib/components/VAvatar/VAvatar.mjs +1 -1
  26. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  27. package/lib/components/VBadge/VBadge.css +2 -0
  28. package/lib/components/VBanner/VBanner.css +12 -4
  29. package/lib/components/VBottomNavigation/VBottomNavigation.css +11 -3
  30. package/lib/components/VBottomSheet/VBottomSheet.css +2 -0
  31. package/lib/components/VBtn/VBtn.css +16 -9
  32. package/lib/components/VBtn/VBtn.mjs +1 -1
  33. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  34. package/lib/components/VBtn/VBtn.sass +4 -4
  35. package/lib/components/VBtnGroup/VBtnGroup.css +12 -4
  36. package/lib/components/VCard/VCard.css +9 -1
  37. package/lib/components/VCarousel/VCarousel.css +2 -0
  38. package/lib/components/VChip/VChip.css +15 -9
  39. package/lib/components/VChip/VChip.sass +1 -1
  40. package/lib/components/VColorPicker/VColorPicker.css +2 -0
  41. package/lib/components/VColorPicker/VColorPicker.sass +4 -4
  42. package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -4
  43. package/lib/components/VCombobox/VCombobox.css +4 -0
  44. package/lib/components/VCombobox/index.d.mts +42 -24
  45. package/lib/components/VDialog/VDialog.css +5 -0
  46. package/lib/components/VDialog/index.d.mts +3 -3
  47. package/lib/components/VDivider/VDivider.css +2 -0
  48. package/lib/components/VExpansionPanel/VExpansionPanel.css +11 -5
  49. package/lib/components/VExpansionPanel/VExpansionPanel.sass +3 -3
  50. package/lib/components/VField/VField.css +13 -1
  51. package/lib/components/VField/VField.sass +5 -8
  52. package/lib/components/VFooter/VFooter.css +12 -4
  53. package/lib/components/VFooter/VFooter.mjs +20 -14
  54. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  55. package/lib/components/VFooter/index.d.mts +3 -3
  56. package/lib/components/VGrid/VGrid.sass +1 -1
  57. package/lib/components/VGrid/_mixins.sass +4 -4
  58. package/lib/components/VImg/VImg.css +6 -0
  59. package/lib/components/VKbd/VKbd.css +2 -0
  60. package/lib/components/VList/VList.css +12 -4
  61. package/lib/components/VList/VListItem.css +21 -11
  62. package/lib/components/VList/VListItem.mjs +1 -1
  63. package/lib/components/VList/VListItem.mjs.map +1 -1
  64. package/lib/components/VList/VListItem.sass +1 -1
  65. package/lib/components/VMain/VMain.css +2 -0
  66. package/lib/components/VMenu/VMenu.css +6 -0
  67. package/lib/components/VMenu/VMenu.mjs +20 -4
  68. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  69. package/lib/components/VMenu/index.d.mts +27 -12
  70. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +9 -3
  71. package/lib/components/VOtpInput/VOtpInput.css +3 -1
  72. package/lib/components/VOtpInput/VOtpInput.sass +1 -2
  73. package/lib/components/VOverflowBtn/VOverflowBtn.sass +1 -1
  74. package/lib/components/VOverlay/VOverlay.mjs +5 -4
  75. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  76. package/lib/components/VOverlay/useActivator.mjs +3 -2
  77. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  78. package/lib/components/VSelect/VSelect.css +4 -0
  79. package/lib/components/VSelect/index.d.mts +42 -24
  80. package/lib/components/VSelectionControl/VSelectionControl.css +6 -4
  81. package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
  82. package/lib/components/VSheet/VSheet.css +12 -4
  83. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +6 -4
  84. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +9 -8
  85. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  86. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -2
  87. package/lib/components/VSlider/VSliderThumb.sass +2 -2
  88. package/lib/components/VSnackbar/VSnackbar.css +2 -0
  89. package/lib/components/VSnackbar/VSnackbar.mjs +4 -4
  90. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  91. package/lib/components/VSnackbar/index.d.mts +3 -3
  92. package/lib/components/VSpeedDial/index.d.mts +28 -13
  93. package/lib/components/VStepper/VStepper.css +8 -2
  94. package/lib/components/VStepper/VStepper.sass +2 -4
  95. package/lib/components/VStepper/VStepperItem.css +4 -1
  96. package/lib/components/VStepper/VStepperItem.sass +1 -1
  97. package/lib/components/VSwitch/VSwitch.css +2 -0
  98. package/lib/components/VSwitch/VSwitch.sass +10 -10
  99. package/lib/components/VSystemBar/VSystemBar.css +14 -8
  100. package/lib/components/VTable/VTable.css +8 -4
  101. package/lib/components/VTable/VTable.sass +2 -3
  102. package/lib/components/VTimeline/VTimeline.css +2 -0
  103. package/lib/components/VToolbar/VToolbar.css +21 -7
  104. package/lib/components/VToolbar/VToolbar.sass +1 -2
  105. package/lib/components/VTooltip/index.d.mts +3 -3
  106. package/lib/components/VTreeview/VTreeview.sass +9 -9
  107. package/lib/components/index.d.mts +193 -109
  108. package/lib/entry-bundler.mjs +1 -1
  109. package/lib/framework.mjs +1 -1
  110. package/lib/index.d.mts +37 -37
  111. package/lib/labs/VNumberInput/VNumberInput.mjs +60 -36
  112. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  113. package/lib/labs/VNumberInput/index.d.mts +17 -8
  114. package/lib/labs/VPicker/VPicker.css +6 -2
  115. package/lib/labs/VPicker/VPicker.sass +2 -3
  116. package/lib/labs/VPullToRefresh/VPullToRefresh.mjs +4 -3
  117. package/lib/labs/VPullToRefresh/VPullToRefresh.mjs.map +1 -1
  118. package/lib/labs/VPullToRefresh/index.d.mts +9 -0
  119. package/lib/labs/VSnackbarQueue/index.d.mts +3 -3
  120. package/lib/labs/components.d.mts +29 -11
  121. package/lib/styles/generic/_colors.scss +9 -3
  122. package/lib/styles/main.css +520 -0
  123. package/lib/styles/tools/_absolute.sass +8 -7
  124. package/lib/styles/tools/_border.sass +4 -3
  125. package/lib/styles/tools/_display.sass +8 -7
  126. package/lib/styles/tools/_elevation.sass +4 -2
  127. package/lib/styles/tools/_index.sass +0 -1
  128. package/lib/styles/tools/_radius.sass +6 -5
  129. package/lib/styles/tools/_rounded.sass +2 -1
  130. package/lib/styles/tools/_theme.sass +3 -2
  131. package/lib/styles/tools/_typography.sass +6 -5
  132. package/lib/styles/tools/_utilities.sass +5 -5
  133. package/lib/styles/utilities/_index.sass +7 -7
  134. package/package.json +1 -1
  135. package/lib/styles/tools/_sheet.sass +0 -14
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.0-beta.1-dev.2024-07-29
2
+ * Vuetify v3.7.0-beta.1-dev.2024-08-01
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -5953,7 +5953,7 @@
5953
5953
  "indeterminate": true,
5954
5954
  "width": "2"
5955
5955
  }, null)])]
5956
- }), [[Ripple, !isDisabled.value && !!props.ripple, '', {
5956
+ }), [[Ripple, !isDisabled.value && props.ripple, '', {
5957
5957
  center: !!props.icon
5958
5958
  }]]);
5959
5959
  });
@@ -6251,7 +6251,7 @@
6251
6251
  "defaults": {
6252
6252
  VImg: {
6253
6253
  cover: true,
6254
- image: props.image
6254
+ src: props.image
6255
6255
  },
6256
6256
  VIcon: {
6257
6257
  icon: props.icon
@@ -9195,7 +9195,7 @@
9195
9195
  function onKeyDown(e) {
9196
9196
  if (e.key === 'Enter' || e.key === ' ') {
9197
9197
  e.preventDefault();
9198
- onClick(e);
9198
+ e.target.dispatchEvent(new MouseEvent('click', e));
9199
9199
  }
9200
9200
  }
9201
9201
  useRender(() => {
@@ -10512,7 +10512,8 @@
10512
10512
  function useActivator(props, _ref) {
10513
10513
  let {
10514
10514
  isActive,
10515
- isTop
10515
+ isTop,
10516
+ contentEl
10516
10517
  } = _ref;
10517
10518
  const vm = getCurrentInstance('useActivator');
10518
10519
  const activatorEl = vue.ref();
@@ -10629,7 +10630,7 @@
10629
10630
  return events;
10630
10631
  });
10631
10632
  vue.watch(isTop, val => {
10632
- if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered))) {
10633
+ if (val && (props.openOnHover && !isHovered && (!openOnFocus.value || !isFocused) || openOnFocus.value && !isFocused && (!props.openOnHover || !isHovered)) && !contentEl.value?.contains(document.activeElement)) {
10633
10634
  isActive.value = false;
10634
10635
  }
10635
10636
  });
@@ -11035,6 +11036,9 @@
11035
11036
  attrs,
11036
11037
  emit
11037
11038
  } = _ref;
11039
+ const root = vue.ref();
11040
+ const scrimEl = vue.ref();
11041
+ const contentEl = vue.ref();
11038
11042
  const model = useProxiedModel(props, 'modelValue');
11039
11043
  const isActive = vue.computed({
11040
11044
  get: () => model.value,
@@ -11072,7 +11076,8 @@
11072
11076
  scrimEvents
11073
11077
  } = useActivator(props, {
11074
11078
  isActive,
11075
- isTop: localTop
11079
+ isTop: localTop,
11080
+ contentEl
11076
11081
  });
11077
11082
  const {
11078
11083
  teleportTarget
@@ -11093,9 +11098,6 @@
11093
11098
  vue.watch(() => props.disabled, v => {
11094
11099
  if (v) isActive.value = false;
11095
11100
  });
11096
- const root = vue.ref();
11097
- const scrimEl = vue.ref();
11098
- const contentEl = vue.ref();
11099
11101
  const {
11100
11102
  contentStyles,
11101
11103
  updateLocation
@@ -11346,10 +11348,12 @@
11346
11348
  // TODO
11347
11349
  // disableKeys: Boolean,
11348
11350
  id: String,
11351
+ submenu: Boolean,
11349
11352
  ...omit(makeVOverlayProps({
11350
11353
  closeDelay: 250,
11351
11354
  closeOnContentClick: true,
11352
11355
  locationStrategy: 'connected',
11356
+ location: undefined,
11353
11357
  openDelay: 300,
11354
11358
  scrim: false,
11355
11359
  scrollStrategy: 'reposition',
@@ -11372,6 +11376,9 @@
11372
11376
  const {
11373
11377
  scopeId
11374
11378
  } = useScopeId();
11379
+ const {
11380
+ isRtl
11381
+ } = useRtl();
11375
11382
  const uid = getUid();
11376
11383
  const id = vue.computed(() => props.id || `v-menu-${uid}`);
11377
11384
  const overlay = vue.ref();
@@ -11386,7 +11393,7 @@
11386
11393
  },
11387
11394
  closeParents(e) {
11388
11395
  setTimeout(() => {
11389
- if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11396
+ if (!openChildren.value.size && !props.persistent && (e == null || overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl))) {
11390
11397
  isActive.value = false;
11391
11398
  parent?.closeParents();
11392
11399
  }
@@ -11434,9 +11441,9 @@
11434
11441
  isActive.value = false;
11435
11442
  overlay.value?.activatorEl?.focus();
11436
11443
  }
11437
- } else if (['Enter', ' '].includes(e.key) && props.closeOnContentClick) {
11444
+ } else if (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {
11438
11445
  isActive.value = false;
11439
- parent?.closeParents();
11446
+ overlay.value?.activatorEl?.focus();
11440
11447
  }
11441
11448
  }
11442
11449
  function onActivatorKeydown(e) {
@@ -11445,12 +11452,21 @@
11445
11452
  if (el && isActive.value) {
11446
11453
  if (e.key === 'ArrowDown') {
11447
11454
  e.preventDefault();
11455
+ e.stopImmediatePropagation();
11448
11456
  focusChild(el, 'next');
11449
11457
  } else if (e.key === 'ArrowUp') {
11450
11458
  e.preventDefault();
11459
+ e.stopImmediatePropagation();
11451
11460
  focusChild(el, 'prev');
11461
+ } else if (props.submenu) {
11462
+ if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {
11463
+ isActive.value = false;
11464
+ } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {
11465
+ e.preventDefault();
11466
+ focusChild(el, 'first');
11467
+ }
11452
11468
  }
11453
- } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {
11469
+ } else if (props.submenu ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight') : ['ArrowDown', 'ArrowUp'].includes(e.key)) {
11454
11470
  isActive.value = true;
11455
11471
  e.preventDefault();
11456
11472
  setTimeout(() => setTimeout(() => onActivatorKeydown(e)));
@@ -11474,6 +11490,7 @@
11474
11490
  "onUpdate:modelValue": $event => isActive.value = $event,
11475
11491
  "absolute": true,
11476
11492
  "activatorProps": activatorProps.value,
11493
+ "location": props.location ?? (props.submenu ? 'end' : 'bottom'),
11477
11494
  "onClick:outside": onClickOutside,
11478
11495
  "onKeydown": onKeydown
11479
11496
  }, scopeId), {
@@ -23195,6 +23212,8 @@
23195
23212
  let {
23196
23213
  slots
23197
23214
  } = _ref;
23215
+ const layoutItemStyles = vue.ref();
23216
+ const layoutIsReady = vue.shallowRef();
23198
23217
  const {
23199
23218
  themeClasses
23200
23219
  } = provideTheme(props);
@@ -23219,17 +23238,20 @@
23219
23238
  autoHeight.value = entries[0].target.clientHeight;
23220
23239
  });
23221
23240
  const height = vue.computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));
23222
- const {
23223
- layoutItemStyles,
23224
- layoutIsReady
23225
- } = useLayoutItem({
23226
- id: props.name,
23227
- order: vue.computed(() => parseInt(props.order, 10)),
23228
- position: vue.computed(() => 'bottom'),
23229
- layoutSize: height,
23230
- elementSize: vue.computed(() => props.height === 'auto' ? undefined : height.value),
23231
- active: vue.computed(() => props.app),
23232
- absolute: vue.toRef(props, 'absolute')
23241
+ useToggleScope(() => props.app, () => {
23242
+ const layout = useLayoutItem({
23243
+ id: props.name,
23244
+ order: vue.computed(() => parseInt(props.order, 10)),
23245
+ position: vue.computed(() => 'bottom'),
23246
+ layoutSize: height,
23247
+ elementSize: vue.computed(() => props.height === 'auto' ? undefined : height.value),
23248
+ active: vue.computed(() => props.app),
23249
+ absolute: vue.toRef(props, 'absolute')
23250
+ });
23251
+ vue.watchEffect(() => {
23252
+ layoutItemStyles.value = layout.layoutItemStyles.value;
23253
+ layoutIsReady.value = layout.layoutIsReady;
23254
+ });
23233
23255
  });
23234
23256
  useRender(() => vue.createVNode(props.tag, {
23235
23257
  "ref": resizeRef,
@@ -23238,7 +23260,7 @@
23238
23260
  height: convertToUnit(props.height)
23239
23261
  }, props.style]
23240
23262
  }, slots));
23241
- return props.app ? layoutIsReady : {};
23263
+ return props.app ? layoutIsReady.value : {};
23242
23264
  }
23243
23265
  });
23244
23266
 
@@ -25379,16 +25401,17 @@
25379
25401
  const items = vue.computed(() => genStructure(wrapInArray(props.type).join(',')));
25380
25402
  useRender(() => {
25381
25403
  const isLoading = !slots.default || props.loading;
25382
- return vue.createVNode("div", {
25404
+ const loadingProps = props.boilerplate || !isLoading ? {} : {
25405
+ ariaLive: 'polite',
25406
+ ariaLabel: t(props.loadingText),
25407
+ role: 'alert'
25408
+ };
25409
+ return vue.createVNode("div", vue.mergeProps({
25383
25410
  "class": ['v-skeleton-loader', {
25384
25411
  'v-skeleton-loader--boilerplate': props.boilerplate
25385
25412
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
25386
- "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}],
25387
- "aria-busy": !props.boilerplate ? isLoading : undefined,
25388
- "aria-live": !props.boilerplate ? 'polite' : undefined,
25389
- "aria-label": !props.boilerplate ? t(props.loadingText) : undefined,
25390
- "role": !props.boilerplate ? 'alert' : undefined
25391
- }, [isLoading ? items.value : slots.default?.()]);
25413
+ "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]
25414
+ }, loadingProps), [isLoading ? items.value : slots.default?.()]);
25392
25415
  });
25393
25416
  return {};
25394
25417
  }
@@ -25421,14 +25444,14 @@
25421
25444
  // Types
25422
25445
 
25423
25446
  function useCountdown(milliseconds) {
25424
- const time = vue.shallowRef(milliseconds);
25447
+ const time = vue.shallowRef(milliseconds());
25425
25448
  let timer = -1;
25426
25449
  function clear() {
25427
25450
  clearInterval(timer);
25428
25451
  }
25429
25452
  function reset() {
25430
25453
  clear();
25431
- vue.nextTick(() => time.value = milliseconds);
25454
+ vue.nextTick(() => time.value = milliseconds());
25432
25455
  }
25433
25456
  function start(el) {
25434
25457
  const style = el ? getComputedStyle(el) : {
@@ -25440,7 +25463,7 @@
25440
25463
  const startTime = performance.now();
25441
25464
  timer = window.setInterval(() => {
25442
25465
  const elapsed = performance.now() - startTime + interval;
25443
- time.value = Math.max(milliseconds - elapsed, 0);
25466
+ time.value = Math.max(milliseconds() - elapsed, 0);
25444
25467
  if (time.value <= 0) clear();
25445
25468
  }, interval);
25446
25469
  }
@@ -25500,7 +25523,7 @@
25500
25523
  const {
25501
25524
  roundedClasses
25502
25525
  } = useRounded(props);
25503
- const countdown = useCountdown(Number(props.timeout));
25526
+ const countdown = useCountdown(() => Number(props.timeout));
25504
25527
  const overlay = vue.ref();
25505
25528
  const timerRef = vue.ref();
25506
25529
  const isHovering = vue.shallowRef(false);
@@ -28179,7 +28202,7 @@
28179
28202
  goTo
28180
28203
  };
28181
28204
  }
28182
- const version$1 = "3.7.0-beta.1-dev.2024-07-29";
28205
+ const version$1 = "3.7.0-beta.1-dev.2024-08-01";
28183
28206
  createVuetify$1.version = version$1;
28184
28207
 
28185
28208
  // Vue's inject() can only be used in setup
@@ -28204,7 +28227,7 @@
28204
28227
  ...options
28205
28228
  });
28206
28229
  };
28207
- const version = "3.7.0-beta.1-dev.2024-07-29";
28230
+ const version = "3.7.0-beta.1-dev.2024-08-01";
28208
28231
  createVuetify.version = version;
28209
28232
 
28210
28233
  exports.blueprints = index;