Files
zeekay 05fc512820 feat: sync upstream shadcn/ui — [email protected], v4 app, font system, chart improvements
Upstream sync from shadcn-ui/ui (1686 commits since last merge base).

Key changes:
- packages/shadcn upgraded to 4.1.0 (CLI font transformers, scaffold from github, chart colors)
- apps/v4 replaces apps/www as the primary docs/registry app
- Font system: 25+ heading font registries, font markers utility, @supports override
- Chart improvements: recharts v3 compat, radial chart fixes
- templates/ updated with monorepo variants (astro, vite, react-router, start)
- skills/shadcn AI skill definitions added
- deprecated/ removed (auth, auth-firebase, cli, www)

Preserved Hanzo-only paths: app/, pkg/, demo/, docs/, template/next/
2026-03-24 19:04:31 -07:00

57 lines
1.6 KiB
TypeScript

"use client"
import {
Alert,
AlertDescription,
AlertTitle,
} from "@/registry/bases/base/ui/alert"
import { Button } from "@/registry/bases/base/ui/button"
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/registry/bases/base/ui/card"
import { Field, FieldGroup, FieldLabel } from "@/registry/bases/base/ui/field"
import {
ToggleGroup,
ToggleGroupItem,
} from "@/registry/bases/base/ui/toggle-group"
import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder"
export function BookAppointment() {
return (
<Card>
<CardHeader>
<CardTitle>Book Appointment</CardTitle>
<CardDescription>Dr. Sarah Chen · Cardiology</CardDescription>
</CardHeader>
<CardContent className="flex flex-col gap-4">
<FieldGroup>
<Field>
<FieldLabel>Available on March 18, 2026</FieldLabel>
<ToggleGroup spacing={2} defaultValue={["slot-0"]}>
{["9:00 AM", "10:30 AM", "11:00 AM", "1:30 PM"].map(
(time, index) => (
<ToggleGroupItem key={time} value={`slot-${index}`}>
{time}
</ToggleGroupItem>
)
)}
</ToggleGroup>
</Field>
</FieldGroup>
<Alert>
<AlertTitle>New patient?</AlertTitle>
<AlertDescription>Please arrive 15 minutes early.</AlertDescription>
</Alert>
</CardContent>
<CardFooter>
<Button className="w-full">Book Appointment</Button>
</CardFooter>
</Card>
)
}