@justyork/repo-mind 0.3.0 → 0.4.0

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 (71) hide show
  1. package/package.json +9 -1
  2. package/ui/dist/assets/{arc-DhC0JPue.js → arc-C6B0IXf5.js} +1 -1
  3. package/ui/dist/assets/architectureDiagram-3BPJPVTR-BwcC0zwn.js +36 -0
  4. package/ui/dist/assets/{blockDiagram-GPEHLZMM-CgiNAArN.js → blockDiagram-GPEHLZMM-DIhdWMA6.js} +2 -2
  5. package/ui/dist/assets/{c4Diagram-AAUBKEIU-BIwHcwcH.js → c4Diagram-AAUBKEIU-DAe6bsUB.js} +2 -2
  6. package/ui/dist/assets/channel-C8Q7-wTd.js +1 -0
  7. package/ui/dist/assets/{chunk-2J33WTMH-DXRgHPpp.js → chunk-2J33WTMH-Cy3md3pb.js} +1 -1
  8. package/ui/dist/assets/{chunk-4BX2VUAB-BTb70kIb.js → chunk-4BX2VUAB-CzL8eUDD.js} +1 -1
  9. package/ui/dist/assets/{chunk-55IACEB6-BrAelyhX.js → chunk-55IACEB6-CbthXzDA.js} +1 -1
  10. package/ui/dist/assets/{chunk-727SXJPM-BlYnlPdj.js → chunk-727SXJPM-B7ZW-l9j.js} +1 -1
  11. package/ui/dist/assets/{chunk-AQP2D5EJ-DSPgdKZ8.js → chunk-AQP2D5EJ-Vaux-7Ld.js} +1 -1
  12. package/ui/dist/assets/{chunk-FMBD7UC4-BhH8ir2K.js → chunk-FMBD7UC4-C6P2YSWU.js} +1 -1
  13. package/ui/dist/assets/{chunk-ND2GUHAM-DCAuTSxB.js → chunk-ND2GUHAM-gSNqdDAn.js} +1 -1
  14. package/ui/dist/assets/{chunk-QZHKN3VN-DtYEkbYr.js → chunk-QZHKN3VN-DPPMoZqF.js} +1 -1
  15. package/ui/dist/assets/classDiagram-4FO5ZUOK-pYCdSDhT.js +1 -0
  16. package/ui/dist/assets/classDiagram-v2-Q7XG4LA2-pYCdSDhT.js +1 -0
  17. package/ui/dist/assets/cose-bilkent-S5V4N54A-Ca4nXCOA.js +1 -0
  18. package/ui/dist/assets/dagre-BM42HDAG-C-4Y4Jyn.js +4 -0
  19. package/ui/dist/assets/diagram-2AECGRRQ-CNv_WVZk.js +43 -0
  20. package/ui/dist/assets/diagram-5GNKFQAL-CNwYGvCw.js +10 -0
  21. package/ui/dist/assets/{diagram-KO2AKTUF-B-kUxuHX.js → diagram-KO2AKTUF-CEULTL49.js} +2 -2
  22. package/ui/dist/assets/diagram-LMA3HP47-sGQpPW5i.js +24 -0
  23. package/ui/dist/assets/diagram-OG6HWLK6-BBEtEBkh.js +24 -0
  24. package/ui/dist/assets/editor-BcAuZsp8.js +211 -0
  25. package/ui/dist/assets/{erDiagram-TEJ5UH35-BSWwMysi.js → erDiagram-TEJ5UH35-B4mEdVPJ.js} +2 -2
  26. package/ui/dist/assets/{flowDiagram-I6XJVG4X-D-q1cK69.js → flowDiagram-I6XJVG4X-7-OngwLn.js} +2 -2
  27. package/ui/dist/assets/ganttDiagram-6RSMTGT7-Bq3z_Nvr.js +292 -0
  28. package/ui/dist/assets/gitGraphDiagram-PVQCEYII-BjMdjnGR.js +106 -0
  29. package/ui/dist/assets/{graph-DwoitsWW.js → graph-CwHQTpjf.js} +1 -1
  30. package/ui/dist/assets/infoDiagram-5YYISTIA-ByORmROU.js +2 -0
  31. package/ui/dist/assets/{ishikawaDiagram-YF4QCWOH-CY-U_l7l.js → ishikawaDiagram-YF4QCWOH-B7yRHlcY.js} +6 -6
  32. package/ui/dist/assets/{journeyDiagram-JHISSGLW-jKj4lBEJ.js → journeyDiagram-JHISSGLW-J5mLr9YH.js} +2 -2
  33. package/ui/dist/assets/{kanban-definition-UN3LZRKU-PZ-5AYw2.js → kanban-definition-UN3LZRKU-B3GyGD8X.js} +2 -2
  34. package/ui/dist/assets/main-Du7fLv5Y.js +244 -0
  35. package/ui/dist/assets/mermaid.core-C57NVZG0.js +250 -0
  36. package/ui/dist/assets/{mindmap-definition-RKZ34NQL-CPY2Fdu_.js → mindmap-definition-RKZ34NQL-CkcXt9tU.js} +10 -10
  37. package/ui/dist/assets/{pieDiagram-4H26LBE5-C7GJ49et.js → pieDiagram-4H26LBE5-Y7B3kCyQ.js} +2 -2
  38. package/ui/dist/assets/{quadrantDiagram-W4KKPZXB-DQyQN5K7.js → quadrantDiagram-W4KKPZXB-CXKUOw1G.js} +2 -2
  39. package/ui/dist/assets/{requirementDiagram-4Y6WPE33-CDrkwz1t.js → requirementDiagram-4Y6WPE33-DBmmmiXs.js} +4 -4
  40. package/ui/dist/assets/{sankeyDiagram-5OEKKPKP-BrYb9Eql.js → sankeyDiagram-5OEKKPKP-BNADiaE4.js} +2 -2
  41. package/ui/dist/assets/{sequenceDiagram-3UESZ5HK-B8If_JZp.js → sequenceDiagram-3UESZ5HK-CctElOC5.js} +14 -14
  42. package/ui/dist/assets/stateDiagram-AJRCARHV-D40_7g7Y.js +1 -0
  43. package/ui/dist/assets/stateDiagram-v2-BHNVJYJU-DSc6L6rE.js +1 -0
  44. package/ui/dist/assets/theme-BJgORXba.css +1 -0
  45. package/ui/dist/assets/{theme-DV7vqTnV.js → theme-DxqwV6dp.js} +1 -1
  46. package/ui/dist/assets/{timeline-definition-PNZ67QCA-DhUg6aIV.js → timeline-definition-PNZ67QCA-DMVhUcek.js} +2 -2
  47. package/ui/dist/assets/{vennDiagram-CIIHVFJN-DpQVNNzF.js → vennDiagram-CIIHVFJN-Ci0RqPuV.js} +2 -2
  48. package/ui/dist/assets/visual-editor-UWcMGp6p.js +39 -0
  49. package/ui/dist/assets/{wardley-L42UT6IY-CyaxzHGP.js → wardley-L42UT6IY-Chn0BKir.js} +1 -1
  50. package/ui/dist/assets/{wardleyDiagram-YWT4CUSO-Bm0mA7wm.js → wardleyDiagram-YWT4CUSO-BLdXlrC5.js} +2 -2
  51. package/ui/dist/assets/{xychartDiagram-2RQKCTM6-OJbmgDx6.js → xychartDiagram-2RQKCTM6-C4gOVVe1.js} +2 -2
  52. package/ui/dist/graph.html +3 -3
  53. package/ui/dist/index.html +4 -3
  54. package/ui/dist/assets/architectureDiagram-3BPJPVTR-Cun_Ijrv.js +0 -36
  55. package/ui/dist/assets/channel-CNwAp9ic.js +0 -1
  56. package/ui/dist/assets/classDiagram-4FO5ZUOK-DnHeGLmR.js +0 -1
  57. package/ui/dist/assets/classDiagram-v2-Q7XG4LA2-DnHeGLmR.js +0 -1
  58. package/ui/dist/assets/cose-bilkent-S5V4N54A-CAM4jLYo.js +0 -1
  59. package/ui/dist/assets/dagre-BM42HDAG-CISbgani.js +0 -4
  60. package/ui/dist/assets/diagram-2AECGRRQ-BmXargwF.js +0 -43
  61. package/ui/dist/assets/diagram-5GNKFQAL-COlrLu0O.js +0 -10
  62. package/ui/dist/assets/diagram-LMA3HP47-C3AVVxcm.js +0 -24
  63. package/ui/dist/assets/diagram-OG6HWLK6-JHeftSsO.js +0 -24
  64. package/ui/dist/assets/ganttDiagram-6RSMTGT7-DrYn1H_t.js +0 -292
  65. package/ui/dist/assets/gitGraphDiagram-PVQCEYII-vJByl99X.js +0 -106
  66. package/ui/dist/assets/infoDiagram-5YYISTIA-D6zhGTMj.js +0 -2
  67. package/ui/dist/assets/main-BBzCq-49.js +0 -308
  68. package/ui/dist/assets/mermaid.core-Bddhr0ku.js +0 -309
  69. package/ui/dist/assets/stateDiagram-AJRCARHV-BbpTp9VX.js +0 -1
  70. package/ui/dist/assets/stateDiagram-v2-BHNVJYJU-BT4PvMFS.js +0 -1
  71. package/ui/dist/assets/theme-SpsWsRN5.css +0 -1
@@ -1 +0,0 @@
1
- import{s as A,a as W,S as N}from"./chunk-AQP2D5EJ-DSPgdKZ8.js";import{_ as f,c as t,l as S,d as P,j as z,Q as _,R as U,N as C,u as F}from"./mermaid.core-Bddhr0ku.js";import{s as H}from"./transform-BwXaE9hv.js";import{G as O}from"./graph-CAnANduQ.js";import{l as J}from"./layout-DGIYPm2g.js";import"./chunk-55IACEB6-BrAelyhX.js";import"./chunk-2J33WTMH-DXRgHPpp.js";import"./main-BBzCq-49.js";import"./theme-DV7vqTnV.js";var X=f(e=>e.append("circle").attr("class","start-state").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit).attr("cy",t().state.padding+t().state.sizeUnit),"drawStartState"),D=f(e=>e.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",t().state.textHeight).attr("class","divider").attr("x2",t().state.textHeight*2).attr("y1",0).attr("y2",0),"drawDivider"),Y=f((e,i)=>{const d=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+2*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),c=d.node().getBBox();return e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",c.width+2*t().state.padding).attr("height",c.height+2*t().state.padding).attr("rx",t().state.radius),d},"drawSimpleState"),I=f((e,i)=>{const d=f(function(o,B,y){const v=o.append("tspan").attr("x",2*t().state.padding).text(B);y||v.attr("dy",t().state.textHeight)},"addTspan"),n=e.append("text").attr("x",2*t().state.padding).attr("y",t().state.textHeight+1.3*t().state.padding).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.descriptions[0]).node().getBBox(),l=n.height,p=e.append("text").attr("x",t().state.padding).attr("y",l+t().state.padding*.4+t().state.dividerMargin+t().state.textHeight).attr("class","state-description");let a=!0,s=!0;i.descriptions.forEach(function(o){a||(d(p,o,s),s=!1),a=!1});const m=e.append("line").attr("x1",t().state.padding).attr("y1",t().state.padding+l+t().state.dividerMargin/2).attr("y2",t().state.padding+l+t().state.dividerMargin/2).attr("class","descr-divider"),x=p.node().getBBox(),g=Math.max(x.width,n.width);return m.attr("x2",g+3*t().state.padding),e.insert("rect",":first-child").attr("x",t().state.padding).attr("y",t().state.padding).attr("width",g+2*t().state.padding).attr("height",x.height+l+2*t().state.padding).attr("rx",t().state.radius),e},"drawDescrState"),$=f((e,i,d)=>{const c=t().state.padding,n=2*t().state.padding,l=e.node().getBBox(),p=l.width,a=l.x,s=e.append("text").attr("x",0).attr("y",t().state.titleShift).attr("font-size",t().state.fontSize).attr("class","state-title").text(i.id),x=s.node().getBBox().width+n;let g=Math.max(x,p);g===p&&(g=g+n);let o;const B=e.node().getBBox();i.doc,o=a-c,x>p&&(o=(p-g)/2+c),Math.abs(a-B.x)<c&&x>p&&(o=a-(x-p)/2);const y=1-t().state.textHeight;return e.insert("rect",":first-child").attr("x",o).attr("y",y).attr("class",d?"alt-composit":"composit").attr("width",g).attr("height",B.height+t().state.textHeight+t().state.titleShift+1).attr("rx","0"),s.attr("x",o+c),x<=p&&s.attr("x",a+(g-n)/2-x/2+c),e.insert("rect",":first-child").attr("x",o).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",g).attr("height",t().state.textHeight*3).attr("rx",t().state.radius),e.insert("rect",":first-child").attr("x",o).attr("y",t().state.titleShift-t().state.textHeight-t().state.padding).attr("width",g).attr("height",B.height+3+2*t().state.textHeight).attr("rx",t().state.radius),e},"addTitleAndBox"),j=f(e=>(e.append("circle").attr("class","end-state-outer").attr("r",t().state.sizeUnit+t().state.miniPadding).attr("cx",t().state.padding+t().state.sizeUnit+t().state.miniPadding).attr("cy",t().state.padding+t().state.sizeUnit+t().state.miniPadding),e.append("circle").attr("class","end-state-inner").attr("r",t().state.sizeUnit).attr("cx",t().state.padding+t().state.sizeUnit+2).attr("cy",t().state.padding+t().state.sizeUnit+2)),"drawEndState"),q=f((e,i)=>{let d=t().state.forkWidth,c=t().state.forkHeight;if(i.parentId){let n=d;d=c,c=n}return e.append("rect").style("stroke","black").style("fill","black").attr("width",d).attr("height",c).attr("x",t().state.padding).attr("y",t().state.padding)},"drawForkJoinState"),Q=f((e,i,d,c)=>{let n=0;const l=c.append("text");l.style("text-anchor","start"),l.attr("class","noteText");let p=e.replace(/\r\n/g,"<br/>");p=p.replace(/\n/g,"<br/>");const a=p.split(z.lineBreakRegex);let s=1.25*t().state.noteMargin;for(const m of a){const x=m.trim();if(x.length>0){const g=l.append("tspan");if(g.text(x),s===0){const o=g.node().getBBox();s+=o.height}n+=s,g.attr("x",i+t().state.noteMargin),g.attr("y",d+n+1.25*t().state.noteMargin)}}return{textWidth:l.node().getBBox().width,textHeight:n}},"_drawLongText"),Z=f((e,i)=>{i.attr("class","state-note");const d=i.append("rect").attr("x",0).attr("y",t().state.padding),c=i.append("g"),{textWidth:n,textHeight:l}=Q(e,0,0,c);return d.attr("height",l+2*t().state.noteMargin),d.attr("width",n+t().state.noteMargin*2),d},"drawNote"),L=f(function(e,i){const d=i.id,c={id:d,label:i.id,width:0,height:0},n=e.append("g").attr("id",d).attr("class","stateGroup");i.type==="start"&&X(n),i.type==="end"&&j(n),(i.type==="fork"||i.type==="join")&&q(n,i),i.type==="note"&&Z(i.note.text,n),i.type==="divider"&&D(n),i.type==="default"&&i.descriptions.length===0&&Y(n,i),i.type==="default"&&i.descriptions.length>0&&I(n,i);const l=n.node().getBBox();return c.width=l.width+2*t().state.padding,c.height=l.height+2*t().state.padding,c},"drawState"),G=0,K=f(function(e,i,d){const c=f(function(s){switch(s){case N.relationType.AGGREGATION:return"aggregation";case N.relationType.EXTENSION:return"extension";case N.relationType.COMPOSITION:return"composition";case N.relationType.DEPENDENCY:return"dependency"}},"getRelationType");i.points=i.points.filter(s=>!Number.isNaN(s.y));const n=i.points,l=_().x(function(s){return s.x}).y(function(s){return s.y}).curve(U),p=e.append("path").attr("d",l(n)).attr("id","edge"+G).attr("class","transition");let a="";if(t().state.arrowMarkerAbsolute&&(a=C(!0)),p.attr("marker-end","url("+a+"#"+c(N.relationType.DEPENDENCY)+"End)"),d.title!==void 0){const s=e.append("g").attr("class","stateLabel"),{x:m,y:x}=F.calcLabelPosition(i.points),g=z.getRows(d.title);let o=0;const B=[];let y=0,v=0;for(let u=0;u<=g.length;u++){const h=s.append("text").attr("text-anchor","middle").text(g[u]).attr("x",m).attr("y",x+o),w=h.node().getBBox();y=Math.max(y,w.width),v=Math.min(v,w.x),S.info(w.x,m,x+o),o===0&&(o=h.node().getBBox().height,S.info("Title height",o,x)),B.push(h)}let k=o*g.length;if(g.length>1){const u=(g.length-1)*o*.5;B.forEach((h,w)=>h.attr("y",x+w*o-u)),k=o*g.length}const r=s.node().getBBox();s.insert("rect",":first-child").attr("class","box").attr("x",m-y/2-t().state.padding/2).attr("y",x-k/2-t().state.padding/2-3.5).attr("width",y+t().state.padding).attr("height",k+t().state.padding),S.info(r)}G++},"drawEdge"),b,T={},V=f(function(){},"setConf"),tt=f(function(e){e.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),et=f(function(e,i,d,c){b=t().state;const n=t().securityLevel;let l;n==="sandbox"&&(l=H("#i"+i));const p=n==="sandbox"?H(l.nodes()[0].contentDocument.body):H("body"),a=n==="sandbox"?l.nodes()[0].contentDocument:document;S.debug("Rendering diagram "+e);const s=p.select(`[id='${i}']`);tt(s);const m=c.db.getRootDoc(),x=s.append("g").attr("id",i+"-root");R(m,x,void 0,!1,p,a,c);const g=b.padding,o=s.node().getBBox(),B=o.width+g*2,y=o.height+g*2,v=B*1.75;P(s,y,v,b.useMaxWidth),s.attr("viewBox",`${o.x-b.padding} ${o.y-b.padding} `+B+" "+y)},"draw"),at=f(e=>e?e.length*b.fontSizeFactor:1,"getLabelWidth"),R=f((e,i,d,c,n,l,p)=>{const a=new O({compound:!0,multigraph:!0});let s,m=!0;for(s=0;s<e.length;s++)if(e[s].stmt==="relation"){m=!1;break}d?a.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:m?1:b.edgeLengthFactor,nodeSep:m?1:50,isMultiGraph:!0}):a.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:m?1:b.edgeLengthFactor,nodeSep:m?1:50,ranker:"tight-tree",isMultiGraph:!0}),a.setDefaultEdgeLabel(function(){return{}});const x=p.db.getStates(),g=p.db.getRelations(),o=Object.keys(x);for(const r of o){const u=x[r];d&&(u.parentId=d);let h;if(u.doc){let w=i.append("g").attr("id",u.id).attr("class","stateGroup");h=R(u.doc,w,u.id,!c,n,l,p);{w=$(w,u,c);let E=w.node().getBBox();h.width=E.width,h.height=E.height+b.padding/2,T[u.id]={y:b.compositTitleSize}}}else h=L(i,u,a);if(u.note){const w={descriptions:[],id:u.id+"-note",note:u.note,type:"note"},E=L(i,w,a);u.note.position==="left of"?(a.setNode(h.id+"-note",E),a.setNode(h.id,h)):(a.setNode(h.id,h),a.setNode(h.id+"-note",E)),a.setParent(h.id,h.id+"-group"),a.setParent(h.id+"-note",h.id+"-group")}else a.setNode(h.id,h)}S.debug("Count=",a.nodeCount(),a);let B=0;g.forEach(function(r){B++,S.debug("Setting edge",r),a.setEdge(r.id1,r.id2,{relation:r,width:at(r.title),height:b.labelHeight*z.getRows(r.title).length,labelpos:"c"},"id"+B)}),J(a),S.debug("Graph after layout",a.nodes());const y=i.node();a.nodes().forEach(function(r){r!==void 0&&a.node(r)!==void 0?(S.warn("Node "+r+": "+JSON.stringify(a.node(r))),n.select("#"+y.id+" #"+r).attr("transform","translate("+(a.node(r).x-a.node(r).width/2)+","+(a.node(r).y+(T[r]?T[r].y:0)-a.node(r).height/2)+" )"),n.select("#"+y.id+" #"+r).attr("data-x-shift",a.node(r).x-a.node(r).width/2),l.querySelectorAll("#"+y.id+" #"+r+" .divider").forEach(h=>{const w=h.parentElement;let E=0,M=0;w&&(w.parentElement&&(E=w.parentElement.getBBox().width),M=parseInt(w.getAttribute("data-x-shift"),10),Number.isNaN(M)&&(M=0)),h.setAttribute("x1",0-M+8),h.setAttribute("x2",E-M-8)})):S.debug("No Node "+r+": "+JSON.stringify(a.node(r)))});let v=y.getBBox();a.edges().forEach(function(r){r!==void 0&&a.edge(r)!==void 0&&(S.debug("Edge "+r.v+" -> "+r.w+": "+JSON.stringify(a.edge(r))),K(i,a.edge(r),a.edge(r).relation))}),v=y.getBBox();const k={id:d||"root",label:d||"root",width:0,height:0};return k.width=v.width+2*b.padding,k.height=v.height+2*b.padding,S.debug("Doc rendered",k,a),k},"renderDoc"),it={setConf:V,draw:et},pt={parser:W,get db(){return new N(1)},renderer:it,styles:A,init:f(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{pt as diagram};
@@ -1 +0,0 @@
1
- import{s as r,b as e,a,S as s}from"./chunk-AQP2D5EJ-DSPgdKZ8.js";import{_ as i}from"./mermaid.core-Bddhr0ku.js";import"./transform-BwXaE9hv.js";import"./chunk-55IACEB6-BrAelyhX.js";import"./chunk-2J33WTMH-DXRgHPpp.js";import"./main-BBzCq-49.js";import"./theme-DV7vqTnV.js";var n={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{n as diagram};
@@ -1 +0,0 @@
1
- :root,[data-theme=light]{--bg: #ffffff;--panel: #f4f5f7;--border: #dfe1e6;--text: #172b4d;--muted: #626f86;--accent: #0c66e4;--accent-subtle: #e9f2ff;--link: #0c66e4;--link-hover: #0055cc;--table-stripe: #fafbfc;--table-header: #f4f5f7;--shadow: rgba(9, 30, 66, .15);--folder-icon-bg: #dfe1e6;--folder-icon-fg: #42526e}[data-theme=dark]{--bg: #0f1419;--panel: #1a2332;--border: #2d3a4f;--text: #e8edf4;--muted: #8b9cb3;--accent: #5b9fd4;--accent-subtle: rgba(91, 159, 212, .15);--link: #9ec5f0;--link-hover: #c2dbf7;--table-stripe: rgba(255, 255, 255, .03);--table-header: #1a2332;--shadow: rgba(0, 0, 0, .45);--folder-icon-bg: #3d4f6f;--folder-icon-fg: #f4f5f7}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}#app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.topbar-left{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.topbar-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.topbar-search-wrap{position:relative;flex:1;max-width:420px}.topbar-search-wrap input{width:100%;padding:.45rem .75rem;border:1px solid var(--border);border-radius:var(--rm-radius, 4px);background:var(--panel);font-size:.875rem}.topbar-search-wrap input:focus{outline:2px solid var(--accent-subtle);border-color:var(--accent)}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px var(--shadow);max-height:320px;overflow:auto;z-index:50}.search-empty{margin:0;padding:.75rem 1rem;color:var(--muted);font-size:.85rem}.search-result-title{font-weight:600;font-size:.875rem}.search-result-meta{font-size:.75rem;color:var(--muted);margin-top:.15rem}.brand{font-weight:700;letter-spacing:.02em}.stats{font-size:.85rem;color:var(--muted)}.layout{display:grid;grid-template-columns:280px 1fr;flex:1;min-height:0}.sidebar{background:var(--bg);border-right:1px solid var(--border);overflow:auto;padding:.75rem .5rem}.workspace{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--bg)}.workspace-main{flex:1;min-height:0;overflow:auto;padding:1.5rem 2rem;display:flex;flex-direction:column}.graph-panel{position:relative;height:100%;width:100%;background:var(--panel)}.graph-panel svg{display:block;width:100%;height:100%}.graph-page{display:flex;flex-direction:column;height:100vh}.graph-fullscreen{flex:1;min-height:0;position:relative;background:var(--panel)}.graph-fullscreen svg{display:block;width:100%;height:100%}.graph-back{text-decoration:none;display:inline-flex;align-items:center}.graph-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem}.workspace-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-shrink:0}.workspace-title-row{flex:1;min-width:0}.doc-title{font-size:1.75rem;font-weight:600;margin:0;line-height:1.25}.title-input{width:100%;font-size:1.35rem;font-weight:600;padding:.35rem .5rem;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text)}.title-input:hover,.title-input:focus{border-color:var(--border);background:var(--panel);outline:none}.workspace-badges{display:flex;flex-wrap:wrap;gap:.35rem}.workspace-actions{display:flex;gap:.5rem;flex-shrink:0}.workspace-empty{margin:auto;text-align:center;max-width:360px}.workspace-empty h1{font-size:1.25rem;margin:0 0 .5rem}.workspace-footer{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border);flex-shrink:0}.workspace-footer code{font-size:.75rem;color:var(--muted);word-break:break-all}.meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem;flex-shrink:0}.field-wide{grid-column:span 2}.split-editor{display:grid;grid-template-columns:1fr 1fr;gap:0;flex:1;min-height:320px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.split-pane{display:flex;flex-direction:column;min-height:0;min-width:0}.split-pane+.split-pane{border-left:1px solid var(--border)}.pane-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.35rem .75rem;background:var(--panel);border-bottom:1px solid var(--border);flex-shrink:0}.split-pane textarea{flex:1;min-height:280px;border:none;border-radius:0;resize:none;padding:.75rem;line-height:1.55}.pane-preview{flex:1;overflow:auto;padding:.75rem 1rem;min-height:280px}.workspace-main:has(.workspace-editor){padding-bottom:.75rem}.workspace-editor{display:flex;flex-direction:column;flex:1;min-height:0}.reader-body{flex:1;min-height:0;overflow:auto}.reader-preview{max-width:72ch;line-height:1.6}.related-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:.75rem;font-size:.85rem}.related-label{color:var(--muted)}.related-chip{padding:.2rem .5rem;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--link);cursor:pointer;font-size:.8rem}.related-chip:hover{border-color:var(--link);color:var(--link-hover)}h2{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .5rem}.field{margin-bottom:0}.field label{display:block;font-size:.7rem;color:var(--muted);margin-bottom:.2rem}input,select{width:100%;padding:.4rem .5rem;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);font-size:.85rem}.doc-list,.search-results{list-style:none;padding:0;margin:0}.doc-list li,.search-results li{padding:.4rem .5rem;border-radius:4px;cursor:pointer;font-size:.9rem}.doc-list li:hover,.search-results li:hover,.doc-list li.active{background:var(--accent-subtle)}.doc-list .meta,.search-results .snippet{font-size:.75rem;color:var(--muted)}.tabs{display:flex;gap:.25rem;margin-bottom:.75rem}.tab{padding:.35rem .6rem;border:1px solid var(--border);background:transparent;color:var(--muted);border-radius:4px;cursor:pointer;font-size:.8rem}.tab.active{color:var(--text);border-color:var(--accent);background:var(--accent-subtle)}.tab-panel{display:none}.tab-panel.active{display:block}.markdown-preview{line-height:1.6;overflow-x:auto}.markdown-preview ul,.markdown-preview ol{margin:.75rem 0;padding-left:1.5rem}.markdown-preview li{margin:.25rem 0}.markdown-preview ul.contains-task-list{list-style:none;padding-left:0}.markdown-preview li.task-list-item{list-style:none;margin:.35rem 0;padding:0}.markdown-preview .task-list-item-label{display:flex;align-items:flex-start;gap:.55rem;cursor:default;line-height:1.5}.markdown-preview .task-list-item-checkbox{margin:.2rem 0 0;width:1rem;height:1rem;flex-shrink:0;accent-color:var(--accent)}.markdown-preview .task-list-item-content{flex:1;min-width:0}.markdown-preview .task-list-item-content>p{margin:0}.markdown-preview blockquote{margin:1rem 0;padding:.5rem 1rem;border-left:3px solid var(--accent);color:var(--muted);background:var(--accent-subtle);border-radius:0 4px 4px 0}.markdown-preview :not(pre)>code{font-family:ui-monospace,monospace;font-size:.88em;background:var(--panel);padding:.1rem .35rem;border-radius:3px;border:1px solid var(--border)}.markdown-preview .mermaid-wrapper{margin:1rem 0;padding:.75rem;background:var(--panel);border:1px solid var(--border);border-radius:6px;overflow-x:auto}.markdown-preview .mermaid-wrapper pre.mermaid{margin:0;padding:0;background:transparent;border:none}.markdown-preview .mermaid-error{border-color:#c0392b}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{margin-top:1rem}.markdown-preview table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:.9rem;border:1px solid var(--border);table-layout:auto}.markdown-preview thead th{background:var(--table-header);font-weight:600}.markdown-preview th,.markdown-preview td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left;vertical-align:top;min-width:4rem}.markdown-preview tbody tr:nth-child(2n) td{background:var(--table-stripe)}.markdown-preview tbody tr:hover td{background:var(--accent-subtle)}.markdown-preview pre{overflow:auto;background:var(--panel);padding:.5rem;border-radius:4px}.agent-json,.frontmatter-yaml,.structured-preview{font-family:ui-monospace,monospace;font-size:.8rem;white-space:pre-wrap;word-break:break-word;background:var(--panel);padding:.75rem;border-radius:4px;border:1px solid var(--border);margin:0;overflow:auto}.structured-preview--json code,.structured-preview--yaml code{color:var(--text)}.badge{display:inline-block;font-size:.7rem;padding:.15rem .45rem;border-radius:3px;background:var(--border)}.badge-draft{background:#e0c04a40;color:#e0c04a}.banner{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:#2d5a3d;color:#fff;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;z-index:200}.banner.error{background:#8b2e2e}.banner.hidden,.hidden{display:none}.node circle{stroke:var(--border);stroke-width:1.5px;cursor:pointer}.node.selected circle{stroke:var(--accent);stroke-width:3px}.node text{font-size:9px;fill:var(--text);pointer-events:none}.link{stroke:var(--border);stroke-opacity:.6}.placeholder{color:var(--muted);font-size:.9rem}.sidebar-actions{padding:0 .25rem .75rem}.catalog-tree{display:flex;flex-direction:column;gap:.25rem}.catalog-section{margin-bottom:.25rem}.catalog-header{width:100%;display:flex;align-items:center;gap:.35rem;padding:.35rem .5rem;border:none;background:transparent;color:var(--text);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;border-radius:4px}.catalog-icon{width:18px;height:18px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:#fff;flex-shrink:0;text-transform:none;letter-spacing:0}.catalog-icon--sm{width:16px;height:16px;font-size:.6rem}.catalog-icon--adr{background:#c97b4a}.catalog-icon--feature-spec{background:#6abf69}.catalog-icon--glossary-term{background:#b07cc6}.catalog-icon--open-question{background:#e0c04a;color:#172b4d}.catalog-icon--agent-instruction{background:#5b9fd4}.catalog-icon--draft{background:var(--muted)}.catalog-header:hover{background:var(--panel)}.catalog-chevron{width:1rem;color:var(--muted);flex-shrink:0}.catalog-label{flex:1;text-align:left}.catalog-count{color:var(--muted);font-weight:500}.catalog-pages{list-style:none;margin:0;padding:0 0 .25rem 1.25rem}.page-item{display:flex;align-items:center;gap:.35rem;padding:.35rem .5rem;border-radius:4px;cursor:pointer;font-size:.875rem}.editor-meta{grid-template-columns:1fr;margin-top:.75rem}.editor-meta .field-wide{grid-column:span 1}.editor-badges{margin-bottom:.5rem}.workspace-editor .split-editor{min-height:360px}.page-item:hover{background:var(--accent-subtle)}.page-item.active{background:var(--accent-subtle);color:var(--accent)}.page-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-item-text{display:flex;flex-direction:column;flex:1;min-width:0;gap:.1rem}.page-path{font-size:.7rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-subfolder{list-style:none;margin:.15rem 0 .25rem}.catalog-subheader{display:flex;align-items:center;gap:.35rem;width:100%;padding:.25rem .35rem;border:none;border-radius:4px;background:transparent;color:var(--text);font-size:.8rem;cursor:pointer}.catalog-subheader:hover{background:var(--accent-subtle)}.catalog-pages--nested{padding-left:.75rem}.catalog-icon--folder{background:var(--folder-icon-bg, #dfe1e6);color:var(--folder-icon-fg, #42526e)}.docs-tree{display:flex;flex-direction:column;gap:.1rem;margin-bottom:.75rem}.tree-row{display:flex;align-items:center;gap:.25rem;min-height:28px;border-radius:4px;padding-right:.25rem}.tree-row:hover .tree-add,.tree-row:focus-within .tree-add{opacity:1}.tree-row.active{background:var(--accent-subtle)}.tree-toggle,.tree-spacer{width:18px;flex-shrink:0;border:none;background:transparent;color:var(--muted);cursor:pointer;padding:0;font-size:.7rem}.tree-label{flex:1;min-width:0;display:flex;align-items:center;gap:.4rem;border:none;background:transparent;color:var(--text);cursor:pointer;text-align:left;padding:.2rem 0}.tree-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.875rem}.tree-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.85rem}.tree-icon--page{width:16px;height:16px;border-radius:3px;background:var(--panel);border:1px solid var(--border);color:var(--accent);font-size:.6rem;font-weight:700}.tree-add{opacity:0;width:22px;height:22px;border:1px solid var(--border);border-radius:4px;background:var(--panel);color:var(--text);cursor:pointer;font-size:.95rem;line-height:1;flex-shrink:0}.tree-add:hover{border-color:var(--accent);color:var(--accent)}.tree-create-menu{position:fixed;z-index:300;min-width:140px;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #00000026;padding:.25rem;display:flex;flex-direction:column}.tree-create-menu button{border:none;background:transparent;color:var(--text);text-align:left;padding:.45rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem}.tree-create-menu button:hover{background:var(--accent-subtle)}.tree-create-menu button.tree-menu-danger{color:#c0392b}.tree-create-menu button.tree-menu-danger:hover{background:#c0392b1f}.link-health-stats{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem}.link-health-stat{font-size:.9rem;color:var(--muted)}.link-health-value{display:block;font-size:1.35rem;font-weight:600;color:var(--text)}.tree-menu{width:1.5rem;height:1.5rem;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;font-size:.95rem;line-height:1;flex-shrink:0}.tree-menu:hover{border-color:var(--border);color:var(--text)}.tree-menu-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:.35rem .6rem .15rem}.editor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin-bottom:.35rem}.editor-toolbar button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:4px;padding:.2rem .45rem;font-size:.75rem;cursor:pointer}.editor-toolbar button:hover{border-color:var(--accent);color:var(--accent)}.editor-toolbar-sep{width:1px;height:1rem;background:var(--border);margin:0 .15rem}.wikilink-menu{position:fixed;z-index:400;max-height:240px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #00000026;display:flex;flex-direction:column}.wikilink-menu.hidden{display:none}.wikilink-option{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;border:none;background:transparent;color:var(--text);text-align:left;padding:.45rem .6rem;cursor:pointer}.wikilink-option:hover{background:var(--accent-subtle)}.wikilink-option-slug{font-family:var(--mono, monospace);font-size:.8rem}.wikilink-option-title{font-size:.75rem;color:var(--muted)}.publish-related{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.publish-related-list{margin:.5rem 0 0;padding-left:1.25rem;font-size:.85rem}.status-chip{font-size:.65rem;padding:.1rem .35rem;border-radius:3px;background:var(--panel);color:var(--muted);text-transform:uppercase;flex-shrink:0}.status-accepted{display:none}.status-draft{background:#fff7d6;color:#974f0c}[data-theme=dark] .status-draft{background:#e0c04a33;color:#e0c04a}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;font-size:.85rem}.crumb{border:none;background:transparent;color:var(--muted);cursor:pointer;padding:0;font:inherit}.crumb:hover{color:var(--link);text-decoration:underline}.crumb.current{color:var(--text);font-weight:600;cursor:default;text-decoration:none}.crumb-sep{color:var(--muted)}.page-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:1.5rem;align-items:start}.page-layout--focus{grid-template-columns:minmax(0,1fr)}.page-layout--focus .page-info{display:none}.reader-backlinks{margin-top:2rem;padding-top:1.25rem;border-top:1px solid var(--border)}.reader-backlinks.hidden{display:none}.reader-backlinks-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .75rem}.reader-backlinks-list{display:flex;flex-wrap:wrap;gap:.35rem}.backlink-kind{font-size:.65rem;color:var(--muted);text-transform:uppercase;margin-left:.25rem}.markdown-preview a{color:var(--link);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--link) 45%,transparent);text-underline-offset:2px}.markdown-preview a:hover{color:var(--link-hover);text-decoration-color:var(--link-hover)}.markdown-preview a.wikilink{color:var(--link);text-decoration:none;border-bottom:1px dashed color-mix(in srgb,var(--link) 65%,transparent)}.markdown-preview a.wikilink:hover{color:var(--link-hover);border-bottom-color:var(--link-hover);text-decoration:none}.markdown-preview a.md-link-unresolved{color:var(--muted);text-decoration:line-through;cursor:not-allowed}.markdown-preview img.markdown-image{display:block;max-width:100%;height:auto;margin:1rem 0;border-radius:6px;border:1px solid var(--border);background:var(--panel)}.page-content{min-width:0}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.page-info{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:1rem;position:sticky;top:0}.page-info-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .75rem}.info-list{margin:0 0 1rem;display:grid;grid-template-columns:auto 1fr;gap:.35rem .75rem;font-size:.85rem}.info-list dt{color:var(--muted);margin:0}.info-list dd{margin:0}.info-block{margin-bottom:1rem}.info-block-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.35rem}.tag-chip{display:inline-block;font-size:.75rem;padding:.1rem .4rem;border-radius:3px;background:var(--bg);border:1px solid var(--border);margin-right:.25rem}.page-info-footer{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.page-info-footer code{font-size:.7rem;color:var(--muted);word-break:break-all}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:4px;padding:.45rem .75rem;font-weight:600;cursor:pointer;font-size:.85rem}.btn-primary:hover{background:#05c}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:.4rem .65rem;cursor:pointer;font-size:.85rem}.btn-ghost:hover,#health-toggle[aria-pressed=true]{color:var(--text);border-color:var(--accent)}.btn-block{width:100%}.editor-actions{display:flex;gap:.5rem;margin-top:.75rem}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal.hidden{display:none}.modal-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:1rem;max-width:420px;width:90%}.modal-card-wide{max-width:640px}.modal-title{margin:0 0 .75rem;font-size:1.1rem}.field-hint{font-size:.75rem;color:#e07a7a;margin:.25rem 0 0}.workspace-dashboard{display:flex;flex-direction:column;gap:1rem;max-width:900px}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.dashboard-section h2{margin-top:0}.dashboard-hint{margin:0 0 .75rem;font-size:.875rem;color:var(--text-muted)}.dashboard-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.check-status{font-size:.95rem;margin:0 0 .75rem}.check-ok{color:#6abf69}.check-fail{color:#e07a7a}.violation-list,.warning-list,.queue-list{list-style:none;padding:0;margin:0}.violation-list li,.warning-list li{font-size:.85rem;padding:.35rem 0;border-bottom:1px solid var(--border)}.warning-list li{color:var(--muted)}.warnings-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1rem 0 .5rem}.queue-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.queue-main{min-width:0}.queue-actions{display:flex;gap:.35rem;flex-shrink:0}.btn-sm{padding:.3rem .55rem;font-size:.75rem}.diff-preview{margin:.75rem 0 0;max-height:240px;overflow:auto;font-family:ui-monospace,monospace;font-size:.75rem;white-space:pre-wrap;word-break:break-word;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:.5rem}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{max-height:240px;border-right:none;border-bottom:1px solid var(--border)}.page-layout{grid-template-columns:1fr}.page-info{position:static}.split-editor{grid-template-columns:1fr}.split-pane+.split-pane{border-left:none;border-top:1px solid var(--border)}.meta-grid{grid-template-columns:1fr 1fr}.field-wide{grid-column:span 2}}