1"use strict";(self.webpackChunkthescope360_app=self.webpackChunkthescope360_app||[]).push([[7069],{10506(e,t,s){s.d(t,{A:()=>i});s(65043);var l=s(45029),a=s(70579);const i=()=>(0,a.jsx)("div",{className:"w-full flex justify-end mb-4",children:(0,a.jsx)(l.N_,{to:"/admin/simulation",className:"inline-flex items-center rounded-full bg-yellow-400 text-slate-900 px-4 py-1.5 text-xs font-semibold shadow-sm hover:bg-yellow-300 transition",children:"\u2190 Back to Simulation Dashboard"})})},37069(e,t,s){s.r(t),s.d(t,{default:()=>r});var l=s(65043),a=s(10506),i=s(70579);function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;const s=(null===e||void 0===e?void 0:e.history)||[],l=s.length+1,a=Math.min(100,Math.round(l/5*100)),i=l>=5,n={stepId:"step-".concat(l),type:"multiple_choice",situationText:1===l?"It\u2019s week 2. Your sponsor just asked if you can also add a full student portal to the scope at no extra cost.":"Demo step ".concat(l,". In the future, this text will come from the AI and react to the learner\u2019s previous decisions."),question:"As the Project Manager, what is the BEST next action in this situation?",options:[{id:"A",text:"Agree immediately to keep the sponsor happy and figure it out later."},{id:"B",text:"Explain the impact on scope, schedule, and budget, and suggest a formal change request."},{id:"C",text:"Tell the team to start on the student portal without informing anyone."},{id:"D",text:"Ignore the request and hope the sponsor forgets."}]},o=t?"You chose option ".concat(t,". In the fully AI-driven version, this feedback will explain why your decision helps or hurts the project."):"Make your first decision to see how the simulated project responds.",r=10*l,d={scope:"Stable",schedule:l>=3?"At Risk":"On Track",budget:"On Budget"},c=[...s,{stepNumber:l,stepId:n.stepId,situationText:n.situationText,question:n.question,options:n.options,feedback:o,health:d,scoreAfter:r,timestamp:Date.now(),learnerAnswer:t||null}];return{simId:"pm101_module1",runId:"local-demo-run",projectTitle:"PM101 \u2013 Yellow Bridge Website Overhaul",projectSummary:"You are the Project Manager for a website overhaul for Yellow Bridge Learning, a small online education company. Your goal is to deliver a new, mobile-friendly website in 12 weeks without blowing the budget.",health:d,currentStep:n,feedback:o,score:r,stepNumber:l,estimatedSteps:5,progressPercent:a,uiHints:{highlightScope:!0,pulseHealth:l>=3},eventLog:["Step ".concat(l,": Demo event \u2013 decision processed."),1===l?"Stakeholder requested additional functionality without a change request.":"In the real version, this log will be built by the AI."],history:c,done:i}}function o(){const[e,t]=(0,l.useState)(null),[s,a]=(0,l.useState)(!0),[o,r]=(0,l.useState)(""),[d,c]=(0,l.useState)("");(0,l.useEffect)(()=>{try{a(!0);const e=n(null,null);t(e),c("")}catch(e){console.error("PM101 local sim init error:",e),c("Failed to start local simulation.")}finally{a(!1)}},[]);if(s&&!e)return(0,i.jsx)("div",{className:"flex items-center justify-center py-16",children:(0,i.jsx)("p",{className:"text-sm text-slate-300 animate-pulse",children:"Starting PM101 simulation\u2026"})});if(!e)return(0,i.jsx)("div",{className:"p-4 text-sm text-red-300",children:"Unable to load simulation. Please try again later."});const{projectTitle:x,projectSummary:h,currentStep:m,progressPercent:u,health:p,eventLog:b,done:j}=e;return(0,i.jsxs)("div",{className:"w-full space-y-4",children:[(0,i.jsxs)("div",{className:"rounded-2xl border border-slate-800 bg-slate-900/80 p-4",children:[(0,i.jsx)("h2",{className:"text-lg font-semibold text-yellow-300",children:x}),(0,i.jsx)("p",{className:"mt-1 text-xs text-slate-300",children:h}),(0,i.jsxs)("div",{className:"mt-3 flex items-center gap-4 text-xs text-slate-300",children:[(0,i.jsxs)("div",{className:"flex-1",children:[(0,i.jsxs)("div",{className:"flex justify-between mb-1",children:[(0,i.jsx)("span",{children:"Simulation Progress"}),(0,i.jsxs)("span",{className:"font-semibold text-yellow-300",children:[u,"%"]})]}),(0,i.jsx)("div",{className:"h-2 w-full rounded-full bg-slate-800 overflow-hidden",children:(0,i.jsx)("div",{className:"h-full rounded-full bg-yellow-400 transition-all",style:{width:"".concat(u,"%")}})})]}),(0,i.jsxs)("div",{className:"flex gap-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{className:"text-[10px] uppercase text-slate-500",children:"Scope"}),(0,i.jsx)("p",{className:"text-xs",children:p.scope})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{className:"text-[10px] uppercase text-slate-500",children:"Schedule"}),(0,i.jsx)("p",{className:"text-xs",children:p.schedule})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{className:"text-[10px] uppercase text-slate-500",children:"Budget"}),(0,i.jsx)("p",{className:"text-xs",children:p.budget})]})]})]})]}),(0,i.jsxs)("div",{className:"grid gap-4 md:grid-cols-3",children:[(0,i.jsxs)("div",{className:"md:col-span-2 rounded-2xl border border-slate-800 bg-slate-900/80 p-4",children:[(0,i.jsx)("p",{className:"text-[11px] uppercase tracking-wide text-slate-500 mb-1",children:"Situation"}),(0,i.jsx)("p",{className:"text-sm text-slate-100 mb-3",children:m.situationText}),(0,i.jsx)("p",{className:"text-[11px] uppercase tracking-wide text-slate-500 mb-1",children:"Question"}),(0,i.jsx)("p",{className:"text-sm text-slate-100 mb-3",children:m.question}),(0,i.jsx)("div",{className:"space-y-2",children:m.options.map(e=>(0,i.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 rounded-xl border px-3 py-2 text-xs transition ".concat(o===e.id?"border-yellow-400 bg-yellow-400/10":"border-slate-700 bg-slate-900/80 hover:border-slate-500"),children:[(0,i.jsx)("input",{type:"radio",name:"pm101-option",value:e.id,checked:o===e.id,onChange:()=>r(e.id),className:"mt-0.5"}),(0,i.jsx)("div",{children:(0,i.jsxs)("div",{className:"font-semibold text-slate-100",children:[e.id,"."," ",(0,i.jsx)("span",{className:"font-normal text-slate-200",children:e.text})]})})]},e.id))}),d&&(0,i.jsx)("p",{className:"mt-3 text-xs text-red-300",children:d}),(0,i.jsx)("div",{className:"mt-4 flex justify-end",children:(0,i.jsx)("button",{onClick:()=>
1{if(o)try{a(!0),c("");const s=n(e,o);t(s),r("")}catch(s){console.error("PM101 local sim step error:",s),c("Something went wrong advancing the simulation.")}finally{a(!1)}else c("Please select an option before continuing.")},disabled:s,className:"inline-flex items-center rounded-full bg-yellow-400 px-4 py-1.5 text-xs font-semibold text-slate-900 shadow-sm hover:bg-yellow-300 disabled:opacity-60",children:j?"Review Final Step":"Submit & Continue \u2192"})})]}),(0,i.jsxs)("div",{className:"rounded-2xl border border-slate-800 bg-slate-900/80 p-4 text-xs text-slate-300",children:[(0,i.jsx)("p",{className:"text-[11px] uppercase tracking-wide text-slate-500 mb-2",children:"Project Event Log"}),(0,i.jsx)("ul",{className:"space-y-1",children:b.map((e,t)=>(0,i.jsxs)("li",{className:"text-[11px]",children:["\u2022 ",e]},t))}),j&&(0,i.jsxs)("div",{className:"mt-4 rounded-xl border border-emerald-500/60 bg-emerald-900/40 p-3 text-[11px] text-emerald-100",children:[(0,i.jsx)("p",{className:"font-semibold mb-1",children:"Demo Complete"}),(0,i.jsx)("p",{children:"You\u2019ve reached the last demo step. In the full version, this is where we\u2019d summarize your decisions and reflect on what went well and what to adjust as a Project Manager."})]})]})]})]})}const r=()=>(0,i.jsx)("div",{className:"min-h-screen bg-slate-950 text-slate-100 px-4 py-8",children:(0,i.jsxs)("div",{className:"max-w-6xl mx-auto",children:[(0,i.jsx)(a.A,{}),(0,i.jsxs)("header",{className:"mb-4",children:[(0,i.jsx)("h1",{className:"text-2xl font-bold text-yellow-300",children:"PM101 AI Scenario Simulation \u2013 Admin Preview"}),(0,i.jsx)("p",{className:"mt-1 text-sm text-slate-400",children:"This is an admin-only view of the PM101 simulation. Use it to test the flow, questions, and AI behavior before connecting it to the learner-facing course."})]}),(0,i.jsx)("div",{className:"mt-4 rounded-2xl border border-slate-800 bg-slate-900/70 p-2",children:(0,i.jsx)(o,{})})]})})}}]); 2//# sourceMappingURL=7069.64373e36.chunk.js.map
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.