@vuetify/nightly 3.6.8-master.2024-06-11 → 3.6.9-master.2024-06-15

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 (49) hide show
  1. package/CHANGELOG.md +5 -6
  2. package/dist/json/attributes.json +4 -4
  3. package/dist/json/importMap-labs.json +18 -18
  4. package/dist/json/importMap.json +138 -138
  5. package/dist/json/web-types.json +13 -14
  6. package/dist/vuetify-labs.css +3435 -3435
  7. package/dist/vuetify-labs.d.ts +44 -45
  8. package/dist/vuetify-labs.esm.js +64 -33
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +64 -33
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +955 -955
  13. package/dist/vuetify.d.ts +86 -93
  14. package/dist/vuetify.esm.js +52 -27
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +52 -27
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +34 -31
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +23 -11
  22. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  23. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +13 -5
  24. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  25. package/lib/components/VFab/VFab.mjs +4 -7
  26. package/lib/components/VFab/VFab.mjs.map +1 -1
  27. package/lib/components/VFab/index.d.mts +46 -49
  28. package/lib/components/VList/VList.mjs +1 -0
  29. package/lib/components/VList/VList.mjs.map +1 -1
  30. package/lib/components/VList/index.d.mts +2 -0
  31. package/lib/components/VMenu/VMenu.mjs +1 -1
  32. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  33. package/lib/components/VOverlay/VOverlay.mjs +4 -3
  34. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  35. package/lib/components/index.d.mts +38 -45
  36. package/lib/composables/scroll.mjs +6 -0
  37. package/lib/composables/scroll.mjs.map +1 -1
  38. package/lib/entry-bundler.mjs +1 -1
  39. package/lib/framework.mjs +1 -1
  40. package/lib/index.d.mts +48 -48
  41. package/lib/labs/VTimePicker/VTimePickerClock.mjs +3 -1
  42. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  43. package/lib/labs/VTimePicker/VTimePickerControls.mjs +7 -2
  44. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  45. package/lib/labs/VTreeview/VTreeview.mjs +3 -4
  46. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  47. package/lib/labs/VTreeview/index.d.mts +6 -0
  48. package/lib/labs/components.d.mts +6 -0
  49. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.8-master.2024-06-11
2
+ * Vuetify v3.6.9-master.2024-06-15
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -3760,6 +3760,7 @@
3760
3760
  canScroll
3761
3761
  } = args;
3762
3762
  let previousScroll = 0;
3763
+ let previousScrollHeight = 0;
3763
3764
  const target = vue.ref(null);
3764
3765
  const currentScroll = vue.shallowRef(0);
3765
3766
  const savedScroll = vue.shallowRef(0);
@@ -3782,6 +3783,11 @@
3782
3783
  if (!targetEl || canScroll && !canScroll.value) return;
3783
3784
  previousScroll = currentScroll.value;
3784
3785
  currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
3786
+ const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight;
3787
+ if (previousScrollHeight !== currentScrollHeight) {
3788
+ previousScrollHeight = currentScrollHeight;
3789
+ return;
3790
+ }
3785
3791
  isScrollingUp.value = currentScroll.value < previousScroll;
3786
3792
  currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
3787
3793
  };
@@ -9388,6 +9394,7 @@
9388
9394
  nav: Boolean,
9389
9395
  'onClick:open': EventProp(),
9390
9396
  'onClick:select': EventProp(),
9397
+ 'onUpdate:opened': EventProp(),
9391
9398
  ...makeNestedProps({
9392
9399
  selectStrategy: 'single-leaf',
9393
9400
  openStrategy: 'list'
@@ -10791,9 +10798,6 @@
10791
10798
  if (!(v && props.disabled)) model.value = v;
10792
10799
  }
10793
10800
  });
10794
- const {
10795
- teleportTarget
10796
- } = useTeleport(vue.computed(() => props.attach || props.contained));
10797
10801
  const {
10798
10802
  themeClasses
10799
10803
  } = provideTheme(props);
