test-lah 1.0.8 → 1.0.9

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 (140) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-build-manifest.json +46 -36
  3. package/.next/standalone/.next/app-path-routes-manifest.json +6 -5
  4. package/.next/standalone/.next/build-manifest.json +2 -2
  5. package/.next/standalone/.next/prerender-manifest.json +24 -24
  6. package/.next/standalone/.next/server/app/(dashboard)/integrations/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page.js +17 -70
  8. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page.js.nft.json +1 -1
  9. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js +2 -22
  11. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js.nft.json +1 -1
  12. package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page_client-reference-manifest.js +1 -1
  13. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +34 -2
  14. package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
  15. package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
  17. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  19. package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
  20. package/.next/standalone/.next/server/app/api/e2e/route.js +13 -2
  21. package/.next/standalone/.next/server/app/api/e2e/route_client-reference-manifest.js +1 -1
  22. package/.next/standalone/.next/server/app/api/generate/route.js +13 -2
  23. package/.next/standalone/.next/server/app/api/generate/route_client-reference-manifest.js +1 -1
  24. package/.next/standalone/.next/server/app/api/llm/encrypt/route_client-reference-manifest.js +1 -1
  25. package/.next/standalone/.next/server/app/api/llm/test/route.js +13 -2
  26. package/.next/standalone/.next/server/app/api/llm/test/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/refine-notes/route.js +29 -0
  28. package/.next/standalone/.next/server/app/api/refine-notes/route.js.nft.json +1 -0
  29. package/.next/standalone/.next/server/app/api/refine-notes/route_client-reference-manifest.js +1 -0
  30. package/.next/standalone/.next/server/app/api/weather/route_client-reference-manifest.js +1 -1
  31. package/.next/standalone/.next/server/app/index.html +1 -1
  32. package/.next/standalone/.next/server/app/index.rsc +3 -3
  33. package/.next/standalone/.next/server/app/integrations.html +1 -1
  34. package/.next/standalone/.next/server/app/integrations.rsc +4 -4
  35. package/.next/standalone/.next/server/app/login/page.js +2 -2
  36. package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
  37. package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/login.html +1 -1
  39. package/.next/standalone/.next/server/app/login.rsc +3 -3
  40. package/.next/standalone/.next/server/app/page.js +1 -1
  41. package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/projects.html +1 -1
  43. package/.next/standalone/.next/server/app/projects.rsc +4 -4
  44. package/.next/standalone/.next/server/app-paths-manifest.json +6 -5
  45. package/.next/standalone/.next/server/chunks/423.js +62 -0
  46. package/.next/standalone/.next/server/chunks/615.js +2 -2
  47. package/.next/standalone/.next/server/chunks/736.js +2 -2
  48. package/.next/standalone/.next/server/chunks/779.js +1 -0
  49. package/.next/standalone/.next/server/chunks/845.js +5 -5
  50. package/.next/standalone/.next/server/chunks/898.js +21 -0
  51. package/.next/standalone/.next/server/pages/404.html +1 -1
  52. package/.next/standalone/.next/server/pages/500.html +1 -1
  53. package/.next/standalone/.next/static/chunks/172-84d6b7afea495880.js +1 -0
  54. package/.next/standalone/.next/static/chunks/246-28370f424ce95be6.js +1 -0
  55. package/.next/standalone/.next/static/chunks/253-d1beae5e3cf2d88e.js +1 -0
  56. package/.next/standalone/.next/static/chunks/642-d84ad067810dd35b.js +1 -0
  57. package/.next/standalone/.next/static/chunks/661-a763fedcbf90af81.js +1 -0
  58. package/.next/standalone/.next/static/chunks/793-7306e111aea85b00.js +1 -0
  59. package/.next/standalone/.next/static/chunks/968-a7dcf12036013254.js +62 -0
  60. package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-d62f7774ba0ed3ab.js +1 -0
  61. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-e4ed5abcbb7c8802.js +1 -0
  62. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-0d320c1bd8d89d9c.js +1 -0
  63. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-1b2e89d37c95e30f.js +1 -0
  64. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-5f4191feafff095a.js +1 -0
  65. package/.next/standalone/.next/static/chunks/app/api/e2e/route-234cc6154c5cd194.js +1 -0
  66. package/.next/standalone/.next/static/chunks/app/api/generate/route-234cc6154c5cd194.js +1 -0
  67. package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-234cc6154c5cd194.js +1 -0
  68. package/.next/standalone/.next/static/chunks/app/api/llm/test/route-234cc6154c5cd194.js +1 -0
  69. package/.next/standalone/.next/static/chunks/app/api/refine-notes/route-234cc6154c5cd194.js +1 -0
  70. package/.next/standalone/.next/static/chunks/app/api/weather/route-234cc6154c5cd194.js +1 -0
  71. package/.next/{static/chunks/app/login/page-a655de2a3e8514f8.js → standalone/.next/static/chunks/app/login/page-35c717d39c71dcbf.js} +1 -1
  72. package/.next/standalone/.next/static/chunks/app/page-dd12a450edb4a44d.js +1 -0
  73. package/.next/standalone/.next/static/css/d31bdcc43c2da03c.css +3 -0
  74. package/.next/standalone/.next/static/pu5ThH8RrsP9e4dTXjYwA/_buildManifest.js +1 -0
  75. package/.next/standalone/package.json +1 -1
  76. package/.next/static/chunks/172-84d6b7afea495880.js +1 -0
  77. package/.next/static/chunks/246-28370f424ce95be6.js +1 -0
  78. package/.next/static/chunks/253-d1beae5e3cf2d88e.js +1 -0
  79. package/.next/static/chunks/642-d84ad067810dd35b.js +1 -0
  80. package/.next/static/chunks/661-a763fedcbf90af81.js +1 -0
  81. package/.next/static/chunks/793-7306e111aea85b00.js +1 -0
  82. package/.next/static/chunks/968-a7dcf12036013254.js +62 -0
  83. package/.next/static/chunks/app/(dashboard)/integrations/page-d62f7774ba0ed3ab.js +1 -0
  84. package/.next/static/chunks/app/(dashboard)/layout-e4ed5abcbb7c8802.js +1 -0
  85. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-0d320c1bd8d89d9c.js +1 -0
  86. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-1b2e89d37c95e30f.js +1 -0
  87. package/.next/static/chunks/app/(dashboard)/projects/page-5f4191feafff095a.js +1 -0
  88. package/.next/static/chunks/app/api/e2e/route-234cc6154c5cd194.js +1 -0
  89. package/.next/static/chunks/app/api/generate/route-234cc6154c5cd194.js +1 -0
  90. package/.next/static/chunks/app/api/llm/encrypt/route-234cc6154c5cd194.js +1 -0
  91. package/.next/static/chunks/app/api/llm/test/route-234cc6154c5cd194.js +1 -0
  92. package/.next/static/chunks/app/api/refine-notes/route-234cc6154c5cd194.js +1 -0
  93. package/.next/static/chunks/app/api/weather/route-234cc6154c5cd194.js +1 -0
  94. package/.next/{standalone/.next/static/chunks/app/login/page-a655de2a3e8514f8.js → static/chunks/app/login/page-35c717d39c71dcbf.js} +1 -1
  95. package/.next/static/chunks/app/page-dd12a450edb4a44d.js +1 -0
  96. package/.next/static/css/d31bdcc43c2da03c.css +3 -0
  97. package/.next/static/pu5ThH8RrsP9e4dTXjYwA/_buildManifest.js +1 -0
  98. package/README.md +27 -4
  99. package/package.json +1 -1
  100. package/.next/standalone/.next/server/chunks/350.js +0 -21
  101. package/.next/standalone/.next/server/chunks/403.js +0 -1
  102. package/.next/standalone/.next/server/chunks/583.js +0 -1
  103. package/.next/standalone/.next/static/5bU_Xo0_CNnVnb2HQeysr/_buildManifest.js +0 -1
  104. package/.next/standalone/.next/static/chunks/246-1673b37cc8edb269.js +0 -1
  105. package/.next/standalone/.next/static/chunks/485-23e4a6e33ee79f14.js +0 -1
  106. package/.next/standalone/.next/static/chunks/532-95cb537bb36c2e68.js +0 -62
  107. package/.next/standalone/.next/static/chunks/637-dcbc811f7143935f.js +0 -1
  108. package/.next/standalone/.next/static/chunks/708-1fc7a6d1d5b4aee7.js +0 -1
  109. package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-f5e71fcfbeffdfb1.js +0 -1
  110. package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-a5bf2535f1470c77.js +0 -1
  111. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-7205f74080ad5010.js +0 -1
  112. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-b69fc155f1796e19.js +0 -1
  113. package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-11a49918142004f5.js +0 -1
  114. package/.next/standalone/.next/static/chunks/app/api/e2e/route-ccff81cd0a5704f2.js +0 -1
  115. package/.next/standalone/.next/static/chunks/app/api/generate/route-ccff81cd0a5704f2.js +0 -1
  116. package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-ccff81cd0a5704f2.js +0 -1
  117. package/.next/standalone/.next/static/chunks/app/api/llm/test/route-ccff81cd0a5704f2.js +0 -1
  118. package/.next/standalone/.next/static/chunks/app/api/weather/route-ccff81cd0a5704f2.js +0 -1
  119. package/.next/standalone/.next/static/chunks/app/page-a90eeaea3538ebf2.js +0 -1
  120. package/.next/standalone/.next/static/css/f78c165472d53f48.css +0 -3
  121. package/.next/static/5bU_Xo0_CNnVnb2HQeysr/_buildManifest.js +0 -1
  122. package/.next/static/chunks/246-1673b37cc8edb269.js +0 -1
  123. package/.next/static/chunks/485-23e4a6e33ee79f14.js +0 -1
  124. package/.next/static/chunks/532-95cb537bb36c2e68.js +0 -62
  125. package/.next/static/chunks/637-dcbc811f7143935f.js +0 -1
  126. package/.next/static/chunks/708-1fc7a6d1d5b4aee7.js +0 -1
  127. package/.next/static/chunks/app/(dashboard)/integrations/page-f5e71fcfbeffdfb1.js +0 -1
  128. package/.next/static/chunks/app/(dashboard)/layout-a5bf2535f1470c77.js +0 -1
  129. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-7205f74080ad5010.js +0 -1
  130. package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-b69fc155f1796e19.js +0 -1
  131. package/.next/static/chunks/app/(dashboard)/projects/page-11a49918142004f5.js +0 -1
  132. package/.next/static/chunks/app/api/e2e/route-ccff81cd0a5704f2.js +0 -1
  133. package/.next/static/chunks/app/api/generate/route-ccff81cd0a5704f2.js +0 -1
  134. package/.next/static/chunks/app/api/llm/encrypt/route-ccff81cd0a5704f2.js +0 -1
  135. package/.next/static/chunks/app/api/llm/test/route-ccff81cd0a5704f2.js +0 -1
  136. package/.next/static/chunks/app/api/weather/route-ccff81cd0a5704f2.js +0 -1
  137. package/.next/static/chunks/app/page-a90eeaea3538ebf2.js +0 -1
  138. package/.next/static/css/f78c165472d53f48.css +0 -3
  139. /package/.next/standalone/.next/static/{5bU_Xo0_CNnVnb2HQeysr → pu5ThH8RrsP9e4dTXjYwA}/_ssgManifest.js +0 -0
  140. /package/.next/static/{5bU_Xo0_CNnVnb2HQeysr → pu5ThH8RrsP9e4dTXjYwA}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[659],{63:(e,t,r)=>{"use strict";var s=r(7260);r.o(s,"useParams")&&r.d(t,{useParams:function(){return s.useParams}}),r.o(s,"usePathname")&&r.d(t,{usePathname:function(){return s.usePathname}}),r.o(s,"useRouter")&&r.d(t,{useRouter:function(){return s.useRouter}})},158:(e,t,r)=>{"use strict";r.d(t,{Bf:()=>R,G$:()=>N,Rz:()=>y,Vj:()=>u,hX:()=>m,ii:()=>d,k5:()=>x,sy:()=>C,wy:()=>c});var s=r(8566),l=r(9280),a=r.n(l);let o={untested:"⬜ Untested",pass:"✅ Pass",fail:"❌ Fail",skip:"⏭ Skip"},n=e=>e.replace(/\n/g,"<br>").replace(/\|/g,"\\|");function c(e,t,r){let l=(r.length>0?r:s._X).filter(e=>e.visible),a=l.map(e=>e.label).join(" | "),c=l.map(()=>"---").join(" | "),i="# ".concat(e.code?e.code+" — ":"").concat(e.label,"\n\n");i+="| # | ".concat(a," |\n"),i+="|---|".concat(c,"|\n"),t.forEach((e,t)=>{let r=l.map(t=>"status"===t.key?o[e.status]:n(e[t.key]||""));i+="| ".concat(t+1," | ").concat(r.join(" | ")," |\n")});let d=t.length,u=t.filter(e=>"skip"===e.status).length,x=t.filter(e=>"pass"===e.status).length,m=d-u>0?Math.round(x/(d-u)*100):0;return i+="\n**Pass rate: ".concat(x,"/").concat(d-u," (").concat(m,"%)**\n")}function i(e,t,r){let s=new Blob([e],{type:r}),l=URL.createObjectURL(s),a=document.createElement("a");a.href=l,a.download=t,a.click(),URL.revokeObjectURL(l)}function d(e){i(function(e){let t="# ".concat(e.name,"\n\n");for(let u of e.flows){var r,l,a,c,i,d;let x=e.testCases[u.id];if(!x||0===x.length)continue;let m=((null!=(c=null!=(a=null==(r=e.columnConfigs)?void 0:r[u.id])?a:e.columnConfig)?c:[]).length>0?null!=(d=null!=(i=null==(l=e.columnConfigs)?void 0:l[u.id])?i:e.columnConfig)?d:[]:s._X).filter(e=>e.visible),h=m.map(e=>e.label).join(" | "),f=m.map(()=>"---").join(" | ");t+="## ".concat(u.code?u.code+" — ":"").concat(u.label,"\n\n"),t+="| # | ".concat(h," |\n"),t+="|---|".concat(f,"|\n"),x.forEach((e,r)=>{let s=m.map(t=>"status"===t.key?o[e.status]:n(e[t.key]||""));t+="| ".concat(r+1," | ").concat(s.join(" | ")," |\n")});let p=x.length,y=x.filter(e=>"skip"===e.status).length,b=x.filter(e=>"pass"===e.status).length,v=p-y>0?Math.round(b/(p-y)*100):0;t+="\n**Pass rate: ".concat(b,"/").concat(p-y," (").concat(v,"%)**\n\n---\n\n")}return t}(e),"".concat(e.name,".md"),"text/markdown")}function u(e){i(JSON.stringify(e,null,2),"".concat(e.name,".json"),"application/json")}function x(e,t,r){let s=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");i(c(e,t,r),"".concat(s,".md"),"text/markdown")}function m(e,t){let r=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");i(JSON.stringify({node:e,testCases:t},null,2),"".concat(r,".json"),"application/json")}function h(e,t){let r=e&&e.length>0?e:t;return r.length>0?r:s._X}function f(e,t){return t.map(t=>"status"===t.key?o[e.status]:e[t.key]||"")}function p(e){return e.includes(",")||e.includes('"')||e.includes("\n")?'"'.concat(e.replace(/"/g,'""'),'"'):e}function y(e,t,r){let l=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");i(function(e,t,r){let l=h(r,s._X).filter(e=>e.visible);return[["#",...l.map(e=>p(e.label))].join(","),...t.map((e,t)=>[String(t+1),...f(e,l).map(p)].join(","))].join("\n")}(0,t,r),"".concat(l,".csv"),"text/csv")}function b(e,t){var r,l,a;let o=null!=(a=null!=(l=null==(r=e.columnConfigs)?void 0:r[t])?l:e.columnConfig)?a:[];return o.length>0?o:s._X}function v(e){e.fill={type:"pattern",pattern:"solid",fgColor:{argb:"FFdbd8d3"}},e.font={name:"Inter",bold:!0,size:11},e.border={top:{style:"thin"},bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},e.alignment={vertical:"middle",horizontal:"left",wrapText:!0}}function j(e){e.border={top:{style:"thin"},bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},e.font={name:"Inter",size:11},e.alignment={vertical:"middle",horizontal:"left",wrapText:!0}}function g(e,t,r,s,l){let a=e.addWorksheet(t);return a.columns=[{header:"#",key:"row",width:6},...l.map(e=>({header:e.label,key:e.key,width:Math.max(e.label.length+4,18)}))],a.getRow(1).eachCell(v),s.forEach((e,t)=>{let r={row:t+1};l.forEach(t=>{"status"===t.key?r[t.key]=o[e.status]:r[t.key]=e[t.key]||""}),a.addRow(r).eachCell(j)}),a}async function k(e,t,r){let l=h(r,s._X).filter(e=>e.visible),o=new(a()).Workbook;return o.creator="Ayu Management Tools",g(o,e.label,e.label,t,l),new Blob([await o.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function N(e,t,r){let s=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_"),l=await k(e,t,r),a=URL.createObjectURL(l),o=document.createElement("a");o.href=a,o.download="".concat(s,".xlsx"),o.click(),URL.revokeObjectURL(a)}async function w(e){let t=new(a()).Workbook;for(let r of(t.creator="Ayu Management Tools",e.flows)){let s=e.testCases[r.id];if(!s||0===s.length)continue;let l=b(e,r.id).filter(e=>e.visible);g(t,(r.code||r.label).substring(0,31).replace(/[\\/*?[\]]/g,"_"),r.label,s,l)}return new Blob([await t.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function C(e){let t=await w(e),r=URL.createObjectURL(t),s=document.createElement("a");s.href=r,s.download="".concat(e.name,".xlsx"),s.click(),URL.revokeObjectURL(r)}function R(e){i(function(e){let t="";for(let r of e.flows){let s=e.testCases[r.id];if(!s||0===s.length)continue;let l=b(e,r.id).filter(e=>e.visible);t+="# ".concat(r.code?r.code+" — ":"").concat(r.label,"\n"),t+=["#",...l.map(e=>p(e.label))].join(",")+"\n",s.forEach((e,r)=>{let s=[String(r+1),...f(e,l).map(p)];t+=s.join(",")+"\n"}),t+="\n"}return t}(e),"".concat(e.name,".csv"),"text/csv")}},1399:(e,t,r)=>{Promise.resolve().then(r.bind(r,6268))},6268:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>d});var s=r(5155),l=r(2115),a=r(63),o=r(2619),n=r.n(o),c=r(7246),i=r(158);function d(){var e,t,r;let o=(0,a.useParams)().projectId,{projects:i}=(0,c.M)(),d=i[o],[m,h]=(0,l.useState)(!1);if(!d)return(0,s.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,s.jsx)("p",{style:{color:"var(--text-tertiary)"},children:"Project not found."})});let f=Object.values(d.testCases).flat(),p=d.flows.length,y=f.length,b=(null!=(e=d.edges)?e:[]).length,v=f.filter(e=>"pass"===e.status).length,j=f.filter(e=>"fail"===e.status).length,g=f.filter(e=>"skip"===e.status).length,k=f.filter(e=>"untested"===e.status).length,N=y-g,w=N>0?Math.round(v/N*100):0,C=d.flows.map(e=>{var t;let r=null!=(t=d.testCases[e.id])?t:[],s=r.filter(e=>"pass"===e.status).length,l=r.filter(e=>"fail"===e.status).length,a=r.filter(e=>"skip"===e.status).length,o=r.length,n=o-a,c=n>0?Math.round(s/n*100):0;return{node:e,total:o,pass:s,fail:l,skip:a,rate:c}});return(0,s.jsxs)("div",{className:"h-full overflow-auto",children:[(0,s.jsxs)("div",{className:"px-5 py-4 border-b flex items-center gap-3",style:{borderColor:"var(--border)"},children:[(0,s.jsx)(n(),{href:"/projects/".concat(o),className:"text-xs px-2 py-1 rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"← Back"}),(0,s.jsxs)("h2",{className:"text-base font-medium flex-1",style:{color:"var(--text-primary)"},children:[d.name," — Summary"]}),(0,s.jsx)("button",{onClick:()=>h(!0),className:"px-3 py-1.5 text-xs font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Export"})]}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3 p-5",children:[(0,s.jsx)(u,{label:"Flow Nodes",value:p}),(0,s.jsx)(u,{label:"Test Cases",value:y}),(0,s.jsx)(u,{label:"Pass Rate",value:"".concat(w,"%"),color:"var(--status-pass-text)"}),(0,s.jsx)(u,{label:"Conditional Edges",value:b})]}),(0,s.jsxs)("div",{className:"px-5 pb-4",children:[(0,s.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider mb-3",style:{color:"var(--text-tertiary)"},children:"Status Breakdown"}),(0,s.jsxs)("div",{className:"flex gap-4 text-sm",style:{color:"var(--text-secondary)"},children:[(0,s.jsxs)("span",{children:["Pass: ",(0,s.jsx)("strong",{style:{color:"var(--status-pass-text)"},children:v})]}),(0,s.jsxs)("span",{children:["Fail: ",(0,s.jsx)("strong",{style:{color:"var(--status-fail-text)"},children:j})]}),(0,s.jsxs)("span",{children:["Skip: ",(0,s.jsx)("strong",{style:{color:"var(--status-skip-text)"},children:g})]}),(0,s.jsxs)("span",{children:["Untested: ",(0,s.jsx)("strong",{style:{color:"var(--status-untested-text)"},children:k})]})]})]}),(0,s.jsxs)("div",{className:"px-5 pb-4",children:[(0,s.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider mb-3",style:{color:"var(--text-tertiary)"},children:"Per-Node Breakdown"}),(0,s.jsxs)("table",{className:"w-full text-sm",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"text-left py-1.5 text-xs font-medium",style:{color:"var(--text-tertiary)"},children:"Code"}),(0,s.jsx)("th",{className:"text-left py-1.5 text-xs font-medium",style:{color:"var(--text-tertiary)"},children:"Node"}),(0,s.jsx)("th",{className:"text-right py-1.5 text-xs font-medium",style:{color:"var(--text-tertiary)"},children:"Cases"}),(0,s.jsx)("th",{className:"text-right py-1.5 text-xs font-medium",style:{color:"var(--text-tertiary)"},children:"Rate"}),(0,s.jsx)("th",{className:"py-1.5 w-24 text-xs font-medium",style:{color:"var(--text-tertiary)"}})]})}),(0,s.jsx)("tbody",{children:C.map(e=>{let{node:t,total:r,rate:l}=e;return(0,s.jsxs)("tr",{className:"border-t",style:{borderColor:"var(--border)"},children:[(0,s.jsx)("td",{className:"py-2 font-mono text-xs",style:{color:"var(--text-tertiary)"},children:t.code||"—"}),(0,s.jsx)("td",{className:"py-2",style:{color:"var(--text-primary)"},children:t.label}),(0,s.jsx)("td",{className:"py-2 text-right",style:{color:"var(--text-secondary)"},children:r}),(0,s.jsx)("td",{className:"py-2 text-right",style:{color:l>=80?"var(--status-pass-text)":l>=50?"var(--status-skip-text)":"var(--status-fail-text)"},children:r>0?"".concat(l,"%"):"—"}),(0,s.jsx)("td",{className:"py-2",children:r>0&&(0,s.jsx)("div",{className:"h-2 w-full rounded-full overflow-hidden",style:{backgroundColor:"var(--bg-secondary)"},children:(0,s.jsx)("div",{className:"h-full rounded-full",style:{width:"".concat(l,"%"),backgroundColor:l>=80?"var(--status-pass-text)":l>=50?"var(--status-skip-text)":"var(--status-fail-text)"}})})})]},t.id)})})]})]}),(null!=(t=d.edges)?t:[]).length>0&&(0,s.jsxs)("div",{className:"px-5 pb-4",children:[(0,s.jsx)("h3",{className:"text-xs font-medium uppercase tracking-wider mb-3",style:{color:"var(--text-tertiary)"},children:"Conditional Edges"}),(0,s.jsx)("div",{className:"flex flex-col gap-2",children:(null!=(r=d.edges)?r:[]).map(e=>{var t,r;let l=d.flows.find(t=>t.id===e.fromId),a=d.flows.find(t=>t.id===e.toId);return(0,s.jsxs)("div",{className:"flex items-center gap-2 text-xs",style:{color:"var(--text-secondary)"},children:[(0,s.jsx)("span",{style:{color:"var(--text-primary)"},children:null!=(t=null==l?void 0:l.label)?t:"?"}),(0,s.jsx)("span",{style:{color:"pass"===e.type?"var(--status-pass-text)":"var(--status-fail-text)"},children:"pass"===e.type?"→ ✓ Pass →":"→ ✗ Fail →"}),(0,s.jsx)("span",{style:{color:"var(--text-primary)"},children:null!=(r=null==a?void 0:a.label)?r:"?"})]},e.id)})})]}),(0,s.jsx)(x,{open:m,onClose:()=>h(!1),project:d})]})}function u(e){let{label:t,value:r,color:l}=e;return(0,s.jsxs)("div",{className:"p-3 rounded-md border",style:{borderColor:"var(--border)",borderRadius:"var(--radius-md)"},children:[(0,s.jsx)("div",{className:"text-xs mb-1",style:{color:"var(--text-tertiary)"},children:t}),(0,s.jsx)("div",{className:"text-lg font-medium",style:{color:null!=l?l:"var(--text-primary)"},children:r})]})}function x(e){let{open:t,onClose:r,project:l}=e;return t?(0,s.jsx)("div",{className:"fixed inset-0 z-[300] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:r,children:(0,s.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl p-5",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)",borderRadius:"var(--radius-lg)"},onClick:e=>e.stopPropagation(),children:[(0,s.jsx)("h3",{className:"text-sm font-semibold mb-1",style:{color:"var(--text-primary)"},children:"Export Project"}),(0,s.jsxs)("p",{className:"text-xs mb-4",style:{color:"var(--text-tertiary)"},children:["Export “",l.name,"” as:"]}),(0,s.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,s.jsxs)("button",{onClick:()=>{(0,i.ii)(l),r()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"Markdown (.md)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Formatted tables for documentation"})]}),(0,s.jsxs)("button",{onClick:()=>{(0,i.Vj)(l),r()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"JSON (.json)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Full data backup"})]}),(0,s.jsxs)("button",{onClick:()=>{(0,i.Bf)(l),r()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"CSV (.csv)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Spreadsheet-compatible format"})]}),(0,s.jsxs)("button",{onClick:async()=>{await (0,i.sy)(l),r()},className:"w-full text-left px-4 py-3 text-sm rounded-lg border transition-colors hover:border-[var(--border-hover)]",style:{borderColor:"var(--border)",borderRadius:"var(--radius-sm)"},children:[(0,s.jsx)("span",{className:"font-medium",style:{color:"var(--text-primary)"},children:"Excel (.xlsx)"}),(0,s.jsx)("br",{}),(0,s.jsx)("span",{className:"text-xs",style:{color:"var(--text-tertiary)"},children:"Styled spreadsheet for reporting"})]})]}),(0,s.jsx)("button",{onClick:r,className:"w-full mt-3 px-3 py-2 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"})]})}):null}}},e=>{e.O(0,[343,619,246,441,255,358],()=>e(e.s=1399)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[709],{158:(e,t,s)=>{"use strict";s.d(t,{Bf:()=>A,G$:()=>w,Rz:()=>b,Vj:()=>f,hX:()=>x,ii:()=>c,k5:()=>u,sy:()=>N,wy:()=>i});var r=s(8566),a=s(9280),o=s.n(a);let n={untested:"⬜ Untested",pass:"✅ Pass",fail:"❌ Fail",skip:"⏭ Skip"},l=e=>e.replace(/\n/g,"<br>").replace(/\|/g,"\\|");function i(e,t,s){let a=(s.length>0?s:r._X).filter(e=>e.visible),o=a.map(e=>e.label).join(" | "),i=a.map(()=>"---").join(" | "),d="# ".concat(e.code?e.code+" — ":"").concat(e.label,"\n\n");d+="| # | ".concat(o," |\n"),d+="|---|".concat(i,"|\n"),t.forEach((e,t)=>{let s=a.map(t=>"status"===t.key?n[e.status]:l(e[t.key]||""));d+="| ".concat(t+1," | ").concat(s.join(" | ")," |\n")});let c=t.length,f=t.filter(e=>"skip"===e.status).length,u=t.filter(e=>"pass"===e.status).length,x=c-f>0?Math.round(u/(c-f)*100):0;return d+="\n**Pass rate: ".concat(u,"/").concat(c-f," (").concat(x,"%)**\n")}function d(e,t,s){let r=new Blob([e],{type:s}),a=URL.createObjectURL(r),o=document.createElement("a");o.href=a,o.download=t,o.click(),URL.revokeObjectURL(a)}function c(e){d(function(e){let t="# ".concat(e.name,"\n\n");for(let f of e.flows){var s,a,o,i,d,c;let u=e.testCases[f.id];if(!u||0===u.length)continue;let x=((null!=(i=null!=(o=null==(s=e.columnConfigs)?void 0:s[f.id])?o:e.columnConfig)?i:[]).length>0?null!=(c=null!=(d=null==(a=e.columnConfigs)?void 0:a[f.id])?d:e.columnConfig)?c:[]:r._X).filter(e=>e.visible),p=x.map(e=>e.label).join(" | "),h=x.map(()=>"---").join(" | ");t+="## ".concat(f.code?f.code+" — ":"").concat(f.label,"\n\n"),t+="| # | ".concat(p," |\n"),t+="|---|".concat(h,"|\n"),u.forEach((e,s)=>{let r=x.map(t=>"status"===t.key?n[e.status]:l(e[t.key]||""));t+="| ".concat(s+1," | ").concat(r.join(" | ")," |\n")});let m=u.length,b=u.filter(e=>"skip"===e.status).length,g=u.filter(e=>"pass"===e.status).length,j=m-b>0?Math.round(g/(m-b)*100):0;t+="\n**Pass rate: ".concat(g,"/").concat(m-b," (").concat(j,"%)**\n\n---\n\n")}return t}(e),"".concat(e.name,".md"),"text/markdown")}function f(e){d(JSON.stringify(e,null,2),"".concat(e.name,".json"),"application/json")}function u(e,t,s){let r=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(i(e,t,s),"".concat(r,".md"),"text/markdown")}function x(e,t){let s=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(JSON.stringify({node:e,testCases:t},null,2),"".concat(s,".json"),"application/json")}function p(e,t){let s=e&&e.length>0?e:t;return s.length>0?s:r._X}function h(e,t){return t.map(t=>"status"===t.key?n[e.status]:e[t.key]||"")}function m(e){return e.includes(",")||e.includes('"')||e.includes("\n")?'"'.concat(e.replace(/"/g,'""'),'"'):e}function b(e,t,s){let a=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(function(e,t,s){let a=p(s,r._X).filter(e=>e.visible);return[["#",...a.map(e=>m(e.label))].join(","),...t.map((e,t)=>[String(t+1),...h(e,a).map(m)].join(","))].join("\n")}(0,t,s),"".concat(a,".csv"),"text/csv")}function g(e,t){var s,a,o;let n=null!=(o=null!=(a=null==(s=e.columnConfigs)?void 0:s[t])?a:e.columnConfig)?o:[];return n.length>0?n:r._X}function j(e){e.fill={type:"pattern",pattern:"solid",fgColor:{argb:"FFdbd8d3"}},e.font={name:"Inter",bold:!0,size:11},e.border={top:{style:"thin"},bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},e.alignment={vertical:"middle",horizontal:"left",wrapText:!0}}function v(e){e.border={top:{style:"thin"},bottom:{style:"thin"},left:{style:"thin"},right:{style:"thin"}},e.font={name:"Inter",size:11},e.alignment={vertical:"middle",horizontal:"left",wrapText:!0}}function y(e,t,s,r,a){let o=e.addWorksheet(t);return o.columns=[{header:"#",key:"row",width:6},...a.map(e=>({header:e.label,key:e.key,width:Math.max(e.label.length+4,18)}))],o.getRow(1).eachCell(j),r.forEach((e,t)=>{let s={row:t+1};a.forEach(t=>{"status"===t.key?s[t.key]=n[e.status]:s[t.key]=e[t.key]||""}),o.addRow(s).eachCell(v)}),o}async function k(e,t,s){let a=p(s,r._X).filter(e=>e.visible),n=new(o()).Workbook;return n.creator="Ayu Management Tools",y(n,e.label,e.label,t,a),new Blob([await n.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function w(e,t,s){let r=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_"),a=await k(e,t,s),o=URL.createObjectURL(a),n=document.createElement("a");n.href=o,n.download="".concat(r,".xlsx"),n.click(),URL.revokeObjectURL(o)}async function C(e){let t=new(o()).Workbook;for(let s of(t.creator="Ayu Management Tools",e.flows)){let r=e.testCases[s.id];if(!r||0===r.length)continue;let a=g(e,s.id).filter(e=>e.visible);y(t,(s.code||s.label).substring(0,31).replace(/[\\/*?[\]]/g,"_"),s.label,r,a)}return new Blob([await t.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function N(e){let t=await C(e),s=URL.createObjectURL(t),r=document.createElement("a");r.href=s,r.download="".concat(e.name,".xlsx"),r.click(),URL.revokeObjectURL(s)}function A(e){d(function(e){let t="";for(let s of e.flows){let r=e.testCases[s.id];if(!r||0===r.length)continue;let a=g(e,s.id).filter(e=>e.visible);t+="# ".concat(s.code?s.code+" — ":"").concat(s.label,"\n"),t+=["#",...a.map(e=>m(e.label))].join(",")+"\n",r.forEach((e,s)=>{let r=[String(s+1),...h(e,a).map(m)];t+=r.join(",")+"\n"}),t+="\n"}return t}(e),"".concat(e.name,".csv"),"text/csv")}},2053:(e,t,s)=>{Promise.resolve().then(s.bind(s,7193))},3350:(e,t,s)=>{"use strict";s.d(t,{d:()=>l});var r=s(2039),a=s(2115),o=s(3127),n=s(4416);function l(e){let t=(0,n.M)(()=>(0,r.OQ)(e)),{isStatic:s}=(0,a.useContext)(o.Q);if(s){let[,s]=(0,a.useState)(e);(0,a.useEffect)(()=>t.on("change",s),[])}return t}},4269:(e,t,s)=>{"use strict";s.d(t,{cn:()=>o});var r=s(2821),a=s(5889);function o(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,a.QP)((0,r.$)(t))}},5307:(e,t,s)=>{"use strict";s.d(t,{b:()=>n});var r=s(5155),a=s(2115),o=s(4269);function n(e){let{width:t=40,height:s=40,x:n=-1,y:l=-1,strokeDasharray:i="0",squares:d,className:c,...f}=e,u=(0,a.useId)();return(0,r.jsxs)("svg",{"aria-hidden":"true",className:(0,o.cn)("pointer-events-none absolute inset-0 h-full w-full fill-gray-400/30 stroke-gray-400/30",c),...f,children:[(0,r.jsx)("defs",{children:(0,r.jsx)("pattern",{id:u,width:t,height:s,patternUnits:"userSpaceOnUse",x:n,y:l,children:(0,r.jsx)("path",{d:"M.5 ".concat(s,"V.5H").concat(t),fill:"none",strokeDasharray:i})})}),(0,r.jsx)("rect",{width:"100%",height:"100%",strokeWidth:0,fill:"url(#".concat(u,")")}),d&&(0,r.jsx)("svg",{x:n,y:l,className:"overflow-visible",children:d.map(e=>{let[a,o]=e;return(0,r.jsx)("rect",{strokeWidth:"0",width:t-1,height:s-1,x:a*t+1,y:o*s+1},"".concat(a,"-").concat(o))})})]})}},5815:(e,t,s)=>{"use strict";s.d(t,{p:()=>a});var r=s(5155);function a(e){let{message:t,action:s}=e;return(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4 px-6 text-center",children:[(0,r.jsx)("img",{src:"https://static.vecteezy.com/system/resources/thumbnails/067/162/149/small/cute-duck-meme-sticker-transparent-cute-illustration-free-png.png",alt:"",className:"w-28 h-28 object-contain select-none opacity-15",draggable:!1}),(0,r.jsx)("p",{className:"text-sm max-w-[280px]",style:{color:"var(--text-tertiary)"},children:t}),s&&(0,r.jsx)("button",{onClick:s.onClick,className:"px-4 py-2 text-sm font-medium rounded-md transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)",borderRadius:"var(--radius-pill)"},children:s.label})]})}},7193:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>w});var r=s(5155),a=s(8661),o=s.n(a),n=s(2115),l=s(2619),i=s.n(l),d=s(7246),c=s(158),f=s(5815),u=s(4269);function x(e){let{width:t=40,height:s=40,squares:a=[24,24],className:o,squaresClassName:l,...i}=e,[d,c]=a,[f,x]=(0,n.useState)(null);return(0,r.jsx)("svg",{width:t*d,height:s*c,className:(0,u.cn)("absolute inset-0 h-full w-full border border-gray-400/30",o),...i,children:Array.from({length:d*c}).map((e,a)=>{let o=a%d*t,n=Math.floor(a/d)*s;return(0,r.jsx)("rect",{x:o,y:n,width:t,height:s,className:(0,u.cn)("stroke-gray-400/30 transition-all duration-100 ease-in-out not-[&:hover]:duration-1000",f===a?"fill-gray-300/30":"fill-transparent",l),onMouseEnter:()=>x(a),onMouseLeave:()=>x(null)},a)})})}var p=s(5307),h=s(3350),m=s(7952),b=s(8561);let g={some:0,all:1};function j(e){let{value:t,startValue:s=0,direction:a="up",delay:o=0,className:l,decimalPlaces:i=0,...d}=e,c=(0,n.useRef)(null),f=(0,h.d)("down"===a?t:s),x=(0,m.z)(f,{damping:60,stiffness:100}),p=function(e){let{root:t,margin:s,amount:r,once:a=!1,initial:o=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[l,i]=(0,n.useState)(o);return(0,n.useEffect)(()=>{if(!e.current||a&&l)return;let o={root:t&&t.current||void 0,margin:s,amount:r};return function(e,t,{root:s,margin:r,amount:a="some"}={}){let o=(0,b.K)(e),n=new WeakMap,l=new IntersectionObserver(e=>{e.forEach(e=>{let s=n.get(e.target);if(!!s!==e.isIntersecting)if(e.isIntersecting){let s=t(e.target,e);"function"==typeof s?n.set(e.target,s):l.unobserve(e.target)}else"function"==typeof s&&(s(e),n.delete(e.target))})},{root:s,rootMargin:r,threshold:"number"==typeof a?a:g[a]});return o.forEach(e=>l.observe(e)),()=>l.disconnect()}(e.current,()=>(i(!0),a?void 0:()=>i(!1)),o)},[t,e,s,a,r]),l}(c,{once:!0,margin:"0px"});return(0,n.useEffect)(()=>{let e=null;return p&&(e=setTimeout(()=>{f.set("down"===a?s:t)},1e3*o)),()=>{null!==e&&clearTimeout(e)}},[f,p,o,t,a,s]),(0,n.useEffect)(()=>x.on("change",e=>{c.current&&(c.current.textContent=Intl.NumberFormat("en-US",{minimumFractionDigits:i,maximumFractionDigits:i}).format(Number(e.toFixed(i))))}),[x,i]),(0,r.jsx)("span",{ref:c,className:(0,u.cn)("inline-block tracking-wider text-black tabular-nums dark:text-white",l),...d,children:s})}var v=s(9534);let y=[{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 00-2.91-.09z"}),(0,r.jsx)("path",{d:"M12 15l-3-3a22 22 0 012-3.95A12.88 12.88 0 0122 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 01-4 2z"}),(0,r.jsx)("path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0"}),(0,r.jsx)("path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"})]}),bg:"#F5F0EB"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"6"}),(0,r.jsx)("circle",{cx:"12",cy:"12",r:"2",fill:"#6F4E37"})]}),bg:"#EDE6DD"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M10 2v7.527a2 2 0 01-.211.896L4.72 20.55a1 1 0 00.9 1.45h12.76a1 1 0 00.9-1.45l-5.069-10.127A2 2 0 0114 9.527V2"}),(0,r.jsx)("path",{d:"M8.5 2h7"}),(0,r.jsx)("path",{d:"M7 16h10"})]}),bg:"#F7F3EE"},{icon:(0,r.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M8.5 14.5A2.5 2.5 0 0011 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 11-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 002.5 2.5z"})}),bg:"#F5F0EB"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 006 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"}),(0,r.jsx)("path",{d:"M9 18h6"}),(0,r.jsx)("path",{d:"M10 22h4"})]}),bg:"#EDE6DD"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 01-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 011-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 011.52 0C14.51 3.81 17 5 19 5a1 1 0 011 1z"}),(0,r.jsx)("path",{d:"M12 8v4"}),(0,r.jsx)("path",{d:"M12 16h.01"})]}),bg:"#F7F3EE"},{icon:(0,r.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2",fill:"#6F4E37",opacity:"0.2"})}),bg:"#F5F0EB"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("line",{x1:"6",y1:"11",x2:"10",y2:"11"}),(0,r.jsx)("line",{x1:"8",y1:"9",x2:"8",y2:"13"}),(0,r.jsx)("line",{x1:"15",y1:"12",x2:"15.01",y2:"12"}),(0,r.jsx)("line",{x1:"18",y1:"10",x2:"18.01",y2:"10"}),(0,r.jsx)("path",{d:"M17.32 5H6.68a4 4 0 00-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 003 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 019.828 16h4.344a2 2 0 011.414.586L17 18c.5.5 1 1 2 1a3 3 0 003-3c0-1.544-.604-6.584-.685-7.258-.007-.05-.011-.1-.017-.151A4 4 0 0017.32 5z"})]}),bg:"#EDE6DD"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M12 2L2 7l10 5 10-5-10-5z"}),(0,r.jsx)("path",{d:"M2 17l10 5 10-5"}),(0,r.jsx)("path",{d:"M2 12l10 5 10-5",fill:"#6F4E37",opacity:"0.15"})]}),bg:"#F7F3EE"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M12 2a10 10 0 1010 10 4 4 0 01-5-5 4 4 0 01-5-5"}),(0,r.jsx)("path",{d:"M8.5 8.5v.01"}),(0,r.jsx)("path",{d:"M16 15.5v.01"}),(0,r.jsx)("path",{d:"M12 12v.01"}),(0,r.jsx)("path",{d:"M11 17v.01"}),(0,r.jsx)("path",{d:"M7 14v.01"})]}),bg:"#F5F0EB"},{icon:(0,r.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2",fill:"#6F4E37",opacity:"0.2"})}),bg:"#EDE6DD"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,r.jsx)("polygon",{points:"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76",fill:"#6F4E37",opacity:"0.2"})]}),bg:"#F7F3EE"},{icon:(0,r.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:(0,r.jsx)("path",{d:"M19.439 7.85c-.049.322.059.648.289.878l1.568 1.568c.47.47.706 1.087.706 1.704s-.235 1.233-.706 1.704l-1.611 1.611a.98.98 0 01-.837.276c-.47-.07-.802-.48-.968-.925a2.501 2.501 0 10-3.214 3.214c.446.166.855.497.925.968a.979.979 0 01-.276.837l-1.61 1.611a2.404 2.404 0 01-1.705.707 2.402 2.402 0 01-1.704-.706l-1.568-1.568a1.026 1.026 0 00-.877-.29c-.493.074-.84.504-1.02.968a2.5 2.5 0 11-3.237-3.237c.464-.18.894-.527.967-1.02a1.026 1.026 0 00-.289-.877l-1.568-1.568A2.402 2.402 0 011.998 12c0-.617.236-1.234.706-1.704L4.23 8.77c.24-.24.581-.353.917-.303.515.077.877.528 1.073.978a2.5 2.5 0 103.259-3.259c-.45-.196-.9-.558-.977-1.073-.05-.336.062-.676.303-.917l1.525-1.525A2.402 2.402 0 0112 1.998c.617 0 1.234.236 1.704.706l1.568 1.568c.23.23.556.338.877.29.493-.074.84-.504 1.02-.968a2.5 2.5 0 113.237 3.237c-.464.18-.894.527-.967 1.02z"})}),bg:"#F5F0EB"},{icon:(0,r.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#1A1A1A",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,r.jsx)("path",{d:"M21 16V8a2 2 0 00-1-1.73l-7-4a2 2 0 00-2 0l-7 4A2 2 0 003 8v8a2 2 0 001 1.73l7 4a2 2 0 002 0l7-4A2 2 0 0021 16z"}),(0,r.jsx)("polyline",{points:"3.27 6.96 12 12.01 20.73 6.96"}),(0,r.jsx)("line",{x1:"12",y1:"22.08",x2:"12",y2:"12"})]}),bg:"#EDE6DD"}];function k(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s)|0;return y[Math.abs(t)%y.length]}function w(){let{projects:e,createProject:t,deleteProject:s,duplicateProject:a,importProject:l,renameProject:u,profile:h,profileInitials:m,promptDialog:b,confirmDialog:g}=(0,d.M)(),y=Object.values(e),[w,C]=(0,n.useState)(null),[N,A]=(0,n.useState)(""),[E,L]=(0,n.useState)(null),[M,D]=(0,n.useState)(!1),[F,S]=(0,n.useState)(!1),[P,B]=(0,n.useState)(null),I=(0,n.useRef)(null),R=(0,n.useRef)(null);(0,n.useEffect)(()=>{if(!E)return;let e=e=>{I.current&&!I.current.contains(e.target)&&L(null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[E]),(0,n.useEffect)(()=>{(0,v.nU)()},[]);let W=(0,n.useMemo)(()=>{let e=y.flatMap(e=>Object.values(e.testCases).flat()),t=e.length,s=e.filter(e=>"pass"===e.status).length,r=e.filter(e=>"skip"===e.status).length,a=y.reduce((e,t)=>e+t.flows.length,0),o=t-r;return{totalCases:t,totalNodes:a,overallPassRate:o>0?Math.round(s/o*100):0}},[y]);if(0===y.length)return(0,r.jsx)("div",{className:"h-full overflow-auto p-6",children:(0,r.jsx)(f.p,{message:"No projects yet. Create your first project to get started.",action:{label:"+ New Project",onClick:async()=>{let e=await b("New Project","Enter project name:");(null==e?void 0:e.trim())&&t(e.trim())}}})});let _=()=>{w&&N.trim()&&u(w,N.trim()),C(null)},U=async(e,t)=>{L(null),await g("Delete Project",'Delete "'.concat(t,'"? This cannot be undone.'))&&s(e)};return(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 h-full overflow-auto relative",children:[(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 absolute inset-0 overflow-hidden pointer-events-none",children:[(0,r.jsx)(x,{width:48,height:48,squares:[32,32],className:"opacity-30",squaresClassName:"fill-neutral-200/20"}),(0,r.jsx)("div",{style:{background:"linear-gradient(to bottom, var(--bg-primary) 0%, transparent 15%, transparent 85%, var(--bg-primary) 100%)"},className:"jsx-ef3362fdbd774571 absolute inset-0"})]}),(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 relative p-6",children:[(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 flex items-center justify-between mb-6",children:[(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571",children:[(0,r.jsx)("h2",{style:{color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 text-lg font-medium",children:"All Projects"}),(0,r.jsxs)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 text-xs mt-0.5",children:[y.length," project",1!==y.length?"s":""]})]}),(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 flex items-center gap-2",children:[(0,r.jsx)("button",{onClick:()=>D(!0),style:{borderColor:"#6F4E37",color:"#6F4E37",borderRadius:"var(--radius-pill)",boxShadow:"0 0 12px rgba(111,78,55,0.3), 0 0 24px rgba(111,78,55,0.15)",animation:"glowPulse 2s ease-in-out infinite"},className:"jsx-ef3362fdbd774571 px-4 py-2 text-sm font-medium rounded-md border transition-all hover:scale-105",children:"Donate Please \uD83E\uDD7A\uD83D\uDC49\uD83D\uDC48"}),(0,r.jsx)("button",{onClick:()=>{var e;return null==(e=R.current)?void 0:e.click()},style:{borderColor:"var(--border)",color:"var(--text-secondary)",borderRadius:"var(--radius-pill)"},className:"jsx-ef3362fdbd774571 px-4 py-2 text-sm font-medium rounded-md border transition-opacity hover:opacity-80",children:"Import Project"}),(0,r.jsx)("input",{ref:R,type:"file",accept:".json",onChange:e=>{var t;let s=null==(t=e.target.files)?void 0:t[0];if(!s)return;let r=new FileReader;r.onload=()=>{let e=l(r.result);e.ok?B(null):B(e.error||"Import failed")},r.readAsText(s),e.target.value=""},className:"jsx-ef3362fdbd774571 hidden"}),(0,r.jsx)("button",{onClick:async()=>{let e=await b("New Project","Enter project name:");(null==e?void 0:e.trim())&&t(e.trim())},style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)",borderRadius:"var(--radius-pill)"},className:"jsx-ef3362fdbd774571 px-4 py-2 text-sm font-medium rounded-md transition-opacity hover:opacity-80",children:"+ New Project"})]})]}),P&&(0,r.jsxs)("div",{style:{backgroundColor:"var(--status-fail-bg)",color:"var(--status-fail-text)"},className:"jsx-ef3362fdbd774571 mb-4 text-xs px-3 py-2 rounded-lg flex items-center justify-between",children:[(0,r.jsxs)("span",{className:"jsx-ef3362fdbd774571",children:["Import failed: ",P]}),(0,r.jsx)("button",{onClick:()=>B(null),className:"jsx-ef3362fdbd774571 ml-2 font-bold",children:"\\u00d7"})]}),(0,r.jsx)("div",{className:"jsx-ef3362fdbd774571 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-5",children:y.map(e=>{let t=Object.values(e.testCases).flat(),s=t.length,o=t.filter(e=>"pass"===e.status).length,n=t.filter(e=>"fail"===e.status).length,l=t.filter(e=>"skip"===e.status).length,d=t.filter(e=>"untested"===e.status).length,f=s-l,u=f>0?Math.round(o/f*100):0,x=w===e.id;return(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},className:"jsx-ef3362fdbd774571 group relative flex flex-col rounded-xl border overflow-hidden transition-all duration-200 hover:shadow-lg hover:border-[var(--border-hover)]",children:[(0,r.jsxs)("div",{style:{background:"linear-gradient(135deg, #F7F5F1 0%, #EDEAE3 100%)"},className:"jsx-ef3362fdbd774571 relative h-24 overflow-hidden",children:[(0,r.jsx)(p.b,{width:28,height:28,x:-1,y:-1,strokeDasharray:"4 2",className:"text-neutral-400/20"}),(0,r.jsx)("div",{className:"jsx-ef3362fdbd774571 absolute inset-0 flex items-center justify-center pointer-events-none",children:(0,r.jsx)("img",{src:"https://static.vecteezy.com/system/resources/thumbnails/067/162/149/small/cute-duck-meme-sticker-transparent-cute-illustration-free-png.png",alt:"",style:{opacity:.08},className:"jsx-ef3362fdbd774571 h-[70%] object-contain select-none"})}),(0,r.jsx)("div",{style:{background:u>=80?"var(--status-pass-text)":u>=50?"var(--status-skip-text)":s>0?"var(--status-fail-text)":"var(--border)"},className:"jsx-ef3362fdbd774571 absolute bottom-0 left-0 right-0 h-1"}),(0,r.jsx)("div",{style:{backgroundColor:k(e.id).bg},className:"jsx-ef3362fdbd774571 absolute top-4 left-4 w-10 h-10 rounded-lg flex items-center justify-center",children:k(e.id).icon})]}),(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 flex-1 p-4 flex flex-col gap-3",children:[x?(0,r.jsx)("input",{autoFocus:!0,value:N,onChange:e=>A(e.target.value),onBlur:_,onKeyDown:e=>{"Enter"===e.key&&_(),"Escape"===e.key&&C(null)},style:{borderColor:"var(--accent)",color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 text-sm font-semibold bg-transparent outline-none border-b px-0 py-0.5"}):(0,r.jsx)("h3",{style:{color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 text-sm font-semibold truncate",children:e.name}),(0,r.jsxs)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 flex items-center gap-3 text-xs",children:[(0,r.jsxs)("span",{className:"jsx-ef3362fdbd774571 flex items-center gap-1",children:[(0,r.jsx)(j,{value:e.flows.length,className:"text-xs font-medium",style:{color:"var(--text-primary)"}}),(0,r.jsx)("span",{className:"jsx-ef3362fdbd774571",children:"nodes"})]}),(0,r.jsx)("span",{style:{backgroundColor:"var(--border)"},className:"jsx-ef3362fdbd774571 w-px h-3"}),(0,r.jsxs)("span",{className:"jsx-ef3362fdbd774571 flex items-center gap-1",children:[(0,r.jsx)(j,{value:s,className:"text-xs font-medium",style:{color:"var(--text-primary)"}}),(0,r.jsx)("span",{className:"jsx-ef3362fdbd774571",children:"cases"})]})]}),s>0&&(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 space-y-1",children:[(0,r.jsxs)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 flex items-center justify-between text-[10px]",children:[(0,r.jsx)("span",{className:"jsx-ef3362fdbd774571",children:"Pass rate"}),(0,r.jsxs)("span",{style:{color:u>=80?"var(--status-pass-text)":u>=50?"var(--status-skip-text)":"var(--status-fail-text)",fontWeight:600},className:"jsx-ef3362fdbd774571",children:[u,"%"]})]}),(0,r.jsx)("div",{style:{backgroundColor:"var(--bg-secondary)"},className:"jsx-ef3362fdbd774571 h-1.5 w-full rounded-full overflow-hidden",children:(0,r.jsx)("div",{style:{width:"".concat(u,"%"),backgroundColor:u>=80?"var(--status-pass-text)":u>=50?"var(--status-skip-text)":"var(--status-fail-text)"},className:"jsx-ef3362fdbd774571 h-full rounded-full transition-all duration-500"})}),(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 flex gap-1 mt-1",children:[o>0&&(0,r.jsxs)("span",{style:{backgroundColor:"var(--status-pass-bg)",color:"var(--status-pass-text)"},className:"jsx-ef3362fdbd774571 text-[9px] px-1.5 py-0.5 rounded-full",children:[o," pass"]}),n>0&&(0,r.jsxs)("span",{style:{backgroundColor:"var(--status-fail-bg)",color:"var(--status-fail-text)"},className:"jsx-ef3362fdbd774571 text-[9px] px-1.5 py-0.5 rounded-full",children:[n," fail"]}),l>0&&(0,r.jsxs)("span",{style:{backgroundColor:"var(--status-skip-bg)",color:"var(--status-skip-text)"},className:"jsx-ef3362fdbd774571 text-[9px] px-1.5 py-0.5 rounded-full",children:[l," skip"]}),d>0&&(0,r.jsxs)("span",{style:{backgroundColor:"var(--status-untested-bg)",color:"var(--status-untested-text)"},className:"jsx-ef3362fdbd774571 text-[9px] px-1.5 py-0.5 rounded-full",children:[d," todo"]})]})]}),(0,r.jsxs)("div",{style:{color:"var(--text-tertiary)",borderColor:"var(--border)"},className:"jsx-ef3362fdbd774571 text-[10px] mt-auto pt-2 border-t",children:["Created ",new Date(e.createdAt).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]})]}),(0,r.jsx)("div",{className:"jsx-ef3362fdbd774571 absolute top-3 right-3 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity duration-150 z-10",children:(0,r.jsx)("button",{onClick:t=>{t.preventDefault(),t.stopPropagation(),L(E===e.id?null:e.id)},style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)",color:"var(--text-secondary)"},className:"jsx-ef3362fdbd774571 w-7 h-7 flex items-center justify-center rounded-md border text-xs transition-colors hover:bg-[var(--bg-secondary)]",children:(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"jsx-ef3362fdbd774571",children:[(0,r.jsx)("circle",{cx:"6",cy:"2.5",r:"1",fill:"currentColor",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("circle",{cx:"6",cy:"6",r:"1",fill:"currentColor",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("circle",{cx:"6",cy:"9.5",r:"1",fill:"currentColor",className:"jsx-ef3362fdbd774571"})]})})}),E===e.id&&(0,r.jsxs)("div",{ref:I,style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)"},className:"jsx-ef3362fdbd774571 absolute top-11 right-3 z-30 py-1 min-w-[140px] border rounded-lg",children:[(0,r.jsxs)(i(),{href:"/projects/".concat(e.id),className:"flex items-center gap-2 px-3 py-1.5 text-xs hover:bg-[var(--bg-secondary)]",style:{color:"var(--text-primary)"},onClick:()=>L(null),children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"jsx-ef3362fdbd774571",children:(0,r.jsx)("path",{d:"M2 6h8M7 3l3 3-3 3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-ef3362fdbd774571"})}),"Open"]}),(0,r.jsxs)("button",{onClick:t=>{var s,r;t.stopPropagation(),s=e.id,r=e.name,C(s),A(r),L(null)},style:{color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 w-full flex items-center gap-2 px-3 py-1.5 text-xs hover:bg-[var(--bg-secondary)]",children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"jsx-ef3362fdbd774571",children:(0,r.jsx)("path",{d:"M8.5 1.5l2 2-7 7H1.5v-2l7-7z",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-ef3362fdbd774571"})}),"Rename"]}),(0,r.jsxs)("button",{onClick:t=>{t.stopPropagation(),a(e.id),L(null)},style:{color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 w-full flex items-center gap-2 px-3 py-1.5 text-xs hover:bg-[var(--bg-secondary)]",children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"jsx-ef3362fdbd774571",children:[(0,r.jsx)("rect",{x:"3.5",y:"3.5",width:"6",height:"6",rx:"1",stroke:"currentColor",strokeWidth:"1.2",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("path",{d:"M8.5 3.5V2.5a1 1 0 00-1-1h-5a1 1 0 00-1 1v5a1 1 0 001 1h1",stroke:"currentColor",strokeWidth:"1.2",className:"jsx-ef3362fdbd774571"})]}),"Duplicate"]}),(0,r.jsxs)("button",{onClick:t=>{t.stopPropagation(),(0,c.Vj)(e),L(null)},style:{color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 w-full flex items-center gap-2 px-3 py-1.5 text-xs hover:bg-[var(--bg-secondary)]",children:[(0,r.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"jsx-ef3362fdbd774571",children:[(0,r.jsx)("path",{d:"M10 7v3a1 1 0 01-1 1H3a1 1 0 01-1-1V7",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("polyline",{points:"4 5 6 7 8 5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("line",{x1:"6",y1:"1",x2:"6",y2:"7",stroke:"currentColor",strokeWidth:"1.2",className:"jsx-ef3362fdbd774571"})]}),"Export JSON"]}),(0,r.jsx)("div",{style:{borderColor:"var(--border)"},className:"jsx-ef3362fdbd774571 border-t my-1"}),(0,r.jsxs)("button",{onClick:t=>{t.stopPropagation(),U(e.id,e.name)},style:{color:"var(--status-fail-text)"},className:"jsx-ef3362fdbd774571 w-full flex items-center gap-2 px-3 py-1.5 text-xs hover:bg-[var(--bg-secondary)]",children:[(0,r.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:"jsx-ef3362fdbd774571",children:(0,r.jsx)("path",{d:"M1.5 3h9M4.5 3V1.5h3V3M3 3v7.5h6V3",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-ef3362fdbd774571"})}),"Delete"]})]}),(0,r.jsx)(i(),{href:"/projects/".concat(e.id),className:"absolute inset-0 z-0",onClick:()=>L(null)})]},e.id)})}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-ef3362fdbd774571 relative mt-8 pt-6 border-t",children:[(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 flex items-center gap-4 mb-4",children:[(0,r.jsx)("div",{style:{border:"1px solid var(--border)"},className:"jsx-ef3362fdbd774571 w-10 h-10 rounded-lg overflow-hidden flex-shrink-0",children:h.avatarUrl?(0,r.jsx)("img",{src:h.avatarUrl,alt:"Avatar",className:"jsx-ef3362fdbd774571 w-full h-full object-cover"}):(0,r.jsx)("div",{style:{backgroundColor:h.bannerColor,color:"#fff"},className:"jsx-ef3362fdbd774571 w-full h-full flex items-center justify-center text-sm font-bold",children:m})}),(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571",children:[(0,r.jsx)("div",{style:{color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 text-sm font-medium",children:h.name||"Anonymous Tester"}),(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 text-[10px]",children:h.role||"No role set"})]})]}),(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 grid grid-cols-2 sm:grid-cols-4 gap-3",children:[(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},className:"jsx-ef3362fdbd774571 p-3 rounded-lg border",children:[(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 text-[10px] uppercase tracking-wider mb-1",children:"Projects"}),(0,r.jsx)(j,{value:y.length,className:"text-lg font-semibold",style:{color:"var(--accent)"}})]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},className:"jsx-ef3362fdbd774571 p-3 rounded-lg border",children:[(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 text-[10px] uppercase tracking-wider mb-1",children:"Test Cases"}),(0,r.jsx)(j,{value:W.totalCases,className:"text-lg font-semibold",style:{color:"var(--status-pass-text)"}})]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},className:"jsx-ef3362fdbd774571 p-3 rounded-lg border",children:[(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 text-[10px] uppercase tracking-wider mb-1",children:"Flow Nodes"}),(0,r.jsx)(j,{value:W.totalNodes,className:"text-lg font-semibold",style:{color:"#9E7AFF"}})]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},className:"jsx-ef3362fdbd774571 p-3 rounded-lg border",children:[(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 text-[10px] uppercase tracking-wider mb-1",children:"Pass Rate"}),(0,r.jsxs)("div",{className:"jsx-ef3362fdbd774571 flex items-baseline gap-0.5",children:[(0,r.jsx)(j,{value:W.overallPassRate,className:"text-lg font-semibold",style:{color:W.overallPassRate>=80?"var(--status-pass-text)":"var(--status-skip-text)"}}),(0,r.jsx)("span",{style:{color:W.overallPassRate>=80?"var(--status-pass-text)":"var(--status-skip-text)"},className:"jsx-ef3362fdbd774571 text-sm font-medium",children:"%"})]})]})]})]})]}),M&&(0,r.jsx)("div",{style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>D(!1),className:"jsx-ef3362fdbd774571 fixed inset-0 z-[400] flex items-center justify-center",children:(0,r.jsxs)("div",{style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:e=>e.stopPropagation(),className:"jsx-ef3362fdbd774571 w-full max-w-lg mx-4 rounded-xl border overflow-hidden",children:[(0,r.jsxs)("div",{style:{background:"linear-gradient(180deg, #FFF8E1 0%, var(--bg-card) 100%)"},className:"jsx-ef3362fdbd774571 px-6 pt-6 pb-5 flex flex-col items-center text-center",children:[(0,r.jsx)("div",{className:"jsx-ef3362fdbd774571 w-20 h-20 mb-4 flex items-center justify-center",children:(0,r.jsxs)("svg",{width:"60",height:"60",viewBox:"0 0 48 48",fill:"none",className:"jsx-ef3362fdbd774571",children:[(0,r.jsx)("path",{d:"M8 16h24v20a8 8 0 01-8 8H16a8 8 0 01-8-8V16z",fill:"#6F4E37",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("path",{d:"M32 20h4a4 4 0 010 8h-4",stroke:"#6F4E37",strokeWidth:"2.5",strokeLinecap:"round",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("path",{d:"M14 12c0-2 2-4 4-4s4 2 4 4",stroke:"#BCAAA4",strokeWidth:"2",strokeLinecap:"round",opacity:"0.6",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("path",{d:"M20 10c0-2 2-4 4-4s4 2 4 4",stroke:"#BCAAA4",strokeWidth:"2",strokeLinecap:"round",opacity:"0.4",className:"jsx-ef3362fdbd774571"}),(0,r.jsx)("rect",{x:"6",y:"38",width:"28",height:"4",rx:"2",fill:"#D7CCC8",className:"jsx-ef3362fdbd774571"})]})}),(0,r.jsx)("h3",{style:{color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 text-base font-semibold mb-2",children:"Please, Buy me a Coffee.."}),(0,r.jsx)("p",{style:{color:"var(--text-secondary)"},className:"jsx-ef3362fdbd774571 text-sm leading-relaxed",children:"If Test Lah! has been helpful, consider buying Qois a coffee. Any size will do. He's very tired."})]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-ef3362fdbd774571 px-6 py-4 border-t",children:[(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 text-[10px] font-semibold uppercase tracking-wider mb-2",children:"Pickup Location"}),(0,r.jsx)("p",{style:{color:"var(--text-primary)"},className:"jsx-ef3362fdbd774571 text-sm font-medium mb-1",children:"Toko Kopi TUKU — BSD"}),(0,r.jsx)("p",{style:{color:"var(--text-secondary)"},className:"jsx-ef3362fdbd774571 text-xs leading-relaxed",children:"Ruko Sektor 1.3, Blok RB No. 1, Jl. Griya Loka Raya No.1, Serpong, Tangerang Selatan"})]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-ef3362fdbd774571 px-6 py-4 border-t flex gap-2",children:[(0,r.jsxs)("div",{onMouseEnter:()=>S(!0),onMouseLeave:()=>S(!1),className:"jsx-ef3362fdbd774571 flex-1 relative",children:[(0,r.jsx)("button",{onClick:()=>D(!1),style:{borderColor:"var(--border)",color:"var(--text-secondary)"},className:"jsx-ef3362fdbd774571 w-full px-3 py-2.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",children:"Maybe Later"}),F&&(0,r.jsx)("div",{style:{width:240,backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},className:"jsx-ef3362fdbd774571 absolute bottom-full left-1/2 -translate-x-1/2 mb-2 z-[410] rounded-xl border overflow-hidden",children:(0,r.jsx)("img",{src:"https://i.pinimg.com/564x/82/74/4d/82744d1c73b0296c5f32e6f669ac05e6.jpg",alt:"Maybe next time?",width:240,style:{borderRadius:11},className:"jsx-ef3362fdbd774571 w-full h-auto block"})})]}),(0,r.jsx)("a",{href:"https://maps.google.com/?q=Toko+Kopi+TUKU+BSD",target:"_blank",rel:"noopener noreferrer",style:{backgroundColor:"#6F4E37",color:"#fff"},className:"jsx-ef3362fdbd774571 flex-1 px-3 py-2.5 text-xs font-medium rounded-lg text-center transition-opacity hover:opacity-80",children:"Open in Maps"})]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"#FAFAF8"},className:"jsx-ef3362fdbd774571 px-6 py-4 border-t",children:[(0,r.jsx)("p",{style:{color:"var(--text-secondary)",direction:"rtl"},className:"jsx-ef3362fdbd774571 text-xs text-center leading-relaxed mb-3",children:"اِنَّ الْمُصَّدِّقِيْنَ وَالْمُصَّدِّقٰتِ وَاَقْرَضُوا اللّٰهَ قَرْضًا حَسَنًا يُّضٰعَفُ لَهُمْ وَلَهُمْ اَجْرٌ كَرِيْمٌ ١٨"}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-ef3362fdbd774571 text-[10px] text-center leading-relaxed",children:"“Sesungguhnya orang-orang yang bersedekah baik laki-laki maupun perempuan dan meminjamkan kepada Allah dengan pinjaman yang baik, akan dilipatgandakan (balasannya) bagi mereka; dan mereka akan mendapat pahala yang mulia.” (QS Al Hadid: 18)"})]})]})}),(0,r.jsx)(o(),{id:"ef3362fdbd774571",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeInUp{from{opacity:0;transform:translatey(16px)}to{opacity:1;transform:translatey(0)}}@keyframes fadeInRight{from{opacity:0;transform:translatey(-50%)translatex(16px)}to{opacity:1;transform:translatey(-50%)translatex(0)}}@keyframes glowPulse{0%,100%{box-shadow:0 0 12px rgba(111,78,55,.3),0 0 24px rgba(111,78,55,.15)}50%{box-shadow:0 0 20px rgba(111,78,55,.5),0 0 40px rgba(111,78,55,.25)}}"})]})}},7952:(e,t,s)=>{"use strict";s.d(t,{z:()=>f});var r=s(3182),a=s(9752),o=s(3934);function n(e){return"number"==typeof e?e:parseFloat(e)}var l=s(2115),i=s(3127),d=s(3350),c=s(9770);function f(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{isStatic:s}=(0,l.useContext)(i.Q),f=()=>(0,r.S)(e)?e.get():e;if(s)return(0,c.G)(f);let u=(0,d.d)(f());return(0,l.useInsertionEffect)(()=>(function(e,t,s={}){let l,i=e.get(),d=null,c=i,f="string"==typeof i?i.replace(/[\d.-]/g,""):void 0,u=()=>{d&&(d.stop(),d=null),e.animation=void 0},x=()=>{(()=>{let t=n(e.get()),r=n(c);if(t===r)return u();let o=d?d.getGeneratorVelocity():e.getVelocity();u(),d=new a.s({keyframes:[t,r],velocity:o,type:"spring",restDelta:.001,restSpeed:.01,...s,onUpdate:l})})(),e.animation=d??void 0,e.events.animationStart?.notify(),d?.then(()=>{e.animation=void 0,e.events.animationComplete?.notify()})};if(e.attach((e,t)=>{c=e,l=e=>{var s,r;return t((s=e,(r=f)?s+r:s))},o.Gt.postRender(x)},u),(0,r.S)(t)){let r=!0===s.skipInitialAnimation,a=t.on("change",t=>{var s,a,o,n;r?(r=!1,e.jump((s=t,(a=f)?s+a:s),!1)):e.set((o=t,(n=f)?o+n:o))}),o=e.on("destroy",a);return()=>{a(),o()}}return u})(u,e,t),[u,JSON.stringify(t)]),u}(e,{type:"spring",...t})}},9534:(e,t,s)=>{"use strict";s.d(t,{nU:()=>g});var r=s(8566);let a="mock-dashboard-project",o="node-login",n="node-dashboard",l="node-settings",i="mock-cakra-project",d="cakra-overview",c="cakra-datasource",f="cakra-reports",u=[{id:o,code:"N-001",label:"Login Page",parentId:null,children:[n],shape:"rounded",notes:"User authentication flow",position:{x:250,y:100}},{id:n,code:"N-002",label:"Dashboard",parentId:o,children:[l],shape:"rounded",notes:"Main dashboard view after login",position:{x:250,y:250}},{id:l,code:"N-003",label:"Settings",parentId:n,children:[],shape:"rounded",notes:"User settings and preferences",position:{x:250,y:400}}],x=[{id:"edge-1",fromId:o,toId:n,type:"pass"},{id:"edge-2",fromId:n,toId:l,type:"pass"}],p={[o]:[{id:"tc-001",code:"TC-001",title:"Valid login with correct credentials",steps:'1. Open login page\n2. Enter valid username\n3. Enter valid password\n4. Click "Login" button',expected:"User is redirected to Dashboard page. Welcome message displays username.",status:"pass",case_type:"General",notes:'Tested with user "Ayu"',links:"",order:0},{id:"tc-002",code:"TC-002",title:"Invalid login with wrong credentials",steps:'1. Open login page\n2. Enter invalid username\n3. Enter any password\n4. Click "Login" button',expected:'Error popup appears: "Maaf, nama kamu tidak terdaftar". User stays on login page.',status:"pass",case_type:"Negative",notes:"DenialModal should appear",links:"",order:1},{id:"tc-003",code:"TC-003",title:"Login page UI elements visibility",steps:"1. Open login page\n2. Check logo image\n3. Check title text\n4. Check input field\n5. Check button",expected:'Logo displays duck image. Title shows "QA Management Tools". Input has placeholder. Button shows "Masuk ke Dashboard".',status:"untested",case_type:"General",notes:"Visual regression check",links:"",order:2}],[n]:[{id:"tc-004",code:"TC-004",title:"Dashboard loads project list",steps:"1. Login successfully\n2. Wait for dashboard to load\n3. Check project dropdown",expected:"Project list displays all created projects. Header shows QA Dashboard logo.",status:"pass",case_type:"Positive",notes:"",links:"",order:0},{id:"tc-005",code:"TC-005",title:"Create new project",steps:'1. Click project dropdown\n2. Click "New Project"\n3. Enter project name\n4. Confirm',expected:'New project appears in dropdown. Progress bar shows "Project created!"',status:"fail",case_type:"Positive",notes:"Bug: progress bar not showing on some browsers",links:"",order:1}],[l]:[{id:"tc-006",code:"TC-006",title:"Access settings page",steps:"1. Login\n2. Navigate to /profile\n3. Check profile form",expected:"Profile page loads with name, avatar color, and role fields.",status:"skip",case_type:"General",notes:"Settings page not implemented yet",links:"",order:0}]},h=[{id:d,code:"CK-001",label:"Overview Dashboard",parentId:null,children:[c,f],shape:"rounded",notes:"Main dashboard with data summary cards and charts",position:{x:250,y:100}},{id:c,code:"CK-002",label:"Data Sources",parentId:d,children:[],shape:"rounded",notes:"Connect and manage mobile data sources",position:{x:100,y:280}},{id:f,code:"CK-003",label:"Reports",parentId:d,children:[],shape:"rounded",notes:"Generate and export aggregated reports",position:{x:400,y:280}}],m=[{id:"cakra-edge-1",fromId:d,toId:c,type:"pass"},{id:"cakra-edge-2",fromId:d,toId:f,type:"pass"}],b={[d]:[{id:"ck-tc-001",code:"CK-TC-001",title:"Dashboard loads summary cards",steps:"1. Login to Revamp Cakra\n2. Wait for overview to load\n3. Check summary cards",expected:"Summary cards display total data sources, active connections, and last sync time.",status:"pass",case_type:"Positive",notes:"",links:"",order:0},{id:"ck-tc-002",code:"CK-TC-002",title:"Data refresh button works",steps:"1. Click refresh button on overview\n2. Wait for loading indicator\n3. Verify data updates",expected:"Loading spinner appears. Data refreshes with latest values from connected sources.",status:"untested",case_type:"Positive",notes:"",links:"",order:1}],[c]:[{id:"ck-tc-003",code:"CK-TC-003",title:"Add new data source",steps:'1. Navigate to Data Sources\n2. Click "Add Source"\n3. Enter API endpoint\n4. Enter auth token\n5. Click Connect',expected:'New data source appears in the list with status "Connected". Test connection succeeds.',status:"pass",case_type:"Positive",notes:"",links:"",order:0},{id:"ck-tc-004",code:"CK-TC-004",title:"Remove data source",steps:"1. Navigate to Data Sources\n2. Click delete on a source\n3. Confirm deletion",expected:"Data source is removed from list. Associated data is archived.",status:"fail",case_type:"Negative",notes:"Bug: confirmation dialog missing, deletes immediately",links:"",order:1}],[f]:[{id:"ck-tc-005",code:"CK-TC-005",title:"Generate PDF report",steps:'1. Navigate to Reports\n2. Select date range\n3. Click "Generate PDF"\n4. Wait for generation',expected:"PDF file downloads with aggregated data, charts, and summary table.",status:"untested",case_type:"General",notes:"",links:"",order:0}]};function g(){let e="qa-dashboard";try{let t=localStorage.getItem(e),s=t?JSON.parse(t):{projects:{},activeProjectId:null,selectedNodeId:null},g=!1;s.projects[a]||(s.projects[a]={id:a,name:"Simple Dashboard QA",createdAt:new Date().toISOString(),flows:u,testCases:p,columnConfig:[...r._X],columnConfigs:{},edges:x,userProfile:{name:"Ayu",bannerColor:"#81C784",role:"QA Engineer"},nodeCounter:3,tcCounter:{[o]:3,[n]:2,[l]:1}},s.activeProjectId=a,g=!0),s.projects[i]||(s.projects[i]={id:i,name:"Revamp Cakra",createdAt:new Date(Date.now()-864e5).toISOString(),flows:h,testCases:b,columnConfig:[...r._X],columnConfigs:{},edges:m,userProfile:{name:"Ayu",bannerColor:"#64B5F6",role:"QA Lead"},nodeCounter:3,tcCounter:{[d]:2,[c]:2,[f]:1}},g=!0),g&&localStorage.setItem(e,JSON.stringify(s))}catch(e){}}},9770:(e,t,s)=>{"use strict";s.d(t,{G:()=>function e(t,s,o,n){if("function"==typeof t){d.bt.current=[],t();let e=i(d.bt.current,t);return d.bt.current=void 0,e}if(void 0!==o&&!Array.isArray(o)&&"function"!=typeof s){var l=t,f=s,u=o,x=n;let r=(0,a.M)(()=>Object.keys(u)),i=(0,a.M)(()=>({}));for(let t of r)i[t]=e(l,f,u[t],x);return i}let p="function"==typeof s?s:function(...e){let t=!Array.isArray(e[0]),s=t?0:-1,a=e[0+s],o=e[1+s],n=e[2+s],l=e[3+s],i=(0,r.G)(o,n,l);return t?i(a):i}(s,o,n),h=Array.isArray(t)?c(t,p):c([t],e=>{let[t]=e;return p(t)}),m=Array.isArray(t)?void 0:t.accelerate;return m&&!m.isTransformed&&"function"!=typeof s&&Array.isArray(o)&&(null==n?void 0:n.clamp)!==!1&&(h.accelerate={...m,times:s,keyframes:o,isTransformed:!0,...(null==n?void 0:n.ease)?{ease:n.ease}:{}}),h}});var r=s(6706),a=s(4416),o=s(3934),n=s(6436),l=s(3350);function i(e,t){let s=(0,l.d)(t()),r=()=>s.set(t());return r(),(0,n.E)(()=>{let t=()=>o.Gt.preRender(r,!1,!0),s=e.map(e=>e.on("change",t));return()=>{s.forEach(e=>e()),(0,o.WG)(r)}}),s}var d=s(2039);function c(e,t){let s=(0,a.M)(()=>[]);return i(e,()=>{s.length=0;let r=e.length;for(let t=0;t<r;t++)s[t]=e[t].get();return t(s)})}}},e=>{e.O(0,[343,909,485,619,246,441,255,358],()=>e(e.s=2053)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{63:(e,t,s)=>{"use strict";var a=s(7260);s.o(a,"useParams")&&s.d(t,{useParams:function(){return a.useParams}}),s.o(a,"usePathname")&&s.d(t,{usePathname:function(){return a.usePathname}}),s.o(a,"useRouter")&&s.d(t,{useRouter:function(){return a.useRouter}})},854:(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var a=s(2115);let o="qa-auth";function n(e){try{sessionStorage.setItem(o,JSON.stringify(e))}catch(e){}}function r(){let[e,t]=(0,a.useState)({name:"",isLoggedIn:!1}),[s,r]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t(function(){try{let e=sessionStorage.getItem(o);if(!e)return{name:"",isLoggedIn:!1};return JSON.parse(e)}catch(e){return{name:"",isLoggedIn:!1}}}()),r(!0)},[]);let i=(0,a.useCallback)(e=>{let s={name:e,isLoggedIn:!0};n(s),t(s)},[]),d=(0,a.useCallback)(()=>{let e={name:"",isLoggedIn:!1};n(e),t(e)},[]);return{...e,loaded:s,login:i,logout:d}}},4328:(e,t,s)=>{Promise.resolve().then(s.bind(s,9547))},8566:(e,t,s)=>{"use strict";s.d(t,{D_:()=>o,IU:()=>r,T7:()=>n,_X:()=>a});let a=[{key:"code",label:"ID",visible:!0},{key:"title",label:"Test Case",visible:!0},{key:"steps",label:"Steps",visible:!0},{key:"expected",label:"Expected Result",visible:!0},{key:"status",label:"Status",visible:!0},{key:"case_type",label:"Case Type",visible:!1},{key:"notes",label:"Notes",visible:!0},{key:"links",label:"Links",visible:!1}],o=["General","Positive","Negative"],n=["#E57373","#F06292","#BA68C8","#9575CD","#7986CB","#64B5F6","#4FC3F7","#4DD0E1","#4DB6AC","#81C784","#AED581","#FFD54F","#FFB74D","#FF8A65","#A1887F","#90A4AE"];function r(e,t,s,a){return{id:e,code:t,label:s,parentId:a,children:[],shape:"rounded",notes:"",position:null}}},9534:(e,t,s)=>{"use strict";s.d(t,{nU:()=>f});var a=s(8566);let o="mock-dashboard-project",n="node-login",r="node-dashboard",i="node-settings",d="mock-cakra-project",c="cakra-overview",l="cakra-datasource",p="cakra-reports",u=[{id:n,code:"N-001",label:"Login Page",parentId:null,children:[r],shape:"rounded",notes:"User authentication flow",position:{x:250,y:100}},{id:r,code:"N-002",label:"Dashboard",parentId:n,children:[i],shape:"rounded",notes:"Main dashboard view after login",position:{x:250,y:250}},{id:i,code:"N-003",label:"Settings",parentId:r,children:[],shape:"rounded",notes:"User settings and preferences",position:{x:250,y:400}}],g=[{id:"edge-1",fromId:n,toId:r,type:"pass"},{id:"edge-2",fromId:r,toId:i,type:"pass"}],m={[n]:[{id:"tc-001",code:"TC-001",title:"Valid login with correct credentials",steps:'1. Open login page\n2. Enter valid username\n3. Enter valid password\n4. Click "Login" button',expected:"User is redirected to Dashboard page. Welcome message displays username.",status:"pass",case_type:"General",notes:'Tested with user "Ayu"',links:"",order:0},{id:"tc-002",code:"TC-002",title:"Invalid login with wrong credentials",steps:'1. Open login page\n2. Enter invalid username\n3. Enter any password\n4. Click "Login" button',expected:'Error popup appears: "Maaf, nama kamu tidak terdaftar". User stays on login page.',status:"pass",case_type:"Negative",notes:"DenialModal should appear",links:"",order:1},{id:"tc-003",code:"TC-003",title:"Login page UI elements visibility",steps:"1. Open login page\n2. Check logo image\n3. Check title text\n4. Check input field\n5. Check button",expected:'Logo displays duck image. Title shows "QA Management Tools". Input has placeholder. Button shows "Masuk ke Dashboard".',status:"untested",case_type:"General",notes:"Visual regression check",links:"",order:2}],[r]:[{id:"tc-004",code:"TC-004",title:"Dashboard loads project list",steps:"1. Login successfully\n2. Wait for dashboard to load\n3. Check project dropdown",expected:"Project list displays all created projects. Header shows QA Dashboard logo.",status:"pass",case_type:"Positive",notes:"",links:"",order:0},{id:"tc-005",code:"TC-005",title:"Create new project",steps:'1. Click project dropdown\n2. Click "New Project"\n3. Enter project name\n4. Confirm',expected:'New project appears in dropdown. Progress bar shows "Project created!"',status:"fail",case_type:"Positive",notes:"Bug: progress bar not showing on some browsers",links:"",order:1}],[i]:[{id:"tc-006",code:"TC-006",title:"Access settings page",steps:"1. Login\n2. Navigate to /profile\n3. Check profile form",expected:"Profile page loads with name, avatar color, and role fields.",status:"skip",case_type:"General",notes:"Settings page not implemented yet",links:"",order:0}]},h=[{id:c,code:"CK-001",label:"Overview Dashboard",parentId:null,children:[l,p],shape:"rounded",notes:"Main dashboard with data summary cards and charts",position:{x:250,y:100}},{id:l,code:"CK-002",label:"Data Sources",parentId:c,children:[],shape:"rounded",notes:"Connect and manage mobile data sources",position:{x:100,y:280}},{id:p,code:"CK-003",label:"Reports",parentId:c,children:[],shape:"rounded",notes:"Generate and export aggregated reports",position:{x:400,y:280}}],C=[{id:"cakra-edge-1",fromId:c,toId:l,type:"pass"},{id:"cakra-edge-2",fromId:c,toId:p,type:"pass"}],k={[c]:[{id:"ck-tc-001",code:"CK-TC-001",title:"Dashboard loads summary cards",steps:"1. Login to Revamp Cakra\n2. Wait for overview to load\n3. Check summary cards",expected:"Summary cards display total data sources, active connections, and last sync time.",status:"pass",case_type:"Positive",notes:"",links:"",order:0},{id:"ck-tc-002",code:"CK-TC-002",title:"Data refresh button works",steps:"1. Click refresh button on overview\n2. Wait for loading indicator\n3. Verify data updates",expected:"Loading spinner appears. Data refreshes with latest values from connected sources.",status:"untested",case_type:"Positive",notes:"",links:"",order:1}],[l]:[{id:"ck-tc-003",code:"CK-TC-003",title:"Add new data source",steps:'1. Navigate to Data Sources\n2. Click "Add Source"\n3. Enter API endpoint\n4. Enter auth token\n5. Click Connect',expected:'New data source appears in the list with status "Connected". Test connection succeeds.',status:"pass",case_type:"Positive",notes:"",links:"",order:0},{id:"ck-tc-004",code:"CK-TC-004",title:"Remove data source",steps:"1. Navigate to Data Sources\n2. Click delete on a source\n3. Confirm deletion",expected:"Data source is removed from list. Associated data is archived.",status:"fail",case_type:"Negative",notes:"Bug: confirmation dialog missing, deletes immediately",links:"",order:1}],[p]:[{id:"ck-tc-005",code:"CK-TC-005",title:"Generate PDF report",steps:'1. Navigate to Reports\n2. Select date range\n3. Click "Generate PDF"\n4. Wait for generation',expected:"PDF file downloads with aggregated data, charts, and summary table.",status:"untested",case_type:"General",notes:"",links:"",order:0}]};function f(){let e="qa-dashboard";try{let t=localStorage.getItem(e),s=t?JSON.parse(t):{projects:{},activeProjectId:null,selectedNodeId:null},f=!1;s.projects[o]||(s.projects[o]={id:o,name:"Simple Dashboard QA",createdAt:new Date().toISOString(),flows:u,testCases:m,columnConfig:[...a._X],columnConfigs:{},edges:g,userProfile:{name:"Ayu",bannerColor:"#81C784",role:"QA Engineer"},nodeCounter:3,tcCounter:{[n]:3,[r]:2,[i]:1}},s.activeProjectId=o,f=!0),s.projects[d]||(s.projects[d]={id:d,name:"Revamp Cakra",createdAt:new Date(Date.now()-864e5).toISOString(),flows:h,testCases:k,columnConfig:[...a._X],columnConfigs:{},edges:C,userProfile:{name:"Ayu",bannerColor:"#64B5F6",role:"QA Lead"},nodeCounter:3,tcCounter:{[c]:2,[l]:2,[p]:1}},f=!0),f&&localStorage.setItem(e,JSON.stringify(s))}catch(e){}}},9547:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>d});var a=s(5155),o=s(2115),n=s(63),r=s(854),i=s(9534);function d(){let e=(0,n.useRouter)(),{isLoggedIn:t,loaded:s}=(0,r.A)();return(0,o.useEffect)(()=>{(0,i.nU)()},[]),(0,o.useEffect)(()=>{s&&e.replace(t?"/projects":"/login")},[s,t,e]),(0,a.jsx)("div",{className:"h-screen flex items-center justify-center",style:{backgroundColor:"var(--bg-primary)"},children:(0,a.jsx)("div",{className:"text-sm",style:{color:"var(--text-tertiary)"},children:"Loading..."})})}}},e=>{e.O(0,[441,255,358],()=>e(e.s=4328)),_N_E=e.O()}]);
@@ -1,3 +0,0 @@
1
- @font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_f367f3{font-family:Inter,Inter Fallback;font-style:normal}.__variable_f367f3{--font-inter:"Inter","Inter Fallback"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
2
- ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
3
- */*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background:40 20% 97%;--foreground:30 5% 12%;--card:0 0% 100%;--card-foreground:30 5% 12%;--popover:0 0% 100%;--popover-foreground:30 5% 12%;--primary:30 5% 12%;--primary-foreground:40 20% 97%;--secondary:40 15% 90%;--secondary-foreground:30 5% 12%;--muted:40 10% 93%;--muted-foreground:30 5% 48%;--accent:30 5% 12%;--accent-foreground:40 20% 97%;--destructive:0 72% 42%;--destructive-foreground:0 0% 98%;--border:30 10% 88%;--input:30 10% 88%;--ring:30 5% 12%;--radius:10px;--chart-1:12 76% 61%;--chart-2:173 58% 39%;--chart-3:197 37% 24%;--chart-4:43 74% 66%;--chart-5:27 87% 67%}.theme{--animate-marquee:marquee var(--duration) infinite linear;--animate-marquee-vertical:marquee-vertical var(--duration) linear infinite;--animate-shimmer-slide:shimmer-slide var(--speed) ease-in-out infinite alternate;--animate-spin-around:spin-around calc(var(--speed) * 2) infinite linear;--animate-gradient:gradient 8s linear infinite;--animate-rippling:rippling var(--duration) ease-out;--animate-ripple:ripple var(--duration,2s) ease calc(var(--i, 0)*.2s) infinite;--animate-shine:shine var(--duration) infinite linear}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{inset:-.25rem}.-inset-full{inset:-100%}.inset-0{inset:0}.inset-px{inset:1px}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-left-2{left:-.5rem}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.bottom-8{bottom:2rem}.bottom-full{bottom:100%}.left-0{left:0}.left-0\.5{left:.125rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-3{left:.75rem}.left-3\.5{left:.875rem}.left-4{left:1rem}.right-0{right:0}.right-0\.5{right:.125rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-1\/2{top:50%}.top-11{top:2.75rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-4{top:1rem}.top-full{top:100%}.isolate{isolation:isolate}.-z-20{z-index:-20}.-z-30{z-index:-30}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[300\]{z-index:300}.z-\[350\]{z-index:350}.z-\[400\]{z-index:400}.z-\[410\]{z-index:410}.z-\[500\]{z-index:500}.z-\[600\]{z-index:600}.z-\[60\]{z-index:60}.m-auto{margin:auto}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[1\]{aspect-ratio:1}.aspect-square{aspect-ratio:1/1}.size-2\.5{width:.625rem;height:.625rem}.size-full{width:100%;height:100%}.h-0{height:0}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[100cqh\]{height:100cqh}.h-\[58px\]{height:58px}.h-\[70\%\]{height:70%}.h-\[85\%\]{height:85%}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-0{max-height:0}.max-h-48{max-height:12rem}.max-h-\[150px\]{max-height:150px}.max-h-\[200px\]{max-height:200px}.max-h-\[240px\]{max-height:240px}.max-h-\[300px\]{max-height:300px}.max-h-\[30vh\]{max-height:30vh}.max-h-\[35vh\]{max-height:35vh}.max-h-\[40vh\]{max-height:40vh}.max-h-\[45vh\]{max-height:45vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[95vh\]{max-height:95vh}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.w-0{width:0}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[1px\]{width:1px}.w-\[280px\]{width:280px}.w-\[2px\]{width:2px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.w-screen{width:100vw}.min-w-0{min-width:0}.min-w-\[140px\]{min-width:140px}.min-w-\[16px\]{min-width:16px}.min-w-\[320px\]{min-width:320px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-5xl{max-width:64rem}.max-w-6xl{max-width:72rem}.max-w-\[120px\]{max-width:120px}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-\[280px\]{max-width:280px}.max-w-\[480px\]{max-width:480px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.translate-x-12{--tw-translate-x:3rem}.translate-x-12,.translate-y-\[calc\(-50\%-2px\)\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[calc\(-50\%-2px\)\]{--tw-translate-y:calc(-50% - 2px)}.rotate-0{--tw-rotate:0deg}.rotate-0,.rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate:45deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{user-select:none}.resize-none{resize:none}.resize{resize:both}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.rounded-t-full{border-top-left-radius:9999px;border-top-right-radius:9999px}.rounded-t-md{border-top-left-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-gray-400\/30{border-color:rgb(156 163 175/.3)}.border-transparent{border-color:transparent}.border-white\/10{border-color:rgb(255 255 255/.1)}.bg-background{background-color:hsl(var(--background))}.bg-border{background-color:hsl(var(--border))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-foreground\/25{background-color:hsl(var(--foreground)/.25)}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-primary{background-color:hsl(var(--primary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:rgb(255 255 255/.1)}.bg-white\/20{background-color:rgb(255 255 255/.2)}.bg-white\/30{background-color:rgb(255 255 255/.3)}.bg-clip-text{background-clip:text}.fill-foreground{fill:hsl(var(--foreground))}.fill-gray-300\/30{fill:rgb(209 213 219/.3)}.fill-gray-400\/30{fill:rgb(156 163 175/.3)}.fill-neutral-200\/20{fill:rgb(229 229 229/.2)}.fill-transparent{fill:transparent}.stroke-gray-400\/30{stroke:rgb(156 163 175/.3)}.stroke-2{stroke-width:2}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[2px\]{padding:2px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-1{padding-bottom:.25rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-10{padding-left:2.5rem}.pr-4{padding-right:1rem}.pt-1{padding-top:.25rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-7{padding-top:1.75rem}.pt-\[15vh\]{padding-top:15vh}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-bottom{vertical-align:bottom}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[40pt\]{font-size:40pt}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[100\%\]{line-height:100%}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-background{color:hsl(var(--background))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.text-inherit{color:inherit}.text-neutral-300\/60{color:rgb(212 212 212/.6)}.text-neutral-400\/20{color:rgb(163 163 163/.2)}.text-neutral-400\/80{color:rgb(163 163 163/.8)}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-transparent{color:transparent}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/60{color:rgb(255 255 255/.6)}.text-white\/70{color:rgb(255 255 255/.7)}.underline{text-decoration-line:underline}.placeholder-white\/50::placeholder{color:rgb(255 255 255/.5)}.accent-\[var\(--accent\)\]{accent-color:var(--accent)}.accent-current{accent-color:currentColor}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-15{opacity:.15}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-80{opacity:.8}.shadow-\[inset_0_-8px_10px_\#ffffff1f\]{--tw-shadow:inset 0 -8px 10px #ffffff1f;--tw-shadow-colored:inset 0 -8px 10px var(--tw-shadow-color)}.shadow-\[inset_0_-8px_10px_\#ffffff1f\],.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur:blur(8px)}.blur,.blur-\[2px\]{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[2px\]{--tw-blur:blur(2px)}.blur-xl{--tw-blur:blur(24px)}.blur-xl,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px rgb(0 0 0/0.1)) drop-shadow(0 1px 1px rgb(0 0 0/0.06))}.drop-shadow-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgb(0 0 0/0.05))}.drop-shadow-sm,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-md,.backdrop-blur-sm{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-\[background-position\]{will-change:background-position}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.duration-100{animation-duration:.1s}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.\[--duration\:40s\]{--duration:40s}.\[--gap\:1rem\]{--gap:1rem}.\[animation-direction\:reverse\]{animation-direction:reverse}.\[background\:conic-gradient\(from_calc\(270deg-\(var\(--spread\)\*0\.5\)\)\2c transparent_0\2c var\(--shimmer-color\)_var\(--spread\)\2c transparent_var\(--spread\)\)\]{background:conic-gradient(from calc(270deg - (var(--spread) * .5)),transparent 0,var(--shimmer-color) var(--spread),transparent var(--spread))}.\[background\:var\(--bg\)\]{background:var(--bg)}.\[border-radius\:var\(--radius\)\]{border-radius:var(--radius)}.\[mask\:none\]{mask:none}.\[translate\:0_0\]{translate:0 0}:root{--bg-primary:#F7F5F1;--bg-secondary:#EDEAE3;--bg-highlight:#F0EDD8;--bg-card:#FFFFFF;--text-primary:#1A1A1A;--text-secondary:#7A7872;--text-tertiary:#A8A49E;--accent:#1A1A1A;--border:rgba(0,0,0,0.08);--border-hover:rgba(0,0,0,0.16);--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-pill:99px;--status-pass-bg:#E8F0E0;--status-pass-text:#3B6011;--status-fail-bg:#FCEAEA;--status-fail-text:#8B1A1A;--status-skip-bg:#FDF3DC;--status-skip-text:#7A5000;--status-untested-bg:#EFEFED;--status-untested-text:#5A5A56;--shadow-sm:0 1px 4px rgba(0,0,0,0.06);--shadow-md:0 4px 16px rgba(0,0,0,0.08);--shadow-lg:0 8px 30px rgba(0,0,0,0.12);--shadow-xl:0 12px 40px rgba(0,0,0,0.16)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{color:var(--text-primary);background:var(--bg-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:500}::selection{background:var(--bg-highlight);color:var(--text-primary)}button,input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@keyframes borderShine{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes beamFlow{0%{opacity:.3}50%{opacity:.6}to{opacity:.3}}@keyframes shimmerText{0%{background-position:100% 50%}to{background-position:-100% 50%}}@theme inline{@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(calc(-100% - var(--gap)))}}@keyframes marquee-vertical{0%{transform:translateY(0)}to{transform:translateY(calc(-100% - var(--gap)))}}@keyframes shimmer-slide{to{transform:translate(calc(100cqw - 100%))}}@keyframes spin-around{0%{transform:translateZ(0) rotate(0)}15%,35%{transform:translateZ(0) rotate(90deg)}65%,85%{transform:translateZ(0) rotate(270deg)}to{transform:translateZ(0) rotate(1turn)}}@keyframes gradient{to{background-position:var(--bg-size,300%) 0}}@keyframes rippling{0%{opacity:1}to{transform:scale(2);opacity:0}}@keyframes ripple{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(.9)}}@keyframes shine{0%{background-position:0 0}50%{background-position:100% 100%}to{background-position:0 0}}}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:scale-105:hover,.hover\:scale-110:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1}.hover\:border-\[var\(--border-hover\)\]:hover{border-color:var(--border-hover)}.hover\:border-\[var\(--status-fail-text\)\]:hover{border-color:var(--status-fail-text)}.hover\:bg-\[var\(--accent\)\]:hover{background-color:var(--accent)}.hover\:bg-\[var\(--bg-card\)\]:hover{background-color:var(--bg-card)}.hover\:bg-\[var\(--bg-secondary\)\]:hover{background-color:var(--bg-secondary)}.hover\:bg-\[var\(--status-fail-bg\)\]:hover{background-color:var(--status-fail-bg)}.hover\:bg-black\/5:hover{background-color:rgb(0 0 0/.05)}.hover\:bg-muted-foreground:hover{background-color:hsl(var(--muted-foreground))}.hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.hover\:bg-white\/20:hover{background-color:rgb(255 255 255/.2)}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgb(0 0 0/0.1),0 2px 4px -2px rgb(0 0 0/0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.focus\:border-\[var\(--accent\)\]:focus{border-color:var(--accent)}.focus\:border-\[var\(--border-hover\)\]:focus{border-color:var(--border-hover)}.active\:translate-y-px:active{--tw-translate-y:1px}.active\:scale-\[0\.98\]:active,.active\:translate-y-px:active{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-20:disabled{opacity:.2}.disabled\:opacity-25:disabled{opacity:.25}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:-translate-x-5{--tw-translate-x:-1.25rem}.group:hover .group-hover\:-translate-x-5,.group:hover .group-hover\:translate-x-12{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-12{--tw-translate-x:3rem}.group\/duck:hover .group-hover\/duck\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1}.group:hover .group-hover\:scale-\[100\.8\],.group\/duck:hover .group-hover\/duck\:scale-110{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:scale-\[100\.8\]{--tw-scale-x:100.8;--tw-scale-y:100.8}.group\/col:hover .group-hover\/col\:opacity-100{opacity:1}.group\/duck:hover .group-hover\/duck\:opacity-\[0\.15\]{opacity:.15}.group:hover .group-hover\:opacity-0{opacity:0}.group:hover .group-hover\:opacity-100{opacity:1}.group:hover .group-hover\:shadow-\[inset_0_-6px_10px_\#ffffff3f\]{--tw-shadow:inset 0 -6px 10px #ffffff3f;--tw-shadow-colored:inset 0 -6px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:\[animation-play-state\:paused\]{animation-play-state:paused}.group:active .group-active\:shadow-\[inset_0_-10px_10px_\#ffffff3f\]{--tw-shadow:inset 0 -10px 10px #ffffff3f;--tw-shadow-colored:inset 0 -10px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.data-\[side\=bottom\]\:top-1[data-side=bottom]{top:.25rem}.data-\[side\=inline-end\]\:-left-1[data-side=inline-end]{left:-.25rem}.data-\[side\=inline-start\]\:-right-1[data-side=inline-start],.data-\[side\=left\]\:-right-1[data-side=left]{right:-.25rem}.data-\[side\=right\]\:-left-1[data-side=right]{left:-.25rem}.data-\[side\=top\]\:-bottom-2\.5[data-side=top]{bottom:-.625rem}.data-\[side\=inline-end\]\:-translate-y-1\/2[data-side=inline-end],.data-\[side\=inline-start\]\:-translate-y-1\/2[data-side=inline-start],.data-\[side\=left\]\:-translate-y-1\/2[data-side=left],.data-\[side\=right\]\:-translate-y-1\/2[data-side=right]{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=delayed-open\]\:animate-in[data-state=delayed-open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial}.data-\[state\=delayed-open\]\:fade-in-0[data-state=delayed-open]{--tw-enter-opacity:0}.data-\[state\=delayed-open\]\:zoom-in-95[data-state=delayed-open]{--tw-enter-scale:.95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-0.5rem}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:-0.5rem}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:0.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-0.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:0.5rem}.dark\:text-neutral-600\/40:is(.dark *){color:rgb(82 82 82/.4)}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:768px){.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-24{height:6rem}.md\:h-8{height:2rem}.md\:max-h-\[200px\]{max-height:200px}.md\:max-h-\[92vh\]{max-height:92vh}.md\:max-h-none{max-height:none}.md\:w-1\.5{width:.375rem}.md\:w-12{width:3rem}.md\:w-64{width:16rem}.md\:w-80{width:20rem}.md\:max-w-none{max-width:none}.md\:flex-\[0_0_28\%\]{flex:0 0 28%}.md\:flex-row{flex-direction:row}.md\:gap-4{gap:1rem}.md\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.md\:border-b-0{border-bottom-width:0}.md\:border-l{border-left-width:1px}.md\:border-r{border-right-width:1px}.md\:border-t-0{border-top-width:0}.md\:p-3{padding:.75rem}.md\:p-4{padding:1rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:1024px){.lg\:flex{display:flex}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:text-\[6rem\]{font-size:6rem}}@media (min-width:1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:11,errorRate:1e-4,numBits:211,numHashes:14,bitArray:[1,0,1,e,0,e,r,r,e,e,e,r,r,e,r,e,e,e,r,e,r,r,e,e,r,r,e,e,r,r,r,r,r,r,r,e,e,e,e,r,e,e,e,e,e,e,r,r,r,e,e,e,r,r,r,r,r,r,r,e,r,e,e,e,r,e,r,e,e,r,e,r,r,r,e,e,r,e,r,e,r,r,r,r,r,e,e,r,e,r,e,e,e,e,e,r,e,e,e,r,e,e,e,e,e,e,r,r,e,e,r,r,r,r,r,e,r,e,e,r,e,r,e,e,r,e,r,e,e,e,r,r,e,e,e,e,e,e,r,e,r,r,r,r,e,r,r,e,r,e,e,e,e,e,r,r,e,e,e,e,e,e,e,e,r,e,r,r,e,e,r,r,r,r,e,e,e,e,r,r,r,e,e,e,r,e,e,r,e,r,r,r,e,e,e,e,e,r,r,r,e,e,e,e,r,e,e,r,r,r,r]},__routerFilterDynamic:{numItems:e,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[r,r,e,e,e,e,r,e,r,e,r,e,r,e,r,e,e,r,e,r]},"/_error":["static/chunks/pages/_error-cb2a52f75f2162e2.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[246],{7065:(e,t,r)=>{r.d(t,{q:()=>a,s:()=>n});var l=r(5155),s=r(2115);function n(){let[e,t]=(0,s.useState)(null),r=(0,s.useCallback)((e,r)=>new Promise(l=>{t({type:"alert",title:e,message:r,resolve:()=>{t(null),l()}})}),[]);return{dialog:e,alert:r,confirm:(0,s.useCallback)((e,r)=>new Promise(l=>{t({type:"confirm",title:e,message:r,resolve:e=>{t(null),l(!0===e)}})}),[]),prompt:(0,s.useCallback)(function(e,r){let l=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return new Promise(s=>{t({type:"prompt",title:e,message:r,defaultValue:l,resolve:e=>{t(null),s("string"==typeof e?e:null)}})})},[])}}function a(e){let{dialog:t}=e,[r,n]=(0,s.useState)(""),a=(0,s.useRef)(null);return((0,s.useEffect)(()=>{if((null==t?void 0:t.type)==="prompt"){var e;n(null!=(e=t.defaultValue)?e:""),setTimeout(()=>{var e;return null==(e=a.current)?void 0:e.focus()},50)}},[t]),(0,s.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&t.resolve("prompt"===t.type&&null),"Enter"===e.key&&"prompt"!==t.type&&t.resolve("confirm"===t.type||null)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]),t)?(0,l.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>t.resolve("prompt"===t.type&&null),children:(0,l.jsx)("div",{className:"relative w-full max-w-sm mx-4",onClick:e=>e.stopPropagation(),children:(0,l.jsx)("div",{className:"p-[2px] rounded-xl overflow-hidden",style:{background:"linear-gradient(135deg, #9E7AFF 0%, #FE8BBB 50%, #9E7AFF 100%)",backgroundSize:"200% 200%",animation:"borderShine 3s linear infinite"},children:(0,l.jsxs)("div",{className:"rounded-[10px] p-5",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-xl)"},children:[(0,l.jsx)("h3",{className:"text-sm font-semibold mb-2",style:{color:"var(--text-primary)"},children:t.title}),(0,l.jsx)("p",{className:"text-xs mb-4",style:{color:"var(--text-secondary)"},children:t.message}),"prompt"===t.type&&(0,l.jsx)("input",{ref:a,value:r,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"===e.key&&t.resolve(r.trim()||null)},className:"w-full px-3 py-2 text-sm rounded-lg border outline-none transition-colors focus:border-[var(--accent)] mb-4",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)",color:"var(--text-primary)"},placeholder:"Enter value..."}),(0,l.jsxs)("div",{className:"flex gap-2 justify-end",children:["alert"!==t.type&&(0,l.jsx)("button",{onClick:()=>t.resolve("prompt"===t.type&&null),className:"px-3 py-1.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"}),(0,l.jsx)("button",{onClick:()=>{"confirm"===t.type?t.resolve(!0):"prompt"===t.type?t.resolve(r.trim()||null):t.resolve(null)},className:"px-3 py-1.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)"},children:"confirm"===t.type?"Confirm":"OK"})]})]})})})}):null}},7246:(e,t,r)=>{r.d(t,{q:()=>p,M:()=>f});var l=r(5155),s=r(2115);function n(e,t){let[r,l]=(0,s.useState)(()=>(function(e,t){try{let r=localStorage.getItem(e);return r?JSON.parse(r):t}catch(e){return t}})(e,t)),[n,a]=(0,s.useState)(null),o=(0,s.useRef)(null);return(0,s.useEffect)(()=>{let t=t=>{if(t.key===e&&t.newValue)try{l(JSON.parse(t.newValue))}catch(e){}};return window.addEventListener("storage",t),()=>window.removeEventListener("storage",t)},[e]),[r,(0,s.useCallback)(t=>{l(r=>{let l=t instanceof Function?t(r):t;return o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{try{localStorage.setItem(e,JSON.stringify(l))}catch(e){}a(new Date().toISOString())},300),l})},[e]),n]}var a=r(8566);let o={projects:{},activeProjectId:null,selectedNodeId:null},i={name:"",bannerColor:"#64B5F6",avatarUrl:"",role:"QA Engineer"},c={baseUrl:"http://localhost:3000",browser:"chromium",headless:!0,timeout:3e4};var u=r(7065);let d=(0,s.createContext)(null);function p(e){let{children:t}=e,r=function(){var e;let[t,r,l]=n("qa-dashboard",o),i=(0,s.useCallback)(e=>{let t=crypto.randomUUID(),l={id:t,name:e,createdAt:new Date().toISOString(),flows:[],testCases:{},columnConfig:[...a._X],columnConfigs:{},edges:[],userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:0,tcCounter:{}};return r(e=>({...e,projects:{...e.projects,[t]:l},activeProjectId:t,selectedNodeId:null})),t},[r]),c=(0,s.useCallback)(e=>{r(t=>{var r;let{[e]:l,...s}=t.projects,n=Object.keys(s);return{...t,projects:s,activeProjectId:t.activeProjectId===e?null!=(r=n[0])?r:null:t.activeProjectId,selectedNodeId:t.activeProjectId===e?null:t.selectedNodeId}})},[r]),u=(0,s.useCallback)(e=>{r(t=>({...t,activeProjectId:e,selectedNodeId:null}))},[r]),d=(0,s.useCallback)((e,t)=>{r(r=>({...r,projects:{...r.projects,[e]:{...r.projects[e],name:t}}}))},[r]),p=(0,s.useCallback)(e=>{r(t=>{let r=t.projects[e];if(!r)return t;let l=crypto.randomUUID(),s=new Date().toISOString(),n={...JSON.parse(JSON.stringify(r)),id:l,name:"".concat(r.name," (Copy)"),createdAt:s};return{...t,projects:{...t.projects,[l]:n},activeProjectId:l,selectedNodeId:null}})},[r]),f=(0,s.useCallback)(e=>{try{let t=JSON.parse(e);if(!t||"object"!=typeof t)return{ok:!1,error:"Invalid JSON"};if(!t.name||!t.flows)return{ok:!1,error:"Missing required fields (name, flows)"};let l=crypto.randomUUID(),s={id:l,name:t.name,createdAt:t.createdAt||new Date().toISOString(),flows:Array.isArray(t.flows)?t.flows:[],testCases:t.testCases&&"object"==typeof t.testCases?t.testCases:{},columnConfig:Array.isArray(t.columnConfig)?t.columnConfig:[...a._X],columnConfigs:t.columnConfigs&&"object"==typeof t.columnConfigs?t.columnConfigs:{},edges:Array.isArray(t.edges)?t.edges:[],userProfile:t.userProfile&&"object"==typeof t.userProfile?t.userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:"number"==typeof t.nodeCounter?t.nodeCounter:0,tcCounter:t.tcCounter&&"object"==typeof t.tcCounter?t.tcCounter:{}};return r(e=>({...e,projects:{...e.projects,[l]:s},activeProjectId:l,selectedNodeId:null})),{ok:!0}}catch(e){return{ok:!1,error:"Failed to parse project file"}}},[r]),C=(0,s.useCallback)(e=>{r(t=>({...t,selectedNodeId:e}))},[r]),m=(0,s.useCallback)((e,t)=>{r(r=>({...r,projects:{...r.projects,[e]:t(r.projects[e])}}))},[r]),v=t.activeProjectId&&null!=(e=t.projects[t.activeProjectId])?e:null;return{state:t,setState:r,projects:t.projects,activeProject:v,activeProjectId:t.activeProjectId,selectedNodeId:t.selectedNodeId,createProject:i,deleteProject:c,duplicateProject:p,importProject:f,switchProject:u,renameProject:d,setSelectedNodeId:C,updateProject:m,lastSaved:l}}(),p=function(){let[e,t]=n("qa-profile",i),r=e.name.split(" ").map(e=>e[0]).filter(Boolean).slice(0,2).join("").toUpperCase()||"?";return{profile:e,setName:e=>t(t=>({...t,name:e})),setBannerColor:e=>t(t=>({...t,bannerColor:e})),setAvatarUrl:e=>t(t=>({...t,avatarUrl:e})),setRole:e=>t(t=>({...t,role:e})),initials:r}}(),f=function(e,t){let[r,l]=(0,s.useState)([]),[n,a]=(0,s.useState)(-1),o=(0,s.useRef)(!1),i=(0,s.useCallback)(t=>{if(!e||o.current){o.current=!1;return}l(r=>{let l=[...r.slice(0,n+1),{label:t,projectSnapshot:JSON.parse(JSON.stringify(e))}];return l.length>50&&l.shift(),l}),a(e=>Math.min(e+1,49))},[e,n]),c=(0,s.useCallback)(()=>{if(n<0||!e)return;let l=r[n];l&&(o.current=!0,t(e.id,()=>l.projectSnapshot),a(e=>e-1))},[r,n,e,t]),u=(0,s.useCallback)(()=>{if(n>=r.length-1||!e)return;let l=r[n+1];l&&(o.current=!0,t(e.id,()=>l.projectSnapshot),a(e=>e+1))},[r,n,e,t]),d=n>=0;return{pushState:i,undo:c,redo:u,canUndo:d,canRedo:n<r.length-1,recentActions:r.slice(-10).map(e=>e.label).reverse()}}(r.activeProject,r.updateProject),C=function(e,t,r,l){var n,o;let i=null!=(n=null==e?void 0:e.flows)?n:[],c=null!=(o=null==e?void 0:e.edges)?o:[],u=(0,s.useCallback)((r,s,n,o)=>{if(!e)return null;let i=crypto.randomUUID(),c="";return t(e.id,e=>{var t;let l=(null!=(t=e.nodeCounter)?t:0)+1,u=(s||"").trim().replace(/[^a-zA-Z0-9\s]/g,"").split(/\s+/);c=u.length>=2?u.slice(0,2).map(e=>e.charAt(0).toUpperCase()).join("")+String(l).padStart(2,"0"):u[0]&&u[0].length>=2?u[0].slice(0,3).toUpperCase()+String(l).padStart(2,"0"):"N".concat(String(l).padStart(3,"0"));let d=(0,a.IU)(i,c,s,r);n&&(d.position=n),o&&(d.direction=o);let p=[...e.flows];if(r){let e=p.findIndex(e=>e.id===r);-1!==e&&(p[e]={...p[e],children:[...p[e].children,i]})}return p.push(d),{...e,flows:p,testCases:{...e.testCases,[i]:[]},nodeCounter:l}}),l(i),i},[e,t,l]),d=(0,s.useCallback)(s=>{if(!e)return;let n=new Set,a=t=>{n.add(t);let r=e.flows.find(e=>e.id===t);null==r||r.children.forEach(a)};a(s),t(e.id,e=>{var t;let r=e.flows.filter(e=>!n.has(e.id)).map(e=>({...e,children:e.children.filter(e=>!n.has(e))})),l={...e.testCases};n.forEach(e=>delete l[e]);let s=(null!=(t=e.edges)?t:[]).filter(e=>!n.has(e.fromId)&&!n.has(e.toId));return{...e,flows:r,testCases:l,edges:s}}),n.has(null!=r?r:"")&&l(null)},[e,t,r,l]),p=(0,s.useCallback)(s=>{if(!e||0===s.length)return;let n=new Set,a=t=>{n.add(t);let r=e.flows.find(e=>e.id===t);null==r||r.children.forEach(a)};s.forEach(a),t(e.id,e=>{var t;let r=e.flows.filter(e=>!n.has(e.id)).map(e=>({...e,children:e.children.filter(e=>!n.has(e))})),l={...e.testCases};n.forEach(e=>delete l[e]);let s=(null!=(t=e.edges)?t:[]).filter(e=>!n.has(e.fromId)&&!n.has(e.toId));return{...e,flows:r,testCases:l,edges:s}}),n.has(null!=r?r:"")&&l(null)},[e,t,r,l]),f=(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>({...e,flows:e.flows.map(e=>e.id===r?{...e,label:l}:e)}))},[e,t]),C=(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>({...e,flows:e.flows.map(e=>e.id===r?{...e,...l}:e)}))},[e,t]),m=(0,s.useCallback)(r=>{e&&t(e.id,e=>{let t=e.flows.find(e=>e.id===r);return t&&t.parentId?{...e,flows:e.flows.map(e=>e.id===r?{...e,parentId:null}:e.id===t.parentId?{...e,children:e.children.filter(e=>e!==r)}:e)}:e})},[e,t]),v=(0,s.useCallback)(e=>{l(e)},[l]),b=(0,s.useCallback)((r,l,s)=>{if(!e)return;let n={id:crypto.randomUUID(),fromId:r,toId:l,type:s};t(e.id,e=>{var t;return{...e,edges:[...null!=(t=e.edges)?t:[],n]}})},[e,t]),g=(0,s.useCallback)(r=>{e&&t(e.id,e=>{var t;return{...e,edges:(null!=(t=e.edges)?t:[]).filter(e=>e.id!==r)}})},[e,t]);return{nodes:i,edges:c,selectedNodeId:r,addNode:u,deleteNode:d,deleteNodes:p,unlinkNode:m,renameNode:f,updateNode:C,selectNode:v,addEdge:b,deleteEdge:g,updateEdge:(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>{var t;return{...e,edges:(null!=(t=e.edges)?t:[]).map(e=>e.id===r?{...e,...l}:e)}})},[e,t]),resetLayout:(0,s.useCallback)(()=>{e&&t(e.id,e=>({...e,flows:e.flows.map(e=>({...e,position:null}))}))},[e,t])}}(r.activeProject,r.updateProject,r.selectedNodeId,r.setSelectedNodeId),m=function(e,t,r){var l;let n=r&&e&&null!=(l=e.testCases[r])?l:[],o=function(e){let t=e.length,r=e.filter(e=>"pass"===e.status).length,l=e.filter(e=>"fail"===e.status).length,s=e.filter(e=>"skip"===e.status).length,n=e.filter(e=>"untested"===e.status).length,a=t-s,o=a>0?Math.round(r/a*100):0;return{total:t,pass:r,fail:l,skip:s,untested:n,passRate:o}}(n),i=(0,s.useCallback)((r,l,s,n)=>{var a,o;if(!e)return;let i=e.flows.find(e=>e.id===r),c=null!=(a=null==i?void 0:i.code)?a:"N000",u=null!=(o=e.testCases[r])?o:[],d="";t(e.id,e=>{var t,a,o;let i={...null!=(t=e.tcCounter)?t:{}},p=(null!=(a=i[r])?a:0)+1;i[r]=p,d="".concat(c,"-TC").concat(String(p).padStart(3,"0"));let f={id:crypto.randomUUID(),code:d,title:l,steps:null!=s?s:"",expected:null!=n?n:"",status:"untested",case_type:"General",notes:"",links:"",order:u.length};return{...e,testCases:{...e.testCases,[r]:[...null!=(o=e.testCases[r])?o:[],f]},tcCounter:i}})},[e,t]),c=(0,s.useCallback)((r,l,s)=>{e&&t(e.id,e=>{var t;return{...e,testCases:{...e.testCases,[r]:(null!=(t=e.testCases[r])?t:[]).map(e=>e.id===l?{...e,...s}:e)}}})},[e,t]),u=(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>{var t;return{...e,testCases:{...e.testCases,[r]:(null!=(t=e.testCases[r])?t:[]).filter(e=>e.id!==l)}}})},[e,t]),d=(0,s.useCallback)((r,l)=>{if(!e||0===l.length)return;let s=new Set(l);t(e.id,e=>{var t;return{...e,testCases:{...e.testCases,[r]:(null!=(t=e.testCases[r])?t:[]).filter(e=>!s.has(e.id))}}})},[e,t]),p=(0,s.useCallback)((r,l,s)=>{if(!e||0===l.length)return;let n=new Set(l);t(e.id,e=>{var t;return{...e,testCases:{...e.testCases,[r]:(null!=(t=e.testCases[r])?t:[]).map(e=>n.has(e.id)?{...e,...s}:e)}}})},[e,t]),f=(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>{var t;let s=new Map((null!=(t=e.testCases[r])?t:[]).map(e=>[e.id,e])),n=l.map((e,t)=>{let r=s.get(e);return r?{...r,order:t}:null}).filter(Boolean);return{...e,testCases:{...e.testCases,[r]:n}}})},[e,t]),C=(0,s.useCallback)((r,l,s)=>{e&&t(e.id,e=>{var t,n;let o={...null!=(t=e.columnConfigs)?t:{}},i=null!=(n=o[r])?n:[...a._X];return o[r]=i.map(e=>e.key===l?{...e,label:s}:e),{...e,columnConfigs:o}})},[e,t]),m=(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>{var t,s;let n={...null!=(t=e.columnConfigs)?t:{}},o=null!=(s=n[r])?s:[...a._X];return n[r]=o.map(e=>e.key===l?{...e,visible:!e.visible}:e),{...e,columnConfigs:n}})},[e,t]),v=(0,s.useCallback)((r,l)=>{if(!e)return;let s=l.toLowerCase().replace(/\s+/g,"_");t(e.id,e=>{var t,n;let o={...null!=(t=e.columnConfigs)?t:{}},i=null!=(n=o[r])?n:[...a._X];return o[r]=[...i,{key:s,label:l,visible:!0}],{...e,columnConfigs:o}})},[e,t]);return{testCases:n,stats:o,addTestCase:i,updateTestCase:c,deleteTestCase:u,bulkDeleteTestCases:d,bulkUpdateTestCases:p,reorderTestCases:f,updateColumnConfig:C,toggleColumnVisibility:m,addColumn:v,deleteColumn:(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>{var t,s;let n={...null!=(t=e.columnConfigs)?t:{}},o=null!=(s=n[r])?s:[...a._X];return n[r]=o.filter(e=>e.key!==l),{...e,columnConfigs:n}})},[e,t]),reorderColumn:(0,s.useCallback)((r,l,s)=>{e&&t(e.id,e=>{var t,n;let o={...null!=(t=e.columnConfigs)?t:{}},i=[...null!=(n=o[r])?n:[...a._X]],c=i.findIndex(e=>e.key===l);if(-1===c)return e;let u="up"===s?c-1:c+1;if(u<0||u>=i.length)return e;let d=i[c];return i[c]=i[u],i[u]=d,o[r]=i,{...e,columnConfigs:o}})},[e,t])}}(r.activeProject,r.updateProject,r.selectedNodeId),v=function(e,t){let r=null==e?void 0:e.id,l=(0,s.useMemo)(()=>(null==e?void 0:e.e2eData)||{config:c,runs:[],savedScripts:[]},[null==e?void 0:e.e2eData]),n=(0,s.useCallback)(e=>{r&&t(r,t=>({...t,e2eData:e(t.e2eData||{config:c,runs:[],savedScripts:[]})}))},[r,t]),a=(0,s.useCallback)(e=>{n(t=>({...t,config:{...t.config,...e}}))},[n]),o=(0,s.useCallback)(e=>{let t={...e,id:"run-".concat(Date.now(),"-").concat(Math.random().toString(36).slice(2,8)),timestamp:new Date().toISOString()};return n(e=>({...e,runs:[t,...e.runs].slice(0,20)})),t},[n]),i=(0,s.useCallback)(e=>{n(t=>({...t,runs:t.runs.filter(t=>t.id!==e)}))},[n]),u=(0,s.useCallback)(()=>{n(e=>({...e,runs:[]}))},[n]),d=(0,s.useCallback)((e,t,l,s)=>{n(n=>{let a=n.savedScripts.findIndex(t=>t.testCaseId===e),o={id:a>=0?n.savedScripts[a].id:"script-".concat(Date.now()),projectId:r,testCaseId:e,title:t,code:l,script:s,updatedAt:new Date().toISOString()},i=[...n.savedScripts];return a>=0?i[a]=o:i.push(o),{...n,savedScripts:i}})},[r,n]),p=(0,s.useCallback)(e=>{n(t=>({...t,savedScripts:t.savedScripts.filter(t=>t.testCaseId!==e)}))},[n]),f=(0,s.useCallback)(e=>l.savedScripts.find(t=>t.testCaseId===e),[l.savedScripts]);return{config:l.config,runs:l.runs,savedScripts:l.savedScripts,saveConfig:a,saveRun:o,deleteRun:i,clearRuns:u,saveScript:d,deleteScript:p,getScript:f}}(r.activeProject,r.updateProject),b=(0,u.s)(),g=(0,s.useMemo)(()=>({projects:r.projects,activeProject:r.activeProject,activeProjectId:r.activeProjectId,selectedNodeId:r.selectedNodeId,createProject:r.createProject,deleteProject:r.deleteProject,duplicateProject:r.duplicateProject,importProject:r.importProject,switchProject:r.switchProject,renameProject:r.renameProject,setSelectedNodeId:r.setSelectedNodeId,updateProject:r.updateProject,profile:p.profile,profileInitials:p.initials,setProfileName:p.setName,setProfileBannerColor:p.setBannerColor,setProfileAvatarUrl:p.setAvatarUrl,setProfileRole:p.setRole,canUndo:f.canUndo,canRedo:f.canRedo,undo:f.undo,redo:f.redo,pushState:f.pushState,mindmap:C,testCases:m,e2e:v,dialog:b.dialog,alertDialog:b.alert,confirmDialog:b.confirm,promptDialog:b.prompt,lastSaved:r.lastSaved}),[r,p,f,C,m,v,b]);return(0,l.jsx)(d.Provider,{value:g,children:t})}function f(){let e=(0,s.useContext)(d);if(!e)throw Error("useDashboard must be used within DashboardProvider");return e}},8566:(e,t,r)=>{r.d(t,{D_:()=>s,IU:()=>a,T7:()=>n,_X:()=>l});let l=[{key:"code",label:"ID",visible:!0},{key:"title",label:"Test Case",visible:!0},{key:"steps",label:"Steps",visible:!0},{key:"expected",label:"Expected Result",visible:!0},{key:"status",label:"Status",visible:!0},{key:"case_type",label:"Case Type",visible:!1},{key:"notes",label:"Notes",visible:!0},{key:"links",label:"Links",visible:!1}],s=["General","Positive","Negative"],n=["#E57373","#F06292","#BA68C8","#9575CD","#7986CB","#64B5F6","#4FC3F7","#4DD0E1","#4DB6AC","#81C784","#AED581","#FFD54F","#FFB74D","#FF8A65","#A1887F","#90A4AE"];function a(e,t,r,l){return{id:e,code:t,label:r,parentId:l,children:[],shape:"rounded",notes:"",position:null}}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[485],{42:(e,t,s)=>{"use strict";s.d(t,{W:()=>i});let i={}},561:(e,t,s)=>{"use strict";s.d(t,{B:()=>n});var i=s(8256),r=s(6876);function n({keyframes:e,velocity:t=0,power:s=.8,timeConstant:n=325,bounceDamping:a=10,bounceStiffness:o=500,modifyTarget:u,min:l,max:h,restDelta:d=.5,restSpeed:c}){let p,f,m=e[0],v={done:!1,value:m},y=s*t,g=m+y,S=void 0===u?g:u(g);S!==g&&(y=S-m);let b=e=>-y*Math.exp(-e/n),_=e=>S+b(e),w=e=>{let t=b(e),s=_(e);v.done=Math.abs(t)<=d,v.value=v.done?S:s},T=e=>{let t;if(t=v.value,void 0!==l&&t<l||void 0!==h&&t>h){var s;p=e,f=(0,i.o)({keyframes:[v.value,(s=v.value,void 0===l?h:void 0===h||Math.abs(l-s)<Math.abs(h-s)?l:h)],velocity:(0,r.z)(_,e,v.value),damping:a,stiffness:o,restDelta:d,restSpeed:c})}};return T(0),{calculatedDuration:null,next:e=>{let t=!1;return(f||void 0!==p||(t=!0,w(e),T(e)),void 0!==p&&e>=p)?f.next(e-p):(t||w(e),v)}}}},625:(e,t,s)=>{"use strict";s.d(t,{E:()=>o});var i=s(561),r=s(6121),n=s(8256);let a={decay:i.B,inertia:i.B,tween:r.i,keyframes:r.i,spring:n.o};function o(e){"string"==typeof e.type&&(e.type=a[e.type])}},1225:(e,t,s)=>{"use strict";s.d(t,{q:()=>i});let i=(e,t,s)=>{let i=t-e;return i?(s-e)/i:1}},1391:(e,t,s)=>{"use strict";s.d(t,{j4:()=>r,pG:()=>a,rm:()=>u});let i=e=>t=>"string"==typeof t&&t.startsWith(e),r=i("--"),n=i("var(--"),a=e=>!!n(e)&&o.test(e.split("/*")[0].trim()),o=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function u(e){return"string"==typeof e&&e.split("/*")[0].includes("var(--")}},1739:(e,t,s)=>{"use strict";s.d(t,{B:()=>u});var i=s(8895),r=s(7822),n=s(9150),a=s(3919);let o={...r.ai,transform:e=>Math.round((0,i.q)(0,255,e))},u={test:(0,a.$)("rgb","red"),parse:(0,a.q)("red","green","blue"),transform:({red:e,green:t,blue:s,alpha:i=1})=>"rgba("+o.transform(e)+", "+o.transform(t)+", "+o.transform(s)+", "+(0,n.a)(r.X4.transform(i))+")"}},1943:(e,t,s)=>{"use strict";s.d(t,{D:()=>i});let i=e=>Array.isArray(e)&&"number"==typeof e[0]},2039:(e,t,s)=>{"use strict";s.d(t,{OQ:()=>l,bt:()=>o});var i=s(8453),r=s(5242),n=s(7424),a=s(3934);let o={current:void 0};class u{constructor(e,t={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=e=>{let t=n.k.now();if(this.updatedAt!==t&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let e of this.dependents)e.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=n.k.now(),null===this.canTrackVelocity&&void 0!==e&&(this.canTrackVelocity=!isNaN(parseFloat(this.current)))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on("change",e)}on(e,t){this.events[e]||(this.events[e]=new i.v);let s=this.events[e].add(t);return"change"===e?()=>{s(),a.Gt.read(()=>{this.events.change.getSize()||this.stop()})}:s}clearListeners(){for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,t,s){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-s}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||(this.dependents=new Set),this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return o.current&&o.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let e=n.k.now();if(!this.canTrackVelocity||void 0===this.prevFrameValue||e-this.updatedAt>30)return 0;let t=Math.min(this.updatedAt-this.prevUpdatedAt,30);return(0,r.f)(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0,this.animation=e(t),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function l(e,t){return new u(e,t)}},2080:(e,t,s)=>{"use strict";s.d(t,{b:()=>r});var i=s(8605);let r=e=>e>=1?1:(e*=2)<1?.5*(0,i.dg)(e):.5*(2-Math.pow(2,-10*(e-1)))},2213:(e,t,s)=>{"use strict";s.d(t,{q:()=>i});let i={layout:0,mainThread:0,waapi:0}},2419:(e,t,s)=>{"use strict";s.d(t,{KN:()=>n,gQ:()=>l,px:()=>a,uj:()=>r,vh:()=>o,vw:()=>u});let i=e=>({test:t=>"string"==typeof t&&t.endsWith(e)&&1===t.split(" ").length,parse:parseFloat,transform:t=>`${t}${e}`}),r=i("deg"),n=i("%"),a=i("px"),o=i("vh"),u=i("vw"),l={...n,parse:e=>n.parse(e)/100,transform:e=>n.transform(100*e)}},3127:(e,t,s)=>{"use strict";s.d(t,{Q:()=>i});let i=(0,s(2115).createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"})},3182:(e,t,s)=>{"use strict";s.d(t,{S:()=>i});let i=e=>!!(e&&e.getVelocity)},3656:(e,t,s)=>{"use strict";s.d(t,{F:()=>i});let i=(...e)=>e.reduce((e,t)=>s=>t(e(s)))},3754:(e,t,s)=>{"use strict";s.d(t,{K:()=>i});let i=(e,t,s=10)=>{let i="",r=Math.max(Math.round(t/s),2);for(let t=0;t<r;t++)i+=Math.round(1e4*e(t/(r-1)))/1e4+", ";return`linear(${i.substring(0,i.length-2)})`}},3855:(e,t,s)=>{"use strict";s.d(t,{X:()=>r});let i=e=>null!==e;function r(e,{repeat:t,repeatType:s="loop"},n,a=1){let o=e.filter(i),u=a<0||t&&"loop"!==s&&t%2==1?0:o.length-1;return u&&void 0!==n?n:o[u]}},3867:(e,t,s)=>{"use strict";s.d(t,{Q:()=>i});let i={value:null,addProjectionMetrics:null}},3919:(e,t,s)=>{"use strict";s.d(t,{$:()=>n,q:()=>a});var i=s(4531);let r=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,n=(e,t)=>s=>!!("string"==typeof s&&r.test(s)&&s.startsWith(e)||t&&null!=s&&Object.prototype.hasOwnProperty.call(s,t)),a=(e,t,s)=>r=>{if("string"!=typeof r)return r;let[n,a,o,u]=r.match(i.S);return{[e]:parseFloat(n),[t]:parseFloat(a),[s]:parseFloat(o),alpha:void 0!==u?parseFloat(u):1}}},3934:(e,t,s)=>{"use strict";s.d(t,{Gt:()=>r,PP:()=>o,WG:()=>n,uv:()=>a});var i=s(4119);let{schedule:r,cancel:n,state:a,steps:o}=(0,s(4300).I)("undefined"!=typeof requestAnimationFrame?requestAnimationFrame:i.l,!0)},4119:(e,t,s)=>{"use strict";s.d(t,{l:()=>i});let i=e=>e},4300:(e,t,s)=>{"use strict";s.d(t,{I:()=>a});var i=s(42);let r=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];var n=s(3867);function a(e,t){let s=!1,a=!0,o={delta:0,timestamp:0,isProcessing:!1},u=()=>s=!0,l=r.reduce((e,s)=>(e[s]=function(e,t){let s=new Set,i=new Set,r=!1,a=!1,o=new WeakSet,u={delta:0,timestamp:0,isProcessing:!1},l=0;function h(t){o.has(t)&&(d.schedule(t),e()),l++,t(u)}let d={schedule:(e,t=!1,n=!1)=>{let a=n&&r?s:i;return t&&o.add(e),a.add(e),e},cancel:e=>{i.delete(e),o.delete(e)},process:e=>{if(u=e,r){a=!0;return}r=!0;let o=s;s=i,i=o,s.forEach(h),t&&n.Q.value&&n.Q.value.frameloop[t].push(l),l=0,s.clear(),r=!1,a&&(a=!1,d.process(e))}};return d}(u,t?s:void 0),e),{}),{setup:h,read:d,resolveKeyframes:c,preUpdate:p,update:f,preRender:m,render:v,postRender:y}=l,g=()=>{let r=i.W.useManualTiming,n=r?o.timestamp:performance.now();s=!1,r||(o.delta=a?1e3/60:Math.max(Math.min(n-o.timestamp,40),1)),o.timestamp=n,o.isProcessing=!0,h.process(o),d.process(o),c.process(o),p.process(o),f.process(o),m.process(o),v.process(o),y.process(o),o.isProcessing=!1,s&&t&&(a=!1,e(g))};return{schedule:r.reduce((t,i)=>{let r=l[i];return t[i]=(t,i=!1,n=!1)=>(!s&&(s=!0,a=!0,o.isProcessing||e(g)),r.schedule(t,i,n)),t},{}),cancel:e=>{for(let t=0;t<r.length;t++)l[r[t]].cancel(e)},state:o,steps:l}}},4416:(e,t,s)=>{"use strict";s.d(t,{M:()=>r});var i=s(2115);function r(e){let t=(0,i.useRef)(null);return null===t.current&&(t.current=e()),t.current}},4531:(e,t,s)=>{"use strict";s.d(t,{S:()=>i});let i=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu},4807:(e,t,s)=>{"use strict";s.d(t,{V:()=>o});var i=s(7822),r=s(2419),n=s(9150),a=s(3919);let o={test:(0,a.$)("hsl","hue"),parse:(0,a.q)("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:s,alpha:a=1})=>"hsla("+Math.round(e)+", "+r.KN.transform((0,n.a)(t))+", "+r.KN.transform((0,n.a)(s))+", "+(0,n.a)(i.X4.transform(a))+")"}},4888:(e,t,s)=>{"use strict";s.d(t,{V:()=>h,f:()=>c});var i=s(5389);let r=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;var n=s(4531),a=s(9150);let o="number",u="color",l=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function h(e){let t=e.toString(),s=[],r={color:[],number:[],var:[]},n=[],a=0,h=t.replace(l,e=>(i.y.test(e)?(r.color.push(a),n.push(u),s.push(i.y.parse(e))):e.startsWith("var(")?(r.var.push(a),n.push("var"),s.push(e)):(r.number.push(a),n.push(o),s.push(parseFloat(e))),++a,"${}")).split("${}");return{values:s,split:h,indexes:r,types:n}}function d({split:e,types:t}){let s=e.length;return r=>{let n="";for(let l=0;l<s;l++)if(n+=e[l],void 0!==r[l]){let e=t[l];e===o?n+=(0,a.a)(r[l]):e===u?n+=i.y.transform(r[l]):n+=r[l]}return n}}let c={test:function(e){return isNaN(e)&&"string"==typeof e&&(e.match(n.S)?.length||0)+(e.match(r)?.length||0)>0},parse:function(e){return h(e).values},createTransformer:function(e){return d(h(e))},getAnimatableNone:function(e){let t=h(e);return d(t)(t.values.map((e,s)=>{var r;let n;return r=t.split[s],"number"==typeof e?r?.trim().endsWith("/")?e:0:"number"==typeof(n=e)?0:i.y.test(n)?i.y.getAnimatableNone(n):n}))}}},5130:(e,t,s)=>{"use strict";s.d(t,{j:()=>M});var i=s(3656),r=s(8041),n=s(1391),a=s(5389),o=s(4888),u=s(8894),l=s(4807);function h(e,t,s){return(s<0&&(s+=1),s>1&&(s-=1),s<1/6)?e+(t-e)*6*s:s<.5?t:s<2/3?e+(t-e)*(2/3-s)*6:e}var d=s(1739);function c(e,t){return s=>s>0?t:e}var p=s(9361);let f=(e,t,s)=>{let i=e*e,r=s*(t*t-i)+i;return r<0?0:Math.sqrt(r)},m=[u.u,d.B,l.V];function v(e){let t=m.find(t=>t.test(e));if((0,r.$)(!!t,`'${e}' is not an animatable color. Use the equivalent color code instead.`,"color-not-animatable"),!t)return!1;let s=t.parse(e);return t===l.V&&(s=function({hue:e,saturation:t,lightness:s,alpha:i}){e/=360,s/=100;let r=0,n=0,a=0;if(t/=100){let i=s<.5?s*(1+t):s+t-s*t,o=2*s-i;r=h(o,i,e+1/3),n=h(o,i,e),a=h(o,i,e-1/3)}else r=n=a=s;return{red:Math.round(255*r),green:Math.round(255*n),blue:Math.round(255*a),alpha:i}}(s)),s}let y=(e,t)=>{let s=v(e),i=v(t);if(!s||!i)return c(e,t);let r={...s};return e=>(r.red=f(s.red,i.red,e),r.green=f(s.green,i.green,e),r.blue=f(s.blue,i.blue,e),r.alpha=(0,p.k)(s.alpha,i.alpha,e),d.B.transform(r))},g=new Set(["none","hidden"]);function S(e,t){return s=>(0,p.k)(e,t,s)}function b(e){return"number"==typeof e?S:"string"==typeof e?(0,n.pG)(e)?c:a.y.test(e)?y:T:Array.isArray(e)?_:"object"==typeof e?a.y.test(e)?y:w:c}function _(e,t){let s=[...e],i=s.length,r=e.map((e,s)=>b(e)(e,t[s]));return e=>{for(let t=0;t<i;t++)s[t]=r[t](e);return s}}function w(e,t){let s={...e,...t},i={};for(let r in s)void 0!==e[r]&&void 0!==t[r]&&(i[r]=b(e[r])(e[r],t[r]));return e=>{for(let t in i)s[t]=i[t](e);return s}}let T=(e,t)=>{let s=o.f.createTransformer(t),n=(0,o.V)(e),a=(0,o.V)(t);return n.indexes.var.length===a.indexes.var.length&&n.indexes.color.length===a.indexes.color.length&&n.indexes.number.length>=a.indexes.number.length?g.has(e)&&!a.values.length||g.has(t)&&!n.values.length?function(e,t){return g.has(e)?s=>s<=0?e:t:s=>s>=1?t:e}(e,t):(0,i.F)(_(function(e,t){let s=[],i={color:0,var:0,number:0};for(let r=0;r<t.values.length;r++){let n=t.types[r],a=e.indexes[n][i[n]],o=e.values[a]??0;s[r]=o,i[n]++}return s}(n,a),a.values),s):((0,r.$)(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`,"complex-values-different"),c(e,t))};function M(e,t,s){return"number"==typeof e&&"number"==typeof t&&"number"==typeof s?(0,p.k)(e,t,s):b(e)(e,t)}},5242:(e,t,s)=>{"use strict";s.d(t,{f:()=>i});let i=(e,t)=>t?1e3/t*e:0},5389:(e,t,s)=>{"use strict";s.d(t,{y:()=>a});var i=s(8894),r=s(4807),n=s(1739);let a={test:e=>n.B.test(e)||i.u.test(e)||r.V.test(e),parse:e=>n.B.test(e)?n.B.parse(e):r.V.test(e)?r.V.parse(e):i.u.parse(e),transform:e=>"string"==typeof e?e:e.hasOwnProperty("red")?n.B.transform(e):r.V.transform(e),getAnimatableNone:e=>{let t=a.parse(e);return t.alpha=0,a.transform(t)}}},5516:(e,t,s)=>{"use strict";s.d(t,{V:()=>i});let i=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2},5688:(e,t,s)=>{"use strict";var i=s(5704);s(6340);var r=s(2115),n=function(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}(r),a=void 0!==i&&i.env&&!0,o=function(e){return"[object String]"===Object.prototype.toString.call(e)},u=function(){function e(e){var t=void 0===e?{}:e,s=t.name,i=void 0===s?"stylesheet":s,r=t.optimizeForSpeed,n=void 0===r?a:r;l(o(i),"`name` must be a string"),this._name=i,this._deletedRulePlaceholder="#"+i+"-deleted-rule____{}",l("boolean"==typeof n,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=n,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0;var u="undefined"!=typeof window&&document.querySelector('meta[property="csp-nonce"]');this._nonce=u?u.getAttribute("content"):null}var t,s=e.prototype;return s.setOptimizeForSpeed=function(e){l("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),l(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},s.isOptimizeForSpeed=function(){return this._optimizeForSpeed},s.inject=function(){var e=this;if(l(!this._injected,"sheet already injected"),this._injected=!0,"undefined"!=typeof window&&this._optimizeForSpeed){this._tags[0]=this.makeStyleTag(this._name),this._optimizeForSpeed="insertRule"in this.getSheet(),this._optimizeForSpeed||(a||console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."),this.flush(),this._injected=!0);return}this._serverSheet={cssRules:[],insertRule:function(t,s){return"number"==typeof s?e._serverSheet.cssRules[s]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),s},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},s.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]},s.getSheet=function(){return this.getSheetForTag(this._tags[this._tags.length-1])},s.insertRule=function(e,t){if(l(o(e),"`insertRule` accepts only strings"),"undefined"==typeof window)return"number"!=typeof t&&(t=this._serverSheet.cssRules.length),this._serverSheet.insertRule(e,t),this._rulesCount++;if(this._optimizeForSpeed){var s=this.getSheet();"number"!=typeof t&&(t=s.cssRules.length);try{s.insertRule(e,t)}catch(t){return a||console.warn("StyleSheet: illegal rule: \n\n"+e+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),-1}}else{var i=this._tags[t];this._tags.push(this.makeStyleTag(this._name,e,i))}return this._rulesCount++},s.replaceRule=function(e,t){if(this._optimizeForSpeed||"undefined"==typeof window){var s="undefined"!=typeof window?this.getSheet():this._serverSheet;if(t.trim()||(t=this._deletedRulePlaceholder),!s.cssRules[e])return e;s.deleteRule(e);try{s.insertRule(t,e)}catch(i){a||console.warn("StyleSheet: illegal rule: \n\n"+t+"\n\nSee https://stackoverflow.com/q/20007992 for more info"),s.insertRule(this._deletedRulePlaceholder,e)}}else{var i=this._tags[e];l(i,"old rule at index `"+e+"` not found"),i.textContent=t}return e},s.deleteRule=function(e){if("undefined"==typeof window)return void this._serverSheet.deleteRule(e);if(this._optimizeForSpeed)this.replaceRule(e,"");else{var t=this._tags[e];l(t,"rule at index `"+e+"` not found"),t.parentNode.removeChild(t),this._tags[e]=null}},s.flush=function(){this._injected=!1,this._rulesCount=0,"undefined"!=typeof window?(this._tags.forEach(function(e){return e&&e.parentNode.removeChild(e)}),this._tags=[]):this._serverSheet.cssRules=[]},s.cssRules=function(){var e=this;return"undefined"==typeof window?this._serverSheet.cssRules:this._tags.reduce(function(t,s){return s?t=t.concat(Array.prototype.map.call(e.getSheetForTag(s).cssRules,function(t){return t.cssText===e._deletedRulePlaceholder?null:t})):t.push(null),t},[])},s.makeStyleTag=function(e,t,s){t&&l(o(t),"makeStyleTag accepts only strings as second parameter");var i=document.createElement("style");this._nonce&&i.setAttribute("nonce",this._nonce),i.type="text/css",i.setAttribute("data-"+e,""),t&&i.appendChild(document.createTextNode(t));var r=document.head||document.getElementsByTagName("head")[0];return s?r.insertBefore(i,s):r.appendChild(i),i},t=[{key:"length",get:function(){return this._rulesCount}}],function(e,t){for(var s=0;s<t.length;s++){var i=t[s];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}(e.prototype,t),e}();function l(e,t){if(!e)throw Error("StyleSheet: "+t+".")}var h=function(e){for(var t=5381,s=e.length;s;)t=33*t^e.charCodeAt(--s);return t>>>0},d={};function c(e,t){if(!t)return"jsx-"+e;var s=String(t),i=e+s;return d[i]||(d[i]="jsx-"+h(e+"-"+s)),d[i]}function p(e,t){"undefined"==typeof window&&(t=t.replace(/\/style/gi,"\\/style"));var s=e+t;return d[s]||(d[s]=t.replace(/__jsx-style-dynamic-selector/g,e)),d[s]}var f=function(){function e(e){var t=void 0===e?{}:e,s=t.styleSheet,i=void 0===s?null:s,r=t.optimizeForSpeed,n=void 0!==r&&r;this._sheet=i||new u({name:"styled-jsx",optimizeForSpeed:n}),this._sheet.inject(),i&&"boolean"==typeof n&&(this._sheet.setOptimizeForSpeed(n),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),"undefined"==typeof window||this._fromServer||(this._fromServer=this.selectFromServer(),this._instancesCounts=Object.keys(this._fromServer).reduce(function(e,t){return e[t]=0,e},{}));var s=this.getIdAndRules(e),i=s.styleId,r=s.rules;if(i in this._instancesCounts){this._instancesCounts[i]+=1;return}var n=r.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[i]=n,this._instancesCounts[i]=1},t.remove=function(e){var t=this,s=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(s in this._instancesCounts,"styleId: `"+s+"` not found"),this._instancesCounts[s]-=1,this._instancesCounts[s]<1){var i=this._fromServer&&this._fromServer[s];i?(i.parentNode.removeChild(i),delete this._fromServer[s]):(this._indices[s].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[s]),delete this._instancesCounts[s]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],s=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return s[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,s;return t=this.cssRules(),void 0===(s=e)&&(s={}),t.map(function(e){var t=e[0],i=e[1];return n.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:s.nonce?s.nonce:void 0,dangerouslySetInnerHTML:{__html:i}})})},t.getIdAndRules=function(e){var t=e.children,s=e.dynamic,i=e.id;if(s){var r=c(i,s);return{styleId:r,rules:Array.isArray(t)?t.map(function(e){return p(r,e)}):[p(r,t)]}}return{styleId:c(i),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),m=r.createContext(null);m.displayName="StyleSheetContext";var v=n.default.useInsertionEffect||n.default.useLayoutEffect,y="undefined"!=typeof window?new f:void 0;function g(e){var t=y||r.useContext(m);return t&&("undefined"==typeof window?t.add(e):v(function(){return t.add(e),function(){t.remove(e)}},[e.id,String(e.dynamic)])),null}g.dynamic=function(e){return e.map(function(e){return c(e[0],e[1])}).join(" ")},t.style=g},6105:(e,t,s)=>{"use strict";function i(e,t){-1===e.indexOf(t)&&e.push(t)}function r(e,t){let s=e.indexOf(t);s>-1&&e.splice(s,1)}s.d(t,{Ai:()=>r,Kq:()=>i})},6121:(e,t,s)=>{"use strict";s.d(t,{i:()=>g});var i=s(6262);let r=(0,i.A)(.42,0,1,1),n=(0,i.A)(0,0,.58,1),a=(0,i.A)(.42,0,.58,1);var o=s(8041),u=s(4119),l=s(2080),h=s(8605),d=s(9809),c=s(1943);let p={linear:u.l,easeIn:r,easeInOut:a,easeOut:n,circIn:d.po,circInOut:d.tn,circOut:d.yT,backIn:h.dg,backInOut:h.ZZ,backOut:h.Sz,anticipate:l.b},f=e=>{if((0,c.D)(e)){(0,o.V)(4===e.length,"Cubic bezier arrays must contain four numerical values.","cubic-bezier-length");let[t,s,r,n]=e;return(0,i.A)(t,s,r,n)}return"string"==typeof e?((0,o.V)(void 0!==p[e],`Invalid easing type '${e}'`,"invalid-easing-type"),p[e]):e};var m=s(6706),v=s(1225),y=s(9361);function g({duration:e=300,keyframes:t,times:s,ease:i="easeInOut"}){var r;let n=Array.isArray(i)&&"number"!=typeof i[0]?i.map(f):f(i),o={done:!1,value:t[0]},u=(r=s&&s.length===t.length?s:function(e){let t=[0];return!function(e,t){let s=e[e.length-1];for(let i=1;i<=t;i++){let r=(0,v.q)(0,t,i);e.push((0,y.k)(s,1,r))}}(t,e.length-1),t}(t),r.map(t=>t*e)),l=(0,m.G)(u,t,{ease:Array.isArray(n)?n:t.map(()=>n||a).splice(0,t.length-1)});return{calculatedDuration:e,next:t=>(o.value=l(t),o.done=t>=e,o)}}},6262:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});var i=s(4119);let r=(e,t,s)=>(((1-3*s+3*t)*e+(3*s-6*t))*e+3*t)*e;function n(e,t,s,n){return e===t&&s===n?i.l:i=>0===i||1===i?i:r(function(e,t,s,i,n){let a,o,u=0;do(a=r(o=t+(s-t)/2,i,n)-e)>0?s=o:t=o;while(Math.abs(a)>1e-7&&++u<12);return o}(i,0,1,e,s),t,n)}},6340:()=>{},6436:(e,t,s)=>{"use strict";s.d(t,{E:()=>r});var i=s(2115);let r="undefined"!=typeof window?i.useLayoutEffect:i.useEffect},6706:(e,t,s)=>{"use strict";s.d(t,{G:()=>h});var i=s(42),r=s(4119),n=s(3656),a=s(8041),o=s(1225),u=s(8895),l=s(5130);function h(e,t,{clamp:s=!0,ease:d,mixer:c}={}){let p=e.length;if((0,a.V)(p===t.length,"Both input and output ranges must be the same length","range-length"),1===p)return()=>t[0];if(2===p&&t[0]===t[1])return()=>t[1];let f=e[0]===e[1];e[0]>e[p-1]&&(e=[...e].reverse(),t=[...t].reverse());let m=function(e,t,s){let a=[],o=s||i.W.mix||l.j,u=e.length-1;for(let s=0;s<u;s++){let i=o(e[s],e[s+1]);if(t){let e=Array.isArray(t)?t[s]||r.l:t;i=(0,n.F)(e,i)}a.push(i)}return a}(t,d,c),v=m.length,y=s=>{if(f&&s<e[0])return t[0];let i=0;if(v>1)for(;i<e.length-2&&!(s<e[i+1]);i++);let r=(0,o.q)(e[i],e[i+1],s);return m[i](r)};return s?t=>y((0,u.q)(e[0],e[p-1],t)):y}},6815:(e,t,s)=>{"use strict";s.d(t,{G:()=>i});let i=e=>t=>1-e(1-t)},6876:(e,t,s)=>{"use strict";s.d(t,{z:()=>r});var i=s(5242);function r(e,t,s){let r=Math.max(t-5,0);return(0,i.f)(s-e(r),t-r)}},7290:(e,t,s)=>{"use strict";s.d(t,{X:()=>r,f:()=>i});let i=e=>1e3*e,r=e=>e/1e3},7424:(e,t,s)=>{"use strict";let i;s.d(t,{k:()=>o});var r=s(42),n=s(3934);function a(){i=void 0}let o={now:()=>(void 0===i&&o.set(n.uv.isProcessing||r.W.useManualTiming?n.uv.timestamp:performance.now()),i),set:e=>{i=e,queueMicrotask(a)}}},7671:(e,t,s)=>{"use strict";s.d(t,{q:()=>i});class i{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,t){return this.finished.then(e,t)}}},7822:(e,t,s)=>{"use strict";s.d(t,{X4:()=>n,ai:()=>r,hs:()=>a});var i=s(8895);let r={test:e=>"number"==typeof e,parse:parseFloat,transform:e=>e},n={...r,transform:e=>(0,i.q)(0,1,e)},a={...r,default:1}},8041:(e,t,s)=>{"use strict";s.d(t,{$:()=>i,V:()=>r}),s(5704);let i=()=>{},r=()=>{}},8256:(e,t,s)=>{"use strict";s.d(t,{o:()=>p});var i=s(8041),r=s(7290),n=s(8895),a=s(3754),o=s(8857);let u={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function l(e,t){return e*Math.sqrt(1-t*t)}let h=["duration","bounce"],d=["stiffness","damping","mass"];function c(e,t){return t.some(t=>void 0!==e[t])}function p(e=u.visualDuration,t=u.bounce){let s,f,m,v,y,g,S="object"!=typeof e?{visualDuration:e,keyframes:[0,1],bounce:t}:e,{restSpeed:b,restDelta:_}=S,w=S.keyframes[0],T=S.keyframes[S.keyframes.length-1],M={done:!1,value:w},{stiffness:k,damping:x,mass:A,duration:F,velocity:R,isResolvedFromDuration:C}=function(e){let t={velocity:u.velocity,stiffness:u.stiffness,damping:u.damping,mass:u.mass,isResolvedFromDuration:!1,...e};if(!c(e,d)&&c(e,h))if(t.velocity=0,e.visualDuration){let s=2*Math.PI/(1.2*e.visualDuration),i=s*s,r=2*(0,n.q)(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:u.mass,stiffness:i,damping:r}}else{let s=function({duration:e=u.duration,bounce:t=u.bounce,velocity:s=u.velocity,mass:a=u.mass}){let o,h;(0,i.$)(e<=(0,r.f)(u.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let d=1-t;d=(0,n.q)(u.minDamping,u.maxDamping,d),e=(0,n.q)(u.minDuration,u.maxDuration,(0,r.X)(e)),d<1?(o=t=>{let i=t*d,r=i*e;return .001-(i-s)/l(t,d)*Math.exp(-r)},h=t=>{let i=t*d*e,r=Math.pow(d,2)*Math.pow(t,2)*e,n=Math.exp(-i),a=l(Math.pow(t,2),d);return(i*s+s-r)*n*(-o(t)+.001>0?-1:1)/a}):(o=t=>-.001+Math.exp(-t*e)*((t-s)*e+1),h=t=>e*e*(s-t)*Math.exp(-t*e));let c=function(e,t,s){let i=s;for(let s=1;s<12;s++)i-=e(i)/t(i);return i}(o,h,5/e);if(e=(0,r.f)(e),isNaN(c))return{stiffness:u.stiffness,damping:u.damping,duration:e};{let t=Math.pow(c,2)*a;return{stiffness:t,damping:2*d*Math.sqrt(a*t),duration:e}}}({...e,velocity:0});(t={...t,...s,mass:u.mass}).isResolvedFromDuration=!0}return t}({...S,velocity:-(0,r.X)(S.velocity||0)}),q=R||0,z=x/(2*Math.sqrt(k*A)),D=T-w,j=(0,r.X)(Math.sqrt(k/A)),V=5>Math.abs(D);if(b||(b=V?u.restSpeed.granular:u.restSpeed.default),_||(_=V?u.restDelta.granular:u.restDelta.default),z<1)m=l(j,z),v=(q+z*j*D)/m,s=e=>T-Math.exp(-z*j*e)*(v*Math.sin(m*e)+D*Math.cos(m*e)),y=z*j*v+D*m,g=z*j*D-v*m,f=e=>Math.exp(-z*j*e)*(y*Math.sin(m*e)+g*Math.cos(m*e));else if(1===z){s=e=>T-Math.exp(-j*e)*(D+(q+j*D)*e);let e=q+j*D;f=t=>Math.exp(-j*t)*(j*e*t-q)}else{let e=j*Math.sqrt(z*z-1);s=t=>{let s=Math.exp(-z*j*t),i=Math.min(e*t,300);return T-s*((q+z*j*D)*Math.sinh(i)+e*D*Math.cosh(i))/e};let t=(q+z*j*D)/e,i=z*j*t-D*e,r=z*j*D-t*e;f=t=>{let s=Math.exp(-z*j*t),n=Math.min(e*t,300);return s*(i*Math.sinh(n)+r*Math.cosh(n))}}let P={calculatedDuration:C&&F||null,velocity:e=>(0,r.f)(f(e)),next:e=>{if(!C&&z<1){let t=Math.exp(-z*j*e),s=Math.sin(m*e),i=Math.cos(m*e),n=T-t*(v*s+D*i);return M.done=Math.abs((0,r.f)(t*(y*s+g*i)))<=b&&Math.abs(T-n)<=_,M.value=M.done?T:n,M}let t=s(e);return C?M.done=e>=F:M.done=Math.abs((0,r.f)(f(e)))<=b&&Math.abs(T-t)<=_,M.value=M.done?T:t,M},toString:()=>{let e=Math.min((0,o.t)(P),o.Y),t=(0,a.K)(t=>P.next(e*t).value,e,30);return e+"ms "+t},toTransition:()=>{}};return P}p.applyToOptions=e=>{let t=function(e,t=100,s){let i=s({...e,keyframes:[0,t]}),n=Math.min((0,o.t)(i),o.Y);return{type:"keyframes",ease:e=>i.next(n*e).value/t,duration:(0,r.X)(n)}}(e,100,p);return e.ease=t.ease,e.duration=(0,r.f)(t.duration),e.type="keyframes",e}},8453:(e,t,s)=>{"use strict";s.d(t,{v:()=>r});var i=s(6105);class r{constructor(){this.subscriptions=[]}add(e){return(0,i.Kq)(this.subscriptions,e),()=>(0,i.Ai)(this.subscriptions,e)}notify(e,t,s){let i=this.subscriptions.length;if(i)if(1===i)this.subscriptions[0](e,t,s);else for(let r=0;r<i;r++){let i=this.subscriptions[r];i&&i(e,t,s)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}},8561:(e,t,s)=>{"use strict";function i(e,t,s){if(null==e)return[];if(e instanceof EventTarget)return[e];if("string"==typeof e){let i=document;t&&(i=t.current);let r=s?.[e]??i.querySelectorAll(e);return r?Array.from(r):[]}return Array.from(e).filter(e=>null!=e)}s.d(t,{K:()=>i})},8605:(e,t,s)=>{"use strict";s.d(t,{Sz:()=>a,ZZ:()=>u,dg:()=>o});var i=s(6262),r=s(5516),n=s(6815);let a=(0,i.A)(.33,1.53,.69,.99),o=(0,n.G)(a),u=(0,r.V)(o)},8661:(e,t,s)=>{"use strict";e.exports=s(5688).style},8857:(e,t,s)=>{"use strict";s.d(t,{Y:()=>i,t:()=>r});let i=2e4;function r(e){let t=0,s=e.next(t);for(;!s.done&&t<i;)t+=50,s=e.next(t);return t>=i?1/0:t}},8894:(e,t,s)=>{"use strict";s.d(t,{u:()=>r});var i=s(1739);let r={test:(0,s(3919).$)("#"),parse:function(e){let t="",s="",i="",r="";return e.length>5?(t=e.substring(1,3),s=e.substring(3,5),i=e.substring(5,7),r=e.substring(7,9)):(t=e.substring(1,2),s=e.substring(2,3),i=e.substring(3,4),r=e.substring(4,5),t+=t,s+=s,i+=i,r+=r),{red:parseInt(t,16),green:parseInt(s,16),blue:parseInt(i,16),alpha:r?parseInt(r,16)/255:1}},transform:i.B.transform}},8895:(e,t,s)=>{"use strict";s.d(t,{q:()=>i});let i=(e,t,s)=>s>t?t:s<e?e:s},9150:(e,t,s)=>{"use strict";s.d(t,{a:()=>i});let i=e=>Math.round(1e5*e)/1e5},9361:(e,t,s)=>{"use strict";s.d(t,{k:()=>i});let i=(e,t,s)=>e+(t-e)*s},9752:(e,t,s)=>{"use strict";s.d(t,{s:()=>S});var i=s(3656),r=s(8895),n=s(7290),a=s(7424),o=s(2213),u=s(5130),l=s(3934);let h=e=>{let t=({timestamp:t})=>e(t);return{start:(e=!0)=>l.Gt.update(t,e),stop:()=>(0,l.WG)(t),now:()=>l.uv.isProcessing?l.uv.timestamp:a.k.now()}};var d=s(561),c=s(6121),p=s(8857),f=s(6876),m=s(3855),v=s(625),y=s(7671);let g=e=>e/100;class S extends y.q{constructor(e){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:e}=this.options;e&&e.updatedAt!==a.k.now()&&this.tick(a.k.now()),this.isStopped=!0,"idle"!==this.state&&(this.teardown(),this.options.onStop?.())},o.q.mainThread++,this.options=e,this.initAnimation(),this.play(),!1===e.autoplay&&this.pause()}initAnimation(){let{options:e}=this;(0,v.E)(e);let{type:t=c.i,repeat:s=0,repeatDelay:r=0,repeatType:n,velocity:a=0}=e,{keyframes:o}=e,l=t||c.i;l!==c.i&&"number"!=typeof o[0]&&(this.mixKeyframes=(0,i.F)(g,(0,u.j)(o[0],o[1])),o=[0,100]);let h=l({...e,keyframes:o});"mirror"===n&&(this.mirroredGenerator=l({...e,keyframes:[...o].reverse(),velocity:-a})),null===h.calculatedDuration&&(h.calculatedDuration=(0,p.t)(h));let{calculatedDuration:d}=h;this.calculatedDuration=d,this.resolvedDuration=d+r,this.totalDuration=this.resolvedDuration*(s+1)-r,this.generator=h}updateTime(e){let t=Math.round(e-this.startTime)*this.playbackSpeed;null!==this.holdTime?this.currentTime=this.holdTime:this.currentTime=t}tick(e,t=!1){let s,{generator:i,totalDuration:n,mixKeyframes:a,mirroredGenerator:o,resolvedDuration:u,calculatedDuration:l}=this;if(null===this.startTime)return i.next(0);let{delay:h=0,keyframes:c,repeat:p,repeatType:f,repeatDelay:v,type:y,onUpdate:g,finalKeyframe:S}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-n/this.speed,this.startTime)),t?this.currentTime=e:this.updateTime(e);let b=this.currentTime-h*(this.playbackSpeed>=0?1:-1),_=this.playbackSpeed>=0?b<0:b>n;this.currentTime=Math.max(b,0),"finished"===this.state&&null===this.holdTime&&(this.currentTime=n);let w=this.currentTime,T=i;if(p){let e=Math.min(this.currentTime,n)/u,t=Math.floor(e),s=e%1;!s&&e>=1&&(s=1),1===s&&t--,(t=Math.min(t,p+1))%2&&("reverse"===f?(s=1-s,v&&(s-=v/u)):"mirror"===f&&(T=o)),w=(0,r.q)(0,1,s)*u}_?(this.delayState.value=c[0],s=this.delayState):s=T.next(w),a&&!_&&(s.value=a(s.value));let{done:M}=s;_||null===l||(M=this.playbackSpeed>=0?this.currentTime>=n:this.currentTime<=0);let k=null===this.holdTime&&("finished"===this.state||"running"===this.state&&M);return k&&y!==d.B&&(s.value=(0,m.X)(c,this.options,S,this.speed)),g&&g(s.value),k&&this.finish(),s}then(e,t){return this.finished.then(e,t)}get duration(){return(0,n.X)(this.calculatedDuration)}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+(0,n.X)(e)}get time(){return(0,n.X)(this.currentTime)}set time(e){e=(0,n.f)(e),this.currentTime=e,null===this.startTime||null!==this.holdTime||0===this.playbackSpeed?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=e,this.tick(e))}getGeneratorVelocity(){let e=this.currentTime;if(e<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(e);let t=this.generator.next(e).value;return(0,f.z)(e=>this.generator.next(e).value,e,t)}get speed(){return this.playbackSpeed}set speed(e){let t=this.playbackSpeed!==e;t&&this.driver&&this.updateTime(a.k.now()),this.playbackSpeed=e,t&&this.driver&&(this.time=(0,n.X)(this.currentTime))}play(){if(this.isStopped)return;let{driver:e=h,startTime:t}=this.options;this.driver||(this.driver=e(e=>this.tick(e))),this.options.onPlay?.();let s=this.driver.now();"finished"===this.state?(this.updateFinished(),this.startTime=s):null!==this.holdTime?this.startTime=s-this.holdTime:this.startTime||(this.startTime=t??s),"finished"===this.state&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(a.k.now()),this.holdTime=this.currentTime}complete(){"running"!==this.state&&this.play(),this.state="finished",this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state="finished",this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null,o.q.mainThread--}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),this.driver?.stop(),e.observe(this)}}},9809:(e,t,s)=>{"use strict";s.d(t,{po:()=>n,tn:()=>o,yT:()=>a});var i=s(5516),r=s(6815);let n=e=>1-Math.sin(Math.acos(e)),a=(0,r.G)(n),o=(0,i.V)(n)}}]);