@vuetify/nightly 3.5.3-dev.2024-02-08 → 3.5.3-dev.2024-02-25

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 (52) hide show
  1. package/CHANGELOG.md +4 -2
  2. package/dist/json/attributes.json +5 -5
  3. package/dist/json/importMap-labs.json +8 -8
  4. package/dist/json/importMap.json +126 -126
  5. package/dist/json/web-types.json +6 -6
  6. package/dist/vuetify-labs.css +2131 -2131
  7. package/dist/vuetify-labs.d.ts +22 -21
  8. package/dist/vuetify-labs.esm.js +58 -62
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +57 -61
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +1360 -1360
  13. package/dist/vuetify.d.ts +62 -61
  14. package/dist/vuetify.esm.js +58 -62
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +57 -61
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +909 -914
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VApp/VApp.mjs +5 -2
  22. package/lib/components/VApp/VApp.mjs.map +1 -1
  23. package/lib/components/VApp/index.d.mts +6 -6
  24. package/lib/components/VAppBar/VAppBar.mjs +5 -5
  25. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  26. package/lib/components/VAppBar/index.d.mts +2 -2
  27. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +5 -3
  28. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  29. package/lib/components/VBottomNavigation/index.d.mts +2 -2
  30. package/lib/components/VFooter/VFooter.mjs +3 -2
  31. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  32. package/lib/components/VLabel/VLabel.sass +1 -1
  33. package/lib/components/VLabel/_variables.scss +1 -0
  34. package/lib/components/VLayout/VLayout.mjs +5 -2
  35. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  36. package/lib/components/VLayout/VLayoutItem.mjs +6 -4
  37. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  38. package/lib/components/VLayout/index.d.mts +9 -9
  39. package/lib/components/VMain/VMain.mjs +3 -2
  40. package/lib/components/VMain/VMain.mjs.map +1 -1
  41. package/lib/components/VMain/index.d.mts +2 -2
  42. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +7 -7
  43. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  44. package/lib/components/index.d.mts +21 -21
  45. package/lib/composables/layout.mjs +14 -37
  46. package/lib/composables/layout.mjs.map +1 -1
  47. package/lib/entry-bundler.mjs +1 -1
  48. package/lib/framework.mjs +1 -1
  49. package/lib/index.d.mts +41 -40
  50. package/lib/util/helpers.mjs +11 -1
  51. package/lib/util/helpers.mjs.map +1 -1
  52. package/package.json +1 -1
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.5.3-dev.2024-02-08
2
+ * Vuetify v3.5.3-dev.2024-02-25
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -543,6 +543,16 @@
543
543
  const timeoutId = window.setTimeout(cb, timeout);
544
544
  return () => window.clearTimeout(timeoutId);
545
545
  }
546
+ function eagerComputed(fn, options) {
547
+ const result = vue.shallowRef();
548
+ vue.watchEffect(() => {
549
+ result.value = fn();
550
+ }, {
551
+ flush: 'sync',
552
+ ...options
553
+ });
554
+ return vue.readonly(result);
555
+ }
546
556
 
547
557
  // Utilities
548
558
  const block = ['top', 'bottom'];