@@ -10826,6 +10830,10 @@
10826
10830
  isActive,
10827
10831
  isTop: localTop
10828
10832
  });
10833
+ const potentialShadowDomRoot = vue.computed(() => activatorEl?.value?.getRootNode());
10834
+ const {
10835
+ teleportTarget
10836
+ } = useTeleport(vue.computed(() => props.attach || props.contained || potentialShadowDomRoot.value instanceof ShadowRoot ? potentialShadowDomRoot.value : false));
10829
10837
  const {
10830
10838
  dimensionStyles
10831
10839
  } = useDimension(props);
@@ -11168,7 +11176,7 @@
11168
11176
  function onKeydown(e) {
11169
11177
  if (props.disabled) return;
11170
11178
  if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {
11171
- if (e.key === 'Enter' && e.target instanceof HTMLTextAreaElement) return;
11179
+ if (e.key === 'Enter' && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest('form'))) return;
11172
11180
  if (e.key === 'Enter') e.preventDefault();
11173
11181
  const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
11174
11182
  if (!nextElement) {
@@ -22347,6 +22355,7 @@
22347
22355
  expandIcon: props.expandIcon,
22348
22356
  readonly: props.readonly
22349
22357
  }));
22358
+ const icon = vue.computed(() => expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon);
22350
22359
  useRender(() => vue.withDirectives(vue.createVNode("button", {
22351
22360
  "class": ['v-expansion-panel-title', {
22352
22361
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
@@ -22361,11 +22370,17 @@
22361
22370
  "onClick": !props.readonly ? expansionPanel.toggle : undefined
22362
22371
  }, [vue.createVNode("span", {
22363
22372
  "class": "v-expansion-panel-title__overlay"
22364
- }, null), slots.default?.(slotProps.value), !props.hideActions && vue.createVNode("span", {
22365
- "class": "v-expansion-panel-title__icon"
22366
- }, [slots.actions ? slots.actions(slotProps.value) : vue.createVNode(VIcon, {
22367
- "icon": expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon
22368
- }, null)])]), [[vue.resolveDirective("ripple"), props.ripple]]));
22373
+ }, null), slots.default?.(slotProps.value), !props.hideActions && vue.createVNode(VDefaultsProvider, {
22374
+ "defaults": {
22375
+ VIcon: {
22376
+ icon: icon.value
22377
+ }
22378
+ }
22379
+ }, {
22380
+ default: () => [vue.createVNode("span", {
22381
+ "class": "v-expansion-panel-title__icon"
22382
+ }, [slots.actions?.(slotProps.value) ?? vue.createVNode(VIcon, null, null)])]
22383
+ })]), [[vue.resolveDirective("ripple"), props.ripple]]));
22369
22384
  return {};
22370
22385
  }
22371
22386
  });
@@ -22432,15 +22447,26 @@
22432
22447
  }, {
22433
22448
  default: () => [vue.createVNode("div", {
22434
22449
  "class": ['v-expansion-panel__shadow', ...elevationClasses.value]
22435
- }, null), hasTitle && vue.createVNode(VExpansionPanelTitle, vue.mergeProps({
22436
- "key": "title"
22437
- }, expansionPanelTitleProps), {
22438
- default: () => [slots.title ? slots.title() : props.title]
22439
- }), hasText && vue.createVNode(VExpansionPanelText, vue.mergeProps({
22440
- "key": "text"
22441
- }, expansionPanelTextProps), {
22442
- default: () => [slots.text ? slots.text() : props.text]
22443
- }), slots.default?.()]
22450
+ }, null), vue.createVNode(VDefaultsProvider, {
22451
+ "defaults": {
22452
+ VExpansionPanelTitle: {
22453
+ ...expansionPanelTitleProps
22454
+ },
22455
+ VExpansionPanelText: {
22456
+ ...expansionPanelTextProps
22457
+ }
22458
+ }
22459
+ }, {
22460
+ default: () => [hasTitle && vue.createVNode(VExpansionPanelTitle, {
22461
+ "key": "title"
22462
+ }, {
22463
+ default: () => [slots.title ? slots.title() : props.title]
22464
+ }), hasText && vue.createVNode(VExpansionPanelText, {
22465
+ "key": "text"
22466
+ }, {
22467
+ default: () => [slots.text ? slots.text() : props.text]
22468
+ }), slots.default?.()]
22469
+ })]
22444
22470
  });
