@imenam/mcp-documentor 1.0.87 → 1.0.89

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 (81) hide show
  1. package/README.md +10 -6
  2. package/dist/shared/read-only.js +1 -1
  3. package/dist/shared/schemas/doc.schema.d.ts +1 -0
  4. package/dist/shared/schemas/doc.schema.js +1 -0
  5. package/dist/src/core/blob-store.d.ts +5 -0
  6. package/dist/src/core/blob-store.js +49 -0
  7. package/dist/src/core/code-source.d.ts +32 -0
  8. package/dist/src/core/code-source.js +23 -4
  9. package/dist/src/core/git-sync.d.ts +5 -0
  10. package/dist/src/core/git-sync.js +41 -2
  11. package/dist/src/core/github-code-api.d.ts +7 -11
  12. package/dist/src/core/github-code-api.js +94 -41
  13. package/dist/src/core/github-log.d.ts +38 -0
  14. package/dist/src/core/github-log.js +64 -0
  15. package/dist/src/core/log-reader.d.ts +47 -0
  16. package/dist/src/core/log-reader.js +106 -0
  17. package/dist/src/core/storage-engine.d.ts +21 -6
  18. package/dist/src/core/storage-engine.js +80 -24
  19. package/dist/src/gui-worker.js +58 -1
  20. package/dist/src/index.js +77 -10
  21. package/dist/src/tools/code-sources.d.ts +9 -0
  22. package/dist/src/tools/code-sources.js +18 -16
  23. package/dist/src/tools/create-project.d.ts +19 -0
  24. package/dist/src/tools/create-project.js +42 -0
  25. package/dist/src/tools/delete-project.d.ts +16 -0
  26. package/dist/src/tools/delete-project.js +25 -0
  27. package/dist/src/tools/git-diff-doc.js +123 -98
  28. package/dist/src/tools/patch-doc.js +14 -3
  29. package/gui/dist/assets/{arc-DBgCQU2O.js → arc-BSPFCwLF.js} +1 -1
  30. package/gui/dist/assets/{architectureDiagram-3BPJPVTR-BIPBAzZr.js → architectureDiagram-3BPJPVTR-DHZcCdLS.js} +1 -1
  31. package/gui/dist/assets/{blockDiagram-GPEHLZMM-BE9WwuyF.js → blockDiagram-GPEHLZMM-D9dTrlKM.js} +1 -1
  32. package/gui/dist/assets/{c4Diagram-AAUBKEIU-V1_4ktIt.js → c4Diagram-AAUBKEIU-BF3-rTSW.js} +1 -1
  33. package/gui/dist/assets/channel-BgXnhna2.js +1 -0
  34. package/gui/dist/assets/{chunk-2J33WTMH-DskG-Kmf.js → chunk-2J33WTMH-B_rKbUyS.js} +1 -1
  35. package/gui/dist/assets/{chunk-4BX2VUAB-DaPhidEI.js → chunk-4BX2VUAB-C9w424bT.js} +1 -1
  36. package/gui/dist/assets/{chunk-55IACEB6-C9r6WDFM.js → chunk-55IACEB6-B2gLfiw3.js} +1 -1
  37. package/gui/dist/assets/{chunk-727SXJPM-BA-aC8US.js → chunk-727SXJPM-CXLwbQzD.js} +1 -1
  38. package/gui/dist/assets/{chunk-AQP2D5EJ-ByBp3whV.js → chunk-AQP2D5EJ-DIEelNex.js} +1 -1
  39. package/gui/dist/assets/{chunk-FMBD7UC4-CzqUByx7.js → chunk-FMBD7UC4-CKDjYi8Q.js} +1 -1
  40. package/gui/dist/assets/{chunk-ND2GUHAM-C0_B2ryQ.js → chunk-ND2GUHAM-D5NTnoWH.js} +1 -1
  41. package/gui/dist/assets/{chunk-QZHKN3VN-B3eEwjDh.js → chunk-QZHKN3VN-Cc9DzsoT.js} +1 -1
  42. package/gui/dist/assets/classDiagram-4FO5ZUOK-DmPDrQWl.js +1 -0
  43. package/gui/dist/assets/classDiagram-v2-Q7XG4LA2-DmPDrQWl.js +1 -0
  44. package/gui/dist/assets/{cose-bilkent-S5V4N54A-D_i0I2pU.js → cose-bilkent-S5V4N54A-zK_y1Jct.js} +1 -1
  45. package/gui/dist/assets/{dagre-BM42HDAG-DtEVPK_z.js → dagre-BM42HDAG-D87rXs2_.js} +1 -1
  46. package/gui/dist/assets/{diagram-2AECGRRQ-BftnXa5w.js → diagram-2AECGRRQ-0qYWhZfZ.js} +1 -1
  47. package/gui/dist/assets/{diagram-5GNKFQAL-Dh9-kl_u.js → diagram-5GNKFQAL-BvmrfVQ0.js} +1 -1
  48. package/gui/dist/assets/{diagram-KO2AKTUF-CvB0BWCa.js → diagram-KO2AKTUF-0DIH1FgX.js} +1 -1
  49. package/gui/dist/assets/{diagram-LMA3HP47-CDy-J1uy.js → diagram-LMA3HP47-T8W429Io.js} +1 -1
  50. package/gui/dist/assets/{diagram-OG6HWLK6-iY9FwkIF.js → diagram-OG6HWLK6-DJMnhtDn.js} +1 -1
  51. package/gui/dist/assets/{erDiagram-TEJ5UH35-BT2_IX8D.js → erDiagram-TEJ5UH35-CyuwcTwK.js} +1 -1
  52. package/gui/dist/assets/{flowDiagram-I6XJVG4X-DaixWyMx.js → flowDiagram-I6XJVG4X-xhGOn_4T.js} +1 -1
  53. package/gui/dist/assets/{ganttDiagram-6RSMTGT7-DSo3cQPH.js → ganttDiagram-6RSMTGT7-CmkhPjbj.js} +1 -1
  54. package/gui/dist/assets/{gitGraphDiagram-PVQCEYII-BfFT7Lds.js → gitGraphDiagram-PVQCEYII-CyMVk2nl.js} +1 -1
  55. package/gui/dist/assets/{index-DPGmAc6z.js → index-CCqNIUBp.js} +154 -152
  56. package/gui/dist/assets/index-CtPuh-0k.css +1 -0
  57. package/gui/dist/assets/{infoDiagram-5YYISTIA-BxbxNxe2.js → infoDiagram-5YYISTIA-q2gOQizR.js} +1 -1
  58. package/gui/dist/assets/{ishikawaDiagram-YF4QCWOH-DpopzqZr.js → ishikawaDiagram-YF4QCWOH-C_a8ouWt.js} +1 -1
  59. package/gui/dist/assets/{journeyDiagram-JHISSGLW-DrOlFzIk.js → journeyDiagram-JHISSGLW-B0XgZgmz.js} +1 -1
  60. package/gui/dist/assets/{kanban-definition-UN3LZRKU-vH81lYXy.js → kanban-definition-UN3LZRKU-BE1EyBT0.js} +1 -1
  61. package/gui/dist/assets/{linear-BipFpFah.js → linear-CJpiIHfp.js} +1 -1
  62. package/gui/dist/assets/{mindmap-definition-RKZ34NQL-DsTxCLgj.js → mindmap-definition-RKZ34NQL-BqrhFP-W.js} +1 -1
  63. package/gui/dist/assets/{pieDiagram-4H26LBE5-Bbq2ZWQU.js → pieDiagram-4H26LBE5-TchMhFLa.js} +1 -1
  64. package/gui/dist/assets/{quadrantDiagram-W4KKPZXB-BdTSaEo4.js → quadrantDiagram-W4KKPZXB-KjwnPHRE.js} +1 -1
  65. package/gui/dist/assets/{requirementDiagram-4Y6WPE33-BndI8YZy.js → requirementDiagram-4Y6WPE33-9wlFYy5z.js} +1 -1
  66. package/gui/dist/assets/{sankeyDiagram-5OEKKPKP-ofBkVITf.js → sankeyDiagram-5OEKKPKP-3DSwfggy.js} +1 -1
  67. package/gui/dist/assets/{sequenceDiagram-3UESZ5HK-Cjj2UrN9.js → sequenceDiagram-3UESZ5HK-CeGhZql1.js} +1 -1
  68. package/gui/dist/assets/{stateDiagram-AJRCARHV-CzPrXUuz.js → stateDiagram-AJRCARHV-DgPL6ffw.js} +1 -1
  69. package/gui/dist/assets/stateDiagram-v2-BHNVJYJU-y8DOR9eQ.js +1 -0
  70. package/gui/dist/assets/{timeline-definition-PNZ67QCA-Cz4X-IOO.js → timeline-definition-PNZ67QCA-BUs8-FJU.js} +1 -1
  71. package/gui/dist/assets/{vennDiagram-CIIHVFJN-BwIgXJcZ.js → vennDiagram-CIIHVFJN-Csa_wIyD.js} +1 -1
  72. package/gui/dist/assets/{wardley-L42UT6IY-keQS0aNZ.js → wardley-L42UT6IY-Cw3ksKPO.js} +1 -1
  73. package/gui/dist/assets/{wardleyDiagram-YWT4CUSO-DhykSgbD.js → wardleyDiagram-YWT4CUSO-C0tdxIha.js} +1 -1
  74. package/gui/dist/assets/{xychartDiagram-2RQKCTM6-DFTqc4cj.js → xychartDiagram-2RQKCTM6-C6UgKrOd.js} +1 -1
  75. package/gui/dist/index.html +2 -2
  76. package/package.json +2 -1
  77. package/gui/dist/assets/channel-B_cci0fU.js +0 -1
  78. package/gui/dist/assets/classDiagram-4FO5ZUOK-BqlcJ5BP.js +0 -1
  79. package/gui/dist/assets/classDiagram-v2-Q7XG4LA2-BqlcJ5BP.js +0 -1
  80. package/gui/dist/assets/index-CxCC1gxu.css +0 -1
  81. package/gui/dist/assets/stateDiagram-v2-BHNVJYJU-DAq4ObN9.js +0 -1
