Files
zeekay 16c4453cc1 feat: sync with upstream shadcn/ui (through [email protected])
Squash merge of shadcn-ui/ui main branch into hanzo/ui, bringing in:
- [email protected] through [email protected] releases
- New apps/v4 directory structure
- Registry system improvements and MCP server
- Framework support (Vue, Svelte, React Native)
- New templates (vite-app, monorepo-next, laravel)
- Zod 4 compatibility (scoped override for zod@>4)
- Test fixture corrections for alias resolution

All 867 merge conflicts resolved preserving Hanzo customizations.
1020/1020 shadcn tests pass.
2026-02-09 10:44:26 -08:00

140 lines
4.1 KiB
TypeScript

import {
BoldIcon,
BookmarkIcon,
HeartIcon,
ItalicIcon,
StarIcon,
UnderlineIcon,
} from "lucide-react"
import {
ToggleGroup,
ToggleGroupItem,
} from "@/registry/new-york-v4/ui/toggle-group"
export function ToggleGroupDemo() {
return (
<div className="flex flex-wrap items-start gap-4">
<ToggleGroup type="multiple" spacing={2}>
<ToggleGroupItem value="bold" aria-label="Toggle bold">
<BoldIcon />
</ToggleGroupItem>
<ToggleGroupItem value="italic" aria-label="Toggle italic">
<ItalicIcon />
</ToggleGroupItem>
<ToggleGroupItem
value="strikethrough"
aria-label="Toggle strikethrough"
>
<UnderlineIcon />
</ToggleGroupItem>
</ToggleGroup>
<ToggleGroup
variant="outline"
type="single"
defaultValue="all"
className="*:data-[slot=toggle-group-item]:w-20"
>
<ToggleGroupItem value="all" aria-label="Toggle all">
All
</ToggleGroupItem>
<ToggleGroupItem value="missed" aria-label="Toggle missed">
Missed
</ToggleGroupItem>
</ToggleGroup>
<ToggleGroup
variant="outline"
type="single"
size="sm"
defaultValue="last-24-hours"
className="*:data-[slot=toggle-group-item]:px-3"
>
<ToggleGroupItem
value="last-24-hours"
aria-label="Toggle last 24 hours"
>
Last 24 hours
</ToggleGroupItem>
<ToggleGroupItem value="last-7-days" aria-label="Toggle last 7 days">
Last 7 days
</ToggleGroupItem>
</ToggleGroup>
<ToggleGroup type="single" size="sm" defaultValue="last-24-hours">
<ToggleGroupItem
value="last-24-hours"
aria-label="Toggle last 24 hours"
>
Last 24 hours
</ToggleGroupItem>
<ToggleGroupItem value="last-7-days" aria-label="Toggle last 7 days">
Last 7 days
</ToggleGroupItem>
</ToggleGroup>
<ToggleGroup type="single" size="sm" defaultValue="top" variant="outline">
<ToggleGroupItem value="top" aria-label="Toggle top">
Top
</ToggleGroupItem>
<ToggleGroupItem value="bottom" aria-label="Toggle bottom">
Bottom
</ToggleGroupItem>
<ToggleGroupItem value="left" aria-label="Toggle left">
Left
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
Right
</ToggleGroupItem>
</ToggleGroup>
<ToggleGroup
type="single"
size="sm"
defaultValue="top"
variant="outline"
spacing={2}
>
<ToggleGroupItem value="top" aria-label="Toggle top">
Top
</ToggleGroupItem>
<ToggleGroupItem value="bottom" aria-label="Toggle bottom">
Bottom
</ToggleGroupItem>
<ToggleGroupItem value="left" aria-label="Toggle left">
Left
</ToggleGroupItem>
<ToggleGroupItem value="right" aria-label="Toggle right">
Right
</ToggleGroupItem>
</ToggleGroup>
<ToggleGroup type="multiple" variant="outline" spacing={2} size="sm">
<ToggleGroupItem
value="star"
aria-label="Toggle star"
className="data-[state=on]:bg-transparent data-[state=on]:*:[svg]:fill-yellow-500 data-[state=on]:*:[svg]:stroke-yellow-500"
>
<StarIcon />
Star
</ToggleGroupItem>
<ToggleGroupItem
value="heart"
aria-label="Toggle heart"
className="data-[state=on]:bg-transparent data-[state=on]:*:[svg]:fill-red-500 data-[state=on]:*:[svg]:stroke-red-500"
>
<HeartIcon />
Heart
</ToggleGroupItem>
<ToggleGroupItem
value="bookmark"
aria-label="Toggle bookmark"
className="data-[state=on]:bg-transparent data-[state=on]:*:[svg]:fill-blue-500 data-[state=on]:*:[svg]:stroke-blue-500"
>
<BookmarkIcon />
Bookmark
</ToggleGroupItem>
</ToggleGroup>
</div>
)
}