2021-04-21 15:18:50 +02:00
|
|
|
<script>
|
2021-05-04 12:04:42 +02:00
|
|
|
import { getContext } from "svelte"
|
|
|
|
const multilevel = getContext("sidenav-type")
|
|
|
|
export let href = ""
|
|
|
|
export let external = false
|
|
|
|
export let heading = ""
|
|
|
|
export let icon = ""
|
|
|
|
export let selected = false
|
|
|
|
export let disabled = false
|
2022-05-11 20:37:12 +02:00
|
|
|
export let dataCy
|
2021-04-21 15:18:50 +02:00
|
|
|
</script>
|
|
|
|
|
2021-05-04 12:04:42 +02:00
|
|
|
<li
|
|
|
|
class="spectrum-SideNav-item"
|
|
|
|
class:is-selected={selected}
|
|
|
|
class:is-disabled={disabled}
|
2021-09-13 16:38:06 +02:00
|
|
|
on:click
|
2022-05-11 20:37:12 +02:00
|
|
|
data-cy={dataCy}
|
2021-05-04 12:04:42 +02:00
|
|
|
>
|
|
|
|
{#if heading}
|
|
|
|
<h2 class="spectrum-SideNav-heading" id="nav-heading-{heading}">
|
|
|
|
{heading}
|
|
|
|
</h2>
|
|
|
|
{/if}
|
|
|
|
<a
|
2021-05-05 16:47:27 +02:00
|
|
|
target={external ? "_blank" : ""}
|
2021-05-04 12:04:42 +02:00
|
|
|
{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>
|
2021-04-21 15:18:50 +02:00
|
|
|
{/if}
|
2021-05-04 12:04:42 +02:00
|
|
|
<slot />
|
|
|
|
</a>
|
|
|
|
{#if multilevel && $$slots.subnav}
|
|
|
|
<ul class="spectrum-SideNav">
|
|
|
|
<slot name="subnav" />
|
|
|
|
</ul>
|
|
|
|
{/if}
|
|
|
|
</li>
|