DocsAPI referenceHeadlesstoggle-group

toggle-group 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/toggle-group

Core connector and vanilla API

36 exports
View source packages/ui-headless/core/src/segmented/index.ts

connectSegmented

function
DeclarationView source
connectSegmentedts
declare function connectSegmented(service: SegmentedService, scope: PartScope, options?: SegmentedConnectOptions): SegmentedApi;
Name
Kind
Type
Requirement
service
parameter
SegmentedService
required
scope
parameter
PartScope
required
options
parameter
SegmentedConnectOptions
optional
return
return value
SegmentedApi
n/a
Name
service
Kind
parameter
Type
SegmentedService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
SegmentedConnectOptions
Requirement
optional
Name
return
Kind
return value
Type
SegmentedApi
Requirement
n/a
DeclarationView source
connectToggleGroupts
export declare const connectToggleGroup: typeof connectSegmented;
Name
Kind
Type
Requirement
service
parameter
SegmentedService
required
scope
parameter
PartScope
required
options
parameter
SegmentedConnectOptions
optional
return
return value
SegmentedApi
n/a
Name
service
Kind
parameter
Type
SegmentedService
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
SegmentedConnectOptions
Requirement
optional
Name
return
Kind
return value
Type
SegmentedApi
Requirement
n/a

mountSegmented

function
DeclarationView source
mountSegmentedts
declare function mountSegmented(container: HTMLElement, options: MountSegmentedOptions): SegmentedMount;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
options
parameter
MountSegmentedOptions
required
return
return value
SegmentedMount
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
options
Kind
parameter
Type
MountSegmentedOptions
Requirement
required
Name
return
Kind
return value
Type
SegmentedMount
Requirement
n/a
DeclarationView source
MountSegmentedOptionsts
interface MountSegmentedOptions extends SegmentedInput {
readonly dir?: "ltr" | "rtl";
readonly surface?: "segmented" | "toggle-group";
readonly onValueChange?: (detail: SegmentedValueChangeDetail) => void;
readonly renderItem?: (button: HTMLButtonElement, item: SegmentedItem) => void;
readonly renderLabel?: (label: HTMLLabelElement) => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
onValueChange
property
(detail: SegmentedValueChangeDetail) => void
optional
renderItem
property
(button: HTMLButtonElement, item: SegmentedItem) => void
optional
renderLabel
property
(label: HTMLLabelElement) => void
optional
surface
property
"segmented" | "toggle-group"
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SegmentedValueChangeDetail) => void
Requirement
optional
Name
renderItem
Kind
property
Type
(button: HTMLButtonElement, item: SegmentedItem) => void
Requirement
optional
Name
renderLabel
Kind
property
Type
(label: HTMLLabelElement) => void
Requirement
optional
Name
surface
Kind
property
Type
"segmented" | "toggle-group"
Requirement
optional

mountToggleGroup

function
DeclarationView source
mountToggleGroupts
declare function mountToggleGroup(container: HTMLElement, options: MountSegmentedOptions): SegmentedMount;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
options
parameter
MountSegmentedOptions
required
return
return value
SegmentedMount
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
options
Kind
parameter
Type
MountSegmentedOptions
Requirement
required
Name
return
Kind
return value
Type
SegmentedMount
Requirement
n/a

Resolves machine commands against the registered item elements.

DeclarationView source
runSegmentedCommandts
declare function runSegmentedCommand(command: SegmentedCommand, scope: PartScope, options?: {
readonly onValueChange?: (detail: {
value: string | readonly string[];
reason: SegmentedChangeReason;
}) => void;
}): void;
Name
Kind
Type
Requirement
command
parameter
SegmentedCommand
required
scope
parameter
PartScope
required
options
parameter
{ readonly onValueChange?: (detail: { value: string | readonly string[]; reason: SegmentedChangeReason; }) => void; }
optional
return
return value
void
n/a
Name
command
Kind
parameter
Type
SegmentedCommand
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
{ readonly onValueChange?: (detail: { value: string | readonly string[]; reason: SegmentedChangeReason; }) => void; }
Requirement
optional
Name
return
Kind
return value
Type
void
Requirement
n/a
DeclarationView source
segmentedAnatomyts
export declare const segmentedAnatomy: {
readonly scope: "segmented";
readonly parts: readonly ["root", "item", "indicator", "label"];
};
Name
Kind
Type
Requirement
parts
property
readonly ["root", "item", "indicator", "label"]
required
scope
property
"segmented"
required
Name
parts
Kind
property
Type
readonly ["root", "item", "indicator", "label"]
Requirement
required
Name
scope
Kind
property
Type
"segmented"
Requirement
required

SegmentedApi

