import { User, Mail, Phone, Briefcase, Building2, Clock, MapPin, Calendar, BadgeCheck, CircleDot, Cake, Heart, IdCard, Home, PhoneCall, Landmark, Wallet, PercentIcon, DollarSign, } from "lucide-react" import { Card, CardContent, CardHeader, CardTitle, } from "@/shared/components/ui/card" import { Avatar, AvatarFallback, AvatarImage } from "@/shared/components/ui/avatar" import { Badge } from "@/shared/components/ui/badge" import { Separator } from "@/shared/components/ui/separator" import { formatEnum } from "@/shared/utils/formatters" type EmployeeData = { id?: number type?: string first_name?: string last_name?: string email?: string phone?: string position?: string designation?: string salary?: string wage_type?: string status?: string track_attendance?: boolean notify_owner_when_punch_in_out?: boolean geo_fence_radius?: string | number | null department?: { id?: number; name?: string } | null shop_calender?: { id?: number; title?: string } | null shop_timing?: { id?: number; title?: string } | null role?: { id?: number; name?: string } | null avatar_url?: string | null avatar_path?: string | null address?: string | null date_of_birth?: string | null gender?: string | null marital_status?: string | null national_id?: string | null hire_date?: string | null emergency_contact_name?: string | null emergency_contact_phone?: string | null bank_name?: string | null bank_account_number?: string | null bank_iban?: string | null hourly_rate?: string | number | null commission_rate?: string | number | null created_at?: string updated_at?: string } type EmployeeGeneralInfoProps = { employee: EmployeeData } function formatDate(value?: string | null): string | null { if (!value) return null const d = new Date(value) if (Number.isNaN(d.getTime())) return value return d.toLocaleDateString() } function initialsOf(first?: string | null, last?: string | null) { const f = (first ?? "").trim()[0] ?? "" const l = (last ?? "").trim()[0] ?? "" return (f + l).toUpperCase() || "?" } function InfoItem({ icon: Icon, label, value, }: { icon: React.ComponentType<{ className?: string }> label: string value?: string | number | null }) { return (