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

78 lines
1.9 KiB
TypeScript

"use client"
import { Area, AreaChart } from "recharts"
import { Badge } from "@/registry/bases/base/ui/badge"
import { Button } from "@/registry/bases/base/ui/button"
import {
Card,
CardAction,
CardDescription,
CardHeader,
CardTitle,
} from "@/registry/bases/base/ui/card"
import {
ChartContainer,
ChartTooltip,
ChartTooltipContent,
type ChartConfig,
} from "@/registry/bases/base/ui/chart"
// Monthly visitor data for the area chart.
const chartData = [
{ month: "January", visitors: 186 },
{ month: "February", visitors: 305 },
{ month: "March", visitors: 237 },
{ month: "April", visitors: 73 },
{ month: "May", visitors: 209 },
{ month: "June", visitors: 214 },
]
// Chart configuration for the visitors dataset.
const chartConfig = {
visitors: {
label: "Visitors",
color: "var(--chart-1)",
},
} satisfies ChartConfig
export function AnalyticsCard() {
return (
<Card className="mx-auto w-full max-w-sm data-[size=sm]:pb-0" size="sm">
<CardHeader>
<CardTitle>Analytics</CardTitle>
<CardDescription>
418.2K Visitors <Badge>+10%</Badge>
</CardDescription>
<CardAction>
<Button variant="outline" size="sm">
View Analytics
</Button>
</CardAction>
</CardHeader>
<ChartContainer config={chartConfig} className="aspect-[1/0.35]">
<AreaChart
accessibilityLayer
data={chartData}
margin={{
left: 0,
right: 0,
}}
>
<ChartTooltip
cursor={false}
content={<ChartTooltipContent indicator="line" hideLabel />}
/>
<Area
dataKey="visitors"
type="linear"
fill="var(--color-visitors)"
fillOpacity={0.4}
stroke="var(--color-visitors)"
/>
</AreaChart>
</ChartContainer>
</Card>
)
}