flotilla/src/lib/components/Field.svelte

27 lines
500 B
Svelte
Raw Normal View History

2025-02-04 00:37:14 +00:00
<script lang="ts">
2025-02-05 18:47:56 +00:00
import type {Snippet} from "svelte"
2025-02-04 00:37:14 +00:00
interface Props {
2025-02-05 18:47:56 +00:00
label?: Snippet
input?: Snippet
info?: Snippet
2025-02-04 00:37:14 +00:00
[key: string]: any
}
2025-02-05 18:47:56 +00:00
const {label, input, info, ...props}: Props = $props()
2025-02-04 00:37:14 +00:00
</script>
<div class="flex flex-col gap-2 {props.class}">
2025-02-05 18:47:56 +00:00
{#if label}
2024-10-17 22:21:22 +00:00
<label class="flex items-center gap-2 font-bold">
2025-02-05 18:47:56 +00:00
{@render label()}
2024-10-17 22:21:22 +00:00
</label>
{/if}
2025-02-05 18:47:56 +00:00
{@render input?.()}
{#if info}
2024-10-17 22:21:22 +00:00
<p class="text-sm">
2025-02-05 18:47:56 +00:00
{@render info()}
2024-10-17 22:21:22 +00:00
</p>
{/if}
2024-08-08 21:02:46 +00:00
</div>