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

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 (50) hide show
  1. package/CHANGELOG.md +3 -2
  2. package/dist/json/attributes.json +5 -5
  3. package/dist/json/importMap-labs.json +8 -8
  4. package/dist/json/importMap.json +98 -98
  5. package/dist/json/web-types.json +6 -6
  6. package/dist/vuetify-labs.css +2446 -2446
  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 +1218 -1218
  13. package/dist/vuetify.d.ts +53 -52
  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/VLayout/VLayout.mjs +5 -2
  33. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  34. package/lib/components/VLayout/VLayoutItem.mjs +6 -4
  35. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  36. package/lib/components/VLayout/index.d.mts +9 -9
  37. package/lib/components/VMain/VMain.mjs +3 -2
  38. package/lib/components/VMain/VMain.mjs.map +1 -1
  39. package/lib/components/VMain/index.d.mts +2 -2
  40. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +7 -7
  41. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  42. package/lib/components/index.d.mts +21 -21
  43. package/lib/composables/layout.mjs +14 -37
  44. package/lib/composables/layout.mjs.map +1 -1
  45. package/lib/entry-bundler.mjs +1 -1
  46. package/lib/framework.mjs +1 -1
  47. package/lib/index.d.mts +32 -31
  48. package/lib/util/helpers.mjs +11 -1
  49. package/lib/util/helpers.mjs.map +1 -1
  50. package/package.json +1 -1
@@ -712,6 +712,7 @@ interface LayoutItem extends Layer {
712
712
  position: Position;
713
713
  }
