test-lah 1.0.7 → 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.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +44 -34
- package/.next/standalone/.next/app-path-routes-manifest.json +8 -7
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +21 -21
- package/.next/standalone/.next/server/app/(dashboard)/integrations/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page.js +17 -70
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js +2 -22
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +34 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/api/e2e/route.js +13 -2
- package/.next/standalone/.next/server/app/api/e2e/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/generate/route.js +13 -2
- package/.next/standalone/.next/server/app/api/generate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/llm/encrypt/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/llm/test/route.js +13 -2
- package/.next/standalone/.next/server/app/api/llm/test/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/refine-notes/route.js +29 -0
- package/.next/standalone/.next/server/app/api/refine-notes/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/refine-notes/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/weather/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/integrations.html +1 -1
- package/.next/standalone/.next/server/app/integrations.rsc +4 -4
- package/.next/standalone/.next/server/app/login/page.js +2 -2
- package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +3 -3
- package/.next/standalone/.next/server/app/page.js +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +4 -4
- package/.next/standalone/.next/server/app-paths-manifest.json +8 -7
- package/.next/standalone/.next/server/chunks/423.js +62 -0
- package/.next/standalone/.next/server/chunks/615.js +2 -2
- package/.next/standalone/.next/server/chunks/736.js +2 -2
- package/.next/standalone/.next/server/chunks/779.js +1 -0
- package/.next/standalone/.next/server/chunks/845.js +5 -5
- package/.next/standalone/.next/server/chunks/898.js +21 -0
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/static/chunks/172-84d6b7afea495880.js +1 -0
- package/.next/standalone/.next/static/chunks/246-28370f424ce95be6.js +1 -0
- package/.next/standalone/.next/static/chunks/253-d1beae5e3cf2d88e.js +1 -0
- package/.next/standalone/.next/static/chunks/642-d84ad067810dd35b.js +1 -0
- package/.next/standalone/.next/static/chunks/661-a763fedcbf90af81.js +1 -0
- package/.next/standalone/.next/static/chunks/793-7306e111aea85b00.js +1 -0
- package/.next/standalone/.next/static/chunks/968-a7dcf12036013254.js +62 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-d62f7774ba0ed3ab.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-e4ed5abcbb7c8802.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-0d320c1bd8d89d9c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-1b2e89d37c95e30f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-5f4191feafff095a.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/e2e/route-234cc6154c5cd194.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/generate/route-234cc6154c5cd194.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-234cc6154c5cd194.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/llm/test/route-234cc6154c5cd194.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/refine-notes/route-234cc6154c5cd194.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/weather/route-234cc6154c5cd194.js +1 -0
- package/.next/{static/chunks/app/login/page-a655de2a3e8514f8.js → standalone/.next/static/chunks/app/login/page-35c717d39c71dcbf.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/page-dd12a450edb4a44d.js +1 -0
- package/.next/standalone/.next/static/css/d31bdcc43c2da03c.css +3 -0
- package/.next/standalone/.next/static/pu5ThH8RrsP9e4dTXjYwA/_buildManifest.js +1 -0
- package/.next/standalone/package.json +1 -1
- package/.next/static/chunks/172-84d6b7afea495880.js +1 -0
- package/.next/static/chunks/246-28370f424ce95be6.js +1 -0
- package/.next/static/chunks/253-d1beae5e3cf2d88e.js +1 -0
- package/.next/static/chunks/642-d84ad067810dd35b.js +1 -0
- package/.next/static/chunks/661-a763fedcbf90af81.js +1 -0
- package/.next/static/chunks/793-7306e111aea85b00.js +1 -0
- package/.next/static/chunks/968-a7dcf12036013254.js +62 -0
- package/.next/static/chunks/app/(dashboard)/integrations/page-d62f7774ba0ed3ab.js +1 -0
- package/.next/static/chunks/app/(dashboard)/layout-e4ed5abcbb7c8802.js +1 -0
- package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-0d320c1bd8d89d9c.js +1 -0
- package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-1b2e89d37c95e30f.js +1 -0
- package/.next/static/chunks/app/(dashboard)/projects/page-5f4191feafff095a.js +1 -0
- package/.next/static/chunks/app/api/e2e/route-234cc6154c5cd194.js +1 -0
- package/.next/static/chunks/app/api/generate/route-234cc6154c5cd194.js +1 -0
- package/.next/static/chunks/app/api/llm/encrypt/route-234cc6154c5cd194.js +1 -0
- package/.next/static/chunks/app/api/llm/test/route-234cc6154c5cd194.js +1 -0
- package/.next/static/chunks/app/api/refine-notes/route-234cc6154c5cd194.js +1 -0
- package/.next/static/chunks/app/api/weather/route-234cc6154c5cd194.js +1 -0
- package/.next/{standalone/.next/static/chunks/app/login/page-a655de2a3e8514f8.js → static/chunks/app/login/page-35c717d39c71dcbf.js} +1 -1
- package/.next/static/chunks/app/page-dd12a450edb4a44d.js +1 -0
- package/.next/static/css/d31bdcc43c2da03c.css +3 -0
- package/.next/static/pu5ThH8RrsP9e4dTXjYwA/_buildManifest.js +1 -0
- package/README.md +27 -4
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/350.js +0 -21
- package/.next/standalone/.next/server/chunks/403.js +0 -1
- package/.next/standalone/.next/server/chunks/583.js +0 -1
- package/.next/standalone/.next/static/Dmhhi1aH71i6LYut_5YOv/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/246-1673b37cc8edb269.js +0 -1
- package/.next/standalone/.next/static/chunks/485-23e4a6e33ee79f14.js +0 -1
- package/.next/standalone/.next/static/chunks/532-95cb537bb36c2e68.js +0 -62
- package/.next/standalone/.next/static/chunks/637-dcbc811f7143935f.js +0 -1
- package/.next/standalone/.next/static/chunks/708-1fc7a6d1d5b4aee7.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-f5e71fcfbeffdfb1.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-69e4ea7abe9faff3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-4f738ff151196fe8.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-b69fc155f1796e19.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-11a49918142004f5.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/e2e/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/generate/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/llm/test/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/weather/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-a90eeaea3538ebf2.js +0 -1
- package/.next/standalone/.next/static/css/ab7683c62149b050.css +0 -3
- package/.next/static/Dmhhi1aH71i6LYut_5YOv/_buildManifest.js +0 -1
- package/.next/static/chunks/246-1673b37cc8edb269.js +0 -1
- package/.next/static/chunks/485-23e4a6e33ee79f14.js +0 -1
- package/.next/static/chunks/532-95cb537bb36c2e68.js +0 -62
- package/.next/static/chunks/637-dcbc811f7143935f.js +0 -1
- package/.next/static/chunks/708-1fc7a6d1d5b4aee7.js +0 -1
- package/.next/static/chunks/app/(dashboard)/integrations/page-f5e71fcfbeffdfb1.js +0 -1
- package/.next/static/chunks/app/(dashboard)/layout-69e4ea7abe9faff3.js +0 -1
- package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-4f738ff151196fe8.js +0 -1
- package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-b69fc155f1796e19.js +0 -1
- package/.next/static/chunks/app/(dashboard)/projects/page-11a49918142004f5.js +0 -1
- package/.next/static/chunks/app/api/e2e/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/api/generate/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/api/llm/encrypt/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/api/llm/test/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/api/weather/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/page-a90eeaea3538ebf2.js +0 -1
- package/.next/static/css/ab7683c62149b050.css +0 -3
- /package/.next/standalone/.next/static/{Dmhhi1aH71i6LYut_5YOv → pu5ThH8RrsP9e4dTXjYwA}/_ssgManifest.js +0 -0
- /package/.next/static/{Dmhhi1aH71i6LYut_5YOv → pu5ThH8RrsP9e4dTXjYwA}/_ssgManifest.js +0 -0
package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-5f4191feafff095a.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[709],{158:(e,t,s)=>{"use strict";s.d(t,{Bf:()=>E,G$:()=>N,Rz:()=>g,Vj:()=>f,hX:()=>h,ii:()=>x,k5:()=>u,nN:()=>i,sy:()=>A,wy:()=>c});var r=s(8566),a=s(9280),o=s.n(a);let l={untested:"⬜ Untested",pass:"✅ Pass",fail:"❌ Fail",skip:"⏭ Skip",blocked:"\uD83D\uDEAB Blocked"},n=e=>e.replace(/\n/g,"<br>").replace(/\|/g,"\\|");function c(e,t,s){let a=(s.length>0?s:r._X).filter(e=>e.visible),o=a.map(e=>e.label).join(" | "),c=a.map(()=>"---").join(" | "),i="# ".concat(e.code?e.code+" — ":"").concat(e.label,"\n\n");i+="| # | ".concat(o," |\n"),i+="|---|".concat(c,"|\n"),t.forEach((e,t)=>{let s=a.map(t=>"status"===t.key?l[e.status]:n(e[t.key]||""));i+="| ".concat(t+1," | ").concat(s.join(" | ")," |\n")});let d=t.length,x=t.filter(e=>"skip"===e.status).length,f=t.filter(e=>"pass"===e.status).length,u=d-x>0?Math.round(f/(d-x)*100):0;return i+="\n**Pass rate: ".concat(f,"/").concat(d-x," (").concat(u,"%)**\n")}function i(e,t){return JSON.stringify({node:e,testCases:t},null,2)}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 x(e){d(function(e){let t="# ".concat(e.name,"\n\n");for(let x of e.flows){var s,a,o,c,i,d;let f=e.testCases[x.id];if(!f||0===f.length)continue;let u=((null!=(c=null!=(o=null==(s=e.columnConfigs)?void 0:s[x.id])?o:e.columnConfig)?c:[]).length>0?null!=(d=null!=(i=null==(a=e.columnConfigs)?void 0:a[x.id])?i:e.columnConfig)?d:[]:r._X).filter(e=>e.visible),h=u.map(e=>e.label).join(" | "),p=u.map(()=>"---").join(" | ");t+="## ".concat(x.code?x.code+" — ":"").concat(x.label,"\n\n"),t+="| # | ".concat(h," |\n"),t+="|---|".concat(p,"|\n"),f.forEach((e,s)=>{let r=u.map(t=>"status"===t.key?l[e.status]:n(e[t.key]||""));t+="| ".concat(s+1," | ").concat(r.join(" | ")," |\n")});let m=f.length,j=f.filter(e=>"skip"===e.status).length,g=f.filter(e=>"pass"===e.status).length,v=m-j>0?Math.round(g/(m-j)*100):0;t+="\n**Pass rate: ".concat(g,"/").concat(m-j," (").concat(v,"%)**\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(c(e,t,s),"".concat(r,".md"),"text/markdown")}function h(e,t){let s=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(i(e,t),"".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 m(e,t){return t.map(t=>"status"===t.key?l[e.status]:e[t.key]||"")}function j(e){return e.includes(",")||e.includes('"')||e.includes("\n")?'"'.concat(e.replace(/"/g,'""'),'"'):e}function g(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=>j(e.label))].join(","),...t.map((e,t)=>[String(t+1),...m(e,a).map(j)].join(","))].join("\n")}(0,t,s),"".concat(a,".csv"),"text/csv")}function v(e,t){var s,a,o;let l=null!=(o=null!=(a=null==(s=e.columnConfigs)?void 0:s[t])?a:e.columnConfig)?o:[];return l.length>0?l:r._X}function y(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 b(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 k(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(y),r.forEach((e,t)=>{let s={row:t+1};a.forEach(t=>{"status"===t.key?s[t.key]=l[e.status]:s[t.key]=e[t.key]||""}),o.addRow(s).eachCell(b)}),o}async function w(e,t,s){let a=p(s,r._X).filter(e=>e.visible),l=new(o()).Workbook;return l.creator="Ayu Management Tools",k(l,e.label,e.label,t,a),new Blob([await l.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function N(e,t,s){let r=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_"),a=await w(e,t,s),o=URL.createObjectURL(a),l=document.createElement("a");l.href=o,l.download="".concat(r,".xlsx"),l.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=v(e,s.id).filter(e=>e.visible);k(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 A(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 E(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=v(e,s.id).filter(e=>e.visible);t+="# ".concat(s.code?s.code+" — ":"").concat(s.label,"\n"),t+=["#",...a.map(e=>j(e.label))].join(",")+"\n",r.forEach((e,s)=>{let r=[String(s+1),...m(e,a).map(j)];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,9334))},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:()=>l});var r=s(5155),a=s(2115),o=s(4269);function l(e){let{width:t=40,height:s=40,x:l=-1,y:n=-1,strokeDasharray:c="0",squares:i,className:d,...x}=e,f=(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",d),...x,children:[(0,r.jsx)("defs",{children:(0,r.jsx)("pattern",{id:f,width:t,height:s,patternUnits:"userSpaceOnUse",x:l,y:n,children:(0,r.jsx)("path",{d:"M.5 ".concat(s,"V.5H").concat(t),fill:"none",strokeDasharray:c})})}),(0,r.jsx)("rect",{width:"100%",height:"100%",strokeWidth:0,fill:"url(#".concat(f,")")}),i&&(0,r.jsx)("svg",{x:l,y:n,className:"overflow-visible",children:i.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})]})}},9334:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>D});var r=s(5155),a=s(8661),o=s.n(a),l=s(2115),n=s(2619),c=s.n(n),i=s(7246),d=s(158),x=s(5815),f=s(4269);function u(e){let{width:t=40,height:s=40,squares:a=[24,24],className:o,squaresClassName:n,...c}=e,[i,d]=a,[x,u]=(0,l.useState)(null);return(0,r.jsx)("svg",{width:t*i,height:s*d,className:(0,f.cn)("absolute inset-0 h-full w-full border border-gray-400/30",o),...c,children:Array.from({length:i*d}).map((e,a)=>{let o=a%i*t,l=Math.floor(a/i)*s;return(0,r.jsx)("rect",{x:o,y:l,width:t,height:s,className:(0,f.cn)("stroke-gray-400/30 transition-all duration-100 ease-in-out not-[&:hover]:duration-1000",x===a?"fill-gray-300/30":"fill-transparent",n),onMouseEnter:()=>u(a),onMouseLeave:()=>u(null)},a)})})}var h=s(5307),p=s(3350),m=s(2850),j=s(4570);function g(e){let{value:t,startValue:s=0,direction:a="up",delay:o=0,className:n,decimalPlaces:c=0,...i}=e,d=(0,l.useRef)(null),x=(0,p.d)("down"===a?t:s),u=(0,m.z)(x,{damping:60,stiffness:100}),h=(0,j.W)(d,{once:!0,margin:"0px"});return(0,l.useEffect)(()=>{let e=null;return h&&(e=setTimeout(()=>{x.set("down"===a?s:t)},1e3*o)),()=>{null!==e&&clearTimeout(e)}},[x,h,o,t,a,s]),(0,l.useEffect)(()=>u.on("change",e=>{d.current&&(d.current.textContent=Intl.NumberFormat("en-US",{minimumFractionDigits:c,maximumFractionDigits:c}).format(Number(e.toFixed(c))))}),[u,c]),(0,r.jsx)("span",{ref:d,className:(0,f.cn)("inline-block tracking-wider text-black tabular-nums dark:text-white",n),...i,children:s})}var v=s(3648),y=s(7069),b=s(619),k=s(5379);function w(){let e=(0,v._)(["\n linear-gradient(var(--color-background) 0 0) padding-box,\n radial-gradient(","px circle at ","px ","px,\n ",",\n ",",\n var(--color-border) 100%\n ) border-box\n "]);return w=function(){return e},e}function N(){let e=(0,v._)(["\n radial-gradient(","px circle at ","px ","px,\n ",",\n transparent 100%\n )\n "]);return N=function(){return e},e}function C(e){return"orb"===e.mode}function A(e){var t,s,a,o,n,c;let{children:i,className:d,gradientSize:x=200,gradientColor:u="#262626",gradientOpacity:h=.8,gradientFrom:j="#9E7AFF",gradientTo:g="#FE8BBB",mode:v="gradient"}=e,A=C(e)&&null!=(t=e.glowFrom)?t:"#ee4f27",E=C(e)&&null!=(s=e.glowTo)?s:"#6b21ef",L=C(e)&&null!=(a=e.glowAngle)?a:90,M=C(e)&&null!=(o=e.glowSize)?o:420,S=C(e)&&null!=(n=e.glowBlur)?n:60,F=C(e)&&null!=(c=e.glowOpacity)?c:.9,{theme:D,systemTheme:P}=(0,k.D)(),[T,I]=(0,l.useState)(!1);(0,l.useEffect)(()=>I(!0),[]);let B=(0,l.useMemo)(()=>!T||"dark"===("system"===D?P:D),[D,P,T]),W=(0,p.d)(-x),z=(0,p.d)(-x),R=(0,m.z)(W,{stiffness:250,damping:30,mass:.6}),U=(0,m.z)(z,{stiffness:250,damping:30,mass:.6}),O=(0,m.z)(0,{stiffness:300,damping:35}),_=(0,l.useRef)(v),V=(0,l.useRef)(F),H=(0,l.useRef)(x);(0,l.useEffect)(()=>{_.current=v},[v]),(0,l.useEffect)(()=>{V.current=F},[F]),(0,l.useEffect)(()=>{H.current=x},[x]);let Q=(0,l.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"leave";if("orb"===_.current)return void("enter"===e?O.set(V.current):O.set(0));let t=-H.current;W.set(t),z.set(t)},[W,z,O]),q=(0,l.useCallback)(e=>{let t=e.currentTarget.getBoundingClientRect();W.set(e.clientX-t.left),z.set(e.clientY-t.top)},[W,z]);return(0,l.useEffect)(()=>{Q("init")},[Q]),(0,l.useEffect)(()=>{let e=e=>{e.relatedTarget||Q("global")},t=()=>Q("global"),s=()=>{"visible"!==document.visibilityState&&Q("global")};return window.addEventListener("pointerout",e),window.addEventListener("blur",t),document.addEventListener("visibilitychange",s),()=>{window.removeEventListener("pointerout",e),window.removeEventListener("blur",t),document.removeEventListener("visibilitychange",s)}},[Q]),(0,r.jsxs)(y.P.div,{className:(0,f.cn)("group relative isolate overflow-hidden rounded-[inherit] border border-transparent",d),onPointerMove:q,onPointerLeave:()=>Q("leave"),onPointerEnter:()=>Q("enter"),style:{background:(0,b.E)(w(),x,W,z,j,g)},children:[(0,r.jsx)("div",{className:"bg-background absolute inset-px z-20 rounded-[inherit]"}),"gradient"===v&&(0,r.jsx)(y.P.div,{suppressHydrationWarning:!0,className:"pointer-events-none absolute inset-px z-30 rounded-[inherit] opacity-0 transition-opacity duration-300 group-hover:opacity-100",style:{background:(0,b.E)(N(),x,W,z,u),opacity:h}}),"orb"===v&&(0,r.jsx)(y.P.div,{suppressHydrationWarning:!0,"aria-hidden":"true",className:"pointer-events-none absolute z-30",style:{width:M,height:M,x:R,y:U,translateX:"-50%",translateY:"-50%",borderRadius:9999,filter:"blur(".concat(S,"px)"),opacity:O,background:"linear-gradient(".concat(L,"deg, ").concat(A,", ").concat(E,")"),mixBlendMode:B?"screen":"multiply",willChange:"transform, opacity"}}),(0,r.jsx)("div",{className:"relative z-40",children:i})]})}var E=s(9534);let L=["A good QA is a QA who came to work.","It works on my machine — the developer's final words before every hotfix.","QA: because developers can't be trusted to test their own code.","The bug was a feature all along. We just needed better documentation.","If it's not tested, it's broken. If it is tested, it's probably also broken.","Test early, test often, test everything — then watch the deadline slip anyway.","I found 47 bugs today. 45 of them were in the requirements.","The best part of being a QA is telling developers their code doesn't work.","Automated tests: because manually clicking buttons is for interns.","A QA walks into a bar. Orders 1 beer. Orders 0 beers. Orders 99999999 beers. Orders -1 beers. Orders a lizard.","Severity: Critical. Priority: Low. Translation: It's broken but nobody cares.","The test passed in staging. Production had other plans.","My job is to find creative ways to ruin a developer's afternoon.","We don't have bugs. We have undocumented features with unexpected behavior.","The requirements changed. Again. For the third time. This sprint."],M=["Sun Tzu, The Art of QA","Albert Einstein, if he were a tester","Marie Curie, probably","Nikola Tesla, but he'd automate it","Socrates, after finding his first bug","Leonardo da Vinci, testing the flying machine","Isaac Newton, when the apple was a bug","Cleopatra, managing her QA team","Galileo, testing if the earth really spins","Confucius, after reading the requirements"],S=[{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 F(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s)|0;return S[Math.abs(t)%S.length]}function D(){let{projects:e,createProject:t,deleteProject:s,duplicateProject:a,importProject:n,renameProject:f,profile:p,profileInitials:m,confirmDialog:j}=(0,i.M)(),v=Object.values(e),[y,b]=(0,l.useState)(null),[k,w]=(0,l.useState)(""),[N,C]=(0,l.useState)(null),[S,D]=(0,l.useState)(!1),[I,B]=(0,l.useState)(!1),[W,z]=(0,l.useState)(null),[R,U]=(0,l.useState)(null),[O,_]=(0,l.useState)(!1),[V,H]=(0,l.useState)(!1),Q=(0,l.useRef)(null),q=(0,l.useRef)(null);(0,l.useEffect)(()=>{if(!N)return;let e=e=>{Q.current&&!Q.current.contains(e.target)&&C(null)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[N]),(0,l.useEffect)(()=>{(0,E.n)()},[]);let J=(0,l.useMemo)(()=>{let e=v.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=v.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}},[v]),[X,G]=(0,l.useState)(null);(0,l.useEffect)(()=>{let e=Math.floor(Math.random()*L.length),t=Math.floor(Math.random()*M.length);G({fact:L[e],author:M[t]})},[]);let[K,Y]=(0,l.useState)(null),[Z,$]=(0,l.useState)({}),[ee,et]=(0,l.useState)(null),[es,er]=(0,l.useState)(null);function ea(e){let t=Z[e];if(!t)return{color:"var(--text-tertiary)",opacity:.4};let s=(Date.now()-new Date(t).getTime())/36e5;return s<1?{color:"#4CAF50",opacity:1}:s<48?{color:"var(--text-secondary)",opacity:Math.max(.3,1-s/48*.7)}:s<168?{color:"#E57373",opacity:1}:{color:"#E57373",opacity:1,animation:"pulse 2s ease-in-out infinite"}}if((0,l.useEffect)(()=>{try{let e=localStorage.getItem("qa-last-test-activity");if(e){let t=Date.now()-new Date(e).getTime();Y({hours:Math.floor(t/36e5),minutes:Math.floor(t%36e5/6e4),never:!1})}else Y({hours:0,minutes:0,never:!0})}catch(e){Y({hours:0,minutes:0,never:!0})}try{let e=localStorage.getItem("qa-project-activity");$(e?JSON.parse(e):{})}catch(e){$({})}},[]),(0,l.useEffect)(()=>{let e=setInterval(()=>{try{let e=localStorage.getItem("qa-last-test-activity");if(!e)return void Y({hours:0,minutes:0,never:!0});let t=Date.now()-new Date(e).getTime();Y({hours:Math.floor(t/36e5),minutes:Math.floor(t%36e5/6e4),never:!1})}catch(e){}},6e4);return()=>clearInterval(e)},[]),(0,l.useEffect)(()=>{let e=setInterval(()=>{let e=localStorage.getItem("qa-last-test-activity");if(!e)return void Y({hours:0,minutes:0,never:!0});let t=Date.now()-new Date(e).getTime();Y({hours:Math.floor(t/36e5),minutes:Math.floor(t%36e5/6e4),never:!1})},6e4);return()=>clearInterval(e)},[]),0===v.length)return(0,r.jsx)("div",{className:"h-full overflow-auto p-6",children:(0,r.jsx)(x.p,{message:"No projects yet. Create your first project to get started.",action:{label:"+ New Project",onClick:()=>_(!0)}})});let eo=()=>{y&&k.trim()&&f(y,k.trim()),b(null)},el=async(e,t)=>{C(null),await j("⚠️ Hold On!","You won't receive bonus salary if you delete \"".concat(t,'". This action cannot be undone. Are you sure?'))&&s(e)};return(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 h-full overflow-auto relative",children:[(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 absolute inset-0 overflow-hidden pointer-events-none",children:[(0,r.jsx)(u,{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-cffc792ee61617d4 absolute inset-0"})]}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 relative p-6",children:[(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-center justify-between mb-6",children:[(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("h2",{style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 text-lg font-medium",children:"All Projects"}),(0,r.jsxs)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-xs mt-0.5",children:[v.length," project",1!==v.length?"s":""]})]}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 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:()=>_(!0),style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)",borderRadius:"var(--radius-pill)"},className:"jsx-cffc792ee61617d4 px-4 py-2 text-sm font-medium rounded-md transition-opacity hover:opacity-80",children:"+ New Project"}),(0,r.jsx)("button",{onClick:()=>{var e;return null==(e=q.current)?void 0:e.click()},style:{borderColor:"var(--border)",color:"var(--text-secondary)",borderRadius:"var(--radius-pill)"},title:"Import Project",className:"jsx-cffc792ee61617d4 p-2 rounded-md border transition-opacity hover:opacity-80",children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("path",{d:"M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("polyline",{points:"17 8 12 3 7 8",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("line",{x1:"12",y1:"3",x2:"12",y2:"15",className:"jsx-cffc792ee61617d4"})]})}),(0,r.jsx)("input",{ref:q,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=n(r.result);e.ok?z(null):z(e.error||"Import failed")},r.readAsText(s),e.target.value=""},className:"jsx-cffc792ee61617d4 hidden"})]})]}),W&&(0,r.jsxs)("div",{style:{backgroundColor:"var(--status-fail-bg)",color:"var(--status-fail-text)"},className:"jsx-cffc792ee61617d4 mb-4 text-xs px-3 py-2 rounded-lg flex items-center justify-between",children:[(0,r.jsxs)("span",{className:"jsx-cffc792ee61617d4",children:["Import failed: ",W]}),(0,r.jsx)("button",{onClick:()=>z(null),className:"jsx-cffc792ee61617d4 ml-2 font-bold",children:"\\u00d7"})]}),(0,r.jsx)("div",{className:"jsx-cffc792ee61617d4 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-5",children:v.map(e=>{let t=Object.values(e.testCases).flat(),s=t.length,o=t.filter(e=>"pass"===e.status).length,l=t.filter(e=>"fail"===e.status).length,n=t.filter(e=>"skip"===e.status).length,i=t.filter(e=>"untested"===e.status).length,x=t.filter(e=>"blocked"===e.status).length,f=s-n,u=f>0?Math.round(o/f*100):0,p=y===e.id;return(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)",animation:es===e.id?"cardClick 300ms ease-out":"none"},onClick:()=>{er(e.id),setTimeout(()=>er(null),300)},className:"jsx-cffc792ee61617d4 group relative flex flex-col rounded-xl border overflow-hidden transition-all duration-200 hover:shadow-lg hover:border-[var(--border-hover)] cursor-pointer",children:[(0,r.jsxs)("div",{style:{background:"linear-gradient(135deg, #F7F5F1 0%, #EDEAE3 100%)"},className:"jsx-cffc792ee61617d4 relative h-24 overflow-hidden",children:[(0,r.jsx)(h.b,{width:28,height:28,x:-1,y:-1,strokeDasharray:"4 2",className:"text-neutral-400/20"}),(0,r.jsx)("div",{className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 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-cffc792ee61617d4 absolute bottom-0 left-0 right-0 h-1"}),(0,r.jsx)("div",{"data-icon-trigger":!0,style:{backgroundColor:F(e.id).bg,color:ea(e.id).color,opacity:ea(e.id).opacity,animation:ea(e.id).animation||"none",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},onMouseEnter:e=>{e.currentTarget.style.boxShadow="0 4px 16px rgba(0,0,0,0.25)"},onMouseLeave:e=>{e.currentTarget.style.boxShadow="0 2px 8px rgba(0,0,0,0.15)"},onClick:t=>{t.stopPropagation(),et(e.id)},className:"jsx-cffc792ee61617d4 absolute top-4 left-4 w-10 h-10 rounded-lg flex items-center justify-center transition-all duration-300 cursor-pointer hover:scale-105 z-10",children:F(e.id).icon})]}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex-1 p-4 flex flex-col gap-3",children:[p?(0,r.jsx)("input",{autoFocus:!0,value:k,onChange:e=>w(e.target.value),onBlur:eo,onKeyDown:e=>{"Enter"===e.key&&eo(),"Escape"===e.key&&b(null)},style:{borderColor:"var(--accent)",color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 text-sm font-semibold truncate",children:e.name}),(0,r.jsxs)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 flex items-center gap-3 text-xs",children:[(0,r.jsxs)("span",{className:"jsx-cffc792ee61617d4 flex items-center gap-1",children:[(0,r.jsx)(g,{value:e.flows.length,className:"text-xs font-medium",style:{color:"var(--text-primary)"}}),(0,r.jsx)("span",{className:"jsx-cffc792ee61617d4",children:"nodes"})]}),(0,r.jsx)("span",{style:{backgroundColor:"var(--border)"},className:"jsx-cffc792ee61617d4 w-px h-3"}),(0,r.jsxs)("span",{className:"jsx-cffc792ee61617d4 flex items-center gap-1",children:[(0,r.jsx)(g,{value:s,className:"text-xs font-medium",style:{color:"var(--text-primary)"}}),(0,r.jsx)("span",{className:"jsx-cffc792ee61617d4",children:"cases"})]})]}),s>0&&(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 space-y-1",children:[(0,r.jsxs)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 flex items-center justify-between text-[10px]",children:[(0,r.jsx)("span",{className:"jsx-cffc792ee61617d4",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-cffc792ee61617d4",children:[u,"%"]})]}),(0,r.jsx)("div",{style:{backgroundColor:"var(--bg-secondary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 h-full rounded-full transition-all duration-500"})}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 text-[9px] px-1.5 py-0.5 rounded-full",children:[o," pass"]}),l>0&&(0,r.jsxs)("span",{style:{backgroundColor:"var(--status-fail-bg)",color:"var(--status-fail-text)"},className:"jsx-cffc792ee61617d4 text-[9px] px-1.5 py-0.5 rounded-full",children:[l," fail"]}),n>0&&(0,r.jsxs)("span",{style:{backgroundColor:"var(--status-skip-bg)",color:"var(--status-skip-text)"},className:"jsx-cffc792ee61617d4 text-[9px] px-1.5 py-0.5 rounded-full",children:[n," skip"]}),x>0&&(0,r.jsxs)("span",{style:{backgroundColor:"var(--status-blocked-bg)",color:"var(--status-blocked-text)"},className:"jsx-cffc792ee61617d4 text-[9px] px-1.5 py-0.5 rounded-full",children:[x," blocked"]}),i>0&&(0,r.jsxs)("span",{style:{backgroundColor:"var(--status-untested-bg)",color:"var(--status-untested-text)"},className:"jsx-cffc792ee61617d4 text-[9px] px-1.5 py-0.5 rounded-full",children:[i," todo"]})]})]}),(0,r.jsxs)("div",{style:{color:"var(--text-tertiary)",borderColor:"var(--border)"},className:"jsx-cffc792ee61617d4 text-[11px] mt-auto pt-2 border-t flex items-center justify-between",children:[(0,r.jsxs)("span",{className:"jsx-cffc792ee61617d4",children:["Created ",new Date(e.createdAt).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})]}),(0,r.jsxs)(c(),{href:"/projects/".concat(e.id),className:"font-semibold hover:underline transition-all flex items-center gap-0.5",style:{color:"var(--accent)"},onClick:e=>e.stopPropagation(),onMouseEnter:e=>{var t;null==(t=e.currentTarget.querySelector(".arrow"))||t.classList.add("translate-x-0.5")},onMouseLeave:e=>{var t;null==(t=e.currentTarget.querySelector(".arrow"))||t.classList.remove("translate-x-0.5")},children:["Open",(0,r.jsx)("span",{className:"jsx-cffc792ee61617d4 arrow inline-block transition-transform duration-150",children:"→"})]})]})]}),(0,r.jsx)("div",{className:"jsx-cffc792ee61617d4 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(),C(N===e.id?null:e.id)},style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)",color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4",children:[(0,r.jsx)("circle",{cx:"6",cy:"2.5",r:"1",fill:"currentColor",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("circle",{cx:"6",cy:"6",r:"1",fill:"currentColor",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("circle",{cx:"6",cy:"9.5",r:"1",fill:"currentColor",className:"jsx-cffc792ee61617d4"})]})})}),N===e.id&&(0,r.jsxs)("div",{ref:Q,style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)"},className:"jsx-cffc792ee61617d4 absolute top-11 right-3 z-30 py-1 min-w-[140px] border rounded-lg",children:[(0,r.jsxs)("button",{onClick:t=>{t.stopPropagation(),U(e),C(null)},style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4",children:[(0,r.jsx)("path",{d:"M2 2h8v8H2z",stroke:"currentColor",strokeWidth:"1.2",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("line",{x1:"2",y1:"5",x2:"10",y2:"5",stroke:"currentColor",strokeWidth:"1.2",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("line",{x1:"5",y1:"5",x2:"5",y2:"10",stroke:"currentColor",strokeWidth:"1.2",className:"jsx-cffc792ee61617d4"})]}),"Summary"]}),(0,r.jsxs)("button",{onClick:t=>{var s,r;t.stopPropagation(),s=e.id,r=e.name,b(s),w(r),C(null)},style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4",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-cffc792ee61617d4"})}),"Rename"]}),(0,r.jsxs)("button",{onClick:t=>{t.stopPropagation(),a(e.id),C(null)},style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4",children:[(0,r.jsx)("rect",{x:"3.5",y:"3.5",width:"6",height:"6",rx:"1",stroke:"currentColor",strokeWidth:"1.2",className:"jsx-cffc792ee61617d4"}),(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-cffc792ee61617d4"})]}),"Duplicate"]}),(0,r.jsxs)("button",{onClick:t=>{t.stopPropagation(),(0,d.Vj)(e),C(null)},style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4",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-cffc792ee61617d4"}),(0,r.jsx)("polyline",{points:"4 5 6 7 8 5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("line",{x1:"6",y1:"1",x2:"6",y2:"7",stroke:"currentColor",strokeWidth:"1.2",className:"jsx-cffc792ee61617d4"})]}),"Export JSON"]}),(0,r.jsx)("div",{style:{borderColor:"var(--border)"},className:"jsx-cffc792ee61617d4 border-t my-1"}),(0,r.jsxs)("button",{onClick:t=>{t.stopPropagation(),el(e.id,e.name)},style:{color:"var(--status-fail-text)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4",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-cffc792ee61617d4"})}),"Delete"]})]}),(0,r.jsx)(c(),{href:"/projects/".concat(e.id),className:"absolute inset-0 z-0",onClick:()=>C(null)})]},e.id)})}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-cffc792ee61617d4 relative mt-8 pt-6 border-t",children:[(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-center gap-4 mb-4",children:[(0,r.jsx)("div",{style:{border:"1px solid var(--border)"},className:"jsx-cffc792ee61617d4 w-10 h-10 rounded-lg overflow-hidden flex-shrink-0",children:p.avatarUrl?(0,r.jsx)("img",{src:p.avatarUrl,alt:"Avatar",className:"jsx-cffc792ee61617d4 w-full h-full object-cover"}):(0,r.jsx)("div",{style:{backgroundColor:p.bannerColor,color:"#fff"},className:"jsx-cffc792ee61617d4 w-full h-full flex items-center justify-center text-sm font-bold",children:m})}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("div",{style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 text-sm font-medium",children:p.name||"Anonymous Tester"}),(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px]",children:p.role||"No role set"})]})]}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 p-3 rounded-lg border",children:[(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] uppercase tracking-wider mb-1",children:"Projects"}),(0,r.jsx)(g,{value:v.length,className:"text-lg font-semibold",style:{color:"var(--accent)"}})]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},className:"jsx-cffc792ee61617d4 p-3 rounded-lg border",children:[(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] uppercase tracking-wider mb-1",children:"Test Cases"}),(0,r.jsx)(g,{value:J.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-cffc792ee61617d4 p-3 rounded-lg border",children:[(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] uppercase tracking-wider mb-1",children:"Flow Nodes"}),(0,r.jsx)(g,{value:J.totalNodes,className:"text-lg font-semibold",style:{color:"#9E7AFF"}})]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-card)"},className:"jsx-cffc792ee61617d4 p-3 rounded-lg border",children:[(0,r.jsx)("div",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] uppercase tracking-wider mb-1",children:"Pass Rate"}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-baseline gap-0.5",children:[(0,r.jsx)(g,{value:J.overallPassRate,className:"text-lg font-semibold",style:{color:J.overallPassRate>=80?"var(--status-pass-text)":"var(--status-skip-text)"}}),(0,r.jsx)("span",{style:{color:J.overallPassRate>=80?"var(--status-pass-text)":"var(--status-skip-text)"},className:"jsx-cffc792ee61617d4 text-sm font-medium",children:"%"})]})]})]}),X&&(0,r.jsxs)("div",{style:{borderColor:"var(--border)"},className:"jsx-cffc792ee61617d4 mt-4 py-4 border-t",children:[(0,r.jsxs)("p",{style:{color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 text-xs leading-relaxed text-center italic",children:["“",X.fact,"”"]}),(0,r.jsxs)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] text-center mt-1",children:["— ",X.author]})]})]})]}),S&&(0,r.jsx)("div",{style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>D(!1),className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 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-cffc792ee61617d4 px-6 pt-6 pb-5 flex flex-col items-center text-center",children:[(0,r.jsx)("div",{className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4",children:[(0,r.jsx)("path",{d:"M8 16h24v20a8 8 0 01-8 8H16a8 8 0 01-8-8V16z",fill:"#6F4E37",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("path",{d:"M32 20h4a4 4 0 010 8h-4",stroke:"#6F4E37",strokeWidth:"2.5",strokeLinecap:"round",className:"jsx-cffc792ee61617d4"}),(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-cffc792ee61617d4"}),(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-cffc792ee61617d4"}),(0,r.jsx)("rect",{x:"6",y:"38",width:"28",height:"4",rx:"2",fill:"#D7CCC8",className:"jsx-cffc792ee61617d4"})]})}),(0,r.jsx)("h3",{style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 text-base font-semibold mb-2",children:"Please, Buy me a Coffee.."}),(0,r.jsx)("p",{style:{color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 px-6 py-4 border-t",children:[(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] font-semibold uppercase tracking-wider mb-2",children:"Pickup Location"}),(0,r.jsx)("p",{style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 text-sm font-medium mb-1",children:"Toko Kopi TUKU — BSD"}),(0,r.jsx)("p",{style:{color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 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-cffc792ee61617d4 px-6 py-4 border-t flex gap-2",children:[(0,r.jsxs)("div",{onMouseEnter:()=>B(!0),onMouseLeave:()=>B(!1),className:"jsx-cffc792ee61617d4 flex-1 relative",children:[(0,r.jsx)("button",{onClick:()=>D(!1),style:{borderColor:"var(--border)",color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 w-full px-3 py-2.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",children:"Maybe Later"}),I&&(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-cffc792ee61617d4 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-cffc792ee61617d4 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-cffc792ee61617d4 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-cffc792ee61617d4 px-6 py-4 border-t",children:[(0,r.jsx)("p",{style:{color:"var(--text-secondary)",direction:"rtl"},className:"jsx-cffc792ee61617d4 text-xs text-center leading-relaxed mb-3",children:"اِنَّ الْمُصَّدِّقِيْنَ وَالْمُصَّدِّقٰتِ وَاَقْرَضُوا اللّٰهَ قَرْضًا حَسَنًا يُّضٰعَفُ لَهُمْ وَلَهُمْ اَجْرٌ كَرِيْمٌ ١٨"}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 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:"cffc792ee61617d4",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)}}@keyframes cardClick{0%{transform:scale(1)}50%{transform:scale(.97)}100%{transform:scale(1)}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}"}),R&&(0,r.jsx)(T,{project:R,onClose:()=>U(null)}),ee&&(()=>{let e=v.find(e=>e.id===ee);return e?(0,r.jsx)("div",{style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>et(null),className:"jsx-cffc792ee61617d4 fixed inset-0 z-[450] 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-cffc792ee61617d4 w-full max-w-sm mx-4 rounded-xl border p-5",children:[(0,r.jsx)("h4",{style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 text-sm font-semibold mb-1",children:"Activity Status"}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[11px] mb-4",children:"The project icon changes color based on how recently you've worked on it. Here's what each state means:"}),(0,r.jsxs)("div",{style:{color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 flex flex-col gap-3 text-[11px]",children:[(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-start gap-3",children:[(0,r.jsx)("div",{style:{backgroundColor:"#E8F5E9",color:"#4CAF50"},className:"jsx-cffc792ee61617d4 w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",children:(0,r.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-cffc792ee61617d4",children:(0,r.jsx)("polyline",{points:"20 6 9 17 4 12",className:"jsx-cffc792ee61617d4"})})}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("p",{style:{color:"#4CAF50"},className:"jsx-cffc792ee61617d4 font-medium",children:"Active (< 1 hour)"}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px]",children:"You just worked on this project. The icon glows green — keep up the momentum!"})]})]}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-start gap-3",children:[(0,r.jsx)("div",{style:{backgroundColor:"var(--bg-secondary)",color:"var(--text-secondary)",opacity:.7},className:"jsx-cffc792ee61617d4 w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("circle",{cx:"12",cy:"12",r:"10",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("polyline",{points:"12 6 12 12 16 14",className:"jsx-cffc792ee61617d4"})]})}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("p",{style:{color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 font-medium",children:"Cooling down (1–48 hours)"}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px]",children:"It's been a while since you last worked on this. The icon fades gradually — time to check in?"})]})]}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-start gap-3",children:[(0,r.jsx)("div",{style:{backgroundColor:"#FFEBEE",color:"#E57373"},className:"jsx-cffc792ee61617d4 w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("path",{d:"M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("line",{x1:"12",y1:"9",x2:"12",y2:"13",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("line",{x1:"12",y1:"17",x2:"12.01",y2:"17",className:"jsx-cffc792ee61617d4"})]})}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("p",{style:{color:"#E57373"},className:"jsx-cffc792ee61617d4 font-medium",children:"Neglected (48+ hours)"}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px]",children:"This project hasn't seen activity in days. The icon turns red — your test cases are missing you!"})]})]}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-start gap-3",children:[(0,r.jsx)("div",{style:{backgroundColor:"#FFEBEE",color:"#E57373",animation:"pulse 2s ease-in-out infinite"},className:"jsx-cffc792ee61617d4 w-8 h-8 rounded-lg flex items-center justify-center flex-shrink-0",children:(0,r.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("path",{d:"M18 8A6 6 0 006 8c0 7-3 9-3 9h18s-3-2-3-9",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("path",{d:"M13.73 21a2 2 0 01-3.46 0",className:"jsx-cffc792ee61617d4"})]})}),(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("p",{style:{color:"#E57373"},className:"jsx-cffc792ee61617d4 font-medium",children:"SOS mode (1+ week)"}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px]",children:"It's been over a week! The icon pulses red urgently — someone might need to check on this project."})]})]})]}),(0,r.jsx)("div",{style:{borderColor:"var(--border)"},className:"jsx-cffc792ee61617d4 mt-4 pt-3 border-t",children:(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-center justify-between mb-3",children:[(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("p",{style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 text-[11px] font-medium",children:"Activity tracking"}),(0,r.jsxs)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px]",children:["Last active: ",function(e){let t=Z[e];return t?new Date(t).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"}):"No activity recorded yet"}(e.id)]})]}),(0,r.jsx)("button",{onClick:()=>{et(null),H(!0)},style:{backgroundColor:"#4CAF50"},title:"Toggle activity tracking",className:"jsx-cffc792ee61617d4 relative w-10 h-5 rounded-full transition-colors",children:(0,r.jsx)("div",{style:{left:"2px",transform:"translateX(0)"},className:"jsx-cffc792ee61617d4 absolute top-0.5 w-4 h-4 rounded-full bg-white shadow transition-transform"})})]})})]})}):null})(),O&&(0,r.jsx)(P,{profileName:p.name,onClose:()=>_(!1),onSubmit:(e,s)=>{t(e,s),_(!1)}}),K&&(0,r.jsx)("div",{style:{animation:"fadeInUp 300ms ease-out"},className:"jsx-cffc792ee61617d4 fixed bottom-4 right-4 z-30",children:(0,r.jsx)(A,{className:"rounded-lg",gradientColor:"#6F4E37",gradientOpacity:.15,gradientFrom:"#6F4E37",gradientTo:"#D7CCC8",children:(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 flex items-center gap-2 px-4 py-2.5",children:[(0,r.jsx)("div",{className:"jsx-cffc792ee61617d4 flex-1",children:(0,r.jsx)("p",{style:{color:"#6F4E37"},className:"jsx-cffc792ee61617d4 text-[11px] font-medium leading-snug",children:K.never?"You haven't done any testing yet, ".concat(p.name||"buddy",".. go to work!"):"It's been ".concat(K.hours,"h ").concat(K.minutes,"m since you do testing, ").concat(p.name||"buddy",".. go to work!")})}),(0,r.jsx)("button",{onClick:()=>H(!0),style:{color:"rgba(111,78,55,0.5)"},title:"Dismiss",className:"jsx-cffc792ee61617d4 flex-shrink-0 w-5 h-5 flex items-center justify-center rounded-full text-[10px] font-bold transition-colors hover:bg-black/5",children:"\xd7"})]})})}),V&&(0,r.jsx)("div",{style:{backgroundColor:"rgba(0,0,0,0.4)",animation:"fadeIn 150ms ease-out"},onClick:()=>H(!1),className:"jsx-cffc792ee61617d4 fixed inset-0 z-[500] 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-cffc792ee61617d4 w-full max-w-sm mx-4 rounded-xl border overflow-hidden",children:[(0,r.jsxs)("div",{className:"jsx-cffc792ee61617d4 px-6 pt-6 pb-4 text-center",children:[(0,r.jsx)("div",{style:{backgroundColor:"var(--status-skip-bg)"},className:"jsx-cffc792ee61617d4 w-14 h-14 mx-auto mb-4 rounded-full flex items-center justify-center",children:(0,r.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-cffc792ee61617d4",children:[(0,r.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2",className:"jsx-cffc792ee61617d4"}),(0,r.jsx)("path",{d:"M7 11V7a5 5 0 0110 0v4",className:"jsx-cffc792ee61617d4"})]})}),(0,r.jsx)("h3",{style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 text-base font-semibold mb-2",children:"Premium Feature"}),(0,r.jsxs)("p",{style:{color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 text-xs leading-relaxed mb-4",children:["Closing the gaslight feature is only available for ",(0,r.jsx)("strong",{className:"jsx-cffc792ee61617d4",children:"Premium Users"}),". To upgrade, please transfer to the following VA:"]}),(0,r.jsxs)("div",{style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},className:"jsx-cffc792ee61617d4 px-4 py-3 rounded-lg border mb-4",children:[(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] uppercase tracking-wider mb-1",children:"Virtual Account"}),(0,r.jsx)("p",{style:{color:"var(--text-primary)"},className:"jsx-cffc792ee61617d4 text-sm font-mono font-semibold",children:"0895 332 333 587"}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] mt-1",children:"a/n Qois Ramadhani"})]}),(0,r.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-cffc792ee61617d4 text-[10px] italic",children:"*This is a joke. Please don't actually transfer. Or do. I won't stop you."})]}),(0,r.jsx)("div",{className:"jsx-cffc792ee61617d4 px-6 pb-5",children:(0,r.jsx)("button",{onClick:()=>H(!1),style:{borderColor:"var(--border)",color:"var(--text-secondary)"},className:"jsx-cffc792ee61617d4 w-full px-3 py-2.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",children:"Fine, I'll keep being gaslit"})})]})})]})}function P(e){let{profileName:t,onClose:s,onSubmit:a}=e,[o,n]=(0,l.useState)(""),[c,i]=(0,l.useState)(""),d=(0,l.useRef)(null);(0,l.useEffect)(()=>{var e;null==(e=d.current)||e.focus()},[]);let x=()=>{o.trim()&&a(o.trim(),c)};return(0,r.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:s,children:(0,r.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl border p-5",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("h3",{className:"text-sm font-semibold mb-4",style:{color:"var(--text-primary)"},children:"New Project"}),(0,r.jsx)("label",{className:"text-[10px] font-medium uppercase tracking-wider mb-1.5 block",style:{color:"var(--text-tertiary)"},children:"Project Name"}),(0,r.jsx)("input",{ref:d,value:o,onChange:e=>n(e.target.value),onKeyDown:e=>{"Enter"===e.key&&x()},placeholder:"Enter project name...",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)"}}),(0,r.jsxs)("label",{className:"text-[10px] font-medium uppercase tracking-wider mb-1.5 block",style:{color:"var(--text-tertiary)"},children:["Project Type ",(0,r.jsx)("span",{style:{color:"var(--text-tertiary)",fontWeight:400},children:"(optional)"})]}),(0,r.jsxs)("select",{value:c,onChange:e=>i(e.target.value),className:"w-full px-3 py-2 text-sm rounded-lg border outline-none transition-colors focus:border-[var(--accent)] mb-4 cursor-pointer",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)",color:c?"var(--text-primary)":"var(--text-tertiary)"},children:[(0,r.jsx)("option",{value:"",children:"Select type..."}),(0,r.jsx)("option",{value:"Dashboard",children:"Dashboard"}),(0,r.jsx)("option",{value:"Website",children:"Website"}),(0,r.jsx)("option",{value:"Gak Jelas",children:"Gak Jelas"})]}),(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"relative group/tested",children:[(0,r.jsxs)("span",{className:"text-[10px] italic",style:{color:"var(--text-tertiary)"},children:["Tested by ",t||"Anonymous"]}),(0,r.jsx)("div",{className:"absolute bottom-full left-0 mb-1 px-2 py-1 text-[9px] rounded whitespace-nowrap opacity-0 group-hover/tested:opacity-100 transition-opacity pointer-events-none",style:{backgroundColor:"var(--text-primary)",color:"var(--bg-primary)"},children:"just kidding, you will ask AI to do it anyway"})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:s,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,r.jsx)("button",{onClick:x,disabled:!o.trim(),className:"px-3 py-1.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80 disabled:opacity-30",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)"},children:"Create"})]})]})]})})}function T(e){let{project:t,onClose:s}=e,{updateProject:a}=(0,i.M)(),[o,n]=(0,l.useState)("all"),[c,d]=(0,l.useState)(!1),x=Object.values(t.testCases).flat(),f=x.length,u=x.filter(e=>"pass"===e.status).length;x.filter(e=>"fail"===e.status).length;let h=x.filter(e=>"skip"===e.status).length;x.filter(e=>"untested"===e.status).length;let p=f-h,m=p>0?Math.round(u/p*100):0,j="all"===o?x:x.filter(e=>e.status===o),g=new Map(t.flows.map(e=>[e.id,e])),v=(()=>{try{let e=localStorage.getItem("qa-project-activity"),s=(e?JSON.parse(e):{})[t.id];if(!s)return null;return new Date(s).toLocaleString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"})}catch(e){return null}})();return(0,r.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:s,children:(0,r.jsxs)("div",{className:"w-full max-w-lg mx-4 rounded-xl border overflow-hidden max-h-[80vh] flex flex-col",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"px-5 py-4 border-b",style:{borderColor:"var(--border)"},children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold flex-1",style:{color:"var(--text-primary)"},children:t.name}),(0,r.jsx)("button",{onClick:s,className:"text-[10px] opacity-50 hover:opacity-100",style:{color:"var(--text-tertiary)"},children:"\xd7"})]}),v?(0,r.jsxs)("p",{className:"text-[10px] mt-1",style:{color:"var(--text-tertiary)"},children:["Last worked on ",v]}):(0,r.jsx)("p",{className:"text-[10px] mt-1",style:{color:"var(--text-tertiary)"},children:"No activity recorded yet"})]}),(0,r.jsxs)("div",{className:"px-5 py-3 flex gap-4 text-xs border-b items-center",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:[(0,r.jsxs)("span",{children:["Cases: ",(0,r.jsx)("strong",{style:{color:"var(--text-primary)"},children:f})]}),(0,r.jsxs)("span",{children:["Pass: ",(0,r.jsx)("strong",{style:{color:"var(--status-pass-text)"},children:u})]}),(0,r.jsxs)("span",{children:["Rate: ",(0,r.jsxs)("strong",{style:{color:m>=80?"var(--status-pass-text)":"var(--status-fail-text)"},children:[m,"%"]})]}),c?(0,r.jsxs)("select",{value:t.type||"",onChange:e=>{a(t.id,t=>({...t,type:e.target.value})),d(!1)},onBlur:()=>d(!1),className:"px-1 py-0.5 text-[11px] rounded border outline-none cursor-pointer",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)",color:"var(--text-primary)"},autoFocus:!0,children:[(0,r.jsx)("option",{value:"",children:"None"}),(0,r.jsx)("option",{value:"Dashboard",children:"Dashboard"}),(0,r.jsx)("option",{value:"Website",children:"Website"}),(0,r.jsx)("option",{value:"Gak Jelas",children:"Gak Jelas"})]}):(0,r.jsxs)("span",{className:"flex items-center gap-1",children:["Type: ",(0,r.jsx)("strong",{style:{color:"var(--text-primary)"},children:t.type||"Not set"}),(0,r.jsx)("button",{onClick:()=>d(!0),className:"text-[9px] hover:underline",style:{color:"var(--accent)"},children:"edit"})]})]}),(0,r.jsx)("div",{className:"px-5 py-2 flex gap-1.5 border-b",style:{borderColor:"var(--border)"},children:[["all","All"],["pass","Pass"],["fail","Fail"],["skip","Skip"],["untested","Untested"],["blocked","Blocked"]].map(e=>{let[t,s]=e,a=o===t,l={all:{bg:"var(--bg-secondary)",text:"var(--text-secondary)"},pass:{bg:"var(--status-pass-bg)",text:"var(--status-pass-text)"},fail:{bg:"var(--status-fail-bg)",text:"var(--status-fail-text)"},skip:{bg:"var(--status-skip-bg)",text:"var(--status-skip-text)"},untested:{bg:"var(--status-untested-bg)",text:"var(--status-untested-text)"},blocked:{bg:"var(--status-blocked-bg)",text:"var(--status-blocked-text)"}}[t];return(0,r.jsx)("button",{onClick:()=>n(t),className:"px-2 py-0.5 text-[10px] font-medium rounded-full border transition-colors",style:{backgroundColor:a?l.bg:"transparent",color:a?l.text:"var(--text-tertiary)",borderColor:a?"transparent":"var(--border)"},children:s},t)})}),(0,r.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,r.jsxs)("table",{className:"w-full text-xs",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"text-left px-5 py-2 text-[10px] font-medium",style:{color:"var(--text-tertiary)"},children:"Node"}),(0,r.jsx)("th",{className:"text-left px-5 py-2 text-[10px] font-medium",style:{color:"var(--text-tertiary)"},children:"Test Case"})]})}),(0,r.jsx)("tbody",{children:0===j.length?(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:2,className:"px-5 py-4 text-center",style:{color:"var(--text-tertiary)"},children:"No test cases"})}):j.map(e=>{var s;let a=g.get(e.id.split("-")[0])||t.flows.find(s=>{var r;return(null!=(r=t.testCases[s.id])?r:[]).some(t=>t.id===e.id)});return(0,r.jsxs)("tr",{className:"border-t",style:{borderColor:"var(--border)"},children:[(0,r.jsx)("td",{className:"px-5 py-1.5 font-mono",style:{color:"var(--text-tertiary)"},children:null!=(s=null==a?void 0:a.label)?s:"—"}),(0,r.jsx)("td",{className:"px-5 py-1.5",style:{color:"var(--text-primary)"},children:e.title})]},e.id)})})]})}),(0,r.jsx)("div",{className:"border-t flex-shrink-0",style:{borderColor:"var(--border)"},children:t.notes?(0,r.jsxs)("div",{className:"px-5 py-3 text-xs",style:{color:"var(--text-secondary)"},children:[(0,r.jsx)("div",{className:"font-medium mb-1",style:{color:"var(--text-tertiary)"},children:"Notes"}),(0,r.jsx)("div",{className:"whitespace-pre-wrap leading-relaxed max-h-24 overflow-y-auto",children:t.notes})]}):(0,r.jsx)("div",{className:"px-5 py-2 text-[10px]",style:{color:"var(--text-tertiary)"},children:"No notes added yet"})})]})})}},9534:(e,t,s)=>{"use strict";s.d(t,{n:()=>x});var r=s(8566);let a="mock-dashboard-project",o="node-login",l="node-dashboard",n="node-settings",c=[{id:o,code:"N-001",label:"Login Page",parentId:null,children:[l],shape:"rounded",notes:"User authentication flow",position:{x:250,y:100}},{id:l,code:"N-002",label:"Dashboard",parentId:o,children:[n],shape:"rounded",notes:"Main dashboard view after login",position:{x:250,y:250}},{id:n,code:"N-003",label:"Settings",parentId:l,children:[],shape:"rounded",notes:"User settings and preferences",position:{x:250,y:400}}],i=[{id:"edge-1",fromId:o,toId:l,type:"plain"},{id:"edge-2",fromId:l,toId:n,type:"plain"}],d={[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}],[l]:[{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}],[n]:[{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}]};function x(){let e="qa-dashboard";try{let t=localStorage.getItem(e),s=t?JSON.parse(t):{projects:{},activeProjectId:null,selectedNodeId:null},x=!1;s.projects[a]||(s.projects[a]={id:a,name:"Simple Dashboard QA",notes:"",createdAt:new Date().toISOString(),flows:c,testCases:d,columnConfig:[...r._X],columnConfigs:{},edges:i,userProfile:{name:"Ayu",bannerColor:"#81C784",role:"QA Engineer"},nodeCounter:3,tcCounter:{[o]:3,[l]:2,[n]:1}},s.activeProjectId=a,x=!0),x&&localStorage.setItem(e,JSON.stringify(s))}catch(e){}}}},e=>{e.O(0,[343,909,793,619,172,246,441,255,358],()=>e(e.s=2053)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,669,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,669,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,669,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,669,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,669,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[298,380,435,669,941,986],{4441:()=>{}},_=>{_.O(0,[441,255,358],()=>_(_.s=4441)),_N_E=_.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[520],{265:(e,t,r)=>{"use strict";r.d(t,{Vx:()=>c,p1:()=>l});var a=r(5155),s=r(2115);let n=(0,s.createContext)(null);function l(){let e=(0,s.useContext)(n);if(!e)throw Error("useProgress must be used within ProgressProvider");return e}function c(e){let{children:t}=e,[r,l]=(0,s.useState)(0),[c,i]=(0,s.useState)(""),[o,d]=(0,s.useState)(!1),u=(0,s.useRef)(null),x=(0,s.useRef)(null),f=(0,s.useCallback)(()=>{u.current&&(clearInterval(u.current),u.current=null),x.current&&(clearTimeout(x.current),x.current=null)},[]),m=(0,s.useCallback)(()=>{d(!1),l(0),i("")},[]),h=(0,s.useCallback)(e=>{f(),l(0),i(e||""),d(!0),u.current=setInterval(()=>{l(e=>e>=90?(u.current&&clearInterval(u.current),u.current=null,90):e+15*Math.random())},300),x.current=setTimeout(()=>{m()},8e3)},[f,m]),p=(0,s.useCallback)((e,t)=>{l(Math.min(95,e)),t&&i(t)},[]),g=(0,s.useCallback)(e=>{f(),l(100),e&&i(e),setTimeout(()=>{m()},500)},[f,m]),v=(0,s.useCallback)(()=>{f(),m()},[f,m]);return(0,s.useEffect)(()=>()=>f(),[f]),(0,a.jsxs)(n.Provider,{value:{startProgress:h,updateProgress:p,completeProgress:g,cancelProgress:v,isProgressing:o},children:[t,(0,a.jsxs)("div",{className:"fixed bottom-0 left-0 right-0 z-[600] transition-all duration-300 ease-out",style:{opacity:+!!o,transform:o?"translateY(0)":"translateY(100%)",pointerEvents:o?"auto":"none"},children:[(0,a.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:"var(--bg-secondary)"},children:(0,a.jsx)("div",{className:"h-full transition-all duration-200 ease-out",style:{width:"".concat(r,"%"),backgroundColor:r>=100?"var(--status-pass-text)":"var(--accent)",boxShadow:r>=100?"0 0 10px var(--status-pass-text)":"none"}})}),c&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-2 px-4 text-xs font-medium cursor-pointer",onClick:v,style:{backgroundColor:"var(--bg-card)",color:r>=100?"var(--status-pass-text)":"var(--text-secondary)",borderTop:"1px solid var(--border)"},children:[r>=100&&(0,a.jsx)("svg",{className:"mr-2",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,a.jsx)("path",{d:"M2 6l3 3 5-5",stroke:"var(--status-pass-text)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),c]})]})]})}},854:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var a=r(2115);let s="qa-auth";function n(e){try{sessionStorage.setItem(s,JSON.stringify(e))}catch(e){}}function l(){let[e,t]=(0,a.useState)({name:"",isLoggedIn:!1}),[r,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t(function(){try{let e=sessionStorage.getItem(s);if(!e)return{name:"",isLoggedIn:!1};return JSON.parse(e)}catch(e){return{name:"",isLoggedIn:!1}}}()),l(!0)},[]);let c=(0,a.useCallback)(e=>{let r={name:e,isLoggedIn:!0};n(r),t(r)},[]),i=(0,a.useCallback)(()=>{let e={name:"",isLoggedIn:!1};n(e),t(e)},[]);return{...e,loaded:r,login:c,logout:i}}},1343:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>j});var a=r(5155),s=r(8661),n=r.n(s),l=r(2115),c=r(63),i=r(4269);function o(e){let{borderWidth:t=1,duration:r=14,shineColor:s="#000000",className:n,style:l,...c}=e;return(0,a.jsx)("div",{style:{"--border-width":"".concat(t,"px"),"--duration":"".concat(r,"s"),backgroundImage:"radial-gradient(transparent,transparent, ".concat(Array.isArray(s)?s.join(","):s,",transparent,transparent)"),backgroundSize:"300% 300%",mask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",maskComposite:"exclude",padding:"var(--border-width)",...l},className:(0,i.cn)("motion-safe:animate-shine pointer-events-none absolute inset-0 size-full rounded-[inherit] will-change-[background-position]",n),...c})}let d=e=>{let{className:t="",quantity:r=100,staticity:s=50,ease:n=50,size:c=.4,refresh:o=!1,color:d="#ffffff",vx:u=0,vy:x=0,...f}=e,m=(0,l.useRef)(null),h=(0,l.useRef)(null),p=(0,l.useRef)(null),g=(0,l.useRef)([]),v=function(){let[e,t]=(0,l.useState)({x:0,y:0});return(0,l.useEffect)(()=>{let e=e=>{t({x:e.clientX,y:e.clientY})};return window.addEventListener("mousemove",e),()=>{window.removeEventListener("mousemove",e)}},[]),e}(),y=(0,l.useRef)({x:0,y:0}),b=(0,l.useRef)({w:0,h:0}),j=window.devicePixelRatio,w=(0,l.useRef)(null),k=(0,l.useRef)(null),N=(0,l.useRef)(()=>{}),C=(0,l.useRef)(()=>{}),F=(0,l.useRef)(()=>{});(0,l.useEffect)(()=>{m.current&&(p.current=m.current.getContext("2d")),N.current(),F.current();let e=()=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{N.current()},200)};return window.addEventListener("resize",e),()=>{null!=w.current&&window.cancelAnimationFrame(w.current),k.current&&clearTimeout(k.current),window.removeEventListener("resize",e)}},[d]),(0,l.useEffect)(()=>{C.current()},[v.x,v.y]),(0,l.useEffect)(()=>{N.current()},[o]);let E=()=>{let e=Math.floor(Math.random()*b.current.w),t=Math.floor(Math.random()*b.current.h),r=Math.floor(2*Math.random())+c;return{x:e,y:t,translateX:0,translateY:0,size:r,alpha:0,targetAlpha:parseFloat((.6*Math.random()+.1).toFixed(1)),dx:(Math.random()-.5)*.1,dy:(Math.random()-.5)*.1,magnetism:.1+4*Math.random()}},M=function(e){3===(e=e.replace("#","")).length&&(e=e.split("").map(e=>e+e).join(""));let t=parseInt(e,16);return[t>>16&255,t>>8&255,255&t]}(d),A=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(p.current){let{x:r,y:a,translateX:s,translateY:n,size:l,alpha:c}=e;p.current.translate(s,n),p.current.beginPath(),p.current.arc(r,a,l,0,2*Math.PI),p.current.fillStyle="rgba(".concat(M.join(", "),", ").concat(c,")"),p.current.fill(),p.current.setTransform(j,0,0,j,0,0),t||g.current.push(e)}},R=()=>{p.current&&p.current.clearRect(0,0,b.current.w,b.current.h)};return N.current=()=>{(()=>{if(h.current&&m.current&&p.current){b.current.w=h.current.offsetWidth,b.current.h=h.current.offsetHeight,m.current.width=b.current.w*j,m.current.height=b.current.h*j,m.current.style.width="".concat(b.current.w,"px"),m.current.style.height="".concat(b.current.h,"px"),p.current.scale(j,j),g.current=[];for(let e=0;e<r;e++)A(E())}})(),(()=>{R();for(let e=0;e<r;e++)A(E())})()},C.current=()=>{if(m.current){let e=m.current.getBoundingClientRect(),{w:t,h:r}=b.current,a=v.x-e.left-t/2,s=v.y-e.top-r/2;a<t/2&&a>-t/2&&s<r/2&&s>-r/2&&(y.current.x=a,y.current.y=s)}},F.current=()=>{R(),g.current.forEach((e,t)=>{let r=parseFloat(((e,t,r,a,s)=>{let n=(e-t)*(s-a)/(r-t)+a;return n>0?n:0})([e.x+e.translateX-e.size,b.current.w-e.x-e.translateX-e.size,e.y+e.translateY-e.size,b.current.h-e.y-e.translateY-e.size].reduce((e,t)=>Math.min(e,t)),0,20,0,1).toFixed(2));r>1?(e.alpha+=.02,e.alpha>e.targetAlpha&&(e.alpha=e.targetAlpha)):e.alpha=e.targetAlpha*r,e.x+=e.dx+u,e.y+=e.dy+x,e.translateX+=(y.current.x/(s/e.magnetism)-e.translateX)/n,e.translateY+=(y.current.y/(s/e.magnetism)-e.translateY)/n,A(e,!0),(e.x<-e.size||e.x>b.current.w+e.size||e.y<-e.size||e.y>b.current.h+e.size)&&(g.current.splice(t,1),A(E()))}),w.current=window.requestAnimationFrame(F.current)},(0,a.jsx)("div",{className:(0,i.cn)("pointer-events-none",t),ref:h,"aria-hidden":"true",...f,children:(0,a.jsx)("canvas",{ref:m,className:"size-full"})})},u=e=>{let{texts:t}=e,{text1Ref:r,text2Ref:s}=(e=>{let t=(0,l.useRef)(0),r=(0,l.useRef)(0),a=(0,l.useRef)(0),s=(0,l.useRef)(new Date),n=(0,l.useRef)(null),c=(0,l.useRef)(null),i=(0,l.useCallback)(r=>{let[a,s]=[n.current,c.current];if(!a||!s)return;s.style.filter="blur(".concat(Math.min(8/r-8,100),"px)"),s.style.opacity="".concat(100*Math.pow(r,.4),"%");let l=1-r;a.style.filter="blur(".concat(Math.min(8/l-8,100),"px)"),a.style.opacity="".concat(100*Math.pow(l,.4),"%"),a.textContent=e[t.current%e.length],s.textContent=e[(t.current+1)%e.length]},[e]),o=(0,l.useCallback)(()=>{r.current-=a.current,a.current=0;let e=r.current/1.5;e>1&&(a.current=.5,e=1),i(e),1===e&&t.current++},[i]),d=(0,l.useCallback)(()=>{r.current=0;let[e,t]=[n.current,c.current];e&&t&&(t.style.filter="none",t.style.opacity="100%",e.style.filter="none",e.style.opacity="0%")},[]);return(0,l.useEffect)(()=>{let e,t=()=>{e=requestAnimationFrame(t);let r=new Date,n=(r.getTime()-s.current.getTime())/1e3;s.current=r,a.current-=n,a.current<=0?o():d()};return t(),()=>{cancelAnimationFrame(e)}},[o,d]),{text1Ref:n,text2Ref:c}})(t);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"absolute inset-x-0 top-0 m-auto inline-block w-full",ref:r}),(0,a.jsx)("span",{className:"absolute inset-x-0 top-0 m-auto inline-block w-full",ref:s})]})},x=()=>(0,a.jsx)("svg",{id:"filters",className:"fixed h-0 w-0",preserveAspectRatio:"xMidYMid slice",children:(0,a.jsx)("defs",{children:(0,a.jsx)("filter",{id:"threshold",children:(0,a.jsx)("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 255 -140"})})})}),f=e=>{let{texts:t,className:r}=e;return(0,a.jsxs)("div",{className:(0,i.cn)("relative mx-auto h-16 w-full max-w-3xl text-center font-sans text-[40pt] leading-none font-bold filter-[url(#threshold)_blur(0.6px)] md:h-24 lg:text-[6rem]",r),children:[(0,a.jsx)(u,{texts:t}),(0,a.jsx)(x,{})]})};var m=r(7786);let h=e=>{let{id:t,x:r,y:s,color:n,delay:l,scale:c}=e;return(0,a.jsx)(m.P.svg,{className:"pointer-events-none absolute z-20",initial:{opacity:0,left:r,top:s},animate:{opacity:[0,1,0],scale:[0,c,0],rotate:[75,120,150]},transition:{duration:.8,repeat:1/0,delay:l},width:"21",height:"21",viewBox:"0 0 21 21",children:(0,a.jsx)("path",{d:"M9.82531 0.843845C10.0553 0.215178 10.9446 0.215178 11.1746 0.843845L11.8618 2.72026C12.4006 4.19229 12.3916 6.39157 13.5 7.5C14.6084 8.60843 16.8077 8.59935 18.2797 9.13822L20.1561 9.82534C20.7858 10.0553 20.7858 10.9447 20.1561 11.1747L18.2797 11.8618C16.8077 12.4007 14.6084 12.3916 13.5 13.5C12.3916 14.6084 12.4006 16.8077 11.8618 18.2798L11.1746 20.1562C10.9446 20.7858 10.0553 20.7858 9.82531 20.1562L9.13819 18.2798C8.59932 16.8077 8.60843 14.6084 7.5 13.5C6.39157 12.3916 4.19225 12.4007 2.72023 11.8618L0.843814 11.1747C0.215148 10.9447 0.215148 10.0553 0.843814 9.82534L2.72023 9.13822C4.19225 8.59935 6.39157 8.60843 7.5 7.5C8.60843 6.39157 8.59932 4.19229 9.13819 2.72026L9.82531 0.843845Z",fill:n})},t)},p=e=>{let{children:t,colors:r={first:"#9E7AFF",second:"#FE8BBB"},className:s,sparklesCount:n=10,...c}=e,[o,d]=(0,l.useState)([]);return(0,l.useEffect)(()=>{let e=()=>{let e="".concat(100*Math.random(),"%"),t="".concat(100*Math.random(),"%"),a=Math.random()>.5?r.first:r.second,s=2*Math.random(),n=+Math.random()+.3,l=10*Math.random()+5;return{id:"".concat(e,"-").concat(t,"-").concat(Date.now()),x:e,y:t,color:a,delay:s,scale:n,lifespan:l}};d(Array.from({length:n},e));let t=setInterval(()=>{d(t=>t.map(t=>t.lifespan<=0?e():{...t,lifespan:t.lifespan-.1}))},100);return()=>clearInterval(t)},[r.first,r.second,n]),(0,a.jsx)("div",{className:(0,i.cn)("text-6xl font-bold",s),...c,style:{"--sparkles-first-color":"".concat(r.first),"--sparkles-second-color":"".concat(r.second)},children:(0,a.jsxs)("span",{className:"relative inline-block",children:[o.map(e=>(0,a.jsx)(h,{...e},e.id)),(0,a.jsx)("strong",{children:t})]})})};var g=r(854),v=r(265),y=r(1708),b=r(778);function j(){let e=(0,c.useRouter)(),{login:t}=(0,g.A)(),{startProgress:r,completeProgress:s}=(0,v.p1)(),[i,u]=(0,l.useState)(""),[x,m]=(0,l.useState)(!1),[h,j]=(0,l.useState)(""),[w,k]=(0,l.useState)(!1),[N,C]=(0,l.useState)(null),[F,E]=(0,l.useState)(!0),M=(0,l.useRef)(null),A=(0,l.useRef)(null),R=(0,l.useRef)(null);(0,l.useEffect)(()=>{var e;null==(e=M.current)||e.focus()},[]),(0,l.useEffect)(()=>{fetch("/api/weather").then(e=>e.json()).then(e=>{e.error||C(e)}).catch(()=>{}).finally(()=>E(!1))},[]),(0,l.useEffect)(()=>{if(A.current&&!x)try{let e=new b.j({canvas:A.current,src:"https://lottie.host/5a1f1ad0-5c7c-4b9f-bf7e-af80932fa825/bcLfZ9imY4.lottie",autoplay:!0,loop:!0});return R.current=e,()=>{e.destroy(),R.current=null}}catch(e){}},[x]);let S=(0,l.useCallback)(()=>{let e=Date.now()+2e3,t=["#A8A49E","#81C784","#FFD54F","#FFB74D","#64B5F6"],r=()=>{(0,y.A)({particleCount:2,angle:60,spread:55,origin:{x:0,y:.7},colors:t}),(0,y.A)({particleCount:2,angle:120,spread:55,origin:{x:1,y:.7},colors:t}),Date.now()<e&&requestAnimationFrame(r)};r()},[]),L=(0,l.useCallback)(a=>{null==a||a.preventDefault(),i.trim()&&(m(!0),j(i.trim()),t(i.trim()),S(),setTimeout(()=>{r("Redirecting..."),e.push("/projects")},2500))},[i,t,e,S,r]);return x?(0,a.jsxs)("div",{className:"h-screen w-screen flex items-center justify-center relative overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[(0,a.jsx)(d,{className:"absolute inset-0",quantity:100,color:"#6F4E37",size:1,staticity:25,ease:60}),(0,a.jsxs)("div",{className:"relative z-10 flex flex-col items-center justify-center",children:[(0,a.jsx)(f,{texts:["Halo,",h+"!"],className:"text-5xl font-bold"}),(0,a.jsx)("p",{className:"text-sm mt-6",style:{color:"var(--text-tertiary)",animation:"fadeInUp 0.6s ease-out 0.5s forwards",opacity:0},children:"Let's get testing!"})]})]}):(0,a.jsxs)("div",{style:{backgroundColor:"var(--bg-primary)"},className:"jsx-f666a3dda00d717c h-screen w-screen flex items-center justify-center relative overflow-hidden",children:[(0,a.jsx)(d,{className:"absolute inset-0",quantity:120,color:"#6F4E37",size:1.2,staticity:20,ease:60}),(0,a.jsx)("div",{style:{background:"radial-gradient(ellipse at 30% 20%, rgba(111,78,55,0.12) 0%, transparent 60%), radial-gradient(ellipse at 70% 80%, rgba(255,213,79,0.08) 0%, transparent 60%)"},className:"jsx-f666a3dda00d717c absolute inset-0 pointer-events-none"}),(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c relative z-10 flex items-center gap-10 max-w-5xl mx-4 w-full",children:[(0,a.jsx)("div",{style:{animation:"fadeInUp 0.6s ease-out"},className:"jsx-f666a3dda00d717c w-full max-w-md flex-shrink-0",children:(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c relative",children:[(0,a.jsx)(o,{className:"rounded-2xl",shineColor:["#A8A49E","#81C784","#FFD54F"],duration:8,borderWidth:2}),(0,a.jsxs)("div",{style:{backgroundColor:"var(--bg-card)",boxShadow:"0 12px 40px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04)"},className:"jsx-f666a3dda00d717c relative rounded-2xl overflow-hidden",children:[(0,a.jsx)("div",{style:{background:"linear-gradient(90deg, #A8A49E, #81C784, #FFD54F, #FFB74D, #A8A49E)",backgroundSize:"200% 100%",animation:"shimmer 3s linear infinite"},className:"jsx-f666a3dda00d717c h-2"}),(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c p-8 pt-7",children:[(0,a.jsx)("div",{className:"jsx-f666a3dda00d717c flex justify-center mb-4",children:(0,a.jsx)("div",{style:{boxShadow:"0 4px 16px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04)"},className:"jsx-f666a3dda00d717c w-16 h-16 rounded-2xl overflow-hidden bg-white p-1.5",children:(0,a.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:"Logo",width:64,height:64,className:"jsx-f666a3dda00d717c w-full h-full object-contain"})})}),(0,a.jsx)("h1",{style:{background:"linear-gradient(90deg, #6F4E37 0%, #6F4E37 35%, #FFD54F 50%, #6F4E37 65%, #6F4E37 100%)",backgroundSize:"200% 100%",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",animation:"shimmerText 2.5s ease-in-out infinite"},className:"jsx-f666a3dda00d717c text-center text-xl font-bold mb-1 tracking-tight",children:"Hei, Test Lah!"}),(0,a.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-f666a3dda00d717c text-center text-xs mb-6",children:"Your one-stop QA companion. Let's get testing!"}),(0,a.jsxs)("form",{onSubmit:L,className:"jsx-f666a3dda00d717c space-y-5",children:[(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c",children:[(0,a.jsx)("label",{style:{color:"var(--text-secondary)"},className:"jsx-f666a3dda00d717c text-xs font-semibold block mb-2 uppercase tracking-wider",children:"Your Name"}),(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c relative",children:[(0,a.jsx)("input",{ref:M,value:i,onChange:e=>u(e.target.value),onFocus:()=>k(!0),onBlur:()=>k(!1),style:{border:"1.5px solid ".concat(w?"var(--accent)":"var(--border)"),backgroundColor:w?"var(--bg-card)":"var(--bg-secondary)",color:"var(--text-primary)",boxShadow:w?"0 0 0 3px rgba(26,26,26,0.06)":"none"},className:"jsx-f666a3dda00d717c w-full pl-10 pr-4 py-3.5 text-sm rounded-xl outline-none transition-all duration-200"}),(0,a.jsx)("div",{style:{color:w?"var(--accent)":"var(--text-tertiary)"},className:"jsx-f666a3dda00d717c absolute left-3.5 top-1/2 -translate-y-1/2 pointer-events-none",children:(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-f666a3dda00d717c",children:[(0,a.jsx)("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2",className:"jsx-f666a3dda00d717c"}),(0,a.jsx)("circle",{cx:"12",cy:"7",r:"4",className:"jsx-f666a3dda00d717c"})]})})]})]}),(0,a.jsxs)("button",{type:"submit",style:{background:"linear-gradient(135deg, var(--accent) 0%, #333 100%)",color:"var(--bg-primary)",boxShadow:"0 2px 8px rgba(0,0,0,0.12)"},className:"jsx-f666a3dda00d717c w-full py-3.5 text-sm font-semibold rounded-xl transition-all duration-200 hover:opacity-90 active:scale-[0.98] relative overflow-hidden group",children:["Enter Dashboard",(0,a.jsx)("div",{className:"jsx-f666a3dda00d717c absolute inset-0 bg-white/10 opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),(0,a.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-f666a3dda00d717c text-center text-[10px] mt-5",children:"Authorized access only. Built with love for QA warriors."})]})]})]})}),(0,a.jsxs)("div",{style:{animation:"fadeInUp 0.8s ease-out 0.2s backwards"},className:"jsx-f666a3dda00d717c hidden lg:flex flex-1 flex-col items-center justify-center gap-6",children:[(0,a.jsxs)(p,{className:"text-center text-2xl font-bold leading-tight",sparklesCount:8,colors:{first:"#FFD54F",second:"#81C784"},children:["What a Good Weather",(0,a.jsx)("br",{className:"jsx-f666a3dda00d717c"}),"we have here.."]}),!F&&N&&(0,a.jsxs)("div",{style:{backgroundColor:"good"===N.mood?"var(--status-pass-bg)":"var(--bg-secondary)",border:"1px solid ".concat("good"===N.mood?"var(--status-pass-text)":"var(--border)"),animation:"fadeInUp 0.5s ease-out 0.3s backwards"},className:"jsx-f666a3dda00d717c flex items-center gap-4 px-6 py-3 rounded-2xl transition-all hover:scale-105",children:[(0,a.jsx)("span",{className:"jsx-f666a3dda00d717c text-4xl",children:N.icon}),(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c",children:[(0,a.jsxs)("p",{style:{color:"var(--text-primary)"},className:"jsx-f666a3dda00d717c text-2xl font-bold",children:[N.temperature,"\xb0C"]}),(0,a.jsx)("p",{style:{color:"good"===N.mood?"var(--status-pass-text)":"var(--text-secondary)"},className:"jsx-f666a3dda00d717c text-xs font-medium",children:N.condition})]})]}),(0,a.jsx)("canvas",{ref:A,style:{height:280},className:"jsx-f666a3dda00d717c w-full max-w-sm rounded-2xl"}),(0,a.jsxs)("div",{style:{animation:"fadeInUp 0.6s ease-out 0.6s backwards"},className:"jsx-f666a3dda00d717c text-center",children:[(0,a.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-f666a3dda00d717c text-sm mb-1",children:"Isn't it a good time for you to..."}),(0,a.jsx)("p",{style:{color:"var(--text-primary)"},className:"jsx-f666a3dda00d717c text-lg font-bold",children:"Test your Project??"})]})]})]}),(0,a.jsx)(n(),{id:"f666a3dda00d717c",children:"@keyframes fadeInUp{from{opacity:0;transform:translatey(16px)}to{opacity:1;transform:translatey(0)}}@keyframes shimmer{0%{background-position:0%50%}100%{background-position:200%50%}}@keyframes shimmerText{0%{background-position:100%50%}100%{background-position:-100%50%}}"})]})}},4269:(e,t,r)=>{"use strict";r.d(t,{cn:()=>n});var a=r(2821),s=r(5889);function n(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,s.QP)((0,a.$)(t))}},6059:(e,t,r)=>{Promise.resolve().then(r.bind(r,1343))}},e=>{e.O(0,[717,909,485,637,708,441,255,358],()=>e(e.s=6059)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[520],{265:(e,t,r)=>{"use strict";r.d(t,{Vx:()=>c,p1:()=>l});var a=r(5155),s=r(2115);let n=(0,s.createContext)(null);function l(){let e=(0,s.useContext)(n);if(!e)throw Error("useProgress must be used within ProgressProvider");return e}function c(e){let{children:t}=e,[r,l]=(0,s.useState)(0),[c,i]=(0,s.useState)(""),[o,d]=(0,s.useState)(!1),u=(0,s.useRef)(null),x=(0,s.useRef)(null),f=(0,s.useCallback)(()=>{u.current&&(clearInterval(u.current),u.current=null),x.current&&(clearTimeout(x.current),x.current=null)},[]),m=(0,s.useCallback)(()=>{d(!1),l(0),i("")},[]),h=(0,s.useCallback)(e=>{f(),l(0),i(e||""),d(!0),u.current=setInterval(()=>{l(e=>e>=90?(u.current&&clearInterval(u.current),u.current=null,90):e+15*Math.random())},300),x.current=setTimeout(()=>{m()},8e3)},[f,m]),p=(0,s.useCallback)((e,t)=>{l(Math.min(95,e)),t&&i(t)},[]),g=(0,s.useCallback)(e=>{f(),l(100),e&&i(e),setTimeout(()=>{m()},500)},[f,m]),v=(0,s.useCallback)(()=>{f(),m()},[f,m]);return(0,s.useEffect)(()=>()=>f(),[f]),(0,a.jsxs)(n.Provider,{value:{startProgress:h,updateProgress:p,completeProgress:g,cancelProgress:v,isProgressing:o},children:[t,(0,a.jsxs)("div",{className:"fixed bottom-0 left-0 right-0 z-[600] transition-all duration-300 ease-out",style:{opacity:+!!o,transform:o?"translateY(0)":"translateY(100%)",pointerEvents:o?"auto":"none"},children:[(0,a.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:"var(--bg-secondary)"},children:(0,a.jsx)("div",{className:"h-full transition-all duration-200 ease-out",style:{width:"".concat(r,"%"),backgroundColor:r>=100?"var(--status-pass-text)":"var(--accent)",boxShadow:r>=100?"0 0 10px var(--status-pass-text)":"none"}})}),c&&(0,a.jsxs)("div",{className:"flex items-center justify-center py-2 px-4 text-xs font-medium cursor-pointer",onClick:v,style:{backgroundColor:"var(--bg-card)",color:r>=100?"var(--status-pass-text)":"var(--text-secondary)",borderTop:"1px solid var(--border)"},children:[r>=100&&(0,a.jsx)("svg",{className:"mr-2",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,a.jsx)("path",{d:"M2 6l3 3 5-5",stroke:"var(--status-pass-text)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),c]})]})]})}},854:(e,t,r)=>{"use strict";r.d(t,{A:()=>l});var a=r(2115);let s="qa-auth";function n(e){try{sessionStorage.setItem(s,JSON.stringify(e))}catch(e){}}function l(){let[e,t]=(0,a.useState)({name:"",isLoggedIn:!1}),[r,l]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t(function(){try{let e=sessionStorage.getItem(s);if(!e)return{name:"",isLoggedIn:!1};return JSON.parse(e)}catch(e){return{name:"",isLoggedIn:!1}}}()),l(!0)},[]);let c=(0,a.useCallback)(e=>{let r={name:e,isLoggedIn:!0};n(r),t(r)},[]),i=(0,a.useCallback)(()=>{let e={name:"",isLoggedIn:!1};n(e),t(e)},[]);return{...e,loaded:r,login:c,logout:i}}},1343:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>j});var a=r(5155),s=r(8661),n=r.n(s),l=r(2115),c=r(63),i=r(4269);function o(e){let{borderWidth:t=1,duration:r=14,shineColor:s="#000000",className:n,style:l,...c}=e;return(0,a.jsx)("div",{style:{"--border-width":"".concat(t,"px"),"--duration":"".concat(r,"s"),backgroundImage:"radial-gradient(transparent,transparent, ".concat(Array.isArray(s)?s.join(","):s,",transparent,transparent)"),backgroundSize:"300% 300%",mask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMask:"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)",WebkitMaskComposite:"xor",maskComposite:"exclude",padding:"var(--border-width)",...l},className:(0,i.cn)("motion-safe:animate-shine pointer-events-none absolute inset-0 size-full rounded-[inherit] will-change-[background-position]",n),...c})}let d=e=>{let{className:t="",quantity:r=100,staticity:s=50,ease:n=50,size:c=.4,refresh:o=!1,color:d="#ffffff",vx:u=0,vy:x=0,...f}=e,m=(0,l.useRef)(null),h=(0,l.useRef)(null),p=(0,l.useRef)(null),g=(0,l.useRef)([]),v=function(){let[e,t]=(0,l.useState)({x:0,y:0});return(0,l.useEffect)(()=>{let e=e=>{t({x:e.clientX,y:e.clientY})};return window.addEventListener("mousemove",e),()=>{window.removeEventListener("mousemove",e)}},[]),e}(),y=(0,l.useRef)({x:0,y:0}),b=(0,l.useRef)({w:0,h:0}),j=window.devicePixelRatio,w=(0,l.useRef)(null),k=(0,l.useRef)(null),N=(0,l.useRef)(()=>{}),C=(0,l.useRef)(()=>{}),F=(0,l.useRef)(()=>{});(0,l.useEffect)(()=>{m.current&&(p.current=m.current.getContext("2d")),N.current(),F.current();let e=()=>{k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{N.current()},200)};return window.addEventListener("resize",e),()=>{null!=w.current&&window.cancelAnimationFrame(w.current),k.current&&clearTimeout(k.current),window.removeEventListener("resize",e)}},[d]),(0,l.useEffect)(()=>{C.current()},[v.x,v.y]),(0,l.useEffect)(()=>{N.current()},[o]);let E=()=>{let e=Math.floor(Math.random()*b.current.w),t=Math.floor(Math.random()*b.current.h),r=Math.floor(2*Math.random())+c;return{x:e,y:t,translateX:0,translateY:0,size:r,alpha:0,targetAlpha:parseFloat((.6*Math.random()+.1).toFixed(1)),dx:(Math.random()-.5)*.1,dy:(Math.random()-.5)*.1,magnetism:.1+4*Math.random()}},M=function(e){3===(e=e.replace("#","")).length&&(e=e.split("").map(e=>e+e).join(""));let t=parseInt(e,16);return[t>>16&255,t>>8&255,255&t]}(d),A=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(p.current){let{x:r,y:a,translateX:s,translateY:n,size:l,alpha:c}=e;p.current.translate(s,n),p.current.beginPath(),p.current.arc(r,a,l,0,2*Math.PI),p.current.fillStyle="rgba(".concat(M.join(", "),", ").concat(c,")"),p.current.fill(),p.current.setTransform(j,0,0,j,0,0),t||g.current.push(e)}},R=()=>{p.current&&p.current.clearRect(0,0,b.current.w,b.current.h)};return N.current=()=>{(()=>{if(h.current&&m.current&&p.current){b.current.w=h.current.offsetWidth,b.current.h=h.current.offsetHeight,m.current.width=b.current.w*j,m.current.height=b.current.h*j,m.current.style.width="".concat(b.current.w,"px"),m.current.style.height="".concat(b.current.h,"px"),p.current.scale(j,j),g.current=[];for(let e=0;e<r;e++)A(E())}})(),(()=>{R();for(let e=0;e<r;e++)A(E())})()},C.current=()=>{if(m.current){let e=m.current.getBoundingClientRect(),{w:t,h:r}=b.current,a=v.x-e.left-t/2,s=v.y-e.top-r/2;a<t/2&&a>-t/2&&s<r/2&&s>-r/2&&(y.current.x=a,y.current.y=s)}},F.current=()=>{R(),g.current.forEach((e,t)=>{let r=parseFloat(((e,t,r,a,s)=>{let n=(e-t)*(s-a)/(r-t)+a;return n>0?n:0})([e.x+e.translateX-e.size,b.current.w-e.x-e.translateX-e.size,e.y+e.translateY-e.size,b.current.h-e.y-e.translateY-e.size].reduce((e,t)=>Math.min(e,t)),0,20,0,1).toFixed(2));r>1?(e.alpha+=.02,e.alpha>e.targetAlpha&&(e.alpha=e.targetAlpha)):e.alpha=e.targetAlpha*r,e.x+=e.dx+u,e.y+=e.dy+x,e.translateX+=(y.current.x/(s/e.magnetism)-e.translateX)/n,e.translateY+=(y.current.y/(s/e.magnetism)-e.translateY)/n,A(e,!0),(e.x<-e.size||e.x>b.current.w+e.size||e.y<-e.size||e.y>b.current.h+e.size)&&(g.current.splice(t,1),A(E()))}),w.current=window.requestAnimationFrame(F.current)},(0,a.jsx)("div",{className:(0,i.cn)("pointer-events-none",t),ref:h,"aria-hidden":"true",...f,children:(0,a.jsx)("canvas",{ref:m,className:"size-full"})})},u=e=>{let{texts:t}=e,{text1Ref:r,text2Ref:s}=(e=>{let t=(0,l.useRef)(0),r=(0,l.useRef)(0),a=(0,l.useRef)(0),s=(0,l.useRef)(new Date),n=(0,l.useRef)(null),c=(0,l.useRef)(null),i=(0,l.useCallback)(r=>{let[a,s]=[n.current,c.current];if(!a||!s)return;s.style.filter="blur(".concat(Math.min(8/r-8,100),"px)"),s.style.opacity="".concat(100*Math.pow(r,.4),"%");let l=1-r;a.style.filter="blur(".concat(Math.min(8/l-8,100),"px)"),a.style.opacity="".concat(100*Math.pow(l,.4),"%"),a.textContent=e[t.current%e.length],s.textContent=e[(t.current+1)%e.length]},[e]),o=(0,l.useCallback)(()=>{r.current-=a.current,a.current=0;let e=r.current/1.5;e>1&&(a.current=.5,e=1),i(e),1===e&&t.current++},[i]),d=(0,l.useCallback)(()=>{r.current=0;let[e,t]=[n.current,c.current];e&&t&&(t.style.filter="none",t.style.opacity="100%",e.style.filter="none",e.style.opacity="0%")},[]);return(0,l.useEffect)(()=>{let e,t=()=>{e=requestAnimationFrame(t);let r=new Date,n=(r.getTime()-s.current.getTime())/1e3;s.current=r,a.current-=n,a.current<=0?o():d()};return t(),()=>{cancelAnimationFrame(e)}},[o,d]),{text1Ref:n,text2Ref:c}})(t);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"absolute inset-x-0 top-0 m-auto inline-block w-full",ref:r}),(0,a.jsx)("span",{className:"absolute inset-x-0 top-0 m-auto inline-block w-full",ref:s})]})},x=()=>(0,a.jsx)("svg",{id:"filters",className:"fixed h-0 w-0",preserveAspectRatio:"xMidYMid slice",children:(0,a.jsx)("defs",{children:(0,a.jsx)("filter",{id:"threshold",children:(0,a.jsx)("feColorMatrix",{in:"SourceGraphic",type:"matrix",values:"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 255 -140"})})})}),f=e=>{let{texts:t,className:r}=e;return(0,a.jsxs)("div",{className:(0,i.cn)("relative mx-auto h-16 w-full max-w-3xl text-center font-sans text-[40pt] leading-none font-bold filter-[url(#threshold)_blur(0.6px)] md:h-24 lg:text-[6rem]",r),children:[(0,a.jsx)(u,{texts:t}),(0,a.jsx)(x,{})]})};var m=r(7069);let h=e=>{let{id:t,x:r,y:s,color:n,delay:l,scale:c}=e;return(0,a.jsx)(m.P.svg,{className:"pointer-events-none absolute z-20",initial:{opacity:0,left:r,top:s},animate:{opacity:[0,1,0],scale:[0,c,0],rotate:[75,120,150]},transition:{duration:.8,repeat:1/0,delay:l},width:"21",height:"21",viewBox:"0 0 21 21",children:(0,a.jsx)("path",{d:"M9.82531 0.843845C10.0553 0.215178 10.9446 0.215178 11.1746 0.843845L11.8618 2.72026C12.4006 4.19229 12.3916 6.39157 13.5 7.5C14.6084 8.60843 16.8077 8.59935 18.2797 9.13822L20.1561 9.82534C20.7858 10.0553 20.7858 10.9447 20.1561 11.1747L18.2797 11.8618C16.8077 12.4007 14.6084 12.3916 13.5 13.5C12.3916 14.6084 12.4006 16.8077 11.8618 18.2798L11.1746 20.1562C10.9446 20.7858 10.0553 20.7858 9.82531 20.1562L9.13819 18.2798C8.59932 16.8077 8.60843 14.6084 7.5 13.5C6.39157 12.3916 4.19225 12.4007 2.72023 11.8618L0.843814 11.1747C0.215148 10.9447 0.215148 10.0553 0.843814 9.82534L2.72023 9.13822C4.19225 8.59935 6.39157 8.60843 7.5 7.5C8.60843 6.39157 8.59932 4.19229 9.13819 2.72026L9.82531 0.843845Z",fill:n})},t)},p=e=>{let{children:t,colors:r={first:"#9E7AFF",second:"#FE8BBB"},className:s,sparklesCount:n=10,...c}=e,[o,d]=(0,l.useState)([]);return(0,l.useEffect)(()=>{let e=()=>{let e="".concat(100*Math.random(),"%"),t="".concat(100*Math.random(),"%"),a=Math.random()>.5?r.first:r.second,s=2*Math.random(),n=+Math.random()+.3,l=10*Math.random()+5;return{id:"".concat(e,"-").concat(t,"-").concat(Date.now()),x:e,y:t,color:a,delay:s,scale:n,lifespan:l}};d(Array.from({length:n},e));let t=setInterval(()=>{d(t=>t.map(t=>t.lifespan<=0?e():{...t,lifespan:t.lifespan-.1}))},100);return()=>clearInterval(t)},[r.first,r.second,n]),(0,a.jsx)("div",{className:(0,i.cn)("text-6xl font-bold",s),...c,style:{"--sparkles-first-color":"".concat(r.first),"--sparkles-second-color":"".concat(r.second)},children:(0,a.jsxs)("span",{className:"relative inline-block",children:[o.map(e=>(0,a.jsx)(h,{...e},e.id)),(0,a.jsx)("strong",{children:t})]})})};var g=r(854),v=r(265),y=r(1708),b=r(778);function j(){let e=(0,c.useRouter)(),{login:t}=(0,g.A)(),{startProgress:r,completeProgress:s}=(0,v.p1)(),[i,u]=(0,l.useState)(""),[x,m]=(0,l.useState)(!1),[h,j]=(0,l.useState)(""),[w,k]=(0,l.useState)(!1),[N,C]=(0,l.useState)(null),[F,E]=(0,l.useState)(!0),M=(0,l.useRef)(null),A=(0,l.useRef)(null),R=(0,l.useRef)(null);(0,l.useEffect)(()=>{var e;null==(e=M.current)||e.focus()},[]),(0,l.useEffect)(()=>{fetch("/api/weather").then(e=>e.json()).then(e=>{e.error||C(e)}).catch(()=>{}).finally(()=>E(!1))},[]),(0,l.useEffect)(()=>{if(A.current&&!x)try{let e=new b.j({canvas:A.current,src:"https://lottie.host/5a1f1ad0-5c7c-4b9f-bf7e-af80932fa825/bcLfZ9imY4.lottie",autoplay:!0,loop:!0});return R.current=e,()=>{e.destroy(),R.current=null}}catch(e){}},[x]);let S=(0,l.useCallback)(()=>{let e=Date.now()+2e3,t=["#A8A49E","#81C784","#FFD54F","#FFB74D","#64B5F6"],r=()=>{(0,y.A)({particleCount:2,angle:60,spread:55,origin:{x:0,y:.7},colors:t}),(0,y.A)({particleCount:2,angle:120,spread:55,origin:{x:1,y:.7},colors:t}),Date.now()<e&&requestAnimationFrame(r)};r()},[]),L=(0,l.useCallback)(a=>{null==a||a.preventDefault(),i.trim()&&(m(!0),j(i.trim()),t(i.trim()),S(),setTimeout(()=>{r("Redirecting..."),e.push("/projects")},2500))},[i,t,e,S,r]);return x?(0,a.jsxs)("div",{className:"h-screen w-screen flex items-center justify-center relative overflow-hidden",style:{backgroundColor:"var(--bg-primary)"},children:[(0,a.jsx)(d,{className:"absolute inset-0",quantity:100,color:"#6F4E37",size:1,staticity:25,ease:60}),(0,a.jsxs)("div",{className:"relative z-10 flex flex-col items-center justify-center",children:[(0,a.jsx)(f,{texts:["Halo,",h+"!"],className:"text-5xl font-bold"}),(0,a.jsx)("p",{className:"text-sm mt-6",style:{color:"var(--text-tertiary)",animation:"fadeInUp 0.6s ease-out 0.5s forwards",opacity:0},children:"Let's get testing!"})]})]}):(0,a.jsxs)("div",{style:{backgroundColor:"var(--bg-primary)"},className:"jsx-f666a3dda00d717c h-screen w-screen flex items-center justify-center relative overflow-hidden",children:[(0,a.jsx)(d,{className:"absolute inset-0",quantity:120,color:"#6F4E37",size:1.2,staticity:20,ease:60}),(0,a.jsx)("div",{style:{background:"radial-gradient(ellipse at 30% 20%, rgba(111,78,55,0.12) 0%, transparent 60%), radial-gradient(ellipse at 70% 80%, rgba(255,213,79,0.08) 0%, transparent 60%)"},className:"jsx-f666a3dda00d717c absolute inset-0 pointer-events-none"}),(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c relative z-10 flex items-center gap-10 max-w-5xl mx-4 w-full",children:[(0,a.jsx)("div",{style:{animation:"fadeInUp 0.6s ease-out"},className:"jsx-f666a3dda00d717c w-full max-w-md flex-shrink-0",children:(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c relative",children:[(0,a.jsx)(o,{className:"rounded-2xl",shineColor:["#A8A49E","#81C784","#FFD54F"],duration:8,borderWidth:2}),(0,a.jsxs)("div",{style:{backgroundColor:"var(--bg-card)",boxShadow:"0 12px 40px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04)"},className:"jsx-f666a3dda00d717c relative rounded-2xl overflow-hidden",children:[(0,a.jsx)("div",{style:{background:"linear-gradient(90deg, #A8A49E, #81C784, #FFD54F, #FFB74D, #A8A49E)",backgroundSize:"200% 100%",animation:"shimmer 3s linear infinite"},className:"jsx-f666a3dda00d717c h-2"}),(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c p-8 pt-7",children:[(0,a.jsx)("div",{className:"jsx-f666a3dda00d717c flex justify-center mb-4",children:(0,a.jsx)("div",{style:{boxShadow:"0 4px 16px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04)"},className:"jsx-f666a3dda00d717c w-16 h-16 rounded-2xl overflow-hidden bg-white p-1.5",children:(0,a.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:"Logo",width:64,height:64,className:"jsx-f666a3dda00d717c w-full h-full object-contain"})})}),(0,a.jsx)("h1",{style:{background:"linear-gradient(90deg, #6F4E37 0%, #6F4E37 35%, #FFD54F 50%, #6F4E37 65%, #6F4E37 100%)",backgroundSize:"200% 100%",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",animation:"shimmerText 2.5s ease-in-out infinite"},className:"jsx-f666a3dda00d717c text-center text-xl font-bold mb-1 tracking-tight",children:"Hei, Test Lah!"}),(0,a.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-f666a3dda00d717c text-center text-xs mb-6",children:"Your one-stop QA companion. Let's get testing!"}),(0,a.jsxs)("form",{onSubmit:L,className:"jsx-f666a3dda00d717c space-y-5",children:[(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c",children:[(0,a.jsx)("label",{style:{color:"var(--text-secondary)"},className:"jsx-f666a3dda00d717c text-xs font-semibold block mb-2 uppercase tracking-wider",children:"Your Name"}),(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c relative",children:[(0,a.jsx)("input",{ref:M,value:i,onChange:e=>u(e.target.value),onFocus:()=>k(!0),onBlur:()=>k(!1),style:{border:"1.5px solid ".concat(w?"var(--accent)":"var(--border)"),backgroundColor:w?"var(--bg-card)":"var(--bg-secondary)",color:"var(--text-primary)",boxShadow:w?"0 0 0 3px rgba(26,26,26,0.06)":"none"},className:"jsx-f666a3dda00d717c w-full pl-10 pr-4 py-3.5 text-sm rounded-xl outline-none transition-all duration-200"}),(0,a.jsx)("div",{style:{color:w?"var(--accent)":"var(--text-tertiary)"},className:"jsx-f666a3dda00d717c absolute left-3.5 top-1/2 -translate-y-1/2 pointer-events-none",children:(0,a.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"jsx-f666a3dda00d717c",children:[(0,a.jsx)("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2",className:"jsx-f666a3dda00d717c"}),(0,a.jsx)("circle",{cx:"12",cy:"7",r:"4",className:"jsx-f666a3dda00d717c"})]})})]})]}),(0,a.jsxs)("button",{type:"submit",style:{background:"linear-gradient(135deg, var(--accent) 0%, #333 100%)",color:"var(--bg-primary)",boxShadow:"0 2px 8px rgba(0,0,0,0.12)"},className:"jsx-f666a3dda00d717c w-full py-3.5 text-sm font-semibold rounded-xl transition-all duration-200 hover:opacity-90 active:scale-[0.98] relative overflow-hidden group",children:["Enter Dashboard",(0,a.jsx)("div",{className:"jsx-f666a3dda00d717c absolute inset-0 bg-white/10 opacity-0 group-hover:opacity-100 transition-opacity"})]})]}),(0,a.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-f666a3dda00d717c text-center text-[10px] mt-5",children:"Authorized access only. Built with love for QA warriors."})]})]})]})}),(0,a.jsxs)("div",{style:{animation:"fadeInUp 0.8s ease-out 0.2s backwards"},className:"jsx-f666a3dda00d717c hidden lg:flex flex-1 flex-col items-center justify-center gap-6",children:[(0,a.jsxs)(p,{className:"text-center text-2xl font-bold leading-tight",sparklesCount:8,colors:{first:"#FFD54F",second:"#81C784"},children:["What a Good Weather",(0,a.jsx)("br",{className:"jsx-f666a3dda00d717c"}),"we have here.."]}),!F&&N&&(0,a.jsxs)("div",{style:{backgroundColor:"good"===N.mood?"var(--status-pass-bg)":"var(--bg-secondary)",border:"1px solid ".concat("good"===N.mood?"var(--status-pass-text)":"var(--border)"),animation:"fadeInUp 0.5s ease-out 0.3s backwards"},className:"jsx-f666a3dda00d717c flex items-center gap-4 px-6 py-3 rounded-2xl transition-all hover:scale-105",children:[(0,a.jsx)("span",{className:"jsx-f666a3dda00d717c text-4xl",children:N.icon}),(0,a.jsxs)("div",{className:"jsx-f666a3dda00d717c",children:[(0,a.jsxs)("p",{style:{color:"var(--text-primary)"},className:"jsx-f666a3dda00d717c text-2xl font-bold",children:[N.temperature,"\xb0C"]}),(0,a.jsx)("p",{style:{color:"good"===N.mood?"var(--status-pass-text)":"var(--text-secondary)"},className:"jsx-f666a3dda00d717c text-xs font-medium",children:N.condition})]})]}),(0,a.jsx)("canvas",{ref:A,style:{height:280},className:"jsx-f666a3dda00d717c w-full max-w-sm rounded-2xl"}),(0,a.jsxs)("div",{style:{animation:"fadeInUp 0.6s ease-out 0.6s backwards"},className:"jsx-f666a3dda00d717c text-center",children:[(0,a.jsx)("p",{style:{color:"var(--text-tertiary)"},className:"jsx-f666a3dda00d717c text-sm mb-1",children:"Isn't it a good time for you to..."}),(0,a.jsx)("p",{style:{color:"var(--text-primary)"},className:"jsx-f666a3dda00d717c text-lg font-bold",children:"Test your Project??"})]})]})]}),(0,a.jsx)(n(),{id:"f666a3dda00d717c",children:"@keyframes fadeInUp{from{opacity:0;transform:translatey(16px)}to{opacity:1;transform:translatey(0)}}@keyframes shimmer{0%{background-position:0%50%}100%{background-position:200%50%}}@keyframes shimmerText{0%{background-position:100%50%}100%{background-position:-100%50%}}"})]})}},4269:(e,t,r)=>{"use strict";r.d(t,{cn:()=>n});var a=r(2821),s=r(5889);function n(){for(var e=arguments.length,t=Array(e),r=0;r<e;r++)t[r]=arguments[r];return(0,s.QP)((0,a.$)(t))}},6059:(e,t,r)=>{Promise.resolve().then(r.bind(r,1343))}},e=>{e.O(0,[717,909,793,661,441,255,358],()=>e(e.s=6059)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
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 n="qa-auth";function o(e){try{sessionStorage.setItem(n,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(n);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};o(s),t(s)},[]),l=(0,a.useCallback)(()=>{let e={name:"",isLoggedIn:!1};o(e),t(e)},[]);return{...e,loaded:s,login:i,logout:l}}},4328:(e,t,s)=>{Promise.resolve().then(s.bind(s,9547))},8566:(e,t,s)=>{"use strict";s.d(t,{D_:()=>n,IU:()=>r,T7:()=>o,_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}],n=["General","Positive","Negative"],o=["#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,{n:()=>p});var a=s(8566);let n="mock-dashboard-project",o="node-login",r="node-dashboard",i="node-settings",l=[{id:o,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:o,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}}],d=[{id:"edge-1",fromId:o,toId:r,type:"plain"},{id:"edge-2",fromId:r,toId:i,type:"plain"}],c={[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}],[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}]};function p(){let e="qa-dashboard";try{let t=localStorage.getItem(e),s=t?JSON.parse(t):{projects:{},activeProjectId:null,selectedNodeId:null},p=!1;s.projects[n]||(s.projects[n]={id:n,name:"Simple Dashboard QA",notes:"",createdAt:new Date().toISOString(),flows:l,testCases:c,columnConfig:[...a._X],columnConfigs:{},edges:d,userProfile:{name:"Ayu",bannerColor:"#81C784",role:"QA Engineer"},nodeCounter:3,tcCounter:{[o]:3,[r]:2,[i]:1}},s.activeProjectId=n,p=!0),p&&localStorage.setItem(e,JSON.stringify(s))}catch(e){}}},9547:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>l});var a=s(5155),n=s(2115),o=s(63),r=s(854),i=s(9534);function l(){let e=(0,o.useRouter)(),{isLoggedIn:t,loaded:s}=(0,r.A)();return(0,n.useEffect)(()=>{(0,i.n)()},[]),(0,n.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()}]);
|
|
@@ -0,0 +1,3 @@
|
|
|
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-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-2{top:-.5rem}.bottom-0{bottom:0}.bottom-2{bottom:.5rem}.bottom-3{bottom:.75rem}.bottom-4{bottom:1rem}.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-\[450\]{z-index:450}.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-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}.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-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-32{height:8rem}.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-\[54px\]{height:54px}.h-\[70\%\]{height:70%}.h-\[85\%\]{height:85%}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-0{max-height:0}.max-h-24{max-height:6rem}.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-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-56{width:14rem}.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-0\.5{--tw-translate-x:0.125rem}.translate-x-0\.5,.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))}.translate-x-12{--tw-translate-x:3rem}.translate-y-\[calc\(-50\%-2px\)\]{--tw-translate-y:calc(-50% - 2px)}.rotate-0,.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))}.rotate-0{--tw-rotate:0deg}.rotate-45{--tw-rotate:45deg}.rotate-45,.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-not-allowed{cursor:not-allowed}.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{gap:0}.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-sm{border-radius:calc(var(--radius) - 4px)}.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-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-2{padding-right:.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}.italic{font-style:italic}.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-snug{line-height:1.375}.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{--tw-shadow:0 1px 3px 0 rgb(0 0 0/0.1),0 1px 2px -1px rgb(0 0 0/0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-\[inset_0_-8px_10px_\#ffffff1f\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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-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-lg,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.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)}.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)}.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,.drop-shadow-sm{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-sm{--tw-drop-shadow:drop-shadow(0 1px 1px rgb(0 0 0/0.05))}.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-sm{--tw-backdrop-blur:blur(4px);-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)}.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;--status-blocked-bg:#E8E0F0;--status-blocked-text:#5B1A8B;--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%}}@keyframes dockShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@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\:underline:hover{text-decoration-line:underline}.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\/nathan:hover .group-hover\/nathan\:opacity-100,.group\/tested:hover .group-hover\/tested\:opacity-100{opacity:1}.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))}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:12,errorRate:1e-4,numBits:231,numHashes:14,bitArray:[1,0,0,1,r,r,r,e,e,r,e,e,e,r,e,r,e,r,r,r,r,e,r,e,e,r,r,r,r,e,e,e,r,e,r,e,e,r,e,r,r,e,r,r,e,r,r,r,r,e,r,r,e,r,r,r,e,r,r,e,r,e,e,e,r,e,e,e,r,e,e,e,e,e,r,r,e,e,r,r,e,r,e,e,r,r,r,r,e,e,e,r,r,e,e,r,e,e,r,e,r,r,e,e,r,r,r,e,r,r,r,e,r,e,e,r,r,r,r,e,e,r,e,r,e,e,r,r,e,e,e,r,e,e,e,e,e,r,e,r,r,e,r,r,e,e,e,e,e,r,e,r,r,r,e,e,r,e,e,r,e,e,r,e,e,e,e,e,e,e,e,e,e,e,e,r,r,e,e,e,e,r,r,e,r,r,r,e,e,r,r,e,e,r,e,r,r,e,e,r,e,r,e,e,e,e,e,r,e,r,e,e,r,e,e,r,e,r,e,r,e,r,r,e,e,r,r,e,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();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[172],{619:(e,t,r)=>{r.d(t,{E:()=>i});var n=r(3182),o=r(938);function i(e){for(var t=arguments.length,r=Array(t>1?t-1:0),i=1;i<t;i++)r[i-1]=arguments[i];let a=e.length;return(0,o.j)(r.filter(n.S),function(){let t="";for(let o=0;o<a;o++){t+=e[o];let i=r[o];i&&(t+=(0,n.S)(i)?i.get():i)}return t})}},938:(e,t,r)=>{r.d(t,{j:()=>a});var n=r(3934),o=r(6436),i=r(3350);function a(e,t){let r=(0,i.d)(t()),a=()=>r.set(t());return a(),(0,o.E)(()=>{let t=()=>n.Gt.preRender(a,!1,!0),r=e.map(e=>e.on("change",t));return()=>{r.forEach(e=>e()),(0,n.WG)(a)}}),r}},2850:(e,t,r)=>{r.d(t,{z:()=>y});var n=r(3182),o=r(9752),i=r(3934);function a(e){return"number"==typeof e?e:parseFloat(e)}var u=r(2115),l=r(3127),f=r(3350),s=r(6706),c=r(4416),d=r(938),v=r(2039);function g(e,t){let r=(0,c.M)(()=>[]);return(0,d.j)(e,()=>{r.length=0;let n=e.length;for(let t=0;t<n;t++)r[t]=e[t].get();return t(r)})}function y(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:r}=(0,u.useContext)(l.Q),y=()=>(0,n.S)(e)?e.get():e;if(r)return function e(t,r,n,o){if("function"==typeof t){v.bt.current=[],t();let e=(0,d.j)(v.bt.current,t);return v.bt.current=void 0,e}if(void 0!==n&&!Array.isArray(n)&&"function"!=typeof r){var i=t,a=r,u=n,l=o;let f=(0,c.M)(()=>Object.keys(u)),s=(0,c.M)(()=>({}));for(let t of f)s[t]=e(i,a,u[t],l);return s}let f="function"==typeof r?r:function(...e){let t=!Array.isArray(e[0]),r=t?0:-1,n=e[0+r],o=e[1+r],i=e[2+r],a=e[3+r],u=(0,s.G)(o,i,a);return t?u(n):u}(r,n,o),y=Array.isArray(t)?g(t,f):g([t],e=>{let[t]=e;return f(t)}),p=Array.isArray(t)?void 0:t.accelerate;return p&&!p.isTransformed&&"function"!=typeof r&&Array.isArray(n)&&(null==o?void 0:o.clamp)!==!1&&(y.accelerate={...p,times:r,keyframes:n,isTransformed:!0,...(null==o?void 0:o.ease)?{ease:o.ease}:{}}),y}(y);let p=(0,f.d)(y());return(0,u.useInsertionEffect)(()=>(function(e,t,r={}){let u,l=e.get(),f=null,s=l,c="string"==typeof l?l.replace(/[\d.-]/g,""):void 0,d=()=>{f&&(f.stop(),f=null),e.animation=void 0},v=()=>{(()=>{let t=a(e.get()),n=a(s);if(t===n)return d();let i=f?f.getGeneratorVelocity():e.getVelocity();d(),f=new o.s({keyframes:[t,n],velocity:i,type:"spring",restDelta:.001,restSpeed:.01,...r,onUpdate:u})})(),e.animation=f??void 0,e.events.animationStart?.notify(),f?.then(()=>{e.animation=void 0,e.events.animationComplete?.notify()})};if(e.attach((e,t)=>{s=e,u=e=>{var r,n;return t((r=e,(n=c)?r+n:r))},i.Gt.postRender(v)},d),(0,n.S)(t)){let n=!0===r.skipInitialAnimation,o=t.on("change",t=>{var r,o,i,a;n?(n=!1,e.jump((r=t,(o=c)?r+o:r),!1)):e.set((i=t,(a=c)?i+a:i))}),i=e.on("destroy",o);return()=>{o(),i()}}return d})(p,e,t),[p,JSON.stringify(t)]),p}(e,{type:"spring",...t})}},3350:(e,t,r)=>{r.d(t,{d:()=>u});var n=r(2039),o=r(2115),i=r(3127),a=r(4416);function u(e){let t=(0,a.M)(()=>(0,n.OQ)(e)),{isStatic:r}=(0,o.useContext)(i.Q);if(r){let[,r]=(0,o.useState)(e);(0,o.useEffect)(()=>t.on("change",r),[])}return t}},3648:(e,t,r)=>{r.d(t,{_:()=>n});function n(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}},4570:(e,t,r)=>{r.d(t,{W:()=>a});var n=r(2115),o=r(8561);let i={some:0,all:1};function a(e){let{root:t,margin:r,amount:a,once:u=!1,initial:l=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},[f,s]=(0,n.useState)(l);return(0,n.useEffect)(()=>{if(!e.current||u&&f)return;let n={root:t&&t.current||void 0,margin:r,amount:a};return function(e,t,{root:r,margin:n,amount:a="some"}={}){let u=(0,o.K)(e),l=new WeakMap,f=new IntersectionObserver(e=>{e.forEach(e=>{let r=l.get(e.target);if(!!r!==e.isIntersecting)if(e.isIntersecting){let r=t(e.target,e);"function"==typeof r?l.set(e.target,r):f.unobserve(e.target)}else"function"==typeof r&&(r(e),l.delete(e.target))})},{root:r,rootMargin:n,threshold:"number"==typeof a?a:i[a]});return u.forEach(e=>f.observe(e)),()=>f.disconnect()}(e.current,()=>(s(!0),u?void 0:()=>s(!1)),n)},[t,e,r,u,a]),f}},5379:(e,t,r)=>{r.d(t,{D:()=>a});var n=r(2115),o=n.createContext(void 0),i={setTheme:e=>{},themes:[]},a=()=>{var e;return null!=(e=n.useContext(o))?e:i}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[246],{7065:(e,t,r)=>{r.d(t,{q:()=>n,s:()=>a});var l=r(5155),s=r(2115);function a(){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 n(e){let{dialog:t}=e,[r,a]=(0,s.useState)(""),n=(0,s.useRef)(null);return((0,s.useEffect)(()=>{if((null==t?void 0:t.type)==="prompt"){var e;a(null!=(e=t.defaultValue)?e:""),setTimeout(()=>{var e;return null==(e=n.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:n,value:r,onChange:e=>a(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:()=>f,M:()=>C});var l=r(5155),s=r(2115);function a(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)),[a,n]=(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){}n(new Date().toISOString())},300),l})},[e]),a]}var n=r(8566);let o={projects:{},activeProjectId:null,selectedNodeId:null},i={name:"",bannerColor:"#64B5F6",avatarUrl:"",role:"QA Engineer"};function c(e){try{localStorage.setItem("qa-last-test-activity",new Date().toISOString());let t=localStorage.getItem("qa-project-activity"),r=t?JSON.parse(t):{};r[e]=new Date().toISOString(),localStorage.setItem("qa-project-activity",JSON.stringify(r))}catch(e){}}let u={baseUrl:"http://localhost:3000",browser:"chromium",headless:!0,timeout:3e4};var d=r(7065);let p=(0,s.createContext)(null);function f(e){let{children:t}=e,r=function(){var e;let[t,r,l]=a("qa-dashboard",o),i=(0,s.useCallback)((e,t)=>{let l=crypto.randomUUID(),s={id:l,name:e,type:t||"",notes:"",createdAt:new Date().toISOString(),flows:[],testCases:{},columnConfig:[...n._X],columnConfigs:{},edges:[],userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:0,tcCounter:{}};return r(e=>({...e,projects:{...e.projects,[l]:s},activeProjectId:l,selectedNodeId:null})),l},[r]),c=(0,s.useCallback)(e=>{r(t=>{var r;let{[e]:l,...s}=t.projects,a=Object.keys(s);return{...t,projects:s,activeProjectId:t.activeProjectId===e?null!=(r=a[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(),a={...JSON.parse(JSON.stringify(r)),id:l,name:"".concat(r.name," (Copy)"),createdAt:s};return{...t,projects:{...t.projects,[l]:a},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:[...n._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}}(),f=function(){let[e,t]=a("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}}(),C=function(e,t){let[r,l]=(0,s.useState)([]),[a,n]=(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,a+1),{label:t,projectSnapshot:JSON.parse(JSON.stringify(e))}];return l.length>50&&l.shift(),l}),n(e=>Math.min(e+1,49))},[e,a]),c=(0,s.useCallback)(()=>{if(a<0||!e)return;let l=r[a];l&&(o.current=!0,t(e.id,()=>l.projectSnapshot),n(e=>e-1))},[r,a,e,t]),u=(0,s.useCallback)(()=>{if(a>=r.length-1||!e)return;let l=r[a+1];l&&(o.current=!0,t(e.id,()=>l.projectSnapshot),n(e=>e+1))},[r,a,e,t]),d=a>=0;return{pushState:i,undo:c,redo:u,canUndo:d,canRedo:a<r.length-1,recentActions:r.slice(-10).map(e=>e.label).reverse()}}(r.activeProject,r.updateProject),m=function(e,t,r,l){var a,o;let i=null!=(a=null==e?void 0:e.flows)?a:[],c=null!=(o=null==e?void 0:e.edges)?o:[],u=(0,s.useCallback)((r,s,a,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+/).filter(e=>e.length>0),d="";d=u.length>=2?u[0].charAt(0).toUpperCase()+u[u.length-1].charAt(0).toUpperCase():1===u.length&&u[0].length>=2?u[0].charAt(0).toUpperCase()+u[0].charAt(u[0].length-1).toUpperCase():"N";let p=e.flows.map(e=>e.code),f=d,C=1;for(;p.includes(f);)f=d+String(++C);c=f;let m=(0,n.IU)(i,c,s,r);a&&(m.position=a),o&&(m.direction=o);let v=[...e.flows];if(r){let e=v.findIndex(e=>e.id===r);-1!==e&&(v[e]={...v[e],children:[...v[e].children,i]})}return v.push(m),{...e,flows:v,testCases:{...e.testCases,[i]:[]},nodeCounter:l}}),l(i),i},[e,t,l]),d=(0,s.useCallback)(s=>{if(!e)return;let a=new Set,n=t=>{a.add(t);let r=e.flows.find(e=>e.id===t);null==r||r.children.forEach(n)};n(s),t(e.id,e=>{var t;let r=e.flows.filter(e=>!a.has(e.id)).map(e=>({...e,children:e.children.filter(e=>!a.has(e))})),l={...e.testCases};a.forEach(e=>delete l[e]);let s=(null!=(t=e.edges)?t:[]).filter(e=>!a.has(e.fromId)&&!a.has(e.toId));return{...e,flows:r,testCases:l,edges:s}}),a.has(null!=r?r:"")&&l(null)},[e,t,r,l]),p=(0,s.useCallback)(s=>{if(!e||0===s.length)return;let a=new Set,n=t=>{a.add(t);let r=e.flows.find(e=>e.id===t);null==r||r.children.forEach(n)};s.forEach(n),t(e.id,e=>{var t;let r=e.flows.filter(e=>!a.has(e.id)).map(e=>({...e,children:e.children.filter(e=>!a.has(e))})),l={...e.testCases};a.forEach(e=>delete l[e]);let s=(null!=(t=e.edges)?t:[]).filter(e=>!a.has(e.fromId)&&!a.has(e.toId));return{...e,flows:r,testCases:l,edges:s}}),a.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]),g=(0,s.useCallback)((r,l,s)=>{if(!e)return;let a={id:crypto.randomUUID(),fromId:r,toId:l,type:s};t(e.id,e=>{var t;return{...e,edges:[...null!=(t=e.edges)?t:[],a]}})},[e,t]),b=(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:g,deleteEdge:b,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),v=function(e,t,r){var l;let a=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,a=e.filter(e=>"untested"===e.status).length,n=e.filter(e=>"blocked"===e.status).length,o=t-s,i=o>0?Math.round(r/o*100):0;return{total:t,pass:r,fail:l,skip:s,untested:a,blocked:n,passRate:i}}(a),i=(0,s.useCallback)((r,l,s,a)=>{var n,o;if(!e)return;let i=e.flows.find(e=>e.id===r),u=null!=(n=null==i?void 0:i.code)?n:"N000",d=null!=(o=e.testCases[r])?o:[],p="";t(e.id,e=>{var t,n,o;let i={...null!=(t=e.tcCounter)?t:{}},c=(null!=(n=i[r])?n:0)+1;i[r]=c,p="".concat(u,"-TC").concat(String(c).padStart(3,"0"));let f={id:crypto.randomUUID(),code:p,title:l,steps:null!=s?s:"",expected:null!=a?a:"",status:"untested",case_type:"General",notes:"",links:"",order:d.length};return{...e,testCases:{...e.testCases,[r]:[...null!=(o=e.testCases[r])?o:[],f]},tcCounter:i}}),c(e.id)},[e,t]),u=(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)}}}),c(e.id))},[e,t]),d=(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]),p=(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]),f=(0,s.useCallback)((r,l,s)=>{if(!e||0===l.length)return;let a=new Set(l);t(e.id,e=>{var t;return{...e,testCases:{...e.testCases,[r]:(null!=(t=e.testCases[r])?t:[]).map(e=>a.has(e.id)?{...e,...s}:e)}}})},[e,t]),C=(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])),a=l.map((e,t)=>{let r=s.get(e);return r?{...r,order:t}:null}).filter(Boolean);return{...e,testCases:{...e.testCases,[r]:a}}})},[e,t]),m=(0,s.useCallback)((r,l,s)=>{e&&t(e.id,e=>{var t,a;let o={...null!=(t=e.columnConfigs)?t:{}},i=null!=(a=o[r])?a:[...n._X];return o[r]=i.map(e=>e.key===l?{...e,label:s}:e),{...e,columnConfigs:o}})},[e,t]),v=(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>{var t,s;let a={...null!=(t=e.columnConfigs)?t:{}},o=null!=(s=a[r])?s:[...n._X];return a[r]=o.map(e=>e.key===l?{...e,visible:!e.visible}:e),{...e,columnConfigs:a}})},[e,t]),g=(0,s.useCallback)((r,l)=>{if(!e)return;let s=l.toLowerCase().replace(/\s+/g,"_");t(e.id,e=>{var t,a;let o={...null!=(t=e.columnConfigs)?t:{}},i=null!=(a=o[r])?a:[...n._X];return o[r]=[...i,{key:s,label:l,visible:!0}],{...e,columnConfigs:o}})},[e,t]);return{testCases:a,stats:o,addTestCase:i,updateTestCase:u,deleteTestCase:d,bulkDeleteTestCases:p,bulkUpdateTestCases:f,reorderTestCases:C,updateColumnConfig:m,toggleColumnVisibility:v,addColumn:g,deleteColumn:(0,s.useCallback)((r,l)=>{e&&t(e.id,e=>{var t,s;let a={...null!=(t=e.columnConfigs)?t:{}},o=null!=(s=a[r])?s:[...n._X];return a[r]=o.filter(e=>e.key!==l),{...e,columnConfigs:a}})},[e,t]),reorderColumn:(0,s.useCallback)((r,l,s)=>{e&&t(e.id,e=>{var t,a;let o={...null!=(t=e.columnConfigs)?t:{}},i=[...null!=(a=o[r])?a:[...n._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),g=function(e,t){let r=null==e?void 0:e.id,l=(0,s.useMemo)(()=>(null==e?void 0:e.e2eData)||{config:u,runs:[],savedScripts:[]},[null==e?void 0:e.e2eData]),a=(0,s.useCallback)(e=>{r&&t(r,t=>({...t,e2eData:e(t.e2eData||{config:u,runs:[],savedScripts:[]})}))},[r,t]),n=(0,s.useCallback)(e=>{a(t=>({...t,config:{...t.config,...e}}))},[a]),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 a(e=>({...e,runs:[t,...e.runs].slice(0,20)})),t},[a]),i=(0,s.useCallback)(e=>{a(t=>({...t,runs:t.runs.filter(t=>t.id!==e)}))},[a]),c=(0,s.useCallback)(()=>{a(e=>({...e,runs:[]}))},[a]),d=(0,s.useCallback)((e,t,l,s)=>{a(a=>{let n=a.savedScripts.findIndex(t=>t.testCaseId===e),o={id:n>=0?a.savedScripts[n].id:"script-".concat(Date.now()),projectId:r,testCaseId:e,title:t,code:l,script:s,updatedAt:new Date().toISOString()},i=[...a.savedScripts];return n>=0?i[n]=o:i.push(o),{...a,savedScripts:i}})},[r,a]),p=(0,s.useCallback)(e=>{a(t=>({...t,savedScripts:t.savedScripts.filter(t=>t.testCaseId!==e)}))},[a]),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:n,saveRun:o,deleteRun:i,clearRuns:c,saveScript:d,deleteScript:p,getScript:f}}(r.activeProject,r.updateProject),b=(0,d.s)(),h=(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:f.profile,profileInitials:f.initials,setProfileName:f.setName,setProfileBannerColor:f.setBannerColor,setProfileAvatarUrl:f.setAvatarUrl,setProfileRole:f.setRole,canUndo:C.canUndo,canRedo:C.canRedo,undo:C.undo,redo:C.redo,pushState:C.pushState,mindmap:m,testCases:v,e2e:g,dialog:b.dialog,alertDialog:b.alert,confirmDialog:b.confirm,promptDialog:b.prompt,lastSaved:r.lastSaved}),[r,f,C,m,v,g,b]);return(0,l.jsx)(p.Provider,{value:h,children:t})}function C(){let e=(0,s.useContext)(p);if(!e)throw Error("useDashboard must be used within DashboardProvider");return e}},8566:(e,t,r)=>{r.d(t,{D_:()=>s,IU:()=>n,T7:()=>a,_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"],a=["#E57373","#F06292","#BA68C8","#9575CD","#7986CB","#64B5F6","#4FC3F7","#4DD0E1","#4DB6AC","#81C784","#AED581","#FFD54F","#FFB74D","#FF8A65","#A1887F","#90A4AE"];function n(e,t,r,l){return{id:e,code:t,label:r,parentId:l,children:[],shape:"rounded",notes:"",position:null}}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[253],{3101:(e,t,n)=>{n.d(t,{F:()=>i});var r=n(2821);let l=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,o=r.$,i=(e,t)=>n=>{var r;if((null==t?void 0:t.variants)==null)return o(e,null==n?void 0:n.class,null==n?void 0:n.className);let{variants:i,defaultVariants:s}=t,u=Object.keys(i).map(e=>{let t=null==n?void 0:n[e],r=null==s?void 0:s[e];if(null===t)return null;let o=l(t)||l(r);return i[e][o]}),c=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return void 0===r||(e[n]=r),e},{});return o(e,u,null==t||null==(r=t.compoundVariants)?void 0:r.reduce((e,t)=>{let{class:n,className:r,...l}=t;return Object.entries(l).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...s,...c}[t]):({...s,...c})[t]===n})?[...e,n,r]:e},[]),null==n?void 0:n.class,null==n?void 0:n.className)}},6497:(e,t,n)=>{n.d(t,{N:()=>y});var r=n(5155),l=n(2115),o=n(296),i=n(4416),s=n(6436),u=n(9686),c=n(1402),a=n(3127);function p(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}class f extends l.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if((0,c.s)(t)&&e.isPresent&&!this.props.isPresent&&!1!==this.props.pop){let e=t.offsetParent,n=(0,c.s)(e)&&e.offsetWidth||0,r=(0,c.s)(e)&&e.offsetHeight||0,l=getComputedStyle(t),o=this.props.sizeRef.current;o.height=parseFloat(l.height),o.width=parseFloat(l.width),o.top=t.offsetTop,o.left=t.offsetLeft,o.right=n-o.width-o.left,o.bottom=r-o.height-o.top,o.direction=l.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function d(e){var t,n;let{children:o,isPresent:i,anchorX:s,anchorY:u,root:c,pop:d}=e,h=(0,l.useId)(),m=(0,l.useRef)(null),v=(0,l.useRef)({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:g}=(0,l.useContext)(a.Q),x=function(...e){return l.useCallback(function(...e){return t=>{let n=!1,r=e.map(e=>{let r=p(e,t);return n||"function"!=typeof r||(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];"function"==typeof n?n():p(e[t],null)}}}}(...e),e)}(m,null!=(n=null==(t=o.props)?void 0:t.ref)?n:null==o?void 0:o.ref);return(0,l.useInsertionEffect)(()=>{let{width:e,height:t,top:n,left:r,right:l,bottom:o,direction:a}=v.current;if(i||!1===d||!m.current||!e||!t)return;let p="rtl"===a;m.current.dataset.motionPopId=h;let f=document.createElement("style");g&&(f.nonce=g);let x=null!=c?c:document.head;return x.appendChild(f),f.sheet&&f.sheet.insertRule('\n [data-motion-pop-id="'.concat(h,'"] {\n position: absolute !important;\n width: ').concat(e,"px !important;\n height: ").concat(t,"px !important;\n ").concat("left"===s?p?"right: ".concat(l):"left: ".concat(r):p?"left: ".concat(r):"right: ".concat(l),"px !important;\n ").concat("bottom"===u?"bottom: ".concat(o):"top: ".concat(n),"px !important;\n }\n ")),()=>{var e;null==(e=m.current)||e.removeAttribute("data-motion-pop-id"),x.contains(f)&&x.removeChild(f)}},[i]),(0,r.jsx)(f,{isPresent:i,childRef:m,sizeRef:v,pop:d,children:!1===d?o:l.cloneElement(o,{ref:x})})}let h=e=>{let{children:t,initial:n,isPresent:o,onExitComplete:s,custom:c,presenceAffectsLayout:a,mode:p,anchorX:f,anchorY:h,root:v}=e,g=(0,i.M)(m),x=(0,l.useId)(),y=!0,b=(0,l.useMemo)(()=>(y=!1,{id:x,initial:n,isPresent:o,custom:c,onExitComplete:e=>{for(let t of(g.set(e,!0),g.values()))if(!t)return;s&&s()},register:e=>(g.set(e,!1),()=>g.delete(e))}),[o,g,s]);return a&&y&&(b={...b}),(0,l.useMemo)(()=>{g.forEach((e,t)=>g.set(t,!1))},[o]),l.useEffect(()=>{o||g.size||!s||s()},[o]),t=(0,r.jsx)(d,{pop:"popLayout"===p,isPresent:o,anchorX:f,anchorY:h,root:v,children:t}),(0,r.jsx)(u.t.Provider,{value:b,children:t})};function m(){return new Map}var v=n(5601);let g=e=>e.key||"";function x(e){let t=[];return l.Children.forEach(e,e=>{(0,l.isValidElement)(e)&&t.push(e)}),t}let y=e=>{let{children:t,custom:n,initial:u=!0,onExitComplete:c,presenceAffectsLayout:a=!0,mode:p="sync",propagate:f=!1,anchorX:d="left",anchorY:m="top",root:y}=e,[b,E]=(0,v.xQ)(f),C=(0,l.useMemo)(()=>x(t),[t]),w=f&&!b?[]:C.map(g),R=(0,l.useRef)(!0),j=(0,l.useRef)(C),P=(0,i.M)(()=>new Map),k=(0,l.useRef)(new Set),[M,N]=(0,l.useState)(C),[S,A]=(0,l.useState)(C);(0,s.E)(()=>{R.current=!1,j.current=C;for(let e=0;e<S.length;e++){let t=g(S[e]);w.includes(t)?(P.delete(t),k.current.delete(t)):!0!==P.get(t)&&P.set(t,!1)}},[S,w.length,w.join("-")]);let F=[];if(C!==M){let e=[...C];for(let t=0;t<S.length;t++){let n=S[t],r=g(n);w.includes(r)||(e.splice(t,0,n),F.push(n))}return"wait"===p&&F.length&&(e=F),A(x(e)),N(C),null}let{forceRender:I}=(0,l.useContext)(o.L);return(0,r.jsx)(r.Fragment,{children:S.map(e=>{let t=g(e),l=(!f||!!b)&&(C===S||w.includes(t));return(0,r.jsx)(h,{isPresent:l,initial:(!R.current||!!u)&&void 0,custom:n,presenceAffectsLayout:a,mode:p,root:y,onExitComplete:l?void 0:()=>{if(k.current.has(t)||!P.has(t))return;k.current.add(t),P.set(t,!0);let e=!0;P.forEach(t=>{t||(e=!1)}),e&&(null==I||I(),A(j.current),f&&(null==E||E()),c&&c())},anchorX:d,anchorY:m,children:e},t)})})}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[642],{158:(e,t,o)=>{o.d(t,{Bf:()=>x,G$:()=>P,Rz:()=>k,Vj:()=>u,hX:()=>f,ii:()=>p,k5:()=>m,nN:()=>c,sy:()=>L,wy:()=>s});var n=o(8566),l=o(9280),i=o.n(l);let a={untested:"⬜ Untested",pass:"✅ Pass",fail:"❌ Fail",skip:"⏭ Skip",blocked:"\uD83D\uDEAB Blocked"},r=e=>e.replace(/\n/g,"<br>").replace(/\|/g,"\\|");function s(e,t,o){let l=(o.length>0?o:n._X).filter(e=>e.visible),i=l.map(e=>e.label).join(" | "),s=l.map(()=>"---").join(" | "),c="# ".concat(e.code?e.code+" — ":"").concat(e.label,"\n\n");c+="| # | ".concat(i," |\n"),c+="|---|".concat(s,"|\n"),t.forEach((e,t)=>{let o=l.map(t=>"status"===t.key?a[e.status]:r(e[t.key]||""));c+="| ".concat(t+1," | ").concat(o.join(" | ")," |\n")});let d=t.length,p=t.filter(e=>"skip"===e.status).length,u=t.filter(e=>"pass"===e.status).length,m=d-p>0?Math.round(u/(d-p)*100):0;return c+="\n**Pass rate: ".concat(u,"/").concat(d-p," (").concat(m,"%)**\n")}function c(e,t){return JSON.stringify({node:e,testCases:t},null,2)}function d(e,t,o){let n=new Blob([e],{type:o}),l=URL.createObjectURL(n),i=document.createElement("a");i.href=l,i.download=t,i.click(),URL.revokeObjectURL(l)}function p(e){d(function(e){let t="# ".concat(e.name,"\n\n");for(let p of e.flows){var o,l,i,s,c,d;let u=e.testCases[p.id];if(!u||0===u.length)continue;let m=((null!=(s=null!=(i=null==(o=e.columnConfigs)?void 0:o[p.id])?i:e.columnConfig)?s:[]).length>0?null!=(d=null!=(c=null==(l=e.columnConfigs)?void 0:l[p.id])?c:e.columnConfig)?d:[]:n._X).filter(e=>e.visible),f=m.map(e=>e.label).join(" | "),g=m.map(()=>"---").join(" | ");t+="## ".concat(p.code?p.code+" — ":"").concat(p.label,"\n\n"),t+="| # | ".concat(f," |\n"),t+="|---|".concat(g,"|\n"),u.forEach((e,o)=>{let n=m.map(t=>"status"===t.key?a[e.status]:r(e[t.key]||""));t+="| ".concat(o+1," | ").concat(n.join(" | ")," |\n")});let h=u.length,v=u.filter(e=>"skip"===e.status).length,k=u.filter(e=>"pass"===e.status).length,y=h-v>0?Math.round(k/(h-v)*100):0;t+="\n**Pass rate: ".concat(k,"/").concat(h-v," (").concat(y,"%)**\n\n---\n\n")}return t}(e),"".concat(e.name,".md"),"text/markdown")}function u(e){d(JSON.stringify(e,null,2),"".concat(e.name,".json"),"application/json")}function m(e,t,o){let n=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(s(e,t,o),"".concat(n,".md"),"text/markdown")}function f(e,t){let o=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(c(e,t),"".concat(o,".json"),"application/json")}function g(e,t){let o=e&&e.length>0?e:t;return o.length>0?o:n._X}function h(e,t){return t.map(t=>"status"===t.key?a[e.status]:e[t.key]||"")}function v(e){return e.includes(",")||e.includes('"')||e.includes("\n")?'"'.concat(e.replace(/"/g,'""'),'"'):e}function k(e,t,o){let l=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_");d(function(e,t,o){let l=g(o,n._X).filter(e=>e.visible);return[["#",...l.map(e=>v(e.label))].join(","),...t.map((e,t)=>[String(t+1),...h(e,l).map(v)].join(","))].join("\n")}(0,t,o),"".concat(l,".csv"),"text/csv")}function y(e,t){var o,l,i;let a=null!=(i=null!=(l=null==(o=e.columnConfigs)?void 0:o[t])?l:e.columnConfig)?i:[];return a.length>0?a:n._X}function b(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 w(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 j(e,t,o,n,l){let i=e.addWorksheet(t);return i.columns=[{header:"#",key:"row",width:6},...l.map(e=>({header:e.label,key:e.key,width:Math.max(e.label.length+4,18)}))],i.getRow(1).eachCell(b),n.forEach((e,t)=>{let o={row:t+1};l.forEach(t=>{"status"===t.key?o[t.key]=a[e.status]:o[t.key]=e[t.key]||""}),i.addRow(o).eachCell(w)}),i}async function U(e,t,o){let l=g(o,n._X).filter(e=>e.visible),a=new(i()).Workbook;return a.creator="Ayu Management Tools",j(a,e.label,e.label,t,l),new Blob([await a.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function P(e,t,o){let n=(e.code||e.label).replace(/[^a-zA-Z0-9_-]/g,"_"),l=await U(e,t,o),i=URL.createObjectURL(l),a=document.createElement("a");a.href=i,a.download="".concat(n,".xlsx"),a.click(),URL.revokeObjectURL(i)}async function M(e){let t=new(i()).Workbook;for(let o of(t.creator="Ayu Management Tools",e.flows)){let n=e.testCases[o.id];if(!n||0===n.length)continue;let l=y(e,o.id).filter(e=>e.visible);j(t,(o.code||o.label).substring(0,31).replace(/[\\/*?[\]]/g,"_"),o.label,n,l)}return new Blob([await t.xlsx.writeBuffer()],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})}async function L(e){let t=await M(e),o=URL.createObjectURL(t),n=document.createElement("a");n.href=o,n.download="".concat(e.name,".xlsx"),n.click(),URL.revokeObjectURL(o)}function x(e){d(function(e){let t="";for(let o of e.flows){let n=e.testCases[o.id];if(!n||0===n.length)continue;let l=y(e,o.id).filter(e=>e.visible);t+="# ".concat(o.code?o.code+" — ":"").concat(o.label,"\n"),t+=["#",...l.map(e=>v(e.label))].join(",")+"\n",n.forEach((e,o)=>{let n=[String(o+1),...h(e,l).map(v)];t+=n.join(",")+"\n"}),t+="\n"}return t}(e),"".concat(e.name,".csv"),"text/csv")}},3362:(e,t,o)=>{o.d(t,{Pj:()=>n});let n=Object.values({openai:{id:"openai",name:"OpenAI",type:"native",description:"GPT models powering ChatGPT. Industry-leading language understanding.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/openai.svg",keyUrl:"https://platform.openai.com/api-keys",keyPlaceholder:"sk-...",color:"#10A37F",sdkProvider:"openai",defaultModel:"gpt-4o-mini",popularModels:["gpt-4o","gpt-4o-mini","gpt-4-turbo","gpt-3.5-turbo"]},google:{id:"google",name:"Google Gemini",type:"native",description:"Google's multimodal AI with strong reasoning capabilities.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/googlegemini.svg",keyUrl:"https://aistudio.google.com/apikey",keyPlaceholder:"AIza...",color:"#4285F4",sdkProvider:"google",defaultModel:"gemini-2.5-flash",popularModels:["gemini-2.5-flash","gemini-2.5-pro","gemini-2.0-flash"]},anthropic:{id:"anthropic",name:"Anthropic",type:"native",description:"Claude models — safe, steerable, and highly capable.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/anthropic.svg",keyUrl:"https://console.anthropic.com/settings/keys",keyPlaceholder:"sk-ant-...",color:"#D97706",sdkProvider:"anthropic",defaultModel:"claude-sonnet-4-20250514",popularModels:["claude-sonnet-4-20250514","claude-haiku-4-20250514","claude-3-5-sonnet-20241022"]},deepseek:{id:"deepseek",name:"DeepSeek",type:"openai-compatible",description:"High-performance open-source models with competitive reasoning.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/deepseek.svg",keyUrl:"https://platform.deepseek.com/api_keys",keyPlaceholder:"sk-...",color:"#4D6BFE",sdkProvider:"openai",baseURL:"https://api.deepseek.com/v1",defaultModel:"deepseek-chat",popularModels:["deepseek-chat","deepseek-reasoner"]},xiaomi:{id:"xiaomi",name:"Xiaomi (MiMo)",type:"openai-compatible",description:"Xiaomi's MiMo models — OpenAI-compatible API.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/xiaomi.svg",keyUrl:"https://platform.xiaomimimo.com/",keyPlaceholder:"tp-...",color:"#FF6900",sdkProvider:"openai",baseURL:"https://token-plan-sgp.xiaomimimo.com/v1",defaultModel:"mimo-v2.5",popularModels:["mimo-v2.5","mimo-v2.5-pro"]},openrouter:{id:"openrouter",name:"OpenRouter",type:"openai-compatible",description:"Unified gateway to 200+ models — Claude, Llama, Mistral, Gemini, and more.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/openrouter.svg",keyUrl:"https://openrouter.ai/keys",keyPlaceholder:"sk-or-...",color:"#6366F1",sdkProvider:"openai",baseURL:"https://openrouter.ai/api/v1",defaultModel:"openrouter/free",popularModels:["openrouter/free","meta-llama/llama-4-maverick:free","google/gemini-2.5-flash:free","deepseek/deepseek-chat-v3-0324:free","mistralai/mistral-small-3.2-24b:free","qwen/qwen3-235b-a22b:free","microsoft/phi-4-reasoning-plus:free"]},groq:{id:"groq",name:"Groq",type:"native",description:"Ultra-fast inference with LPU hardware. Blazing speed for Llama, Mixtral, and Gemma models.",logoUrl:"https://cdn.jsdelivr.net/gh/simple-icons/simple-icons/icons/groq.svg",keyUrl:"https://console.groq.com/keys",keyPlaceholder:"gsk_...",color:"#F55036",sdkProvider:"groq",defaultModel:"llama-3.3-70b-versatile",popularModels:["llama-3.3-70b-versatile","llama-3.1-8b-instant","mixtral-8x7b-32768","gemma2-9b-it","meta-llama/llama-4-scout-17b-16e-instruct","qwen-qwq-32b"]},custom:{id:"custom",name:"Custom (OpenAI-compatible)",type:"openai-compatible",description:"Any OpenAI-compatible API — Ollama, LM Studio, vLLM, LiteLLM, etc.",logoUrl:"",keyUrl:"",keyPlaceholder:"sk-... or any key",color:"#6B7280",sdkProvider:"openai",defaultModel:"",popularModels:[],requiresBaseURL:!0}})},7669:(e,t,o)=>{o.d(t,{P:()=>d});var n=o(2115),l=o(3362);let i="qa-llm-config",a={apiKey:"",baseURL:"",defaultModel:"",secondaryModel:"",models:[],connected:!1};function r(){let e={};for(let t of l.Pj)e[t.id]={...a,baseURL:t.baseURL||""};return{activeProvider:null,providers:e}}function s(){try{let t=localStorage.getItem(i);if(!t)return r();let o=JSON.parse(t);if(o.provider&&o.apiKey&&!o.providers){let e=r();return{...e,activeProvider:null,providers:{...e.providers,google:{...a,apiKey:o.apiKey,connected:!0}}}}let n=r(),s={...n,...o,providers:{...n.providers}};for(let t of l.Pj){var e;let n=null==(e=o.providers)?void 0:e[t.id];s.providers[t.id]={...a,baseURL:t.baseURL||"",...n}}return s}catch(e){return r()}}function c(e){try{localStorage.setItem(i,JSON.stringify(e))}catch(e){}}function d(){let[e,t]=(0,n.useState)(r),[o,l]=(0,n.useState)(!1);(0,n.useEffect)(()=>{t(s()),l(!0)},[]);let i=(0,n.useCallback)((e,o)=>{let n=s(),l={...n,providers:{...n.providers,[e]:{...n.providers[e],...o}}};c(l),t(l)},[]),a=(0,n.useCallback)(e=>{let o={...s(),activeProvider:e};c(o),t(o)},[]),d=e.activeProvider?e.providers[e.activeProvider]:null,p=o&&!!d&&d.apiKey.length>0&&d.connected;return{config:e,loaded:o,isConnected:p,activeProvider:d,activeProviderId:e.activeProvider,updateProvider:i,setActiveProvider:a}}},7711:(e,t,o)=>{o.d(t,{Z7:()=>l,Js:()=>i});var n=o(5653);async function l(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"google",l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",i=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"en",a=arguments.length>6?arguments[6]:void 0,r=arguments.length>7?arguments[7]:void 0,s=await fetch("/api/generate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:e,prompt:t,apiKey:o,provider:n,model:l,language:i,baseURL:a,images:r})});if(!s.ok)throw Error((await s.json().catch(()=>({error:"Request failed"}))).error||"HTTP ".concat(s.status));return(await s.json()).testCases}async function i(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"google",l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",i=arguments.length>5?arguments[5]:void 0,a=await fetch("/api/refine-notes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectName:e,notes:t,apiKey:o,provider:n,model:l,baseURL:i})});if(!a.ok)throw Error((await a.json().catch(()=>({error:"Request failed"}))).error||"HTTP ".concat(a.status));return(await a.json()).refined}n.Ik({title:n.Yj().describe("Short descriptive title of the test case"),steps:n.Yj().describe("Numbered test steps separated by newlines"),expected:n.Yj().describe("Expected result of the test")})}}]);
|