@burdenoff/microfe-crewfoundry 2026.1030.1 → 2026.1030.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"HrEmployeeProfilePagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HrEmployeeProfilePagePage.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n PagePurpose,\n Spinner,\n} from '@burdenoff/fe-libs/ui';\nimport { useGlobalUi } from '@burdenoff/fe-libs/shared/providers/shell';\nimport {\n ArrowLeft,\n BadgeCheck,\n CalendarDays,\n FileText,\n Mail,\n MapPin,\n Phone,\n Plus,\n Trash2,\n} from 'lucide-react';\nimport { useNavigate, useSearchParams } from 'react-router';\nimport { useCrewFoundryStore, type Employee } from '../store/crewfoundryStore';\nimport { formatEnumLabel } from '../utils/formatEnumLabel';\nimport {\n AvatarStack,\n ProgressRing,\n SegmentedTabs,\n Timeline,\n type SegmentedTab,\n type TimelineItem,\n type TimelineTone,\n} from '../components/viz';\nimport { AttachDocumentDialog } from '../components/forms/AttachDocumentDialog';\nimport { ConfirmDialog } from '../components/forms/ConfirmDialog';\n\ntype ProfileTab = 'overview' | 'skills' | 'documents' | 'performance' | 'activity';\n\nconst PROFILE_TABS: SegmentedTab[] = [\n { id: 'overview', label: 'Overview' },\n { id: 'skills', label: 'Skills' },\n { id: 'documents', label: 'Documents' },\n { id: 'performance', label: 'Performance' },\n { id: 'activity', label: 'Activity' },\n];\n\nconst SALARY_BANDS: { min: number; max: number }[] = [\n { min: 0, max: 60_000 },\n { min: 60_000, max: 90_000 },\n { min: 90_000, max: 120_000 },\n { min: 120_000, max: 150_000 },\n { min: 150_000, max: 200_000 },\n { min: 200_000, max: Number.POSITIVE_INFINITY },\n];\n\nfunction salaryBand(salary: number): string {\n const index = SALARY_BANDS.findIndex((band) => salary >= band.min && salary < band.max);\n const safeIndex = index === -1 ? SALARY_BANDS.length - 1 : index;\n const band = SALARY_BANDS[safeIndex];\n const low = `$${Math.round(band.min / 1000)}k`;\n const high = band.max === Number.POSITIVE_INFINITY ? '+' : `–$${Math.round(band.max / 1000)}k`;\n return `Band ${safeIndex + 1} · ${low}${high}`;\n}\n\nfunction tenure(startDate: string): string {\n const start = new Date(startDate);\n if (Number.isNaN(start.getTime())) {\n return '—';\n }\n const now = new Date();\n let months = (now.getFullYear() - start.getFullYear()) * 12 + (now.getMonth() - start.getMonth());\n if (now.getDate() < start.getDate()) {\n months -= 1;\n }\n if (months < 0) {\n months = 0;\n }\n const years = Math.floor(months / 12);\n const remMonths = months % 12;\n const parts: string[] = [];\n if (years > 0) {\n parts.push(`${years} year${years === 1 ? '' : 's'}`);\n }\n parts.push(`${remMonths} month${remMonths === 1 ? '' : 's'}`);\n return parts.join(', ');\n}\n\nfunction performanceLabel(score: number): string {\n if (score >= 4.5) return 'Excellent';\n if (score >= 3.5) return 'Strong';\n if (score >= 2.5) return 'Meets expectations';\n return 'Needs improvement';\n}\n\nfunction statusBadgeVariant(status: Employee['status']): 'default' | 'secondary' | 'destructive' {\n if (status === 'active') return 'default';\n if (status === 'on_leave') return 'secondary';\n return 'destructive';\n}\n\nfunction ContactChip({ icon, children }: { icon: ReactNode; children: ReactNode }) {\n return (\n <span className=\"inline-flex items-center gap-1.5 rounded-full border border-border-subtle bg-bg-surface px-3 py-1 text-xs text-text-secondary\">\n <span className=\"text-text-muted\">{icon}</span>\n <span className=\"truncate\">{children}</span>\n </span>\n );\n}\n\nfunction DetailRow({ label, children }: { label: string; children: ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-4 py-2 text-sm\">\n <span className=\"text-text-secondary\">{label}</span>\n <span className=\"text-right font-medium text-text-primary\">{children}</span>\n </div>\n );\n}\n\ninterface ActivitySignal {\n ts: number;\n item: TimelineItem;\n}\n\nfunction buildActivity(\n employee: Employee,\n timeEntries: ReturnType<typeof useCrewFoundryStore.getState>['timeEntries'],\n leaveRequests: ReturnType<typeof useCrewFoundryStore.getState>['leaveRequests'],\n payrollRecords: ReturnType<typeof useCrewFoundryStore.getState>['payrollRecords'],\n projects: ReturnType<typeof useCrewFoundryStore.getState>['projects']\n): TimelineItem[] {\n const signals: ActivitySignal[] = [];\n const toTs = (value: string): number => {\n const parsed = new Date(value).getTime();\n return Number.isNaN(parsed) ? 0 : parsed;\n };\n\n for (const project of projects.filter((p) => p.managerId === employee.id)) {\n signals.push({\n ts: toTs(project.startDate),\n item: {\n id: `project-${project.id}`,\n title: `Leads project “${project.name}”`,\n meta: `${formatEnumLabel(project.status)} · ${project.progress}% complete`,\n time: project.startDate,\n tone: 'info',\n },\n });\n }\n\n for (const leave of leaveRequests.filter((l) => l.employeeId === employee.id)) {\n const tone: TimelineTone =\n leave.status === 'approved'\n ? 'success'\n : leave.status === 'rejected'\n ? 'danger'\n : leave.status === 'pending'\n ? 'warning'\n : 'muted';\n signals.push({\n ts: toTs(leave.startDate),\n item: {\n id: `leave-${leave.id}`,\n title: `${formatEnumLabel(leave.type)} leave — ${formatEnumLabel(leave.status)}`,\n meta: `${leave.startDate} → ${leave.endDate} · ${leave.days} day${leave.days === 1 ? '' : 's'}`,\n time: leave.startDate,\n tone,\n },\n });\n }\n\n for (const record of payrollRecords.filter((r) => r.employeeId === employee.id)) {\n signals.push({\n ts: toTs(record.payDate),\n item: {\n id: `payroll-${record.id}`,\n title: `Payroll · ${record.period}`,\n meta: `Net $${record.netPay.toLocaleString()} (${formatEnumLabel(record.status)})`,\n time: record.payDate,\n tone: record.status === 'paid' ? 'success' : 'muted',\n },\n });\n }\n\n for (const entry of timeEntries.filter((t) => t.employeeId === employee.id)) {\n signals.push({\n ts: toTs(entry.date),\n item: {\n id: `time-${entry.id}`,\n title: `Logged ${entry.totalHours}h on ${entry.project || 'work'}`,\n meta: formatEnumLabel(entry.status),\n time: entry.date,\n tone: 'accent',\n },\n });\n }\n\n return signals\n .sort((a, b) => b.ts - a.ts)\n .slice(0, 14)\n .map((signal) => signal.item);\n}\n\nexport function HrEmployeeProfilePagePage() {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const employees = useCrewFoundryStore((state) => state.employees);\n const timeEntries = useCrewFoundryStore((state) => state.timeEntries);\n const leaveRequests = useCrewFoundryStore((state) => state.leaveRequests);\n const payrollRecords = useCrewFoundryStore((state) => state.payrollRecords);\n const projects = useCrewFoundryStore((state) => state.projects);\n const initialized = useCrewFoundryStore((state) => state.initialized);\n const employeeDocuments = useCrewFoundryStore((state) => state.employeeDocuments);\n const fetchEmployeeDocuments = useCrewFoundryStore((state) => state.fetchEmployeeDocuments);\n const uploadEmployeeDocument = useCrewFoundryStore((state) => state.uploadEmployeeDocument);\n const detachEmployeeDocument = useCrewFoundryStore((state) => state.detachEmployeeDocument);\n const { showToast } = useGlobalUi();\n const [tab, setTab] = useState<ProfileTab>('overview');\n const [attachDialogOpen, setAttachDialogOpen] = useState(false);\n const [removeDocumentId, setRemoveDocumentId] = useState<string | null>(null);\n // A ref (not state) on purpose: this only gates a fetch side-effect and\n // must never itself trigger a re-render, which is exactly what a `useState`\n // setter called synchronously inside an effect would do.\n const documentsLoadedForRef = useRef<string | null>(null);\n\n const id = searchParams.get('id');\n const employee = employees.find((candidate) => candidate.id === id);\n\n // Lazy-load this employee's documents the first time the Documents tab is\n // opened (documents aren't part of the crewfoundryBootstrap firehose).\n useEffect(() => {\n if (tab === 'documents' && employee && documentsLoadedForRef.current !== employee.id) {\n documentsLoadedForRef.current = employee.id;\n fetchEmployeeDocuments(employee.id).catch((error: unknown) => {\n showToast(error instanceof Error ? error.message : 'Unable to load documents', 'error');\n });\n }\n }, [tab, employee, fetchEmployeeDocuments, showToast]);\n\n if (!initialized && !employee) {\n return (\n <div className=\"flex min-h-[60vh] items-center justify-center p-6\">\n <Spinner size=\"lg\" />\n </div>\n );\n }\n\n if (!employee) {\n return (\n <div className=\"space-y-4 p-6\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate('../hr/employees-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n Back to directory\n </Button>\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Employee not found\"\n description=\"This profile is no longer available or the link is out of date.\"\n />\n </div>\n );\n }\n\n const manager = employee.managerId\n ? employees.find((candidate) => candidate.id === employee.managerId)\n : undefined;\n const managerName = manager\n ? `${manager.firstName} ${manager.lastName}`\n : employee.managerId\n ? 'Assigned'\n : 'No manager';\n const fullName = `${employee.firstName} ${employee.lastName}`;\n const activity = buildActivity(employee, timeEntries, leaveRequests, payrollRecords, projects);\n\n return (\n <div className=\"space-y-6 p-6\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate('../hr/employees-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n Back to directory\n </Button>\n\n {/* Profile header */}\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam\">\n <CardContent className=\"p-6\">\n <div className=\"flex flex-col gap-5 sm:flex-row sm:items-start\">\n <AvatarStack\n people={[{ name: fullName, avatarUrl: employee.avatar }]}\n max={1}\n size={72}\n />\n <div className=\"flex-1 space-y-3\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{fullName}</GradientText>\n </h1>\n <Badge variant={statusBadgeVariant(employee.status)}>\n {formatEnumLabel(employee.status)}\n </Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">\n {employee.position} · {employee.department}\n </p>\n <div className=\"flex flex-wrap gap-2\">\n <ContactChip icon={<Mail className=\"h-3.5 w-3.5\" />}>{employee.email}</ContactChip>\n <ContactChip icon={<Phone className=\"h-3.5 w-3.5\" />}>{employee.phone}</ContactChip>\n <ContactChip icon={<MapPin className=\"h-3.5 w-3.5\" />}>\n {employee.location}\n </ContactChip>\n <ContactChip icon={<CalendarDays className=\"h-3.5 w-3.5\" />}>\n Joined {employee.startDate}\n </ContactChip>\n </div>\n </div>\n </div>\n </CardContent>\n </GlassCard>\n\n <PagePurpose>\n A single view of one team member — their role, tenure, performance, and recent activity — so\n managers and partners have the full context in one place.\n </PagePurpose>\n\n <SegmentedTabs\n tabs={PROFILE_TABS}\n value={tab}\n onChange={(next) => setTab(next as ProfileTab)}\n aria-label=\"Employee profile sections\"\n />\n\n {tab === 'overview' ? (\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Details</CardTitle>\n </CardHeader>\n <CardContent className=\"divide-y divide-border-subtle pt-0\">\n <DetailRow label=\"Manager\">\n <span className=\"inline-flex items-center gap-2\">\n {manager ? (\n <AvatarStack\n people={[{ name: managerName, avatarUrl: manager.avatar }]}\n max={1}\n size={24}\n />\n ) : null}\n {managerName}\n </span>\n </DetailRow>\n <DetailRow label=\"Employment type\">{formatEnumLabel(employee.type)}</DetailRow>\n <DetailRow label=\"Salary band\">{salaryBand(employee.salary)}</DetailRow>\n <DetailRow label=\"Tenure\">{tenure(employee.startDate)}</DetailRow>\n <DetailRow label=\"Employee ID\">\n <span className=\"break-all font-mono text-xs\">{employee.id}</span>\n </DetailRow>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Performance</CardTitle>\n </CardHeader>\n <CardContent className=\"flex items-center gap-6 pt-0\">\n <ProgressRing\n value={employee.performanceScore}\n max={5}\n label={employee.performanceScore.toFixed(1)}\n caption=\"/ 5\"\n />\n <div className=\"space-y-1\">\n <p className=\"text-lg font-semibold text-text-primary\">\n {performanceLabel(employee.performanceScore)}\n </p>\n <p className=\"text-sm text-text-secondary\">\n Latest review score of {employee.performanceScore.toFixed(1)} out of 5.\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n ) : null}\n\n {tab === 'skills' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Skills</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {employee.skills.length > 0 ? (\n // Real skill tags from the employee record. Rendered as chips (not\n // proficiency bars) because the backend stores tags, not levels —\n // inventing a proficiency % would fabricate data.\n <div className=\"flex flex-wrap gap-2\">\n {employee.skills.map((skill) => (\n <Badge key={skill} variant=\"secondary\" className=\"text-xs\">\n {skill}\n </Badge>\n ))}\n </div>\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No skills recorded\"\n description=\"This team member has no skills captured yet. Add skills from the employee directory to surface them here.\"\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'documents' ? (\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <CardTitle className=\"text-base\">Documents</CardTitle>\n <Button size=\"sm\" onClick={() => setAttachDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-3.5 w-3.5\" />\n Attach document\n </Button>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {employeeDocuments.length > 0 ? (\n <div className=\"space-y-2\">\n {employeeDocuments.map((doc) => (\n <div\n key={doc.id}\n className=\"flex items-center justify-between gap-3 rounded-input border border-border-subtle bg-bg-surface px-3 py-2.5\"\n >\n <div className=\"flex min-w-0 items-center gap-3\">\n <FileText className=\"h-4 w-4 shrink-0 text-text-muted\" />\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-text-primary\">\n {doc.title}\n </p>\n <p className=\"text-xs text-text-muted\">\n {doc.category ? `${doc.category} · ` : ''}\n Uploaded {doc.uploadedAt.slice(0, 10)}\n </p>\n </div>\n </div>\n <button\n type=\"button\"\n aria-label={`Remove document \"${doc.title}\"`}\n className=\"shrink-0 text-text-muted hover:text-status-error-fg\"\n onClick={() => setRemoveDocumentId(doc.id)}\n >\n <Trash2 className=\"h-4 w-4\" />\n </button>\n </div>\n ))}\n </div>\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No documents attached\"\n description=\"Offer letters, contracts, and compliance documents attached to this profile will appear here.\"\n action={\n <Button size=\"sm\" onClick={() => setAttachDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-3.5 w-3.5\" />\n Attach document\n </Button>\n }\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'performance' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Performance</CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-col items-center gap-6 pt-0 sm:flex-row sm:items-center\">\n <ProgressRing\n value={employee.performanceScore}\n max={5}\n size={160}\n label={employee.performanceScore.toFixed(1)}\n caption=\"/ 5\"\n />\n <div className=\"flex-1 space-y-2\">\n <Badge variant=\"secondary\" className=\"gap-1\">\n <BadgeCheck className=\"h-3.5 w-3.5\" />\n {performanceLabel(employee.performanceScore)}\n </Badge>\n <p className=\"text-sm text-text-secondary\">\n {fullName} holds a review score of {employee.performanceScore.toFixed(1)} out of 5.\n </p>\n {/* needs backend fields: goals-met %, peer feedback, manager feedback — only a single\n performanceScore is modelled today, so sub-metrics are intentionally omitted rather\n than invented. */}\n <p className=\"text-xs text-text-muted\">\n Goal, peer, and manager sub-scores will appear here once captured on the review\n record.\n </p>\n </div>\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'activity' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Recent activity</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {activity.length > 0 ? (\n <Timeline items={activity} />\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No activity yet\"\n description=\"Time logs, leave, payroll, and project assignments for this employee will show up here.\"\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n <AttachDocumentDialog\n open={attachDialogOpen}\n onOpenChange={setAttachDialogOpen}\n onUpload={({ file, title, category }) =>\n uploadEmployeeDocument({ employeeId: employee.id, file, title, category })\n }\n />\n\n <ConfirmDialog\n open={removeDocumentId !== null}\n onOpenChange={(open) => {\n if (!open) setRemoveDocumentId(null);\n }}\n title=\"Remove document?\"\n description=\"This unlinks the document from this employee's profile. The file itself stays in the workspace Files library.\"\n confirmLabel=\"Remove\"\n destructive\n onConfirm={async () => {\n if (removeDocumentId) {\n await detachEmployeeDocument(removeDocumentId);\n setRemoveDocumentId(null);\n }\n }}\n />\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"HrEmployeeProfilePagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/HrEmployeeProfilePagePage.tsx"],"sourcesContent":["import { useEffect, useRef, useState, type ReactNode } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n GlassCard,\n GradientText,\n IllustratedEmptyState,\n PagePurpose,\n Spinner,\n} from '@burdenoff/fe-libs/ui';\nimport { useGlobalUi } from '@burdenoff/fe-libs/shared/providers/shell';\nimport {\n ArrowLeft,\n BadgeCheck,\n CalendarDays,\n FileText,\n Mail,\n MapPin,\n Phone,\n Plus,\n Trash2,\n} from 'lucide-react';\nimport { useNavigate, useSearchParams } from 'react-router';\nimport { useCrewFoundryStore, type Employee } from '../store/crewfoundryStore';\nimport { formatEnumLabel } from '../utils/formatEnumLabel';\nimport {\n AvatarStack,\n ProgressRing,\n SegmentedTabs,\n Timeline,\n type SegmentedTab,\n type TimelineItem,\n type TimelineTone,\n} from '../components/viz';\nimport { AttachDocumentDialog } from '../components/forms/AttachDocumentDialog';\nimport { ConfirmDialog } from '../components/forms/ConfirmDialog';\nimport { EmployeeSkillsPanel } from '../components/EmployeeSkillsPanel';\n\ntype ProfileTab = 'overview' | 'skills' | 'documents' | 'performance' | 'activity';\n\nconst PROFILE_TABS: SegmentedTab[] = [\n { id: 'overview', label: 'Overview' },\n { id: 'skills', label: 'Skills' },\n { id: 'documents', label: 'Documents' },\n { id: 'performance', label: 'Performance' },\n { id: 'activity', label: 'Activity' },\n];\n\nconst SALARY_BANDS: { min: number; max: number }[] = [\n { min: 0, max: 60_000 },\n { min: 60_000, max: 90_000 },\n { min: 90_000, max: 120_000 },\n { min: 120_000, max: 150_000 },\n { min: 150_000, max: 200_000 },\n { min: 200_000, max: Number.POSITIVE_INFINITY },\n];\n\nfunction salaryBand(salary: number): string {\n const index = SALARY_BANDS.findIndex((band) => salary >= band.min && salary < band.max);\n const safeIndex = index === -1 ? SALARY_BANDS.length - 1 : index;\n const band = SALARY_BANDS[safeIndex];\n const low = `$${Math.round(band.min / 1000)}k`;\n const high = band.max === Number.POSITIVE_INFINITY ? '+' : `–$${Math.round(band.max / 1000)}k`;\n return `Band ${safeIndex + 1} · ${low}${high}`;\n}\n\nfunction tenure(startDate: string): string {\n const start = new Date(startDate);\n if (Number.isNaN(start.getTime())) {\n return '—';\n }\n const now = new Date();\n let months = (now.getFullYear() - start.getFullYear()) * 12 + (now.getMonth() - start.getMonth());\n if (now.getDate() < start.getDate()) {\n months -= 1;\n }\n if (months < 0) {\n months = 0;\n }\n const years = Math.floor(months / 12);\n const remMonths = months % 12;\n const parts: string[] = [];\n if (years > 0) {\n parts.push(`${years} year${years === 1 ? '' : 's'}`);\n }\n parts.push(`${remMonths} month${remMonths === 1 ? '' : 's'}`);\n return parts.join(', ');\n}\n\nfunction performanceLabel(score: number): string {\n if (score >= 4.5) return 'Excellent';\n if (score >= 3.5) return 'Strong';\n if (score >= 2.5) return 'Meets expectations';\n return 'Needs improvement';\n}\n\nfunction statusBadgeVariant(status: Employee['status']): 'default' | 'secondary' | 'destructive' {\n if (status === 'active') return 'default';\n if (status === 'on_leave') return 'secondary';\n return 'destructive';\n}\n\nfunction ContactChip({ icon, children }: { icon: ReactNode; children: ReactNode }) {\n return (\n <span className=\"inline-flex items-center gap-1.5 rounded-full border border-border-subtle bg-bg-surface px-3 py-1 text-xs text-text-secondary\">\n <span className=\"text-text-muted\">{icon}</span>\n <span className=\"truncate\">{children}</span>\n </span>\n );\n}\n\nfunction DetailRow({ label, children }: { label: string; children: ReactNode }) {\n return (\n <div className=\"flex items-start justify-between gap-4 py-2 text-sm\">\n <span className=\"text-text-secondary\">{label}</span>\n <span className=\"text-right font-medium text-text-primary\">{children}</span>\n </div>\n );\n}\n\ninterface ActivitySignal {\n ts: number;\n item: TimelineItem;\n}\n\nfunction buildActivity(\n employee: Employee,\n timeEntries: ReturnType<typeof useCrewFoundryStore.getState>['timeEntries'],\n leaveRequests: ReturnType<typeof useCrewFoundryStore.getState>['leaveRequests'],\n payrollRecords: ReturnType<typeof useCrewFoundryStore.getState>['payrollRecords'],\n projects: ReturnType<typeof useCrewFoundryStore.getState>['projects']\n): TimelineItem[] {\n const signals: ActivitySignal[] = [];\n const toTs = (value: string): number => {\n const parsed = new Date(value).getTime();\n return Number.isNaN(parsed) ? 0 : parsed;\n };\n\n for (const project of projects.filter((p) => p.managerId === employee.id)) {\n signals.push({\n ts: toTs(project.startDate),\n item: {\n id: `project-${project.id}`,\n title: `Leads project “${project.name}”`,\n meta: `${formatEnumLabel(project.status)} · ${project.progress}% complete`,\n time: project.startDate,\n tone: 'info',\n },\n });\n }\n\n for (const leave of leaveRequests.filter((l) => l.employeeId === employee.id)) {\n const tone: TimelineTone =\n leave.status === 'approved'\n ? 'success'\n : leave.status === 'rejected'\n ? 'danger'\n : leave.status === 'pending'\n ? 'warning'\n : 'muted';\n signals.push({\n ts: toTs(leave.startDate),\n item: {\n id: `leave-${leave.id}`,\n title: `${formatEnumLabel(leave.type)} leave — ${formatEnumLabel(leave.status)}`,\n meta: `${leave.startDate} → ${leave.endDate} · ${leave.days} day${leave.days === 1 ? '' : 's'}`,\n time: leave.startDate,\n tone,\n },\n });\n }\n\n for (const record of payrollRecords.filter((r) => r.employeeId === employee.id)) {\n signals.push({\n ts: toTs(record.payDate),\n item: {\n id: `payroll-${record.id}`,\n title: `Payroll · ${record.period}`,\n meta: `Net $${record.netPay.toLocaleString()} (${formatEnumLabel(record.status)})`,\n time: record.payDate,\n tone: record.status === 'paid' ? 'success' : 'muted',\n },\n });\n }\n\n for (const entry of timeEntries.filter((t) => t.employeeId === employee.id)) {\n signals.push({\n ts: toTs(entry.date),\n item: {\n id: `time-${entry.id}`,\n title: `Logged ${entry.totalHours}h on ${entry.project || 'work'}`,\n meta: formatEnumLabel(entry.status),\n time: entry.date,\n tone: 'accent',\n },\n });\n }\n\n return signals\n .sort((a, b) => b.ts - a.ts)\n .slice(0, 14)\n .map((signal) => signal.item);\n}\n\nexport function HrEmployeeProfilePagePage() {\n const navigate = useNavigate();\n const [searchParams] = useSearchParams();\n const employees = useCrewFoundryStore((state) => state.employees);\n const timeEntries = useCrewFoundryStore((state) => state.timeEntries);\n const leaveRequests = useCrewFoundryStore((state) => state.leaveRequests);\n const payrollRecords = useCrewFoundryStore((state) => state.payrollRecords);\n const projects = useCrewFoundryStore((state) => state.projects);\n const initialized = useCrewFoundryStore((state) => state.initialized);\n const employeeDocuments = useCrewFoundryStore((state) => state.employeeDocuments);\n const fetchEmployeeDocuments = useCrewFoundryStore((state) => state.fetchEmployeeDocuments);\n const uploadEmployeeDocument = useCrewFoundryStore((state) => state.uploadEmployeeDocument);\n const detachEmployeeDocument = useCrewFoundryStore((state) => state.detachEmployeeDocument);\n const { showToast } = useGlobalUi();\n const [tab, setTab] = useState<ProfileTab>('overview');\n const [attachDialogOpen, setAttachDialogOpen] = useState(false);\n const [removeDocumentId, setRemoveDocumentId] = useState<string | null>(null);\n // A ref (not state) on purpose: this only gates a fetch side-effect and\n // must never itself trigger a re-render, which is exactly what a `useState`\n // setter called synchronously inside an effect would do.\n const documentsLoadedForRef = useRef<string | null>(null);\n\n const id = searchParams.get('id');\n const employee = employees.find((candidate) => candidate.id === id);\n\n // Lazy-load this employee's documents the first time the Documents tab is\n // opened (documents aren't part of the crewfoundryBootstrap firehose).\n useEffect(() => {\n if (tab === 'documents' && employee && documentsLoadedForRef.current !== employee.id) {\n documentsLoadedForRef.current = employee.id;\n fetchEmployeeDocuments(employee.id).catch((error: unknown) => {\n showToast(error instanceof Error ? error.message : 'Unable to load documents', 'error');\n });\n }\n }, [tab, employee, fetchEmployeeDocuments, showToast]);\n\n if (!initialized && !employee) {\n return (\n <div className=\"flex min-h-[60vh] items-center justify-center p-6\">\n <Spinner size=\"lg\" />\n </div>\n );\n }\n\n if (!employee) {\n return (\n <div className=\"space-y-4 p-6\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate('../hr/employees-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n Back to directory\n </Button>\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Employee not found\"\n description=\"This profile is no longer available or the link is out of date.\"\n />\n </div>\n );\n }\n\n const manager = employee.managerId\n ? employees.find((candidate) => candidate.id === employee.managerId)\n : undefined;\n const managerName = manager\n ? `${manager.firstName} ${manager.lastName}`\n : employee.managerId\n ? 'Assigned'\n : 'No manager';\n const fullName = `${employee.firstName} ${employee.lastName}`;\n const activity = buildActivity(employee, timeEntries, leaveRequests, payrollRecords, projects);\n\n return (\n <div className=\"space-y-6 p-6\">\n <Button variant=\"ghost\" size=\"sm\" onClick={() => navigate('../hr/employees-page')}>\n <ArrowLeft className=\"mr-1 h-4 w-4\" />\n Back to directory\n </Button>\n\n {/* Profile header */}\n <GlassCard treatment=\"glass\" glow className=\"border-border-seam\">\n <CardContent className=\"p-6\">\n <div className=\"flex flex-col gap-5 sm:flex-row sm:items-start\">\n <AvatarStack\n people={[{ name: fullName, avatarUrl: employee.avatar }]}\n max={1}\n size={72}\n />\n <div className=\"flex-1 space-y-3\">\n <div className=\"flex flex-wrap items-center gap-3\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{fullName}</GradientText>\n </h1>\n <Badge variant={statusBadgeVariant(employee.status)}>\n {formatEnumLabel(employee.status)}\n </Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">\n {employee.position} · {employee.department}\n </p>\n <div className=\"flex flex-wrap gap-2\">\n <ContactChip icon={<Mail className=\"h-3.5 w-3.5\" />}>{employee.email}</ContactChip>\n <ContactChip icon={<Phone className=\"h-3.5 w-3.5\" />}>{employee.phone}</ContactChip>\n <ContactChip icon={<MapPin className=\"h-3.5 w-3.5\" />}>\n {employee.location}\n </ContactChip>\n <ContactChip icon={<CalendarDays className=\"h-3.5 w-3.5\" />}>\n Joined {employee.startDate}\n </ContactChip>\n </div>\n </div>\n </div>\n </CardContent>\n </GlassCard>\n\n <PagePurpose>\n A single view of one team member — their role, tenure, performance, and recent activity — so\n managers and partners have the full context in one place.\n </PagePurpose>\n\n <SegmentedTabs\n tabs={PROFILE_TABS}\n value={tab}\n onChange={(next) => setTab(next as ProfileTab)}\n aria-label=\"Employee profile sections\"\n />\n\n {tab === 'overview' ? (\n <div className=\"grid gap-4 lg:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Details</CardTitle>\n </CardHeader>\n <CardContent className=\"divide-y divide-border-subtle pt-0\">\n <DetailRow label=\"Manager\">\n <span className=\"inline-flex items-center gap-2\">\n {manager ? (\n <AvatarStack\n people={[{ name: managerName, avatarUrl: manager.avatar }]}\n max={1}\n size={24}\n />\n ) : null}\n {managerName}\n </span>\n </DetailRow>\n <DetailRow label=\"Employment type\">{formatEnumLabel(employee.type)}</DetailRow>\n <DetailRow label=\"Salary band\">{salaryBand(employee.salary)}</DetailRow>\n <DetailRow label=\"Tenure\">{tenure(employee.startDate)}</DetailRow>\n <DetailRow label=\"Employee ID\">\n <span className=\"break-all font-mono text-xs\">{employee.id}</span>\n </DetailRow>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Performance</CardTitle>\n </CardHeader>\n <CardContent className=\"flex items-center gap-6 pt-0\">\n <ProgressRing\n value={employee.performanceScore}\n max={5}\n label={employee.performanceScore.toFixed(1)}\n caption=\"/ 5\"\n />\n <div className=\"space-y-1\">\n <p className=\"text-lg font-semibold text-text-primary\">\n {performanceLabel(employee.performanceScore)}\n </p>\n <p className=\"text-sm text-text-secondary\">\n Latest review score of {employee.performanceScore.toFixed(1)} out of 5.\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n ) : null}\n\n {tab === 'skills' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Skills</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {/* BOFF-3717: canonical skills with real proficiency bars. */}\n <EmployeeSkillsPanel employeeId={employee.id} />\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'documents' ? (\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <CardTitle className=\"text-base\">Documents</CardTitle>\n <Button size=\"sm\" onClick={() => setAttachDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-3.5 w-3.5\" />\n Attach document\n </Button>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {employeeDocuments.length > 0 ? (\n <div className=\"space-y-2\">\n {employeeDocuments.map((doc) => (\n <div\n key={doc.id}\n className=\"flex items-center justify-between gap-3 rounded-input border border-border-subtle bg-bg-surface px-3 py-2.5\"\n >\n <div className=\"flex min-w-0 items-center gap-3\">\n <FileText className=\"h-4 w-4 shrink-0 text-text-muted\" />\n <div className=\"min-w-0\">\n <p className=\"truncate text-sm font-medium text-text-primary\">\n {doc.title}\n </p>\n <p className=\"text-xs text-text-muted\">\n {doc.category ? `${doc.category} · ` : ''}\n Uploaded {doc.uploadedAt.slice(0, 10)}\n </p>\n </div>\n </div>\n <button\n type=\"button\"\n aria-label={`Remove document \"${doc.title}\"`}\n className=\"shrink-0 text-text-muted hover:text-status-error-fg\"\n onClick={() => setRemoveDocumentId(doc.id)}\n >\n <Trash2 className=\"h-4 w-4\" />\n </button>\n </div>\n ))}\n </div>\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No documents attached\"\n description=\"Offer letters, contracts, and compliance documents attached to this profile will appear here.\"\n action={\n <Button size=\"sm\" onClick={() => setAttachDialogOpen(true)}>\n <Plus className=\"mr-1.5 h-3.5 w-3.5\" />\n Attach document\n </Button>\n }\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'performance' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Performance</CardTitle>\n </CardHeader>\n <CardContent className=\"flex flex-col items-center gap-6 pt-0 sm:flex-row sm:items-center\">\n <ProgressRing\n value={employee.performanceScore}\n max={5}\n size={160}\n label={employee.performanceScore.toFixed(1)}\n caption=\"/ 5\"\n />\n <div className=\"flex-1 space-y-2\">\n <Badge variant=\"secondary\" className=\"gap-1\">\n <BadgeCheck className=\"h-3.5 w-3.5\" />\n {performanceLabel(employee.performanceScore)}\n </Badge>\n <p className=\"text-sm text-text-secondary\">\n {fullName} holds a review score of {employee.performanceScore.toFixed(1)} out of 5.\n </p>\n {/* needs backend fields: goals-met %, peer feedback, manager feedback — only a single\n performanceScore is modelled today, so sub-metrics are intentionally omitted rather\n than invented. */}\n <p className=\"text-xs text-text-muted\">\n Goal, peer, and manager sub-scores will appear here once captured on the review\n record.\n </p>\n </div>\n </CardContent>\n </Card>\n ) : null}\n\n {tab === 'activity' ? (\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Recent activity</CardTitle>\n </CardHeader>\n <CardContent className=\"pt-0\">\n {activity.length > 0 ? (\n <Timeline items={activity} />\n ) : (\n <IllustratedEmptyState\n illustration=\"empty-data\"\n title=\"No activity yet\"\n description=\"Time logs, leave, payroll, and project assignments for this employee will show up here.\"\n />\n )}\n </CardContent>\n </Card>\n ) : null}\n\n <AttachDocumentDialog\n open={attachDialogOpen}\n onOpenChange={setAttachDialogOpen}\n onUpload={({ file, title, category }) =>\n uploadEmployeeDocument({ employeeId: employee.id, file, title, category })\n }\n />\n\n <ConfirmDialog\n open={removeDocumentId !== null}\n onOpenChange={(open) => {\n if (!open) setRemoveDocumentId(null);\n }}\n title=\"Remove document?\"\n description=\"This unlinks the document from this employee's profile. The file itself stays in the workspace Files library.\"\n confirmLabel=\"Remove\"\n destructive\n onConfirm={async () => {\n if (removeDocumentId) {\n await detachEmployeeDocument(removeDocumentId);\n setRemoveDocumentId(null);\n }\n }}\n />\n </div>\n );\n}\n"],"mappings":"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"}
@@ -206,6 +206,20 @@ export interface CrewEmployeeDocument {
206
206
  uploadedBy: string;
207
207
  uploadedAt: string;
208
208
  }
