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

23 lines
3.0 KiB
JSON

{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sonner",
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/base-nova/ui/sonner.tsx",
"content": "\"use client\"\n\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner, type ToasterProps } from \"sonner\"\n\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: (\n <IconPlaceholder\n lucide=\"CircleCheckIcon\"\n tabler=\"IconCircleCheck\"\n hugeicons=\"CheckmarkCircle02Icon\"\n phosphor=\"CheckCircleIcon\"\n remixicon=\"RiCheckboxCircleLine\"\n className=\"size-4\"\n />\n ),\n info: (\n <IconPlaceholder\n lucide=\"InfoIcon\"\n tabler=\"IconInfoCircle\"\n hugeicons=\"InformationCircleIcon\"\n phosphor=\"InfoIcon\"\n remixicon=\"RiInformationLine\"\n className=\"size-4\"\n />\n ),\n warning: (\n <IconPlaceholder\n lucide=\"TriangleAlertIcon\"\n tabler=\"IconAlertTriangle\"\n hugeicons=\"Alert02Icon\"\n phosphor=\"WarningIcon\"\n remixicon=\"RiErrorWarningLine\"\n className=\"size-4\"\n />\n ),\n error: (\n <IconPlaceholder\n lucide=\"OctagonXIcon\"\n tabler=\"IconAlertOctagon\"\n hugeicons=\"MultiplicationSignCircleIcon\"\n phosphor=\"XCircleIcon\"\n remixicon=\"RiCloseCircleLine\"\n className=\"size-4\"\n />\n ),\n loading: (\n <IconPlaceholder\n lucide=\"Loader2Icon\"\n tabler=\"IconLoader\"\n hugeicons=\"Loading03Icon\"\n phosphor=\"SpinnerIcon\"\n remixicon=\"RiLoaderLine\"\n className=\"size-4 animate-spin\"\n />\n ),\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n toastOptions={{\n classNames: {\n toast: \"cn-toast\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n",
"type": "registry:ui"
}
],
"meta": {
"links": {
"docs": "https://ui.shadcn.com/docs/components/base/sonner",
"examples": "https://raw.githubusercontent.com/shadcn-ui/ui/refs/heads/main/apps/v4/registry/bases/base/examples/sonner-example.tsx",
"api": "https://sonner.emilkowal.ski"
}
},
"type": "registry:ui"
}