flotilla/src/lib/components/Collapse.svelte

28 lines
589 B
Svelte
Raw Normal View History

2024-10-03 18:49:52 +00:00
<script lang="ts">
import {slide} from '@lib/transition'
import Icon from '@lib/components/Icon.svelte'
const toggle = () => {
isOpen = !isOpen
}
let isOpen = false
</script>
<div class="flex flex-col gap-4 relative {$$props.class}">
<button
type="button"
class="absolute top-8 right-8 cursor-pointer w-4 h-4 transition-all"
class:rotate-90={!isOpen}
on:click={toggle}>
<Icon icon="alt-arrow-down" />
</button>
<slot name="title" />
<slot name="description" />
{#if isOpen}
<div transition:slide>
<slot />
</div>
{/if}
</div>