DocsAPI referenceHeadlessselect

select headless API

The core connector and vanilla mount are always visible. Use the framework choice to inspect native composition, props, outputs, context and hooks for the selected adapter.

@grassroot/ui-headless-core/select

Core connector and vanilla API

13 exports
View source packages/ui-headless/core/src/select/index.ts

Activates Select's non-modal layer once its Content is mounted. The shared layer owns Escape and outside-pointer dismissal; this seam is intentionally mount-time only, matching the Dialog and date-picker activation helpers.

DeclarationView source
activateSelectLayerts
declare function activateSelectLayer(service: SelectService, scope: PartScope, doc: Document): () => void;
Name
Kind
Type
Requirement
service
parameter
SelectService
required
scope
parameter
PartScope
required
doc
parameter
Document
required
return
return value
() => void
n/a
Name
service
Kind
parameter
Type
SelectService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
doc
Kind
parameter
Type
Document
Requirement
required
Name
return
Kind
return value
Type
() => void
Requirement
n/a

applyProps

function

Applies one connector prop bag onto one element, diffing against the previously-applied bag so unchanged attributes/properties are never rewritten (keeps re-renders cheap and avoids fighting a11y-tree churn). Handles: `on*` -> addEventListener (removing the previous listener for that key first), `ref` -> callback invoked with the element, `style` -> object assigned property-by-property, everything else -> `setAttribute`/ `removeAttribute` (booleans and `undefined`/`null` remove the attribute; `true` sets an empty-string attribute value). Returns the bag that was applied, so the caller can pass it back in as `previous` on the next call.

DeclarationView source
applyPropsts
declare function applyProps(element: Element, next: PartProps, previous: PartProps | undefined, listeners: Map<string, EventListener>): PartProps;
Name
Kind
Type
Requirement
element
parameter
Element
required
next
parameter
PartProps
required
previous
parameter
PartProps | undefined
required
listeners
parameter
Map<string, EventListener>
required
return
return value
PartProps
n/a
Name
element
Kind
parameter
Type
Element
Requirement
required
Name
next
Kind
parameter
Type
PartProps
Requirement
required
Name
previous
Kind
parameter
Type
PartProps | undefined
Requirement
required
Name
listeners
Kind
parameter
Type
Map<string, EventListener>
Requirement
required
Name
return
Kind
return value
Type
PartProps
Requirement
n/a

connectSelect

function
DeclarationView source
connectSelectts
declare function connectSelect(service: SelectService, scope: PartScope, options?: SelectConnectOptions): SelectApi;
Name
Kind
Type
Requirement
service
parameter
SelectService
required
scope
parameter
PartScope
required
options
parameter
SelectConnectOptions
optional
return
return value
SelectApi
n/a
Name
service
Kind
parameter
Type
SelectService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
SelectConnectOptions
Requirement
optional
Name
return
Kind
return value
Type
SelectApi
Requirement
n/a

createItemNodes

function

Builds one item's anatomy (`li[data-part=item]` containing `span[data-part=item-text]`), mapping a `SelectOption` to its two DOM nodes. Pure, ref-free — kept separate from `mountSelect` so it's unit- testable without a fake `document`.

DeclarationView source
createItemNodests
declare function createItemNodes(doc: Document, option: SelectOptionInput, renderItem?: (li: HTMLElement, option: SelectOptionInput) => void): {
li: HTMLLIElement;
text: HTMLSpanElement;
};
Name
Kind
Type
Requirement
doc
parameter
Document
required
option
parameter
SelectOptionInput
required
renderItem
parameter
(li: HTMLElement, option: SelectOptionInput) => void
optional
return
return value
{ li: HTMLLIElement; text: HTMLSpanElement; }
n/a
Name
doc
Kind
parameter
Type
Document
Requirement
required
Name
option
Kind
parameter
Type
SelectOptionInput
Requirement
required
Name
renderItem
Kind
parameter
Type
(li: HTMLElement, option: SelectOptionInput) => void
Requirement
optional
Name
return
Kind
return value
Type
{ li: HTMLLIElement; text: HTMLSpanElement; }
Requirement
n/a

mountSelect

function
DeclarationView source
mountSelectts
declare function mountSelect(container: HTMLElement, options: MountSelectOptions): SelectMount;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
options
parameter
MountSelectOptions
required
return
return value
SelectMount
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
options
Kind
parameter
Type
MountSelectOptions
Requirement
required
Name
return
Kind
return value
Type
SelectMount
Requirement
n/a

MountSelectOptions

interface
DeclarationView source
MountSelectOptionsts
interface MountSelectOptions extends SelectInput {
readonly name?: string;
readonly required?: boolean;
readonly dir?: "ltr" | "rtl";
readonly onValueChange?: (detail: SelectValueChangeDetail) => void;
/** Render callback for one item's text content; default = option.label as textContent. */
readonly renderItem?: (li: HTMLElement, option: SelectOptionInput) => void;
}
Name
Kind
Type
Requirement
Description
dir
property
"ltr" | "rtl"
optional
name
property
string
optional
onValueChange
property
(detail: SelectValueChangeDetail) => void
optional
renderItem
property
(li: HTMLElement, option: SelectOptionInput) => void
optional
Render callback for one item's text content; default = option.label as textContent.
required
property
boolean
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Description
Name
name
Kind
property
Type
string
Requirement
optional
Description
Name
onValueChange
Kind
property
Type
(detail: SelectValueChangeDetail) => void
Requirement
optional
Description
Name
renderItem
Kind
property
Type
(li: HTMLElement, option: SelectOptionInput) => void
Requirement
optional
Description
Render callback for one item's text content; default = option.label as textContent.
Name
required
Kind
property
Type
boolean
Requirement
optional
Description
DeclarationView source
selectAnatomyts
export declare const selectAnatomy: {
readonly scope: "select";
readonly parts: readonly ["root", "trigger", "positioner", "content", "item", "item-text", "hidden-input"];
};
Name
Kind
Type
Requirement
parts
property
readonly ["root", "trigger", "positioner", "content", "item", "item-text", "hidden-input"]
required
scope
property
"select"
required
Name
parts
Kind
property
Type
readonly ["root", "trigger", "positioner", "content", "item", "item-text", "hidden-input"]
Requirement
required
Name
scope
Kind
property
Type
"select"
Requirement
required

SelectApi

