{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "dashboard-populate", "title": "Dashboard Populate", "description": "An empty dashboard cascades to life with KPI count-ups, bar bounces, line traces, and a donut fill.", "dependencies": [ "remotion" ], "files": [ { "path": "registry/remocn/dashboard-populate/index.tsx", "content": "\"use client\";\n\nimport { interpolate, spring, useCurrentFrame, useVideoConfig } from \"remotion\";\n\nexport interface DashboardPopulateProps {\n accentColor?: string;\n kpiTarget?: number;\n speed?: number;\n className?: string;\n}\n\nconst FONT_FAMILY =\n \"var(--font-geist-sans), -apple-system, BlinkMacSystemFont, sans-serif\";\nconst MONO_FAMILY =\n \"var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace\";\n\nconst STRUCTURE_END = 15;\n\nfunction formatNumber(n: number) {\n return n.toLocaleString(\"en-US\");\n}\n\nconst BAR_VALUES = [0.55, 0.78, 0.42, 0.92, 0.66];\n\n// Hand-coded line chart points (in 0..100 viewBox space)\nconst LINE_POINTS: Array<[number, number]> = [\n [0, 70],\n [16, 55],\n [32, 62],\n [48, 38],\n [64, 45],\n [80, 22],\n [100, 12],\n];\n\nfunction buildLinePath() {\n return LINE_POINTS.map(([x, y], i) => `${i === 0 ? \"M\" : \"L\"}${x},${y}`).join(\n \" \",\n );\n}\n\nfunction Tile({\n title,\n children,\n structureOpacity,\n}: {\n title: string;\n children: React.ReactNode;\n structureOpacity: number;\n}) {\n return (\n