{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "career-stats-glass", "type": "registry:block", "title": "Career Stats Glass", "description": "Career Stats Glass component with glass effects", "dependencies": [ "lucide-react", "react" ], "registryDependencies": [ "cn" ], "files": [ { "path": "components/glass/sections/career-stats-glass.tsx", "type": "registry:component", "content": "// ========================================\n// CAREER STATS GLASS COMPONENT\n// Career statistics with expandable year cards\n// ========================================\n\nimport { forwardRef, useState } from \"react\";\nimport { TrendingUp, Code, GitPullRequest, FolderGit2 } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\nimport { GlassCard } from \"../ui/glass-card\";\nimport { YearCardGlass } from \"../composite/year-card-glass\";\nimport \"@/glass-theme.css\";\n\nexport interface YearData {\n readonly year: string | number;\n readonly emoji: string;\n readonly label: string;\n readonly commits: string;\n readonly progress: number;\n readonly prs?: number;\n readonly repos?: number;\n}\n\nexport interface CareerStatsGlassProps extends React.HTMLAttributes {\n readonly totalCommits?: number;\n readonly totalPRs?: number;\n readonly totalRepos?: number;\n readonly years?: readonly YearData[];\n}\n\nexport const CareerStatsGlass = forwardRef(\n (\n {\n totalCommits = 2242,\n totalPRs = 47,\n totalRepos = 11,\n years = [],\n className,\n ...props\n },\n ref\n ) => {\n const [expandedYear, setExpandedYear] = useState(null);\n\n const handleYearClick = (year: string | number): void => {\n setExpandedYear(expandedYear === year ? null : year);\n };\n\n return (\n \n \n \n Career Stats\n \n \n \n \n {totalCommits.toLocaleString()} commits\n \n ·\n \n \n {totalPRs} PRs\n \n ·\n \n \n {totalRepos} repos\n \n

\n
\n {years.map((y) => (\n handleYearClick(y.year)}\n onShowYear={() => {\n // This can be used to filter repos by year\n // Example: onYearFilter?.(y.year)\n }}\n />\n ))}\n
\n \n );\n }\n);\n\nCareerStatsGlass.displayName = \"CareerStatsGlass\";\n" } ], "categories": [ "sections" ] }