714
714
  declare function useLayout(): {
715
+ layoutIsReady: Promise<void>;
715
716
  getLayoutItem: (id: string) => LayoutItem | undefined;
716
717
  mainRect: Ref<Layer>;
717
718
  mainStyles: Ref<CSSProperties>;
@@ -806,7 +807,7 @@ declare const VApp: {
806
807
  right: number;
807
808
  id: string;
808
809
  } | undefined;
809
- items: vue.ComputedRef<{
810
+ items: Readonly<vue.Ref<{
810
811
  size: number;
811
812
  position: "left" | "top" | "bottom" | "right";
812
813
  top: number;
@@ -814,7 +815,7 @@ declare const VApp: {
814
815
  left: number;
815
816
  right: number;
816
817
  id: string;
817
- }[]>;
818
+ }[]>>;
818
819
  theme: ThemeInstance;
819
820
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
820
821
  style: vue.StyleValue;
@@ -872,7 +873,7 @@ declare const VApp: {
872
873
  right: number;
873
874
  id: string;
874
875
  } | undefined;
875
- items: vue.ComputedRef<{
876
+ items: Readonly<vue.Ref<{
876
877
  size: number;
877
878
  position: "left" | "top" | "bottom" | "right";
878
879
  top: number;
@@ -880,7 +881,7 @@ declare const VApp: {
880
881
  left: number;
881
882
  right: number;
882
883
  id: string;
883
- }[]>;
884
+ }[]>>;
884
885
  theme: ThemeInstance;
885
886
  }, {}, {}, {}, {
886
887
  style: vue.StyleValue;
@@ -915,7 +916,7 @@ declare const VApp: {
915
916
  right: number;
916
917
  id: string;
917
918
  } | undefined;
918
- items: vue.ComputedRef<{
919
+ items: Readonly<vue.Ref<{
919
920
  size: number;
920
921
  position: "left" | "top" | "bottom" | "right";
921
922
  top: number;
@@ -923,7 +924,7 @@ declare const VApp: {
923
924
  left: number;
924
925
  right: number;
925
926
  id: string;
926
- }[]>;
927
+ }[]>>;
927
928
  theme: ThemeInstance;
928
929
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
929
930
  style: vue.StyleValue;
@@ -1376,7 +1377,7 @@ declare const VAppBar: {
1376
1377
  "v-slot:extension"?: false | (() => vue.VNodeChild) | undefined;
1377
1378
  } & {
1378
1379
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1379
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1380
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1380
1381
  'update:modelValue': (value: boolean) => boolean;
1381
1382
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
1382
1383
  flat: boolean;
@@ -1599,7 +1600,7 @@ declare const VAppBar: {
1599
1600
  "v-slot:extension"?: false | (() => vue.VNodeChild) | undefined;
1600
1601
  } & {
1601
1602
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1602
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1603
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1603
1604
  'update:modelValue': (value: boolean) => boolean;
1604
1605
  }, string, {
1605
1606
  flat: boolean;
@@ -9625,7 +9626,7 @@ declare const VBottomNavigation: {
9625
9626
  theme?: string | undefined;
9626
9627
  rounded?: string | number | boolean | undefined;
9627
9628
  bgColor?: string | undefined;
9628
- } & {}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
9629
+ } & {}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
9629
9630
  'update:modelValue': (value: any) => boolean;
9630
9631
  }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "update:modelValue">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
9631
9632
  absolute: boolean;
@@ -9742,7 +9743,7 @@ declare const VBottomNavigation: {
9742
9743
  theme?: string | undefined;
9743
9744
  rounded?: string | number | boolean | undefined;
9744
9745
  bgColor?: string | undefined;
9745
- } & {}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
9746
+ } & {}, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
9746
9747
  'update:modelValue': (value: any) => boolean;
9747
9748
  }, "$children" | "v-slot:default" | "v-slots" | "modelValue" | "update:modelValue">, string, {
9748
9749
  absolute: boolean;
@@ -36361,7 +36362,7 @@ declare const VLayout: {
36361
36362
  right: number;
36362
36363
  id: string;
36363
36364
  } | undefined;
36364
- items: vue.ComputedRef<{
36365
+ items: Readonly<vue.Ref<{
36365
36366
  size: number;
36366
36367
  position: "left" | "top" | "bottom" | "right";
36367
36368
  top: number;
@@ -36369,7 +36370,7 @@ declare const VLayout: {
36369
36370
  left: number;
36370
36371
  right: number;
36371
36372
  id: string;
36372
- }[]>;
36373
+ }[]>>;
36373
36374
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
36374
36375
  style: vue.StyleValue;
36375
36376
  fullHeight: boolean;
@@ -36424,7 +36425,7 @@ declare const VLayout: {
36424
36425
  right: number;
36425
36426
  id: string;
36426
36427
  } | undefined;
36427
- items: vue.ComputedRef<{
36428
+ items: Readonly<vue.Ref<{
36428
36429
  size: number;
36429
36430
  position: "left" | "top" | "bottom" | "right";
36430
36431
  top: number;
@@ -36432,7 +36433,7 @@ declare const VLayout: {
36432
36433
  left: number;
36433
36434
  right: number;
36434
36435
  id: string;
36435
- }[]>;
36436
+ }[]>>;
36436
36437
  }, {}, {}, {}, {
36437
36438
  style: vue.StyleValue;
36438
36439
  fullHeight: boolean;
@@ -36465,7 +36466,7 @@ declare const VLayout: {
36465
36466
  right: number;
36466
36467
  id: string;
36467
36468
  } | undefined;
36468
- items: vue.ComputedRef<{
36469
+ items: Readonly<vue.Ref<{
36469
36470
  size: number;
36470
36471
  position: "left" | "top" | "bottom" | "right";
36471
36472
  top: number;
@@ -36473,7 +36474,7 @@ declare const VLayout: {
36473
36474
  left: number;
36474
36475
  right: number;
36475
36476
  id: string;
36476
- }[]>;
36477
+ }[]>>;
36477
36478
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
36478
36479
  style: vue.StyleValue;
36479
36480
  fullHeight: boolean;
@@ -36520,7 +36521,7 @@ declare const VLayoutItem: {
36520
36521
  } | undefined;
36521
36522
  } & {
36522
36523
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
36523
- }, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
36524
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
36524
36525
  absolute: boolean;
36525
36526
  order: string | number;
36526
36527
  position: "left" | "top" | "bottom" | "right";
@@ -36575,7 +36576,7 @@ declare const VLayoutItem: {
36575
36576
  } | undefined;
36576
36577
  } & {
36577
36578
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
36578
- }, () => JSX.Element, {}, {}, {}, {
36579
+ }, {}, {}, {}, {}, {
36579
36580
  absolute: boolean;
36580
36581
  order: string | number;
36581
36582
  style: vue.StyleValue;
@@ -36604,7 +36605,7 @@ declare const VLayoutItem: {
36604
36605
  } | undefined;
36605
36606
  } & {
36606
36607
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
36607
- }, () => JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
36608
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
36608
36609
  absolute: boolean;
36609
36610
  order: string | number;
36610
36611
  style: vue.StyleValue;
@@ -38683,7 +38684,7 @@ declare const VMain: {
38683
38684
  } | undefined;
38684
38685
  } & {
38685
38686
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
38686
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
38687
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
38687
38688
  style: vue.StyleValue;
38688
38689
  tag: string;
38689
38690
  scrollable: boolean;
@@ -38751,7 +38752,7 @@ declare const VMain: {
38751
38752
  } | undefined;
38752
38753
  } & {
38753
38754
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
38754
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
38755
+ }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
38755
38756
  style: vue.StyleValue;
38756
38757
  tag: string;
38757
38758
  scrollable: boolean;
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.5.3-dev.2024-02-08
2
+ * Vuetify v3.5.3-dev.2024-02-14
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
@@ -545,6 +545,16 @@ function defer(timeout, cb) {
545
545
  const timeoutId = window.setTimeout(cb, timeout);
546
546
  return () => window.clearTimeout(timeoutId);
547
547
  }
548
+ function eagerComputed(fn, options) {
549
+ const result = shallowRef();
550
+ watchEffect(() => {
551
+ result.value = fn();
552
+ }, {
553
+ flush: 'sync',
554
+ ...options
555
+ });
556
+ return readonly(result);
557
+ }
548
558
 
549
559
  // Utilities
550
560
  const block = ['top', 'bottom'];
@@ -1609,7 +1619,9 @@ const makeLayoutItemProps = propsFactory({
1609
1619
  function useLayout() {
1610
1620
  const layout = inject$1(VuetifyLayoutKey);
1611
1621
  if (!layout) throw new Error('[Vuetify] Could not find injected layout');
1622
+ const layoutIsReady = nextTick();
1612
1623
  return {
1624
+ layoutIsReady,
1613
1625
  getLayoutItem: layout.getLayoutItem,
1614
1626
  mainRect: layout.mainRect,
1615
1627
  mainStyles: layout.mainStyles
@@ -1626,6 +1638,7 @@ function useLayoutItem(options) {
1626
1638
  const isKeptAlive = shallowRef(false);
1627
1639
  onDeactivated(() => isKeptAlive.value = true);
1628
1640
  onActivated(() => isKeptAlive.value = false);
1641
+ const layoutIsReady = nextTick();
1629
1642
  const {
1630
1643
  layoutItemStyles,
1631
1644
  layoutItemScrimStyles
@@ -1638,7 +1651,8 @@ function useLayoutItem(options) {
1638
1651
  return {
1639
1652
  layoutItemStyles,
1640
1653
  layoutRect: layout.layoutRect,
1641
- layoutItemScrimStyles
1654
+ layoutItemScrimStyles,
1655
+ layoutIsReady
1642
1656
  };
1643
1657
  }
1644
1658
  const generateLayers = (layout, positions, layoutSizes, activeItems) => {
@@ -1684,29 +1698,7 @@ function createLayout(props) {
1684
1698
  resizeRef,
1685
1699
  contentRect: layoutRect
1686
1700
  } = useResizeObserver();
1687
- const computedOverlaps = computed(() => {
1688
- const map = new Map();
1689
- const overlaps = props.overlaps ?? [];
1690
- for (const overlap of overlaps.filter(item => item.includes(':'))) {
1691
- const [top, bottom] = overlap.split(':');
1692
- if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;
1693
- const topPosition = positions.get(top);
1694
- const bottomPosition = positions.get(bottom);
1695
- const topAmount = layoutSizes.get(top);
1696
- const bottomAmount = layoutSizes.get(bottom);
1697
- if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;
1698
- map.set(bottom, {
1699
- position: topPosition.value,
1700
- amount: parseInt(topAmount.value, 10)
1701
- });
1702
- map.set(top, {
1703
- position: bottomPosition.value,
1704
- amount: -parseInt(bottomAmount.value, 10)
1705
- });
1706
- }
1707
- return map;
1708
- });
1709
- const layers = computed(() => {
1701
+ const layers = eagerComputed(() => {
1710
1702
  const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);
1711
1703
  const layout = [];
1712
1704
  for (const p of uniquePriorities) {
@@ -1732,7 +1724,7 @@ function createLayout(props) {
1732
1724
  })
1733
1725
  };
1734
1726
  });
1735
- const items = computed(() => {
1727
+ const items = eagerComputed(() => {
1736
1728
  return layers.value.slice(1).map((_ref, index) => {
1737
1729
  let {
1738
1730
  id
@@ -1754,10 +1746,7 @@ function createLayout(props) {
1754
1746
  return items.value.find(item => item.id === id);
1755
1747
  };
1756
1748
  const rootVm = getCurrentInstance('createLayout');
1757
- const isMounted = shallowRef(false);
1758
- onMounted(() => {
1759
- isMounted.value = true;
1760
- });
1749
+ const layoutIsReady = nextTick();
1761
1750
  provide(VuetifyLayoutKey, {
1762
1751
  register: (vm, _ref2) => {
1763
1752
  let {
@@ -1793,13 +1782,9 @@ function createLayout(props) {
1793
1782
  transition: 'none'
1794
1783
  })
1795
1784
  };
1796
- if (!isMounted.value) return styles;
1785
+ if (index.value < 0) throw new Error(`Layout item "${id}" is missing`);
1797
1786
  const item = items.value[index.value];
1798
1787
  if (!item) throw new Error(`[Vuetify] Could not find layout item "${id}"`);
1799
- const overlap = computedOverlaps.value.get(id);
1800
- if (overlap) {
1801
- item[overlap.position] += overlap.amount;
1802
- }
1803
1788
  return {
1804
1789
  ...styles,
1805
1790
  height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
@@ -1832,7 +1817,8 @@ function createLayout(props) {
1832
1817
  getLayoutItem,
1833
1818
  items,
1834
1819
  layoutRect,
1835
- rootZIndex
1820
+ rootZIndex,
1821
+ layoutIsReady
1836
1822
  });
1837
1823
  const layoutClasses = computed(() => ['v-layout', {
1838
1824
  'v-layout--full-height': props.fullHeight
@@ -1848,6 +1834,7 @@ function createLayout(props) {
1848
1834
  getLayoutItem,
1849
1835
  items,
1850
1836
  layoutRect,
1837
+ layoutIsReady,
1851
1838
  layoutRef: resizeRef
1852
1839
  };
1853
1840
  }
@@ -2542,7 +2529,9 @@ const VApp = genericComponent()({
2542
2529
  "style": [props.style]
2543
2530
  }, [createVNode("div", {
2544
2531
  "class": "v-application__wrap"
2545
- }, [slots.default?.()])]));
2532
+ }, [createVNode(Suspense, null, {
2533
+ default: () => [createVNode(Fragment, null, [slots.default?.()])]
2534
+ })])]));
2546
2535
  return {
2547
2536
  getLayoutItem,
2548
2537
  items,
@@ -3875,9 +3864,8 @@ const VAppBar = genericComponent()({
3875
3864
  const isFlat = computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
3876
3865
  const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
3877
3866
  const height = computed(() => {
3878
- if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
3879
- const height = vToolbarRef.value?.contentHeight ?? 0;
3880
- const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
3867
+ const height = Number(vToolbarRef.value?.contentHeight ?? props.height);
3868
+ const extensionHeight = Number(vToolbarRef.value?.extensionHeight ?? 0);
3881
3869
  return height + extensionHeight;
3882
3870
  });
3883
3871
  useToggleScope(computed(() => !!props.scrollBehavior), () => {
@@ -3897,7 +3885,8 @@ const VAppBar = genericComponent()({
3897
3885
  ssrBootStyles
3898
3886
  } = useSsrBoot();
3899
3887
  const {
3900
- layoutItemStyles
3888
+ layoutItemStyles,
3889
+ layoutIsReady
3901
3890
  } = useLayoutItem({
3902
3891
  id: props.name,
3903
3892
  order: computed(() => parseInt(props.order, 10)),
@@ -3925,7 +3914,7 @@ const VAppBar = genericComponent()({
3925
3914
  "flat": isFlat.value
3926
3915
  }), slots);
3927
3916
  });
3928
- return {};
3917
+ return layoutIsReady;
3929
3918
  }
3930
3919
  });
3931
3920
 
@@ -12921,9 +12910,10 @@ const VBottomNavigation = genericComponent()({
12921
12910
  ssrBootStyles
12922
12911
  } = useSsrBoot();
12923
12912
  const height = computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
12924
- const isActive = toRef(props, 'active');
12913
+ const isActive = useProxiedModel(props, 'modelValue', props.modelValue);
12925
12914
  const {
12926
- layoutItemStyles
12915
+ layoutItemStyles,
12916
+ layoutIsReady
12927
12917
  } = useLayoutItem({
12928
12918
  id: props.name,
12929
12919
  order: computed(() => parseInt(props.order, 10)),
@@ -12961,7 +12951,7 @@ const VBottomNavigation = genericComponent()({
12961
12951
  }, [slots.default()])]
12962
12952
  });
12963
12953
  });
12964
- return {};
12954
+ return layoutIsReady;
12965
12955
  }
12966
12956
  });
12967
12957
 
@@ -21532,7 +21522,8 @@ const VFooter = genericComponent()({
21532
21522
  });
21533
21523
  const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));
21534
21524
  const {
21535
- layoutItemStyles
21525
+ layoutItemStyles,
21526
+ layoutIsReady
21536
21527
  } = useLayoutItem({
21537
21528
  id: props.name,
21538
21529
  order: computed(() => parseInt(props.order, 10)),
@@ -21549,7 +21540,7 @@ const VFooter = genericComponent()({
21549
21540
  height: convertToUnit(props.height)
21550
21541
  }, props.style]
21551
21542
  }, slots));
21552
- return {};
21543
+ return props.app ? layoutIsReady : {};
21553
21544
  }
21554
21545
  });
21555
21546
 
@@ -21972,7 +21963,9 @@ const VLayout = genericComponent()({
21972
21963
  "ref": layoutRef,
21973
21964
  "class": [layoutClasses.value, props.class],
21974
21965
  "style": [layoutStyles.value, props.style]
21975
- }, [slots.default?.()]));
21966
+ }, [createVNode(Suspense, null, {
21967
+ default: () => [createVNode(Fragment, null, [slots.default?.()])]
21968
+ })]));
21976
21969
  return {
21977
21970
  getLayoutItem,
21978
21971
  items
@@ -22003,7 +21996,8 @@ const VLayoutItem = genericComponent()({
22003
21996
  slots
22004
21997
  } = _ref;
22005
21998
  const {
22006
- layoutItemStyles
21999
+ layoutItemStyles,
22000
+ layoutIsReady
22007
22001
  } = useLayoutItem({
22008
22002
  id: props.name,
22009
22003
  order: computed(() => parseInt(props.order, 10)),
@@ -22013,10 +22007,11 @@ const VLayoutItem = genericComponent()({
22013
22007
  active: toRef(props, 'modelValue'),
22014
22008
  absolute: toRef(props, 'absolute')
22015
22009
  });
22016
- return () => createVNode("div", {
22010
+ useRender(() => createVNode("div", {
22017
22011
  "class": ['v-layout-item', props.class],
22018
22012
  "style": [layoutItemStyles.value, props.style]
22019
- }, [slots.default?.()]);
22013
+ }, [slots.default?.()]));
22014
+ return layoutIsReady;
22020
22015
  }
22021
22016
  });
22022
22017
 
@@ -22123,7 +22118,8 @@ const VMain = genericComponent()({
22123
22118
  slots
22124
22119
  } = _ref;
22125
22120
  const {
22126
- mainStyles
22121
+ mainStyles,
22122
+ layoutIsReady
22127
22123
  } = useLayout();
22128
22124
  const {
22129
22125
  ssrBootStyles
@@ -22138,7 +22134,7 @@ const VMain = genericComponent()({
22138
22134
  "class": "v-main__scroller"
22139
22135
  }, [slots.default?.()]) : slots.default?.()]
22140
22136
  }));
22141
- return {};
22137
+ return layoutIsReady;
22142
22138
  }
