Spaces:
Running
Running
| 'use client'; | |
| /** | |
| * @license | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import { DiagnosisRadarChart } from './ResultCharts'; | |
| interface LevelDisplayProps { | |
| title: string; | |
| definition: string; | |
| isCurrent?: boolean; | |
| } | |
| /** | |
| * Used in ResultView to show Level definition | |
| */ | |
| export function LevelDisplay({ title, definition }: LevelDisplayProps) { | |
| return ( | |
| <div className="space-y-2 text-center"> | |
| <h3 className="text-xl font-bold text-slate-900"> | |
| {title} | |
| </h3> | |
| <p className="text-sm text-slate-600 leading-relaxed font-medium"> | |
| {definition} | |
| </p> | |
| </div> | |
| ); | |
| } | |
| interface SummaryBadgeProps { | |
| label: string; | |
| value: string | number; | |
| className?: string; | |
| } | |
| /** | |
| * Used in ResultView to show compensation summary items (User, Market Average, Gap). | |
| */ | |
| export function SummaryBadge({ label, value, className = "" }: SummaryBadgeProps) { | |
| return ( | |
| <div className={`bg-[#f4f9fb] rounded-lg sm:rounded-xl pt-1 pb-1.5 sm:py-2 px-1.5 sm:px-2 text-center space-y-0 sm:space-y-1 min-w-0 ${className}`}> | |
| <span className="text-[12px] sm:text-[12px] font-medium text-slate-500">{label}</span> | |
| <p className="text-[13px] sm:text-lg font-bold text-slate-900 break-all">{value}</p> | |
| </div> | |
| ); | |
| } | |
| interface LevelAnalysisColumnProps { | |
| levelInfo: { | |
| title: string; | |
| definition: string; | |
| guide: string; | |
| items: string; | |
| }; | |
| radarChartData: { subject: string; target: number; user: number }[]; | |
| isCurrent?: boolean; | |
| } | |
| /** | |
| * Used in ResultView to display each level's analysis column. | |
| */ | |
| export function LevelAnalysisColumn({ levelInfo, radarChartData, isCurrent }: LevelAnalysisColumnProps) { | |
| return ( | |
| <div className="p-5 sm:p-8 space-y-6 min-w-0"> | |
| <LevelDisplay | |
| title={levelInfo.title} | |
| definition={levelInfo.definition} | |
| isCurrent={isCurrent} | |
| /> | |
| <DiagnosisRadarChart data={radarChartData} /> | |
| <div className="space-y-3 text-center"> | |
| <h4 className="text-sm font-bold text-slate-900">{levelInfo.guide}</h4> | |
| <div className="p-4 bg-slate-50 rounded-xl text-sm text-slate-600 font-medium whitespace-pre-wrap min-h-[80px] flex items-center justify-center text-center break-keep"> | |
| {levelInfo.items} | |
| </div> | |
| </div> | |
| </div> | |
| ); | |
| } | |