Textarea
Reusable textarea component.
Usage
Components are auto-discovered. Use the component directly in any .wrn view:
<Textarea
id="id"
name="name"
label="Message"
value="value"
placeholder="placeholder"
/>Legacy mount name: data-component="Textarea".
Props and attributes
| Prop | Type | Requirement | Default |
|---|---|---|---|
class | string | Optional | "" |
id | string | Optional | "" |
name | string | Optional | "" |
label | string | Optional | "Message" |
value | string | Optional | "" |
placeholder | string | Optional | "" |
rows | number | Optional | 5 |
help | string | Optional | "" |
error | string | Optional | "" |
required | boolean | Optional | false |
disabled | boolean | Optional | false |
Slots
This component does not declare a slot.
Events
This component does not declare a custom event.
Source contract
Installed source: components/Textarea.wrn
component Textarea {
props {
class = ""
id = ""
name = ""
label = "Message"
value = ""
placeholder = ""
rows = 5
help = ""
error = ""
required = false
disabled = false
}
view {
<div class="space-y-2 {class}">
<label for="{id}" class="block text-sm font-semibold text-slate-800 dark:text-slate-200">{label}<span data-show="required" class="ml-1 text-red-500">*</span>
</label>
<textarea id="{id}" name="{name}" rows="{rows}" placeholder="{placeholder}" required="{required}" disabled="{disabled}" aria-invalid="{!!error}" class="w-full resize-y rounded-xl border bg-white px-3.5 py-3 text-slate-950 shadow-sm outline-none transition focus:border-violet-500 focus:ring-4 focus:ring-violet-500/10 dark:bg-slate-950 dark:text-white {error ? 'border-red-500' : 'border-slate-300 dark:border-slate-700'}">{value}</textarea>
<p data-show="help && !error" class="text-sm text-slate-500">{help}</p>
<p data-show="error" role="alert" class="text-sm font-medium text-red-600">{error}</p>
</div>
}
}