---import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from '@lucide/astro';
import { ToggleGroup, ToggleGroupItem } from '@bejamas/registry/ui/toggle-group';---
<ToggleGroup defaultValue="center" variant="outline"> <ToggleGroupItem value="left" aria-label="Align left"> <AlignLeftIcon /> </ToggleGroupItem> <ToggleGroupItem value="center" aria-label="Align center"> <AlignCenterIcon /> </ToggleGroupItem> <ToggleGroupItem value="right" aria-label="Align right"> <AlignRightIcon /> </ToggleGroupItem></ToggleGroup>Installation
Section titled “Installation”bunx bejamas add toggle-groupnpx bejamas add toggle-grouppnpm dlx bejamas add toggle-groupyarn dlx bejamas add toggle-group---import { ToggleGroup, ToggleGroupItem } from '@bejamas/ui/components/toggle-group';import { BoldIcon, ItalicIcon, UnderlineIcon } from '@lucide/astro';---
<ToggleGroup defaultValue="bold" variant="outline"> <ToggleGroupItem value="bold" aria-label="Toggle bold"> <BoldIcon /> </ToggleGroupItem> <ToggleGroupItem value="italic" aria-label="Toggle italic"> <ItalicIcon /> </ToggleGroupItem> <ToggleGroupItem value="underline" aria-label="Toggle underline"> <UnderlineIcon /> </ToggleGroupItem></ToggleGroup>| Prop | Type | Default |
|---|---|---|
variant |
"default" | "outline" |
"default" |
size |
"default" | "sm" | "lg" |
"default" |
spacing |
number |
0 |
defaultValue |
string | string[] |
|
multiple |
boolean |
false |
orientation |
"horizontal" | "vertical" |
"horizontal" |
disabled |
boolean |
false |
class |
string |
"" |
style |
string |
"" |
Examples
Section titled “Examples”Multiple Selection
Section titled “Multiple Selection”---import { BoldIcon, ItalicIcon, UnderlineIcon } from '@lucide/astro';
import { ToggleGroup, ToggleGroupItem } from '@bejamas/registry/ui/toggle-group';---
<ToggleGroup multiple defaultValue={["bold", "italic"]} variant="outline"> <ToggleGroupItem value="bold" aria-label="Toggle bold"> <BoldIcon /> </ToggleGroupItem> <ToggleGroupItem value="italic" aria-label="Toggle italic"> <ItalicIcon /> </ToggleGroupItem> <ToggleGroupItem value="underline" aria-label="Toggle underline"> <UnderlineIcon /> </ToggleGroupItem></ToggleGroup>Outline Variant
Section titled “Outline Variant”---import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from '@lucide/astro';
import { ToggleGroup, ToggleGroupItem } from '@bejamas/registry/ui/toggle-group';---
<ToggleGroup variant="outline" defaultValue="center"> <ToggleGroupItem value="left" aria-label="Align left"> <AlignLeftIcon /> </ToggleGroupItem> <ToggleGroupItem value="center" aria-label="Align center"> <AlignCenterIcon /> </ToggleGroupItem> <ToggleGroupItem value="right" aria-label="Align right"> <AlignRightIcon /> </ToggleGroupItem></ToggleGroup>---import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from '@lucide/astro';
import { ToggleGroup, ToggleGroupItem } from '@bejamas/registry/ui/toggle-group';---
<div class="flex flex-col gap-4"> <ToggleGroup size="sm" variant="outline" defaultValue="center"> <ToggleGroupItem value="left" aria-label="Align left"> <AlignLeftIcon /> </ToggleGroupItem> <ToggleGroupItem value="center" aria-label="Align center"> <AlignCenterIcon /> </ToggleGroupItem> <ToggleGroupItem value="right" aria-label="Align right"> <AlignRightIcon /> </ToggleGroupItem> </ToggleGroup> <ToggleGroup size="default" variant="outline" defaultValue="center"> <ToggleGroupItem value="left" aria-label="Align left"> <AlignLeftIcon /> </ToggleGroupItem> <ToggleGroupItem value="center" aria-label="Align center"> <AlignCenterIcon /> </ToggleGroupItem> <ToggleGroupItem value="right" aria-label="Align right"> <AlignRightIcon /> </ToggleGroupItem> </ToggleGroup> <ToggleGroup size="lg" variant="outline" defaultValue="center"> <ToggleGroupItem value="left" aria-label="Align left"> <AlignLeftIcon /> </ToggleGroupItem> <ToggleGroupItem value="center" aria-label="Align center"> <AlignCenterIcon /> </ToggleGroupItem> <ToggleGroupItem value="right" aria-label="Align right"> <AlignRightIcon /> </ToggleGroupItem> </ToggleGroup></div>Vertical Orientation
Section titled “Vertical Orientation”---import { AlignVerticalJustifyCenterIcon, AlignVerticalJustifyEndIcon, AlignVerticalJustifyStartIcon } from '@lucide/astro';
import { ToggleGroup, ToggleGroupItem } from '@bejamas/registry/ui/toggle-group';---
<ToggleGroup orientation="vertical" variant="outline" defaultValue="middle"> <ToggleGroupItem value="top" aria-label="Align top"> <AlignVerticalJustifyStartIcon /> </ToggleGroupItem> <ToggleGroupItem value="middle" aria-label="Align middle"> <AlignVerticalJustifyCenterIcon /> </ToggleGroupItem> <ToggleGroupItem value="bottom" aria-label="Align bottom"> <AlignVerticalJustifyEndIcon /> </ToggleGroupItem></ToggleGroup>Disabled
Section titled “Disabled”---import { AlignCenterIcon, AlignLeftIcon, AlignRightIcon } from '@lucide/astro';
import { ToggleGroup, ToggleGroupItem } from '@bejamas/registry/ui/toggle-group';---
<ToggleGroup disabled variant="outline" defaultValue="center"> <ToggleGroupItem value="left" aria-label="Align left"> <AlignLeftIcon /> </ToggleGroupItem> <ToggleGroupItem value="center" aria-label="Align center"> <AlignCenterIcon /> </ToggleGroupItem> <ToggleGroupItem value="right" aria-label="Align right"> <AlignRightIcon /> </ToggleGroupItem></ToggleGroup>API Reference
Section titled “API Reference”Events
Section titled “Events”| Event | Detail | Description |
|---|---|---|
toggle-group:change |
{ value: string[] } |
Fired when the selection changes |
Programmatic Control
Section titled “Programmatic Control”// Set selected values programmaticallyelement.dispatchEvent(new CustomEvent('toggle-group:set', { detail: { value: ['bold', 'italic'] }}));Data Attributes
Section titled “Data Attributes”| Attribute | Element | Description |
|---|---|---|
data-state |
toggle-group-item | Current state: on or off |
data-disabled |
toggle-group | Present when group is disabled |
data-orientation |
toggle-group | Orientation: horizontal or vertical |
data-spacing |
toggle-group | Gap value used by style packs |
data-variant |
toggle-group | Visual variant: default or outline |
data-size |
toggle-group | Size: sm, default, or lg |