@@ -9,13 +9,16 @@ import VPNav from './components/VPNav.vue'
9
9
import VPSidebar from ' ./components/VPSidebar.vue'
10
10
import VPSkipLink from ' ./components/VPSkipLink.vue'
11
11
import { useData } from ' ./composables/data'
12
+ import { useNav } from ' ./composables/nav'
12
13
import { useCloseSidebarOnEscape , useSidebar } from ' ./composables/sidebar'
13
14
14
15
const {
15
16
isOpen : isSidebarOpen,
16
17
open : openSidebar,
17
- close : closeSidebar
18
+ close : closeSidebar,
19
+ isSidebarEnabled,
18
20
} = useSidebar ()
21
+ const { isScreenOpen } = useNav ()
19
22
20
23
const route = useRoute ()
21
24
watch (() => route .path , closeSidebar )
@@ -33,24 +36,24 @@ provide('hero-image-slot-exists', heroImageSlotExists)
33
36
<template >
34
37
<div v-if =" frontmatter.layout !== false" class =" Layout" :class =" frontmatter.pageClass" >
35
38
<slot name =" layout-top" />
36
- <VPSkipLink />
39
+ <VPSkipLink :inert = " isSidebarOpen || isScreenOpen " />
37
40
<VPBackdrop class =" backdrop" :show =" isSidebarOpen" @click =" closeSidebar" />
38
- <VPNav v-if =" frontmatter.navbar !== false" >
41
+ <VPNav v-if =" frontmatter.navbar !== false" :inert = " isSidebarOpen " >
39
42
<template #nav-bar-title-before ><slot name =" nav-bar-title-before" /></template >
40
43
<template #nav-bar-title-after ><slot name =" nav-bar-title-after" /></template >
41
44
<template #nav-bar-content-before ><slot name =" nav-bar-content-before" /></template >
42
45
<template #nav-bar-content-after ><slot name =" nav-bar-content-after" /></template >
43
46
<template #nav-screen-content-before ><slot name =" nav-screen-content-before" /></template >
44
47
<template #nav-screen-content-after ><slot name =" nav-screen-content-after" /></template >
45
48
</VPNav >
46
- <VPLocalNav :open =" isSidebarOpen" @open-menu =" openSidebar" />
49
+ <VPLocalNav :inert = " isSidebarOpen || isScreenOpen " : open =" isSidebarOpen" @open-menu =" openSidebar" />
47
50
48
- <VPSidebar :open =" isSidebarOpen" >
51
+ <VPSidebar :inert = " !isSidebarEnabled && (!isSidebarOpen || isScreenOpen) " : open =" isSidebarOpen" >
49
52
<template #sidebar-nav-before ><slot name =" sidebar-nav-before" /></template >
50
53
<template #sidebar-nav-after ><slot name =" sidebar-nav-after" /></template >
51
54
</VPSidebar >
52
55
53
- <VPContent >
56
+ <VPContent :inert = " isSidebarOpen || isScreenOpen " >
54
57
<template #page-top ><slot name =" page-top" /></template >
55
58
<template #page-bottom ><slot name =" page-bottom" /></template >
56
59
@@ -76,7 +79,7 @@ provide('hero-image-slot-exists', heroImageSlotExists)
76
79
<template #aside-ads-after ><slot name =" aside-ads-after" /></template >
77
80
</VPContent >
78
81
79
- <VPFooter />
82
+ <VPFooter :inert = " isSidebarOpen || isScreenOpen " />
80
83
<slot name =" layout-bottom" />
81
84
</div >
82
85
<Content v-else />
0 commit comments