Production default
Balanced spacing, hierarchy, and content for the most common product workflow.
<FileInput
label="File Input"
placeholder="Enter a sample value"
value="sample-1"
/>
// Generated by scripts/generate-showcase.mjs. Do not edit directly.
page FileInputDetail {
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") ?? "File Input"
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_icon = ctx.url.searchParams.get("pg_icon") ?? ""
state playground_iconPosition = ctx.url.searchParams.get("pg_iconPosition") ?? "start"
state playground_accept = ctx.url.searchParams.get("pg_accept") ?? ""
state playground_multiple = (ctx.url.searchParams.get("pg_multiple") ?? "false") === "true"
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_variant = ctx.url.searchParams.get("pg_variant") ?? "normal"
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_class = ctx.url.searchParams.get("pg_class") ?? "showcase-instance showcase-instance--1"
seo {
title = "File Input"
description = "Theme-aware, responsive file input component."
}
view {
Theme-aware, responsive file input component. Change any prop and inspect the server-rendered component immediately.File Input
Configure File Input
<FileInput
label="File Input"
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.
<FileInput
label="File Input"
placeholder="Enter a sample value"
value="sample-1"
/>
A tighter variation for dashboards, side panels, tables, and operational interfaces.
<FileInput
size="sm"
label="Compact example"
placeholder="Enter a sample value"
value="sample-2"
icon="icon-[lucide--arrow-right]"
variant="secondary"
/>
A more expressive variation using additional data, stronger emphasis, and optional states.
<FileInput
size="lg"
label="Advanced example"
placeholder="Search by name, email, or identifier"
value="sample-3"
icon="icon-[lucide--trash-2]"
variant="success"
/>
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.@selectFires when an item, option, card, or result is selected.@clearFires after the current value or selection is cleared.@invalidFires when the component emits the invalid event.<FileInput
@input='console.log(payload)'
@change='console.log(payload)'
@focus='console.log(payload)'
@blur='console.log(payload)'
@select='console.log(payload)'
@clear='console.log(payload)'
@invalid='console.log(payload)'
/>import { registerOutputHandler } from "@wrnexus/csr/outputs"
const component = document.querySelector("[data-ui-component=\"FileInput\"], [data-component=\"FileInput\"]")
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, "select", (payload) => {
console.log("select", payload)
})
if (component) registerOutputHandler(component, "clear", (payload) => {
console.log("clear", 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 | "File" | No |
hiddenLabel | boolean | false | No |
placeholder | string | "Choose a file" | No |
value | string | "" | No |
icon | string | "icon-[lucide--upload]" | No |
iconPosition | string | "start" | No |
accept | string | "" | No |
multiple | boolean | false | No |
helperText | string | "" | No |
cornerHint | string | "" | No |
error | string | "" | No |
inline | boolean | false | No |
variant | string | "normal" | No |
readonly | boolean | false | No |
disabled | boolean | false | No |
required | boolean | false | No |
class | string | "" | No |