22143
22139
  });
22144
22140
 
@@ -22563,10 +22559,9 @@ const VNavigationDrawer = genericComponent()({
22563
22559
  watch(() => props.permanent, val => {
22564
22560
  if (val) isActive.value = true;
22565
22561
  });
22566
- onBeforeMount(() => {
22567
- if (props.modelValue != null || isTemporary.value) return;
22562
+ if (props.modelValue == null && !isTemporary.value) {
22568
22563
  isActive.value = props.permanent || !mobile.value;
22569
- });
22564
+ }
22570
22565
  const {
22571
22566
  isDragging,
22572
22567
  dragProgress,
@@ -22584,7 +22579,8 @@ const VNavigationDrawer = genericComponent()({
22584
22579
  });
22585
22580
  const {
22586
22581
  layoutItemStyles,
22587
- layoutItemScrimStyles
22582
+ layoutItemScrimStyles,
22583
+ layoutIsReady
22588
22584
  } = useLayoutItem({
22589
22585
  id: props.name,
22590
22586
  order: computed(() => parseInt(props.order, 10)),
@@ -22668,9 +22664,9 @@ const VNavigationDrawer = genericComponent()({
22668
22664
  }, scopeId), null)]
22669
22665
  })]);
22670
22666
  });
22671
- return {
22667
+ return layoutIsReady.then(() => ({
22672
22668
  isStuck
22673
- };
22669
+ }));
22674
22670
  }
22675
22671
  });
22676
22672
 
@@ -26223,7 +26219,7 @@ function createVuetify$1() {
26223
26219
  goTo
26224
26220
  };
26225
26221
  }
26226
- const version$1 = "3.5.3-dev.2024-02-08";
26222
+ const version$1 = "3.5.3-dev.2024-02-14";
26227
26223
  createVuetify$1.version = version$1;
26228
26224
 
26229
26225
  // Vue's inject() can only be used in setup
@@ -26237,7 +26233,7 @@ function inject(key) {
26237
26233
 
26238
26234
  /* eslint-disable local-rules/sort-imports */
26239
26235
 
26240
- const version = "3.5.3-dev.2024-02-08";
26236
+ const version = "3.5.3-dev.2024-02-14";
26241
26237
 
26242
26238
  /* eslint-disable local-rules/sort-imports */
26243
26239