@@ -1,4 +1,4 @@
1
- import{s as gi,g as xi,q as Xt,p as di,a as fi,b as pi,_ as a,l as Yt,I as mi,e as yi,z as bi,D as _t,i as Ai,F as Nt,G as wi,K as Ci,am as Si,R as Wt}from"./index-DPGmAc6z.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as zt}from"./linear-BipFpFah.js";import"./defaultLocale-DX6XiGOO.js";function Ri(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function bt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,u,p=!1,f=0,T=0,P=.5;delete e.unknown;function _(){var y=t().length,E=n<s,v=E?n:s,L=E?s:n;o=(L-v)/Math.max(1,y-f+T*2),p&&(o=Math.floor(o)),v+=(L-v-o*(y-f))*P,u=o*(1-f),p&&(v=Math.round(v),u=Math.round(u));var I=Ri(y).map(function(m){return v+o*m});return i(E?I.reverse():I)}return e.domain=function(y){return arguments.length?(t(y),_()):t()},e.range=function(y){return arguments.length?([s,n]=y,s=+s,n=+n,_()):[s,n]},e.rangeRound=function(y){return[s,n]=y,s=+s,n=+n,p=!0,_()},e.bandwidth=function(){return u},e.step=function(){return o},e.round=function(y){return arguments.length?(p=!!y,_()):p},e.padding=function(y){return arguments.length?(f=Math.min(1,T=+y),_()):f},e.paddingInner=function(y){return arguments.length?(f=Math.min(1,y),_()):f},e.paddingOuter=function(y){return arguments.length?(T=+y,_()):T},e.align=function(y){return arguments.length?(P=Math.max(0,Math.min(1,y)),_()):P},e.copy=function(){return bt(t(),[s,n]).round(p).paddingInner(f).paddingOuter(T).align(P)},_i.apply(_(),arguments)}var At=(function(){var e=a(function(F,h,c,g){for(c=c||{},g=F.length;g--;c[F[g]]=h);return c},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],u=[1,7],p=[1,5,10,12,14,16,18,19,21,23,34,35,36],f=[1,25],T=[1,26],P=[1,28],_=[1,29],y=[1,30],E=[1,31],v=[1,32],L=[1,33],I=[1,34],m=[1,35],R=[1,36],l=[1,37],W=[1,43],O=[1,42],X=[1,47],Y=[1,50],S=[1,10,12,14,16,18,19,21,23,34,35,36],U=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],b=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],w=[1,64],V={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(h,c,g,x,C,r,rt){var d=r.length-1;switch(C){case 5:x.setOrientation(r[d]);break;case 9:x.setDiagramTitle(r[d].text.trim());break;case 12:x.setLineData({text:"",type:"text"},r[d]);break;case 13:x.setLineData(r[d-1],r[d]);break;case 14:x.setBarData({text:"",type:"text"},r[d]);break;case 15:x.setBarData(r[d-1],r[d]);break;case 16:this.$=r[d].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=r[d].trim(),x.setAccDescription(this.$);break;case 19:this.$=r[d-1];break;case 20:this.$=[Number(r[d-2]),...r[d]];break;case 21:this.$=[Number(r[d])];break;case 22:x.setXAxisTitle(r[d]);break;case 23:x.setXAxisTitle(r[d-1]);break;case 24:x.setXAxisTitle({type:"text",text:""});break;case 25:x.setXAxisBand(r[d]);break;case 26:x.setXAxisRangeData(Number(r[d-2]),Number(r[d]));break;case 27:this.$=r[d-1];break;case 28:this.$=[r[d-2],...r[d]];break;case 29:this.$=[r[d]];break;case 30:x.setYAxisTitle(r[d]);break;case 31:x.setYAxisTitle(r[d-1]);break;case 32:x.setYAxisTitle({type:"text",text:""});break;case 33:x.setYAxisRangeData(Number(r[d-2]),Number(r[d]));break;case 37:this.$={text:r[d],type:"text"};break;case 38:this.$={text:r[d],type:"text"};break;case 39:this.$={text:r[d],type:"markdown"};break;case 40:this.$=r[d];break;case 41:this.$=r[d-1]+""+r[d];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:u}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:u}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:u}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,34]),e(p,[2,35]),e(p,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:u}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:u}),{11:23,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:39,13:38,24:W,27:O,29:40,30:41,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:45,15:44,27:X,33:46,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:49,17:48,24:Y,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:52,17:51,24:Y,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{20:[1,53]},{22:[1,54]},e(S,[2,18]),{1:[2,2]},e(S,[2,8]),e(S,[2,9]),e(U,[2,37],{40:55,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l}),e(U,[2,38]),e(U,[2,39]),e(b,[2,40]),e(b,[2,42]),e(b,[2,43]),e(b,[2,44]),e(b,[2,45]),e(b,[2,46]),e(b,[2,47]),e(b,[2,48]),e(b,[2,49]),e(b,[2,50]),e(b,[2,51]),e(S,[2,10]),e(S,[2,22],{30:41,29:56,24:W,27:O}),e(S,[2,24]),e(S,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},e(S,[2,11]),e(S,[2,30],{33:60,27:X}),e(S,[2,32]),{31:[1,61]},e(S,[2,12]),{17:62,24:Y},{25:63,27:w},e(S,[2,14]),{17:65,24:Y},e(S,[2,16]),e(S,[2,17]),e(b,[2,41]),e(S,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(S,[2,31]),{27:[1,69]},e(S,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(S,[2,15]),e(S,[2,26]),e(S,[2,27]),{11:59,32:72,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},e(S,[2,33]),e(S,[2,19]),{25:73,27:w},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(h,c){if(c.recoverable)this.trace(h);else{var g=new Error(h);throw g.hash=c,g}},"parseError"),parse:a(function(h){var c=this,g=[0],x=[],C=[null],r=[],rt=this.table,d="",ct=0,It=0,hi=2,Mt=1,li=r.slice.call(arguments,1),D=Object.create(this.lexer),$={yy:{}};for(var ft in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ft)&&($.yy[ft]=this.yy[ft]);D.setInput(h,$.yy),$.yy.lexer=D,$.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var pt=D.yylloc;r.push(pt);var ci=D.options&&D.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(B){g.length=g.length-2*B,C.length=C.length-B,r.length=r.length-B}a(ui,"popStack");function Vt(){var B;return B=x.pop()||D.lex()||Mt,typeof B!="number"&&(B instanceof Array&&(x=B,B=x.pop()),B=c.symbols_[B]||B),B}a(Vt,"lex");for(var M,q,z,mt,G={},ut,N,Bt,gt;;){if(q=g[g.length-1],this.defaultActions[q]?z=this.defaultActions[q]:((M===null||typeof M>"u")&&(M=Vt()),z=rt[q]&&rt[q][M]),typeof z>"u"||!z.length||!z[0]){var yt="";gt=[];for(ut in rt[q])this.terminals_[ut]&&ut>hi&&gt.push("'"+this.terminals_[ut]+"'");D.showPosition?yt="Parse error on line "+(ct+1)+`:
1
+ import{s as gi,g as xi,q as Xt,p as di,a as fi,b as pi,_ as a,l as Yt,I as mi,e as yi,z as bi,D as _t,i as Ai,F as Nt,G as wi,K as Ci,am as Si,R as Wt}from"./index-CCqNIUBp.js";import{i as _i}from"./init-Gi6I4Gst.js";import{o as ki}from"./ordinal-Cboi1Yqb.js";import{l as zt}from"./linear-CJpiIHfp.js";import"./defaultLocale-DX6XiGOO.js";function Ri(e,t,i){e=+e,t=+t,i=(n=arguments.length)<2?(t=e,e=0,1):n<3?1:+i;for(var s=-1,n=Math.max(0,Math.ceil((t-e)/i))|0,o=new Array(n);++s<n;)o[s]=e+s*i;return o}function bt(){var e=ki().unknown(void 0),t=e.domain,i=e.range,s=0,n=1,o,u,p=!1,f=0,T=0,P=.5;delete e.unknown;function _(){var y=t().length,E=n<s,v=E?n:s,L=E?s:n;o=(L-v)/Math.max(1,y-f+T*2),p&&(o=Math.floor(o)),v+=(L-v-o*(y-f))*P,u=o*(1-f),p&&(v=Math.round(v),u=Math.round(u));var I=Ri(y).map(function(m){return v+o*m});return i(E?I.reverse():I)}return e.domain=function(y){return arguments.length?(t(y),_()):t()},e.range=function(y){return arguments.length?([s,n]=y,s=+s,n=+n,_()):[s,n]},e.rangeRound=function(y){return[s,n]=y,s=+s,n=+n,p=!0,_()},e.bandwidth=function(){return u},e.step=function(){return o},e.round=function(y){return arguments.length?(p=!!y,_()):p},e.padding=function(y){return arguments.length?(f=Math.min(1,T=+y),_()):f},e.paddingInner=function(y){return arguments.length?(f=Math.min(1,y),_()):f},e.paddingOuter=function(y){return arguments.length?(T=+y,_()):T},e.align=function(y){return arguments.length?(P=Math.max(0,Math.min(1,y)),_()):P},e.copy=function(){return bt(t(),[s,n]).round(p).paddingInner(f).paddingOuter(T).align(P)},_i.apply(_(),arguments)}var At=(function(){var e=a(function(F,h,c,g){for(c=c||{},g=F.length;g--;c[F[g]]=h);return c},"o"),t=[1,10,12,14,16,18,19,21,23],i=[2,6],s=[1,3],n=[1,5],o=[1,6],u=[1,7],p=[1,5,10,12,14,16,18,19,21,23,34,35,36],f=[1,25],T=[1,26],P=[1,28],_=[1,29],y=[1,30],E=[1,31],v=[1,32],L=[1,33],I=[1,34],m=[1,35],R=[1,36],l=[1,37],W=[1,43],O=[1,42],X=[1,47],Y=[1,50],S=[1,10,12,14,16,18,19,21,23,34,35,36],U=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36],b=[1,10,12,14,16,18,19,21,23,24,26,27,28,34,35,36,41,42,43,44,45,46,47,48,49,50],w=[1,64],V={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,commaSeparatedNumbers:25,SQUARE_BRACES_END:26,NUMBER_WITH_DECIMAL:27,COMMA:28,xAxisData:29,bandData:30,ARROW_DELIMITER:31,commaSeparatedTexts:32,yAxisData:33,NEWLINE:34,SEMI:35,EOF:36,alphaNum:37,STR:38,MD_STR:39,alphaNumToken:40,AMP:41,NUM:42,ALPHA:43,PLUS:44,EQUALS:45,MULT:46,DOT:47,BRKT:48,MINUS:49,UNDERSCORE:50,$accept:0,$end:1},terminals_:{2:"error",5:"XYCHART",8:"CHART_ORIENTATION",10:"title",12:"X_AXIS",14:"Y_AXIS",16:"LINE",18:"BAR",19:"acc_title",20:"acc_title_value",21:"acc_descr",22:"acc_descr_value",23:"acc_descr_multiline_value",24:"SQUARE_BRACES_START",26:"SQUARE_BRACES_END",27:"NUMBER_WITH_DECIMAL",28:"COMMA",31:"ARROW_DELIMITER",34:"NEWLINE",35:"SEMI",36:"EOF",38:"STR",39:"MD_STR",41:"AMP",42:"NUM",43:"ALPHA",44:"PLUS",45:"EQUALS",46:"MULT",47:"DOT",48:"BRKT",49:"MINUS",50:"UNDERSCORE"},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[13,1],[13,2],[13,1],[29,1],[29,3],[30,3],[32,3],[32,1],[15,1],[15,2],[15,1],[33,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[37,1],[37,2],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1],[40,1]],performAction:a(function(h,c,g,x,C,r,rt){var d=r.length-1;switch(C){case 5:x.setOrientation(r[d]);break;case 9:x.setDiagramTitle(r[d].text.trim());break;case 12:x.setLineData({text:"",type:"text"},r[d]);break;case 13:x.setLineData(r[d-1],r[d]);break;case 14:x.setBarData({text:"",type:"text"},r[d]);break;case 15:x.setBarData(r[d-1],r[d]);break;case 16:this.$=r[d].trim(),x.setAccTitle(this.$);break;case 17:case 18:this.$=r[d].trim(),x.setAccDescription(this.$);break;case 19:this.$=r[d-1];break;case 20:this.$=[Number(r[d-2]),...r[d]];break;case 21:this.$=[Number(r[d])];break;case 22:x.setXAxisTitle(r[d]);break;case 23:x.setXAxisTitle(r[d-1]);break;case 24:x.setXAxisTitle({type:"text",text:""});break;case 25:x.setXAxisBand(r[d]);break;case 26:x.setXAxisRangeData(Number(r[d-2]),Number(r[d]));break;case 27:this.$=r[d-1];break;case 28:this.$=[r[d-2],...r[d]];break;case 29:this.$=[r[d]];break;case 30:x.setYAxisTitle(r[d]);break;case 31:x.setYAxisTitle(r[d-1]);break;case 32:x.setYAxisTitle({type:"text",text:""});break;case 33:x.setYAxisRangeData(Number(r[d-2]),Number(r[d]));break;case 37:this.$={text:r[d],type:"text"};break;case 38:this.$={text:r[d],type:"text"};break;case 39:this.$={text:r[d],type:"markdown"};break;case 40:this.$=r[d];break;case 41:this.$=r[d-1]+""+r[d];break}},"anonymous"),table:[e(t,i,{3:1,4:2,7:4,5:s,34:n,35:o,36:u}),{1:[3]},e(t,i,{4:2,7:4,3:8,5:s,34:n,35:o,36:u}),e(t,i,{4:2,7:4,6:9,3:10,5:s,8:[1,11],34:n,35:o,36:u}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},e(p,[2,34]),e(p,[2,35]),e(p,[2,36]),{1:[2,1]},e(t,i,{4:2,7:4,3:21,5:s,34:n,35:o,36:u}),{1:[2,3]},e(p,[2,5]),e(t,[2,7],{4:22,34:n,35:o,36:u}),{11:23,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:39,13:38,24:W,27:O,29:40,30:41,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:45,15:44,27:X,33:46,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:49,17:48,24:Y,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{11:52,17:51,24:Y,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},{20:[1,53]},{22:[1,54]},e(S,[2,18]),{1:[2,2]},e(S,[2,8]),e(S,[2,9]),e(U,[2,37],{40:55,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l}),e(U,[2,38]),e(U,[2,39]),e(b,[2,40]),e(b,[2,42]),e(b,[2,43]),e(b,[2,44]),e(b,[2,45]),e(b,[2,46]),e(b,[2,47]),e(b,[2,48]),e(b,[2,49]),e(b,[2,50]),e(b,[2,51]),e(S,[2,10]),e(S,[2,22],{30:41,29:56,24:W,27:O}),e(S,[2,24]),e(S,[2,25]),{31:[1,57]},{11:59,32:58,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},e(S,[2,11]),e(S,[2,30],{33:60,27:X}),e(S,[2,32]),{31:[1,61]},e(S,[2,12]),{17:62,24:Y},{25:63,27:w},e(S,[2,14]),{17:65,24:Y},e(S,[2,16]),e(S,[2,17]),e(b,[2,41]),e(S,[2,23]),{27:[1,66]},{26:[1,67]},{26:[2,29],28:[1,68]},e(S,[2,31]),{27:[1,69]},e(S,[2,13]),{26:[1,70]},{26:[2,21],28:[1,71]},e(S,[2,15]),e(S,[2,26]),e(S,[2,27]),{11:59,32:72,37:24,38:f,39:T,40:27,41:P,42:_,43:y,44:E,45:v,46:L,47:I,48:m,49:R,50:l},e(S,[2,33]),e(S,[2,19]),{25:73,27:w},{26:[2,28]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],72:[2,28],73:[2,20]},parseError:a(function(h,c){if(c.recoverable)this.trace(h);else{var g=new Error(h);throw g.hash=c,g}},"parseError"),parse:a(function(h){var c=this,g=[0],x=[],C=[null],r=[],rt=this.table,d="",ct=0,It=0,hi=2,Mt=1,li=r.slice.call(arguments,1),D=Object.create(this.lexer),$={yy:{}};for(var ft in this.yy)Object.prototype.hasOwnProperty.call(this.yy,ft)&&($.yy[ft]=this.yy[ft]);D.setInput(h,$.yy),$.yy.lexer=D,$.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var pt=D.yylloc;r.push(pt);var ci=D.options&&D.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ui(B){g.length=g.length-2*B,C.length=C.length-B,r.length=r.length-B}a(ui,"popStack");function Vt(){var B;return B=x.pop()||D.lex()||Mt,typeof B!="number"&&(B instanceof Array&&(x=B,B=x.pop()),B=c.symbols_[B]||B),B}a(Vt,"lex");for(var M,q,z,mt,G={},ut,N,Bt,gt;;){if(q=g[g.length-1],this.defaultActions[q]?z=this.defaultActions[q]:((M===null||typeof M>"u")&&(M=Vt()),z=rt[q]&&rt[q][M]),typeof z>"u"||!z.length||!z[0]){var yt="";gt=[];for(ut in rt[q])this.terminals_[ut]&&ut>hi&&gt.push("'"+this.terminals_[ut]+"'");D.showPosition?yt="Parse error on line "+(ct+1)+`:
2
2
  `+D.showPosition()+`
3
3
  Expecting `+gt.join(", ")+", got '"+(this.terminals_[M]||M)+"'":yt="Parse error on line "+(ct+1)+": Unexpected "+(M==Mt?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(yt,{text:D.match,token:this.terminals_[M]||M,line:D.yylineno,loc:pt,expected:gt})}if(z[0]instanceof Array&&z.length>1)throw new Error("Parse Error: multiple actions possible at state: "+q+", token: "+M);switch(z[0]){case 1:g.push(M),C.push(D.yytext),r.push(D.yylloc),g.push(z[1]),M=null,It=D.yyleng,d=D.yytext,ct=D.yylineno,pt=D.yylloc;break;case 2:if(N=this.productions_[z[1]][1],G.$=C[C.length-N],G._$={first_line:r[r.length-(N||1)].first_line,last_line:r[r.length-1].last_line,first_column:r[r.length-(N||1)].first_column,last_column:r[r.length-1].last_column},ci&&(G._$.range=[r[r.length-(N||1)].range[0],r[r.length-1].range[1]]),mt=this.performAction.apply(G,[d,It,ct,$.yy,z[1],C,r].concat(li)),typeof mt<"u")return mt;N&&(g=g.slice(0,-1*N*2),C=C.slice(0,-1*N),r=r.slice(0,-1*N)),g.push(this.productions_[z[1]][0]),C.push(G.$),r.push(G._$),Bt=rt[g[g.length-2]][g[g.length-1]],g.push(Bt);break;case 3:return!0}}return!0},"parse")},k=(function(){var F={EOF:1,parseError:a(function(c,g){if(this.yy.parser)this.yy.parser.parseError(c,g);else throw new Error(c)},"parseError"),setInput:a(function(h,c){return this.yy=c||this.yy||{},this._input=h,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var h=this._input[0];this.yytext+=h,this.yyleng++,this.offset++,this.match+=h,this.matched+=h;var c=h.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),h},"input"),unput:a(function(h){var c=h.length,g=h.split(/(?:\r\n?|\n)/g);this._input=h+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var x=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),g.length-1&&(this.yylineno-=g.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:g?(g.length===x.length?this.yylloc.first_column:0)+x[x.length-g.length].length-g[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
4
  `+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(h){this.unput(this.match.slice(h))},"less"),pastInput:a(function(){var h=this.matched.substr(0,this.matched.length-this.match.length);return(h.length>20?"...":"")+h.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var h=this.match;return h.length<20&&(h+=this._input.substr(0,20-h.length)),(h.substr(0,20)+(h.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var h=this.pastInput(),c=new Array(h.length+1).join("-");return h+this.upcomingInput()+`
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/svg+xml" href="./vite.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>MCP Documentor</title>
8
- <script type="module" crossorigin src="./assets/index-DPGmAc6z.js"></script>
9
- <link rel="stylesheet" crossorigin href="./assets/index-CxCC1gxu.css">
8
+ <script type="module" crossorigin src="./assets/index-CCqNIUBp.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-CtPuh-0k.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imenam/mcp-documentor",
3
- "version": "1.0.87",
3
+ "version": "1.0.89",
4
4
  "main": "dist/src/index.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -27,6 +27,7 @@
27
27
  "@imenam/mcp-gui-interface": "^1.0.14",
28
28
  "@modelcontextprotocol/sdk": "^1.27.1",
29
29
  "better-sqlite3": "^12.8.0",
30
+ "diff": "^9.0.0",
30
31
  "dotenv": "^17.3.1",
31
32
  "github-slugger": "^2.0.0",
32
33
  "gray-matter": "^4.0.3",
@@ -1 +0,0 @@
1
- import{ai as o,aj as n}from"./index-DPGmAc6z.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-BA-aC8US.js";import{_ as i}from"./index-DPGmAc6z.js";import"./chunk-FMBD7UC4-CzqUByx7.js";import"./chunk-ND2GUHAM-C0_B2ryQ.js";import"./chunk-55IACEB6-C9r6WDFM.js";import"./chunk-2J33WTMH-DskG-Kmf.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-727SXJPM-BA-aC8US.js";import{_ as i}from"./index-DPGmAc6z.js";import"./chunk-FMBD7UC4-CzqUByx7.js";import"./chunk-ND2GUHAM-C0_B2ryQ.js";import"./chunk-55IACEB6-C9r6WDFM.js";import"./chunk-2J33WTMH-DskG-Kmf.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- *{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f1117;color:#e1e4e8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100vh}.export-bundles{border-top:1px solid #21262d;margin-top:8px}.export-bundles-header{display:flex;align-items:center;gap:6px;padding:10px 16px 8px;cursor:pointer;-webkit-user-select:none;user-select:none;color:#8b949e;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.export-bundles-header:hover{color:#e1e4e8}.export-bundles-title{flex:1}.export-bundles-count{background:#21262d;color:#8b949e;border-radius:10px;padding:0 6px;font-size:11px;font-weight:500}.export-bundles-list{padding:0 0 8px}.export-bundle-item{display:flex;align-items:center;gap:8px;padding:6px 16px;cursor:pointer;transition:background .1s}.export-bundle-item:hover{background:#161b22}.export-bundle-info{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px}.export-bundle-name{font-size:13px;color:#e1e4e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-bundle-desc{font-size:11px;color:#6e7681;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-bundle-meta{font-size:11px;color:#6e7681}.export-bundle-btn{flex-shrink:0;background:#21262d;color:#58a6ff;border:1px solid #30363d;border-radius:6px;padding:3px 10px;font-size:12px;font-weight:500;cursor:pointer;transition:background .1s,border-color .1s}.export-bundle-btn:hover{background:#1f3147;border-color:#58a6ff}.export-bundle-modal{width:680px}.export-bundle-modal-desc{color:#8b949e;font-size:13px;line-height:1.6;margin:0 0 16px}.export-bundle-modal-meta{margin-bottom:20px}.export-bundle-modal-filename{font-size:12px;color:#6e7681;background:#161b22;border:1px solid #30363d;border-radius:6px;padding:4px 10px;font-family:SFMono-Regular,Consolas,monospace}.export-bundle-modal-section{margin-bottom:20px}.export-bundle-modal-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#8b949e;margin-bottom:8px}.export-bundle-modal-docs{list-style:none;margin:0;padding:0;border:1px solid #30363d;border-radius:6px;overflow:hidden;max-height:280px;overflow-y:auto}.export-bundle-modal-doc-item{display:flex;align-items:center;padding:7px 12px;border-bottom:1px solid #21262d;gap:8px}.export-bundle-modal-doc-item:last-child{border-bottom:none}.export-bundle-modal-doc-ref{font-size:12px;font-family:SFMono-Regular,Consolas,monospace;color:#e1e4e8;white-space:nowrap}.export-bundle-modal-toggle-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding:10px 14px;background:#161b22;border:1px solid #30363d;border-radius:8px}.export-bundle-modal-toggle-label{font-size:13px;color:#e1e4e8}.toggle-switch{position:relative;width:42px;height:24px;border-radius:12px;border:none;padding:0;background:#30363d;cursor:pointer;transition:background .2s;flex-shrink:0;vertical-align:middle}.toggle-switch:after{content:"";position:absolute;top:50%;left:0;transform:translate(-25%,-50%);width:18px;height:18px;border-radius:50%;background:#8b949e;transition:transform .2s,background .2s}.toggle-switch--on{background:#238636}.toggle-switch--on:after{transform:translate(18px,-50%);background:#fff}.dashboard{display:flex;flex-direction:column;height:100vh;background:#0f1117;color:#e1e4e8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:#161b22;border-bottom:1px solid #30363d;gap:16px}.header-left{display:flex;align-items:center;gap:12px;flex-shrink:0}.header-title{font-size:18px;font-weight:600;margin:0;color:#f0f6fc}.connection-badge{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500}.connection-badge.connected{background:#1a3a2a;color:#3fb950}.connection-badge.disconnected{background:#3a1a1a;color:#f85149}.header-center{flex:1;max-width:500px}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.settings-btn{background:none;border:1px solid #30363d;color:#8b949e;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .15s}.settings-btn:hover{background:#21262d;color:#f0f6fc}.stale-filter-btn{background:none;border:1px solid #30363d;color:#8b949e;font-size:12px;cursor:pointer;padding:4px 10px;border-radius:6px;transition:all .15s;white-space:nowrap}.stale-filter-btn:hover{background:#3d2a0066;border-color:#d29922;color:#d29922}.stale-filter-btn.active{background:#3d2a00;border-color:#d29922;color:#d29922;font-weight:600}.sync-button-wrapper{position:relative}.sync-btn:hover:not(:disabled){background:#0d2d4a;border-color:#388bfd;color:#58a6ff}.sync-btn:disabled{cursor:default;opacity:.7}.sync-btn.conflict{border-color:#f85149;color:#f85149}.sync-icon{display:inline-block}.sync-icon.spinning{animation:sync-spin .9s linear infinite}@keyframes sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-result{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:280px;max-width:460px;padding:10px 28px 10px 12px;background:#161b22;border:1px solid #30363d;border-radius:6px;box-shadow:0 8px 24px #00000080;color:#8b949e;font-size:12px;text-align:left}.sync-result.error{border-color:#f85149;color:#ffa198}.sync-result pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:inherit}.sync-result-close{position:absolute;top:4px;right:6px;background:none;border:none;color:#8b949e;cursor:pointer;font-size:12px;line-height:1;padding:2px}.sync-result-close:hover{color:#f0f6fc}.sidebar-toggle-btn{background:none;border:1px solid #30363d;color:#8b949e;font-size:12px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .15s;line-height:1}.sidebar-toggle-btn:hover{background:#21262d;color:#f0f6fc}.dashboard-body{display:flex;flex:1;overflow:hidden;width:100%;max-width:1700px;margin:0 auto}.sidebar-wrapper{width:300px;flex-shrink:0;overflow:hidden;transition:width .25s ease}.sidebar-wrapper.collapsed{width:0}.sidebar{width:300px;height:100%;border-right:1px solid #30363d;background:#161b22;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;padding:8px 0}.sidebar-footer{flex-shrink:0;border-top:1px solid #30363d;max-height:40%;overflow-y:auto}.sidebar-chips{display:flex;align-items:center;gap:8px;padding:12px;border-bottom:1px solid #21262d;flex-shrink:0}.sidebar-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 12px;border-radius:12px;border:1px solid #30363d;background:#161b22;color:#8b949e;font-size:11px;cursor:pointer;white-space:nowrap;transition:all .15s}.sidebar-chip:hover{border-color:#8b949e;color:#c9d1d9}.sidebar-chip.active{background:#1f2937;border-color:#58a6ff;color:#58a6ff;font-weight:600}.sidebar-chip-dot{width:6px;height:6px;border-radius:50%;background:#d29922}.sidebar-item{position:relative;display:flex;align-items:center;gap:8px;height:34px;padding:0 12px;cursor:pointer;transition:background .15s}.sidebar-item:hover{background:#1c2129}.sidebar-item.active{background:#1f2937}.sidebar-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#58a6ff}.sidebar-item-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.sidebar-item-dot.stale{background:#d29922}.sidebar-item-dot.fresh{background:#3fb950}.sidebar-item-title{font-size:12.5px;color:#c9d1d9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-item.active .sidebar-item-title{color:#f0f6fc;font-weight:600}.sidebar-item-meta{font-size:10.5px;color:#6e7681;margin-left:auto;white-space:nowrap}.sidebar-item--result{height:auto;display:block;padding:10px 12px;border-bottom:1px solid #21262d}.sidebar-item--result .sidebar-item-title{white-space:normal;margin-bottom:4px}.sidebar-item--result .sidebar-item-meta{display:block;margin-left:0;white-space:normal}.sidebar-section-label{padding:10px 12px 6px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6e7681}.sidebar-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.tag-badge{font-size:10px;padding:1px 6px;border-radius:8px;background:#21262d;color:#8b949e}.stale-badge{font-size:10px;padding:1px 6px;border-radius:8px;font-weight:600}.stale-badge.stale{background:#3d2a00;color:#d29922}.stale-badge.fresh{background:#1a3a2a;color:#3fb950}.sidebar-empty{padding:24px 16px;text-align:center;color:#8b949e;font-size:13px}.sidebar-filter-header{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid #3d2a00;background:#1f1600;font-size:12px;font-weight:600;color:#d29922;text-transform:uppercase;letter-spacing:.05em;-webkit-user-select:none;user-select:none}.sidebar-filter-icon{font-size:13px}.sidebar-filter-count{margin-left:auto;background:#3d2a00;color:#d29922;font-size:11px;padding:1px 7px;border-radius:10px;font-weight:700}.sidebar-folder-header{height:34px;padding:0 12px;font-size:12.5px;font-weight:600;color:#e1e4e8;background:transparent;cursor:pointer;display:flex;align-items:center;gap:8px;-webkit-user-select:none;user-select:none}.sidebar-folder-header:hover{background:#1c2129}.sidebar-folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-folder-count{margin-left:auto;font-size:11px;font-weight:400;color:#6e7681}.folder-icon{font-size:9px;transition:transform .15s;display:inline-block}.folder-icon.open{transform:rotate(90deg)}.doc-viewer{flex:1;min-width:0;min-height:0;display:flex;flex-direction:row;overflow:hidden}.doc-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow-y:auto;padding:20px 24px 48px}.doc-viewer-empty{display:flex;align-items:center;justify-content:center;height:100%;color:#484f58;font-size:16px}.doc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid #21262d}.doc-header-left{display:flex;align-items:center;gap:12px;min-width:0}.nav-buttons{display:flex;gap:4px;flex-shrink:0}.nav-btn{background:none;border:1px solid #30363d;color:#8b949e;font-size:16px;cursor:pointer;padding:3px 9px;border-radius:6px;transition:all .15s;line-height:1.4}.nav-btn:hover:not(:disabled){background:#21262d;color:#f0f6fc;border-color:#8b949e}.nav-btn:disabled{opacity:.3;cursor:default}.doc-title{font-size:24px;font-weight:600;color:#f0f6fc;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.freshness-btn{padding:6px 12px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;border-radius:6px;cursor:pointer;font-size:12px;transition:all .15s}.freshness-btn:hover{background:#30363d;color:#f0f6fc}.download-btn{padding:6px 12px;border:1px solid #30363d;background:#21262d;color:#8b949e;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .15s;white-space:nowrap}.download-btn:hover{background:#1f6feb22;border-color:#1f6feb;color:#58a6ff}.copy-btn{padding:6px 12px;border:1px solid #30363d;background:#21262d;color:#8b949e;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .15s;white-space:nowrap}.copy-btn:hover{background:#1f6feb22;border-color:#1f6feb;color:#58a6ff}.copy-btn--copied,.copy-btn--copied:hover{background:#1a3a1f;border-color:#3fb950;color:#3fb950}.doc-related{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 14px;margin-bottom:20px;background:#161b22;border:1px solid #30363d;border-radius:6px;font-size:12px}.doc-related-label{color:#8b949e;font-weight:500;flex-shrink:0}.doc-related-link{padding:2px 10px;border:1px solid #1f6feb55;background:#1f6feb18;color:#58a6ff;border-radius:12px;cursor:pointer;font-size:12px;transition:all .15s}.doc-related-link:hover{background:#1f6feb33;border-color:#1f6feb}.doc-related-broken{padding:2px 10px;border:1px solid #f8514933;background:#f8514918;color:#f85149;border-radius:12px;font-size:12px;font-style:italic}.doc-related-link--cross-project{border-color:#6e40c955;background:#6e40c918;color:#d2a8ff}.doc-related-link--cross-project:hover{background:#6e40c933;border-color:#6e40c9}.doc-inline-link{display:inline;padding:0;border:none;background:none;color:#58a6ff;cursor:pointer;font-size:inherit;font-family:inherit;text-decoration:underline;text-underline-offset:2px}.doc-inline-link:hover{color:#79c0ff}.doc-inline-link--broken{color:#f85149;cursor:not-allowed;text-decoration:underline wavy}.doc-inline-link--cross-project{color:#d2a8ff}.doc-inline-link--cross-project:hover{color:#e2c0ff}.doc-content h1{font-size:2em;margin:.67em 0;border-bottom:1px solid #21262d;padding-bottom:.3em}.doc-content h2{font-size:1.5em;margin:.83em 0;border-bottom:1px solid #21262d;padding-bottom:.3em}.doc-content h3{font-size:1.25em;margin:1em 0}.doc-content h4{font-size:1em;margin:1.33em 0}.doc-content p{margin:1em 0;line-height:1.6}.doc-content code{background:#161b22;padding:2px 6px;border-radius:4px;font-family:Fira Code,Cascadia Code,monospace;font-size:.9em;font-variant-ligatures:none}.doc-content pre{background:#161b22;padding:16px;border-radius:8px;overflow-x:auto;border:1px solid #30363d}.doc-content pre code{background:none;padding:0}.doc-content ul,.doc-content ol{padding-left:2em;margin:1em 0}.doc-content li{margin:.25em 0;line-height:1.6}.doc-content table{border-collapse:collapse;width:100%;margin:1em 0}.doc-content th,.doc-content td{border:1px solid #30363d;padding:8px 12px;text-align:left}.doc-content th{background:#161b22;font-weight:600}.doc-content a{color:#58a6ff;text-decoration:none}.doc-content a:hover{text-decoration:underline}.doc-content blockquote{border-left:3px solid #30363d;padding-left:16px;margin:1em 0;color:#8b949e}.search-bar{display:flex;align-items:center;gap:8px}.search-scope-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.search-scope-label{font-size:11px;color:#8b949e;white-space:nowrap}.toggle-switch{position:relative;display:inline-block;width:32px;height:18px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:#30363d;border-radius:18px;transition:background .2s}.toggle-slider:before{content:"";position:absolute;width:14px;height:14px;left:2px;bottom:2px;background:#8b949e;border-radius:50%;transition:transform .2s,background .2s}.toggle-switch input:checked+.toggle-slider{background:#1f6feb}.toggle-switch input:checked+.toggle-slider:before{background:#fff;transform:translate(14px)}.search-input{flex:1;padding:6px 12px;border:1px solid #30363d;background:#0d1117;color:#c9d1d9;border-radius:6px;font-size:13px;outline:none;transition:border-color .15s}.search-input:focus{border-color:#1f6feb}.search-input::placeholder{color:#484f58}.search-btn,.clear-btn{padding:6px 12px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;border-radius:6px;cursor:pointer;font-size:12px;white-space:nowrap}.search-btn:hover,.clear-btn:hover{background:#30363d}.search-results{position:absolute;top:100%;left:0;right:0;background:#161b22;border:1px solid #30363d;border-radius:0 0 6px 6px;max-height:300px;overflow-y:auto;z-index:100}.search-result-item{padding:10px 12px;cursor:pointer;border-bottom:1px solid #21262d}.search-result-item:hover{background:#1c2129}.search-result-title{font-size:13px;font-weight:500;color:#f0f6fc}.search-result-score{font-size:11px;color:#3fb950;margin-left:8px}.search-result-excerpt{font-size:11px;color:#8b949e;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-selector{display:flex;align-items:center;gap:4px}.new-project-input{padding:4px 8px;border:1px solid #30363d;background:#0d1117;color:#c9d1d9;border-radius:6px;font-size:12px;width:100px;outline:none}.new-project-btn{padding:4px 8px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;border-radius:6px;cursor:pointer;font-size:12px}.settings-overlay{position:fixed;inset:0;background:#00000080;z-index:200;display:flex;align-items:center;justify-content:center}.settings-popover{background:#161b22;border:1px solid #30363d;border-radius:12px;padding:24px;width:800px;max-width:90%}.settings-title{font-size:16px;font-weight:600;margin:0 0 16px;color:#f0f6fc}.settings-field{margin-bottom:12px}.settings-label{display:block;font-size:12px;color:#8b949e;margin-bottom:4px}.settings-input{width:100%;padding:6px 10px;border:1px solid #30363d;background:#0d1117;color:#c9d1d9;border-radius:6px;font-size:13px;outline:none;box-sizing:border-box}.settings-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.settings-save-btn{padding:6px 16px;border:none;background:#1f6feb;color:#fff;border-radius:6px;cursor:pointer;font-size:13px}.settings-cancel-btn{padding:6px 16px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;border-radius:6px;cursor:pointer;font-size:13px}.diff-toggle-btn{padding:3px 10px;border:1px solid #d29922;background:#3d2a0033;color:#d29922;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;transition:all .15s;white-space:nowrap;flex-shrink:0}.diff-toggle-btn:hover:not(:disabled){background:#3d2a0088}.diff-toggle-btn.active{background:#1a3a2a44;border-color:#3fb950;color:#3fb950}.diff-toggle-btn.active:hover{background:#1a3a2a88}.diff-toggle-btn:disabled{opacity:.5;cursor:default}.code-block-wrapper{border:1px solid #30363d;border-radius:6px;margin:12px 0;overflow:hidden}.code-block-header{display:flex;align-items:center;justify-content:space-between;padding:4px 12px;background:#21262d;border-bottom:1px solid #30363d}.code-block-lang-select{background:transparent;border:none;color:#8b949e;font-size:11px;font-family:Fira Code,Cascadia Code,Consolas,monospace;cursor:pointer;outline:none;padding:2px 0}.code-block-lang-select:hover{color:#c9d1d9}.code-block-lang-select option{background:#21262d;color:#c9d1d9}.code-block-copy-btn{background:none;border:1px solid #30363d;color:#8b949e;font-size:11px;cursor:pointer;padding:2px 8px;border-radius:4px;transition:all .15s}.code-block-copy-btn:hover{background:#30363d;color:#c9d1d9}.mermaid-block-wrapper{border:1px solid #30363d;border-radius:6px;margin:12px 0;overflow:hidden;background:#161b22}.mermaid-block-header{display:flex;align-items:center;justify-content:space-between;padding:4px 12px;background:#21262d;border-bottom:1px solid #30363d}.mermaid-block-title{color:#8b949e;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:11px}.mermaid-block-actions{display:flex;align-items:center;gap:8px}.mermaid-zoom-controls{display:flex;align-items:center;gap:2px}.mermaid-zoom-btn{background:#30363d;border:1px solid #484f58;color:#c9d1d9;border-radius:4px;width:22px;height:22px;font-size:14px;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background .15s}.mermaid-zoom-btn:hover:not(:disabled){background:#484f58}.mermaid-zoom-btn:disabled{opacity:.35;cursor:not-allowed}.mermaid-zoom-reset{background:transparent;border:1px solid #484f58;color:#8b949e;border-radius:4px;height:22px;min-width:40px;font-size:11px;font-family:Fira Code,Cascadia Code,Consolas,monospace;cursor:pointer;padding:0 4px;transition:background .15s,color .15s}.mermaid-zoom-reset:hover{background:#30363d;color:#c9d1d9}.mermaid-block-content{padding:16px;overflow:auto}.mermaid-block-zoom-container{display:block;transform-origin:top center;transition:transform .15s ease}.mermaid-block-zoom-container svg{display:block;max-width:100%;height:auto;margin:0 auto}.mermaid-block-error{margin:0;color:#f85149;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.5;white-space:pre-wrap}.diff-viewer{flex:1;overflow:auto;background:#0d1117;border:1px solid #30363d;border-radius:8px;margin-top:4px}.diff-pre{margin:0;padding:0;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:12.5px;line-height:1.55;white-space:pre;overflow:visible}.diff-line{display:block;padding:0 16px;min-height:1.55em}.diff-line--added{background:#1a3a1a;color:#7ee787}.diff-line--removed{background:#3a1a1a;color:#f47067}.diff-line--hunk{background:#0d1b2a;color:#79c0ff;font-weight:600}.diff-line--file-header{background:#161b22;color:#8b949e;font-style:italic}.diff-line--section-title{background:#1c1c2a;color:#c9d1d9;font-weight:700;padding-top:12px;padding-bottom:4px;border-top:1px solid #30363d;margin-top:4px}.diff-line--separator{background:#0f1117;color:#30363d;border-top:1px solid #21262d;border-bottom:1px solid #21262d}.diff-line--context{color:#c9d1d9}.file-status-table{width:100%;border-collapse:collapse;margin-top:12px}.file-status-table th,.file-status-table td{border:1px solid #30363d;padding:6px 10px;font-size:12px;text-align:left}.file-status-table th{background:#161b22;color:#8b949e}.status-ok{color:#3fb950}.status-modified{color:#d29922}.status-missing{color:#f85149}.history-viewer{display:flex;height:calc(100vh - 120px);gap:24px;overflow:hidden}.history-list{width:320px;flex-shrink:0;overflow-y:auto;padding-right:12px;border-right:1px solid #30363d}.history-entry{display:flex;flex-direction:column;width:100%;padding:12px;background:#161b22;border:1px solid #30363d;border-radius:6px;margin-bottom:8px;cursor:pointer;transition:all .15s;text-align:left;gap:6px}.history-entry:hover{border-color:#8b949e;background:#1c2129}.history-entry.history-entry--active{border-color:#1f6feb;background:#1f6feb11;box-shadow:0 0 0 1px #1f6feb}.history-entry-header{display:flex;align-items:center;justify-content:space-between;width:100%}.history-entry-version{font-size:13px;font-weight:600;color:#f0f6fc}.history-entry-type{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;text-transform:uppercase;width:fit-content}.history-entry-type--create{background:#1a3a2a;color:#3fb950}.history-entry-type--update{background:#1c2a3a;color:#58a6ff}.history-entry-type--patch{background:#3d2a00;color:#d29922}.history-entry-type--delete{background:#3a1a1a;color:#f85149}.history-entry-type--snapshot{background:#1e1a3a;color:#a371f7}.history-group{display:flex;flex-direction:column}.history-entry--snapshot-card{padding:0}.history-entry-snapshot-main{display:flex;flex-direction:column;gap:4px;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;text-align:left;color:inherit}.history-entry-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.history-group-toggle{font-size:11px;color:#8b949e;cursor:pointer;white-space:nowrap;padding:2px 6px;border-radius:4px;transition:color .15s,background .15s;-webkit-user-select:none;user-select:none}.history-group-toggle:hover{color:#a371f7;background:#a371f715}.history-group-toggle--open{color:#a371f7}.history-group-entries{display:flex;flex-direction:column;margin-left:12px;border-left:2px solid #a371f730;padding-left:4px;margin-bottom:6px}.history-entry--sub{font-size:12px;padding:7px 10px}.history-entry--sub .history-entry-version{font-size:11px;color:#8b949e}.history-uncommitted{display:flex;flex-direction:column;margin-bottom:8px;border:1px dashed #30363d;border-radius:6px;overflow:hidden}.history-uncommitted-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#8b949e;padding:5px 10px;background:#161b22;border-bottom:1px dashed #30363d}.history-entry-date{font-size:11px;color:#8b949e}.history-content{flex:1;overflow-y:auto;padding-bottom:40px}.history-content-meta{display:flex;flex-direction:column;gap:12px;padding:16px;background:#161b22;border:1px solid #30363d;border-radius:8px;margin-bottom:24px}.history-content-meta-title{display:flex;align-items:center;justify-content:space-between;width:100%}.history-content-meta-info{display:flex;align-items:center;gap:12px}.history-content-meta strong{font-size:18px;color:#f0f6fc}.history-content-version{background:#21262d;color:#8b949e;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600}.history-content-date{font-size:13px;color:#8b949e}.history-diff-loading{font-size:12px;color:#8b949e;font-style:italic}.history-diff-base{font-size:11px;color:#8b949e;background:#21262d;border:1px solid #30363d;border-radius:4px;padding:2px 7px;font-family:monospace}.history-diff-recap-banner{font-size:12px;color:#8b949e;background:#161b22;border:1px solid #30363d;border-left:3px solid #388bfd;border-radius:4px;padding:7px 12px;margin-bottom:12px}.history-meta-diff{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:12px 14px;background:#0d1117;border:1px solid #30363d;border-radius:6px}.history-meta-diff-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#8b949e;margin-bottom:2px}.history-meta-diff-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.history-meta-diff-field{font-size:12px;font-weight:600;color:#8b949e;min-width:90px}.history-meta-diff-arrow{font-size:12px;color:#8b949e}.history-meta-diff-chips{display:flex;flex-wrap:wrap;gap:4px}.history-meta-diff-chip--added{font-size:12px;padding:2px 8px;border-radius:4px;background:#3fb95026;color:#3fb950;border:1px solid rgba(63,185,80,.3)}.history-meta-diff-chip--removed{font-size:12px;padding:2px 8px;border-radius:4px;background:#f8514926;color:#f85149;border:1px solid rgba(248,81,73,.3);text-decoration:line-through}.history-inline-diff{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13.5px;line-height:1.8;white-space:pre-wrap;word-break:break-word;color:#e6edf3;padding:16px}.history-inline-diff--added{background:#3fb95040;color:#3fb950;border-radius:2px}.history-inline-diff--removed{background:#f8514940;color:#f85149;border-radius:2px;text-decoration:line-through}.doc-editor{display:flex;flex-direction:column;flex:1;min-height:0;gap:12px;margin-top:4px}.doc-editor-textarea{flex:1;min-height:400px;background:#161b22;color:#e1e4e8;border:1px solid #30363d;border-radius:6px;padding:16px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:13px;line-height:1.6;resize:vertical;outline:none}.doc-editor-textarea:focus{border-color:#388bfd}.doc-editor-actions{display:flex;align-items:center;gap:12px;justify-content:flex-end}.doc-editor-error{color:#f85149;font-size:13px;margin-right:auto}.save-btn{background:#238636;color:#fff;border:none;border-radius:6px;padding:6px 16px;font-size:13px;cursor:pointer;transition:background .15s}.save-btn:hover:not(:disabled){background:#2ea043}.save-btn:disabled{opacity:.5;cursor:not-allowed}.edit-btn{background:none;border:1px solid #30363d;color:#8b949e;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;transition:all .15s}.edit-btn:hover,.edit-btn.active{background:#21262d;color:#f0f6fc;border-color:#8b949e}.delete-btn{background:none;border:1px solid #30363d;color:#8b949e;border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;transition:all .15s;white-space:nowrap}.delete-btn:hover{background:#f8514922;border-color:#f85149;color:#f85149}.delete-btn--confirm{background:#f8514922;border-color:#f85149;color:#f85149;font-weight:600;padding:6px 12px}.delete-btn:disabled{opacity:.6;cursor:not-allowed}.modal-content.delete-modal{width:min(400px,90vw)}.delete-modal .modal-body{gap:14px}.delete-modal-text{font-size:13px;color:#c9d1d9;line-height:1.6}.delete-modal-text code{font-family:Fira Code,Consolas,monospace;font-size:12px;color:#8b949e;word-break:break-all}.delete-modal-actions{display:flex;justify-content:flex-end;gap:8px}@media print{.dashboard-header,.sidebar-wrapper,.doc-header,.doc-related,.file-status-view{display:none!important}.dashboard,.dashboard-body,.doc-viewer{display:block!important;background:#fff!important;color:#000!important;height:auto!important;overflow:visible!important}.doc-content{max-width:100%!important;padding:0!important;color:#000!important;background:#fff!important}pre,code{background:#f5f5f5!important;color:#333!important;border:1px solid #ddd!important}h1,h2,h3,h4,h5,h6{break-after:avoid;page-break-after:avoid}h2,h3,h4{break-before:auto;page-break-before:auto}pre,blockquote,table,figure,img{break-inside:avoid;page-break-inside:avoid}tr{break-inside:avoid;page-break-inside:avoid}p,li{orphans:3;widows:3}}.create-doc-popover{width:min(960px,95vw);max-width:95vw;max-height:90vh;display:flex;flex-direction:column}.create-doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:12px}.create-doc-content-field{display:flex;flex-direction:column;flex:1;min-height:0}.create-doc-textarea{flex:1;min-height:380px;width:100%;box-sizing:border-box;resize:vertical;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.5}.create-doc-hint{margin-top:4px;font-size:11px;color:#6e7681}.folder-combobox{position:relative}.folder-combobox .settings-input{padding-right:28px}.folder-combobox-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);background:transparent;border:none;color:#8b949e;cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;line-height:1}.folder-combobox-toggle:hover{color:#c9d1d9;background:#21262d}.folder-combobox-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;background:#0d1117;border:1px solid #30363d;border-radius:6px;box-shadow:0 8px 24px #00000080;max-height:220px;overflow-y:auto;padding:4px 0}.folder-combobox-header{padding:6px 10px 4px;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#6e7681;border-bottom:1px solid #21262d;margin-bottom:4px}.folder-combobox-empty{padding:8px 10px;font-size:12px;color:#8b949e;font-style:italic}.folder-combobox-list{list-style:none;margin:0;padding:0}.folder-combobox-item{padding:6px 10px;font-size:13px;color:#c9d1d9;cursor:pointer;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.folder-combobox-item.active,.folder-combobox-item:hover{background:#1f2a3a;color:#f0f6fc}@media(max-width:720px){.create-doc-grid{grid-template-columns:1fr}.create-doc-textarea{min-height:260px}}.file-row--clickable{cursor:pointer}.file-row--clickable:hover{background:#21262d}.file-row-code-hint{margin-left:6px;color:#8b949e;font-size:12px}.status-anchors-lost{color:#d29922;font-weight:500}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#161b22;border:1px solid #30363d;border-radius:8px;width:min(900px,90vw);max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #30363d}.modal-title{font-size:13px;color:#8b949e;font-family:Fira Code,Consolas,monospace;word-break:break-all}.modal-close-btn{background:none;border:none;color:#8b949e;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px}.modal-close-btn:hover{background:#21262d;color:#f0f6fc}.modal-body{overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.section-code-header{font-size:12px;color:#8b949e;margin-bottom:4px}.pdf-error-banner{margin-top:8px;padding:8px 14px;background:#3a1a1a;border:1px solid #f85149;border-radius:6px;color:#f85149;font-size:12px}.doc-content img.doc-image{max-width:100%;height:auto;border-radius:6px;margin:8px 0;display:block}.doc-editor-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.doc-editor-actions-right{display:flex;align-items:center;gap:8px}.image-insert-trigger-btn{background:#21262d;border:1px solid #30363d;color:#c9d1d9;border-radius:6px;padding:6px 12px;font-size:13px;cursor:pointer}.image-insert-trigger-btn:hover{background:#30363d;color:#f0f6fc}.image-insert-popover{width:360px;background:#161b22;border:1px solid #30363d;border-radius:8px;padding:14px;z-index:9999;box-shadow:0 8px 24px #00000080}.image-insert-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.image-insert-title{font-size:13px;font-weight:600;color:#f0f6fc}.image-insert-close{background:none;border:none;color:#8b949e;cursor:pointer;font-size:14px;padding:2px 4px;border-radius:4px}.image-insert-close:hover{color:#f0f6fc;background:#21262d}.image-insert-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid #21262d;padding-bottom:8px}.image-insert-tab{background:none;border:none;color:#8b949e;font-size:13px;padding:4px 10px;border-radius:4px;cursor:pointer}.image-insert-tab:hover{color:#f0f6fc;background:#21262d}.image-insert-tab.active{color:#58a6ff;background:#1f2937}.image-insert-alt-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}.image-insert-label{font-size:12px;color:#8b949e;white-space:nowrap;flex-shrink:0}.image-insert-input{flex:1;background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#c9d1d9;font-size:13px;padding:5px 10px;width:100%;box-sizing:border-box}.image-insert-input:focus{outline:none;border-color:#58a6ff}.image-insert-tab-content{display:flex;flex-direction:column;gap:8px}.image-upload-label{display:block;background:#21262d;border:1px dashed #30363d;border-radius:6px;color:#c9d1d9;font-size:13px;padding:10px;text-align:center;cursor:pointer}.image-upload-label:hover{background:#30363d;border-color:#58a6ff}.image-upload-label.uploading{opacity:.6;cursor:not-allowed}.image-insert-btn-insert{background:#238636;border:1px solid #2ea043;color:#fff;border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer;align-self:flex-end}.image-insert-btn-insert:hover:not(:disabled){background:#2ea043}.image-insert-btn-insert:disabled{opacity:.5;cursor:not-allowed}.image-insert-error{font-size:12px;color:#f85149;padding:4px 0}.image-paste-hint{font-size:11px;color:#666;text-align:center;margin-top:6px}.image-insert-gallery-section{margin-top:12px;border-top:1px solid #21262d;padding-top:10px}.image-insert-gallery-label{font-size:11px;color:#8b949e;margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.image-thumbs{display:flex;flex-wrap:wrap;gap:6px}.image-thumb{width:60px;height:60px;object-fit:cover;border-radius:4px;cursor:pointer;border:2px solid transparent}.image-thumb:hover{border-color:#58a6ff}.connection-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.connection-dot.connected{background:#3fb950}.connection-dot.disconnected{background:#f85149}.header-center{flex:1;max-width:560px;display:flex;justify-content:center}.header-primary-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 14px;border:none;border-radius:6px;background:#1f6feb;color:#fff;font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.header-primary-btn:hover{background:#388bfd}.settings-btn{height:28px;display:inline-flex;align-items:center;font-size:15px}.sidebar-toggle-btn{height:28px}.search-bar{position:relative;display:flex;align-items:center;gap:10px;width:100%}.search-field{position:relative;flex:1;display:flex;align-items:center}.search-field .search-input{width:100%;height:30px;padding:0 62px 0 32px;border-radius:6px;border:1px solid #30363d;background:#0d1117;color:#e1e4e8;font-size:12px}.search-field-icon{position:absolute;left:10px;color:#6e7681;font-size:12px;pointer-events:none}.search-kbd{position:absolute;right:8px;height:18px;padding:0 6px;display:inline-flex;align-items:center;border-radius:4px;background:#21262d;color:#8b949e;font-size:10px;pointer-events:none}.search-clear-btn{position:absolute;right:8px;height:18px;width:18px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:4px;background:#21262d;color:#8b949e;font-size:10px;cursor:pointer}.search-clear-btn:hover{background:#30363d;color:#f0f6fc}.project-selector{position:relative;display:flex;align-items:center;gap:6px}.new-project-btn{height:28px;width:26px;border-radius:6px;border:1px solid #30363d;background:#161b22;color:#8b949e;cursor:pointer}.new-project-btn:hover{color:#f0f6fc;border-color:#8b949e}.new-project-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:60;display:flex;gap:6px;padding:8px;border:1px solid #30363d;border-radius:8px;background:#161b22;box-shadow:0 8px 24px #00000080}.new-project-popover .new-project-input{height:26px;width:160px;padding:0 8px;border-radius:6px;border:1px solid #30363d;background:#0d1117;color:#e1e4e8;font-size:11px}.sync-pill{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 14px;border-radius:14px;border:1px solid #1f6feb;background:#0d2036;color:#58a6ff;font-size:11px;cursor:pointer;white-space:nowrap;transition:all .15s}.sync-pill:hover:not(:disabled){background:#0d2d4a;border-color:#388bfd}.sync-pill:disabled{cursor:default;opacity:.7}.sync-pill.conflict{border-color:#f85149;background:#3a1a1a;color:#f85149}.doc-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.doc-topbar-left{min-width:0}.doc-breadcrumb{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#6e7681;margin-bottom:6px;flex-wrap:wrap}.doc-breadcrumb .nav-btn{font-size:12px;padding:1px 6px;line-height:1.3}.doc-breadcrumb-segment{display:inline-flex;align-items:center;gap:6px}.doc-breadcrumb-sep{color:#30363d}.doc-main .doc-title{font-size:24px;font-weight:600;color:#f0f6fc;margin:0}.doc-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.btn-primary{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 16px;border:none;border-radius:6px;background:#1f6feb;color:#fff;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s}.btn-primary:hover{background:#388bfd}.btn-primary.active{background:#21262d;color:#c9d1d9;box-shadow:inset 0 0 0 1px #30363d}.btn-secondary,.btn-icon-secondary,.icon-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;border:1px solid #30363d;border-radius:6px;background:#161b22;color:#c9d1d9;font-size:12px;cursor:pointer;white-space:nowrap;transition:all .15s}.btn-icon-secondary,.icon-btn{padding:0 9px;color:#8b949e}.btn-secondary:hover,.btn-icon-secondary:hover,.icon-btn:hover{background:#21262d;color:#f0f6fc;border-color:#8b949e}.menu-anchor{position:relative}.menu-backdrop{position:fixed;inset:0;z-index:50}.menu-popover{position:absolute;top:calc(100% + 6px);left:0;z-index:60;min-width:190px;padding:4px;border:1px solid #30363d;border-radius:8px;background:#161b22;box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column}.menu-popover--right{left:auto;right:0}.menu-item{text-align:left;padding:7px 10px;border:none;border-radius:6px;background:none;color:#c9d1d9;font-size:12px;cursor:pointer;white-space:nowrap}.menu-item:hover:not(:disabled){background:#21262d;color:#f0f6fc}.menu-item:disabled{opacity:.5;cursor:default}.menu-item--danger{color:#f85149}.menu-item--danger:hover{background:#3a1a1a;color:#ff7b72}.doc-tabs{display:flex;align-items:center;gap:24px;border-bottom:1px solid #21262d;margin-bottom:18px;flex-shrink:0}.doc-tab{position:relative;padding:8px 0 10px;border:none;background:none;color:#8b949e;font-size:12.5px;cursor:pointer;white-space:nowrap}.doc-tab:hover{color:#c9d1d9}.doc-tab.active{color:#f0f6fc;font-weight:600}.doc-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#1f6feb;border-radius:2px}.doc-tab-loading{color:#8b949e;font-size:12.5px;padding:12px 0}.stale-banner{display:flex;gap:14px;padding:12px 16px;margin-bottom:20px;border:1px solid #3d2f10;border-left:3px solid #d29922;border-radius:6px;background:#1c1710;flex-shrink:0}.stale-banner-icon{color:#d29922;font-size:14px;line-height:1.4}.stale-banner-body{display:flex;flex-direction:column;gap:4px}.stale-banner-text{font-size:12.5px;color:#e1e4e8}.stale-banner-link{align-self:flex-start;border:none;background:none;padding:0;color:#58a6ff;font-size:12px;font-weight:600;cursor:pointer}.stale-banner-link:hover{text-decoration:underline}.context-rail{width:300px;flex-shrink:0;border-left:1px solid #21262d;background:#0d1117;overflow-y:auto;padding:14px 20px 32px}.rail-section{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid #21262d}.rail-section:last-child{border-bottom:none}.rail-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.rail-label{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6e7681;margin-bottom:10px}.rail-collapse-btn{height:24px;padding:0 6px;border:1px solid #21262d;border-radius:6px;background:#0d1117;color:#8b949e;font-size:11px;cursor:pointer}.rail-collapse-btn:hover{background:#161b22;color:#f0f6fc}.rail-empty{font-size:11.5px;color:#6e7681}.rail-toc{display:flex;flex-direction:column}.rail-toc-item{position:relative;text-align:left;padding:4px 0 4px 14px;border:none;background:none;color:#8b949e;font-size:12px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-toc-item:hover{color:#c9d1d9}.rail-toc-item.active{color:#58a6ff;font-weight:600}.rail-toc-item.active:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:2px;background:#1f6feb}.rail-toc-item--h3{padding-left:26px;font-size:11.5px}.rail-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 0}.rail-key{font-size:12px;color:#8b949e}.rail-val{font-size:12px;color:#c9d1d9;text-align:right}.rail-chip{padding:2px 10px;border-radius:10px;font-size:11px;font-weight:600}.rail-chip--stale{background:#3d2a00;color:#d29922}.rail-chip--fresh{background:#1a3a2a;color:#3fb950}.rail-files{display:flex;flex-direction:column;gap:2px}.rail-file{display:flex;align-items:center;gap:10px;padding:4px 0;border:none;background:none;color:#c9d1d9;font-size:11.5px;text-align:left;cursor:default;overflow:hidden}.rail-file--clickable{cursor:pointer}.rail-file--clickable:hover .rail-file-path{color:#58a6ff;text-decoration:underline}.rail-file-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:#6e7681}.rail-file-dot--ok{background:#3fb950}.rail-file-dot--modified{background:#d29922}.rail-file-dot--missing{background:#f85149}.rail-file-dot--anchors_lost{background:#db6d28}.rail-file-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-legend{margin-top:8px;font-size:10px;color:#6e7681}.rail-tags{display:flex;flex-wrap:wrap;gap:6px}.rail-links{display:flex;flex-direction:column;gap:6px}.rail-link{display:block;text-align:left;border:none;background:none;padding:0;color:#58a6ff;font-size:12px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-link:hover{text-decoration:underline}.rail-link--cross-project{color:#a371f7}.rail-link--broken{color:#6e7681;cursor:default;text-decoration:line-through}@media print{.doc-topbar,.doc-tabs,.stale-banner,.context-rail{display:none!important}.doc-main{display:block!important;overflow:visible!important;padding:0!important}}.project-trigger{height:28px;max-width:200px;display:inline-flex;align-items:center;gap:7px;padding:0 8px 0 10px;border-radius:6px;border:1px solid #30363d;background:#0d1117;color:#e1e4e8;font-size:11px;cursor:pointer}.project-trigger:hover,.project-trigger.open{border-color:#58a6ff}.project-trigger.error{border-color:#f85149}.project-trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-trigger-caret{flex-shrink:0;color:#8b949e;transition:transform .15s}.project-trigger-caret.flipped{transform:rotate(180deg)}.source-icon{flex-shrink:0;color:#8b949e}.source-icon.active{color:#58a6ff}.source-icon.error{color:#f85149}.project-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:340px;padding:6px;border:1px solid #30363d;border-radius:8px;background:#161b22;box-shadow:0 8px 24px #00000080;outline:none}.project-menu-label{padding:6px 10px 8px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6e7681}.project-menu-list{max-height:min(420px,70vh);overflow-y:auto}.project-option{display:flex;align-items:center;gap:10px;min-height:46px;padding:6px 6px 6px 12px;border-radius:6px;cursor:pointer}.project-option.highlighted{background:#1c2128}.project-option.current{background:#1f2937}.project-option-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.project-option-name{font-size:12.5px;color:#e1e4e8}.project-option.current .project-option-name{font-weight:600;color:#f0f6fc}.project-option-source{font-size:11px;color:#8b949e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-option-source.error{color:#f85149}.project-option-check{flex-shrink:0;color:#58a6ff}.project-option-gear{flex-shrink:0;width:26px;height:26px;display:none;align-items:center;justify-content:center;border-radius:6px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;cursor:pointer}.project-option:hover .project-option-gear,.project-option.highlighted .project-option-gear{display:inline-flex}.project-option:hover .project-option-check,.project-option.highlighted .project-option-check{display:none}.project-option-gear:hover{color:#f0f6fc;border-color:#8b949e}.project-option-fix{flex-shrink:0;padding:4px 6px;border:none;background:none;color:#58a6ff;font-size:12px;font-weight:600;cursor:pointer}.project-option-fix:hover{text-decoration:underline}.ps-btn{height:32px;padding:0 16px;border-radius:6px;border:1px solid #30363d;background:#21262d;color:#c9d1d9;font-size:12px;cursor:pointer;white-space:nowrap}.ps-btn:hover:not(:disabled){border-color:#8b949e;color:#f0f6fc}.ps-btn.primary{border-color:#1f6feb;background:#1f6feb;color:#fff;font-weight:600}.ps-btn.primary:hover:not(:disabled){background:#388bfd;border-color:#388bfd}.ps-btn:disabled{opacity:.5;cursor:default}.spinning{animation:sync-spin .9s linear infinite}.project-settings{width:min(640px,calc(100vw - 32px));max-height:90vh;display:flex;flex-direction:column;border:1px solid #30363d;border-radius:12px;background:#161b22;box-shadow:0 16px 48px #0009}.ps-header{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 24px 18px;border-bottom:1px solid #21262d}.ps-title{font-size:17px;font-weight:600;color:#f0f6fc}.ps-subtitle{margin-top:6px;display:flex;align-items:center;gap:6px;font-size:12px;color:#8b949e}.ps-close{padding:2px;border:none;border-radius:4px;background:none;color:#8b949e;cursor:pointer}.ps-close:hover{background:#21262d;color:#f0f6fc}.ps-body{overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:18px}.ps-section-label{margin-bottom:-8px;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6e7681}.ps-modes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ps-mode{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid #30363d;border-radius:8px;background:#0d1117;text-align:left;cursor:pointer}.ps-mode:hover:not(:disabled){border-color:#8b949e}.ps-mode.selected{border-color:#1f6feb;background:#0d2036}.ps-mode:disabled{cursor:default}.ps-mode-icon{flex-shrink:0;margin-top:1px;color:#8b949e}.ps-mode.selected .ps-mode-icon,.ps-mode-check{color:#58a6ff}.ps-mode-check{position:absolute;top:10px;right:10px}.ps-mode-text{display:flex;flex-direction:column;gap:4px;padding-right:18px}.ps-mode-title{font-size:13px;font-weight:600;color:#c9d1d9}.ps-mode.selected .ps-mode-title{color:#f0f6fc}.ps-mode-desc{font-size:11px;color:#6e7681}.ps-mode.selected .ps-mode-desc{color:#8b949e}.ps-local-note{display:flex;align-items:flex-start;gap:8px;font-size:11.5px;line-height:1.5;color:#8b949e}.ps-local-note svg{flex-shrink:0;margin-top:2px}.ps-local-note code{font-family:Fira Code,Consolas,monospace;font-size:11px;color:#c9d1d9}.ps-field{display:flex;flex-direction:column;gap:6px}.ps-label{font-size:12px;font-weight:600;color:#c9d1d9}.ps-input-wrap{position:relative;display:flex;align-items:center;height:34px;border:1px solid #30363d;border-radius:6px;background:#0d1117}.ps-input-wrap:focus-within{border-color:#58a6ff}.ps-input-wrap.invalid{border-color:#f85149}.ps-input-icon{flex-shrink:0;margin:0 8px 0 12px;color:#8b949e}.ps-input{flex:1;min-width:0;height:100%;border:none;outline:none;background:transparent;color:#e1e4e8;font-size:13px}.ps-select{padding-right:8px;cursor:pointer}.ps-select option{background:#161b22}.ps-input-status{flex-shrink:0;margin-right:12px;color:#8b949e}.ps-input-status.ok{color:#3fb950}.ps-chip{flex-shrink:0;margin-right:34px;padding:2px 10px;border-radius:10px;background:#21262d;color:#8b949e;font-size:10.5px;pointer-events:none}.ps-help{font-size:11px;color:#6e7681}.ps-help.ok{color:#3fb950}.ps-help.error{color:#f85149}.ps-token{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border:1px solid #21262d;border-radius:6px;background:#0d1117}.ps-token-icon{flex-shrink:0;color:#8b949e}.ps-token-icon.ok{color:#3fb950}.ps-token-icon.error{color:#f85149}.ps-token-text{flex:1;font-size:12px;color:#c9d1d9}.ps-combobox{position:relative}.ps-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;max-height:216px;overflow-y:auto;margin:0;padding:4px;list-style:none;border:1px solid #30363d;border-radius:8px;background:#161b22;box-shadow:0 8px 24px #00000080}.ps-suggestion{display:flex;flex-direction:column;gap:2px;padding:7px 10px;border-radius:6px;cursor:pointer}.ps-suggestion.highlighted{background:#1f2937}.ps-suggestion-name{display:flex;align-items:center;gap:7px;font-size:12.5px;color:#e1e4e8}.ps-suggestion-name svg{flex-shrink:0;color:#8b949e}.ps-suggestion-desc{padding-left:19px;font-size:11px;color:#8b949e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-suggestion-note{padding:8px 10px;font-size:12px;color:#8b949e}.ps-suggestion-note.error{color:#f85149}.ps-input-action{flex-shrink:0;margin-right:12px}.ps-link{border:none;background:none;color:#58a6ff;font-size:12px;font-weight:600;cursor:pointer}.ps-link.muted{color:#8b949e;font-weight:400}.ps-link:hover{text-decoration:underline}.ps-alert{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:6px;font-size:12px}.ps-alert.error{border:1px solid #5c2121;background:#2a1214;color:#f85149}.ps-alert svg{flex-shrink:0;margin-top:1px}.ps-preview{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid #30363d;border-left:3px solid #1f6feb;border-radius:8px;background:#0d1117}.ps-preview.error{border-left-color:#f85149}.ps-preview-icon{flex-shrink:0;color:#58a6ff}.ps-preview.error .ps-preview-icon{color:#f85149}.ps-preview-text{display:flex;flex-direction:column;gap:4px;min-width:0}.ps-preview-title{font-size:12.5px;font-weight:600;color:#e1e4e8}.ps-preview-counts{font-size:11.5px;color:#8b949e}.ps-preview.error .ps-preview-counts{color:#f85149}.ps-footer{display:flex;align-items:center;gap:12px;padding:18px 24px;border-top:1px solid #21262d}.ps-footer-note{flex:1;display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:16px;color:#6e7681}.ps-footer-note svg{flex-shrink:0;margin-top:1px}.ps-save-error{max-width:200px}.migration-report{width:min(680px,calc(100vw - 32px));max-height:90vh;overflow-y:auto;border:1px solid #30363d;border-radius:12px;background:#161b22;box-shadow:0 16px 48px #0009}.mig-header{display:flex;align-items:center;gap:14px;padding:22px 24px 18px}.mig-badge{flex-shrink:0;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#0d2036;color:#58a6ff}.mig-title{font-size:16px;font-weight:600;color:#f0f6fc}.mig-subtitle{margin-top:4px;font-size:12px;color:#8b949e}.mig-error{margin:0 24px 16px}.mig-table{width:100%;border-collapse:collapse;font-size:12.5px}.mig-table th{padding:8px 24px;border-bottom:1px solid #21262d;text-align:left;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6e7681}.mig-table td{padding:11px 24px;border-bottom:1px solid #21262d;color:#e1e4e8}.mig-table tr:last-child td{border-bottom:none}.mig-table tr.not-imported td{background:#1c1710}.mig-table tr.not-imported .mig-source{color:#d29922}.mig-table td.mig-scope{font-style:italic;color:#8b949e}.mig-source{display:inline-flex;align-items:center;gap:8px;color:#c9d1d9}.mig-icon{flex-shrink:0;color:#8b949e}.mig-icon.accent{color:#58a6ff}.mig-icon.ok{color:#3fb950}.mig-icon.warn{color:#d29922}.mig-table td.mig-from{font-family:Fira Code,Consolas,monospace;font-size:11px;color:#8b949e}.mig-callout{display:flex;align-items:flex-start;gap:12px;margin:16px 24px 0;padding:14px 16px;border:1px solid #30363d;border-radius:8px;background:#0d1117}.mig-callout-text{flex:1;display:flex;flex-direction:column;gap:4px}.mig-callout-title{font-size:12.5px;font-weight:600;color:#e1e4e8}.mig-callout-desc{font-size:11.5px;color:#8b949e}.mig-vars{margin-top:8px;font-family:Fira Code,Consolas,monospace;font-size:11.5px;line-height:17px;color:#a5d6ff;-webkit-user-select:all;user-select:all}.mig-copy{flex-shrink:0;width:28px;height:26px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #30363d;border-radius:6px;background:#161b22;color:#8b949e;cursor:pointer}.mig-copy:hover{color:#f0f6fc;border-color:#8b949e}.mig-footer{display:flex;align-items:center;gap:12px;margin-top:24px;padding:18px 24px;border-top:1px solid #21262d}.mig-footer-note{flex:1;font-size:11px;color:#6e7681}.settings-link-btn{align-self:flex-start;border:none;background:none;padding:0;color:#58a6ff;font-size:12px;cursor:pointer}.settings-link-btn:hover{text-decoration:underline}.settings-hint{font-size:11px;color:#3fb950}.settings-hint.error{color:#f85149}
@@ -1 +0,0 @@
1
- import{s as t,b as r,a,S as s}from"./chunk-AQP2D5EJ-ByBp3whV.js";import{_ as i}from"./index-DPGmAc6z.js";import"./chunk-55IACEB6-C9r6WDFM.js";import"./chunk-2J33WTMH-DskG-Kmf.js";var l={parser:a,get db(){return new s(2)},renderer:r,styles:t,init:i(e=>{e.state||(e.state={}),e.state.arrowMarkerAbsolute=e.arrowMarkerAbsolute},"init")};export{l as diagram};