This repository has no description
1<script lang="ts">
2 import type { Snippet } from "svelte";
3 import EmptyState from "./EmptyState.svelte";
4
5 interface Props {
6 title?: string;
7 empty: boolean;
8 emptyMessage: string;
9 listClass?: string;
10 header?: Snippet;
11 children: Snippet;
12 }
13
14 let {
15 title,
16 empty,
17 emptyMessage,
18 listClass = "flex flex-col gap-4",
19 header,
20 children
21 }: Props = $props();
22</script>
23
24<section>
25 {#if title}
26 <h2 class="px-2 pb-4 typography-paragraph-large font-medium">{title}</h2>
27 {/if}
28 {@render header?.()}
29 {#if empty}
30 <EmptyState message={emptyMessage} />
31 {:else}
32 <div class={listClass}>
33 {@render children()}
34 </div>
35 {/if}
36</section>