{
  "$schema": "https://uipkge.dev/schema/registry-item.json",
  "name": "performance-review-matrix",
  "title": "Performance Review Matrix",
  "type": "registry:block",
  "files": [
    {
      "path": "packages/registry-angular/blocks/performance-review-matrix/performance-review-matrix.component.ts",
      "content": "import { ChangeDetectionStrategy, Component, Input } from '@angular/core'\nimport {\n  Award,\n  Calendar,\n  CheckCircle2,\n  FileDown,\n  LucideAngularModule,\n  MessageSquareQuote,\n  Target,\n  TrendingUp,\n  Users,\n  Zap,\n} from 'lucide-angular'\nimport { cn } from '@/lib/utils'\nimport {\n  UiAccordionComponent,\n  UiAccordionContentComponent,\n  UiAccordionItemComponent,\n  UiAccordionTriggerComponent,\n} from '@/ui/accordion/accordion.component'\nimport { UiAvatarComponent, UiAvatarFallbackComponent, UiAvatarImageComponent } from '@/ui/avatar/avatar.component'\nimport { UiBadgeComponent } from '@/ui/badge/badge.component'\nimport { UiButtonComponent } from '@/ui/button/button.component'\nimport {\n  UiCardComponent,\n  UiCardContentComponent,\n  UiCardDescriptionComponent,\n  UiCardHeaderComponent,\n  UiCardTitleComponent,\n} from '@/ui/card/card.component'\nimport { UiProgressComponent } from '@/ui/progress/progress.component'\nimport { UiSeparatorComponent } from '@/ui/separator/separator.component'\nimport {\n  UiTableBodyComponent,\n  UiTableCellComponent,\n  UiTableComponent,\n  UiTableHeadComponent,\n  UiTableHeaderComponent,\n  UiTableRowComponent,\n} from '@/ui/table/table.component'\n\ninterface MetricTile {\n  title: string\n  value: string\n  subtitle: string\n  progress: number\n  icon: unknown\n}\n\ninterface AssessmentPillar {\n  title: string\n  selfScore: number\n  managerScore: number\n  delta: string\n  status: 'consensus' | 'above'\n}\n\ninterface CompetencyCategory {\n  id: string\n  title: string\n  score: string\n  ratingLabel: string\n  badgeVariant: 'success' | 'default' | 'secondary'\n  progress: number\n  criteria: string\n  managerRemarks: string\n  strengths: string[]\n}\n\ninterface OKRItem {\n  id: string\n  title: string\n  description: string\n  target: string\n  progress: number\n  status: 'Completed' | 'Exceeded' | 'On Track'\n  statusVariant: 'success' | 'default' | 'secondary'\n}\n\ninterface PeerFeedback {\n  id: string\n  quote: string\n  author: string\n  role: string\n  category: string\n}\n\nconst metricTiles: MetricTile[] = [\n  { title: 'Core Goals Achieved', value: '94%', subtitle: '+4% vs H1 target', progress: 94, icon: Target },\n  { title: 'Technical Leadership', value: '4.8 / 5.0', subtitle: 'Top 5% org percentile', progress: 96, icon: Award },\n  { title: 'Culture & Mentorship', value: '4.7 / 5.0', subtitle: '3 mentees promoted', progress: 94, icon: Users },\n  { title: 'Execution Velocity', value: '4.5 / 5.0', subtitle: '18 epics delivered', progress: 90, icon: Zap },\n]\n\nconst assessmentPillars: AssessmentPillar[] = [\n  {\n    title: 'Technical Excellence & Architecture',\n    selfScore: 4.8,\n    managerScore: 5.0,\n    delta: '+0.2 Manager higher',\n    status: 'above',\n  },\n  {\n    title: 'Collaboration & Mentorship',\n    selfScore: 4.5,\n    managerScore: 4.5,\n    delta: '0.0 Full consensus',\n    status: 'consensus',\n  },\n  {\n    title: 'Strategic Impact & Roadmapping',\n    selfScore: 4.2,\n    managerScore: 4.5,\n    delta: '+0.3 Manager higher',\n    status: 'above',\n  },\n  {\n    title: 'Execution Velocity & Delivery',\n    selfScore: 4.5,\n    managerScore: 4.5,\n    delta: '0.0 Full consensus',\n    status: 'consensus',\n  },\n]\n\nconst competencyCategories: CompetencyCategory[] = [\n  {\n    id: 'tech-excellence',\n    title: 'Technical Excellence & Architecture',\n    score: '5.0 / 5.0',\n    ratingLabel: 'Outstanding (5.0 / 5.0)',\n    badgeVariant: 'success',\n    progress: 100,\n    criteria:\n      'Architects resilient, distributed frontend systems. Sets technical standard across multiple squads and prevents architectural debt.',\n    managerRemarks:\n      'Led the migration to micro-frontends with 0 downtime. Spearheaded the core component architecture and established strict bundle size budgets across the team, lowering bundle footprint by 38%.',\n    strengths: [\n      'Zero-downtime micro-frontend rollout',\n      'Distributed caching architecture',\n      'Framework token standardization',\n    ],\n  },\n  {\n    id: 'collab-mentorship',\n    title: 'Collaboration & Mentorship',\n    score: '4.5 / 5.0',\n    ratingLabel: 'Exceeds (4.5 / 5.0)',\n    badgeVariant: 'default',\n    progress: 90,\n    criteria:\n      'Actively grows engineering talent, fosters inclusive code review practices, and unblocks cross-discipline initiatives.',\n    managerRemarks:\n      'Mentored 3 junior engineers to promotion. Fostered an open engineering culture, instituted weekly architecture reviews, and unblocked cross-functional teams across APAC and EMEA.',\n    strengths: ['Promotion sponsorship (3 engineers)', 'Weekly architecture reviews', 'Cross-squad pairing cohorts'],\n  },\n  {\n    id: 'strategic-impact',\n    title: 'Strategic Impact & Roadmapping',\n    score: '4.5 / 5.0',\n    ratingLabel: 'Exceeds (4.5 / 5.0)',\n    badgeVariant: 'default',\n    progress: 90,\n    criteria:\n      'Aligns engineering strategy with quarterly business goals. Identifies high-ROI technical initiatives and champions developer productivity.',\n    managerRemarks:\n      'Key driver of developer experience KPIs. Aligned product roadmaps with technical debt reduction, reducing build times by 42% across CI and accelerating shipping velocity.',\n    strengths: ['Developer experience KPIs', 'CI turnaround optimization (-42%)', 'Quarterly tech debt roadmap'],\n  },\n]\n\nconst okrItems: OKRItem[] = [\n  {\n    id: 'okr-1',\n    title: 'Micro-Frontend Migration Phase II',\n    description: 'Decompose legacy monolithic checkout and account dashboards into standalone remote modules',\n    target: '100% modules · 0 downtime',\n    progress: 100,\n    status: 'Completed',\n    statusVariant: 'success',\n  },\n  {\n    id: 'okr-2',\n    title: 'CI Pipeline & Build Acceleration',\n    description: 'Optimize build caching, monorepo graph execution, and parallelize end-to-end test suites',\n    target: '< 4.0m build time (Achieved 3.2m)',\n    progress: 100,\n    status: 'Exceeded',\n    statusVariant: 'success',\n  },\n  {\n    id: 'okr-3',\n    title: 'Design System Token Federation',\n    description: 'Automate Tailwind OKLCH token sync between Figma variables and registry codebases',\n    target: 'Full Vue & React parity',\n    progress: 85,\n    status: 'On Track',\n    statusVariant: 'default',\n  },\n  {\n    id: 'okr-4',\n    title: 'Staff Mentorship & Tech Talks',\n    description: 'Host bi-weekly deep dives on web performance, distributed state, and accessibility standards',\n    target: '12 sessions · 3 mentees',\n    progress: 100,\n    status: 'Completed',\n    statusVariant: 'secondary',\n  },\n]\n\nconst peerFeedbacks: PeerFeedback[] = [\n  {\n    id: 'peer-1',\n    quote:\n      'Elena’s architectural guidance transformed our release velocity. Her deep dive sessions on performance optimization helped the frontend team cut latency in half.',\n    author: 'Anonymous Peer',\n    role: 'Staff Frontend Engineer · Checkout Core',\n    category: 'Peer Review · Systems',\n  },\n  {\n    id: 'peer-2',\n    quote:\n      'Mentoring from Elena was the highlight of my year. Her patient code reviews and architecture walkthroughs gave me the confidence to lead our squad’s largest migration.',\n    author: 'Direct Mentee',\n    role: 'Software Engineer II · Design Systems',\n    category: 'Mentee Review · Growth',\n  },\n  {\n    id: 'peer-3',\n    quote:\n      'Elena bridges technical complexity with product goals effortlessly. She spots risks weeks in advance and consistently delivers robust, high-impact platform features ahead of schedule.',\n    author: 'Cross-Functional Partner',\n    role: 'Principal Product Manager · Core Platform',\n    category: 'Partner Review · Strategy',\n  },\n]\n\n/**\n * PerformanceReviewMatrix -- the React block, 1:1: employee header with overall rating,\n * executive scorecard tiles, self-vs-manager calibration pillars, a competency accordion\n * with manager remarks, an OKR progress table, and 360 peer feedback quotes.\n */\n@Component({\n  changeDetection: ChangeDetectionStrategy.Eager,\n  selector: 'ui-performance-review-matrix, [ui-performance-review-matrix]',\n  standalone: true,\n  // React renders the root <div> itself: the host stays out of layout and `class` goes to the root.\n  host: { '[attr.class]': '\"contents\"' },\n  imports: [\n    LucideAngularModule,\n    UiAccordionComponent,\n    UiAccordionContentComponent,\n    UiAccordionItemComponent,\n    UiAccordionTriggerComponent,\n    UiAvatarComponent,\n    UiAvatarFallbackComponent,\n    UiAvatarImageComponent,\n    UiBadgeComponent,\n    UiButtonComponent,\n    UiCardComponent,\n    UiCardContentComponent,\n    UiCardDescriptionComponent,\n    UiCardHeaderComponent,\n    UiCardTitleComponent,\n    UiProgressComponent,\n    UiSeparatorComponent,\n    UiTableComponent,\n    UiTableBodyComponent,\n    UiTableCellComponent,\n    UiTableHeadComponent,\n    UiTableHeaderComponent,\n    UiTableRowComponent,\n  ],\n  template: `\n    <div data-slot=\"performance-review-matrix\" [class]=\"rootClass\">\n      <div ui-card class=\"border-border bg-card shadow-xs\">\n        <div ui-card-content class=\"p-6\">\n          <div class=\"flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between\">\n            <div class=\"flex flex-col gap-4 sm:flex-row sm:items-center\">\n              <ui-avatar class=\"border-border size-16 shrink-0 border sm:size-20\">\n                <ui-avatar-image\n                  src=\"https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=200&auto=format&fit=crop&q=80\"\n                  alt=\"Elena Rostova\"\n                />\n                <ui-avatar-fallback>ER</ui-avatar-fallback>\n              </ui-avatar>\n              <div class=\"space-y-1.5\">\n                <div class=\"flex flex-wrap items-center gap-2\">\n                  <h2 class=\"text-foreground text-xl font-bold tracking-tight sm:text-2xl\">Elena Rostova</h2>\n                  <span ui-badge variant=\"secondary\" class=\"font-medium\">Senior Staff Engineer</span>\n                </div>\n                <p class=\"text-muted-foreground text-sm\">Core Platform & Architecture · Engineering</p>\n                <div class=\"flex flex-wrap items-center gap-3 pt-1\">\n                  <span ui-badge variant=\"outline\" class=\"gap-1.5 text-xs font-normal\">\n                    <lucide-icon [img]=\"Calendar\" class=\"size-3.5\" />\n                    H2 2026 Review Cycle\n                  </span>\n                  <ui-separator orientation=\"vertical\" class=\"hidden h-3.5 sm:block\" />\n                  <span class=\"text-muted-foreground text-xs\">\n                    Reviewer: <strong class=\"text-foreground font-medium\">Manager: Marcus Vance</strong>\n                  </span>\n                </div>\n              </div>\n            </div>\n            <div class=\"flex flex-wrap items-center gap-3 sm:self-start lg:self-center\">\n              <span ui-badge variant=\"success\" class=\"gap-1.5 px-3.5 py-1.5 text-sm font-semibold shadow-xs\">\n                <lucide-icon [img]=\"Award\" class=\"size-4 shrink-0\" />\n                Exceeds Expectations · 4.6 / 5.0\n              </span>\n              <button ui-button variant=\"outline\" size=\"sm\" class=\"gap-2 shadow-xs\">\n                <lucide-icon [img]=\"FileDown\" class=\"size-4\" />\n                Export PDF Report\n              </button>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n        @for (tile of metricTiles; track tile.title) {\n          <div ui-card class=\"border-border bg-card shadow-xs\">\n            <div ui-card-header class=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n              <h3 ui-card-title class=\"text-muted-foreground text-xs font-medium\">{{ tile.title }}</h3>\n              <lucide-icon [img]=\"asIcon(tile.icon)\" class=\"text-muted-foreground size-4\" />\n            </div>\n            <div ui-card-content class=\"space-y-2\">\n              <div class=\"text-foreground text-2xl font-bold tracking-tight tabular-nums sm:text-3xl\">\n                {{ tile.value }}\n              </div>\n              <div class=\"space-y-1.5\">\n                <ui-progress [value]=\"tile.progress\" class=\"h-1.5 w-full\" />\n                <div class=\"flex items-center gap-1\">\n                  <lucide-icon [img]=\"TrendingUp\" class=\"text-success size-3\" />\n                  <p class=\"text-muted-foreground text-xs\">{{ tile.subtitle }}</p>\n                </div>\n              </div>\n            </div>\n          </div>\n        }\n      </div>\n\n      <div ui-card class=\"border-border bg-card shadow-xs\">\n        <div ui-card-header class=\"flex flex-col gap-2 pb-4 sm:flex-row sm:items-center sm:justify-between\">\n          <div>\n            <h3 ui-card-title class=\"text-base font-semibold\">Self-Assessment vs Manager Assessment</h3>\n            <p ui-card-description class=\"text-xs\">Consensus and score calibration across core performance pillars.</p>\n          </div>\n          <span ui-badge variant=\"outline\" class=\"gap-1.5 text-xs font-normal\">\n            <lucide-icon [img]=\"CheckCircle2\" class=\"text-success size-3.5\" />\n            96% Consensus Index\n          </span>\n        </div>\n        <div ui-card-content class=\"space-y-4\">\n          <div class=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n            @for (pillar of assessmentPillars; track pillar.title) {\n              <div class=\"bg-muted/40 border-border space-y-2.5 rounded-lg border p-3.5\">\n                <div class=\"flex items-start justify-between gap-2\">\n                  <span class=\"text-foreground line-clamp-1 text-xs font-medium\">{{ pillar.title }}</span>\n                  <span\n                    ui-badge\n                    [variant]=\"pillar.status === 'consensus' ? 'secondary' : 'success'\"\n                    class=\"px-1.5 py-0 text-xs font-normal\"\n                  >\n                    {{ pillar.delta }}\n                  </span>\n                </div>\n                <div class=\"space-y-1.5\">\n                  <div class=\"flex items-center justify-between text-xs\">\n                    <span class=\"text-muted-foreground\">Self:</span>\n                    <span class=\"text-foreground font-semibold tabular-nums\">{{ pillar.selfScore }} / 5.0</span>\n                  </div>\n                  <ui-progress [value]=\"(pillar.selfScore / 5) * 100\" class=\"h-1.5 w-full\" />\n                </div>\n                <div class=\"space-y-1.5\">\n                  <div class=\"flex items-center justify-between text-xs\">\n                    <span class=\"text-muted-foreground\">Manager:</span>\n                    <span class=\"text-foreground font-semibold tabular-nums\">{{ pillar.managerScore }} / 5.0</span>\n                  </div>\n                  <ui-progress [value]=\"(pillar.managerScore / 5) * 100\" class=\"h-1.5 w-full\" />\n                </div>\n              </div>\n            }\n          </div>\n        </div>\n      </div>\n\n      <div ui-card class=\"border-border bg-card shadow-xs\">\n        <div ui-card-header class=\"pb-4\">\n          <h3 ui-card-title class=\"text-base font-semibold\">Competency Breakdown</h3>\n          <p ui-card-description class=\"text-xs\">\n            Detailed behavioral criteria, manager qualitative remarks, and observable strengths.\n          </p>\n        </div>\n        <div ui-card-content>\n          <ui-accordion type=\"multiple\" [defaultValue]=\"openCompetencies\" class=\"space-y-3\">\n            @for (category of competencyCategories; track category.id) {\n              <ui-accordion-item [value]=\"category.id\" class=\"border-border bg-card overflow-hidden rounded-lg border\">\n                <button ui-accordion-trigger class=\"px-5 py-4 hover:no-underline\">\n                  <div class=\"flex w-full flex-wrap items-center justify-between gap-3 pr-2 text-left\">\n                    <div class=\"space-y-0.5\">\n                      <span class=\"text-foreground text-sm font-semibold\">{{ category.title }}</span>\n                      <p class=\"text-muted-foreground line-clamp-1 text-xs\">{{ category.criteria }}</p>\n                    </div>\n                    <div class=\"flex flex-wrap items-center gap-3\">\n                      <span class=\"text-foreground shrink-0 text-xs font-semibold tabular-nums\">{{\n                        category.score\n                      }}</span>\n                      <span ui-badge [variant]=\"category.badgeVariant\" class=\"text-xs\">{{ category.ratingLabel }}</span>\n                    </div>\n                  </div>\n                </button>\n                <ui-accordion-content class=\"px-5 pt-0 pb-5\">\n                  <div class=\"border-border/60 space-y-4 border-t pt-4\">\n                    <div class=\"space-y-1.5\">\n                      <div class=\"flex items-center justify-between text-xs\">\n                        <span class=\"text-muted-foreground font-medium\">Competency Mastery</span>\n                        <span class=\"text-foreground font-semibold tabular-nums\">{{ category.progress }}%</span>\n                      </div>\n                      <ui-progress [value]=\"category.progress\" class=\"h-2 w-full\" />\n                    </div>\n                    <div class=\"bg-muted/40 border-border/80 space-y-1.5 rounded-md border p-3.5\">\n                      <div class=\"flex items-center gap-1.5\">\n                        <lucide-icon [img]=\"MessageSquareQuote\" class=\"text-primary size-4 shrink-0\" />\n                        <span class=\"text-foreground text-xs font-medium\">Manager Remarks</span>\n                      </div>\n                      <p class=\"text-muted-foreground text-xs leading-relaxed\">{{ category.managerRemarks }}</p>\n                    </div>\n                    <div class=\"space-y-2\">\n                      <span class=\"text-muted-foreground text-xs font-medium\">Key Demonstrated Strengths</span>\n                      <div class=\"flex flex-wrap gap-1.5\">\n                        @for (strength of category.strengths; track strength) {\n                          <span ui-badge variant=\"outline\" class=\"text-xs font-normal\">{{ strength }}</span>\n                        }\n                      </div>\n                    </div>\n                  </div>\n                </ui-accordion-content>\n              </ui-accordion-item>\n            }\n          </ui-accordion>\n        </div>\n      </div>\n\n      <div ui-card class=\"border-border bg-card shadow-xs\">\n        <div ui-card-header class=\"pb-4\">\n          <h3 ui-card-title class=\"text-base font-semibold\">Goals & Objectives Progress</h3>\n          <p ui-card-description class=\"text-xs\">\n            Evaluation of quarterly OKRs, measurable deliverables, and milestone completion.\n          </p>\n        </div>\n        <div ui-card-content>\n          <div class=\"border-border overflow-hidden rounded-lg border\">\n            <div class=\"overflow-x-auto\">\n              <table ui-table>\n                <thead ui-table-header class=\"bg-muted/50\">\n                  <tr ui-table-row>\n                    <th ui-table-head class=\"text-xs\">Objective & Key Result</th>\n                    <th ui-table-head class=\"text-xs\">Target Metric</th>\n                    <th ui-table-head class=\"w-44 text-xs\">Progress</th>\n                    <th ui-table-head class=\"text-right text-xs\">Status</th>\n                  </tr>\n                </thead>\n                <tbody ui-table-body>\n                  @for (okr of okrItems; track okr.id) {\n                    <tr ui-table-row>\n                      <td ui-table-cell class=\"py-3\">\n                        <div class=\"space-y-0.5\">\n                          <p class=\"text-foreground text-sm font-medium\">{{ okr.title }}</p>\n                          <p class=\"text-muted-foreground text-xs\">{{ okr.description }}</p>\n                        </div>\n                      </td>\n                      <td ui-table-cell class=\"text-muted-foreground py-3 text-xs tabular-nums\">{{ okr.target }}</td>\n                      <td ui-table-cell class=\"py-3\">\n                        <div class=\"flex items-center gap-2\">\n                          <ui-progress [value]=\"okr.progress\" class=\"h-2 w-24\" />\n                          <span class=\"text-muted-foreground text-xs font-medium tabular-nums\"\n                            >{{ okr.progress }}%</span\n                          >\n                        </div>\n                      </td>\n                      <td ui-table-cell class=\"py-3 text-right\">\n                        <span ui-badge [variant]=\"okr.statusVariant\" class=\"text-xs\">{{ okr.status }}</span>\n                      </td>\n                    </tr>\n                  }\n                </tbody>\n              </table>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div ui-card class=\"border-border bg-card shadow-xs\">\n        <div ui-card-header class=\"pb-4\">\n          <h3 ui-card-title class=\"text-base font-semibold\">360° Peer Feedback</h3>\n          <p ui-card-description class=\"text-xs\">\n            Synthesized qualitative reviews from cross-functional peers, mentees, and collaborators.\n          </p>\n        </div>\n        <div ui-card-content>\n          <div class=\"grid grid-cols-1 gap-4 lg:grid-cols-3\">\n            @for (peer of peerFeedbacks; track peer.id) {\n              <div class=\"bg-muted/30 border-border flex flex-col justify-between space-y-3 rounded-lg border p-4.5\">\n                <div class=\"space-y-2\">\n                  <span ui-badge variant=\"outline\" class=\"text-xs font-normal\">{{ peer.category }}</span>\n                  <p class=\"text-foreground text-xs leading-relaxed italic\">“{{ peer.quote }}”</p>\n                </div>\n                <div class=\"border-border/60 border-t pt-3\">\n                  <p class=\"text-foreground text-xs font-semibold\">{{ peer.author }}</p>\n                  <p class=\"text-muted-foreground text-xs\">{{ peer.role }}</p>\n                </div>\n              </div>\n            }\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n})\nexport class UiPerformanceReviewMatrixComponent {\n  protected readonly Award = Award\n  protected readonly Calendar = Calendar\n  protected readonly CheckCircle2 = CheckCircle2\n  protected readonly FileDown = FileDown\n  protected readonly MessageSquareQuote = MessageSquareQuote\n  protected readonly TrendingUp = TrendingUp\n\n  @Input('class') className?: string\n\n  protected readonly metricTiles = metricTiles\n  protected readonly assessmentPillars = assessmentPillars\n  protected readonly competencyCategories = competencyCategories\n  protected readonly okrItems = okrItems\n  protected readonly peerFeedbacks = peerFeedbacks\n  protected readonly openCompetencies = ['tech-excellence', 'collab-mentorship', 'strategic-impact']\n\n  get rootClass(): string {\n    return cn('w-full space-y-6', this.className)\n  }\n\n  asIcon(icon: unknown): never {\n    return icon as never\n  }\n}\n",
      "type": "registry:block",
      "target": "~/src/app/components/blocks/performance-review-matrix/performance-review-matrix.component.ts"
    },
    {
      "path": "packages/registry-angular/blocks/performance-review-matrix/index.ts",
      "content": "export { UiPerformanceReviewMatrixComponent } from './performance-review-matrix.component'\n",
      "type": "registry:block",
      "target": "~/src/app/components/blocks/performance-review-matrix/index.ts"
    }
  ],
  "dependencies": [
    "lucide-angular"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://uipkge.dev/r/angular/accordion.json",
    "https://uipkge.dev/r/angular/avatar.json",
    "https://uipkge.dev/r/angular/badge.json",
    "https://uipkge.dev/r/angular/button.json",
    "https://uipkge.dev/r/angular/card.json",
    "https://uipkge.dev/r/angular/progress.json",
    "https://uipkge.dev/r/angular/separator.json",
    "https://uipkge.dev/r/angular/table.json"
  ],
  "description": "360-degree employee performance review scorecard and competency matrix: executive metrics, self vs manager rating comparison, detailed competency accordion with manager remarks, OKR progress table, and peer feedback quotes.",
  "categories": [
    "hr",
    "app"
  ]
}