1import{d4 as ue,ax as be,aJ as me,r as d,dz as pe,dY as he,dZ as fe,ei as ge,dE as je,e2 as ve,d_ as Ne,e0 as ke,j as e,J as ye,L as we,K as U,cS as Ce,cT as Pe,cU as _,cV as G,cf as J,cg as Q,ch as K,ci as X,cj as A,e3 as Y,bC as Z,as as C,bD as Se,bE as Me,bH as Te,N as Le,a0 as Ee,V as Ae,aI as M,x as Fe,z as Ie}from"./index-CpeGhXo5.js";import{a as Re}from"./Panel-Cf_wAUzv.js";import{h as De,i as Oe}from"./financeMappers-CUv1G2pV.js";import{u as He}from"./useCurrencyHelpers-D5hUvgaW.js";import{u as $e}from"./companySettingsMockApi-D8Uh5efq.js";import"./currency-CACMzR5Q.js";const qe=["In Progress","Completed","Pending","On Hold"];function x({label:p,children:u,required:P,error:i,hint:w}){return e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center justify-between min-h-[18px]",children:[e.jsxs("label",{className:"text-[11px] font-semibold text-slate-700 dark:text-slate-300 tracking-tight whitespace-nowrap",children:[p," ",P&&e.jsx("span",{className:"text-red-500",children:"*"})]}),w&&e.jsx("span",{className:"text-[10px] text-slate-400 font-normal shrink-0 ml-1",children:w})]}),u,i&&e.jsx("p",{className:"text-[10px] text-red-500 font-medium",children:i})]})}function q({options:p,value:u,onChange:P,placeholder:i,icon:w,error:F,disabled:y,triggerClassName:T}){const[h,f]=d.useState(!1),[g,L]=d.useState(""),j=d.useRef(null),o=d.useMemo(()=>{const n=g.toLowerCase();return p.filter(v=>v.label.toLowerCase().includes(n)||v.sub&&v.sub.toLowerCase().includes(n))},[p,g]),E=p.find(n=>n.value===u||n.label===u)?.label||u||i||"Select option";return d.useEffect(()=>{const n=v=>{j.current&&!j.current.contains(v.target)&&f(!1)};return document.addEventListener("mousedown",n),()=>document.removeEventListener("mousedown",n)},[]),e.jsxs("div",{className:"relative w-full",ref:j,children:[e.jsxs("button",{type:"button",disabled:y,onClick:()=>!y&&f(!h),className:C("w-full h-9 px-3 rounded-md border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 text-xs flex items-center justify-between hover:border-blue-500/50 transition-all outline-none shadow-2xs text-left",F&&"border-red-500 ring-1 ring-red-500",h&&"ring-2 ring-blue-500/20 border-blue-500 shadow-sm",y&&"opacity-50 cursor-not-allowed",T),children:[e.jsxs("span",{className:C("truncate flex items-center gap-1.5",!u&&"text-slate-400"),children:[w,E]}),e.jsx(Fe,{className:C("w-3.5 h-3.5 text-slate-400 transition-transform duration-200 shrink-0",h&&"rotate-180")})]}),h&&e.jsxs("div",{className:"absolute z-50 top-full mt-1.5 w-full bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-lg shadow-xl animate-in fade-in slide-in-from-top-2 duration-150 overflow-hidden",children:[e.jsx("div",{className:"p-2 border-b border-slate-100 dark:border-slate-800 bg-slate-50/50 dark:bg-slate-800/30",children:e.jsxs("div",{className:"relative",children:[e.jsx(Ie,{className:"w-3.5 h-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-slate-400"}
1),e.jsx("input",{autoFocus:!0,type:"text",value:g,onChange:n=>L(n.target.value),placeholder:"Search...",className:"w-full h-8 pl-8 pr-2 bg-white dark:bg-slate-900 border border-slate-200 dark:border-slate-800 rounded-md text-xs outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500"})]})}),e.jsx("div",{className:"max-h-60 overflow-auto p-1 custom-scrollbar",children:o.length>0?o.map(n=>e.jsxs("button",{type:"button",onClick:()=>{P(n.value),f(!1),L("")},className:C("w-full text-left px-2.5 py-2 rounded-md text-xs transition-all flex flex-col gap-0.5 mb-0.5",n.value===u||n.label===u?"bg-blue-50 text-blue-700 dark:bg-blue-950/60 dark:text-blue-300 font-semibold":"hover:bg-slate-100 dark:hover:bg-slate-800 text-slate-700 dark:text-slate-200"),children:[e.jsx("span",{children:n.label}),n.sub&&e.jsx("span",{className:"text-[10px] text-slate-400 font-normal",children:n.sub})]},n.value)):e.jsx("div",{className:"px-3 py-6 text-center text-xs text-slate-400",children:"No matches found"})})]})]})}function Ge(){const p=ue(),u=be(),[P]=me(),i=P.get("editId"),[w,F]=d.useState(!1),[y,T]=d.useState(!1),[h,f]=d.useState("info"),g=d.useRef(null),{activeCurrency:L,sym:j}=He(),o="h-9 w-full rounded-md border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 px-3 text-xs text-slate-900 dark:text-slate-100 focus:outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition-all shadow-2xs",{data:E}=pe({limit:500}),{data:n=[]}=he(),{data:v=[]}=$e(),{data:ee}=fe({limit:1e3,sortBy:"name",sortOrder:"asc"}),[te]=ge(),[se]=je(),I=d.useMemo(()=>(E?.items??[]).map(De),[E]);ee?.items;const[r,V]=d.useState({name:"",projectId:"",client:"",clientId:"",team:"Tekki Web Solutions Pvt. Ltd.",companyId:"",start:ve(!0),end:"",budget:0,revenue:0,cost:0,status:"In Progress",description:""}),[S,R]=d.useState({}),[D,ae]=d.useState([]);d.useEffect(()=>{let t=!0;return Ne.getProjects().then(s=>{t&&Array.isArray(s)&&ae(s.map(a=>({id:a.id,name:a.name,projectCode:a.projectCode})))}).catch(s=>{console.warn("Could not load PMS projects for project profitability:",s)}),()=>{t=!1}},[]);const re=d.useMemo(()=>{const t=[],s=new Set,a=(l,k)=>{const m=l.projectCode||l.project_code||l.upperId||l.upper_id;return m&&!/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(m)?m.startsWith("#")?m:`#${m}`:`#PRJ-${1001+k}`};return D.length>0&&D.forEach((l,k)=>{if(l.name&&!s.has(l.name.trim().toLowerCase())){const m=a(l,k);t.push({value:l.name,label:l.name,sub:`PMS Code: ${m}
1`,name:l.name}),s.add(l.name.trim().toLowerCase())}}),s.has("visionx")||t.unshift({value:"VisionX",label:"VisionX",sub:"PMS Code: #PRJ-1001",name:"VisionX"}),t.sort((l,k)=>l.name.localeCompare(k.name))},[D]),{data:B}=ke({limit:500}),W=d.useMemo(()=>B?.items??[],[B]),le=d.useMemo(()=>{const t=[],s=new Set;for(const a of W)if(a.name&&a.name.trim()&&!s.has(a.name.trim().toLowerCase())){const l=a.name.trim(),k=a.companyName&&a.companyName.trim()?a.companyName.trim():"",m=k?`${l} (${k})`:l;t.push({value:l,label:m}),s.add(l.toLowerCase())}return t.sort((a,l)=>a.label.localeCompare(l.label))},[W]),ne=d.useMemo(()=>{const t=n.filter(a=>a.status==="Active").map(a=>({value:a.name,label:a.name,sub:a.code})),s=new Set(t.map(a=>a.label));for(const a of v)s.has(a.name)||(t.push({value:a.name,label:a.name,sub:a.isPrimary?"Primary Company":"Sub Company"}),s.add(a.name));return s.has("Tekki Web Solutions Pvt. Ltd.")||t.unshift({value:"Tekki Web Solutions Pvt. Ltd.",label:"Tekki Web Solutions Pvt. Ltd.",sub:"Primary Company"}),t.sort((a,l)=>a.label.localeCompare(l.label))},[n,v]);d.useEffect(()=>{if(i&&I.length>0){const t=I.find(s=>s.id===i);t&&V({name:t.name,projectId:t.id,client:t.client,clientId:"",team:t.team||"Tekki Web Solutions Pvt. Ltd.",companyId:"",start:t.start||"",end:t.end||"",budget:t.budget,revenue:t.revenue,cost:t.cost,status:t.status,description:""})}},[i,I]);const b=Number(r.budget)||0,N=Number(r.revenue)||0,O=Number(r.cost)||0,H=(N>0?N:b)-O,de=(N>0?N:b)>0?Math.round(H/(N>0?N:b)*100):0,c=(t,s)=>{V(a=>({...a,[t]:s})),S[t]&&R(a=>({...a,[t]:""}))},z=()=>{const t={};return r.name.trim()||(t.name="Project name is required"),r.client.trim()||(t.client="Client selection is required"),(!b||b<=0)&&(t.budget="Enter a valid project budget (> 0)"),R(s=>({...s,...t})),Object.keys(t).length>0?(M.error("Please fill all required particulars before proceeding"),!1):!0},ie=t=>{t==="review"&&h==="info"&&!z()||f(t)},oe=()=>{z()&&f("review")},ce=()=>{const t={};return r.name.trim()||(t.name="Project name is required"),r.client.trim()||(t.client="Client selection is required"),(!b||b<=0)&&(t.budget="Enter a valid project budget (> 0)"),R(t),(t.name||t.client)&&f("info"),Object.keys(t).length===0},xe=async t=>{if(t.preventDefault(),y)return;if(!ce()){M.error("Please fix errors before submitting");return}T(!0);const s=Oe({name:r.name,client:r.client,team:r.team,start:r.start,end:r.end,budget:b,revenue:N,cost:O,status:r.status});try{i?(await se({id:i,body:s}).unwrap(),M.success(`Project ${r.name} updated successfully!`)):(await te(s).unwrap(),M.success(`Project ${r.name} created successfully!`)),F(!0),u(`${p}/project-profitability`)}catch(a){M.error(a?.data?.message||a?.message||"Failed to save project")}finally{T(!1)}},$=(t,s=void 0)=>{document.execCommand(t,!1,s),g.current&&c("description",g.current.innerHTML)};return w?e.jsx("div",{className:"h-full flex items-center justify-center p-6 bg-muted/10",children:e.jsxs("div",{className:"max-w-md w-full bg-card border border-border rounded-2xl p-10 text-center shadow-2xl animate-in fade-in zoom-in duration-500",children:[e.jsx("div",{className:"w-24 h-24 bg-success/10 rounded-full flex items-center justify-center mx-auto mb-8 shadow-inner",children:e.jsx(ye,{className:"w-12 h-12 text-success animate-bounce"})}),e.jsx("h2",{className:"text-3xl font-black mb-3 tracking-tight",children:i?"Project Updated!":"Project Saved!"}),e.jsxs("p",{className:"text-muted-foreground mb-10 leading-relaxed",children:["Project ",e.jsx("span",{className:"font-bold text-foreground px-2 py-0.5 bg-muted rounded",children:r.name})," has been saved to your portfolio."]})]})}):e.jsxs("div",{className:"w-full flex-1 flex flex-col bg-slate-50/50 dark:bg-slate-950/50",children:[e.jsx("div",{className:"px-6 py-4 border-b border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900",children:e.jsx(Re,{title:i?"Edit Project Profitability":"New Project Profitability",subtitle:"Manage project scope, budget, costs, and real-time profitability targets",accent:"mod-expense",actions:e.jsxs(we,{to:`${p}/project-profitability`,className:"h-8 px-3 rounded-md border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 hover:bg-slate-50 dark:hover:bg-slate-800 text-xs font-semibold text-slate-700 dark:text-slate-200 inline-flex items-center gap-1.5 transition-colors shadow-2xs",children:[e.jsx(U,{className:"w-3.5 h-3.5"})," Back to Projects"]})})}),e.jsx("form",{onSubmit:xe,className:"flex-1 flex flex-col",children:e.jsxs(Ce,{value:h,onValueChange:ie,className:"w-full flex-1 flex flex-col",children:[e.jsxs("div",{className:"px-6 border-b border-slate-200 dark:border-slate-800 bg-slate-50/70 dark:bg-slate-900/70 flex items-center justify-between",children:[e.jsxs(Pe,{className:"h-auto p-0 bg-transparent gap-6",children:[e.jsx(_,{value:"info",className:"rounded-none border-b-2 border-transparent data-[state=active]:border-blue-600 dar
1k:data-[state=active]:border-blue-400 data-[state=active]:bg-transparent data-[state=active]:text-blue-600 dark:data-[state=active]:text-blue-400 text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-200 text-xs font-semibold px-0 py-3 shadow-none transition-all",children:"1. Particulars & Financial Scope"}),e.jsx(_,{value:"review",className:"rounded-none border-b-2 border-transparent data-[state=active]:border-blue-600 dark:data-[state=active]:border-blue-400 data-[state=active]:bg-transparent data-[state=active]:text-blue-600 dark:data-[state=active]:text-blue-400 text-slate-600 dark:text-slate-400 hover:text-slate-900 dark:hover:text-slate-200 text-xs font-semibold px-0 py-3 shadow-none transition-all",children:"2. Profitability Projections & Confirmation"})]}),e.jsx("div",{className:"flex items-center gap-3",children:e.jsx("span",{className:"text-[11px] font-medium text-slate-400",children:h==="info"?"Tab 1: Particulars & Budget":"Tab 2: Projections & Review"})})]}),e.jsxs("div",{className:"w-full flex-1 grid grid-cols-1 lg:grid-cols-12 gap-0 bg-white dark:bg-slate-900",children:[e.jsxs("div",{className:"lg:col-span-9 p-6 border-b lg:border-b-0 lg:border-r border-slate-200 dark:border-slate-800 space-y-6 flex flex-col justify-between",children:[e.jsxs(G,{value:"info",className:"space-y-6 mt-0",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 pb-1.5 border-b border-slate-100 dark:border-slate-800/80",children:[e.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-600 dark:bg-blue-400 shrink-0"}),e.jsx("h3",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 uppercase tracking-wider",children:"Project & Client Identification"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3.5 pt-1",children:[e.jsx(x,{label:"Project Name",required:!0,error:S.name,hint:"PMS Module",children:e.jsx(q,{options:re,value:r.name,onChange:t=>c("name",t),placeholder:"Select PMS Project...",triggerClassName:o})}),e.jsx(x,{label:"Client Name",required:!0,error:S.client,hint:"Sales Module",children:e.jsx(q,{options:le,value:r.client,onChange:t=>c("client",t),placeholder:"Select Sales Client...",triggerClassName:o})})]})]}),e.jsxs("div",{className:"space-y-3 pt-2",children:[e.jsxs("div",{className:"flex items-center gap-2 pb-1.5 border-b border-slate-100 dark:border-slate-800/80",children:[e.jsx("span",{className:"w-2 h-2 rounded-full bg-purple-600 dark:bg-purple-400 shrink-0"}),e.jsx("h3",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 uppercase tracking-wider",children:"Entity & Timeline"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-3.5 pt-1",children:[e.jsx(x,{label:"Company",hint:"HRMS Module",children:e.jsx(q,{options:ne,value:r.team,onChange:t=>c("team",t),placeholder:"Select Company...",triggerClassName:o})}),e.jsx(x,{label:"Project Status",required:!0,children:e.jsxs(J,{value:r.status,onValueChange:t=>c("status",t),children:[e.jsx(Q,{className:o,children:e.jsx(K,{placeholder:"Select Status"})}),e.jsx(X,{children:qe.map(t=>e.jsx(A,{value:t,children:t},t))})]})}),e.jsx(x,{label:"Start Date & Time",hint:"PMS-style",children:e.jsx(Y,{value:r.start,onChange:t=>c("start",t),showTime:!0,className:"h-9 text-xs"})}),e.jsx(x,{label:"Est. End Date & Time",hint:"PMS-style",children:e.jsx(Y,{value:r.end,onChange:t=>c("end",t),showTime:!0,className:"h-9 text-xs"})})]}),e.jsxs("div",{className:"col-span-full mt-1 p-2.5 rounded-lg border border-blue-100 bg-blue-50/50 dark:bg-blue-950/20 dark:border-blue-900/40 flex items-center gap-2",children:[e.jsx(Z,{className:"w-4 h-4 text-blue-600 dark:text-blue-400 shrink-0"}),e.jsxs("div",{className:"text-[11px] text-slate-600 dark:text-slate-300 leading-tight",children:[e.jsx("span",{className:"font-semibold text-slate-800 dark:text-slate-100",children:"Cross-Module Integration: "}),"Project Name is linked to PMS, Client is linked to Sales, and Company is linked to HRMS."]})]})]}),e.jsxs("div",{className:"space-y-3 pt-2",children:[e.jsxs("div",{className:"flex items-center gap-2 pb-1.5 border-b border-slate-100 dar
1k:border-slate-800/80",children:[e.jsx("span",{className:"w-2 h-2 rounded-full bg-emerald-600 dark:bg-emerald-400 shrink-0"}),e.jsx("h3",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 uppercase tracking-wider",children:"Financial Scope & Budget"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3.5 pt-1",children:[e.jsx(x,{label:"Client Total Budget",required:!0,error:S.budget,children:e.jsx("input",{type:"text",inputMode:"decimal",placeholder:"0.00",value:r.budget===0?"":r.budget,onChange:t=>{const s=t.target.value;(s===""||/^\d*\.?\d*$/.test(s))&&c("budget",s===""?0:s)},className:C(o,S.budget&&"border-red-500 focus:ring-red-500 ring-1 ring-red-500")})}),e.jsx(x,{label:"Actual / Estimated Revenue",children:e.jsx("input",{type:"text",inputMode:"decimal",placeholder:"0.00",value:r.revenue===0?"":r.revenue,onChange:t=>{const s=t.target.value;(s===""||/^\d*\.?\d*$/.test(s))&&c("revenue",s===""?0:s)},className:o})}),e.jsx(x,{label:"Direct Costs / Expenses",children:e.jsx("input",{type:"text",inputMode:"decimal",placeholder:"0.00",value:r.cost===0?"":r.cost,onChange:t=>{const s=t.target.value;(s===""||/^\d*\.?\d*$/.test(s))&&c("cost",s===""?0:s)},className:o})})]})]}),e.jsxs("div",{className:"space-y-3 pt-2",children:[e.jsxs("div",{className:"flex items-center gap-2 pb-1.5 border-b border-slate-100 dark:border-slate-800/80",children:[e.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-600 dark:bg-blue-400 shrink-0"}),e.jsx("h3",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 uppercase tracking-wider",children:"Description & Notes"})]}),e.jsx("div",{className:"p-1 space-y-4",children:e.jsx(x,{label:"Particulars & Scope Details",children:e.jsxs("div",{className:"border border-slate-200 dark:border-slate-800 rounded-lg overflow-hidden bg-white dark:bg-slate-900 shadow-2xs",children:[e.jsxs("div",{className:"flex items-center gap-1 border-b border-slate-100 dark:border-slate-800 bg-slate-50 dark:bg-slate-800/50 p-1.5",children:[e.jsx("button",{type:"button",onClick:()=>$("bold"),className:"p-1.5 hover:bg-slate-200 dark:hover:bg-slate-700 rounded text-slate-600 dark:text-slate-300",children:e.jsx(Se,{className:"w-3.5 h-3.5"})}),e.jsx("button",{type:"button",onClick:()=>$("italic"),className:"p-1.5 hover:bg-slate-200 dark:hover:bg-slate-700 rounded text-slate-600 dark:text-slate-300",children:e.jsx(Me,{className:"w-3.5 h-3.5"})}),e.jsx("button",{type:"button",onClick:()=>$("insertUnorderedList"),className:"p-1.5 hover:bg-slate-200 dark:hover:bg-slate-700 rounded text-slate-600 dark:text-slate-300",children:e.jsx(Te,{className:"w-3.5 h-3.5"})})]}),e.jsx("div",{ref:g,contentEditable:!0,onInput:()=>c("description",g.current?.innerHTML||""),className:"min-h-[90px] p-3 text-xs focus:outline-none custom-scrollbar",dangerouslySetInnerHTML:{__html:r.description}})]})})})]}),e.jsx("div",{className:"flex justify-end pt-3",children:e.jsxs("button",{type:"button",onClick:oe,className:"h-9 px-5 rounded-lg bg-blue-600 hover:bg-blue-700 text-white text-xs font-semibold inline-flex items-center gap-1.5 shadow-2xs transition-colors",children:["Next: Profitability Projections & Confirmation ",e.jsx(Le,{className:"w-3.5 h-3.5"})]})})]}),e.jsxs(G,{value:"review",className:"space-y-6 mt-0",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-2 pb-1.5 border-b border-slate-100 dark:border-slate-800/80",children:[e.jsx("span",{className:"w-2 h-2 rounded-full bg-blue-600 dark:bg-blue-400 shrink-0"}),e.jsx("h3",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 uppercase tracking-wider",children:"Entry Audit Trail & Activity Logs"})]}),e.jsx("div",{className:"p-4 bg-slate-50/50 dark:bg-slate-900/50 rounded-xl border border-slate-200 dark:border-slate-800 space-y-4",children:e.jsxs("div",{className:"relative pl-6 space-y-5 before:absolute before:left-2 before:top-2 before:bottom-2 before:w-0.5 before:bg-slate-200 dark:before:bg-slate-800",children:[e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"absolute -left-6 top-0 w-4 h-4 rounded-full bg-emerald-500 text-white flex items-center justify-center text-[10px] font-bold",children:"â"}),e.jsx("div",{className:"text-xs font-bold text-slate-900 dark:text-slate-100",children:"Draft Initialized & Recorded"}),e.jsx("div",{className:"text-[11px] text-slate-500",children:"Created by PMO & Data Entry Team (Sarbjit Singh) ⢠Today"}),e.jsxs("p",{className:"text-[11px] text-slate-400 mt-0.5 italic",children:["Project ",r.name||"Draft"," registered in project ledger draft store."]})]}),e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"absolute -left-6 top-0 w-4 h-4 rounded-full bg-blue-500 text-white flex items-center justify-center text-[10px] font-bold",children:"i"}),e.jsx("div",{className:"text-xs font-bold text-slate-900 dark:text-slate-100",children:"HRMS & PMS Allocation Verified"}),e.jsxs("div",{className:"text-[11px] text-slate-500",children:["Client: ",r.client||"Client Entity"," | Company: ",r.team||"Tekki Web Solutions"]})]}),e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"absolute -left-6 top-0 w-4 h-4 rounded-full bg-amber-500 text-white flex items-center justify-center text-[10px] font-bold",children:"!"}),e.jsx("div",{className:"text-xs font-bold text-slate-900 dark:text-slate-100",children:"Executive Approval Pending"}),e.jsx("div",{className:"text-[11px] text-slate-500",children:"Assigned Approver: Line Manager / CFO"})]})]})})]}),e.jsxs("div",{className:"space-y-4 pt-2",children:[e.jsxs("div",{className:"flex items-center gap-2 pb-1.5 border-b border-slate-100 dar
1k:border-slate-800/80",children:[e.jsx("span",{className:"w-2 h-2 rounded-full bg-purple-600 dark:bg-purple-400 shrink-0"}),e.jsx("h3",{className:"text-xs font-bold text-slate-800 dark:text-slate-200 uppercase tracking-wider",children:"Executive Clearance & Final Approvals"})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:[e.jsxs("div",{className:"p-3 bg-emerald-50/60 dark:bg-emerald-950/40 border border-emerald-200 dark:border-emerald-800/60 rounded-xl space-y-1",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase text-emerald-700 dark:text-emerald-300",children:"1. Categorization"}),e.jsx("p",{className:"text-xs font-semibold text-slate-800 dark:text-slate-200",children:"Verified Budget & Hourly Rates"})]}),e.jsxs("div",{className:"p-3 bg-blue-50/60 dark:bg-blue-950/40 border border-blue-200 dark:border-blue-800/60 rounded-xl space-y-1",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase text-blue-700 dark:text-blue-300",children:"2. HRMS Mapping"}),e.jsx("p",{className:"text-xs font-semibold text-slate-800 dark:text-slate-200",children:"Company & Team Assigned"})]}),e.jsxs("div",{className:"p-3 bg-purple-50/60 dark:bg-purple-950/40 border border-purple-200 dark:border-purple-800/60 rounded-xl space-y-1",children:[e.jsx("p",{className:"text-[10px] font-bold uppercase text-purple-700 dark:text-purple-300",children:"3. Final Sign-off"}),e.jsx("p",{className:"text-xs font-semibold text-slate-800 dark:text-slate-200",children:"Ready for Project Director Sign-off"})]})]}),e.jsx("div",{className:"p-4 bg-slate-50/50 dark:bg-slate-900/50 rounded-xl border border-slate-200 dark:border-slate-800 space-y-3",children:e.jsx(x,{label:"Assign Line Manager / Final Approver",required:!0,children:e.jsxs(J,{defaultValue:"cfo",children:[e.jsx(Q,{className:o,children:e.jsx(K,{placeholder:"Select CFO or Line Manager Approver"})}),e.jsxs(X,{children:[e.jsx(A,{value:"cfo",children:"Pawandeep Kaur (CFO / Managing Director)"}),e.jsx(A,{value:"pm-lead",children:"Rajesh Kumar (Project Director)"}),e.jsx(A,{value:"finance-manager",children:"Neha Sharma (Finance Lead)"})]})]})})})]}),e.jsxs("div",{className:"flex justify-between pt-3",children:[e.jsxs("button",{type:"button",onClick:()=>f("info"),className:"h-9 px-3.5 rounded-lg border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 hover:bg-slate-50 dark:hover:bg-slate-800 text-xs font-medium text-slate-700 dark:text-slate-200 inline-flex items-center gap-1.5 transition-colors",children:[e.jsx(U,{className:"w-3.5 h-3.5"})," Back: Particulars & Financial Scope"]}),e.jsxs("button",{type:"submit",disabled:y,className:"h-9 px-5 rounded-lg bg-emerald-600 hover:bg-emerald-700 text-white text-xs font-semibold inline-flex items-center gap-1.5 shadow-2xs transition-colors disabled:opacity-50",children:[e.jsx(Ee,{className:"w-3.5 h-3.5"})," ",y?"Saving...":i?"Update Project":"Final Approval & Submit"]})]})]})]}),e.jsxs("div",{className:"lg:col-span-3 bg-slate-50/60 dark:bg-slate-900/60 p-6 space-y-5 flex flex-col justify-between h-full",children:[e.jsxs("div",{className:"space-y-5",children:[e.jsxs("div",{className:"flex items-center justify-between border-b border-slate-200 dark:border-slate-800 pb-3.5",children:[e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsx("div",{className:"p-2 rounded-xl bg-blue-50 dark:bg-blue-950/60 text-blue-600 dark:text-blue-400 border border-blue-100 dark:border-blue-900/40",children:e.jsx(Ae,{className:"w-4 h-4"})}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-bold text-slate-800 dark:text-slate-100 uppercase tracking-wider",children:"Live Profitability"}),e.jsx("span",{className:"text-[11px] text-slate-400 font-medium",children:"Financial Metrics"})]})]}),e.jsx("span",{className:"text-[10px] font-bold px-2 py-0.5 rounded-full bg-blue-50 text-blue-700 dark:bg-blue-950/50 dark:text-blue-300 border border-blue-200 dark:border-blue-800",children:L})]}),e.jsxs("div",{className:"space-y-3 bg-white dark:bg-slate-900 p-4 rounded-xl border border-slate-200 dark:border-slate-800 shadow-2xs",children:[e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-slate-500 font-medium",children:"Client Budget"}),e.jsxs("span",{className:"font-semibold font-data text-slate-800 dark:text-slate-200",children:[j," ",b.toLocaleStr
1ing("en-IN")]})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-slate-500 font-medium",children:"Est. Revenue"}),e.jsxs("span",{className:"font-medium font-data text-slate-600 dark:text-slate-400",children:[j," ",N.toLocaleString("en-IN")]})]}),e.jsxs("div",{className:"flex items-center justify-between text-xs",children:[e.jsx("span",{className:"text-slate-500 font-medium",children:"Direct Costs"}),e.jsxs("span",{className:"font-medium font-data text-rose-600 dark:text-rose-400",children:["- ",j," ",O.toLocaleString("en-IN")]})]}),e.jsxs("div",{className:"border-t border-slate-100 dark:border-slate-800 pt-2.5 flex items-center justify-between",children:[e.jsx("span",{className:"text-xs font-bold text-slate-900 dark:text-slate-100 uppercase tracking-wider",children:"Net Profit / Margin"}),e.jsxs("div",{className:"text-right",children:[e.jsxs("span",{className:C("text-sm font-black font-data block",H>=0?"text-emerald-600 dark:text-emerald-400":"text-rose-600 dar
1k:text-rose-400"),children:[j," ",H.toLocaleString("en-IN")]}),e.jsxs("span",{className:"text-[10px] text-slate-400 font-medium",children:["(",de,"% margin)"]})]})]})]}),e.jsxs("div",{className:"p-3.5 rounded-xl border border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 space-y-2 text-xs",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-slate-400",children:"Status:"}),e.jsx("span",{className:"px-2 py-0.5 rounded-full text-[10px] font-bold bg-blue-50 text-blue-700 dark:bg-blue-950/40 dark:text-blue-300 border border-blue-200 dark:border-blue-800",children:r.status})]}),r.name&&e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-slate-400",children:"Project:"}),e.jsx("span",{className:"font-semibold text-slate-700 dark:text-slate-300 truncate max-w-[120px]",children:r.name})]}),r.client&&e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{className:"text-slate-400",children:"Client:"}),e.jsx("span",{className:"font-semibold text-slate-700 dark:text-slate-300 truncate max-w-[120px]",children:r.client})]})]})]}),e.jsxs("div",{className:"p-3.5 rounded-xl bg-blue-50/50 dark:bg-blue-950/20 border border-blue-100 dark:border-blue-900/40 space-y-1.5",children:[e.jsxs("div",{className:"flex items-center gap-1.5 text-blue-700 dark:text-blue-300 text-xs font-semibold",children:[e.jsx(Z,{className:"w-3.5 h-3.5 shrink-0"})," Cross-Module Integration"]}),e.jsx("p",{className:"text-[11px] text-slate-600 dark:text-slate-400 leading-normal",children:"Project Name is fetched from PMS, Client Name from Sales, and Company from HRMS."})]})]})]})]})})]})}export{Ge as NewProjectPage,Ge as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.