@mcp-graph-workflow/mcp-graph 5.6.0 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/api/routes/code-graph.d.ts.map +1 -1
  2. package/dist/api/routes/code-graph.js +4 -1
  3. package/dist/api/routes/code-graph.js.map +1 -1
  4. package/dist/core/code/code-indexer.d.ts.map +1 -1
  5. package/dist/core/code/code-indexer.js +17 -2
  6. package/dist/core/code/code-indexer.js.map +1 -1
  7. package/dist/core/code/code-types.d.ts +1 -0
  8. package/dist/core/code/code-types.d.ts.map +1 -1
  9. package/dist/core/code/code-types.js.map +1 -1
  10. package/dist/core/code/ts-analyzer.d.ts +6 -0
  11. package/dist/core/code/ts-analyzer.d.ts.map +1 -1
  12. package/dist/core/code/ts-analyzer.js +9 -0
  13. package/dist/core/code/ts-analyzer.js.map +1 -1
  14. package/dist/web/dashboard/dist/assets/{benchmark-tab-WCcv55oB.js → benchmark-tab-BoMsoQjO.js} +1 -1
  15. package/dist/web/dashboard/dist/assets/{context-tab-CYnMjkHN.js → context-tab-BLT4qQ77.js} +1 -1
  16. package/dist/web/dashboard/dist/assets/{gitnexus-tab-Dj0DERUy.js → gitnexus-tab-DDw7DUED.js} +4 -4
  17. package/dist/web/dashboard/dist/assets/{graph-tab-tI93ZxxW.js → graph-tab-DG9Q6nko.js} +1 -1
  18. package/dist/web/dashboard/dist/assets/{graph-utils-DeQEwmsr.js → graph-utils-BpYHKE87.js} +1 -1
  19. package/dist/web/dashboard/dist/assets/{index-DKvjo_C5.css → index-Cu23WCcu.css} +1 -1
  20. package/dist/web/dashboard/dist/assets/{index-B1PLsGu1.js → index-DtkPX5ZZ.js} +2 -2
  21. package/dist/web/dashboard/dist/assets/{index-NmopQGmQ.js → index-F9dY4AG_.js} +1 -1
  22. package/dist/web/dashboard/dist/assets/{insights-tab-X7u4J-xv.js → insights-tab-YN7G6mjm.js} +1 -1
  23. package/dist/web/dashboard/dist/assets/{journey-tab-Cpz6_3mB.js → journey-tab-BcweuR82.js} +1 -1
  24. package/dist/web/dashboard/dist/assets/{logs-tab-QB__4Xdl.js → logs-tab-BjdAURdy.js} +1 -1
  25. package/dist/web/dashboard/dist/assets/{memories-tab-Dry9wz7q.js → memories-tab-CQ2xM2aw.js} +1 -1
  26. package/dist/web/dashboard/dist/assets/{prd-backlog-tab-OXTksZKv.js → prd-backlog-tab-CIeCpE1a.js} +1 -1
  27. package/dist/web/dashboard/dist/assets/{siebel-tab-x7OCuCmb.js → siebel-tab-bj5CT4-Z.js} +1 -1
  28. package/dist/web/dashboard/dist/assets/{skills-tab-DeUEKmpZ.js → skills-tab-Bgk72mKO.js} +1 -1
  29. package/dist/web/dashboard/dist/assets/{style-C-e8BTyP.js → style-Da3qWU01.js} +1 -1
  30. package/dist/web/dashboard/dist/index.html +2 -2
  31. package/package.json +13 -3