@@ -1607,7 +1617,9 @@
1607
1617
  function useLayout() {
1608
1618
  const layout = vue.inject(VuetifyLayoutKey);
1609
1619
  if (!layout) throw new Error('[Vuetify] Could not find injected layout');
1620
+ const layoutIsReady = vue.nextTick();
1610
1621
  return {
1622
+ layoutIsReady,
1611
1623
  getLayoutItem: layout.getLayoutItem,
1612
1624
  mainRect: layout.mainRect,
1613
1625
  mainStyles: layout.mainStyles
@@ -1624,6 +1636,7 @@
1624
1636
  const isKeptAlive = vue.shallowRef(false);
1625
1637
  vue.onDeactivated(() => isKeptAlive.value = true);
1626
1638
  vue.onActivated(() => isKeptAlive.value = false);
1639
+ const layoutIsReady = vue.nextTick();
1627
1640
  const {
1628
1641
  layoutItemStyles,
1629
1642
  layoutItemScrimStyles
@@ -1636,7 +1649,8 @@
1636
1649
  return {
1637
1650
  layoutItemStyles,
1638
1651
  layoutRect: layout.layoutRect,
1639
- layoutItemScrimStyles
1652
+ layoutItemScrimStyles,
1653
+ layoutIsReady
1640
1654
  };
1641
1655
  }
1642
1656
  const generateLayers = (layout, positions, layoutSizes, activeItems) => {
@@ -1682,29 +1696,7 @@
1682
1696
  resizeRef,
1683
1697
  contentRect: layoutRect
1684
1698
  } = useResizeObserver();
1685
- const computedOverlaps = vue.computed(() => {
1686
- const map = new Map();
1687
- const overlaps = props.overlaps ?? [];
1688
- for (const overlap of overlaps.filter(item => item.includes(':'))) {
1689
- const [top, bottom] = overlap.split(':');
1690
- if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;
1691
- const topPosition = positions.get(top);
1692
- const bottomPosition = positions.get(bottom);
1693
- const topAmount = layoutSizes.get(top);
1694
- const bottomAmount = layoutSizes.get(bottom);
1695
- if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;
1696
- map.set(bottom, {
1697
- position: topPosition.value,
1698
- amount: parseInt(topAmount.value, 10)
1699
- });
1700
- map.set(top, {
1701
- position: bottomPosition.value,
1702
- amount: -parseInt(bottomAmount.value, 10)
1703
- });
1704
- }
1705
- return map;
1706
- });
1707
- const layers = vue.computed(() => {
1699
+ const layers = eagerComputed(() => {
1708
1700
  const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);
1709
1701
  const layout = [];
1710
1702
  for (const p of uniquePriorities) {
@@ -1730,7 +1722,7 @@
1730
1722
  })
1731
1723
  };
1732
1724
  });
1733
- const items = vue.computed(() => {
1725
+ const items = eagerComputed(() => {
1734
1726
  return layers.value.slice(1).map((_ref, index) => {
1735
1727
  let {
1736
1728
  id
@@ -1752,10 +1744,7 @@
1752
1744
  return items.value.find(item => item.id === id);
1753
1745
  };
1754
1746
  const rootVm = getCurrentInstance('createLayout');
1755
- const isMounted = vue.shallowRef(false);
1756
- vue.onMounted(() => {
1757
- isMounted.value = true;
1758
- });
1747
+ const layoutIsReady = vue.nextTick();
1759
1748
  vue.provide(VuetifyLayoutKey, {
1760
1749
  register: (vm, _ref2) => {
1761
1750
  let {
@@ -1791,13 +1780,9 @@
1791
1780
  transition: 'none'
1792
1781
  })
1793
1782
  };
1794
- if (!isMounted.value) return styles;
1783
+ if (index.value < 0) throw new Error(`Layout item "${id}" is missing`);
1795
1784
  const item = items.value[index.value];
1796
1785
  if (!item) throw new Error(`[Vuetify] Could not find layout item "${id}"`);
1797
- const overlap = computedOverlaps.value.get(id);
1798
- if (overlap) {
1799
- item[overlap.position] += overlap.amount;
1800
- }
1801
1786
  return {
1802
1787
  ...styles,
1803
1788
  height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
@@ -1830,7 +1815,8 @@
1830
1815
  getLayoutItem,
1831
1816
  items,
1832
1817
  layoutRect,
1833
- rootZIndex
1818
+ rootZIndex,
1819
+ layoutIsReady
1834
1820
  });
1835
1821
  const layoutClasses = vue.computed(() => ['v-layout', {
1836
1822
  'v-layout--full-height': props.fullHeight
@@ -1846,6 +1832,7 @@
1846
1832
  getLayoutItem,
1847
1833
  items,
1848
1834
  layoutRect,
1835
+ layoutIsReady,
1849
1836
  layoutRef: resizeRef
1850
1837
  };
1851
1838
  }
@@ -2540,7 +2527,9 @@
2540
2527
  "style": [props.style]
2541
2528
  }, [vue.createVNode("div", {
2542
2529
  "class": "v-application__wrap"
2543
- }, [slots.default?.()])]));
2530
+ }, [vue.createVNode(vue.Suspense, null, {
2531
+ default: () => [vue.createVNode(vue.Fragment, null, [slots.default?.()])]
2532
+ })])]));
2544
2533
  return {
2545
2534
  getLayoutItem,
2546
2535
  items,
@@ -3873,9 +3862,8 @@
3873
3862
  const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
3874
3863
  const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
3875
3864
  const height = vue.computed(() => {
3876
- if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
3877
- const height = vToolbarRef.value?.contentHeight ?? 0;
3878
- const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
3865
+ const height = Number(vToolbarRef.value?.contentHeight ?? props.height);
3866
+ const extensionHeight = Number(vToolbarRef.value?.extensionHeight ?? 0);
3879
3867
  return height + extensionHeight;
3880
3868
  });
3881
3869
  useToggleScope(vue.computed(() => !!props.scrollBehavior), () => {
@@ -3895,7 +3883,8 @@
3895
3883
  ssrBootStyles
3896
3884
  } = useSsrBoot();
3897
3885
  const {
3898
- layoutItemStyles
3886
+ layoutItemStyles,
3887
+ layoutIsReady
3899
3888
  } = useLayoutItem({
3900
3889
  id: props.name,
3901
3890
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -3923,7 +3912,7 @@
3923
3912
  "flat": isFlat.value
3924
3913
  }), slots);
3925
3914
  });
3926
- return {};
3915
+ return layoutIsReady;
3927
3916
  }
3928
3917
  });
3929
3918
 
@@ -12919,9 +12908,10 @@
12919
12908
  ssrBootStyles
12920
12909
  } = useSsrBoot();
12921
12910
  const height = vue.computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
12922
- const isActive = vue.toRef(props, 'active');
12911
+ const isActive = useProxiedModel(props, 'modelValue', props.modelValue);
12923
12912
  const {
12924
- layoutItemStyles
12913
+ layoutItemStyles,
12914
+ layoutIsReady
12925
12915
  } = useLayoutItem({
12926
12916
  id: props.name,
12927
12917
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -12959,7 +12949,7 @@
12959
12949
  }, [slots.default()])]
