enhanced nav tree
This commit is contained in:
parent
3d89c63f8f
commit
17870927fc
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"cSpell.words": ["resumarkdown"]
|
"cSpell.words": ["resumarkdown", "spacebar"]
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,29 @@
|
|||||||
<li><slot /></li>
|
<script lang="ts">
|
||||||
|
import { pane, type Pane } from '$lib/stores/nav';
|
||||||
|
|
||||||
|
export let destination: Pane;
|
||||||
|
|
||||||
|
function handleKey({ key }: KeyboardEvent) {
|
||||||
|
if (key === ' ' || key === 'Enter' || key === 'Spacebar') {
|
||||||
|
navigate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function navigate() {
|
||||||
|
pane.set(destination);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<li
|
||||||
|
aria-controls="nav-tree"
|
||||||
|
aria-selected={$pane === destination}
|
||||||
|
role="tab"
|
||||||
|
tabindex="0"
|
||||||
|
on:click={navigate}
|
||||||
|
on:keyup={handleKey}
|
||||||
|
>
|
||||||
|
<slot />
|
||||||
|
</li>
|
||||||
|
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
li {
|
li {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<nav>
|
<nav>
|
||||||
<ul>
|
<ul id="nav-tree" role="tablist">
|
||||||
<slot />
|
<slot />
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
5
src/lib/stores/nav.ts
Normal file
5
src/lib/stores/nav.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { writable } from 'svelte/store';
|
||||||
|
|
||||||
|
export type Pane = 'content' | 'style' | 'preview';
|
||||||
|
|
||||||
|
export const pane = writable<Pane>('content');
|
@ -10,8 +10,8 @@
|
|||||||
<header>
|
<header>
|
||||||
<Headline>resumarkdown</Headline>
|
<Headline>resumarkdown</Headline>
|
||||||
<NavTree>
|
<NavTree>
|
||||||
<NavItem>content</NavItem>
|
<NavItem destination="content">content</NavItem>
|
||||||
<NavItem>style</NavItem>
|
<NavItem destination="style">style</NavItem>
|
||||||
<NavItem>preview</NavItem>
|
<NavItem destination="preview">preview</NavItem>
|
||||||
</NavTree>
|
</NavTree>
|
||||||
</header>
|
</header>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user