@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
@@ -1,10 +1,10 @@
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
  */
6
6
 
7
- import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, ref, provide, shallowRef, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText } from 'vue';
7
+ import { Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, shallowRef, readonly, unref, warn, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, onBeforeUnmount, watch, nextTick, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createVNode, Suspense, TransitionGroup, Transition, mergeProps, isRef, toRef, onBeforeMount, withDirectives, resolveDirective, vShow, onMounted, Text, resolveDynamicComponent, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText } from 'vue';
8
8
 
9
9
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -539,6 +539,16 @@ function defer(timeout, cb) {
539
539
  const timeoutId = window.setTimeout(cb, timeout);
540
540
  return () => window.clearTimeout(timeoutId);
541
541
  }
542
+ function eagerComputed(fn, options) {
543
+ const result = shallowRef();
544
+ watchEffect(() => {
545
+ result.value = fn();
546
+ }, {
547
+ flush: 'sync',
548
+ ...options
549
+ });
550
+ return readonly(result);
551
+ }
542
552
 
543
553
  // Utilities
544
554
  const block = ['top', 'bottom'];
@@ -1603,7 +1613,9 @@ const makeLayoutItemProps = propsFactory({
1603
1613
  function useLayout() {
1604
1614
  const layout = inject$1(VuetifyLayoutKey);
1605
1615
  if (!layout) throw new Error('[Vuetify] Could not find injected layout');
1616
+ const layoutIsReady = nextTick();
1606
1617
  return {
1618
+ layoutIsReady,
1607
1619
  getLayoutItem: layout.getLayoutItem,
1608
1620
  mainRect: layout.mainRect,
1609
1621
  mainStyles: layout.mainStyles
@@ -1620,6 +1632,7 @@ function useLayoutItem(options) {
1620
1632
  const isKeptAlive = shallowRef(false);
1621
1633
  onDeactivated(() => isKeptAlive.value = true);
1622
1634
  onActivated(() => isKeptAlive.value = false);
1635
+ const layoutIsReady = nextTick();
1623
1636
  const {
1624
1637
  layoutItemStyles,
1625
1638
  layoutItemScrimStyles
@@ -1632,7 +1645,8 @@ function useLayoutItem(options) {
1632
1645
  return {
1633
1646
  layoutItemStyles,
1634
1647
  layoutRect: layout.layoutRect,
1635
- layoutItemScrimStyles
1648
+ layoutItemScrimStyles,
1649
+ layoutIsReady
1636
1650
  };
1637
1651
  }
1638
1652
  const generateLayers = (layout, positions, layoutSizes, activeItems) => {
@@ -1678,29 +1692,7 @@ function createLayout(props) {
1678
1692
  resizeRef,
1679
1693
  contentRect: layoutRect
1680
1694
  } = useResizeObserver();
1681
- const computedOverlaps = computed(() => {
1682
- const map = new Map();
1683
- const overlaps = props.overlaps ?? [];
1684
- for (const overlap of overlaps.filter(item => item.includes(':'))) {
1685
- const [top, bottom] = overlap.split(':');
1686
- if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;
1687
- const topPosition = positions.get(top);
1688
- const bottomPosition = positions.get(bottom);
1689
- const topAmount = layoutSizes.get(top);
1690
- const bottomAmount = layoutSizes.get(bottom);
1691
- if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;
1692
- map.set(bottom, {
1693
- position: topPosition.value,
1694
- amount: parseInt(topAmount.value, 10)
1695
- });
1696
- map.set(top, {
1697
- position: bottomPosition.value,
1698
- amount: -parseInt(bottomAmount.value, 10)
1699
- });
1700
- }
1701
- return map;
1702
- });
1703
- const layers = computed(() => {
1695
+ const layers = eagerComputed(() => {
1704
1696
  const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);
1705
1697
  const layout = [];
1706
1698
  for (const p of uniquePriorities) {
@@ -1726,7 +1718,7 @@ function createLayout(props) {
1726
1718
  })
1727
1719
  };
1728
1720
  });
1729
- const items = computed(() => {
1721
+ const items = eagerComputed(() => {
1730
1722
  return layers.value.slice(1).map((_ref, index) => {
1731
1723
  let {
1732
1724
  id
@@ -1748,10 +1740,7 @@ function createLayout(props) {
1748
1740
  return items.value.find(item => item.id === id);
1749
1741
  };
1750
1742
  const rootVm = getCurrentInstance('createLayout');
1751
- const isMounted = shallowRef(false);
1752
- onMounted(() => {
1753
- isMounted.value = true;
1754
- });
1743
+ const layoutIsReady = nextTick();
1755
1744
  provide(VuetifyLayoutKey, {
1756
1745
  register: (vm, _ref2) => {
1757
1746
  let {
@@ -1787,13 +1776,9 @@ function createLayout(props) {
1787
1776
  transition: 'none'
1788
1777
  })
1789
1778
  };
1790
- if (!isMounted.value) return styles;
1779
+ if (index.value < 0) throw new Error(`Layout item "${id}" is missing`);
1791
1780
  const item = items.value[index.value];
1792
1781
  if (!item) throw new Error(`[Vuetify] Could not find layout item "${id}"`);
1793
- const overlap = computedOverlaps.value.get(id);
1794
- if (overlap) {
1795
- item[overlap.position] += overlap.amount;
1796
- }
1797
1782
  return {
1798
1783
  ...styles,
1799
1784
  height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
@@ -1826,7 +1811,8 @@ function createLayout(props) {
1826
1811
  getLayoutItem,
1827
1812
  items,
1828
1813
  layoutRect,
1829
- rootZIndex
1814
+ rootZIndex,
1815
+ layoutIsReady
1830
1816
  });
1831
1817
  const layoutClasses = computed(() => ['v-layout', {
1832
1818
  'v-layout--full-height': props.fullHeight
@@ -1842,6 +1828,7 @@ function createLayout(props) {
1842
1828
  getLayoutItem,
1843
1829
  items,
1844
1830
  layoutRect,
1831
+ layoutIsReady,
1845
1832
  layoutRef: resizeRef
1846
1833
  };
1847
1834
  }
@@ -2536,7 +2523,9 @@ const VApp = genericComponent()({
2536
2523
  "style": [props.style]
2537
2524
  }, [createVNode("div", {
2538
2525
  "class": "v-application__wrap"
2539
- }, [slots.default?.()])]));
2526
+ }, [createVNode(Suspense, null, {
2527
+ default: () => [createVNode(Fragment, null, [slots.default?.()])]
2528
+ })])]));
2540
2529
  return {
2541
2530
  getLayoutItem,
2542
2531
  items,
@@ -3869,9 +3858,8 @@ const VAppBar = genericComponent()({
3869
3858
  const isFlat = computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
3870
3859
  const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
3871
3860
  const height = computed(() => {
3872
- if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
3873
- const height = vToolbarRef.value?.contentHeight ?? 0;
3874
- const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
3861
+ const height = Number(vToolbarRef.value?.contentHeight ?? props.height);
3862
+ const extensionHeight = Number(vToolbarRef.value?.extensionHeight ?? 0);
3875
3863
  return height + extensionHeight;
3876
3864
  });
3877
3865
  useToggleScope(computed(() => !!props.scrollBehavior), () => {
@@ -3891,7 +3879,8 @@ const VAppBar = genericComponent()({
3891
3879
  ssrBootStyles
3892
3880
  } = useSsrBoot();
3893
3881
  const {
3894
- layoutItemStyles
3882
+ layoutItemStyles,
3883
+ layoutIsReady
3895
3884
  } = useLayoutItem({
3896
3885
  id: props.name,
3897
3886
  order: computed(() => parseInt(props.order, 10)),
@@ -3919,7 +3908,7 @@ const VAppBar = genericComponent()({
3919
3908
  "flat": isFlat.value
3920
3909
  }), slots);
3921
3910
  });
3922
- return {};
3911
+ return layoutIsReady;
3923
3912
  }
3924
3913
  });
3925
3914
 
@@ -12915,9 +12904,10 @@ const VBottomNavigation = genericComponent()({
12915
12904
  ssrBootStyles
12916
12905
  } = useSsrBoot();
12917
12906
  const height = computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
12918
- const isActive = toRef(props, 'active');
12907
+ const isActive = useProxiedModel(props, 'modelValue', props.modelValue);
12919
12908
  const {
12920
- layoutItemStyles
12909
+ layoutItemStyles,
12910
+ layoutIsReady
12921
12911
  } = useLayoutItem({
12922
12912
  id: props.name,
12923
12913
  order: computed(() => parseInt(props.order, 10)),
@@ -12955,7 +12945,7 @@ const VBottomNavigation = genericComponent()({
12955
12945
  }, [slots.default()])]
12956
12946
  });
12957
12947
  });
12958
- return {};
12948
+ return layoutIsReady;
12959
12949
  }
12960
12950
  });
12961
12951
 
@@ -21526,7 +21516,8 @@ const VFooter = genericComponent()({
21526
21516
  });
21527
21517
  const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));
21528
21518
  const {
21529
- layoutItemStyles
21519
+ layoutItemStyles,
21520
+ layoutIsReady
21530
21521
  } = useLayoutItem({
21531
21522
  id: props.name,
21532
21523
  order: computed(() => parseInt(props.order, 10)),
@@ -21543,7 +21534,7 @@ const VFooter = genericComponent()({
21543
21534
  height: convertToUnit(props.height)
21544
21535
  }, props.style]
21545
21536
  }, slots));
21546
- return {};
21537
+ return props.app ? layoutIsReady : {};
21547
21538
  }
21548
21539
  });
21549
21540
 
@@ -21966,7 +21957,9 @@ const VLayout = genericComponent()({
21966
21957
  "ref": layoutRef,
21967
21958
  "class": [layoutClasses.value, props.class],
21968
21959
  "style": [layoutStyles.value, props.style]
21969
- }, [slots.default?.()]));
21960
+ }, [createVNode(Suspense, null, {
21961
+ default: () => [createVNode(Fragment, null, [slots.default?.()])]
21962
+ })]));
21970
21963
  return {
21971
21964
  getLayoutItem,
21972
21965
  items
@@ -21997,7 +21990,8 @@ const VLayoutItem = genericComponent()({
21997
21990
  slots
21998
21991
  } = _ref;
21999
21992
  const {
22000
- layoutItemStyles
21993
+ layoutItemStyles,
21994
+ layoutIsReady
22001
21995
  } = useLayoutItem({
22002
21996
  id: props.name,
22003
21997
  order: computed(() => parseInt(props.order, 10)),
@@ -22007,10 +22001,11 @@ const VLayoutItem = genericComponent()({
22007
22001
  active: toRef(props, 'modelValue'),
22008
22002
  absolute: toRef(props, 'absolute')
22009
22003
  });
22010
- return () => createVNode("div", {
22004
+ useRender(() => createVNode("div", {
22011
22005
  "class": ['v-layout-item', props.class],
22012
22006
  "style": [layoutItemStyles.value, props.style]
22013
- }, [slots.default?.()]);
22007
+ }, [slots.default?.()]));
22008
+ return layoutIsReady;
22014
22009
  }
22015
22010
  });
22016
22011
 
@@ -22117,7 +22112,8 @@ const VMain = genericComponent()({
22117
22112
  slots
22118
22113
  } = _ref;
22119
22114
  const {
22120
- mainStyles
22115
+ mainStyles,
22116
+ layoutIsReady
22121
22117
  } = useLayout();
22122
22118
  const {
22123
22119
  ssrBootStyles
@@ -22132,7 +22128,7 @@ const VMain = genericComponent()({
22132
22128
  "class": "v-main__scroller"
22133
22129
  }, [slots.default?.()]) : slots.default?.()]
22134
22130
  }));
