Production default
Balanced spacing, hierarchy, and content for the most common product workflow.
<Textarea
placeholder="Enter a sample value"
value="sample-1"
/>
// Generated by scripts/generate-showcase.mjs. Do not edit directly.
page TextareaDetail {
layout = "showcase"
state playground_size = ctx.url.searchParams.get("pg_size") ?? "default"
state playground_color = ctx.url.searchParams.get("pg_color") ?? "primary"
state playground_id = ctx.url.searchParams.get("pg_id") ?? ""
state playground_name = ctx.url.searchParams.get("pg_name") ?? ""
state playground_label = ctx.url.searchParams.get("pg_label") ?? "Textarea"
state playground_hiddenLabel = (ctx.url.searchParams.get("pg_hiddenLabel") ?? "false") === "true"
state playground_placeholder = ctx.url.searchParams.get("pg_placeholder") ?? "Enter a sample value"
state playground_value = ctx.url.searchParams.get("pg_value") ?? "sample-1"
state playground_variant = ctx.url.searchParams.get("pg_variant") ?? "normal"
state playground_icon = ctx.url.searchParams.get("pg_icon") ?? ""
state playground_iconPosition = ctx.url.searchParams.get("pg_iconPosition") ?? "start"
state playground_helperText = ctx.url.searchParams.get("pg_helperText") ?? ""
state playground_cornerHint = ctx.url.searchParams.get("pg_cornerHint") ?? ""
state playground_error = ctx.url.searchParams.get("pg_error") ?? ""
state playground_inline = (ctx.url.searchParams.get("pg_inline") ?? "false") === "true"
state playground_rows = Number(ctx.url.searchParams.get("pg_rows") ?? "5")
state playground_resize = ctx.url.searchParams.get("pg_resize") ?? "vertical"
state playground_readonly = (ctx.url.searchParams.get("pg_readonly") ?? "false") === "true"
state playground_disabled = (ctx.url.searchParams.get("pg_disabled") ?? "false") === "true"
state playground_required = (ctx.url.searchParams.get("pg_required") ?? "false") === "true"
state playground_minlength = ctx.url.searchParams.get("pg_minlength") ?? ""
state playground_maxlength = ctx.url.searchParams.get("pg_maxlength") ?? ""
state playground_class = ctx.url.searchParams.get("pg_class") ?? "showcase-instance showcase-instance--1"
seo {
title = "Textarea"
description = "Theme-aware, responsive textarea component."
}
view {
Theme-aware, responsive textarea component. Change any prop and inspect the server-rendered component immediately.Textarea
Configure Textarea
<Textarea
placeholder="Enter a sample value"
value="sample-1"
/>payload.
Compare configurations and resize the browser to check responsive behavior.
Balanced spacing, hierarchy, and content for the most common product workflow.
<Textarea
placeholder="Enter a sample value"
value="sample-1"
/>
A tighter variation for dashboards, side panels, tables, and operational interfaces.
<Textarea
size="sm"
label="Compact example"
placeholder="Enter a sample value"
value="sample-2"
variant="secondary"
icon="icon-[lucide--arrow-right]"
/>
A more expressive variation using additional data, stronger emphasis, and optional states.
<Textarea
size="lg"
label="Advanced example"
placeholder="Search by name, email, or identifier"
value="sample-3"
variant="success"
icon="icon-[lucide--trash-2]"
/>
Use declarative output handlers in .wrn files or register a direct output handler from JavaScript. The canonical API exposes payload and does not require event.detail.
@inputFires as the editable value changes.@changeFires when the component's committed value or selection changes.@focusFires when the interactive control receives focus.@blurFires when focus leaves the interactive control.@invalidFires when the component emits the invalid event.<Textarea
@input='console.log(payload)'
@change='console.log(payload)'
@focus='console.log(payload)'
@blur='console.log(payload)'
@invalid='console.log(payload)'
/>import { registerOutputHandler } from "@wrnexus/csr/outputs"
const component = document.querySelector("[data-ui-component=\"Textarea\"], [data-component=\"Textarea\"]")
if (component) registerOutputHandler(component, "input", (payload) => {
console.log("input", payload)
})
if (component) registerOutputHandler(component, "change", (payload) => {
console.log("change", payload)
})
if (component) registerOutputHandler(component, "focus", (payload) => {
console.log("focus", payload)
})
if (component) registerOutputHandler(component, "blur", (payload) => {
console.log("blur", payload)
})
if (component) registerOutputHandler(component, "invalid", (payload) => {
console.log("invalid", payload)
})All content and behavior shown above is supplied through these props and slots.
| Prop | Type | Default | Required |
|---|---|---|---|
size | string | "default" | No |
color | string | "primary" | No |
id | string | "" | No |
name | string | "" | No |
label | string | "Textarea" | No |
hiddenLabel | boolean | false | No |
placeholder | string | "" | No |
value | string | "" | No |
variant | string | "normal" | No |
icon | string | "" | No |
iconPosition | string | "start" | No |
helperText | string | "" | No |
cornerHint | string | "" | No |
error | string | "" | No |
inline | boolean | false | No |
rows | number | 5 | No |
resize | string | "vertical" | No |
readonly | boolean | false | No |
disabled | boolean | false | No |
required | boolean | false | No |
minlength | string | "" | No |
maxlength | string | "" | No |
class | string | "" | No |