- Prop
options- Type
readonly SelectOption[]- Default
- —
- Requirement
- required
- Description
- —
Docs Components Forms
Select
React example follows below.
Vue example follows below.
Angular example follows below.
Svelte example follows below.
Solid example follows below.
- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
const selectFixture = { id: "select", label: "Region", placeholder: "Choose a region", defaultValue: ["us-east-1"], options: [ { value: "us-east-1", label: "US East" }, { value: "eu-west-1", label: "EU West" }, { value: "ap-southeast-1", label: "Asia Pacific", disabled: true }, ],} as const; import { Select } from "@grassroot/ui-react"; export default function SelectDemo() { return ( <div> <Select id={`${selectFixture.id}-react`} label={selectFixture.label} placeholder={selectFixture.placeholder} defaultValue={selectFixture.defaultValue} options={[...selectFixture.options]} /> </div> );}- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script setup lang="ts">import { ref } from "vue";const selectFixture = { id: "select", label: "Region", placeholder: "Choose a region", defaultValue: ["us-east-1"], options: [ { value: "us-east-1", label: "US East" }, { value: "eu-west-1", label: "EU West" }, { value: "ap-southeast-1", label: "Asia Pacific", disabled: true }, ],} as const; import { Select } from "@grassroot/ui-vue";const value = ref(selectFixture.defaultValue);</script><template> <div> <Select id="select-vue" v-model="value" :label="selectFixture.label" :options="[...selectFixture.options]" /> </div></template>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
import { Component } from "@angular/core";const selectFixture = { id: "select", label: "Region", placeholder: "Choose a region", defaultValue: ["us-east-1"], options: [ { value: "us-east-1", label: "US East" }, { value: "eu-west-1", label: "EU West" }, { value: "ap-southeast-1", label: "Asia Pacific", disabled: true }, ],} as const; import { GrassrootSelect } from "@grassroot/ui-angular";@Component({ selector: "app-select-demo", standalone: true, imports: [GrassrootSelect], template: `<div> <grassroot-select id="select-angular" [label]="fixture.label" [options]="fixture.options" [value]="fixture.defaultValue" /> </div>`,})export class SelectDemoComponent { protected readonly fixture = selectFixture;}export default SelectDemoComponent;- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
<script lang="ts"> const selectFixture = { id: "select", label: "Region", placeholder: "Choose a region", defaultValue: ["us-east-1"], options: [ { value: "us-east-1", label: "US East" }, { value: "eu-west-1", label: "EU West" }, { value: "ap-southeast-1", label: "Asia Pacific", disabled: true }, ], } as const; import { Select } from "@grassroot/ui-svelte"; let value = $state(selectFixture.defaultValue);</script> <div> <Select id="select-svelte" label={selectFixture.label} options={[...selectFixture.options]} bind:value /></div>- parts
- —
- nodes
- —
- size
- —
- part
- —
ts
/** @jsxImportSource solid-js */const selectFixture = { id: "select", label: "Region", placeholder: "Choose a region", defaultValue: ["us-east-1"], options: [ { value: "us-east-1", label: "US East" }, { value: "eu-west-1", label: "EU West" }, { value: "ap-southeast-1", label: "Asia Pacific", disabled: true }, ],} as const; import { Select } from "@grassroot/ui-solid";export default function SelectDemo() { return ( <div> <Select id={`${selectFixture.id}-solid`} label={selectFixture.label} placeholder={selectFixture.placeholder} options={[...selectFixture.options]} defaultValue={selectFixture.defaultValue} /> </div> );}Installation
API Reference
Import
import { Select } from "@grassroot/ui-react";
Props
Prop
Type
Default
Requirement
Description
optionsreadonly SelectOption[]—
required
—
valueTValue | undefined—
optional
—
defaultValueTValue | undefined—
optional
—
selectionMode"single" | "multiple" | undefined—
optional
—
onValueChange((value: TValue) => void) | undefined—
optional
—
labelstring | undefined—
optional
—
placeholderstring | undefined—
optional
—
defaultOpenboolean | undefinedfalseoptional
Render initially open — handy for layout/stories.
classNamestring | undefined—
optional
—
idstring | undefined—
optional
—
- Prop
value- Type
TValue | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
defaultValue- Type
TValue | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
selectionMode- Type
"single" | "multiple" | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
onValueChange- Type
((value: TValue) => void) | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
label- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
placeholder- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
defaultOpen- Type
boolean | undefined- Default
false- Requirement
- optional
- Description
- Render initially open — handy for layout/stories.
- Prop
className- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
- Prop
id- Type
string | undefined- Default
- —
- Requirement
- optional
- Description
- —
Events
| Event | Payload |
|---|---|
onValueChange | ((value: TValue) => void) | undefined |
Import
import { ref } from "vue";
import { Select } from "@grassroot/ui-vue";
Props
Prop
Type
Default
Requirement
optionsreadonly SelectOptionInput[]—
required
modelValueSelectValue | undefined—
optional
selectionMode"single" | "multiple" | undefined—
optional
labelstring | undefined—
optional
placeholderstring | undefined"Select…"optional
defaultOpenboolean | undefinedfalseoptional
idstring | undefined—
optional
- Prop
options- Type
readonly SelectOptionInput[]- Default
- —
- Requirement
- required
- Prop
modelValue- Type
SelectValue | undefined- Default
- —
- Requirement
- optional
- Prop
selectionMode- Type
"single" | "multiple" | undefined- Default
- —
- Requirement
- optional
- Prop
label- Type
string | undefined- Default
- —
- Requirement
- optional
- Prop
placeholder- Type
string | undefined- Default
"Select…"- Requirement
- optional
- Prop
defaultOpen- Type
boolean | undefined- Default
false- Requirement
- optional
- Prop
id- Type
string | undefined- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
update:modelValue | [value: SelectValue] |
Import
import { Component } from "@angular/core";
import { GrassrootSelect } from "@grassroot/ui-angular";
Props
Prop
Type
Default
Requirement
optionsreadonly SelectOptionInput[]—
required
labelstring—
optional
placeholderstring"Select…"optional
idstring—
optional
defaultOpenbooleanfalseoptional
defaultValueSelectValue—
optional
selectionMode"single" | "multiple"—
optional
valueSelectValue—
optional
- Prop
options- Type
readonly SelectOptionInput[]- Default
- —
- Requirement
- required
- Prop
label- Type
string- Default
- —
- Requirement
- optional
- Prop
placeholder- Type
string- Default
"Select…"- Requirement
- optional
- Prop
id- Type
string- Default
- —
- Requirement
- optional
- Prop
defaultOpen- Type
boolean- Default
false- Requirement
- optional
- Prop
defaultValue- Type
SelectValue- Default
- —
- Requirement
- optional
- Prop
selectionMode- Type
"single" | "multiple"- Default
- —
- Requirement
- optional
- Prop
value- Type
SelectValue- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
valueChange | SelectValue |
Import
import { Select } from "@grassroot/ui-svelte";
Props
Prop
Type
Default
Requirement
optionsreadonly SelectOptionInput[]—
required
valueSelectValue—
optional
defaultValueSelectValue—
optional
selectionMode"single" | "multiple"—
optional
labelstring—
optional
placeholderstring"Select…"optional
defaultOpenbooleanfalseoptional
idstring—
optional
onValueChange(value: SelectValue) => void—
optional
- Prop
options- Type
readonly SelectOptionInput[]- Default
- —
- Requirement
- required
- Prop
value- Type
SelectValue- Default
- —
- Requirement
- optional
- Prop
defaultValue- Type
SelectValue- Default
- —
- Requirement
- optional
- Prop
selectionMode- Type
"single" | "multiple"- Default
- —
- Requirement
- optional
- Prop
label- Type
string- Default
- —
- Requirement
- optional
- Prop
placeholder- Type
string- Default
"Select…"- Requirement
- optional
- Prop
defaultOpen- Type
boolean- Default
false- Requirement
- optional
- Prop
id- Type
string- Default
- —
- Requirement
- optional
- Prop
onValueChange- Type
(value: SelectValue) => void- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onValueChange | (value: SelectValue) => void |
Import
import { Select } from "@grassroot/ui-solid";
Props
Prop
Type
Default
Requirement
optionsreadonly SelectOption[]—
required
valueSelectValue—
optional
defaultValueSelectValue—
optional
selectionMode"single" | "multiple"—
optional
onValueChange(value: SelectValue) => void—
optional
labelstring—
optional
placeholderstring"Select…"optional
defaultOpenbooleanfalseoptional
idstring—
optional
classNamestring—
optional
- Prop
options- Type
readonly SelectOption[]- Default
- —
- Requirement
- required
- Prop
value- Type
SelectValue- Default
- —
- Requirement
- optional
- Prop
defaultValue- Type
SelectValue- Default
- —
- Requirement
- optional
- Prop
selectionMode- Type
"single" | "multiple"- Default
- —
- Requirement
- optional
- Prop
onValueChange- Type
(value: SelectValue) => void- Default
- —
- Requirement
- optional
- Prop
label- Type
string- Default
- —
- Requirement
- optional
- Prop
placeholder- Type
string- Default
"Select…"- Requirement
- optional
- Prop
defaultOpen- Type
boolean- Default
false- Requirement
- optional
- Prop
id- Type
string- Default
- —
- Requirement
- optional
- Prop
className- Type
string- Default
- —
- Requirement
- optional
Events
| Event | Payload |
|---|---|
onValueChange | (value: SelectValue) => void |