@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.
- package/CHANGELOG.md +3 -2
- package/dist/json/attributes.json +5 -5
- package/dist/json/importMap-labs.json +8 -8
- package/dist/json/importMap.json +98 -98
- package/dist/json/web-types.json +6 -6
- package/dist/vuetify-labs.css +2446 -2446
- package/dist/vuetify-labs.d.ts +22 -21
- package/dist/vuetify-labs.esm.js +58 -62
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +57 -61
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1218 -1218
- package/dist/vuetify.d.ts +53 -52
- package/dist/vuetify.esm.js +58 -62
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +57 -61
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +909 -914
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VApp/VApp.mjs +5 -2
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/index.d.mts +6 -6
- package/lib/components/VAppBar/VAppBar.mjs +5 -5
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +2 -2
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +5 -3
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/index.d.mts +2 -2
- package/lib/components/VFooter/VFooter.mjs +3 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.mjs +5 -2
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +6 -4
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.d.mts +9 -9
- package/lib/components/VMain/VMain.mjs +3 -2
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/index.d.mts +2 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +7 -7
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/index.d.mts +21 -21
- package/lib/composables/layout.mjs +14 -37
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +32 -31
- package/lib/util/helpers.mjs +11 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.5.3-dev.2024-02-
|
|
2
|
+
* Vuetify v3.5.3-dev.2024-02-14
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -549,6 +549,16 @@
|
|
|
549
549
|
const timeoutId = window.setTimeout(cb, timeout);
|
|
550
550
|
return () => window.clearTimeout(timeoutId);
|
|
551
551
|
}
|
|
552
|
+
function eagerComputed(fn, options) {
|
|
553
|
+
const result = vue.shallowRef();
|
|
554
|
+
vue.watchEffect(() => {
|
|
555
|
+
result.value = fn();
|
|
556
|
+
}, {
|
|
557
|
+
flush: 'sync',
|
|
558
|
+
...options
|
|
559
|
+
});
|
|
560
|
+
return vue.readonly(result);
|
|
561
|
+
}
|
|
552
562
|
|
|
553
563
|
// Utilities
|
|
554
564
|
const block = ['top', 'bottom'];
|
|
@@ -1613,7 +1623,9 @@
|
|
|
1613
1623
|
function useLayout() {
|
|
1614
1624
|
const layout = vue.inject(VuetifyLayoutKey);
|
|
1615
1625
|
if (!layout) throw new Error('[Vuetify] Could not find injected layout');
|
|
1626
|
+
const layoutIsReady = vue.nextTick();
|
|
1616
1627
|
return {
|
|
1628
|
+
layoutIsReady,
|
|
1617
1629
|
getLayoutItem: layout.getLayoutItem,
|
|
1618
1630
|
mainRect: layout.mainRect,
|
|
1619
1631
|
mainStyles: layout.mainStyles
|
|
@@ -1630,6 +1642,7 @@
|
|
|
1630
1642
|
const isKeptAlive = vue.shallowRef(false);
|
|
1631
1643
|
vue.onDeactivated(() => isKeptAlive.value = true);
|
|
1632
1644
|
vue.onActivated(() => isKeptAlive.value = false);
|
|
1645
|
+
const layoutIsReady = vue.nextTick();
|
|
1633
1646
|
const {
|
|
1634
1647
|
layoutItemStyles,
|
|
1635
1648
|
layoutItemScrimStyles
|
|
@@ -1642,7 +1655,8 @@
|
|
|
1642
1655
|
return {
|
|
1643
1656
|
layoutItemStyles,
|
|
1644
1657
|
layoutRect: layout.layoutRect,
|
|
1645
|
-
layoutItemScrimStyles
|
|
1658
|
+
layoutItemScrimStyles,
|
|
1659
|
+
layoutIsReady
|
|
1646
1660
|
};
|
|
1647
1661
|
}
|
|
1648
1662
|
const generateLayers = (layout, positions, layoutSizes, activeItems) => {
|
|
@@ -1688,29 +1702,7 @@
|
|
|
1688
1702
|
resizeRef,
|
|
1689
1703
|
contentRect: layoutRect
|
|
1690
1704
|
} = useResizeObserver();
|
|
1691
|
-
const
|
|
1692
|
-
const map = new Map();
|
|
1693
|
-
const overlaps = props.overlaps ?? [];
|
|
1694
|
-
for (const overlap of overlaps.filter(item => item.includes(':'))) {
|
|
1695
|
-
const [top, bottom] = overlap.split(':');
|
|
1696
|
-
if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;
|
|
1697
|
-
const topPosition = positions.get(top);
|
|
1698
|
-
const bottomPosition = positions.get(bottom);
|
|
1699
|
-
const topAmount = layoutSizes.get(top);
|
|
1700
|
-
const bottomAmount = layoutSizes.get(bottom);
|
|
1701
|
-
if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;
|
|
1702
|
-
map.set(bottom, {
|
|
1703
|
-
position: topPosition.value,
|
|
1704
|
-
amount: parseInt(topAmount.value, 10)
|
|
1705
|
-
});
|
|
1706
|
-
map.set(top, {
|
|
1707
|
-
position: bottomPosition.value,
|
|
1708
|
-
amount: -parseInt(bottomAmount.value, 10)
|
|
1709
|
-
});
|
|
1710
|
-
}
|
|
1711
|
-
return map;
|
|
1712
|
-
});
|
|
1713
|
-
const layers = vue.computed(() => {
|
|
1705
|
+
const layers = eagerComputed(() => {
|
|
1714
1706
|
const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);
|
|
1715
1707
|
const layout = [];
|
|
1716
1708
|
for (const p of uniquePriorities) {
|
|
@@ -1736,7 +1728,7 @@
|
|
|
1736
1728
|
})
|
|
1737
1729
|
};
|
|
1738
1730
|
});
|
|
1739
|
-
const items =
|
|
1731
|
+
const items = eagerComputed(() => {
|
|
1740
1732
|
return layers.value.slice(1).map((_ref, index) => {
|
|
1741
1733
|
let {
|
|
1742
1734
|
id
|
|
@@ -1758,10 +1750,7 @@
|
|
|
1758
1750
|
return items.value.find(item => item.id === id);
|
|
1759
1751
|
};
|
|
1760
1752
|
const rootVm = getCurrentInstance('createLayout');
|
|
1761
|
-
const
|
|
1762
|
-
vue.onMounted(() => {
|
|
1763
|
-
isMounted.value = true;
|
|
1764
|
-
});
|
|
1753
|
+
const layoutIsReady = vue.nextTick();
|
|
1765
1754
|
vue.provide(VuetifyLayoutKey, {
|
|
1766
1755
|
register: (vm, _ref2) => {
|
|
1767
1756
|
let {
|
|
@@ -1797,13 +1786,9 @@
|
|
|
1797
1786
|
transition: 'none'
|
|
1798
1787
|
})
|
|
1799
1788
|
};
|
|
1800
|
-
if (
|
|
1789
|
+
if (index.value < 0) throw new Error(`Layout item "${id}" is missing`);
|
|
1801
1790
|
const item = items.value[index.value];
|
|
1802
1791
|
if (!item) throw new Error(`[Vuetify] Could not find layout item "${id}"`);
|
|
1803
|
-
const overlap = computedOverlaps.value.get(id);
|
|
1804
|
-
if (overlap) {
|
|
1805
|
-
item[overlap.position] += overlap.amount;
|
|
1806
|
-
}
|
|
1807
1792
|
return {
|
|
1808
1793
|
...styles,
|
|
1809
1794
|
height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
|
|
@@ -1836,7 +1821,8 @@
|
|
|
1836
1821
|
getLayoutItem,
|
|
1837
1822
|
items,
|
|
1838
1823
|
layoutRect,
|
|
1839
|
-
rootZIndex
|
|
1824
|
+
rootZIndex,
|
|
1825
|
+
layoutIsReady
|
|
1840
1826
|
});
|
|
1841
1827
|
const layoutClasses = vue.computed(() => ['v-layout', {
|
|
1842
1828
|
'v-layout--full-height': props.fullHeight
|
|
@@ -1852,6 +1838,7 @@
|
|
|
1852
1838
|
getLayoutItem,
|
|
1853
1839
|
items,
|
|
1854
1840
|
layoutRect,
|
|
1841
|
+
layoutIsReady,
|
|
1855
1842
|
layoutRef: resizeRef
|
|
1856
1843
|
};
|
|
1857
1844
|
}
|
|
@@ -2546,7 +2533,9 @@
|
|
|
2546
2533
|
"style": [props.style]
|
|
2547
2534
|
}, [vue.createVNode("div", {
|
|
2548
2535
|
"class": "v-application__wrap"
|
|
2549
|
-
}, [
|
|
2536
|
+
}, [vue.createVNode(vue.Suspense, null, {
|
|
2537
|
+
default: () => [vue.createVNode(vue.Fragment, null, [slots.default?.()])]
|
|
2538
|
+
})])]));
|
|
2550
2539
|
return {
|
|
2551
2540
|
getLayoutItem,
|
|
2552
2541
|
items,
|
|
@@ -3879,9 +3868,8 @@
|
|
|
3879
3868
|
const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
|
|
3880
3869
|
const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
|
3881
3870
|
const height = vue.computed(() => {
|
|
3882
|
-
|
|
3883
|
-
const
|
|
3884
|
-
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
|
3871
|
+
const height = Number(vToolbarRef.value?.contentHeight ?? props.height);
|
|
3872
|
+
const extensionHeight = Number(vToolbarRef.value?.extensionHeight ?? 0);
|
|
3885
3873
|
return height + extensionHeight;
|
|
3886
3874
|
});
|
|
3887
3875
|
useToggleScope(vue.computed(() => !!props.scrollBehavior), () => {
|
|
@@ -3901,7 +3889,8 @@
|
|
|
3901
3889
|
ssrBootStyles
|
|
3902
3890
|
} = useSsrBoot();
|
|
3903
3891
|
const {
|
|
3904
|
-
layoutItemStyles
|
|
3892
|
+
layoutItemStyles,
|
|
3893
|
+
layoutIsReady
|
|
3905
3894
|
} = useLayoutItem({
|
|
3906
3895
|
id: props.name,
|
|
3907
3896
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
@@ -3929,7 +3918,7 @@
|
|
|
3929
3918
|
"flat": isFlat.value
|
|
3930
3919
|
}), slots);
|
|
3931
3920
|
});
|
|
3932
|
-
return
|
|
3921
|
+
return layoutIsReady;
|
|
3933
3922
|
}
|
|
3934
3923
|
});
|
|
3935
3924
|
|
|
@@ -12925,9 +12914,10 @@
|
|
|
12925
12914
|
ssrBootStyles
|
|
12926
12915
|
} = useSsrBoot();
|
|
12927
12916
|
const height = vue.computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
|
|
12928
|
-
const isActive =
|
|
12917
|
+
const isActive = useProxiedModel(props, 'modelValue', props.modelValue);
|
|
12929
12918
|
const {
|
|
12930
|
-
layoutItemStyles
|
|
12919
|
+
layoutItemStyles,
|
|
12920
|
+
layoutIsReady
|
|
12931
12921
|
} = useLayoutItem({
|
|
12932
12922
|
id: props.name,
|
|
12933
12923
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
@@ -12965,7 +12955,7 @@
|
|
|
12965
12955
|
}, [slots.default()])]
|
|
12966
12956
|
});
|
|
12967
12957
|
});
|
|
12968
|
-
return
|
|
12958
|
+
return layoutIsReady;
|
|
12969
12959
|
}
|
|
12970
12960
|
});
|
|
12971
12961
|
|
|
@@ -21536,7 +21526,8 @@
|
|
|
21536
21526
|
});
|
|
21537
21527
|
const height = vue.computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));
|
|
21538
21528
|
const {
|
|
21539
|
-
layoutItemStyles
|
|
21529
|
+
layoutItemStyles,
|
|
21530
|
+
layoutIsReady
|
|
21540
21531
|
} = useLayoutItem({
|
|
21541
21532
|
id: props.name,
|
|
21542
21533
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
@@ -21553,7 +21544,7 @@
|
|
|
21553
21544
|
height: convertToUnit(props.height)
|
|
21554
21545
|
}, props.style]
|
|
21555
21546
|
}, slots));
|
|
21556
|
-
return {};
|
|
21547
|
+
return props.app ? layoutIsReady : {};
|
|
21557
21548
|
}
|
|
21558
21549
|
});
|
|
21559
21550
|
|
|
@@ -21976,7 +21967,9 @@
|
|
|
21976
21967
|
"ref": layoutRef,
|
|
21977
21968
|
"class": [layoutClasses.value, props.class],
|
|
21978
21969
|
"style": [layoutStyles.value, props.style]
|
|
21979
|
-
}, [
|
|
21970
|
+
}, [vue.createVNode(vue.Suspense, null, {
|
|
21971
|
+
default: () => [vue.createVNode(vue.Fragment, null, [slots.default?.()])]
|
|
21972
|
+
})]));
|
|
21980
21973
|
return {
|
|
21981
21974
|
getLayoutItem,
|
|
21982
21975
|
items
|
|
@@ -22007,7 +22000,8 @@
|
|
|
22007
22000
|
slots
|
|
22008
22001
|
} = _ref;
|
|
22009
22002
|
const {
|
|
22010
|
-
layoutItemStyles
|
|
22003
|
+
layoutItemStyles,
|
|
22004
|
+
layoutIsReady
|
|
22011
22005
|
} = useLayoutItem({
|
|
22012
22006
|
id: props.name,
|
|
22013
22007
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
@@ -22017,10 +22011,11 @@
|
|
|
22017
22011
|
active: vue.toRef(props, 'modelValue'),
|
|
22018
22012
|
absolute: vue.toRef(props, 'absolute')
|
|
22019
22013
|
});
|
|
22020
|
-
|
|
22014
|
+
useRender(() => vue.createVNode("div", {
|
|
22021
22015
|
"class": ['v-layout-item', props.class],
|
|
22022
22016
|
"style": [layoutItemStyles.value, props.style]
|
|
22023
|
-
}, [slots.default?.()]);
|
|
22017
|
+
}, [slots.default?.()]));
|
|
22018
|
+
return layoutIsReady;
|
|
22024
22019
|
}
|
|
22025
22020
|
});
|
|
22026
22021
|
|
|
@@ -22127,7 +22122,8 @@
|
|
|
22127
22122
|
slots
|
|
22128
22123
|
} = _ref;
|
|
22129
22124
|
const {
|
|
22130
|
-
mainStyles
|
|
22125
|
+
mainStyles,
|
|
22126
|
+
layoutIsReady
|
|
22131
22127
|
} = useLayout();
|
|
22132
22128
|
const {
|
|
22133
22129
|
ssrBootStyles
|
|
@@ -22142,7 +22138,7 @@
|
|
|
22142
22138
|
"class": "v-main__scroller"
|
|
22143
22139
|
}, [slots.default?.()]) : slots.default?.()]
|
|
22144
22140
|
}));
|
|
22145
|
-
return
|
|
22141
|
+
return layoutIsReady;
|
|
22146
22142
|
}
|
|
22147
22143
|
});
|
|
22148
22144
|
|
|
@@ -22567,10 +22563,9 @@
|
|
|
22567
22563
|
vue.watch(() => props.permanent, val => {
|
|
22568
22564
|
if (val) isActive.value = true;
|
|
22569
22565
|
});
|
|
22570
|
-
|
|
22571
|
-
if (props.modelValue != null || isTemporary.value) return;
|
|
22566
|
+
if (props.modelValue == null && !isTemporary.value) {
|
|
22572
22567
|
isActive.value = props.permanent || !mobile.value;
|
|
22573
|
-
}
|
|
22568
|
+
}
|
|
22574
22569
|
const {
|
|
22575
22570
|
isDragging,
|
|
22576
22571
|
dragProgress,
|
|
@@ -22588,7 +22583,8 @@
|
|
|
22588
22583
|
});
|
|
22589
22584
|
const {
|
|
22590
22585
|
layoutItemStyles,
|
|
22591
|
-
layoutItemScrimStyles
|
|
22586
|
+
layoutItemScrimStyles,
|
|
22587
|
+
layoutIsReady
|
|
22592
22588
|
} = useLayoutItem({
|
|
22593
22589
|
id: props.name,
|
|
22594
22590
|
order: vue.computed(() => parseInt(props.order, 10)),
|
|
@@ -22672,9 +22668,9 @@
|
|
|
22672
22668
|
}, scopeId), null)]
|
|
22673
22669
|
})]);
|
|
22674
22670
|
});
|
|
22675
|
-
return {
|
|
22671
|
+
return layoutIsReady.then(() => ({
|
|
22676
22672
|
isStuck
|
|
22677
|
-
};
|
|
22673
|
+
}));
|
|
22678
22674
|
}
|
|
22679
22675
|
});
|
|
22680
22676
|
|
|
@@ -26227,7 +26223,7 @@
|
|
|
26227
26223
|
goTo
|
|
26228
26224
|
};
|
|
26229
26225
|
}
|
|
26230
|
-
const version$1 = "3.5.3-dev.2024-02-
|
|
26226
|
+
const version$1 = "3.5.3-dev.2024-02-14";
|
|
26231
26227
|
createVuetify$1.version = version$1;
|
|
26232
26228
|
|
|
26233
26229
|
// Vue's inject() can only be used in setup
|
|
@@ -26241,7 +26237,7 @@
|
|
|
26241
26237
|
|
|
26242
26238
|
/* eslint-disable local-rules/sort-imports */
|
|
26243
26239
|
|
|
26244
|
-
const version = "3.5.3-dev.2024-02-
|
|
26240
|
+
const version = "3.5.3-dev.2024-02-14";
|
|
26245
26241
|
|
|
26246
26242
|
/* eslint-disable local-rules/sort-imports */
|
|
26247
26243
|
|