209
+ export interface CrewSkillSummary {
210
+ id: string;
211
+ name: string;
212
+ category: string;
213
+ source: string;
214
+ }
215
+ export interface CrewEmployeeSkill {
216
+ id: string;
217
+ skillId: string;
218
+ proficiency: number | null;
219
+ verifiedFrom: string;
220
+ lastUsedAt: string | null;
221
+ skill: CrewSkillSummary;
222
+ }
209
223
  export type OnboardingStage = 'offer' | 'paperwork' | 'it_setup' | 'training' | 'day_one';
210
224
  export type OnboardingStatus = 'not_started' | 'in_progress' | 'completed' | 'cancelled';
211
225
  export interface CrewOnboardingTask {
@@ -445,6 +459,7 @@ interface CrewFoundryState {
445
459
  vendors: Vendor[];
446
460
  clients: Client[];
447
461
  employeeDocuments: CrewEmployeeDocument[];
462
+ employeeSkillProfiles: Record<string, CrewEmployeeSkill[]>;
448
463
  onboardings: CrewOnboarding[];
449
464
  onboardingsLoaded: boolean;
450
465
  jobPostingMatches: Record<string, CrewCandidateMatch[]>;
@@ -534,6 +549,13 @@ interface CrewFoundryState {
534
549
  category?: string;
535
550
  }) => Promise<void>;
536
551
  detachEmployeeDocument: (id: string) => Promise<void>;
552
+ fetchEmployeeSkillProfile: (employeeId: string) => Promise<void>;
553
+ attachEmployeeSkill: (params: {
554
+ employeeId: string;
555
+ skillName: string;
556
+ proficiency: number | null;
557
+ }) => Promise<void>;
558
+ detachEmployeeSkill: (employeeId: string, skillId: string) => Promise<void>;
537
559
  fetchOnboardings: () => Promise<void>;
538
560
  createOnboarding: (input: {
539
561
  candidateId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"crewfoundryStore.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/store/crewfoundryStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crewfoundryStore.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/store/crewfoundryStore.ts"],"names":[],"mappings":"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"}