22445
22471
  });
22446
22472
  return {
@@ -22516,15 +22542,13 @@
22516
22542
  }
22517
22543
  });
22518
22544
 
22545
+ // Types
22546
+
22519
22547
  const makeVFabProps = propsFactory({
22520
22548
  app: Boolean,
22521
22549
  appear: Boolean,
22522
22550
  extended: Boolean,
22523
22551
  layout: Boolean,
22524
- location: {
22525
- type: String,
22526
- default: 'bottom end'
22527
- },
22528
22552
  offset: Boolean,
22529
22553
  modelValue: {
22530
22554
  type: Boolean,
@@ -22534,6 +22558,7 @@
22534
22558
  active: true
22535
22559
  }), ['location']),
22536
22560
  ...makeLayoutItemProps(),
22561
+ ...makeLocationProps(),
22537
22562
  ...makeTransitionProps({
22538
22563
  transition: 'fab-transition'
22539
22564
  })
@@ -22560,11 +22585,11 @@
22560
22585
  const hasPosition = vue.computed(() => props.app || props.absolute);
22561
22586
  const position = vue.computed(() => {
22562
22587
  if (!hasPosition.value) return false;
22563
- return props.location.split(' ').shift();
22588
+ return props.location?.split(' ').shift() ?? 'bottom';
22564
22589
  });
22565
22590
  const orientation = vue.computed(() => {
22566
22591
  if (!hasPosition.value) return false;
22567
- return props.location.split(' ')[1] ?? 'end';
22592
+ return props.location?.split(' ')[1] ?? 'end';
22568
22593
  });