@@ -1 +1 @@
1
- import{r as t,j as e,a as le}from"./index-B1PLsGu1.js";import{u as ne,a as ce,i as de,B as ie,C as xe}from"./style-C-e8BTyP.js";import{b as ue,a as pe,g as W,t as me,s as be,c as he,d as ve,W as fe,e as ge,N as ye}from"./graph-utils-DeQEwmsr.js";import{A as je,S as L,a as Ne,N as _,E as Ce}from"./constants-z0QkAiYv.js";import"./index-NmopQGmQ.js";const ke=t.memo(function({statuses:b,types:h,direction:j,onStatusToggle:v,onTypeToggle:m,onDirectionChange:n,onClear:u,visibleNodeCount:d,totalNodeCount:i,onExpandAll:N,onCollapseAll:p}){return e.jsxs("div",{className:"flex flex-wrap items-center gap-3 px-4 py-2 border-b border-[var(--color-border)] bg-[var(--color-bg-secondary)] text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-[var(--color-text-muted)]",children:"Status:"}),je.map(l=>e.jsxs("label",{className:"flex items-center gap-1 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:b.has(l),onChange:()=>v(l),className:"w-3 h-3"}),e.jsx("span",{className:"w-2 h-2 rounded-full inline-block",style:{background:L[l]}}),e.jsx("span",{children:l.replace("_"," ")})]},l))]}),e.jsx("div",{className:"w-px h-4 bg-[var(--color-border)]"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-[var(--color-text-muted)]",children:"Type:"}),Ne.map(l=>e.jsxs("label",{className:"flex items-center gap-1 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:h.has(l),onChange:()=>m(l),className:"w-3 h-3"}),e.jsx("span",{className:"w-2 h-2 rounded-full inline-block",style:{background:_[l]}}),e.jsx("span",{children:l.replace("_"," ")})]},l))]}),e.jsx("div",{className:"w-px h-4 bg-[var(--color-border)]"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-[var(--color-text-muted)]",children:"Layout:"}),e.jsxs("select",{value:j,onChange:l=>n(l.target.value),className:"bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-1 py-0.5 text-xs",children:[e.jsx("option",{value:"TB",children:"Top → Down"}),e.jsx("option",{value:"LR",children:"Left → Right"})]})]}),e.jsx("div",{className:"w-px h-4 bg-[var(--color-border)]"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("button",{onClick:N,className:"px-2 py-0.5 rounded border border-[var(--color-border)] hover:bg-[var(--color-bg-tertiary)] transition-colors",title:i>100?`Warning: ${i} nodes — may be slow`:"Expand all nodes",children:"Expand All"}),e.jsx("button",{onClick:p,className:"px-2 py-0.5 rounded border border-[var(--color-border)] hover:bg-[var(--color-bg-tertiary)] transition-colors",children:"Collapse All"})]}),e.jsx("div",{className:"w-px h-4 bg-[var(--color-border)]"}),e.jsxs("span",{className:"text-[var(--color-text-muted)]",children:["Showing ",d," of ",i]}),e.jsx("button",{onClick:u,className:"text-[var(--color-text-muted)] hover:text-[var(--color-text)] underline",children:"Clear"})]})}),Se=t.memo(function({tree:b,expandedIds:h,selectedNodeId:j,onToggleExpand:v,onSelectNode:m}){const[n,u]=t.useState(!1),d=t.useCallback(()=>u(i=>!i),[]);return n?e.jsx("div",{className:"w-8 border-r border-[var(--color-border)] bg-[var(--color-bg-secondary)] flex flex-col items-center pt-2",children:e.jsx("button",{onClick:d,className:"text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text)] p-1",title:"Show tree panel",children:"▸"})}):e.jsxs("div",{className:"w-64 border-r border-[var(--color-border)] bg-[var(--color-bg-secondary)] flex flex-col min-h-0",children:[e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b border-[var(--color-border)]",children:[e.jsx("span",{className:"text-xs font-medium text-[var(--color-text-muted)]",children:"Hierarchy"}),e.jsx("button",{onClick:d,className:"text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text)]",title:"Collapse panel",children:"◂"})]}),e.jsx("div",{className:"overflow-y-auto flex-1 py-1",children:b.length===0?e.jsx("div",{className:"px-3 py-4 text-xs text-[var(--color-text-muted)] text-center",children:"No nodes"}):b.map(i=>e.jsx($,{item:i,depth:0,expandedIds:h,selectedNodeId:j,onToggleExpand:v,onSelectNode:m},i.node.id))})]})});function $({item:o,depth:b,expandedIds:h,selectedNodeId:j,onToggleExpand:v,onSelectNode:m}){const{node:n,children:u}=o,d=h.has(n.id),i=j===n.id,N=u.length>0,p=L[n.status]||"#9e9e9e",l=_[n.type]||"#6c757d",g=t.useCallback(a=>{a.stopPropagation(),v(n.id)},[n.id,v]),C=t.useCallback(()=>{m(n.id)},[n.id,m]);return e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:C,className:`w-full text-left flex items-center gap-1 px-2 py-1 text-xs hover:bg-[var(--color-bg-tertiary)] transition-colors ${i?"bg-[var(--color-bg-tertiary)] font-semibold":""}`,style:{paddingLeft:`${b*16+8}px`},children:[N?e.jsx("span",{onClick:g,className:"w-4 text-center text-[var(--color-text-muted)] hover:text-[var(--color-text)] cursor-pointer shrink-0",children:d?"▾":"▸"}):e.jsx("span",{className:"w-4 shrink-0"}),e.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{background:p},title:n.status.replace("_"," ")}),e.jsx("span",{className:"text-[9px] px-1 rounded shrink-0",style:{background:`${l}20`,color:l},children:n.type.slice(0,3)}),e.jsx("span",{className:"truncate",children:n.title}),N&&e.jsx("span",{className:"text-[9px] text-[var(--color-text-muted)] ml-auto shrink-0",children:u.length})]}),d&&u.map(a=>e.jsx($,{item:a,depth:b+1,expandedIds:h,selectedNodeId:j,onToggleExpand:v,onSelectNode:m},a.node.id))]})}const I=50,we=t.memo(function({nodes:b,allNodes:h=[],onNodeClick:j}){const v=t.useMemo(()=>{const s=new Map;for(const f of h)s.set(f.id,f.title);return s},[h]),[m,n]=t.useState("priority"),[u,d]=t.useState("asc"),[i,N]=t.useState(""),[p,l]=t.useState(0),g=t.useMemo(()=>{if(!i)return b;const s=i.toLowerCase();return b.filter(f=>f.title.toLowerCase().includes(s)||f.type.toLowerCase().includes(s)||f.status.toLowerCase().includes(s)||(f.sprint||"").toLowerCase().includes(s))},[b,i]),C=t.useMemo(()=>[...g].sort((s,f)=>{const w=s[m]??"",E=f[m]??"",y=typeof w=="number"?w-E:String(w).localeCompare(String(E));return u==="asc"?y:-y}),[g,m,u]),a=Math.max(1,Math.ceil(C.length/I)),S=t.useMemo(()=>C.slice(p*I,(p+1)*I),[C,p]),k=s=>{m===s?d(f=>f==="asc"?"desc":"asc"):(n(s),d("asc"))},T=[{key:"title",label:"Title"},{key:"type",label:"Type"},{key:"status",label:"Status"},{key:"priority",label:"Priority"},{key:"xpSize",label:"Size"},{key:"sprint",label:"Sprint"},{key:"parentId",label:"Parent"}];return e.jsxs("div",{className:"border-t border-[var(--color-border)]",children:[e.jsx("div",{className:"px-4 py-2 bg-[var(--color-bg-secondary)]",children:e.jsx("input",{type:"text",placeholder:"Search nodes...",value:i,onChange:s=>N(s.target.value),className:"w-full max-w-xs px-2 py-1 text-sm border border-[var(--color-border)] rounded bg-[var(--color-bg)]"})}),e.jsx("div",{className:"overflow-x-auto max-h-64",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsx("tr",{className:"bg-[var(--color-bg-tertiary)]",children:T.map(s=>e.jsxs("th",{onClick:()=>k(s.key),className:"px-3 py-1.5 text-left text-xs font-medium text-[var(--color-text-muted)] cursor-pointer hover:text-[var(--color-text)]",children:[s.label,m===s.key&&(u==="asc"?" ↑":" ↓")]},s.key))})}),e.jsx("tbody",{children:S.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:7,className:"px-3 py-4 text-center text-[var(--color-text-muted)]",children:"No nodes found"})}):S.map(s=>e.jsxs("tr",{onClick:()=>j(s),className:"border-t border-[var(--color-border)] hover:bg-[var(--color-bg-secondary)] cursor-pointer",children:[e.jsx("td",{className:"px-3 py-1.5 max-w-[200px] truncate",children:s.title}),e.jsx("td",{className:"px-3 py-1.5",children:e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded font-medium",style:{background:`${_[s.type]}20`,color:_[s.type]},children:s.type})}),e.jsx("td",{className:"px-3 py-1.5",children:e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{background:`${L[s.status]}20`,color:L[s.status]},children:s.status.replace("_"," ")})}),e.jsx("td",{className:"px-3 py-1.5 text-center",children:s.priority}),e.jsx("td",{className:"px-3 py-1.5 text-center",children:s.xpSize||"-"}),e.jsx("td",{className:"px-3 py-1.5",children:s.sprint||"-"}),e.jsx("td",{className:"px-3 py-1.5 max-w-[150px] truncate text-[var(--color-text-muted)]",children:s.parentId?v.get(s.parentId)??"-":"-"})]},s.id))})]})}),a>1&&e.jsxs("div",{className:"flex items-center justify-between px-4 py-1.5 bg-[var(--color-bg-secondary)] border-t border-[var(--color-border)] text-xs text-[var(--color-text-muted)]",children:[e.jsxs("span",{children:[C.length," nodes"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{disabled:p===0,onClick:()=>l(s=>Math.max(0,s-1)),className:"px-2 py-0.5 rounded border border-[var(--color-border)] disabled:opacity-30",children:"Prev"}),e.jsxs("span",{children:[p+1,"/",a]}),e.jsx("button",{disabled:p>=a-1,onClick:()=>l(s=>Math.min(a-1,s+1)),className:"px-2 py-0.5 rounded border border-[var(--color-border)] disabled:opacity-30",children:"Next"})]})]})]})}),Te=["depends_on","blocks","parent_of","child_of","related_to","priority_over","implements","derived_from"];function Ee({fromId:o,toId:b,fromTitle:h,toTitle:j,onCreated:v,onCancel:m}){const[n,u]=t.useState("depends_on"),[d,i]=t.useState(""),[N,p]=t.useState(!1),[l,g]=t.useState(null),C=t.useCallback(async()=>{p(!0),g(null);try{await le.createEdge({from:o,to:b,relationType:n,reason:d.trim()||void 0}),v()}catch(a){g(a instanceof Error?a.message:"Failed to create edge")}finally{p(!1)}},[o,b,n,d,v]);return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:e.jsxs("div",{className:"bg-[var(--color-bg)] border border-[var(--color-border)] rounded-lg shadow-xl w-96 p-4",children:[e.jsx("h3",{className:"text-sm font-bold mb-3",children:"Create Relationship"}),e.jsxs("div",{className:"space-y-3 text-sm",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-[var(--color-text-muted)] block mb-1",children:"From"}),e.jsx("div",{className:"text-xs bg-[var(--color-bg-tertiary)] px-2 py-1.5 rounded truncate",children:h??o})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-[var(--color-text-muted)] block mb-1",children:"To"}),e.jsx("div",{className:"text-xs bg-[var(--color-bg-tertiary)] px-2 py-1.5 rounded truncate",children:j??b})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-[var(--color-text-muted)] block mb-1",children:"Relation Type"}),e.jsx("select",{value:n,onChange:a=>u(a.target.value),className:"w-full text-xs px-2 py-1.5 rounded bg-[var(--color-bg-tertiary)] border border-[var(--color-border)] focus:outline-none focus:border-[var(--color-accent)]",children:Te.map(a=>{const S=Ce[a];return e.jsx("option",{value:a,children:S.label},a)})})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-[var(--color-text-muted)] block mb-1",children:"Reason (optional)"}),e.jsx("input",{type:"text",value:d,onChange:a=>i(a.target.value),placeholder:"Why this relationship exists...",className:"w-full text-xs px-2 py-1.5 rounded bg-[var(--color-bg-tertiary)] border border-[var(--color-border)] focus:outline-none focus:border-[var(--color-accent)]"})]}),l&&e.jsx("div",{className:"text-xs text-[var(--color-danger)] bg-[var(--color-bg-tertiary)] px-2 py-1.5 rounded",children:l})]}),e.jsxs("div",{className:"flex justify-end gap-2 mt-4",children:[e.jsx("button",{onClick:m,className:"text-xs px-3 py-1.5 rounded bg-[var(--color-bg-tertiary)] hover:bg-[var(--color-border)] transition-colors",children:"Cancel"}),e.jsx("button",{onClick:C,disabled:N,className:"text-xs px-3 py-1.5 rounded bg-[var(--color-accent)] text-white font-medium disabled:opacity-50 hover:opacity-90 transition-opacity",children:N?"Creating...":"Create"})]})]})})}const Le={workflowNode:ge},_e={workflowEdge:fe},Pe={hideAttribution:!0};function De({graph:o}){var R,F;const[b,h,j]=ne([]),[v,m,n]=ce([]),[u,d]=t.useState(null),[i,N]=t.useState("TB"),[p,l]=t.useState(new Set),[g,C]=t.useState(new Set),[a,S]=t.useState(new Set),[k,T]=t.useState(null),s=t.useDeferredValue(p),f=t.useDeferredValue(g),w=t.useDeferredValue(i),E=t.useRef(null),y=t.useMemo(()=>ue(o.nodes,o.edges),[o.nodes,o.edges]),G=t.useMemo(()=>pe(o.nodes,y),[o.nodes,y]),P=t.useCallback(r=>{S(x=>{const c=new Set(x);return c.has(r)?c.delete(r):c.add(r),c})},[]),V=t.useCallback(()=>{const r=new Set;for(const[x]of y)r.add(x);S(r)},[y]),B=t.useCallback(()=>{S(new Set)},[]),M=t.useCallback((r,x,c)=>{const se=W(o.nodes,a,y),z=me(se,{statuses:r,types:x},y,a,P),D=z.map(ae=>ae.id);if(be(E.current,D)&&c===w)return;E.current=D;const re=new Set(D),oe=he(o.edges,re),O=ve(z,oe,c);h(O.nodes),m(O.edges)},[o,h,m,w,a,y,P]);t.useEffect(()=>{M(s,f,w)},[o,M,s,f,w]);const H=t.useCallback((r,x)=>{d(x.data.sourceNode)},[]),Y=t.useCallback(r=>{d(r)},[]),Z=t.useCallback(r=>{const x=o.nodes.find(c=>c.id===r);x&&d(x)},[o.nodes]),K=t.useCallback(r=>{const x=o.nodes.find(c=>c.id===r);x&&d(x)},[o.nodes]),U=t.useCallback(r=>{r.source&&r.target&&r.source!==r.target&&T({fromId:r.source,toId:r.target})},[]),q=t.useCallback(()=>{T(null)},[]),J=t.useCallback(r=>{l(x=>{const c=new Set(x);return c.has(r)?c.delete(r):c.add(r),c})},[]),Q=t.useCallback(r=>{C(x=>{const c=new Set(x);return c.has(r)?c.delete(r):c.add(r),c})},[]),X=t.useCallback(()=>{l(new Set),C(new Set)},[]),A=t.useMemo(()=>W(o.nodes,a,y).filter(x=>!(p.size&&!p.has(x.status)||g.size&&!g.has(x.type))),[o.nodes,a,y,p,g]),ee=k?(R=o.nodes.find(r=>r.id===k.fromId))==null?void 0:R.title:void 0,te=k?(F=o.nodes.find(r=>r.id===k.toId))==null?void 0:F.title:void 0;return e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx(ke,{statuses:p,types:g,direction:i,onStatusToggle:J,onTypeToggle:Q,onDirectionChange:N,onClear:X,visibleNodeCount:A.length,totalNodeCount:o.nodes.length,onExpandAll:V,onCollapseAll:B}),e.jsxs("div",{className:"flex flex-1 min-h-0",children:[e.jsx(Se,{tree:G,expandedIds:a,selectedNodeId:(u==null?void 0:u.id)??null,onToggleExpand:P,onSelectNode:K}),e.jsx("div",{className:"flex-1 relative",children:o.nodes.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-[var(--color-text-muted)]",children:e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-lg mb-2",children:"No nodes in graph"}),e.jsx("p",{className:"text-sm",children:"Import a PRD to get started"})]})}):e.jsxs(de,{nodes:b,edges:v,onNodesChange:j,onEdgesChange:n,onNodeClick:H,onConnect:U,nodeTypes:Le,edgeTypes:_e,nodesDraggable:!1,nodesConnectable:!0,fitView:!0,minZoom:.1,maxZoom:2,proOptions:Pe,children:[e.jsx(ie,{gap:16,size:1}),e.jsx(xe,{showInteractive:!1})]})}),u&&e.jsx(ye,{node:u,edges:o.edges,allNodes:o.nodes,childrenMap:y,onClose:()=>d(null),onNodeNavigate:Z})]}),e.jsx(we,{nodes:A,allNodes:o.nodes,onNodeClick:Y}),k&&e.jsx(Ee,{fromId:k.fromId,toId:k.toId,fromTitle:ee,toTitle:te,onCreated:q,onCancel:()=>T(null)})]})}function Oe({graph:o}){return e.jsx("div",{className:"h-full",children:e.jsx(De,{graph:o})})}export{Oe as GraphTab};
1
+ import{r as t,j as e,a as le}from"./index-DtkPX5ZZ.js";import{u as ne,a as ce,i as de,B as ie,C as xe}from"./style-Da3qWU01.js";import{b as ue,a as pe,g as W,t as me,s as be,c as he,d as ve,W as fe,e as ge,N as ye}from"./graph-utils-BpYHKE87.js";import{A as je,S as L,a as Ne,N as _,E as Ce}from"./constants-z0QkAiYv.js";import"./index-F9dY4AG_.js";const ke=t.memo(function({statuses:b,types:h,direction:j,onStatusToggle:v,onTypeToggle:m,onDirectionChange:n,onClear:u,visibleNodeCount:d,totalNodeCount:i,onExpandAll:N,onCollapseAll:p}){return e.jsxs("div",{className:"flex flex-wrap items-center gap-3 px-4 py-2 border-b border-[var(--color-border)] bg-[var(--color-bg-secondary)] text-xs",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-[var(--color-text-muted)]",children:"Status:"}),je.map(l=>e.jsxs("label",{className:"flex items-center gap-1 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:b.has(l),onChange:()=>v(l),className:"w-3 h-3"}),e.jsx("span",{className:"w-2 h-2 rounded-full inline-block",style:{background:L[l]}}),e.jsx("span",{children:l.replace("_"," ")})]},l))]}),e.jsx("div",{className:"w-px h-4 bg-[var(--color-border)]"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-[var(--color-text-muted)]",children:"Type:"}),Ne.map(l=>e.jsxs("label",{className:"flex items-center gap-1 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:h.has(l),onChange:()=>m(l),className:"w-3 h-3"}),e.jsx("span",{className:"w-2 h-2 rounded-full inline-block",style:{background:_[l]}}),e.jsx("span",{children:l.replace("_"," ")})]},l))]}),e.jsx("div",{className:"w-px h-4 bg-[var(--color-border)]"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("span",{className:"font-medium text-[var(--color-text-muted)]",children:"Layout:"}),e.jsxs("select",{value:j,onChange:l=>n(l.target.value),className:"bg-[var(--color-bg)] border border-[var(--color-border)] rounded px-1 py-0.5 text-xs",children:[e.jsx("option",{value:"TB",children:"Top → Down"}),e.jsx("option",{value:"LR",children:"Left → Right"})]})]}),e.jsx("div",{className:"w-px h-4 bg-[var(--color-border)]"}),e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsx("button",{onClick:N,className:"px-2 py-0.5 rounded border border-[var(--color-border)] hover:bg-[var(--color-bg-tertiary)] transition-colors",title:i>100?`Warning: ${i} nodes — may be slow`:"Expand all nodes",children:"Expand All"}),e.jsx("button",{onClick:p,className:"px-2 py-0.5 rounded border border-[var(--color-border)] hover:bg-[var(--color-bg-tertiary)] transition-colors",children:"Collapse All"})]}),e.jsx("div",{className:"w-px h-4 bg-[var(--color-border)]"}),e.jsxs("span",{className:"text-[var(--color-text-muted)]",children:["Showing ",d," of ",i]}),e.jsx("button",{onClick:u,className:"text-[var(--color-text-muted)] hover:text-[var(--color-text)] underline",children:"Clear"})]})}),Se=t.memo(function({tree:b,expandedIds:h,selectedNodeId:j,onToggleExpand:v,onSelectNode:m}){const[n,u]=t.useState(!1),d=t.useCallback(()=>u(i=>!i),[]);return n?e.jsx("div",{className:"w-8 border-r border-[var(--color-border)] bg-[var(--color-bg-secondary)] flex flex-col items-center pt-2",children:e.jsx("button",{onClick:d,className:"text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text)] p-1",title:"Show tree panel",children:"▸"})}):e.jsxs("div",{className:"w-64 border-r border-[var(--color-border)] bg-[var(--color-bg-secondary)] flex flex-col min-h-0",children:[e.jsxs("div",{className:"flex items-center justify-between px-3 py-2 border-b border-[var(--color-border)]",children:[e.jsx("span",{className:"text-xs font-medium text-[var(--color-text-muted)]",children:"Hierarchy"}),e.jsx("button",{onClick:d,className:"text-xs text-[var(--color-text-muted)] hover:text-[var(--color-text)]",title:"Collapse panel",children:"◂"})]}),e.jsx("div",{className:"overflow-y-auto flex-1 py-1",children:b.length===0?e.jsx("div",{className:"px-3 py-4 text-xs text-[var(--color-text-muted)] text-center",children:"No nodes"}):b.map(i=>e.jsx($,{item:i,depth:0,expandedIds:h,selectedNodeId:j,onToggleExpand:v,onSelectNode:m},i.node.id))})]})});function $({item:o,depth:b,expandedIds:h,selectedNodeId:j,onToggleExpand:v,onSelectNode:m}){const{node:n,children:u}=o,d=h.has(n.id),i=j===n.id,N=u.length>0,p=L[n.status]||"#9e9e9e",l=_[n.type]||"#6c757d",g=t.useCallback(a=>{a.stopPropagation(),v(n.id)},[n.id,v]),C=t.useCallback(()=>{m(n.id)},[n.id,m]);return e.jsxs(e.Fragment,{children:[e.jsxs("button",{onClick:C,className:`w-full text-left flex items-center gap-1 px-2 py-1 text-xs hover:bg-[var(--color-bg-tertiary)] transition-colors ${i?"bg-[var(--color-bg-tertiary)] font-semibold":""}`,style:{paddingLeft:`${b*16+8}px`},children:[N?e.jsx("span",{onClick:g,className:"w-4 text-center text-[var(--color-text-muted)] hover:text-[var(--color-text)] cursor-pointer shrink-0",children:d?"▾":"▸"}):e.jsx("span",{className:"w-4 shrink-0"}),e.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{background:p},title:n.status.replace("_"," ")}),e.jsx("span",{className:"text-[9px] px-1 rounded shrink-0",style:{background:`${l}20`,color:l},children:n.type.slice(0,3)}),e.jsx("span",{className:"truncate",children:n.title}),N&&e.jsx("span",{className:"text-[9px] text-[var(--color-text-muted)] ml-auto shrink-0",children:u.length})]}),d&&u.map(a=>e.jsx($,{item:a,depth:b+1,expandedIds:h,selectedNodeId:j,onToggleExpand:v,onSelectNode:m},a.node.id))]})}const I=50,we=t.memo(function({nodes:b,allNodes:h=[],onNodeClick:j}){const v=t.useMemo(()=>{const s=new Map;for(const f of h)s.set(f.id,f.title);return s},[h]),[m,n]=t.useState("priority"),[u,d]=t.useState("asc"),[i,N]=t.useState(""),[p,l]=t.useState(0),g=t.useMemo(()=>{if(!i)return b;const s=i.toLowerCase();return b.filter(f=>f.title.toLowerCase().includes(s)||f.type.toLowerCase().includes(s)||f.status.toLowerCase().includes(s)||(f.sprint||"").toLowerCase().includes(s))},[b,i]),C=t.useMemo(()=>[...g].sort((s,f)=>{const w=s[m]??"",E=f[m]??"",y=typeof w=="number"?w-E:String(w).localeCompare(String(E));return u==="asc"?y:-y}),[g,m,u]),a=Math.max(1,Math.ceil(C.length/I)),S=t.useMemo(()=>C.slice(p*I,(p+1)*I),[C,p]),k=s=>{m===s?d(f=>f==="asc"?"desc":"asc"):(n(s),d("asc"))},T=[{key:"title",label:"Title"},{key:"type",label:"Type"},{key:"status",label:"Status"},{key:"priority",label:"Priority"},{key:"xpSize",label:"Size"},{key:"sprint",label:"Sprint"},{key:"parentId",label:"Parent"}];return e.jsxs("div",{className:"border-t border-[var(--color-border)]",children:[e.jsx("div",{className:"px-4 py-2 bg-[var(--color-bg-secondary)]",children:e.jsx("input",{type:"text",placeholder:"Search nodes...",value:i,onChange:s=>N(s.target.value),className:"w-full max-w-xs px-2 py-1 text-sm border border-[var(--color-border)] rounded bg-[var(--color-bg)]"})}),e.jsx("div",{className:"overflow-x-auto max-h-64",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsx("tr",{className:"bg-[var(--color-bg-tertiary)]",children:T.map(s=>e.jsxs("th",{onClick:()=>k(s.key),className:"px-3 py-1.5 text-left text-xs font-medium text-[var(--color-text-muted)] cursor-pointer hover:text-[var(--color-text)]",children:[s.label,m===s.key&&(u==="asc"?" ↑":" ↓")]},s.key))})}),e.jsx("tbody",{children:S.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:7,className:"px-3 py-4 text-center text-[var(--color-text-muted)]",children:"No nodes found"})}):S.map(s=>e.jsxs("tr",{onClick:()=>j(s),className:"border-t border-[var(--color-border)] hover:bg-[var(--color-bg-secondary)] cursor-pointer",children:[e.jsx("td",{className:"px-3 py-1.5 max-w-[200px] truncate",children:s.title}),e.jsx("td",{className:"px-3 py-1.5",children:e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded font-medium",style:{background:`${_[s.type]}20`,color:_[s.type]},children:s.type})}),e.jsx("td",{className:"px-3 py-1.5",children:e.jsx("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium",style:{background:`${L[s.status]}20`,color:L[s.status]},children:s.status.replace("_"," ")})}),e.jsx("td",{className:"px-3 py-1.5 text-center",children:s.priority}),e.jsx("td",{className:"px-3 py-1.5 text-center",children:s.xpSize||"-"}),e.jsx("td",{className:"px-3 py-1.5",children:s.sprint||"-"}),e.jsx("td",{className:"px-3 py-1.5 max-w-[150px] truncate text-[var(--color-text-muted)]",children:s.parentId?v.get(s.parentId)??"-":"-"})]},s.id))})]})}),a>1&&e.jsxs("div",{className:"flex items-center justify-between px-4 py-1.5 bg-[var(--color-bg-secondary)] border-t border-[var(--color-border)] text-xs text-[var(--color-text-muted)]",children:[e.jsxs("span",{children:[C.length," nodes"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{disabled:p===0,onClick:()=>l(s=>Math.max(0,s-1)),className:"px-2 py-0.5 rounded border border-[var(--color-border)] disabled:opacity-30",children:"Prev"}),e.jsxs("span",{children:[p+1,"/",a]}),e.jsx("button",{disabled:p>=a-1,onClick:()=>l(s=>Math.min(a-1,s+1)),className:"px-2 py-0.5 rounded border border-[var(--color-border)] disabled:opacity-30",children:"Next"})]})]})]})}),Te=["depends_on","blocks","parent_of","child_of","related_to","priority_over","implements","derived_from"];function Ee({fromId:o,toId:b,fromTitle:h,toTitle:j,onCreated:v,onCancel:m}){const[n,u]=t.useState("depends_on"),[d,i]=t.useState(""),[N,p]=t.useState(!1),[l,g]=t.useState(null),C=t.useCallback(async()=>{p(!0),g(null);try{await le.createEdge({from:o,to:b,relationType:n,reason:d.trim()||void 0}),v()}catch(a){g(a instanceof Error?a.message:"Failed to create edge")}finally{p(!1)}},[o,b,n,d,v]);return e.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",children:e.jsxs("div",{className:"bg-[var(--color-bg)] border border-[var(--color-border)] rounded-lg shadow-xl w-96 p-4",children:[e.jsx("h3",{className:"text-sm font-bold mb-3",children:"Create Relationship"}),e.jsxs("div",{className:"space-y-3 text-sm",children:[e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-[var(--color-text-muted)] block mb-1",children:"From"}),e.jsx("div",{className:"text-xs bg-[var(--color-bg-tertiary)] px-2 py-1.5 rounded truncate",children:h??o})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-[var(--color-text-muted)] block mb-1",children:"To"}),e.jsx("div",{className:"text-xs bg-[var(--color-bg-tertiary)] px-2 py-1.5 rounded truncate",children:j??b})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-[var(--color-text-muted)] block mb-1",children:"Relation Type"}),e.jsx("select",{value:n,onChange:a=>u(a.target.value),className:"w-full text-xs px-2 py-1.5 rounded bg-[var(--color-bg-tertiary)] border border-[var(--color-border)] focus:outline-none focus:border-[var(--color-accent)]",children:Te.map(a=>{const S=Ce[a];return e.jsx("option",{value:a,children:S.label},a)})})]}),e.jsxs("div",{children:[e.jsx("label",{className:"text-xs text-[var(--color-text-muted)] block mb-1",children:"Reason (optional)"}),e.jsx("input",{type:"text",value:d,onChange:a=>i(a.target.value),placeholder:"Why this relationship exists...",className:"w-full text-xs px-2 py-1.5 rounded bg-[var(--color-bg-tertiary)] border border-[var(--color-border)] focus:outline-none focus:border-[var(--color-accent)]"})]}),l&&e.jsx("div",{className:"text-xs text-[var(--color-danger)] bg-[var(--color-bg-tertiary)] px-2 py-1.5 rounded",children:l})]}),e.jsxs("div",{className:"flex justify-end gap-2 mt-4",children:[e.jsx("button",{onClick:m,className:"text-xs px-3 py-1.5 rounded bg-[var(--color-bg-tertiary)] hover:bg-[var(--color-border)] transition-colors",children:"Cancel"}),e.jsx("button",{onClick:C,disabled:N,className:"text-xs px-3 py-1.5 rounded bg-[var(--color-accent)] text-white font-medium disabled:opacity-50 hover:opacity-90 transition-opacity",children:N?"Creating...":"Create"})]})]})})}const Le={workflowNode:ge},_e={workflowEdge:fe},Pe={hideAttribution:!0};function De({graph:o}){var R,F;const[b,h,j]=ne([]),[v,m,n]=ce([]),[u,d]=t.useState(null),[i,N]=t.useState("TB"),[p,l]=t.useState(new Set),[g,C]=t.useState(new Set),[a,S]=t.useState(new Set),[k,T]=t.useState(null),s=t.useDeferredValue(p),f=t.useDeferredValue(g),w=t.useDeferredValue(i),E=t.useRef(null),y=t.useMemo(()=>ue(o.nodes,o.edges),[o.nodes,o.edges]),G=t.useMemo(()=>pe(o.nodes,y),[o.nodes,y]),P=t.useCallback(r=>{S(x=>{const c=new Set(x);return c.has(r)?c.delete(r):c.add(r),c})},[]),V=t.useCallback(()=>{const r=new Set;for(const[x]of y)r.add(x);S(r)},[y]),B=t.useCallback(()=>{S(new Set)},[]),M=t.useCallback((r,x,c)=>{const se=W(o.nodes,a,y),z=me(se,{statuses:r,types:x},y,a,P),D=z.map(ae=>ae.id);if(be(E.current,D)&&c===w)return;E.current=D;const re=new Set(D),oe=he(o.edges,re),O=ve(z,oe,c);h(O.nodes),m(O.edges)},[o,h,m,w,a,y,P]);t.useEffect(()=>{M(s,f,w)},[o,M,s,f,w]);const H=t.useCallback((r,x)=>{d(x.data.sourceNode)},[]),Y=t.useCallback(r=>{d(r)},[]),Z=t.useCallback(r=>{const x=o.nodes.find(c=>c.id===r);x&&d(x)},[o.nodes]),K=t.useCallback(r=>{const x=o.nodes.find(c=>c.id===r);x&&d(x)},[o.nodes]),U=t.useCallback(r=>{r.source&&r.target&&r.source!==r.target&&T({fromId:r.source,toId:r.target})},[]),q=t.useCallback(()=>{T(null)},[]),J=t.useCallback(r=>{l(x=>{const c=new Set(x);return c.has(r)?c.delete(r):c.add(r),c})},[]),Q=t.useCallback(r=>{C(x=>{const c=new Set(x);return c.has(r)?c.delete(r):c.add(r),c})},[]),X=t.useCallback(()=>{l(new Set),C(new Set)},[]),A=t.useMemo(()=>W(o.nodes,a,y).filter(x=>!(p.size&&!p.has(x.status)||g.size&&!g.has(x.type))),[o.nodes,a,y,p,g]),ee=k?(R=o.nodes.find(r=>r.id===k.fromId))==null?void 0:R.title:void 0,te=k?(F=o.nodes.find(r=>r.id===k.toId))==null?void 0:F.title:void 0;return e.jsxs("div",{className:"flex flex-col h-full",children:[e.jsx(ke,{statuses:p,types:g,direction:i,onStatusToggle:J,onTypeToggle:Q,onDirectionChange:N,onClear:X,visibleNodeCount:A.length,totalNodeCount:o.nodes.length,onExpandAll:V,onCollapseAll:B}),e.jsxs("div",{className:"flex flex-1 min-h-0",children:[e.jsx(Se,{tree:G,expandedIds:a,selectedNodeId:(u==null?void 0:u.id)??null,onToggleExpand:P,onSelectNode:K}),e.jsx("div",{className:"flex-1 relative",children:o.nodes.length===0?e.jsx("div",{className:"flex items-center justify-center h-full text-[var(--color-text-muted)]",children:e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-lg mb-2",children:"No nodes in graph"}),e.jsx("p",{className:"text-sm",children:"Import a PRD to get started"})]})}):e.jsxs(de,{nodes:b,edges:v,onNodesChange:j,onEdgesChange:n,onNodeClick:H,onConnect:U,nodeTypes:Le,edgeTypes:_e,nodesDraggable:!1,nodesConnectable:!0,fitView:!0,minZoom:.1,maxZoom:2,proOptions:Pe,children:[e.jsx(ie,{gap:16,size:1}),e.jsx(xe,{showInteractive:!1})]})}),u&&e.jsx(ye,{node:u,edges:o.edges,allNodes:o.nodes,childrenMap:y,onClose:()=>d(null),onNodeNavigate:Z})]}),e.jsx(we,{nodes:A,allNodes:o.nodes,onNodeClick:Y}),k&&e.jsx(Ee,{fromId:k.fromId,toId:k.toId,fromTitle:ee,toTitle:te,onCreated:q,onCancel:()=>T(null)})]})}function Oe({graph:o}){return e.jsx("div",{className:"h-full",children:e.jsx(De,{graph:o})})}export{Oe as GraphTab};
@@ -1 +1 @@
1
- var dt=Object.defineProperty;var ut=(m,l,c)=>l in m?dt(m,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[l]=c;var A=(m,l,c)=>ut(m,typeof l!="symbol"?l+"":l,c);import{r as Q,j as L,g as ct}from"./index-B1PLsGu1.js";import{H as tr,P as nr,g as ht,c as ft,E as pt}from"./style-C-e8BTyP.js";import{N as Z,S as Qe,E as H}from"./constants-z0QkAiYv.js";function an(m,l){const c=new Map,d=(i,e)=>{let o=c.get(i);o||(o=new Set,c.set(i,o)),o.add(e)};for(const i of m)i.parentId&&d(i.parentId,i.id);for(const i of l)i.relationType==="parent_of"?d(i.from,i.to):i.relationType==="child_of"&&d(i.to,i.from);const a=new Map;for(const[i,e]of c)a.set(i,[...e]);return a}function on(m,l,c){const d=new Map,a=new Set;for(const s of m)d.set(s.id,s),a.add(s.id);const i=m.filter(s=>!s.parentId||!a.has(s.parentId)),e=[],o=new Set,n=s=>{if(o.has(s))return;o.add(s);const r=d.get(s);if(r&&e.push(r),l.has(s)){const t=c.get(s)??[];for(const u of t)n(u)}};for(const s of i)n(s.id);return e}function ln(m,l){if(m.length===0)return[];const c=new Map,d=new Set;for(const n of m)c.set(n.id,n),d.add(n.id);const a=(n,s)=>{if(s.has(n))return null;s.add(n);const r=c.get(n);if(!r)return null;const t=l.get(n)??[],u=[];for(const h of t){const b=a(h,s);b&&u.push(b)}return{node:r,children:u}},i=m.filter(n=>!n.parentId||!d.has(n.parentId)),e=new Set,o=[];for(const n of i){const s=a(n.id,e);s&&o.push(s)}return o}const dn=Q.memo(function({data:l}){const c=Z[l.nodeType]||"#6c757d",d=Qe[l.status]||"#9e9e9e",a=Q.useCallback(i=>{var e;i.stopPropagation(),(e=l.onExpand)==null||e.call(l,l.sourceNode.id)},[l]);return L.jsxs(L.Fragment,{children:[L.jsx(tr,{type:"target",position:nr.Top,className:"!w-2 !h-2"}),L.jsxs("div",{className:"bg-[var(--color-bg)] border border-[var(--color-border)] rounded-lg shadow-sm hover:shadow-md transition-shadow cursor-pointer min-w-[200px]",children:[L.jsxs("div",{className:"p-2.5",children:[L.jsxs("div",{className:"flex items-center justify-between mb-1",children:[L.jsx("span",{className:"text-[10px] font-semibold uppercase px-1.5 py-0.5 rounded",style:{background:`${c}20`,color:c},children:l.nodeType}),L.jsx("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:`${d}20`,color:d},children:l.status.replace("_"," ")})]}),L.jsx("div",{className:"text-sm font-medium leading-tight line-clamp-2 mb-1",children:l.label}),L.jsxs("div",{className:"flex items-center gap-2 text-[10px] text-[var(--color-text-muted)]",children:[L.jsxs("span",{children:["P",l.priority]}),l.xpSize&&L.jsx("span",{children:l.xpSize}),l.sprint&&L.jsx("span",{children:l.sprint})]})]}),l.hasChildren&&L.jsxs("button",{onClick:a,className:"w-full flex items-center justify-center gap-1.5 py-1.5 text-xs font-medium border-t border-[var(--color-border)] text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-bg-tertiary)] transition-colors rounded-b-lg",title:l.isExpanded?"Collapse children":"Expand children",children:[L.jsx("span",{children:l.isExpanded?"▼":"▶"}),L.jsxs("span",{children:[l.childCount," ",l.childCount===1?"child":"children"]})]})]}),L.jsx(tr,{type:"source",position:nr.Bottom,className:"!w-2 !h-2"})]})}),un=Q.memo(function({id:l,sourceX:c,sourceY:d,targetX:a,targetY:i,sourcePosition:e,targetPosition:o,data:n,style:s={}}){const[r,t,u]=ht({sourceX:c,sourceY:d,sourcePosition:e,targetX:a,targetY:i,targetPosition:o}),h=(n==null?void 0:n.relationType)||"related_to",b=H[h]||H.related_to;return L.jsxs(L.Fragment,{children:[L.jsx(ft,{id:l,path:r,style:{...s,stroke:b.color,strokeDasharray:b.dashed?"5 5":void 0,strokeWidth:1.5}}),L.jsx(pt,{children:L.jsx("div",{className:"text-[9px] text-[var(--color-text-muted)] bg-[var(--color-bg)] px-1 rounded pointer-events-none absolute",style:{transform:`translate(-50%, -50%) translate(${t}px,${u}px)`},children:b.label})})]})});function mt(m,l){const c=[],d=[];for(const a of l)a.from===m&&c.push(a),a.to===m&&d.push(a);return{outgoing:c,incoming:d}}const cn=Q.memo(function({node:l,edges:c=[],allNodes:d=[],childrenMap:a,onClose:i,onNodeNavigate:e}){if(!l)return null;const o=Z[l.type]||"#6c757d",n=Qe[l.status]||"#9e9e9e",s=Q.useMemo(()=>mt(l.id,c),[l.id,c]),r=Q.useMemo(()=>{const u=new Map;for(const h of d)u.set(h.id,h);return u},[d]),t=s.outgoing.length>0||s.incoming.length>0;return L.jsxs("div",{className:"w-80 border-l border-[var(--color-border)] bg-[var(--color-bg-secondary)] overflow-y-auto p-4",children:[L.jsxs("div",{className:"flex items-center justify-between mb-3",children:[L.jsx("h3",{className:"text-sm font-bold",children:"Node Details"}),L.jsx("button",{onClick:i,className:"text-[var(--color-text-muted)] hover:text-[var(--color-text)] text-lg leading-none",children:"×"})]}),L.jsx("h4",{className:"text-base font-semibold mb-3",children:l.title}),L.jsxs("div",{className:"space-y-2 text-sm",children:[L.jsx(X,{label:"ID",children:L.jsx("code",{className:"text-xs bg-[var(--color-bg-tertiary)] px-1 rounded break-all",children:l.id})}),L.jsx(X,{label:"Type",children:L.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:`${o}20`,color:o},children:l.type})}),L.jsx(X,{label:"Status",children:L.jsx("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{background:`${n}20`,color:n},children:l.status.replace("_"," ")})}),L.jsxs(X,{label:"Priority",children:["P",l.priority]}),l.xpSize&&L.jsx(X,{label:"Size",children:l.xpSize}),l.estimateMinutes!=null&&L.jsxs(X,{label:"Estimate",children:[l.estimateMinutes,"min"]}),l.sprint&&L.jsx(X,{label:"Sprint",children:l.sprint}),l.description&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Description"}),L.jsx("p",{className:"text-xs whitespace-pre-wrap",children:l.description})]}),a&&(()=>{const u=a.get(l.id)??[];return u.length===0?null:L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsxs("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:["Children (",u.length,")"]}),L.jsx("div",{className:"space-y-1",children:u.map(h=>{const b=r.get(h);if(!b)return null;const N=Qe[b.status]||"#9e9e9e",p=Z[b.type]||"#6c757d";return L.jsxs("button",{onClick:()=>e==null?void 0:e(h),className:"w-full text-left flex items-center gap-1.5 px-1.5 py-1 rounded hover:bg-[var(--color-bg-tertiary)] transition-colors text-xs",children:[L.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{background:N}}),L.jsx("span",{className:"text-[9px] px-1 rounded shrink-0",style:{background:`${p}20`,color:p},children:b.type}),L.jsx("span",{className:"truncate font-medium",children:b.title})]},h)})})]})})(),t&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsxs("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:["Relationships (",s.outgoing.length+s.incoming.length,")"]}),L.jsxs("div",{className:"space-y-1",children:[s.outgoing.map(u=>{const h=r.get(u.to),b=H[u.relationType]||H.related_to;return L.jsx(ir,{direction:"out",label:b.label,color:b.color,targetTitle:(h==null?void 0:h.title)??u.to,targetId:u.to,onNavigate:e},u.id)}),s.incoming.map(u=>{const h=r.get(u.from),b=H[u.relationType]||H.related_to;return L.jsx(ir,{direction:"in",label:b.label,color:b.color,targetTitle:(h==null?void 0:h.title)??u.from,targetId:u.from,onNavigate:e},u.id)})]})]}),l.acceptanceCriteria&&l.acceptanceCriteria.length>0&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsxs("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:["Acceptance Criteria (",l.acceptanceCriteria.length,")"]}),L.jsx("ul",{className:"text-xs space-y-1 list-disc pl-4",children:l.acceptanceCriteria.map((u,h)=>L.jsx("li",{children:u},h))})]}),l.tags&&l.tags.length>0&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Tags"}),L.jsx("div",{className:"flex flex-wrap gap-1",children:l.tags.map(u=>L.jsx("span",{className:"text-[10px] bg-[var(--color-bg-tertiary)] px-1.5 py-0.5 rounded",children:u},u))})]}),l.sourceRef&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Source"}),L.jsxs("div",{className:"text-xs",children:[l.sourceRef.file,l.sourceRef.startLine!=null&&` (L${l.sourceRef.startLine}–${l.sourceRef.endLine??"?"})`]})]}),L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)] text-[10px] text-[var(--color-text-muted)]",children:[L.jsxs("div",{children:["Created: ",new Date(l.createdAt).toLocaleString()]}),L.jsxs("div",{children:["Updated: ",new Date(l.updatedAt).toLocaleString()]})]})]})]})});function X({label:m,children:l}){return L.jsxs("div",{className:"flex items-start justify-between gap-2",children:[L.jsx("span",{className:"text-xs text-[var(--color-text-muted)] shrink-0",children:m}),L.jsx("div",{className:"text-right",children:l})]})}function ir({direction:m,label:l,color:c,targetTitle:d,targetId:a,onNavigate:i}){const e=m==="out"?"→":"←";return L.jsxs("button",{onClick:()=>i==null?void 0:i(a),className:"w-full text-left flex items-center gap-1.5 px-1.5 py-1 rounded hover:bg-[var(--color-bg-tertiary)] transition-colors text-xs",children:[L.jsx("span",{style:{color:c},children:e}),L.jsx("span",{className:"text-[10px] text-[var(--color-text-muted)]",children:l}),L.jsx("span",{className:"truncate font-medium",children:d})]})}var ne,sr;function Je(){if(sr)return ne;sr=1;var m="\0",l="\0",c="";class d{constructor(r){A(this,"_isDirected",!0);A(this,"_isMultigraph",!1);A(this,"_isCompound",!1);A(this,"_label");A(this,"_defaultNodeLabelFn",()=>{});A(this,"_defaultEdgeLabelFn",()=>{});A(this,"_nodes",{});A(this,"_in",{});A(this,"_preds",{});A(this,"_out",{});A(this,"_sucs",{});A(this,"_edgeObjs",{});A(this,"_edgeLabels",{});A(this,"_nodeCount",0);A(this,"_edgeCount",0);A(this,"_parent");A(this,"_children");r&&(this._isDirected=Object.hasOwn(r,"directed")?r.directed:!0,this._isMultigraph=Object.hasOwn(r,"multigraph")?r.multigraph:!1,this._isCompound=Object.hasOwn(r,"compound")?r.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[l]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(r){return this._label=r,this}graph(){return this._label}setDefaultNodeLabel(r){return this._defaultNodeLabelFn=r,typeof r!="function"&&(this._defaultNodeLabelFn=()=>r),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var r=this;return this.nodes().filter(t=>Object.keys(r._in[t]).length===0)}sinks(){var r=this;return this.nodes().filter(t=>Object.keys(r._out[t]).length===0)}setNodes(r,t){var u=arguments,h=this;return r.forEach(function(b){u.length>1?h.setNode(b,t):h.setNode(b)}),this}setNode(r,t){return Object.hasOwn(this._nodes,r)?(arguments.length>1&&(this._nodes[r]=t),this):(this._nodes[r]=arguments.length>1?t:this._defaultNodeLabelFn(r),this._isCompound&&(this._parent[r]=l,this._children[r]={},this._children[l][r]=!0),this._in[r]={},this._preds[r]={},this._out[r]={},this._sucs[r]={},++this._nodeCount,this)}node(r){return this._nodes[r]}hasNode(r){return Object.hasOwn(this._nodes,r)}removeNode(r){var t=this;if(Object.hasOwn(this._nodes,r)){var u=h=>t.removeEdge(t._edgeObjs[h]);delete this._nodes[r],this._isCompound&&(this._removeFromParentsChildList(r),delete this._parent[r],this.children(r).forEach(function(h){t.setParent(h)}),delete this._children[r]),Object.keys(this._in[r]).forEach(u),delete this._in[r],delete this._preds[r],Object.keys(this._out[r]).forEach(u),delete this._out[r],delete this._sucs[r],--this._nodeCount}return this}setParent(r,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t=l;else{t+="";for(var u=t;u!==void 0;u=this.parent(u))if(u===r)throw new Error("Setting "+t+" as parent of "+r+" would create a cycle");this.setNode(t)}return this.setNode(r),this._removeFromParentsChildList(r),this._parent[r]=t,this._children[t][r]=!0,this}_removeFromParentsChildList(r){delete this._children[this._parent[r]][r]}parent(r){if(this._isCompound){var t=this._parent[r];if(t!==l)return t}}children(r=l){if(this._isCompound){var t=this._children[r];if(t)return Object.keys(t)}else{if(r===l)return this.nodes();if(this.hasNode(r))return[]}}predecessors(r){var t=this._preds[r];if(t)return Object.keys(t)}successors(r){var t=this._sucs[r];if(t)return Object.keys(t)}neighbors(r){var t=this.predecessors(r);if(t){const h=new Set(t);for(var u of this.successors(r))h.add(u);return Array.from(h.values())}}isLeaf(r){var t;return this.isDirected()?t=this.successors(r):t=this.neighbors(r),t.length===0}filterNodes(r){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var u=this;Object.entries(this._nodes).forEach(function([N,p]){r(N)&&t.setNode(N,p)}),Object.values(this._edgeObjs).forEach(function(N){t.hasNode(N.v)&&t.hasNode(N.w)&&t.setEdge(N,u.edge(N))});var h={};function b(N){var p=u.parent(N);return p===void 0||t.hasNode(p)?(h[N]=p,p):p in h?h[p]:b(p)}return this._isCompound&&t.nodes().forEach(N=>t.setParent(N,b(N))),t}setDefaultEdgeLabel(r){return this._defaultEdgeLabelFn=r,typeof r!="function"&&(this._defaultEdgeLabelFn=()=>r),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(r,t){var u=this,h=arguments;return r.reduce(function(b,N){return h.length>1?u.setEdge(b,N,t):u.setEdge(b,N),N}),this}setEdge(){var r,t,u,h,b=!1,N=arguments[0];typeof N=="object"&&N!==null&&"v"in N?(r=N.v,t=N.w,u=N.name,arguments.length===2&&(h=arguments[1],b=!0)):(r=N,t=arguments[1],u=arguments[3],arguments.length>2&&(h=arguments[2],b=!0)),r=""+r,t=""+t,u!==void 0&&(u=""+u);var p=e(this._isDirected,r,t,u);if(Object.hasOwn(this._edgeLabels,p))return b&&(this._edgeLabels[p]=h),this;if(u!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(r),this.setNode(t),this._edgeLabels[p]=b?h:this._defaultEdgeLabelFn(r,t,u);var E=o(this._isDirected,r,t,u);return r=E.v,t=E.w,Object.freeze(E),this._edgeObjs[p]=E,a(this._preds[t],r),a(this._sucs[r],t),this._in[t][p]=E,this._out[r][p]=E,this._edgeCount++,this}edge(r,t,u){var h=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,u);return this._edgeLabels[h]}edgeAsObj(){const r=this.edge(...arguments);return typeof r!="object"?{label:r}:r}hasEdge(r,t,u){var h=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,u);return Object.hasOwn(this._edgeLabels,h)}removeEdge(r,t,u){var h=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,u),b=this._edgeObjs[h];return b&&(r=b.v,t=b.w,delete this._edgeLabels[h],delete this._edgeObjs[h],i(this._preds[t],r),i(this._sucs[r],t),delete this._in[t][h],delete this._out[r][h],this._edgeCount--),this}inEdges(r,t){var u=this._in[r];if(u){var h=Object.values(u);return t?h.filter(b=>b.v===t):h}}outEdges(r,t){var u=this._out[r];if(u){var h=Object.values(u);return t?h.filter(b=>b.w===t):h}}nodeEdges(r,t){var u=this.inEdges(r,t);if(u)return u.concat(this.outEdges(r,t))}}function a(s,r){s[r]?s[r]++:s[r]=1}function i(s,r){--s[r]||delete s[r]}function e(s,r,t,u){var h=""+r,b=""+t;if(!s&&h>b){var N=h;h=b,b=N}return h+c+b+c+(u===void 0?m:u)}function o(s,r,t,u){var h=""+r,b=""+t;if(!s&&h>b){var N=h;h=b,b=N}var p={v:h,w:b};return u&&(p.name=u),p}function n(s,r){return e(s,r.v,r.w,r.name)}return ne=d,ne}var ie,ar;function bt(){return ar||(ar=1,ie="2.2.4"),ie}var se,or;function gt(){return or||(or=1,se={Graph:Je(),version:bt()}),se}var ae,lr;function vt(){if(lr)return ae;lr=1;var m=Je();ae={write:l,read:a};function l(i){var e={options:{directed:i.isDirected(),multigraph:i.isMultigraph(),compound:i.isCompound()},nodes:c(i),edges:d(i)};return i.graph()!==void 0&&(e.value=structuredClone(i.graph())),e}function c(i){return i.nodes().map(function(e){var o=i.node(e),n=i.parent(e),s={v:e};return o!==void 0&&(s.value=o),n!==void 0&&(s.parent=n),s})}function d(i){return i.edges().map(function(e){var o=i.edge(e),n={v:e.v,w:e.w};return e.name!==void 0&&(n.name=e.name),o!==void 0&&(n.value=o),n})}function a(i){var e=new m(i.options).setGraph(i.value);return i.nodes.forEach(function(o){e.setNode(o.v,o.value),o.parent&&e.setParent(o.v,o.parent)}),i.edges.forEach(function(o){e.setEdge({v:o.v,w:o.w,name:o.name},o.value)}),e}return ae}var oe,dr;function wt(){if(dr)return oe;dr=1,oe=m;function m(l){var c={},d=[],a;function i(e){Object.hasOwn(c,e)||(c[e]=!0,a.push(e),l.successors(e).forEach(i),l.predecessors(e).forEach(i))}return l.nodes().forEach(function(e){a=[],i(e),a.length&&d.push(a)}),d}return oe}var le,ur;function et(){if(ur)return le;ur=1;class m{constructor(){A(this,"_arr",[]);A(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(c){return c.key})}has(c){return Object.hasOwn(this._keyIndices,c)}priority(c){var d=this._keyIndices[c];if(d!==void 0)return this._arr[d].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(c,d){var a=this._keyIndices;if(c=String(c),!Object.hasOwn(a,c)){var i=this._arr,e=i.length;return a[c]=e,i.push({key:c,priority:d}),this._decrease(e),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var c=this._arr.pop();return delete this._keyIndices[c.key],this._heapify(0),c.key}decrease(c,d){var a=this._keyIndices[c];if(d>this._arr[a].priority)throw new Error("New priority is greater than current priority. Key: "+c+" Old: "+this._arr[a].priority+" New: "+d);this._arr[a].priority=d,this._decrease(a)}_heapify(c){var d=this._arr,a=2*c,i=a+1,e=c;a<d.length&&(e=d[a].priority<d[e].priority?a:e,i<d.length&&(e=d[i].priority<d[e].priority?i:e),e!==c&&(this._swap(c,e),this._heapify(e)))}_decrease(c){for(var d=this._arr,a=d[c].priority,i;c!==0&&(i=c>>1,!(d[i].priority<a));)this._swap(c,i),c=i}_swap(c,d){var a=this._arr,i=this._keyIndices,e=a[c],o=a[d];a[c]=o,a[d]=e,i[o.key]=c,i[e.key]=d}}return le=m,le}var de,cr;function rt(){if(cr)return de;cr=1;var m=et();de=c;var l=()=>1;function c(a,i,e,o){return d(a,String(i),e||l,o||function(n){return a.outEdges(n)})}function d(a,i,e,o){var n={},s=new m,r,t,u=function(h){var b=h.v!==r?h.v:h.w,N=n[b],p=e(h),E=t.distance+p;if(p<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+p);E<N.distance&&(N.distance=E,N.predecessor=r,s.decrease(b,E))};for(a.nodes().forEach(function(h){var b=h===i?0:Number.POSITIVE_INFINITY;n[h]={distance:b},s.add(h,b)});s.size()>0&&(r=s.removeMin(),t=n[r],t.distance!==Number.POSITIVE_INFINITY);)o(r).forEach(u);return n}return de}var ue,hr;function Et(){if(hr)return ue;hr=1;var m=rt();ue=l;function l(c,d,a){return c.nodes().reduce(function(i,e){return i[e]=m(c,e,d,a),i},{})}return ue}var ce,fr;function tt(){if(fr)return ce;fr=1,ce=m;function m(l){var c=0,d=[],a={},i=[];function e(o){var n=a[o]={onStack:!0,lowlink:c,index:c++};if(d.push(o),l.successors(o).forEach(function(t){Object.hasOwn(a,t)?a[t].onStack&&(n.lowlink=Math.min(n.lowlink,a[t].index)):(e(t),n.lowlink=Math.min(n.lowlink,a[t].lowlink))}),n.lowlink===n.index){var s=[],r;do r=d.pop(),a[r].onStack=!1,s.push(r);while(o!==r);i.push(s)}}return l.nodes().forEach(function(o){Object.hasOwn(a,o)||e(o)}),i}return ce}var he,pr;function xt(){if(pr)return he;pr=1;var m=tt();he=l;function l(c){return m(c).filter(function(d){return d.length>1||d.length===1&&c.hasEdge(d[0],d[0])})}return he}var fe,mr;function yt(){if(mr)return fe;mr=1,fe=l;var m=()=>1;function l(d,a,i){return c(d,a||m,i||function(e){return d.outEdges(e)})}function c(d,a,i){var e={},o=d.nodes();return o.forEach(function(n){e[n]={},e[n][n]={distance:0},o.forEach(function(s){n!==s&&(e[n][s]={distance:Number.POSITIVE_INFINITY})}),i(n).forEach(function(s){var r=s.v===n?s.w:s.v,t=a(s);e[n][r]={distance:t,predecessor:n}})}),o.forEach(function(n){var s=e[n];o.forEach(function(r){var t=e[r];o.forEach(function(u){var h=t[n],b=s[u],N=t[u],p=h.distance+b.distance;p<N.distance&&(N.distance=p,N.predecessor=b.predecessor)})})}),e}return fe}var pe,br;function nt(){if(br)return pe;br=1;function m(c){var d={},a={},i=[];function e(o){if(Object.hasOwn(a,o))throw new l;Object.hasOwn(d,o)||(a[o]=!0,d[o]=!0,c.predecessors(o).forEach(e),delete a[o],i.push(o))}if(c.sinks().forEach(e),Object.keys(d).length!==c.nodeCount())throw new l;return i}class l extends Error{constructor(){super(...arguments)}}return pe=m,m.CycleException=l,pe}var me,gr;function _t(){if(gr)return me;gr=1;var m=nt();me=l;function l(c){try{m(c)}catch(d){if(d instanceof m.CycleException)return!1;throw d}return!0}return me}var be,vr;function it(){if(vr)return be;vr=1,be=m;function m(a,i,e){Array.isArray(i)||(i=[i]);var o=a.isDirected()?t=>a.successors(t):t=>a.neighbors(t),n=e==="post"?l:c,s=[],r={};return i.forEach(t=>{if(!a.hasNode(t))throw new Error("Graph does not have node: "+t);n(t,o,r,s)}),s}function l(a,i,e,o){for(var n=[[a,!1]];n.length>0;){var s=n.pop();s[1]?o.push(s[0]):Object.hasOwn(e,s[0])||(e[s[0]]=!0,n.push([s[0],!0]),d(i(s[0]),r=>n.push([r,!1])))}}function c(a,i,e,o){for(var n=[a];n.length>0;){var s=n.pop();Object.hasOwn(e,s)||(e[s]=!0,o.push(s),d(i(s),r=>n.push(r)))}}function d(a,i){for(var e=a.length;e--;)i(a[e],e,a);return a}return be}var ge,wr;function kt(){if(wr)return ge;wr=1;var m=it();ge=l;function l(c,d){return m(c,d,"post")}return ge}var ve,Er;function Nt(){if(Er)return ve;Er=1;var m=it();ve=l;function l(c,d){return m(c,d,"pre")}return ve}var we,xr;function jt(){if(xr)return we;xr=1;var m=Je(),l=et();we=c;function c(d,a){var i=new m,e={},o=new l,n;function s(t){var u=t.v===n?t.w:t.v,h=o.priority(u);if(h!==void 0){var b=a(t);b<h&&(e[u]=n,o.decrease(u,b))}}if(d.nodeCount()===0)return i;d.nodes().forEach(function(t){o.add(t,Number.POSITIVE_INFINITY),i.setNode(t)}),o.decrease(d.nodes()[0],0);for(var r=!1;o.size()>0;){if(n=o.removeMin(),Object.hasOwn(e,n))i.setEdge(n,e[n]);else{if(r)throw new Error("Input graph is not connected: "+d);r=!0}d.nodeEdges(n).forEach(s)}return i}return we}var Ee,yr;function Ot(){return yr||(yr=1,Ee={components:wt(),dijkstra:rt(),dijkstraAll:Et(),findCycles:xt(),floydWarshall:yt(),isAcyclic:_t(),postorder:kt(),preorder:Nt(),prim:jt(),tarjan:tt(),topsort:nt()}),Ee}var xe,_r;function Y(){if(_r)return xe;_r=1;var m=gt();return xe={Graph:m.Graph,json:vt(),alg:Ot(),version:m.version},xe}var ye,kr;function Ct(){if(kr)return ye;kr=1;class m{constructor(){let a={};a._next=a._prev=a,this._sentinel=a}dequeue(){let a=this._sentinel,i=a._prev;if(i!==a)return l(i),i}enqueue(a){let i=this._sentinel;a._prev&&a._next&&l(a),a._next=i._next,i._next._prev=a,i._next=a,a._prev=i}toString(){let a=[],i=this._sentinel,e=i._prev;for(;e!==i;)a.push(JSON.stringify(e,c)),e=e._prev;return"["+a.join(", ")+"]"}}function l(d){d._prev._next=d._next,d._next._prev=d._prev,delete d._next,delete d._prev}function c(d,a){if(d!=="_next"&&d!=="_prev")return a}return ye=m,ye}var _e,Nr;function Rt(){if(Nr)return _e;Nr=1;let m=Y().Graph,l=Ct();_e=d;let c=()=>1;function d(s,r){if(s.nodeCount()<=1)return[];let t=e(s,r||c);return a(t.graph,t.buckets,t.zeroIdx).flatMap(h=>s.outEdges(h.v,h.w))}function a(s,r,t){let u=[],h=r[r.length-1],b=r[0],N;for(;s.nodeCount();){for(;N=b.dequeue();)i(s,r,t,N);for(;N=h.dequeue();)i(s,r,t,N);if(s.nodeCount()){for(let p=r.length-2;p>0;--p)if(N=r[p].dequeue(),N){u=u.concat(i(s,r,t,N,!0));break}}}return u}function i(s,r,t,u,h){let b=h?[]:void 0;return s.inEdges(u.v).forEach(N=>{let p=s.edge(N),E=s.node(N.v);h&&b.push({v:N.v,w:N.w}),E.out-=p,o(r,t,E)}),s.outEdges(u.v).forEach(N=>{let p=s.edge(N),E=N.w,g=s.node(E);g.in-=p,o(r,t,g)}),s.removeNode(u.v),b}function e(s,r){let t=new m,u=0,h=0;s.nodes().forEach(p=>{t.setNode(p,{v:p,in:0,out:0})}),s.edges().forEach(p=>{let E=t.edge(p.v,p.w)||0,g=r(p),k=E+g;t.setEdge(p.v,p.w,k),h=Math.max(h,t.node(p.v).out+=g),u=Math.max(u,t.node(p.w).in+=g)});let b=n(h+u+3).map(()=>new l),N=u+1;return t.nodes().forEach(p=>{o(b,N,t.node(p))}),{graph:t,buckets:b,zeroIdx:N}}function o(s,r,t){t.out?t.in?s[t.out-t.in+r].enqueue(t):s[s.length-1].enqueue(t):s[0].enqueue(t)}function n(s){const r=[];for(let t=0;t<s;t++)r.push(t);return r}return _e}var ke,jr;function V(){if(jr)return ke;jr=1;let m=Y().Graph;ke={addBorderNode:r,addDummyNode:l,applyWithChunking:h,asNonCompoundGraph:d,buildLayerMatrix:o,intersectRect:e,mapValues:I,maxRank:b,normalizeRanks:n,notime:E,partition:N,pick:R,predecessorWeights:i,range:O,removeEmptyRanks:s,simplify:c,successorWeights:a,time:p,uniqueId:k,zipObject:q};function l(f,v,x,_){for(var C=_;f.hasNode(C);)C=k(_);return x.dummy=v,f.setNode(C,x),C}function c(f){let v=new m().setGraph(f.graph());return f.nodes().forEach(x=>v.setNode(x,f.node(x))),f.edges().forEach(x=>{let _=v.edge(x.v,x.w)||{weight:0,minlen:1},C=f.edge(x);v.setEdge(x.v,x.w,{weight:_.weight+C.weight,minlen:Math.max(_.minlen,C.minlen)})}),v}function d(f){let v=new m({multigraph:f.isMultigraph()}).setGraph(f.graph());return f.nodes().forEach(x=>{f.children(x).length||v.setNode(x,f.node(x))}),f.edges().forEach(x=>{v.setEdge(x,f.edge(x))}),v}function a(f){let v=f.nodes().map(x=>{let _={};return f.outEdges(x).forEach(C=>{_[C.w]=(_[C.w]||0)+f.edge(C).weight}),_});return q(f.nodes(),v)}function i(f){let v=f.nodes().map(x=>{let _={};return f.inEdges(x).forEach(C=>{_[C.v]=(_[C.v]||0)+f.edge(C).weight}),_});return q(f.nodes(),v)}function e(f,v){let x=f.x,_=f.y,C=v.x-x,T=v.y-_,M=f.width/2,G=f.height/2;if(!C&&!T)throw new Error("Not possible to find intersection inside of the rectangle");let $,U;return Math.abs(T)*M>Math.abs(C)*G?(T<0&&(G=-G),$=G*C/T,U=G):(C<0&&(M=-M),$=M,U=M*T/C),{x:x+$,y:_+U}}function o(f){let v=O(b(f)+1).map(()=>[]);return f.nodes().forEach(x=>{let _=f.node(x),C=_.rank;C!==void 0&&(v[C][_.order]=x)}),v}function n(f){let v=f.nodes().map(_=>{let C=f.node(_).rank;return C===void 0?Number.MAX_VALUE:C}),x=h(Math.min,v);f.nodes().forEach(_=>{let C=f.node(_);Object.hasOwn(C,"rank")&&(C.rank-=x)})}function s(f){let v=f.nodes().map(M=>f.node(M).rank),x=h(Math.min,v),_=[];f.nodes().forEach(M=>{let G=f.node(M).rank-x;_[G]||(_[G]=[]),_[G].push(M)});let C=0,T=f.graph().nodeRankFactor;Array.from(_).forEach((M,G)=>{M===void 0&&G%T!==0?--C:M!==void 0&&C&&M.forEach($=>f.node($).rank+=C)})}function r(f,v,x,_){let C={width:0,height:0};return arguments.length>=4&&(C.rank=x,C.order=_),l(f,"border",C,v)}function t(f,v=u){const x=[];for(let _=0;_<f.length;_+=v){const C=f.slice(_,_+v);x.push(C)}return x}const u=65535;function h(f,v){if(v.length>u){const x=t(v);return f.apply(null,x.map(_=>f.apply(null,_)))}else return f.apply(null,v)}function b(f){const x=f.nodes().map(_=>{let C=f.node(_).rank;return C===void 0?Number.MIN_VALUE:C});return h(Math.max,x)}function N(f,v){let x={lhs:[],rhs:[]};return f.forEach(_=>{v(_)?x.lhs.push(_):x.rhs.push(_)}),x}function p(f,v){let x=Date.now();try{return v()}finally{console.log(f+" time: "+(Date.now()-x)+"ms")}}function E(f,v){return v()}let g=0;function k(f){var v=++g;return f+(""+v)}function O(f,v,x=1){v==null&&(v=f,f=0);let _=T=>T<v;x<0&&(_=T=>v<T);const C=[];for(let T=f;_(T);T+=x)C.push(T);return C}function R(f,v){const x={};for(const _ of v)f[_]!==void 0&&(x[_]=f[_]);return x}function I(f,v){let x=v;return typeof v=="string"&&(x=_=>_[v]),Object.entries(f).reduce((_,[C,T])=>(_[C]=x(T,C),_),{})}function q(f,v){return f.reduce((x,_,C)=>(x[_]=v[C],x),{})}return ke}var Ne,Or;function It(){if(Or)return Ne;Or=1;let m=Rt(),l=V().uniqueId;Ne={run:c,undo:a};function c(i){(i.graph().acyclicer==="greedy"?m(i,o(i)):d(i)).forEach(n=>{let s=i.edge(n);i.removeEdge(n),s.forwardName=n.name,s.reversed=!0,i.setEdge(n.w,n.v,s,l("rev"))});function o(n){return s=>n.edge(s).weight}}function d(i){let e=[],o={},n={};function s(r){Object.hasOwn(n,r)||(n[r]=!0,o[r]=!0,i.outEdges(r).forEach(t=>{Object.hasOwn(o,t.w)?e.push(t):s(t.w)}),delete o[r])}return i.nodes().forEach(s),e}function a(i){i.edges().forEach(e=>{let o=i.edge(e);if(o.reversed){i.removeEdge(e);let n=o.forwardName;delete o.reversed,delete o.forwardName,i.setEdge(e.w,e.v,o,n)}})}return Ne}var je,Cr;function Lt(){if(Cr)return je;Cr=1;let m=V();je={run:l,undo:d};function l(a){a.graph().dummyChains=[],a.edges().forEach(i=>c(a,i))}function c(a,i){let e=i.v,o=a.node(e).rank,n=i.w,s=a.node(n).rank,r=i.name,t=a.edge(i),u=t.labelRank;if(s===o+1)return;a.removeEdge(i);let h,b,N;for(N=0,++o;o<s;++N,++o)t.points=[],b={width:0,height:0,edgeLabel:t,edgeObj:i,rank:o},h=m.addDummyNode(a,"edge",b,"_d"),o===u&&(b.width=t.width,b.height=t.height,b.dummy="edge-label",b.labelpos=t.labelpos),a.setEdge(e,h,{weight:t.weight},r),N===0&&a.graph().dummyChains.push(h),e=h;a.setEdge(e,n,{weight:t.weight},r)}function d(a){a.graph().dummyChains.forEach(i=>{let e=a.node(i),o=e.edgeLabel,n;for(a.setEdge(e.edgeObj,o);e.dummy;)n=a.successors(i)[0],a.removeNode(i),o.points.push({x:e.x,y:e.y}),e.dummy==="edge-label"&&(o.x=e.x,o.y=e.y,o.width=e.width,o.height=e.height),i=n,e=a.node(i)})}return je}var Oe,Rr;function ee(){if(Rr)return Oe;Rr=1;const{applyWithChunking:m}=V();Oe={longestPath:l,slack:c};function l(d){var a={};function i(e){var o=d.node(e);if(Object.hasOwn(a,e))return o.rank;a[e]=!0;let n=d.outEdges(e).map(r=>r==null?Number.POSITIVE_INFINITY:i(r.w)-d.edge(r).minlen);var s=m(Math.min,n);return s===Number.POSITIVE_INFINITY&&(s=0),o.rank=s}d.sources().forEach(i)}function c(d,a){return d.node(a.w).rank-d.node(a.v).rank-d.edge(a).minlen}return Oe}var Ce,Ir;function st(){if(Ir)return Ce;Ir=1;var m=Y().Graph,l=ee().slack;Ce=c;function c(e){var o=new m({directed:!1}),n=e.nodes()[0],s=e.nodeCount();o.setNode(n,{});for(var r,t;d(o,e)<s;)r=a(o,e),t=o.hasNode(r.v)?l(e,r):-l(e,r),i(o,e,t);return o}function d(e,o){function n(s){o.nodeEdges(s).forEach(r=>{var t=r.v,u=s===t?r.w:t;!e.hasNode(u)&&!l(o,r)&&(e.setNode(u,{}),e.setEdge(s,u,{}),n(u))})}return e.nodes().forEach(n),e.nodeCount()}function a(e,o){return o.edges().reduce((s,r)=>{let t=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(t=l(o,r)),t<s[0]?[t,r]:s},[Number.POSITIVE_INFINITY,null])[1]}function i(e,o,n){e.nodes().forEach(s=>o.node(s).rank+=n)}return Ce}var Re,Lr;function St(){if(Lr)return Re;Lr=1;var m=st(),l=ee().slack,c=ee().longestPath,d=Y().alg.preorder,a=Y().alg.postorder,i=V().simplify;Re=e,e.initLowLimValues=r,e.initCutValues=o,e.calcCutValue=s,e.leaveEdge=u,e.enterEdge=h,e.exchangeEdges=b;function e(g){g=i(g),c(g);var k=m(g);r(k),o(k,g);for(var O,R;O=u(k);)R=h(k,g,O),b(k,g,O,R)}function o(g,k){var O=a(g,g.nodes());O=O.slice(0,O.length-1),O.forEach(R=>n(g,k,R))}function n(g,k,O){var R=g.node(O),I=R.parent;g.edge(O,I).cutvalue=s(g,k,O)}function s(g,k,O){var R=g.node(O),I=R.parent,q=!0,f=k.edge(O,I),v=0;return f||(q=!1,f=k.edge(I,O)),v=f.weight,k.nodeEdges(O).forEach(x=>{var _=x.v===O,C=_?x.w:x.v;if(C!==I){var T=_===q,M=k.edge(x).weight;if(v+=T?M:-M,p(g,O,C)){var G=g.edge(O,C).cutvalue;v+=T?-G:G}}}),v}function r(g,k){arguments.length<2&&(k=g.nodes()[0]),t(g,{},1,k)}function t(g,k,O,R,I){var q=O,f=g.node(R);return k[R]=!0,g.neighbors(R).forEach(v=>{Object.hasOwn(k,v)||(O=t(g,k,O,v,R))}),f.low=q,f.lim=O++,I?f.parent=I:delete f.parent,O}function u(g){return g.edges().find(k=>g.edge(k).cutvalue<0)}function h(g,k,O){var R=O.v,I=O.w;k.hasEdge(R,I)||(R=O.w,I=O.v);var q=g.node(R),f=g.node(I),v=q,x=!1;q.lim>f.lim&&(v=f,x=!0);var _=k.edges().filter(C=>x===E(g,g.node(C.v),v)&&x!==E(g,g.node(C.w),v));return _.reduce((C,T)=>l(k,T)<l(k,C)?T:C)}function b(g,k,O,R){var I=O.v,q=O.w;g.removeEdge(I,q),g.setEdge(R.v,R.w,{}),r(g),o(g,k),N(g,k)}function N(g,k){var O=g.nodes().find(I=>!k.node(I).parent),R=d(g,O);R=R.slice(1),R.forEach(I=>{var q=g.node(I).parent,f=k.edge(I,q),v=!1;f||(f=k.edge(q,I),v=!0),k.node(I).rank=k.node(q).rank+(v?f.minlen:-f.minlen)})}function p(g,k,O){return g.hasEdge(k,O)}function E(g,k,O){return O.low<=k.lim&&k.lim<=O.lim}return Re}var Ie,Sr;function qt(){if(Sr)return Ie;Sr=1;var m=ee(),l=m.longestPath,c=st(),d=St();Ie=a;function a(n){var s=n.graph().ranker;if(s instanceof Function)return s(n);switch(n.graph().ranker){case"network-simplex":o(n);break;case"tight-tree":e(n);break;case"longest-path":i(n);break;case"none":break;default:o(n)}}var i=l;function e(n){l(n),c(n)}function o(n){d(n)}return Ie}var Le,qr;function Tt(){if(qr)return Le;qr=1,Le=m;function m(d){let a=c(d);d.graph().dummyChains.forEach(i=>{let e=d.node(i),o=e.edgeObj,n=l(d,a,o.v,o.w),s=n.path,r=n.lca,t=0,u=s[t],h=!0;for(;i!==o.w;){if(e=d.node(i),h){for(;(u=s[t])!==r&&d.node(u).maxRank<e.rank;)t++;u===r&&(h=!1)}if(!h){for(;t<s.length-1&&d.node(u=s[t+1]).minRank<=e.rank;)t++;u=s[t]}d.setParent(i,u),i=d.successors(i)[0]}})}function l(d,a,i,e){let o=[],n=[],s=Math.min(a[i].low,a[e].low),r=Math.max(a[i].lim,a[e].lim),t,u;t=i;do t=d.parent(t),o.push(t);while(t&&(a[t].low>s||r>a[t].lim));for(u=t,t=e;(t=d.parent(t))!==u;)n.push(t);return{path:o.concat(n.reverse()),lca:u}}function c(d){let a={},i=0;function e(o){let n=i;d.children(o).forEach(e),a[o]={low:n,lim:i++}}return d.children().forEach(e),a}return Le}var Se,Tr;function Mt(){if(Tr)return Se;Tr=1;let m=V();Se={run:l,cleanup:i};function l(e){let o=m.addDummyNode(e,"root",{},"_root"),n=d(e),s=Object.values(n),r=m.applyWithChunking(Math.max,s)-1,t=2*r+1;e.graph().nestingRoot=o,e.edges().forEach(h=>e.edge(h).minlen*=t);let u=a(e)+1;e.children().forEach(h=>c(e,o,t,u,r,n,h)),e.graph().nodeRankFactor=t}function c(e,o,n,s,r,t,u){let h=e.children(u);if(!h.length){u!==o&&e.setEdge(o,u,{weight:0,minlen:n});return}let b=m.addBorderNode(e,"_bt"),N=m.addBorderNode(e,"_bb"),p=e.node(u);e.setParent(b,u),p.borderTop=b,e.setParent(N,u),p.borderBottom=N,h.forEach(E=>{c(e,o,n,s,r,t,E);let g=e.node(E),k=g.borderTop?g.borderTop:E,O=g.borderBottom?g.borderBottom:E,R=g.borderTop?s:2*s,I=k!==O?1:r-t[u]+1;e.setEdge(b,k,{weight:R,minlen:I,nestingEdge:!0}),e.setEdge(O,N,{weight:R,minlen:I,nestingEdge:!0})}),e.parent(u)||e.setEdge(o,b,{weight:0,minlen:r+t[u]})}function d(e){var o={};function n(s,r){var t=e.children(s);t&&t.length&&t.forEach(u=>n(u,r+1)),o[s]=r}return e.children().forEach(s=>n(s,1)),o}function a(e){return e.edges().reduce((o,n)=>o+e.edge(n).weight,0)}function i(e){var o=e.graph();e.removeNode(o.nestingRoot),delete o.nestingRoot,e.edges().forEach(n=>{var s=e.edge(n);s.nestingEdge&&e.removeEdge(n)})}return Se}var qe,Mr;function Pt(){if(Mr)return qe;Mr=1;let m=V();qe=l;function l(d){function a(i){let e=d.children(i),o=d.node(i);if(e.length&&e.forEach(a),Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let n=o.minRank,s=o.maxRank+1;n<s;++n)c(d,"borderLeft","_bl",i,o,n),c(d,"borderRight","_br",i,o,n)}}d.children().forEach(a)}function c(d,a,i,e,o,n){let s={width:0,height:0,rank:n,borderType:a},r=o[a][n-1],t=m.addDummyNode(d,"border",s,i);o[a][n]=t,d.setParent(t,e),r&&d.setEdge(r,t,{weight:1})}return qe}var Te,Pr;function Dt(){if(Pr)return Te;Pr=1,Te={adjust:m,undo:l};function m(n){let s=n.graph().rankdir.toLowerCase();(s==="lr"||s==="rl")&&c(n)}function l(n){let s=n.graph().rankdir.toLowerCase();(s==="bt"||s==="rl")&&a(n),(s==="lr"||s==="rl")&&(e(n),c(n))}function c(n){n.nodes().forEach(s=>d(n.node(s))),n.edges().forEach(s=>d(n.edge(s)))}function d(n){let s=n.width;n.width=n.height,n.height=s}function a(n){n.nodes().forEach(s=>i(n.node(s))),n.edges().forEach(s=>{let r=n.edge(s);r.points.forEach(i),Object.hasOwn(r,"y")&&i(r)})}function i(n){n.y=-n.y}function e(n){n.nodes().forEach(s=>o(n.node(s))),n.edges().forEach(s=>{let r=n.edge(s);r.points.forEach(o),Object.hasOwn(r,"x")&&o(r)})}function o(n){let s=n.x;n.x=n.y,n.y=s}return Te}var Me,Dr;function Gt(){if(Dr)return Me;Dr=1;let m=V();Me=l;function l(c){let d={},a=c.nodes().filter(r=>!c.children(r).length),i=a.map(r=>c.node(r).rank),e=m.applyWithChunking(Math.max,i),o=m.range(e+1).map(()=>[]);function n(r){if(d[r])return;d[r]=!0;let t=c.node(r);o[t.rank].push(r),c.successors(r).forEach(n)}return a.sort((r,t)=>c.node(r).rank-c.node(t).rank).forEach(n),o}return Me}var Pe,Gr;function Ft(){if(Gr)return Pe;Gr=1;let m=V().zipObject;Pe=l;function l(d,a){let i=0;for(let e=1;e<a.length;++e)i+=c(d,a[e-1],a[e]);return i}function c(d,a,i){let e=m(i,i.map((u,h)=>h)),o=a.flatMap(u=>d.outEdges(u).map(h=>({pos:e[h.w],weight:d.edge(h).weight})).sort((h,b)=>h.pos-b.pos)),n=1;for(;n<i.length;)n<<=1;let s=2*n-1;n-=1;let r=new Array(s).fill(0),t=0;return o.forEach(u=>{let h=u.pos+n;r[h]+=u.weight;let b=0;for(;h>0;)h%2&&(b+=r[h+1]),h=h-1>>1,r[h]+=u.weight;t+=u.weight*b}),t}return Pe}var De,Fr;function At(){if(Fr)return De;Fr=1,De=m;function m(l,c=[]){return c.map(d=>{let a=l.inEdges(d);if(a.length){let i=a.reduce((e,o)=>{let n=l.edge(o),s=l.node(o.v);return{sum:e.sum+n.weight*s.order,weight:e.weight+n.weight}},{sum:0,weight:0});return{v:d,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:d}})}return De}var Ge,Ar;function Vt(){if(Ar)return Ge;Ar=1;let m=V();Ge=l;function l(a,i){let e={};a.forEach((n,s)=>{let r=e[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:s};n.barycenter!==void 0&&(r.barycenter=n.barycenter,r.weight=n.weight)}),i.edges().forEach(n=>{let s=e[n.v],r=e[n.w];s!==void 0&&r!==void 0&&(r.indegree++,s.out.push(e[n.w]))});let o=Object.values(e).filter(n=>!n.indegree);return c(o)}function c(a){let i=[];function e(n){return s=>{s.merged||(s.barycenter===void 0||n.barycenter===void 0||s.barycenter>=n.barycenter)&&d(n,s)}}function o(n){return s=>{s.in.push(n),--s.indegree===0&&a.push(s)}}for(;a.length;){let n=a.pop();i.push(n),n.in.reverse().forEach(e(n)),n.out.forEach(o(n))}return i.filter(n=>!n.merged).map(n=>m.pick(n,["vs","i","barycenter","weight"]))}function d(a,i){let e=0,o=0;a.weight&&(e+=a.barycenter*a.weight,o+=a.weight),i.weight&&(e+=i.barycenter*i.weight,o+=i.weight),a.vs=i.vs.concat(a.vs),a.barycenter=e/o,a.weight=o,a.i=Math.min(i.i,a.i),i.merged=!0}return Ge}var Fe,Vr;function Bt(){if(Vr)return Fe;Vr=1;let m=V();Fe=l;function l(a,i){let e=m.partition(a,b=>Object.hasOwn(b,"barycenter")),o=e.lhs,n=e.rhs.sort((b,N)=>N.i-b.i),s=[],r=0,t=0,u=0;o.sort(d(!!i)),u=c(s,n,u),o.forEach(b=>{u+=b.vs.length,s.push(b.vs),r+=b.barycenter*b.weight,t+=b.weight,u=c(s,n,u)});let h={vs:s.flat(!0)};return t&&(h.barycenter=r/t,h.weight=t),h}function c(a,i,e){let o;for(;i.length&&(o=i[i.length-1]).i<=e;)i.pop(),a.push(o.vs),e++;return e}function d(a){return(i,e)=>i.barycenter<e.barycenter?-1:i.barycenter>e.barycenter?1:a?e.i-i.i:i.i-e.i}return Fe}var Ae,Br;function Wt(){if(Br)return Ae;Br=1;let m=At(),l=Vt(),c=Bt();Ae=d;function d(e,o,n,s){let r=e.children(o),t=e.node(o),u=t?t.borderLeft:void 0,h=t?t.borderRight:void 0,b={};u&&(r=r.filter(g=>g!==u&&g!==h));let N=m(e,r);N.forEach(g=>{if(e.children(g.v).length){let k=d(e,g.v,n,s);b[g.v]=k,Object.hasOwn(k,"barycenter")&&i(g,k)}});let p=l(N,n);a(p,b);let E=c(p,s);if(u&&(E.vs=[u,E.vs,h].flat(!0),e.predecessors(u).length)){let g=e.node(e.predecessors(u)[0]),k=e.node(e.predecessors(h)[0]);Object.hasOwn(E,"barycenter")||(E.barycenter=0,E.weight=0),E.barycenter=(E.barycenter*E.weight+g.order+k.order)/(E.weight+2),E.weight+=2}return E}function a(e,o){e.forEach(n=>{n.vs=n.vs.flatMap(s=>o[s]?o[s].vs:s)})}function i(e,o){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+o.barycenter*o.weight)/(e.weight+o.weight),e.weight+=o.weight):(e.barycenter=o.barycenter,e.weight=o.weight)}return Ae}var Ve,Wr;function zt(){if(Wr)return Ve;Wr=1;let m=Y().Graph,l=V();Ve=c;function c(a,i,e,o){o||(o=a.nodes());let n=d(a),s=new m({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(r=>a.node(r));return o.forEach(r=>{let t=a.node(r),u=a.parent(r);(t.rank===i||t.minRank<=i&&i<=t.maxRank)&&(s.setNode(r),s.setParent(r,u||n),a[e](r).forEach(h=>{let b=h.v===r?h.w:h.v,N=s.edge(b,r),p=N!==void 0?N.weight:0;s.setEdge(b,r,{weight:a.edge(h).weight+p})}),Object.hasOwn(t,"minRank")&&s.setNode(r,{borderLeft:t.borderLeft[i],borderRight:t.borderRight[i]}))}),s}function d(a){for(var i;a.hasNode(i=l.uniqueId("_root")););return i}return Ve}var Be,zr;function Yt(){if(zr)return Be;zr=1,Be=m;function m(l,c,d){let a={},i;d.forEach(e=>{let o=l.parent(e),n,s;for(;o;){if(n=l.parent(o),n?(s=a[n],a[n]=o):(s=i,i=o),s&&s!==o){c.setEdge(s,o);return}o=n}})}return Be}var We,Yr;function $t(){if(Yr)return We;Yr=1;let m=Gt(),l=Ft(),c=Wt(),d=zt(),a=Yt(),i=Y().Graph,e=V();We=o;function o(t,u){if(u&&typeof u.customOrder=="function"){u.customOrder(t,o);return}let h=e.maxRank(t),b=n(t,e.range(1,h+1),"inEdges"),N=n(t,e.range(h-1,-1,-1),"outEdges"),p=m(t);if(r(t,p),u&&u.disableOptimalOrderHeuristic)return;let E=Number.POSITIVE_INFINITY,g;for(let k=0,O=0;O<4;++k,++O){s(k%2?b:N,k%4>=2),p=e.buildLayerMatrix(t);let R=l(t,p);R<E&&(O=0,g=Object.assign({},p),E=R)}r(t,g)}function n(t,u,h){const b=new Map,N=(p,E)=>{b.has(p)||b.set(p,[]),b.get(p).push(E)};for(const p of t.nodes()){const E=t.node(p);if(typeof E.rank=="number"&&N(E.rank,p),typeof E.minRank=="number"&&typeof E.maxRank=="number")for(let g=E.minRank;g<=E.maxRank;g++)g!==E.rank&&N(g,p)}return u.map(function(p){return d(t,p,h,b.get(p)||[])})}function s(t,u){let h=new i;t.forEach(function(b){let N=b.graph().root,p=c(b,N,h,u);p.vs.forEach((E,g)=>b.node(E).order=g),a(b,h,p.vs)})}function r(t,u){Object.values(u).forEach(h=>h.forEach((b,N)=>t.node(b).order=N))}return We}var ze,$r;function Ut(){if($r)return ze;$r=1;let m=Y().Graph,l=V();ze={positionX:h,findType1Conflicts:c,findType2Conflicts:d,addConflict:i,hasConflict:e,verticalAlignment:o,horizontalCompaction:n,alignCoordinates:t,findSmallestWidthAlignment:r,balance:u};function c(p,E){let g={};function k(O,R){let I=0,q=0,f=O.length,v=R[R.length-1];return R.forEach((x,_)=>{let C=a(p,x),T=C?p.node(C).order:f;(C||x===v)&&(R.slice(q,_+1).forEach(M=>{p.predecessors(M).forEach(G=>{let $=p.node(G),U=$.order;(U<I||T<U)&&!($.dummy&&p.node(M).dummy)&&i(g,G,M)})}),q=_+1,I=T)}),R}return E.length&&E.reduce(k),g}function d(p,E){let g={};function k(R,I,q,f,v){let x;l.range(I,q).forEach(_=>{x=R[_],p.node(x).dummy&&p.predecessors(x).forEach(C=>{let T=p.node(C);T.dummy&&(T.order<f||T.order>v)&&i(g,C,x)})})}function O(R,I){let q=-1,f,v=0;return I.forEach((x,_)=>{if(p.node(x).dummy==="border"){let C=p.predecessors(x);C.length&&(f=p.node(C[0]).order,k(I,v,_,q,f),v=_,q=f)}k(I,v,I.length,f,R.length)}),I}return E.length&&E.reduce(O),g}function a(p,E){if(p.node(E).dummy)return p.predecessors(E).find(g=>p.node(g).dummy)}function i(p,E,g){if(E>g){let O=E;E=g,g=O}let k=p[E];k||(p[E]=k={}),k[g]=!0}function e(p,E,g){if(E>g){let k=E;E=g,g=k}return!!p[E]&&Object.hasOwn(p[E],g)}function o(p,E,g,k){let O={},R={},I={};return E.forEach(q=>{q.forEach((f,v)=>{O[f]=f,R[f]=f,I[f]=v})}),E.forEach(q=>{let f=-1;q.forEach(v=>{let x=k(v);if(x.length){x=x.sort((C,T)=>I[C]-I[T]);let _=(x.length-1)/2;for(let C=Math.floor(_),T=Math.ceil(_);C<=T;++C){let M=x[C];R[v]===v&&f<I[M]&&!e(g,v,M)&&(R[M]=v,R[v]=O[v]=O[M],f=I[M])}}})}),{root:O,align:R}}function n(p,E,g,k,O){let R={},I=s(p,E,g,O),q=O?"borderLeft":"borderRight";function f(_,C){let T=I.nodes(),M=T.pop(),G={};for(;M;)G[M]?_(M):(G[M]=!0,T.push(M),T=T.concat(C(M))),M=T.pop()}function v(_){R[_]=I.inEdges(_).reduce((C,T)=>Math.max(C,R[T.v]+I.edge(T)),0)}function x(_){let C=I.outEdges(_).reduce((M,G)=>Math.min(M,R[G.w]-I.edge(G)),Number.POSITIVE_INFINITY),T=p.node(_);C!==Number.POSITIVE_INFINITY&&T.borderType!==q&&(R[_]=Math.max(R[_],C))}return f(v,I.predecessors.bind(I)),f(x,I.successors.bind(I)),Object.keys(k).forEach(_=>R[_]=R[g[_]]),R}function s(p,E,g,k){let O=new m,R=p.graph(),I=b(R.nodesep,R.edgesep,k);return E.forEach(q=>{let f;q.forEach(v=>{let x=g[v];if(O.setNode(x),f){var _=g[f],C=O.edge(_,x);O.setEdge(_,x,Math.max(I(p,v,f),C||0))}f=v})}),O}function r(p,E){return Object.values(E).reduce((g,k)=>{let O=Number.NEGATIVE_INFINITY,R=Number.POSITIVE_INFINITY;Object.entries(k).forEach(([q,f])=>{let v=N(p,q)/2;O=Math.max(f+v,O),R=Math.min(f-v,R)});const I=O-R;return I<g[0]&&(g=[I,k]),g},[Number.POSITIVE_INFINITY,null])[1]}function t(p,E){let g=Object.values(E),k=l.applyWithChunking(Math.min,g),O=l.applyWithChunking(Math.max,g);["u","d"].forEach(R=>{["l","r"].forEach(I=>{let q=R+I,f=p[q];if(f===E)return;let v=Object.values(f),x=k-l.applyWithChunking(Math.min,v);I!=="l"&&(x=O-l.applyWithChunking(Math.max,v)),x&&(p[q]=l.mapValues(f,_=>_+x))})})}function u(p,E){return l.mapValues(p.ul,(g,k)=>{if(E)return p[E.toLowerCase()][k];{let O=Object.values(p).map(R=>R[k]).sort((R,I)=>R-I);return(O[1]+O[2])/2}})}function h(p){let E=l.buildLayerMatrix(p),g=Object.assign(c(p,E),d(p,E)),k={},O;["u","d"].forEach(I=>{O=I==="u"?E:Object.values(E).reverse(),["l","r"].forEach(q=>{q==="r"&&(O=O.map(_=>Object.values(_).reverse()));let f=(I==="u"?p.predecessors:p.successors).bind(p),v=o(p,O,g,f),x=n(p,O,v.root,v.align,q==="r");q==="r"&&(x=l.mapValues(x,_=>-_)),k[I+q]=x})});let R=r(p,k);return t(k,R),u(k,p.graph().align)}function b(p,E,g){return(k,O,R)=>{let I=k.node(O),q=k.node(R),f=0,v;if(f+=I.width/2,Object.hasOwn(I,"labelpos"))switch(I.labelpos.toLowerCase()){case"l":v=-I.width/2;break;case"r":v=I.width/2;break}if(v&&(f+=g?v:-v),v=0,f+=(I.dummy?E:p)/2,f+=(q.dummy?E:p)/2,f+=q.width/2,Object.hasOwn(q,"labelpos"))switch(q.labelpos.toLowerCase()){case"l":v=q.width/2;break;case"r":v=-q.width/2;break}return v&&(f+=g?v:-v),v=0,f}}function N(p,E){return p.node(E).width}return ze}var Ye,Ur;function Ht(){if(Ur)return Ye;Ur=1;let m=V(),l=Ut().positionX;Ye=c;function c(a){a=m.asNonCompoundGraph(a),d(a),Object.entries(l(a)).forEach(([i,e])=>a.node(i).x=e)}function d(a){let i=m.buildLayerMatrix(a),e=a.graph().ranksep,o=0;i.forEach(n=>{const s=n.reduce((r,t)=>{const u=a.node(t).height;return r>u?r:u},0);n.forEach(r=>a.node(r).y=o+s/2),o+=s+e})}return Ye}var $e,Hr;function Xt(){if(Hr)return $e;Hr=1;let m=It(),l=Lt(),c=qt(),d=V().normalizeRanks,a=Tt(),i=V().removeEmptyRanks,e=Mt(),o=Pt(),n=Dt(),s=$t(),r=Ht(),t=V(),u=Y().Graph;$e=h;function h(w,y){let j=y&&y.debugTiming?t.time:t.notime;j("layout",()=>{let S=j(" buildLayoutGraph",()=>f(w));j(" runLayout",()=>b(S,j,y)),j(" updateInputGraph",()=>N(w,S))})}function b(w,y,j){y(" makeSpaceForEdgeLabels",()=>v(w)),y(" removeSelfEdges",()=>at(w)),y(" acyclic",()=>m.run(w)),y(" nestingGraph.run",()=>e.run(w)),y(" rank",()=>c(t.asNonCompoundGraph(w))),y(" injectEdgeLabelProxies",()=>x(w)),y(" removeEmptyRanks",()=>i(w)),y(" nestingGraph.cleanup",()=>e.cleanup(w)),y(" normalizeRanks",()=>d(w)),y(" assignRankMinMax",()=>_(w)),y(" removeEdgeLabelProxies",()=>C(w)),y(" normalize.run",()=>l.run(w)),y(" parentDummyChains",()=>a(w)),y(" addBorderSegments",()=>o(w)),y(" order",()=>s(w,j)),y(" insertSelfEdges",()=>ot(w)),y(" adjustCoordinateSystem",()=>n.adjust(w)),y(" position",()=>r(w)),y(" positionSelfEdges",()=>lt(w)),y(" removeBorderNodes",()=>U(w)),y(" normalize.undo",()=>l.undo(w)),y(" fixupEdgeLabelCoords",()=>G(w)),y(" undoCoordinateSystem",()=>n.undo(w)),y(" translateGraph",()=>T(w)),y(" assignNodeIntersects",()=>M(w)),y(" reversePoints",()=>$(w)),y(" acyclic.undo",()=>m.undo(w))}function N(w,y){w.nodes().forEach(j=>{let S=w.node(j),P=y.node(j);S&&(S.x=P.x,S.y=P.y,S.rank=P.rank,y.children(j).length&&(S.width=P.width,S.height=P.height))}),w.edges().forEach(j=>{let S=w.edge(j),P=y.edge(j);S.points=P.points,Object.hasOwn(P,"x")&&(S.x=P.x,S.y=P.y)}),w.graph().width=y.graph().width,w.graph().height=y.graph().height}let p=["nodesep","edgesep","ranksep","marginx","marginy"],E={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},g=["acyclicer","ranker","rankdir","align"],k=["width","height","rank"],O={width:0,height:0},R=["minlen","weight","width","height","labeloffset"],I={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},q=["labelpos"];function f(w){let y=new u({multigraph:!0,compound:!0}),j=te(w.graph());return y.setGraph(Object.assign({},E,re(j,p),t.pick(j,g))),w.nodes().forEach(S=>{let P=te(w.node(S));const D=re(P,k);Object.keys(O).forEach(F=>{D[F]===void 0&&(D[F]=O[F])}),y.setNode(S,D),y.setParent(S,w.parent(S))}),w.edges().forEach(S=>{let P=te(w.edge(S));y.setEdge(S,Object.assign({},I,re(P,R),t.pick(P,q)))}),y}function v(w){let y=w.graph();y.ranksep/=2,w.edges().forEach(j=>{let S=w.edge(j);S.minlen*=2,S.labelpos.toLowerCase()!=="c"&&(y.rankdir==="TB"||y.rankdir==="BT"?S.width+=S.labeloffset:S.height+=S.labeloffset)})}function x(w){w.edges().forEach(y=>{let j=w.edge(y);if(j.width&&j.height){let S=w.node(y.v),D={rank:(w.node(y.w).rank-S.rank)/2+S.rank,e:y};t.addDummyNode(w,"edge-proxy",D,"_ep")}})}function _(w){let y=0;w.nodes().forEach(j=>{let S=w.node(j);S.borderTop&&(S.minRank=w.node(S.borderTop).rank,S.maxRank=w.node(S.borderBottom).rank,y=Math.max(y,S.maxRank))}),w.graph().maxRank=y}function C(w){w.nodes().forEach(y=>{let j=w.node(y);j.dummy==="edge-proxy"&&(w.edge(j.e).labelRank=j.rank,w.removeNode(y))})}function T(w){let y=Number.POSITIVE_INFINITY,j=0,S=Number.POSITIVE_INFINITY,P=0,D=w.graph(),F=D.marginx||0,W=D.marginy||0;function Ze(z){let B=z.x,K=z.y,er=z.width,rr=z.height;y=Math.min(y,B-er/2),j=Math.max(j,B+er/2),S=Math.min(S,K-rr/2),P=Math.max(P,K+rr/2)}w.nodes().forEach(z=>Ze(w.node(z))),w.edges().forEach(z=>{let B=w.edge(z);Object.hasOwn(B,"x")&&Ze(B)}),y-=F,S-=W,w.nodes().forEach(z=>{let B=w.node(z);B.x-=y,B.y-=S}),w.edges().forEach(z=>{let B=w.edge(z);B.points.forEach(K=>{K.x-=y,K.y-=S}),Object.hasOwn(B,"x")&&(B.x-=y),Object.hasOwn(B,"y")&&(B.y-=S)}),D.width=j-y+F,D.height=P-S+W}function M(w){w.edges().forEach(y=>{let j=w.edge(y),S=w.node(y.v),P=w.node(y.w),D,F;j.points?(D=j.points[0],F=j.points[j.points.length-1]):(j.points=[],D=P,F=S),j.points.unshift(t.intersectRect(S,D)),j.points.push(t.intersectRect(P,F))})}function G(w){w.edges().forEach(y=>{let j=w.edge(y);if(Object.hasOwn(j,"x"))switch((j.labelpos==="l"||j.labelpos==="r")&&(j.width-=j.labeloffset),j.labelpos){case"l":j.x-=j.width/2+j.labeloffset;break;case"r":j.x+=j.width/2+j.labeloffset;break}})}function $(w){w.edges().forEach(y=>{let j=w.edge(y);j.reversed&&j.points.reverse()})}function U(w){w.nodes().forEach(y=>{if(w.children(y).length){let j=w.node(y),S=w.node(j.borderTop),P=w.node(j.borderBottom),D=w.node(j.borderLeft[j.borderLeft.length-1]),F=w.node(j.borderRight[j.borderRight.length-1]);j.width=Math.abs(F.x-D.x),j.height=Math.abs(P.y-S.y),j.x=D.x+j.width/2,j.y=S.y+j.height/2}}),w.nodes().forEach(y=>{w.node(y).dummy==="border"&&w.removeNode(y)})}function at(w){w.edges().forEach(y=>{if(y.v===y.w){var j=w.node(y.v);j.selfEdges||(j.selfEdges=[]),j.selfEdges.push({e:y,label:w.edge(y)}),w.removeEdge(y)}})}function ot(w){var y=t.buildLayerMatrix(w);y.forEach(j=>{var S=0;j.forEach((P,D)=>{var F=w.node(P);F.order=D+S,(F.selfEdges||[]).forEach(W=>{t.addDummyNode(w,"selfedge",{width:W.label.width,height:W.label.height,rank:F.rank,order:D+ ++S,e:W.e,label:W.label},"_se")}),delete F.selfEdges})})}function lt(w){w.nodes().forEach(y=>{var j=w.node(y);if(j.dummy==="selfedge"){var S=w.node(j.e.v),P=S.x+S.width/2,D=S.y,F=j.x-P,W=S.height/2;w.setEdge(j.e,j.label),w.removeNode(y),j.label.points=[{x:P+2*F/3,y:D-W},{x:P+5*F/6,y:D-W},{x:P+F,y:D},{x:P+5*F/6,y:D+W},{x:P+2*F/3,y:D+W}],j.label.x=j.x,j.label.y=j.y}})}function re(w,y){return t.mapValues(t.pick(w,y),Number)}function te(w){var y={};return w&&Object.entries(w).forEach(([j,S])=>{typeof j=="string"&&(j=j.toLowerCase()),y[j]=S}),y}return $e}var Ue,Xr;function Qt(){if(Xr)return Ue;Xr=1;let m=V(),l=Y().Graph;Ue={debugOrdering:c};function c(d){let a=m.buildLayerMatrix(d),i=new l({compound:!0,multigraph:!0}).setGraph({});return d.nodes().forEach(e=>{i.setNode(e,{label:e}),i.setParent(e,"layer"+d.node(e).rank)}),d.edges().forEach(e=>i.setEdge(e.v,e.w,{},e.name)),a.forEach((e,o)=>{let n="layer"+o;i.setNode(n,{rank:"same"}),e.reduce((s,r)=>(i.setEdge(s,r,{style:"invis"}),r))}),i}return Ue}var He,Qr;function Kt(){return Qr||(Qr=1,He="1.1.8"),He}var Xe,Kr;function Jt(){return Kr||(Kr=1,Xe={graphlib:Y(),layout:Xt(),debug:Qt(),util:{time:V().time,notime:V().notime},version:Kt()}),Xe}var Zt=Jt();const Jr=ct(Zt),Ke=240,Zr=80;function hn(m,l,c,d,a){return m.filter(i=>{var e,o;return!((e=l==null?void 0:l.statuses)!=null&&e.size&&!l.statuses.has(i.status)||(o=l==null?void 0:l.types)!=null&&o.size&&!l.types.has(i.type))}).map(i=>{const e=c==null?void 0:c.get(i.id),o=e!=null&&e.length>0;return{id:i.id,type:"workflowNode",position:{x:0,y:0},data:{label:i.title,nodeType:i.type,status:i.status,priority:i.priority,xpSize:i.xpSize,sprint:i.sprint,sourceNode:i,hasChildren:o,isExpanded:(d==null?void 0:d.has(i.id))??!1,childCount:(e==null?void 0:e.length)??0,onExpand:a},style:{width:Ke,borderLeft:`4px solid ${Z[i.type]||"#6c757d"}`}}})}function fn(m,l){return m.filter(c=>l.has(c.from)&&l.has(c.to)).map(c=>{const d=H[c.relationType]||H.related_to;return{id:c.id,source:c.from,target:c.to,label:d.label,type:"workflowEdge",data:{relationType:c.relationType},style:{stroke:d.color,strokeDasharray:d.dashed?"5 5":void 0},labelStyle:{fontSize:10,fill:"#6c757d"}}})}function en(m,l,c){let d=0;const a=[c,...m,"|",...l];for(const i of a)for(let e=0;e<i.length;e++)d=(d<<5)-d+i.charCodeAt(e)|0;return d}function pn(m,l){if(m===null||m.length!==l.length)return!1;for(let c=0;c<m.length;c++)if(m[c]!==l[c])return!1;return!0}let J=null;function mn(m,l,c="TB"){const d=m.map(n=>n.id),a=l.map(n=>`${n.source}-${n.target}`),i=en(d,a,c);let e;if(J&&J.key===i)e=J.positions;else{const n=new Jr.graphlib.Graph;n.setDefaultEdgeLabel(()=>({})),n.setGraph({rankdir:c,ranksep:60,nodesep:40});for(const s of m)n.setNode(s.id,{width:Ke,height:Zr});for(const s of l)n.setEdge(s.source,s.target);Jr.layout(n),e=new Map;for(const s of m){const r=n.node(s.id);e.set(s.id,{x:r.x-Ke/2,y:r.y-Zr/2})}J={key:i,positions:e}}return{nodes:m.map(n=>{const s=e.get(n.id)??{x:0,y:0};return{...n,position:s}}),edges:l}}export{cn as N,un as W,ln as a,an as b,fn as c,mn as d,dn as e,on as g,pn as s,hn as t};
1
+ var dt=Object.defineProperty;var ut=(m,l,c)=>l in m?dt(m,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):m[l]=c;var A=(m,l,c)=>ut(m,typeof l!="symbol"?l+"":l,c);import{r as Q,j as L,g as ct}from"./index-DtkPX5ZZ.js";import{H as tr,P as nr,g as ht,c as ft,E as pt}from"./style-Da3qWU01.js";import{N as Z,S as Qe,E as H}from"./constants-z0QkAiYv.js";function an(m,l){const c=new Map,d=(i,e)=>{let o=c.get(i);o||(o=new Set,c.set(i,o)),o.add(e)};for(const i of m)i.parentId&&d(i.parentId,i.id);for(const i of l)i.relationType==="parent_of"?d(i.from,i.to):i.relationType==="child_of"&&d(i.to,i.from);const a=new Map;for(const[i,e]of c)a.set(i,[...e]);return a}function on(m,l,c){const d=new Map,a=new Set;for(const s of m)d.set(s.id,s),a.add(s.id);const i=m.filter(s=>!s.parentId||!a.has(s.parentId)),e=[],o=new Set,n=s=>{if(o.has(s))return;o.add(s);const r=d.get(s);if(r&&e.push(r),l.has(s)){const t=c.get(s)??[];for(const u of t)n(u)}};for(const s of i)n(s.id);return e}function ln(m,l){if(m.length===0)return[];const c=new Map,d=new Set;for(const n of m)c.set(n.id,n),d.add(n.id);const a=(n,s)=>{if(s.has(n))return null;s.add(n);const r=c.get(n);if(!r)return null;const t=l.get(n)??[],u=[];for(const h of t){const b=a(h,s);b&&u.push(b)}return{node:r,children:u}},i=m.filter(n=>!n.parentId||!d.has(n.parentId)),e=new Set,o=[];for(const n of i){const s=a(n.id,e);s&&o.push(s)}return o}const dn=Q.memo(function({data:l}){const c=Z[l.nodeType]||"#6c757d",d=Qe[l.status]||"#9e9e9e",a=Q.useCallback(i=>{var e;i.stopPropagation(),(e=l.onExpand)==null||e.call(l,l.sourceNode.id)},[l]);return L.jsxs(L.Fragment,{children:[L.jsx(tr,{type:"target",position:nr.Top,className:"!w-2 !h-2"}),L.jsxs("div",{className:"bg-[var(--color-bg)] border border-[var(--color-border)] rounded-lg shadow-sm hover:shadow-md transition-shadow cursor-pointer min-w-[200px]",children:[L.jsxs("div",{className:"p-2.5",children:[L.jsxs("div",{className:"flex items-center justify-between mb-1",children:[L.jsx("span",{className:"text-[10px] font-semibold uppercase px-1.5 py-0.5 rounded",style:{background:`${c}20`,color:c},children:l.nodeType}),L.jsx("span",{className:"text-[10px] font-medium px-1.5 py-0.5 rounded-full",style:{background:`${d}20`,color:d},children:l.status.replace("_"," ")})]}),L.jsx("div",{className:"text-sm font-medium leading-tight line-clamp-2 mb-1",children:l.label}),L.jsxs("div",{className:"flex items-center gap-2 text-[10px] text-[var(--color-text-muted)]",children:[L.jsxs("span",{children:["P",l.priority]}),l.xpSize&&L.jsx("span",{children:l.xpSize}),l.sprint&&L.jsx("span",{children:l.sprint})]})]}),l.hasChildren&&L.jsxs("button",{onClick:a,className:"w-full flex items-center justify-center gap-1.5 py-1.5 text-xs font-medium border-t border-[var(--color-border)] text-[var(--color-text-muted)] hover:text-[var(--color-text)] hover:bg-[var(--color-bg-tertiary)] transition-colors rounded-b-lg",title:l.isExpanded?"Collapse children":"Expand children",children:[L.jsx("span",{children:l.isExpanded?"▼":"▶"}),L.jsxs("span",{children:[l.childCount," ",l.childCount===1?"child":"children"]})]})]}),L.jsx(tr,{type:"source",position:nr.Bottom,className:"!w-2 !h-2"})]})}),un=Q.memo(function({id:l,sourceX:c,sourceY:d,targetX:a,targetY:i,sourcePosition:e,targetPosition:o,data:n,style:s={}}){const[r,t,u]=ht({sourceX:c,sourceY:d,sourcePosition:e,targetX:a,targetY:i,targetPosition:o}),h=(n==null?void 0:n.relationType)||"related_to",b=H[h]||H.related_to;return L.jsxs(L.Fragment,{children:[L.jsx(ft,{id:l,path:r,style:{...s,stroke:b.color,strokeDasharray:b.dashed?"5 5":void 0,strokeWidth:1.5}}),L.jsx(pt,{children:L.jsx("div",{className:"text-[9px] text-[var(--color-text-muted)] bg-[var(--color-bg)] px-1 rounded pointer-events-none absolute",style:{transform:`translate(-50%, -50%) translate(${t}px,${u}px)`},children:b.label})})]})});function mt(m,l){const c=[],d=[];for(const a of l)a.from===m&&c.push(a),a.to===m&&d.push(a);return{outgoing:c,incoming:d}}const cn=Q.memo(function({node:l,edges:c=[],allNodes:d=[],childrenMap:a,onClose:i,onNodeNavigate:e}){if(!l)return null;const o=Z[l.type]||"#6c757d",n=Qe[l.status]||"#9e9e9e",s=Q.useMemo(()=>mt(l.id,c),[l.id,c]),r=Q.useMemo(()=>{const u=new Map;for(const h of d)u.set(h.id,h);return u},[d]),t=s.outgoing.length>0||s.incoming.length>0;return L.jsxs("div",{className:"w-80 border-l border-[var(--color-border)] bg-[var(--color-bg-secondary)] overflow-y-auto p-4",children:[L.jsxs("div",{className:"flex items-center justify-between mb-3",children:[L.jsx("h3",{className:"text-sm font-bold",children:"Node Details"}),L.jsx("button",{onClick:i,className:"text-[var(--color-text-muted)] hover:text-[var(--color-text)] text-lg leading-none",children:"×"})]}),L.jsx("h4",{className:"text-base font-semibold mb-3",children:l.title}),L.jsxs("div",{className:"space-y-2 text-sm",children:[L.jsx(X,{label:"ID",children:L.jsx("code",{className:"text-xs bg-[var(--color-bg-tertiary)] px-1 rounded break-all",children:l.id})}),L.jsx(X,{label:"Type",children:L.jsx("span",{className:"px-2 py-0.5 rounded text-xs font-medium",style:{background:`${o}20`,color:o},children:l.type})}),L.jsx(X,{label:"Status",children:L.jsx("span",{className:"px-2 py-0.5 rounded-full text-xs font-medium",style:{background:`${n}20`,color:n},children:l.status.replace("_"," ")})}),L.jsxs(X,{label:"Priority",children:["P",l.priority]}),l.xpSize&&L.jsx(X,{label:"Size",children:l.xpSize}),l.estimateMinutes!=null&&L.jsxs(X,{label:"Estimate",children:[l.estimateMinutes,"min"]}),l.sprint&&L.jsx(X,{label:"Sprint",children:l.sprint}),l.description&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Description"}),L.jsx("p",{className:"text-xs whitespace-pre-wrap",children:l.description})]}),a&&(()=>{const u=a.get(l.id)??[];return u.length===0?null:L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsxs("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:["Children (",u.length,")"]}),L.jsx("div",{className:"space-y-1",children:u.map(h=>{const b=r.get(h);if(!b)return null;const N=Qe[b.status]||"#9e9e9e",p=Z[b.type]||"#6c757d";return L.jsxs("button",{onClick:()=>e==null?void 0:e(h),className:"w-full text-left flex items-center gap-1.5 px-1.5 py-1 rounded hover:bg-[var(--color-bg-tertiary)] transition-colors text-xs",children:[L.jsx("span",{className:"w-2 h-2 rounded-full shrink-0",style:{background:N}}),L.jsx("span",{className:"text-[9px] px-1 rounded shrink-0",style:{background:`${p}20`,color:p},children:b.type}),L.jsx("span",{className:"truncate font-medium",children:b.title})]},h)})})]})})(),t&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsxs("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:["Relationships (",s.outgoing.length+s.incoming.length,")"]}),L.jsxs("div",{className:"space-y-1",children:[s.outgoing.map(u=>{const h=r.get(u.to),b=H[u.relationType]||H.related_to;return L.jsx(ir,{direction:"out",label:b.label,color:b.color,targetTitle:(h==null?void 0:h.title)??u.to,targetId:u.to,onNavigate:e},u.id)}),s.incoming.map(u=>{const h=r.get(u.from),b=H[u.relationType]||H.related_to;return L.jsx(ir,{direction:"in",label:b.label,color:b.color,targetTitle:(h==null?void 0:h.title)??u.from,targetId:u.from,onNavigate:e},u.id)})]})]}),l.acceptanceCriteria&&l.acceptanceCriteria.length>0&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsxs("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:["Acceptance Criteria (",l.acceptanceCriteria.length,")"]}),L.jsx("ul",{className:"text-xs space-y-1 list-disc pl-4",children:l.acceptanceCriteria.map((u,h)=>L.jsx("li",{children:u},h))})]}),l.tags&&l.tags.length>0&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Tags"}),L.jsx("div",{className:"flex flex-wrap gap-1",children:l.tags.map(u=>L.jsx("span",{className:"text-[10px] bg-[var(--color-bg-tertiary)] px-1.5 py-0.5 rounded",children:u},u))})]}),l.sourceRef&&L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)]",children:[L.jsx("div",{className:"text-xs font-medium text-[var(--color-text-muted)] mb-1",children:"Source"}),L.jsxs("div",{className:"text-xs",children:[l.sourceRef.file,l.sourceRef.startLine!=null&&` (L${l.sourceRef.startLine}–${l.sourceRef.endLine??"?"})`]})]}),L.jsxs("div",{className:"pt-2 border-t border-[var(--color-border)] text-[10px] text-[var(--color-text-muted)]",children:[L.jsxs("div",{children:["Created: ",new Date(l.createdAt).toLocaleString()]}),L.jsxs("div",{children:["Updated: ",new Date(l.updatedAt).toLocaleString()]})]})]})]})});function X({label:m,children:l}){return L.jsxs("div",{className:"flex items-start justify-between gap-2",children:[L.jsx("span",{className:"text-xs text-[var(--color-text-muted)] shrink-0",children:m}),L.jsx("div",{className:"text-right",children:l})]})}function ir({direction:m,label:l,color:c,targetTitle:d,targetId:a,onNavigate:i}){const e=m==="out"?"→":"←";return L.jsxs("button",{onClick:()=>i==null?void 0:i(a),className:"w-full text-left flex items-center gap-1.5 px-1.5 py-1 rounded hover:bg-[var(--color-bg-tertiary)] transition-colors text-xs",children:[L.jsx("span",{style:{color:c},children:e}),L.jsx("span",{className:"text-[10px] text-[var(--color-text-muted)]",children:l}),L.jsx("span",{className:"truncate font-medium",children:d})]})}var ne,sr;function Je(){if(sr)return ne;sr=1;var m="\0",l="\0",c="";class d{constructor(r){A(this,"_isDirected",!0);A(this,"_isMultigraph",!1);A(this,"_isCompound",!1);A(this,"_label");A(this,"_defaultNodeLabelFn",()=>{});A(this,"_defaultEdgeLabelFn",()=>{});A(this,"_nodes",{});A(this,"_in",{});A(this,"_preds",{});A(this,"_out",{});A(this,"_sucs",{});A(this,"_edgeObjs",{});A(this,"_edgeLabels",{});A(this,"_nodeCount",0);A(this,"_edgeCount",0);A(this,"_parent");A(this,"_children");r&&(this._isDirected=Object.hasOwn(r,"directed")?r.directed:!0,this._isMultigraph=Object.hasOwn(r,"multigraph")?r.multigraph:!1,this._isCompound=Object.hasOwn(r,"compound")?r.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[l]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(r){return this._label=r,this}graph(){return this._label}setDefaultNodeLabel(r){return this._defaultNodeLabelFn=r,typeof r!="function"&&(this._defaultNodeLabelFn=()=>r),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var r=this;return this.nodes().filter(t=>Object.keys(r._in[t]).length===0)}sinks(){var r=this;return this.nodes().filter(t=>Object.keys(r._out[t]).length===0)}setNodes(r,t){var u=arguments,h=this;return r.forEach(function(b){u.length>1?h.setNode(b,t):h.setNode(b)}),this}setNode(r,t){return Object.hasOwn(this._nodes,r)?(arguments.length>1&&(this._nodes[r]=t),this):(this._nodes[r]=arguments.length>1?t:this._defaultNodeLabelFn(r),this._isCompound&&(this._parent[r]=l,this._children[r]={},this._children[l][r]=!0),this._in[r]={},this._preds[r]={},this._out[r]={},this._sucs[r]={},++this._nodeCount,this)}node(r){return this._nodes[r]}hasNode(r){return Object.hasOwn(this._nodes,r)}removeNode(r){var t=this;if(Object.hasOwn(this._nodes,r)){var u=h=>t.removeEdge(t._edgeObjs[h]);delete this._nodes[r],this._isCompound&&(this._removeFromParentsChildList(r),delete this._parent[r],this.children(r).forEach(function(h){t.setParent(h)}),delete this._children[r]),Object.keys(this._in[r]).forEach(u),delete this._in[r],delete this._preds[r],Object.keys(this._out[r]).forEach(u),delete this._out[r],delete this._sucs[r],--this._nodeCount}return this}setParent(r,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t=l;else{t+="";for(var u=t;u!==void 0;u=this.parent(u))if(u===r)throw new Error("Setting "+t+" as parent of "+r+" would create a cycle");this.setNode(t)}return this.setNode(r),this._removeFromParentsChildList(r),this._parent[r]=t,this._children[t][r]=!0,this}_removeFromParentsChildList(r){delete this._children[this._parent[r]][r]}parent(r){if(this._isCompound){var t=this._parent[r];if(t!==l)return t}}children(r=l){if(this._isCompound){var t=this._children[r];if(t)return Object.keys(t)}else{if(r===l)return this.nodes();if(this.hasNode(r))return[]}}predecessors(r){var t=this._preds[r];if(t)return Object.keys(t)}successors(r){var t=this._sucs[r];if(t)return Object.keys(t)}neighbors(r){var t=this.predecessors(r);if(t){const h=new Set(t);for(var u of this.successors(r))h.add(u);return Array.from(h.values())}}isLeaf(r){var t;return this.isDirected()?t=this.successors(r):t=this.neighbors(r),t.length===0}filterNodes(r){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var u=this;Object.entries(this._nodes).forEach(function([N,p]){r(N)&&t.setNode(N,p)}),Object.values(this._edgeObjs).forEach(function(N){t.hasNode(N.v)&&t.hasNode(N.w)&&t.setEdge(N,u.edge(N))});var h={};function b(N){var p=u.parent(N);return p===void 0||t.hasNode(p)?(h[N]=p,p):p in h?h[p]:b(p)}return this._isCompound&&t.nodes().forEach(N=>t.setParent(N,b(N))),t}setDefaultEdgeLabel(r){return this._defaultEdgeLabelFn=r,typeof r!="function"&&(this._defaultEdgeLabelFn=()=>r),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(r,t){var u=this,h=arguments;return r.reduce(function(b,N){return h.length>1?u.setEdge(b,N,t):u.setEdge(b,N),N}),this}setEdge(){var r,t,u,h,b=!1,N=arguments[0];typeof N=="object"&&N!==null&&"v"in N?(r=N.v,t=N.w,u=N.name,arguments.length===2&&(h=arguments[1],b=!0)):(r=N,t=arguments[1],u=arguments[3],arguments.length>2&&(h=arguments[2],b=!0)),r=""+r,t=""+t,u!==void 0&&(u=""+u);var p=e(this._isDirected,r,t,u);if(Object.hasOwn(this._edgeLabels,p))return b&&(this._edgeLabels[p]=h),this;if(u!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(r),this.setNode(t),this._edgeLabels[p]=b?h:this._defaultEdgeLabelFn(r,t,u);var E=o(this._isDirected,r,t,u);return r=E.v,t=E.w,Object.freeze(E),this._edgeObjs[p]=E,a(this._preds[t],r),a(this._sucs[r],t),this._in[t][p]=E,this._out[r][p]=E,this._edgeCount++,this}edge(r,t,u){var h=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,u);return this._edgeLabels[h]}edgeAsObj(){const r=this.edge(...arguments);return typeof r!="object"?{label:r}:r}hasEdge(r,t,u){var h=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,u);return Object.hasOwn(this._edgeLabels,h)}removeEdge(r,t,u){var h=arguments.length===1?n(this._isDirected,arguments[0]):e(this._isDirected,r,t,u),b=this._edgeObjs[h];return b&&(r=b.v,t=b.w,delete this._edgeLabels[h],delete this._edgeObjs[h],i(this._preds[t],r),i(this._sucs[r],t),delete this._in[t][h],delete this._out[r][h],this._edgeCount--),this}inEdges(r,t){var u=this._in[r];if(u){var h=Object.values(u);return t?h.filter(b=>b.v===t):h}}outEdges(r,t){var u=this._out[r];if(u){var h=Object.values(u);return t?h.filter(b=>b.w===t):h}}nodeEdges(r,t){var u=this.inEdges(r,t);if(u)return u.concat(this.outEdges(r,t))}}function a(s,r){s[r]?s[r]++:s[r]=1}function i(s,r){--s[r]||delete s[r]}function e(s,r,t,u){var h=""+r,b=""+t;if(!s&&h>b){var N=h;h=b,b=N}return h+c+b+c+(u===void 0?m:u)}function o(s,r,t,u){var h=""+r,b=""+t;if(!s&&h>b){var N=h;h=b,b=N}var p={v:h,w:b};return u&&(p.name=u),p}function n(s,r){return e(s,r.v,r.w,r.name)}return ne=d,ne}var ie,ar;function bt(){return ar||(ar=1,ie="2.2.4"),ie}var se,or;function gt(){return or||(or=1,se={Graph:Je(),version:bt()}),se}var ae,lr;function vt(){if(lr)return ae;lr=1;var m=Je();ae={write:l,read:a};function l(i){var e={options:{directed:i.isDirected(),multigraph:i.isMultigraph(),compound:i.isCompound()},nodes:c(i),edges:d(i)};return i.graph()!==void 0&&(e.value=structuredClone(i.graph())),e}function c(i){return i.nodes().map(function(e){var o=i.node(e),n=i.parent(e),s={v:e};return o!==void 0&&(s.value=o),n!==void 0&&(s.parent=n),s})}function d(i){return i.edges().map(function(e){var o=i.edge(e),n={v:e.v,w:e.w};return e.name!==void 0&&(n.name=e.name),o!==void 0&&(n.value=o),n})}function a(i){var e=new m(i.options).setGraph(i.value);return i.nodes.forEach(function(o){e.setNode(o.v,o.value),o.parent&&e.setParent(o.v,o.parent)}),i.edges.forEach(function(o){e.setEdge({v:o.v,w:o.w,name:o.name},o.value)}),e}return ae}var oe,dr;function wt(){if(dr)return oe;dr=1,oe=m;function m(l){var c={},d=[],a;function i(e){Object.hasOwn(c,e)||(c[e]=!0,a.push(e),l.successors(e).forEach(i),l.predecessors(e).forEach(i))}return l.nodes().forEach(function(e){a=[],i(e),a.length&&d.push(a)}),d}return oe}var le,ur;function et(){if(ur)return le;ur=1;class m{constructor(){A(this,"_arr",[]);A(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(c){return c.key})}has(c){return Object.hasOwn(this._keyIndices,c)}priority(c){var d=this._keyIndices[c];if(d!==void 0)return this._arr[d].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(c,d){var a=this._keyIndices;if(c=String(c),!Object.hasOwn(a,c)){var i=this._arr,e=i.length;return a[c]=e,i.push({key:c,priority:d}),this._decrease(e),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var c=this._arr.pop();return delete this._keyIndices[c.key],this._heapify(0),c.key}decrease(c,d){var a=this._keyIndices[c];if(d>this._arr[a].priority)throw new Error("New priority is greater than current priority. Key: "+c+" Old: "+this._arr[a].priority+" New: "+d);this._arr[a].priority=d,this._decrease(a)}_heapify(c){var d=this._arr,a=2*c,i=a+1,e=c;a<d.length&&(e=d[a].priority<d[e].priority?a:e,i<d.length&&(e=d[i].priority<d[e].priority?i:e),e!==c&&(this._swap(c,e),this._heapify(e)))}_decrease(c){for(var d=this._arr,a=d[c].priority,i;c!==0&&(i=c>>1,!(d[i].priority<a));)this._swap(c,i),c=i}_swap(c,d){var a=this._arr,i=this._keyIndices,e=a[c],o=a[d];a[c]=o,a[d]=e,i[o.key]=c,i[e.key]=d}}return le=m,le}var de,cr;function rt(){if(cr)return de;cr=1;var m=et();de=c;var l=()=>1;function c(a,i,e,o){return d(a,String(i),e||l,o||function(n){return a.outEdges(n)})}function d(a,i,e,o){var n={},s=new m,r,t,u=function(h){var b=h.v!==r?h.v:h.w,N=n[b],p=e(h),E=t.distance+p;if(p<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+p);E<N.distance&&(N.distance=E,N.predecessor=r,s.decrease(b,E))};for(a.nodes().forEach(function(h){var b=h===i?0:Number.POSITIVE_INFINITY;n[h]={distance:b},s.add(h,b)});s.size()>0&&(r=s.removeMin(),t=n[r],t.distance!==Number.POSITIVE_INFINITY);)o(r).forEach(u);return n}return de}var ue,hr;function Et(){if(hr)return ue;hr=1;var m=rt();ue=l;function l(c,d,a){return c.nodes().reduce(function(i,e){return i[e]=m(c,e,d,a),i},{})}return ue}var ce,fr;function tt(){if(fr)return ce;fr=1,ce=m;function m(l){var c=0,d=[],a={},i=[];function e(o){var n=a[o]={onStack:!0,lowlink:c,index:c++};if(d.push(o),l.successors(o).forEach(function(t){Object.hasOwn(a,t)?a[t].onStack&&(n.lowlink=Math.min(n.lowlink,a[t].index)):(e(t),n.lowlink=Math.min(n.lowlink,a[t].lowlink))}),n.lowlink===n.index){var s=[],r;do r=d.pop(),a[r].onStack=!1,s.push(r);while(o!==r);i.push(s)}}return l.nodes().forEach(function(o){Object.hasOwn(a,o)||e(o)}),i}return ce}var he,pr;function xt(){if(pr)return he;pr=1;var m=tt();he=l;function l(c){return m(c).filter(function(d){return d.length>1||d.length===1&&c.hasEdge(d[0],d[0])})}return he}var fe,mr;function yt(){if(mr)return fe;mr=1,fe=l;var m=()=>1;function l(d,a,i){return c(d,a||m,i||function(e){return d.outEdges(e)})}function c(d,a,i){var e={},o=d.nodes();return o.forEach(function(n){e[n]={},e[n][n]={distance:0},o.forEach(function(s){n!==s&&(e[n][s]={distance:Number.POSITIVE_INFINITY})}),i(n).forEach(function(s){var r=s.v===n?s.w:s.v,t=a(s);e[n][r]={distance:t,predecessor:n}})}),o.forEach(function(n){var s=e[n];o.forEach(function(r){var t=e[r];o.forEach(function(u){var h=t[n],b=s[u],N=t[u],p=h.distance+b.distance;p<N.distance&&(N.distance=p,N.predecessor=b.predecessor)})})}),e}return fe}var pe,br;function nt(){if(br)return pe;br=1;function m(c){var d={},a={},i=[];function e(o){if(Object.hasOwn(a,o))throw new l;Object.hasOwn(d,o)||(a[o]=!0,d[o]=!0,c.predecessors(o).forEach(e),delete a[o],i.push(o))}if(c.sinks().forEach(e),Object.keys(d).length!==c.nodeCount())throw new l;return i}class l extends Error{constructor(){super(...arguments)}}return pe=m,m.CycleException=l,pe}var me,gr;function _t(){if(gr)return me;gr=1;var m=nt();me=l;function l(c){try{m(c)}catch(d){if(d instanceof m.CycleException)return!1;throw d}return!0}return me}var be,vr;function it(){if(vr)return be;vr=1,be=m;function m(a,i,e){Array.isArray(i)||(i=[i]);var o=a.isDirected()?t=>a.successors(t):t=>a.neighbors(t),n=e==="post"?l:c,s=[],r={};return i.forEach(t=>{if(!a.hasNode(t))throw new Error("Graph does not have node: "+t);n(t,o,r,s)}),s}function l(a,i,e,o){for(var n=[[a,!1]];n.length>0;){var s=n.pop();s[1]?o.push(s[0]):Object.hasOwn(e,s[0])||(e[s[0]]=!0,n.push([s[0],!0]),d(i(s[0]),r=>n.push([r,!1])))}}function c(a,i,e,o){for(var n=[a];n.length>0;){var s=n.pop();Object.hasOwn(e,s)||(e[s]=!0,o.push(s),d(i(s),r=>n.push(r)))}}function d(a,i){for(var e=a.length;e--;)i(a[e],e,a);return a}return be}var ge,wr;function kt(){if(wr)return ge;wr=1;var m=it();ge=l;function l(c,d){return m(c,d,"post")}return ge}var ve,Er;function Nt(){if(Er)return ve;Er=1;var m=it();ve=l;function l(c,d){return m(c,d,"pre")}return ve}var we,xr;function jt(){if(xr)return we;xr=1;var m=Je(),l=et();we=c;function c(d,a){var i=new m,e={},o=new l,n;function s(t){var u=t.v===n?t.w:t.v,h=o.priority(u);if(h!==void 0){var b=a(t);b<h&&(e[u]=n,o.decrease(u,b))}}if(d.nodeCount()===0)return i;d.nodes().forEach(function(t){o.add(t,Number.POSITIVE_INFINITY),i.setNode(t)}),o.decrease(d.nodes()[0],0);for(var r=!1;o.size()>0;){if(n=o.removeMin(),Object.hasOwn(e,n))i.setEdge(n,e[n]);else{if(r)throw new Error("Input graph is not connected: "+d);r=!0}d.nodeEdges(n).forEach(s)}return i}return we}var Ee,yr;function Ot(){return yr||(yr=1,Ee={components:wt(),dijkstra:rt(),dijkstraAll:Et(),findCycles:xt(),floydWarshall:yt(),isAcyclic:_t(),postorder:kt(),preorder:Nt(),prim:jt(),tarjan:tt(),topsort:nt()}),Ee}var xe,_r;function Y(){if(_r)return xe;_r=1;var m=gt();return xe={Graph:m.Graph,json:vt(),alg:Ot(),version:m.version},xe}var ye,kr;function Ct(){if(kr)return ye;kr=1;class m{constructor(){let a={};a._next=a._prev=a,this._sentinel=a}dequeue(){let a=this._sentinel,i=a._prev;if(i!==a)return l(i),i}enqueue(a){let i=this._sentinel;a._prev&&a._next&&l(a),a._next=i._next,i._next._prev=a,i._next=a,a._prev=i}toString(){let a=[],i=this._sentinel,e=i._prev;for(;e!==i;)a.push(JSON.stringify(e,c)),e=e._prev;return"["+a.join(", ")+"]"}}function l(d){d._prev._next=d._next,d._next._prev=d._prev,delete d._next,delete d._prev}function c(d,a){if(d!=="_next"&&d!=="_prev")return a}return ye=m,ye}var _e,Nr;function Rt(){if(Nr)return _e;Nr=1;let m=Y().Graph,l=Ct();_e=d;let c=()=>1;function d(s,r){if(s.nodeCount()<=1)return[];let t=e(s,r||c);return a(t.graph,t.buckets,t.zeroIdx).flatMap(h=>s.outEdges(h.v,h.w))}function a(s,r,t){let u=[],h=r[r.length-1],b=r[0],N;for(;s.nodeCount();){for(;N=b.dequeue();)i(s,r,t,N);for(;N=h.dequeue();)i(s,r,t,N);if(s.nodeCount()){for(let p=r.length-2;p>0;--p)if(N=r[p].dequeue(),N){u=u.concat(i(s,r,t,N,!0));break}}}return u}function i(s,r,t,u,h){let b=h?[]:void 0;return s.inEdges(u.v).forEach(N=>{let p=s.edge(N),E=s.node(N.v);h&&b.push({v:N.v,w:N.w}),E.out-=p,o(r,t,E)}),s.outEdges(u.v).forEach(N=>{let p=s.edge(N),E=N.w,g=s.node(E);g.in-=p,o(r,t,g)}),s.removeNode(u.v),b}function e(s,r){let t=new m,u=0,h=0;s.nodes().forEach(p=>{t.setNode(p,{v:p,in:0,out:0})}),s.edges().forEach(p=>{let E=t.edge(p.v,p.w)||0,g=r(p),k=E+g;t.setEdge(p.v,p.w,k),h=Math.max(h,t.node(p.v).out+=g),u=Math.max(u,t.node(p.w).in+=g)});let b=n(h+u+3).map(()=>new l),N=u+1;return t.nodes().forEach(p=>{o(b,N,t.node(p))}),{graph:t,buckets:b,zeroIdx:N}}function o(s,r,t){t.out?t.in?s[t.out-t.in+r].enqueue(t):s[s.length-1].enqueue(t):s[0].enqueue(t)}function n(s){const r=[];for(let t=0;t<s;t++)r.push(t);return r}return _e}var ke,jr;function V(){if(jr)return ke;jr=1;let m=Y().Graph;ke={addBorderNode:r,addDummyNode:l,applyWithChunking:h,asNonCompoundGraph:d,buildLayerMatrix:o,intersectRect:e,mapValues:I,maxRank:b,normalizeRanks:n,notime:E,partition:N,pick:R,predecessorWeights:i,range:O,removeEmptyRanks:s,simplify:c,successorWeights:a,time:p,uniqueId:k,zipObject:q};function l(f,v,x,_){for(var C=_;f.hasNode(C);)C=k(_);return x.dummy=v,f.setNode(C,x),C}function c(f){let v=new m().setGraph(f.graph());return f.nodes().forEach(x=>v.setNode(x,f.node(x))),f.edges().forEach(x=>{let _=v.edge(x.v,x.w)||{weight:0,minlen:1},C=f.edge(x);v.setEdge(x.v,x.w,{weight:_.weight+C.weight,minlen:Math.max(_.minlen,C.minlen)})}),v}function d(f){let v=new m({multigraph:f.isMultigraph()}).setGraph(f.graph());return f.nodes().forEach(x=>{f.children(x).length||v.setNode(x,f.node(x))}),f.edges().forEach(x=>{v.setEdge(x,f.edge(x))}),v}function a(f){let v=f.nodes().map(x=>{let _={};return f.outEdges(x).forEach(C=>{_[C.w]=(_[C.w]||0)+f.edge(C).weight}),_});return q(f.nodes(),v)}function i(f){let v=f.nodes().map(x=>{let _={};return f.inEdges(x).forEach(C=>{_[C.v]=(_[C.v]||0)+f.edge(C).weight}),_});return q(f.nodes(),v)}function e(f,v){let x=f.x,_=f.y,C=v.x-x,T=v.y-_,M=f.width/2,G=f.height/2;if(!C&&!T)throw new Error("Not possible to find intersection inside of the rectangle");let $,U;return Math.abs(T)*M>Math.abs(C)*G?(T<0&&(G=-G),$=G*C/T,U=G):(C<0&&(M=-M),$=M,U=M*T/C),{x:x+$,y:_+U}}function o(f){let v=O(b(f)+1).map(()=>[]);return f.nodes().forEach(x=>{let _=f.node(x),C=_.rank;C!==void 0&&(v[C][_.order]=x)}),v}function n(f){let v=f.nodes().map(_=>{let C=f.node(_).rank;return C===void 0?Number.MAX_VALUE:C}),x=h(Math.min,v);f.nodes().forEach(_=>{let C=f.node(_);Object.hasOwn(C,"rank")&&(C.rank-=x)})}function s(f){let v=f.nodes().map(M=>f.node(M).rank),x=h(Math.min,v),_=[];f.nodes().forEach(M=>{let G=f.node(M).rank-x;_[G]||(_[G]=[]),_[G].push(M)});let C=0,T=f.graph().nodeRankFactor;Array.from(_).forEach((M,G)=>{M===void 0&&G%T!==0?--C:M!==void 0&&C&&M.forEach($=>f.node($).rank+=C)})}function r(f,v,x,_){let C={width:0,height:0};return arguments.length>=4&&(C.rank=x,C.order=_),l(f,"border",C,v)}function t(f,v=u){const x=[];for(let _=0;_<f.length;_+=v){const C=f.slice(_,_+v);x.push(C)}return x}const u=65535;function h(f,v){if(v.length>u){const x=t(v);return f.apply(null,x.map(_=>f.apply(null,_)))}else return f.apply(null,v)}function b(f){const x=f.nodes().map(_=>{let C=f.node(_).rank;return C===void 0?Number.MIN_VALUE:C});return h(Math.max,x)}function N(f,v){let x={lhs:[],rhs:[]};return f.forEach(_=>{v(_)?x.lhs.push(_):x.rhs.push(_)}),x}function p(f,v){let x=Date.now();try{return v()}finally{console.log(f+" time: "+(Date.now()-x)+"ms")}}function E(f,v){return v()}let g=0;function k(f){var v=++g;return f+(""+v)}function O(f,v,x=1){v==null&&(v=f,f=0);let _=T=>T<v;x<0&&(_=T=>v<T);const C=[];for(let T=f;_(T);T+=x)C.push(T);return C}function R(f,v){const x={};for(const _ of v)f[_]!==void 0&&(x[_]=f[_]);return x}function I(f,v){let x=v;return typeof v=="string"&&(x=_=>_[v]),Object.entries(f).reduce((_,[C,T])=>(_[C]=x(T,C),_),{})}function q(f,v){return f.reduce((x,_,C)=>(x[_]=v[C],x),{})}return ke}var Ne,Or;function It(){if(Or)return Ne;Or=1;let m=Rt(),l=V().uniqueId;Ne={run:c,undo:a};function c(i){(i.graph().acyclicer==="greedy"?m(i,o(i)):d(i)).forEach(n=>{let s=i.edge(n);i.removeEdge(n),s.forwardName=n.name,s.reversed=!0,i.setEdge(n.w,n.v,s,l("rev"))});function o(n){return s=>n.edge(s).weight}}function d(i){let e=[],o={},n={};function s(r){Object.hasOwn(n,r)||(n[r]=!0,o[r]=!0,i.outEdges(r).forEach(t=>{Object.hasOwn(o,t.w)?e.push(t):s(t.w)}),delete o[r])}return i.nodes().forEach(s),e}function a(i){i.edges().forEach(e=>{let o=i.edge(e);if(o.reversed){i.removeEdge(e);let n=o.forwardName;delete o.reversed,delete o.forwardName,i.setEdge(e.w,e.v,o,n)}})}return Ne}var je,Cr;function Lt(){if(Cr)return je;Cr=1;let m=V();je={run:l,undo:d};function l(a){a.graph().dummyChains=[],a.edges().forEach(i=>c(a,i))}function c(a,i){let e=i.v,o=a.node(e).rank,n=i.w,s=a.node(n).rank,r=i.name,t=a.edge(i),u=t.labelRank;if(s===o+1)return;a.removeEdge(i);let h,b,N;for(N=0,++o;o<s;++N,++o)t.points=[],b={width:0,height:0,edgeLabel:t,edgeObj:i,rank:o},h=m.addDummyNode(a,"edge",b,"_d"),o===u&&(b.width=t.width,b.height=t.height,b.dummy="edge-label",b.labelpos=t.labelpos),a.setEdge(e,h,{weight:t.weight},r),N===0&&a.graph().dummyChains.push(h),e=h;a.setEdge(e,n,{weight:t.weight},r)}function d(a){a.graph().dummyChains.forEach(i=>{let e=a.node(i),o=e.edgeLabel,n;for(a.setEdge(e.edgeObj,o);e.dummy;)n=a.successors(i)[0],a.removeNode(i),o.points.push({x:e.x,y:e.y}),e.dummy==="edge-label"&&(o.x=e.x,o.y=e.y,o.width=e.width,o.height=e.height),i=n,e=a.node(i)})}return je}var Oe,Rr;function ee(){if(Rr)return Oe;Rr=1;const{applyWithChunking:m}=V();Oe={longestPath:l,slack:c};function l(d){var a={};function i(e){var o=d.node(e);if(Object.hasOwn(a,e))return o.rank;a[e]=!0;let n=d.outEdges(e).map(r=>r==null?Number.POSITIVE_INFINITY:i(r.w)-d.edge(r).minlen);var s=m(Math.min,n);return s===Number.POSITIVE_INFINITY&&(s=0),o.rank=s}d.sources().forEach(i)}function c(d,a){return d.node(a.w).rank-d.node(a.v).rank-d.edge(a).minlen}return Oe}var Ce,Ir;function st(){if(Ir)return Ce;Ir=1;var m=Y().Graph,l=ee().slack;Ce=c;function c(e){var o=new m({directed:!1}),n=e.nodes()[0],s=e.nodeCount();o.setNode(n,{});for(var r,t;d(o,e)<s;)r=a(o,e),t=o.hasNode(r.v)?l(e,r):-l(e,r),i(o,e,t);return o}function d(e,o){function n(s){o.nodeEdges(s).forEach(r=>{var t=r.v,u=s===t?r.w:t;!e.hasNode(u)&&!l(o,r)&&(e.setNode(u,{}),e.setEdge(s,u,{}),n(u))})}return e.nodes().forEach(n),e.nodeCount()}function a(e,o){return o.edges().reduce((s,r)=>{let t=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(t=l(o,r)),t<s[0]?[t,r]:s},[Number.POSITIVE_INFINITY,null])[1]}function i(e,o,n){e.nodes().forEach(s=>o.node(s).rank+=n)}return Ce}var Re,Lr;function St(){if(Lr)return Re;Lr=1;var m=st(),l=ee().slack,c=ee().longestPath,d=Y().alg.preorder,a=Y().alg.postorder,i=V().simplify;Re=e,e.initLowLimValues=r,e.initCutValues=o,e.calcCutValue=s,e.leaveEdge=u,e.enterEdge=h,e.exchangeEdges=b;function e(g){g=i(g),c(g);var k=m(g);r(k),o(k,g);for(var O,R;O=u(k);)R=h(k,g,O),b(k,g,O,R)}function o(g,k){var O=a(g,g.nodes());O=O.slice(0,O.length-1),O.forEach(R=>n(g,k,R))}function n(g,k,O){var R=g.node(O),I=R.parent;g.edge(O,I).cutvalue=s(g,k,O)}function s(g,k,O){var R=g.node(O),I=R.parent,q=!0,f=k.edge(O,I),v=0;return f||(q=!1,f=k.edge(I,O)),v=f.weight,k.nodeEdges(O).forEach(x=>{var _=x.v===O,C=_?x.w:x.v;if(C!==I){var T=_===q,M=k.edge(x).weight;if(v+=T?M:-M,p(g,O,C)){var G=g.edge(O,C).cutvalue;v+=T?-G:G}}}),v}function r(g,k){arguments.length<2&&(k=g.nodes()[0]),t(g,{},1,k)}function t(g,k,O,R,I){var q=O,f=g.node(R);return k[R]=!0,g.neighbors(R).forEach(v=>{Object.hasOwn(k,v)||(O=t(g,k,O,v,R))}),f.low=q,f.lim=O++,I?f.parent=I:delete f.parent,O}function u(g){return g.edges().find(k=>g.edge(k).cutvalue<0)}function h(g,k,O){var R=O.v,I=O.w;k.hasEdge(R,I)||(R=O.w,I=O.v);var q=g.node(R),f=g.node(I),v=q,x=!1;q.lim>f.lim&&(v=f,x=!0);var _=k.edges().filter(C=>x===E(g,g.node(C.v),v)&&x!==E(g,g.node(C.w),v));return _.reduce((C,T)=>l(k,T)<l(k,C)?T:C)}function b(g,k,O,R){var I=O.v,q=O.w;g.removeEdge(I,q),g.setEdge(R.v,R.w,{}),r(g),o(g,k),N(g,k)}function N(g,k){var O=g.nodes().find(I=>!k.node(I).parent),R=d(g,O);R=R.slice(1),R.forEach(I=>{var q=g.node(I).parent,f=k.edge(I,q),v=!1;f||(f=k.edge(q,I),v=!0),k.node(I).rank=k.node(q).rank+(v?f.minlen:-f.minlen)})}function p(g,k,O){return g.hasEdge(k,O)}function E(g,k,O){return O.low<=k.lim&&k.lim<=O.lim}return Re}var Ie,Sr;function qt(){if(Sr)return Ie;Sr=1;var m=ee(),l=m.longestPath,c=st(),d=St();Ie=a;function a(n){var s=n.graph().ranker;if(s instanceof Function)return s(n);switch(n.graph().ranker){case"network-simplex":o(n);break;case"tight-tree":e(n);break;case"longest-path":i(n);break;case"none":break;default:o(n)}}var i=l;function e(n){l(n),c(n)}function o(n){d(n)}return Ie}var Le,qr;function Tt(){if(qr)return Le;qr=1,Le=m;function m(d){let a=c(d);d.graph().dummyChains.forEach(i=>{let e=d.node(i),o=e.edgeObj,n=l(d,a,o.v,o.w),s=n.path,r=n.lca,t=0,u=s[t],h=!0;for(;i!==o.w;){if(e=d.node(i),h){for(;(u=s[t])!==r&&d.node(u).maxRank<e.rank;)t++;u===r&&(h=!1)}if(!h){for(;t<s.length-1&&d.node(u=s[t+1]).minRank<=e.rank;)t++;u=s[t]}d.setParent(i,u),i=d.successors(i)[0]}})}function l(d,a,i,e){let o=[],n=[],s=Math.min(a[i].low,a[e].low),r=Math.max(a[i].lim,a[e].lim),t,u;t=i;do t=d.parent(t),o.push(t);while(t&&(a[t].low>s||r>a[t].lim));for(u=t,t=e;(t=d.parent(t))!==u;)n.push(t);return{path:o.concat(n.reverse()),lca:u}}function c(d){let a={},i=0;function e(o){let n=i;d.children(o).forEach(e),a[o]={low:n,lim:i++}}return d.children().forEach(e),a}return Le}var Se,Tr;function Mt(){if(Tr)return Se;Tr=1;let m=V();Se={run:l,cleanup:i};function l(e){let o=m.addDummyNode(e,"root",{},"_root"),n=d(e),s=Object.values(n),r=m.applyWithChunking(Math.max,s)-1,t=2*r+1;e.graph().nestingRoot=o,e.edges().forEach(h=>e.edge(h).minlen*=t);let u=a(e)+1;e.children().forEach(h=>c(e,o,t,u,r,n,h)),e.graph().nodeRankFactor=t}function c(e,o,n,s,r,t,u){let h=e.children(u);if(!h.length){u!==o&&e.setEdge(o,u,{weight:0,minlen:n});return}let b=m.addBorderNode(e,"_bt"),N=m.addBorderNode(e,"_bb"),p=e.node(u);e.setParent(b,u),p.borderTop=b,e.setParent(N,u),p.borderBottom=N,h.forEach(E=>{c(e,o,n,s,r,t,E);let g=e.node(E),k=g.borderTop?g.borderTop:E,O=g.borderBottom?g.borderBottom:E,R=g.borderTop?s:2*s,I=k!==O?1:r-t[u]+1;e.setEdge(b,k,{weight:R,minlen:I,nestingEdge:!0}),e.setEdge(O,N,{weight:R,minlen:I,nestingEdge:!0})}),e.parent(u)||e.setEdge(o,b,{weight:0,minlen:r+t[u]})}function d(e){var o={};function n(s,r){var t=e.children(s);t&&t.length&&t.forEach(u=>n(u,r+1)),o[s]=r}return e.children().forEach(s=>n(s,1)),o}function a(e){return e.edges().reduce((o,n)=>o+e.edge(n).weight,0)}function i(e){var o=e.graph();e.removeNode(o.nestingRoot),delete o.nestingRoot,e.edges().forEach(n=>{var s=e.edge(n);s.nestingEdge&&e.removeEdge(n)})}return Se}var qe,Mr;function Pt(){if(Mr)return qe;Mr=1;let m=V();qe=l;function l(d){function a(i){let e=d.children(i),o=d.node(i);if(e.length&&e.forEach(a),Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let n=o.minRank,s=o.maxRank+1;n<s;++n)c(d,"borderLeft","_bl",i,o,n),c(d,"borderRight","_br",i,o,n)}}d.children().forEach(a)}function c(d,a,i,e,o,n){let s={width:0,height:0,rank:n,borderType:a},r=o[a][n-1],t=m.addDummyNode(d,"border",s,i);o[a][n]=t,d.setParent(t,e),r&&d.setEdge(r,t,{weight:1})}return qe}var Te,Pr;function Dt(){if(Pr)return Te;Pr=1,Te={adjust:m,undo:l};function m(n){let s=n.graph().rankdir.toLowerCase();(s==="lr"||s==="rl")&&c(n)}function l(n){let s=n.graph().rankdir.toLowerCase();(s==="bt"||s==="rl")&&a(n),(s==="lr"||s==="rl")&&(e(n),c(n))}function c(n){n.nodes().forEach(s=>d(n.node(s))),n.edges().forEach(s=>d(n.edge(s)))}function d(n){let s=n.width;n.width=n.height,n.height=s}function a(n){n.nodes().forEach(s=>i(n.node(s))),n.edges().forEach(s=>{let r=n.edge(s);r.points.forEach(i),Object.hasOwn(r,"y")&&i(r)})}function i(n){n.y=-n.y}function e(n){n.nodes().forEach(s=>o(n.node(s))),n.edges().forEach(s=>{let r=n.edge(s);r.points.forEach(o),Object.hasOwn(r,"x")&&o(r)})}function o(n){let s=n.x;n.x=n.y,n.y=s}return Te}var Me,Dr;function Gt(){if(Dr)return Me;Dr=1;let m=V();Me=l;function l(c){let d={},a=c.nodes().filter(r=>!c.children(r).length),i=a.map(r=>c.node(r).rank),e=m.applyWithChunking(Math.max,i),o=m.range(e+1).map(()=>[]);function n(r){if(d[r])return;d[r]=!0;let t=c.node(r);o[t.rank].push(r),c.successors(r).forEach(n)}return a.sort((r,t)=>c.node(r).rank-c.node(t).rank).forEach(n),o}return Me}var Pe,Gr;function Ft(){if(Gr)return Pe;Gr=1;let m=V().zipObject;Pe=l;function l(d,a){let i=0;for(let e=1;e<a.length;++e)i+=c(d,a[e-1],a[e]);return i}function c(d,a,i){let e=m(i,i.map((u,h)=>h)),o=a.flatMap(u=>d.outEdges(u).map(h=>({pos:e[h.w],weight:d.edge(h).weight})).sort((h,b)=>h.pos-b.pos)),n=1;for(;n<i.length;)n<<=1;let s=2*n-1;n-=1;let r=new Array(s).fill(0),t=0;return o.forEach(u=>{let h=u.pos+n;r[h]+=u.weight;let b=0;for(;h>0;)h%2&&(b+=r[h+1]),h=h-1>>1,r[h]+=u.weight;t+=u.weight*b}),t}return Pe}var De,Fr;function At(){if(Fr)return De;Fr=1,De=m;function m(l,c=[]){return c.map(d=>{let a=l.inEdges(d);if(a.length){let i=a.reduce((e,o)=>{let n=l.edge(o),s=l.node(o.v);return{sum:e.sum+n.weight*s.order,weight:e.weight+n.weight}},{sum:0,weight:0});return{v:d,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:d}})}return De}var Ge,Ar;function Vt(){if(Ar)return Ge;Ar=1;let m=V();Ge=l;function l(a,i){let e={};a.forEach((n,s)=>{let r=e[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:s};n.barycenter!==void 0&&(r.barycenter=n.barycenter,r.weight=n.weight)}),i.edges().forEach(n=>{let s=e[n.v],r=e[n.w];s!==void 0&&r!==void 0&&(r.indegree++,s.out.push(e[n.w]))});let o=Object.values(e).filter(n=>!n.indegree);return c(o)}function c(a){let i=[];function e(n){return s=>{s.merged||(s.barycenter===void 0||n.barycenter===void 0||s.barycenter>=n.barycenter)&&d(n,s)}}function o(n){return s=>{s.in.push(n),--s.indegree===0&&a.push(s)}}for(;a.length;){let n=a.pop();i.push(n),n.in.reverse().forEach(e(n)),n.out.forEach(o(n))}return i.filter(n=>!n.merged).map(n=>m.pick(n,["vs","i","barycenter","weight"]))}function d(a,i){let e=0,o=0;a.weight&&(e+=a.barycenter*a.weight,o+=a.weight),i.weight&&(e+=i.barycenter*i.weight,o+=i.weight),a.vs=i.vs.concat(a.vs),a.barycenter=e/o,a.weight=o,a.i=Math.min(i.i,a.i),i.merged=!0}return Ge}var Fe,Vr;function Bt(){if(Vr)return Fe;Vr=1;let m=V();Fe=l;function l(a,i){let e=m.partition(a,b=>Object.hasOwn(b,"barycenter")),o=e.lhs,n=e.rhs.sort((b,N)=>N.i-b.i),s=[],r=0,t=0,u=0;o.sort(d(!!i)),u=c(s,n,u),o.forEach(b=>{u+=b.vs.length,s.push(b.vs),r+=b.barycenter*b.weight,t+=b.weight,u=c(s,n,u)});let h={vs:s.flat(!0)};return t&&(h.barycenter=r/t,h.weight=t),h}function c(a,i,e){let o;for(;i.length&&(o=i[i.length-1]).i<=e;)i.pop(),a.push(o.vs),e++;return e}function d(a){return(i,e)=>i.barycenter<e.barycenter?-1:i.barycenter>e.barycenter?1:a?e.i-i.i:i.i-e.i}return Fe}var Ae,Br;function Wt(){if(Br)return Ae;Br=1;let m=At(),l=Vt(),c=Bt();Ae=d;function d(e,o,n,s){let r=e.children(o),t=e.node(o),u=t?t.borderLeft:void 0,h=t?t.borderRight:void 0,b={};u&&(r=r.filter(g=>g!==u&&g!==h));let N=m(e,r);N.forEach(g=>{if(e.children(g.v).length){let k=d(e,g.v,n,s);b[g.v]=k,Object.hasOwn(k,"barycenter")&&i(g,k)}});let p=l(N,n);a(p,b);let E=c(p,s);if(u&&(E.vs=[u,E.vs,h].flat(!0),e.predecessors(u).length)){let g=e.node(e.predecessors(u)[0]),k=e.node(e.predecessors(h)[0]);Object.hasOwn(E,"barycenter")||(E.barycenter=0,E.weight=0),E.barycenter=(E.barycenter*E.weight+g.order+k.order)/(E.weight+2),E.weight+=2}return E}function a(e,o){e.forEach(n=>{n.vs=n.vs.flatMap(s=>o[s]?o[s].vs:s)})}function i(e,o){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+o.barycenter*o.weight)/(e.weight+o.weight),e.weight+=o.weight):(e.barycenter=o.barycenter,e.weight=o.weight)}return Ae}var Ve,Wr;function zt(){if(Wr)return Ve;Wr=1;let m=Y().Graph,l=V();Ve=c;function c(a,i,e,o){o||(o=a.nodes());let n=d(a),s=new m({compound:!0}).setGraph({root:n}).setDefaultNodeLabel(r=>a.node(r));return o.forEach(r=>{let t=a.node(r),u=a.parent(r);(t.rank===i||t.minRank<=i&&i<=t.maxRank)&&(s.setNode(r),s.setParent(r,u||n),a[e](r).forEach(h=>{let b=h.v===r?h.w:h.v,N=s.edge(b,r),p=N!==void 0?N.weight:0;s.setEdge(b,r,{weight:a.edge(h).weight+p})}),Object.hasOwn(t,"minRank")&&s.setNode(r,{borderLeft:t.borderLeft[i],borderRight:t.borderRight[i]}))}),s}function d(a){for(var i;a.hasNode(i=l.uniqueId("_root")););return i}return Ve}var Be,zr;function Yt(){if(zr)return Be;zr=1,Be=m;function m(l,c,d){let a={},i;d.forEach(e=>{let o=l.parent(e),n,s;for(;o;){if(n=l.parent(o),n?(s=a[n],a[n]=o):(s=i,i=o),s&&s!==o){c.setEdge(s,o);return}o=n}})}return Be}var We,Yr;function $t(){if(Yr)return We;Yr=1;let m=Gt(),l=Ft(),c=Wt(),d=zt(),a=Yt(),i=Y().Graph,e=V();We=o;function o(t,u){if(u&&typeof u.customOrder=="function"){u.customOrder(t,o);return}let h=e.maxRank(t),b=n(t,e.range(1,h+1),"inEdges"),N=n(t,e.range(h-1,-1,-1),"outEdges"),p=m(t);if(r(t,p),u&&u.disableOptimalOrderHeuristic)return;let E=Number.POSITIVE_INFINITY,g;for(let k=0,O=0;O<4;++k,++O){s(k%2?b:N,k%4>=2),p=e.buildLayerMatrix(t);let R=l(t,p);R<E&&(O=0,g=Object.assign({},p),E=R)}r(t,g)}function n(t,u,h){const b=new Map,N=(p,E)=>{b.has(p)||b.set(p,[]),b.get(p).push(E)};for(const p of t.nodes()){const E=t.node(p);if(typeof E.rank=="number"&&N(E.rank,p),typeof E.minRank=="number"&&typeof E.maxRank=="number")for(let g=E.minRank;g<=E.maxRank;g++)g!==E.rank&&N(g,p)}return u.map(function(p){return d(t,p,h,b.get(p)||[])})}function s(t,u){let h=new i;t.forEach(function(b){let N=b.graph().root,p=c(b,N,h,u);p.vs.forEach((E,g)=>b.node(E).order=g),a(b,h,p.vs)})}function r(t,u){Object.values(u).forEach(h=>h.forEach((b,N)=>t.node(b).order=N))}return We}var ze,$r;function Ut(){if($r)return ze;$r=1;let m=Y().Graph,l=V();ze={positionX:h,findType1Conflicts:c,findType2Conflicts:d,addConflict:i,hasConflict:e,verticalAlignment:o,horizontalCompaction:n,alignCoordinates:t,findSmallestWidthAlignment:r,balance:u};function c(p,E){let g={};function k(O,R){let I=0,q=0,f=O.length,v=R[R.length-1];return R.forEach((x,_)=>{let C=a(p,x),T=C?p.node(C).order:f;(C||x===v)&&(R.slice(q,_+1).forEach(M=>{p.predecessors(M).forEach(G=>{let $=p.node(G),U=$.order;(U<I||T<U)&&!($.dummy&&p.node(M).dummy)&&i(g,G,M)})}),q=_+1,I=T)}),R}return E.length&&E.reduce(k),g}function d(p,E){let g={};function k(R,I,q,f,v){let x;l.range(I,q).forEach(_=>{x=R[_],p.node(x).dummy&&p.predecessors(x).forEach(C=>{let T=p.node(C);T.dummy&&(T.order<f||T.order>v)&&i(g,C,x)})})}function O(R,I){let q=-1,f,v=0;return I.forEach((x,_)=>{if(p.node(x).dummy==="border"){let C=p.predecessors(x);C.length&&(f=p.node(C[0]).order,k(I,v,_,q,f),v=_,q=f)}k(I,v,I.length,f,R.length)}),I}return E.length&&E.reduce(O),g}function a(p,E){if(p.node(E).dummy)return p.predecessors(E).find(g=>p.node(g).dummy)}function i(p,E,g){if(E>g){let O=E;E=g,g=O}let k=p[E];k||(p[E]=k={}),k[g]=!0}function e(p,E,g){if(E>g){let k=E;E=g,g=k}return!!p[E]&&Object.hasOwn(p[E],g)}function o(p,E,g,k){let O={},R={},I={};return E.forEach(q=>{q.forEach((f,v)=>{O[f]=f,R[f]=f,I[f]=v})}),E.forEach(q=>{let f=-1;q.forEach(v=>{let x=k(v);if(x.length){x=x.sort((C,T)=>I[C]-I[T]);let _=(x.length-1)/2;for(let C=Math.floor(_),T=Math.ceil(_);C<=T;++C){let M=x[C];R[v]===v&&f<I[M]&&!e(g,v,M)&&(R[M]=v,R[v]=O[v]=O[M],f=I[M])}}})}),{root:O,align:R}}function n(p,E,g,k,O){let R={},I=s(p,E,g,O),q=O?"borderLeft":"borderRight";function f(_,C){let T=I.nodes(),M=T.pop(),G={};for(;M;)G[M]?_(M):(G[M]=!0,T.push(M),T=T.concat(C(M))),M=T.pop()}function v(_){R[_]=I.inEdges(_).reduce((C,T)=>Math.max(C,R[T.v]+I.edge(T)),0)}function x(_){let C=I.outEdges(_).reduce((M,G)=>Math.min(M,R[G.w]-I.edge(G)),Number.POSITIVE_INFINITY),T=p.node(_);C!==Number.POSITIVE_INFINITY&&T.borderType!==q&&(R[_]=Math.max(R[_],C))}return f(v,I.predecessors.bind(I)),f(x,I.successors.bind(I)),Object.keys(k).forEach(_=>R[_]=R[g[_]]),R}function s(p,E,g,k){let O=new m,R=p.graph(),I=b(R.nodesep,R.edgesep,k);return E.forEach(q=>{let f;q.forEach(v=>{let x=g[v];if(O.setNode(x),f){var _=g[f],C=O.edge(_,x);O.setEdge(_,x,Math.max(I(p,v,f),C||0))}f=v})}),O}function r(p,E){return Object.values(E).reduce((g,k)=>{let O=Number.NEGATIVE_INFINITY,R=Number.POSITIVE_INFINITY;Object.entries(k).forEach(([q,f])=>{let v=N(p,q)/2;O=Math.max(f+v,O),R=Math.min(f-v,R)});const I=O-R;return I<g[0]&&(g=[I,k]),g},[Number.POSITIVE_INFINITY,null])[1]}function t(p,E){let g=Object.values(E),k=l.applyWithChunking(Math.min,g),O=l.applyWithChunking(Math.max,g);["u","d"].forEach(R=>{["l","r"].forEach(I=>{let q=R+I,f=p[q];if(f===E)return;let v=Object.values(f),x=k-l.applyWithChunking(Math.min,v);I!=="l"&&(x=O-l.applyWithChunking(Math.max,v)),x&&(p[q]=l.mapValues(f,_=>_+x))})})}function u(p,E){return l.mapValues(p.ul,(g,k)=>{if(E)return p[E.toLowerCase()][k];{let O=Object.values(p).map(R=>R[k]).sort((R,I)=>R-I);return(O[1]+O[2])/2}})}function h(p){let E=l.buildLayerMatrix(p),g=Object.assign(c(p,E),d(p,E)),k={},O;["u","d"].forEach(I=>{O=I==="u"?E:Object.values(E).reverse(),["l","r"].forEach(q=>{q==="r"&&(O=O.map(_=>Object.values(_).reverse()));let f=(I==="u"?p.predecessors:p.successors).bind(p),v=o(p,O,g,f),x=n(p,O,v.root,v.align,q==="r");q==="r"&&(x=l.mapValues(x,_=>-_)),k[I+q]=x})});let R=r(p,k);return t(k,R),u(k,p.graph().align)}function b(p,E,g){return(k,O,R)=>{let I=k.node(O),q=k.node(R),f=0,v;if(f+=I.width/2,Object.hasOwn(I,"labelpos"))switch(I.labelpos.toLowerCase()){case"l":v=-I.width/2;break;case"r":v=I.width/2;break}if(v&&(f+=g?v:-v),v=0,f+=(I.dummy?E:p)/2,f+=(q.dummy?E:p)/2,f+=q.width/2,Object.hasOwn(q,"labelpos"))switch(q.labelpos.toLowerCase()){case"l":v=q.width/2;break;case"r":v=-q.width/2;break}return v&&(f+=g?v:-v),v=0,f}}function N(p,E){return p.node(E).width}return ze}var Ye,Ur;function Ht(){if(Ur)return Ye;Ur=1;let m=V(),l=Ut().positionX;Ye=c;function c(a){a=m.asNonCompoundGraph(a),d(a),Object.entries(l(a)).forEach(([i,e])=>a.node(i).x=e)}function d(a){let i=m.buildLayerMatrix(a),e=a.graph().ranksep,o=0;i.forEach(n=>{const s=n.reduce((r,t)=>{const u=a.node(t).height;return r>u?r:u},0);n.forEach(r=>a.node(r).y=o+s/2),o+=s+e})}return Ye}var $e,Hr;function Xt(){if(Hr)return $e;Hr=1;let m=It(),l=Lt(),c=qt(),d=V().normalizeRanks,a=Tt(),i=V().removeEmptyRanks,e=Mt(),o=Pt(),n=Dt(),s=$t(),r=Ht(),t=V(),u=Y().Graph;$e=h;function h(w,y){let j=y&&y.debugTiming?t.time:t.notime;j("layout",()=>{let S=j(" buildLayoutGraph",()=>f(w));j(" runLayout",()=>b(S,j,y)),j(" updateInputGraph",()=>N(w,S))})}function b(w,y,j){y(" makeSpaceForEdgeLabels",()=>v(w)),y(" removeSelfEdges",()=>at(w)),y(" acyclic",()=>m.run(w)),y(" nestingGraph.run",()=>e.run(w)),y(" rank",()=>c(t.asNonCompoundGraph(w))),y(" injectEdgeLabelProxies",()=>x(w)),y(" removeEmptyRanks",()=>i(w)),y(" nestingGraph.cleanup",()=>e.cleanup(w)),y(" normalizeRanks",()=>d(w)),y(" assignRankMinMax",()=>_(w)),y(" removeEdgeLabelProxies",()=>C(w)),y(" normalize.run",()=>l.run(w)),y(" parentDummyChains",()=>a(w)),y(" addBorderSegments",()=>o(w)),y(" order",()=>s(w,j)),y(" insertSelfEdges",()=>ot(w)),y(" adjustCoordinateSystem",()=>n.adjust(w)),y(" position",()=>r(w)),y(" positionSelfEdges",()=>lt(w)),y(" removeBorderNodes",()=>U(w)),y(" normalize.undo",()=>l.undo(w)),y(" fixupEdgeLabelCoords",()=>G(w)),y(" undoCoordinateSystem",()=>n.undo(w)),y(" translateGraph",()=>T(w)),y(" assignNodeIntersects",()=>M(w)),y(" reversePoints",()=>$(w)),y(" acyclic.undo",()=>m.undo(w))}function N(w,y){w.nodes().forEach(j=>{let S=w.node(j),P=y.node(j);S&&(S.x=P.x,S.y=P.y,S.rank=P.rank,y.children(j).length&&(S.width=P.width,S.height=P.height))}),w.edges().forEach(j=>{let S=w.edge(j),P=y.edge(j);S.points=P.points,Object.hasOwn(P,"x")&&(S.x=P.x,S.y=P.y)}),w.graph().width=y.graph().width,w.graph().height=y.graph().height}let p=["nodesep","edgesep","ranksep","marginx","marginy"],E={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},g=["acyclicer","ranker","rankdir","align"],k=["width","height","rank"],O={width:0,height:0},R=["minlen","weight","width","height","labeloffset"],I={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},q=["labelpos"];function f(w){let y=new u({multigraph:!0,compound:!0}),j=te(w.graph());return y.setGraph(Object.assign({},E,re(j,p),t.pick(j,g))),w.nodes().forEach(S=>{let P=te(w.node(S));const D=re(P,k);Object.keys(O).forEach(F=>{D[F]===void 0&&(D[F]=O[F])}),y.setNode(S,D),y.setParent(S,w.parent(S))}),w.edges().forEach(S=>{let P=te(w.edge(S));y.setEdge(S,Object.assign({},I,re(P,R),t.pick(P,q)))}),y}function v(w){let y=w.graph();y.ranksep/=2,w.edges().forEach(j=>{let S=w.edge(j);S.minlen*=2,S.labelpos.toLowerCase()!=="c"&&(y.rankdir==="TB"||y.rankdir==="BT"?S.width+=S.labeloffset:S.height+=S.labeloffset)})}function x(w){w.edges().forEach(y=>{let j=w.edge(y);if(j.width&&j.height){let S=w.node(y.v),D={rank:(w.node(y.w).rank-S.rank)/2+S.rank,e:y};t.addDummyNode(w,"edge-proxy",D,"_ep")}})}function _(w){let y=0;w.nodes().forEach(j=>{let S=w.node(j);S.borderTop&&(S.minRank=w.node(S.borderTop).rank,S.maxRank=w.node(S.borderBottom).rank,y=Math.max(y,S.maxRank))}),w.graph().maxRank=y}function C(w){w.nodes().forEach(y=>{let j=w.node(y);j.dummy==="edge-proxy"&&(w.edge(j.e).labelRank=j.rank,w.removeNode(y))})}function T(w){let y=Number.POSITIVE_INFINITY,j=0,S=Number.POSITIVE_INFINITY,P=0,D=w.graph(),F=D.marginx||0,W=D.marginy||0;function Ze(z){let B=z.x,K=z.y,er=z.width,rr=z.height;y=Math.min(y,B-er/2),j=Math.max(j,B+er/2),S=Math.min(S,K-rr/2),P=Math.max(P,K+rr/2)}w.nodes().forEach(z=>Ze(w.node(z))),w.edges().forEach(z=>{let B=w.edge(z);Object.hasOwn(B,"x")&&Ze(B)}),y-=F,S-=W,w.nodes().forEach(z=>{let B=w.node(z);B.x-=y,B.y-=S}),w.edges().forEach(z=>{let B=w.edge(z);B.points.forEach(K=>{K.x-=y,K.y-=S}),Object.hasOwn(B,"x")&&(B.x-=y),Object.hasOwn(B,"y")&&(B.y-=S)}),D.width=j-y+F,D.height=P-S+W}function M(w){w.edges().forEach(y=>{let j=w.edge(y),S=w.node(y.v),P=w.node(y.w),D,F;j.points?(D=j.points[0],F=j.points[j.points.length-1]):(j.points=[],D=P,F=S),j.points.unshift(t.intersectRect(S,D)),j.points.push(t.intersectRect(P,F))})}function G(w){w.edges().forEach(y=>{let j=w.edge(y);if(Object.hasOwn(j,"x"))switch((j.labelpos==="l"||j.labelpos==="r")&&(j.width-=j.labeloffset),j.labelpos){case"l":j.x-=j.width/2+j.labeloffset;break;case"r":j.x+=j.width/2+j.labeloffset;break}})}function $(w){w.edges().forEach(y=>{let j=w.edge(y);j.reversed&&j.points.reverse()})}function U(w){w.nodes().forEach(y=>{if(w.children(y).length){let j=w.node(y),S=w.node(j.borderTop),P=w.node(j.borderBottom),D=w.node(j.borderLeft[j.borderLeft.length-1]),F=w.node(j.borderRight[j.borderRight.length-1]);j.width=Math.abs(F.x-D.x),j.height=Math.abs(P.y-S.y),j.x=D.x+j.width/2,j.y=S.y+j.height/2}}),w.nodes().forEach(y=>{w.node(y).dummy==="border"&&w.removeNode(y)})}function at(w){w.edges().forEach(y=>{if(y.v===y.w){var j=w.node(y.v);j.selfEdges||(j.selfEdges=[]),j.selfEdges.push({e:y,label:w.edge(y)}),w.removeEdge(y)}})}function ot(w){var y=t.buildLayerMatrix(w);y.forEach(j=>{var S=0;j.forEach((P,D)=>{var F=w.node(P);F.order=D+S,(F.selfEdges||[]).forEach(W=>{t.addDummyNode(w,"selfedge",{width:W.label.width,height:W.label.height,rank:F.rank,order:D+ ++S,e:W.e,label:W.label},"_se")}),delete F.selfEdges})})}function lt(w){w.nodes().forEach(y=>{var j=w.node(y);if(j.dummy==="selfedge"){var S=w.node(j.e.v),P=S.x+S.width/2,D=S.y,F=j.x-P,W=S.height/2;w.setEdge(j.e,j.label),w.removeNode(y),j.label.points=[{x:P+2*F/3,y:D-W},{x:P+5*F/6,y:D-W},{x:P+F,y:D},{x:P+5*F/6,y:D+W},{x:P+2*F/3,y:D+W}],j.label.x=j.x,j.label.y=j.y}})}function re(w,y){return t.mapValues(t.pick(w,y),Number)}function te(w){var y={};return w&&Object.entries(w).forEach(([j,S])=>{typeof j=="string"&&(j=j.toLowerCase()),y[j]=S}),y}return $e}var Ue,Xr;function Qt(){if(Xr)return Ue;Xr=1;let m=V(),l=Y().Graph;Ue={debugOrdering:c};function c(d){let a=m.buildLayerMatrix(d),i=new l({compound:!0,multigraph:!0}).setGraph({});return d.nodes().forEach(e=>{i.setNode(e,{label:e}),i.setParent(e,"layer"+d.node(e).rank)}),d.edges().forEach(e=>i.setEdge(e.v,e.w,{},e.name)),a.forEach((e,o)=>{let n="layer"+o;i.setNode(n,{rank:"same"}),e.reduce((s,r)=>(i.setEdge(s,r,{style:"invis"}),r))}),i}return Ue}var He,Qr;function Kt(){return Qr||(Qr=1,He="1.1.8"),He}var Xe,Kr;function Jt(){return Kr||(Kr=1,Xe={graphlib:Y(),layout:Xt(),debug:Qt(),util:{time:V().time,notime:V().notime},version:Kt()}),Xe}var Zt=Jt();const Jr=ct(Zt),Ke=240,Zr=80;function hn(m,l,c,d,a){return m.filter(i=>{var e,o;return!((e=l==null?void 0:l.statuses)!=null&&e.size&&!l.statuses.has(i.status)||(o=l==null?void 0:l.types)!=null&&o.size&&!l.types.has(i.type))}).map(i=>{const e=c==null?void 0:c.get(i.id),o=e!=null&&e.length>0;return{id:i.id,type:"workflowNode",position:{x:0,y:0},data:{label:i.title,nodeType:i.type,status:i.status,priority:i.priority,xpSize:i.xpSize,sprint:i.sprint,sourceNode:i,hasChildren:o,isExpanded:(d==null?void 0:d.has(i.id))??!1,childCount:(e==null?void 0:e.length)??0,onExpand:a},style:{width:Ke,borderLeft:`4px solid ${Z[i.type]||"#6c757d"}`}}})}function fn(m,l){return m.filter(c=>l.has(c.from)&&l.has(c.to)).map(c=>{const d=H[c.relationType]||H.related_to;return{id:c.id,source:c.from,target:c.to,label:d.label,type:"workflowEdge",data:{relationType:c.relationType},style:{stroke:d.color,strokeDasharray:d.dashed?"5 5":void 0},labelStyle:{fontSize:10,fill:"#6c757d"}}})}function en(m,l,c){let d=0;const a=[c,...m,"|",...l];for(const i of a)for(let e=0;e<i.length;e++)d=(d<<5)-d+i.charCodeAt(e)|0;return d}function pn(m,l){if(m===null||m.length!==l.length)return!1;for(let c=0;c<m.length;c++)if(m[c]!==l[c])return!1;return!0}let J=null;function mn(m,l,c="TB"){const d=m.map(n=>n.id),a=l.map(n=>`${n.source}-${n.target}`),i=en(d,a,c);let e;if(J&&J.key===i)e=J.positions;else{const n=new Jr.graphlib.Graph;n.setDefaultEdgeLabel(()=>({})),n.setGraph({rankdir:c,ranksep:60,nodesep:40});for(const s of m)n.setNode(s.id,{width:Ke,height:Zr});for(const s of l)n.setEdge(s.source,s.target);Jr.layout(n),e=new Map;for(const s of m){const r=n.node(s.id);e.set(s.id,{x:r.x-Ke/2,y:r.y-Zr/2})}J={key:i,positions:e}}return{nodes:m.map(n=>{const s=e.get(n.id)??{x:0,y:0};return{...n,position:s}}),edges:l}}export{cn as N,un as W,ln as a,an as b,fn as c,mn as d,dn as e,on as g,pn as s,hn as t};
@@ -1 +1 @@
1
- /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-500:oklch(62.7% .265 303.9);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-accent:#4263eb;--color-accent-light:#5c7cfa;--color-success:#4caf50;--color-danger:#f44336;--color-bg:#fff;--color-bg-secondary:#f8f9fa;--color-bg-tertiary:#e9ecef;--color-text:#212529;--color-text-muted:#6c757d;--color-border:#dee2e6}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-2{top:calc(var(--spacing) * 2)}.top-full{top:100%}.right-2{right:calc(var(--spacing) * 2)}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-2{left:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-50{z-index:50}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.-mt-20{margin-top:calc(var(--spacing) * -20)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!h-2{height:calc(var(--spacing) * 2)!important}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:calc(var(--spacing) * 0)}.\!w-2{width:calc(var(--spacing) * 2)!important}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-8{width:calc(var(--spacing) * 8)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[30\%\]{width:30%}.w-full{width:100%}.w-px{width:1px}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[200px\]{min-width:200px}.min-w-\[300px\]{min-width:300px}.min-w-\[320px\]{min-width:320px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--color-accent\)\]{border-color:var(--color-accent)}.border-\[var\(--color-accent\)\]\/30{border-color:#4263eb4d}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--color-accent\)\]\/30{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab,red,red)){.border-green-500\/30{border-color:color-mix(in oklab,var(--color-green-500) 30%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-transparent{border-color:#0000}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500) 30%,transparent)}}.bg-\[\#06b6d420\]{background-color:#06b6d420}.bg-\[\#8b5cf6\]{background-color:#8b5cf6}.bg-\[\#ef4444\]{background-color:#ef4444}.bg-\[\#f59e0b\]{background-color:#f59e0b}.bg-\[var\(--color-accent\)\]{background-color:var(--color-accent)}.bg-\[var\(--color-accent\)\]\/10{background-color:#4263eb1a}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-accent\)\]\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-\[var\(--color-accent\)\]\/20{background-color:#4263eb33}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-accent\)\]\/20{background-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.bg-\[var\(--color-bg\)\]{background-color:var(--color-bg)}.bg-\[var\(--color-bg-primary\)\]{background-color:var(--color-bg-primary)}.bg-\[var\(--color-bg-secondary\)\]{background-color:var(--color-bg-secondary)}.bg-\[var\(--color-bg-tertiary\)\]{background-color:var(--color-bg-tertiary)}.bg-\[var\(--color-border\)\]{background-color:var(--color-border)}.bg-\[var\(--color-text-muted\)\]\/10{background-color:#6c757d1a}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-text-muted\)\]\/10{background-color:color-mix(in oklab,var(--color-text-muted) 10%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-gray-500\/10{background-color:#6a72821a}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/10{background-color:color-mix(in oklab,var(--color-gray-500) 10%,transparent)}}.bg-gray-500\/20{background-color:#6a728233}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/20{background-color:color-mix(in oklab,var(--color-gray-500) 20%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/5{background-color:color-mix(in oklab,var(--color-green-500) 5%,transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500) 10%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-transparent{background-color:#0000}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/5{background-color:#edb2000d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/5{background-color:color-mix(in oklab,var(--color-yellow-500) 5%,transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.bg-yellow-500\/20{background-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/20{background-color:color-mix(in oklab,var(--color-yellow-500) 20%,transparent)}}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#3a3a5a\]{color:#3a3a5a}.text-\[\#06b6d4\]{color:#06b6d4}.text-\[var\(--color-accent\)\]{color:var(--color-accent)}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.text-\[var\(--color-text-muted\)\]{color:var(--color-text-muted)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-purple-500{color:var(--color-purple-500)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.accent-\[var\(--color-accent\)\]{accent-color:var(--color-accent)}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[var\(--color-accent\)\]{--tw-ring-color:var(--color-accent)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.file\:mr-2::file-selector-button{margin-right:calc(var(--spacing) * 2)}.file\:rounded-md::file-selector-button{border-radius:var(--radius-md)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-\[var\(--color-accent\)\]::file-selector-button{background-color:var(--color-accent)}.file\:px-3::file-selector-button{padding-inline:calc(var(--spacing) * 3)}.file\:py-1\.5::file-selector-button{padding-block:calc(var(--spacing) * 1.5)}.file\:text-xs::file-selector-button{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-white::file-selector-button{color:var(--color-white)}.placeholder\:text-\[var\(--color-text-muted\)\]::placeholder{color:var(--color-text-muted)}@media(hover:hover){.hover\:border-\[var\(--color-accent\)\]:hover{border-color:var(--color-accent)}.hover\:border-\[var\(--color-accent\)\]\/50:hover{border-color:#4263eb80}@supports (color:color-mix(in lab,red,red)){.hover\:border-\[var\(--color-accent\)\]\/50:hover{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.hover\:border-\[var\(--color-text\)\]:hover{border-color:var(--color-text)}.hover\:border-red-500\/50:hover{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/50:hover{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.hover\:bg-\[var\(--color-accent\)\]\/10:hover{background-color:#4263eb1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--color-accent\)\]\/10:hover{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.hover\:bg-\[var\(--color-accent-light\)\]:hover{background-color:var(--color-accent-light)}.hover\:bg-\[var\(--color-bg\)\]:hover{background-color:var(--color-bg)}.hover\:bg-\[var\(--color-bg-primary\)\]:hover{background-color:var(--color-bg-primary)}.hover\:bg-\[var\(--color-bg-secondary\)\]:hover{background-color:var(--color-bg-secondary)}.hover\:bg-\[var\(--color-bg-tertiary\)\]:hover{background-color:var(--color-bg-tertiary)}.hover\:bg-\[var\(--color-border\)\]:hover{background-color:var(--color-border)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.hover\:text-\[var\(--color-accent\)\]:hover{color:var(--color-accent)}.hover\:text-\[var\(--color-text\)\]:hover{color:var(--color-text)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:file\:opacity-90:hover::file-selector-button{opacity:.9}}.focus\:border-\[var\(--color-accent\)\]:focus{border-color:var(--color-accent)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[var\(--color-accent\)\]:focus{--tw-ring-color:var(--color-accent)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}}.dark{--color-bg:#1a1b1e;--color-bg-secondary:#25262b;--color-bg-tertiary:#2c2e33;--color-text:#c1c2c5;--color-text-muted:#909296;--color-border:#373a40}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background .2s,color .2s}.react-flow__node{font-size:12px}.react-flow__attribution{display:none!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
1
+ /*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-yellow-400:oklch(85.2% .199 91.936);--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-600:oklch(68.1% .162 75.834);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-purple-500:oklch(62.7% .265 303.9);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-lg:32rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:.05em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-accent:#4263eb;--color-accent-light:#5c7cfa;--color-success:#4caf50;--color-danger:#f44336;--color-bg:#fff;--color-bg-secondary:#f8f9fa;--color-bg-tertiary:#e9ecef;--color-text:#212529;--color-text-muted:#6c757d;--color-border:#dee2e6}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-2{top:calc(var(--spacing) * 2)}.top-full{top:100%}.right-2{right:calc(var(--spacing) * 2)}.bottom-2{bottom:calc(var(--spacing) * 2)}.left-0{left:calc(var(--spacing) * 0)}.left-1\.5{left:calc(var(--spacing) * 1.5)}.left-2{left:calc(var(--spacing) * 2)}.z-10{z-index:10}.z-50{z-index:50}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.-mt-20{margin-top:calc(var(--spacing) * -20)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.\!h-2{height:calc(var(--spacing) * 2)!important}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:calc(var(--spacing) * 1)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-full{height:100%}.h-screen{height:100vh}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.min-h-0{min-height:calc(var(--spacing) * 0)}.\!w-2{width:calc(var(--spacing) * 2)!important}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-8{width:calc(var(--spacing) * 8)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[30\%\]{width:30%}.w-full{width:100%}.w-px{width:1px}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[150px\]{max-width:150px}.max-w-\[200px\]{max-width:200px}.max-w-\[300px\]{max-width:300px}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-\[200px\]{min-width:200px}.min-w-\[300px\]{min-width:300px}.min-w-\[320px\]{min-width:320px}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.rotate-90{rotate:90deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize-y{resize:vertical}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-b-lg{border-bottom-right-radius:var(--radius-lg);border-bottom-left-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[var\(--color-accent\)\]{border-color:var(--color-accent)}.border-\[var\(--color-accent\)\]\/30{border-color:#4263eb4d}@supports (color:color-mix(in lab,red,red)){.border-\[var\(--color-accent\)\]\/30{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.border-\[var\(--color-border\)\]{border-color:var(--color-border)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab,red,red)){.border-green-500\/30{border-color:color-mix(in oklab,var(--color-green-500) 30%,transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab,red,red)){.border-red-500\/30{border-color:color-mix(in oklab,var(--color-red-500) 30%,transparent)}}.border-transparent{border-color:#0000}.border-yellow-500\/30{border-color:#edb2004d}@supports (color:color-mix(in lab,red,red)){.border-yellow-500\/30{border-color:color-mix(in oklab,var(--color-yellow-500) 30%,transparent)}}.bg-\[\#06b6d420\]{background-color:#06b6d420}.bg-\[\#8b5cf6\]{background-color:#8b5cf6}.bg-\[\#ef4444\]{background-color:#ef4444}.bg-\[\#f59e0b\]{background-color:#f59e0b}.bg-\[var\(--color-accent\)\]{background-color:var(--color-accent)}.bg-\[var\(--color-accent\)\]\/10{background-color:#4263eb1a}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-accent\)\]\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-\[var\(--color-accent\)\]\/20{background-color:#4263eb33}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-accent\)\]\/20{background-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.bg-\[var\(--color-bg\)\]{background-color:var(--color-bg)}.bg-\[var\(--color-bg-primary\)\]{background-color:var(--color-bg-primary)}.bg-\[var\(--color-bg-secondary\)\]{background-color:var(--color-bg-secondary)}.bg-\[var\(--color-bg-tertiary\)\]{background-color:var(--color-bg-tertiary)}.bg-\[var\(--color-border\)\]{background-color:var(--color-border)}.bg-\[var\(--color-text-muted\)\]\/10{background-color:#6c757d1a}@supports (color:color-mix(in lab,red,red)){.bg-\[var\(--color-text-muted\)\]\/10{background-color:color-mix(in oklab,var(--color-text-muted) 10%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/10{background-color:color-mix(in oklab,var(--color-blue-500) 10%,transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab,red,red)){.bg-blue-500\/20{background-color:color-mix(in oklab,var(--color-blue-500) 20%,transparent)}}.bg-gray-500\/10{background-color:#6a72821a}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/10{background-color:color-mix(in oklab,var(--color-gray-500) 10%,transparent)}}.bg-gray-500\/20{background-color:#6a728233}@supports (color:color-mix(in lab,red,red)){.bg-gray-500\/20{background-color:color-mix(in oklab,var(--color-gray-500) 20%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/5{background-color:color-mix(in oklab,var(--color-green-500) 5%,transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/10{background-color:color-mix(in oklab,var(--color-green-500) 10%,transparent)}}.bg-green-500\/20{background-color:#00c75833}@supports (color:color-mix(in lab,red,red)){.bg-green-500\/20{background-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab,red,red)){.bg-purple-500\/10{background-color:color-mix(in oklab,var(--color-purple-500) 10%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/5{background-color:color-mix(in oklab,var(--color-red-500) 5%,transparent)}}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/10{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/15{background-color:color-mix(in oklab,var(--color-red-500) 15%,transparent)}}.bg-red-500\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab,red,red)){.bg-red-500\/20{background-color:color-mix(in oklab,var(--color-red-500) 20%,transparent)}}.bg-transparent{background-color:#0000}.bg-yellow-500{background-color:var(--color-yellow-500)}.bg-yellow-500\/5{background-color:#edb2000d}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/5{background-color:color-mix(in oklab,var(--color-yellow-500) 5%,transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/10{background-color:color-mix(in oklab,var(--color-yellow-500) 10%,transparent)}}.bg-yellow-500\/20{background-color:#edb20033}@supports (color:color-mix(in lab,red,red)){.bg-yellow-500\/20{background-color:color-mix(in oklab,var(--color-yellow-500) 20%,transparent)}}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0{padding-block:calc(var(--spacing) * 0)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-1{padding-left:calc(var(--spacing) * 1)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-\[\#3a3a5a\]{color:#3a3a5a}.text-\[\#06b6d4\]{color:#06b6d4}.text-\[var\(--color-accent\)\]{color:var(--color-accent)}.text-\[var\(--color-danger\)\]{color:var(--color-danger)}.text-\[var\(--color-text\)\]{color:var(--color-text)}.text-\[var\(--color-text-muted\)\]{color:var(--color-text-muted)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-green-400{color:var(--color-green-400)}.text-green-500{color:var(--color-green-500)}.text-purple-500{color:var(--color-purple-500)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-white{color:var(--color-white)}.text-yellow-400{color:var(--color-yellow-400)}.text-yellow-500{color:var(--color-yellow-500)}.text-yellow-600{color:var(--color-yellow-600)}.uppercase{text-transform:uppercase}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.accent-\[var\(--color-accent\)\]{accent-color:var(--color-accent)}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-\[var\(--color-accent\)\]{--tw-ring-color:var(--color-accent)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.file\:mr-2::file-selector-button{margin-right:calc(var(--spacing) * 2)}.file\:rounded-md::file-selector-button{border-radius:var(--radius-md)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-\[var\(--color-accent\)\]::file-selector-button{background-color:var(--color-accent)}.file\:px-3::file-selector-button{padding-inline:calc(var(--spacing) * 3)}.file\:py-1\.5::file-selector-button{padding-block:calc(var(--spacing) * 1.5)}.file\:text-xs::file-selector-button{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-white::file-selector-button{color:var(--color-white)}.placeholder\:text-\[var\(--color-text-muted\)\]::placeholder{color:var(--color-text-muted)}@media(hover:hover){.hover\:border-\[var\(--color-accent\)\]:hover{border-color:var(--color-accent)}.hover\:border-\[var\(--color-accent\)\]\/50:hover{border-color:#4263eb80}@supports (color:color-mix(in lab,red,red)){.hover\:border-\[var\(--color-accent\)\]\/50:hover{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.hover\:border-\[var\(--color-text\)\]:hover{border-color:var(--color-text)}.hover\:border-red-500\/50:hover{border-color:#fb2c3680}@supports (color:color-mix(in lab,red,red)){.hover\:border-red-500\/50:hover{border-color:color-mix(in oklab,var(--color-red-500) 50%,transparent)}}.hover\:bg-\[var\(--color-accent\)\]\/10:hover{background-color:#4263eb1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-\[var\(--color-accent\)\]\/10:hover{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.hover\:bg-\[var\(--color-accent-light\)\]:hover{background-color:var(--color-accent-light)}.hover\:bg-\[var\(--color-bg\)\]:hover{background-color:var(--color-bg)}.hover\:bg-\[var\(--color-bg-primary\)\]:hover{background-color:var(--color-bg-primary)}.hover\:bg-\[var\(--color-bg-secondary\)\]:hover{background-color:var(--color-bg-secondary)}.hover\:bg-\[var\(--color-bg-tertiary\)\]:hover{background-color:var(--color-bg-tertiary)}.hover\:bg-\[var\(--color-border\)\]:hover{background-color:var(--color-border)}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab,var(--color-red-500) 10%,transparent)}}.hover\:text-\[var\(--color-accent\)\]:hover{color:var(--color-accent)}.hover\:text-\[var\(--color-text\)\]:hover{color:var(--color-text)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\:file\:opacity-90:hover::file-selector-button{opacity:.9}}.focus\:border-\[var\(--color-accent\)\]:focus{border-color:var(--color-accent)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-\[var\(--color-accent\)\]:focus{--tw-ring-color:var(--color-accent)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:40rem){.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\:text-yellow-400{color:var(--color-yellow-400)}}}.dark{--color-bg:#1a1b1e;--color-bg-secondary:#25262b;--color-bg-tertiary:#2c2e33;--color-text:#c1c2c5;--color-text-muted:#909296;--color-border:#373a40}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background .2s,color .2s}.react-flow__node{font-size:12px}.react-flow__attribution{display:none!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}