1
0

enhanced nav tree

This commit is contained in:
Nicola Clark 2024-10-11 01:03:27 -05:00
parent 3d89c63f8f
commit 17870927fc
Signed by: nicola
GPG Key ID: 3E1710E7FF08956C
5 changed files with 36 additions and 6 deletions

View File

@ -1,3 +1,3 @@
{ {
"cSpell.words": ["resumarkdown"] "cSpell.words": ["resumarkdown", "spacebar"]
} }

View File

@ -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 {

View File

@ -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
View File

@ -0,0 +1,5 @@
import { writable } from 'svelte/store';
export type Pane = 'content' | 'style' | 'preview';
export const pane = writable<Pane>('content');

View File

@ -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>