website/src/lib/components/Input/Textarea.svelte
bytedream e7bba22784
All checks were successful
delpoy / build-and-deploy (push) Successful in 49s
update report submitted window (#42)
2024-12-06 15:00:05 +01:00

58 lines
984 B
Svelte

<script lang="ts">
let {
id,
name,
value = $bindable(),
label,
notice,
required,
disabled,
readonly,
size = 'md',
rows = 2
}: {
id?: string;
name?: string;
value?: string;
label?: string;
notice?: string;
required?: boolean;
disabled?: boolean;
readonly?: boolean;
size?: 'xs' | 'sm' | 'md' | 'lg';
rows?: number;
} = $props();
</script>
<div>
{#if label}
<label class="label" for={id}>
<span class="label-text">
{label}
{#if required}
<span class="text-red-700">*</span>
{/if}
</span>
</label>
{/if}
<textarea
class="textarea textarea-bordered w-full"
class:textarea-xs={size === 'xs'}
class:textarea-sm={size === 'sm'}
class:textarea-md={size === 'md'}
class:textarea-lg={size === 'lg'}
{id}
{name}
{required}
{disabled}
{readonly}
{rows}
bind:value
></textarea>
{#if notice}
<label class="label" for={id}>
<span class="label-text-alt">{notice}</span>
</label>
{/if}
</div>