Interactive demo — tweak the Selector props below

Palette
Variant
Size
Rounded
Uppercase
Layout
Columns

Variants


Variants — map onto Button's variants

flat
outlined
ghost
naked


Svelte
<Selector
    label="Layout"
    options={["grid", "list", "tile"]}
    bind:value={layout}
/>


PropTypeDefault
labelstring—
palette"accent" | "tone" | "neutral" | "error" | "warning" | "success" | "info""accent"
variant"flat" | "outlined" | "ghost" | "naked""outlined"
size"sm" | "md" | "lg""sm"
roundedbooleanfalse
uppercasebooleanfalse
direction"row" | "column""row"
optionsreadonly (T | OptionEntry)[]—
valueT—
onchange(value: T) => void—
Prop label
Type string
Default —
Prop palette
Type "accent" | "tone" | "neutral" | "error" | "warning" | "success" | "info"
Default "accent"
Prop variant
Type "flat" | "outlined" | "ghost" | "naked"
Default "outlined"
Prop size
Type "sm" | "md" | "lg"
Default "sm"
Prop rounded
Type boolean
Default false
Prop uppercase
Type boolean
Default false
Prop direction
Type "row" | "column"
Default "row"
Prop options
Type readonly (T | OptionEntry)[]
Default —
Prop value
Type T
Default —
Prop onchange
Type (value: T) => void
Default —