12960
12950
  });
12961
12951
  });
12962
- return {};
12952
+ return layoutIsReady;
12963
12953
  }
12964
12954
  });
12965
12955
 
@@ -21530,7 +21520,8 @@
21530
21520
  });
21531
21521
  const height = vue.computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));
21532
21522
  const {
21533
- layoutItemStyles
21523
+ layoutItemStyles,
21524
+ layoutIsReady
21534
21525
  } = useLayoutItem({
21535
21526
  id: props.name,
21536
21527
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -21547,7 +21538,7 @@
21547
21538
  height: convertToUnit(props.height)
21548
21539
  }, props.style]
21549
21540
  }, slots));
21550
- return {};
21541
+ return props.app ? layoutIsReady : {};
21551
21542
  }
21552
21543
  });
21553
21544
 
@@ -21970,7 +21961,9 @@
21970
21961
  "ref": layoutRef,
21971
21962
  "class": [layoutClasses.value, props.class],
21972
21963
  "style": [layoutStyles.value, props.style]
21973
- }, [slots.default?.()]));
21964
+ }, [vue.createVNode(vue.Suspense, null, {
21965
+ default: () => [vue.createVNode(vue.Fragment, null, [slots.default?.()])]
21966
+ })]));
21974
21967
  return {
21975
21968
  getLayoutItem,
21976
21969
  items
@@ -22001,7 +21994,8 @@
22001
21994
  slots
22002
21995
  } = _ref;
22003
21996
  const {
22004
- layoutItemStyles
21997
+ layoutItemStyles,
21998
+ layoutIsReady
22005
21999
  } = useLayoutItem({
22006
22000
  id: props.name,
22007
22001
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -22011,10 +22005,11 @@
22011
22005
  active: vue.toRef(props, 'modelValue'),
22012
22006
  absolute: vue.toRef(props, 'absolute')
22013
22007
  });
22014
- return () => vue.createVNode("div", {
22008
+ useRender(() => vue.createVNode("div", {
22015
22009
  "class": ['v-layout-item', props.class],
22016
22010
  "style": [layoutItemStyles.value, props.style]
22017
- }, [slots.default?.()]);
22011
+ }, [slots.default?.()]));
22012
+ return layoutIsReady;
22018
22013
  }
22019
22014
  });
22020
22015
 
@@ -22121,7 +22116,8 @@
22121
22116
  slots
22122
22117
  } = _ref;
22123
22118
  const {
22124
- mainStyles
22119
+ mainStyles,
22120
+ layoutIsReady
22125
22121
  } = useLayout();
22126
22122
  const {
22127
22123
  ssrBootStyles
@@ -22136,7 +22132,7 @@
22136
22132
  "class": "v-main__scroller"
22137
22133
  }, [slots.default?.()]) : slots.default?.()]
22138
22134
  }));
22139
- return {};
22135
+ return layoutIsReady;
22140
22136
  }
22141
22137
  });
22142
22138
 
@@ -22561,10 +22557,9 @@
22561
22557
  vue.watch(() => props.permanent, val => {
22562
22558
  if (val) isActive.value = true;
22563
22559
  });
22564
- vue.onBeforeMount(() => {
22565
- if (props.modelValue != null || isTemporary.value) return;
22560
+ if (props.modelValue == null && !isTemporary.value) {
22566
22561
  isActive.value = props.permanent || !mobile.value;
22567
- });
22562
+ }
22568
22563
  const {
22569
22564
  isDragging,
22570
22565
  dragProgress,
@@ -22582,7 +22577,8 @@
22582
22577
  });
22583
22578
  const {
22584
22579
  layoutItemStyles,
22585
- layoutItemScrimStyles
22580
+ layoutItemScrimStyles,
22581
+ layoutIsReady
22586
22582
  } = useLayoutItem({
22587
22583
  id: props.name,
22588
22584
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -22666,9 +22662,9 @@
22666
22662
  }, scopeId), null)]
22667
22663
  })]);
22668
22664
  });
22669
- return {
22665
+ return layoutIsReady.then(() => ({
22670
22666
  isStuck
22671
- };
22667
+ }));
22672
22668
  }
22673
22669
  });
22674
22670
 
@@ -25669,7 +25665,7 @@
25669
25665
  goTo
25670
25666
  };
25671
25667
  }
25672
- const version$1 = "3.5.3-dev.2024-02-08";
25668
+ const version$1 = "3.5.3-dev.2024-02-25";
25673
25669
  createVuetify$1.version = version$1;
25674
25670
 
25675
25671
  // Vue's inject() can only be used in setup
@@ -25694,7 +25690,7 @@
25694
25690
  ...options
25695
25691
  });
25696
25692
  };
25697
- const version = "3.5.3-dev.2024-02-08";
25693
+ const version = "3.5.3-dev.2024-02-25";
25698
25694
  createVuetify.version = version;
25699
25695
 
25700
25696
  exports.components = components;