interface
DeclarationView source
SegmentedApits
interface SegmentedApi {
rootProps(): PartProps;
itemProps(item: SegmentedItem): PartProps;
indicatorProps(item?: SegmentedItem): PartProps;
labelProps(): PartProps;
readonly value: string | readonly string[] | undefined;
readonly focusedValue: string | undefined;
readonly type: SegmentedType;
}
Name
Kind
Type
Requirement
focusedValue
property
string | undefined
required
indicatorProps
method
(item?: SegmentedItem) => PartProps
required
itemProps
method
(item: SegmentedItem) => PartProps
required
labelProps
method
() => PartProps
required
rootProps
method
() => PartProps
required
type
property
SegmentedType
required
value
property
string | readonly string[] | undefined
required
Name
focusedValue
Kind
property
Type
string | undefined
Requirement
required
Name
indicatorProps
Kind
method
Type
(item?: SegmentedItem) => PartProps
Requirement
required
Name
itemProps
Kind
method
Type
(item: SegmentedItem) => PartProps
Requirement
required
Name
labelProps
Kind
method
Type
() => PartProps
Requirement
required
Name
rootProps
Kind
method
Type
() => PartProps
Requirement
required
Name
type
Kind
property
Type
SegmentedType
Requirement
required
Name
value
Kind
property
Type
string | readonly string[] | undefined
Requirement
required
DeclarationView source
SegmentedChangeReasonts
type SegmentedChangeReason = "pointer" | "keyboard" | "programmatic";
DeclarationView source
SegmentedCommandts
type SegmentedCommand = CommandObject & ({
readonly type: "VALUE_CHANGE_REQUEST";
readonly value: SegmentedSelection;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "FOCUS_ITEM";
readonly key: string;
});
DeclarationView source
SegmentedConnectOptionsts
interface SegmentedConnectOptions {
readonly dir?: "ltr" | "rtl";
readonly scope?: "segmented" | "toggle-group" | (() => "segmented" | "toggle-group");
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
scope
property
"segmented" | "toggle-group" | (() => "segmented" | "toggle-group")
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
scope
Kind
property
Type
"segmented" | "toggle-group" | (() => "segmented" | "toggle-group")
Requirement
optional
DeclarationView source
SegmentedContextts
type SegmentedContext = {
readonly type: SegmentedType;
readonly value: SegmentedSelection | undefined;
readonly focusedValue?: string;
readonly mode: BindingMode;
};
Name
Kind
Type
Requirement
focusedValue
property
string
optional
mode
property
BindingMode
required
type
property
SegmentedType
required
value
property
SegmentedSelection | undefined
required
Name
focusedValue
Kind
property
Type
string
Requirement
optional
Name
mode
Kind
property
Type
BindingMode
Requirement
required
Name
type
Kind
property
Type
SegmentedType
Requirement
required
Name
value
Kind
property
Type
SegmentedSelection | undefined
Requirement
required
DeclarationView source
SegmentedEventts
type SegmentedEvent = {
readonly type: "SELECT";
readonly value: string;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HOME";
} | {
readonly type: "END";
} | {
readonly type: "FOCUS";
readonly value: string;
} | {
readonly type: "BLUR";
} | {
readonly type: "RESET";
};
DeclarationView source
SegmentedInputts
type SegmentedInput = {
readonly options: readonly SegmentedItem[];
readonly type?: SegmentedType;
/** Controlled committed value. A defined empty array is controlled. */
readonly value?: SegmentedSelection;
/** Uncontrolled initial value. */
readonly defaultValue?: SegmentedSelection;
readonly disabled?: boolean;
readonly readOnly?: boolean;
/** Connector hint; the machine receives logical movement only. */
readonly orientation?: SegmentedOrientation;
readonly loop?: boolean;
};
Name
Kind
Type
Requirement
Description
defaultValue
property
SegmentedSelection
optional
Uncontrolled initial value.
disabled
property
boolean
optional
loop
property
boolean
optional
options
property
readonly SegmentedItem[]
required
orientation
property
SegmentedOrientation
optional
Connector hint; the machine receives logical movement only.
readOnly
property
boolean
optional
type
property
SegmentedType
optional
value
property
SegmentedSelection
optional
Controlled committed value. A defined empty array is controlled.
Name
defaultValue
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Uncontrolled initial value.
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Description
Name
loop
Kind
property
Type
boolean
Requirement
optional
Description
Name
options
Kind
property
Type
readonly SegmentedItem[]
Requirement
required
Description
Name
orientation
Kind
property
Type
SegmentedOrientation
Requirement
optional
Description
Connector hint; the machine receives logical movement only.
Name
readOnly
Kind
property
Type
boolean
Requirement
optional
Description
Name
type
Kind
property
Type
SegmentedType
Requirement
optional
Description
Name
value
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Controlled committed value. A defined empty array is controlled.

SegmentedItem

interface
DeclarationView source
SegmentedItemts
interface SegmentedItem {
readonly value: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
value
property
string
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
required
DeclarationView source
segmentedMachinets
export declare const segmentedMachine: SegmentedMachine;

SegmentedMount

interface
DeclarationView source
SegmentedMountts
interface SegmentedMount {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly root: HTMLElement;
destroy(): void;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
destroy
method
() => void
required
root
property
HTMLElement
required
service
property
SegmentedService
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
root
Kind
property
Type
HTMLElement
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
DeclarationView source
SegmentedOrientationts
type SegmentedOrientation = "horizontal" | "vertical";
DeclarationView source
SegmentedPartts
type SegmentedPart = (typeof segmentedAnatomy.parts)[number];
DeclarationView source
SegmentedSelectionts
type SegmentedSelection = string | readonly string[];
DeclarationView source
segmentedSelectorsts
export declare const segmentedSelectors: {
type: (snapshot: SegmentedSnapshot) => SegmentedType;
value: (snapshot: SegmentedSnapshot) => SegmentedSelection | undefined;
focusedValue: (snapshot: SegmentedSnapshot) => string | undefined;
isSelected: (snapshot: SegmentedSnapshot, value: string) => boolean;
};
Name
Kind
Type
Requirement
focusedValue
property
(snapshot: SegmentedSnapshot) => string | undefined
required
isSelected
property
(snapshot: SegmentedSnapshot, value: string) => boolean
required
type
property
(snapshot: SegmentedSnapshot) => SegmentedType
required
value
property
(snapshot: SegmentedSnapshot) => SegmentedSelection | undefined
required
Name
focusedValue
Kind
property
Type
(snapshot: SegmentedSnapshot) => string | undefined
Requirement
required
Name
isSelected
Kind
property
Type
(snapshot: SegmentedSnapshot, value: string) => boolean
Requirement
required
Name
type
Kind
property
Type
(snapshot: SegmentedSnapshot) => SegmentedType
Requirement
required
Name
value
Kind
property
Type
(snapshot: SegmentedSnapshot) => SegmentedSelection | undefined
Requirement
required
DeclarationView source
SegmentedServicets
type SegmentedService = Service<SegmentedInput, SegmentedStateValue, SegmentedContext, SegmentedEvent, SegmentedCommand>;
DeclarationView source
SegmentedSnapshotts
type SegmentedSnapshot = Snapshot<SegmentedStateValue, SegmentedContext>;
DeclarationView source
SegmentedStateValuets
type SegmentedStateValue = "ready";
DeclarationView source
SegmentedTypets
type SegmentedType = "single" | "multiple";
DeclarationView source
SegmentedValueChangeDetailts
interface SegmentedValueChangeDetail {
readonly value: string | readonly string[];
readonly reason: import("@grassroot/ui-machines/segmented").SegmentedChangeReason;
}
Name
Kind
Type
Requirement
reason
property
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
required
value
property
string | readonly string[]
required
Name
reason
Kind
property
Type
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
Requirement
required
Name
value
Kind
property
Type
string | readonly string[]
Requirement
required
DeclarationView source
toggleGroupAnatomyts
export declare const toggleGroupAnatomy: {
readonly scope: "toggle-group";
readonly parts: readonly ["root", "item", "indicator", "label"];
};
Name
Kind
Type
Requirement
parts
property
readonly ["root", "item", "indicator", "label"]
required
scope
property
"toggle-group"
required
Name
parts
Kind
property
Type
readonly ["root", "item", "indicator", "label"]
Requirement
required
Name
scope
Kind
property
Type
"toggle-group"
Requirement
required
DeclarationView source
ToggleGroupCommandts
type ToggleGroupCommand = SegmentedCommand;
DeclarationView source
ToggleGroupContextts
type ToggleGroupContext = SegmentedContext;
DeclarationView source
ToggleGroupEventts
type ToggleGroupEvent = SegmentedEvent;
DeclarationView source
ToggleGroupInputts
type ToggleGroupInput = SegmentedInput;
DeclarationView source
ToggleGroupItemts
type ToggleGroupItem = SegmentedItem;
DeclarationView source
toggleGroupMachinets
export declare const toggleGroupMachine: SegmentedMachine;
DeclarationView source
ToggleGroupPartts
type ToggleGroupPart = (typeof toggleGroupAnatomy.parts)[number];
DeclarationView source
toggleGroupSelectorsts
export declare const toggleGroupSelectors: {
type: (snapshot: SegmentedSnapshot) => SegmentedType;
value: (snapshot: SegmentedSnapshot) => SegmentedSelection | undefined;
focusedValue: (snapshot: SegmentedSnapshot) => string | undefined;
isSelected: (snapshot: SegmentedSnapshot, value: string) => boolean;
};
Name
Kind
Type
Requirement
focusedValue
property
(snapshot: SegmentedSnapshot) => string | undefined
required
isSelected
property
(snapshot: SegmentedSnapshot, value: string) => boolean
required
type
property
(snapshot: SegmentedSnapshot) => SegmentedType
required
value
property
(snapshot: SegmentedSnapshot) => SegmentedSelection | undefined
required
Name
focusedValue
Kind
property
Type
(snapshot: SegmentedSnapshot) => string | undefined
Requirement
required
Name
isSelected
Kind
property
Type
(snapshot: SegmentedSnapshot, value: string) => boolean
Requirement
required
Name
type
Kind
property
Type
(snapshot: SegmentedSnapshot) => SegmentedType
Requirement
required
Name
value
Kind
property
Type
(snapshot: SegmentedSnapshot) => SegmentedSelection | undefined
Requirement
required
DeclarationView source
ToggleGroupSnapshotts
type ToggleGroupSnapshot = SegmentedSnapshot;

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/toggle-groupts
import { Indicator, Item, Label, Root, RootProvider, Segmented, SegmentedContextProvider, ToggleGroup } from "@grassroot/ui-headless-react/toggle-group";

Vue imports

@grassroot/ui-headless-vue/toggle-groupts
<script setup lang="ts">
import { Segmented, SegmentedIndicator, SegmentedItem, SegmentedLabel, SegmentedRoot, ToggleGroup, ToggleGroupRoot } from "@grassroot/ui-headless-vue/toggle-group";
</script>

Angular imports

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

Svelte imports

@grassroot/ui-headless-svelte/toggle-groupts
<script lang="ts">
import { Segmented, SegmentedIndicator, SegmentedItem, SegmentedLabel, SegmentedRoot, ToggleGroup, ToggleGroupRoot } from "@grassroot/ui-headless-svelte/toggle-group";
</script>

Solid imports

@grassroot/ui-headless-solid/toggle-groupts
import { Segmented, SegmentedContextProvider, SegmentedIndicator, SegmentedItem, SegmentedLabel, SegmentedRoot, ToggleGroup, ToggleGroupRoot } from "@grassroot/ui-headless-solid/toggle-group";

@grassroot/ui-headless-react/toggle-group

React adapter

29 exports
View source packages/ui-headless/react/src/segmented/index.tsx

Indicator

value
DeclarationView source
Indicatorts
export declare const Indicator: import("react").ForwardRefExoticComponent<SegmentedIndicatorProps & 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

Item

value
DeclarationView source
Itemts
export declare const Item: import("react").ForwardRefExoticComponent<SegmentedItemProps & 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

Label

value
DeclarationView source
Labelts
export declare const Label: import("react").ForwardRefExoticComponent<SegmentedLabelProps & 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<SegmentedRootProps & 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<SegmentedRootProviderProps & 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

Segmented

value
DeclarationView source
Segmentedts
export declare const Segmented: {
Root: import("react").ForwardRefExoticComponent<SegmentedRootProps & import("react").RefAttributes<HTMLDivElement>>;
RootProvider: import("react").ForwardRefExoticComponent<SegmentedRootProviderProps & import("react").RefAttributes<HTMLDivElement>>;
Item: import("react").ForwardRefExoticComponent<SegmentedItemProps & import("react").RefAttributes<HTMLButtonElement>>;
Label: import("react").ForwardRefExoticComponent<SegmentedLabelProps & import("react").RefAttributes<HTMLDivElement>>;
Indicator: import("react").ForwardRefExoticComponent<SegmentedIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>;
};
Name
Kind
Type
Requirement
Indicator
property
import("react").ForwardRefExoticComponent<SegmentedIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>
required
Item
property
import("react").ForwardRefExoticComponent<SegmentedItemProps & import("react").RefAttributes<HTMLButtonElement>>
required
Label
property
import("react").ForwardRefExoticComponent<SegmentedLabelProps & import("react").RefAttributes<HTMLDivElement>>
required
Root
property
import("react").ForwardRefExoticComponent<SegmentedRootProps & import("react").RefAttributes<HTMLDivElement>>
required
RootProvider
property
import("react").ForwardRefExoticComponent<SegmentedRootProviderProps & import("react").RefAttributes<HTMLDivElement>>
required
Name
Indicator
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>
Requirement
required
Name
Item
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedItemProps & import("react").RefAttributes<HTMLButtonElement>>
Requirement
required
Name
Label
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedLabelProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Root
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedRootProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
RootProvider
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedRootProviderProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
DeclarationView source
SegmentedChangeReasonts
type SegmentedChangeReason = "pointer" | "keyboard" | "programmatic";
DeclarationView source
SegmentedCommandts
type SegmentedCommand = CommandObject & ({
readonly type: "VALUE_CHANGE_REQUEST";
readonly value: SegmentedSelection;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "FOCUS_ITEM";
readonly key: string;
});
DeclarationView source
SegmentedContextts
export declare const SegmentedContext: import("react").Context<SegmentedContextValue | 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
DeclarationView source
SegmentedContextProviderts
declare function SegmentedContextProvider(props: {
value: SegmentedContextValue;
children: ReactNode;
}): import("react").JSX.Element;
Name
Kind
Type
Requirement
props
parameter
{ value: SegmentedContextValue; children: ReactNode; }
required
return
return value
import("react").JSX.Element
n/a
Name
props
Kind
parameter
Type
{ value: SegmentedContextValue; children: ReactNode; }
Requirement
required
Name
return
Kind
return value
Type
import("react").JSX.Element
Requirement
n/a
DeclarationView source
SegmentedContextValuets
interface SegmentedContextValue {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly scope: PartScope;
readonly snapshot: SegmentedSnapshot;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
scope
property
PartScope
required
service
property
SegmentedService
required
snapshot
property
SegmentedSnapshot
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
Name
snapshot
Kind
property
Type
SegmentedSnapshot
Requirement
required
DeclarationView source
SegmentedEventts
type SegmentedEvent = {
readonly type: "SELECT";
readonly value: string;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HOME";
} | {
readonly type: "END";
} | {
readonly type: "FOCUS";
readonly value: string;
} | {
readonly type: "BLUR";
} | {
readonly type: "RESET";
};
DeclarationView source
SegmentedIndicatorPropsts
interface SegmentedIndicatorProps extends ComponentPropsWithoutRef<"span"> {
readonly asChild?: boolean;
readonly item?: SegmentedItem;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
item
property
SegmentedItem
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
item
Kind
property
Type
SegmentedItem
Requirement
optional
DeclarationView source
SegmentedInputts
type SegmentedInput = {
readonly options: readonly SegmentedItem[];
readonly type?: SegmentedType;
/** Controlled committed value. A defined empty array is controlled. */
readonly value?: SegmentedSelection;
/** Uncontrolled initial value. */
readonly defaultValue?: SegmentedSelection;
readonly disabled?: boolean;
readonly readOnly?: boolean;
/** Connector hint; the machine receives logical movement only. */
readonly orientation?: SegmentedOrientation;
readonly loop?: boolean;
};
Name
Kind
Type
Requirement
Description
defaultValue
property
SegmentedSelection
optional
Uncontrolled initial value.
disabled
property
boolean
optional
loop
property
boolean
optional
options
property
readonly SegmentedItem[]
required
orientation
property
SegmentedOrientation
optional
Connector hint; the machine receives logical movement only.
readOnly
property
boolean
optional
type
property
SegmentedType
optional
value
property
SegmentedSelection
optional
Controlled committed value. A defined empty array is controlled.
Name
defaultValue
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Uncontrolled initial value.
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Description
Name
loop
Kind
property
Type
boolean
Requirement
optional
Description
Name
options
Kind
property
Type
readonly SegmentedItem[]
Requirement
required
Description
Name
orientation
Kind
property
Type
SegmentedOrientation
Requirement
optional
Description
Connector hint; the machine receives logical movement only.
Name
readOnly
Kind
property
Type
boolean
Requirement
optional
Description
Name
type
Kind
property
Type
SegmentedType
Requirement
optional
Description
Name
value
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Controlled committed value. A defined empty array is controlled.

SegmentedItem

interface
DeclarationView source
SegmentedItemts
interface SegmentedItem {
readonly value: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
value
property
string
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
required

SegmentedItemProps

interface
DeclarationView source
SegmentedItemPropsts
interface SegmentedItemProps extends Omit<ComponentPropsWithoutRef<"button">, "value"> {
readonly asChild?: boolean;
readonly item?: SegmentedItem;
readonly value?: string;
readonly disabled?: boolean;
readonly children?: ReactNode;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
children
property
ReactNode
optional
disabled
property
boolean
optional
item
property
SegmentedItem
optional
value
property
string
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Name
children
Kind
property
Type
ReactNode
Requirement
optional
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
item
Kind
property
Type
SegmentedItem
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
optional
DeclarationView source
SegmentedLabelPropsts
interface SegmentedLabelProps extends ComponentPropsWithoutRef<"div"> {
readonly asChild?: boolean;
}
Name
Kind
Type
Requirement
asChild
property
boolean
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
SegmentedMachineContextts
type SegmentedContext = {
readonly type: SegmentedType;
readonly value: SegmentedSelection | undefined;
readonly focusedValue?: string;
readonly mode: BindingMode;
};
Name
Kind
Type
Requirement
focusedValue
property
string
optional
mode
property
BindingMode
required
type
property
SegmentedType
required
value
property
SegmentedSelection | undefined
required
Name
focusedValue
Kind
property
Type
string
Requirement
optional
Name
mode
Kind
property
Type
BindingMode
Requirement
required
Name
type
Kind
property
Type
SegmentedType
Requirement
required
Name
value
Kind
property
Type
SegmentedSelection | undefined
Requirement
required

SegmentedRootProps

interface
DeclarationView source
SegmentedRootPropsts
interface SegmentedRootProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange" | "defaultValue" | "value"> {
readonly asChild?: boolean;
readonly options: SegmentedInput["options"];
readonly type?: SegmentedInput["type"];
readonly value?: SegmentedInput["value"];
readonly defaultValue?: SegmentedInput["defaultValue"];
readonly disabled?: boolean;
readonly readOnly?: boolean;
readonly orientation?: SegmentedInput["orientation"];
readonly loop?: boolean;
readonly dir?: "ltr" | "rtl";
readonly onValueChange?: (detail: SegmentedValueChangeDetail) => void;
readonly children?: ReactNode;
/** Internal surface selector used by the ToggleGroup alias. */
readonly surface?: "segmented" | "toggle-group";
}
Name
Kind
Type
Requirement
Description
asChild
property
boolean
optional
children
property
ReactNode
optional
defaultValue
property
SegmentedInput["defaultValue"]
optional
dir
property
"ltr" | "rtl"
optional
disabled
property
boolean
optional
loop
property
boolean
optional
onValueChange
property
(detail: SegmentedValueChangeDetail) => void
optional
options
property
SegmentedInput["options"]
required
orientation
property
SegmentedInput["orientation"]
optional
readOnly
property
boolean
optional
surface
property
"segmented" | "toggle-group"
optional
Internal surface selector used by the ToggleGroup alias.
type
property
SegmentedInput["type"]
optional
value
property
SegmentedInput["value"]
optional
Name
asChild
Kind
property
Type
boolean
Requirement
optional
Description
Name
children
Kind
property
Type
ReactNode
Requirement
optional
Description
Name
defaultValue
Kind
property
Type
SegmentedInput["defaultValue"]
Requirement
optional
Description
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Description
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Description
Name
loop
Kind
property
Type
boolean
Requirement
optional
Description
Name
onValueChange
Kind
property
Type
(detail: SegmentedValueChangeDetail) => void
Requirement
optional
Description
Name
options
Kind
property
Type
SegmentedInput["options"]
Requirement
required
Description
Name
orientation
Kind
property
Type
SegmentedInput["orientation"]
Requirement
optional
Description
Name
readOnly
Kind
property
Type
boolean
Requirement
optional
Description
Name
surface
Kind
property
Type
"segmented" | "toggle-group"
Requirement
optional
Description
Internal surface selector used by the ToggleGroup alias.
Name
type
Kind
property
Type
SegmentedInput["type"]
Requirement
optional
Description
Name
value
Kind
property
Type
SegmentedInput["value"]
Requirement
optional
Description
DeclarationView source
SegmentedRootProviderPropsts
interface SegmentedRootProviderProps extends Omit<SegmentedRootProps, "options" | "value" | "defaultValue" | "type"> {
readonly value: ReturnType<typeof useSegmented>;
}
Name
Kind
Type
Requirement
value
property
ReturnType<typeof useSegmented>
required
Name
value
Kind
property
Type
ReturnType<typeof useSegmented>
Requirement
required
DeclarationView source
SegmentedSelectionts
type SegmentedSelection = string | readonly string[];
DeclarationView source
SegmentedSnapshotts
type SegmentedSnapshot = Snapshot<SegmentedStateValue, SegmentedContext>;
DeclarationView source
SegmentedTypets
type SegmentedType = "single" | "multiple";
DeclarationView source
SegmentedValueChangeDetailts
interface SegmentedValueChangeDetail {
readonly value: string | readonly string[];
readonly reason: import("@grassroot/ui-machines/segmented").SegmentedChangeReason;
}
Name
Kind
Type
Requirement
reason
property
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
required
value
property
string | readonly string[]
required
Name
reason
Kind
property
Type
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
Requirement
required
Name
value
Kind
property
Type
string | readonly string[]
Requirement
required

ToggleGroup

value
DeclarationView source
ToggleGroupts
export declare const ToggleGroup: {
Root: (props: SegmentedRootProps) => import("react").JSX.Element;
RootProvider: import("react").ForwardRefExoticComponent<SegmentedRootProviderProps & import("react").RefAttributes<HTMLDivElement>>;
Item: import("react").ForwardRefExoticComponent<SegmentedItemProps & import("react").RefAttributes<HTMLButtonElement>>;
Label: import("react").ForwardRefExoticComponent<SegmentedLabelProps & import("react").RefAttributes<HTMLDivElement>>;
Indicator: import("react").ForwardRefExoticComponent<SegmentedIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>;
};
Name
Kind
Type
Requirement
Indicator
property
import("react").ForwardRefExoticComponent<SegmentedIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>
required
Item
property
import("react").ForwardRefExoticComponent<SegmentedItemProps & import("react").RefAttributes<HTMLButtonElement>>
required
Label
property
import("react").ForwardRefExoticComponent<SegmentedLabelProps & import("react").RefAttributes<HTMLDivElement>>
required
Root
property
(props: SegmentedRootProps) => import("react").JSX.Element
required
RootProvider
property
import("react").ForwardRefExoticComponent<SegmentedRootProviderProps & import("react").RefAttributes<HTMLDivElement>>
required
Name
Indicator
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedIndicatorProps & import("react").RefAttributes<HTMLSpanElement>>
Requirement
required
Name
Item
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedItemProps & import("react").RefAttributes<HTMLButtonElement>>
Requirement
required
Name
Label
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedLabelProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required
Name
Root
Kind
property
Type
(props: SegmentedRootProps) => import("react").JSX.Element
Requirement
required
Name
RootProvider
Kind
property
Type
import("react").ForwardRefExoticComponent<SegmentedRootProviderProps & import("react").RefAttributes<HTMLDivElement>>
Requirement
required

useSegmented

function
DeclarationView source
useSegmentedts
declare function useSegmented(input: SegmentedInput, options?: UseSegmentedOptions): UseSegmentedResult;
Name
Kind
Type
Requirement
input
parameter
SegmentedInput
required
options
parameter
UseSegmentedOptions
optional
return
return value
UseSegmentedResult
n/a
Name
input
Kind
parameter
Type
SegmentedInput
Requirement
required
Name
options
Kind
parameter
Type
UseSegmentedOptions
Requirement
optional
Name
return
Kind
return value
Type
UseSegmentedResult
Requirement
n/a
DeclarationView source
useSegmentedContextts
declare function useSegmentedContext(part: string): SegmentedContextValue;
Name
Kind
Type
Requirement
part
parameter
string
required
return
return value
SegmentedContextValue
n/a
Name
part
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
SegmentedContextValue
Requirement
n/a
DeclarationView source
UseSegmentedOptionsts
interface UseSegmentedOptions {
readonly dir?: "ltr" | "rtl";
readonly scope?: "segmented" | "toggle-group";
readonly onValueChange?: (detail: SegmentedValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
onValueChange
property
(detail: SegmentedValueChangeDetail) => void
optional
scope
property
"segmented" | "toggle-group"
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SegmentedValueChangeDetail) => void
Requirement
optional
Name
scope
Kind
property
Type
"segmented" | "toggle-group"
Requirement
optional

UseSegmentedResult

interface
DeclarationView source
UseSegmentedResultts
interface UseSegmentedResult {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly scope: PartScope;
readonly snapshot: SegmentedSnapshot;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
scope
property
PartScope
required
service
property
SegmentedService
required
snapshot
property
SegmentedSnapshot
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
Name
snapshot
Kind
property
Type
SegmentedSnapshot
Requirement
required

@grassroot/ui-headless-vue/toggle-group

Vue adapter

24 exports
View source packages/ui-headless/vue/src/segmented/index.ts
DeclarationView source
provideSegmentedContextts
declare function provideSegmentedContext(value: SegmentedContextValue): void;
Name
Kind
Type
Requirement
value
parameter
SegmentedContextValue
required
return
return value
void
n/a
Name
value
Kind
parameter
Type
SegmentedContextValue
Requirement
required
Name
return
Kind
return value
Type
void
Requirement
n/a

Segmented

value
DeclarationView source
Segmentedts
export declare const Segmented: {
Root: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>;
required: true;
};
type: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>;
default: undefined;
};
value: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>;
default: undefined;
};
defaultValue: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
readOnly: {
type: BooleanConstructor;
default: undefined;
};
orientation: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>;
default: undefined;
};
loop: {
type: BooleanConstructor;
default: undefined;
};
dir: {
type: import("vue").PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
surface: {
type: import("vue").PropType<"segmented" | "toggle-group">;
default: string;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
valueChange: (_detail: SegmentedValueChangeDetail) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>;
required: true;
};
type: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>;
default: undefined;
};
value: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>;
default: undefined;
};
defaultValue: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
readOnly: {
type: BooleanConstructor;
default: undefined;
};
orientation: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>;
default: undefined;
};
loop: {
type: BooleanConstructor;
default: undefined;
};
dir: {
type: import("vue").PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
surface: {
type: import("vue").PropType<"segmented" | "toggle-group">;
default: string;
};
}>> & Readonly<{
onValueChange?: ((_detail: SegmentedValueChangeDetail) => any) | undefined;
}>, {
asChild: boolean;
type: import("@grassroot/ui-machines/segmented").SegmentedType | undefined;
value: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined;
defaultValue: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined;
disabled: boolean;
readOnly: boolean;
orientation: import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined;
loop: boolean;
dir: "ltr" | "rtl" | undefined;
surface: "segmented" | "toggle-group";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Item: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>;
default: undefined;
};
value: {
type: StringConstructor;
default: undefined;
};
disabled: {
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;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>;
default: undefined;
};
value: {
type: StringConstructor;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
item: import("@grassroot/ui-machines/segmented").SegmentedItem;
value: string;
disabled: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Label: 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>;
Indicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>;
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;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
item: import("@grassroot/ui-machines/segmented").SegmentedItem;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
};
Name
Kind
Type
Requirement
Indicator
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; 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; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; }>> & Readonly<{}>, { asChild: boolean; item: import("@grassroot/ui-machines/segmented").SegmentedItem; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Item
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; value: { type: StringConstructor; default: undefined; }; disabled: { 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; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; value: { type: StringConstructor; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; }>> & Readonly<{}>, { asChild: boolean; item: import("@grassroot/ui-machines/segmented").SegmentedItem; value: string; disabled: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Label
property
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>
required
Root
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>; required: true; }; type: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>; default: undefined; }; value: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>; default: undefined; }; defaultValue: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; readOnly: { type: BooleanConstructor; default: undefined; }; orientation: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>; default: undefined; }; loop: { type: BooleanConstructor; default: undefined; }; dir: { type: import("vue").PropType<"ltr" | "rtl" | undefined>; default: undefined; }; surface: { type: import("vue").PropType<"segmented" | "toggle-group">; default: string; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { valueChange: (_detail: SegmentedValueChangeDetail) => true; }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>; required: true; }; type: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>; default: undefined; }; value: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>; default: undefined; }; defaultValue: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; readOnly: { type: BooleanConstructor; default: undefined; }; orientation: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>; default: undefined; }; loop: { type: BooleanConstructor; default: undefined; }; dir: { type: import("vue").PropType<"ltr" | "rtl" | undefined>; default: undefined; }; surface: { type: import("vue").PropType<"segmented" | "toggle-group">; default: string; }; }>> & Readonly<{ onValueChange?: ((_detail: SegmentedValueChangeDetail) => any) | undefined; }>, { asChild: boolean; type: import("@grassroot/ui-machines/segmented").SegmentedType | undefined; value: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined; defaultValue: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined; disabled: boolean; readOnly: boolean; orientation: import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined; loop: boolean; dir: "ltr" | "rtl" | undefined; surface: "segmented" | "toggle-group"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Name
Indicator
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; 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; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; }>> & Readonly<{}>, { asChild: boolean; item: import("@grassroot/ui-machines/segmented").SegmentedItem; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Item
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; value: { type: StringConstructor; default: undefined; }; disabled: { 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; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; value: { type: StringConstructor; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; }>> & Readonly<{}>, { asChild: boolean; item: import("@grassroot/ui-machines/segmented").SegmentedItem; value: string; disabled: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Label
Kind
property
Type
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>
Requirement
required
Name
Root
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>; required: true; }; type: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>; default: undefined; }; value: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>; default: undefined; }; defaultValue: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; readOnly: { type: BooleanConstructor; default: undefined; }; orientation: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>; default: undefined; }; loop: { type: BooleanConstructor; default: undefined; }; dir: { type: import("vue").PropType<"ltr" | "rtl" | undefined>; default: undefined; }; surface: { type: import("vue").PropType<"segmented" | "toggle-group">; default: string; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { valueChange: (_detail: SegmentedValueChangeDetail) => true; }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>; required: true; }; type: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>; default: undefined; }; value: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>; default: undefined; }; defaultValue: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; readOnly: { type: BooleanConstructor; default: undefined; }; orientation: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>; default: undefined; }; loop: { type: BooleanConstructor; default: undefined; }; dir: { type: import("vue").PropType<"ltr" | "rtl" | undefined>; default: undefined; }; surface: { type: import("vue").PropType<"segmented" | "toggle-group">; default: string; }; }>> & Readonly<{ onValueChange?: ((_detail: SegmentedValueChangeDetail) => any) | undefined; }>, { asChild: boolean; type: import("@grassroot/ui-machines/segmented").SegmentedType | undefined; value: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined; defaultValue: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined; disabled: boolean; readOnly: boolean; orientation: import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined; loop: boolean; dir: "ltr" | "rtl" | undefined; surface: "segmented" | "toggle-group"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
DeclarationView source
SegmentedChangeReasonts
type SegmentedChangeReason = "pointer" | "keyboard" | "programmatic";
DeclarationView source
SegmentedCommandts
type SegmentedCommand = CommandObject & ({
readonly type: "VALUE_CHANGE_REQUEST";
readonly value: SegmentedSelection;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "FOCUS_ITEM";
readonly key: string;
});
DeclarationView source
SegmentedContextts
type SegmentedContext = {
readonly type: SegmentedType;
readonly value: SegmentedSelection | undefined;
readonly focusedValue?: string;
readonly mode: BindingMode;
};
Name
Kind
Type
Requirement
focusedValue
property
string
optional
mode
property
BindingMode
required
type
property
SegmentedType
required
value
property
SegmentedSelection | undefined
required
Name
focusedValue
Kind
property
Type
string
Requirement
optional
Name
mode
Kind
property
Type
BindingMode
Requirement
required
Name
type
Kind
property
Type
SegmentedType
Requirement
required
Name
value
Kind
property
Type
SegmentedSelection | undefined
Requirement
required
DeclarationView source
SegmentedContextKeyts
export declare const SegmentedContextKey: InjectionKey<SegmentedContextValue>;
DeclarationView source
SegmentedContextValuets
interface SegmentedContextValue {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<SegmentedSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
scope
property
PartScope
required
service
property
SegmentedService
required
snapshot
property
ShallowRef<SegmentedSnapshot>
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<SegmentedSnapshot>
Requirement
required
DeclarationView source
SegmentedEventts
type SegmentedEvent = {
readonly type: "SELECT";
readonly value: string;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HOME";
} | {
readonly type: "END";
} | {
readonly type: "FOCUS";
readonly value: string;
} | {
readonly type: "BLUR";
} | {
readonly type: "RESET";
};
DeclarationView source
SegmentedIndicatorts
export declare const SegmentedIndicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: PropType<SegmentedItem$1>;
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;
};
item: {
type: PropType<SegmentedItem$1>;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
item: SegmentedItem$1;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SegmentedInputts
type SegmentedInput = {
readonly options: readonly SegmentedItem[];
readonly type?: SegmentedType;
/** Controlled committed value. A defined empty array is controlled. */
readonly value?: SegmentedSelection;
/** Uncontrolled initial value. */
readonly defaultValue?: SegmentedSelection;
readonly disabled?: boolean;
readonly readOnly?: boolean;
/** Connector hint; the machine receives logical movement only. */
readonly orientation?: SegmentedOrientation;
readonly loop?: boolean;
};
Name
Kind
Type
Requirement
Description
defaultValue
property
SegmentedSelection
optional
Uncontrolled initial value.
disabled
property
boolean
optional
loop
property
boolean
optional
options
property
readonly SegmentedItem[]
required
orientation
property
SegmentedOrientation
optional
Connector hint; the machine receives logical movement only.
readOnly
property
boolean
optional
type
property
SegmentedType
optional
value
property
SegmentedSelection
optional
Controlled committed value. A defined empty array is controlled.
Name
defaultValue
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Uncontrolled initial value.
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Description
Name
loop
Kind
property
Type
boolean
Requirement
optional
Description
Name
options
Kind
property
Type
readonly SegmentedItem[]
Requirement
required
Description
Name
orientation
Kind
property
Type
SegmentedOrientation
Requirement
optional
Description
Connector hint; the machine receives logical movement only.
Name
readOnly
Kind
property
Type
boolean
Requirement
optional
Description
Name
type
Kind
property
Type
SegmentedType
Requirement
optional
Description
Name
value
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Controlled committed value. A defined empty array is controlled.
DeclarationView source
SegmentedItemts
export declare const SegmentedItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: PropType<SegmentedItem$1>;
default: undefined;
};
value: {
type: StringConstructor;
default: undefined;
};
disabled: {
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;
};
item: {
type: PropType<SegmentedItem$1>;
default: undefined;
};
value: {
type: StringConstructor;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
item: SegmentedItem$1;
value: string;
disabled: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SegmentedLabelts
export declare const SegmentedLabel: 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
SegmentedMachineItemts
interface SegmentedItem {
readonly value: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
value
property
string
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
required
DeclarationView source
SegmentedRootts
export declare const SegmentedRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: PropType<SegmentedInput["options"]>;
required: true;
};
type: {
type: PropType<SegmentedInput["type"]>;
default: undefined;
};
value: {
type: PropType<SegmentedInput["value"]>;
default: undefined;
};
defaultValue: {
type: PropType<SegmentedInput["defaultValue"]>;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
readOnly: {
type: BooleanConstructor;
default: undefined;
};
orientation: {
type: PropType<SegmentedInput["orientation"]>;
default: undefined;
};
loop: {
type: BooleanConstructor;
default: undefined;
};
dir: {
type: PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
surface: {
type: PropType<"segmented" | "toggle-group">;
default: string;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
valueChange: (_detail: SegmentedValueChangeDetail) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: PropType<SegmentedInput["options"]>;
required: true;
};
type: {
type: PropType<SegmentedInput["type"]>;
default: undefined;
};
value: {
type: PropType<SegmentedInput["value"]>;
default: undefined;
};
defaultValue: {
type: PropType<SegmentedInput["defaultValue"]>;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
readOnly: {
type: BooleanConstructor;
default: undefined;
};
orientation: {
type: PropType<SegmentedInput["orientation"]>;
default: undefined;
};
loop: {
type: BooleanConstructor;
default: undefined;
};
dir: {
type: PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
surface: {
type: PropType<"segmented" | "toggle-group">;
default: string;
};
}>> & Readonly<{
onValueChange?: ((_detail: SegmentedValueChangeDetail) => any) | undefined;
}>, {
asChild: boolean;
type: import("@grassroot/ui-machines/segmented").SegmentedType | undefined;
value: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined;
defaultValue: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined;
disabled: boolean;
readOnly: boolean;
orientation: import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined;
loop: boolean;
dir: "ltr" | "rtl" | undefined;
surface: "segmented" | "toggle-group";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
SegmentedSelectionts
type SegmentedSelection = string | readonly string[];
DeclarationView source
SegmentedSnapshotts
type SegmentedSnapshot = Snapshot<SegmentedStateValue, SegmentedContext>;
DeclarationView source
SegmentedTypets
type SegmentedType = "single" | "multiple";
DeclarationView source
SegmentedValueChangeDetailts
interface SegmentedValueChangeDetail {
readonly value: string | readonly string[];
readonly reason: import("@grassroot/ui-machines/segmented").SegmentedChangeReason;
}
Name
Kind
Type
Requirement
reason
property
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
required
value
property
string | readonly string[]
required
Name
reason
Kind
property
Type
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
Requirement
required
Name
value
Kind
property
Type
string | readonly string[]
Requirement
required

ToggleGroup

value
DeclarationView source
ToggleGroupts
export declare const ToggleGroup: {
Root: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>;
required: true;
};
type: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>;
default: undefined;
};
value: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>;
default: undefined;
};
defaultValue: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
readOnly: {
type: BooleanConstructor;
default: undefined;
};
orientation: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>;
default: undefined;
};
loop: {
type: BooleanConstructor;
default: undefined;
};
dir: {
type: import("vue").PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
surface: {
type: import("vue").PropType<"segmented" | "toggle-group">;
default: string;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
valueChange: (_detail: SegmentedValueChangeDetail) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>;
required: true;
};
type: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>;
default: undefined;
};
value: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>;
default: undefined;
};
defaultValue: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
readOnly: {
type: BooleanConstructor;
default: undefined;
};
orientation: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>;
default: undefined;
};
loop: {
type: BooleanConstructor;
default: undefined;
};
dir: {
type: import("vue").PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
surface: {
type: import("vue").PropType<"segmented" | "toggle-group">;
default: string;
};
}>> & Readonly<{
onValueChange?: ((_detail: SegmentedValueChangeDetail) => any) | undefined;
}>, {
asChild: boolean;
type: import("@grassroot/ui-machines/segmented").SegmentedType | undefined;
value: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined;
defaultValue: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined;
disabled: boolean;
readOnly: boolean;
orientation: import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined;
loop: boolean;
dir: "ltr" | "rtl" | undefined;
surface: "segmented" | "toggle-group";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Item: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>;
default: undefined;
};
value: {
type: StringConstructor;
default: undefined;
};
disabled: {
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;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>;
default: undefined;
};
value: {
type: StringConstructor;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
item: import("@grassroot/ui-machines/segmented").SegmentedItem;
value: string;
disabled: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
Label: 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>;
Indicator: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>;
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;
};
item: {
type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>;
default: undefined;
};
}>> & Readonly<{}>, {
asChild: boolean;
item: import("@grassroot/ui-machines/segmented").SegmentedItem;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
};
Name
Kind
Type
Requirement
Indicator
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; 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; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; }>> & Readonly<{}>, { asChild: boolean; item: import("@grassroot/ui-machines/segmented").SegmentedItem; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Item
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; value: { type: StringConstructor; default: undefined; }; disabled: { 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; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; value: { type: StringConstructor; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; }>> & Readonly<{}>, { asChild: boolean; item: import("@grassroot/ui-machines/segmented").SegmentedItem; value: string; disabled: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Label
property
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>
required
Root
property
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>; required: true; }; type: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>; default: undefined; }; value: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>; default: undefined; }; defaultValue: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; readOnly: { type: BooleanConstructor; default: undefined; }; orientation: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>; default: undefined; }; loop: { type: BooleanConstructor; default: undefined; }; dir: { type: import("vue").PropType<"ltr" | "rtl" | undefined>; default: undefined; }; surface: { type: import("vue").PropType<"segmented" | "toggle-group">; default: string; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { valueChange: (_detail: SegmentedValueChangeDetail) => true; }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>; required: true; }; type: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>; default: undefined; }; value: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>; default: undefined; }; defaultValue: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; readOnly: { type: BooleanConstructor; default: undefined; }; orientation: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>; default: undefined; }; loop: { type: BooleanConstructor; default: undefined; }; dir: { type: import("vue").PropType<"ltr" | "rtl" | undefined>; default: undefined; }; surface: { type: import("vue").PropType<"segmented" | "toggle-group">; default: string; }; }>> & Readonly<{ onValueChange?: ((_detail: SegmentedValueChangeDetail) => any) | undefined; }>, { asChild: boolean; type: import("@grassroot/ui-machines/segmented").SegmentedType | undefined; value: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined; defaultValue: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined; disabled: boolean; readOnly: boolean; orientation: import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined; loop: boolean; dir: "ltr" | "rtl" | undefined; surface: "segmented" | "toggle-group"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
required
Name
Indicator
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; 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; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; }>> & Readonly<{}>, { asChild: boolean; item: import("@grassroot/ui-machines/segmented").SegmentedItem; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Item
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; value: { type: StringConstructor; default: undefined; }; disabled: { 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; }; item: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedItem>; default: undefined; }; value: { type: StringConstructor; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; }>> & Readonly<{}>, { asChild: boolean; item: import("@grassroot/ui-machines/segmented").SegmentedItem; value: string; disabled: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
Name
Label
Kind
property
Type
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>
Requirement
required
Name
Root
Kind
property
Type
import("vue").DefineComponent<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>; required: true; }; type: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>; default: undefined; }; value: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>; default: undefined; }; defaultValue: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; readOnly: { type: BooleanConstructor; default: undefined; }; orientation: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>; default: undefined; }; loop: { type: BooleanConstructor; default: undefined; }; dir: { type: import("vue").PropType<"ltr" | "rtl" | undefined>; default: undefined; }; surface: { type: import("vue").PropType<"segmented" | "toggle-group">; default: string; }; }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { valueChange: (_detail: SegmentedValueChangeDetail) => true; }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ asChild: { type: BooleanConstructor; default: boolean; }; options: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["options"]>; required: true; }; type: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["type"]>; default: undefined; }; value: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["value"]>; default: undefined; }; defaultValue: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["defaultValue"]>; default: undefined; }; disabled: { type: BooleanConstructor; default: undefined; }; readOnly: { type: BooleanConstructor; default: undefined; }; orientation: { type: import("vue").PropType<import("@grassroot/ui-machines/segmented").SegmentedInput["orientation"]>; default: undefined; }; loop: { type: BooleanConstructor; default: undefined; }; dir: { type: import("vue").PropType<"ltr" | "rtl" | undefined>; default: undefined; }; surface: { type: import("vue").PropType<"segmented" | "toggle-group">; default: string; }; }>> & Readonly<{ onValueChange?: ((_detail: SegmentedValueChangeDetail) => any) | undefined; }>, { asChild: boolean; type: import("@grassroot/ui-machines/segmented").SegmentedType | undefined; value: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined; defaultValue: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined; disabled: boolean; readOnly: boolean; orientation: import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined; loop: boolean; dir: "ltr" | "rtl" | undefined; surface: "segmented" | "toggle-group"; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>
Requirement
required
DeclarationView source
ToggleGroupRootts
export declare const ToggleGroupRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: PropType<SegmentedInput["options"]>;
required: true;
};
type: {
type: PropType<SegmentedInput["type"]>;
default: undefined;
};
value: {
type: PropType<SegmentedInput["value"]>;
default: undefined;
};
defaultValue: {
type: PropType<SegmentedInput["defaultValue"]>;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
readOnly: {
type: BooleanConstructor;
default: undefined;
};
orientation: {
type: PropType<SegmentedInput["orientation"]>;
default: undefined;
};
loop: {
type: BooleanConstructor;
default: undefined;
};
dir: {
type: PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
surface: {
type: PropType<"segmented" | "toggle-group">;
default: string;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
valueChange: (_detail: SegmentedValueChangeDetail) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
asChild: {
type: BooleanConstructor;
default: boolean;
};
options: {
type: PropType<SegmentedInput["options"]>;
required: true;
};
type: {
type: PropType<SegmentedInput["type"]>;
default: undefined;
};
value: {
type: PropType<SegmentedInput["value"]>;
default: undefined;
};
defaultValue: {
type: PropType<SegmentedInput["defaultValue"]>;
default: undefined;
};
disabled: {
type: BooleanConstructor;
default: undefined;
};
readOnly: {
type: BooleanConstructor;
default: undefined;
};
orientation: {
type: PropType<SegmentedInput["orientation"]>;
default: undefined;
};
loop: {
type: BooleanConstructor;
default: undefined;
};
dir: {
type: PropType<"ltr" | "rtl" | undefined>;
default: undefined;
};
surface: {
type: PropType<"segmented" | "toggle-group">;
default: string;
};
}>> & Readonly<{
onValueChange?: ((_detail: SegmentedValueChangeDetail) => any) | undefined;
}>, {
asChild: boolean;
type: import("@grassroot/ui-machines/segmented").SegmentedType | undefined;
value: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined;
defaultValue: import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined;
disabled: boolean;
readOnly: boolean;
orientation: import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined;
loop: boolean;
dir: "ltr" | "rtl" | undefined;
surface: "segmented" | "toggle-group";
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;

useSegmented

function
DeclarationView source
useSegmentedts
declare function useSegmented(input: () => SegmentedInput, options?: UseSegmentedOptions): UseSegmentedResult;
Name
Kind
Type
Requirement
input
parameter
() => SegmentedInput
required
options
parameter
UseSegmentedOptions
optional
return
return value
UseSegmentedResult
n/a
Name
input
Kind
parameter
Type
() => SegmentedInput
Requirement
required
Name
options
Kind
parameter
Type
UseSegmentedOptions
Requirement
optional
Name
return
Kind
return value
Type
UseSegmentedResult
Requirement
n/a
DeclarationView source
useSegmentedContextts
declare function useSegmentedContext(part: string): SegmentedContextValue;
Name
Kind
Type
Requirement
part
parameter
string
required
return
return value
SegmentedContextValue
n/a
Name
part
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
SegmentedContextValue
Requirement
n/a
DeclarationView source
UseSegmentedOptionsts
interface UseSegmentedOptions {
readonly dir?: "ltr" | "rtl";
readonly scope?: "segmented" | "toggle-group";
readonly onValueChange?: (detail: SegmentedValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
onValueChange
property
(detail: SegmentedValueChangeDetail) => void
optional
scope
property
"segmented" | "toggle-group"
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SegmentedValueChangeDetail) => void
Requirement
optional
Name
scope
Kind
property
Type
"segmented" | "toggle-group"
Requirement
optional

UseSegmentedResult

interface
DeclarationView source
UseSegmentedResultts
interface UseSegmentedResult {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly scope: PartScope;
readonly snapshot: ShallowRef<SegmentedSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
scope
property
PartScope
required
service
property
SegmentedService
required
snapshot
property
ShallowRef<SegmentedSnapshot>
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
Name
snapshot
Kind
property
Type
ShallowRef<SegmentedSnapshot>
Requirement
required

@grassroot/ui-headless-angular/toggle-group

Angular adapter

20 exports
View source packages/ui-headless/angular/src/segmented/index.ts
DeclarationView source
createSegmentedStorets
export declare function createSegmentedStore(initial: SegmentedInput, options?: CreateSegmentedStoreOptions): SegmentedStore;
Name
Kind
Type
Requirement
initial
parameter
SegmentedInput
required
options
parameter
CreateSegmentedStoreOptions
optional
return
return value
SegmentedStore
n/a
Name
initial
Kind
parameter
Type
SegmentedInput
Requirement
required
Name
options
Kind
parameter
Type
CreateSegmentedStoreOptions
Requirement
optional
Name
return
Kind
return value
Type
SegmentedStore
Requirement
n/a
DeclarationView source
CreateSegmentedStoreOptionsts
export interface CreateSegmentedStoreOptions {
readonly dir?: "ltr" | "rtl";
readonly scope?: "segmented" | "toggle-group" | (() => "segmented" | "toggle-group");
readonly onValueChange?: (detail: SegmentedValueChangeDetail) => void;
readonly onCommit?: () => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
onCommit
property
() => void
optional
onValueChange
property
(detail: SegmentedValueChangeDetail) => void
optional
scope
property
"segmented" | "toggle-group" | (() => "segmented" | "toggle-group")
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
onCommit
Kind
property
Type
() => void
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SegmentedValueChangeDetail) => void
Requirement
optional
Name
scope
Kind
property
Type
"segmented" | "toggle-group" | (() => "segmented" | "toggle-group")
Requirement
optional
DeclarationView source
GR_SEGMENTED_DECLARATIONSts
export declare const GR_SEGMENTED_DECLARATIONS: readonly [typeof GrSegmentedRoot, typeof GrSegmentedItem, typeof GrSegmentedLabel, typeof GrSegmentedIndicator];
DeclarationView source
GrSegmentedIndicatorts
export declare class GrSegmentedIndicator implements OnDestroy {
private readonly store;
private readonly element;
private readonly listeners;
private readonly consumer;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSegmentedIndicator, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrSegmentedIndicator, "[grSegmentedIndicator]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumer
property
any
required
element
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrSegmentedIndicator, "[grSegmentedIndicator]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSegmentedIndicator, never>
required
store
property
any
required
Name
consumer
Kind
property
Type
any
Requirement
required
Name
element
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrSegmentedIndicator, "[grSegmentedIndicator]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSegmentedIndicator, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrSegmentedItemts
export declare class GrSegmentedItem implements OnDestroy {
readonly value: import("@angular/core").InputSignal<string>;
readonly disabled: import("@angular/core").InputSignal<boolean | undefined>;
private readonly store;
private readonly element;
private readonly listeners;
private readonly consumer;
private registered;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSegmentedItem, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrSegmentedItem, "[grSegmentedItem]", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumer
property
any
required
disabled
property
import("@angular/core").InputSignal<boolean | undefined>
required
element
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrSegmentedItem, "[grSegmentedItem]", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSegmentedItem, never>
required
registered
property
any
required
store
property
any
required
value
property
import("@angular/core").InputSignal<string>
required
Name
consumer
Kind
property
Type
any
Requirement
required
Name
disabled
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
element
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrSegmentedItem, "[grSegmentedItem]", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSegmentedItem, never>
Requirement
required
Name
registered
Kind
property
Type
any
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
Name
value
Kind
property
Type
import("@angular/core").InputSignal<string>
Requirement
required
DeclarationView source
GrSegmentedLabelts
export declare class GrSegmentedLabel implements OnDestroy {
private readonly store;
private readonly element;
private readonly listeners;
private readonly consumer;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSegmentedLabel, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<GrSegmentedLabel, "[grSegmentedLabel]", never, {}, {}, never, never, true, never>;
}
Name
Kind
Type
Requirement
consumer
property
any
required
element
property
any
required
listeners
property
any
required
ngOnDestroy
method
() => void
required
ɵdir
property
i0.ɵɵDirectiveDeclaration<GrSegmentedLabel, "[grSegmentedLabel]", never, {}, {}, never, never, true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSegmentedLabel, never>
required
store
property
any
required
Name
consumer
Kind
property
Type
any
Requirement
required
Name
element
Kind
property
Type
any
Requirement
required
Name
listeners
Kind
property
Type
any
Requirement
required
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
ɵdir
Kind
property
Type
i0.ɵɵDirectiveDeclaration<GrSegmentedLabel, "[grSegmentedLabel]", never, {}, {}, never, never, true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSegmentedLabel, never>
Requirement
required
Name
store
Kind
property
Type
any
Requirement
required
DeclarationView source
GrSegmentedRootts
export declare class GrSegmentedRoot implements OnDestroy {
readonly options: import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/segmented").SegmentedItem[]>;
readonly type: import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedType | undefined>;
readonly value: import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined>;
readonly defaultValue: import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined>;
readonly disabled: import("@angular/core").InputSignal<boolean | undefined>;
readonly readOnly: import("@angular/core").InputSignal<boolean | undefined>;
readonly orientation: import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined>;
readonly loop: import("@angular/core").InputSignal<boolean | undefined>;
readonly dir: import("@angular/core").InputSignal<"rtl" | "ltr" | undefined>;
readonly surface: import("@angular/core").InputSignal<"segmented" | "toggle-group">;
readonly valueChange: import("@angular/core").OutputEmitterRef<SegmentedValueChangeDetail>;
private readonly element;
readonly store: SegmentedStore;
private readonly listeners;
private last;
constructor();
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrSegmentedRoot, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrSegmentedRoot, "gr-segmented-root", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "surface": { "alias": "surface"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>;
}
Name
Kind
Type
Requirement
defaultValue
property
import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined>
required
dir
property
import("@angular/core").InputSignal<"rtl" | "ltr" | undefined>
required
disabled
property
import("@angular/core").InputSignal<boolean | undefined>
required
element
property
any
required
last
property
any
required
listeners
property
any
required
loop
property
import("@angular/core").InputSignal<boolean | undefined>
required
ngOnDestroy
method
() => void
required
options
property
import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/segmented").SegmentedItem[]>
required
orientation
property
import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined>
required
ɵcmp
property
i0.ɵɵComponentDeclaration<GrSegmentedRoot, "gr-segmented-root", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "surface": { "alias": "surface"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>
required
ɵfac
property
i0.ɵɵFactoryDeclaration<GrSegmentedRoot, never>
required
readOnly
property
import("@angular/core").InputSignal<boolean | undefined>
required
store
property
SegmentedStore
required
Name
defaultValue
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined>
Requirement
required
Name
dir
Kind
property
Type
import("@angular/core").InputSignal<"rtl" | "ltr" | undefined>
Requirement
required
Name
disabled
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
element
Kind
property
Type
any
Requirement
required
Name
last
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
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Name
options
Kind
property
Type
import("@angular/core").InputSignal<readonly import("@grassroot/ui-machines/segmented").SegmentedItem[]>
Requirement
required
Name
orientation
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedOrientation | undefined>
Requirement
required
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrSegmentedRoot, "gr-segmented-root", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readOnly": { "alias": "readOnly"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "loop": { "alias": "loop"; "required": false; "isSignal": true; }; "dir": { "alias": "dir"; "required": false; "isSignal": true; }; "surface": { "alias": "surface"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, ["*"], true, never>
Requirement
required
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrSegmentedRoot, never>
Requirement
required
Name
readOnly
Kind
property
Type
import("@angular/core").InputSignal<boolean | undefined>
Requirement
required
Name
store
Kind
property
Type
SegmentedStore
Requirement
required
Name
surface
Kind
property
Type
import("@angular/core").InputSignal<"segmented" | "toggle-group">
Requirement
required
Name
type
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedType | undefined>
Requirement
required
Name
value
Kind
property
Type
import("@angular/core").InputSignal<import("@grassroot/ui-machines/segmented").SegmentedSelection | undefined>
Requirement
required
Name
valueChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<SegmentedValueChangeDetail>
Requirement
required
DeclarationView source
GrToggleGroupRootts
export declare class GrToggleGroupRoot extends GrSegmentedRoot {
}
DeclarationView source
SEGMENTED_STOREts
export declare const SEGMENTED_STORE: InjectionToken<SegmentedStore>;
DeclarationView source
SegmentedChangeReasonts
type SegmentedChangeReason = "pointer" | "keyboard" | "programmatic";
DeclarationView source
SegmentedCommandts
type SegmentedCommand = CommandObject & ({
readonly type: "VALUE_CHANGE_REQUEST";
readonly value: SegmentedSelection;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "FOCUS_ITEM";
readonly key: string;
});
DeclarationView source
SegmentedContextts
type SegmentedContext = {
readonly type: SegmentedType;
readonly value: SegmentedSelection | undefined;
readonly focusedValue?: string;
readonly mode: BindingMode;
};
Name
Kind
Type
Requirement
focusedValue
property
string
optional
mode
property
BindingMode
required
type
property
SegmentedType
required
value
property
SegmentedSelection | undefined
required
Name
focusedValue
Kind
property
Type
string
Requirement
optional
Name
mode
Kind
property
Type
BindingMode
Requirement
required
Name
type
Kind
property
Type
SegmentedType
Requirement
required
Name
value
Kind
property
Type
SegmentedSelection | undefined
Requirement
required
DeclarationView source
SegmentedEventts
type SegmentedEvent = {
readonly type: "SELECT";
readonly value: string;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HOME";
} | {
readonly type: "END";
} | {
readonly type: "FOCUS";
readonly value: string;
} | {
readonly type: "BLUR";
} | {
readonly type: "RESET";
};
DeclarationView source
SegmentedInputts
type SegmentedInput = {
readonly options: readonly SegmentedItem[];
readonly type?: SegmentedType;
/** Controlled committed value. A defined empty array is controlled. */
readonly value?: SegmentedSelection;
/** Uncontrolled initial value. */
readonly defaultValue?: SegmentedSelection;
readonly disabled?: boolean;
readonly readOnly?: boolean;
/** Connector hint; the machine receives logical movement only. */
readonly orientation?: SegmentedOrientation;
readonly loop?: boolean;
};
Name
Kind
Type
Requirement
Description
defaultValue
property
SegmentedSelection
optional
Uncontrolled initial value.
disabled
property
boolean
optional
loop
property
boolean
optional
options
property
readonly SegmentedItem[]
required
orientation
property
SegmentedOrientation
optional
Connector hint; the machine receives logical movement only.
readOnly
property
boolean
optional
type
property
SegmentedType
optional
value
property
SegmentedSelection
optional
Controlled committed value. A defined empty array is controlled.
Name
defaultValue
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Uncontrolled initial value.
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Description
Name
loop
Kind
property
Type
boolean
Requirement
optional
Description
Name
options
Kind
property
Type
readonly SegmentedItem[]
Requirement
required
Description
Name
orientation
Kind
property
Type
SegmentedOrientation
Requirement
optional
Description
Connector hint; the machine receives logical movement only.
Name
readOnly
Kind
property
Type
boolean
Requirement
optional
Description
Name
type
Kind
property
Type
SegmentedType
Requirement
optional
Description
Name
value
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Controlled committed value. A defined empty array is controlled.
DeclarationView source
SegmentedMachineItemts
interface SegmentedItem {
readonly value: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
value
property
string
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
required
DeclarationView source
SegmentedSelectionts
type SegmentedSelection = string | readonly string[];
DeclarationView source
SegmentedSnapshotts
type SegmentedSnapshot = Snapshot<SegmentedStateValue, SegmentedContext>;

SegmentedStore

interface
DeclarationView source
SegmentedStorets
export interface SegmentedStore {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly scope: PartScope;
readonly version: WritableSignal<number>;
start(): void;
stop(): void;
sync(input: SegmentedInput): void;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
scope
property
PartScope
required
service
property
SegmentedService
required
start
method
() => void
required
stop
method
() => void
required
sync
method
(input: SegmentedInput) => void
required
version
property
WritableSignal<number>
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
Name
start
Kind
method
Type
() => void
Requirement
required
Name
stop
Kind
method
Type
() => void
Requirement
required
Name
sync
Kind
method
Type
(input: SegmentedInput) => void
Requirement
required
Name
version
Kind
property
Type
WritableSignal<number>
Requirement
required
DeclarationView source
SegmentedTypets
type SegmentedType = "single" | "multiple";
DeclarationView source
SegmentedValueChangeDetailts
export interface SegmentedValueChangeDetail {
readonly value: string | readonly string[];
readonly reason: import("@grassroot/ui-machines/segmented").SegmentedChangeReason;
}
Name
Kind
Type
Requirement
reason
property
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
required
value
property
string | readonly string[]
required
Name
reason
Kind
property
Type
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
Requirement
required
Name
value
Kind
property
Type
string | readonly string[]
Requirement
required

@grassroot/ui-headless-svelte/toggle-group

Svelte adapter

22 exports
View source packages/ui-headless/svelte/src/segmented/index.ts

createSegmented

function
DeclarationView source
createSegmentedts
export declare function createSegmented(input: () => SegmentedInput, options?: UseSegmentedOptions): UseSegmentedResult;
Name
Kind
Type
Requirement
input
parameter
() => SegmentedInput
required
options
parameter
UseSegmentedOptions
optional
return
return value
UseSegmentedResult
n/a
Name
input
Kind
parameter
Type
() => SegmentedInput
Requirement
required
Name
options
Kind
parameter
Type
UseSegmentedOptions
Requirement
optional
Name
return
Kind
return value
Type
UseSegmentedResult
Requirement
n/a
DeclarationView source
provideSegmentedContextts
export declare function provideSegmentedContext(value: SegmentedContextValue): void;
Name
Kind
Type
Requirement
value
parameter
SegmentedContextValue
required
return
return value
void
n/a
Name
value
Kind
parameter
Type
SegmentedContextValue
Requirement
required
Name
return
Kind
return value
Type
void
Requirement
n/a

Segmented

value
DeclarationView source
Segmentedts
export declare const Segmented: {
Root: import("svelte/legacy").LegacyComponentType;
Item: import("svelte/legacy").LegacyComponentType;
Label: import("svelte/legacy").LegacyComponentType;
Indicator: import("svelte/legacy").LegacyComponentType;
};
Name
Kind
Type
Requirement
Indicator
property
import("svelte/legacy").LegacyComponentType
required
Item
property
import("svelte/legacy").LegacyComponentType
required
Label
property
import("svelte/legacy").LegacyComponentType
required
Root
property
import("svelte/legacy").LegacyComponentType
required
Name
Indicator
Kind
property
Type
import("svelte/legacy").LegacyComponentType
Requirement
required
Name
Item
Kind
property
Type
import("svelte/legacy").LegacyComponentType
Requirement
required
Name
Label
Kind
property
Type
import("svelte/legacy").LegacyComponentType
Requirement
required
Name
Root
Kind
property
Type
import("svelte/legacy").LegacyComponentType
Requirement
required
DeclarationView source
SegmentedChangeReasonts
type SegmentedChangeReason = "pointer" | "keyboard" | "programmatic";
DeclarationView source
SegmentedCommandts
type SegmentedCommand = CommandObject & ({
readonly type: "VALUE_CHANGE_REQUEST";
readonly value: SegmentedSelection;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "FOCUS_ITEM";
readonly key: string;
});
DeclarationView source
SegmentedContextts
type SegmentedContext = {
readonly type: SegmentedType;
readonly value: SegmentedSelection | undefined;
readonly focusedValue?: string;
readonly mode: BindingMode;
};
Name
Kind
Type
Requirement
focusedValue
property
string
optional
mode
property
BindingMode
required
type
property
SegmentedType
required
value
property
SegmentedSelection | undefined
required
Name
focusedValue
Kind
property
Type
string
Requirement
optional
Name
mode
Kind
property
Type
BindingMode
Requirement
required
Name
type
Kind
property
Type
SegmentedType
Requirement
required
Name
value
Kind
property
Type
SegmentedSelection | undefined
Requirement
required
DeclarationView source
SegmentedEventts
type SegmentedEvent = {
readonly type: "SELECT";
readonly value: string;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HOME";
} | {
readonly type: "END";
} | {
readonly type: "FOCUS";
readonly value: string;
} | {
readonly type: "BLUR";
} | {
readonly type: "RESET";
};
DeclarationView source
SegmentedIndicatorts
export declare const SegmentedIndicator: 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
SegmentedInputts
type SegmentedInput = {
readonly options: readonly SegmentedItem[];
readonly type?: SegmentedType;
/** Controlled committed value. A defined empty array is controlled. */
readonly value?: SegmentedSelection;
/** Uncontrolled initial value. */
readonly defaultValue?: SegmentedSelection;
readonly disabled?: boolean;
readonly readOnly?: boolean;
/** Connector hint; the machine receives logical movement only. */
readonly orientation?: SegmentedOrientation;
readonly loop?: boolean;
};
Name
Kind
Type
Requirement
Description
defaultValue
property
SegmentedSelection
optional
Uncontrolled initial value.
disabled
property
boolean
optional
loop
property
boolean
optional
options
property
readonly SegmentedItem[]
required
orientation
property
SegmentedOrientation
optional
Connector hint; the machine receives logical movement only.
readOnly
property
boolean
optional
type
property
SegmentedType
optional
value
property
SegmentedSelection
optional
Controlled committed value. A defined empty array is controlled.
Name
defaultValue
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Uncontrolled initial value.
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Description
Name
loop
Kind
property
Type
boolean
Requirement
optional
Description
Name
options
Kind
property
Type
readonly SegmentedItem[]
Requirement
required
Description
Name
orientation
Kind
property
Type
SegmentedOrientation
Requirement
optional
Description
Connector hint; the machine receives logical movement only.
Name
readOnly
Kind
property
Type
boolean
Requirement
optional
Description
Name
type
Kind
property
Type
SegmentedType
Requirement
optional
Description
Name
value
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Controlled committed value. A defined empty array is controlled.
DeclarationView source
SegmentedItemts
export declare const SegmentedItem: 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
SegmentedLabelts
export declare const SegmentedLabel: 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
SegmentedMachineItemts
interface SegmentedItem {
readonly value: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
value
property
string
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
required
DeclarationView source
SegmentedRootts
export declare const SegmentedRoot: 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
SegmentedSelectionts
type SegmentedSelection = string | readonly string[];
DeclarationView source
SegmentedSnapshotts
type SegmentedSnapshot = Snapshot<SegmentedStateValue, SegmentedContext>;
DeclarationView source
SegmentedTypets
type SegmentedType = "single" | "multiple";
DeclarationView source
SegmentedValueChangeDetailts
export interface SegmentedValueChangeDetail {
readonly value: string | readonly string[];
readonly reason: import("@grassroot/ui-machines/segmented").SegmentedChangeReason;
}
Name
Kind
Type
Requirement
reason
property
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
required
value
property
string | readonly string[]
required
Name
reason
Kind
property
Type
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
Requirement
required
Name
value
Kind
property
Type
string | readonly string[]
Requirement
required

ToggleGroup

value
DeclarationView source
ToggleGroupts
export declare const ToggleGroup: {
Root: import("svelte/legacy").LegacyComponentType;
Item: import("svelte/legacy").LegacyComponentType;
Label: import("svelte/legacy").LegacyComponentType;
Indicator: import("svelte/legacy").LegacyComponentType;
};
Name
Kind
Type
Requirement
Indicator
property
import("svelte/legacy").LegacyComponentType
required
Item
property
import("svelte/legacy").LegacyComponentType
required
Label
property
import("svelte/legacy").LegacyComponentType
required
Root
property
import("svelte/legacy").LegacyComponentType
required
Name
Indicator
Kind
property
Type
import("svelte/legacy").LegacyComponentType
Requirement
required
Name
Item
Kind
property
Type
import("svelte/legacy").LegacyComponentType
Requirement
required
Name
Label
Kind
property
Type
import("svelte/legacy").LegacyComponentType
Requirement
required
Name
Root
Kind
property
Type
import("svelte/legacy").LegacyComponentType
Requirement
required
DeclarationView source
ToggleGroupRootts
export declare const ToggleGroupRoot: 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
useSegmentedContextts
export declare function useSegmentedContext(part: string): SegmentedContextValue;
Name
Kind
Type
Requirement
part
parameter
string
required
return
return value
SegmentedContextValue
n/a
Name
part
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
SegmentedContextValue
Requirement
n/a
DeclarationView source
UseSegmentedOptionsts
export interface UseSegmentedOptions {
readonly dir?: "ltr" | "rtl";
readonly scope?: "segmented" | "toggle-group";
readonly onValueChange?: (detail: SegmentedValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
onValueChange
property
(detail: SegmentedValueChangeDetail) => void
optional
scope
property
"segmented" | "toggle-group"
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SegmentedValueChangeDetail) => void
Requirement
optional
Name
scope
Kind
property
Type
"segmented" | "toggle-group"
Requirement
optional

UseSegmentedResult

interface
DeclarationView source
UseSegmentedResultts
export interface UseSegmentedResult {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly scope: ReturnType<typeof import("@grassroot/ui-headless-core").createPartScope>;
readonly version: () => number;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
scope
property
ReturnType<typeof import("@grassroot/ui-headless-core").createPartScope>
required
service
property
SegmentedService
required
version
property
() => number
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
scope
Kind
property
Type
ReturnType<typeof import("@grassroot/ui-headless-core").createPartScope>
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
Name
version
Kind
property
Type
() => number
Requirement
required

@grassroot/ui-headless-solid/toggle-group

Solid adapter

28 exports
View source packages/ui-headless/solid/src/segmented/index.ts

Segmented

value
DeclarationView source
Segmentedts
export declare const Segmented: {
Root: typeof SegmentedRoot;
Item: typeof SegmentedItem;
Label: typeof SegmentedLabel;
Indicator: typeof SegmentedIndicator;
};
Name
Kind
Type
Requirement
Indicator
property
typeof SegmentedIndicator
required
Item
property
typeof SegmentedItem
required
Label
property
typeof SegmentedLabel
required
Root
property
typeof SegmentedRoot
required
Name
Indicator
Kind
property
Type
typeof SegmentedIndicator
Requirement
required
Name
Item
Kind
property
Type
typeof SegmentedItem
Requirement
required
Name
Label
Kind
property
Type
typeof SegmentedLabel
Requirement
required
Name
Root
Kind
property
Type
typeof SegmentedRoot
Requirement
required
DeclarationView source
SegmentedChangeReasonts
type SegmentedChangeReason = "pointer" | "keyboard" | "programmatic";
DeclarationView source
SegmentedCommandts
type SegmentedCommand = CommandObject & ({
readonly type: "VALUE_CHANGE_REQUEST";
readonly value: SegmentedSelection;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "FOCUS_ITEM";
readonly key: string;
});
DeclarationView source
SegmentedContextts
export declare const SegmentedContext: import("solid-js").Context<SegmentedContextValue | undefined>;
DeclarationView source
SegmentedContextProviderts
export declare function SegmentedContextProvider(props: {
value: SegmentedContextValue;
children: JSX.Element;
}): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
{ value: SegmentedContextValue; children: JSX.Element; }
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
{ value: SegmentedContextValue; children: JSX.Element; }
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
SegmentedContextValuets
export interface SegmentedContextValue {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly scope: PartScope;
readonly snapshot: Accessor<SegmentedSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
scope
property
PartScope
required
service
property
SegmentedService
required
snapshot
property
Accessor<SegmentedSnapshot>
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<SegmentedSnapshot>
Requirement
required
DeclarationView source
SegmentedEventts
type SegmentedEvent = {
readonly type: "SELECT";
readonly value: string;
readonly reason: SegmentedChangeReason;
} | {
readonly type: "MOVE";
readonly direction: -1 | 1;
} | {
readonly type: "HOME";
} | {
readonly type: "END";
} | {
readonly type: "FOCUS";
readonly value: string;
} | {
readonly type: "BLUR";
} | {
readonly type: "RESET";
};
DeclarationView source
SegmentedIndicatorts
export declare function SegmentedIndicator(props: SegmentedIndicatorProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SegmentedIndicatorProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SegmentedIndicatorProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
SegmentedIndicatorPropsts
export interface SegmentedIndicatorProps extends JSX.HTMLAttributes<HTMLSpanElement> {
readonly as?: AsProp;
readonly item?: SegmentedItem;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
item
property
SegmentedItem
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
item
Kind
property
Type
SegmentedItem
Requirement
optional
DeclarationView source
SegmentedInputts
type SegmentedInput = {
readonly options: readonly SegmentedItem[];
readonly type?: SegmentedType;
/** Controlled committed value. A defined empty array is controlled. */
readonly value?: SegmentedSelection;
/** Uncontrolled initial value. */
readonly defaultValue?: SegmentedSelection;
readonly disabled?: boolean;
readonly readOnly?: boolean;
/** Connector hint; the machine receives logical movement only. */
readonly orientation?: SegmentedOrientation;
readonly loop?: boolean;
};
Name
Kind
Type
Requirement
Description
defaultValue
property
SegmentedSelection
optional
Uncontrolled initial value.
disabled
property
boolean
optional
loop
property
boolean
optional
options
property
readonly SegmentedItem[]
required
orientation
property
SegmentedOrientation
optional
Connector hint; the machine receives logical movement only.
readOnly
property
boolean
optional
type
property
SegmentedType
optional
value
property
SegmentedSelection
optional
Controlled committed value. A defined empty array is controlled.
Name
defaultValue
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Uncontrolled initial value.
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Description
Name
loop
Kind
property
Type
boolean
Requirement
optional
Description
Name
options
Kind
property
Type
readonly SegmentedItem[]
Requirement
required
Description
Name
orientation
Kind
property
Type
SegmentedOrientation
Requirement
optional
Description
Connector hint; the machine receives logical movement only.
Name
readOnly
Kind
property
Type
boolean
Requirement
optional
Description
Name
type
Kind
property
Type
SegmentedType
Requirement
optional
Description
Name
value
Kind
property
Type
SegmentedSelection
Requirement
optional
Description
Controlled committed value. A defined empty array is controlled.

SegmentedItem

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

SegmentedItemProps

interface
DeclarationView source
SegmentedItemPropsts
export interface SegmentedItemProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
readonly as?: AsProp;
readonly item?: SegmentedItem;
readonly value?: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
disabled
property
boolean
optional
item
property
SegmentedItem
optional
value
property
string
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
item
Kind
property
Type
SegmentedItem
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
optional

SegmentedLabel

function
DeclarationView source
SegmentedLabelts
export declare function SegmentedLabel(props: SegmentedLabelProps): JSX.Element;
Name
Kind
Type
Requirement
props
parameter
SegmentedLabelProps
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
SegmentedLabelProps
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
SegmentedLabelPropsts
export interface SegmentedLabelProps extends JSX.HTMLAttributes<HTMLDivElement> {
readonly as?: AsProp;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
DeclarationView source
SegmentedMachineContextts
type SegmentedContext = {
readonly type: SegmentedType;
readonly value: SegmentedSelection | undefined;
readonly focusedValue?: string;
readonly mode: BindingMode;
};
Name
Kind
Type
Requirement
focusedValue
property
string
optional
mode
property
BindingMode
required
type
property
SegmentedType
required
value
property
SegmentedSelection | undefined
required
Name
focusedValue
Kind
property
Type
string
Requirement
optional
Name
mode
Kind
property
Type
BindingMode
Requirement
required
Name
type
Kind
property
Type
SegmentedType
Requirement
required
Name
value
Kind
property
Type
SegmentedSelection | undefined
Requirement
required
DeclarationView source
SegmentedMachineItemts
interface SegmentedItem {
readonly value: string;
readonly disabled?: boolean;
}
Name
Kind
Type
Requirement
disabled
property
boolean
optional
value
property
string
required
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
value
Kind
property
Type
string
Requirement
required

SegmentedRoot

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

SegmentedRootProps

interface
DeclarationView source
SegmentedRootPropsts
export interface SegmentedRootProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, "onChange" | "value"> {
readonly as?: AsProp;
readonly options: SegmentedInput["options"];
readonly type?: SegmentedInput["type"];
readonly value?: SegmentedInput["value"];
readonly defaultValue?: SegmentedInput["defaultValue"];
readonly disabled?: boolean;
readonly readOnly?: boolean;
readonly orientation?: SegmentedInput["orientation"];
readonly loop?: boolean;
readonly dir?: "ltr" | "rtl";
readonly surface?: "segmented" | "toggle-group";
readonly onValueChange?: (detail: SegmentedValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
as
property
AsProp
optional
defaultValue
property
SegmentedInput["defaultValue"]
optional
dir
property
"ltr" | "rtl"
optional
disabled
property
boolean
optional
loop
property
boolean
optional
onValueChange
property
(detail: SegmentedValueChangeDetail) => void
optional
options
property
SegmentedInput["options"]
required
orientation
property
SegmentedInput["orientation"]
optional
readOnly
property
boolean
optional
surface
property
"segmented" | "toggle-group"
optional
type
property
SegmentedInput["type"]
optional
value
property
SegmentedInput["value"]
optional
Name
as
Kind
property
Type
AsProp
Requirement
optional
Name
defaultValue
Kind
property
Type
SegmentedInput["defaultValue"]
Requirement
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
disabled
Kind
property
Type
boolean
Requirement
optional
Name
loop
Kind
property
Type
boolean
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SegmentedValueChangeDetail) => void
Requirement
optional
Name
options
Kind
property
Type
SegmentedInput["options"]
Requirement
required
Name
orientation
Kind
property
Type
SegmentedInput["orientation"]
Requirement
optional
Name
readOnly
Kind
property
Type
boolean
Requirement
optional
Name
surface
Kind
property
Type
"segmented" | "toggle-group"
Requirement
optional
Name
type
Kind
property
Type
SegmentedInput["type"]
Requirement
optional
Name
value
Kind
property
Type
SegmentedInput["value"]
Requirement
optional
DeclarationView source
SegmentedSelectionts
type SegmentedSelection = string | readonly string[];
DeclarationView source
SegmentedSnapshotts
type SegmentedSnapshot = Snapshot<SegmentedStateValue, SegmentedContext>;
DeclarationView source
SegmentedTypets
type SegmentedType = "single" | "multiple";
DeclarationView source
SegmentedValueChangeDetailts
export interface SegmentedValueChangeDetail {
readonly value: string | readonly string[];
readonly reason: import("@grassroot/ui-machines/segmented").SegmentedChangeReason;
}
Name
Kind
Type
Requirement
reason
property
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
required
value
property
string | readonly string[]
required
Name
reason
Kind
property
Type
import("@grassroot/ui-machines/segmented").SegmentedChangeReason
Requirement
required
Name
value
Kind
property
Type
string | readonly string[]
Requirement
required

ToggleGroup

value
DeclarationView source
ToggleGroupts
export declare const ToggleGroup: {
Root: typeof ToggleGroupRoot;
Item: typeof SegmentedItem;
Label: typeof SegmentedLabel;
Indicator: typeof SegmentedIndicator;
};
Name
Kind
Type
Requirement
Indicator
property
typeof SegmentedIndicator
required
Item
property
typeof SegmentedItem
required
Label
property
typeof SegmentedLabel
required
Root
property
typeof ToggleGroupRoot
required
Name
Indicator
Kind
property
Type
typeof SegmentedIndicator
Requirement
required
Name
Item
Kind
property
Type
typeof SegmentedItem
Requirement
required
Name
Label
Kind
property
Type
typeof SegmentedLabel
Requirement
required
Name
Root
Kind
property
Type
typeof ToggleGroupRoot
Requirement
required

ToggleGroupRoot

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

useSegmented

function
DeclarationView source
useSegmentedts
export declare function useSegmented(input: Accessor<SegmentedInput>, options?: UseSegmentedOptions): UseSegmentedResult;
Name
Kind
Type
Requirement
input
parameter
Accessor<SegmentedInput>
required
options
parameter
UseSegmentedOptions
optional
return
return value
UseSegmentedResult
n/a
Name
input
Kind
parameter
Type
Accessor<SegmentedInput>
Requirement
required
Name
options
Kind
parameter
Type
UseSegmentedOptions
Requirement
optional
Name
return
Kind
return value
Type
UseSegmentedResult
Requirement
n/a
DeclarationView source
useSegmentedContextts
export declare function useSegmentedContext(part: string): SegmentedContextValue;
Name
Kind
Type
Requirement
part
parameter
string
required
return
return value
SegmentedContextValue
n/a
Name
part
Kind
parameter
Type
string
Requirement
required
Name
return
Kind
return value
Type
SegmentedContextValue
Requirement
n/a
DeclarationView source
UseSegmentedOptionsts
export interface UseSegmentedOptions {
readonly dir?: "ltr" | "rtl";
readonly scope?: "segmented" | "toggle-group";
readonly onValueChange?: (detail: SegmentedValueChangeDetail) => void;
}
Name
Kind
Type
Requirement
dir
property
"ltr" | "rtl"
optional
onValueChange
property
(detail: SegmentedValueChangeDetail) => void
optional
scope
property
"segmented" | "toggle-group"
optional
Name
dir
Kind
property
Type
"ltr" | "rtl"
Requirement
optional
Name
onValueChange
Kind
property
Type
(detail: SegmentedValueChangeDetail) => void
Requirement
optional
Name
scope
Kind
property
Type
"segmented" | "toggle-group"
Requirement
optional

UseSegmentedResult

interface
DeclarationView source
UseSegmentedResultts
export interface UseSegmentedResult {
readonly service: SegmentedService;
readonly connector: SegmentedApi;
readonly scope: PartScope;
readonly snapshot: Accessor<SegmentedSnapshot>;
}
Name
Kind
Type
Requirement
connector
property
SegmentedApi
required
scope
property
PartScope
required
service
property
SegmentedService
required
snapshot
property
Accessor<SegmentedSnapshot>
required
Name
connector
Kind
property
Type
SegmentedApi
Requirement
required
Name
scope
Kind
property
Type
PartScope
Requirement
required
Name
service
Kind
property
Type
SegmentedService
Requirement
required
Name
snapshot
Kind
property
Type
Accessor<SegmentedSnapshot>
Requirement
required