trybeacon 0.1.48 → 0.1.50
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/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +13 -13
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/api/context/feature/route.js +1 -1
- package/.next/server/app/api/db/arrange/route.js +1 -1
- package/.next/server/app/api/entities/route.js +1 -1
- package/.next/server/app/api/map/start/route.js +1 -1
- package/.next/server/app/docs/page.js +1 -1
- package/.next/server/app/docs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/docs.html +1 -1
- package/.next/server/app/docs.rsc +3 -3
- package/.next/server/app/docs.segments/_full.segment.rsc +3 -3
- package/.next/server/app/docs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/docs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/docs.segments/docs.segment.rsc +1 -1
- package/.next/server/app/feedback/page_client-reference-manifest.js +1 -1
- package/.next/server/app/feedback.html +1 -1
- package/.next/server/app/feedback.rsc +2 -2
- package/.next/server/app/feedback.segments/_full.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/_head.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/_index.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/feedback.segments/feedback/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/feedback.segments/feedback.segment.rsc +1 -1
- package/.next/server/app/help/page.js +1 -1
- package/.next/server/app/help/page_client-reference-manifest.js +1 -1
- package/.next/server/app/help.html +1 -1
- package/.next/server/app/help.rsc +4 -4
- package/.next/server/app/help.segments/_full.segment.rsc +4 -4
- package/.next/server/app/help.segments/_head.segment.rsc +1 -1
- package/.next/server/app/help.segments/_index.segment.rsc +2 -2
- package/.next/server/app/help.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/help.segments/help/__PAGE__.segment.rsc +10 -12
- package/.next/server/app/help.segments/help.segment.rsc +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/map/page.js +2 -2
- package/.next/server/app/map/page.js.nft.json +1 -1
- package/.next/server/app/map/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/plan/page.js +2 -2
- package/.next/server/app/plan/page.js.nft.json +1 -1
- package/.next/server/app/plan/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +13 -13
- package/.next/server/chunks/1130.js +1 -1
- package/.next/server/chunks/1341.js +1 -1
- package/.next/server/chunks/2933.js +1 -1
- package/.next/server/chunks/{7208.js → 2999.js} +3 -3
- package/.next/server/chunks/3622.js +1 -1
- package/.next/server/chunks/9734.js +1 -1
- package/.next/server/chunks/9773.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1487-13f43d25413ae041.js +1 -0
- package/.next/static/chunks/3343-af1292b51a276724.js +1 -0
- package/.next/static/chunks/app/docs/page-ae19d2e91ec24771.js +1 -0
- package/.next/static/chunks/app/map/page-5074176a5e746ffb.js +1 -0
- package/.next/static/chunks/app/page-541e900d67f17dae.js +1 -0
- package/.next/static/chunks/app/plan/{page-257d486640eadd7f.js → page-3c4c1fc03275299f.js} +1 -1
- package/.next/static/css/629ab377241de9ca.css +1 -0
- package/.next/trace +39 -39
- package/.next/trace-build +1 -1
- package/dist/bin/beacon.js +7 -7
- package/dist/bin/doctor.js +43 -32
- package/dist/bin/hook.js +43 -32
- package/dist/bin/mcp.js +49 -38
- package/dist/bin/plan.js +45 -34
- package/dist/bin/prompt.js +1 -1
- package/dist/bin/remove.js +7 -7
- package/dist/bin/uninstall.js +42 -31
- package/dist/lib/assets.js +30 -19
- package/dist/lib/codex-install.js +40 -29
- package/dist/lib/global-install.js +40 -29
- package/package.json +1 -1
- package/.next/server/chunks/805.js +0 -1
- package/.next/static/chunks/8074-a6b2725786399e2c.js +0 -1
- package/.next/static/chunks/85-82015ecb44b65d3e.js +0 -1
- package/.next/static/chunks/app/docs/page-0c841cb9a7aa2f9a.js +0 -1
- package/.next/static/chunks/app/map/page-c06fcf30d8172f82.js +0 -1
- package/.next/static/chunks/app/page-968dd5a6f667bff9.js +0 -1
- package/.next/static/css/5a58d83133d25695.css +0 -1
- /package/.next/static/{gNMdQmtkjPn6XQhRMDoMg → J1AU9kp6Vs1x9YOBkXMiR}/_buildManifest.js +0 -0
- /package/.next/static/{gNMdQmtkjPn6XQhRMDoMg → J1AU9kp6Vs1x9YOBkXMiR}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=805,exports.ids=[805],exports.modules={526:(a,b,c)=>{},1110:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{HQ:()=>o,Oz:()=>p,cl:()=>t,hY:()=>r,hg:()=>s,pJ:()=>u,t3:()=>q});var e=c(95349),f=c(42650),g=c(39321),h=c(62896),i=c(22443),j=c(16189),k=c(3173),l=c(89337),m=a([h,j,k]);function n(){(0,f.revalidatePath)("/map")}async function o(a){let b=await (0,j.n)(()=>(0,k.RM)(a));return n(),b}async function p(a,b){let c=await (0,j.n)(()=>(0,k.OK)(a,b));return n(),c}async function q(a,b){let c=await (0,j.n)(()=>(0,k.Pj)(a,b));return n(),c}async function r(a){let b=await (0,j.n)(()=>(0,k.Vp)(a));return n(),b}async function s(a){let b=await (0,j.n)(()=>(0,k.x$)(a));return n(),b}async function t(a){await (0,j.n)(()=>(0,k.AC)(a)),n()}async function u(a){await (0,j.n)(async()=>{await h.db.update(i.node).set({source:"MANUAL"}).where((0,g.eq)(i.node.id,a))}),n()}[h,j,k]=m.then?(await m)():m,(0,l.D)([o,p,q,r,s,t,u]),(0,e.A)(o,"401459d83618b996a0b9fb491d789038a7fb9d0f27",null),(0,e.A)(p,"604620ca13e6343504cd5b99510395a0b415cff27d",null),(0,e.A)(q,"6076b0cc785b7b39bd93013e3114c30ffc21019cb3",null),(0,e.A)(r,"40faed8d4b8f504b4e491260a2af5d5d894c457b57",null),(0,e.A)(s,"40b8a870303cf0df962d3b9e7577671d7b0919856d",null),(0,e.A)(t,"40e5c6c7e20a725ef78ed047c13bda1ff709511bd6",null),(0,e.A)(u,"40e90ef33a8ede0553a9ba60c97a86da53f0149f38",null),d()}catch(a){d(a)}})},1229:(a,b,c)=>{c.d(b,{x:()=>g});var d=c(48249),e=c(56024),f=c(55030);function g(){let a="!h-2 !w-2 !border-0 !bg-zinc-400";return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.h7,{type:"target",position:f.yX.Top,id:"tt",className:a}),(0,d.jsx)(e.h7,{type:"source",position:f.yX.Top,id:"st",className:a}),(0,d.jsx)(e.h7,{type:"target",position:f.yX.Right,id:"tr",className:a}),(0,d.jsx)(e.h7,{type:"source",position:f.yX.Right,id:"sr",className:a}),(0,d.jsx)(e.h7,{type:"target",position:f.yX.Bottom,id:"tb",className:a}),(0,d.jsx)(e.h7,{type:"source",position:f.yX.Bottom,id:"sb",className:a}),(0,d.jsx)(e.h7,{type:"target",position:f.yX.Left,id:"tl",className:a}),(0,d.jsx)(e.h7,{type:"source",position:f.yX.Left,id:"sl",className:a})]})}},2367:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896),e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},2942:(a,b,c)=>{c.d(b,{F8:()=>s,NG:()=>o,QH:()=>p,Vq:()=>r,aM:()=>v,cV:()=>x,kz:()=>u,n$:()=>m,pO:()=>g,vB:()=>t});var d=c(48249),e=c(67484),f=c(33191);function g({markdown:a,className:b,variant:c="reading"}){let h=(0,e.useMemo)(()=>m(a),[a]),i="reading"===c;return(0,d.jsx)("div",{className:(0,f.cn)("min-w-0 [overflow-wrap:anywhere]",i?"mx-auto w-full max-w-[66ch] space-y-4 text-[15px] leading-[1.6]":"space-y-3.5 text-[13px] leading-relaxed",b),children:h.map((a,b)=>(0,d.jsx)(w,{block:a,variant:c},b))})}function h(a){let b=a.trim();return b.includes("|")&&b.includes("-")&&/^[\s|:-]+$/.test(b)}function i(a){return""!==a.trim()&&a.includes("|")}function j(a){let b=a.trim();return b.startsWith("|")&&(b=b.slice(1)),b.endsWith("|")&&(b=b.slice(0,-1)),b.split("|").map(a=>a.trim())}function k(a){let b=a.trim(),c=b.startsWith(":"),d=b.endsWith(":");return c&&d?"center":d?"right":c?"left":null}let l=/^\s*```[^\s`]*\s*$/;function m(a){let b=a.split("\n"),c=[],d=[],e=()=>{d.length&&(c.push({kind:"p",text:d.join("\n")}),d=[])},f=null,g=()=>{null!==f&&(c.push({kind:"quote",text:f.join("\n")}),f=null)},m=a=>Math.min(6,Math.floor(a.length/2)),n=null,o=null;for(let a=0;a<b.length;a++){let p=b[a];if(null!==n){l.test(p)?(c.push({kind:"code",text:n.join("\n")}),n=null):n.push(p);continue}let q=p.match(/^>\s?(.*)$/);if(q){e(),o=null,(f??=[]).push(q[1]);continue}if(g(),l.test(p)){e(),o=null,n=[];continue}if(/^\s*$/.test(p)){e(),o=null;continue}let r=p.match(/^#### +(.+)$/);if(r){e(),o=null,c.push({kind:"h4",text:r[1]});continue}let s=p.match(/^### +(.+)$/);if(s){e(),o=null,c.push({kind:"h3",text:s[1]});continue}let t=p.match(/^## +(.+)$/);if(t){e(),o=null,c.push({kind:"h2",text:t[1]});continue}let u=p.match(/^# +(.+)$/);if(u){e(),o=null,c.push({kind:"h1",text:u[1]});continue}if(i(p)&&a+1<b.length&&h(b[a+1])){e(),o=null;let d=[j(p)],f=j(b[a+1]).map(k),g=a+2;for(;g<b.length&&i(b[g])&&!h(b[g]);)d.push(j(b[g])),g++;c.push({kind:"table",text:b.slice(a,g).join("\n"),rows:d,align:f}),a=g-1;continue}let v=p.match(/^(\s*)(\d+)\. +(.+)$/);if(v){e(),c.push({kind:"ol",text:v[3],depth:m(v[1]),marker:v[2]}),o=c.length-1;continue}let w=p.match(/^(\s*)- +(.+)$/);if(w){e(),c.push({kind:"ul",text:w[2],depth:m(w[1])}),o=c.length-1;continue}if(null!==o&&0===d.length){c[o].text+=" "+p.trim();continue}d.push(p)}return e(),g(),null!==n&&c.push({kind:"code",text:n.join("\n")}),c}let n=/("(?:\\.|[^"\\])*")(\s*:)?|\b(true|false|null)\b|(-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)/g;function o({text:a}){let b=function(a){let b=a.trim();if(!b||"{"!==b[0]&&"["!==b[0])return null;try{return JSON.stringify(JSON.parse(b),null,2)}catch{return null}}(a);return(0,d.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-white/10 bg-white/[0.06] p-3 text-[12px] leading-relaxed",children:(0,d.jsx)("code",{className:"whitespace-pre font-mono [overflow-wrap:normal]",children:b?function(a){let b,c=[],e=0,f=0,g=a=>(0,d.jsx)("span",{className:"text-foreground/45",children:a},f++);for(n.lastIndex=0;null!==(b=n.exec(a));){if(b.index>e&&c.push(g(a.slice(e,b.index))),void 0!==b[1]){let a=void 0!==b[2];c.push((0,d.jsx)("span",{className:a?"text-sky-300":"text-emerald-300/90",children:b[1]},f++)),a&&b[2]&&c.push(g(b[2]))}else void 0!==b[3]?c.push((0,d.jsx)("span",{className:"text-purple-300",children:b[3]},f++)):void 0!==b[4]&&c.push((0,d.jsx)("span",{className:"text-amber-300",children:b[4]},f++));e=n.lastIndex}return e<a.length&&c.push(g(a.slice(e))),c}(b):(0,d.jsx)("span",{className:"text-foreground/85",children:a})})})}function p({block:a}){let b=a.rows??[];if(0===b.length)return null;let[c,...e]=b,g=a.align??[],h=a=>"center"===g[a]?"text-center":"right"===g[a]?"text-right":"text-left";return(0,d.jsx)("div",{className:"overflow-x-auto rounded-lg border border-white/10",children:(0,d.jsxs)("table",{className:"w-full border-collapse text-[13px] [overflow-wrap:normal]",children:[(0,d.jsx)("thead",{children:(0,d.jsx)("tr",{className:"border-b border-white/15 bg-white/[0.04]",children:c.map((a,b)=>(0,d.jsx)("th",{className:(0,f.cn)("whitespace-nowrap px-3 py-1.5 font-semibold text-foreground",h(b)),children:(0,d.jsx)(x,{text:a})},b))})}),(0,d.jsx)("tbody",{children:e.map((a,b)=>(0,d.jsx)("tr",{className:"border-b border-white/5 last:border-0",children:a.map((a,b)=>(0,d.jsx)("td",{className:(0,f.cn)("px-3 py-1.5 align-top text-foreground/90",h(b)),children:(0,d.jsx)(x,{text:a})},b))},b))})]})})}let q=["h1","h2","h3","h4"];function r(a){return q.includes(a)}function s(a){let b=q.indexOf(a);return b<0?0:b}function t(a){return`plan-h-${a}`}function u(a){return a.replace(/[`*]/g,"").trim()}function v(a,b,c,e){let g="reading"===c;switch(a.kind){case"h1":return(0,d.jsx)("h1",{id:e,className:g?"scroll-mt-24 text-xl font-semibold tracking-tight text-foreground":"text-base font-semibold text-foreground",children:b});case"h2":return(0,d.jsx)("h2",{id:e,className:g?"mt-6 scroll-mt-24 border-b border-white/10 pb-1 text-lg font-semibold text-foreground":"mt-3 text-sm font-semibold text-muted-foreground",children:b});case"h3":return(0,d.jsx)("h3",{id:e,className:g?"mt-4 scroll-mt-24 text-base font-semibold text-foreground":"mt-2 text-[13px] font-semibold text-foreground",children:b});case"h4":return(0,d.jsx)("h4",{id:e,className:g?"mt-3 scroll-mt-24 text-sm font-semibold text-muted-foreground":"mt-2 text-[13px] font-semibold text-muted-foreground",children:b});case"ul":case"ol":{let c=a.depth??0;return(0,d.jsxs)("div",{className:(0,f.cn)("flex gap-2",g?"text-foreground/95":"text-foreground/90"),style:{marginLeft:`${.75+1.25*c}rem`},children:[(0,d.jsx)("span",{className:"shrink-0 select-none text-muted-foreground tabular-nums",children:"ol"===a.kind?`${a.marker}.`:"•"}),(0,d.jsx)("span",{className:"min-w-0 flex-1",children:b})]})}case"quote":return(0,d.jsx)("blockquote",{className:(0,f.cn)("whitespace-pre-wrap border-l-2 pl-3 italic",g?"border-white/15 text-foreground/80":"border-white/10 text-foreground/75"),children:b});default:return(0,d.jsx)("p",{className:(0,f.cn)("whitespace-pre-wrap",g?"text-foreground/95":"text-foreground/90"),children:b})}}function w({block:a,variant:b}){return"code"===a.kind?(0,d.jsx)(o,{text:a.text}):"table"===a.kind?(0,d.jsx)(p,{block:a}):(0,d.jsx)(d.Fragment,{children:v(a,(0,d.jsx)(x,{text:a.text}),b)})}function x({text:a}){let b=a.split(/(`[^`]+`|\*\*[\s\S]+?\*\*|\*[^*]+\*)/g);return(0,d.jsx)(d.Fragment,{children:b.map((a,b)=>/^`[^`]+`$/.test(a)?(0,d.jsx)("code",{className:"rounded bg-white/5 px-1 font-mono text-[12px]",children:a.slice(1,-1)},b):/^\*\*[\s\S]+\*\*$/.test(a)?(0,d.jsx)("strong",{className:"font-semibold text-foreground",children:(0,d.jsx)(x,{text:a.slice(2,-2)})},b):/^\*[^*]+\*$/.test(a)?(0,d.jsx)("em",{className:"text-muted-foreground",children:(0,d.jsx)(x,{text:a.slice(1,-1)})},b):(0,d.jsx)("span",{children:a},b))})}},3173:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AC:()=>p,OK:()=>l,Pj:()=>m,RM:()=>k,Vp:()=>n,x$:()=>o});var e=c(39321),f=c(62896),g=c(22443),h=c(8292),i=c(7913),j=a([f,h]);async function k(a){let b=i.gY.parse(a),c="ARCHITECTURE"===b.view?"REBUILD":"PENDING",[d]=await f.db.insert(g.node).values({...b.id?{id:b.id}:{},view:b.view,kind:b.kind??"FEATURE",title:b.title,cluster:b.cluster??null,layer:b.layer??null,role:b.role??null,plain:b.plain??null,parentId:b.parentId??null,status:b.status??c,priority:b.priority??2,x:b.x??0,y:b.y??0,sourceRef:b.sourceRef??null}).returning();return d}async function l(a,b){let c=i.$Y.parse(b),[d]=await f.db.update(g.node).set(c).where((0,e.eq)(g.node.id,a)).returning();return void 0!==c.status&&await (0,h.Nh)(a),d}async function m(a,b){let c=i.M7.parse(b),[d]=await f.db.update(g.node).set({status:c}).where((0,e.eq)(g.node.id,a)).returning();return await (0,h.Nh)(a),d}async function n(a){let[b]=await f.db.update(g.node).set({status:"DEPRIORITIZED",priority:3}).where((0,e.eq)(g.node.id,a)).returning();return await (0,h.Nh)(a),b}async function o(a){let[b]=await f.db.update(g.node).set({status:"CANCELLED"}).where((0,e.eq)(g.node.id,a)).returning();return await (0,h.Nh)(a),b}async function p(a){let[b]=await f.db.delete(g.node).where((0,e.eq)(g.node.id,a)).returning();return b}[f,h]=j.then?(await j)():j,d()}catch(a){d(a)}})},4120:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},4688:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"401459d83618b996a0b9fb491d789038a7fb9d0f27":()=>e.HQ,"40b8a870303cf0df962d3b9e7577671d7b0919856d":()=>e.hg,"40e5c6c7e20a725ef78ed047c13bda1ff709511bd6":()=>e.cl,"40e90ef33a8ede0553a9ba60c97a86da53f0149f38":()=>e.pJ,"40faed8d4b8f504b4e491260a2af5d5d894c457b57":()=>e.hY,"604620ca13e6343504cd5b99510395a0b415cff27d":()=>e.Oz,"6076b0cc785b7b39bd93013e3114c30ffc21019cb3":()=>e.t3});var e=c(1110),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},4963:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(23873),e=c(62896);c(22443);var f=c(2367),g=c(29303),h=c(56258);c(50320),c(66625);var i=c(76174),j=a([e,f,g,h,i]);[e,f,g,h,i]=j.then?(await j)():j,d.Ik({tables:d.YO(d.Ik({name:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),columns:d.YO(d.Ik({name:d.Yj().trim().min(1),type:d.Yj().trim().min(1),isPk:d.zM().optional(),isFk:d.zM().optional(),nullable:d.zM().optional(),note:d.Yj().nullish()})).default([])})).default([]),relations:d.YO(d.Ik({fromTable:d.Yj(),fromColumn:d.Yj(),toTable:d.Yj(),toColumn:d.Yj(),label:d.Yj().nullish()})).default([]),endpoints:d.YO(d.Ik({method:d.Yj().trim().min(1),path:d.Yj().trim().min(1),domain:d.Yj().nullish(),description:d.Yj().nullish(),uses:d.YO(d.Ik({table:d.Yj(),access:d.Yj().default("read")})).default([])})).default([])}),b()}catch(a){b(a)}})},7747:(a,b,c)=>{c.d(b,{DbMapClient:()=>ap});var d=c(48249),e=c(67484),f=c(19099),g=c(56024),h=c(55030);c(71763);var i=c(49783),j=c(90165),k=c(89216),l=c(57684),m=c(45535),n=c(69473),o=c(33191),p=c(38476);let q=(0,e.createContext)(null);function r(){let a=(0,e.useContext)(q);if(!a)throw Error("useDbEdit must be used inside DbEditContext");return a}var s=c(50605),t=c(91365),u=c(1229),v=c(58720);let w={danger:"bg-red-500/15 text-red-300",warn:"bg-amber-500/15 text-amber-300"};function x({badges:a,className:b}){return a.length?(0,d.jsx)("span",{className:(0,o.cn)("flex shrink-0 items-center gap-0.5",b),children:a.map(a=>(0,d.jsx)("span",{title:a.title,className:(0,o.cn)("rounded px-1 text-[8px] font-semibold uppercase tracking-wide",w[a.tone]),children:a.label},a.label))}):null}let y=/pass(word)?|token|secret|api[_-]?key|credential|priv(ate)?[_-]?key|hash|salt/i,z=/auth|login|logout|session|token|password|oauth|sso|credential/i,A="nodrag nopan",B=u.x;function C({onClick:a,title:b}){return(0,d.jsx)("button",{type:"button",title:b,onClick:b=>{b.stopPropagation(),a()},className:(0,o.cn)(A,"absolute -right-3 top-1/2 z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-full border border-white/15 bg-[#242428] text-muted-foreground opacity-0 shadow-md transition-all group-hover/row:opacity-100 hover:border-[#ff7a45]/50 hover:text-[#ff7a45]"),children:(0,d.jsx)(i.A,{className:"size-3"})})}function D({c:a,fkTargets:b}){let c=b?.[a.name];return(0,d.jsx)("span",{title:c?`→ ${c}`:a.type,className:"ml-auto min-w-0 truncate font-mono text-[11px] text-muted-foreground/80",children:c?(0,d.jsxs)(d.Fragment,{children:["→\xa0",c]}):a.type})}let E="nodrag nopan",F=["GET","POST","PUT","PATCH","DELETE"];var G=c(32798),H=c(48779),I=c(26284);let J=[{id:"claude",label:"Prompt p/ Claude Code",fn:function(a){let b=["Implement this database schema in this project, following its existing stack and conventions:",""];for(let c of a.tables){let a=`Table \`${c.name}\``+(c.domain?` (domain: ${c.domain})`:"")+(c.description?` — ${c.description}`:"");for(let d of(b.push(a),c.columns)){let a=[d.isPk&&"PK",d.isFk&&"FK",!1===d.nullable&&"NOT NULL"].filter(Boolean).join(", ");b.push(` - ${d.name}: ${d.type}`+(a?` [${a}]`:"")+(d.note?` — ${d.note}`:""))}b.push("")}if(a.relations.length){for(let c of(b.push("Foreign keys:"),a.relations))b.push(` - ${c.fromTable}.${c.fromColumn} -> ${c.toTable}.${c.toColumn}`);b.push("")}return b.push("Create the models/migrations using the project's existing ORM and patterns, wire the relationships, and keep table and column names exactly as given."),b.join("\n")}},{id:"dbml",label:"DBML",fn:function(a){let b=[];for(let c of a.tables){for(let a of(b.push(`Table ${c.name} {`),c.columns)){let c=[a.isPk&&"pk",!1===a.nullable&&!a.isPk&&"not null",a.note&&`note: '${a.note.replace(/'/g,"")}'`].filter(Boolean).join(", ");b.push(` ${a.name} ${a.type}`+(c?` [${c}]`:""))}b.push("}","")}for(let c of a.relations)b.push(`Ref: ${c.fromTable}.${c.fromColumn} > ${c.toTable}.${c.toColumn}`);return b.join("\n").trim()}},{id:"sql",label:"SQL DDL",fn:function(a){let b=[];for(let c of a.tables){b.push(`CREATE TABLE ${c.name} (`);let d=c.columns.map(a=>{let b=[` ${a.name} ${a.type}`];return a.isPk?b.push("PRIMARY KEY"):!1===a.nullable&&b.push("NOT NULL"),b.join(" ")}),e=a.relations.filter(a=>a.fromTable===c.name).map(a=>` FOREIGN KEY (${a.fromColumn}) REFERENCES ${a.toTable}(${a.toColumn})`);b.push([...d,...e].join(",\n")),b.push(");","")}return b.join("\n").trim()}}];function K({draftGraph:a}){let[b,c]=(0,e.useState)(null);if(0===a.tables.length)return null;async function f(b){await navigator.clipboard.writeText(b.fn(a)).catch(()=>{}),c(b.id),setTimeout(()=>c(null),1500)}return(0,d.jsxs)("div",{className:"space-y-2 rounded-xl border border-sky-400/20 bg-sky-500/[0.04] p-3",children:[(0,d.jsxs)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-sky-300",children:["Rascunho \xb7 ",a.tables.length," tabelas"]}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:"copiar:"}),J.map(a=>(0,d.jsx)(I.$,{size:"sm",variant:"outline",className:"h-6 px-2 text-[11px]",onClick:()=>f(a),children:b===a.id?"✓":a.label},a.id))]})]})}function L({selected:a,tables:b,relations:c,endpoints:e,draftGraph:f,onClose:g,commentsContent:h,commentsCount:j=0,activeTab:k,onTabChange:l,onAddComment:n,topOffset:o}){let p,q,r=new Map(b.map(a=>[a.id,a.name])),s=!!h,t=k??"details",u=a?.kind==="table"?b.find(b=>b.id===a.id)?.name??null:a?.kind==="endpoint"&&(q=e.find(b=>b.id===a.id))?`${q.method} ${q.path}`:null;if(a?.kind==="table"){let f=b.find(b=>b.id===a.id);p=f?(0,d.jsx)(N,{table:f,relations:c,endpoints:e,nameById:r}):null}else if(a?.kind==="endpoint"){let b=e.find(b=>b.id===a.id);p=b?(0,d.jsx)(O,{ep:b,nameById:r}):null}else p=(0,d.jsx)(P,{tables:b,relations:c,endpoints:e});return(0,d.jsxs)(H.b,{className:"absolute right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:o??12,maxHeight:`calc(100% - ${(o??12)+12}px)`},children:[s?(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-1 py-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(M,{active:"details"===t,onClick:()=>l?.("details"),children:"Details"}),(0,d.jsxs)(M,{active:"comments"===t,onClick:()=>l?.("comments"),children:["Comments",j>0&&(0,d.jsx)("span",{className:"ml-1 rounded-full bg-white/10 px-1 text-[9px] font-semibold leading-4",children:j})]})]}),(0,d.jsx)("button",{onClick:g,title:"Close panel",className:"mr-1 rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(m.A,{className:"size-4"})})]}):(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Panel"}),(0,d.jsx)("button",{onClick:g,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(m.A,{className:"size-4"})})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:"comments"===t&&s?(0,d.jsx)("div",{className:"p-3",children:h}):(0,d.jsxs)(d.Fragment,{children:[f.tables.length>0&&(0,d.jsx)("div",{className:"border-b border-white/10 p-3.5",children:(0,d.jsx)(K,{draftGraph:f})}),(0,d.jsxs)("div",{className:"p-4",children:[n&&u&&(0,d.jsxs)("button",{type:"button",onClick:()=>n(u),className:"mb-3 flex w-full items-center justify-center gap-1.5 rounded-lg border border-white/10 bg-white/[0.03] px-3 py-1.5 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,d.jsx)(i.A,{className:"size-3.5"}),"Comment on this ",a?.kind==="endpoint"?"endpoint":"table"]}),p]})]})})]})}function M({active:a,onClick:b,children:c}){return(0,d.jsx)("button",{type:"button",onClick:b,className:(0,o.cn)("flex items-center gap-1 rounded-md px-2.5 py-1 text-[11px] font-medium transition-colors",a?"bg-white/10 text-foreground":"text-muted-foreground hover:text-foreground"),children:c})}function N({table:a,relations:b,endpoints:c,nameById:e}){let f=b.filter(b=>b.fromTableId===a.id),g=b.filter(b=>b.toTableId===a.id),h=c.map(b=>({e:b,u:b.tables.find(b=>b.tableId===a.id)})).filter(a=>a.u);return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-xs uppercase tracking-wide",style:{color:(0,p.qA)(a.domain)},children:a.domain??"table"}),(0,d.jsx)("h2",{className:"font-mono text-lg font-semibold",children:a.name}),a.description&&(0,d.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a.description})]}),(0,d.jsx)(Q,{title:`Columns (${a.columns.length})`,children:(0,d.jsx)("ul",{className:"space-y-0.5",children:a.columns.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5 text-xs",children:[a.isPk?(0,d.jsx)(j.A,{className:"size-3 text-amber-400"}):a.isFk?(0,d.jsx)(k.A,{className:"size-3 text-sky-400"}):(0,d.jsx)("span",{className:"size-3"}),(0,d.jsx)("span",{className:"font-mono",children:a.name}),(0,d.jsxs)("span",{className:"ml-auto font-mono text-[10px] text-muted-foreground",children:[a.type,!a.nullable&&" \xb7NN"]})]},a.name))})}),f.length>0&&(0,d.jsx)(Q,{title:"References (FK out)",children:(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:f.map(a=>(0,d.jsxs)("li",{className:"font-mono text-muted-foreground",children:[a.fromColumn," → ",e.get(a.toTableId),".",a.toColumn]},a.id))})}),g.length>0&&(0,d.jsx)(Q,{title:"Referenced by (FK in)",children:(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:g.map(a=>(0,d.jsxs)("li",{className:"font-mono text-muted-foreground",children:[e.get(a.fromTableId),".",a.fromColumn]},a.id))})}),h.length>0&&(0,d.jsx)(Q,{title:`Used by endpoints (${h.length})`,children:(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:h.map(({e:a,u:b})=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{style:{color:p.e6[a.method]},className:"font-bold",children:a.method}),(0,d.jsx)("span",{className:"truncate font-mono",children:a.path}),(0,d.jsx)("span",{className:"ml-auto",style:{color:p.ru[b.access]},children:b.access})]},a.id))})})]})}function O({ep:a,nameById:b}){return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[11px] font-bold",style:{background:`${p.e6[a.method]}22`,color:p.e6[a.method]},children:a.method}),(0,d.jsx)("h2",{className:"mt-2 font-mono text-base font-semibold",children:a.path}),a.description&&(0,d.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:a.description})]}),(0,d.jsx)(Q,{title:`Tables used (${a.tables.length})`,children:(0,d.jsx)("ul",{className:"space-y-1 text-xs",children:a.tables.map(a=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"font-mono",children:b.get(a.tableId)}),(0,d.jsx)("span",{className:"ml-auto",style:{color:p.ru[a.access]},children:a.access})]},a.tableId))})})]})}function P({tables:a,relations:b,endpoints:c}){return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-semibold",children:"Database"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Live schema derived from your code. Click a table or endpoint to see details. Drag to rearrange — positions are saved."})]}),(0,d.jsxs)("dl",{className:"grid grid-cols-3 gap-2 text-center",children:[(0,d.jsx)(R,{label:"tables",value:a.length}),(0,d.jsx)(R,{label:"FKs",value:b.length}),(0,d.jsx)(R,{label:"endpoints",value:c.length})]}),(0,d.jsx)(Q,{title:"Legend",children:(0,d.jsxs)("ul",{className:"space-y-1 text-xs text-muted-foreground",children:[(0,d.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(j.A,{className:"size-3 text-amber-400"})," primary key"]}),(0,d.jsxs)("li",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(k.A,{className:"size-3 text-sky-400"})," foreign key"]}),(0,d.jsx)("li",{children:"— gray line: FK relation between tables"}),(0,d.jsx)("li",{children:"– – dashed line: endpoint uses table (read/write)"})]})})]})}function Q({title:a,children:b}){return(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a}),b]})}function R({label:a,value:b}){return(0,d.jsxs)("div",{className:"rounded-lg border border-white/10 bg-white/[0.03] py-2",children:[(0,d.jsx)("div",{className:"text-lg font-semibold",children:b}),(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:a})]})}var S=c(92994),T=c(54193),U=c(81725),V=c(55805);let W=new Set(["GET","HEAD","OPTIONS"]);var X=c(27741);function Y(a){return 36+30*Math.max(0,a)+16}let Z="Unattached",$=a=>(a??"").trim()||"—";function _(a,b){let c=new Map(a.map(a=>[a.id,a.name])),d=new Map;for(let a of b)for(let b of a.uses)c.has(b.tableId)&&d.set(b.tableId,(d.get(b.tableId)??0)+1);return new Map(b.map(a=>[a.id,function(a,b,c){let d=new Map;for(let c of a.uses)b.has(c.tableId)&&d.set(c.tableId,(d.get(c.tableId)??0)+1);let e=null;for(let[a,f]of d){if(null===e){e=a;continue}let g=d.get(e);if(f>g){e=a;continue}if(f<g)continue;let h=c?.get(a)??0,i=c?.get(e)??0;h<i?e=a:h===i&&0>b.get(a).localeCompare(b.get(e))&&(e=a)}return e}(a,c,d)]))}let aa=(a,b)=>a.path.localeCompare(b.path)||a.method.localeCompare(b.method)||a.id.localeCompare(b.id);var ab=c(67637);let ac=a=>a.trim().toLowerCase();var ad=c(15828),ae=c(30170),af=c(10920),ag=c(95744),ah=c(10758),ai=c(69680),aj=c(35471),ak=c(82145);let al={dbTable:function({id:a,data:b,selected:c}){var f;let g,h,i="DRAFT"===b.source,q="added"===b.diffStatus?"#7bd389":"modified"===b.diffStatus?"#ffb86b":"#4ea1ff",w="added"===b.diffStatus?"new":"modified"===b.diffStatus?"modify":"draft",z=b.diffChanges?.length?b.diffChanges.join("\n"):"draft",E=i?q:(0,p.qA)(b.domain),F=(f={domain:b.domain,columns:b.columns},g=[],(h=f.columns.filter(a=>y.test(a.name)).map(a=>a.name)).length&&g.push({label:"secrets",tone:"danger",title:`stores credentials: ${h.join(", ")}`}),f.domain&&/auth/i.test(f.domain)&&g.push({label:"auth",tone:"warn",title:"auth-domain table"}),g),G=r(),[H,I]=(0,e.useState)(b.name),[J,K]=(0,e.useState)(b.columns),[L,M]=(0,e.useState)(!1),N=a=>a.stopPropagation(),O=b=>{K(b),G.patchTable(a,{columns:b})},P=(b.pins??[]).filter(a=>null===a.column),Q=a=>(b.pins??[]).filter(b=>b.column===a),R=function(a,b,c,d=!1){return Math.min(312,Math.max(240,Math.round(8*a.length)+90,...b.map(a=>{if(d)return Math.round(7.3*a.name.length)+146;let b=c?.[a.name]?c[a.name].length+2:a.type.length;return Math.round(7.3*a.name.length+6.7*b)+64})))}(b.name,i?J:b.columns,b.fkTargets,i),S=(0,o.cn)("relative rounded-xl border bg-[#161618]/95 text-card-foreground shadow-[0_18px_50px_-22px_rgba(0,0,0,0.9)] backdrop-blur",c&&"ring-2 ring-[var(--accent,#f5b942)]"),T=(0,s.k)(t.fE);return"full"!==T?(0,d.jsxs)("div",{className:(0,o.cn)(S,"border-white/10 px-3 py-2.5","far"===T&&"!opacity-0"),style:{width:R},children:[(0,d.jsx)(u.x,{}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block size-2 shrink-0 rounded-full",style:{background:E}}),(0,d.jsx)("span",{className:"truncate font-mono text-[15px] font-semibold",children:b.name})]})]}):i?(0,d.jsxs)("div",{className:(0,o.cn)(S,"group/card"),style:{width:R,borderColor:`${q}59`},children:[(0,d.jsx)(B,{}),(0,d.jsxs)("div",{className:"group/row relative flex items-center gap-1.5 rounded-t-[11px] px-3 py-2",style:{background:`${q}14`},children:[(0,d.jsx)("input",{value:H,onChange:a=>I(a.target.value),onBlur:()=>{let c=H.trim();c&&c!==b.name&&G.patchTable(a,{name:c})},onKeyDown:a=>{N(a),"Enter"===a.key&&a.currentTarget.blur()},placeholder:"table",className:(0,o.cn)(A,"min-w-0 flex-1 bg-transparent font-mono text-[13px] font-semibold tracking-tight outline-none")}),(0,d.jsx)(x,{badges:F}),(0,d.jsx)("span",{title:z,className:"shrink-0 rounded-md border px-1.5 py-px font-mono text-[9px] font-semibold uppercase tracking-[0.14em]",style:{background:`${q}1f`,borderColor:`${q}55`,color:q},children:w}),(0,d.jsx)("button",{type:"button",onClick:b=>{N(b),L?G.deleteTable(a):M(!0)},onBlur:()=>M(!1),title:"Delete table",className:(0,o.cn)(A,"shrink-0 transition-all",L?"text-red-300":"text-muted-foreground opacity-0 hover:text-red-300 group-hover/card:opacity-100"),children:(0,d.jsx)(l.A,{className:"size-3"})}),P.length>0?(0,d.jsx)(v.e0,{pins:P,onPinClick:b.onPinClick}):b.onComment&&(0,d.jsx)(C,{title:`Comment on ${b.name}`,onClick:()=>b.onComment?.(b.name)})]}),(0,d.jsxs)("div",{className:"divide-y divide-white/[0.05]",children:[J.map((a,c)=>{let e=Q(a.name),f=b.diffColumns?.[a.name];return(0,d.jsxs)("div",{title:"added"===f?"column being added":"modified"===f?"column changed vs. the live schema":void 0,style:"added"===f?{background:"#7bd38914",boxShadow:"inset 2px 0 0 #7bd389"}:"modified"===f?{background:"#ffb86b14",boxShadow:"inset 2px 0 0 #ffb86b"}:void 0,className:"group/row relative flex items-center gap-1.5 px-3 py-[5px] text-[12px]",children:[(0,d.jsx)("button",{type:"button",onClick:a=>{N(a),O(J.map((a,b)=>b===c?{...a,isPk:!a.isPk}:a))},title:"Primary key",className:(0,o.cn)(A,"shrink-0",a.isPk?"text-amber-300/90":"text-muted-foreground/40 hover:text-amber-300"),children:(0,d.jsx)(j.A,{className:"size-3"})}),(0,d.jsx)("button",{type:"button",onClick:a=>{N(a),O(J.map((a,b)=>b===c?{...a,isFk:!a.isFk}:a))},title:"Foreign key",className:(0,o.cn)(A,"shrink-0",a.isFk?"text-sky-400/80":"text-muted-foreground/40 hover:text-sky-400"),children:(0,d.jsx)(k.A,{className:"size-3"})}),(0,d.jsx)("input",{value:a.name,onChange:a=>K(b=>b.map((b,d)=>d===c?{...b,name:a.target.value}:b)),onBlur:()=>O(J),onKeyDown:N,placeholder:"column",style:{minWidth:`${Math.max(6,a.name.length+1)}ch`},className:(0,o.cn)(A,"flex-1 bg-transparent font-mono outline-none")}),b.fkTargets?.[a.name]?(0,d.jsxs)("span",{title:`→ ${b.fkTargets[a.name]}`,className:"min-w-0 shrink truncate text-right font-mono text-[11px] text-muted-foreground/80",children:["→\xa0",b.fkTargets[a.name]]}):(0,d.jsx)("input",{value:a.type,onChange:a=>K(b=>b.map((b,d)=>d===c?{...b,type:a.target.value}:b)),onBlur:()=>O(J),onKeyDown:N,placeholder:"type",title:a.type,className:(0,o.cn)(A,"w-16 min-w-0 shrink bg-transparent text-right font-mono text-[11px] text-muted-foreground/80 outline-none")}),(0,d.jsx)("button",{type:"button",onClick:a=>{N(a),O(J.filter((a,b)=>b!==c))},title:"Remove column",className:(0,o.cn)(A,"shrink-0 text-muted-foreground/40 opacity-0 transition-opacity hover:text-red-300 group-hover/card:opacity-100"),children:(0,d.jsx)(m.A,{className:"size-3"})}),e.length>0?(0,d.jsx)(v.e0,{pins:e,onPinClick:b.onPinClick}):b.onComment&&(0,d.jsx)(C,{title:`Comment on ${b.name}.${a.name}`,onClick:()=>b.onComment?.(`${b.name}.${a.name}`)})]},c)}),(0,d.jsxs)("button",{type:"button",onClick:a=>{N(a),O([...J,{name:"",type:"text",isPk:!1,isFk:!1,nullable:!0,note:null}])},className:(0,o.cn)(A,"flex w-full items-center gap-1 px-3 py-1.5 text-[10px] text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(n.A,{className:"size-3"})," column"]})]})]}):(0,d.jsxs)("div",{className:S,style:{width:R,borderColor:`${E}3d`},children:[(0,d.jsx)(B,{}),(0,d.jsxs)("div",{className:"group/row relative flex items-center justify-between rounded-t-[11px] px-3 py-2",style:{background:`${E}14`},children:[(0,d.jsxs)("span",{className:"flex min-w-0 flex-1 items-center gap-1.5 font-mono text-[13px] font-semibold tracking-tight",children:["INTROSPECTION"===b.source&&(0,d.jsx)("span",{title:"live — derived from your code",className:"inline-block size-1.5 shrink-0 rounded-full bg-emerald-400"}),(0,d.jsx)("span",{className:"truncate",title:b.name,children:b.name})]}),(0,d.jsxs)("span",{className:"flex shrink-0 items-center gap-1.5",children:["INTROSPECTION"!==b.source&&(0,d.jsx)("span",{title:"planned — not yet detected in code",className:"shrink-0 rounded-md border border-[#f5b942]/35 bg-[#f5b942]/10 px-1.5 py-px font-mono text-[9px] font-semibold uppercase tracking-[0.14em] text-[#f5b942]",children:"planned"}),(0,d.jsx)(x,{badges:F}),b.domain&&(0,d.jsx)("span",{className:"text-[9px] uppercase tracking-[0.14em]",style:{color:E},children:b.domain})]}),P.length>0?(0,d.jsx)(v.e0,{pins:P,onPinClick:b.onPinClick}):b.onComment&&(0,d.jsx)(C,{title:`Comment on ${b.name}`,onClick:()=>b.onComment?.(b.name)})]}),(0,d.jsx)("div",{className:"divide-y divide-white/[0.05]",children:b.columns.map(a=>{let c=Q(a.name);return(0,d.jsxs)("div",{className:"group/row relative flex items-center gap-2 px-3 py-[7px] text-[12px]",children:[a.isPk?(0,d.jsx)(j.A,{className:"size-3 shrink-0 text-amber-300/90"}):a.isFk?(0,d.jsx)(k.A,{className:"size-3 shrink-0 text-sky-400/80"}):(0,d.jsx)("span",{className:"size-3 shrink-0"}),(0,d.jsx)("span",{className:"shrink-0 whitespace-nowrap font-mono",children:a.name}),(0,d.jsx)(D,{c:a,fkTargets:b.fkTargets}),c.length>0?(0,d.jsx)(v.e0,{pins:c,onPinClick:b.onPinClick}):b.onComment&&(0,d.jsx)(C,{title:`Comment on ${b.name}.${a.name}`,onClick:()=>b.onComment?.(`${b.name}.${a.name}`)})]},a.name)})})]})},endpoint:function({id:a,data:b,selected:c}){var f;let g,h=p.e6[b.method]??"#8a8a8a",j="DRAFT"===b.source,k="added"===b.diffStatus?"#7bd389":"modified"===b.diffStatus?"#ffb86b":"#4ea1ff",m="added"===b.diffStatus?"new":"modified"===b.diffStatus?"changed":"draft",n=b.diffChanges?.length?b.diffChanges.join("\n"):"draft",q=(f={method:b.method,domain:b.domain,path:b.path},g=[],/^delete$/i.test(f.method.trim())&&g.push({label:"DELETE",tone:"danger",title:"destructive: deletes data"}),(f.domain&&/auth/i.test(f.domain)||z.test(f.path))&&g.push({label:"auth",tone:"warn",title:"auth-related endpoint"}),g),w=r(),[y,A]=(0,e.useState)(b.path),[B,C]=(0,e.useState)(!1),D=a=>a.stopPropagation(),G=(0,s.k)(t.fE);return"full"!==G?(0,d.jsxs)("div",{className:(0,o.cn)("relative flex w-[240px] items-center gap-2 rounded-lg border border-white/10 bg-[#161618]/95 px-2.5 py-2 text-card-foreground backdrop-blur",c&&"ring-2 ring-[var(--accent,#f5b942)]","far"===G&&"!opacity-0"),children:[(0,d.jsx)(u.x,{}),(0,d.jsx)("span",{className:"shrink-0 font-mono text-[12px] font-bold",style:{color:h},children:b.method}),(0,d.jsx)("span",{className:"truncate font-mono text-[13px]",children:b.path})]}):(0,d.jsxs)("div",{className:(0,o.cn)("group relative flex w-[240px] items-center gap-2 rounded-lg border bg-[#161618]/95 px-2.5 py-1.5 text-card-foreground shadow-[0_12px_36px_-18px_rgba(0,0,0,0.9)] backdrop-blur",j?"border-dashed":"border-white/10",c&&"ring-2 ring-[var(--accent,#f5b942)]"),style:j?{borderColor:`${k}66`,background:`${k}0f`}:void 0,children:[(0,d.jsx)(u.x,{}),"INTROSPECTION"===b.source&&(0,d.jsx)("span",{title:"live — derived from your code",className:"inline-block size-1.5 shrink-0 rounded-full bg-emerald-400"}),j?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("select",{value:b.method,onChange:b=>w.patchEndpoint(a,{method:b.target.value}),onPointerDown:D,className:(0,o.cn)(E,"shrink-0 rounded bg-transparent text-[10px] font-bold outline-none"),style:{color:h},title:"Method",children:F.map(a=>(0,d.jsx)("option",{value:a,className:"bg-card text-foreground",children:a},a))}),(0,d.jsx)("input",{value:y,onChange:a=>A(a.target.value),onBlur:()=>{let c=y.trim();c&&c!==b.path&&w.patchEndpoint(a,{path:c})},onKeyDown:a=>{D(a),"Enter"===a.key&&a.currentTarget.blur()},className:(0,o.cn)(E,"min-w-0 flex-1 bg-transparent font-mono text-[11px] outline-none")}),(0,d.jsx)(x,{badges:q}),(0,d.jsx)("span",{title:n,className:"shrink-0 rounded px-1 py-0.5 text-[8px] font-semibold uppercase",style:{background:`${k}26`,color:k},children:m}),(0,d.jsx)("button",{type:"button",onClick:b=>{D(b),B?w.deleteEndpoint(a):C(!0)},onBlur:()=>C(!1),title:"Delete",className:(0,o.cn)(E,"shrink-0 transition-colors",B?"text-red-300":"text-muted-foreground hover:text-red-300"),children:(0,d.jsx)(l.A,{className:"size-3"})})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"rounded px-1.5 py-0.5 text-[10px] font-bold",style:{background:`${h}22`,color:h},children:b.method}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[11px]",children:b.path}),"INTROSPECTION"!==b.source&&(0,d.jsx)("span",{title:"planned — not yet detected in code",className:"shrink-0 rounded-md border border-[#f5b942]/35 bg-[#f5b942]/10 px-1.5 py-px font-mono text-[8px] font-semibold uppercase tracking-[0.14em] text-[#f5b942]",children:"planned"}),(0,d.jsx)(x,{badges:q}),(0,d.jsx)("button",{type:"button",onClick:b=>{D(b),B?w.deleteRealEndpoint(a):C(!0)},onBlur:()=>C(!1),title:B?"Click again to delete":"Delete endpoint",className:(0,o.cn)(E,"shrink-0 opacity-0 transition-opacity group-hover:opacity-100",B?"text-red-300 opacity-100":"text-muted-foreground hover:text-red-300"),children:(0,d.jsx)(l.A,{className:"size-3"})})]}),(b.pins?.length??0)>0?(0,d.jsx)(v.e0,{pins:b.pins,onPinClick:b.onPinClick}):b.onComment&&(0,d.jsx)("button",{type:"button",title:`Comment on ${b.method} ${b.path}`,onClick:a=>{D(a),b.onComment?.(`${b.method} ${b.path}`)},className:(0,o.cn)(E,"absolute -right-3 top-1/2 z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-full border border-white/15 bg-[#242428] text-muted-foreground opacity-0 shadow-md transition-all group-hover:opacity-100 hover:border-[#ff7a45]/50 hover:text-[#ff7a45]"),children:(0,d.jsx)(i.A,{className:"size-3"})})]})},annotation:v.Sh},am={deletable:ak.I},an="beacon:db-draft",ao={proposedAt:0,status:"pending",tables:[],relations:[],endpoints:[]};function ap({tables:a,relations:b,endpoints:c,draft:i,workspaceId:j,embedded:k=!1,diffBase:m,draftRef:n,onEdit:r,controlRef:u,commentsContent:w,commentsCount:x=0,onAddComment:y,annotations:z,onPinClick:A,onUpdateComment:B,onRemoveComment:C,boardAnnotations:D,readOnly:E=!1}){let F=(0,f.useRouter)(),H=a.length+(i?.tables.length??0),I=c.length+(i?.endpoints.length??0),[J,K]=(0,e.useState)(I>0&&(k||0===H)),[M,N]=(0,e.useState)(null),[O,P]=(0,e.useState)(null),[Q,R]=(0,e.useState)(null),[ak,aq]=(0,e.useState)(!1),[ar,as]=(0,e.useState)("details"),[at,au]=(0,e.useState)(!1),[av,aw]=(0,e.useState)(""),ax=(0,e.useRef)(null),[ay,az]=(0,e.useState)(new Set),[aA,aB]=(0,e.useState)("full"),[aC,aD]=(0,e.useState)(new Set),[aE,aF]=(0,e.useState)(new Set),[aG,aH]=(0,e.useState)(()=>({past:[],present:i??ao,future:[],rev:0,edited:!1})),aI=aG.present,aJ=(0,e.useCallback)(a=>{aH(b=>{let c=a(b.present);return c===b.present?b:{past:[...b.past,b.present].slice(-100),present:c,future:[],rev:b.rev+1,edited:!0}})},[]),aK=(0,e.useCallback)(a=>{aH(b=>{let c=a(b.present);return c===b.present?b:{...b,present:c}})},[]),aL=(0,e.useCallback)(()=>aH(a=>a.past.length?{past:a.past.slice(0,-1),present:a.past[a.past.length-1],future:[a.present,...a.future],rev:a.rev+1,edited:!0}:a),[]),aM=(0,e.useCallback)(()=>aH(a=>a.future.length?{past:[...a.past,a.present],present:a.future[0],future:a.future.slice(1),rev:a.rev+1,edited:!0}:a),[]),aN=(0,e.useCallback)(a=>aH(b=>({past:[],present:a,future:[],rev:b.rev+1,edited:!1})),[]);(0,e.useRef)(!1),i?.proposedAt,(0,e.useRef)(!1);let aO=(0,e.useMemo)(()=>aI.tables.map(a=>({id:a.id,name:a.name,domain:a.domain,description:a.description,source:"DRAFT",x:a.x,y:a.y,columns:a.columns})),[aI]),aP=(0,e.useMemo)(()=>aI.endpoints.map(a=>({id:a.id,method:a.method,path:a.path,domain:a.domain,description:a.description,source:"DRAFT",x:a.x,y:a.y,tables:a.links.map(a=>({tableId:a.tableId,access:a.access}))})),[aI]),aQ=(0,e.useMemo)(()=>[...a,...aO],[a,aO]),aR=(0,e.useMemo)(()=>[...c,...aP],[c,aP]),aS=(0,e.useMemo)(()=>(function(a,b){let c=_(a,b),d=new Map,e=[];for(let a of[...b].sort(aa)){let b=c.get(a.id)??null;if(b){let c=d.get(b);c?c.push(a):d.set(b,[a])}else e.push(a)}let f=a=>{let b=d.get(a.id)?.length??0;return Y(a.columnCount)+(b?14+60*b:0)+50},g=Array.from(new Set(a.map(a=>$(a.domain)))),h=g.filter(a=>"—"!==a).sort(),i=g.includes("—")?[...h,"—"]:h,j=[];for(let b of i){let c=a.filter(a=>$(a.domain)===b).sort((a,b)=>a.name.localeCompare(b.name)),d=c.reduce((a,b)=>a+f(b),0),e=Math.max(1,Math.min(12,c.length,Math.round(Math.sqrt(d/320)))),g=Array(e).fill(0),h=new Map;for(let a of c){let b=0;for(let a=1;a<e;a++)g[a]<g[b]&&(b=a);h.set(a.id,{x:320*b,y:g[b]}),g[b]+=f(a)}j.push({d:b,w:320*e,h:Math.max(...g,0),tableLocal:h})}let k=Math.max(2560,Math.round(Math.sqrt(2.2*j.reduce((a,b)=>a+(b.w+120)*(b.h+170),0)))),l=new Map,m=new Map,n=0,o=0,p=0,q=0;for(let b of j){for(let c of(n>0&&n+b.w>k&&(o+=p+170,n=0,p=0),a.filter(a=>b.tableLocal.has(a.id)))){let a=b.tableLocal.get(c.id),e=n+a.x,f=o+a.y;l.set(c.id,{x:e,y:f}),(d.get(c.id)??[]).forEach((a,b)=>{m.set(a.id,{x:e,y:f+Y(c.columnCount)+14+60*b})})}p=Math.max(p,b.h),q=Math.max(q,o+b.h),n+=b.w+120}if(e.length){let a=q+170,b=Math.max(1,Math.min(4,Math.ceil(Math.sqrt(e.length/2))));e.forEach((c,d)=>{m.set(c.id,{x:d%b*280,y:a+60*Math.floor(d/b)})})}return{tables:l,endpoints:m}})(aQ.map(a=>({id:a.id,name:a.name,domain:a.domain,columnCount:a.columns.length})),[]).tables,[aQ]),aT=(0,e.useMemo)(()=>new Map,[]),aU=(0,e.useMemo)(()=>k?function(a,b){let c=new Map(a.map(a=>[ac(a.name),a])),d=new Map;for(let a of b){let b=c.get(ac(a.name));if(!b){d.set(a.id,{status:"added",changes:["new table"],columns:{}});continue}let{changes:e,columns:f}=function(a,b){let c=new Map(a.map(a=>[ac(a.name),a])),d=new Set(b.map(a=>ac(a.name))),e=[],f={};for(let a of b){let b=c.get(ac(a.name));if(!b){e.push(`+ column ${a.name} (${a.type})`),f[a.name]="added";continue}let d=[];ac(b.type)!==ac(a.type)&&d.push(`type ${b.type}→${a.type}`),b.isPk!==a.isPk&&d.push(a.isPk?"now PK":"no longer PK"),b.isFk!==a.isFk&&d.push(a.isFk?"now FK":"no longer FK"),b.nullable!==a.nullable&&d.push(a.nullable?"now nullable":"now required"),d.length&&(e.push(`~ column ${a.name}: ${d.join(", ")}`),f[a.name]="modified")}for(let b of a)d.has(ac(b.name))||e.push(`- column ${b.name}`);return{changes:e,columns:f}}(b.columns,a.columns);d.set(a.id,{status:e.length?"modified":"unchanged",changes:e,columns:f})}return d}(m?.tables??a,aO):aT,[k,m,a,aO,aT]),aV=(0,e.useMemo)(()=>k?function(a,b){let c=a=>`${ac(a.method)} ${ac(a.path)}`,d=new Set(a.map(c)),e=new Map;for(let a of b)e.set(a.id,d.has(c(a))?{status:"unchanged",changes:[],columns:{}}:{status:"added",changes:["new endpoint"],columns:{}});return e}(m?.endpoints??c,aP):aT,[k,m,c,aP,aT]),aW=(0,e.useMemo)(()=>[...b,...aI.relations.map(a=>({id:a.id,fromTableId:a.fromTableId,toTableId:a.toTableId,fromColumn:a.fromColumn,toColumn:a.toColumn,label:a.label}))],[b,aI.relations]),aX=(0,e.useMemo)(()=>{let a=new Map;for(let b of aR)for(let c of b.tables)a.set(c.tableId,(a.get(c.tableId)??0)+1);return a},[aR]),aY=(0,e.useMemo)(()=>{let a=new Map;return aQ.forEach(b=>a.set(b.id,b.x)),aR.forEach(b=>a.set(b.id,b.x)),a},[aQ,aR]),aZ=(0,e.useMemo)(()=>{let a=new Map;return aQ.forEach(b=>a.set(b.id,b.y)),aR.forEach(b=>a.set(b.id,b.y)),a},[aQ,aR]),a$=(0,e.useMemo)(()=>{let a=new Map(aQ.map(a=>[a.id,a.name])),b=new Map;for(let c of aW){let d=a.get(c.toTableId);if(!d)continue;let e=b.get(c.fromTableId)??{};e[c.fromColumn]=d,b.set(c.fromTableId,e)}return b},[aW,aQ]),a_=void 0!==D,[a0,a1]=(0,e.useState)(D??[]),a2=(0,e.useMemo)(()=>({tables:aQ.map(a=>({id:a.id,name:a.name,columns:a.columns.map(a=>a.name)})),endpoints:aR.map(a=>({id:a.id,method:a.method,path:a.path}))}),[aQ,aR]),a3=(0,e.useMemo)(()=>{if(a_){let a=new Set([...aQ.map(a=>a.id),...aR.map(a=>a.id)]);return a0.filter(b=>a.has(b.targetId)).map((a,b)=>({id:a.id,n:b+1,targetId:a.targetId,column:a.columnName,text:a.body,x:a.x,y:a.y}))}let a=new Map((z??[]).map(a=>[a.id,a.comment]));return(0,G.m)(z??[],a2).map(b=>({id:b.annotationId,n:b.n,targetId:b.targetId,column:b.column,text:a.get(b.annotationId)??"",x:null,y:null}))},[a_,a0,z,a2,aQ,aR]),a4=(0,e.useMemo)(()=>{let a=new Map;for(let b of a3){let c=a.get(b.targetId)??[];c.push({id:b.id,n:b.n,column:b.column}),a.set(b.targetId,c)}return a},[a3]),a5=(0,e.useMemo)(()=>new Map(a3.map(a=>[`anno-${a.id}`,a.targetId])),[a3]),a6=(0,e.useCallback)(async a=>{let b=(0,G.m)([{id:"_",excerpt:a}],a2)[0];if(!b)return;let c=await fetch("/api/board-annotations",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({targetKind:b.kind,targetId:b.targetId,columnName:b.column??void 0})});if(c.ok){let a=await c.json();a1(b=>[...b,a])}},[a2]),a7=(0,e.useCallback)((a,b)=>{a1(c=>c.map(c=>c.id===a?{...c,...b}:c)),fetch(`/api/board-annotations/${a}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(b)})},[]),a8=(0,e.useCallback)(a=>{a1(b=>b.filter(b=>b.id!==a)),fetch(`/api/board-annotations/${a}`,{method:"DELETE"})},[]),a9=a_?a6:y,ba=(0,e.useCallback)((a,b)=>{let c=(aY.get(b)??0)-(aY.get(a)??0),d=(aZ.get(b)??0)-(aZ.get(a)??0);return Math.abs(c)>=Math.abs(d)?c>=0?{sourceHandle:"sr",targetHandle:"tl"}:{sourceHandle:"sl",targetHandle:"tr"}:d>=0?{sourceHandle:"sb",targetHandle:"tt"}:{sourceHandle:"st",targetHandle:"tb"}},[aY,aZ]),bb=(0,e.useMemo)(()=>new Set([...aI.tables.map(a=>a.id),...aI.endpoints.map(a=>a.id)]),[aI]),bc=(0,e.useMemo)(()=>new Set(a.map(a=>a.id)),[a]),bd=(0,e.useCallback)(()=>{let a=aQ.map(a=>({id:a.id,type:"dbTable",position:J?{x:a.x,y:a.y}:aS.get(a.id)??{x:a.x,y:a.y},data:{name:a.name,domain:a.domain,columns:a.columns,usageCount:aX.get(a.id)??0,source:a.source,rev:aG.rev,diffStatus:aU.get(a.id)?.status,diffChanges:aU.get(a.id)?.changes,diffColumns:aU.get(a.id)?.columns,fkTargets:a$.get(a.id),pins:a4.get(a.id),onPinClick:A,onComment:a9}})),b=aR.map(a=>({id:a.id,type:"endpoint",position:{x:a.x,y:a.y},data:{method:a.method,path:a.path,domain:a.domain,source:a.source,rev:aG.rev,diffStatus:aV.get(a.id)?.status,diffChanges:aV.get(a.id)?.changes,pins:a4.get(a.id),onPinClick:A,onComment:a9}})),c=new Map,d=new Map(aQ.map(a=>[a.id,a])),e=new Map(aR.map(a=>[a.id,a]));return[...a,...b,...a3.map(a=>{let b=d.get(a.targetId),f=e.get(a.targetId),g=b?.x??f?.x??0,h=b?.y??f?.y??0,i=b?38+28*b.columns.length:42,j=c.get(a.targetId)??0;return c.set(a.targetId,j+1),{id:`anno-${a.id}`,type:"annotation",position:{x:a.x??g+26,y:a.y??h+i+64+112*j},data:{n:a.n,text:a.text,annotationId:a.id,onClick:a_||B?void 0:A,editable:a_||!!B,onChangeText:a_?(a,b)=>a7(a,{body:b}):B,onDelete:a_?a8:C}}})]},[aQ,aR,J,aS,aX,aG.rev,aU,aV,a$,a4,a3,a_,A,B,C,a9,a7,a8]),[be,bf,bg]=(0,g.ck)(bd());(0,e.useRef)(J);let bh=(0,e.useCallback)((a,b,c,d)=>{fetch("/api/db/position",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({kind:a,id:b,x:c,y:d})})},[]),bi=(0,e.useCallback)((a,b)=>{let{x:c,y:d}=b.position;if(b.id.startsWith("anno-")){a_&&a7(b.id.slice(5),{x:c,y:d});return}bb.has(b.id)?aK(a=>a.tables.some(a=>a.id===b.id)?{...a,tables:a.tables.map(a=>a.id===b.id?{...a,x:c,y:d}:a)}:a.endpoints.some(a=>a.id===b.id)?{...a,endpoints:a.endpoints.map(a=>a.id===b.id?{...a,x:c,y:d}:a)}:a):bh("endpoint"===b.type?"endpoint":"table",b.id,c,d)},[bb,aK,bh,a_,a7]),bj=(0,e.useMemo)(()=>aW.map(a=>({id:`fk-${a.id}`,source:a.fromTableId,target:a.toTableId,...ba(a.fromTableId,a.toTableId),type:"deletable",label:a.label??void 0,markerEnd:{type:h.TG.ArrowClosed,color:"#6b6b6b"},style:{stroke:"#6b6b6b"}})),[aW,ba]),bk=(0,e.useMemo)(()=>aR.flatMap(a=>a.tables.map(b=>{let c=p.ru[b.access]??"#5a5a5a";return{id:`u-${a.id}-${b.tableId}`,source:a.id,target:b.tableId,...ba(a.id,b.tableId),type:"default",markerEnd:{type:h.TG.ArrowClosed,color:c},style:{stroke:c,strokeDasharray:"4 4",opacity:.7}}})),[aR,ba]),bl=(0,e.useMemo)(()=>J?[...bj,...bk]:bj,[bj,bk,J]),bm=(0,e.useMemo)(()=>a3.map(a=>({id:`annoe-${a.id}`,source:a.targetId,sourceHandle:`pin-${a.id}`,target:`anno-${a.id}`,targetHandle:"in",type:"default",selectable:!1,zIndex:30,style:{stroke:v.V5,strokeWidth:1.5,opacity:.9}})),[a3]),bn=M?.id??Q,bo=(0,e.useMemo)(()=>{if(O){let a=bl.find(a=>a.id===O);return a?new Set([a.source,a.target]):null}return bn?(0,p.F1)(bn,bl):null},[bn,O,bl]),bp=(0,e.useMemo)(()=>new Map(aQ.map(a=>[a.id,{domain:a.domain,source:a.source}])),[aQ]),bq=(0,e.useMemo)(()=>new Map(aR.map(a=>[a.id,{method:a.method,source:a.source}])),[aR]),br=(0,e.useMemo)(()=>{let a=new Set;if(!J)for(let b of bq.keys())a.add(b);for(let[b,c]of bp)!ay.size||c.domain&&ay.has(c.domain)||a.add(b),aC.size&&!aC.has(c.source)&&a.add(b);for(let[b,c]of bq)aE.size&&!aE.has(c.method)&&a.add(b),aC.size&&!aC.has(c.source)&&a.add(b);return a},[J,bp,bq,ay,aC,aE]),bs=av.trim().length>0,bt=(0,e.useMemo)(()=>{if(!bs)return null;let a=new Set;for(let b of aQ)!br.has(b.id)&&(0,U.Qk)((0,U.jF)(b),av)&&a.add(b.id);for(let b of aR)!br.has(b.id)&&(0,U.Qk)((0,U.sQ)(b),av)&&a.add(b.id);return a},[aQ,aR,br,av,bs]),bu=(0,e.useMemo)(()=>bs?[...(0,U.r2)(aQ.filter(a=>!br.has(a.id)),av,a=>(0,U.jF)(a),a=>({id:a.id,label:a.name,sublabel:a.domain??"table",kind:"table"})),...(0,U.r2)(aR.filter(a=>!br.has(a.id)),av,a=>(0,U.sQ)(a),a=>({id:a.id,label:a.path,sublabel:a.method,kind:"endpoint"}))].slice(0,12):[],[aQ,aR,br,av,bs]),bv=(0,e.useCallback)(a=>{aw(""),N(bq.has(a)?{id:a,kind:"endpoint"}:{id:a,kind:"table"}),P(null),aq(!0),as("details");let b=ax.current?.getNode(a);if(!b||!ax.current)return;let c=b.measured?.width??220,d=b.measured?.height??80;ax.current.setCenter(b.position.x+c/2,b.position.y+d/2,{zoom:.9,duration:600})},[bq]),bw=bt??bo,bx=(0,e.useMemo)(()=>be.map(a=>{if(a.id.startsWith("anno-")){let b=a5.get(a.id),c=!!b&&br.has(b);return!!a.hidden!==c?{...a,hidden:c}:a}let b=br.has(a.id);if(!bw)return b?{...a,hidden:b}:a;let c=bw.has(a.id),d=bt?U.Uy:.45;return{...a,hidden:b,style:{...a.style,opacity:c?1:d,boxShadow:c&&bt?U.RU:a.style?.boxShadow,borderRadius:c&&bt?12:a.style?.borderRadius,transition:"opacity 120ms, box-shadow 120ms"}}}),[be,br,bw,bt,a5]),by=(0,e.useMemo)(()=>{let a=new Map(aQ.map(a=>[a.id,(a.domain??"").trim()||"—"])),b=_(aQ,aR.map(a=>({id:a.id,method:a.method,path:a.path,uses:a.tables.map(a=>({tableId:a.tableId}))})));return new Map(aR.map(c=>{let d=b.get(c.id);return[c.id,d?a.get(d):Z]}))},[aQ,aR]),bz=(0,e.useMemo)(()=>{let a=[];for(let b of be)if(!br.has(b.id))if("dbTable"===b.type){let c=b.data;a.push({id:b.id,group:(c.domain??"").trim()||"—",x:b.position.x,y:b.position.y,w:b.measured?.width??280,h:b.measured?.height??38+28*c.columns.length})}else"endpoint"===b.type&&a.push({id:b.id,group:by.get(b.id)??Z,x:b.position.x,y:b.position.y,w:b.measured?.width??240,h:b.measured?.height??50});return(0,X.S)(a)},[be,br,by]),bA=(0,e.useMemo)(()=>bt?bl.map(a=>{let b=br.has(a.source)||br.has(a.target);return bt.has(a.source)&&bt.has(a.target)?{...a,hidden:b,style:{...a.style,opacity:1}}:{...a,hidden:b,label:void 0,style:{...a.style,opacity:.08}}}):bl.map(a=>{let b=br.has(a.source)||br.has(a.target);return bn||O?(O?a.id===O:bn&&(a.source===bn||a.target===bn))?{...a,hidden:b,zIndex:20,style:{...a.style,opacity:1,strokeWidth:2.5}}:{...a,hidden:b,selectable:!1,label:void 0,markerEnd:void 0,style:{...a.style,opacity:.08}}:{...a,hidden:b,label:void 0}}),[bl,bn,O,br,bt]),bB=(0,e.useMemo)(()=>Array.from(new Set(aQ.map(a=>a.domain).filter(a=>!!a))).sort(),[aQ]),bC=(0,e.useMemo)(()=>Array.from(new Set([...aQ.map(a=>a.source),...aR.map(a=>a.source)])).sort(),[aQ,aR]),bD=(0,e.useMemo)(()=>Array.from(new Set(aR.map(a=>a.method))).sort(),[aR]);function bE(a,b){b(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})}let bF=+!J+ay.size+aC.size+aE.size,bG=(0,e.useCallback)(()=>{K(!0),az(new Set),aD(new Set),aF(new Set)},[]),bH=(0,e.useCallback)(a=>{let{source:b,target:c}=a;b&&c&&b!==c&&aJ(a=>{if(!(a.tables.some(a=>a.id===c)||bc.has(c)))return a;let d=a.endpoints.find(a=>a.id===b);return d?d.links.some(a=>a.tableId===c)?a:{...a,endpoints:a.endpoints.map(a=>{var d;return a.id===b?{...a,links:[...a.links,{tableId:c,access:(d=a.method,W.has(d.trim().toUpperCase())?"read":"write")}]}:a})}:a.tables.find(a=>a.id===b)?a.relations.some(a=>a.fromTableId===b&&a.toTableId===c)?a:{...a,relations:[...a.relations,{id:crypto.randomUUID(),fromTableId:b,toTableId:c,fromColumn:"fk",toColumn:"id",label:null}]}:a})},[aJ,bc]),bI=(0,e.useMemo)(()=>({patchEndpoint:(a,b)=>aJ(c=>({...c,endpoints:c.endpoints.map(c=>c.id===a?{...c,...b}:c)})),deleteEndpoint:a=>aJ(b=>({...b,endpoints:b.endpoints.filter(b=>b.id!==a)})),patchTable:(a,b)=>aJ(c=>({...c,tables:c.tables.map(c=>c.id===a?{...c,...b}:c)})),deleteTable:a=>aJ(b=>({...b,tables:b.tables.filter(b=>b.id!==a),relations:b.relations.filter(b=>b.fromTableId!==a&&b.toTableId!==a),endpoints:b.endpoints.map(b=>({...b,links:b.links.filter(b=>b.tableId!==a)}))})),deleteRealEndpoint:a=>{fetch(`/api/endpoints/${a}`,{method:"DELETE"}).then(a=>{a.ok&&F.refresh()})}}),[aJ,F]),bJ=(0,e.useCallback)(async()=>{au(!0);try{if((await fetch("/api/draft/approve",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify(aI)})).ok){try{localStorage.removeItem(an)}catch{}aN(ao),F.refresh()}}finally{au(!1)}},[aI,aN,F]),bK=(0,e.useCallback)(async()=>{au(!0);try{await fetch("/api/draft",{method:"DELETE"})}catch{}try{localStorage.removeItem(an)}catch{}aN(ao),F.refresh(),au(!1)},[aN,F]),bL=(0,e.useMemo)(()=>{let a;return a=new Map(aI.tables.map(a=>[a.id,a.name])),{tables:aI.tables.map(a=>({name:a.name,domain:a.domain,description:a.description,columns:a.columns.map(a=>({name:a.name,type:a.type,isPk:a.isPk,isFk:a.isFk,nullable:a.nullable,note:a.note}))})),relations:aI.relations.flatMap(b=>{let c=a.get(b.fromTableId),d=a.get(b.toTableId);return c&&d?[{fromTable:c,fromColumn:b.fromColumn,toTable:d,toColumn:b.toColumn,label:b.label}]:[]}),endpoints:aI.endpoints.map(b=>({method:b.method,path:b.path,domain:b.domain,description:b.description,uses:b.links.flatMap(b=>{let c=a.get(b.tableId);return c?[{table:c,access:b.access}]:[]})}))}},[aI]),bM=aI.tables.length>0||aI.endpoints.length>0,bN=aG.past.length>0,bO=aG.future.length>0;return(0,d.jsx)(q.Provider,{value:bI,children:(0,d.jsxs)("div",{className:(0,o.cn)("canvas-dots relative w-full",k?"h-full":"h-screen"),children:[(0,d.jsxs)(g.Gc,{nodes:bx,edges:"far"===aA?[...bA,...bm].map(a=>({...a,hidden:!0})):[...bA,...bm.map(a=>({...a,hidden:br.has(a.source)}))],nodeTypes:al,edgeTypes:am,nodesConnectable:!E,connectionMode:h.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onInit:a=>{ax.current=a},onNodesChange:bg,onConnect:bH,onNodeMouseEnter:(a,b)=>{"annotation"!==b.type&&R(b.id)},onNodeMouseLeave:()=>R(null),onNodeClick:(a,b)=>{if("annotation"===b.type){let a=b.data;a.editable||A?.(a.annotationId);return}let c="endpoint"===b.type?"endpoint":"table";N({id:b.id,kind:c}),P(null),aq(!0),as("details")},onEdgeClick:(a,b)=>{P(b.id),N(null)},onPaneClick:()=>{N(null),P(null),aq(!1)},onNodeDragStop:bi,onEdgesDelete:a=>{for(let b of a)if(b.id.startsWith("fk-")){let a=b.id.slice(3);fetch(`/api/db/relations/${a}`,{method:"DELETE"})}},onNodesDelete:a=>{for(let b of a)b.id.startsWith("anno-")||bb.has(b.id)||("endpoint"===b.type?fetch(`/api/endpoints/${b.id}`,{method:"DELETE"}):"dbTable"===b.type&&fetch(`/api/db/tables/${b.id}`,{method:"DELETE"}))},deleteKeyCode:E?null:["Backspace","Delete"],colorMode:"dark",fitView:!0,fitViewOptions:{padding:.15,minZoom:.38,maxZoom:.9},minZoom:.15,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,d.jsx)(ab.Z,{regions:bz,tone:"category",lod:aA}),(0,d.jsx)(s.J,{onLod:aB,thresholds:t.fE}),(0,d.jsx)(g.H2,{position:"bottom-right",className:"!overflow-hidden !rounded-xl !border !border-white/10 [&_button]:!border-white/10 [&_button]:!bg-card/70 [&_button]:!text-foreground [&_button]:!backdrop-blur"}),!k&&(0,d.jsx)(g.of,{pannable:!0,zoomable:!0,position:"bottom-left",style:{width:140,height:90},className:"!rounded-xl !border !border-white/10 !bg-card/50 !backdrop-blur",nodeColor:"#555"}),!k&&(0,d.jsx)(g.Zk,{position:"bottom-center",className:"!mb-4",children:(0,d.jsx)("div",{className:"glass flex items-center rounded-full p-0.5",children:(0,d.jsxs)("button",{type:"button",disabled:at,title:"Re-arrange the board — domain clusters with endpoints docked under their tables",onClick:async()=>{au(!0);try{await fetch("/api/db/arrange",{method:"POST"}),F.refresh()}finally{au(!1)}},className:"flex h-6 items-center gap-1.5 rounded-full px-3 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground disabled:opacity-40",children:[(0,d.jsx)(ad.A,{className:"size-3"}),at?"Arranging…":"Arrange"]})})}),!k&&(0,d.jsx)(g.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,d.jsx)(V.Z,{active:"DATABASE",tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"},{value:"FILES",label:"Files",href:"/map?view=FILES"}]})}),(0,d.jsxs)(g.Zk,{position:"top-right",className:(0,o.cn)("flex items-center gap-1 transition-[margin] duration-200",ak&&"!mr-[332px]",k&&"hidden"),children:[(0,d.jsx)(T.X,{query:av,onQuery:aw,hits:bu,placeholder:"Find a table, column, endpoint…",onPick:bv,onZoomToMatches:()=>{bt?.size&&ax.current?.fitView({nodes:[...bt].map(a=>({id:a})),duration:600,padding:.2})}}),(0,d.jsxs)(S.er,{title:"Filters",trigger:(a,b)=>(0,d.jsxs)("button",{type:"button",onClick:b,title:"Filters",className:(0,o.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",a||bF>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(ae.A,{className:"size-4"}),bF>0&&(0,d.jsx)("span",{className:"absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-[var(--accent-2,#ff7a45)] px-1 text-[9px] font-semibold text-white",children:bF})]}),children:[(0,d.jsx)(S.r1,{title:"Show",children:(0,d.jsx)(S.vu,{tone:"accent",on:J,onClick:()=>K(a=>!a),children:"endpoints"})}),bB.length>0&&(0,d.jsx)(S.r1,{title:"Domain",children:bB.map(a=>(0,d.jsx)(S.vu,{on:ay.has(a),onClick:()=>bE(a,az),children:a},a))}),bD.length>0&&(0,d.jsx)(S.r1,{title:"Method",children:bD.map(a=>(0,d.jsx)(S.vu,{on:aE.has(a),onClick:()=>bE(a,aF),children:a},a))}),bC.length>0&&(0,d.jsx)(S.r1,{title:"Source",children:bC.map(a=>(0,d.jsx)(S.vu,{on:aC.has(a),onClick:()=>bE(a,aD),children:a.toLowerCase()},a))}),bF>0&&(0,d.jsx)("button",{type:"button",onClick:bG,className:"mt-1 w-full rounded-md border border-white/10 px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:"clear filters"})]}),(0,d.jsx)(S.er,{title:"Legend",trigger:(a,b)=>(0,d.jsx)("button",{type:"button",onClick:b,title:"Legend",className:(0,o.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",a?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,d.jsx)(af.A,{className:"size-4"})}),children:(0,d.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:[(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded border border-white/15 bg-white/[0.06] px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-foreground/80",children:"table"}),(0,d.jsx)("span",{children:"a database table \xb7 its columns"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded border border-white/15 bg-white/[0.06] px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-foreground/80",children:"endpoint"}),(0,d.jsx)("span",{children:"an API route \xb7 reads / writes tables"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#6b6b6b]"}),(0,d.jsx)("span",{children:"foreign key \xb7 drag from a table handle"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#4ea1ff"}}),(0,d.jsx)("span",{children:"endpoint read \xb7 GET / POST / etc"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#ffb86b"}}),(0,d.jsx)("span",{children:"endpoint write"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded border border-dashed border-sky-400/50 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-sky-300",children:"draft"}),(0,d.jsx)("span",{children:"agent-proposed \xb7 approve to persist"})]})]})}),!ak&&(0,d.jsx)("button",{onClick:()=>aq(!0),title:"Show panel",className:"glass flex size-8 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:text-foreground",children:(0,d.jsx)(ag.A,{className:"size-4"})})]}),bM&&(0,d.jsxs)(g.Zk,{position:"bottom-center",className:"glass flex items-center gap-1 rounded-xl p-1.5",children:[(0,d.jsxs)("button",{onClick:aL,disabled:!bN,title:"Undo (⌘Z)",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground disabled:opacity-30 disabled:hover:bg-transparent",children:[(0,d.jsx)(ah.A,{className:"size-3.5"})," undo"]}),(0,d.jsxs)("button",{onClick:aM,disabled:!bO,title:"Redo (⇧⌘Z)",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground disabled:opacity-30 disabled:hover:bg-transparent",children:[(0,d.jsx)(ai.A,{className:"size-3.5"})," redo"]}),!k&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"mx-1 h-4 w-px bg-white/10"}),(0,d.jsxs)("button",{onClick:bK,disabled:at,title:"Discard draft",className:"flex items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-red-500/15 hover:text-red-300 disabled:opacity-40",children:[(0,d.jsx)(l.A,{className:"size-3.5"})," discard"]}),(0,d.jsxs)("button",{onClick:bJ,disabled:at,title:"Approve and persist to the schema",className:"flex items-center gap-1 rounded-md border border-emerald-500/40 bg-emerald-500/15 px-2.5 py-1 text-[11px] font-semibold text-emerald-300 transition-colors hover:bg-emerald-500/25 disabled:opacity-40",children:[(0,d.jsx)(aj.A,{className:"size-3.5"})," approve draft"]})]})]})]}),ak&&(0,d.jsx)(L,{selected:M,tables:aQ,relations:aW,endpoints:aR,draftGraph:bL,onClose:()=>{aq(!1),as("details")},commentsContent:w,commentsCount:x,activeTab:ar,onTabChange:as,onAddComment:a9,topOffset:k?64:void 0})]})})}},7913:(a,b,c)=>{c.d(b,{$Y:()=>j,M7:()=>h,gY:()=>i});var d=c(23873);let e=d.k5(["ROADMAP","ARCHITECTURE"]),f=d.k5(["FEATURE","BUG"]),g=d.k5(["frontend","backend","fullstack"]);d.k5(["user","agent"]);let h=d.k5(["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED","KEEP","REBUILD","REPLACE","DROP"]);d.k5(["DEPENDS","CONTAINS","RELATES","REPLACES"]);let i=d.Ik({id:d.Yj().trim().min(1).max(64).optional(),view:e,kind:f.optional(),title:d.Yj().trim().min(1).max(200),cluster:d.Yj().trim().max(64).nullish(),layer:g.nullish(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),parentId:d.Yj().nullish(),status:h.optional(),priority:d.ai().int().min(0).max(3).optional(),x:d.ai().optional(),y:d.ai().optional(),sourceRef:d.Yj().trim().max(300).nullish()}),j=d.Ik({title:d.Yj().trim().min(1).max(200).optional(),kind:f.optional(),role:d.Yj().trim().max(500).nullish(),plain:d.Yj().trim().max(2e3).nullish(),cluster:d.Yj().trim().max(64).nullish(),layer:g.nullish(),status:h.optional(),priority:d.ai().int().min(0).max(3).optional(),sourceRef:d.Yj().trim().max(300).nullish()});d.Ik({x:d.ai(),y:d.ai()}),d.Ik({fromId:d.Yj().min(1),toId:d.Yj().min(1),kind:d.k5(["DEPENDS","RELATES","REPLACES"]).optional(),label:d.Yj().trim().max(80).nullish(),sourceHandle:d.Yj().trim().max(16).nullish(),targetHandle:d.Yj().trim().max(16).nullish()})},8292:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Nh:()=>o});var e=c(23873),f=c(39321),g=c(62896),h=c(22443),i=c(4963),j=c(56258);c(526),c(58149),c(47446);var k=c(10556);c(47162),c(27840),c(66949);var l=c(3173);c(50042);var m=c(4120),n=a([g,i,j,k,l,m]);[g,i,j,k,l,m]=n.then?(await n)():n;let p=new Set(["DONE","CANCELLED","DEPRIORITIZED"]),q=new Set(["IN_PROGRESS","BLOCKED"]),r=new Set(["CANCELLED","DEPRIORITIZED"]);async function o(a){let b=new Set,c=a;for(;!b.has(c);){var d;b.add(c);let a=await g.db.query.node.findFirst({where:(a,{eq:b})=>b(a.id,c),columns:{parentId:!0,view:!0}});if(!a?.parentId||"ROADMAP"!==a.view)return;let e=await g.db.query.node.findFirst({where:(b,{eq:c})=>c(b.id,a.parentId),columns:{id:!0,status:!0,view:!0}});if(!e||"ROADMAP"!==e.view||r.has(e.status))return;let i=(d=(await g.db.query.node.findMany({where:(a,{eq:b})=>b(a.parentId,e.id),columns:{status:!0}})).map(a=>a.status)).length?d.every(a=>p.has(a))?"DONE":d.some(a=>q.has(a))?"IN_PROGRESS":"PENDING":"PENDING";if(e.status===i)return;await g.db.update(h.node).set({status:i}).where((0,f.eq)(h.node.id,e.id)),c=e.id}}e.Ik({title:e.Yj().trim().min(1),domain:e.Yj().trim().min(1),role:e.Yj().nullish(),plain:e.Yj().nullish(),layer:e.Yj().nullish(),status:e.Yj().nullish(),files:e.YO(e.Yj()).optional(),depends:e.YO(e.Yj()).optional(),bugs:e.YO(e.Ik({note:e.Yj().trim().min(1).max(2e3)})).optional()}),d()}catch(a){d(a)}})},10556:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443),c(47446);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},16189:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{n:()=>i});var e=c(80941),f=c(62896),g=a([f]);async function h(a){if(a)return void await (0,e.kO)(a);let b=(0,e.UP)();b?await (0,e.kO)(b):await (0,f.e$)()}async function i(a){let b=null;try{let{cookies:a}=await c.e(6042).then(c.bind(c,36042)),d=await a(),f=d.get(e.Dk)?.value??null;b=f&&(0,e.K4)(f)?f:null}catch{}return await h(b),(0,e.X_)(b,a)}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},22443:(a,b,c)=>{c.r(b),c.d(b,{appSetting:()=>E,boardAnnotation:()=>r,bugFlag:()=>s,codeFile:()=>B,codeFileEdge:()=>C,dbColumn:()=>u,dbRelation:()=>v,dbTable:()=>t,draftColumn:()=>z,draftRelation:()=>A,draftTable:()=>y,edge:()=>o,endpoint:()=>w,endpointTable:()=>x,node:()=>l,nodeFile:()=>m,nodeTags:()=>p,note:()=>q,planContract:()=>H,projectMeta:()=>F,syncState:()=>D,tag:()=>n,workspaceFlag:()=>G});var d=c(16996),e=c(55402),f=c(76003),g=c(24267),h=c(3161),i=c(80822),j=c(96508),k=c(70202);let l=(0,d.D)("Node",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),view:(0,e.Qq)().notNull(),kind:(0,e.Qq)().default("FEATURE").notNull(),cluster:(0,e.Qq)(),layer:(0,e.Qq)(),title:(0,e.Qq)().notNull(),role:(0,e.Qq)(),plain:(0,e.Qq)(),status:(0,e.Qq)().default("PENDING").notNull(),priority:(0,f.nd)().default(2).notNull(),progress:(0,f.nd)().default(0).notNull(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),sourceRef:(0,e.Qq)(),externalId:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),parentId:(0,e.Qq)(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("Node_cluster_idx").on(a.cluster),(0,h.Pe)("Node_parentId_idx").on(a.parentId),(0,h.Pe)("Node_view_idx").on(a.view),(0,i.mt)(()=>({columns:[a.parentId],foreignColumns:[a.id],name:"Node_parentId_Node_id_fk"})).onUpdate("cascade").onDelete("cascade")]),m=(0,d.D)("NodeFile",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),nodeId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),path:(0,e.Qq)().notNull()},a=>[(0,h.GL)("NodeFile_nodeId_path_key").on(a.nodeId,a.path),(0,h.Pe)("NodeFile_nodeId_idx").on(a.nodeId)]),n=(0,d.D)("Tag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),label:(0,e.Qq)().notNull(),color:(0,e.Qq)()},a=>[(0,h.GL)("Tag_label_key").on(a.label)]),o=(0,d.D)("Edge",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),toId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),kind:(0,e.Qq)().default("DEPENDS").notNull(),label:(0,e.Qq)(),sourceHandle:(0,e.Qq)(),targetHandle:(0,e.Qq)()},a=>[(0,h.GL)("Edge_fromId_toId_kind_key").on(a.fromId,a.toId,a.kind),(0,h.Pe)("Edge_toId_idx").on(a.toId),(0,h.Pe)("Edge_fromId_idx").on(a.fromId)]),p=(0,d.D)("_NodeTags",{a:(0,e.Qq)("A").notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),b:(0,e.Qq)("B").notNull().references(()=>n.id,{onDelete:"cascade",onUpdate:"cascade"})},a=>[(0,h.GL)("_NodeTags_AB_unique").on(a.a,a.b),(0,h.Pe)("_NodeTags_B_index").on(a.b)]),q=(0,d.D)("Note",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),title:(0,e.Qq)().default("Untitled").notNull(),body:(0,e.Qq)().default("").notNull(),ord:(0,g.x)().default(0).notNull(),pinned:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("Note_updatedAt_idx").on(a.updatedAt)]),r=(0,d.D)("BoardAnnotation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),targetKind:(0,e.Qq)().notNull(),targetId:(0,e.Qq)().notNull(),columnName:(0,e.Qq)(),body:(0,e.Qq)().default("").notNull(),x:(0,g.x)(),y:(0,g.x)(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("BoardAnnotation_target_idx").on(a.targetId)]),s=(0,d.D)("BugFlag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),nodeId:(0,e.Qq)().notNull().references(()=>l.id,{onDelete:"cascade",onUpdate:"cascade"}),by:(0,e.Qq)().notNull(),note:(0,e.Qq)().notNull(),resolvedAt:(0,f.nd)({mode:"timestamp_ms"}),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>[(0,h.Pe)("BugFlag_nodeId_idx").on(a.nodeId)]),t=(0,d.D)("DbTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),name:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.Pe)("DbTable_domain_idx").on(a.domain),(0,h.GL)("DbTable_name_key").on(a.name)]),u=(0,d.D)("DbColumn",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),tableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,e.Qq)().notNull(),type:(0,e.Qq)().notNull(),isPk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),isFk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),nullable:(0,f.nd)({mode:"boolean"}).default(!0).notNull(),note:(0,e.Qq)(),ord:(0,f.nd)().default(0).notNull()},a=>[(0,h.GL)("DbColumn_tableId_name_key").on(a.tableId,a.name),(0,h.Pe)("DbColumn_tableId_idx").on(a.tableId)]),v=(0,d.D)("DbRelation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromTableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,e.Qq)().notNull(),toColumn:(0,e.Qq)().notNull(),label:(0,e.Qq)()},a=>[(0,h.Pe)("DbRelation_toTableId_idx").on(a.toTableId),(0,h.Pe)("DbRelation_fromTableId_idx").on(a.fromTableId)]),w=(0,d.D)("Endpoint",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),method:(0,e.Qq)().notNull(),path:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),source:(0,e.Qq)().default("MANUAL").notNull(),planId:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.GL)("Endpoint_method_path_key").on(a.method,a.path),(0,h.Pe)("Endpoint_domain_idx").on(a.domain)]),x=(0,d.D)("EndpointTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),endpointId:(0,e.Qq)().notNull().references(()=>w.id,{onDelete:"cascade",onUpdate:"cascade"}),tableId:(0,e.Qq)().notNull().references(()=>t.id,{onDelete:"cascade",onUpdate:"cascade"}),access:(0,e.Qq)().default("read").notNull()},a=>[(0,h.GL)("EndpointTable_endpointId_tableId_key").on(a.endpointId,a.tableId),(0,h.Pe)("EndpointTable_tableId_idx").on(a.tableId)]),y=(0,d.D)("DraftTable",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),name:(0,e.Qq)().notNull(),domain:(0,e.Qq)(),description:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date)},a=>[(0,h.GL)("DraftTable_name_key").on(a.name)]),z=(0,d.D)("DraftColumn",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),tableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),name:(0,e.Qq)().notNull(),type:(0,e.Qq)().notNull(),isPk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),isFk:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),nullable:(0,f.nd)({mode:"boolean"}).default(!0).notNull(),note:(0,e.Qq)(),ord:(0,f.nd)().default(0).notNull()},a=>[(0,h.Pe)("DraftColumn_tableId_idx").on(a.tableId)]),A=(0,d.D)("DraftRelation",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),fromTableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),toTableId:(0,e.Qq)().notNull().references(()=>y.id,{onDelete:"cascade",onUpdate:"cascade"}),fromColumn:(0,e.Qq)().notNull(),toColumn:(0,e.Qq)().notNull(),label:(0,e.Qq)()},a=>[(0,h.Pe)("DraftRelation_toTableId_idx").on(a.toTableId),(0,h.Pe)("DraftRelation_fromTableId_idx").on(a.fromTableId)]),B=(0,d.D)("CodeFile",{path:(0,e.Qq)().primaryKey(),root:(0,e.Qq)(),lang:(0,e.Qq)(),x:(0,g.x)().default(0).notNull(),y:(0,g.x)().default(0).notNull(),mtimeMs:(0,g.x)(),size:(0,f.nd)(),inDegree:(0,f.nd)().default(0).notNull(),outDegree:(0,f.nd)().default(0).notNull(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),C=(0,d.D)("CodeFileEdge",{fromPath:(0,e.Qq)().notNull().references(()=>B.path,{onDelete:"cascade",onUpdate:"cascade"}),toPath:(0,e.Qq)().notNull().references(()=>B.path,{onDelete:"cascade",onUpdate:"cascade"}),circular:(0,f.nd)({mode:"boolean"}).default(!1).notNull()},a=>[(0,h.Pe)("CodeFileEdge_circular_idx").on(a.circular),(0,h.Pe)("CodeFileEdge_toPath_idx").on(a.toPath),(0,h.Pe)("CodeFileEdge_fromPath_idx").on(a.fromPath),(0,j.ie)({columns:[a.fromPath,a.toPath],name:"CodeFileEdge_fromPath_toPath_pk"})]),D=(0,d.D)("SyncState",{id:(0,e.Qq)().primaryKey().default("singleton"),version:(0,f.nd)().default(0).notNull(),codeGraphSyncedAt:(0,f.nd)({mode:"timestamp_ms"}),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),E=(0,d.D)("AppSetting",{id:(0,e.Qq)().primaryKey().default("singleton"),editor:(0,e.Qq)().default("auto").notNull(),currentFeatureId:(0,e.Qq)(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),F=(0,d.D)("ProjectMeta",{id:(0,e.Qq)().primaryKey().default("singleton"),overview:(0,e.Qq)(),conventions:(0,e.Qq)().default("[]").notNull(),hasFrontend:(0,f.nd)({mode:"boolean"}),classificationRoots:(0,e.Qq)().default("[]").notNull(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)}),G=(0,d.D)("WorkspaceFlag",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),key:(0,e.Qq)().notNull(),enabled:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),config:(0,e.Qq)(),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.GL)("WorkspaceFlag_key_key").on(a.key)]),H=(0,d.D)("PlanContract",{id:(0,e.Qq)().primaryKey().$defaultFn(()=>(0,k.sX)()),planId:(0,e.Qq)().notNull(),declaredFiles:(0,e.Qq)().default("[]").notNull(),authorizedExtras:(0,e.Qq)().default("[]").notNull(),active:(0,f.nd)({mode:"boolean"}).default(!1).notNull(),createdAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date),updatedAt:(0,f.nd)({mode:"timestamp_ms"}).notNull().$defaultFn(()=>new Date).$onUpdate(()=>new Date)},a=>[(0,h.GL)("PlanContract_planId_key").on(a.planId),(0,h.Pe)("PlanContract_active_idx").on(a.active)])},26284:(a,b,c)=>{c.d(b,{$:()=>i});var d=c(48249),e=c(70813),f=c(21654),g=c(33191);let h=(0,f.F)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.Button,{"data-slot":"button",className:(0,g.cn)(h({variant:b,size:c,className:a})),...f})}},27267:(a,b,c)=>{c.d(b,{TT:()=>f,Xf:()=>h,m6:()=>e,nR:()=>g,yl:()=>d});let d=["PENDING","IN_PROGRESS","DONE","BLOCKED","CANCELLED","DEPRIORITIZED"],e=["KEEP","REBUILD","REPLACE","DROP"],f=["IN_PROGRESS","PENDING","BLOCKED","DONE","DEPRIORITIZED","CANCELLED"],g={DONE:{label:"Done",className:"border-emerald-500/30 bg-emerald-500/15 text-emerald-300"},IN_PROGRESS:{label:"In progress",className:"border-sky-500/30 bg-sky-500/15 text-sky-300"},PENDING:{label:"Pending",className:"border-amber-500/30 bg-amber-500/10 text-amber-200"},BLOCKED:{label:"Blocked",className:"border-orange-500/30 bg-orange-500/15 text-orange-300"},CANCELLED:{label:"Cancelled",className:"border-zinc-500/30 bg-zinc-500/10 text-zinc-400 line-through"},DEPRIORITIZED:{label:"Deprioritized",className:"border-zinc-600/40 bg-zinc-600/10 text-zinc-400"},KEEP:{label:"Keep",className:"border-emerald-500/30 bg-emerald-500/15 text-emerald-300"},REBUILD:{label:"Rebuild",className:"border-violet-500/30 bg-violet-500/15 text-violet-300"},REPLACE:{label:"Replace",className:"border-rose-500/30 bg-rose-500/15 text-rose-300"},DROP:{label:"Drop",className:"border-zinc-500/30 bg-zinc-500/10 text-zinc-400 line-through"}};function h(a){return a?.trim()||"—"}},27741:(a,b,c)=>{c.d(b,{S:()=>d});function d(a,b={}){let c=b.pad??20,e=b.header??26,f=new Map;for(let b of a){let a=f.get(b.group);a?(a.minX=Math.min(a.minX,b.x),a.minY=Math.min(a.minY,b.y),a.maxX=Math.max(a.maxX,b.x+b.w),a.maxY=Math.max(a.maxY,b.y+b.h),a.count++):f.set(b.group,{minX:b.x,minY:b.y,maxX:b.x+b.w,maxY:b.y+b.h,count:1})}return Array.from(f.entries()).sort(([a],[b])=>a.localeCompare(b)).map(([a,b])=>({key:a,label:a,x:b.minX-c,y:b.minY-c-e,w:b.maxX-b.minX+2*c,h:b.maxY-b.minY+2*c+e,count:b.count}))}},27840:(a,b,c)=>{},29303:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},32798:(a,b,c)=>{c.d(b,{m:()=>d});function d(a,b){let c=[];return a.forEach((a,d)=>{let e=a.excerpt.trim();if(!e)return;let f={annotationId:a.id,n:d+1};for(let a of b.tables){if(e===a.name)return void c.push({...f,kind:"table",targetId:a.id,column:null});if(e.startsWith(`${a.name}.`)){let b=e.slice(a.name.length+1);if(a.columns.includes(b))return void c.push({...f,kind:"column",targetId:a.id,column:b})}}for(let a of b.endpoints??[])if(e===`${a.method} ${a.path}`)return void c.push({...f,kind:"endpoint",targetId:a.id,column:null});for(let a of b.features??[])if(e===a.title||e===`feature: ${a.title}`)return void c.push({...f,kind:"feature",targetId:a.id,column:null})}),c}},33346:(a,b,c)=>{c.d(b,{a2:()=>g,i3:()=>j,xZ:()=>h});let d=["bg-emerald-500/15 text-emerald-300","bg-sky-500/15 text-sky-300","bg-violet-500/15 text-violet-300","bg-amber-500/15 text-amber-200","bg-rose-500/15 text-rose-300","bg-cyan-500/15 text-cyan-300","bg-fuchsia-500/15 text-fuchsia-300","bg-lime-500/15 text-lime-300","bg-orange-500/15 text-orange-300","bg-teal-500/15 text-teal-300","bg-indigo-500/15 text-indigo-300","bg-pink-500/15 text-pink-300"],e=["border-emerald-500/20 bg-emerald-500/[0.04]","border-sky-500/20 bg-sky-500/[0.04]","border-violet-500/20 bg-violet-500/[0.04]","border-amber-500/20 bg-amber-500/[0.04]","border-rose-500/20 bg-rose-500/[0.04]","border-cyan-500/20 bg-cyan-500/[0.04]","border-fuchsia-500/20 bg-fuchsia-500/[0.04]","border-lime-500/20 bg-lime-500/[0.04]","border-orange-500/20 bg-orange-500/[0.04]","border-teal-500/20 bg-teal-500/[0.04]","border-indigo-500/20 bg-indigo-500/[0.04]","border-pink-500/20 bg-pink-500/[0.04]"];function f(a){let b=(a??"").trim().toUpperCase();if(!b)return null;let c=0;for(let a=0;a<b.length;a++)c=31*c+b.charCodeAt(a)>>>0;return c%d.length}function g(a){let b=f(a);return null===b?"bg-white/[0.06] text-muted-foreground":d[b]}function h(a){let b=f(a);return null===b?"border-white/10 bg-white/[0.02]":e[b]}let i=["#34d399","#38bdf8","#a78bfa","#fbbf24","#fb7185","#22d3ee","#e879f9","#a3e635","#fb923c","#2dd4bf","#818cf8","#f472b6"];function j(a){let b=f(a);return null===b?"#9ca3af":i[b]}},34849:(a,b,c)=>{c.d(b,{VI:()=>e});var d=c(27267);function e(a,b,c={}){let f=c.colW??320,g=c.rowH??150,h=c.childIndent??24,i=c.laneGap??56,j=c.bandGap??110,k=c.maxCols??10,l=c.maxBandW??8*f,m=new Set(a.map(a=>a.id)),n=a=>!a.parentId||!m.has(a.parentId),o=a.filter(n),p=new Map;for(let b of a){if(n(b))continue;let a=p.get(b.parentId);a?a.push(b):p.set(b.parentId,[b])}let q="status"===b?a=>a.status:"priority"===b?a=>String(a.priority):a=>(a.cluster??"").trim()||"—",r=new Map;for(let a of o){let b=q(a),c=r.get(b);c?c.push(a):r.set(b,[a])}let s=(function(a,b,c){if("status"===a)return[...d.TT];if("priority"===a)return["0","1","2","3"];let e=Array.from(new Set(b.map(c))),f=e.filter(a=>"—"!==a).sort();return e.includes("—")?[...f,"—"]:f})(b,o,q).filter(a=>r.has(a)),t=new Map,u=0,v=0,w=0;for(let a of s){let b=r.get(a),c=b.reduce((a,b)=>a+1+(p.get(b.id)?.length??0),0),d=Math.max(1,Math.min(k,b.length,Math.round(Math.sqrt(.85*c))||1)),e=d*f;u>0&&u+e>l&&(u=0,v+=w+j,w=0);let m=Array(d).fill(0);for(let a of b){let b=0;for(let a=1;a<d;a++)m[a]<m[b]&&(b=a);let c=u+b*f,e=v+m[b]*g;t.set(a.id,{x:c,y:e});let i=p.get(a.id)??[];i.forEach((a,b)=>{t.set(a.id,{x:c+h,y:e+(b+1)*g})}),m[b]+=1+i.length}w=Math.max(w,m.reduce((a,b)=>Math.max(a,b),0)*g),u+=e+i}return t}},38476:(a,b,c)=>{c.d(b,{F1:()=>h,e6:()=>f,qA:()=>e,ru:()=>g});let d={auth:"#4ea1ff",firms:"#c792ea",search:"#7bd389",storage:"#ffb86b",petitions:"#ff7a45",monitoring:"#f5b942",admin:"#ff6b9d"};function e(a){return a&&d[a]||"#8a8a8a"}let f={GET:"#7bd389",POST:"#4ea1ff",PUT:"#ffb86b",PATCH:"#ffb86b",DELETE:"#ff3860"},g={read:"#4ea1ff",write:"#ffb86b","read-write":"#c792ea"};function h(a,b){let c=new Set([a]);for(let d of b)d.source===a&&c.add(d.target),d.target===a&&c.add(d.source);return c}},45572:(a,b,c)=>{c.d(b,{MapClient:()=>aH});var d=c(48249),e=c(67484),f=c(53735),g=c(55030),h=c(56024);c(71763);var i=c(10920),j=c(15828),k=c(69473),l=c(17313),m=c(28624),n=c(90498),o=c(30170),p=c(95744),q=c(19099),r=c(1229),s=c(58720),t=c(99829);let u=(0,t.createServerReference)("40e90ef33a8ede0553a9ba60c97a86da53f0149f38",t.callServer,void 0,t.findSourceMapURL,"acceptSuggestionAction");var v=c(85205),w=c(9880),x=c(49783),y=c(25148),z=c(24422),A=c(47578),B=c(97432),C=c(47352),D=c(35471),E=c(45535),F=c(57684),G=c(83394),H=c(55056),I=c(27267),J=c(78103),K=c(33346);let L=(0,e.createContext)(null);function M(){let a=(0,e.useContext)(L);if(!a)throw Error("useNodeEdit must be used inside NodeEditContext");return a}var N=c(50605),O=c(2942),P=c(33191);let Q=[{v:0,l:"P0 \xb7 critical"},{v:1,l:"P1 \xb7 high"},{v:2,l:"P2 \xb7 medium"},{v:3,l:"P3 \xb7 low"}],R="nodrag nopan";function S({layer:a}){let b=(0,J.jR)(a);return b?(0,d.jsx)("span",{"aria-hidden":!0,className:"absolute bottom-2 left-1 top-2 w-[3px] rounded-full",style:{background:(0,J.A6)(b)}}):null}function T({layer:a}){let b=(0,J.jR)(a);if(!b)return null;let c=J.YG[b];return(0,d.jsxs)("span",{title:`${c.label} — which side of the stack this lands on`,className:"flex shrink-0 items-center gap-1 rounded bg-white/10 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:["backend"!==b&&(0,d.jsx)(v.A,{className:"size-2.5"}),"frontend"!==b&&(0,d.jsx)(w.A,{className:"size-2.5"}),c.short]})}function U({nodeId:a}){let b=(0,q.useRouter)(),[c,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(!1),k=()=>{f(!1),h("")},m=async()=>{let c=g.trim();if(c&&!i){j(!0);try{(await fetch("/api/bug-flags",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({nodeId:a,by:"user",note:c})})).ok&&(k(),b.refresh())}finally{j(!1)}}};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",title:"Flag a bug on this component",onClick:a=>{a.stopPropagation(),f(a=>!a)},className:(0,P.cn)(R,"absolute -right-3 top-[calc(50%-28px)] z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-full border border-white/15 bg-[#242428] text-muted-foreground shadow-md transition-all hover:border-rose-400/50 hover:text-rose-300",c?"border-rose-400/50 text-rose-300 opacity-100":"opacity-0 group-hover/nc:opacity-100"),children:(0,d.jsx)(l.A,{className:"size-3"})}),c&&(0,d.jsxs)("div",{onClick:a=>a.stopPropagation(),className:(0,P.cn)(R,"absolute -right-2 top-[calc(50%-28px)] z-20 w-60 translate-x-full rounded-xl border border-rose-400/25 bg-[#1c1c1f] p-2 shadow-xl"),children:[(0,d.jsxs)("div",{className:"mb-1.5 flex items-center justify-between",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1 text-[10px] font-semibold uppercase tracking-wide text-rose-300",children:[(0,d.jsx)(l.A,{className:"size-3"})," Flag a bug"]}),(0,d.jsx)("button",{type:"button",title:"Cancel",onClick:k,className:"rounded p-0.5 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)("span",{className:"block px-1 text-[11px] leading-none",children:"✕"})})]}),(0,d.jsx)("textarea",{autoFocus:!0,rows:2,value:g,placeholder:"What did you find?",onChange:a=>h(a.target.value),onKeyDown:a=>{a.stopPropagation(),"Escape"===a.key&&k(),"Enter"!==a.key||a.shiftKey||(a.preventDefault(),m())},className:"field-sizing-content max-h-40 min-h-12 w-full resize-none rounded-md bg-white/[0.04] px-1.5 py-1 text-xs outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.07]"}),(0,d.jsx)("button",{type:"button",disabled:i||!g.trim(),onClick:()=>void m(),className:"mt-1.5 w-full rounded-md bg-rose-500/15 py-1 text-[11px] font-semibold text-rose-300 transition-colors hover:bg-rose-500/25 disabled:opacity-50",children:i?"Flagging…":"Flag bug"})]})]})}let V=["border-[#ff3860]/60 shadow-[0_0_0_1px_rgba(255,56,96,0.15)]","border-[#ff7a45]/50","border-amber-400/35","border-border"];function W({id:a,data:b,selected:c}){let{categories:f,statuses:g,patch:h,isExpanded:i,toggleExpand:j,openDetailed:k,removeNode:m,editingTitleId:n,onAskAgent:o,hasFrontend:q}=M(),t=i(a),[v,w]=(0,e.useState)(!1),[L,X]=(0,e.useState)(!1),[Y,Z]=(0,e.useState)(b.title),[$,_]=(0,e.useState)(b.cluster??""),[aa,ab]=(0,e.useState)(b.plain??""),ac="BUG"===b.kind&&"ROADMAP"===b.view,ad="ARCHITECTURE"===b.view,ae=ad?"border-border":V[b.priority]??"border-border",af=b.openBugs??0,ag="CANCELLED"===b.status||"DROP"===b.status,ah="DEPRIORITIZED"===b.status,ai="DRAFT"===b.source,aj="IN_PROGRESS"===b.status,ak="INIT"===b.source&&"ROADMAP"===b.view,al=a=>a.stopPropagation(),[am,an]=(0,e.useTransition)(),ao=(0,N.k)();return"full"!==ao?(0,d.jsxs)("div",{className:(0,P.cn)("relative rounded-lg border bg-card px-3 py-2.5 text-card-foreground shadow-sm","w-fit max-w-[296px]",b.isChild?"min-w-56":"min-w-64",ac?"border-rose-400/50 bg-rose-500/[0.05]":ae,aj&&"border-sky-400/60",c&&"ring-2 ring-[var(--accent,#f5b942)]",ag&&"opacity-60","far"===ao&&"!opacity-0"),children:[(0,d.jsx)(r.x,{}),q&&(0,d.jsx)(S,{layer:b.layer}),(0,d.jsx)("div",{className:"break-words text-[15px] font-semibold leading-snug",children:b.title})]}):(0,d.jsxs)("div",{className:(0,P.cn)("group/nc relative rounded-lg border bg-card px-2.5 py-2 text-card-foreground shadow-sm transition","w-fit max-w-96",t?"min-w-80":"min-w-64",ai?"border-dashed border-sky-400/50 bg-sky-500/[0.06]":ak?"border-dashed border-violet-400/60 bg-violet-500/[0.07] shadow-[0_0_0_1px_rgba(167,139,250,0.18)]":ae,ac&&!ai&&"border-rose-400/50 bg-rose-500/[0.05]",aj&&"border-sky-400/60 shadow-[0_0_0_1px_rgba(56,160,255,0.25)]",b.isNext&&"border-emerald-400/70 shadow-[0_0_0_2px_rgba(52,211,153,0.35)]",null!=b.workOrderRank&&b.workOrderRank>1&&"border-emerald-400/25",c&&"ring-2 ring-[var(--accent,#f5b942)]",ag&&"opacity-60",ah&&"opacity-70 border-dashed"),children:[(0,d.jsx)(r.x,{}),q&&(0,d.jsx)(S,{layer:b.layer}),ad&&(0,d.jsx)(U,{nodeId:a}),(b.pins?.length??0)>0?(0,d.jsx)(s.e0,{pins:b.pins,onPinClick:b.onPinClick}):b.onComment&&(0,d.jsx)("button",{type:"button",title:`Annotate ${b.title}`,onClick:a=>{al(a),b.onComment?.(b.title)},className:(0,P.cn)(R,"absolute -right-3 top-1/2 z-10 flex size-6 -translate-y-1/2 items-center justify-center rounded-full border border-white/15 bg-[#242428] text-muted-foreground opacity-0 shadow-md transition-all group-hover/nc:opacity-100 hover:border-[#ff7a45]/50 hover:text-[#ff7a45]"),children:(0,d.jsx)(x.A,{className:"size-3"})}),b.isNext&&(0,d.jsx)("div",{className:"mb-1 inline-flex items-center gap-1 rounded bg-emerald-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-emerald-300",children:"work on next"}),null!=b.workOrderRank&&b.workOrderRank>1&&(0,d.jsxs)("div",{title:`#${b.workOrderRank} in the work order`,className:"mb-1 inline-flex items-center gap-1 rounded bg-white/5 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-muted-foreground",children:["next \xb7 ",b.workOrderRank]}),(0,d.jsxs)("div",{className:"flex w-0 min-w-full items-start gap-1.5",children:[aj&&(0,d.jsx)("span",{title:"em andamento",className:"mt-1.5 inline-block size-2 shrink-0 animate-pulse rounded-full bg-sky-400"}),b.isCriterion&&!aj&&(0,d.jsx)("span",{title:"Success criterion",className:"mt-1.5 inline-block size-1.5 shrink-0 rounded-full bg-[var(--accent,#f5b942)]"}),(0,d.jsx)("textarea",{rows:1,value:Y,autoFocus:n===a,placeholder:"Title…",onFocus:b=>{n===a&&b.currentTarget.select()},onChange:a=>Z(a.target.value),onBlur:()=>{let c=Y.trim();c&&c!==b.title&&h(a,{title:c},!0)},onKeyDown:a=>{al(a),"Enter"!==a.key||a.shiftKey||(a.preventDefault(),a.currentTarget.blur())},className:(0,P.cn)(R,"field-sizing-content w-full resize-none bg-transparent text-sm font-medium leading-snug outline-none placeholder:text-muted-foreground/60",ag&&"line-through")}),(0,d.jsx)("button",{type:"button",onClick:b=>{al(b),j(a)},title:t?"Collapse":"Expand",className:(0,P.cn)(R,"mt-0.5 shrink-0 text-muted-foreground hover:text-foreground"),children:t?(0,d.jsx)(y.A,{className:"size-3.5"}):(0,d.jsx)(z.A,{className:"size-3.5"})})]}),((b.signals?.untested??0)>0||b.signals?.auth||af>0)&&(0,d.jsxs)("div",{className:"mt-1 flex w-0 min-w-full flex-wrap items-center gap-1",children:[af>0&&(0,d.jsxs)("span",{title:`${af} open bug flag(s) — raised by you or an agent examining this code`,className:"flex items-center gap-1 rounded bg-rose-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-rose-300",children:[(0,d.jsx)(l.A,{className:"size-2.5"}),af," ",1===af?"bug":"bugs"]}),(b.signals?.untested??0)>0&&(0,d.jsxs)("span",{title:`${b.signals.untested} of ${b.signals.total} attached file(s) have no test importing them`,className:"flex items-center gap-1 rounded bg-amber-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-amber-300",children:[(0,d.jsx)(A.A,{className:"size-2.5"}),b.signals.untested," untested"]}),b.signals?.auth&&(0,d.jsxs)("span",{title:"touches auth-sensitive files",className:"flex items-center gap-1 rounded bg-red-500/15 px-1 text-[9px] font-semibold uppercase tracking-wide text-red-300",children:[(0,d.jsx)(B.A,{className:"size-2.5"})," auth"]})]}),b.role&&(0,d.jsx)("div",{className:(0,P.cn)("mt-0.5 w-0 min-w-full text-[10px] leading-snug text-muted-foreground",!t&&"line-clamp-1"),children:b.role}),(0,d.jsxs)("div",{className:"mt-2 flex items-center gap-1.5",children:["ROADMAP"===b.view?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("span",{title:ac?"Bug — something to fix":b.isChild?"Sub-task of a feature":"Feature — top-level roadmap item",className:(0,P.cn)("flex shrink-0 items-center gap-1 rounded px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide",ac?"bg-rose-500/15 text-rose-300":b.isChild?"bg-zinc-500/15 text-zinc-300":"bg-sky-500/15 text-sky-300"),children:[ac&&(0,d.jsx)(l.A,{className:"size-2.5"}),ac?"bug":b.isChild?"sub-task":"feature"]}),q&&(0,d.jsx)(T,{layer:b.layer}),ak&&(0,d.jsxs)("span",{className:(0,P.cn)("flex items-center gap-1 rounded bg-violet-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-violet-300",am&&"opacity-50"),children:[(0,d.jsx)(C.A,{className:"size-2.5"})," IA",(0,d.jsx)("button",{type:"button",title:"Accept suggestion — turn it into your own feature",disabled:am,onClick:b=>{al(b),an(async()=>u(a))},className:(0,P.cn)(R,"-my-0.5 rounded p-0.5 hover:bg-emerald-500/20 hover:text-emerald-300"),children:(0,d.jsx)(D.A,{className:"size-2.5"})}),(0,d.jsx)("button",{type:"button",title:"Dismiss suggestion (deletes the card)",disabled:am,onClick:b=>{al(b),m(a)},className:(0,P.cn)(R,"-my-0.5 -ml-0.5 rounded p-0.5 hover:bg-red-500/20 hover:text-red-300"),children:(0,d.jsx)(E.A,{className:"size-2.5"})})]}),(0,d.jsx)("input",{list:`cats-${a}`,value:$,placeholder:"category",onChange:a=>_(a.target.value),onBlur:()=>{let c=$.trim()||null;c!==(b.cluster??null)&&h(a,{cluster:c},!0)},onKeyDown:a=>{al(a),"Enter"===a.key&&a.currentTarget.blur()},className:(0,P.cn)(R,"field-sizing-content min-w-12 max-w-[65%] rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide outline-none focus:brightness-125 [&::-webkit-calendar-picker-indicator]:hidden",(0,K.a2)($))})]}):(0,d.jsxs)(d.Fragment,{children:[b.isChild&&(0,d.jsx)("span",{title:"Sub-component",className:"shrink-0 rounded bg-zinc-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:"sub"}),q&&(0,d.jsx)(T,{layer:b.layer}),(0,d.jsx)("input",{list:`cats-${a}`,value:$,placeholder:"domain",title:"Architecture domain — the lane this component lives in",onChange:a=>_(a.target.value),onBlur:()=>{let c=$.trim()||null;c!==(b.cluster??null)&&h(a,{cluster:c},!0)},onKeyDown:a=>{al(a),"Enter"===a.key&&a.currentTarget.blur()},className:(0,P.cn)(R,"field-sizing-content min-w-12 max-w-[65%] rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide outline-none focus:brightness-125 [&::-webkit-calendar-picker-indicator]:hidden",(0,K.a2)($))})]}),(0,d.jsx)("datalist",{id:`cats-${a}`,children:f.map(a=>(0,d.jsx)("option",{value:a},a))}),(0,d.jsxs)(H.l6,{value:b.status,onValueChange:b=>h(a,{status:b},!0),children:[(0,d.jsx)(H.bq,{className:(0,P.cn)(R,"ml-auto h-6 shrink-0 gap-1 rounded border px-1.5 py-0 text-[10px] font-medium",I.nR[b.status]?.className??"border-white/10"),children:(0,d.jsx)(H.yv,{children:a=>I.nR[a]?.label??a})}),(0,d.jsx)(H.gC,{alignItemWithTrigger:!1,children:g.map(a=>(0,d.jsx)(H.eb,{value:a,children:I.nR[a]?.label??a},a))})]})]}),t&&(0,d.jsxs)("div",{className:"mt-2 w-0 min-w-full space-y-2 border-t border-white/10 pt-2",children:[L||!aa.trim()?(0,d.jsx)("textarea",{autoFocus:L,value:aa,placeholder:"Description (markdown)…",onChange:a=>ab(a.target.value),onBlur:()=>{X(!1);let c=aa.trim()||null;c!==(b.plain??null)&&h(a,{plain:c},!0)},onKeyDown:al,rows:3,className:(0,P.cn)(R,"field-sizing-content max-h-[24rem] min-h-[4.5rem] w-full resize-y rounded bg-white/[0.04] px-1.5 py-1 text-xs outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.08]")}):(0,d.jsx)("div",{onClick:a=>{al(a),X(!0)},title:"Click to edit",className:"cursor-text rounded bg-white/[0.02] px-1.5 py-1 text-xs hover:bg-white/[0.05]",children:(0,d.jsx)(O.pO,{markdown:aa,variant:"compact",className:"text-[12px]"})}),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsxs)(H.l6,{value:String(b.priority),onValueChange:b=>h(a,{priority:Number(b)},!0),children:[(0,d.jsx)(H.bq,{className:(0,P.cn)(R,"h-6 gap-1 rounded border-white/10 px-1.5 py-0 text-[10px]"),children:(0,d.jsx)(H.yv,{children:a=>Q.find(b=>String(b.v)===a)?.l??a})}),(0,d.jsx)(H.gC,{alignItemWithTrigger:!1,children:Q.map(a=>(0,d.jsx)(H.eb,{value:String(a.v),children:a.l},a.v))})]}),q&&(0,d.jsxs)(H.l6,{value:(0,J.jR)(b.layer)??"none",onValueChange:b=>h(a,{layer:"none"===b?null:b},!0),children:[(0,d.jsx)(H.bq,{title:"Which side of the stack this lands on",className:(0,P.cn)(R,"h-6 gap-1 rounded border-white/10 px-1.5 py-0 text-[10px]"),children:(0,d.jsx)(H.yv,{children:a=>"none"===a?"layer \xb7 —":J.YG[a]?.label??a})}),(0,d.jsxs)(H.gC,{alignItemWithTrigger:!1,children:[(0,d.jsx)(H.eb,{value:"none",children:"—"}),Object.entries(J.YG).map(([a,b])=>(0,d.jsx)(H.eb,{value:a,children:b.label},a))]})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsxs)("button",{type:"button",onClick:b=>{al(b),v?m(a):w(!0)},onBlur:()=>w(!1),title:"Delete node",className:(0,P.cn)(R,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] transition-colors",v?"bg-red-500/20 text-red-300":"text-muted-foreground hover:bg-white/5 hover:text-red-300"),children:[(0,d.jsx)(F.A,{className:"size-3"}),v&&"Delete?"]}),o&&(0,d.jsxs)("button",{type:"button",onClick:a=>{al(a),o(`feature: ${b.title}`)},title:"Ask the agent a question about this feature (answered in its next round)",className:(0,P.cn)(R,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] text-sky-300/90 hover:bg-sky-500/15 hover:text-sky-300"),children:[(0,d.jsx)(G.A,{className:"size-3"})," Ask"]}),(0,d.jsxs)("button",{type:"button",onClick:b=>{al(b),k(a)},className:(0,P.cn)(R,"flex items-center gap-1 rounded px-1.5 py-1 text-[10px] text-muted-foreground hover:bg-white/5 hover:text-foreground"),children:[(0,d.jsx)(p.A,{className:"size-3"})," Details"]})]})]})]})]})}var X=c(32798),Y=c(82145),Z=c(48779),$=c(26284),_=c(52351),aa=c(74732);function ab({className:a,type:b,...c}){return(0,d.jsx)("input",{type:b,"data-slot":"input",className:(0,P.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",a),...c})}function ac({className:a,...b}){return(0,d.jsx)("textarea",{"data-slot":"textarea",className:(0,P.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",a),...b})}var ad=c(86371);function ae({className:a,...b}){return(0,d.jsx)(ad.b,{"data-slot":"label",className:(0,P.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}let af=(0,t.createServerReference)("401459d83618b996a0b9fb491d789038a7fb9d0f27",t.callServer,void 0,t.findSourceMapURL,"createNodeAction"),ag=(0,t.createServerReference)("604620ca13e6343504cd5b99510395a0b415cff27d",t.callServer,void 0,t.findSourceMapURL,"updateNodeAction");function ah({open:a,onOpenChange:b,mode:c,view:f,heading:g,nodeId:h,parentId:i,position:j,defaults:k,hasFrontend:l=!1}){let m=(0,q.useRouter)(),[n,o]=(0,e.useState)(k?.title??""),[p,r]=(0,e.useState)(k?.role??""),[s,t]=(0,e.useState)(k?.plain??""),[u,v]=(0,e.useState)(k?.cluster??""),[w,x]=(0,e.useState)(k?.status??("ARCHITECTURE"===f?"REBUILD":"PENDING")),[y,z]=(0,e.useState)(k?.kind==="BUG"?"BUG":"FEATURE"),[A,B]=(0,e.useState)((0,J.jR)(k?.layer)??"none"),[C,D]=(0,e.useState)(!1),E="ARCHITECTURE"===f?I.m6:I.yl;async function F(){if(n.trim()){D(!0);try{let a="none"===A?null:A;"create"===c?await af({view:f,..."ROADMAP"===f?{kind:y}:{},title:n.trim(),role:p.trim()||null,plain:s.trim()||null,cluster:u.trim()||null,...l?{layer:a}:{},parentId:i??null,status:w,x:j?.x??60,y:j?.y??60}):h&&await ag(h,{..."ROADMAP"===f?{kind:y}:{},title:n.trim(),role:p.trim()||null,plain:s.trim()||null,cluster:u.trim()||null,...l?{layer:a}:{},status:w}),b(!1),m.refresh()}finally{D(!1)}}}return(0,d.jsx)(aa.lG,{open:a,onOpenChange:b,children:(0,d.jsxs)(aa.Cf,{children:[(0,d.jsx)(aa.c7,{children:(0,d.jsx)(aa.L3,{children:g})}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(ae,{htmlFor:"nf-title",children:"Title"}),(0,d.jsx)(ab,{id:"nf-title",value:n,autoFocus:!0,onChange:a=>o(a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(ae,{htmlFor:"nf-role",children:"Role (one line)"}),(0,d.jsx)(ab,{id:"nf-role",value:p,onChange:a=>r(a.target.value)})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(ae,{htmlFor:"nf-plain",children:"Description"}),(0,d.jsx)(ac,{id:"nf-plain",rows:3,value:s,onChange:a=>t(a.target.value)})]}),"ROADMAP"===f&&(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(ae,{children:"Kind"}),(0,d.jsxs)(H.l6,{value:y,onValueChange:a=>null!=a&&z(a),children:[(0,d.jsx)(H.bq,{children:(0,d.jsx)(H.yv,{children:a=>"BUG"===a?"Bug":"Feature"})}),(0,d.jsxs)(H.gC,{children:[(0,d.jsx)(H.eb,{value:"FEATURE",children:"Feature"}),(0,d.jsx)(H.eb,{value:"BUG",children:"Bug"})]})]})]}),l&&(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(ae,{children:"Layer"}),(0,d.jsxs)(H.l6,{value:A,onValueChange:a=>null!=a&&B(a),children:[(0,d.jsx)(H.bq,{children:(0,d.jsx)(H.yv,{children:a=>"none"===a?"—":J.YG[a]?.label??a})}),(0,d.jsxs)(H.gC,{children:[(0,d.jsx)(H.eb,{value:"none",children:"—"}),Object.keys(J.YG).map(a=>(0,d.jsx)(H.eb,{value:a,children:J.YG[a].label},a))]})]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(ae,{children:"Status"}),(0,d.jsxs)(H.l6,{value:w,onValueChange:a=>null!=a&&x(a),children:[(0,d.jsx)(H.bq,{children:(0,d.jsx)(H.yv,{children:a=>I.nR[a]?.label??a})}),(0,d.jsx)(H.gC,{children:E.map(a=>(0,d.jsx)(H.eb,{value:a,children:I.nR[a]?.label??a},a))})]})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)(ae,{htmlFor:"nf-cluster",children:"Cluster / lane"}),(0,d.jsx)(ab,{id:"nf-cluster",value:u,onChange:a=>v(a.target.value)})]})]})]}),(0,d.jsxs)(aa.Es,{children:[(0,d.jsx)($.$,{variant:"outline",onClick:()=>b(!1),children:"Cancel"}),(0,d.jsx)($.$,{onClick:F,disabled:C||!n.trim(),children:C?"Saving…":"Save"})]})]})})}let ai=(0,t.createServerReference)("40e5c6c7e20a725ef78ed047c13bda1ff709511bd6",t.callServer,void 0,t.findSourceMapURL,"deleteNodeAction"),aj=(0,t.createServerReference)("6076b0cc785b7b39bd93013e3114c30ffc21019cb3",t.callServer,void 0,t.findSourceMapURL,"setStatusAction"),ak=(0,t.createServerReference)("40b8a870303cf0df962d3b9e7577671d7b0919856d",t.callServer,void 0,t.findSourceMapURL,"cancelAction"),al=(0,t.createServerReference)("40faed8d4b8f504b4e491260a2af5d5d894c457b57",t.callServer,void 0,t.findSourceMapURL,"deprioritizeAction");function am({view:a,selected:b,allNodes:c,onClose:e,commentsContent:f,commentsCount:g=0,activeTab:h,onTabChange:i,onAddComment:j,topOffset:k}){let l=!!f,m=h??"details";return(0,d.jsxs)(Z.b,{className:"absolute right-3 z-10 flex w-80 flex-col rounded-2xl",style:{top:k??12,maxHeight:`calc(100% - ${(k??12)+12}px)`},children:[l?(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-1 py-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(an,{active:"details"===m,onClick:()=>i?.("details"),children:"Details"}),(0,d.jsxs)(an,{active:"comments"===m,onClick:()=>i?.("comments"),children:["Comments",g>0&&(0,d.jsx)("span",{className:"ml-1 rounded-full bg-white/10 px-1 text-[9px] font-semibold leading-4",children:g})]})]}),(0,d.jsx)("button",{onClick:e,title:"Close panel",className:"mr-1 rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(E.A,{className:"size-4"})})]}):(0,d.jsxs)("div",{className:"flex items-center justify-between border-b border-white/10 px-3.5 py-2.5",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground",children:"Details"}),(0,d.jsx)("button",{onClick:e,title:"Close panel",className:"rounded-md p-1 text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(E.A,{className:"size-4"})})]}),(0,d.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:(0,d.jsx)("div",{className:"p-3",children:"comments"===m&&l?f:b?(0,d.jsxs)(d.Fragment,{children:[j&&(0,d.jsxs)("button",{type:"button",onClick:()=>j(b.title),className:"mb-3 flex w-full items-center justify-center gap-1.5 rounded-lg border border-white/10 bg-white/[0.03] px-3 py-1.5 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,d.jsx)(x.A,{className:"size-3.5"}),"Comment on this ","ARCHITECTURE"===a?"component":"feature"]}),(0,d.jsx)(ao,{node:b,view:a},b.id)]}):(0,d.jsx)(aq,{view:a,nodes:c})})})]})}function an({active:a,onClick:b,children:c}){return(0,d.jsx)("button",{type:"button",onClick:b,className:(0,P.cn)("flex items-center gap-1 rounded-md px-2.5 py-1 text-[11px] font-medium transition-colors",a?"bg-white/10 text-foreground":"text-muted-foreground hover:text-foreground"),children:c})}function ao({node:a,view:b}){let c=(0,q.useRouter)(),[f,g]=(0,e.useTransition)(),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!1),{hasFrontend:l}=M(),m=(0,J.jR)(a.layer),n="ARCHITECTURE"===b?I.m6:I.yl,o=a=>g(async()=>{await a(),c.refresh()});return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:[(0,I.Xf)(a.cluster),l&&m&&(0,d.jsxs)("span",{className:"ml-2 text-zinc-400",children:["\xb7 ",J.YG[m].label]}),0===a.priority&&(0,d.jsx)("span",{className:"ml-2 text-[#ff7a90]",children:"\xb7 critical path"})]}),(0,d.jsx)("h2",{className:"mt-1 text-lg font-semibold leading-tight",children:a.title})]}),"INIT"===a.source&&(0,d.jsxs)("div",{className:"rounded-lg border border-violet-400/30 bg-violet-500/[0.06] p-2.5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-semibold text-violet-300",children:[(0,d.jsx)(C.A,{className:"size-3.5"})," AI suggestion"]}),(0,d.jsx)("p",{className:"mt-1 text-[11px] leading-snug text-muted-foreground",children:"Suggested direction surfaced when mapping the repo. Accept to turn it into your own feature, or dismiss."}),(0,d.jsxs)("div",{className:"mt-2 flex gap-1.5",children:[(0,d.jsx)($.$,{size:"sm",className:"h-7 px-2.5 text-xs",disabled:f,onClick:()=>o(()=>u(a.id)),children:"Accept"}),(0,d.jsx)($.$,{size:"sm",variant:"outline",className:"h-7 px-2.5 text-xs text-muted-foreground",disabled:f,onClick:()=>o(()=>ai(a.id)),children:"Dismiss"})]})]}),(0,d.jsxs)("div",{className:"space-y-1.5",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Status"}),(0,d.jsxs)(H.l6,{value:a.status,onValueChange:b=>null!=b&&o(()=>aj(a.id,b)),children:[(0,d.jsx)(H.bq,{className:"h-8",disabled:f,children:(0,d.jsx)(H.yv,{children:a=>I.nR[a]?.label??a})}),(0,d.jsx)(H.gC,{children:n.map(a=>(0,d.jsx)(H.eb,{value:a,children:I.nR[a]?.label??a},a))})]})]}),a.plain&&(0,d.jsx)("div",{className:"rounded-md border border-white/5 bg-card/40 px-2.5 py-2 text-sm",children:(0,d.jsx)(O.pO,{markdown:a.plain,variant:"compact",className:"text-[12.5px]"})}),a.sourceRef&&(0,d.jsx)("div",{className:"rounded-md border border-border bg-card px-2 py-1.5 font-mono text-xs text-muted-foreground",children:a.sourceRef}),a.files.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("h3",{className:"mb-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:["Files (",a.files.length,")"]}),(0,d.jsx)("ul",{className:"space-y-0.5",children:a.files.map(a=>(0,d.jsx)("li",{children:(0,d.jsx)("button",{onClick:()=>fetch(`/api/open?path=${encodeURIComponent(a)}`).catch(()=>{}),title:`Open ${a} in editor`,className:"block w-full truncate rounded px-1.5 py-0.5 text-left font-mono text-[11px] text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:a})},a))})]}),"ARCHITECTURE"===b&&(0,d.jsx)(ap,{node:a}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-1.5 pt-1",children:[(0,d.jsx)($.$,{size:"sm",variant:"outline",onClick:()=>i(!0),children:"Edit"}),(0,d.jsx)($.$,{size:"sm",variant:"outline",onClick:()=>k(!0),children:"+ Sub-node"}),(0,d.jsx)($.$,{size:"sm",variant:"outline",disabled:f,onClick:()=>o(()=>ak(a.id)),children:"Cancel"}),(0,d.jsx)($.$,{size:"sm",variant:"outline",disabled:f,onClick:()=>o(()=>al(a.id)),children:"Deprioritize"}),(0,d.jsxs)(_.Lt,{children:[(0,d.jsx)(_.tv,{render:(0,d.jsx)($.$,{size:"sm",variant:"outline",className:"text-red-300",children:"Delete"})}),(0,d.jsxs)(_.EO,{children:[(0,d.jsxs)(_.wd,{children:[(0,d.jsxs)(_.r7,{children:["Delete “",a.title,"”?"]}),(0,d.jsx)(_.$v,{children:"This removes the node and all its sub-nodes. It can’t be undone."})]}),(0,d.jsxs)(_.ck,{children:[(0,d.jsx)(_.Zr,{children:"Cancel"}),(0,d.jsx)(_.Rx,{onClick:()=>o(()=>ai(a.id)),children:"Delete"})]})]})]})]}),h&&(0,d.jsx)(ah,{open:!0,onOpenChange:i,mode:"edit",view:b,heading:"Edit node",nodeId:a.id,hasFrontend:l,defaults:{title:a.title,role:a.role,plain:a.plain,status:a.status,cluster:a.cluster,kind:a.kind,layer:a.layer}}),j&&(0,d.jsx)(ah,{open:!0,onOpenChange:k,mode:"create",view:b,heading:"New sub-node",parentId:a.id,position:{x:a.x,y:a.y+120},hasFrontend:l,defaults:{cluster:a.cluster,layer:a.layer}})]})}function ap({node:a}){let b=(0,q.useRouter)(),[c,f]=(0,e.useState)(""),[g,h]=(0,e.useState)(!1),i=a.bugFlags.filter(a=>!a.resolved),j=a=>{h(!0),a().then(()=>b.refresh()).finally(()=>h(!1))},k=()=>{let b=c.trim();b&&j(async()=>{(await fetch("/api/bug-flags",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({nodeId:a.id,by:"user",note:b})})).ok&&f("")})};return(0,d.jsxs)("div",{children:[(0,d.jsxs)("h3",{className:"mb-1.5 flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:[(0,d.jsx)(l.A,{className:"size-3.5 text-rose-300"}),"Bug flags",i.length>0&&` (${i.length} open)`]}),a.bugFlags.length>0&&(0,d.jsx)("ul",{className:"space-y-1.5",children:a.bugFlags.map(a=>(0,d.jsxs)("li",{className:(0,P.cn)("rounded-md border px-2 py-1.5",a.resolved?"border-white/5 bg-card/30 opacity-60":"border-rose-400/25 bg-rose-500/[0.05]"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{title:"agent"===a.by?"Flagged by an agent examining the code":"Flagged by you",className:(0,P.cn)("rounded px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide","agent"===a.by?"bg-violet-500/15 text-violet-300":"bg-sky-500/15 text-sky-300"),children:"agent"===a.by?"agent":"you"}),(0,d.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[(0,d.jsx)("button",{type:"button",disabled:g,onClick:()=>j(()=>fetch(`/api/bug-flags/${a.id}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({resolved:!a.resolved})})),className:"rounded px-1.5 py-0.5 text-[10px] text-muted-foreground transition-colors hover:bg-white/10 hover:text-foreground",children:a.resolved?"Reopen":"Resolve"}),(0,d.jsx)("button",{type:"button",disabled:g,title:"Delete flag",onClick:()=>j(()=>fetch(`/api/bug-flags/${a.id}`,{method:"DELETE"})),className:"rounded p-0.5 text-muted-foreground transition-colors hover:bg-white/10 hover:text-red-300",children:(0,d.jsx)(E.A,{className:"size-3"})})]})]}),(0,d.jsx)("p",{className:(0,P.cn)("mt-1 text-[11.5px] leading-snug",a.resolved&&"line-through"),children:a.note})]},a.id))}),(0,d.jsxs)("div",{className:"mt-1.5 flex items-start gap-1.5",children:[(0,d.jsx)("textarea",{rows:1,value:c,placeholder:"Flag a bug or something worth investigating…",onChange:a=>f(a.target.value),onKeyDown:a=>{"Enter"!==a.key||a.shiftKey||(a.preventDefault(),k())},className:"field-sizing-content min-h-7 w-full resize-none rounded-md border border-white/10 bg-white/[0.03] px-2 py-1 text-[11.5px] outline-none placeholder:text-muted-foreground/60 focus:bg-white/[0.06]"}),(0,d.jsx)($.$,{size:"sm",variant:"outline",className:"h-7 shrink-0 px-2 text-[11px]",disabled:g||!c.trim(),onClick:k,children:"Flag"})]})]})}function aq({view:a,nodes:b}){let c=b.filter(a=>0===a.priority).length;return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-semibold",children:"ROADMAP"===a?"Roadmap":"Architecture"}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:"Click a node for details and actions. Drag to rearrange — positions are saved."})]}),(0,d.jsxs)("dl",{className:"grid grid-cols-2 gap-2 text-center",children:[(0,d.jsx)(ar,{label:"nodes",value:b.length}),(0,d.jsx)(ar,{label:"critical",value:c})]})]})}function ar({label:a,value:b}){return(0,d.jsxs)("div",{className:"rounded-md border border-border bg-card py-2",children:[(0,d.jsx)("div",{className:"text-lg font-semibold",children:b}),(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:a})]})}var as=c(38476),at=c(55805),au=c(54193),av=c(81725),aw=c(92994),ax=c(84170),ay=c(34849),az=c(27741);function aA(a,b){let c={x:b.x,y:b.y};for(let b=0;b<100&&a.some(a=>200>Math.abs(c.x-a.x)&&150>Math.abs(c.y-a.y));b++)c.y+=150;return c}var aB=c(67637);let aC=[{value:"cluster",label:"Theme"},{value:"status",label:"Status"},{value:"priority",label:"Priority"}],aD=new Set(["title","role","plain","cluster","layer","status","priority"]),aE={roadmapNode:W,archNode:W,annotation:s.Sh},aF={deletable:Y.I},aG={CONTAINS:{stroke:"#7c7c8a"},DEPENDS:{stroke:"#f5b942",dash:"6 4"},RELATES:{stroke:"#8a8a95",dash:"4 4"},REPLACES:{stroke:"#ff6b9d"}};function aH({view:a,nodes:b,edges:c,workOrder:q=[],embedded:r=!1,commentsContent:t,commentsCount:u=0,controlRef:v,onAskAgent:w,onAddComment:x,annotations:y,onPinClick:z,onUpdateComment:A,onRemoveComment:B,boardAnnotations:C,initialArrangedBy:D=null,hasFrontend:E=!1,readOnly:F=!1}){let G=q.join(","),H=(0,e.useMemo)(()=>{let a=new Map;return q.forEach((b,c)=>a.set(b,c+1)),a},[G]),K=q[0]??null,M=(0,e.useMemo)(()=>b.map(a=>({id:a.id,type:"ROADMAP"===a.view?"roadmapNode":"archNode",position:{x:a.x,y:a.y},data:{title:a.title,role:a.role,plain:a.plain,status:a.status,priority:a.priority,cluster:a.cluster,layer:a.layer,view:a.view,kind:a.kind,source:a.source,sourceRef:a.sourceRef,isCriterion:a.isCriterion,isChild:null!=a.parentId,parentId:a.parentId,signals:a.signals,openBugs:a.bugFlags.filter(a=>!a.resolved).length}})),[b]),O=(0,e.useMemo)(()=>{let a;return a=new Set(b.map(a=>a.id)),[...b.filter(b=>b.parentId&&a.has(b.parentId)).map(a=>({id:`c-${a.id}`,source:a.parentId,sourceHandle:"sb",target:a.id,targetHandle:"tt",type:"smoothstep",style:{stroke:aG.CONTAINS.stroke}})),...c.filter(b=>a.has(b.fromId)&&a.has(b.toId)).map(a=>{let b=aG[a.kind]??aG.RELATES,c="DEPENDS"===a.kind?"depends on":void 0;return{id:a.id,source:a.fromId,sourceHandle:a.sourceHandle??void 0,target:a.toId,targetHandle:a.targetHandle??void 0,label:a.label??c,type:"deletable",markerEnd:{type:g.TG.ArrowClosed,color:b.stroke},style:{stroke:b.stroke,strokeDasharray:b.dash}}})]},[b,c]),[Q,R]=(0,e.useState)(M),[S,T]=(0,e.useState)(O),[U,V]=(0,e.useState)(null),[W,Y]=(0,e.useState)(null),[Z,$]=(0,e.useState)(null),[_,aa]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)("details");(0,e.useRef)(!1),(0,e.useRef)("details");let[ad,ae]=(0,e.useState)(new Set),[af,ag]=(0,e.useState)(null),[ah,ai]=(0,e.useState)(!1),aj=(0,e.useRef)(null),ak=(0,e.useCallback)((a,b,c)=>{R(c=>c.map(c=>c.id===a?{...c,data:{...c.data,...b}}:c)),c&&fetch(`/api/nodes/${a}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(Object.fromEntries(Object.entries(b).filter(([a])=>aD.has(a))))})},[]),al=(0,e.useMemo)(()=>Array.from(new Set(Q.map(a=>a.data.cluster).filter(a=>!!a))).sort(),[Q]),an=(0,e.useCallback)(a=>ae(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c}),[]),ao=(0,e.useCallback)(a=>{V(a),aa(!0),ac("details")},[]),ap=(0,e.useCallback)(a=>{R(b=>b.filter(b=>b.id!==a)),V(b=>b===a?null:b),fetch(`/api/nodes/${a}`,{method:"DELETE"})},[]),aq=(0,e.useCallback)(async(b,c,d="FEATURE")=>{let e=(0,f.sX)(),g="ARCHITECTURE"===a?"REBUILD":"PENDING",h="BUG"===d?"New bug":"New node";R(f=>[...f,{id:e,type:"ROADMAP"===a?"roadmapNode":"archNode",position:{x:b,y:c},data:{title:h,role:null,plain:null,status:g,priority:2,cluster:null,view:a,kind:d,source:"MANUAL",sourceRef:null,isCriterion:!1,isChild:!1,parentId:null,openBugs:0}}]),ae(a=>new Set(a).add(e)),ag(e),V(e);try{if(!(await fetch("/api/nodes",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({id:e,view:a,kind:d,title:h,status:g,x:b,y:c})})).ok)throw Error("create failed")}catch{R(a=>a.filter(a=>a.id!==e)),ae(a=>{let b=new Set(a);return b.delete(e),b}),ag(a=>a===e?null:a),V(a=>a===e?null:a)}},[a]),ar=(0,e.useCallback)(()=>{let a=Q.filter(a=>"annotation"!==a.type);return function(a,b,c={}){let d=c.colW??320,e=c.rowH??150,f=c.maxCols??4,g=c.bandGap??90;if(0===a.length){if(0===b.length)return{x:0,y:0};let a=Math.max(...b.map(a=>a.y));return aA(b,{x:0,y:a+e+g})}let h=Math.min(...a.map(a=>a.x)),i=Math.min(...a.map(a=>a.y)),j=a.map(a=>Math.max(0,Math.round((a.x-h)/d))),k=Math.min(f,Math.max(Math.max(...j)+1,Math.ceil(Math.sqrt(a.length+1)))),l=Array(k).fill(i-e);a.forEach((a,b)=>{let c=Math.min(j[b],k-1);l[c]=Math.max(l[c],a.y)});let m=0;for(let a=1;a<k;a++)l[a]<l[m]&&(m=a);return aA(b,{x:h+m*d,y:l[m]+e})}(a.filter(a=>!a.data.parentId&&!(a.data.cluster??"").trim()).map(a=>a.position),a.map(a=>a.position))},[Q]),aI=(0,e.useCallback)(()=>{let a=ar();aq(a.x,a.y)},[aq,ar]),aJ=(0,e.useCallback)(()=>{let a=ar();aq(a.x,a.y,"BUG")},[aq,ar]),aK=(0,e.useMemo)(()=>({view:a,categories:al,statuses:"ARCHITECTURE"===a?I.m6:I.yl,patch:ak,isExpanded:a=>ad.has(a),toggleExpand:an,openDetailed:ao,removeNode:ap,editingTitleId:af,onAskAgent:w,hasFrontend:E}),[a,al,ak,ad,an,ao,ap,af,w,E]),[aL,aM]=(0,e.useState)(D),[aN,aO]=(0,e.useState)(""),[aP,aQ]=(0,e.useState)("full"),[aR,aS]=(0,e.useState)(new Set),[aT,aU]=(0,e.useState)(new Set),[aV,aW]=(0,e.useState)(new Set),[aX,aY]=(0,e.useState)(null),aZ=(0,e.useMemo)(()=>Array.from(new Set(b.map(a=>a.status))),[b]),a$=(0,e.useMemo)(()=>Array.from(new Set(b.map(a=>a.cluster).filter(a=>!!a))).sort(),[b]),a_=(0,e.useMemo)(()=>Array.from(new Set(b.map(a=>a.priority))).sort((a,b)=>a-b),[b]),a0=(0,e.useCallback)(a=>(!aR.size||!!aR.has(a.status))&&(!aT.size||!!a.cluster&&!!aT.has(a.cluster))&&(!aV.size||!!aV.has(a.priority)),[aR,aT,aV]),a1=aR.size+aT.size+aV.size,a2=(0,e.useCallback)(()=>{aS(new Set),aU(new Set),aW(new Set)},[]),a3=(0,e.useMemo)(()=>Q.map(a=>({...a,hidden:!a0(a.data)})),[Q,a0]),a4=(0,e.useMemo)(()=>new Set(a3.filter(a=>a.hidden).map(a=>a.id)),[a3]),a5=(0,e.useMemo)(()=>S.map(a=>({...a,hidden:a4.has(a.source)||a4.has(a.target)})),[S,a4]),a6=(0,e.useMemo)(()=>{if(W){let a=a5.find(a=>a.id===W);return a?new Set([a.source,a.target]):null}return U?(0,as.F1)(U,a5.filter(a=>!a.hidden)):null},[U,W,a5]),a7=aN.trim().length>0,a8=(0,e.useMemo)(()=>{if(!a7)return null;let a=new Set;for(let b of Q)a0(b.data)&&(0,av.Qk)((0,av.$$)(b.data),aN)&&a.add(b.id);return a},[Q,aN,a0,a7]),a9=a8??a6,ba=(0,e.useMemo)(()=>aX?new Set(a3.filter(a=>!a.hidden&&!(0,ax.F)(aX,(0,J.jR)(a.data.layer))).map(a=>a.id)):null,[aX,a3]),bb=(0,e.useMemo)(()=>a3.map(a=>{let b=H.get(a.id),c=b?{...a,data:{...a.data,workOrderRank:b,isNext:1===b}}:a;if(ad.has(a.id)&&(c={...c,zIndex:25}),c.hidden)return c;if(!a9)return ba?.has(a.id)?{...c,style:{...c.style,opacity:.3,filter:"saturate(0.3)",transition:"opacity 120ms, filter 120ms"}}:c;let d=a9.has(a.id),e=a8?av.Uy:.45;return{...c,zIndex:d&&a8?24:c.zIndex,style:{...c.style,opacity:d?1:e,boxShadow:d&&a8?av.RU:c.style?.boxShadow,borderRadius:d&&a8?14:c.style?.borderRadius,transition:"opacity 120ms, box-shadow 120ms"}}}),[a3,a9,a8,H,ad,ba]),bc=(0,e.useMemo)(()=>{if("ROADMAP"===a&&!aL||"ROADMAP"!==a&&"ARCHITECTURE"!==a)return[];let b=new Map(bb.map(a=>[a.id,a])),c=[];for(let e of bb){var d;if(e.hidden||"annotation"===e.type)continue;let f=(e.data.parentId?b.get(e.data.parentId):void 0)??e,g="ROADMAP"===a&&aL?(d=f.data,"status"===aL?I.nR[d.status]?.label??d.status:"priority"===aL?`P${d.priority}`:d.cluster?.trim()||"—"):f.data.cluster?.trim()||"—";c.push({id:e.id,group:g,x:e.position.x,y:e.position.y,w:e.measured?.width??(e.data.isChild?224:256),h:e.measured?.height??96})}return(0,az.S)(c)},[bb,aL,a]),bd="ARCHITECTURE"===a||"cluster"===aL?"category":"neutral",be=(0,e.useMemo)(()=>{if(a8)return a5.map(a=>a.hidden?a:a8.has(a.source)&&a8.has(a.target)?{...a,style:{...a.style,opacity:1}}:{...a,label:void 0,style:{...a.style,opacity:.06}});let a=U??Z;return W||a?a5.map(b=>b.hidden?b:(W?b.id===W:b.source===a||b.target===a)?{...b,zIndex:20,style:{...b.style,opacity:1,strokeWidth:2.5}}:{...b,selectable:!1,label:void 0,markerEnd:void 0,style:{...b.style,opacity:.06}}):a5.map(a=>{if(a.hidden)return a;let b=ba&&(ba.has(a.source)||ba.has(a.target));return{...a,label:void 0,style:{...a.style,opacity:b?.06:.18}}})},[a5,U,W,Z,a8,ba]),bf=void 0!==C,[bg,bh]=(0,e.useState)(C??[]),bi=(0,e.useMemo)(()=>{if(bf){let a=new Set(b.map(a=>a.id));return bg.filter(b=>"feature"===b.targetKind&&a.has(b.targetId)).map((a,b)=>({id:a.id,n:b+1,targetId:a.targetId,text:a.body,x:a.x,y:a.y}))}let a=new Map((y??[]).map(a=>[a.id,a.comment]));return(0,X.m)(y??[],{tables:[],features:b.map(a=>({id:a.id,title:a.title}))}).map(b=>({id:b.annotationId,n:b.n,targetId:b.targetId,text:a.get(b.annotationId)??"",x:null,y:null}))},[bf,bg,y,b]),bj=(0,e.useMemo)(()=>{let a=new Map;for(let b of bi){let c=a.get(b.targetId)??[];c.push({id:b.id,n:b.n,column:null}),a.set(b.targetId,c)}return a},[bi]),bk=(0,e.useCallback)(async a=>{let c=(0,X.m)([{id:"_",excerpt:a}],{tables:[],features:b.map(a=>({id:a.id,title:a.title}))})[0];if(!c)return;let d=await fetch("/api/board-annotations",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({targetKind:"feature",targetId:c.targetId})});if(d.ok){let a=await d.json();bh(b=>[...b,a])}},[b]),bl=(0,e.useCallback)((a,b)=>{bh(c=>c.map(c=>c.id===a?{...c,...b}:c)),fetch(`/api/board-annotations/${a}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify(b)})},[]),bm=(0,e.useCallback)(a=>{bh(b=>b.filter(b=>b.id!==a)),fetch(`/api/board-annotations/${a}`,{method:"DELETE"})},[]),bn=bf?bk:x,[bo,bp]=(0,e.useState)(()=>new Map),bq=(0,e.useMemo)(()=>{let a=new Map(bb.map(a=>[a.id,a])),b=new Map,c=bi.flatMap(c=>{let d=a.get(c.targetId);if(!d||d.hidden)return[];let e=b.get(c.targetId)??0;b.set(c.targetId,e+1);let f=d.measured?.height??96;return[{id:`anno-${c.id}`,type:"annotation",position:{x:c.x??d.position.x+26,y:c.y??d.position.y+f+56+112*e},measured:bo.get(`anno-${c.id}`),draggable:bf,data:{n:c.n,text:c.text,annotationId:c.id,onClick:bf||A?void 0:z,editable:bf||!!A,onChangeText:bf?(a,b)=>bl(a,{body:b}):A,onDelete:bf?bm:B}}]});return[...bb.map(a=>{let b=bj.get(a.id);return b||bn?{...a,data:{...a.data,pins:b,onPinClick:bf?void 0:z,onComment:bn}}:a}),...c]},[bb,bi,bj,bf,z,A,B,bn,bl,bm,bo]),br=(0,e.useMemo)(()=>bi.map(a=>({id:`annoe-${a.id}`,source:a.targetId,sourceHandle:`pin-${a.id}`,target:`anno-${a.id}`,targetHandle:"in",type:"default",selectable:!1,zIndex:30,style:{stroke:s.V5,strokeWidth:1.5,opacity:.9}})),[bi]),bs=(0,e.useCallback)(a=>{let b=[];for(let c of a)if("position"===c.type&&c.id.startsWith("anno-")&&c.position){let a=c.id.slice(5),{x:b,y:d}=c.position;bh(c=>c.map(c=>c.id===a?{...c,x:b,y:d}:c))}else if("dimensions"===c.type&&c.id.startsWith("anno-")){let a=c.dimensions;a&&bp(b=>{let d=b.get(c.id);if(d&&d.width===a.width&&d.height===a.height)return b;let e=new Map(b);return e.set(c.id,a),e})}else b.push(c);b.length&&R(a=>(0,h._0)(b,a))},[]),bt=(0,e.useCallback)(a=>T(b=>(0,h.zW)(a,b)),[]),bu=(0,e.useCallback)(async a=>{if(!a.source||!a.target||a.source===a.target)return;let b=await fetch("/api/edges",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({fromId:a.source,toId:a.target,kind:"DEPENDS",sourceHandle:a.sourceHandle??null,targetHandle:a.targetHandle??null})});if(!b.ok)return;let c=await b.json(),d=aG.DEPENDS;T(b=>b.some(a=>a.id===c.id)?b:[...b,{id:c.id,source:c.fromId,sourceHandle:a.sourceHandle??void 0,target:c.toId,targetHandle:a.targetHandle??void 0,label:"depends on",type:"deletable",markerEnd:{type:g.TG.ArrowClosed,color:d.stroke},style:{stroke:d.stroke,strokeDasharray:d.dash}}])},[]),bv=(0,e.useCallback)(async(b,c,d)=>{let e=await fetch("/api/nodes",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({view:a,title:"New node",parentId:b.id,cluster:b.data.cluster??null,status:"ARCHITECTURE"===a?"REBUILD":"PENDING",x:c,y:d})});if(!e.ok)return;let f=await e.json();R(e=>[...e,{id:f.id,type:"ROADMAP"===a?"roadmapNode":"archNode",position:{x:c,y:d},data:{title:f.title,role:f.role,plain:f.plain,status:f.status,priority:f.priority,cluster:f.cluster,view:f.view,source:f.source,sourceRef:f.sourceRef,kind:f.kind,isCriterion:!1,isChild:!0,parentId:b.id,openBugs:0}}]),T(a=>[...a,{id:`c-${f.id}`,source:b.id,target:f.id,type:"smoothstep",style:{stroke:aG.CONTAINS.stroke}}]),ae(a=>new Set(a).add(f.id)),ag(f.id),V(f.id)},[a]),bw=(0,e.useCallback)(async(a,b)=>{if(b.isValid||!b.fromNode||!aj.current)return;let c=a.changedTouches,d=c?.[0]?.clientX??a.clientX,e=c?.[0]?.clientY??a.clientY,{x:f,y:g}=aj.current.screenToFlowPosition({x:d,y:e});await bv(b.fromNode,f,g)},[bv]),bx=(0,e.useMemo)(()=>b.find(a=>a.id===U)??null,[b,U]),by=(0,e.useCallback)((a,b,c)=>{fetch(`/api/nodes/${a}/position`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({x:b,y:c})})},[]),bz=(0,e.useCallback)(a=>{V(a),Y(null);let b=aj.current?.getNode(a);if(!b||!aj.current)return;let c=b.measured?.width??128,d=b.measured?.height??48;aj.current.setCenter(b.position.x+c/2,b.position.y+d/2,{zoom:1.2,duration:600})},[]),bA=(0,e.useCallback)(a=>{let b=(0,ay.VI)(Q.map(a=>({id:a.id,parentId:a.data.parentId??null,cluster:a.data.cluster,status:a.data.status,priority:a.data.priority})),a);R(a=>a.map(a=>{let c=b.get(a.id);return c?{...a,position:c}:a}));let c=Array.from(b,([a,b])=>({id:a,x:b.x,y:b.y}));c.length&&fetch("/api/nodes/positions",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({batch:c})}),aM(a),fetch("/api/board-layout",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({board:"roadmap",arrangedBy:a})}),requestAnimationFrame(()=>aj.current?.fitView({duration:600,padding:.2}))},[Q]);(0,e.useMemo)(()=>{let b=new Map;if("ROADMAP"!==a||!aL)return b;let c=a=>"status"===aL?a.status:"priority"===aL?`P${a.priority}`:a.cluster??"—";for(let a of Q)"annotation"!==a.type&&b.set(a.id,c(a.data));return b},[Q,aL,a]),(0,e.useRef)(null);let bB=(0,e.useCallback)(()=>{let a=function(a,b){if(0===a.length)return new Map;let c=function(a,b){let c=a.map(a=>a.id).sort(),d=new Map(c.map(a=>[a,[]]));for(let a of[...b].sort((a,b)=>a.fromId.localeCompare(b.fromId)||a.toId.localeCompare(b.toId)))d.get(a.fromId)?.push(a);let e=new Map,f=[],g=a=>{for(let b of(e.set(a,"visiting"),d.get(a)??[])){let a=e.get(b.toId);"visiting"!==a&&(f.push(b),"done"!==a&&g(b.toId))}e.set(a,"done")};for(let a of c)e.has(a)||g(a);return f}(a,b),d=function(a,b){let c=new Map(a.map(a=>[a.id,[]]));for(let a of b)c.get(a.fromId)?.push(a.toId);let d=new Map,e=a=>{let b=d.get(a);if(void 0!==b)return b;d.set(a,0);let f=c.get(a)??[],g=f.length?1+Math.max(...f.map(e)):0;return d.set(a,g),g};for(let b of a)e(b.id);return d}(a,c),e=new Map(a.map(a=>[a.id,[]]));for(let a of c)e.get(a.fromId)?.push(a.toId);let f=Array.from(new Set(a.map(a=>a.group))),g=f.filter(a=>"—"!==a).sort(),h=f.includes("—")?[...g,"—"]:g,i=[];for(let b of h){let c=a.filter(a=>a.group===b),f=Math.min(...c.map(a=>d.get(a.id)??0)),g=Math.max(...c.map(a=>d.get(a.id)??0)),h=new Map,j=new Map,k=0,l=1;for(let a=f;a<=g;a++){let b=c.filter(b=>d.get(b.id)===a);if(!b.length)continue;let f=a=>{let b=(e.get(a.id)??[]).map(a=>j.get(a)).filter(a=>void 0!==a);return b.length?b.reduce((a,b)=>a+b,0)/b.length:1/0};b.sort((a,b)=>f(a)-f(b)||a.id.localeCompare(b.id));let g=Math.max(1,Math.ceil(Math.sqrt(2*b.length)));b.forEach((a,b)=>{let c=Math.floor(b/g),d=b%g;j.set(a.id,d),h.set(a.id,{x:k+360*c,y:150*d}),l=Math.max(l,d+1)}),k+=360*Math.ceil(b.length/g)}i.push({d:b,w:k,h:150*l,local:h})}let j=Math.max(2880,Math.round(Math.sqrt(2.2*i.reduce((a,b)=>a+(b.w+140)*(b.h+170),0)))),k=new Map,l=0,m=0,n=0;for(let a of i){for(let[b,c]of(l>0&&l+a.w>j&&(m+=n+170,l=0,n=0),a.local))k.set(b,{x:l+c.x,y:m+c.y});n=Math.max(n,a.h),l+=a.w+140}return k}(Q.filter(a=>"annotation"!==a.type).map(a=>({id:a.id,group:(a.data.cluster??"").trim()||"—"})),c.filter(a=>"DEPENDS"===a.kind).map(a=>({fromId:a.fromId,toId:a.toId})));R(b=>b.map(b=>{let c=a.get(b.id);return c?{...b,position:c}:b}));let b=Array.from(a,([a,b])=>({id:a,x:b.x,y:b.y}));b.length&&fetch("/api/nodes/positions",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({batch:b})}),requestAnimationFrame(()=>aj.current?.fitView({duration:600,padding:.2}))},[Q,c]),bC=(0,e.useMemo)(()=>a7?(0,av.r2)(Q.filter(a=>a0(a.data)),aN,a=>(0,av.$$)(a.data),a=>({id:a.id,label:a.data.title,sublabel:a.data.cluster??a.data.status,kind:"feature"})):[],[Q,aN,a0,a7]);function bD(a,b){b(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})}return(0,d.jsx)(L.Provider,{value:aK,children:(0,d.jsxs)("div",{className:(0,P.cn)("canvas-dots relative w-full",r?"h-full":"h-screen"),onDragOver:a=>{a.dataTransfer.types.includes("application/beacon-node")&&(a.preventDefault(),a.dataTransfer.dropEffect="copy")},onDrop:a=>{if(!a.dataTransfer.getData("application/beacon-node")||!aj.current)return;a.preventDefault();let{x:b,y:c}=aj.current.screenToFlowPosition({x:a.clientX,y:a.clientY});aq(b,c,"BUG"===a.dataTransfer.getData("application/beacon-node-kind")?"BUG":"FEATURE")},children:[(0,d.jsxs)(h.Gc,{nodes:bq,edges:"far"===aP?[...be,...br].map(a=>({...a,hidden:!0})):[...be,...br],nodeTypes:aE,edgeTypes:aF,nodesConnectable:!F,connectionMode:g.WZ.Loose,connectionLineStyle:{stroke:"var(--accent-2,#ff7a45)",strokeWidth:1.5,strokeDasharray:"4 4"},onInit:a=>{aj.current=a},onNodesChange:bs,onEdgesChange:bt,onConnect:bu,onConnectEnd:bw,onNodeMouseEnter:(a,b)=>$(b.id),onNodeMouseLeave:()=>$(null),onEdgesDelete:a=>{for(let b of a)b.id.startsWith("c-")||fetch(`/api/edges/${b.id}`,{method:"DELETE"})},onNodesDelete:a=>{for(let b of a)b.id.startsWith("anno-")||(fetch(`/api/nodes/${b.id}`,{method:"DELETE"}),V(a=>a===b.id?null:a))},onNodeClick:(a,b)=>{if("annotation"===b.type){let a=b.data;a.editable||z?.(a.annotationId);return}if(ah){if(ai(!1),b.data.isChild)return;bv(b,b.position.x+300,b.position.y+60);return}if(V(b.id),Y(null),ac("details"),r){let b=a.target;b?.closest("input, textarea, select, button, [role='combobox']")||aa(!0)}},onEdgeClick:(a,b)=>{Y(b.id),V(null),ac("details")},onPaneClick:()=>{ah?ai(!1):(aa(!1),V(null),Y(null))},onNodeDragStop:(a,b)=>{if(b.id.startsWith("anno-")){bf&&bl(b.id.slice(5),{x:b.position.x,y:b.position.y});return}F||by(b.id,b.position.x,b.position.y)},deleteKeyCode:F?null:["Backspace","Delete"],colorMode:"dark",fitView:!0,fitViewOptions:{padding:.15,minZoom:.38,maxZoom:.9},minZoom:.2,panOnScroll:!0,zoomActivationKeyCode:["Meta","Control"],proOptions:{hideAttribution:!0},children:[(0,d.jsx)(aB.Z,{regions:bc,tone:bd,lod:aP}),(0,d.jsx)(N.J,{onLod:aQ}),(0,d.jsx)(h.H2,{position:"bottom-right",className:"!overflow-hidden !rounded-xl !border !border-white/10 [&_button]:!border-white/10 [&_button]:!bg-card/70 [&_button]:!text-foreground [&_button]:!backdrop-blur"}),(0,d.jsx)(h.Zk,{position:"bottom-right",style:{marginBottom:152},children:(0,d.jsx)(aw.er,{title:"Legend",trigger:(a,b)=>(0,d.jsx)("button",{type:"button",onClick:b,title:"Legend",className:(0,P.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",a?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,d.jsx)(i.A,{className:"size-4"})}),children:(0,d.jsxs)("ul",{className:"space-y-1.5 text-[10.5px] text-muted-foreground",children:["ROADMAP"===a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded bg-sky-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-sky-300",children:"feature"}),(0,d.jsx)("span",{children:"top-level card \xb7 can have sub-tasks"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded bg-zinc-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:"sub-task"}),(0,d.jsx)("span",{children:"child of a feature"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded bg-rose-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-rose-300",children:"bug"}),(0,d.jsx)("span",{children:"a bug to fix \xb7 not a feature"})]})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded bg-sky-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-sky-300",children:"component"}),(0,d.jsx)("span",{children:"a subsystem \xb7 can have sub-components"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded bg-zinc-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-zinc-300",children:"sub-component"}),(0,d.jsx)("span",{children:"part of a component"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"inline-block rounded bg-rose-500/15 px-1 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-rose-300",children:"bug"}),(0,d.jsx)("span",{children:"a flagged issue on a component"})]})]}),E&&(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-3 w-1 shrink-0 rounded-sm",style:{background:(0,J.A6)("fullstack")}}),(0,d.jsx)("span",{children:"left stripe \xb7 frontend / backend layer"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-px w-6 bg-[#33333a]"}),(0,d.jsx)("span",{children:"contains \xb7 drag the bottom handle to empty canvas"})]}),(0,d.jsxs)("li",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"inline-block h-0 w-6 border-t border-dashed",style:{borderColor:"#f5b942"}}),(0,d.jsxs)("span",{children:["depends on \xb7 drag between two ","ROADMAP"===a?"cards":"components"]})]})]})})}),!r&&(0,d.jsx)(h.of,{pannable:!0,zoomable:!0,position:"bottom-left",style:{width:140,height:90},className:"!rounded-xl !border !border-white/10 !bg-card/50 !backdrop-blur",nodeColor:a=>a.data?.priority===0?"#ff3860":"#555"}),(0,d.jsxs)(h.Zk,{position:"bottom-center",className:"!mb-4 flex flex-col items-center gap-2",children:[ah&&(0,d.jsxs)("div",{className:"glass rounded-full px-3 py-1 text-[11px] text-muted-foreground",children:["Click a ","ARCHITECTURE"===a?"component":"feature"," to attach the"," ","ARCHITECTURE"===a?"sub-component":"sub-task"," \xb7 Esc to cancel"]}),"ARCHITECTURE"===a&&(0,d.jsx)("div",{className:"glass flex items-center rounded-full p-0.5",children:(0,d.jsxs)("button",{onClick:bB,title:"Arrange components into a left→right dependency flow, grouped by domain",className:"flex h-6 items-center gap-1.5 rounded-full px-3 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/[0.06] hover:text-foreground",children:[(0,d.jsx)(j.A,{className:"size-3"}),"Arrange"]})}),"ROADMAP"===a&&(0,d.jsxs)("div",{className:"glass flex items-center gap-1 rounded-full p-1",children:[(0,d.jsx)("span",{className:"pl-2 pr-0.5 text-[11px] text-muted-foreground",children:"Group by"}),aC.map(a=>(0,d.jsx)("button",{onClick:()=>bA(a.value),title:`Arrange features into lanes by ${a.label.toLowerCase()}`,className:(0,P.cn)("h-7 rounded-full px-2.5 text-[11px] font-medium transition-colors",aL===a.value?"bg-white/[0.12] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:a.label},a.value))]}),(0,d.jsxs)("div",{className:"glass flex items-center gap-1 rounded-full p-1",children:[(0,d.jsxs)("button",{onClick:aI,draggable:!0,onDragStart:b=>{b.dataTransfer.setData("application/beacon-node",a),b.dataTransfer.effectAllowed="copy"},title:"ARCHITECTURE"===a?"Add component (click, or drag onto the board to place it)":"Add feature (click, or drag onto the board to place it)",className:"flex h-8 cursor-grab items-center gap-1.5 rounded-full px-3 text-[12px] font-medium text-foreground transition-colors hover:bg-white/[0.06] active:cursor-grabbing",children:[(0,d.jsx)(k.A,{className:"size-3.5 text-[var(--accent-2,#ff7a45)]"}),"ARCHITECTURE"===a?"Component":"Feature"]}),"ROADMAP"===a&&(0,d.jsxs)("button",{onClick:aJ,draggable:!0,onDragStart:b=>{b.dataTransfer.setData("application/beacon-node",a),b.dataTransfer.setData("application/beacon-node-kind","BUG"),b.dataTransfer.effectAllowed="copy"},title:"Add bug (click, or drag onto the board to place it)",className:"flex h-8 cursor-grab items-center gap-1.5 rounded-full px-3 text-[12px] font-medium text-foreground transition-colors hover:bg-white/[0.06] active:cursor-grabbing",children:[(0,d.jsx)(l.A,{className:"size-3.5 text-rose-400"}),"Bug"]}),(0,d.jsx)("span",{"aria-hidden":!0,className:"mx-0.5 h-5 w-px bg-white/10"}),(0,d.jsxs)("button",{onClick:()=>ai(a=>!a),title:"ARCHITECTURE"===a?"Add sub-component (click a component next)":"Add sub-task (click a feature next)",className:(0,P.cn)("flex h-8 items-center gap-1.5 rounded-full px-3 text-[12px] font-medium transition-colors",ah?"bg-white/[0.1] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:[(0,d.jsx)(m.A,{className:"size-3.5"}),"ARCHITECTURE"===a?"Sub-component":"Sub-task"]})]})]}),!r&&(0,d.jsx)(h.Zk,{position:"top-center",className:"glass rounded-full px-1 py-0.5",children:(0,d.jsx)(at.Z,{active:a,tabs:[{value:"ROADMAP",label:"Roadmap",href:"/map?view=ROADMAP"},{value:"ARCHITECTURE",label:"Architecture",href:"/map?view=ARCHITECTURE"},{value:"DATABASE",label:"Database",href:"/map?view=DATABASE"},{value:"FILES",label:"Files",href:"/map?view=FILES"}]})}),(0,d.jsxs)(h.Zk,{position:"top-right",className:(0,P.cn)("flex items-center gap-1 transition-[margin] duration-200",_&&"!mr-[332px]",r&&"hidden"),children:[(0,d.jsx)(au.X,{query:aN,onQuery:aO,hits:bC,placeholder:"Find a feature…",onPick:a=>{aO(""),bz(a)},onZoomToMatches:()=>{a8?.size&&aj.current?.fitView({nodes:[...a8].map(a=>({id:a})),duration:600,padding:.2})}}),E&&(0,d.jsx)(ax.o,{value:aX,onChange:aY}),"ROADMAP"===a&&K&&(0,d.jsx)("button",{type:"button",onClick:()=>bz(K),title:"Jump to the next feature to work on",className:"glass flex size-8 items-center justify-center rounded-lg text-emerald-300 transition-colors hover:text-emerald-200",children:(0,d.jsx)(n.A,{className:"size-4"})}),(0,d.jsxs)(aw.er,{title:"Filters",trigger:(a,b)=>(0,d.jsxs)("button",{type:"button",onClick:b,title:"Filters",className:(0,P.cn)("glass relative flex size-8 items-center justify-center rounded-lg transition-colors",a||a1>0?"text-foreground":"text-muted-foreground hover:text-foreground"),children:[(0,d.jsx)(o.A,{className:"size-4"}),a1>0&&(0,d.jsx)("span",{className:"absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-[var(--accent-2,#ff7a45)] px-1 text-[9px] font-semibold text-white",children:a1})]}),children:[aZ.length>0&&(0,d.jsx)(aw.r1,{title:"Status",children:aZ.map(a=>(0,d.jsx)(aw.vu,{on:aR.has(a),onClick:()=>bD(a,aS),children:I.nR[a]?.label??a},a))}),a$.length>0&&(0,d.jsx)(aw.r1,{title:"Cluster",children:a$.map(a=>(0,d.jsx)(aw.vu,{on:aT.has(a),onClick:()=>bD(a,aU),children:a},a))}),a_.length>0&&(0,d.jsx)(aw.r1,{title:"Priority",children:a_.map(a=>(0,d.jsxs)(aw.vu,{on:aV.has(a),onClick:()=>bD(a,aW),children:["P",a]},a))}),a1>0&&(0,d.jsx)("button",{type:"button",onClick:a2,className:"mt-1 w-full rounded-md border border-white/10 px-2 py-1 text-[11px] font-medium text-muted-foreground transition-colors hover:bg-white/5 hover:text-foreground",children:"clear filters"})]}),!_&&(0,d.jsx)("button",{onClick:()=>{aa(!0),ac("details")},title:"Show panel",className:"glass flex size-8 items-center justify-center rounded-lg text-muted-foreground transition-colors hover:text-foreground",children:(0,d.jsx)(p.A,{className:"size-4"})})]})]}),_&&(0,d.jsx)(am,{view:a,selected:bx,allNodes:b,onClose:()=>{aa(!1),ac("details")},commentsContent:t,commentsCount:u,activeTab:ab,onTabChange:ac,onAddComment:bn,topOffset:r?64:void 0})]})})}},47162:()=>{},47446:(a,b,c)=>{},50042:(a,b,c)=>{c(31421),c(77598),c(48161),c(76760),c(80941)},50320:(a,b,c)=>{c(66625)},50605:(a,b,c)=>{c.d(b,{J:()=>h,k:()=>g});var d=c(67484),e=c(56024),f=c(91365);function g(a){let[b,c]=(0,d.useState)("full"),g=(0,e.Pj)(c=>(0,f.gt)(c.transform[2],b,a));return g!==b&&c(g),g}function h({onLod:a,thresholds:b}){return g(b),(0,d.useRef)(null),null}},52351:(a,b,c)=>{c.d(b,{$v:()=>w,EO:()=>s,Lt:()=>o,Rx:()=>x,Zr:()=>y,ck:()=>u,r7:()=>v,tv:()=>p,wd:()=>t});var d=c(48249);c(67484);var e=c(71523),f=c(99469),g=c(60388),h=c(74283),i=c(25845),j=c(36902),k=c(64230),l=c(87298),m=c(33191),n=c(26284);function o({...a}){return(0,d.jsx)(e.V,{"data-slot":"alert-dialog",...a})}function p({...a}){return(0,d.jsx)(f.t,{"data-slot":"alert-dialog-trigger",...a})}function q({...a}){return(0,d.jsx)(g.Z,{"data-slot":"alert-dialog-portal",...a})}function r({className:a,...b}){return(0,d.jsx)(h.X,{"data-slot":"alert-dialog-overlay",className:(0,m.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...b})}function s({className:a,size:b="default",...c}){return(0,d.jsxs)(q,{children:[(0,d.jsx)(r,{}),(0,d.jsx)(i.h,{"data-slot":"alert-dialog-content","data-size":b,className:(0,m.cn)("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...c})]})}function t({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"alert-dialog-header",className:(0,m.cn)("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]",a),...b})}function u({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"alert-dialog-footer",className:(0,m.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end",a),...b})}function v({className:a,...b}){return(0,d.jsx)(j.L,{"data-slot":"alert-dialog-title",className:(0,m.cn)("font-heading text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2",a),...b})}function w({className:a,...b}){return(0,d.jsx)(k.r,{"data-slot":"alert-dialog-description",className:(0,m.cn)("text-sm text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",a),...b})}function x({className:a,variant:b,size:c,...e}){return(0,d.jsx)(l.H,{"data-slot":"alert-dialog-action",className:(0,m.cn)(a),render:(0,d.jsx)(n.$,{variant:b,size:c}),...e})}function y({className:a,variant:b="outline",size:c="default",...e}){return(0,d.jsx)(l.H,{"data-slot":"alert-dialog-cancel",className:(0,m.cn)(a),render:(0,d.jsx)(n.$,{variant:b,size:c}),...e})}},54193:(a,b,c)=>{c.d(b,{X:()=>j});var d=c(48249),e=c(67484),f=c(29813),g=c(45535),h=c(33191),i=c(92994);function j({query:a,onQuery:b,hits:c,onPick:k,onZoomToMatches:l,placeholder:m="Search…"}){let[n,o]=(0,e.useState)(!1);return(0,d.jsxs)(i.er,{title:"Search",open:n,onOpenChange:a=>a?o(!0):void(o(!1),b("")),outsideClicksToClose:2,trigger:(b,c)=>(0,d.jsx)("button",{type:"button",onClick:c,title:"Search this canvas",className:(0,h.cn)("glass flex size-8 items-center justify-center rounded-lg transition-colors",b||a.trim()?"text-foreground":"text-muted-foreground hover:text-foreground"),children:(0,d.jsx)(f.A,{className:"size-4"})}),children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("input",{autoFocus:!0,value:a,onChange:a=>b(a.target.value),onKeyDown:a=>{"Enter"===a.key&&l&&(a.preventDefault(),l())},placeholder:m,className:"w-full rounded-md border border-white/10 bg-white/[0.04] py-1 pl-2 pr-7 text-[12px] outline-none placeholder:text-muted-foreground/50 focus:bg-white/[0.08]"}),a&&(0,d.jsx)("button",{type:"button",onClick:()=>b(""),title:"Clear search",className:"absolute right-1 top-1/2 flex size-5 -translate-y-1/2 items-center justify-center rounded text-muted-foreground/60 transition-colors hover:bg-white/10 hover:text-foreground",children:(0,d.jsx)(g.A,{className:"size-3.5"})})]}),(0,d.jsxs)("div",{className:"mt-2 max-h-64 space-y-0.5 overflow-y-auto",children:[a.trim()&&0===c.length&&(0,d.jsx)("div",{className:"px-1 py-1 text-[11px] text-muted-foreground",children:"No matches"}),c.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>{k(a.id),o(!1)},className:"group flex w-full items-center gap-2 rounded-md px-2 py-1 text-left transition-colors hover:bg-white/5",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate text-[12px] text-muted-foreground transition-colors group-hover:text-foreground",children:a.label}),a.sublabel&&(0,d.jsx)("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground/50",children:a.sublabel})]},a.id))]})]})}},55805:(a,b,c)=>{c.d(b,{Z:()=>n});var d=c(48249),e=c(67484),f=c(2116),g=c.n(f),h=c(15996),i=c(41665),j=c(79602),k=c(36274);c(79768);var l=c(33191);let m={ROADMAP:h.A,ARCHITECTURE:i.A,FILES:j.A,DATABASE:k.A};function n({tabs:a,active:b}){let[c,f]=(0,e.useState)(null);return(0,d.jsx)("div",{className:"flex items-center gap-0.5",children:a.map(a=>{let e,f=a.value===b,h=a.Icon??m[a.value];return(0,d.jsxs)(g(),{href:(e=a.href,c?`${e}${e.includes("?")?"&":"?"}ws=${c}`:e),className:(0,l.cn)("flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-[12px] font-medium tracking-tight transition-colors",f?"border-white/10 bg-white/[0.07] text-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.06)]":"border-transparent text-muted-foreground/80 hover:bg-white/5 hover:text-foreground"),children:[h?(0,d.jsx)(h,{className:(0,l.cn)("size-3",f&&"text-[#ff7a45]")}):null,(0,d.jsx)("span",{children:a.label})]},a.value)})})}},56258:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},58149:(a,b,c)=>{c(47446),c(526)},58720:(a,b,c)=>{c.d(b,{Sh:()=>k,V5:()=>j,e0:()=>m});var d=c(48249),e=c(67484),f=c(56024),g=c(55030),h=c(45535),i=c(33191);let j="#ff7a45";function k({data:a,selected:b}){let[c,l]=(0,e.useState)(a.text);return(0,d.jsxs)("div",{onClick:()=>a.onClick?.(a.annotationId),className:(0,i.cn)("group/anno relative w-[270px] rounded-xl border border-white/10 bg-[#1b1b1e]/95 px-4 py-3 shadow-[0_18px_50px_-20px_rgba(0,0,0,0.9)] backdrop-blur transition-colors hover:border-white/20",!a.editable&&"cursor-pointer",b&&"border-[#ff7a45]/50"),children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"pointer-events-none absolute -left-px bottom-2 top-2 w-[3px] rounded-full",style:{background:j}}),(0,d.jsx)(f.h7,{type:"target",id:"in",position:g.yX.Top,isConnectable:!1,className:"!pointer-events-none !size-1 !min-h-0 !min-w-0 !border-0 !bg-transparent",style:{left:"auto",right:22,top:0}}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("div",{className:"font-mono text-[10px] font-semibold uppercase tracking-[0.22em]",style:{color:j},children:"Annotation \xb7 You"}),a.editable&&a.onDelete&&(0,d.jsx)("button",{type:"button",title:"Delete annotation",onClick:b=>{b.stopPropagation(),a.onDelete?.(a.annotationId)},className:"nodrag nopan -mr-1 rounded p-0.5 text-muted-foreground/60 opacity-0 transition-opacity hover:text-red-300 group-hover/anno:opacity-100",children:(0,d.jsx)(h.A,{className:"size-3"})})]}),a.editable?(0,d.jsx)("textarea",{value:c,autoFocus:!a.text.trim(),placeholder:"Type your annotation…",rows:Math.max(2,Math.min(6,c.split("\n").length)),onChange:a=>l(a.target.value),onBlur:()=>{c!==a.text&&a.onChangeText?.(a.annotationId,c)},onKeyDown:a=>a.stopPropagation(),className:"nodrag nopan mt-1.5 w-full resize-none bg-transparent text-[13px] leading-snug text-foreground/95 outline-none placeholder:text-muted-foreground/60"}):(0,d.jsx)("div",{className:"mt-1.5 text-[13px] leading-snug text-foreground/95",children:a.text.trim()?a.text:(0,d.jsx)("span",{className:"text-muted-foreground",children:"…"})})]})}function l({n:a,annotationId:b,onClick:c}){return(0,d.jsxs)("button",{type:"button",title:`Annotation ${a} — view comment`,onClick:a=>{a.stopPropagation(),c?.(b)},className:"nodrag nopan relative flex size-6 items-center justify-center rounded-full font-mono text-[11px] font-bold text-[#181818] shadow-[0_0_0_3px_rgba(255,122,69,0.22),0_0_16px_2px_rgba(255,122,69,0.4)] transition-transform hover:scale-110",style:{background:j},children:[a,(0,d.jsx)(f.h7,{type:"source",id:`pin-${b}`,position:g.yX.Bottom,isConnectable:!1,className:"!pointer-events-none !size-1 !min-h-0 !min-w-0 !border-0 !bg-transparent",style:{left:"50%",bottom:2}})]})}function m({pins:a,onPinClick:b}){return a.length?(0,d.jsx)("span",{className:"absolute -right-3 top-1/2 z-10 flex -translate-y-1/2 flex-row-reverse gap-1",children:a.map(a=>(0,d.jsx)(l,{n:a.n,annotationId:a.id,onClick:b},a.id))}):null}},62896:(a,b,c)=>{c.a(a,async(a,d)=>{try{let m;c.d(b,{db:()=>t,e$:()=>l});var e=c(58296),f=c(28855),g=c(22443),h=c(76909),i=c(80941),j=a([f,e]);[f,e]=j.then?(await j)():j;let n={...g,...h},o=(m=process.env.DATABASE_URL)&&/^(file:|libsql:|wss?:|https?:|:memory:)/i.test(m)?m:"file:./dev.db";function k(a){let b=(0,f.createClient)({url:a});return b.execute("PRAGMA foreign_keys = ON;"),b.execute("PRAGMA busy_timeout = 5000;"),(0,e.f)(b,{schema:n})}let p=globalThis,q=p.dzDefault??k(o),r=p.dzByUrl??=new Map,s=new Map;function l(a=o){if(!/^file:/i.test(a))return Promise.resolve();let b=s.get(a);return b||(b=c.e(9127).then(c.bind(c,29127)).then(({provisionDb:b})=>b(a)).then(()=>{}).catch(b=>{s.delete(a),console.error("[beacon] fallback db provision failed:",b instanceof Error?b.message:b)}),s.set(a,b)),b}let t=new Proxy({},{get(a,b){let c=function(){var a;let b;if(process.env.BEACON_REPO)return q;let c=(0,i.p1)()??(0,i.UP)();return c?(a=(0,i.Nx)(c),(b=r.get(a))||(b=k(a),r.set(a,b)),b):q}(),d=c[b];return"function"==typeof d?d.bind(c):d}});d()}catch(a){d(a)}})},66625:(a,b,c)=>{},66949:(a,b,c)=>{c(73024),c(76760),c(50042)},67637:(a,b,c)=>{c.d(b,{Z:()=>h});var d=c(48249),e=c(56024),f=c(33346),g=c(33191);function h({regions:a,tone:b="neutral",lod:c="full"}){let i=(0,e.Pj)(a=>a.transform[2]);if(0===a.length)return null;let j="far"===c,k=Math.min(150,26/Math.max(i,.05)),l=Math.min(80,13/Math.max(i,.05));return(0,d.jsx)(e.DX,{children:a.map(a=>(0,d.jsx)("div",{style:{position:"absolute",transform:`translate(${a.x}px, ${a.y}px)`,width:a.w,height:a.h,pointerEvents:"none",zIndex:0},className:(0,g.cn)("rounded-2xl border","category"===b?(0,f.xZ)(a.key):"border-white/[0.08] bg-white/[0.015]",j&&"bg-card/80"),children:j?(0,d.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-[0.3em] px-2",children:[(0,d.jsx)("span",{className:"whitespace-nowrap text-center font-semibold tracking-tight text-foreground",style:{fontSize:Math.min(k,.34*a.h,(a.w-16)/(.74*Math.max(a.label.length,1))),lineHeight:1.1},children:a.label}),(0,d.jsxs)("span",{className:"tabular-nums text-muted-foreground",style:{fontSize:Math.min(l,.18*a.h)},children:[a.count," ",1===a.count?"card":"cards"]})]}):(0,d.jsxs)("div",{className:"flex items-baseline gap-2 px-3 py-1",children:[(0,d.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-muted-foreground/80",children:a.label}),(0,d.jsx)("span",{className:"text-[10px] tabular-nums text-muted-foreground/50",children:a.count})]})},a.key))})}},74732:(a,b,c)=>{c.d(b,{Cf:()=>r,Es:()=>t,L3:()=>u,c7:()=>s,lG:()=>o,rr:()=>v});var d=c(48249);c(67484);var e=c(76424),f=c(60388),g=c(74283),h=c(25845),i=c(87298),j=c(36902),k=c(64230),l=c(33191),m=c(26284),n=c(45535);function o({...a}){return(0,d.jsx)(e.D,{"data-slot":"dialog",...a})}function p({...a}){return(0,d.jsx)(f.Z,{"data-slot":"dialog-portal",...a})}function q({className:a,...b}){return(0,d.jsx)(g.X,{"data-slot":"dialog-overlay",className:(0,l.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...b})}function r({className:a,children:b,showCloseButton:c=!0,...e}){return(0,d.jsxs)(p,{children:[(0,d.jsx)(q,{}),(0,d.jsxs)(h.h,{"data-slot":"dialog-content",className:(0,l.cn)("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...e,children:[b,c&&(0,d.jsxs)(i.H,{"data-slot":"dialog-close",render:(0,d.jsx)(m.$,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,d.jsx)(n.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function s({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,l.cn)("flex flex-col gap-2",a),...b})}function t({className:a,showCloseButton:b=!1,children:c,...e}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,l.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",a),...e,children:[c,b&&(0,d.jsx)(i.H,{render:(0,d.jsx)(m.$,{variant:"outline"}),children:"Close"})]})}function u({className:a,...b}){return(0,d.jsx)(j.L,{"data-slot":"dialog-title",className:(0,l.cn)("font-heading text-base leading-none font-medium",a),...b})}function v({className:a,...b}){return(0,d.jsx)(k.r,{"data-slot":"dialog-description",className:(0,l.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",a),...b})}},76174:(a,b,c)=>{c.a(a,async(a,b)=>{try{var d=c(62896);c(22443),c(66625),c(66949);var e=a([d]);d=(e.then?(await e)():e)[0],b()}catch(a){b(a)}})},76909:(a,b,c)=>{c.r(b),c.d(b,{bugFlagRelations:()=>h,codeFileEdgeRelations:()=>u,codeFileRelations:()=>t,dbColumnRelations:()=>m,dbRelationRelations:()=>n,dbTableRelations:()=>l,draftColumnRelations:()=>r,draftRelationRelations:()=>s,draftTableRelations:()=>q,edgeRelations:()=>k,endpointRelations:()=>o,endpointTableRelations:()=>p,nodeFileRelations:()=>g,nodeRelations:()=>f,nodeTagsRelations:()=>j,tagRelations:()=>i});var d=c(74184),e=c(22443);let f=(0,d.K1)(e.node,({one:a,many:b})=>({files:b(e.nodeFile),bugFlags:b(e.bugFlag),nodeTags:b(e.nodeTags),edgesOut:b(e.edge,{relationName:"EdgeFrom"}),edgesIn:b(e.edge,{relationName:"EdgeTo"}),parent:a(e.node,{fields:[e.node.parentId],references:[e.node.id],relationName:"NodeTree"}),children:b(e.node,{relationName:"NodeTree"})})),g=(0,d.K1)(e.nodeFile,({one:a})=>({node:a(e.node,{fields:[e.nodeFile.nodeId],references:[e.node.id]})})),h=(0,d.K1)(e.bugFlag,({one:a})=>({node:a(e.node,{fields:[e.bugFlag.nodeId],references:[e.node.id]})})),i=(0,d.K1)(e.tag,({many:a})=>({nodeTags:a(e.nodeTags)})),j=(0,d.K1)(e.nodeTags,({one:a})=>({node:a(e.node,{fields:[e.nodeTags.a],references:[e.node.id]}),tag:a(e.tag,{fields:[e.nodeTags.b],references:[e.tag.id]})})),k=(0,d.K1)(e.edge,({one:a})=>({from:a(e.node,{fields:[e.edge.fromId],references:[e.node.id],relationName:"EdgeFrom"}),to:a(e.node,{fields:[e.edge.toId],references:[e.node.id],relationName:"EdgeTo"})})),l=(0,d.K1)(e.dbTable,({many:a})=>({columns:a(e.dbColumn),fksOut:a(e.dbRelation,{relationName:"FkFrom"}),fksIn:a(e.dbRelation,{relationName:"FkTo"}),usages:a(e.endpointTable)})),m=(0,d.K1)(e.dbColumn,({one:a})=>({table:a(e.dbTable,{fields:[e.dbColumn.tableId],references:[e.dbTable.id]})})),n=(0,d.K1)(e.dbRelation,({one:a})=>({fromTable:a(e.dbTable,{fields:[e.dbRelation.fromTableId],references:[e.dbTable.id],relationName:"FkFrom"}),toTable:a(e.dbTable,{fields:[e.dbRelation.toTableId],references:[e.dbTable.id],relationName:"FkTo"})})),o=(0,d.K1)(e.endpoint,({many:a})=>({tables:a(e.endpointTable)})),p=(0,d.K1)(e.endpointTable,({one:a})=>({endpoint:a(e.endpoint,{fields:[e.endpointTable.endpointId],references:[e.endpoint.id]}),table:a(e.dbTable,{fields:[e.endpointTable.tableId],references:[e.dbTable.id]})})),q=(0,d.K1)(e.draftTable,({many:a})=>({columns:a(e.draftColumn),fksOut:a(e.draftRelation,{relationName:"DraftFkFrom"}),fksIn:a(e.draftRelation,{relationName:"DraftFkTo"})})),r=(0,d.K1)(e.draftColumn,({one:a})=>({table:a(e.draftTable,{fields:[e.draftColumn.tableId],references:[e.draftTable.id]})})),s=(0,d.K1)(e.draftRelation,({one:a})=>({fromTable:a(e.draftTable,{fields:[e.draftRelation.fromTableId],references:[e.draftTable.id],relationName:"DraftFkFrom"}),toTable:a(e.draftTable,{fields:[e.draftRelation.toTableId],references:[e.draftTable.id],relationName:"DraftFkTo"})})),t=(0,d.K1)(e.codeFile,({many:a})=>({edgesOut:a(e.codeFileEdge,{relationName:"CFEFrom"}),edgesIn:a(e.codeFileEdge,{relationName:"CFETo"})})),u=(0,d.K1)(e.codeFileEdge,({one:a})=>({fromFile:a(e.codeFile,{fields:[e.codeFileEdge.fromPath],references:[e.codeFile.path],relationName:"CFEFrom"}),toFile:a(e.codeFile,{fields:[e.codeFileEdge.toPath],references:[e.codeFile.path],relationName:"CFETo"})}))},78103:(a,b,c)=>{c.d(b,{A6:()=>i,An:()=>j,RR:()=>d,YG:()=>g,ZD:()=>h,jR:()=>f});let d=["frontend","backend","fullstack"],e={fe:"frontend",front:"frontend",be:"backend",back:"backend",fs:"fullstack","full-stack":"fullstack","full stack":"fullstack"};function f(a){let b=(a??"").trim().toLowerCase();return b?d.includes(b)?b:e[b]??null:null}let g={frontend:{label:"Frontend",short:"FE"},backend:{label:"Backend",short:"BE"},fullstack:{label:"Fullstack",short:"FS"}},h={frontend:"#5AC8FA",backend:"#3ECF8E",fullstack:"#5AC8FA"};function i(a){return"fullstack"!==a?h[a]:`linear-gradient(to bottom, ${h.frontend} 0%, ${h.frontend} 50%, ${h.backend} 50%, ${h.backend} 100%)`}let j=/\.(tsx|jsx|vue|svelte)$/i},80941:(a,b,c)=>{c.d(b,{Dk:()=>m,K4:()=>k,Nx:()=>j,UP:()=>l,X_:()=>o,kO:()=>r,p1:()=>p});var d=c(16698);c(31421),c(77598);var e=c(73024),f=c(48161),g=c(76760);function h(){return process.env.BEACON_HOME||(0,g.join)((0,f.homedir)(),".beacon")}function i(a){return(0,g.join)(h(),a)}function j(a){return`file:${(0,g.join)(i(a),"db.sqlite")}`}function k(a){return(function(){try{let a=JSON.parse((0,e.readFileSync)((0,g.join)(h(),"workspaces.json"),"utf8"));return Array.isArray(a)?a:[]}catch{return[]}})().find(b=>b.id===a)??null}function l(){try{return(0,e.readFileSync)((0,g.join)(h(),"active"),"utf8").trim()||null}catch{return null}}let m="beacon_ws",n=new d.AsyncLocalStorage;function o(a,b){return a?n.run(a,b):b()}function p(){return n.getStore()??null}let q=new Set;async function r(a){let b=i(a),d=(0,g.join)(b,"db.sqlite"),f=(0,e.existsSync)(d);if(f&&q.has(d))return{ok:!0,created:!1,migrated:!1};try{(0,e.mkdirSync)(b,{recursive:!0});let{provisionDb:g}=await c.e(9127).then(c.bind(c,29127)),h=await g(j(a));return q.add(d),{ok:!0,created:!f,migrated:f&&h.migrated}}catch(a){return{ok:!1,created:!1,migrated:!1,error:a instanceof Error?a.message:String(a)}}}},81725:(a,b,c)=>{c.d(b,{$$:()=>g,Qk:()=>f,RU:()=>d,Uy:()=>e,jF:()=>h,r2:()=>k,sQ:()=>i,zn:()=>j});let d="0 0 0 3px var(--accent-2,#ff7a45), 0 0 32px -2px var(--accent-2,#ff7a45)",e=.14;function f(a,b){let c=b.trim().toLowerCase();if(!c)return!1;for(let b of a)if(b&&b.toLowerCase().includes(c))return!0;return!1}function g(a){return[a.title,a.role,a.plain,a.cluster,a.status].filter(Boolean)}function h(a){let b=[a.name,a.domain,a.description];for(let c of a.columns??[])b.push(c.name,c.type,c.note);return b.filter(Boolean)}function i(a){return[a.method,a.path,a.domain,a.description].filter(Boolean)}function j(a){return[a.path,a.lang].filter(Boolean)}function k(a,b,c,d,e=12){let g=b.trim().toLowerCase();if(!g)return[];let h=[];for(let b of a){if(!f(c(b),g))continue;let a=d(b);h.push({hit:a,score:function(a,b){let c=a.toLowerCase();return c===b?0:c.startsWith(b)?1:RegExp(`(^|[^a-z0-9])${b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}`,"i").test(a)?2:c.includes(b)?3:4}(a.label,g)})}return h.sort((a,b)=>a.score-b.score||a.hit.label.length-b.hit.label.length),h.slice(0,e).map(a=>a.hit)}},82145:(a,b,c)=>{c.d(b,{I:()=>k});var d=c(48249),e=c(56024),f=c(55030),g=c(57684);function h(a){let{x:b,y:c}=a.internals.positionAbsolute,d=a.measured?.width??0,e=a.measured?.height??0;return{x:b,y:c,w:d,h:e,cx:b+d/2,cy:c+e/2}}function i(a,b){let c=h(a),d=h(b),e=c.w/2||1,f=c.h/2||1,g=(d.cx-c.cx)/(2*e)-(d.cy-c.cy)/(2*f),i=(d.cx-c.cx)/(2*e)+(d.cy-c.cy)/(2*f),j=1/(Math.abs(g)+Math.abs(i)||1);return{x:e*j*(g+i)+c.cx,y:f*j*(-g+i)+c.cy}}function j(a,b){let c=h(a),d=Math.round(b.x),e=Math.round(b.y);return d<=Math.round(c.x)+1?f.yX.Left:d>=Math.round(c.x+c.w)-1?f.yX.Right:e<=Math.round(c.y)+1?f.yX.Top:f.yX.Bottom}function k(a){let b,c,{deleteElements:h}=(0,e.VH)(),k=(0,e.JY)(a.source),l=(0,e.JY)(a.target),m=k&&l?(b=i(k,l),c=i(l,k),{sx:b.x,sy:b.y,tx:c.x,ty:c.y,sourcePos:j(k,b),targetPos:j(l,c)}):null,[n,o,p]=(0,f.Fp)(m?{sourceX:m.sx,sourceY:m.sy,sourcePosition:m.sourcePos,targetX:m.tx,targetY:m.ty,targetPosition:m.targetPos}:{sourceX:a.sourceX,sourceY:a.sourceY,sourcePosition:a.sourcePosition,targetX:a.targetX,targetY:a.targetY,targetPosition:a.targetPosition});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.tE,{id:a.id,path:n,style:a.style,markerEnd:a.markerEnd,interactionWidth:20}),a.label&&(0,d.jsx)(e.rV,{children:(0,d.jsx)("div",{style:{position:"absolute",transform:`translate(-50%, -120%) translate(${o}px, ${p}px)`,fontSize:11,color:"#cfcfcf",background:"#161616",padding:"1px 4px",borderRadius:4,pointerEvents:"none",zIndex:1e3},children:a.label})}),a.selected&&(0,d.jsx)(e.rV,{children:(0,d.jsx)("div",{className:"nodrag nopan",style:{position:"absolute",transform:`translate(-50%, 0) translate(${o}px, ${p+14}px)`,pointerEvents:"all",zIndex:1e3},children:(0,d.jsx)("button",{type:"button",onMouseDown:a=>a.stopPropagation(),onClick:b=>{b.stopPropagation(),h({edges:[{id:a.id}]})},title:"Delete (or press Backspace)",className:"flex size-7 items-center justify-center rounded-full border border-white/20 bg-card/95 text-red-300 shadow-lg backdrop-blur-md transition-colors hover:bg-red-500/25 hover:text-red-200",children:(0,d.jsx)(g.A,{className:"size-3.5"})})})})]})}},84170:(a,b,c)=>{c.d(b,{F:()=>g,o:()=>h});var d=c(48249),e=c(78103),f=c(33191);function g(a,b){return!!b&&("fullstack"===a?"fullstack"===b:b===a||"fullstack"===b)}function h({value:a,onChange:b,options:c=e.RR}){return(0,d.jsx)("div",{className:"glass flex items-center gap-0.5 rounded-lg p-0.5",children:c.map(c=>{let g=a===c;return(0,d.jsxs)("button",{type:"button",onClick:()=>b(g?null:c),title:g?"Show every layer at full strength again":`Highlight ${e.YG[c].label} — other cards dim, nothing is hidden`,className:(0,f.cn)("flex h-7 items-center gap-1.5 rounded-md px-2 text-[10px] font-semibold uppercase tracking-wide transition-colors",g?"bg-white/[0.12] text-foreground":"text-muted-foreground hover:bg-white/[0.06] hover:text-foreground"),children:[(0,d.jsx)("span",{"aria-hidden":!0,className:"h-3 w-[3px] shrink-0 rounded-full",style:{background:(0,e.A6)(c)}}),e.YG[c].short]},c)})})}},84853:(a,b,c)=>{c.d(b,{C5:()=>f,KW:()=>g});var d=c(65573),e=c(6716);async function f(a){if(a&&(0,e.K4)(a))return a;let b=(await (0,d.cookies)()).get(e.Dk)?.value;return b&&(0,e.K4)(b)?b:null}let g=f},91365:(a,b,c)=>{c.d(b,{fE:()=>f,gt:()=>g,kz:()=>e});let d={far:.3,farExit:.34,mid:.55,midExit:.6},e={far:.12,farExit:.15,mid:.45,midExit:.5},f={far:.2,farExit:.24,mid:.32,midExit:.36};function g(a,b="full",c=d){return a<c.far||"far"===b&&a<c.farExit?"far":a<c.mid||"mid"===b&&a<c.midExit?"mid":"full"}},92994:(a,b,c)=>{c.d(b,{er:()=>g,r1:()=>h,vu:()=>i});var d=c(48249),e=c(67484),f=c(33191);function g({trigger:a,title:b,align:c="right",children:h,open:i,onOpenChange:j,outsideClicksToClose:k=1}){let[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)("down"),p=i??l,q=(0,e.useRef)(null);return(0,e.useRef)(()=>{}),(0,d.jsxs)("div",{ref:q,className:"relative",children:[a(p,()=>{var a;return a=!p,void(void 0===i&&m(a),j?.(a))}),p&&(0,d.jsxs)("div",{className:(0,f.cn)("glass absolute z-30 w-64 rounded-xl p-3 shadow-xl","up"===n?"bottom-full mb-1.5":"top-full mt-1.5","right"===c?"right-0":"left-0"),children:[b&&(0,d.jsx)("div",{className:"mb-2 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:b}),h]})]})}function h({title:a,children:b}){return(0,d.jsxs)("div",{className:"mb-2.5 last:mb-0",children:[(0,d.jsx)("div",{className:"mb-1 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground/80",children:a}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1",children:b})]})}function i({on:a,onClick:b,children:c,tone:e="default"}){return(0,d.jsx)("button",{type:"button",onClick:b,className:(0,f.cn)("rounded-md border px-2 py-0.5 text-[11px] font-medium transition-colors",{default:a?"border-foreground/40 bg-white/10 text-foreground":"border-white/10 text-muted-foreground hover:text-foreground",danger:a?"border-red-500/40 bg-red-500/15 text-red-300":"border-white/10 text-muted-foreground hover:text-foreground",accent:a?"border-sky-500/40 bg-sky-500/15 text-sky-300":"border-white/10 text-muted-foreground hover:text-foreground"}[e]),children:c})}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8074],{2125:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},8962:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]])},9005:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},9339:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var n={callServer:function(){return o.callServer},createServerReference:function(){return l.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var i in n)Object.defineProperty(t,i,{enumerable:!0,get:n[i]});let o=r(77304),s=r(4060),l=r(77197)},15330:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]])},15480:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]])},17112:(e,t,r)=>{r.d(t,{D:()=>s});var n=r(12115),i=r(63699),o=r(94257);function s(e){let t=n.useContext(i.Ts)?"drawer":"dialog";return(0,o.G)(e,t)}},17356:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},17494:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]])},25640:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("map-pinned",[["path",{d:"M18 8c0 3.613-3.869 7.429-5.393 8.795a1 1 0 0 1-1.214 0C9.87 15.429 6 11.613 6 8a6 6 0 0 1 12 0",key:"11u0oz"}],["circle",{cx:"12",cy:"8",r:"2",key:"1822b1"}],["path",{d:"M8.714 14h-3.71a1 1 0 0 0-.948.683l-2.004 6A1 1 0 0 0 3 22h18a1 1 0 0 0 .948-1.316l-2-6a1 1 0 0 0-.949-.684h-3.712",key:"q8zwxj"}]])},34306:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]])},40638:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("message-circle-question-mark",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},45486:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("panel-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M15 3v18",key:"14nvp0"}]])},60976:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("redo-2",[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",key:"6uklza"}]])},61388:(e,t,r)=>{r.d(t,{b:()=>d});var n=r(12115),i=r.t(n,2);function o(e,t){if("function"==typeof e)return e(t);null!=e&&(e.current=t)}r(47650);var s=r(95155),l=Symbol.for("react.lazy"),f=i[" use ".trim().toString()];function a(e){var t;return null!=e&&"object"==typeof e&&"$$typeof"in e&&e.$$typeof===l&&"_payload"in e&&"object"==typeof(t=e._payload)&&null!==t&&"then"in t}var u=Symbol("radix.slottable");function c(e){return n.isValidElement(e)&&"function"==typeof e.type&&"__radixId"in e.type&&e.type.__radixId===u}var h=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{var r,i;let l,u,h,p=(i=r=`Primitive.${t}`,(l=n.forwardRef((e,t)=>{let{children:r,...i}=e;if(a(r)&&"function"==typeof f&&(r=f(r._payload)),n.isValidElement(r)){var s;let e,l,f=(s=r,(l=(e=Object.getOwnPropertyDescriptor(s.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.ref:(l=(e=Object.getOwnPropertyDescriptor(s,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning)?s.props.ref:s.props.ref||s.ref),a=function(e,t){let r={...t};for(let n in t){let i=e[n],o=t[n];/^on[A-Z]/.test(n)?i&&o?r[n]=(...e)=>{let t=o(...e);return i(...e),t}:i&&(r[n]=i):"style"===n?r[n]={...i,...o}:"className"===n&&(r[n]=[i,o].filter(Boolean).join(" "))}return{...e,...r}}(i,r.props);return r.type!==n.Fragment&&(a.ref=t?function(...e){return t=>{let r=!1,n=e.map(e=>{let n=o(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t<n.length;t++){let r=n[t];"function"==typeof r?r():o(e[t],null)}}}}(t,f):f),n.cloneElement(r,a)}return n.Children.count(r)>1?n.Children.only(null):null})).displayName=`${i}.SlotClone`,u=l,(h=n.forwardRef((e,t)=>{let{children:r,...i}=e;a(r)&&"function"==typeof f&&(r=f(r._payload));let o=n.Children.toArray(r),l=o.find(c);if(l){let e=l.props.children,r=o.map(t=>t!==l?t:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,s.jsx)(u,{...i,ref:t,children:n.isValidElement(e)?n.cloneElement(e,void 0,r):null})}return(0,s.jsx)(u,{...i,ref:t,children:r})})).displayName=`${r}.Slot`,h),d=n.forwardRef((e,r)=>{let{asChild:n,...i}=e;return"u">typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,s.jsx)(n?p:t,{...i,ref:r})});return d.displayName=`Primitive.${t}`,{...e,[t]:d}},{}),p=n.forwardRef((e,t)=>(0,s.jsx)(h.label,{...e,ref:t,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));p.displayName="Label";var d=p},65377:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},65408:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]])},80846:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("sliders-horizontal",[["path",{d:"M10 5H3",key:"1qgfaw"}],["path",{d:"M12 19H3",key:"yhmn1j"}],["path",{d:"M14 3v4",key:"1sua03"}],["path",{d:"M16 17v4",key:"1q0r14"}],["path",{d:"M21 12h-9",key:"1o4lsq"}],["path",{d:"M21 19h-5",key:"1rlt1p"}],["path",{d:"M21 5h-7",key:"1oszz2"}],["path",{d:"M8 10v4",key:"tgpxqk"}],["path",{d:"M8 12H3",key:"a7s4jb"}]])},83599:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]])},85618:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]])},94192:(e,t,r)=>{r.d(t,{A:()=>n});let n=(0,r(30772).A)("folder-tree",[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]])},98112:(e,t,r)=>{let n;r.d(t,{sX:()=>Z});let i=BigInt(0x100000000-1),o=BigInt(32);function s(e,t=""){if("number"!=typeof e){let r=t&&`"${t}" `;throw TypeError(`${r}expected number, got ${typeof e}`)}if(!Number.isSafeInteger(e)||e<0){let r=t&&`"${t}" `;throw RangeError(`${r}expected integer >= 0, got ${e}`)}}function l(e,t,r=""){let n=e instanceof Uint8Array||ArrayBuffer.isView(e)&&"Uint8Array"===e.constructor.name&&"BYTES_PER_ELEMENT"in e&&1===e.BYTES_PER_ELEMENT,i=e?.length,o=void 0!==t;if(!n||o&&i!==t){let s=(r&&`"${r}" `)+"expected Uint8Array"+(o?` of length ${t}`:"")+", got "+(n?`length=${i}`:`type=${typeof e}`);if(!n)throw TypeError(s);throw RangeError(s)}return e}function f(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function a(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}let u=68===new Uint8Array(new Uint32Array([0x11223344]).buffer)[0]?e=>e:function(e){for(let r=0;r<e.length;r++){var t;e[r]=(t=e[r])<<24&0xff000000|t<<8&0xff0000|t>>>8&65280|t>>>24&255}return e},c=BigInt(0),h=BigInt(1),p=BigInt(2),d=BigInt(7),g=BigInt(256),y=BigInt(113),w=[],m=[],b=[];for(let e=0,t=h,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],w.push(2*(5*n+r)),m.push((e+1)*(e+2)/2%64);let i=c;for(let e=0;e<7;e++)(t=(t<<h^(t>>d)*y)%g)&p&&(i^=h<<(h<<BigInt(e))-h);b.push(i)}let v=function(e,t=!1){let r=e.length,n=new Uint32Array(r),s=new Uint32Array(r);for(let l=0;l<r;l++){let{h:r,l:f}=function(e,t=!1){return t?{h:Number(e&i),l:Number(e>>o&i)}:{h:0|Number(e>>o&i),l:0|Number(e&i)}}(e[l],t);[n[l],s[l]]=[r,f]}return[n,s]}(b,!0),k=v[0],A=v[1],x=(e,t,r)=>r>32?t<<r-32|e>>>64-r:e<<r|t>>>32-r,O=(e,t,r)=>r>32?e<<r-32|t>>>64-r:t<<r|e>>>32-r;class E{state;pos=0;posOut=0;finished=!1;state32;destroyed=!1;blockLen;suffix;outputLen;canXOF;enableXOF=!1;rounds;constructor(e,t,r,n=!1,i=24){if(this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.canXOF=n,this.rounds=i,s(r,"outputLen"),!(0<e&&e<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=function(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}(this.state)}clone(){return this._cloneInto()}keccak(){u(this.state32),function(e,t=24){if(s(t,"rounds"),t<1||t>24)throw Error('"rounds" expected integer 1..24');let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let n=(t+8)%10,i=(t+2)%10,o=r[i],s=r[i+1],l=x(o,s,1)^r[n],f=O(o,s,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=l,e[t+r+1]^=f}let t=e[2],i=e[3];for(let r=0;r<24;r++){let n=m[r],o=x(t,i,n),s=O(t,i,n),l=w[r];t=e[l],i=e[l+1],e[l]=o,e[l+1]=s}for(let t=0;t<50;t+=10){let r=e[t],n=e[t+1],i=e[t+2],o=e[t+3];e[t]^=~e[t+2]&e[t+4],e[t+1]^=~e[t+3]&e[t+5],e[t+2]^=~e[t+4]&e[t+6],e[t+3]^=~e[t+5]&e[t+7],e[t+4]^=~e[t+6]&e[t+8],e[t+5]^=~e[t+7]&e[t+9],e[t+6]^=~e[t+8]&r,e[t+7]^=~e[t+9]&n,e[t+8]^=~r&i,e[t+9]^=~n&o}e[0]^=k[n],e[1]^=A[n]}a(r)}(this.state32,this.rounds),u(this.state32),this.posOut=0,this.pos=0}update(e){f(this),l(e);let{blockLen:t,state:r}=this,n=e.length;for(let i=0;i<n;){let o=Math.min(t-this.pos,n-i);for(let t=0;t<o;t++)r[this.pos++]^=e[i++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,(128&t)!=0&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){f(this,!1),l(e),this.finish();let t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();let o=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+o),n),this.posOut+=o,n+=o}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return s(e),this.xofInto(new Uint8Array(e))}digestInto(e){l(e,void 0,"digestInto() output");let t=this.outputLen;if(e.length<t)throw RangeError('"digestInto() output" expected to be of length >='+t);if(this.finished)throw Error("digest() was already called");this.writeInto(e.subarray(0,this.outputLen)),this.destroy()}digest(){let e=new Uint8Array(this.outputLen);return this.digestInto(e),e}destroy(){this.destroyed=!0,a(this.state)}_cloneInto(e){let{blockLen:t,suffix:r,outputLen:n,rounds:i,enableXOF:o}=this;return(e||=new E(t,r,n,o,i)).blockLen=t,e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=i,e.suffix=r,e.outputLen=n,e.enableXOF=o,e.canXOF=this.canXOF,e.destroyed=this.destroyed,e}}let N=((e,t,r,n={})=>(function(e,t={}){let r=(t,r)=>e(r).update(t).digest(),n=e(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=t=>e(t),Object.assign(r,t),Object.freeze(r)})(()=>new E(t,e,r),n))(6,72,64,{oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,10])});var M,S=/^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,R=Math.ceil,_=Math.floor,I="[BigNumber Error] ",L=I+"Number primitive has more than 15 significant digits: ",U=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13];function B(e){var t=0|e;return e>0||e===t?t:t-1}function j(e){for(var t,r,n=1,i=e.length,o=e[0]+"";n<i;){for(r=14-(t=e[n++]+"").length;r--;t="0"+t);o+=t}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function P(e,t){var r,n,i=e.c,o=t.c,s=e.s,l=t.s,f=e.e,a=t.e;if(!s||!l)return null;if(r=i&&!i[0],n=o&&!o[0],r||n)return r?n?0:-l:s;if(s!=l)return s;if(r=s<0,n=f==a,!i||!o)return n?0:!i^r?1:-1;if(!n)return f>a^r?1:-1;for(s=0,l=(f=i.length)<(a=o.length)?f:a;s<l;s++)if(i[s]!=o[s])return i[s]>o[s]^r?1:-1;return f==a?0:f>a^r?1:-1}function T(e,t,r,n){if(e<t||e>r||e!==_(e))throw Error(I+(n||"Argument")+("number"==typeof e?e<t||e>r?" out of range: ":" not an integer: ":" not a primitive number: ")+String(e))}function C(e){var t=e.c.length-1;return B(e.e/14)==t&&e.c[t]%2!=0}function D(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(t<0?"e":"e+")+t}function $(e,t,r){var n,i;if(t<0){for(i=r+".";++t;i+=r);e=i+e}else if(n=e.length,++t>n){for(i=r,t-=n;--t;i+=r);e+=i}else t<n&&(e=e.slice(0,t)+"."+e.slice(t));return e}var F=function e(t){var r,n,i,o,s,l,f,a,u,c=E.prototype={constructor:E,toString:null,valueOf:null},h=new E(1),p=20,d=4,g=-7,y=21,w=-1e7,m=1e7,b=!1,v=1,k=0,A={prefix:"",groupSize:3,secondaryGroupSize:0,groupSeparator:",",decimalSeparator:".",fractionGroupSize:0,fractionGroupSeparator:"\xa0",suffix:""},x="0123456789abcdefghijklmnopqrstuvwxyz",O=!0;function E(e,t){var r,n,i,o,s,l,f,c,h=this;if(!(h instanceof E))return new E(e,t);if(null==t){if(e&&!0===e._isBigNumber){h.s=e.s,!e.c||e.e>m?h.c=h.e=null:e.e<w?h.c=[h.e=0]:(h.e=e.e,h.c=e.c.slice());return}if((l="number"==typeof e)&&0*e==0){if(h.s=1/e<0?(e=-e,-1):1,e===~~e){for(o=0,s=e;s>=10;s/=10,o++);o>m?h.c=h.e=null:(h.e=o,h.c=[e]);return}c=String(e)}else{if(!S.test(c=String(e)))return u(h,c,l);h.s=45==c.charCodeAt(0)?(c=c.slice(1),-1):1}(o=c.indexOf("."))>-1&&(c=c.replace(".","")),(s=c.search(/e/i))>0?(o<0&&(o=s),o+=+c.slice(s+1),c=c.substring(0,s)):o<0&&(o=c.length)}else{if(T(t,2,x.length,"Base"),10==t&&O)return q(h=new E(e),p+h.e+1,d);if(c=String(e),l="number"==typeof e){if(0*e!=0)return u(h,c,l,t);if(h.s=1/e<0?(c=c.slice(1),-1):1,E.DEBUG&&c.replace(/^0\.0*|\./,"").length>15)throw Error(L+e)}else h.s=45===c.charCodeAt(0)?(c=c.slice(1),-1):1;for(r=x.slice(0,t),o=s=0,f=c.length;s<f;s++)if(0>r.indexOf(n=c.charAt(s))){if("."==n){if(s>o){o=f;continue}}else if(!i&&(c==c.toUpperCase()&&(c=c.toLowerCase())||c==c.toLowerCase()&&(c=c.toUpperCase()))){i=!0,s=-1,o=0;continue}return u(h,String(e),l,t)}l=!1,(o=(c=a(c,t,10,h.s)).indexOf("."))>-1?c=c.replace(".",""):o=c.length}for(s=0;48===c.charCodeAt(s);s++);for(f=c.length;48===c.charCodeAt(--f););if(c=c.slice(s,++f)){if(f-=s,l&&E.DEBUG&&f>15&&(e>0x1fffffffffffff||e!==_(e)))throw Error(L+h.s*e);if((o=o-s-1)>m)h.c=h.e=null;else if(o<w)h.c=[h.e=0];else{if(h.e=o,h.c=[],s=(o+1)%14,o<0&&(s+=14),s<f){for(s&&h.c.push(+c.slice(0,s)),f-=14;s<f;)h.c.push(+c.slice(s,s+=14));s=14-(c=c.slice(s)).length}else s-=f;for(;s--;c+="0");h.c.push(+c)}}else h.c=[h.e=0]}function N(e,t,r,n){var i,o,s,l,f;if(null==r?r=d:T(r,0,8),!e.c)return e.toString();if(i=e.c[0],s=e.e,null==t)f=j(e.c),f=1==n||2==n&&(s<=g||s>=y)?D(f,s):$(f,s,"0");else if(o=(e=q(new E(e),t,r)).e,l=(f=j(e.c)).length,1==n||2==n&&(t<=o||o<=g)){for(;l<t;f+="0",l++);f=D(f,o)}else if(t-=s+(2===n&&o>s),f=$(f,o,"0"),o+1>l){if(--t>0)for(f+=".";t--;f+="0");}else if((t+=o-l)>0)for(o+1==l&&(f+=".");t--;f+="0");return e.s<0&&i?"-"+f:f}function M(e,t){for(var r,n,i=1,o=new E(e[0]);i<e.length;i++)(n=new E(e[i])).s&&(r=P(o,n))!==t&&(0!==r||o.s!==t)||(o=n);return o}function F(e,t,r){for(var n=1,i=t.length;!t[--i];t.pop());for(i=t[0];i>=10;i/=10,n++);return(r=n+14*r-1)>m?e.c=e.e=null:r<w?e.c=[e.e=0]:(e.e=r,e.c=t),e}function q(e,t,r,n){var i,o,s,l,f,a,u,c=e.c;if(c){e:{for(i=1,l=c[0];l>=10;l/=10,i++);if((o=t-i)<0)o+=14,s=t,u=_((f=c[a=0])/U[i-s-1]%10);else if((a=R((o+1)/14))>=c.length)if(n){for(;c.length<=a;c.push(0));f=u=0,i=1,o%=14,s=o-14+1}else break e;else{for(i=1,f=l=c[a];l>=10;l/=10,i++);o%=14,u=(s=o-14+i)<0?0:_(f/U[i-s-1]%10)}if(n=n||t<0||null!=c[a+1]||(s<0?f:f%U[i-s-1]),n=r<4?(u||n)&&(0==r||r==(e.s<0?3:2)):u>5||5==u&&(4==r||n||6==r&&(o>0?s>0?f/U[i-s]:0:c[a-1])%10&1||r==(e.s<0?8:7)),t<1||!c[0])return c.length=0,n?(t-=e.e+1,c[0]=U[(14-t%14)%14],e.e=-t||0):c[0]=e.e=0,e;if(0==o?(c.length=a,l=1,a--):(c.length=a+1,l=U[14-o],c[a]=s>0?_(f/U[i-s]%U[s])*l:0),n)for(;;)if(0==a){for(o=1,s=c[0];s>=10;s/=10,o++);for(s=c[0]+=l,l=1;s>=10;s/=10,l++);o!=l&&(e.e++,1e14==c[0]&&(c[0]=1));break}else{if(c[a]+=l,1e14!=c[a])break;c[a--]=0,l=1}for(o=c.length;0===c[--o];c.pop());}e.e>m?e.c=e.e=null:e.e<w&&(e.c=[e.e=0])}return e}function z(e){var t,r=e.e;return null===r?e.toString():(t=j(e.c),t=r<=g||r>=y?D(t,r):$(t,r,"0"),e.s<0?"-"+t:t)}return E.clone=e,E.ROUND_UP=0,E.ROUND_DOWN=1,E.ROUND_CEIL=2,E.ROUND_FLOOR=3,E.ROUND_HALF_UP=4,E.ROUND_HALF_DOWN=5,E.ROUND_HALF_EVEN=6,E.ROUND_HALF_CEIL=7,E.ROUND_HALF_FLOOR=8,E.EUCLID=9,E.config=E.set=function(e){var t,r;if(null!=e)if("object"==typeof e){if(e.hasOwnProperty(t="DECIMAL_PLACES")&&(T(r=e[t],0,1e9,t),p=r),e.hasOwnProperty(t="ROUNDING_MODE")&&(T(r=e[t],0,8,t),d=r),e.hasOwnProperty(t="EXPONENTIAL_AT")&&((r=e[t])&&r.pop?(T(r[0],-1e9,0,t),T(r[1],0,1e9,t),g=r[0],y=r[1]):(T(r,-1e9,1e9,t),g=-(y=r<0?-r:r))),e.hasOwnProperty(t="RANGE"))if((r=e[t])&&r.pop)T(r[0],-1e9,-1,t),T(r[1],1,1e9,t),w=r[0],m=r[1];else if(T(r,-1e9,1e9,t),r)w=-(m=r<0?-r:r);else throw Error(I+t+" cannot be zero: "+r);if(e.hasOwnProperty(t="CRYPTO"))if(!!(r=e[t])===r)if(r)if("u">typeof crypto&&crypto&&(crypto.getRandomValues||crypto.randomBytes))b=r;else throw b=!r,Error(I+"crypto unavailable");else b=r;else throw Error(I+t+" not true or false: "+r);if(e.hasOwnProperty(t="MODULO_MODE")&&(T(r=e[t],0,9,t),v=r),e.hasOwnProperty(t="POW_PRECISION")&&(T(r=e[t],0,1e9,t),k=r),e.hasOwnProperty(t="FORMAT"))if("object"==typeof(r=e[t]))A=r;else throw Error(I+t+" not an object: "+r);if(e.hasOwnProperty(t="ALPHABET")){if("string"!=typeof(r=e[t])||/^.?$|[+\-.\s]|(.).*\1/.test(r))throw Error(I+t+" invalid: "+r);O="0123456789"==r.slice(0,10),x=r}}else throw Error(I+"Object expected: "+e);return{DECIMAL_PLACES:p,ROUNDING_MODE:d,EXPONENTIAL_AT:[g,y],RANGE:[w,m],CRYPTO:b,MODULO_MODE:v,POW_PRECISION:k,FORMAT:A,ALPHABET:x}},E.isBigNumber=function(e){if(!e||!0!==e._isBigNumber)return!1;if(!E.DEBUG)return!0;var t,r,n=e.c,i=e.e,o=e.s;e:if("[object Array]"==({}).toString.call(n)){if((1===o||-1===o)&&i>=-1e9&&i<=1e9&&i===_(i)){if(0===n[0]){if(0===i&&1===n.length)return!0;break e}if((t=(i+1)%14)<1&&(t+=14),String(n[0]).length==t){for(t=0;t<n.length;t++)if((r=n[t])<0||r>=1e14||r!==_(r))break e;if(0!==r)return!0}}}else if(null===n&&null===i&&(null===o||1===o||-1===o))return!0;throw Error(I+"Invalid BigNumber: "+e)},E.maximum=E.max=function(){return M(arguments,-1)},E.minimum=E.min=function(){return M(arguments,1)},r=0x20000000000000*Math.random()&2097151?function(){return _(0x20000000000000*Math.random())}:function(){return(0x40000000*Math.random()|0)*8388608+(8388608*Math.random()|0)},E.random=function(e){var t,n,i,o,s,l=0,f=[],a=new E(h);if(null==e?e=p:T(e,0,1e9),o=R(e/14),b)if(crypto.getRandomValues){for(t=crypto.getRandomValues(new Uint32Array(o*=2));l<o;)(s=131072*t[l]+(t[l+1]>>>11))>=9e15?(n=crypto.getRandomValues(new Uint32Array(2)),t[l]=n[0],t[l+1]=n[1]):(f.push(s%1e14),l+=2);l=o/2}else if(crypto.randomBytes){for(t=crypto.randomBytes(o*=7);l<o;)(s=(31&t[l])*0x1000000000000+0x10000000000*t[l+1]+0x100000000*t[l+2]+0x1000000*t[l+3]+(t[l+4]<<16)+(t[l+5]<<8)+t[l+6])>=9e15?crypto.randomBytes(7).copy(t,l):(f.push(s%1e14),l+=7);l=o/7}else throw b=!1,Error(I+"crypto unavailable");if(!b)for(;l<o;)(s=r())<9e15&&(f[l++]=s%1e14);for(o=f[--l],e%=14,o&&e&&(s=U[14-e],f[l]=_(o/s)*s);0===f[l];f.pop(),l--);if(l<0)f=[i=0];else{for(i=-1;0===f[0];f.splice(0,1),i-=14);for(l=1,s=f[0];s>=10;s/=10,l++);l<14&&(i-=14-l)}return a.e=i,a.c=f,a},E.sum=function(){for(var e=1,t=arguments,r=new E(t[0]);e<t.length;)r=r.plus(t[e++]);return r},a=function(){var e="0123456789";function t(e,t,r,n){for(var i,o,s=[0],l=0,f=e.length;l<f;){for(o=s.length;o--;s[o]*=t);for(s[0]+=n.indexOf(e.charAt(l++)),i=0;i<s.length;i++)s[i]>r-1&&(null==s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/r|0,s[i]%=r)}return s.reverse()}return function(r,n,i,o,s){var l,a,u,c,h,g,y,w,m=r.indexOf("."),b=p,v=d;for(m>=0&&(c=k,k=0,r=r.replace(".",""),g=(w=new E(n)).pow(r.length-m),k=c,w.c=t($(j(g.c),g.e,"0"),10,i,e),w.e=w.c.length),u=c=(y=t(r,n,i,s?(l=x,e):(l=e,x))).length;0==y[--c];y.pop());if(!y[0])return l.charAt(0);if(m<0?--u:(g.c=y,g.e=u,g.s=o,y=(g=f(g,w,b,v,i)).c,h=g.r,u=g.e),m=y[a=u+b+1],c=i/2,h=h||a<0||null!=y[a+1],h=v<4?(null!=m||h)&&(0==v||v==(g.s<0?3:2)):m>c||m==c&&(4==v||h||6==v&&1&y[a-1]||v==(g.s<0?8:7)),a<1||!y[0])r=h?$(l.charAt(1),-b,l.charAt(0)):l.charAt(0);else{if(y.length=a,h)for(--i;++y[--a]>i;)y[a]=0,a||(++u,y=[1].concat(y));for(c=y.length;!y[--c];);for(m=0,r="";m<=c;r+=l.charAt(y[m++]));r=$(r,u,l.charAt(0))}return r}}(),f=function(){function e(e,t,r){var n,i,o,s,l=0,f=e.length,a=t%1e7,u=t/1e7|0;for(e=e.slice();f--;)n=u*(o=e[f]%1e7)+(s=e[f]/1e7|0)*a,l=((i=a*o+n%1e7*1e7+l)/r|0)+(n/1e7|0)+u*s,e[f]=i%r;return l&&(e=[l].concat(e)),e}function t(e,t,r,n){var i,o;if(r!=n)o=r>n?1:-1;else for(i=o=0;i<r;i++)if(e[i]!=t[i]){o=e[i]>t[i]?1:-1;break}return o}function r(e,t,r,n){for(var i=0;r--;)e[r]-=i,i=+(e[r]<t[r]),e[r]=i*n+e[r]-t[r];for(;!e[0]&&e.length>1;e.splice(0,1));}return function(n,i,o,s,l){var f,a,u,c,h,p,d,g,y,w,m,b,v,k,A,x,O,N=n.s==i.s?1:-1,M=n.c,S=i.c;if(!M||!M[0]||!S||!S[0])return new E(!n.s||!i.s||(M?S&&M[0]==S[0]:!S)?NaN:M&&0==M[0]||!S?0*N:N/0);for(y=(g=new E(N)).c=[],N=o+(a=n.e-i.e)+1,l||(l=1e14,a=B(n.e/14)-B(i.e/14),N=N/14|0),u=0;S[u]==(M[u]||0);u++);if(S[u]>(M[u]||0)&&a--,N<0)y.push(1),c=!0;else{for(k=M.length,x=S.length,u=0,N+=2,(h=_(l/(S[0]+1)))>1&&(S=e(S,h,l),M=e(M,h,l),x=S.length,k=M.length),v=x,m=(w=M.slice(0,x)).length;m<x;w[m++]=0);O=[0].concat(O=S.slice()),A=S[0],S[1]>=l/2&&A++;do{if(h=0,(f=t(S,w,x,m))<0){if(b=w[0],x!=m&&(b=b*l+(w[1]||0)),(h=_(b/A))>1)for(h>=l&&(h=l-1),d=(p=e(S,h,l)).length,m=w.length;1==t(p,w,d,m);)h--,r(p,x<d?O:S,d,l),d=p.length,f=1;else 0==h&&(f=h=1),d=(p=S.slice()).length;if(d<m&&(p=[0].concat(p)),r(w,p,m,l),m=w.length,-1==f)for(;1>t(S,w,x,m);)h++,r(w,x<m?O:S,m,l),m=w.length}else 0===f&&(h++,w=[0]);y[u++]=h,w[0]?w[m++]=M[v]||0:(w=[M[v]],m=1)}while((v++<k||null!=w[0])&&N--);c=null!=w[0],y[0]||y.splice(0,1)}if(1e14==l){for(u=1,N=y[0];N>=10;N/=10,u++);q(g,o+(g.e=u+14*a-1)+1,s,c)}else g.e=a,g.r=+c;return g}}(),n=/^(-?)0([xbo])(?=\w[\w.]*$)/i,i=/^([^.]+)\.$/,o=/^\.([^.]+)$/,s=/^-?(Infinity|NaN)$/,l=/^\s*\+(?=[\w.])|^\s+|\s+$/g,u=function(e,t,r,f){var a,u=r?t:t.replace(l,"");if(s.test(u))e.s=isNaN(u)?null:u<0?-1:1;else{if(!r&&(u=u.replace(n,function(e,t,r){return a="x"==(r=r.toLowerCase())?16:"b"==r?2:8,f&&f!=a?e:t}),f&&(a=f,u=u.replace(i,"$1").replace(o,"0.$1")),t!=u))return new E(u,a);if(E.DEBUG)throw Error(I+"Not a"+(f?" base "+f:"")+" number: "+t);e.s=null}e.c=e.e=null},c.absoluteValue=c.abs=function(){var e=new E(this);return e.s<0&&(e.s=1),e},c.comparedTo=function(e,t){return P(this,new E(e,t))},c.decimalPlaces=c.dp=function(e,t){var r,n,i;if(null!=e)return T(e,0,1e9),null==t?t=d:T(t,0,8),q(new E(this),e+this.e+1,t);if(!(r=this.c))return null;if(n=((i=r.length-1)-B(this.e/14))*14,i=r[i])for(;i%10==0;i/=10,n--);return n<0&&(n=0),n},c.dividedBy=c.div=function(e,t){return f(this,new E(e,t),p,d)},c.dividedToIntegerBy=c.idiv=function(e,t){return f(this,new E(e,t),0,1)},c.exponentiatedBy=c.pow=function(e,t){var r,n,i,o,s,l,f,a,u,c=this;if((e=new E(e)).c&&!e.isInteger())throw Error(I+"Exponent not an integer: "+z(e));if(null!=t&&(t=new E(t)),l=e.e>14,!c.c||!c.c[0]||1==c.c[0]&&!c.e&&1==c.c.length||!e.c||!e.c[0])return u=new E(Math.pow(+z(c),l?e.s*(2-C(e)):+z(e))),t?u.mod(t):u;if(f=e.s<0,t){if(t.c?!t.c[0]:!t.s)return new E(NaN);(n=!f&&c.isInteger()&&t.isInteger())&&(c=c.mod(t))}else{if(e.e>9&&(c.e>0||c.e<-1||(0==c.e?c.c[0]>1||l&&c.c[1]>=24e7:c.c[0]<8e13||l&&c.c[0]<=9999975e7)))return o=c.s<0&&C(e)?-0:0,c.e>-1&&(o=1/o),new E(f?1/o:o);k&&(o=R(k/14+2))}for(l?(r=new E(.5),f&&(e.s=1),a=C(e)):a=(i=Math.abs(+z(e)))%2,u=new E(h);;){if(a){if(!(u=u.times(c)).c)break;o?u.c.length>o&&(u.c.length=o):n&&(u=u.mod(t))}if(i){if(0===(i=_(i/2)))break;a=i%2}else if(q(e=e.times(r),e.e+1,1),e.e>14)a=C(e);else{if(0==(i=+z(e)))break;a=i%2}c=c.times(c),o?c.c&&c.c.length>o&&(c.c.length=o):n&&(c=c.mod(t))}return n?u:(f&&(u=h.div(u)),t?u.mod(t):o?q(u,k,d,s):u)},c.integerValue=function(e){var t=new E(this);return null==e?e=d:T(e,0,8),q(t,t.e+1,e)},c.isEqualTo=c.eq=function(e,t){return 0===P(this,new E(e,t))},c.isFinite=function(){return!!this.c},c.isGreaterThan=c.gt=function(e,t){return P(this,new E(e,t))>0},c.isGreaterThanOrEqualTo=c.gte=function(e,t){return 1===(t=P(this,new E(e,t)))||0===t},c.isInteger=function(){return!!this.c&&B(this.e/14)>this.c.length-2},c.isLessThan=c.lt=function(e,t){return 0>P(this,new E(e,t))},c.isLessThanOrEqualTo=c.lte=function(e,t){return -1===(t=P(this,new E(e,t)))||0===t},c.isNaN=function(){return!this.s},c.isNegative=function(){return this.s<0},c.isPositive=function(){return this.s>0},c.isZero=function(){return!!this.c&&0==this.c[0]},c.minus=function(e,t){var r,n,i,o,s=this.s;if(t=(e=new E(e,t)).s,!s||!t)return new E(NaN);if(s!=t)return e.s=-t,this.plus(e);var l=this.e/14,f=e.e/14,a=this.c,u=e.c;if(!l||!f){if(!a||!u)return a?(e.s=-t,e):new E(u?this:NaN);if(!a[0]||!u[0])return u[0]?(e.s=-t,e):new E(a[0]?this:3==d?-0:0)}if(l=B(l),f=B(f),a=a.slice(),s=l-f){for((o=s<0)?(s=-s,i=a):(f=l,i=u),i.reverse(),t=s;t--;i.push(0));i.reverse()}else for(n=(o=(s=a.length)<(t=u.length))?s:t,s=t=0;t<n;t++)if(a[t]!=u[t]){o=a[t]<u[t];break}if(o&&(i=a,a=u,u=i,e.s=-e.s),(t=(n=u.length)-(r=a.length))>0)for(;t--;a[r++]=0);for(t=1e14-1;n>s;){if(a[--n]<u[n]){for(r=n;r&&!a[--r];a[r]=t);--a[r],a[n]+=1e14}a[n]-=u[n]}for(;0==a[0];a.splice(0,1),--f);return a[0]?F(e,a,f):(e.s=3==d?-1:1,e.c=[e.e=0],e)},c.modulo=c.mod=function(e,t){var r,n;return(e=new E(e,t),this.c&&e.s&&(!e.c||e.c[0]))?e.c&&(!this.c||this.c[0])?(9==v?(n=e.s,e.s=1,r=f(this,e,0,3),e.s=n,r.s*=n):r=f(this,e,0,v),(e=this.minus(r.times(e))).c[0]||1!=v||(e.s=this.s),e):new E(this):new E(NaN)},c.multipliedBy=c.times=function(e,t){var r,n,i,o,s,l,f,a,u,c,h,p,d,g=this.c,y=(e=new E(e,t)).c;if(!g||!y||!g[0]||!y[0])return this.s&&e.s&&(!g||g[0]||y)&&(!y||y[0]||g)?(e.s*=this.s,g&&y?(e.c=[0],e.e=0):e.c=e.e=null):e.c=e.e=e.s=null,e;for(n=B(this.e/14)+B(e.e/14),e.s*=this.s,(f=g.length)<(c=y.length)&&(d=g,g=y,y=d,i=f,f=c,c=i),i=f+c,d=[];i--;d.push(0));for(i=c;--i>=0;){for(r=0,h=y[i]%1e7,p=y[i]/1e7|0,o=i+(s=f);o>i;)l=p*(a=g[--s]%1e7)+(u=g[s]/1e7|0)*h,r=((a=h*a+l%1e7*1e7+d[o]+r)/1e14|0)+(l/1e7|0)+p*u,d[o--]=a%1e14;d[o]=r}return r?++n:d.splice(0,1),F(e,d,n)},c.negated=function(){var e=new E(this);return e.s=-e.s||null,e},c.plus=function(e,t){var r,n=this.s;if(t=(e=new E(e,t)).s,!n||!t)return new E(NaN);if(n!=t)return e.s=-t,this.minus(e);var i=this.e/14,o=e.e/14,s=this.c,l=e.c;if(!i||!o){if(!s||!l)return new E(n/0);if(!s[0]||!l[0])return l[0]?e:new E(s[0]?this:0*n)}if(i=B(i),o=B(o),s=s.slice(),n=i-o){for(n>0?(o=i,r=l):(n=-n,r=s),r.reverse();n--;r.push(0));r.reverse()}for((n=s.length)-(t=l.length)<0&&(r=l,l=s,s=r,t=n),n=0;t;)n=(s[--t]=s[t]+l[t]+n)/1e14|0,s[t]=1e14===s[t]?0:s[t]%1e14;return n&&(s=[n].concat(s),++o),F(e,s,o)},c.precision=c.sd=function(e,t){var r,n,i;if(null!=e&&!!e!==e)return T(e,1,1e9),null==t?t=d:T(t,0,8),q(new E(this),e,t);if(!(r=this.c))return null;if(n=14*(i=r.length-1)+1,i=r[i]){for(;i%10==0;i/=10,n--);for(i=r[0];i>=10;i/=10,n++);}return e&&this.e+1>n&&(n=this.e+1),n},c.shiftedBy=function(e){return T(e,-0x1fffffffffffff,0x1fffffffffffff),this.times("1e"+e)},c.squareRoot=c.sqrt=function(){var e,t,r,n,i,o=this.c,s=this.s,l=this.e,a=p+4,u=new E("0.5");if(1!==s||!o||!o[0])return new E(!s||s<0&&(!o||o[0])?NaN:o?this:1/0);if(0==(s=Math.sqrt(+z(this)))||s==1/0?(((t=j(o)).length+l)%2==0&&(t+="0"),s=Math.sqrt(+t),l=B((l+1)/2)-(l<0||l%2),r=new E(t=s==1/0?"5e"+l:(t=s.toExponential()).slice(0,t.indexOf("e")+1)+l)):r=new E(s+""),r.c[0]){for((s=(l=r.e)+a)<3&&(s=0);;)if(i=r,r=u.times(i.plus(f(this,i,a,1))),j(i.c).slice(0,s)===(t=j(r.c)).slice(0,s)){if(r.e<l&&--s,"9999"!=(t=t.slice(s-3,s+1))&&(n||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(q(r,r.e+p+2,1),e=!r.times(r).eq(this));break}if(!n&&(q(i,i.e+p+2,0),i.times(i).eq(this))){r=i;break}a+=4,s+=4,n=1}}return q(r,r.e+p+1,d,e)},c.toExponential=function(e,t){return null!=e&&(T(e,0,1e9),e++),N(this,e,t,1)},c.toFixed=function(e,t){return null!=e&&(T(e,0,1e9),e=e+this.e+1),N(this,e,t)},c.toFormat=function(e,t,r){var n;if(null==r)null!=e&&t&&"object"==typeof t?(r=t,t=null):e&&"object"==typeof e?(r=e,e=t=null):r=A;else if("object"!=typeof r)throw Error(I+"Argument not an object: "+r);if(n=this.toFixed(e,t),this.c){var i,o=n.split("."),s=+r.groupSize,l=+r.secondaryGroupSize,f=r.groupSeparator||"",a=o[0],u=o[1],c=this.s<0,h=c?a.slice(1):a,p=h.length;if(l&&(i=s,s=l,l=i,p-=i),s>0&&p>0){for(i=p%s||s,a=h.substr(0,i);i<p;i+=s)a+=f+h.substr(i,s);l>0&&(a+=f+h.slice(i)),c&&(a="-"+a)}n=u?a+(r.decimalSeparator||"")+((l=+r.fractionGroupSize)?u.replace(RegExp("\\d{"+l+"}\\B","g"),"$&"+(r.fractionGroupSeparator||"")):u):a}return(r.prefix||"")+n+(r.suffix||"")},c.toFraction=function(e){var t,r,n,i,o,s,l,a,u,c,p,g,y=this.c;if(null!=e&&(!(l=new E(e)).isInteger()&&(l.c||1!==l.s)||l.lt(h)))throw Error(I+"Argument "+(l.isInteger()?"out of range: ":"not an integer: ")+z(l));if(!y)return new E(this);for(t=new E(h),u=r=new E(h),n=a=new E(h),g=j(y),o=t.e=g.length-this.e-1,t.c[0]=U[(s=o%14)<0?14+s:s],e=!e||l.comparedTo(t)>0?o>0?t:u:l,s=m,m=1/0,l=new E(g),a.c[0]=0;c=f(l,t,0,1),1!=(i=r.plus(c.times(n))).comparedTo(e);)r=n,n=i,u=a.plus(c.times(i=u)),a=i,t=l.minus(c.times(i=t)),l=i;return i=f(e.minus(r),n,0,1),a=a.plus(i.times(u)),r=r.plus(i.times(n)),a.s=u.s=this.s,o*=2,p=1>f(u,n,o,d).minus(this).abs().comparedTo(f(a,r,o,d).minus(this).abs())?[u,n]:[a,r],m=s,p},c.toNumber=function(){return+z(this)},c.toPrecision=function(e,t){return null!=e&&T(e,1,1e9),N(this,e,t,2)},c.toString=function(e){var t,r=this,n=r.s,i=r.e;return null===i?n?(t="Infinity",n<0&&(t="-"+t)):t="NaN":(null==e?t=i<=g||i>=y?D(j(r.c),i):$(j(r.c),i,"0"):10===e&&O?t=$(j((r=q(new E(r),p+i+1,d)).c),r.e,"0"):(T(e,2,x.length,"Base"),t=a($(j(r.c),i,"0"),10,e,n,!0)),n<0&&r.c[0]&&(t="-"+t)),t},c.valueOf=c.toJSON=function(){return z(this)},c._isBigNumber=!0,c[Symbol.toStringTag]="BigNumber",c[Symbol.for("nodejs.util.inspect.custom")]=c.valueOf,null!=t&&E.set(t),E}();let q=24,z="u">typeof globalThis&&globalThis.crypto&&"function"==typeof globalThis.crypto.getRandomValues?()=>{let e=new Uint32Array(1);return globalThis.crypto.getRandomValues(e),e[0]/0x100000000}:Math.random,V=(e=4,t=z)=>{let r="";for(;r.length<e;)r+=Math.floor(36*t()).toString(36);return r},G=(e="")=>(function(e){let t=new F(0);for(let r of e.values())t=t.multipliedBy(256).plus(r);return t})(N(new TextEncoder().encode(e))).toString(36).slice(1),H=Array.from({length:26},(e,t)=>String.fromCharCode(t+97)),X=({globalObj:e="u">typeof global?global:"u">typeof window?window:{},random:t=z}={})=>{let r=Object.keys(e).toString();return G(r.length?r+V(32,t):V(32,t)).substring(0,32)},W=e=>()=>e++,Y=0x1c6b1f1f,Z=(M=({random:e=z,counter:t=W(Math.floor(e()*Y)),length:r=q,fingerprint:n=X({random:e})}={})=>{if(r>32)throw Error(`Length must be between 2 and 32. Received: ${r}`);return function(){let i=H[Math.floor(e()*H.length)],o=Date.now().toString(36),s=t().toString(36),l=V(r,e),f=`${o+l+s+n}`;return`${i+G(f).substring(1,r)}`}},()=>(n||(n=M()),n()))}}]);
|