Docs Components Forms

Segmented

React example follows below.
ts
const segmentedFixture = {
id: "segmented",
defaultValue: "grid",
options: [
{ value: "grid", label: "Grid" },
{ value: "list", label: "List" },
{ value: "board", label: "Board" },
],
} as const;
import { Segmented } from "@grassroot/ui-react";
export default function SegmentedDemo() {
return (
<div>
<Segmented
defaultValue={segmentedFixture.defaultValue}
options={[...segmentedFixture.options]}
/>
</div>
);
}
ts
<script setup lang="ts">
import { ref } from "vue";
const segmentedFixture = {
id: "segmented",
defaultValue: "grid",
options: [
{ value: "grid", label: "Grid" },
{ value: "list", label: "List" },
{ value: "board", label: "Board" },
],
} as const;
import { Segmented } from "@grassroot/ui-vue";
const value = ref(segmentedFixture.defaultValue);
</script>
<template>
<div><Segmented v-model="value" :options="[...segmentedFixture.options]" /></div>
</template>
ts
import { Component } from "@angular/core";
const segmentedFixture = {
id: "segmented",
defaultValue: "grid",
options: [
{ value: "grid", label: "Grid" },
{ value: "list", label: "List" },
{ value: "board", label: "Board" },
],
} as const;
import { GrassrootSegmented } from "@grassroot/ui-angular";
@Component({
selector: "app-segmented-demo",
standalone: true,
imports: [GrassrootSegmented],
template: `<div>
<grassroot-segmented [options]="fixture.options" [value]="fixture.defaultValue" />
</div>`,
})
export class SegmentedDemoComponent {
protected readonly fixture = segmentedFixture;
}
export default SegmentedDemoComponent;
ts
<script lang="ts">
const segmentedFixture = {
id: "segmented",
defaultValue: "grid",
options: [
{ value: "grid", label: "Grid" },
{ value: "list", label: "List" },
{ value: "board", label: "Board" },
],
} as const;
import { Segmented } from "@grassroot/ui-svelte";
</script>
<div>
<Segmented options={[...segmentedFixture.options]} defaultValue={segmentedFixture.defaultValue} />
</div>
ts
/** @jsxImportSource solid-js */
const segmentedFixture = {
id: "segmented",
defaultValue: "grid",
options: [
{ value: "grid", label: "Grid" },
{ value: "list", label: "List" },
{ value: "board", label: "Board" },
],
} as const;
import { Segmented } from "@grassroot/ui-solid";
export default function SegmentedDemo() {
return (
<div>
<Segmented
options={[...segmentedFixture.options]}
defaultValue={segmentedFixture.defaultValue}
/>
</div>
);
}

Installation

API Reference

Import

import { Segmented } from "@grassroot/ui-react";

Props

Prop
Type
Default
Requirement
Description
options
SegmentedOption[]
required
name
string | undefined
optional
Shared radio group name.
value
string | undefined
optional
defaultValue
string | undefined
optional
onValueChange
((value: string) => void) | undefined
optional
className
string | undefined
optional
Prop
options
Type
SegmentedOption[]
Default
Requirement
required
Description
Prop
name
Type
string | undefined
Default
Requirement
optional
Description
Shared radio group name.
Prop
value
Type
string | undefined
Default
Requirement
optional
Description
Prop
defaultValue
Type
string | undefined
Default
Requirement
optional
Description
Prop
onValueChange
Type
((value: string) => void) | undefined
Default
Requirement
optional
Description
Prop
className
Type
string | undefined
Default
Requirement
optional
Description

Events

EventPayload
onValueChange((value: string) => void) | undefined

Import

import { ref } from "vue";
import { Segmented } from "@grassroot/ui-vue";

Props

Prop
Type
Default
Requirement
options
SegmentedOption[]
required
name
string | undefined
optional
modelValue
string | undefined
optional
Prop
options
Type
SegmentedOption[]
Default
Requirement
required
Prop
name
Type
string | undefined
Default
Requirement
optional
Prop
modelValue
Type
string | undefined
Default
Requirement
optional

Events

EventPayload
update:modelValue[value: string]

Import

import { Component } from "@angular/core";
import { GrassrootSegmented } from "@grassroot/ui-angular";

Props

Prop
Type
Default
Requirement
options
readonly SegmentedOption[]
required
name
string
optional
value
string
optional
Prop
options
Type
readonly SegmentedOption[]
Default
Requirement
required
Prop
name
Type
string
Default
Requirement
optional
Prop
value
Type
string
Default
Requirement
optional

Events

EventPayload
valueChangestring

Import

import { Segmented } from "@grassroot/ui-svelte";

Props

Prop
Type
Default
Requirement
options
SegmentedOption[]
required
name
string
optional
value
string
optional
defaultValue
string
optional
onValueChange
(value: string) => void
optional
className
string
optional
Prop
options
Type
SegmentedOption[]
Default
Requirement
required
Prop
name
Type
string
Default
Requirement
optional
Prop
value
Type
string
Default
Requirement
optional
Prop
defaultValue
Type
string
Default
Requirement
optional
Prop
onValueChange
Type
(value: string) => void
Default
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Events

EventPayload
onValueChange(value: string) => void

Import

import { Segmented } from "@grassroot/ui-solid";

Props

Prop
Type
Default
Requirement
options
SegmentedOption[]
required
name
string
optional
value
string
optional
defaultValue
string
optional
onValueChange
(value: string) => void
optional
className
string
optional
Prop
options
Type
SegmentedOption[]
Default
Requirement
required
Prop
name
Type
string
Default
Requirement
optional
Prop
value
Type
string
Default
Requirement
optional
Prop
defaultValue
Type
string
Default
Requirement
optional
Prop
onValueChange
Type
(value: string) => void
Default
Requirement
optional
Prop
className
Type
string
Default
Requirement
optional

Events

EventPayload
onValueChange(value: string) => void