// Generated by scripts/generate-showcase.mjs. Do not edit directly.
page SelectDetail {
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") ?? "select-1"
state playground_name = ctx.url.searchParams.get("pg_name") ?? "selectField"
state playground_label = ctx.url.searchParams.get("pg_label") ?? "Team"
state playground_hiddenLabel = ctx.url.searchParams.get("pg_hiddenLabel") ?? "false"
state playground_value = ctx.url.searchParams.get("pg_value") ?? ""
state playground_values = ctx.url.searchParams.get("pg_values") ?? ""
state playground_options = ctx.url.searchParams.get("pg_options") ?? "[\n {\n \"label\": \"Engineering\",\n \"value\": \"engineering\"\n },\n {\n \"label\": \"Design\",\n \"value\": \"design\"\n },\n {\n \"label\": \"Marketing\",\n \"value\": \"marketing\"\n }\n]"
state playground_placeholder = ctx.url.searchParams.get("pg_placeholder") ?? "Enter select"
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") ?? "Helpful context for this field."
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"
state playground_multiple = ctx.url.searchParams.get("pg_multiple") ?? "false"
state playground_readonly = ctx.url.searchParams.get("pg_readonly") ?? "false"
state playground_disabled = ctx.url.searchParams.get("pg_disabled") ?? "false"
state playground_required = ctx.url.searchParams.get("pg_required") ?? "false"
state playground_class = ctx.url.searchParams.get("pg_class") ?? ""
seo {
title = "Select"
description = "Theme-aware, responsive select component."
}
view {
Interactive playgroundConfigure Select
Change any prop and inspect the server-rendered component immediately.
Live preview
<Select
id="select-1"
name="selectField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
helperText="Helpful context for this field."
/>
Live examplesDesigned for real product surfaces
Compare configurations and resize the browser to check responsive behavior.
<Select
id="select-1"
name="selectField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
helperText="Helpful context for this field."
/>
<Select
id="select-2"
name="selectField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
variant="outlined"
icon="icon-[lucide--sparkles]"
/>
<Select
id="select-3"
name="selectField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
variant="floating"
icon="icon-[lucide--circle-user-round]"
iconPosition="end"
/>
<Select
size="sm"
id="select-4"
name="selectField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
variant="pill"
/>
<Select
id="select-5"
name="selectField"
label="Team"
value="design"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
readonly="true"
/>
<Select
id="select-6"
name="selectField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
disabled="true"
/>
<Select
id="select-7"
name="selectField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
helperText="We'll never share your details."
inline="true"
/>
<Select
id="select-8"
name="selectField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
cornerHint="Optional"
/>
<Select
id="select-9"
name="validatedField"
label="Team"
options='[
{
"label": "Engineering",
"value": "engineering"
},
{
"label": "Design",
"value": "design"
},
{
"label": "Marketing",
"value": "marketing"
}
]'
placeholder="Enter select"
required="true"
/>
Component eventsEvents
Public events declared by this component. Custom events bubble from the component root and expose state through event.detail.
@inputFires immediately as the component value changes.
@changeFires when the component value or selection changes.
@focusFires when the component receives focus.
@blurFires when focus leaves the component.
@openFires when the component opens.
@closeFires when the component closes.
@invalidFires when the component emits the invalid event.
const component = document.querySelector('[data-wrn-events]')
component.addEventListener('input', (event) => {
console.log(event.detail)
})
Component APIProps and configuration
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 | "Select" | No |
hiddenLabel | boolean | false | No |
value | string | "" | No |
values | string | [] | No |
options | string | [] | No |
placeholder | string | "Select an option" | 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 |
multiple | boolean | false | No |
readonly | boolean | false | No |
disabled | boolean | false | No |
required | boolean | false | No |
class | string | "" | No |
}
}