22569
22594
  useToggleScope(() => props.app, () => {
22570
22595
  const layout = useLayoutItem({
@@ -28764,6 +28789,7 @@
28764
28789
  return !props.allowedValues || props.allowedValues(value);
28765
28790
  }
28766
28791
  function wheel(e) {
28792
+ if (!props.scrollable || props.disabled) return;
28767
28793
  e.preventDefault();
28768
28794
  const delta = Math.sign(-e.deltaY || 1);
28769
28795
  let value = displayedValue.value;
@@ -28858,6 +28884,7 @@
28858
28884
  }
28859
28885
  }
28860
28886
  function onMouseDown(e) {
28887
+ if (props.disabled) return;
28861
28888
  e.preventDefault();
28862
28889
  window.addEventListener('mousemove', onDragMove);
28863
28890
  window.addEventListener('touchmove', onDragMove);
@@ -28888,7 +28915,7 @@
28888
28915
  }],
28889
28916
  "onMousedown": onMouseDown,
28890
28917
  "onTouchstart": onMouseDown,
28891
- "onWheel": e => props.scrollable && wheel(e),
28918
+ "onWheel": wheel,
28892
28919
  "ref": clockRef
28893
28920
  }, [vue.createVNode("div", {
28894
28921
  "class": "v-time-picker-clock__inner",
@@ -28990,6 +29017,7 @@
28990
29017
  }, [vue.createVNode(VBtn, {
28991
29018
  "active": props.selecting === 1,
28992
29019
  "color": props.selecting === 1 ? props.color : undefined,
29020
+ "disabled": props.disabled,
28993
29021
  "variant": "tonal",
28994
29022
  "class": {
28995
29023
  'v-time-picker-controls__time__btn': true,
@@ -29011,6 +29039,7 @@
29011
29039
  'v-time-picker-controls__time--with-ampm__btn': props.ampm,
29012
29040
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29013
29041
  },
29042
+ "disabled": props.disabled,
29014
29043
  "variant": "tonal",
29015
29044
  "text": props.minute == null ? '--' : pad(props.minute),
29016
29045
  "onClick": () => emit('update:selecting', SelectingTimes.Minute)
@@ -29028,6 +29057,7 @@
29028
29057
  'v-time-picker-controls__time__btn__active': props.selecting === 3,
29029
29058
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29030
29059
  },
29060
+ "disabled": props.disabled,
29031
29061
  "text": props.second == null ? '--' : pad(props.second)
29032
29062
  }, null), props.ampm && vue.createVNode("div", {
29033
29063
  "class": ['v-time-picker-controls__ampm', {
@@ -29041,8 +29071,9 @@
29041
29071
  'v-time-picker-controls__ampm__btn': true,
29042
29072
  'v-time-picker-controls__ampm__btn__active': props.period === 'am'
29043
29073
  },
29074
+ "disabled": props.disabled,
29044
29075
  "text": t('$vuetify.timePicker.am'),
29045
- "variant": "tonal",
29076
+ "variant": props.disabled && props.period === 'am' ? 'elevated' : 'tonal',
29046
29077
  "onClick": () => props.period !== 'am' ? emit('update:period', 'am') : null
29047
29078
  }, null), vue.createVNode(VBtn, {
29048
29079
  "active": props.period === 'pm',
@@ -29052,8 +29083,9 @@
29052
29083
  'v-time-picker-controls__ampm__btn': true,
29053
29084
  'v-time-picker-controls__ampm__btn__active': props.period === 'pm'
29054
29085
  },
29086
+ "disabled": props.disabled,
29055
29087
  "text": t('$vuetify.timePicker.pm'),
29056
- "variant": "tonal",
29088
+ "variant": props.disabled && props.period === 'pm' ? 'elevated' : 'tonal',
29057
29089
  "onClick": () => props.period !== 'pm' ? emit('update:period', 'pm') : null
29058
29090
  }, null)])])]);
29059
29091
  });
@@ -29637,6 +29669,7 @@
29637
29669
  let {
29638
29670
  slots
29639
29671
  } = _ref;
29672
+ const vm = getCurrentInstance('VTreeview');
29640
29673
  const {
29641
29674
  items
29642
29675
  } = useListItems(props);
@@ -29719,15 +29752,13 @@
29719
29752
  }
29720
29753
  });
29721
29754
  useRender(() => {
29722
- const listProps = VList.filterProps(props);
29755
+ const listProps = VList.filterProps(vm.vnode.props);
29723
29756
  const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
29724
29757
  return vue.createVNode(VList, vue.mergeProps({
29725
29758
  "ref": vListRef
29726
29759
  }, listProps, {
29727
29760
  "class": ['v-treeview', props.class],
29728
29761
  "style": props.style,
29729
- "opened": opened.value,
29730
- "onUpdate:opened": $event => opened.value = $event,
29731
29762
  "activated": activated.value,
29732
29763
  "onUpdate:activated": $event => activated.value = $event,
29733
29764
  "selected": selected.value,
@@ -30239,7 +30270,7 @@
30239
30270
  goTo
30240
30271
  };
30241
30272
  }
30242
- const version$1 = "3.6.8-master.2024-06-11";
30273
+ const version$1 = "3.6.9-master.2024-06-15";
30243
30274
  createVuetify$1.version = version$1;
30244
30275
 
30245
30276
  // Vue's inject() can only be used in setup
@@ -30492,7 +30523,7 @@
30492
30523
 
30493
30524
  /* eslint-disable local-rules/sort-imports */
30494
30525
 
30495
- const version = "3.6.8-master.2024-06-11";
30526
+ const version = "3.6.9-master.2024-06-15";
30496
30527
 
30497
30528
  /* eslint-disable local-rules/sort-imports */
30498
30529