interface
DeclarationView source
SelectApits
interface SelectApi {
rootProps(): PartProps;
triggerProps(): PartProps;
positionerProps(): PartProps;
contentProps(): PartProps;
itemProps(option: SelectOptionInput): PartProps;
itemTextProps(option: SelectOptionInput): PartProps;
hiddenInputProps(formOptions?: {
name?: string;
required?: boolean;
}): readonly PartProps[];
readonly open: boolean;
readonly value: SelectValue;
readonly selectedIds: readonly string[];
readonly activeIndex: number;
}
Name
Kind
Type
Requirement
activeIndex
property
number
required
contentProps
method
() => PartProps
required
hiddenInputProps
method
(formOptions?: { name?: string; required?: boolean; }) => readonly PartProps[]
required
itemProps
method
(option: SelectOptionInput) => PartProps
required
itemTextProps
method
(option: SelectOptionInput) => PartProps
required
open
property
boolean
required
positionerProps
method
() => PartProps
required
rootProps
method
() => PartProps
required
selectedIds
property
readonly string[]
required
triggerProps
method
() => PartProps
required
value
property
SelectValue
required
Name
activeIndex
Kind
property
Type
number
Requirement
required
Name
contentProps
Kind
method
Type
() => PartProps
Requirement
required
Name
hiddenInputProps
Kind
method
Type
(formOptions?: { name?: string; required?: boolean; }) => readonly PartProps[]
Requirement
required
Name
itemProps
Kind
method
Type
(option: SelectOptionInput) => PartProps
Requirement
required
Name
itemTextProps
Kind
method
Type
(option: SelectOptionInput) => PartProps
Requirement
required
Name
open
Kind
property
Type
boolean
Requirement
required
Name
positionerProps
Kind
method
Type
() => PartProps
Requirement
required
Name
rootProps
Kind
method
Type
() => PartProps
Requirement
required
Name
selectedIds
Kind
property
Type
readonly string[]
Requirement
required
Name
triggerProps
Kind
method
Type
() => PartProps
Requirement
required
Name
value
Kind
property
Type
SelectValue
Requirement
required
DeclarationView source
SelectConnectOptionsts
interface SelectConnectOptions {
readonly dir?: "ltr" | "rtl";
readonly typeaheadTimeout?: number;
readonly now?: () => number;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
now
property
() => number
optional
typeaheadTimeout
property
number
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
now
Kind
property
Type
() => number
Requirement
optional
Name
typeaheadTimeout
Kind
property
Type
number
Requirement
optional

SelectMount

interface
DeclarationView source
SelectMountts
interface SelectMount {
readonly service: SelectService;
readonly connector: SelectApi;
readonly root: HTMLElement;
destroy(): void;
}
Name
Kind
Type
Requirement
connector
property
SelectApi
required
destroy
method
() => void
required
root
property
HTMLElement
required
service
property
SelectService
required
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
root
Kind
property
Type
HTMLElement
Requirement
required
Name
service
Kind
property
Type
SelectService
Requirement
required

SelectPart

type
DeclarationView source
SelectPartts
type SelectPart = (typeof selectAnatomy.parts)[number];
DeclarationView source
SelectServicets
type SelectService = Service<SelectInput, SelectStateValue, SelectContext, SelectEvent, SelectCommand>;
DeclarationView source
SelectValueChangeDetailts
interface SelectValueChangeDetail {
readonly value: SelectValue;
readonly reason: SelectChangeReason;
}
Name
Kind
Type
Requirement
reason
property
SelectChangeReason
required
value
property
SelectValue
required
Name
reason
Kind
property
Type
SelectChangeReason
Requirement
required
Name
value
Kind
property
Type
SelectValue
Requirement
required

Framework adapters

Each panel keeps its adapter's public vocabulary. React compound exports, Vue composables, standalone Angular declarations, Svelte components, and Solid hooks stay native to their framework.

React example follows below.

React imports

@grassroot/ui-headless-react/selectts
import { Content, Item, ItemText, Positioner, Root, RootProvider, Select, Trigger } from "@grassroot/ui-headless-react/select";

Vue imports

@grassroot/ui-headless-vue/selectts
<script setup lang="ts">
import { SelectContent, SelectItem, SelectItemText, SelectPositioner, SelectRoot, SelectRootProvider, SelectTrigger } from "@grassroot/ui-headless-vue/select";
</script>

Angular imports

@grassroot/ui-headless-angular/selectts
import { Component } from "@angular/core";
import { GR_SELECT_DECLARATIONS } from "@grassroot/ui-headless-angular/select";
@Component({ standalone: true, imports: [GR_SELECT_DECLARATIONS], template: `<!-- compose the select parts here -->` })
export class Example {}

Svelte imports

@grassroot/ui-headless-svelte/selectts
<script lang="ts">
import { SelectContent, SelectItem, SelectItemText, SelectPositioner, SelectRoot, SelectRootProvider, SelectTrigger } from "@grassroot/ui-headless-svelte/select";
</script>

Solid imports

@grassroot/ui-headless-solid/selectts
import { SelectContent, SelectItem, SelectItemText, SelectPositioner, SelectRoot, SelectRootProvider, SelectTrigger } from "@grassroot/ui-headless-solid/select";

@grassroot/ui-headless-react/select

React adapter

25 exports
View source packages/ui-headless/react/src/select/index.ts

Content

value
DeclarationView source
Contentts
export declare const Content: import("react").ForwardRefExoticComponent<SelectContentProps & import("react").RefAttributes<HTMLUListElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

HiddenInput

value
DeclarationView source
HiddenInputts
export declare const HiddenInput: import("react").ForwardRefExoticComponent<SelectHiddenInputProps & import("react").RefAttributes<HTMLInputElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Item

value
DeclarationView source
Itemts
export declare const Item: import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLLIElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

ItemText

value
DeclarationView source
ItemTextts
export declare const ItemText: import("react").ForwardRefExoticComponent<SelectItemTextProps & import("react").RefAttributes<HTMLSpanElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Positioner

value
DeclarationView source
Positionerts
export declare const Positioner: import("react").ForwardRefExoticComponent<SelectPositionerProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Root

value
DeclarationView source
Rootts
export declare const Root: import("react").ForwardRefExoticComponent<SelectRootProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

RootProvider

value
DeclarationView source
RootProviderts
export declare const RootProvider: import("react").ForwardRefExoticComponent<SelectRootProviderProps & import("react").RefAttributes<HTMLDivElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

Select

value
DeclarationView source
Selectts
export declare const Select: {
Root: import("react").ForwardRefExoticComponent<SelectRootProps & import("react").RefAttributes<HTMLDivElement>>;
RootProvider: import("react").ForwardRefExoticComponent<SelectRootProviderProps & import("react").RefAttributes<HTMLDivElement>>;
Trigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
Positioner: import("react").ForwardRefExoticComponent<SelectPositionerProps & import("react").RefAttributes<HTMLDivElement>>;
Content: import("react").ForwardRefExoticComponent<SelectContentProps & import("react").RefAttributes<HTMLUListElement>>;
Item: import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLLIElement>>;
ItemText: import("react").ForwardRefExoticComponent<SelectItemTextProps & import("react").RefAttributes<HTMLSpanElement>>;
HiddenInput: import("react").ForwardRefExoticComponent<SelectHiddenInputProps & import("react").RefAttributes<HTMLInputElement>>;
};
Name
Kind
Type
Requirement
Content
property
import("react").ForwardRefExoticComponent<SelectContentProps & import("react").RefAttributes<HTMLUListElement>>
required
HiddenInput
property
import("react").ForwardRefExoticComponent<SelectHiddenInputProps & import("react").RefAttributes<HTMLInputElement>>
required
Item
property
import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLLIElement>>
required
ItemText
property
import("react").ForwardRefExoticComponent<SelectItemTextProps & import("react").RefAttributes<HTMLSpanElement>>
required
Positioner
property
import("react").ForwardRefExoticComponent<SelectPositionerProps & import("react").RefAttributes<HTMLDivElement>>
required
Root
property
import("react").ForwardRefExoticComponent<SelectRootProps & import("react").RefAttributes<HTMLDivElement>>
required
RootProvider
property
import("react").ForwardRefExoticComponent<SelectRootProviderProps & import("react").RefAttributes<HTMLDivElement>>
required
Trigger
property
import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>
required
Name
Content
Kind
property
Type
import("react").ForwardRefExoticComponent<SelectContentProps & import("react").RefAttributes<HTMLUListElement>>
Requirement
required
Name
HiddenInput
Kind
property
Type
import("react").ForwardRefExoticComponent<SelectHiddenInputProps & import("react").RefAttributes<HTMLInputElement>>
Requirement
required
Name
Item
Kind
property
Type
import("react").ForwardRefExoticComponent<SelectItemProps & import("react").RefAttributes<HTMLLIElement>>
Requirement
required
Name
ItemText
Kind
property
Type
import("react").ForwardRefExoticComponent<SelectItemTextProps & import("react").RefAttributes<HTMLSpanElement>>
Requirement
required
Name
Positioner
Kind
property
Type
import("react").ForwardRefExoticComponent<SelectPositionerProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Root
Kind
property
Type
import("react").ForwardRefExoticComponent<SelectRootProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
RootProvider
Kind
property
Type
import("react").ForwardRefExoticComponent<SelectRootProviderProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Trigger
Kind
property
Type
import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>
Requirement
required

SelectContentProps

interface
DeclarationView source
SelectContentPropsts
interface SelectContentProps extends ComponentPropsWithoutRef<"ul"> {
readonly asChild?: boolean;
/** Keep the content mounted (with `data-state="closed"`) instead of unmounting it. */
readonly forceMount?: boolean;
}
Name
Kind
Type
Requirement
Description
asChild
property
boolean
optional
forceMount
property
boolean
optional
Keep the content mounted (with `data-state="closed"`) instead of unmounting it.
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Description
Name
forceMount
Kind
property
Type
boolean
Requirement
optional
Description
Keep the content mounted (with `data-state="closed"`) instead of unmounting it.
DeclarationView source
SelectContextts
export declare const SelectContext: import("react").Context<SelectContextValue | null>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

SelectContextValue

interface
DeclarationView source
SelectContextValuets
interface SelectContextValue {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
/**
* `select.spec.md` requires `aria-required` on the trigger when the
* field is required, but `connectSelect().triggerProps()` (frozen
* platform code) does not expose a `required` input and never emits it.
* The adapter carries the flag via context and `Trigger` layers
* `aria-required` on top of the connector's prop bag to satisfy the
* spec without reimplementing connector semantics.
*/
readonly required?: boolean;
}
Name
Kind
Type
Requirement
Description
connector
property
SelectApi
required
required
property
boolean
optional
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via context and `Trigger` layers `aria-required` on top of the connector's prop bag to satisfy the spec without reimplementing connector semantics.
scope
property
PartScope
required
service
property
SelectService
required
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Description
Name
required
Kind
property
Type
boolean
Requirement
optional
Description
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via context and `Trigger` layers `aria-required` on top of the connector's prop bag to satisfy the spec without reimplementing connector semantics.
Name
scope
Kind
property
Type
PartScope
Requirement
required
Description
Name
service
Kind
property
Type
SelectService
Requirement
required
Description
DeclarationView source
SelectHiddenInputPropsts
interface SelectHiddenInputProps extends Omit<ComponentPropsWithoutRef<"input">, "name" | "required"> {
readonly asChild?: boolean;
readonly name?: string;
readonly required?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
name
property
string
optional
required
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
name
Kind
property
Type
string
Requirement
optional
Name
required
Kind
property
Type
boolean
Requirement
optional

SelectItemProps

interface
DeclarationView source
SelectItemPropsts
interface SelectItemProps extends ComponentPropsWithoutRef<"li"> {
readonly asChild?: boolean;
readonly option: SelectOptionInput;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
option
property
SelectOptionInput
required
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
option
Kind
property
Type
SelectOptionInput
Requirement
required
DeclarationView source
SelectItemTextPropsts
interface SelectItemTextProps extends ComponentPropsWithoutRef<"span"> {
readonly asChild?: boolean;
readonly option: SelectOptionInput;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
option
property
SelectOptionInput
required
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
option
Kind
property
Type
SelectOptionInput
Requirement
required
DeclarationView source
SelectPositionerPropsts
interface SelectPositionerProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
/** Render children into `document.body` via a portal, after mount only (SSR-safe). */
readonly portalled?: boolean;
}
Name
Kind
Type
Requirement
Description
asChild
property
boolean
optional
portalled
property
boolean
optional
Render children into `document.body` via a portal, after mount only (SSR-safe).
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Description
Name
portalled
Kind
property
Type
boolean
Requirement
optional
Description
Render children into `document.body` via a portal, after mount only (SSR-safe).

SelectRootProps

interface
DeclarationView source
SelectRootPropsts
interface SelectRootProps extends Omit<ComponentPropsWithoutRef<"div">, "value" | "defaultValue" | "dir" | "onChange"> {
readonly asChild?: boolean;
readonly options: SelectInput["options"];
readonly value?: SelectInput["value"];
readonly defaultValue?: SelectInput["defaultValue"];
readonly defaultOpen?: SelectInput["defaultOpen"];
readonly loop?: SelectInput["loop"];
readonly selectionMode?: SelectInput["selectionMode"];
readonly name?: string;
readonly required?: boolean;
readonly dir?: "ltr" | "rtl";
readonly onValueChange?: (detail: SelectValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
defaultOpen
property
SelectInput["defaultOpen"]
optional
defaultValue
property
SelectInput["defaultValue"]
optional
dir
property
"ltr" | "rtl"
optional
loop
property
SelectInput["loop"]
optional
name
property
string
optional
onValueChange
property
(detail: SelectValueChangeDetail) => void
optional
options
property
SelectInput["options"]
required
required
property
boolean
optional
selectionMode
property
SelectInput["selectionMode"]
optional
value
property
SelectInput["value"]
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
defaultOpen
Kind
property
Type
SelectInput["defaultOpen"]
Requirement
optional
Name
defaultValue
Kind
property
Type
SelectInput["defaultValue"]
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
loop
Kind
property
Type
SelectInput["loop"]
Requirement
optional
Name
name
Kind
property
Type
string
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SelectValueChangeDetail) => void
Requirement
optional
Name
options
Kind
property
Type
SelectInput["options"]
Requirement
required
Name
required
Kind
property
Type
boolean
Requirement
optional
Name
selectionMode
Kind
property
Type
SelectInput["selectionMode"]
Requirement
optional
Name
value
Kind
property
Type
SelectInput["value"]
Requirement
optional
DeclarationView source
SelectRootProviderPropsts
interface SelectRootProviderProps extends Omit<ComponentPropsWithoutRef<"div">, "value" | "defaultValue" | "dir" | "onChange"> {
readonly asChild?: boolean;
/** An existing `useSelect()` result (advanced composition). */
readonly value: UseSelectResult;
readonly name?: string;
readonly required?: boolean;
}
Name
Kind
Type
Requirement
Description
asChild
property
boolean
optional
name
property
string
optional
required
property
boolean
optional
value
property
UseSelectResult
required
An existing `useSelect()` result (advanced composition).
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Description
Name
name
Kind
property
Type
string
Requirement
optional
Description
Name
required
Kind
property
Type
boolean
Requirement
optional
Description
Name
value
Kind
property
Type
UseSelectResult
Requirement
required
Description
An existing `useSelect()` result (advanced composition).

SelectTriggerProps

interface
DeclarationView source
SelectTriggerPropsts
interface SelectTriggerProps extends Omit<ComponentPropsWithoutRef<"button">, "type"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
SelectValueChangeDetailts
interface SelectValueChangeDetail {
readonly value: SelectValue;
readonly reason: SelectChangeReason;
}
Name
Kind
Type
Requirement
reason
property
SelectChangeReason
required
value
property
SelectValue
required
Name
reason
Kind
property
Type
SelectChangeReason
Requirement
required
Name
value
Kind
property
Type
SelectValue
Requirement
required

Trigger

value
DeclarationView source
Triggerts
export declare const Trigger: import("react").ForwardRefExoticComponent<SelectTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a

useSelect

function
DeclarationView source
useSelectts
declare function useSelect(input: SelectInput, options?: UseSelectOptions): UseSelectResult;
Name
Kind
Type
Requirement
input
parameter
SelectInput
required
options
parameter
UseSelectOptions
optional
return
return value
UseSelectResult
n/a
Name
input
Kind
parameter
Type
SelectInput
Requirement
required
Name
options
Kind
parameter
Type
UseSelectOptions
Requirement
optional
Name
return
Kind
return value
Type
UseSelectResult
Requirement
n/a

useSelectContext

function
DeclarationView source
useSelectContextts
declare function useSelectContext(partName: string): SelectContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
SelectContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
SelectContextValue
Requirement
n/a

UseSelectOptions

interface
DeclarationView source
UseSelectOptionsts
interface UseSelectOptions {
readonly dir?: "ltr" | "rtl";
readonly typeaheadTimeout?: number;
readonly now?: () => number;
readonly onValueChange?: (detail: SelectValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
now
property
() => number
optional
onValueChange
property
(detail: SelectValueChangeDetail) => void
optional
typeaheadTimeout
property
number
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
now
Kind
property
Type
() => number
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SelectValueChangeDetail) => void
Requirement
optional
Name
typeaheadTimeout
Kind
property
Type
number
Requirement
optional

UseSelectResult

interface
DeclarationView source
UseSelectResultts
interface UseSelectResult {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
readonly snapshot: SelectSnapshot;
}
Name
Kind
Type
Requirement
connector
property
SelectApi
required
scope
property
PartScope
required
service
property
SelectService
required
snapshot
property
SelectSnapshot
required
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SelectService
Requirement
required
Name
snapshot
Kind
property
Type
SelectSnapshot
Requirement
required

Subscribes a component to a service's committed-snapshot version.

DeclarationView source
useServiceVersionts
declare function useServiceVersion<S extends Service<any, any, any, any, any, any>>(service: S): ReturnType<S["getSnapshot"]>;
Name
Kind
Type
Requirement
service
parameter
S
required
return
return value
ReturnType<S["getSnapshot"]>
n/a
Name
service
Kind
parameter
Type
S
Requirement
required
Name
return
Kind
return value
Type
ReturnType<S["getSnapshot"]>
Requirement
n/a

@grassroot/ui-headless-vue/select

Vue adapter

15 exports
View source packages/ui-headless/vue/src/select/index.ts
DeclarationView source
SelectContentts
export declare const SelectContent: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
/** Keep the content mounted (with `data-state="closed"`) instead of unmounting it. */
forceMount: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
/** Keep the content mounted (with `data-state="closed"`) instead of unmounting it. */
forceMount: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
forceMount: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SelectContextKeyts
export declare const SelectContextKey: InjectionKey<SelectContextValue>;

SelectContextValue

interface
DeclarationView source
SelectContextValuets
interface SelectContextValue {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
/** Bumped on every committed machine update; parts read `.value` to establish a reactive dependency. */
readonly snapshot: ShallowRef<SelectSnapshot>;
/**
* `select.spec.md` requires `aria-required` on the trigger when the
* field is required, but `connectSelect().triggerProps()` (frozen
* platform code) does not expose a `required` input and never emits it.
* The adapter carries the flag via context and `Trigger` layers
* `aria-required` on top of the connector's prop bag to satisfy the
* spec without reimplementing connector semantics.
*/
readonly required?: boolean;
}
Name
Kind
Type
Requirement
Description
connector
property
SelectApi
required
required
property
boolean
optional
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via context and `Trigger` layers `aria-required` on top of the connector's prop bag to satisfy the spec without reimplementing connector semantics.
scope
property
PartScope
required
service
property
SelectService
required
snapshot
property
ShallowRef<SelectSnapshot>
required
Bumped on every committed machine update; parts read `.value` to establish a reactive dependency.
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Description
Name
required
Kind
property
Type
boolean
Requirement
optional
Description
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via context and `Trigger` layers `aria-required` on top of the connector's prop bag to satisfy the spec without reimplementing connector semantics.
Name
scope
Kind
property
Type
PartScope
Requirement
required
Description
Name
service
Kind
property
Type
SelectService
Requirement
required
Description
Name
snapshot
Kind
property
Type
ShallowRef<SelectSnapshot>
Requirement
required
Description
Bumped on every committed machine update; parts read `.value` to establish a reactive dependency.
DeclarationView source
SelectHiddenInputts
export declare const SelectHiddenInput: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
name: {
type: StringConstructor;
default: undefined;
};
required: {
type: BooleanConstructor;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
name: {
type: StringConstructor;
default: undefined;
};
required: {
type: BooleanConstructor;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
name: string;
required: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;

SelectItem

value
DeclarationView source
SelectItemts
export declare const SelectItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
option: {
type: PropType<SelectOptionInput>;
required: true;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
option: {
type: PropType<SelectOptionInput>;
required: true;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SelectItemTextts
export declare const SelectItemText: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
option: {
type: PropType<SelectOptionInput>;
required: true;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
option: {
type: PropType<SelectOptionInput>;
required: true;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SelectPositionerts
export declare const SelectPositioner: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
/** Render children into `document.body` via a `<Teleport>`, after mount only (SSR-safe). */
portalled: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}> | null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
/** Render children into `document.body` via a `<Teleport>`, after mount only (SSR-safe). */
portalled: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
portalled: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;

SelectRoot

value
DeclarationView source
SelectRootts
export declare const SelectRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: PropType<SelectInput["options"]>;
required: true;
};
value: {
type: PropType<SelectInput["value"]>;
default: undefined;
};
defaultValue: {
type: PropType<SelectInput["defaultValue"]>;
default: undefined;
};
defaultOpen: {
type: PropType<boolean | undefined>;
default: undefined;
};
loop: {
type: PropType<boolean | undefined>;
default: undefined;
};
selectionMode: {
type: PropType<SelectInput["selectionMode"]>;
default: undefined;
};
name: {
type: PropType<string | undefined>;
default: undefined;
};
required: {
type: PropType<boolean | undefined>;
default: undefined;
};
dir: {
type: PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
valueChange: (_detail: SelectValueChangeDetail) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: PropType<SelectInput["options"]>;
required: true;
};
value: {
type: PropType<SelectInput["value"]>;
default: undefined;
};
defaultValue: {
type: PropType<SelectInput["defaultValue"]>;
default: undefined;
};
defaultOpen: {
type: PropType<boolean | undefined>;
default: undefined;
};
loop: {
type: PropType<boolean | undefined>;
default: undefined;
};
selectionMode: {
type: PropType<SelectInput["selectionMode"]>;
default: undefined;
};
name: {
type: PropType<string | undefined>;
default: undefined;
};
required: {
type: PropType<boolean | undefined>;
default: undefined;
};
dir: {
type: PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
}>> & Readonly<{
onValueChange?: ((_detail: SelectValueChangeDetail) => any) | undefined;
}>, {
asChild: boolean;
value: import("@grassroot/ui-machines/select").SelectValue<string> | undefined;
defaultValue: import("@grassroot/ui-machines/select").SelectValue<string> | undefined;
defaultOpen: boolean | undefined;
loop: boolean | undefined;
selectionMode: import("@grassroot/ui-machines/select").SelectSelectionMode | undefined;
name: string | undefined;
required: boolean | undefined;
dir: "ltr" | "rtl" | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SelectRootProviderts
export declare const SelectRootProvider: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
/** An existing `useSelect()` result (advanced composition). */
value: {
type: PropType<UseSelectResult>;
required: true;
};
name: {
type: PropType<string | undefined>;
default: undefined;
};
required: {
type: PropType<boolean | undefined>;
default: undefined;
};
}>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
/** An existing `useSelect()` result (advanced composition). */
value: {
type: PropType<UseSelectResult>;
required: true;
};
name: {
type: PropType<string | undefined>;
default: undefined;
};
required: {
type: PropType<boolean | undefined>;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
name: string | undefined;
required: boolean | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SelectTriggerts
export declare const SelectTrigger: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
}>> & Readonly<{}>, {
asChild: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SelectValueChangeDetailts
interface SelectValueChangeDetail {
readonly value: SelectValue;
readonly reason: SelectChangeReason;
}
Name
Kind
Type
Requirement
reason
property
SelectChangeReason
required
value
property
SelectValue
required
Name
reason
Kind
property
Type
SelectChangeReason
Requirement
required
Name
value
Kind
property
Type
SelectValue
Requirement
required

useSelect

function
DeclarationView source
useSelectts
declare function useSelect(input: SelectInput | (() => SelectInput), options?: UseSelectOptions): UseSelectResult;
Name
Kind
Type
Requirement
input
parameter
SelectInput | (() => SelectInput)
required
options
parameter
UseSelectOptions
optional
return
return value
UseSelectResult
n/a
Name
input
Kind
parameter
Type
SelectInput | (() => SelectInput)
Requirement
required
Name
options
Kind
parameter
Type
UseSelectOptions
Requirement
optional
Name
return
Kind
return value
Type
UseSelectResult
Requirement
n/a

useSelectContext

function
DeclarationView source
useSelectContextts
declare function useSelectContext(partName: string): SelectContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
SelectContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
SelectContextValue
Requirement
n/a

UseSelectOptions

interface
DeclarationView source
UseSelectOptionsts
interface UseSelectOptions {
readonly dir?: "ltr" | "rtl";
readonly typeaheadTimeout?: number;
readonly now?: () => number;
readonly onValueChange?: (detail: SelectValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
now
property
() => number
optional
onValueChange
property
(detail: SelectValueChangeDetail) => void
optional
typeaheadTimeout
property
number
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
now
Kind
property
Type
() => number
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SelectValueChangeDetail) => void
Requirement
optional
Name
typeaheadTimeout
Kind
property
Type
number
Requirement
optional

UseSelectResult

interface
DeclarationView source
UseSelectResultts
interface UseSelectResult {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<SelectSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
SelectApi
required
scope
property
PartScope
required
service
property
SelectService
required
snapshot
property
ShallowRef<SelectSnapshot>
required
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SelectService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<SelectSnapshot>
Requirement
required

@grassroot/ui-headless-angular/select

Angular adapter

18 exports
View source packages/ui-headless/angular/src/select/index.ts

applyProps

function

Applies a connector prop bag to a persistent Angular DOM element.

DeclarationView source
applyPropsts
export declare function applyProps(el: Element, props: PartProps, listeners: Map<string, EventListener>): void;
Name
Kind
Type
Requirement
el
parameter
Element
required
props
parameter
PartProps
required
listeners
parameter
Map<string, EventListener>
required
return
return value
void
n/a
Name
el
Kind
parameter
Type
Element
Requirement
required
Name
props
Kind
parameter
Type
PartProps
Requirement
required
Name
listeners
Kind
parameter
Type
Map<string, EventListener>
Requirement
required
Name
return
Kind
return value
Type
void
Requirement
n/a
DeclarationView source
createSelectStorets
export declare function createSelectStore(initialInput: SelectInput, options?: CreateSelectStoreOptions): SelectStore;
Name
Kind
Type
Requirement
initialInput
parameter
SelectInput
required
options
parameter
CreateSelectStoreOptions
optional
return
return value
SelectStore
n/a
Name
initialInput
Kind
parameter
Type
SelectInput
Requirement
required
Name
options
Kind
parameter
Type
CreateSelectStoreOptions
Requirement
optional
Name
return
Kind
return value
Type
SelectStore
Requirement
n/a
DeclarationView source
CreateSelectStoreOptionsts
export interface CreateSelectStoreOptions {
readonly counterRef?: {
current: number;
};
readonly dir?: "ltr" | "rtl";
readonly typeaheadTimeout?: number;
readonly now?: () => number;
readonly onValueChange?: (detail: SelectValueChangeDetail) => void;
readonly onCommit?: () => void;
}
Name
Kind
Type
Requirement
counterRef
property
{ current: number; }
optional
dir
property
"ltr" | "rtl"
optional
now
property
() => number
optional
onCommit
property
() => void
optional
onValueChange
property
(detail: SelectValueChangeDetail) => void
optional
typeaheadTimeout
property
number
optional
Name
counterRef
Kind
property
Type
{ current: number; }
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
now
Kind
property
Type
() => number
Requirement
optional
Name
onCommit
Kind
property
Type
() => void
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SelectValueChangeDetail) => void
Requirement
optional
Name
typeaheadTimeout
Kind
property
Type
number
Requirement
optional
DeclarationView source
GR_SELECT_DECLARATIONSts
export declare const GR_SELECT_DECLARATIONS: readonly [typeof GrSelectRoot, typeof GrSelectRootProvider, typeof GrSelectTrigger, typeof GrSelectPositioner, typeof GrSelectContent, typeof GrSelectItem, typeof GrSelectItemText, typeof GrSelectHiddenInput];
DeclarationView source
GrSelectContentts
export declare class GrSelectContent {
readonly forceMount: import("@angular/core").InputSignal<boolean>;
private readonly host;
private readonly store;
protected get listClass(): string;
readonly isOpen: import("@angular/core").Signal<boolean>;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSelectContent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrSelectContent, "gr-select-content", never, { "forceMount": { "alias": "forceMount"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}
Name
Kind
Type
Requirement
forceMount
property
import("@angular/core").InputSignal<boolean>
required
host
property
any
required
isOpen
property
import("@angular/core").Signal<boolean>
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrSelectContent, "gr-select-content", never, { "forceMount": { "alias": "forceMount"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSelectContent, never>
required
store
property
any
required
Name
forceMount
Kind
property
Type
import("@angular/core").InputSignal<boolean>
Requirement
required
Name
host
Kind
property
Type
any
Requirement
required
Name
isOpen
Kind
property
Type
import("@angular/core").Signal<boolean>
Requirement
required
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrSelectContent, "gr-select-content", never, { "forceMount": { "alias": "forceMount"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSelectContent, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrSelectHiddenInputts
export declare class GrSelectHiddenInput implements OnDestroy {
readonly name: import("@angular/core").InputSignal<string | undefined>;
readonly required: import("@angular/core").InputSignal<boolean | undefined>;
private readonly store;
private readonly hostElementRef;
private readonly primaryListeners;
private readonly extraInputs;
private readonly extraListeners;
private attachedForm;
private inputElement;
private readonly onReset;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSelectHiddenInput, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrSelectHiddenInput, "gr-select-hidden-input", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
attachedForm
property
any
required
extraInputs
property
any
required
extraListeners
property
any
required
hostElementRef
property
any
required
inputElement
property
any
required
name
property
import("@angular/core").InputSignal<string | undefined>
required
ngOnDestroy
method
() => void
required
onReset
property
any
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrSelectHiddenInput, "gr-select-hidden-input", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSelectHiddenInput, never>
required
primaryListeners
property
any
required
required
property
import("@angular/core").InputSignal<boolean | undefined>
required
store
property
any
required
Name
attachedForm
Kind
property
Type
any
Requirement
required
Name
extraInputs
Kind
property
Type
any
Requirement
required
Name
extraListeners
Kind
property
Type
any
Requirement
required
Name
hostElementRef
Kind
property
Type
any
Requirement
required
Name
inputElement
Kind
property
Type
any
Requirement
required
Name
name
Kind
property
Type
import("@angular/core").InputSignal<string | undefined>
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
onReset
Kind
property
Type
any
Requirement
required
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrSelectHiddenInput, "gr-select-hidden-input", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSelectHiddenInput, never>
Requirement
required
Name
primaryListeners
Kind
property
Type
any
Requirement
required
Name
required
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required

GrSelectItem

class
DeclarationView source
GrSelectItemts
export declare class GrSelectItem {
readonly option: import("@angular/core").InputSignal<SelectOptionInput | undefined>;
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<GrSelectItem, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrSelectItem, "[grSelectItem]", never, { "option": { "alias": "option"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
option
property
import("@angular/core").InputSignal<SelectOptionInput | undefined>
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrSelectItem, "[grSelectItem]", never, { "option": { "alias": "option"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSelectItem, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
option
Kind
property
Type
import("@angular/core").InputSignal<SelectOptionInput | undefined>
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrSelectItem, "[grSelectItem]", never, { "option": { "alias": "option"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSelectItem, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrSelectItemTextts
export declare class GrSelectItemText {
readonly option: import("@angular/core").InputSignal<SelectOptionInput | undefined>;
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<GrSelectItemText, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrSelectItemText, "[grSelectItemText]", never, { "option": { "alias": "option"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
option
property
import("@angular/core").InputSignal<SelectOptionInput | undefined>
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrSelectItemText, "[grSelectItemText]", never, { "option": { "alias": "option"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSelectItemText, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
option
Kind
property
Type
import("@angular/core").InputSignal<SelectOptionInput | undefined>
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrSelectItemText, "[grSelectItemText]", never, { "option": { "alias": "option"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSelectItemText, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrSelectPositionerts
export declare class GrSelectPositioner implements OnDestroy {
/** Render into `document.body`, after mount only (SSR-safe). */
readonly portalled: import("@angular/core").InputSignal<boolean>;
private readonly store;
private readonly elementRef;
private readonly injector;
private readonly listeners;
private originalParent;
private originalNextSibling;
private portalledIn;
constructor();
private syncPortal;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSelectPositioner, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrSelectPositioner, "gr-select-positioner", never, { "portalled": { "alias": "portalled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}
Name
Kind
Type
Requirement
Description
elementRef
property
any
required
injector
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
originalNextSibling
property
any
required
originalParent
property
any
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrSelectPositioner, "gr-select-positioner", never, { "portalled": { "alias": "portalled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSelectPositioner, never>
required
portalled
property
import("@angular/core").InputSignal<boolean>
required
Render into `document.body`, after mount only (SSR-safe).
portalledIn
property
any
required
store
property
any
required
syncPortal
property
any
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Description
Name
injector
Kind
property
Type
any
Requirement
required
Description
Name
listeners
Kind
property
Type
any
Requirement
required
Description
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Description
Name
originalNextSibling
Kind
property
Type
any
Requirement
required
Description
Name
originalParent
Kind
property
Type
any
Requirement
required
Description
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrSelectPositioner, "gr-select-positioner", never, { "portalled": { "alias": "portalled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>
Requirement
required
Description
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSelectPositioner, never>
Requirement
required
Description
Name
portalled
Kind
property
Type
import("@angular/core").InputSignal<boolean>
Requirement
required
Description
Render into `document.body`, after mount only (SSR-safe).
Name
portalledIn
Kind
property
Type
any
Requirement
required
Description
Name
store
Kind
property
Type
any
Requirement
required
Description
Name
syncPortal
Kind
property
Type
any
Requirement
required
Description

GrSelectRoot

class
DeclarationView source
GrSelectRootts
export declare class GrSelectRoot implements OnDestroy {
readonly options: import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/select").SelectOptionInput<string>[]>;
readonly value: import("@angular/core").InputSignal<import("@grassroot/ui-machines/select").SelectValue<string> | undefined>;
readonly defaultValue: import("@angular/core").InputSignal<import("@grassroot/ui-machines/select").SelectValue<string> | undefined>;
readonly defaultOpen: import("@angular/core").InputSignal<boolean | undefined>;
readonly loop: import("@angular/core").InputSignal<boolean | undefined>;
readonly selectionMode: import("@angular/core").InputSignal<import("@grassroot/ui-machines/select").SelectSelectionMode | undefined>;
readonly name: import("@angular/core").InputSignal<string | undefined>;
readonly required: import("@angular/core").InputSignal<boolean | undefined>;
readonly dir: import("@angular/core").InputSignal<"rtl" | "ltr" | undefined>;
readonly valueChange: import("@angular/core").OutputEmitterRef<SelectValueChangeDetail>;
private readonly elementRef;
private readonly injector;
private readonly listeners;
private lastSynced;
private releaseLayer;
readonly store: SelectStore;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSelectRoot, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrSelectRoot, "gr-select-root", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>;
}
Name
Kind
Type
Requirement
defaultOpen
property
import("@angular/core").InputSignal<boolean | undefined>
required
defaultValue
property
import("@angular/core").InputSignal<import("@grassroot/ui-machines/select").SelectValue<string> | undefined>
required
dir
property
import("@angular/core").InputSignal<"rtl" | "ltr" | undefined>
required
elementRef
property
any
required
injector
property
any
required
lastSynced
property
any
required
listeners
property
any
required
loop
property
import("@angular/core").InputSignal<boolean | undefined>
required
name
property
import("@angular/core").InputSignal<string | undefined>
required
ngOnDestroy
method
() => void
required
options
property
import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/select").SelectOptionInput<string>[]>
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrSelectRoot, "gr-select-root", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSelectRoot, never>
required
releaseLayer
property
any
required
Name
defaultOpen
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
defaultValue
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/select").SelectValue<string> | undefined>
Requirement
required
Name
dir
Kind
property
Type
import("@angular/core").InputSignal<"rtl" | "ltr" | undefined>
Requirement
required
Name
elementRef
Kind
property
Type
any
Requirement
required
Name
injector
Kind
property
Type
any
Requirement
required
Name
lastSynced
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
loop
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
name
Kind
property
Type
import("@angular/core").InputSignal<string | undefined>
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
options
Kind
property
Type
import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/select").SelectOptionInput<string>[]>
Requirement
required
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrSelectRoot, "gr-select-root", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSelectRoot, never>
Requirement
required
Name
releaseLayer
Kind
property
Type
any
Requirement
required
Name
required
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
selectionMode
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/select").SelectSelectionMode | undefined>
Requirement
required
Name
store
Kind
property
Type
SelectStore
Requirement
required
Name
value
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/select").SelectValue<string> | undefined>
Requirement
required
Name
valueChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<SelectValueChangeDetail>
Requirement
required
DeclarationView source
GrSelectRootProviderts
export declare class GrSelectRootProvider {
/** An existing `createSelectStore()` result (advanced composition). */
readonly value: import("@angular/core").InputSignal<SelectStore>;
readonly name: import("@angular/core").InputSignal<string | undefined>;
readonly required: import("@angular/core").InputSignal<boolean | undefined>;
private readonly elementRef;
private readonly listeners;
constructor();
static ɵfac: i0.ɵɵFactoryDeclaration<GrSelectRootProvider, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrSelectRootProvider, "gr-select-root-provider", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
}
Name
Kind
Type
Requirement
Description
elementRef
property
any
required
listeners
property
any
required
name
property
import("@angular/core").InputSignal<string | undefined>
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrSelectRootProvider, "gr-select-root-provider", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSelectRootProvider, never>
required
required
property
import("@angular/core").InputSignal<boolean | undefined>
required
value
property
import("@angular/core").InputSignal<SelectStore>
required
An existing `createSelectStore()` result (advanced composition).
Name
elementRef
Kind
property
Type
any
Requirement
required
Description
Name
listeners
Kind
property
Type
any
Requirement
required
Description
Name
name
Kind
property
Type
import("@angular/core").InputSignal<string | undefined>
Requirement
required
Description
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrSelectRootProvider, "gr-select-root-provider", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>
Requirement
required
Description
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSelectRootProvider, never>
Requirement
required
Description
Name
required
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Description
Name
value
Kind
property
Type
import("@angular/core").InputSignal<SelectStore>
Requirement
required
Description
An existing `createSelectStore()` result (advanced composition).
DeclarationView source
GrSelectTriggerts
export declare class GrSelectTrigger implements OnDestroy {
/**
* Angular templates cannot place function-valued `(click)`/`(keydown)`
* listeners into the static DOM prop bag captured by this directive. These
* inputs are the owning-layer consumer-handler API: they merge with the
* connector's handlers, and `event.preventDefault()` suppresses the machine.
*/
readonly onClick: import("@angular/core").InputSignal<((event: MouseEvent) => void) | undefined>;
readonly onKeyDown: import("@angular/core").InputSignal<((event: KeyboardEvent) => void) | undefined>;
private readonly store;
private readonly elementRef;
private readonly listeners;
private readonly consumerProps;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSelectTrigger, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrSelectTrigger, "[grSelectTrigger]", never, { "onClick": { "alias": "onClick"; "required": false; "isSignal": true; }; "onKeyDown": { "alias": "onKeyDown"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
Description
consumerProps
property
any
required
elementRef
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
onClick
property
import("@angular/core").InputSignal<((event: MouseEvent) => void) | undefined>
required
Angular templates cannot place function-valued `(click)`/`(keydown)` listeners into the static DOM prop bag captured by this directive. These inputs are the owning-layer consumer-handler API: they merge with the connector's handlers, and `event.preventDefault()` suppresses the machine.
onKeyDown
property
import("@angular/core").InputSignal<((event: KeyboardEvent) => void) | undefined>
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrSelectTrigger, "[grSelectTrigger]", never, { "onClick": { "alias": "onClick"; "required": false; "isSignal": true; }; "onKeyDown": { "alias": "onKeyDown"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSelectTrigger, never>
required
store
property
any
required
Name
consumerProps
Kind
property
Type
any
Requirement
required
Description
Name
elementRef
Kind
property
Type
any
Requirement
required
Description
Name
listeners
Kind
property
Type
any
Requirement
required
Description
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Description
Name
onClick
Kind
property
Type
import("@angular/core").InputSignal<((event: MouseEvent) => void) | undefined>
Requirement
required
Description
Angular templates cannot place function-valued `(click)`/`(keydown)` listeners into the static DOM prop bag captured by this directive. These inputs are the owning-layer consumer-handler API: they merge with the connector's handlers, and `event.preventDefault()` suppresses the machine.
Name
onKeyDown
Kind
property
Type
import("@angular/core").InputSignal<((event: KeyboardEvent) => void) | undefined>
Requirement
required
Description
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrSelectTrigger, "[grSelectTrigger]", never, { "onClick": { "alias": "onClick"; "required": false; "isSignal": true; }; "onKeyDown": { "alias": "onKeyDown"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Description
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSelectTrigger, never>
Requirement
required
Description
Name
store
Kind
property
Type
any
Requirement
required
Description

ScopeSeedCounter

interface
DeclarationView source
ScopeSeedCounterts
export interface ScopeSeedCounter {
current: number;
}
Name
Kind
Type
Requirement
current
property
number
required
Name
current
Kind
property
Type
number
Requirement
required
DeclarationView source
SELECT_SCOPE_COUNTERts
export declare const SELECT_SCOPE_COUNTER: InjectionToken<ScopeSeedCounter>;

SELECT_STORE

value
DeclarationView source
SELECT_STOREts
export declare const SELECT_STORE: InjectionToken<SelectStore>;

SelectOption

interface
DeclarationView source
SelectOptionts
interface SelectOption<TValue extends SelectItemValue = string> {
readonly id?: string;
readonly value: TValue;
readonly label: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
id
property
string
optional
label
property
string
required
value
property
TValue
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
required
Name
value
Kind
property
Type
TValue
Requirement
required

SelectStore

interface
DeclarationView source
SelectStorets
export interface SelectStore {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
/**
* Bumped on every committed machine update. Effects that read the
* connector's prop bags must read this signal first — inside the same
* `effect()` — so Angular's reactivity re-runs the effect on every
* committed change (the staleness bug class called out across every
* other adapter).
*/
readonly version: WritableSignal<number>;
/**
* `select.spec.md` requires `aria-required` on the trigger when the
* field is required, but `connectSelect().triggerProps()` (frozen
* platform code) does not expose a `required` input and never emits it.
* The adapter carries the flag via the store and `GrSelectTrigger`
* layers `aria-required` on top of the connector's prop bag.
*/
readonly required: WritableSignal<boolean | undefined>;
/** Starts the underlying service (idempotent) — call from the browser only. */
start(): void;
/** Stops the underlying service (idempotent). */
stop(): void;
/** Forwards a new committed input to the machine (no-op on the very first call). */
sync(input: import("@grassroot/ui-machines/select").SelectInput): void;
}
Name
Kind
Type
Requirement
Description
connector
property
SelectApi
required
required
property
WritableSignal<boolean | undefined>
required
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via the store and `GrSelectTrigger` layers `aria-required` on top of the connector's prop bag.
scope
property
PartScope
required
service
property
SelectService
required
start
method
() => void
required
Starts the underlying service (idempotent) — call from the browser only.
stop
method
() => void
required
Stops the underlying service (idempotent).
sync
method
(input: import("@grassroot/ui-machines/select").SelectInput) => void
required
Forwards a new committed input to the machine (no-op on the very first call).
version
property
WritableSignal<number>
required
Bumped on every committed machine update. Effects that read the connector's prop bags must read this signal first — inside the same `effect()` — so Angular's reactivity re-runs the effect on every committed change (the staleness bug class called out across every other adapter).
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Description
Name
required
Kind
property
Type
WritableSignal<boolean | undefined>
Requirement
required
Description
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via the store and `GrSelectTrigger` layers `aria-required` on top of the connector's prop bag.
Name
scope
Kind
property
Type
PartScope
Requirement
required
Description
Name
service
Kind
property
Type
SelectService
Requirement
required
Description
Name
start
Kind
method
Type
() => void
Requirement
required
Description
Starts the underlying service (idempotent) — call from the browser only.
Name
stop
Kind
method
Type
() => void
Requirement
required
Description
Stops the underlying service (idempotent).
Name
sync
Kind
method
Type
(input: import("@grassroot/ui-machines/select").SelectInput) => void
Requirement
required
Description
Forwards a new committed input to the machine (no-op on the very first call).
Name
version
Kind
property
Type
WritableSignal<number>
Requirement
required
Description
Bumped on every committed machine update. Effects that read the connector's prop bags must read this signal first — inside the same `effect()` — so Angular's reactivity re-runs the effect on every committed change (the staleness bug class called out across every other adapter).
DeclarationView source
SelectValueChangeDetailts
export interface SelectValueChangeDetail {
readonly value: SelectValue;
readonly reason: SelectChangeReason;
}
Name
Kind
Type
Requirement
reason
property
SelectChangeReason
required
value
property
SelectValue
required
Name
reason
Kind
property
Type
SelectChangeReason
Requirement
required
Name
value
Kind
property
Type
SelectValue
Requirement
required

@grassroot/ui-headless-svelte/select

Svelte adapter

15 exports
View source packages/ui-headless/svelte/src/select/index.ts

createSelect

function
DeclarationView source
createSelectts
export declare function createSelect(inputGetter: () => SelectInput, options?: UseSelectOptions): UseSelectResult;
Name
Kind
Type
Requirement
inputGetter
parameter
() => SelectInput
required
options
parameter
UseSelectOptions
optional
return
return value
UseSelectResult
n/a
Name
inputGetter
Kind
parameter
Type
() => SelectInput
Requirement
required
Name
options
Kind
parameter
Type
UseSelectOptions
Requirement
optional
Name
return
Kind
return value
Type
UseSelectResult
Requirement
n/a
DeclarationView source
SelectContentts
export declare const SelectContent: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a

SelectContextValue

interface
DeclarationView source
SelectContextValuets
export interface SelectContextValue {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
/**
* Bumped on every committed machine update. Parts must read this
* (`ctx.version()`) *inside* the `$derived` that computes their prop
* bag — not once at setup — so Svelte's fine-grained reactivity tracks
* the dependency and recomputes on every committed change (the
* React/Solid/Vue adapters' equivalent staleness fix).
*/
readonly version: () => number;
/**
* `select.spec.md` requires `aria-required` on the trigger when the
* field is required, but `connectSelect().triggerProps()` (frozen
* platform code) does not expose a `required` input and never emits it.
* The adapter carries the flag via context and `Trigger` layers
* `aria-required` on top of the connector's prop bag to satisfy the
* spec without reimplementing connector semantics.
*/
readonly required: () => boolean | undefined;
}
Name
Kind
Type
Requirement
Description
connector
property
SelectApi
required
required
property
() => boolean | undefined
required
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via context and `Trigger` layers `aria-required` on top of the connector's prop bag to satisfy the spec without reimplementing connector semantics.
scope
property
PartScope
required
service
property
SelectService
required
version
property
() => number
required
Bumped on every committed machine update. Parts must read this (`ctx.version()`) *inside* the `$derived` that computes their prop bag — not once at setup — so Svelte's fine-grained reactivity tracks the dependency and recomputes on every committed change (the React/Solid/Vue adapters' equivalent staleness fix).
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Description
Name
required
Kind
property
Type
() => boolean | undefined
Requirement
required
Description
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via context and `Trigger` layers `aria-required` on top of the connector's prop bag to satisfy the spec without reimplementing connector semantics.
Name
scope
Kind
property
Type
PartScope
Requirement
required
Description
Name
service
Kind
property
Type
SelectService
Requirement
required
Description
Name
version
Kind
property
Type
() => number
Requirement
required
Description
Bumped on every committed machine update. Parts must read this (`ctx.version()`) *inside* the `$derived` that computes their prop bag — not once at setup — so Svelte's fine-grained reactivity tracks the dependency and recomputes on every committed change (the React/Solid/Vue adapters' equivalent staleness fix).
DeclarationView source
SelectHiddenInputts
export declare const SelectHiddenInput: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a

SelectItem

value
DeclarationView source
SelectItemts
export declare const SelectItem: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
SelectItemTextts
export declare const SelectItemText: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a

SelectOption

interface
DeclarationView source
SelectOptionts
interface SelectOption<TValue extends SelectItemValue = string> {
readonly id?: string;
readonly value: TValue;
readonly label: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
id
property
string
optional
label
property
string
required
value
property
TValue
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
id
Kind
property
Type
string
Requirement
optional
Name
label
Kind
property
Type
string
Requirement
required
Name
value
Kind
property
Type
TValue
Requirement
required
DeclarationView source
SelectPositionerts
export declare const SelectPositioner: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a

SelectRoot

value
DeclarationView source
SelectRootts
export declare const SelectRoot: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
SelectRootProviderts
export declare const SelectRootProvider: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
SelectTriggerts
export declare const SelectTrigger: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
SelectValueChangeDetailts
export interface SelectValueChangeDetail {
readonly value: SelectValue;
readonly reason: SelectChangeReason;
}
Name
Kind
Type
Requirement
reason
property
SelectChangeReason
required
value
property
SelectValue
required
Name
reason
Kind
property
Type
SelectChangeReason
Requirement
required
Name
value
Kind
property
Type
SelectValue
Requirement
required

useSelectContext

function
DeclarationView source
useSelectContextts
export declare function useSelectContext(partName: string): SelectContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
SelectContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
SelectContextValue
Requirement
n/a

UseSelectOptions

interface
DeclarationView source
UseSelectOptionsts
export interface UseSelectOptions {
readonly counterRef?: {
current: number;
};
readonly dir?: "ltr" | "rtl";
readonly typeaheadTimeout?: number;
readonly now?: () => number;
readonly onValueChange?: (detail: SelectValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
counterRef
property
{ current: number; }
optional
dir
property
"ltr" | "rtl"
optional
now
property
() => number
optional
onValueChange
property
(detail: SelectValueChangeDetail) => void
optional
typeaheadTimeout
property
number
optional
Name
counterRef
Kind
property
Type
{ current: number; }
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
now
Kind
property
Type
() => number
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SelectValueChangeDetail) => void
Requirement
optional
Name
typeaheadTimeout
Kind
property
Type
number
Requirement
optional

UseSelectResult

interface
DeclarationView source
UseSelectResultts
export interface UseSelectResult {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
readonly version: () => number;
}
Name
Kind
Type
Requirement
connector
property
SelectApi
required
scope
property
PartScope
required
service
property
SelectService
required
version
property
() => number
required
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SelectService
Requirement
required
Name
version
Kind
property
Type
() => number
Requirement
required

@grassroot/ui-headless-solid/select

Solid adapter

23 exports
View source packages/ui-headless/solid/src/select/index.ts

SelectContent

function
DeclarationView source
SelectContentts
export declare function SelectContent(props: SelectContentProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SelectContentProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SelectContentProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a

SelectContentProps

interface
DeclarationView source
SelectContentPropsts
export interface SelectContentProps extends JSX.HTMLAttributes<HTMLUListElement> {
readonly as?: AsProp;
/** Keep the content mounted (with `data-state="closed"`) instead of unmounting it. */
readonly forceMount?: boolean;
}
Name
Kind
Type
Requirement
Description
as
property
AsProp
optional
forceMount
property
boolean
optional
Keep the content mounted (with `data-state="closed"`) instead of unmounting it.
Name
as
Kind
property
Type
AsProp
Requirement
optional
Description
Name
forceMount
Kind
property
Type
boolean
Requirement
optional
Description
Keep the content mounted (with `data-state="closed"`) instead of unmounting it.
DeclarationView source
SelectContextts
export declare const SelectContext: import("solid-js").Context<SelectContextValue | undefined>;

SelectContextValue

interface
DeclarationView source
SelectContextValuets
export interface SelectContextValue {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
/**
* Bumped on every committed machine update. Parts must call this
* accessor *inside* the JSX/spread thunk that reads the connector's prop
* bags — not once at setup — so Solid's fine-grained reactivity tracks
* the dependency and re-runs on every committed change.
*/
readonly snapshot: Accessor<SelectSnapshot>;
/**
* `select.spec.md` requires `aria-required` on the trigger when the
* field is required, but `connectSelect().triggerProps()` (frozen
* platform code) does not expose a `required` input and never emits it.
* The adapter carries the flag via context and `Trigger` layers
* `aria-required` on top of the connector's prop bag to satisfy the
* spec without reimplementing connector semantics.
*/
readonly required?: boolean;
}
Name
Kind
Type
Requirement
Description
connector
property
SelectApi
required
required
property
boolean
optional
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via context and `Trigger` layers `aria-required` on top of the connector's prop bag to satisfy the spec without reimplementing connector semantics.
scope
property
PartScope
required
service
property
SelectService
required
snapshot
property
Accessor<SelectSnapshot>
required
Bumped on every committed machine update. Parts must call this accessor *inside* the JSX/spread thunk that reads the connector's prop bags — not once at setup — so Solid's fine-grained reactivity tracks the dependency and re-runs on every committed change.
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Description
Name
required
Kind
property
Type
boolean
Requirement
optional
Description
`select.spec.md` requires `aria-required` on the trigger when the field is required, but `connectSelect().triggerProps()` (frozen platform code) does not expose a `required` input and never emits it. The adapter carries the flag via context and `Trigger` layers `aria-required` on top of the connector's prop bag to satisfy the spec without reimplementing connector semantics.
Name
scope
Kind
property
Type
PartScope
Requirement
required
Description
Name
service
Kind
property
Type
SelectService
Requirement
required
Description
Name
snapshot
Kind
property
Type
Accessor<SelectSnapshot>
Requirement
required
Description
Bumped on every committed machine update. Parts must call this accessor *inside* the JSX/spread thunk that reads the connector's prop bags — not once at setup — so Solid's fine-grained reactivity tracks the dependency and re-runs on every committed change.
DeclarationView source
SelectHiddenInputts
export declare function SelectHiddenInput(props: SelectHiddenInputProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SelectHiddenInputProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SelectHiddenInputProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
SelectHiddenInputPropsts
export interface SelectHiddenInputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, "name" | "required"> {
readonly as?: AsProp;
readonly name?: string;
readonly required?: boolean;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
name
property
string
optional
required
property
boolean
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
name
Kind
property
Type
string
Requirement
optional
Name
required
Kind
property
Type
boolean
Requirement
optional

SelectItem

function
DeclarationView source
SelectItemts
export declare function SelectItem(props: SelectItemProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SelectItemProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SelectItemProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a

SelectItemProps

interface
DeclarationView source
SelectItemPropsts
export interface SelectItemProps extends JSX.HTMLAttributes<HTMLLIElement> {
readonly as?: AsProp;
readonly option: SelectOptionInput;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
option
property
SelectOptionInput
required
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
option
Kind
property
Type
SelectOptionInput
Requirement
required

SelectItemText

function
DeclarationView source
SelectItemTextts
export declare function SelectItemText(props: SelectItemTextProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SelectItemTextProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SelectItemTextProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
SelectItemTextPropsts
export interface SelectItemTextProps extends JSX.HTMLAttributes<HTMLSpanElement> {
readonly as?: AsProp;
readonly option: SelectOptionInput;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
option
property
SelectOptionInput
required
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
option
Kind
property
Type
SelectOptionInput
Requirement
required

SelectPositioner

function
DeclarationView source
SelectPositionerts
export declare function SelectPositioner(props: SelectPositionerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SelectPositionerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SelectPositionerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
SelectPositionerPropsts
export interface SelectPositionerProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
/** Render children into `document.body` via `<Portal>`, after mount only (SSR-safe). */
readonly portalled?: boolean;
}
Name
Kind
Type
Requirement
Description
as
property
AsProp
optional
portalled
property
boolean
optional
Render children into `document.body` via `<Portal>`, after mount only (SSR-safe).
Name
as
Kind
property
Type
AsProp
Requirement
optional
Description
Name
portalled
Kind
property
Type
boolean
Requirement
optional
Description
Render children into `document.body` via `<Portal>`, after mount only (SSR-safe).

SelectRoot

function
DeclarationView source
SelectRootts
export declare function SelectRoot(props: SelectRootProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SelectRootProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SelectRootProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a

SelectRootProps

interface
DeclarationView source
SelectRootPropsts
export interface SelectRootProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange"> {
readonly as?: AsProp;
readonly options: SelectInput["options"];
readonly selectionMode?: SelectInput["selectionMode"];
readonly value?: SelectInput["value"];
readonly defaultValue?: SelectInput["defaultValue"];
readonly defaultOpen?: SelectInput["defaultOpen"];
readonly loop?: SelectInput["loop"];
readonly name?: string;
readonly required?: boolean;
readonly dir?: "ltr" | "rtl";
readonly onValueChange?: (detail: SelectValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
defaultOpen
property
SelectInput["defaultOpen"]
optional
defaultValue
property
SelectInput["defaultValue"]
optional
dir
property
"ltr" | "rtl"
optional
loop
property
SelectInput["loop"]
optional
name
property
string
optional
onValueChange
property
(detail: SelectValueChangeDetail) => void
optional
options
property
SelectInput["options"]
required
required
property
boolean
optional
selectionMode
property
SelectInput["selectionMode"]
optional
value
property
SelectInput["value"]
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
defaultOpen
Kind
property
Type
SelectInput["defaultOpen"]
Requirement
optional
Name
defaultValue
Kind
property
Type
SelectInput["defaultValue"]
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
loop
Kind
property
Type
SelectInput["loop"]
Requirement
optional
Name
name
Kind
property
Type
string
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SelectValueChangeDetail) => void
Requirement
optional
Name
options
Kind
property
Type
SelectInput["options"]
Requirement
required
Name
required
Kind
property
Type
boolean
Requirement
optional
Name
selectionMode
Kind
property
Type
SelectInput["selectionMode"]
Requirement
optional
Name
value
Kind
property
Type
SelectInput["value"]
Requirement
optional
DeclarationView source
SelectRootProviderts
export declare function SelectRootProvider(props: SelectRootProviderProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SelectRootProviderProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SelectRootProviderProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
SelectRootProviderPropsts
export interface SelectRootProviderProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange"> {
readonly as?: AsProp;
/** An existing `useSelect()` result (advanced composition). */
readonly value: UseSelectResult;
readonly name?: string;
readonly required?: boolean;
}
Name
Kind
Type
Requirement
Description
as
property
AsProp
optional
name
property
string
optional
required
property
boolean
optional
value
property
UseSelectResult
required
An existing `useSelect()` result (advanced composition).
Name
as
Kind
property
Type
AsProp
Requirement
optional
Description
Name
name
Kind
property
Type
string
Requirement
optional
Description
Name
required
Kind
property
Type
boolean
Requirement
optional
Description
Name
value
Kind
property
Type
UseSelectResult
Requirement
required
Description
An existing `useSelect()` result (advanced composition).

SelectTrigger

function
DeclarationView source
SelectTriggerts
export declare function SelectTrigger(props: SelectTriggerProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SelectTriggerProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SelectTriggerProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a

SelectTriggerProps

interface
DeclarationView source
SelectTriggerPropsts
export interface SelectTriggerProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
DeclarationView source
SelectValueChangeDetailts
export interface SelectValueChangeDetail {
readonly value: SelectValue;
readonly reason: SelectChangeReason;
}
Name
Kind
Type
Requirement
reason
property
SelectChangeReason
required
value
property
SelectValue
required
Name
reason
Kind
property
Type
SelectChangeReason
Requirement
required
Name
value
Kind
property
Type
SelectValue
Requirement
required

useSelect

function
DeclarationView source
useSelectts
export declare function useSelect(input: Accessor<SelectInput>, options?: UseSelectOptions): UseSelectResult;
Name
Kind
Type
Requirement
input
parameter
Accessor<SelectInput>
required
options
parameter
UseSelectOptions
optional
return
return value
UseSelectResult
n/a
Name
input
Kind
parameter
Type
Accessor<SelectInput>
Requirement
required
Name
options
Kind
parameter
Type
UseSelectOptions
Requirement
optional
Name
return
Kind
return value
Type
UseSelectResult
Requirement
n/a

useSelectContext

function
DeclarationView source
useSelectContextts
export declare function useSelectContext(partName: string): SelectContextValue;
Name
Kind
Type
Requirement
partName
parameter
string
required
return
return value
SelectContextValue
n/a
Name
partName
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
SelectContextValue
Requirement
n/a

UseSelectOptions

interface
DeclarationView source
UseSelectOptionsts
export interface UseSelectOptions {
readonly dir?: "ltr" | "rtl";
readonly typeaheadTimeout?: number;
readonly now?: () => number;
readonly onValueChange?: (detail: SelectValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
now
property
() => number
optional
onValueChange
property
(detail: SelectValueChangeDetail) => void
optional
typeaheadTimeout
property
number
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
now
Kind
property
Type
() => number
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SelectValueChangeDetail) => void
Requirement
optional
Name
typeaheadTimeout
Kind
property
Type
number
Requirement
optional

UseSelectResult

interface
DeclarationView source
UseSelectResultts
export interface UseSelectResult {
readonly service: SelectService;
readonly connector: SelectApi;
readonly scope: PartScope;
readonly snapshot: Accessor<SelectSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
SelectApi
required
scope
property
PartScope
required
service
property
SelectService
required
snapshot
property
Accessor<SelectSnapshot>
required
Name
connector
Kind
property
Type
SelectApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SelectService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<SelectSnapshot>
Requirement
required