forked from tsai/budibase
5 changed files with 49 additions and 0 deletions
@ -0,0 +1,29 @@ |
|||||
|
<script> |
||||
|
import { getContext } from 'svelte' |
||||
|
const multilevel = getContext('sidenav-type'); |
||||
|
export let href = ""; |
||||
|
export let heading = "" |
||||
|
export let icon = ""; |
||||
|
export let selected = false; |
||||
|
export let disabled = false; |
||||
|
|
||||
|
</script> |
||||
|
|
||||
|
<li class="spectrum-SideNav-item" class:is-selected={selected} class:is-disabled={disabled}> |
||||
|
{#if heading} |
||||
|
<h2 class="spectrum-SideNav-heading" id="nav-heading-{heading}">{heading}</h2> |
||||
|
{/if} |
||||
|
<a {href} class="spectrum-SideNav-itemLink" aria-current="page"> |
||||
|
{#if icon} |
||||
|
<svg class="spectrum-Icon spectrum-Icon--sizeM spectrum-SideNav-itemIcon" focusable="false" aria-hidden="true"> |
||||
|
<use xlink:href="#spectrum-icon-18-{icon}" /> |
||||
|
</svg> |
||||
|
{/if} |
||||
|
<slot /> |
||||
|
</a> |
||||
|
{#if multilevel && $$slots.subnav} |
||||
|
<ul class="spectrum-SideNav"> |
||||
|
<slot name="subnav" /> |
||||
|
</ul> |
||||
|
{/if} |
||||
|
</li> |
||||
@ -0,0 +1,12 @@ |
|||||
|
<script> |
||||
|
import { setContext } from 'svelte' |
||||
|
import "@spectrum-css/sidenav/dist/index-vars.css" |
||||
|
export let multilevel = false; |
||||
|
setContext('sidenav-type', multilevel) |
||||
|
</script> |
||||
|
|
||||
|
<nav> |
||||
|
<ul class="spectrum-SideNav" class:spectrum-SideNav--multiLevel={multilevel}> |
||||
|
<slot /> |
||||
|
</ul> |
||||
|
</nav> |
||||
Loading…
Reference in new issue