1var re=Object.defineProperty;var ae=(t,i,s)=>i in t?re(t,i,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[i]=s;var C=(t,i,s)=>ae(t,typeof i!="symbol"?i+"":i,s);import{c as ne,j as e,S as q,e as M,P as U,a4 as le,F as oe,B as P,r as y,N as ce,O as de,Q as me,V as pe,h as _,i as $,k as H,T as O,m as G,U as ue,I as R,a6 as he,H as xe,u as ge,o as je,aK as W,bK as I,bu as L}from"./index-DLd_kDlx.js";import{T as z}from"./TechLeadHeader-eLOg3V3h.js";import{S as ve}from"./scroll-area-BXTuUF24.js";import{u as ye}from"./useAIDeliveryPlanning-CTW9zPaD.js";import{L as J}from"./loader-circle-D2miE2xB.js";import{B as fe}from"./brain-pqum15ho.js";import{L as f}from"./label-D4-ENrYn.js";import{u as we}from"./usePodManagement-CP5ffjdL.js";import{u as Ne}from"./usePodDeliveryPlan-Qtfzkd_A.js";import"./dropdown-menu-DSd1c3Vk.js";import"./index-Deh-4PO1.js";import"./index-lTaZyIGy.js";import"./chevron-right-CD1gvy-q.js";import"./NotificationIcon-C1wwYnH5.js";import"./popover-BMD5FOmU.js";import"./NotificationItem-Dc2WXW-y.js";import"./formatDistanceToNow-57P64IbE.js";import"./en-US-9SRVm7yB.js";import"./differenceInCalendarMonths-BA0TPVs2.js";import"./endOfDay-DkR3ZXc8.js";import"./endOfMonth-CYn6pTOm.js";import"./message-square-CtxeCfRz.js";import"./trophy-DBX-jNOC.js";import"./triangle-alert-Chqk_WK7.js";import"./rotate-ccw-Bx1C64Ur.js";import"./index-BdQq_4o_.js";import"./usePodDetails-C9Suehy1.js";import"./usePodMembers-8OtOtFCP.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const Pe=ne("Coffee",[["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M14 2v2",key:"6buw04"}],["path",{d:"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1",key:"pwadti"}],["path",{d:"M6 2v2",key:"colzsn"}]]);function ke({isInProgress:t,currentActivity:i}){return t?e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"bg-gradient-to-r from-purple-50 to-blue-50 p-4 rounded-lg border border-purple-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(Pe,{className:"w-5 h-5 text-purple-600"}),e.jsx("span",{className:"font-medium text-purple-800",children:"Sit back and relax! â"})]}),e.jsx("p",{className:"text-sm text-purple-700",children:"Our AI is working hard to create your comprehensive delivery plan. This takes a few minutes - perfect time for a coffee break! ââ¨"})]}),i&&e.jsx("div",{className:"bg-blue-50 p-3 rounded-lg border border-blue-200",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{className:"w-4 h-4 text-blue-600 animate-pulse"}),e.jsx("span",{className:"text-sm font-medium text-blue-800",children:i})]})})]}):null}function Se({generatedContent:t}){return t.epics.length===0&&t.stories.length===0?null:e.jsxs("div",{className:"bg-gray-50 p-4 rounded-lg",children:[e.jsxs("h4",{className:"font-medium mb-3 flex items-center gap-2",children:[e.jsx(q,{className:"w-4 h-4 text-yellow-600"}),"Generated Content Preview"]}),t.epics.length>0&&e.jsxs("div",{className:"mb-3",children:[e.jsx("span",{className:"text-xs font-medium text-gray-600 uppercase tracking-wide",children:"Epics Created:"}),e.jsx("div",{className:"mt-1 space-y-1",children:t.epics.map((i,s)=>e.jsxs("div",{className:"text-sm text-gray-700 flex items-center gap-2",children:[e.jsx(M,{className:"w-3 h-3 text-green-500"}),i]},s))})]}),t.stories.length>0&&e.jsxs("div",{children:[e.jsxs("span",{className:"text-xs font-medium text-gray-600 uppercase tracking-wide",children:["Stories Generated: ",t.stories.length]}),t.currentStory&&e.jsxs("div",{className:"mt-1 text-sm text-gray-700",children:["Latest: ",t.currentStory.substring(0,60),"..."]})]})]})}function Ce({steps:t}){const i=s=>{switch(s.status){case"completed":return e.jsx(M,{className:"w-5 h-5 text-green-600"});case"in_progress":return e.jsx(J,{className:"w-5 h-5 text-blue-600 animate-spin"});case"error":return e.jsx(oe,{className:"w-5 h-5 text-red-600"});default:return e.jsx(le,{className:"w-5 h-5 text-gray-400"})}};return e.jsx("div",{className:"space-y-4",children:t.map((s,r)=>e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i(s)}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:s.title}),s.status==="in_progress"&&e.jsx("div",{className:"flex-shrink-0",children:e.jsx("div",{className:"w-2 h-2 bg-blue-600 rounded-full animate-pulse"})})]}),e.jsx("p",{className:"text-xs text-gray-600 mt-1",children:s.description}),s.details&&e.jsx("p",{className:"text-xs text-blue-600 mt-1 italic",children:s.details}),s.status==="in_progress"&&s.subProgress&&e.jsx("div",{className:"mt-2",children:e.jsx(U,{value:s.subProgress,className:"h-1"})}),s.status==="error"&&s.errorMessage&&e.jsx("p",{className:"text-xs text-red-600 mt-1",children:s.errorMessage})]})]},s.id))})}function De({hasError:t,isComplete:i,onRetry:s,onClose:r}){return e.jsxs("div",{className:"flex justify-end gap-2 pt-4 border-t mt
6-4",children:[t&&e.jsx(P,{variant:"outline",onClick:s,children:"Retry Generation"}),i&&e.jsx(P,{onClick:r,children:"Continue to Sprint Board"}),!i&&!t&&e.jsx(P,{variant:"outline",onClick:r,children:"Cancel"})]})}class be{getCheckpointKey(i){return`delivery_plan_checkpoint_${i}`}saveCheckpoint(i,s,r,a){const n={podId:i,currentStep:s,steps:r,generatedContent:a,timestamp:Date.now()};try{localStorage.setItem(this.getCheckpointKey(i),JSON.stringify(n)),console.log("Checkpoint saved:",n)}catch(p){console.warn("Failed to save checkpoint:",p)}}loadCheckpoint(i){try{const s=localStorage.getItem(this.getCheckpointKey(i));if(s){const r=JSON.parse(s);if(Date.now()-r.timestamp<3600*1e3)return console.log("Loading checkpoint:",r),r;localStorage.removeItem(this.getCheckpointKey(i))}}catch(s){console.warn("Failed to load checkpoint:",s)}return null}clearCheckpoint(i){try{localStorage.removeItem(this.getCheckpointKey(i)),console.log("Checkpoint cleared for pod:",i)}catch(s){console.warn("Failed to clear checkpoint:",s)}}}class Te{async execute(i){const{setCurrentActivity:s,updateStepStatus:r}=i;s("ð Analyzing project structure and requirements..."),r("setup","in_progress",void 0,"Examining project technologies and complexity"),await new Promise(a=>setTimeout(a,800)),s("âï¸ Calculating team capacity and timeline estimates..."),r("setup","in_progress",void 0,"Processing team commitments and availability",50),await new Promise(a=>setTimeout(a,600)),s("â
Project analysis complete!"),r("setup","completed",void 0,"Ready to generate delivery plan"),await new Promise(a=>setTimeout(a,400))}}class _e{async execute(i){const{setCurrentActivity:s,updateStepStatus:r,setGeneratedContent:a}=i;s("ð§ AI is crafting project epics..."),r("epics","in_progress",void 0,"Sending project context to AI"),await new Promise(n=>setTimeout(n,1e3)),s('ð Creating "Project Setup & Infrastructure" epic...'),r("epics","in_progress",void 0,"Generating setup and configuration epic",25),a(n=>({...n,epics:["Project Setup & Infrastructure"],currentEpic:"Project Setup & Infrastructure"})),await new Promise(n=>setTimeout(n,1200)),s('ðï¸ Creating "Core Security Features" epic...'),r("epics","in_progress",void 0,"Generating core functionality epic",50),a(n=>({...n,epics:[...n.epics,"Core Security Features"],currentEpic:"Core Security Features"})),await new Promise(n=>setTimeout(n,1200)),s('ð Creating "Monitoring & Analytics" epic...'),r("epics","in_progress",void 0,"Generating monitoring and reporting epic",75),a(n=>({...n,epics:[...n.epics,"Monitoring & Analytics"],currentEpic:"Monitoring & Analytics"})),await new Promise(n=>setTimeout(n,1e3)),s("⨠Epics generation complete!"),r("epics","completed",void 0,"Generated 3 comprehensive epics"),await new Promise(n=>setTimeout(n,500))}}class Ge{async execute(i){const{setCurrentActivity:s,setGeneratedContent:r,updateStepStatus:a}=i;s("ð Generating detailed user stories..."),a("stories","in_progress",void 0,"Creating user stories with acceptance criteria"),await new Promise(n=>setTimeout(n,1200)),s("â
Defining acceptance criteria..."),a("stories","in_progress",void 0,"Adding detailed requirements and conditions",30),await new Promise(n=>setTimeout(n,1e3)),s("ð¢ Estimating story points..."),a("stories","in_progress",void 0,"Assigning complexity estimates",60),await new Promise(n=>setTimeout(n,800)),s("ð Organizing stories by priority..."),a("stories","in_progress",void 0,"Prioritizing and organizing stories",85),await new Promise(n=>setTimeout(n,700)),r(n=>({...n,stories:["User authentication and profile management","Core feature implementation","Data management and storage","User interface and experience","Testing and quality assurance","Performance optimization","Security implementation","Documentation and deployment"]})),s("⨠User stories completed!"),a("stories","completed",void 0,"All user stories generated with acceptance criteria"),await new Promise(n=>setTimeout(n,500))}}class Ee{async execute(i){const{setCurrentActivity:s,updateStepStatus:r}=i;s("ð§ Preparing development workflow..."),r("tasks","in_progress",void 0,"Setting up story-based development process"),await new Promise(a=>setTimeout(a,1e3)),s("ð Organizing development phases..."),r("tasks","in_progress",void 0,"Structuring stories for efficient development",40),await new Promise(a=>setTimeout(a,800)),s("ð¯ Defining development milestones..."),r("tasks","in_progress",void 0,"Creating clear development checkpoints",70),await new Promise(a=>setTimeout(a,700)),s("ð Optimizing workflow structure..."),r("tasks","in_progress",void 0,"Finalizing development organization",90),await new Promise(a=>setTimeout(a,600)),s("â
Development workflow ready!"),r("tasks","completed",void 0,"Story-based development process established"),await new Promise(a=>setTimeout(a,500))}}class Ae{constructor(i){C(this,"generateDeliveryPlan");this.generateDeliveryPlan=i}async execute(i){const{podId:s,projectData:r,teamCommitment:a,setCurrentActivity:n,updateStepStatus:p,onComplete:g,clearCheckpoint:l}=i;
6n("ðï¸ Creating sprint structure and timeline..."),p("timeline","in_progress",void 0,"Organizing stories into sprints"),await new Promise(c=>setTimeout(c,1e3)),n("ð¯ Setting sprint goals and milestones..."),p("timeline","in_progress",void 0,"Defining sprint deliverables",40),await new Promise(c=>setTimeout(c,800)),n("ð
Finalizing delivery timeline..."),p("timeline","in_progress",void 0,"Completing project organization",70),await new Promise(c=>setTimeout(c,500)),console.log("Starting delivery plan generation for pod:",s);try{p("timeline","in_progress",void 0,"Generating comprehensive delivery plan",90);const c=await this.generateDeliveryPlan(s,r,a);if(!c.success)throw new Error(c.error||"Delivery plan generation failed");n("ð Delivery plan ready!"),p("timeline","completed",void 0,`Created ${c.epics} epics with ${c.stories} stories`),l(),setTimeout(()=>{g()},1e3)}catch(c){throw console.error("Delivery plan generation failed:",c),new Error(`Delivery plan generation failed: ${c.message}`)}}}class Be{constructor(i){C(this,"setupStep");C(this,"epicsStep");C(this,"storiesStep");C(this,"tasksStep");C(this,"timelineStep");this.setupStep=new Te,this.epicsStep=new _e,this.storiesStep=new Ge,this.tasksStep=new Ee,this.timelineStep=new Ae(i)}async continueGenerationFromStep(i,s){try{switch(i){case 0:await this.setupStep.execute(s),await this.continueGenerationFromStep(1,s);break;case 1:await this.epicsStep.execute(s),await this.continueGenerationFromStep(2,s);break;case 2:await this.storiesStep.execute(s),await this.continueGenerationFromStep(3,s);break;case 3:await this.tasksStep.execute(s),await this.continueGenerationFromStep(4,s);break;case 4:await this.timelineStep.execute(s);break}}catch(r){console.error("Error in step execution:",r);const a=["setup","epics","stories","tasks","timeline"][i];a&&(s.updateStepStatus(a,"error",r.message),s.setCurrentActivity("â Generation failed - you can retry from this checkpoint"))}}}class Fe{constructor(i){C(this,"stepExecutor");this.stepExecutor=new Be(i)}async continueGenerationFromStep(i,s){return this.stepExecutor.continueGenerationFromStep(i,s)}}function We({open:t,onOpenChange:i,podId:s,projectData:r,teamCommitment:a,onComplete:n}){const{generateDeliveryPlan:p}=ye(),[g,l]=y.useState(0),[c,j]=y.useState(""),[w,v]=y.useState({epics:[],stories:[]}),[h,N]=y.useState([{id:"setup",title:"Project Analysis & Setup",description:"Analyzing project requirements, team capacity, and technical stack",status:"pending"},{id:"epics",title:"Generate Project Epics",description:"Creating high-level project epics and milestones using AI",status:"pending"},{id:"stories",title:"Generate User Stories",description:"Breaking down epics into detailed user stories with acceptance criteria",status:"pending"},{id:"tasks",title:"Create Development Tasks",description:"Generating actionable tasks and technical guidance for each story",status:"pending"},{id:"timeline",title:"Build Sprint Timeline",description:"Organizing tasks into sprints with clear goals and deadlines",status:"pending"}]),D=new be,k=new Fe(p),F=()=>{D.saveCheckpoint(s,g,h,w)},E=()=>D.loadCheckpoint(s),S=()=>{D.clearCheckpoint(s)},T=(o,u,x,V,se)=>{N(te=>{const ie=te.map(K=>K.id===o?{...K,status:u,errorMessage:x,details:V,subProgress:se}:K);return setTimeout(()=>F(),100),ie})},A=async o=>{console.log("Resuming from checkpoint at step:",o.currentStep),l(o.currentStep),N(o.steps),v(o.generatedContent);const u=o.steps.findIndex(x=>x.status==="pending"||x.status==="error");u!==-1?(j("ð Resuming from checkpoint..."),await new Promise(x=>setTimeout(x,1e3)),await m(u)):(j("ð Delivery plan ready!"),setTimeout(()=>{S(),n()},1e3))},m=async o=>{const u={podId:s,projectData:r,teamCommitment:a,setCurrentActivity:j,setGeneratedContent:v,updateStepStatus:T,onComplete:n,clearCheckpoint:S};await k.continueGenerationFromStep(o,u)},d=async()=>{var o;try{l(0),await m(0)}catch(u){console.error("Delivery plan generation error:",u);const x=(o=h[g])==null?void 0:o.id;x&&(T(x,"error",u.message),j("â Generation failed - you can retry from this checkpoint"))}};y.useEffect(()=>{if(t&&h.every(o=>o.status==="pending")){const o=E();if(o&&o.podId===s)if(window.confirm("Found previous progress for this delivery plan. Would you like to resume from where you left off?")){A(o);return}else S();d()}},[t]);const b=h.filter(o=>o.status==="completed").length,B=h.length,X=b/B*100,Q=h.some(o=>o.status==="error"),Y=h.every(o=>o.status==="completed"),Z=h.some(o=>o.status==="in_progress"),ee=()=>{const o=h.findIndex(u=>u.status==="error");o!==-1?(N(u=>u.map((x,V)=>V>=o?{...x,status:"pending",errorMessage:void 0,details:void 0,subProgress:void 0}:x)),j("ð Retrying from checkpoint..."),setTimeout(()=>{m(o)},500)):(N(u=>u.map(x=>({...x,status:"pending",errorMessage:void 0,details:void 0,subProgress:void 0}))),l(0),j(""),v({epics:[],stories:[]}),S(),d())};return e.jsx(ce,{open:t,onOpenChange:i,children:e.jsxs(de,{className:"max-w-3xl w-full h-[90vh] flex flex-col",children:[e.jsx(me,{children:e.jsxs(pe,{className:"flex items-center gap-2",children:[e.jsx(fe,{className:"w-5 h-5 text-purple-600"}),"AI Delivery Plan Generation"]})}),e.jsx("div",{className:"flex-1 overflow-hidden",children:e.jsx(ve,{className:"h-full pr-4",children:e.jsxs("div",{className:"space-y-6 pb-6",children:[e.jsx(ke,{isInProgress:Z,currentActivity:c}
6),e.jsxs("div",{className:"space-y-2",children:[e.jsxs("div",{className:"flex justify-between text-sm",children:[e.jsx("span",{children:"Overall Progress"}),e.jsxs("span",{children:[b,"/",B," steps"]})]}),e.jsx(U,{value:X,className:"h-2"})]}),e.jsx(Se,{generatedContent:w}),e.jsx(Ce,{steps:h})]})})}),e.jsx(De,{hasError:Q,isComplete:Y,onRetry:ee,onClose:()=>i(!1)})]})})}function Ie({podDetails:t}){var i,s;return e.jsxs(_,{children:[e.jsx($,{children:e.jsxs(H,{className:"flex items-center gap-2",children:[e.jsx(O,{className:"w-5 h-5"}),"Project Overview"]})}),e.jsx(G,{children:e.jsxs("div",{className:"grid md:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(f,{children:"Pod Name"}),e.jsx("p",{className:"font-medium",children:t.pod_name})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Project Title"}),e.jsx("p",{className:"font-medium",children:(i=t.projects)==null?void 0:i.title})]}),e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(f,{children:"Description"}),e.jsx("p",{className:"text-sm text-gray-600",children:(s=t.projects)==null?void 0:s.description})]})]})})]})}function Le({podMembers:t,memberCommitments:i,onCommitmentChange:s,projectSettings:r,currentMembers:a}){const n=Object.values(i).reduce((l,c)=>l+c.hoursPerDay*c.daysPerWeek,0),p=(t==null?void 0:t.filter(l=>l.role==="member").length)||0,g=(t==null?void 0:t.filter(l=>l.role==="tech_lead").length)||0;return e.jsxs(_,{children:[e.jsx($,{children:e.jsxs(H,{className:"flex items-center gap-2",children:[e.jsx(ue,{className:"w-5 h-5"}),"Team Capacity Configuration"]})}),e.jsxs(G,{children:[e.jsx("div",{className:"space-y-4",children:t==null?void 0:t.map(l=>{var c,j,w;return e.jsxs("div",{className:"flex items-center justify-between p-4 border rounded-lg",children:[e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:l.role==="tech_lead"?"Tech Lead":"Xtern"}),e.jsx("p",{className:"text-sm text-gray-500",children:((c=l.profiles)==null?void 0:c.full_name)||`Member ID: ${l.user_id.slice(0,8)}...`})]}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{htmlFor:`hours-${l.user_id}`,className:"text-sm",children:"Hours/Day:"}),e.jsx(R,{id:`hours-${l.user_id}`,type:"number",min:"1",max:"8",value:((j=i[l.user_id])==null?void 0:j.hoursPerDay)||4,onChange:v=>s(l.user_id,"hoursPerDay",parseInt(v.target.value)),className:"w-20"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(f,{htmlFor:`days-${l.user_id}`,className:"text-sm",children:"Days/Week:"}),e.jsx(R,{id:`days-${l.user_id}`,type:"number",min:"1",max:"7",value:((w=i[l.user_id])==null?void 0:w.daysPerWeek)||5,onChange:v=>s(l.user_id,"daysPerWeek",parseInt(v.target.value)),className:"w-20"})]})]})]},l.user_id)})}),e.jsx(he,{className:"my-4"}),e.jsxs("div",{className:"bg-blue-50 p-4 rounded-lg",children:[e.jsx("h4",{className:"font-medium mb-2",children:"Team Capacity Summary"}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-5 gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-600",children:"Xterns:"}),e.jsx("p",{className:"font-medium",children:p})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-600",children:"Tech Leads:"}),e.jsx("p",{className:"font-medium",children:g})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-600",children:"Weekly Hours:"}),e.jsxs("p",{className:"font-medium",children:[n,"h"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-600",children:"Target Timeline:"}),e.jsxs("p",{className:"font-medium",children:[r.targetCompletionWeeks," weeks"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-600",children:"Total Effort:"}),e.jsxs("p",{className:"font-medium",children:[n*r.targetCompletionWeeks,"h"]})]})]})]})]})]})}function ze({projectSettings:t,onProjectSettingsChange:i}){const s=(r,a)=>{i({...t,[r]:a})};return e.jsxs(_,{children:[e.jsx($,{children:e.jsxs(H,{className:"flex items-center gap-2",children:[e.jsx(xe,{className:"w-5 h-5"}),"Project Settings"]})}),e.jsx(G,{children:e.jsxs("div",{className:"grid md:grid-cols-3 gap-4",children:[e.jsxs("div",{children:[e.jsx(f,{htmlFor:"target-weeks",children:"Target Completion (weeks)"}),e.jsx(R,{id:"target-weeks",type:"number",min:"4",max:"24",value:t.targetCompletionWeeks,onChange:r=>s("targetCompletionWeeks",parseInt(r.target.value))})]}),e.jsxs("div",{children:[e.jsx(f,{htmlFor:"buffer-weeks",children:"Buffer Weeks"}),e.jsx(R,{id:"buffer-weeks",type:"number",min:"0",max:"4",value:t.bufferWeeks,onChange:r=>s("bufferWeeks",parseInt(r.target.value))})]}),e.jsxs("div",{children:[e.jsx(f,{htmlFor:"complexity",children:"Project Complexity"}),e.jsxs("select",{id:"complexity",value:t.complexity,onChange:r=>s("complexity",r.target.value),className:"w-full p-2 border border-gray-300 rounded-md",children:[e.jsx("option",{value:"beginner",children:"Beginner"}),e.jsx("option",{value:"intermediate",children:"Intermediate"}),e.jsx("option",{value:"advanced",children:"Advanced"})]})]})]})})]})}function Me({podDetails:t,onViewSprintBoard:i,onBackToPodManagement:s}){var r,a;return e.jsxs("div",{className:"space-y-6",children:[e.jsxs(_,{children:[e.jsx($,{children:e.jsxs(H,{
6className:"flex items-center gap-2",children:[e.jsx(M,{className:"w-5 h-5 text-green-600"}),"Delivery Plan Already Exists"]})}),e.jsxs(G,{children:[e.jsxs("div",{className:"grid md:grid-cols-2 gap-4 mb-6",children:[e.jsxs("div",{children:[e.jsx(f,{children:"Pod Name"}),e.jsx("p",{className:"font-medium",children:t.pod_name})]}),e.jsxs("div",{children:[e.jsx(f,{children:"Project Title"}),e.jsx("p",{className:"font-medium",children:(r=t.projects)==null?void 0:r.title})]}),e.jsxs("div",{className:"md:col-span-2",children:[e.jsx(f,{children:"Description"}),e.jsx("p",{className:"text-sm text-gray-600",children:(a=t.projects)==null?void 0:a.description})]})]}),e.jsxs("div",{className:"bg-green-50 p-4 rounded-lg border border-green-200",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[e.jsx(M,{className:"w-5 h-5 text-green-600"}),e.jsx("span",{className:"font-medium text-green-800",children:"Delivery Plan Ready"})]}),e.jsx("p",{className:"text-sm text-green-700 mb-4",children:"This pod already has a comprehensive delivery plan with epics, stories, and sprint organization. You can view and manage the delivery timeline in the Sprint Board."}),e.jsxs(P,{onClick:i,className:"bg-green-600 hover:bg-green-700 text-white",children:[e.jsx(O,{className:"w-4 h-4 mr-2"}),"View Sprint Board"]})]})]})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx(P,{variant:"outline",onClick:s,children:"Back to Pod Management"}),e.jsxs(P,{onClick:i,className:"bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700",children:[e.jsx(O,{className:"w-4 h-4 mr-2"}),"View Sprint Board"]})]})]})}function Oe({mode:t}){return t?e.jsx(_,{className:"border-blue-200 bg-blue-50",children:e.jsx(G,{className:"p-4",children:e.jsxs("p",{className:"text-blue-800",children:[t==="complete"&&"Complete your existing delivery plan by adding stories to epics.",t==="regenerate"&&"Regenerate your delivery plan with updated settings and requirements."]})})}):null}function Re({mode:t,onBackToPodManagement:i,onGenerateDeliveryPlan:s}){const r=()=>t==="complete"?"Complete Delivery Plan":t==="regenerate"?"Regenerate Delivery Plan":"Generate Delivery Plan";return e.jsxs("div",{className:"flex justify-between",children:[e.jsx(P,{variant:"outline",onClick:i,children:"Back to Pod Management"}),e.jsxs(P,{onClick:s,className:"bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700",children:[e.jsx(O,{className:"w-4 h-4 mr-2"}),r()]})]})}const $e=(t,i)=>{const s=ge(),{podDetails:r,podMembers:a,isLoading:n}=we(t||void 0),{checkDeliveryPlan:p}=Ne(),[g,l]=y.useState({}),[c,j]=y.useState({targetCompletionWeeks:12,bufferWeeks:2,complexity:"intermediate"}),[w,v]=y.useState(!1),[h,N]=y.useState(null),[D,k]=y.useState(!0);return y.useEffect(()=>{(async()=>{if(t){k(!0);try{const d=await p(t);if(console.log("Delivery plan status:",d),N(d.hasDeliveryPlan),d.hasDeliveryPlan&&!i){console.log("Delivery plan exists and no mode specified, redirecting to sprint board"),s(`/tech-lead/sprint-board?pod=${t}`);return}console.log("Mode:",i,"HasDeliveryPlan:",d.hasDeliveryPlan)}catch(d){console.error("Error checking delivery plan:",d),N(!1)}finally{k(!1)}}})()},[t,p,s,i]),y.useEffect(()=>{if(a&&a.length>0){const m={};a.forEach(d=>{m[d.user_id]={hoursPerDay:d.role==="tech_lead"?2:4,daysPerWeek:5}}),l(m)}},[a]),{podDetails:r,podMembers:a,isLoading:n,checkingDeliveryPlan:D,memberCommitments:g,projectSettings:c,showGenerationDialog:w,hasDeliveryPlan:h,setProjectSettings:j,setShowGenerationDialog:v,handleCommitmentChange:(m,d,b)=>{l(B=>({...B,[m]:{...B[m],[d]:b}}))},handleGenerateDeliveryPlan:async()=>{!t||!r||v(!0)},handleViewSprintBoard:()=>{t&&s(`/tech-lead/sprint-board?pod=${t}`)},handleBackToPodManagement:()=>{s("/tech-lead/pod-management")},handleGenerationComplete:()=>{v(!1),s(`/tech-lead/sprint-board?pod=${t}`)}}},He=t=>t==="complete"?"Complete Delivery Plan":t==="regenerate"?"Regenerate Delivery Plan":"Delivery Plan Creation";function fs(){var T,A;const[t]=je(),i=t.get("pod"),s=t.get("mode"),{podDetails:r,podMembers:a,isLoading:n,checkingDeliveryPlan:p,memberCommitments:g,projectSettings:l,showGenerationDialog:c,hasDeliveryPlan:j,setProjectSettings:w,setShowGenerationDialog:v,handleCommitmentChange:h,handleGenerateDeliveryPlan:N,handleViewSprintBoard:D,handleBackToPodManagement:k,handleGenerationComplete:F}=$e(i,s);if(n||p)return e.jsx(W,{children:e.jsxs("div",{className:"min-h-screen flex w-full bg-gray-50",children:[e.jsx(I,{}),e.jsxs(L,{className:"flex-1",children:[e.jsx(z,{title:"Delivery Plan Creation"}),e.jsx("main",{className:"p-8",children:e.jsxs("div",{className:"flex items-center justify-center h-32",children:[e.jsx(J,{className:"h-6 w-6 animate-spin"}),e.jsx("span",{className:"ml-2",children:"Loading pod details..."})]})})]})]})});if(!r)return e.jsx(W,{children:e.jsxs("div",{className:"min-h-screen flex w-full bg-gray-50",children:[e.jsx(I,{}),e.jsxs(L,{className:"flex-1",children:[e.jsx(z,{title:"Delivery Plan Creation"}),e.jsx("main",{className:"p-8",children:e.jsx(_,{children:e.jsx(G,{className:"p-6",children:e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-red-600",children:"Pod not found. Please select a valid pod."}),e.jsx(P,{onClick:k,className:"mt-4",children:"Back to Pod Management"})]})})})})]})]})});if(j&&!s)return e.jsx(W,{children:e.jsxs("div",{className:"min-h-screen flex w-full bg-gray-50",children:[e.jsx(I,{}),e.jsxs(L,{className:"flex-1",children:[e.jsx(z,{title:"Delivery Plan"}),e.jsx("main",{className:"p-8 max-w-4xl mx-auto",children:e.jsx(Me,{podDetails:r,onViewSprintBoard:D,onBackToPodManagement:k})})]})]})});Object.values(g).reduce((m,d)=>m+d.hoursPerDay*d.daysPerWeek,0);const E=r?{projectId:r.project_id,title:((T=r.projects)==null?void 0:T.title)||r.pod_name,description:((A=r.projects)==null?void 0:A.description)||"",complexity:l.complexity,targetWeeks:l.targetCompletionWeeks,bufferWeeks:l.bufferWeeks}:null,S=r?{techLeadId:r.tech_lead_id,members:(a==null?void 0:a.map(m=>{var d,b;return{userId:m.user_id,role:m.role,hoursPerDay:((d=g[m.user_id])==null?void 0:d.hoursPerDay)||4,daysPerWeek:((b=g[m.user_id])==null?void 0:b.daysPerWeek)||5}}))||[],totalMembers:r.current_members}:null;return e.jsxs(W,{children:[e.jsxs("div",{className:"min-h-screen flex w-full bg-gray-50",children:[e.jsx(I,{}),e.jsxs(L,{className:"flex-1",children:[e.jsx(z,{title:He(s)}),e.jsx("main",{className:"p-8 max-w-4xl mx-auto",children:e.jsxs("div",{className:"space-y-6",children:[e.jsx(Oe,{mode:s}),e.jsx(Ie,{podDetails:r}),e.jsx(Le,{podMembers:a,memberCommitments:g,onCommitmentChange:h,projectSettings:l,currentMembers:r.current_members}),e.jsx(ze,{projectSettings:l,onProjectSettingsChange:w}),e.jsx(Re,{mode:s,onBackToPodManagement:k,onGenerateDeliveryPlan:N})]})})]})]}),E&&S&&e.jsx(We,{open:c,onOpenChange:v,podId:i,projectData:E,teamCommitment:S,onComplete:F})]})}export{fs 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.