22135
- return {};
22131
+ return layoutIsReady;
22136
22132
  }
22137
22133
  });
22138
22134
 
@@ -22557,10 +22553,9 @@ const VNavigationDrawer = genericComponent()({
22557
22553
  watch(() => props.permanent, val => {
22558
22554
  if (val) isActive.value = true;
22559
22555
  });
22560
- onBeforeMount(() => {
22561
- if (props.modelValue != null || isTemporary.value) return;
22556
+ if (props.modelValue == null && !isTemporary.value) {
22562
22557
  isActive.value = props.permanent || !mobile.value;
22563
- });
22558
+ }
22564
22559
  const {
22565
22560
  isDragging,
22566
22561
  dragProgress,
@@ -22578,7 +22573,8 @@ const VNavigationDrawer = genericComponent()({
22578
22573
  });
22579
22574
  const {
22580
22575
  layoutItemStyles,
22581
- layoutItemScrimStyles
22576
+ layoutItemScrimStyles,
22577
+ layoutIsReady
22582
22578
  } = useLayoutItem({
22583
22579
  id: props.name,
22584
22580
  order: computed(() => parseInt(props.order, 10)),
@@ -22662,9 +22658,9 @@ const VNavigationDrawer = genericComponent()({
22662
22658
  }, scopeId), null)]
22663
22659
  })]);
22664
22660
  });
22665
- return {
22661
+ return layoutIsReady.then(() => ({
22666
22662
  isStuck
22667
- };
22663
+ }));
22668
22664
  }
22669
22665
  });
22670
22666
 
@@ -25665,7 +25661,7 @@ function createVuetify$1() {
25665
25661
  goTo
25666
25662
  };
25667
25663
  }
25668
- const version$1 = "3.5.3-dev.2024-02-08";
25664
+ const version$1 = "3.5.3-dev.2024-02-25";
25669
25665
  createVuetify$1.version = version$1;
25670
25666
 
25671
25667
  // Vue's inject() can only be used in setup
@@ -25690,7 +25686,7 @@ const createVuetify = function () {
25690
25686
  ...options
25691
25687
  });
25692
25688
  };
25693
- const version = "3.5.3-dev.2024-02-08";
25689
+ const version = "3.5.3-dev.2024-02-25";
25694
25690
  createVuetify.version = version;
25695
25691
 
25696
25692
  export { components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };