@nivora/matrix 0.4.1 → 0.4.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.
Files changed (101) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -6
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +8 -8
  6. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  7. package/.next/server/app/_global-error.html +2 -2
  8. package/.next/server/app/_global-error.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/_not-found.html +1 -1
  17. package/.next/server/app/_not-found.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  24. package/.next/server/app/matrix/page.js +1 -1
  25. package/.next/server/app/matrix/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/page.js +1 -1
  27. package/.next/server/app/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/releases/[id]/page.js +6 -6
  29. package/.next/server/app/releases/[id]/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/releases/page.js +1 -1
  31. package/.next/server/app/releases/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/specs/[id]/page.js +1 -1
  33. package/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/traceability/archive/page.js +2 -2
  35. package/.next/server/app/traceability/archive/page.js.nft.json +1 -1
  36. package/.next/server/app/traceability/archive/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/traceability/design/[id]/page.js +1 -1
  38. package/.next/server/app/traceability/design/[id]/page.js.nft.json +1 -1
  39. package/.next/server/app/traceability/design/[id]/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/traceability/design/new/page.js +1 -1
  41. package/.next/server/app/traceability/design/new/page.js.nft.json +1 -1
  42. package/.next/server/app/traceability/design/new/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/traceability/design/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/traceability/fs/[id]/page.js +3 -3
  45. package/.next/server/app/traceability/fs/[id]/page.js.nft.json +1 -1
  46. package/.next/server/app/traceability/fs/[id]/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/traceability/fs/page.js +1 -1
  48. package/.next/server/app/traceability/fs/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/traceability/page.js +1 -1
  50. package/.next/server/app/traceability/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/traceability/risk/[id]/page.js +2 -2
  52. package/.next/server/app/traceability/risk/[id]/page.js.nft.json +1 -1
  53. package/.next/server/app/traceability/risk/[id]/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/traceability/risk/page.js +1 -1
  55. package/.next/server/app/traceability/risk/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/traceability/urs/[id]/page.js +2 -2
  57. package/.next/server/app/traceability/urs/[id]/page.js.nft.json +1 -1
  58. package/.next/server/app/traceability/urs/[id]/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/traceability/urs/page.js +1 -1
  60. package/.next/server/app/traceability/urs/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app-paths-manifest.json +6 -6
  62. package/.next/server/chunks/1030.js +1 -1
  63. package/.next/server/chunks/1058.js +1 -1
  64. package/.next/server/chunks/1069.js +1 -0
  65. package/.next/server/chunks/1205.js +1 -1
  66. package/.next/server/chunks/{9231.js → 1944.js} +2 -2
  67. package/.next/server/chunks/2155.js +1 -0
  68. package/.next/server/chunks/2325.js +1 -1
  69. package/.next/server/chunks/2937.js +1 -0
  70. package/.next/server/chunks/5352.js +1 -1
  71. package/.next/server/chunks/6658.js +2 -2
  72. package/.next/server/middleware-build-manifest.js +1 -1
  73. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  74. package/.next/server/pages/404.html +1 -1
  75. package/.next/server/pages/500.html +2 -2
  76. package/.next/server/server-reference-manifest.js +1 -1
  77. package/.next/server/server-reference-manifest.json +1 -1
  78. package/.next/static/chunks/2354.acb14c4084b3e7d7.js +1 -0
  79. package/.next/static/chunks/{4016-aa5761d6944c564e.js → 4016-96cb00e9f2ec18bb.js} +1 -1
  80. package/.next/static/chunks/8216.2418ee0365516e61.js +1 -0
  81. package/.next/static/chunks/app/releases/[id]/{page-ed5f3932911176e1.js → page-e54448c7cd9b5309.js} +2 -2
  82. package/.next/static/chunks/app/releases/page-6eac3150e0b7c55a.js +1 -0
  83. package/.next/static/chunks/app/specs/[id]/{page-8c890ab08da58f84.js → page-998690b20f68a050.js} +1 -1
  84. package/.next/static/chunks/app/traceability/archive/page-36eb06cedbe9077d.js +1 -0
  85. package/.next/static/chunks/app/traceability/fs/[id]/{page-88def3234ccdc0ff.js → page-fc696bb0daa8fbcd.js} +2 -2
  86. package/.next/static/chunks/app/traceability/risk/[id]/{page-adc9c209850269e5.js → page-5f8e49fa5ef06db1.js} +1 -1
  87. package/.next/static/chunks/app/traceability/urs/[id]/page-42ff1f8818170f03.js +1 -0
  88. package/.next/static/chunks/webpack-07141ebab49d17dd.js +1 -0
  89. package/bin/cli.js +13 -3
  90. package/package.json +1 -1
  91. package/.next/server/chunks/4228.js +0 -1
  92. package/.next/server/chunks/7792.js +0 -1
  93. package/.next/server/chunks/972.js +0 -1
  94. package/.next/static/chunks/6184.1deabc6af2557dbb.js +0 -1
  95. package/.next/static/chunks/9447.55ff38194a755c72.js +0 -1
  96. package/.next/static/chunks/app/releases/page-4e43a538a0e874d8.js +0 -1
  97. package/.next/static/chunks/app/traceability/archive/page-c458b43550f7034d.js +0 -1
  98. package/.next/static/chunks/app/traceability/urs/[id]/page-850d1a36c8348af1.js +0 -1
  99. package/.next/static/chunks/webpack-3cbbd068a3e89965.js +0 -1
  100. /package/.next/static/{q_cOKaae4m3MSKJsyyYq4 → Xs7NFm1JSD7WIZQHo3DRF}/_buildManifest.js +0 -0
  101. /package/.next/static/{q_cOKaae4m3MSKJsyyYq4 → Xs7NFm1JSD7WIZQHo3DRF}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[41],{939:(e,r,t)=>{"use strict";t.d(r,{ReleaseDetailClient:()=>h});var s=t(95155),i=t(12115),a=t(98500),l=t.n(a),n=t(9339);let d=(0,n.createServerReference)("6026dfbb663f74c4b2282f758f8484a68a07067529",n.callServer,void 0,n.findSourceMapURL,"updateReleaseAction"),o=(0,n.createServerReference)("6080a8a6d1a4f73e74f361749368f82c32b77b1177",n.callServer,void 0,n.findSourceMapURL,"tagFSToReleaseAction"),c=(0,n.createServerReference)("60c637a3ec6665df78770caed142cef1cd0c438ebc",n.callServer,void 0,n.findSourceMapURL,"untagFSFromReleaseAction"),m=(0,n.createServerReference)("405014fbcade6f45911581673734df9661082708ac",n.callServer,void 0,n.findSourceMapURL,"createDefectAction"),p=(0,n.createServerReference)("40f05c69684ec68a8ef1006b9eb277f12cd553eaac",n.callServer,void 0,n.findSourceMapURL,"loadTestRunAction");function h({release:e,taggedFS:r,availableFS:t,testRuns:a,defects:n}){let[h,g]=(0,i.useState)(!1),[x,u]=(0,i.useState)(!1),[v,y]=(0,i.useState)([]),[f,j]=(0,i.useState)(null),[b,S]=(0,i.useState)({}),[N,C]=(0,i.useState)(null),[k,R]=(0,i.useState)(new Set),[w,B]=(0,i.useState)({isOpen:!1}),[_,L]=(0,i.useState)({title:"",description:"",status:"open"}),[z,D]=(0,i.useState)({titleError:!1,descriptionError:!1}),[W,E]=(0,i.useTransition)(),[F,T]=(0,i.useState)({version:e.version,name:e.name,status:e.status,notes:e.notes||""}),I=(e,r,t)=>{B({isOpen:!0,testResultId:e,fsId:r,scenarioName:t}),L({title:t?`Defect: ${t} failure`:"",description:t?`Failure in ${r} - ${t}.
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[41],{9339:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={callServer:function(){return a.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var i in s)Object.defineProperty(r,i,{enumerable:!0,get:s[i]});let a=t(77304),l=t(4060),n=t(77197)},64926:(e,r,t)=>{Promise.resolve().then(t.bind(t,76421))},76421:(e,r,t)=>{"use strict";t.d(r,{ReleaseDetailClient:()=>h});var s=t(95155),i=t(12115),a=t(98500),l=t.n(a),n=t(9339);let d=(0,n.createServerReference)("6012406dba159feaee9c8ff4ea24e93190d27191c5",n.callServer,void 0,n.findSourceMapURL,"updateReleaseAction"),o=(0,n.createServerReference)("60048d56bd5683a2dd9af6b006ccd2b11449f327a5",n.callServer,void 0,n.findSourceMapURL,"tagFSToReleaseAction"),c=(0,n.createServerReference)("60cd1d261fbb833af6315e61a0acd05abafe3faa24",n.callServer,void 0,n.findSourceMapURL,"untagFSFromReleaseAction"),m=(0,n.createServerReference)("40009c4a35f7c9be117f41ceb91ae4034b3b2bbb04",n.callServer,void 0,n.findSourceMapURL,"createDefectAction"),p=(0,n.createServerReference)("403d9cbb924284a877fbd4f6a702ef8b3d731c92ea",n.callServer,void 0,n.findSourceMapURL,"loadTestRunAction");function h({release:e,taggedFS:r,availableFS:t,testRuns:a,defects:n}){let[h,g]=(0,i.useState)(!1),[x,u]=(0,i.useState)(!1),[v,y]=(0,i.useState)([]),[f,j]=(0,i.useState)(null),[b,S]=(0,i.useState)({}),[N,C]=(0,i.useState)(null),[k,R]=(0,i.useState)(new Set),[w,B]=(0,i.useState)({isOpen:!1}),[_,L]=(0,i.useState)({title:"",description:"",status:"open"}),[z,D]=(0,i.useState)({titleError:!1,descriptionError:!1}),[W,E]=(0,i.useTransition)(),[F,T]=(0,i.useState)({version:e.version,name:e.name,status:e.status,notes:e.notes||""}),I=(e,r,t)=>{B({isOpen:!0,testResultId:e,fsId:r,scenarioName:t}),L({title:t?`Defect: ${t} failure`:"",description:t?`Failure in ${r} - ${t}.
2
2
 
3
3
  Root Cause:
4
4
 
5
- Mitigation:`:"",status:"open"})},A={planning:{bg:"rgba(168, 85, 247, 0.1)",color:"#a855f7"},testing:{bg:"rgba(59, 130, 246, 0.1)",color:"#3b82f6"},released:{bg:"rgba(34, 197, 94, 0.1)",color:"#22c55e"}}[e.status];return(0,s.jsxs)("div",{style:{maxWidth:"1200px",margin:"0 auto",padding:"2rem"},children:[(0,s.jsx)("div",{style:{marginBottom:"1.5rem"},children:(0,s.jsx)(l(),{href:"/releases",style:{color:"var(--text-secondary)",textDecoration:"none"},children:"← Back to Releases"})}),(0,s.jsxs)("header",{style:{marginBottom:"2rem"},children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem"},children:[(0,s.jsxs)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:A.color},children:[" ",e.id," "]}),(0,s.jsxs)("span",{style:{fontSize:"1.25rem",fontWeight:600},children:["v",e.version]}),(0,s.jsx)("span",{className:"badge",style:{background:A.bg,color:A.color,padding:"0.5rem 1rem"},children:e.status}),(0,s.jsx)("button",{onClick:()=>g(!h),className:"btn btn-primary",style:{marginLeft:"auto"},children:h?"Cancel":"✏️ Edit"})]}),(0,s.jsx)("h1",{style:{fontSize:"2rem",fontWeight:700},children:e.name}),(0,s.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["Created ",e.created_at,e.released_at&&` • Released ${e.released_at}`]})]}),h&&(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsx)("h2",{className:"card-title",children:"Edit Release"}),(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 2fr 1fr",gap:"1rem",marginBottom:"1rem"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Version"}),(0,s.jsx)("input",{type:"text",value:F.version,onChange:e=>T({...F,version:e.target.value}),className:"input"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Name"}),(0,s.jsx)("input",{type:"text",value:F.name,onChange:e=>T({...F,name:e.target.value}),className:"input"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Status"}),(0,s.jsxs)("select",{value:F.status,onChange:e=>T({...F,status:e.target.value}),className:"input",children:[(0,s.jsx)("option",{value:"planning",children:"Planning"}),(0,s.jsx)("option",{value:"testing",children:"Testing"}),(0,s.jsx)("option",{value:"released",children:"Released"})]})]})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Notes"}),(0,s.jsx)("textarea",{value:F.notes,onChange:e=>T({...F,notes:e.target.value}),rows:3,className:"input",style:{resize:"vertical"}})]}),(0,s.jsx)("button",{onClick:()=>{E(async()=>{await d(e.id,F),g(!1)})},className:"btn btn-primary",disabled:W,children:W?"Saving...":"Save Changes"})]}),e.notes&&!h&&(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsx)("h2",{className:"card-title",children:"\uD83D\uDCDD Notes"}),(0,s.jsx)("p",{style:{color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:e.notes})]}),(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem",borderLeft:"4px solid var(--error)"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,s.jsxs)("h2",{className:"card-title",children:["\uD83D\uDEA8 Defects & Deviations (",n.length,")"]}),(0,s.jsx)("button",{className:"btn",onClick:()=>I(),children:"+ Log Defect"})]}),0===n.length?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No defects logged. Any failed tests must be resolved or logged as a defect."}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:n.map(e=>(0,s.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"open"===e.status?"3px solid red":"3px solid green"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,s.jsxs)("div",{style:{fontWeight:600},children:[e.id,": ",e.title]}),(0,s.jsx)("div",{className:"badge",style:{background:"open"===e.status?"rgba(239, 68, 68, 0.1)":"rgba(34, 197, 94, 0.1)",color:"open"===e.status?"var(--error)":"var(--success)"},children:e.status.toUpperCase()})]}),(0,s.jsx)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:e.description}),e.test_result_id&&(0,s.jsxs)("div",{style:{marginTop:"0.5rem",fontSize:"0.75rem",color:"var(--warning)"},children:["Linked to failed test result #",e.test_result_id]})]},e.id))})]}),(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,s.jsxs)("h2",{className:"card-title",style:{margin:0},children:["⚙️ Features (",r.length,")"]}),(0,s.jsx)("button",{onClick:()=>u(!0),className:"btn",disabled:0===t.length,children:"+ Add Features"})]}),x&&(0,s.jsxs)("div",{style:{marginBottom:"1rem",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsx)("div",{style:{marginBottom:"0.5rem",fontWeight:500},children:"Select features to add:"}),(0,s.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem",marginBottom:"1rem"},children:t.map(e=>(0,s.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem",cursor:"pointer"},children:[(0,s.jsx)("input",{type:"checkbox",checked:v.includes(e.id),onChange:r=>{r.target.checked?y([...v,e.id]):y(v.filter(r=>r!==e.id))}}),(0,s.jsx)("code",{style:{color:"var(--warning)"},children:e.id}),(0,s.jsx)("span",{children:e.title})]},e.id))}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,s.jsx)("button",{onClick:()=>{u(!1),y([])},className:"btn",children:"Cancel"}),(0,s.jsx)("button",{onClick:()=>{0!==v.length&&E(async()=>{await o(e.id,v),u(!1),y([])})},className:"btn btn-primary",disabled:W||0===v.length,children:W?"Adding...":`Add ${v.length} Feature${1!==v.length?"s":""}`})]})]}),0===r.length?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No features tagged yet. Add features to track them in this release."}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:r.map(r=>(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsxs)(l(),{href:`/specs/${r.id}`,style:{flex:1,textDecoration:"none"},children:[(0,s.jsx)("code",{style:{fontWeight:600,color:"var(--warning)",marginRight:"0.75rem"},children:r.id}),(0,s.jsx)("span",{style:{color:"var(--text-primary)"},children:r.title}),(0,s.jsxs)("span",{style:{marginLeft:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:[r.scenario_count," scenarios"]})]}),(0,s.jsx)("button",{onClick:()=>{var t;return t=r.id,void E(async()=>{await c(e.id,t)})},className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},disabled:W,children:"\xd7"})]},r.id))})]}),(0,s.jsxs)("div",{className:"card",children:[(0,s.jsxs)("h2",{className:"card-title",children:["\uD83E\uDDEA Test Runs (",a.length,")"]}),0===a.length?(0,s.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["No test runs yet. Import Cucumber results: ",(0,s.jsxs)("code",{children:["matrix release import-results results.json -r ",e.id]})]}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:a.map(e=>{let r=e.total>0?e.passed/e.total*100:0,t=f===e.id,i=async()=>{if(t)return void j(null);if(j(e.id),!b[e.id]){C(e.id);let r=await p(e.id);r&&S(t=>({...t,[e.id]:r.results})),C(null)}},a=b[e.id]||[],d=a.reduce((e,r)=>(e[r.fs_id]||(e[r.fs_id]=[]),e[r.fs_id].push(r),e),{});return(0,s.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer"},onClick:i,children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{fontWeight:600,marginBottom:"0.25rem"},children:[e.failed>0?"❌":"✅"," Run #",e.id," ",t?"\uD83D\uDD3D":"▶"]}),(0,s.jsxs)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:[e.run_date," • ",e.source]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"1rem",textAlign:"center"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontWeight:700,color:"var(--success)"},children:e.passed}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Passed"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontWeight:700,color:"var(--error)"},children:e.failed}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Failed"})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{fontWeight:700,color:100===r?"var(--success)":r>=80?"var(--warning)":"var(--error)"},children:[r.toFixed(0),"%"]}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Pass Rate"})]})]})]}),t&&(0,s.jsx)("div",{style:{marginTop:"1rem",paddingTop:"1rem",borderTop:"1px solid var(--border)"},children:N===e.id?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"Loading results..."}):0===a.length?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No individual results recorded for this run."}):(0,s.jsx)("div",{style:{display:"grid",gap:"1rem"},children:Object.entries(d).map(([e,r])=>(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontWeight:600,marginBottom:"0.5rem",color:"var(--warning)"},children:(0,s.jsx)(l(),{href:`/specs/${e}`,style:{color:"inherit",textDecoration:"none"},children:e})}),(0,s.jsx)("div",{style:{display:"grid",gap:"0.25rem",paddingLeft:"1rem"},children:r.map(r=>{let t,i="passed"===r.status?"✅":"failed"===r.status?"❌":"⏭️";"passed"===r.status||r.status;let a=(t=r.id,n.some(e=>e.test_result_id===t)),l=r.error_message&&"failed"===r.status,d=k.has(r.id);return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",padding:"0.25rem 0"},children:[(0,s.jsx)("span",{children:i}),(0,s.jsx)("span",{style:{flex:1},children:r.scenario_name}),null!=r.duration_ms&&(0,s.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:[r.duration_ms,"ms"]}),"failed"===r.status&&!a&&(0,s.jsx)("button",{className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},onClick:t=>{t.stopPropagation(),I(r.id,e,r.scenario_name)},children:"Log Defect"}),"failed"===r.status&&a&&(0,s.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--warning)"},children:"Defect Logged"}),l&&(0,s.jsx)("button",{className:"btn",style:{padding:"0.15rem 0.35rem",fontSize:"0.7rem"},onClick:e=>{var t;e.stopPropagation(),t=r.id,R(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},children:d?"▲ Hide Error":"▼ Show Error"})]}),l&&d&&(0,s.jsx)("div",{style:{marginLeft:"1.5rem",padding:"0.5rem",background:"rgba(239, 68, 68, 0.1)",borderRadius:"4px",fontSize:"0.8rem",fontFamily:"monospace",whiteSpace:"pre-wrap",color:"var(--error)",marginBottom:"0.5rem"},children:r.error_message})]},r.id)})})]},e))})})]},e.id)})})]}),w.isOpen&&(0,s.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},children:(0,s.jsxs)("div",{className:"card",style:{width:"500px",maxWidth:"90%"},children:[(0,s.jsx)("h2",{className:"card-title",children:"Log Defect / Deviation"}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Title ",(0,s.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,s.jsx)("input",{className:"input",value:_.title,onChange:e=>{L({..._,title:e.target.value}),e.target.value&&D(e=>({...e,titleError:!1}))},placeholder:"Defect summary",style:z.titleError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),z.titleError&&(0,s.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Title is required"})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Description & Root Cause ",(0,s.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,s.jsx)("textarea",{className:"input",rows:5,value:_.description,onChange:e=>{L({..._,description:e.target.value}),e.target.value&&D(e=>({...e,descriptionError:!1}))},placeholder:"Describe the failure, root cause, and why it is acceptable (if deviating) or mitigation plan.",style:z.descriptionError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),z.descriptionError&&(0,s.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Description is required"})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsx)("label",{style:{display:"block",marginBottom:"0.5rem"},children:"Status"}),(0,s.jsxs)("select",{className:"input",value:_.status,onChange:e=>L({..._,status:e.target.value}),children:[(0,s.jsx)("option",{value:"open",children:"Open (Needs Fix)"}),(0,s.jsx)("option",{value:"resolved",children:"Resolved (Fixed)"}),(0,s.jsx)("option",{value:"accepted",children:"Accepted (Permanent Deviation)"})]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"flex-end"},children:[(0,s.jsx)("button",{className:"btn",onClick:()=>{B({isOpen:!1}),D({titleError:!1,descriptionError:!1})},children:"Cancel"}),(0,s.jsx)("button",{className:"btn btn-primary",onClick:()=>{let r=!_.title.trim(),t=!_.description.trim();r||t?D({titleError:r,descriptionError:t}):E(async()=>{try{await m({releaseId:e.id,testResultId:w.testResultId,title:_.title,description:_.description,status:_.status}),B({isOpen:!1}),L({title:"",description:"",status:"open"})}catch(e){console.error("Failed to create defect:",e),alert("Failed to create defect. Check console for details.")}})},disabled:W,children:W?"Logging...":"Log Defect"})]})]})})]})}},9339:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={callServer:function(){return a.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var i in s)Object.defineProperty(r,i,{enumerable:!0,get:s[i]});let a=t(77304),l=t(4060),n=t(77197)},64926:(e,r,t)=>{Promise.resolve().then(t.bind(t,939))}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=64926)),_N_E=e.O()}]);
5
+ Mitigation:`:"",status:"open"})},A={planning:{bg:"rgba(168, 85, 247, 0.1)",color:"#a855f7"},testing:{bg:"rgba(59, 130, 246, 0.1)",color:"#3b82f6"},released:{bg:"rgba(34, 197, 94, 0.1)",color:"#22c55e"}}[e.status];return(0,s.jsxs)("div",{style:{maxWidth:"1200px",margin:"0 auto",padding:"2rem"},children:[(0,s.jsx)("div",{style:{marginBottom:"1.5rem"},children:(0,s.jsx)(l(),{href:"/releases",style:{color:"var(--text-secondary)",textDecoration:"none"},children:"← Back to Releases"})}),(0,s.jsxs)("header",{style:{marginBottom:"2rem"},children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem"},children:[(0,s.jsxs)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:A.color},children:[" ",e.id," "]}),(0,s.jsxs)("span",{style:{fontSize:"1.25rem",fontWeight:600},children:["v",e.version]}),(0,s.jsx)("span",{className:"badge",style:{background:A.bg,color:A.color,padding:"0.5rem 1rem"},children:e.status}),(0,s.jsx)("button",{onClick:()=>g(!h),className:"btn btn-primary",style:{marginLeft:"auto"},children:h?"Cancel":"✏️ Edit"})]}),(0,s.jsx)("h1",{style:{fontSize:"2rem",fontWeight:700},children:e.name}),(0,s.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["Created ",e.created_at,e.released_at&&` • Released ${e.released_at}`]})]}),h&&(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsx)("h2",{className:"card-title",children:"Edit Release"}),(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 2fr 1fr",gap:"1rem",marginBottom:"1rem"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Version"}),(0,s.jsx)("input",{type:"text",value:F.version,onChange:e=>T({...F,version:e.target.value}),className:"input"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Name"}),(0,s.jsx)("input",{type:"text",value:F.name,onChange:e=>T({...F,name:e.target.value}),className:"input"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Status"}),(0,s.jsxs)("select",{value:F.status,onChange:e=>T({...F,status:e.target.value}),className:"input",children:[(0,s.jsx)("option",{value:"planning",children:"Planning"}),(0,s.jsx)("option",{value:"testing",children:"Testing"}),(0,s.jsx)("option",{value:"released",children:"Released"})]})]})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Notes"}),(0,s.jsx)("textarea",{value:F.notes,onChange:e=>T({...F,notes:e.target.value}),rows:3,className:"input",style:{resize:"vertical"}})]}),(0,s.jsx)("button",{onClick:()=>{E(async()=>{await d(e.id,F),g(!1)})},className:"btn btn-primary",disabled:W,children:W?"Saving...":"Save Changes"})]}),e.notes&&!h&&(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsx)("h2",{className:"card-title",children:"\uD83D\uDCDD Notes"}),(0,s.jsx)("p",{style:{color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:e.notes})]}),(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem",borderLeft:"4px solid var(--error)"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,s.jsxs)("h2",{className:"card-title",children:["\uD83D\uDEA8 Defects & Deviations (",n.length,")"]}),(0,s.jsx)("button",{className:"btn",onClick:()=>I(),children:"+ Log Defect"})]}),0===n.length?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No defects logged. Any failed tests must be resolved or logged as a defect."}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:n.map(e=>(0,s.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"open"===e.status?"3px solid red":"3px solid green"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,s.jsxs)("div",{style:{fontWeight:600},children:[e.id,": ",e.title]}),(0,s.jsx)("div",{className:"badge",style:{background:"open"===e.status?"rgba(239, 68, 68, 0.1)":"rgba(34, 197, 94, 0.1)",color:"open"===e.status?"var(--error)":"var(--success)"},children:e.status.toUpperCase()})]}),(0,s.jsx)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:e.description}),e.test_result_id&&(0,s.jsxs)("div",{style:{marginTop:"0.5rem",fontSize:"0.75rem",color:"var(--warning)"},children:["Linked to failed test result #",e.test_result_id]})]},e.id))})]}),(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,s.jsxs)("h2",{className:"card-title",style:{margin:0},children:["⚙️ Features (",r.length,")"]}),(0,s.jsx)("button",{onClick:()=>u(!0),className:"btn",disabled:0===t.length,children:"+ Add Features"})]}),x&&(0,s.jsxs)("div",{style:{marginBottom:"1rem",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsx)("div",{style:{marginBottom:"0.5rem",fontWeight:500},children:"Select features to add:"}),(0,s.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem",marginBottom:"1rem"},children:t.map(e=>(0,s.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem",cursor:"pointer"},children:[(0,s.jsx)("input",{type:"checkbox",checked:v.includes(e.id),onChange:r=>{r.target.checked?y([...v,e.id]):y(v.filter(r=>r!==e.id))}}),(0,s.jsx)("code",{style:{color:"var(--warning)"},children:e.id}),(0,s.jsx)("span",{children:e.title})]},e.id))}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,s.jsx)("button",{onClick:()=>{u(!1),y([])},className:"btn",children:"Cancel"}),(0,s.jsx)("button",{onClick:()=>{0!==v.length&&E(async()=>{await o(e.id,v),u(!1),y([])})},className:"btn btn-primary",disabled:W||0===v.length,children:W?"Adding...":`Add ${v.length} Feature${1!==v.length?"s":""}`})]})]}),0===r.length?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No features tagged yet. Add features to track them in this release."}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:r.map(r=>(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsxs)(l(),{href:`/specs/${r.id}`,style:{flex:1,textDecoration:"none"},children:[(0,s.jsx)("code",{style:{fontWeight:600,color:"var(--warning)",marginRight:"0.75rem"},children:r.id}),(0,s.jsx)("span",{style:{color:"var(--text-primary)"},children:r.title}),(0,s.jsxs)("span",{style:{marginLeft:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:[r.scenario_count," scenarios"]})]}),(0,s.jsx)("button",{onClick:()=>{var t;return t=r.id,void E(async()=>{await c(e.id,t)})},className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},disabled:W,children:"\xd7"})]},r.id))})]}),(0,s.jsxs)("div",{className:"card",children:[(0,s.jsxs)("h2",{className:"card-title",children:["\uD83E\uDDEA Test Runs (",a.length,")"]}),0===a.length?(0,s.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["No test runs yet. Import Cucumber results: ",(0,s.jsxs)("code",{children:["matrix release import-results results.json -r ",e.id]})]}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:a.map(e=>{let r=e.total>0?e.passed/e.total*100:0,t=f===e.id,i=async()=>{if(t)return void j(null);if(j(e.id),!b[e.id]){C(e.id);let r=await p(e.id);r&&S(t=>({...t,[e.id]:r.results})),C(null)}},a=b[e.id]||[],d=a.reduce((e,r)=>(e[r.fs_id]||(e[r.fs_id]=[]),e[r.fs_id].push(r),e),{});return(0,s.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer"},onClick:i,children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{fontWeight:600,marginBottom:"0.25rem"},children:[e.failed>0?"❌":"✅"," Run #",e.id," ",t?"\uD83D\uDD3D":"▶"]}),(0,s.jsxs)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:[e.run_date," • ",e.source]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"1rem",textAlign:"center"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontWeight:700,color:"var(--success)"},children:e.passed}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Passed"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontWeight:700,color:"var(--error)"},children:e.failed}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Failed"})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{fontWeight:700,color:100===r?"var(--success)":r>=80?"var(--warning)":"var(--error)"},children:[r.toFixed(0),"%"]}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Pass Rate"})]})]})]}),t&&(0,s.jsx)("div",{style:{marginTop:"1rem",paddingTop:"1rem",borderTop:"1px solid var(--border)"},children:N===e.id?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"Loading results..."}):0===a.length?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No individual results recorded for this run."}):(0,s.jsx)("div",{style:{display:"grid",gap:"1rem"},children:Object.entries(d).map(([e,r])=>(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontWeight:600,marginBottom:"0.5rem",color:"var(--warning)"},children:(0,s.jsx)(l(),{href:`/specs/${e}`,style:{color:"inherit",textDecoration:"none"},children:e})}),(0,s.jsx)("div",{style:{display:"grid",gap:"0.25rem",paddingLeft:"1rem"},children:r.map(r=>{let t,i="passed"===r.status?"✅":"failed"===r.status?"❌":"⏭️";"passed"===r.status||r.status;let a=(t=r.id,n.some(e=>e.test_result_id===t)),l=r.error_message&&"failed"===r.status,d=k.has(r.id);return(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",padding:"0.25rem 0"},children:[(0,s.jsx)("span",{children:i}),(0,s.jsx)("span",{style:{flex:1},children:r.scenario_name}),null!=r.duration_ms&&(0,s.jsxs)("span",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:[r.duration_ms,"ms"]}),"failed"===r.status&&!a&&(0,s.jsx)("button",{className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},onClick:t=>{t.stopPropagation(),I(r.id,e,r.scenario_name)},children:"Log Defect"}),"failed"===r.status&&a&&(0,s.jsx)("span",{style:{fontSize:"0.75rem",color:"var(--warning)"},children:"Defect Logged"}),l&&(0,s.jsx)("button",{className:"btn",style:{padding:"0.15rem 0.35rem",fontSize:"0.7rem"},onClick:e=>{var t;e.stopPropagation(),t=r.id,R(e=>{let r=new Set(e);return r.has(t)?r.delete(t):r.add(t),r})},children:d?"▲ Hide Error":"▼ Show Error"})]}),l&&d&&(0,s.jsx)("div",{style:{marginLeft:"1.5rem",padding:"0.5rem",background:"rgba(239, 68, 68, 0.1)",borderRadius:"4px",fontSize:"0.8rem",fontFamily:"monospace",whiteSpace:"pre-wrap",color:"var(--error)",marginBottom:"0.5rem"},children:r.error_message})]},r.id)})})]},e))})})]},e.id)})})]}),w.isOpen&&(0,s.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},children:(0,s.jsxs)("div",{className:"card",style:{width:"500px",maxWidth:"90%"},children:[(0,s.jsx)("h2",{className:"card-title",children:"Log Defect / Deviation"}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Title ",(0,s.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,s.jsx)("input",{className:"input",value:_.title,onChange:e=>{L({..._,title:e.target.value}),e.target.value&&D(e=>({...e,titleError:!1}))},placeholder:"Defect summary",style:z.titleError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),z.titleError&&(0,s.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Title is required"})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Description & Root Cause ",(0,s.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,s.jsx)("textarea",{className:"input",rows:5,value:_.description,onChange:e=>{L({..._,description:e.target.value}),e.target.value&&D(e=>({...e,descriptionError:!1}))},placeholder:"Describe the failure, root cause, and why it is acceptable (if deviating) or mitigation plan.",style:z.descriptionError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),z.descriptionError&&(0,s.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Description is required"})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsx)("label",{style:{display:"block",marginBottom:"0.5rem"},children:"Status"}),(0,s.jsxs)("select",{className:"input",value:_.status,onChange:e=>L({..._,status:e.target.value}),children:[(0,s.jsx)("option",{value:"open",children:"Open (Needs Fix)"}),(0,s.jsx)("option",{value:"resolved",children:"Resolved (Fixed)"}),(0,s.jsx)("option",{value:"accepted",children:"Accepted (Permanent Deviation)"})]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"flex-end"},children:[(0,s.jsx)("button",{className:"btn",onClick:()=>{B({isOpen:!1}),D({titleError:!1,descriptionError:!1})},children:"Cancel"}),(0,s.jsx)("button",{className:"btn btn-primary",onClick:()=>{let r=!_.title.trim(),t=!_.description.trim();r||t?D({titleError:r,descriptionError:t}):E(async()=>{try{await m({releaseId:e.id,testResultId:w.testResultId,title:_.title,description:_.description,status:_.status}),B({isOpen:!1}),L({title:"",description:"",status:"open"})}catch(e){console.error("Failed to create defect:",e),alert("Failed to create defect. Check console for details.")}})},disabled:W,children:W?"Logging...":"Log Defect"})]})]})})]})}}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=64926)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4549],{9339:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var s={callServer:function(){return n.callServer},createServerReference:function(){return o.createServerReference},findSourceMapURL:function(){return i.findSourceMapURL}};for(var a in s)Object.defineProperty(r,a,{enumerable:!0,get:s[a]});let n=t(77304),i=t(4060),o=t(77197)},21827:(e,r,t)=>{"use strict";t.d(r,{ReleasesClient:()=>d});var s=t(95155),a=t(12115),n=t(98500),i=t.n(n),o=t(9339);let l=(0,o.createServerReference)("400c2fae5b09f2ac861c5e17d721fed892752c3d0c",o.callServer,void 0,o.findSourceMapURL,"createReleaseAction");function d({releases:e}){let[r,t]=(0,a.useState)(!1),[n,i]=(0,a.useState)(""),[o,d]=(0,a.useState)(""),[m,x]=(0,a.useState)(""),[g,h]=(0,a.useTransition)();return(0,s.jsxs)("div",{style:{maxWidth:"1200px",margin:"0 auto",padding:"2rem"},children:[(0,s.jsx)("header",{style:{marginBottom:"2rem"},children:(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{style:{fontSize:"2rem",fontWeight:700,marginBottom:"0.5rem"},children:"\uD83D\uDCE6 Releases"}),(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"Manage releases, track test execution, and compare changes"})]}),(0,s.jsx)("button",{onClick:()=>t(!0),className:"btn btn-primary",children:"+ New Release"})]})}),r&&(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem",paddingBottom:"1rem",borderBottom:"1px solid var(--border)"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h2",{style:{margin:0,fontSize:"1.25rem",fontWeight:600},children:"\uD83D\uDCE6 New Release"}),(0,s.jsx)("p",{style:{margin:"0.25rem 0 0",color:"var(--text-secondary)",fontSize:"0.875rem"},children:"Create a new release to track features and test results"})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[(0,s.jsx)("button",{onClick:()=>t(!1),disabled:g,style:{padding:"0.75rem 1.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"10px",color:"var(--text-secondary)",cursor:"pointer",fontWeight:600},children:"Cancel"}),(0,s.jsx)("button",{onClick:()=>{h(async()=>{await l({version:n,name:o,notes:m||void 0}),t(!1),i(""),d(""),x("")})},disabled:g||!n||!o,style:{padding:"0.75rem 1.5rem",fontSize:"0.9375rem",fontWeight:600,borderRadius:"10px",border:"none",cursor:!g&&n&&o?"pointer":"not-allowed",background:!g&&n&&o?"linear-gradient(135deg, var(--gradient-start), var(--gradient-end))":"var(--bg-hover)",color:!g&&n&&o?"white":"var(--text-secondary)",boxShadow:!g&&n&&o?"0 4px 12px rgba(99, 102, 241, 0.25)":"none"},children:g?"\uD83D\uDCBE Creating...":"\uD83D\uDCBE Create Release"})]})]}),(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"200px 1fr",gap:"1.5rem",marginBottom:"1.5rem"},children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("label",{style:{display:"block",fontWeight:500,fontSize:"0.875rem",marginBottom:"0.5rem",color:"var(--text-primary)"},children:["Version ",(0,s.jsx)("span",{style:{color:"var(--accent)",fontSize:"0.75rem"},children:"Required"})]}),(0,s.jsx)("input",{type:"text",value:n,onChange:e=>i(e.target.value),placeholder:"e.g., 1.0.0",style:{width:"100%",padding:"0.875rem 1rem",fontSize:"0.9375rem",background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:"10px",color:"var(--text-primary)",outline:"none"}})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("label",{style:{display:"block",fontWeight:500,fontSize:"0.875rem",marginBottom:"0.5rem",color:"var(--text-primary)"},children:["Name ",(0,s.jsx)("span",{style:{color:"var(--accent)",fontSize:"0.75rem"},children:"Required"})]}),(0,s.jsx)("input",{type:"text",value:o,onChange:e=>d(e.target.value),placeholder:"e.g., Initial Release, MVP, Feature Update",style:{width:"100%",padding:"0.875rem 1rem",fontSize:"0.9375rem",background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:"10px",color:"var(--text-primary)",outline:"none"}})]})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("label",{style:{display:"block",fontWeight:500,fontSize:"0.875rem",marginBottom:"0.5rem",color:"var(--text-primary)"},children:["Release Notes ",(0,s.jsx)("span",{style:{color:"var(--text-secondary)",fontSize:"0.8125rem",fontWeight:400},children:"— optional"})]}),(0,s.jsx)("textarea",{value:m,onChange:e=>x(e.target.value),placeholder:"What's changing in this release...",rows:4,style:{width:"100%",padding:"0.875rem 1rem",fontSize:"0.9375rem",background:"var(--bg-secondary)",border:"1px solid var(--border)",borderRadius:"10px",color:"var(--text-primary)",outline:"none",resize:"vertical",fontFamily:"inherit"}})]})]}),0===e.length?(0,s.jsxs)("div",{className:"card",style:{textAlign:"center",padding:"3rem"},children:[(0,s.jsx)("p",{style:{fontSize:"3rem",marginBottom:"1rem"},children:"\uD83D\uDCE6"}),(0,s.jsx)("h2",{style:{marginBottom:"0.5rem"},children:"No Releases Yet"}),(0,s.jsx)("p",{style:{color:"var(--text-secondary)",marginBottom:"1rem"},children:"Create your first release to start tracking features and test results."}),(0,s.jsx)("button",{onClick:()=>t(!0),className:"btn btn-primary",children:"Create First Release"})]}):(0,s.jsx)("div",{style:{display:"grid",gap:"1rem"},children:e.map(e=>(0,s.jsx)(c,{release:e},e.id))})]})}function c({release:e}){let r={planning:{bg:"rgba(168, 85, 247, 0.1)",color:"#a855f7"},testing:{bg:"rgba(59, 130, 246, 0.1)",color:"#3b82f6"},released:{bg:"rgba(34, 197, 94, 0.1)",color:"#22c55e"}}[e.status];return(0,s.jsx)(i(),{href:`/releases/${e.id}`,style:{textDecoration:"none"},children:(0,s.jsx)("div",{className:"card",style:{borderLeft:`4px solid ${r.color}`,transition:"transform 0.15s, box-shadow 0.15s",cursor:"pointer"},children:(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"},children:[(0,s.jsxs)("div",{style:{flex:1},children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",marginBottom:"0.5rem"},children:[(0,s.jsx)("code",{style:{fontSize:"1.25rem",fontWeight:700,color:r.color},children:e.id}),(0,s.jsxs)("span",{style:{fontSize:"1rem",fontWeight:600,color:"var(--text-primary)"},children:["v",e.version]}),(0,s.jsx)("span",{className:"badge",style:{background:r.bg,color:r.color},children:e.status})]}),(0,s.jsx)("h3",{style:{fontSize:"1.125rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-primary)"},children:e.name}),(0,s.jsxs)("p",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:["Created ",e.created_at,e.released_at&&` • Released ${e.released_at}`]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"1.5rem",textAlign:"center"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--warning)"},children:e.fs_count}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Features"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--accent)"},children:e.test_runs}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Test Runs"})]}),null!==e.latest_pass_rate&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:100===e.latest_pass_rate?"var(--success)":e.latest_pass_rate>=80?"var(--warning)":"var(--error)"},children:[e.latest_pass_rate.toFixed(0),"%"]}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Pass Rate"})]})]})]})})})}},65411:(e,r,t)=>{Promise.resolve().then(t.bind(t,21827))}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=65411)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5385],{9339:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={callServer:function(){return s.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var i in r)Object.defineProperty(t,i,{enumerable:!0,get:r[i]});let s=a(77304),l=a(4060),n=a(77197)},39982:(e,t,a)=>{"use strict";a.d(t,{URSDetailClient:()=>d});var r=a(95155),i=a(12115),s=a(98500),l=a.n(s),n=a(9339);let c=(0,n.createServerReference)("60ec32356e263479470747191396a309125148cf0b",n.callServer,void 0,n.findSourceMapURL,"updateURSAction");function d({urs:e,linkedFS:t,linkedRisks:a}){let[s,n]=(0,i.useState)(!1),[d,p]=(0,i.useTransition)(),[m,h]=(0,i.useState)({title:e.title,status:e.status,priority:e.priority,owner:e.owner,category:e.category,business_need:e.business_need,intended_use:e.intended_use,acceptance_criteria:e.acceptance_criteria}),u=e.title.includes("(Undefined)"),g=({value:e,onChange:t,multiline:a,placeholder:i})=>s?a?(0,r.jsx)("textarea",{value:e,onChange:e=>t(e.target.value),rows:4,className:"input",style:{width:"100%",resize:"vertical"}}):(0,r.jsx)("input",{type:"text",value:e,onChange:e=>t(e.target.value),className:"input",style:{width:"100%"}}):(0,r.jsx)("span",{style:{whiteSpace:"pre-wrap",color:"var(--text-secondary)",fontStyle:e?"normal":"italic"},children:e||i||"Not defined"}),x=({value:e,onChange:t,options:a})=>s?(0,r.jsx)("select",{value:e,onChange:e=>t(e.target.value),className:"input",children:a.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,r.jsx)("span",{style:{textTransform:"capitalize"},children:e});return(0,r.jsxs)("div",{children:[(0,r.jsxs)("header",{className:"page-header",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,r.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--success)",background:"rgba(16, 185, 129, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:e.id}),s?(0,r.jsx)(x,{value:m.status,onChange:e=>h({...m,status:e}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,r.jsx)("span",{className:`badge ${"approved"===e.status?"badge-success":"badge-warning"}`,children:m.status}),s?(0,r.jsx)(x,{value:m.priority,onChange:e=>h({...m,priority:e}),options:[{value:"critical",label:"Critical"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}]}):(0,r.jsx)("span",{className:"badge",style:{background:"var(--bg-hover)"},children:m.priority}),u&&!s&&(0,r.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,r.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{onClick:()=>{h({title:e.title,status:e.status,priority:e.priority,owner:e.owner,category:e.category,business_need:e.business_need,intended_use:e.intended_use,acceptance_criteria:e.acceptance_criteria}),n(!1)},className:"btn",disabled:d,children:"Cancel"}),(0,r.jsx)("button",{onClick:()=>{p(async()=>{await c(e.id,m),n(!1)})},className:"btn btn-primary",disabled:d,children:d?"Saving...":"\uD83D\uDCBE Save"})]}):(0,r.jsx)("button",{onClick:()=>n(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),s?(0,r.jsx)("input",{type:"text",value:m.title,onChange:e=>h({...m,title:e.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,r.jsx)("h1",{className:"page-title",children:m.title}),(0,r.jsxs)("p",{className:"page-subtitle",children:["User Requirement Specification • Owner: ",s?(0,r.jsx)("input",{type:"text",value:m.owner,onChange:e=>h({...m,owner:e.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.owner]})]}),u&&!s&&(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,r.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This URS was auto-created from FS references. Click ",(0,r.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDD17 Traceability"}),(0,r.jsxs)("div",{style:{display:"flex",gap:"2rem",flexWrap:"wrap"},children:[(0,r.jsx)(o,{label:"Functional Specs",count:t.length,color:"var(--warning)"}),(0,r.jsx)(o,{label:"Test Scenarios",count:t.reduce((e,t)=>e+t.scenarios.length,0),color:"var(--accent)"}),(0,r.jsx)(o,{label:"Risk Assessments",count:a.length,color:"#f97316"})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem"},children:[(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDCCB Business Need"}),(0,r.jsx)("div",{style:{lineHeight:1.7},children:(0,r.jsx)(g,{value:m.business_need,onChange:e=>h({...m,business_need:e}),multiline:!0,placeholder:"Not defined"})})]}),(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83C\uDFAF Intended Use"}),(0,r.jsx)("div",{style:{lineHeight:1.7},children:(0,r.jsx)(g,{value:m.intended_use,onChange:e=>h({...m,intended_use:e}),multiline:!0,placeholder:"Not defined"})})]})]}),(0,r.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"✅ Acceptance Criteria"}),s&&(0,r.jsx)("button",{onClick:()=>h({...m,acceptance_criteria:[...m.acceptance_criteria,""]}),className:"btn",style:{padding:"0.25rem 0.75rem"},children:"+ Add"})]}),0===m.acceptance_criteria.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No acceptance criteria defined"}):s?(0,r.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:m.acceptance_criteria.map((e,t)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e,onChange:e=>{let a=[...m.acceptance_criteria];a[t]=e.target.value,h({...m,acceptance_criteria:a})},className:"input",style:{flex:1},placeholder:`Criterion ${t+1}`}),(0,r.jsx)("button",{onClick:()=>h({...m,acceptance_criteria:m.acceptance_criteria.filter((e,a)=>a!==t)}),className:"btn",style:{padding:"0.5rem"},children:"\xd7"})]},t))}):(0,r.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},children:m.acceptance_criteria.map((e,t)=>(0,r.jsx)("li",{style:{marginBottom:"0.5rem",color:"var(--text-secondary)"},children:e},t))})]}),(0,r.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),0===t.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No FS linked yet"}):(0,r.jsx)("div",{style:{display:"grid",gap:"1rem"},children:t.map(e=>(0,r.jsx)(l(),{href:`/specs/${e.id}`,style:{textDecoration:"none"},children:(0,r.jsx)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"4px solid var(--warning)"},children:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem"},children:[(0,r.jsx)("code",{style:{fontWeight:600,color:"var(--warning)"},children:e.id}),(0,r.jsx)("span",{style:{color:"var(--text-primary)"},children:e.title}),(0,r.jsxs)("span",{className:"badge badge-success",style:{marginLeft:"auto"},children:[e.scenario_count," tests"]})]})})},e.id))})]})]})}function o({label:e,count:t,color:a}){return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:e}),(0,r.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:a},children:t})]})}},60550:(e,t,a)=>{"use strict";a.d(t,{ScenarioList:()=>l});var r=a(95155),i=a(12115);function s({scenario:e,isHighlighted:t}){return(0,r.jsxs)("div",{style:{padding:"1rem",background:t?"rgba(96, 165, 250, 0.1)":"var(--bg-hover)",borderRadius:"8px",border:t?"2px solid var(--accent)":"1px solid var(--border)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",marginBottom:"0.75rem"},children:[(0,r.jsx)("span",{style:{color:"var(--accent)"},children:"\uD83E\uDDEA"}),(0,r.jsx)("span",{style:{fontWeight:600},children:e.name}),e.tags.length>0&&(0,r.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--text-secondary)"},children:e.tags.join(" ")})]}),(0,r.jsx)("div",{style:{fontFamily:"monospace",fontSize:"0.8125rem",lineHeight:1.6},children:e.steps.map((e,t)=>{var a;return(0,r.jsx)("div",{style:{color:(a=e).startsWith("Given")?"#a78bfa":a.startsWith("When")?"#60a5fa":a.startsWith("Then")?"#34d399":"var(--text-secondary)"},children:e},t)})})]})}function l({scenarios:e,highlightScenario:t}){let a=(0,i.useRef)(null);return(0,i.useEffect)(()=>{t&&a.current&&setTimeout(()=>{a.current?.scrollIntoView({behavior:"smooth",block:"center"})},100)},[t]),(0,r.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:e.map((e,i)=>{let l=t===e.name;return(0,r.jsx)("div",{ref:l?a:void 0,children:(0,r.jsx)(s,{scenario:e,isHighlighted:l})},i)})})}a(98500)},76164:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,98500,23)),Promise.resolve().then(a.bind(a,97895)),Promise.resolve().then(a.bind(a,60550)),Promise.resolve().then(a.bind(a,39982))},97895:(e,t,a)=>{"use strict";a.d(t,{RiskDetailClient:()=>d});var r=a(95155),i=a(12115),s=a(98500),l=a.n(s),n=a(9339);let c=(0,n.createServerReference)("606e83d2c2c92ecd2809d7f358a323fb09123cf6fa",n.callServer,void 0,n.findSourceMapURL,"updateRiskAction");function d({risk:e,linkedFS:t}){let[a,s]=(0,i.useState)(!1),[n,d]=(0,i.useTransition)(),[m,h]=(0,i.useState)({title:e.title,status:e.status,category:e.category,impact:e.impact,probability:e.probability,risk_level:e.risk_level,residual_risk:e.residual_risk}),u=e.title.includes("(Undefined)");return(0,r.jsxs)("div",{children:[(0,r.jsxs)("header",{className:"page-header",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,r.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"#f97316",background:"rgba(249, 115, 22, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:e.id}),a?(0,r.jsx)(({value:e,onChange:t,options:i})=>a?(0,r.jsx)("select",{value:e,onChange:e=>t(e.target.value),className:"input",children:i.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,r.jsx)("span",{style:{textTransform:"capitalize"},children:e}),{value:m.status,onChange:e=>h({...m,status:e}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,r.jsx)("span",{className:`badge ${"approved"===e.status?"badge-success":"badge-warning"}`,children:m.status}),(0,r.jsx)(p,{level:m.risk_level}),u&&!a&&(0,r.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,r.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:a?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{onClick:()=>{h({title:e.title,status:e.status,category:e.category,impact:e.impact,probability:e.probability,risk_level:e.risk_level,residual_risk:e.residual_risk}),s(!1)},className:"btn",disabled:n,children:"Cancel"}),(0,r.jsx)("button",{onClick:()=>{d(async()=>{await c(e.id,m),s(!1)})},className:"btn btn-primary",disabled:n,children:n?"Saving...":"\uD83D\uDCBE Save"})]}):(0,r.jsx)("button",{onClick:()=>s(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),a?(0,r.jsx)("input",{type:"text",value:m.title,onChange:e=>h({...m,title:e.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,r.jsx)("h1",{className:"page-title",children:m.title}),(0,r.jsxs)("p",{className:"page-subtitle",children:["Risk Assessment • Category: ",a?(0,r.jsx)("input",{type:"text",value:m.category,onChange:e=>h({...m,category:e.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.category," • GAMP Category ",e.gamp_category]})]}),u&&!a&&(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,r.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This Risk was auto-created from FS references. Click ",(0,r.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem"},children:(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem"},children:[(0,r.jsx)(o,{label:"Impact",value:m.impact,isEditing:a,onChange:e=>h({...m,impact:e}),options:["low","medium","high","critical"]}),(0,r.jsx)(o,{label:"Probability",value:m.probability,isEditing:a,onChange:e=>h({...m,probability:e}),options:["low","medium","high"]}),(0,r.jsx)(o,{label:"Risk Level",value:m.risk_level,isEditing:a,onChange:e=>h({...m,risk_level:e}),options:["low","medium","high","critical"]}),(0,r.jsx)(o,{label:"Residual Risk",value:m.residual_risk,isEditing:a,onChange:e=>h({...m,residual_risk:e}),options:["acceptable","unacceptable","pending"]})]})}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",flexWrap:"wrap"},children:t.map(e=>(0,r.jsx)(l(),{href:`/specs/${e.id}`,children:(0,r.jsxs)("span",{className:"badge",style:{background:"rgba(245, 158, 11, 0.15)",color:"var(--warning)",padding:"0.5rem 1rem"},children:[e.id," - ",e.title]})},e.id))})]}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDD34 Identified Risks"}),0===e.risks.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No risks defined yet"}):(0,r.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:e.risks.map((e,t)=>(0,r.jsxs)("div",{style:{padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"6px",display:"flex",alignItems:"center",gap:"1rem"},children:[(0,r.jsx)("code",{style:{fontWeight:600,color:"#f97316"},children:e.id}),(0,r.jsx)("span",{style:{flex:1,color:"var(--text-secondary)"},children:e.description}),(0,r.jsx)(p,{level:e.impact,small:!0})]},t))})]}),(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDEE1️ Mitigations"}),0===e.mitigations.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No mitigations defined yet"}):(0,r.jsxs)("table",{className:"table",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{children:"Risk"}),(0,r.jsx)("th",{children:"Control"}),(0,r.jsx)("th",{children:"Test"})]})}),(0,r.jsx)("tbody",{children:e.mitigations.map((e,t)=>(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{children:(0,r.jsx)("code",{children:e.risk_id})}),(0,r.jsx)("td",{children:e.control}),(0,r.jsx)("td",{style:{color:"var(--text-secondary)"},children:e.test})]},t))})]})]})]})}function o({label:e,value:t,isEditing:a,onChange:i,options:s}){let l=m(t);return(0,r.jsxs)("div",{style:{textAlign:"center",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,r.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:e}),a?(0,r.jsx)("select",{value:t,onChange:e=>i(e.target.value),className:"input",style:{width:"100%",textAlign:"center"},children:s.map(e=>(0,r.jsx)("option",{value:e,style:{textTransform:"capitalize"},children:e},e))}):(0,r.jsx)("div",{style:{fontSize:"1.25rem",fontWeight:700,color:l,textTransform:"capitalize"},children:t})]})}function p({level:e,small:t}){let a=m(e);return(0,r.jsx)("span",{className:"badge",style:{background:`${a}20`,color:a,padding:t?"0.25rem 0.5rem":"0.5rem 1rem",fontSize:t?"0.75rem":"0.875rem",textTransform:"capitalize"},children:e})}function m(e){switch(e){case"critical":case"unacceptable":return"#dc2626";case"high":return"#f97316";case"medium":case"pending":return"#eab308";case"low":case"acceptable":return"#22c55e";default:return"var(--text-secondary)"}}}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=76164)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5385],{9339:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={callServer:function(){return s.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var i in r)Object.defineProperty(t,i,{enumerable:!0,get:r[i]});let s=a(77304),l=a(4060),n=a(77197)},44261:(e,t,a)=>{"use strict";a.d(t,{URSDetailClient:()=>d});var r=a(95155),i=a(12115),s=a(98500),l=a.n(s),n=a(9339);let c=(0,n.createServerReference)("60fc86bbfad524fc71c6c268a2407a7f0dbba73d79",n.callServer,void 0,n.findSourceMapURL,"updateURSAction");function d({urs:e,linkedFS:t,linkedRisks:a}){let[s,n]=(0,i.useState)(!1),[d,p]=(0,i.useTransition)(),[m,h]=(0,i.useState)({title:e.title,status:e.status,priority:e.priority,owner:e.owner,category:e.category,business_need:e.business_need,intended_use:e.intended_use,acceptance_criteria:e.acceptance_criteria}),u=e.title.includes("(Undefined)"),g=({value:e,onChange:t,multiline:a,placeholder:i})=>s?a?(0,r.jsx)("textarea",{value:e,onChange:e=>t(e.target.value),rows:4,className:"input",style:{width:"100%",resize:"vertical"}}):(0,r.jsx)("input",{type:"text",value:e,onChange:e=>t(e.target.value),className:"input",style:{width:"100%"}}):(0,r.jsx)("span",{style:{whiteSpace:"pre-wrap",color:"var(--text-secondary)",fontStyle:e?"normal":"italic"},children:e||i||"Not defined"}),x=({value:e,onChange:t,options:a})=>s?(0,r.jsx)("select",{value:e,onChange:e=>t(e.target.value),className:"input",children:a.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,r.jsx)("span",{style:{textTransform:"capitalize"},children:e});return(0,r.jsxs)("div",{children:[(0,r.jsxs)("header",{className:"page-header",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,r.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--success)",background:"rgba(16, 185, 129, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:e.id}),s?(0,r.jsx)(x,{value:m.status,onChange:e=>h({...m,status:e}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,r.jsx)("span",{className:`badge ${"approved"===e.status?"badge-success":"badge-warning"}`,children:m.status}),s?(0,r.jsx)(x,{value:m.priority,onChange:e=>h({...m,priority:e}),options:[{value:"critical",label:"Critical"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}]}):(0,r.jsx)("span",{className:"badge",style:{background:"var(--bg-hover)"},children:m.priority}),u&&!s&&(0,r.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,r.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{onClick:()=>{h({title:e.title,status:e.status,priority:e.priority,owner:e.owner,category:e.category,business_need:e.business_need,intended_use:e.intended_use,acceptance_criteria:e.acceptance_criteria}),n(!1)},className:"btn",disabled:d,children:"Cancel"}),(0,r.jsx)("button",{onClick:()=>{p(async()=>{await c(e.id,m),n(!1)})},className:"btn btn-primary",disabled:d,children:d?"Saving...":"\uD83D\uDCBE Save"})]}):(0,r.jsx)("button",{onClick:()=>n(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),s?(0,r.jsx)("input",{type:"text",value:m.title,onChange:e=>h({...m,title:e.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,r.jsx)("h1",{className:"page-title",children:m.title}),(0,r.jsxs)("p",{className:"page-subtitle",children:["User Requirement Specification • Owner: ",s?(0,r.jsx)("input",{type:"text",value:m.owner,onChange:e=>h({...m,owner:e.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.owner]})]}),u&&!s&&(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,r.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This URS was auto-created from FS references. Click ",(0,r.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDD17 Traceability"}),(0,r.jsxs)("div",{style:{display:"flex",gap:"2rem",flexWrap:"wrap"},children:[(0,r.jsx)(o,{label:"Functional Specs",count:t.length,color:"var(--warning)"}),(0,r.jsx)(o,{label:"Test Scenarios",count:t.reduce((e,t)=>e+t.scenarios.length,0),color:"var(--accent)"}),(0,r.jsx)(o,{label:"Risk Assessments",count:a.length,color:"#f97316"})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem"},children:[(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDCCB Business Need"}),(0,r.jsx)("div",{style:{lineHeight:1.7},children:(0,r.jsx)(g,{value:m.business_need,onChange:e=>h({...m,business_need:e}),multiline:!0,placeholder:"Not defined"})})]}),(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83C\uDFAF Intended Use"}),(0,r.jsx)("div",{style:{lineHeight:1.7},children:(0,r.jsx)(g,{value:m.intended_use,onChange:e=>h({...m,intended_use:e}),multiline:!0,placeholder:"Not defined"})})]})]}),(0,r.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"✅ Acceptance Criteria"}),s&&(0,r.jsx)("button",{onClick:()=>h({...m,acceptance_criteria:[...m.acceptance_criteria,""]}),className:"btn",style:{padding:"0.25rem 0.75rem"},children:"+ Add"})]}),0===m.acceptance_criteria.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No acceptance criteria defined"}):s?(0,r.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:m.acceptance_criteria.map((e,t)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e,onChange:e=>{let a=[...m.acceptance_criteria];a[t]=e.target.value,h({...m,acceptance_criteria:a})},className:"input",style:{flex:1},placeholder:`Criterion ${t+1}`}),(0,r.jsx)("button",{onClick:()=>h({...m,acceptance_criteria:m.acceptance_criteria.filter((e,a)=>a!==t)}),className:"btn",style:{padding:"0.5rem"},children:"\xd7"})]},t))}):(0,r.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},children:m.acceptance_criteria.map((e,t)=>(0,r.jsx)("li",{style:{marginBottom:"0.5rem",color:"var(--text-secondary)"},children:e},t))})]}),(0,r.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),0===t.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No FS linked yet"}):(0,r.jsx)("div",{style:{display:"grid",gap:"1rem"},children:t.map(e=>(0,r.jsx)(l(),{href:`/specs/${e.id}`,style:{textDecoration:"none"},children:(0,r.jsx)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"4px solid var(--warning)"},children:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem"},children:[(0,r.jsx)("code",{style:{fontWeight:600,color:"var(--warning)"},children:e.id}),(0,r.jsx)("span",{style:{color:"var(--text-primary)"},children:e.title}),(0,r.jsxs)("span",{className:"badge badge-success",style:{marginLeft:"auto"},children:[e.scenario_count," tests"]})]})})},e.id))})]})]})}function o({label:e,count:t,color:a}){return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:e}),(0,r.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:a},children:t})]})}},60550:(e,t,a)=>{"use strict";a.d(t,{ScenarioList:()=>l});var r=a(95155),i=a(12115);function s({scenario:e,isHighlighted:t}){return(0,r.jsxs)("div",{style:{padding:"1rem",background:t?"rgba(96, 165, 250, 0.1)":"var(--bg-hover)",borderRadius:"8px",border:t?"2px solid var(--accent)":"1px solid var(--border)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",marginBottom:"0.75rem"},children:[(0,r.jsx)("span",{style:{color:"var(--accent)"},children:"\uD83E\uDDEA"}),(0,r.jsx)("span",{style:{fontWeight:600},children:e.name}),e.tags.length>0&&(0,r.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--text-secondary)"},children:e.tags.join(" ")})]}),(0,r.jsx)("div",{style:{fontFamily:"monospace",fontSize:"0.8125rem",lineHeight:1.6},children:e.steps.map((e,t)=>{var a;return(0,r.jsx)("div",{style:{color:(a=e).startsWith("Given")?"#a78bfa":a.startsWith("When")?"#60a5fa":a.startsWith("Then")?"#34d399":"var(--text-secondary)"},children:e},t)})})]})}function l({scenarios:e,highlightScenario:t}){let a=(0,i.useRef)(null);return(0,i.useEffect)(()=>{t&&a.current&&setTimeout(()=>{a.current?.scrollIntoView({behavior:"smooth",block:"center"})},100)},[t]),(0,r.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:e.map((e,i)=>{let l=t===e.name;return(0,r.jsx)("div",{ref:l?a:void 0,children:(0,r.jsx)(s,{scenario:e,isHighlighted:l})},i)})})}a(98500)},62261:(e,t,a)=>{"use strict";a.d(t,{RiskDetailClient:()=>d});var r=a(95155),i=a(12115),s=a(98500),l=a.n(s),n=a(9339);let c=(0,n.createServerReference)("6071db87a836a70bcc060f2563e2fd04f86d6d9e7b",n.callServer,void 0,n.findSourceMapURL,"updateRiskAction");function d({risk:e,linkedFS:t}){let[a,s]=(0,i.useState)(!1),[n,d]=(0,i.useTransition)(),[m,h]=(0,i.useState)({title:e.title,status:e.status,category:e.category,impact:e.impact,probability:e.probability,risk_level:e.risk_level,residual_risk:e.residual_risk}),u=e.title.includes("(Undefined)");return(0,r.jsxs)("div",{children:[(0,r.jsxs)("header",{className:"page-header",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,r.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"#f97316",background:"rgba(249, 115, 22, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:e.id}),a?(0,r.jsx)(({value:e,onChange:t,options:i})=>a?(0,r.jsx)("select",{value:e,onChange:e=>t(e.target.value),className:"input",children:i.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,r.jsx)("span",{style:{textTransform:"capitalize"},children:e}),{value:m.status,onChange:e=>h({...m,status:e}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,r.jsx)("span",{className:`badge ${"approved"===e.status?"badge-success":"badge-warning"}`,children:m.status}),(0,r.jsx)(p,{level:m.risk_level}),u&&!a&&(0,r.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,r.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:a?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{onClick:()=>{h({title:e.title,status:e.status,category:e.category,impact:e.impact,probability:e.probability,risk_level:e.risk_level,residual_risk:e.residual_risk}),s(!1)},className:"btn",disabled:n,children:"Cancel"}),(0,r.jsx)("button",{onClick:()=>{d(async()=>{await c(e.id,m),s(!1)})},className:"btn btn-primary",disabled:n,children:n?"Saving...":"\uD83D\uDCBE Save"})]}):(0,r.jsx)("button",{onClick:()=>s(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),a?(0,r.jsx)("input",{type:"text",value:m.title,onChange:e=>h({...m,title:e.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,r.jsx)("h1",{className:"page-title",children:m.title}),(0,r.jsxs)("p",{className:"page-subtitle",children:["Risk Assessment • Category: ",a?(0,r.jsx)("input",{type:"text",value:m.category,onChange:e=>h({...m,category:e.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.category," • GAMP Category ",e.gamp_category]})]}),u&&!a&&(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,r.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This Risk was auto-created from FS references. Click ",(0,r.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem"},children:(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem"},children:[(0,r.jsx)(o,{label:"Impact",value:m.impact,isEditing:a,onChange:e=>h({...m,impact:e}),options:["low","medium","high","critical"]}),(0,r.jsx)(o,{label:"Probability",value:m.probability,isEditing:a,onChange:e=>h({...m,probability:e}),options:["low","medium","high"]}),(0,r.jsx)(o,{label:"Risk Level",value:m.risk_level,isEditing:a,onChange:e=>h({...m,risk_level:e}),options:["low","medium","high","critical"]}),(0,r.jsx)(o,{label:"Residual Risk",value:m.residual_risk,isEditing:a,onChange:e=>h({...m,residual_risk:e}),options:["acceptable","unacceptable","pending"]})]})}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",flexWrap:"wrap"},children:t.map(e=>(0,r.jsx)(l(),{href:`/specs/${e.id}`,children:(0,r.jsxs)("span",{className:"badge",style:{background:"rgba(245, 158, 11, 0.15)",color:"var(--warning)",padding:"0.5rem 1rem"},children:[e.id," - ",e.title]})},e.id))})]}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDD34 Identified Risks"}),0===e.risks.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No risks defined yet"}):(0,r.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:e.risks.map((e,t)=>(0,r.jsxs)("div",{style:{padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"6px",display:"flex",alignItems:"center",gap:"1rem"},children:[(0,r.jsx)("code",{style:{fontWeight:600,color:"#f97316"},children:e.id}),(0,r.jsx)("span",{style:{flex:1,color:"var(--text-secondary)"},children:e.description}),(0,r.jsx)(p,{level:e.impact,small:!0})]},t))})]}),(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDEE1️ Mitigations"}),0===e.mitigations.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No mitigations defined yet"}):(0,r.jsxs)("table",{className:"table",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{children:"Risk"}),(0,r.jsx)("th",{children:"Control"}),(0,r.jsx)("th",{children:"Test"})]})}),(0,r.jsx)("tbody",{children:e.mitigations.map((e,t)=>(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{children:(0,r.jsx)("code",{children:e.risk_id})}),(0,r.jsx)("td",{children:e.control}),(0,r.jsx)("td",{style:{color:"var(--text-secondary)"},children:e.test})]},t))})]})]})]})}function o({label:e,value:t,isEditing:a,onChange:i,options:s}){let l=m(t);return(0,r.jsxs)("div",{style:{textAlign:"center",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,r.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:e}),a?(0,r.jsx)("select",{value:t,onChange:e=>i(e.target.value),className:"input",style:{width:"100%",textAlign:"center"},children:s.map(e=>(0,r.jsx)("option",{value:e,style:{textTransform:"capitalize"},children:e},e))}):(0,r.jsx)("div",{style:{fontSize:"1.25rem",fontWeight:700,color:l,textTransform:"capitalize"},children:t})]})}function p({level:e,small:t}){let a=m(e);return(0,r.jsx)("span",{className:"badge",style:{background:`${a}20`,color:a,padding:t?"0.25rem 0.5rem":"0.5rem 1rem",fontSize:t?"0.75rem":"0.875rem",textTransform:"capitalize"},children:e})}function m(e){switch(e){case"critical":case"unacceptable":return"#dc2626";case"high":return"#f97316";case"medium":case"pending":return"#eab308";case"low":case"acceptable":return"#22c55e";default:return"var(--text-secondary)"}}},76164:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,98500,23)),Promise.resolve().then(a.bind(a,62261)),Promise.resolve().then(a.bind(a,60550)),Promise.resolve().then(a.bind(a,44261))}},e=>{e.O(0,[8500,8441,3794,7358],()=>e(e.s=76164)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[551],{9815:(e,t,r)=>{"use strict";r.d(t,{Z:()=>s});var i=r(9339);let s=(0,i.createServerReference)("4034d94bb1df923356529950456e833db5538ef89c",i.callServer,void 0,i.findSourceMapURL,"restoreURSAction")},33480:(e,t,r)=>{Promise.resolve().then(r.bind(r,84547))},38942:(e,t,r)=>{"use strict";r.d(t,{R:()=>o});var i=r(95155),s=r(39092),n=r.n(s);function a({isOpen:e,onClose:t,children:r,width:s="500px"}){return e?(0,i.jsxs)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)",background:"rgba(0, 0, 0, 0.5)",animation:"fadeIn 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:[(0,i.jsx)("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--bg-primary)",borderRadius:"12px",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",width:s,maxWidth:"90%",maxHeight:"90vh",overflow:"auto",border:"1px solid var(--border)",animation:"slideUp 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:r}),(0,i.jsx)(n(),{id:"5d567d25508aa188",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:scale(.95)translatey(10px)}to{opacity:1;transform:scale(1)translatey(0)}}"})]}):null}function o({isOpen:e,onClose:t,onConfirm:r,title:s,message:n,confirmLabel:o="Confirm",cancelLabel:l="Cancel",isDangerous:d=!1}){return(0,i.jsx)(a,{isOpen:e,onClose:t,width:"400px",children:(0,i.jsxs)("div",{style:{padding:"1.5rem"},children:[(0,i.jsx)("h3",{style:{margin:"0 0 0.5rem 0",fontSize:"1.25rem",fontWeight:600},children:s}),(0,i.jsx)("p",{style:{margin:"0 0 1.5rem 0",color:"var(--text-secondary)",lineHeight:1.5},children:n}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.75rem"},children:[(0,i.jsx)("button",{onClick:t,className:"btn",style:{background:"transparent",border:"1px solid var(--border)",color:"var(--text-primary)"},children:l}),(0,i.jsx)("button",{onClick:()=>{r(),t()},className:"btn",style:{background:d?"var(--error)":"var(--accent)",color:"white",border:"none",fontWeight:600},children:o})]})]})})}r(12115)},63407:(e,t,r)=>{"use strict";r.d(t,{m:()=>s});var i=r(9339);let s=(0,i.createServerReference)("4079a37e5e7990ebac456ab2a7681efadc460cda1e",i.callServer,void 0,i.findSourceMapURL,"restoreFSAction")},66796:(e,t,r)=>{"use strict";r.d(t,{I:()=>s});var i=r(9339);let s=(0,i.createServerReference)("4025f575224e6e9ba81cc862ea0f4c410998c3ee8b",i.callServer,void 0,i.findSourceMapURL,"restoreRiskAction")},84547:(e,t,r)=>{"use strict";r.d(t,{ArchiveClient:()=>x});var i=r(95155),s=r(12115),n=r(98500),a=r.n(n),o=r(73321),l=r(9815),d=r(63407),c=r(66796),h=r(38942);function x({urs:e,fs:t,risks:r}){let n=(0,o.useRouter)(),[x,p]=(0,s.useState)(null),m=async()=>{x&&("urs"===x.type?await (0,l.Z)(x.id):"fs"===x.type?await (0,d.m)(x.id):"risk"===x.type&&await (0,c.I)(x.id),n.refresh(),p(null))};return(0,i.jsxs)("div",{children:[(0,i.jsxs)("header",{className:"page-header",style:{marginBottom:"2rem",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h1",{className:"page-title",children:"Archive"}),(0,i.jsx)("p",{className:"page-subtitle",children:"View and restore soft-deleted items"})]}),(0,i.jsx)(a(),{href:"/traceability",className:"btn",children:"Back to Matrix"})]}),(0,i.jsxs)("div",{style:{display:"grid",gap:"2rem"},children:[(0,i.jsxs)("section",{children:[(0,i.jsxs)("h2",{style:{fontSize:"1.25rem",fontWeight:600,marginBottom:"1rem"},children:["User Requirements (",e.length,")"]}),0===e.length?(0,i.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No archived requirements"}):(0,i.jsx)("div",{className:"card",style:{padding:0,overflow:"hidden"},children:e.map(e=>(0,i.jsxs)("div",{style:{padding:"1rem",borderBottom:"1px solid var(--border)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)(a(),{href:`/traceability/urs/${e.id}`,style:{textDecoration:"none",color:"inherit"},children:(0,i.jsxs)("div",{style:{fontWeight:600,cursor:"pointer",":hover":{textDecoration:"underline"}},children:[e.id,": ",e.title]})}),(0,i.jsx)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:"Archived"})]}),(0,i.jsx)("button",{onClick:()=>p({id:e.id,type:"urs"}),className:"btn",children:"Restore"})]},e.id))})]}),(0,i.jsxs)("section",{children:[(0,i.jsxs)("h2",{style:{fontSize:"1.25rem",fontWeight:600,marginBottom:"1rem"},children:["Functional Specifications (",t.length,")"]}),0===t.length?(0,i.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No archived specifications"}):(0,i.jsx)("div",{className:"card",style:{padding:0,overflow:"hidden"},children:t.map(e=>(0,i.jsxs)("div",{style:{padding:"1rem",borderBottom:"1px solid var(--border)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)(a(),{href:`/traceability/fs/${e.id}`,style:{textDecoration:"none",color:"inherit"},children:(0,i.jsxs)("div",{style:{fontWeight:600,cursor:"pointer"},children:[e.id,": ",e.title]})}),(0,i.jsx)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:e.file_path})]}),(0,i.jsx)("button",{onClick:()=>p({id:e.id,type:"fs"}),className:"btn",children:"Restore"})]},e.id))})]}),(0,i.jsxs)("section",{children:[(0,i.jsxs)("h2",{style:{fontSize:"1.25rem",fontWeight:600,marginBottom:"1rem"},children:["Risk Assessments (",r.length,")"]}),0===r.length?(0,i.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No archived risks"}):(0,i.jsx)("div",{className:"card",style:{padding:0,overflow:"hidden"},children:r.map(e=>(0,i.jsxs)("div",{style:{padding:"1rem",borderBottom:"1px solid var(--border)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,i.jsxs)("div",{children:[(0,i.jsx)(a(),{href:`/traceability/risk/${e.id}`,style:{textDecoration:"none",color:"inherit"},children:(0,i.jsxs)("div",{style:{fontWeight:600,cursor:"pointer"},children:[e.id,": ",e.title]})}),(0,i.jsxs)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:["Category: ",e.category]})]}),(0,i.jsx)("button",{onClick:()=>p({id:e.id,type:"risk"}),className:"btn",children:"Restore"})]},e.id))})]})]}),(0,i.jsx)(h.R,{isOpen:!!x,onClose:()=>p(null),onConfirm:m,title:"Restore Item",message:`Are you sure you want to restore ${x?.id}? It will appear in the main lists again.`,confirmLabel:"Restore"})]})}}},e=>{e.O(0,[8500,2594,8441,3794,7358],()=>e(e.s=33480)),_N_E=e.O()}]);
@@ -1,7 +1,7 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4922],{13987:(e,r,t)=>{"use strict";t.d(r,{j:()=>s});var n=t(95155),i=t(12115);function s({options:e,selected:r,onChange:t,placeholder:s,multi:a=!0,allowCustom:o=!0}){let[l,d]=(0,i.useState)(!1),[c,m]=(0,i.useState)(""),p=(0,i.useRef)(null),h=e.filter(e=>e.label.toLowerCase().includes(c.toLowerCase())&&(!a||!r.includes(e.value)));return(0,i.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,n.jsxs)("div",{ref:p,style:{position:"relative",flex:1},children:[a&&r.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:"0.25rem",flexWrap:"wrap",marginBottom:"0.5rem"},children:r.map(i=>{let s=e.find(e=>e.value===i);return(0,n.jsxs)("span",{className:"badge badge-success",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[s?.value||i,(0,n.jsx)("button",{onClick:()=>{t(r.filter(e=>e!==i))},style:{background:"none",border:"none",cursor:"pointer",padding:0,fontSize:"1rem",color:"inherit"},children:"\xd7"})]},i)})}),(0,n.jsx)("input",{type:"text",value:a||l?c:(()=>{if(!a&&r.length>0){let t=e.find(e=>e.value===r[0]);return t?.label||r[0]}return""})(),onChange:e=>m(e.target.value),onFocus:()=>d(!0),placeholder:0!==r.length&&a?"Add more...":s,className:"input",style:{width:"100%"}}),l&&(0,n.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,right:0,marginTop:"0.25rem",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"8px",maxHeight:"200px",overflowY:"auto",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[0===h.length?(0,n.jsx)("div",{style:{padding:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:o?"No matches - type to create":"No matching steps"}):h.slice(0,20).map(e=>(0,n.jsxs)("div",{onClick:()=>{var n;return n=e.value,void(a?t([...r,n]):(t([n]),d(!1)),m(""))},style:{padding:"0.625rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",borderBottom:"1px solid var(--border)",transition:"background 0.15s"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,n.jsx)("div",{style:{fontWeight:500},children:e.value}),e.label!==e.value&&(0,n.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"0.125rem"},children:e.label})]},e.value)),h.length>20&&(0,n.jsxs)("div",{style:{padding:"0.5rem",color:"var(--text-secondary)",fontSize:"0.75rem",textAlign:"center"},children:["+",h.length-20," more..."]})]})]})}},17948:(e,r,t)=>{"use strict";t.d(r,{KN:()=>c,Mo:()=>h,d0:()=>x,mQ:()=>d,t3:()=>p,wI:()=>l,yY:()=>u,zB:()=>m});var n=t(95155);t(12115);let i={width:"100%",padding:"0.875rem 1rem",fontSize:"0.9375rem",lineHeight:"1.5",color:"var(--text-primary)",background:"var(--bg-secondary)",borderWidth:"1px",borderStyle:"solid",borderColor:"var(--border)",borderRadius:"10px",outline:"none",transition:"all 0.2s ease"},s={borderColor:"var(--accent)",boxShadow:"0 0 0 3px rgba(99, 102, 241, 0.15)"},a={...i,cursor:"pointer",appearance:"none",backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238888a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 1rem center",paddingRight:"2.5rem"},o={...i,resize:"vertical",minHeight:"120px",fontFamily:"inherit"};function l(e,r){return{...i,...r===e?s:{}}}function d(e,r){return{...a,...r===e?s:{}}}function c(e,r){return{...o,...r===e?s:{}}}function m({label:e,children:r,required:t,compact:i,hint:s,action:a}){return(0,n.jsxs)("div",{style:{marginBottom:i?"0":"1.5rem"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,n.jsx)("label",{style:{fontWeight:500,fontSize:"0.875rem",color:"var(--text-primary)"},children:e}),t&&(0,n.jsx)("span",{style:{color:"var(--accent)",fontSize:"0.75rem"},children:"Required"}),s&&(0,n.jsxs)("span",{style:{color:"var(--text-secondary)",fontSize:"0.8125rem",fontWeight:400},children:["— ",s]})]}),a&&(0,n.jsx)("button",{onClick:a.onClick,style:{padding:"0.375rem 0.75rem",fontSize:"0.8125rem",fontWeight:500,background:"transparent",border:"1px solid var(--accent)",borderRadius:"6px",color:"var(--accent)",cursor:"pointer",transition:"all 0.2s"},children:a.label})]}),r]})}function p({status:e}){return"idle"===e.type?null:(0,n.jsxs)("div",{style:{marginBottom:"1.5rem",padding:"1rem 1.25rem",borderRadius:"10px",background:"success"===e.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===e.type?"var(--success)":"var(--error)",fontSize:"0.9375rem",display:"flex",alignItems:"center",gap:"0.5rem",borderWidth:"1px",borderStyle:"solid",borderColor:"success"===e.type?"rgba(16, 185, 129, 0.2)":"rgba(239, 68, 68, 0.2)"},children:["success"===e.type?"✅":"❌"," ",e.message]})}function h({icon:e,title:r,subtitle:t}){return(0,n.jsxs)("div",{style:{marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("h2",{style:{margin:0,fontSize:"1.25rem",fontWeight:600},children:[e," ",r]}),(0,n.jsx)("p",{style:{margin:"0.25rem 0 0",color:"var(--text-secondary)",fontSize:"0.875rem"},children:t})]})}function u({onClick:e,disabled:r,isPending:t,label:i="Save"}){return(0,n.jsx)("button",{onClick:e,disabled:r,style:{padding:"0.75rem 1.5rem",fontSize:"0.9375rem",fontWeight:600,borderRadius:"10px",border:"none",cursor:r?"not-allowed":"pointer",background:r?"var(--bg-hover)":"linear-gradient(135deg, var(--gradient-start), var(--gradient-end))",color:r?"var(--text-secondary)":"white",transition:"all 0.2s ease",boxShadow:r?"none":"0 4px 12px rgba(99, 102, 241, 0.25)"},children:t?"\uD83D\uDCBE Saving...":`💾 ${i}`})}function x({onClick:e}){return(0,n.jsx)("button",{onClick:e,style:{padding:"0.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"8px",color:"var(--text-secondary)",cursor:"pointer",transition:"all 0.2s",lineHeight:1},title:"Remove",children:"✕"})}},38942:(e,r,t)=>{"use strict";t.d(r,{R:()=>o});var n=t(95155),i=t(39092),s=t.n(i);function a({isOpen:e,onClose:r,children:t,width:i="500px"}){return e?(0,n.jsxs)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)",background:"rgba(0, 0, 0, 0.5)",animation:"fadeIn 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:[(0,n.jsx)("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--bg-primary)",borderRadius:"12px",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",width:i,maxWidth:"90%",maxHeight:"90vh",overflow:"auto",border:"1px solid var(--border)",animation:"slideUp 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:t}),(0,n.jsx)(s(),{id:"5d567d25508aa188",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:scale(.95)translatey(10px)}to{opacity:1;transform:scale(1)translatey(0)}}"})]}):null}function o({isOpen:e,onClose:r,onConfirm:t,title:i,message:s,confirmLabel:o="Confirm",cancelLabel:l="Cancel",isDangerous:d=!1}){return(0,n.jsx)(a,{isOpen:e,onClose:r,width:"400px",children:(0,n.jsxs)("div",{style:{padding:"1.5rem"},children:[(0,n.jsx)("h3",{style:{margin:"0 0 0.5rem 0",fontSize:"1.25rem",fontWeight:600},children:i}),(0,n.jsx)("p",{style:{margin:"0 0 1.5rem 0",color:"var(--text-secondary)",lineHeight:1.5},children:s}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.75rem"},children:[(0,n.jsx)("button",{onClick:r,className:"btn",style:{background:"transparent",border:"1px solid var(--border)",color:"var(--text-primary)"},children:l}),(0,n.jsx)("button",{onClick:()=>{t(),r()},className:"btn",style:{background:d?"var(--error)":"var(--accent)",color:"white",border:"none",fontWeight:600},children:o})]})]})})}t(12115)},64183:(e,r,t)=>{"use strict";t.d(r,{m:()=>i});var n=t(9339);let i=(0,n.createServerReference)("402d9b235abd2968da2b1e42d1730b1638c9c32124",n.callServer,void 0,n.findSourceMapURL,"restoreFSAction")},72504:(e,r,t)=>{Promise.resolve().then(t.bind(t,87416))},87416:(e,r,t)=>{"use strict";t.d(r,{FSClient:()=>u});var n=t(95155),i=t(12115),s=t(73321),a=t(98500),o=t.n(a),l=t(9339);let d=(0,l.createServerReference)("407ab6ae77072963ae1d27ba83a2fb372a0035d7e1",l.callServer,void 0,l.findSourceMapURL,"archiveFSAction");var c=t(64183),m=t(13987),p=t(17948),h=t(38942);function u({fs:e,isNew:r=!1,ursItems:a,riskItems:l,stepsByType:u}){let x=(0,s.useRouter)(),[b,y]=(0,i.useState)(r),[f,j]=(0,i.useState)(e?.id||"FS-XXX"),[S,k]=(0,i.useState)(e?.title||""),[C,w]=(0,i.useState)(e?.description||""),[B,R]=(0,i.useState)(e?.urs_ids||[]),[z,W]=(0,i.useState)(e?.risk_ids||[]),N=e?.scenarios?e.scenarios.map(e=>({name:e.name,steps:e.steps.map(e=>{let r=e.match(/^(Given|When|Then|And|But)\s+(.+)$/i);return r?{type:r[1].toLowerCase(),text:r[2]}:{type:"given",text:e}})})):[{name:"",steps:[{type:"given",text:""},{type:"when",text:""},{type:"then",text:""}]}],[$,F]=(0,i.useState)(N),[L,I]=(0,i.useState)(null),[T,_]=(0,i.useState)({type:"idle"}),[A,E]=(0,i.useTransition)(),[U,H]=(0,i.useState)(!1),[M,G]=(0,i.useState)(!1),O=()=>{let e=$.filter(e=>e.name.trim()).map(e=>{let r=e.steps.filter(e=>e.text.trim()).map(e=>` ${v(e.type)} ${e.text}`).join("\n");return` Scenario: ${e.name}
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4922],{1642:(e,r,t)=>{"use strict";t.d(r,{FSClient:()=>u});var n=t(95155),i=t(12115),s=t(73321),a=t(98500),o=t.n(a),l=t(9339);let d=(0,l.createServerReference)("40421a5fac02e05d47c7f627ce4bb13136bec74086",l.callServer,void 0,l.findSourceMapURL,"archiveFSAction");var c=t(63407),m=t(13987),p=t(17948),h=t(38942);function u({fs:e,isNew:r=!1,ursItems:a,riskItems:l,stepsByType:u}){let x=(0,s.useRouter)(),[y,b]=(0,i.useState)(r),[f,j]=(0,i.useState)(e?.id||"FS-XXX"),[S,k]=(0,i.useState)(e?.title||""),[C,w]=(0,i.useState)(e?.description||""),[B,R]=(0,i.useState)(e?.urs_ids||[]),[z,W]=(0,i.useState)(e?.risk_ids||[]),N=e?.scenarios?e.scenarios.map(e=>({name:e.name,steps:e.steps.map(e=>{let r=e.match(/^(Given|When|Then|And|But)\s+(.+)$/i);return r?{type:r[1].toLowerCase(),text:r[2]}:{type:"given",text:e}})})):[{name:"",steps:[{type:"given",text:""},{type:"when",text:""},{type:"then",text:""}]}],[$,F]=(0,i.useState)(N),[L,I]=(0,i.useState)(null),[T,_]=(0,i.useState)({type:"idle"}),[A,E]=(0,i.useTransition)(),[U,H]=(0,i.useState)(!1),[M,G]=(0,i.useState)(!1),O=()=>{let e=$.filter(e=>e.name.trim()).map(e=>{let r=e.steps.filter(e=>e.text.trim()).map(e=>` ${v(e.type)} ${e.text}`).join("\n");return` Scenario: ${e.name}
2
2
  ${r}`}).join("\n\n"),t=[r?"@FS-XXX":`@${f}`,...B.map(e=>`@${e}`),...z.map(e=>`@${e}`)].join(" ");return`${t}
3
3
  Feature: ${S}
4
4
  ${C}
5
5
 
6
6
  ${e}
7
- `},X=async()=>{H(!0)},D=async()=>{await d(e.id),x.refresh(),y(!1)},P=async()=>{G(!0)},q=async()=>{await (0,c.m)(e.id),x.refresh()};return!b&&e?(0,n.jsxs)("div",{className:"card",style:{maxWidth:"900px"},children:[e.is_archived&&(0,n.jsxs)("div",{style:{background:"rgba(239, 68, 68, 0.1)",border:"1px solid var(--error)",padding:"1rem",borderRadius:"8px",marginBottom:"1.5rem",color:"var(--error)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,n.jsxs)("span",{children:[(0,n.jsx)("strong",{children:"Archived:"})," This item is soft-deleted and hidden from lists."]}),(0,n.jsx)("button",{onClick:P,className:"btn",style:{background:"var(--bg-hover)",border:"1px solid var(--error)",color:"var(--error)"},children:"Restore"})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:"2rem",paddingBottom:"1rem",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{style:{margin:0,fontSize:"1.5rem",fontWeight:600,color:"var(--warning)"},children:e.id}),(0,n.jsx)("h2",{style:{margin:"0.5rem 0 0",fontSize:"1.25rem",fontWeight:500},children:e.title})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[(0,n.jsx)("button",{onClick:X,className:"btn",style:{background:"transparent",border:"1px solid var(--error)",color:"var(--error)",display:e.is_archived?"none":"flex",alignItems:"center",gap:"0.5rem"},children:"\uD83D\uDDD1️ Archive"}),(0,n.jsx)("button",{onClick:()=>y(!0),disabled:!!e.is_archived,className:"btn btn-primary",style:{opacity:e.is_archived?.5:1,cursor:e.is_archived?"not-allowed":"pointer"},children:"✏️ Edit"})]})]}),(0,n.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,n.jsx)("h3",{style:{fontSize:"1rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-secondary)"},children:"Description"}),(0,n.jsx)("div",{style:{lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.description})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"2rem",marginBottom:"2rem"},children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{style:{fontSize:"1rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-secondary)"},children:"Linked Requirements"}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:e.urs_ids.length?e.urs_ids.map(e=>(0,n.jsx)(o(),{href:`/traceability/urs/${e}`,children:(0,n.jsx)("span",{className:"badge badge-success",children:e})},e)):"None"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{style:{fontSize:"1rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-secondary)"},children:"Linked Risks"}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:e.risk_ids.length?e.risk_ids.map(e=>(0,n.jsx)(o(),{href:`/traceability/risk/${e}`,children:(0,n.jsx)("span",{className:"badge",style:{background:"#f9731633",color:"#f97316"},children:e})},e)):"None"})]})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{style:{fontSize:"1rem",fontWeight:600,marginBottom:"1rem",color:"var(--text-secondary)"},children:"Scenarios"}),(0,n.jsx)("div",{style:{display:"grid",gap:"1rem"},children:e.scenarios.map((e,r)=>(0,n.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,n.jsxs)("div",{style:{fontWeight:600,marginBottom:"0.5rem"},children:["\uD83E\uDDEA ",e.name]}),(0,n.jsx)("div",{style:{fontFamily:"monospace",fontSize:"0.875rem"},children:e.steps.map((e,r)=>(0,n.jsx)("div",{style:{color:"var(--text-secondary)"},children:e},r))})]},r))})]}),(0,n.jsx)(h.R,{isOpen:U,onClose:()=>H(!1),onConfirm:D,title:"Archive Functional Spec",message:"Are you sure you want to archive this FS? It will be hidden from lists but can be restored later.",confirmLabel:"Archive",isDangerous:!0}),(0,n.jsx)(h.R,{isOpen:M,onClose:()=>G(!1),onConfirm:q,title:"Restore Functional Spec",message:"Are you sure you want to restore this FS?",confirmLabel:"Restore"})]}):(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem",height:"calc(100vh - 100px)"},children:[(0,n.jsxs)("div",{className:"card",style:{maxWidth:"none",overflow:"auto"},children:[(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"2rem",alignItems:"center"},children:[(0,n.jsx)(p.Mo,{icon:"⚙️",title:r?"New Functional Spec":`Editing ${e?.id}`,subtitle:"Gherkin-based feature builder"}),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[!r&&(0,n.jsx)("button",{onClick:X,className:"btn",style:{color:"var(--error)",borderColor:"var(--error)"},children:"Archive"}),(0,n.jsx)("button",{onClick:()=>{r?x.back():y(!1)},className:"btn",children:"Cancel"})]})]}),(0,n.jsx)(p.t3,{status:T}),(0,n.jsx)("div",{style:{marginBottom:"1.5rem"},children:(0,n.jsx)(p.zB,{label:"Title",required:!0,compact:!0,children:(0,n.jsx)("input",{value:S,onChange:e=>k(e.target.value),onFocus:()=>I("title"),onBlur:()=>I(null),placeholder:"e.g., User Login",style:(0,p.wI)("title",L)})})}),(0,n.jsx)(p.zB,{label:"Description",hint:"Brief description of the feature",children:(0,n.jsx)("textarea",{value:C,onChange:e=>w(e.target.value),onFocus:()=>I("description"),onBlur:()=>I(null),placeholder:"Brief description of the feature...",style:{...(0,p.KN)("description",L),minHeight:"80px"}})}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1rem",marginBottom:"1.5rem"},children:[(0,n.jsx)(p.zB,{label:"Link URS",compact:!0,children:(0,n.jsx)(m.j,{options:a.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:B,onChange:R,placeholder:"Search URS...",multi:!0})}),(0,n.jsx)(p.zB,{label:"Link Risks",compact:!0,children:(0,n.jsx)(m.j,{options:l.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:z,onChange:W,placeholder:"Search Risks...",multi:!0})})]}),(0,n.jsx)(p.zB,{label:"Test Scenarios",hint:"Gherkin scenarios",action:{label:"+ Scenario",onClick:()=>F([...$,{name:"",steps:[{type:"given",text:""},{type:"when",text:""},{type:"then",text:""}]}])},children:$.map((e,r)=>(0,n.jsx)(g,{scenario:e,index:r,stepsByType:u,focusedField:L,setFocusedField:I,onNameChange:e=>{let t;(t=[...$])[r].name=e,F(t)},onStepChange:(e,t)=>{let n;(n=[...$])[r].steps[e].text=t,F(n)},onStepTypeChange:(e,t)=>{let n;(n=[...$])[r].steps[e].type=t,F(n)},onAddStep:e=>{let t;(t=[...$])[r].steps.push({type:e,text:""}),F(t)},onRemoveStep:e=>{let t;(t=[...$])[r].steps=t[r].steps.filter((r,t)=>t!==e),F(t)},onRemove:()=>{$.length>1&&F($.filter((e,t)=>t!==r))},canRemove:$.length>1},r))})]}),(0,n.jsxs)("div",{className:"card",style:{maxWidth:"none",display:"flex",flexDirection:"column"},children:[(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,n.jsx)("h2",{style:{fontSize:"1.125rem",fontWeight:600},children:"\uD83D\uDCC4 Gherkin Preview"}),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[(0,n.jsx)("button",{onClick:()=>{let e=O(),r=`${f.trim()}-${S.toLowerCase().replace(/\s+/g,"-")}.feature`,t=new Blob([e],{type:"text/plain"}),n=URL.createObjectURL(t),i=document.createElement("a");i.href=n,i.download=r,i.click(),URL.revokeObjectURL(n)},className:"btn",children:"⬇️ Download"}),(0,n.jsx)(p.yY,{onClick:()=>{_({type:"idle"}),E(async()=>{let n=O(),i=r?"FS-NEW":f,s=`${i.trim()}-${S.toLowerCase().replace(/\s+/g,"-")}.feature`;try{let{saveFS:i,updateFSLinksAction:a}=await t.e(9447).then(t.bind(t,39447)),o=await i(s,n,r?void 0:e?.file_path);o.success?(await a(o.id,B),_({type:"success",message:`Saved ${o.id}`}),r?x.push(`/traceability/fs/${o.id}`):y(!1)):_({type:"error",message:o.error})}catch(e){_({type:"error",message:"Failed to save"})}})},disabled:A||!S.trim(),isPending:A,label:"Save"})]})]}),(0,n.jsx)("pre",{style:{background:"var(--bg-secondary)",padding:"1.25rem",borderRadius:"10px",overflow:"auto",whiteSpace:"pre-wrap",fontFamily:"'JetBrains Mono', monospace",fontSize:"0.8125rem",lineHeight:1.7,flex:1,border:"1px solid var(--border)"},children:O()})]})]})}function x({onClick:e}){return(0,n.jsx)("button",{onClick:e,style:{padding:"0.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"8px",color:"var(--text-secondary)",cursor:"pointer",lineHeight:1},title:"Remove",children:"✕"})}function g({scenario:e,index:r,stepsByType:t,focusedField:i,setFocusedField:s,onNameChange:a,onStepChange:o,onStepTypeChange:l,onAddStep:d,onRemoveStep:c,onRemove:h,canRemove:u}){return(0,n.jsxs)("div",{style:{marginBottom:"1rem",padding:"1.25rem",background:"var(--bg-secondary)",borderRadius:"10px",border:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem",marginBottom:"1rem",alignItems:"center"},children:[(0,n.jsxs)("span",{style:{color:"var(--accent)",fontWeight:600,fontSize:"0.875rem"},children:["Scenario ",r+1]}),(0,n.jsx)("input",{value:e.name,onChange:e=>a(e.target.value),onFocus:()=>s(`scenario-${r}`),onBlur:()=>s(null),placeholder:"Scenario name",style:{...(0,p.wI)(`scenario-${r}`,i),flex:1,fontWeight:500}}),u&&(0,n.jsx)(x,{onClick:h})]}),e.steps.map((e,r)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem",marginBottom:"0.75rem",alignItems:"center"},children:[(0,n.jsxs)("select",{value:e.type,onChange:e=>l(r,e.target.value),style:{minWidth:"80px",fontSize:"0.75rem",fontWeight:600,color:{given:"#a78bfa",when:"#60a5fa",then:"#34d399",and:"#94a3b8",but:"#f472b6"}[e.type]||"var(--text-secondary)",textTransform:"capitalize",padding:"0.25rem",borderRadius:"6px",border:"1px solid var(--border)",background:"var(--bg-primary)"},children:[(0,n.jsx)("option",{value:"given",children:"Given"}),(0,n.jsx)("option",{value:"when",children:"When"}),(0,n.jsx)("option",{value:"then",children:"Then"}),(0,n.jsx)("option",{value:"and",children:"And"}),(0,n.jsx)("option",{value:"but",children:"But"})]}),(0,n.jsx)(m.j,{options:t[e.type]?.map(e=>({value:e.replace(/^(Given|When|Then|And|But)\s+/,""),label:e}))||[],selected:e.text?[e.text]:[],onChange:e=>o(r,e[0]||""),placeholder:`Select or type ${e.type} step...`,multi:!1,allowCustom:!0}),(0,n.jsx)(x,{onClick:()=>c(r)})]},r)),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"1rem"},children:[(0,n.jsx)("button",{onClick:()=>d("given"),className:"btn btn-sm",style:{fontSize:"0.75rem"},children:"+ Given"}),(0,n.jsx)("button",{onClick:()=>d("when"),className:"btn btn-sm",style:{fontSize:"0.75rem"},children:"+ When"}),(0,n.jsx)("button",{onClick:()=>d("then"),className:"btn btn-sm",style:{fontSize:"0.75rem"},children:"+ Then"}),["and","but"].map(e=>(0,n.jsxs)("button",{onClick:()=>d(e),className:"btn btn-sm",style:{fontSize:"0.75rem"},children:["+ ",v(e)]},e))]})]})}function v(e){return e.charAt(0).toUpperCase()+e.slice(1)}}},e=>{e.O(0,[8500,2594,8441,3794,7358],()=>e(e.s=72504)),_N_E=e.O()}]);
7
+ `},X=async()=>{H(!0)},D=async()=>{await d(e.id),x.refresh(),b(!1)},P=async()=>{G(!0)},q=async()=>{await (0,c.m)(e.id),x.refresh()};return!y&&e?(0,n.jsxs)("div",{className:"card",style:{maxWidth:"900px"},children:[e.is_archived&&(0,n.jsxs)("div",{style:{background:"rgba(239, 68, 68, 0.1)",border:"1px solid var(--error)",padding:"1rem",borderRadius:"8px",marginBottom:"1.5rem",color:"var(--error)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,n.jsxs)("span",{children:[(0,n.jsx)("strong",{children:"Archived:"})," This item is soft-deleted and hidden from lists."]}),(0,n.jsx)("button",{onClick:P,className:"btn",style:{background:"var(--bg-hover)",border:"1px solid var(--error)",color:"var(--error)"},children:"Restore"})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:"2rem",paddingBottom:"1rem",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h1",{style:{margin:0,fontSize:"1.5rem",fontWeight:600,color:"var(--warning)"},children:e.id}),(0,n.jsx)("h2",{style:{margin:"0.5rem 0 0",fontSize:"1.25rem",fontWeight:500},children:e.title})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[(0,n.jsx)("button",{onClick:X,className:"btn",style:{background:"transparent",border:"1px solid var(--error)",color:"var(--error)",display:e.is_archived?"none":"flex",alignItems:"center",gap:"0.5rem"},children:"\uD83D\uDDD1️ Archive"}),(0,n.jsx)("button",{onClick:()=>b(!0),disabled:!!e.is_archived,className:"btn btn-primary",style:{opacity:e.is_archived?.5:1,cursor:e.is_archived?"not-allowed":"pointer"},children:"✏️ Edit"})]})]}),(0,n.jsxs)("div",{style:{marginBottom:"2rem"},children:[(0,n.jsx)("h3",{style:{fontSize:"1rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-secondary)"},children:"Description"}),(0,n.jsx)("div",{style:{lineHeight:1.6,whiteSpace:"pre-wrap"},children:e.description})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"2rem",marginBottom:"2rem"},children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{style:{fontSize:"1rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-secondary)"},children:"Linked Requirements"}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:e.urs_ids.length?e.urs_ids.map(e=>(0,n.jsx)(o(),{href:`/traceability/urs/${e}`,children:(0,n.jsx)("span",{className:"badge badge-success",children:e})},e)):"None"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{style:{fontSize:"1rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-secondary)"},children:"Linked Risks"}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:e.risk_ids.length?e.risk_ids.map(e=>(0,n.jsx)(o(),{href:`/traceability/risk/${e}`,children:(0,n.jsx)("span",{className:"badge",style:{background:"#f9731633",color:"#f97316"},children:e})},e)):"None"})]})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("h3",{style:{fontSize:"1rem",fontWeight:600,marginBottom:"1rem",color:"var(--text-secondary)"},children:"Scenarios"}),(0,n.jsx)("div",{style:{display:"grid",gap:"1rem"},children:e.scenarios.map((e,r)=>(0,n.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,n.jsxs)("div",{style:{fontWeight:600,marginBottom:"0.5rem"},children:["\uD83E\uDDEA ",e.name]}),(0,n.jsx)("div",{style:{fontFamily:"monospace",fontSize:"0.875rem"},children:e.steps.map((e,r)=>(0,n.jsx)("div",{style:{color:"var(--text-secondary)"},children:e},r))})]},r))})]}),(0,n.jsx)(h.R,{isOpen:U,onClose:()=>H(!1),onConfirm:D,title:"Archive Functional Spec",message:"Are you sure you want to archive this FS? It will be hidden from lists but can be restored later.",confirmLabel:"Archive",isDangerous:!0}),(0,n.jsx)(h.R,{isOpen:M,onClose:()=>G(!1),onConfirm:q,title:"Restore Functional Spec",message:"Are you sure you want to restore this FS?",confirmLabel:"Restore"})]}):(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem",height:"calc(100vh - 100px)"},children:[(0,n.jsxs)("div",{className:"card",style:{maxWidth:"none",overflow:"auto"},children:[(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"2rem",alignItems:"center"},children:[(0,n.jsx)(p.Mo,{icon:"⚙️",title:r?"New Functional Spec":`Editing ${e?.id}`,subtitle:"Gherkin-based feature builder"}),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[!r&&(0,n.jsx)("button",{onClick:X,className:"btn",style:{color:"var(--error)",borderColor:"var(--error)"},children:"Archive"}),(0,n.jsx)("button",{onClick:()=>{r?x.back():b(!1)},className:"btn",children:"Cancel"})]})]}),(0,n.jsx)(p.t3,{status:T}),(0,n.jsx)("div",{style:{marginBottom:"1.5rem"},children:(0,n.jsx)(p.zB,{label:"Title",required:!0,compact:!0,children:(0,n.jsx)("input",{value:S,onChange:e=>k(e.target.value),onFocus:()=>I("title"),onBlur:()=>I(null),placeholder:"e.g., User Login",style:(0,p.wI)("title",L)})})}),(0,n.jsx)(p.zB,{label:"Description",hint:"Brief description of the feature",children:(0,n.jsx)("textarea",{value:C,onChange:e=>w(e.target.value),onFocus:()=>I("description"),onBlur:()=>I(null),placeholder:"Brief description of the feature...",style:{...(0,p.KN)("description",L),minHeight:"80px"}})}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1rem",marginBottom:"1.5rem"},children:[(0,n.jsx)(p.zB,{label:"Link URS",compact:!0,children:(0,n.jsx)(m.j,{options:a.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:B,onChange:R,placeholder:"Search URS...",multi:!0})}),(0,n.jsx)(p.zB,{label:"Link Risks",compact:!0,children:(0,n.jsx)(m.j,{options:l.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:z,onChange:W,placeholder:"Search Risks...",multi:!0})})]}),(0,n.jsx)(p.zB,{label:"Test Scenarios",hint:"Gherkin scenarios",action:{label:"+ Scenario",onClick:()=>F([...$,{name:"",steps:[{type:"given",text:""},{type:"when",text:""},{type:"then",text:""}]}])},children:$.map((e,r)=>(0,n.jsx)(g,{scenario:e,index:r,stepsByType:u,focusedField:L,setFocusedField:I,onNameChange:e=>{let t;(t=[...$])[r].name=e,F(t)},onStepChange:(e,t)=>{let n;(n=[...$])[r].steps[e].text=t,F(n)},onStepTypeChange:(e,t)=>{let n;(n=[...$])[r].steps[e].type=t,F(n)},onAddStep:e=>{let t;(t=[...$])[r].steps.push({type:e,text:""}),F(t)},onRemoveStep:e=>{let t;(t=[...$])[r].steps=t[r].steps.filter((r,t)=>t!==e),F(t)},onRemove:()=>{$.length>1&&F($.filter((e,t)=>t!==r))},canRemove:$.length>1},r))})]}),(0,n.jsxs)("div",{className:"card",style:{maxWidth:"none",display:"flex",flexDirection:"column"},children:[(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,n.jsx)("h2",{style:{fontSize:"1.125rem",fontWeight:600},children:"\uD83D\uDCC4 Gherkin Preview"}),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[(0,n.jsx)("button",{onClick:()=>{let e=O(),r=`${f.trim()}-${S.toLowerCase().replace(/\s+/g,"-")}.feature`,t=new Blob([e],{type:"text/plain"}),n=URL.createObjectURL(t),i=document.createElement("a");i.href=n,i.download=r,i.click(),URL.revokeObjectURL(n)},className:"btn",children:"⬇️ Download"}),(0,n.jsx)(p.yY,{onClick:()=>{_({type:"idle"}),E(async()=>{let n=O(),i=r?"FS-NEW":f,s=`${i.trim()}-${S.toLowerCase().replace(/\s+/g,"-")}.feature`;try{let{saveFS:i,updateFSLinksAction:a}=await t.e(8216).then(t.bind(t,98216)),o=await i(s,n,r?void 0:e?.file_path);o.success?(await a(o.id,B),_({type:"success",message:`Saved ${o.id}`}),r?x.push(`/traceability/fs/${o.id}`):b(!1)):_({type:"error",message:o.error})}catch(e){_({type:"error",message:"Failed to save"})}})},disabled:A||!S.trim(),isPending:A,label:"Save"})]})]}),(0,n.jsx)("pre",{style:{background:"var(--bg-secondary)",padding:"1.25rem",borderRadius:"10px",overflow:"auto",whiteSpace:"pre-wrap",fontFamily:"'JetBrains Mono', monospace",fontSize:"0.8125rem",lineHeight:1.7,flex:1,border:"1px solid var(--border)"},children:O()})]})]})}function x({onClick:e}){return(0,n.jsx)("button",{onClick:e,style:{padding:"0.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"8px",color:"var(--text-secondary)",cursor:"pointer",lineHeight:1},title:"Remove",children:"✕"})}function g({scenario:e,index:r,stepsByType:t,focusedField:i,setFocusedField:s,onNameChange:a,onStepChange:o,onStepTypeChange:l,onAddStep:d,onRemoveStep:c,onRemove:h,canRemove:u}){return(0,n.jsxs)("div",{style:{marginBottom:"1rem",padding:"1.25rem",background:"var(--bg-secondary)",borderRadius:"10px",border:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem",marginBottom:"1rem",alignItems:"center"},children:[(0,n.jsxs)("span",{style:{color:"var(--accent)",fontWeight:600,fontSize:"0.875rem"},children:["Scenario ",r+1]}),(0,n.jsx)("input",{value:e.name,onChange:e=>a(e.target.value),onFocus:()=>s(`scenario-${r}`),onBlur:()=>s(null),placeholder:"Scenario name",style:{...(0,p.wI)(`scenario-${r}`,i),flex:1,fontWeight:500}}),u&&(0,n.jsx)(x,{onClick:h})]}),e.steps.map((e,r)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem",marginBottom:"0.75rem",alignItems:"center"},children:[(0,n.jsxs)("select",{value:e.type,onChange:e=>l(r,e.target.value),style:{minWidth:"80px",fontSize:"0.75rem",fontWeight:600,color:{given:"#a78bfa",when:"#60a5fa",then:"#34d399",and:"#94a3b8",but:"#f472b6"}[e.type]||"var(--text-secondary)",textTransform:"capitalize",padding:"0.25rem",borderRadius:"6px",border:"1px solid var(--border)",background:"var(--bg-primary)"},children:[(0,n.jsx)("option",{value:"given",children:"Given"}),(0,n.jsx)("option",{value:"when",children:"When"}),(0,n.jsx)("option",{value:"then",children:"Then"}),(0,n.jsx)("option",{value:"and",children:"And"}),(0,n.jsx)("option",{value:"but",children:"But"})]}),(0,n.jsx)(m.j,{options:t[e.type]?.map(e=>({value:e.replace(/^(Given|When|Then|And|But)\s+/,""),label:e}))||[],selected:e.text?[e.text]:[],onChange:e=>o(r,e[0]||""),placeholder:`Select or type ${e.type} step...`,multi:!1,allowCustom:!0}),(0,n.jsx)(x,{onClick:()=>c(r)})]},r)),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"1rem"},children:[(0,n.jsx)("button",{onClick:()=>d("given"),className:"btn btn-sm",style:{fontSize:"0.75rem"},children:"+ Given"}),(0,n.jsx)("button",{onClick:()=>d("when"),className:"btn btn-sm",style:{fontSize:"0.75rem"},children:"+ When"}),(0,n.jsx)("button",{onClick:()=>d("then"),className:"btn btn-sm",style:{fontSize:"0.75rem"},children:"+ Then"}),["and","but"].map(e=>(0,n.jsxs)("button",{onClick:()=>d(e),className:"btn btn-sm",style:{fontSize:"0.75rem"},children:["+ ",v(e)]},e))]})]})}function v(e){return e.charAt(0).toUpperCase()+e.slice(1)}},13987:(e,r,t)=>{"use strict";t.d(r,{j:()=>s});var n=t(95155),i=t(12115);function s({options:e,selected:r,onChange:t,placeholder:s,multi:a=!0,allowCustom:o=!0}){let[l,d]=(0,i.useState)(!1),[c,m]=(0,i.useState)(""),p=(0,i.useRef)(null),h=e.filter(e=>e.label.toLowerCase().includes(c.toLowerCase())&&(!a||!r.includes(e.value)));return(0,i.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,n.jsxs)("div",{ref:p,style:{position:"relative",flex:1},children:[a&&r.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:"0.25rem",flexWrap:"wrap",marginBottom:"0.5rem"},children:r.map(i=>{let s=e.find(e=>e.value===i);return(0,n.jsxs)("span",{className:"badge badge-success",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[s?.value||i,(0,n.jsx)("button",{onClick:()=>{t(r.filter(e=>e!==i))},style:{background:"none",border:"none",cursor:"pointer",padding:0,fontSize:"1rem",color:"inherit"},children:"\xd7"})]},i)})}),(0,n.jsx)("input",{type:"text",value:a||l?c:(()=>{if(!a&&r.length>0){let t=e.find(e=>e.value===r[0]);return t?.label||r[0]}return""})(),onChange:e=>m(e.target.value),onFocus:()=>d(!0),placeholder:0!==r.length&&a?"Add more...":s,className:"input",style:{width:"100%"}}),l&&(0,n.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,right:0,marginTop:"0.25rem",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"8px",maxHeight:"200px",overflowY:"auto",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[0===h.length?(0,n.jsx)("div",{style:{padding:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:o?"No matches - type to create":"No matching steps"}):h.slice(0,20).map(e=>(0,n.jsxs)("div",{onClick:()=>{var n;return n=e.value,void(a?t([...r,n]):(t([n]),d(!1)),m(""))},style:{padding:"0.625rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",borderBottom:"1px solid var(--border)",transition:"background 0.15s"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,n.jsx)("div",{style:{fontWeight:500},children:e.value}),e.label!==e.value&&(0,n.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"0.125rem"},children:e.label})]},e.value)),h.length>20&&(0,n.jsxs)("div",{style:{padding:"0.5rem",color:"var(--text-secondary)",fontSize:"0.75rem",textAlign:"center"},children:["+",h.length-20," more..."]})]})]})}},17948:(e,r,t)=>{"use strict";t.d(r,{KN:()=>c,Mo:()=>h,d0:()=>x,mQ:()=>d,t3:()=>p,wI:()=>l,yY:()=>u,zB:()=>m});var n=t(95155);t(12115);let i={width:"100%",padding:"0.875rem 1rem",fontSize:"0.9375rem",lineHeight:"1.5",color:"var(--text-primary)",background:"var(--bg-secondary)",borderWidth:"1px",borderStyle:"solid",borderColor:"var(--border)",borderRadius:"10px",outline:"none",transition:"all 0.2s ease"},s={borderColor:"var(--accent)",boxShadow:"0 0 0 3px rgba(99, 102, 241, 0.15)"},a={...i,cursor:"pointer",appearance:"none",backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238888a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 1rem center",paddingRight:"2.5rem"},o={...i,resize:"vertical",minHeight:"120px",fontFamily:"inherit"};function l(e,r){return{...i,...r===e?s:{}}}function d(e,r){return{...a,...r===e?s:{}}}function c(e,r){return{...o,...r===e?s:{}}}function m({label:e,children:r,required:t,compact:i,hint:s,action:a}){return(0,n.jsxs)("div",{style:{marginBottom:i?"0":"1.5rem"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,n.jsx)("label",{style:{fontWeight:500,fontSize:"0.875rem",color:"var(--text-primary)"},children:e}),t&&(0,n.jsx)("span",{style:{color:"var(--accent)",fontSize:"0.75rem"},children:"Required"}),s&&(0,n.jsxs)("span",{style:{color:"var(--text-secondary)",fontSize:"0.8125rem",fontWeight:400},children:["— ",s]})]}),a&&(0,n.jsx)("button",{onClick:a.onClick,style:{padding:"0.375rem 0.75rem",fontSize:"0.8125rem",fontWeight:500,background:"transparent",border:"1px solid var(--accent)",borderRadius:"6px",color:"var(--accent)",cursor:"pointer",transition:"all 0.2s"},children:a.label})]}),r]})}function p({status:e}){return"idle"===e.type?null:(0,n.jsxs)("div",{style:{marginBottom:"1.5rem",padding:"1rem 1.25rem",borderRadius:"10px",background:"success"===e.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===e.type?"var(--success)":"var(--error)",fontSize:"0.9375rem",display:"flex",alignItems:"center",gap:"0.5rem",borderWidth:"1px",borderStyle:"solid",borderColor:"success"===e.type?"rgba(16, 185, 129, 0.2)":"rgba(239, 68, 68, 0.2)"},children:["success"===e.type?"✅":"❌"," ",e.message]})}function h({icon:e,title:r,subtitle:t}){return(0,n.jsxs)("div",{style:{marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("h2",{style:{margin:0,fontSize:"1.25rem",fontWeight:600},children:[e," ",r]}),(0,n.jsx)("p",{style:{margin:"0.25rem 0 0",color:"var(--text-secondary)",fontSize:"0.875rem"},children:t})]})}function u({onClick:e,disabled:r,isPending:t,label:i="Save"}){return(0,n.jsx)("button",{onClick:e,disabled:r,style:{padding:"0.75rem 1.5rem",fontSize:"0.9375rem",fontWeight:600,borderRadius:"10px",border:"none",cursor:r?"not-allowed":"pointer",background:r?"var(--bg-hover)":"linear-gradient(135deg, var(--gradient-start), var(--gradient-end))",color:r?"var(--text-secondary)":"white",transition:"all 0.2s ease",boxShadow:r?"none":"0 4px 12px rgba(99, 102, 241, 0.25)"},children:t?"\uD83D\uDCBE Saving...":`💾 ${i}`})}function x({onClick:e}){return(0,n.jsx)("button",{onClick:e,style:{padding:"0.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"8px",color:"var(--text-secondary)",cursor:"pointer",transition:"all 0.2s",lineHeight:1},title:"Remove",children:"✕"})}},38942:(e,r,t)=>{"use strict";t.d(r,{R:()=>o});var n=t(95155),i=t(39092),s=t.n(i);function a({isOpen:e,onClose:r,children:t,width:i="500px"}){return e?(0,n.jsxs)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)",background:"rgba(0, 0, 0, 0.5)",animation:"fadeIn 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:[(0,n.jsx)("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--bg-primary)",borderRadius:"12px",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",width:i,maxWidth:"90%",maxHeight:"90vh",overflow:"auto",border:"1px solid var(--border)",animation:"slideUp 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:t}),(0,n.jsx)(s(),{id:"5d567d25508aa188",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:scale(.95)translatey(10px)}to{opacity:1;transform:scale(1)translatey(0)}}"})]}):null}function o({isOpen:e,onClose:r,onConfirm:t,title:i,message:s,confirmLabel:o="Confirm",cancelLabel:l="Cancel",isDangerous:d=!1}){return(0,n.jsx)(a,{isOpen:e,onClose:r,width:"400px",children:(0,n.jsxs)("div",{style:{padding:"1.5rem"},children:[(0,n.jsx)("h3",{style:{margin:"0 0 0.5rem 0",fontSize:"1.25rem",fontWeight:600},children:i}),(0,n.jsx)("p",{style:{margin:"0 0 1.5rem 0",color:"var(--text-secondary)",lineHeight:1.5},children:s}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.75rem"},children:[(0,n.jsx)("button",{onClick:r,className:"btn",style:{background:"transparent",border:"1px solid var(--border)",color:"var(--text-primary)"},children:l}),(0,n.jsx)("button",{onClick:()=>{t(),r()},className:"btn",style:{background:d?"var(--error)":"var(--accent)",color:"white",border:"none",fontWeight:600},children:o})]})]})})}t(12115)},63407:(e,r,t)=>{"use strict";t.d(r,{m:()=>i});var n=t(9339);let i=(0,n.createServerReference)("4079a37e5e7990ebac456ab2a7681efadc460cda1e",n.callServer,void 0,n.findSourceMapURL,"restoreFSAction")},72504:(e,r,t)=>{Promise.resolve().then(t.bind(t,1642))}},e=>{e.O(0,[8500,213,8441,3794,7358],()=>e(e.s=72504)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[510],{13987:(e,r,t)=>{"use strict";t.d(r,{j:()=>n});var i=t(95155),s=t(12115);function n({options:e,selected:r,onChange:t,placeholder:n,multi:l=!0,allowCustom:a=!0}){let[o,d]=(0,s.useState)(!1),[c,m]=(0,s.useState)(""),p=(0,s.useRef)(null),u=e.filter(e=>e.label.toLowerCase().includes(c.toLowerCase())&&(!l||!r.includes(e.value)));return(0,s.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,i.jsxs)("div",{ref:p,style:{position:"relative",flex:1},children:[l&&r.length>0&&(0,i.jsx)("div",{style:{display:"flex",gap:"0.25rem",flexWrap:"wrap",marginBottom:"0.5rem"},children:r.map(s=>{let n=e.find(e=>e.value===s);return(0,i.jsxs)("span",{className:"badge badge-success",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[n?.value||s,(0,i.jsx)("button",{onClick:()=>{t(r.filter(e=>e!==s))},style:{background:"none",border:"none",cursor:"pointer",padding:0,fontSize:"1rem",color:"inherit"},children:"\xd7"})]},s)})}),(0,i.jsx)("input",{type:"text",value:l||o?c:(()=>{if(!l&&r.length>0){let t=e.find(e=>e.value===r[0]);return t?.label||r[0]}return""})(),onChange:e=>m(e.target.value),onFocus:()=>d(!0),placeholder:0!==r.length&&l?"Add more...":n,className:"input",style:{width:"100%"}}),o&&(0,i.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,right:0,marginTop:"0.25rem",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"8px",maxHeight:"200px",overflowY:"auto",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[0===u.length?(0,i.jsx)("div",{style:{padding:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:a?"No matches - type to create":"No matching steps"}):u.slice(0,20).map(e=>(0,i.jsxs)("div",{onClick:()=>{var i;return i=e.value,void(l?t([...r,i]):(t([i]),d(!1)),m(""))},style:{padding:"0.625rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",borderBottom:"1px solid var(--border)",transition:"background 0.15s"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,i.jsx)("div",{style:{fontWeight:500},children:e.value}),e.label!==e.value&&(0,i.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"0.125rem"},children:e.label})]},e.value)),u.length>20&&(0,i.jsxs)("div",{style:{padding:"0.5rem",color:"var(--text-secondary)",fontSize:"0.75rem",textAlign:"center"},children:["+",u.length-20," more..."]})]})]})}},17948:(e,r,t)=>{"use strict";t.d(r,{KN:()=>c,Mo:()=>u,d0:()=>h,mQ:()=>d,t3:()=>p,wI:()=>o,yY:()=>g,zB:()=>m});var i=t(95155);t(12115);let s={width:"100%",padding:"0.875rem 1rem",fontSize:"0.9375rem",lineHeight:"1.5",color:"var(--text-primary)",background:"var(--bg-secondary)",borderWidth:"1px",borderStyle:"solid",borderColor:"var(--border)",borderRadius:"10px",outline:"none",transition:"all 0.2s ease"},n={borderColor:"var(--accent)",boxShadow:"0 0 0 3px rgba(99, 102, 241, 0.15)"},l={...s,cursor:"pointer",appearance:"none",backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238888a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 1rem center",paddingRight:"2.5rem"},a={...s,resize:"vertical",minHeight:"120px",fontFamily:"inherit"};function o(e,r){return{...s,...r===e?n:{}}}function d(e,r){return{...l,...r===e?n:{}}}function c(e,r){return{...a,...r===e?n:{}}}function m({label:e,children:r,required:t,compact:s,hint:n,action:l}){return(0,i.jsxs)("div",{style:{marginBottom:s?"0":"1.5rem"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,i.jsx)("label",{style:{fontWeight:500,fontSize:"0.875rem",color:"var(--text-primary)"},children:e}),t&&(0,i.jsx)("span",{style:{color:"var(--accent)",fontSize:"0.75rem"},children:"Required"}),n&&(0,i.jsxs)("span",{style:{color:"var(--text-secondary)",fontSize:"0.8125rem",fontWeight:400},children:["— ",n]})]}),l&&(0,i.jsx)("button",{onClick:l.onClick,style:{padding:"0.375rem 0.75rem",fontSize:"0.8125rem",fontWeight:500,background:"transparent",border:"1px solid var(--accent)",borderRadius:"6px",color:"var(--accent)",cursor:"pointer",transition:"all 0.2s"},children:l.label})]}),r]})}function p({status:e}){return"idle"===e.type?null:(0,i.jsxs)("div",{style:{marginBottom:"1.5rem",padding:"1rem 1.25rem",borderRadius:"10px",background:"success"===e.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===e.type?"var(--success)":"var(--error)",fontSize:"0.9375rem",display:"flex",alignItems:"center",gap:"0.5rem",borderWidth:"1px",borderStyle:"solid",borderColor:"success"===e.type?"rgba(16, 185, 129, 0.2)":"rgba(239, 68, 68, 0.2)"},children:["success"===e.type?"✅":"❌"," ",e.message]})}function u({icon:e,title:r,subtitle:t}){return(0,i.jsxs)("div",{style:{marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,i.jsxs)("h2",{style:{margin:0,fontSize:"1.25rem",fontWeight:600},children:[e," ",r]}),(0,i.jsx)("p",{style:{margin:"0.25rem 0 0",color:"var(--text-secondary)",fontSize:"0.875rem"},children:t})]})}function g({onClick:e,disabled:r,isPending:t,label:s="Save"}){return(0,i.jsx)("button",{onClick:e,disabled:r,style:{padding:"0.75rem 1.5rem",fontSize:"0.9375rem",fontWeight:600,borderRadius:"10px",border:"none",cursor:r?"not-allowed":"pointer",background:r?"var(--bg-hover)":"linear-gradient(135deg, var(--gradient-start), var(--gradient-end))",color:r?"var(--text-secondary)":"white",transition:"all 0.2s ease",boxShadow:r?"none":"0 4px 12px rgba(99, 102, 241, 0.25)"},children:t?"\uD83D\uDCBE Saving...":`💾 ${s}`})}function h({onClick:e}){return(0,i.jsx)("button",{onClick:e,style:{padding:"0.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"8px",color:"var(--text-secondary)",cursor:"pointer",transition:"all 0.2s",lineHeight:1},title:"Remove",children:"✕"})}},38942:(e,r,t)=>{"use strict";t.d(r,{R:()=>a});var i=t(95155),s=t(39092),n=t.n(s);function l({isOpen:e,onClose:r,children:t,width:s="500px"}){return e?(0,i.jsxs)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)",background:"rgba(0, 0, 0, 0.5)",animation:"fadeIn 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:[(0,i.jsx)("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--bg-primary)",borderRadius:"12px",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",width:s,maxWidth:"90%",maxHeight:"90vh",overflow:"auto",border:"1px solid var(--border)",animation:"slideUp 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:t}),(0,i.jsx)(n(),{id:"5d567d25508aa188",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:scale(.95)translatey(10px)}to{opacity:1;transform:scale(1)translatey(0)}}"})]}):null}function a({isOpen:e,onClose:r,onConfirm:t,title:s,message:n,confirmLabel:a="Confirm",cancelLabel:o="Cancel",isDangerous:d=!1}){return(0,i.jsx)(l,{isOpen:e,onClose:r,width:"400px",children:(0,i.jsxs)("div",{style:{padding:"1.5rem"},children:[(0,i.jsx)("h3",{style:{margin:"0 0 0.5rem 0",fontSize:"1.25rem",fontWeight:600},children:s}),(0,i.jsx)("p",{style:{margin:"0 0 1.5rem 0",color:"var(--text-secondary)",lineHeight:1.5},children:n}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.75rem"},children:[(0,i.jsx)("button",{onClick:r,className:"btn",style:{background:"transparent",border:"1px solid var(--border)",color:"var(--text-primary)"},children:o}),(0,i.jsx)("button",{onClick:()=>{t(),r()},className:"btn",style:{background:d?"var(--error)":"var(--accent)",color:"white",border:"none",fontWeight:600},children:a})]})]})})}t(12115)},43992:(e,r,t)=>{"use strict";t.d(r,{RiskClient:()=>g});var i=t(95155),s=t(12115),n=t(73321),l=t(98500),a=t.n(l),o=t(9339);let d=(0,o.createServerReference)("4018ccaaa027ba7f3593e5d745a6fe390f7342043e",o.callServer,void 0,o.findSourceMapURL,"archiveRiskAction");var c=t(90945),m=t(13987),p=t(17948),u=t(38942);function g({risk:e,isNew:r=!1,fsItems:l}){let o=(0,n.useRouter)(),[g,b]=(0,s.useState)(r),[y,f]=(0,s.useState)(e?.title||""),[j,k]=(0,s.useState)(e?.status||"draft"),[C,S]=(0,s.useState)(e?.category||""),[w,R]=(0,s.useState)(e?.gamp_category||4),[z,I]=(0,s.useState)(e?.impact||"medium"),[B,_]=(0,s.useState)(e?.probability||"medium"),[W,N]=(0,s.useState)(e?.risk_level||"medium"),[F,L]=(0,s.useState)(e?.residual_risk||"acceptable"),[$,A]=(0,s.useState)(e?.fs_ids||[]),T=e?.risks?.length?e.risks.map(e=>({id:e.id,description:e.description,impact:e.impact,probability:e.probability})):[{id:"R-001.1",description:"",impact:"medium",probability:"medium"}],E=e?.mitigations?.length?e.mitigations.map(e=>({risk_id:e.risk_id,control:e.control,test:e.test})):[{risk_id:"R-001.1",control:"",test:""}],[H,M]=(0,s.useState)(T),[D,P]=(0,s.useState)(E),[O,Q]=(0,s.useState)(null),[U,q]=(0,s.useState)({type:"idle"}),[Y,K]=(0,s.useTransition)(),[G,J]=(0,s.useState)(!1),[V,X]=(0,s.useState)(!1),Z=(e,r,t)=>{let i=[...H];i[e]={...i[e],[r]:t},M(i)},ee=(e,r,t)=>{let i=[...D];i[e]={...i[e],[r]:t},P(i)},er=async()=>{J(!0)},et=async()=>{await d(e.id),o.refresh(),b(!1)},ei=async()=>{X(!0)},es=async()=>{await (0,c.I)(e.id),o.refresh()};return!g&&e?(0,i.jsxs)("div",{className:"card",style:{maxWidth:"900px"},children:[e.is_archived&&(0,i.jsxs)("div",{style:{background:"rgba(239, 68, 68, 0.1)",border:"1px solid var(--error)",padding:"1rem",borderRadius:"8px",marginBottom:"1.5rem",color:"var(--error)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,i.jsxs)("span",{children:[(0,i.jsx)("strong",{children:"Archived:"})," This item is soft-deleted and hidden from lists."]}),(0,i.jsx)("button",{onClick:ei,className:"btn",style:{background:"var(--bg-hover)",border:"1px solid var(--error)",color:"var(--error)"},children:"Restore"})]}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem"},children:[(0,i.jsx)("span",{style:{fontSize:"0.75rem",fontWeight:600,padding:"0.25rem 0.75rem",background:"#f97316",borderRadius:"6px",color:"white"},children:e.id}),(0,i.jsxs)("span",{className:`badge ${"acceptable"===e.residual_risk?"badge-success":"badge-error"}`,style:{textTransform:"capitalize"},children:["acceptable"===e.residual_risk?"✅":"⚠️"," ",e.residual_risk||"pending"]})]}),(0,i.jsx)("h1",{style:{margin:0,fontSize:"1.5rem",fontWeight:600,lineHeight:1.3},children:e.title})]}),(0,i.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[(0,i.jsx)("button",{onClick:er,className:"btn",style:{background:"transparent",border:"1px solid var(--error)",color:"var(--error)",display:e.is_archived?"none":"flex",alignItems:"center",gap:"0.5rem"},children:"\uD83D\uDDD1️ Archive"}),(0,i.jsxs)("button",{onClick:()=>b(!0),disabled:!!e.is_archived,className:"btn btn-primary",style:{display:"flex",gap:"0.5rem",alignItems:"center",opacity:e.is_archived?.5:1,cursor:e.is_archived?"not-allowed":"pointer"},children:[(0,i.jsx)("span",{children:"✏️"})," Edit"]})]})]}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem",marginBottom:"1.5rem"},children:[(0,i.jsx)(h,{label:"Category",value:e.category}),(0,i.jsx)(h,{label:"Impact",value:e.impact,color:v(e.impact)}),(0,i.jsx)(h,{label:"Probability",value:e.probability,color:v(e.probability)}),(0,i.jsx)(h,{label:"Risk Level",value:e.risk_level,color:v(e.risk_level)})]}),(0,i.jsx)(x,{label:"Linked Functional Specs",children:e.fs_ids.length>0?(0,i.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:e.fs_ids.map(e=>(0,i.jsx)(a(),{href:`/traceability/fs/${e}`,children:(0,i.jsx)("span",{className:"badge badge-warning",children:e})},e))}):(0,i.jsx)("span",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No functional specs linked. Edit to add links."})}),e.risks.length>0&&(0,i.jsx)(x,{label:"Identified Risks",count:e.risks.length,children:(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:e.risks.map((e,r)=>(0,i.jsxs)("div",{style:{display:"flex",gap:"0.75rem",alignItems:"flex-start"},children:[(0,i.jsx)("span",{style:{color:"#f97316",fontWeight:600,fontSize:"0.875rem",fontFamily:"monospace",minWidth:"70px"},children:e.id}),(0,i.jsx)("span",{style:{lineHeight:1.6},children:e.description})]},r))})}),e.mitigations.length>0&&(0,i.jsx)(x,{label:"Mitigation & Control",count:e.mitigations.length,children:(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:e.mitigations.map((e,r)=>(0,i.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.25rem"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,i.jsxs)("span",{style:{color:"var(--accent)",fontWeight:600,fontSize:"0.75rem"},children:["For ",e.risk_id,":"]}),(0,i.jsx)("span",{style:{fontWeight:500},children:e.control})]}),(0,i.jsxs)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)",paddingLeft:"1rem"},children:["Test: ",e.test]})]},r))})}),(0,i.jsx)(u.R,{isOpen:G,onClose:()=>J(!1),onConfirm:et,title:"Archive Risk",message:"Are you sure you want to archive this Risk? It will be hidden from lists but can be restored later.",confirmLabel:"Archive",isDangerous:!0}),(0,i.jsx)(u.R,{isOpen:V,onClose:()=>X(!1),onConfirm:es,title:"Restore Risk",message:"Are you sure you want to restore this Risk?",confirmLabel:"Restore"})]}):(0,i.jsxs)("div",{className:"card",style:{maxWidth:"900px"},children:[(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"2rem",alignItems:"center"},children:[(0,i.jsx)(p.Mo,{icon:"⚠️",title:r?"New Risk Assessment":`Editing ${e?.id}`,subtitle:"Identify and mitigate risks"}),(0,i.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[!r&&(0,i.jsx)("button",{onClick:er,className:"btn",style:{color:"var(--error)",borderColor:"var(--error)"},children:"Archive"}),(0,i.jsx)("button",{onClick:()=>{r?o.back():b(!1)},className:"btn",children:"Cancel"}),(0,i.jsx)(p.yY,{onClick:()=>{q({type:"idle"}),K(async()=>{try{let i,s={title:y,status:j,category:C,gamp_category:w,fs_ids:$,impact:z,probability:B,risk_level:W,residual_risk:F,risks:H.filter(e=>e.description.trim()||e.id).map(e=>({id:e.id,description:e.description,impact:e.impact,probability:e.probability})),mitigations:D.filter(e=>e.control.trim()).map(e=>({risk_id:e.risk_id,control:e.control,test:e.test}))};if(r){let{saveRisk:e}=await t.e(9447).then(t.bind(t,39447));i=await e(s)}else{let{updateRiskAction:r}=await t.e(9447).then(t.bind(t,39447));i=await r(e.id,s)}i.success?(q({type:"success",message:`Saved ${i.id}`}),r?o.push(`/traceability/risk/${i.id}`):(o.refresh(),b(!1))):q({type:"error",message:i.error})}catch(e){q({type:"error",message:"Failed to save"})}})},disabled:Y||!y.trim(),isPending:Y,label:"Save Risk"})]})]}),(0,i.jsx)(p.t3,{status:U}),(0,i.jsx)(p.zB,{label:"Title",required:!0,children:(0,i.jsx)("input",{value:y,onChange:e=>f(e.target.value),style:(0,p.wI)("title",O),onFocus:()=>Q("title"),onBlur:()=>Q(null)})}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1rem",marginBottom:"1.5rem"},children:[(0,i.jsx)(p.zB,{label:"Category",compact:!0,children:(0,i.jsx)("input",{value:C,onChange:e=>S(e.target.value),style:(0,p.wI)("cat",O),onFocus:()=>Q("cat")})}),(0,i.jsx)(p.zB,{label:"Link FS",required:!0,compact:!0,children:(0,i.jsx)(m.j,{options:l.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:$,onChange:A,placeholder:"Search FS...",multi:!0})})]}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem",marginBottom:"1.5rem"},children:[(0,i.jsx)(p.zB,{label:"Impact",compact:!0,children:(0,i.jsxs)("select",{value:z,onChange:e=>I(e.target.value),style:(0,p.mQ)("imp",O),onFocus:()=>Q("imp"),children:[(0,i.jsx)("option",{value:"low",children:"\uD83D\uDFE2 Low"}),(0,i.jsx)("option",{value:"medium",children:"\uD83D\uDFE1 Medium"}),(0,i.jsx)("option",{value:"high",children:"\uD83D\uDFE0 High"}),(0,i.jsx)("option",{value:"critical",children:"\uD83D\uDD34 Critical"})]})}),(0,i.jsx)(p.zB,{label:"Probability",compact:!0,children:(0,i.jsxs)("select",{value:B,onChange:e=>_(e.target.value),style:(0,p.mQ)("prob",O),onFocus:()=>Q("prob"),children:[(0,i.jsx)("option",{value:"low",children:"\uD83D\uDFE2 Low"}),(0,i.jsx)("option",{value:"medium",children:"\uD83D\uDFE1 Medium"}),(0,i.jsx)("option",{value:"high",children:"\uD83D\uDD34 High"})]})}),(0,i.jsx)(p.zB,{label:"Risk Level",compact:!0,children:(0,i.jsxs)("select",{value:W,onChange:e=>N(e.target.value),style:(0,p.mQ)("lvl",O),onFocus:()=>Q("lvl"),children:[(0,i.jsx)("option",{value:"low",children:"\uD83D\uDFE2 Low"}),(0,i.jsx)("option",{value:"medium",children:"\uD83D\uDFE1 Medium"}),(0,i.jsx)("option",{value:"high",children:"\uD83D\uDFE0 High"}),(0,i.jsx)("option",{value:"critical",children:"\uD83D\uDD34 Critical"})]})}),(0,i.jsx)(p.zB,{label:"Residual Risk",compact:!0,children:(0,i.jsxs)("select",{value:F,onChange:e=>L(e.target.value),style:(0,p.mQ)("res",O),onFocus:()=>Q("res"),children:[(0,i.jsx)("option",{value:"acceptable",children:"✅ Acceptable"}),(0,i.jsx)("option",{value:"unacceptable",children:"❌ Unacceptable"}),(0,i.jsx)("option",{value:"pending",children:"⏳ Pending"})]})})]}),(0,i.jsx)(p.zB,{label:"Identified Risks",hint:"List specific risks",action:{label:"+ Add Risk",onClick:()=>M([...H,{id:`R-001.${H.length+1}`,description:"",impact:"medium",probability:"medium"}])},children:(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:H.map((e,r)=>(0,i.jsxs)("div",{style:{display:"flex",gap:"0.75rem",alignItems:"center"},children:[(0,i.jsx)("input",{value:e.id,onChange:e=>Z(r,"id",e.target.value),onFocus:()=>Q(`risk-id-${r}`),onBlur:()=>Q(null),placeholder:"R-ID",style:{...(0,p.wI)(`risk-id-${r}`,O),width:"100px",flexShrink:0}}),(0,i.jsx)("input",{value:e.description,onChange:e=>Z(r,"description",e.target.value),onFocus:()=>Q(`risk-desc-${r}`),onBlur:()=>Q(null),placeholder:"Risk description",style:{...(0,p.wI)(`risk-desc-${r}`,O),flex:1}}),H.length>1&&(0,i.jsx)(p.d0,{onClick:()=>{H.length>1&&M(H.filter((e,t)=>t!==r))}})]},r))})}),(0,i.jsx)(p.zB,{label:"Mitigations",hint:"Control measures and testing",action:{label:"+ Add Mitigation",onClick:()=>P([...D,{risk_id:"",control:"",test:""}])},children:(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:D.map((e,r)=>(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"100px 1fr 1fr auto",gap:"0.75rem",alignItems:"center",padding:"1rem",background:"var(--bg-secondary)",borderRadius:"10px",border:"1px solid var(--border)"},children:[(0,i.jsx)("input",{value:e.risk_id,onChange:e=>ee(r,"risk_id",e.target.value),onFocus:()=>Q(`mit-id-${r}`),onBlur:()=>Q(null),placeholder:"R-ID",style:(0,p.wI)(`mit-id-${r}`,O)}),(0,i.jsx)("input",{value:e.control,onChange:e=>ee(r,"control",e.target.value),onFocus:()=>Q(`mit-control-${r}`),onBlur:()=>Q(null),placeholder:"Control measure",style:(0,p.wI)(`mit-control-${r}`,O)}),(0,i.jsx)("input",{value:e.test,onChange:e=>ee(r,"test",e.target.value),onFocus:()=>Q(`mit-test-${r}`),onBlur:()=>Q(null),placeholder:"How to test",style:(0,p.wI)(`mit-test-${r}`,O)}),D.length>1&&(0,i.jsx)(p.d0,{onClick:()=>{D.length>1&&P(D.filter((e,t)=>t!==r))}})]},r))})})]})}function h({label:e,value:r,color:t}){return(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",fontWeight:500,marginBottom:"0.25rem"},children:e}),(0,i.jsx)("div",{style:{fontSize:"1rem",fontWeight:500,textTransform:"capitalize",color:t||"var(--text-primary)"},children:r||"—"})]})}function x({label:e,count:r,children:t}){return(0,i.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,i.jsx)("label",{style:{fontWeight:500,fontSize:"0.875rem",color:"var(--text-secondary)"},children:e}),void 0!==r&&(0,i.jsx)("span",{style:{fontSize:"0.75rem",padding:"0.125rem 0.5rem",background:"var(--bg-hover)",borderRadius:"9999px"},children:r})]}),(0,i.jsx)("div",{style:{lineHeight:1.7},children:t})]})}function v(e){switch(e?.toLowerCase()){case"high":return"#ef4444";case"medium":return"#f59e0b";case"low":return"#10b981";default:return"var(--text-primary)"}}},76640:(e,r,t)=>{Promise.resolve().then(t.bind(t,43992))},90945:(e,r,t)=>{"use strict";t.d(r,{I:()=>s});var i=t(9339);let s=(0,i.createServerReference)("40ce3b864634c94182c09d0f6ac7fefb5b0e53bbe6",i.callServer,void 0,i.findSourceMapURL,"restoreRiskAction")}},e=>{e.O(0,[8500,213,8441,3794,7358],()=>e(e.s=76640)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[510],{13987:(e,r,t)=>{"use strict";t.d(r,{j:()=>n});var i=t(95155),s=t(12115);function n({options:e,selected:r,onChange:t,placeholder:n,multi:l=!0,allowCustom:a=!0}){let[o,d]=(0,s.useState)(!1),[c,m]=(0,s.useState)(""),p=(0,s.useRef)(null),u=e.filter(e=>e.label.toLowerCase().includes(c.toLowerCase())&&(!l||!r.includes(e.value)));return(0,s.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,i.jsxs)("div",{ref:p,style:{position:"relative",flex:1},children:[l&&r.length>0&&(0,i.jsx)("div",{style:{display:"flex",gap:"0.25rem",flexWrap:"wrap",marginBottom:"0.5rem"},children:r.map(s=>{let n=e.find(e=>e.value===s);return(0,i.jsxs)("span",{className:"badge badge-success",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[n?.value||s,(0,i.jsx)("button",{onClick:()=>{t(r.filter(e=>e!==s))},style:{background:"none",border:"none",cursor:"pointer",padding:0,fontSize:"1rem",color:"inherit"},children:"\xd7"})]},s)})}),(0,i.jsx)("input",{type:"text",value:l||o?c:(()=>{if(!l&&r.length>0){let t=e.find(e=>e.value===r[0]);return t?.label||r[0]}return""})(),onChange:e=>m(e.target.value),onFocus:()=>d(!0),placeholder:0!==r.length&&l?"Add more...":n,className:"input",style:{width:"100%"}}),o&&(0,i.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,right:0,marginTop:"0.25rem",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"8px",maxHeight:"200px",overflowY:"auto",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[0===u.length?(0,i.jsx)("div",{style:{padding:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:a?"No matches - type to create":"No matching steps"}):u.slice(0,20).map(e=>(0,i.jsxs)("div",{onClick:()=>{var i;return i=e.value,void(l?t([...r,i]):(t([i]),d(!1)),m(""))},style:{padding:"0.625rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",borderBottom:"1px solid var(--border)",transition:"background 0.15s"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,i.jsx)("div",{style:{fontWeight:500},children:e.value}),e.label!==e.value&&(0,i.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"0.125rem"},children:e.label})]},e.value)),u.length>20&&(0,i.jsxs)("div",{style:{padding:"0.5rem",color:"var(--text-secondary)",fontSize:"0.75rem",textAlign:"center"},children:["+",u.length-20," more..."]})]})]})}},17948:(e,r,t)=>{"use strict";t.d(r,{KN:()=>c,Mo:()=>u,d0:()=>h,mQ:()=>d,t3:()=>p,wI:()=>o,yY:()=>g,zB:()=>m});var i=t(95155);t(12115);let s={width:"100%",padding:"0.875rem 1rem",fontSize:"0.9375rem",lineHeight:"1.5",color:"var(--text-primary)",background:"var(--bg-secondary)",borderWidth:"1px",borderStyle:"solid",borderColor:"var(--border)",borderRadius:"10px",outline:"none",transition:"all 0.2s ease"},n={borderColor:"var(--accent)",boxShadow:"0 0 0 3px rgba(99, 102, 241, 0.15)"},l={...s,cursor:"pointer",appearance:"none",backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238888a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 1rem center",paddingRight:"2.5rem"},a={...s,resize:"vertical",minHeight:"120px",fontFamily:"inherit"};function o(e,r){return{...s,...r===e?n:{}}}function d(e,r){return{...l,...r===e?n:{}}}function c(e,r){return{...a,...r===e?n:{}}}function m({label:e,children:r,required:t,compact:s,hint:n,action:l}){return(0,i.jsxs)("div",{style:{marginBottom:s?"0":"1.5rem"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,i.jsx)("label",{style:{fontWeight:500,fontSize:"0.875rem",color:"var(--text-primary)"},children:e}),t&&(0,i.jsx)("span",{style:{color:"var(--accent)",fontSize:"0.75rem"},children:"Required"}),n&&(0,i.jsxs)("span",{style:{color:"var(--text-secondary)",fontSize:"0.8125rem",fontWeight:400},children:["— ",n]})]}),l&&(0,i.jsx)("button",{onClick:l.onClick,style:{padding:"0.375rem 0.75rem",fontSize:"0.8125rem",fontWeight:500,background:"transparent",border:"1px solid var(--accent)",borderRadius:"6px",color:"var(--accent)",cursor:"pointer",transition:"all 0.2s"},children:l.label})]}),r]})}function p({status:e}){return"idle"===e.type?null:(0,i.jsxs)("div",{style:{marginBottom:"1.5rem",padding:"1rem 1.25rem",borderRadius:"10px",background:"success"===e.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===e.type?"var(--success)":"var(--error)",fontSize:"0.9375rem",display:"flex",alignItems:"center",gap:"0.5rem",borderWidth:"1px",borderStyle:"solid",borderColor:"success"===e.type?"rgba(16, 185, 129, 0.2)":"rgba(239, 68, 68, 0.2)"},children:["success"===e.type?"✅":"❌"," ",e.message]})}function u({icon:e,title:r,subtitle:t}){return(0,i.jsxs)("div",{style:{marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,i.jsxs)("h2",{style:{margin:0,fontSize:"1.25rem",fontWeight:600},children:[e," ",r]}),(0,i.jsx)("p",{style:{margin:"0.25rem 0 0",color:"var(--text-secondary)",fontSize:"0.875rem"},children:t})]})}function g({onClick:e,disabled:r,isPending:t,label:s="Save"}){return(0,i.jsx)("button",{onClick:e,disabled:r,style:{padding:"0.75rem 1.5rem",fontSize:"0.9375rem",fontWeight:600,borderRadius:"10px",border:"none",cursor:r?"not-allowed":"pointer",background:r?"var(--bg-hover)":"linear-gradient(135deg, var(--gradient-start), var(--gradient-end))",color:r?"var(--text-secondary)":"white",transition:"all 0.2s ease",boxShadow:r?"none":"0 4px 12px rgba(99, 102, 241, 0.25)"},children:t?"\uD83D\uDCBE Saving...":`💾 ${s}`})}function h({onClick:e}){return(0,i.jsx)("button",{onClick:e,style:{padding:"0.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"8px",color:"var(--text-secondary)",cursor:"pointer",transition:"all 0.2s",lineHeight:1},title:"Remove",children:"✕"})}},38942:(e,r,t)=>{"use strict";t.d(r,{R:()=>a});var i=t(95155),s=t(39092),n=t.n(s);function l({isOpen:e,onClose:r,children:t,width:s="500px"}){return e?(0,i.jsxs)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)",background:"rgba(0, 0, 0, 0.5)",animation:"fadeIn 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:[(0,i.jsx)("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--bg-primary)",borderRadius:"12px",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",width:s,maxWidth:"90%",maxHeight:"90vh",overflow:"auto",border:"1px solid var(--border)",animation:"slideUp 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:t}),(0,i.jsx)(n(),{id:"5d567d25508aa188",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:scale(.95)translatey(10px)}to{opacity:1;transform:scale(1)translatey(0)}}"})]}):null}function a({isOpen:e,onClose:r,onConfirm:t,title:s,message:n,confirmLabel:a="Confirm",cancelLabel:o="Cancel",isDangerous:d=!1}){return(0,i.jsx)(l,{isOpen:e,onClose:r,width:"400px",children:(0,i.jsxs)("div",{style:{padding:"1.5rem"},children:[(0,i.jsx)("h3",{style:{margin:"0 0 0.5rem 0",fontSize:"1.25rem",fontWeight:600},children:s}),(0,i.jsx)("p",{style:{margin:"0 0 1.5rem 0",color:"var(--text-secondary)",lineHeight:1.5},children:n}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.75rem"},children:[(0,i.jsx)("button",{onClick:r,className:"btn",style:{background:"transparent",border:"1px solid var(--border)",color:"var(--text-primary)"},children:o}),(0,i.jsx)("button",{onClick:()=>{t(),r()},className:"btn",style:{background:d?"var(--error)":"var(--accent)",color:"white",border:"none",fontWeight:600},children:a})]})]})})}t(12115)},50398:(e,r,t)=>{"use strict";t.d(r,{RiskClient:()=>g});var i=t(95155),s=t(12115),n=t(73321),l=t(98500),a=t.n(l),o=t(9339);let d=(0,o.createServerReference)("40446dfc6d7fece5fc8ada15c8f369a30151ff3a7d",o.callServer,void 0,o.findSourceMapURL,"archiveRiskAction");var c=t(66796),m=t(13987),p=t(17948),u=t(38942);function g({risk:e,isNew:r=!1,fsItems:l}){let o=(0,n.useRouter)(),[g,b]=(0,s.useState)(r),[y,f]=(0,s.useState)(e?.title||""),[j,k]=(0,s.useState)(e?.status||"draft"),[C,S]=(0,s.useState)(e?.category||""),[w,R]=(0,s.useState)(e?.gamp_category||4),[z,I]=(0,s.useState)(e?.impact||"medium"),[B,_]=(0,s.useState)(e?.probability||"medium"),[W,N]=(0,s.useState)(e?.risk_level||"medium"),[F,L]=(0,s.useState)(e?.residual_risk||"acceptable"),[$,A]=(0,s.useState)(e?.fs_ids||[]),T=e?.risks?.length?e.risks.map(e=>({id:e.id,description:e.description,impact:e.impact,probability:e.probability})):[{id:"R-001.1",description:"",impact:"medium",probability:"medium"}],E=e?.mitigations?.length?e.mitigations.map(e=>({risk_id:e.risk_id,control:e.control,test:e.test})):[{risk_id:"R-001.1",control:"",test:""}],[H,M]=(0,s.useState)(T),[D,P]=(0,s.useState)(E),[O,Q]=(0,s.useState)(null),[U,q]=(0,s.useState)({type:"idle"}),[Y,K]=(0,s.useTransition)(),[G,J]=(0,s.useState)(!1),[V,X]=(0,s.useState)(!1),Z=(e,r,t)=>{let i=[...H];i[e]={...i[e],[r]:t},M(i)},ee=(e,r,t)=>{let i=[...D];i[e]={...i[e],[r]:t},P(i)},er=async()=>{J(!0)},et=async()=>{await d(e.id),o.refresh(),b(!1)},ei=async()=>{X(!0)},es=async()=>{await (0,c.I)(e.id),o.refresh()};return!g&&e?(0,i.jsxs)("div",{className:"card",style:{maxWidth:"900px"},children:[e.is_archived&&(0,i.jsxs)("div",{style:{background:"rgba(239, 68, 68, 0.1)",border:"1px solid var(--error)",padding:"1rem",borderRadius:"8px",marginBottom:"1.5rem",color:"var(--error)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,i.jsxs)("span",{children:[(0,i.jsx)("strong",{children:"Archived:"})," This item is soft-deleted and hidden from lists."]}),(0,i.jsx)("button",{onClick:ei,className:"btn",style:{background:"var(--bg-hover)",border:"1px solid var(--error)",color:"var(--error)"},children:"Restore"})]}),(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,i.jsxs)("div",{children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem"},children:[(0,i.jsx)("span",{style:{fontSize:"0.75rem",fontWeight:600,padding:"0.25rem 0.75rem",background:"#f97316",borderRadius:"6px",color:"white"},children:e.id}),(0,i.jsxs)("span",{className:`badge ${"acceptable"===e.residual_risk?"badge-success":"badge-error"}`,style:{textTransform:"capitalize"},children:["acceptable"===e.residual_risk?"✅":"⚠️"," ",e.residual_risk||"pending"]})]}),(0,i.jsx)("h1",{style:{margin:0,fontSize:"1.5rem",fontWeight:600,lineHeight:1.3},children:e.title})]}),(0,i.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[(0,i.jsx)("button",{onClick:er,className:"btn",style:{background:"transparent",border:"1px solid var(--error)",color:"var(--error)",display:e.is_archived?"none":"flex",alignItems:"center",gap:"0.5rem"},children:"\uD83D\uDDD1️ Archive"}),(0,i.jsxs)("button",{onClick:()=>b(!0),disabled:!!e.is_archived,className:"btn btn-primary",style:{display:"flex",gap:"0.5rem",alignItems:"center",opacity:e.is_archived?.5:1,cursor:e.is_archived?"not-allowed":"pointer"},children:[(0,i.jsx)("span",{children:"✏️"})," Edit"]})]})]}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem",marginBottom:"1.5rem"},children:[(0,i.jsx)(h,{label:"Category",value:e.category}),(0,i.jsx)(h,{label:"Impact",value:e.impact,color:v(e.impact)}),(0,i.jsx)(h,{label:"Probability",value:e.probability,color:v(e.probability)}),(0,i.jsx)(h,{label:"Risk Level",value:e.risk_level,color:v(e.risk_level)})]}),(0,i.jsx)(x,{label:"Linked Functional Specs",children:e.fs_ids.length>0?(0,i.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:e.fs_ids.map(e=>(0,i.jsx)(a(),{href:`/traceability/fs/${e}`,children:(0,i.jsx)("span",{className:"badge badge-warning",children:e})},e))}):(0,i.jsx)("span",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No functional specs linked. Edit to add links."})}),e.risks.length>0&&(0,i.jsx)(x,{label:"Identified Risks",count:e.risks.length,children:(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:e.risks.map((e,r)=>(0,i.jsxs)("div",{style:{display:"flex",gap:"0.75rem",alignItems:"flex-start"},children:[(0,i.jsx)("span",{style:{color:"#f97316",fontWeight:600,fontSize:"0.875rem",fontFamily:"monospace",minWidth:"70px"},children:e.id}),(0,i.jsx)("span",{style:{lineHeight:1.6},children:e.description})]},r))})}),e.mitigations.length>0&&(0,i.jsx)(x,{label:"Mitigation & Control",count:e.mitigations.length,children:(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:e.mitigations.map((e,r)=>(0,i.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:"0.25rem"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,i.jsxs)("span",{style:{color:"var(--accent)",fontWeight:600,fontSize:"0.75rem"},children:["For ",e.risk_id,":"]}),(0,i.jsx)("span",{style:{fontWeight:500},children:e.control})]}),(0,i.jsxs)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)",paddingLeft:"1rem"},children:["Test: ",e.test]})]},r))})}),(0,i.jsx)(u.R,{isOpen:G,onClose:()=>J(!1),onConfirm:et,title:"Archive Risk",message:"Are you sure you want to archive this Risk? It will be hidden from lists but can be restored later.",confirmLabel:"Archive",isDangerous:!0}),(0,i.jsx)(u.R,{isOpen:V,onClose:()=>X(!1),onConfirm:es,title:"Restore Risk",message:"Are you sure you want to restore this Risk?",confirmLabel:"Restore"})]}):(0,i.jsxs)("div",{className:"card",style:{maxWidth:"900px"},children:[(0,i.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"2rem",alignItems:"center"},children:[(0,i.jsx)(p.Mo,{icon:"⚠️",title:r?"New Risk Assessment":`Editing ${e?.id}`,subtitle:"Identify and mitigate risks"}),(0,i.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[!r&&(0,i.jsx)("button",{onClick:er,className:"btn",style:{color:"var(--error)",borderColor:"var(--error)"},children:"Archive"}),(0,i.jsx)("button",{onClick:()=>{r?o.back():b(!1)},className:"btn",children:"Cancel"}),(0,i.jsx)(p.yY,{onClick:()=>{q({type:"idle"}),K(async()=>{try{let i,s={title:y,status:j,category:C,gamp_category:w,fs_ids:$,impact:z,probability:B,risk_level:W,residual_risk:F,risks:H.filter(e=>e.description.trim()||e.id).map(e=>({id:e.id,description:e.description,impact:e.impact,probability:e.probability})),mitigations:D.filter(e=>e.control.trim()).map(e=>({risk_id:e.risk_id,control:e.control,test:e.test}))};if(r){let{saveRisk:e}=await t.e(8216).then(t.bind(t,98216));i=await e(s)}else{let{updateRiskAction:r}=await t.e(8216).then(t.bind(t,98216));i=await r(e.id,s)}i.success?(q({type:"success",message:`Saved ${i.id}`}),r?o.push(`/traceability/risk/${i.id}`):(o.refresh(),b(!1))):q({type:"error",message:i.error})}catch(e){q({type:"error",message:"Failed to save"})}})},disabled:Y||!y.trim(),isPending:Y,label:"Save Risk"})]})]}),(0,i.jsx)(p.t3,{status:U}),(0,i.jsx)(p.zB,{label:"Title",required:!0,children:(0,i.jsx)("input",{value:y,onChange:e=>f(e.target.value),style:(0,p.wI)("title",O),onFocus:()=>Q("title"),onBlur:()=>Q(null)})}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1rem",marginBottom:"1.5rem"},children:[(0,i.jsx)(p.zB,{label:"Category",compact:!0,children:(0,i.jsx)("input",{value:C,onChange:e=>S(e.target.value),style:(0,p.wI)("cat",O),onFocus:()=>Q("cat")})}),(0,i.jsx)(p.zB,{label:"Link FS",required:!0,compact:!0,children:(0,i.jsx)(m.j,{options:l.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:$,onChange:A,placeholder:"Search FS...",multi:!0})})]}),(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem",marginBottom:"1.5rem"},children:[(0,i.jsx)(p.zB,{label:"Impact",compact:!0,children:(0,i.jsxs)("select",{value:z,onChange:e=>I(e.target.value),style:(0,p.mQ)("imp",O),onFocus:()=>Q("imp"),children:[(0,i.jsx)("option",{value:"low",children:"\uD83D\uDFE2 Low"}),(0,i.jsx)("option",{value:"medium",children:"\uD83D\uDFE1 Medium"}),(0,i.jsx)("option",{value:"high",children:"\uD83D\uDFE0 High"}),(0,i.jsx)("option",{value:"critical",children:"\uD83D\uDD34 Critical"})]})}),(0,i.jsx)(p.zB,{label:"Probability",compact:!0,children:(0,i.jsxs)("select",{value:B,onChange:e=>_(e.target.value),style:(0,p.mQ)("prob",O),onFocus:()=>Q("prob"),children:[(0,i.jsx)("option",{value:"low",children:"\uD83D\uDFE2 Low"}),(0,i.jsx)("option",{value:"medium",children:"\uD83D\uDFE1 Medium"}),(0,i.jsx)("option",{value:"high",children:"\uD83D\uDD34 High"})]})}),(0,i.jsx)(p.zB,{label:"Risk Level",compact:!0,children:(0,i.jsxs)("select",{value:W,onChange:e=>N(e.target.value),style:(0,p.mQ)("lvl",O),onFocus:()=>Q("lvl"),children:[(0,i.jsx)("option",{value:"low",children:"\uD83D\uDFE2 Low"}),(0,i.jsx)("option",{value:"medium",children:"\uD83D\uDFE1 Medium"}),(0,i.jsx)("option",{value:"high",children:"\uD83D\uDFE0 High"}),(0,i.jsx)("option",{value:"critical",children:"\uD83D\uDD34 Critical"})]})}),(0,i.jsx)(p.zB,{label:"Residual Risk",compact:!0,children:(0,i.jsxs)("select",{value:F,onChange:e=>L(e.target.value),style:(0,p.mQ)("res",O),onFocus:()=>Q("res"),children:[(0,i.jsx)("option",{value:"acceptable",children:"✅ Acceptable"}),(0,i.jsx)("option",{value:"unacceptable",children:"❌ Unacceptable"}),(0,i.jsx)("option",{value:"pending",children:"⏳ Pending"})]})})]}),(0,i.jsx)(p.zB,{label:"Identified Risks",hint:"List specific risks",action:{label:"+ Add Risk",onClick:()=>M([...H,{id:`R-001.${H.length+1}`,description:"",impact:"medium",probability:"medium"}])},children:(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:H.map((e,r)=>(0,i.jsxs)("div",{style:{display:"flex",gap:"0.75rem",alignItems:"center"},children:[(0,i.jsx)("input",{value:e.id,onChange:e=>Z(r,"id",e.target.value),onFocus:()=>Q(`risk-id-${r}`),onBlur:()=>Q(null),placeholder:"R-ID",style:{...(0,p.wI)(`risk-id-${r}`,O),width:"100px",flexShrink:0}}),(0,i.jsx)("input",{value:e.description,onChange:e=>Z(r,"description",e.target.value),onFocus:()=>Q(`risk-desc-${r}`),onBlur:()=>Q(null),placeholder:"Risk description",style:{...(0,p.wI)(`risk-desc-${r}`,O),flex:1}}),H.length>1&&(0,i.jsx)(p.d0,{onClick:()=>{H.length>1&&M(H.filter((e,t)=>t!==r))}})]},r))})}),(0,i.jsx)(p.zB,{label:"Mitigations",hint:"Control measures and testing",action:{label:"+ Add Mitigation",onClick:()=>P([...D,{risk_id:"",control:"",test:""}])},children:(0,i.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:D.map((e,r)=>(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"100px 1fr 1fr auto",gap:"0.75rem",alignItems:"center",padding:"1rem",background:"var(--bg-secondary)",borderRadius:"10px",border:"1px solid var(--border)"},children:[(0,i.jsx)("input",{value:e.risk_id,onChange:e=>ee(r,"risk_id",e.target.value),onFocus:()=>Q(`mit-id-${r}`),onBlur:()=>Q(null),placeholder:"R-ID",style:(0,p.wI)(`mit-id-${r}`,O)}),(0,i.jsx)("input",{value:e.control,onChange:e=>ee(r,"control",e.target.value),onFocus:()=>Q(`mit-control-${r}`),onBlur:()=>Q(null),placeholder:"Control measure",style:(0,p.wI)(`mit-control-${r}`,O)}),(0,i.jsx)("input",{value:e.test,onChange:e=>ee(r,"test",e.target.value),onFocus:()=>Q(`mit-test-${r}`),onBlur:()=>Q(null),placeholder:"How to test",style:(0,p.wI)(`mit-test-${r}`,O)}),D.length>1&&(0,i.jsx)(p.d0,{onClick:()=>{D.length>1&&P(D.filter((e,t)=>t!==r))}})]},r))})})]})}function h({label:e,value:r,color:t}){return(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",fontWeight:500,marginBottom:"0.25rem"},children:e}),(0,i.jsx)("div",{style:{fontSize:"1rem",fontWeight:500,textTransform:"capitalize",color:t||"var(--text-primary)"},children:r||"—"})]})}function x({label:e,count:r,children:t}){return(0,i.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,i.jsx)("label",{style:{fontWeight:500,fontSize:"0.875rem",color:"var(--text-secondary)"},children:e}),void 0!==r&&(0,i.jsx)("span",{style:{fontSize:"0.75rem",padding:"0.125rem 0.5rem",background:"var(--bg-hover)",borderRadius:"9999px"},children:r})]}),(0,i.jsx)("div",{style:{lineHeight:1.7},children:t})]})}function v(e){switch(e?.toLowerCase()){case"high":return"#ef4444";case"medium":return"#f59e0b";case"low":return"#10b981";default:return"var(--text-primary)"}}},66796:(e,r,t)=>{"use strict";t.d(r,{I:()=>s});var i=t(9339);let s=(0,i.createServerReference)("4025f575224e6e9ba81cc862ea0f4c410998c3ee8b",i.callServer,void 0,i.findSourceMapURL,"restoreRiskAction")},76640:(e,r,t)=>{Promise.resolve().then(t.bind(t,50398))}},e=>{e.O(0,[8500,2594,8441,3794,7358],()=>e(e.s=76640)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7245],{9339:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={callServer:function(){return a.callServer},createServerReference:function(){return o.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=t(77304),s=t(4060),o=t(77197)},9815:(e,r,t)=>{"use strict";t.d(r,{Z:()=>i});var n=t(9339);let i=(0,n.createServerReference)("4034d94bb1df923356529950456e833db5538ef89c",n.callServer,void 0,n.findSourceMapURL,"restoreURSAction")},13987:(e,r,t)=>{"use strict";t.d(r,{j:()=>a});var n=t(95155),i=t(12115);function a({options:e,selected:r,onChange:t,placeholder:a,multi:s=!0,allowCustom:o=!0}){let[l,d]=(0,i.useState)(!1),[c,u]=(0,i.useState)(""),p=(0,i.useRef)(null),m=e.filter(e=>e.label.toLowerCase().includes(c.toLowerCase())&&(!s||!r.includes(e.value)));return(0,i.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,n.jsxs)("div",{ref:p,style:{position:"relative",flex:1},children:[s&&r.length>0&&(0,n.jsx)("div",{style:{display:"flex",gap:"0.25rem",flexWrap:"wrap",marginBottom:"0.5rem"},children:r.map(i=>{let a=e.find(e=>e.value===i);return(0,n.jsxs)("span",{className:"badge badge-success",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[a?.value||i,(0,n.jsx)("button",{onClick:()=>{t(r.filter(e=>e!==i))},style:{background:"none",border:"none",cursor:"pointer",padding:0,fontSize:"1rem",color:"inherit"},children:"\xd7"})]},i)})}),(0,n.jsx)("input",{type:"text",value:s||l?c:(()=>{if(!s&&r.length>0){let t=e.find(e=>e.value===r[0]);return t?.label||r[0]}return""})(),onChange:e=>u(e.target.value),onFocus:()=>d(!0),placeholder:0!==r.length&&s?"Add more...":a,className:"input",style:{width:"100%"}}),l&&(0,n.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,right:0,marginTop:"0.25rem",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"8px",maxHeight:"200px",overflowY:"auto",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[0===m.length?(0,n.jsx)("div",{style:{padding:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:o?"No matches - type to create":"No matching steps"}):m.slice(0,20).map(e=>(0,n.jsxs)("div",{onClick:()=>{var n;return n=e.value,void(s?t([...r,n]):(t([n]),d(!1)),u(""))},style:{padding:"0.625rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",borderBottom:"1px solid var(--border)",transition:"background 0.15s"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,n.jsx)("div",{style:{fontWeight:500},children:e.value}),e.label!==e.value&&(0,n.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"0.125rem"},children:e.label})]},e.value)),m.length>20&&(0,n.jsxs)("div",{style:{padding:"0.5rem",color:"var(--text-secondary)",fontSize:"0.75rem",textAlign:"center"},children:["+",m.length-20," more..."]})]})]})}},17948:(e,r,t)=>{"use strict";t.d(r,{KN:()=>c,Mo:()=>m,d0:()=>g,mQ:()=>d,t3:()=>p,wI:()=>l,yY:()=>h,zB:()=>u});var n=t(95155);t(12115);let i={width:"100%",padding:"0.875rem 1rem",fontSize:"0.9375rem",lineHeight:"1.5",color:"var(--text-primary)",background:"var(--bg-secondary)",borderWidth:"1px",borderStyle:"solid",borderColor:"var(--border)",borderRadius:"10px",outline:"none",transition:"all 0.2s ease"},a={borderColor:"var(--accent)",boxShadow:"0 0 0 3px rgba(99, 102, 241, 0.15)"},s={...i,cursor:"pointer",appearance:"none",backgroundImage:"url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238888a0' d='M6 8L1 3h10z'/%3E%3C/svg%3E\")",backgroundRepeat:"no-repeat",backgroundPosition:"right 1rem center",paddingRight:"2.5rem"},o={...i,resize:"vertical",minHeight:"120px",fontFamily:"inherit"};function l(e,r){return{...i,...r===e?a:{}}}function d(e,r){return{...s,...r===e?a:{}}}function c(e,r){return{...o,...r===e?a:{}}}function u({label:e,children:r,required:t,compact:i,hint:a,action:s}){return(0,n.jsxs)("div",{style:{marginBottom:i?"0":"1.5rem"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[(0,n.jsx)("label",{style:{fontWeight:500,fontSize:"0.875rem",color:"var(--text-primary)"},children:e}),t&&(0,n.jsx)("span",{style:{color:"var(--accent)",fontSize:"0.75rem"},children:"Required"}),a&&(0,n.jsxs)("span",{style:{color:"var(--text-secondary)",fontSize:"0.8125rem",fontWeight:400},children:["— ",a]})]}),s&&(0,n.jsx)("button",{onClick:s.onClick,style:{padding:"0.375rem 0.75rem",fontSize:"0.8125rem",fontWeight:500,background:"transparent",border:"1px solid var(--accent)",borderRadius:"6px",color:"var(--accent)",cursor:"pointer",transition:"all 0.2s"},children:s.label})]}),r]})}function p({status:e}){return"idle"===e.type?null:(0,n.jsxs)("div",{style:{marginBottom:"1.5rem",padding:"1rem 1.25rem",borderRadius:"10px",background:"success"===e.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===e.type?"var(--success)":"var(--error)",fontSize:"0.9375rem",display:"flex",alignItems:"center",gap:"0.5rem",borderWidth:"1px",borderStyle:"solid",borderColor:"success"===e.type?"rgba(16, 185, 129, 0.2)":"rgba(239, 68, 68, 0.2)"},children:["success"===e.type?"✅":"❌"," ",e.message]})}function m({icon:e,title:r,subtitle:t}){return(0,n.jsxs)("div",{style:{marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("h2",{style:{margin:0,fontSize:"1.25rem",fontWeight:600},children:[e," ",r]}),(0,n.jsx)("p",{style:{margin:"0.25rem 0 0",color:"var(--text-secondary)",fontSize:"0.875rem"},children:t})]})}function h({onClick:e,disabled:r,isPending:t,label:i="Save"}){return(0,n.jsx)("button",{onClick:e,disabled:r,style:{padding:"0.75rem 1.5rem",fontSize:"0.9375rem",fontWeight:600,borderRadius:"10px",border:"none",cursor:r?"not-allowed":"pointer",background:r?"var(--bg-hover)":"linear-gradient(135deg, var(--gradient-start), var(--gradient-end))",color:r?"var(--text-secondary)":"white",transition:"all 0.2s ease",boxShadow:r?"none":"0 4px 12px rgba(99, 102, 241, 0.25)"},children:t?"\uD83D\uDCBE Saving...":`💾 ${i}`})}function g({onClick:e}){return(0,n.jsx)("button",{onClick:e,style:{padding:"0.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"8px",color:"var(--text-secondary)",cursor:"pointer",transition:"all 0.2s",lineHeight:1},title:"Remove",children:"✕"})}},31704:(e,r,t)=>{Promise.resolve().then(t.bind(t,93014))},38942:(e,r,t)=>{"use strict";t.d(r,{R:()=>o});var n=t(95155),i=t(39092),a=t.n(i);function s({isOpen:e,onClose:r,children:t,width:i="500px"}){return e?(0,n.jsxs)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(4px)",background:"rgba(0, 0, 0, 0.5)",animation:"fadeIn 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:[(0,n.jsx)("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--bg-primary)",borderRadius:"12px",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",width:i,maxWidth:"90%",maxHeight:"90vh",overflow:"auto",border:"1px solid var(--border)",animation:"slideUp 0.2s ease-out"},className:"jsx-5d567d25508aa188",children:t}),(0,n.jsx)(a(),{id:"5d567d25508aa188",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:scale(.95)translatey(10px)}to{opacity:1;transform:scale(1)translatey(0)}}"})]}):null}function o({isOpen:e,onClose:r,onConfirm:t,title:i,message:a,confirmLabel:o="Confirm",cancelLabel:l="Cancel",isDangerous:d=!1}){return(0,n.jsx)(s,{isOpen:e,onClose:r,width:"400px",children:(0,n.jsxs)("div",{style:{padding:"1.5rem"},children:[(0,n.jsx)("h3",{style:{margin:"0 0 0.5rem 0",fontSize:"1.25rem",fontWeight:600},children:i}),(0,n.jsx)("p",{style:{margin:"0 0 1.5rem 0",color:"var(--text-secondary)",lineHeight:1.5},children:a}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"flex-end",gap:"0.75rem"},children:[(0,n.jsx)("button",{onClick:r,className:"btn",style:{background:"transparent",border:"1px solid var(--border)",color:"var(--text-primary)"},children:l}),(0,n.jsx)("button",{onClick:()=>{t(),r()},className:"btn",style:{background:d?"var(--error)":"var(--accent)",color:"white",border:"none",fontWeight:600},children:o})]})]})})}t(12115)},93014:(e,r,t)=>{"use strict";t.d(r,{URSClient:()=>g});var n=t(95155),i=t(12115),a=t(73321),s=t(98500),o=t.n(s),l=t(9339);let d=(0,l.createServerReference)("40e0c1829985043ce9f8adb1b385089179ac7c4a88",l.callServer,void 0,l.findSourceMapURL,"archiveURSAction");var c=t(9815),u=t(76444),p=t(13987),m=t(17948),h=t(38942);function g({urs:e,isNew:r=!1,linkedFS:s=[],allFS:l=[]}){let g=(0,a.useRouter)(),[y,b]=(0,i.useState)(r),[f,j]=(0,i.useState)(e?.title||""),[S,w]=(0,i.useState)(e?.status||"draft"),[C,k]=(0,i.useState)(e?.priority||"high"),[R,z]=(0,i.useState)(e?.owner||""),[B,_]=(0,i.useState)(e?.category||""),[N,W]=(0,i.useState)(e?.business_need||""),[I,A]=(0,i.useState)(e?.acceptance_criteria||[""]),[L,U]=(0,i.useState)(s.map(e=>e.id)),[F,q]=(0,i.useState)(null),[E,T]=(0,i.useState)({type:"idle"}),[D,H]=(0,i.useTransition)(),[O,$]=(0,i.useState)(!1),[M,P]=(0,i.useState)(!1),Q=async()=>{$(!0)},Y=async()=>{await d(e.id),g.refresh(),b(!1)},K=async()=>{P(!0)},Z=async()=>{await (0,c.Z)(e.id),g.refresh()};return!y&&e?(0,n.jsxs)("div",{className:"card",style:{maxWidth:"900px"},children:[e.is_archived&&(0,n.jsxs)("div",{style:{background:"rgba(239, 68, 68, 0.1)",border:"1px solid var(--error)",padding:"1rem",borderRadius:"8px",marginBottom:"1.5rem",color:"var(--error)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,n.jsxs)("span",{children:[(0,n.jsx)("strong",{children:"Archived:"})," This item is soft-deleted and hidden from lists."]}),(0,n.jsx)("button",{onClick:K,className:"btn",style:{background:"var(--bg-hover)",border:"1px solid var(--error)",color:"var(--error)"},children:"Restore"})]}),(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem"},children:[(0,n.jsx)("span",{style:{fontSize:"0.75rem",fontWeight:600,padding:"0.25rem 0.75rem",background:"linear-gradient(135deg, var(--gradient-start), var(--gradient-end))",borderRadius:"6px",color:"white"},children:e.id}),(0,n.jsxs)("span",{className:`badge ${"approved"===e.status?"badge-success":"review"===e.status?"badge-warning":""}`,style:{textTransform:"capitalize"},children:["approved"===e.status?"✅":"review"===e.status?"\uD83D\uDC40":"\uD83D\uDCDD"," ",e.status]})]}),(0,n.jsx)("h1",{style:{margin:0,fontSize:"1.5rem",fontWeight:600,lineHeight:1.3},children:e.title})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[(0,n.jsx)("button",{onClick:Q,className:"btn",style:{background:"transparent",border:"1px solid var(--error)",color:"var(--error)",display:e.is_archived?"none":"flex",alignItems:"center",gap:"0.5rem"},children:"\uD83D\uDDD1️ Archive"}),(0,n.jsxs)("button",{onClick:()=>b(!0),disabled:!!e.is_archived,className:"btn btn-primary",style:{display:"flex",gap:"0.5rem",alignItems:"center",opacity:e.is_archived?.5:1,cursor:e.is_archived?"not-allowed":"pointer"},children:[(0,n.jsx)("span",{children:"✏️"})," Edit"]})]})]}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem",marginBottom:"1.5rem"},children:[(0,n.jsx)(x,{label:"Priority",value:e.priority,color:function(e){switch(e){case"critical":return"#ef4444";case"high":return"#f97316";case"medium":return"#f59e0b";case"low":return"#10b981";default:return"var(--text-primary)"}}(e.priority)}),(0,n.jsx)(x,{label:"Category",value:e.category}),(0,n.jsx)(x,{label:"Owner",value:e.owner}),(0,n.jsx)(x,{label:"Created",value:e.created_at?new Date(e.created_at).toLocaleDateString():void 0})]}),(0,n.jsx)(v,{label:"Linked Functional Specs",count:s.length,children:s.length>0?(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem"},children:s.map(e=>(0,n.jsx)(o(),{href:`/traceability/fs/${e.id}`,style:{textDecoration:"none"},children:(0,n.jsx)("span",{className:"badge",style:{background:"rgba(245, 158, 11, 0.15)",color:"var(--warning)"},children:e.id})},e.id))}):(0,n.jsx)("span",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No linked FS"})}),(0,n.jsx)(v,{label:"Business Need",children:e.business_need?(0,n.jsx)("div",{className:"prose",children:(0,n.jsx)(u.oz,{children:e.business_need})}):(0,n.jsx)("span",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No business need specified"})}),e.acceptance_criteria&&e.acceptance_criteria.length>0&&(0,n.jsx)(v,{label:"Acceptance Criteria",count:e.acceptance_criteria.length,children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:e.acceptance_criteria.map((e,r)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem",alignItems:"flex-start"},children:[(0,n.jsxs)("span",{style:{color:"var(--accent)",fontWeight:600,fontSize:"0.875rem",minWidth:"24px"},children:[r+1,"."]}),(0,n.jsx)("span",{style:{lineHeight:1.6},children:e})]},r))})}),(0,n.jsx)(h.R,{isOpen:O,onClose:()=>$(!1),onConfirm:Y,title:"Archive Requirement",message:"Are you sure you want to archive this URS? It will be hidden from lists but can be restored later.",confirmLabel:"Archive",isDangerous:!0}),(0,n.jsx)(h.R,{isOpen:M,onClose:()=>P(!1),onConfirm:Z,title:"Restore Requirement",message:"Are you sure you want to restore this URS?",confirmLabel:"Restore"})]}):(0,n.jsxs)("div",{className:"card",style:{maxWidth:"900px"},children:[(0,n.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"2rem",paddingBottom:"1.5rem",borderBottom:"1px solid var(--border)"},children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("h2",{style:{margin:0,fontSize:"1.25rem",fontWeight:600},children:r?"New User Requirement":`Editing ${e?.id}`}),(0,n.jsx)("p",{style:{margin:"0.25rem 0 0",color:"var(--text-secondary)",fontSize:"0.875rem"},children:r?"Create a new URS document":"Update requirement details"})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem"},children:[!r&&(0,n.jsx)("button",{onClick:Q,style:{padding:"0.75rem 1.5rem",background:"transparent",border:"1px solid var(--error)",borderRadius:"10px",color:"var(--error)",cursor:"pointer",fontWeight:600},title:"Archive this requirement",children:"Archive"}),(0,n.jsx)("button",{onClick:()=>{r?g.back():(j(e?.title||""),w(e?.status||"draft"),k(e?.priority||"high"),z(e?.owner||""),_(e?.category||""),W(e?.business_need||""),A(e?.acceptance_criteria||[""]),U(s.map(e=>e.id)),b(!1))},style:{padding:"0.75rem 1.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"10px",color:"var(--text-secondary)",cursor:"pointer",fontWeight:600},children:"Cancel"}),(0,n.jsx)(m.yY,{onClick:()=>{T({type:"idle"}),H(async()=>{try{let n,i={title:f,status:S,priority:C,owner:R,category:B,business_need:N,intended_use:"",acceptance_criteria:I.filter(e=>e.trim()),regulatory_refs:[]};if(r||e.id,r){let{saveURS:e}=await t.e(8216).then(t.bind(t,98216));n=await e(i)}else{let{updateURSAction:r}=await t.e(8216).then(t.bind(t,98216));n=await r(e.id,i)}if(!n.success)return void T({type:"error",message:n.error});let a=n.id,{updateFSLinksAction:o}=await t.e(8216).then(t.bind(t,98216)),d=s.map(e=>e.id);for(let e of new Set([...d,...L])){let r=l.find(r=>r.id===e);if(!r)continue;let t=new Set(r.urs_ids);L.includes(e)?t.add(a):t.delete(a),await o(e,Array.from(t))}T({type:"success",message:`Saved ${a}`}),r?g.push(`/traceability/urs/${a}`):(g.refresh(),b(!1))}catch(e){T({type:"error",message:"Failed to save"})}})},disabled:D||!f.trim()||!R.trim(),isPending:D,label:"Save URS"})]})]}),(0,n.jsx)(m.t3,{status:E}),(0,n.jsx)(m.zB,{label:"Title",required:!0,children:(0,n.jsx)("input",{type:"text",value:f,onChange:e=>j(e.target.value),onFocus:()=>q("title"),onBlur:()=>q(null),placeholder:"e.g., User Authentication Requirements",style:(0,m.wI)("title",F)})}),(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem",marginBottom:"1.5rem"},children:[(0,n.jsx)(m.zB,{label:"Status",compact:!0,children:(0,n.jsxs)("select",{value:S,onChange:e=>w(e.target.value),onFocus:()=>q("status"),onBlur:()=>q(null),style:(0,m.mQ)("status",F),children:[(0,n.jsx)("option",{value:"draft",children:"\uD83D\uDCDD Draft"}),(0,n.jsx)("option",{value:"review",children:"\uD83D\uDC40 Review"}),(0,n.jsx)("option",{value:"approved",children:"✅ Approved"})]})}),(0,n.jsx)(m.zB,{label:"Priority",compact:!0,children:(0,n.jsxs)("select",{value:C,onChange:e=>k(e.target.value),onFocus:()=>q("priority"),onBlur:()=>q(null),style:(0,m.mQ)("priority",F),children:[(0,n.jsx)("option",{value:"critical",children:"\uD83D\uDD34 Critical"}),(0,n.jsx)("option",{value:"high",children:"\uD83D\uDFE0 High"}),(0,n.jsx)("option",{value:"medium",children:"\uD83D\uDFE1 Medium"}),(0,n.jsx)("option",{value:"low",children:"\uD83D\uDFE2 Low"})]})}),(0,n.jsx)(m.zB,{label:"Category",compact:!0,children:(0,n.jsx)("input",{type:"text",value:B,onChange:e=>_(e.target.value),onFocus:()=>q("category"),onBlur:()=>q(null),placeholder:"e.g., Security",style:(0,m.wI)("category",F)})}),(0,n.jsx)(m.zB,{label:"Owner",required:!0,compact:!0,children:(0,n.jsx)("input",{type:"text",value:R,onChange:e=>z(e.target.value),onFocus:()=>q("owner"),onBlur:()=>q(null),placeholder:"e.g., Product Team",style:(0,m.wI)("owner",F)})})]}),(0,n.jsx)(m.zB,{label:"Linked Functional Specs",hint:"Select FS that implement this requirement",children:(0,n.jsx)(p.j,{options:l.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:L,onChange:U,placeholder:"Search FS...",multi:!0})}),(0,n.jsx)(m.zB,{label:"Business Need",hint:"Describe why this requirement exists",children:(0,n.jsx)("textarea",{value:N,onChange:e=>W(e.target.value),onFocus:()=>q("businessNeed"),onBlur:()=>q(null),placeholder:"Describe the business problem this requirement addresses...",style:{...(0,m.KN)("businessNeed",F),minHeight:"140px"}})}),(0,n.jsx)(m.zB,{label:"Acceptance Criteria",hint:"Define measurable conditions for success",action:{label:"+ Add Criterion",onClick:()=>A([...I,""])},children:(0,n.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:I.map((e,r)=>(0,n.jsxs)("div",{style:{display:"flex",gap:"0.75rem",alignItems:"center"},children:[(0,n.jsxs)("span",{style:{color:"var(--accent)",fontWeight:600,fontSize:"0.875rem",minWidth:"24px"},children:[r+1,"."]}),(0,n.jsx)("input",{type:"text",value:e,onChange:e=>{var t;let n;return t=e.target.value,void((n=[...I])[r]=t,A(n))},onFocus:()=>q(`criterion-${r}`),onBlur:()=>q(null),placeholder:`Criterion ${r+1}`,style:{...(0,m.wI)(`criterion-${r}`,F),flex:1}}),I.length>1&&(0,n.jsx)("button",{onClick:()=>{I.length>1&&A(I.filter((e,t)=>t!==r))},style:{padding:"0.5rem",background:"transparent",border:"1px solid var(--border)",borderRadius:"8px",color:"var(--text-secondary)",cursor:"pointer"},children:"✕"})]},r))})}),(0,n.jsx)(h.R,{isOpen:O,onClose:()=>$(!1),onConfirm:Y,title:"Archive Requirement",message:"Are you sure you want to archive this URS? It will be hidden from lists but can be restored later.",confirmLabel:"Archive",isDangerous:!0}),(0,n.jsx)(h.R,{isOpen:M,onClose:()=>P(!1),onConfirm:Z,title:"Restore Requirement",message:"Are you sure you want to restore this URS?",confirmLabel:"Restore"})]})}function x({label:e,value:r,color:t}){return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",fontWeight:500,marginBottom:"0.25rem"},children:e}),(0,n.jsx)("div",{style:{fontSize:"1rem",fontWeight:500,textTransform:"capitalize",color:t||"var(--text-primary)"},children:r||"—"})]})}function v({label:e,count:r,children:t}){return(0,n.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,n.jsx)("label",{style:{fontWeight:500,fontSize:"0.875rem",color:"var(--text-secondary)"},children:e}),void 0!==r&&(0,n.jsx)("span",{style:{fontSize:"0.75rem",padding:"0.125rem 0.5rem",background:"var(--bg-hover)",borderRadius:"9999px"},children:r})]}),(0,n.jsx)("div",{style:{lineHeight:1.7},children:t})]})}}},e=>{e.O(0,[8500,1157,8441,3794,7358],()=>e(e.s=31704)),_N_E=e.O()}]);