@@ -9,13 +9,16 @@ import VPNav from './components/VPNav.vue'
99import VPSidebar from ' ./components/VPSidebar.vue'
1010import VPSkipLink from ' ./components/VPSkipLink.vue'
1111import { useData } from ' ./composables/data'
12+ import { useNav } from ' ./composables/nav'
1213import { useCloseSidebarOnEscape , useSidebar } from ' ./composables/sidebar'
1314
1415const {
1516 isOpen : isSidebarOpen,
1617 open : openSidebar,
17- close : closeSidebar
18+ close : closeSidebar,
19+ isSidebarEnabled,
1820} = useSidebar ()
21+ const { isScreenOpen } = useNav ()
1922
2023const route = useRoute ()
2124watch (() => route .path , closeSidebar )
@@ -33,24 +36,24 @@ provide('hero-image-slot-exists', heroImageSlotExists)
3336<template >
3437 <div v-if =" frontmatter.layout !== false" class =" Layout" :class =" frontmatter.pageClass" >
3538 <slot name =" layout-top" />
36- <VPSkipLink />
39+ <VPSkipLink :inert = " isSidebarOpen || isScreenOpen " />
3740 <VPBackdrop class =" backdrop" :show =" isSidebarOpen" @click =" closeSidebar" />
38- <VPNav v-if =" frontmatter.navbar !== false" >
41+ <VPNav v-if =" frontmatter.navbar !== false" :inert = " isSidebarOpen " >
3942 <template #nav-bar-title-before ><slot name =" nav-bar-title-before" /></template >
4043 <template #nav-bar-title-after ><slot name =" nav-bar-title-after" /></template >
4144 <template #nav-bar-content-before ><slot name =" nav-bar-content-before" /></template >
4245 <template #nav-bar-content-after ><slot name =" nav-bar-content-after" /></template >
4346 <template #nav-screen-content-before ><slot name =" nav-screen-content-before" /></template >
4447 <template #nav-screen-content-after ><slot name =" nav-screen-content-after" /></template >
4548 </VPNav >
46- <VPLocalNav :open =" isSidebarOpen" @open-menu =" openSidebar" />
49+ <VPLocalNav :inert = " isSidebarOpen || isScreenOpen " : open =" isSidebarOpen" @open-menu =" openSidebar" />
4750
48- <VPSidebar :open =" isSidebarOpen" >
51+ <VPSidebar :inert = " !isSidebarEnabled && (!isSidebarOpen || isScreenOpen) " : open =" isSidebarOpen" >
4952 <template #sidebar-nav-before ><slot name =" sidebar-nav-before" /></template >
5053 <template #sidebar-nav-after ><slot name =" sidebar-nav-after" /></template >
5154 </VPSidebar >
5255
53- <VPContent >
56+ <VPContent :inert = " isSidebarOpen || isScreenOpen " >
5457 <template #page-top ><slot name =" page-top" /></template >
5558 <template #page-bottom ><slot name =" page-bottom" /></template >
5659
@@ -76,7 +79,7 @@ provide('hero-image-slot-exists', heroImageSlotExists)
7679 <template #aside-ads-after ><slot name =" aside-ads-after" /></template >
7780 </VPContent >
7881
79- <VPFooter />
82+ <VPFooter :inert = " isSidebarOpen || isScreenOpen " />
8083 <slot name =" layout-bottom" />
8184 </div >
8285 <Content v-else />
0 commit comments