@imenam/mcp-documentor 1.0.94 → 1.0.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -2
- package/dist/shared/read-only.js +1 -0
- package/dist/shared/schemas/doc.schema.d.ts +20 -0
- package/dist/shared/schemas/doc.schema.js +20 -0
- package/dist/src/core/comment-store.d.ts +87 -0
- package/dist/src/core/comment-store.js +189 -0
- package/dist/src/core/markdown-text.d.ts +7 -0
- package/dist/src/core/markdown-text.js +16 -0
- package/dist/src/core/publication-store.d.ts +4 -0
- package/dist/src/core/publication-store.js +6 -0
- package/dist/src/gui-worker.js +87 -5
- package/dist/src/index.js +180 -1
- package/dist/src/tools/comments.d.ts +29 -0
- package/dist/src/tools/comments.js +104 -0
- package/gui/dist/assets/{DocContent-B2hgJIHP.js → DocContent-D2Pgvsaw.js} +87 -87
- package/gui/dist/assets/{arc-3c1bsell.js → arc-ytJX8b9b.js} +1 -1
- package/gui/dist/assets/{architectureDiagram-3BPJPVTR-gOvE5Nh-.js → architectureDiagram-3BPJPVTR-vChxNmWw.js} +1 -1
- package/gui/dist/assets/{blockDiagram-GPEHLZMM-d2PyOGgB.js → blockDiagram-GPEHLZMM-D19nVYke.js} +1 -1
- package/gui/dist/assets/{c4Diagram-AAUBKEIU-Fq_MnzGd.js → c4Diagram-AAUBKEIU-7kCjxzBQ.js} +1 -1
- package/gui/dist/assets/channel-DegAVRd2.js +1 -0
- package/gui/dist/assets/{chunk-2J33WTMH-C8rPGvzC.js → chunk-2J33WTMH-CrEHZokt.js} +1 -1
- package/gui/dist/assets/{chunk-4BX2VUAB-CMO6CGqC.js → chunk-4BX2VUAB-AGQbPC36.js} +1 -1
- package/gui/dist/assets/{chunk-55IACEB6-ewoEucdu.js → chunk-55IACEB6-1dY_RrZJ.js} +1 -1
- package/gui/dist/assets/{chunk-727SXJPM-DVlayzbx.js → chunk-727SXJPM-DFrVc2F4.js} +1 -1
- package/gui/dist/assets/{chunk-AQP2D5EJ-CahwsWX2.js → chunk-AQP2D5EJ-Bf5AjFYW.js} +1 -1
- package/gui/dist/assets/{chunk-FMBD7UC4-CTfqQvPB.js → chunk-FMBD7UC4-ytPdLd3c.js} +1 -1
- package/gui/dist/assets/{chunk-ND2GUHAM-D16nBstn.js → chunk-ND2GUHAM-MQj2MK8N.js} +1 -1
- package/gui/dist/assets/{chunk-QZHKN3VN-BhYm6b_1.js → chunk-QZHKN3VN-BFpijhFi.js} +1 -1
- package/gui/dist/assets/classDiagram-4FO5ZUOK-C8gjytbe.js +1 -0
- package/gui/dist/assets/classDiagram-v2-Q7XG4LA2-C8gjytbe.js +1 -0
- package/gui/dist/assets/{cose-bilkent-S5V4N54A-BMWhCTQz.js → cose-bilkent-S5V4N54A-DydPBClW.js} +1 -1
- package/gui/dist/assets/{dagre-BM42HDAG-B8q9fjYt.js → dagre-BM42HDAG-Dt1NYir9.js} +1 -1
- package/gui/dist/assets/{diagram-2AECGRRQ-BEQd6l9g.js → diagram-2AECGRRQ-By8731FV.js} +1 -1
- package/gui/dist/assets/{diagram-5GNKFQAL-CYSk25NC.js → diagram-5GNKFQAL-6DboNPr2.js} +1 -1
- package/gui/dist/assets/{diagram-KO2AKTUF-pYuzMimB.js → diagram-KO2AKTUF-BlsHXUTP.js} +1 -1
- package/gui/dist/assets/{diagram-LMA3HP47-Coes1K5H.js → diagram-LMA3HP47-NlfihhmZ.js} +1 -1
- package/gui/dist/assets/{diagram-OG6HWLK6-B9QD3Aih.js → diagram-OG6HWLK6-BuPvvcLW.js} +1 -1
- package/gui/dist/assets/{erDiagram-TEJ5UH35-BaTQh6lK.js → erDiagram-TEJ5UH35-Bwh4WcoJ.js} +1 -1
- package/gui/dist/assets/{flowDiagram-I6XJVG4X-CD3j0V3z.js → flowDiagram-I6XJVG4X-Cpo3jFt_.js} +1 -1
- package/gui/dist/assets/{ganttDiagram-6RSMTGT7-CI8luwIp.js → ganttDiagram-6RSMTGT7-MTzCwVCF.js} +4 -4
- package/gui/dist/assets/{gitGraphDiagram-PVQCEYII-CZicCj5w.js → gitGraphDiagram-PVQCEYII-TGZH1N13.js} +1 -1
- package/gui/dist/assets/{infoDiagram-5YYISTIA-BBBZLBfU.js → infoDiagram-5YYISTIA-CjtHqsAF.js} +1 -1
- package/gui/dist/assets/{ishikawaDiagram-YF4QCWOH-JzhvbF8X.js → ishikawaDiagram-YF4QCWOH-BubX7AqP.js} +1 -1
- package/gui/dist/assets/{journeyDiagram-JHISSGLW-z2Fq1AWA.js → journeyDiagram-JHISSGLW-BT5Bu4px.js} +1 -1
- package/gui/dist/assets/{kanban-definition-UN3LZRKU-CsERU4RU.js → kanban-definition-UN3LZRKU-CyiNLbBC.js} +1 -1
- package/gui/dist/assets/{linear-bwdTeoS5.js → linear-rOmZOzd-.js} +1 -1
- package/gui/dist/assets/main-BvGBQ4na.css +1 -0
- package/gui/dist/assets/main-DqcEvJHv.js +10 -0
- package/gui/dist/assets/{mindmap-definition-RKZ34NQL-Hhnd5vi2.js → mindmap-definition-RKZ34NQL-Cvy4YAiE.js} +1 -1
- package/gui/dist/assets/{pieDiagram-4H26LBE5-DCSptoQo.js → pieDiagram-4H26LBE5-BKrVYqW5.js} +1 -1
- package/gui/dist/assets/public-BOnoF84L.js +1 -0
- package/gui/dist/assets/public-BmtG1Lfn.css +1 -0
- package/gui/dist/assets/{quadrantDiagram-W4KKPZXB-CFG_TBfZ.js → quadrantDiagram-W4KKPZXB-DG_N325e.js} +1 -1
- package/gui/dist/assets/{requirementDiagram-4Y6WPE33-DUHthbad.js → requirementDiagram-4Y6WPE33-oWqsr2x0.js} +1 -1
- package/gui/dist/assets/{sankeyDiagram-5OEKKPKP-CcivnX5S.js → sankeyDiagram-5OEKKPKP-B8uXp_JX.js} +1 -1
- package/gui/dist/assets/{sequenceDiagram-3UESZ5HK-DD3f-L7G.js → sequenceDiagram-3UESZ5HK-bZUsMsnM.js} +1 -1
- package/gui/dist/assets/{stateDiagram-AJRCARHV-DP6QuANT.js → stateDiagram-AJRCARHV-3o_sYDh3.js} +1 -1
- package/gui/dist/assets/stateDiagram-v2-BHNVJYJU-CfMfyWVZ.js +1 -0
- package/gui/dist/assets/{timeline-definition-PNZ67QCA-DpSvFfP9.js → timeline-definition-PNZ67QCA-BWMaBPME.js} +1 -1
- package/gui/dist/assets/{vennDiagram-CIIHVFJN-DU7Clt-k.js → vennDiagram-CIIHVFJN-BuBBjBVe.js} +1 -1
- package/gui/dist/assets/{wardley-L42UT6IY-By2c-zj1.js → wardley-L42UT6IY-Da4i2-Py.js} +1 -1
- package/gui/dist/assets/{wardleyDiagram-YWT4CUSO-BJeFdhb5.js → wardleyDiagram-YWT4CUSO-Cv3OBAYm.js} +1 -1
- package/gui/dist/assets/{xychartDiagram-2RQKCTM6-ZeDSX3nQ.js → xychartDiagram-2RQKCTM6-DFmCIdof.js} +1 -1
- package/gui/dist/index.html +3 -3
- package/gui/dist/public.html +3 -3
- package/package.json +5 -1
- package/gui/dist/assets/channel-D0TrBTBU.js +0 -1
- package/gui/dist/assets/classDiagram-4FO5ZUOK-BZarwo9C.js +0 -1
- package/gui/dist/assets/classDiagram-v2-Q7XG4LA2-BZarwo9C.js +0 -1
- package/gui/dist/assets/main-BB0ARNyc.js +0 -10
- package/gui/dist/assets/main-DDy8gF40.css +0 -1
- package/gui/dist/assets/public-Bds7tw8V.css +0 -1
- package/gui/dist/assets/public-D8L9bJEM.js +0 -1
- package/gui/dist/assets/stateDiagram-v2-BHNVJYJU-DCHGEDGQ.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{p as le}from"./chunk-4BX2VUAB-CMO6CGqC.js";import{I as he}from"./chunk-QZHKN3VN-BhYm6b_1.js";import{q as $e,p as fe,s as ge,g as ue,a as ye,b as xe,_ as h,D as J,l as w,d as me,c as W,u as pe,E as be,z as we,k as B,F as ke,G as ve,H as Ce}from"./DocContent-B2hgJIHP.js";import{p as Ee}from"./wardley-L42UT6IY-By2c-zj1.js";var m={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},Be=ve.gitGraph,S=h(()=>ke({...Be,...J().gitGraph}),"getConfig"),d=new he(()=>{const e=S(),r=e.mainBranchName,t=e.mainBranchOrder;return{mainBranchName:r,commits:new Map,head:null,branchConfig:new Map([[r,{name:r,order:t}]]),branches:new Map([[r,null]]),currBranch:r,direction:"LR",seq:0,options:{}}});function Y(){return Ce({length:7})}h(Y,"getID");function te(e,r){const t=Object.create(null);return e.reduce((s,o)=>{const i=r(o);return t[i]||(t[i]=!0,s.push(o)),s},[])}h(te,"uniqBy");var Te=h(function(e){d.records.direction=e},"setDirection"),Le=h(function(e){w.debug("options str",e),e=e?.trim(),e=e||"{}";try{d.records.options=JSON.parse(e)}catch(r){w.error("error while parsing gitGraph options",r.message)}},"setOptions"),Me=h(function(){return d.records.options},"getOptions"),Re=h(function(e){let r=e.msg,t=e.id;const s=e.type;let o=e.tags;w.info("commit",r,t,s,o),w.debug("Entering commit:",r,t,s,o);const i=S();t=B.sanitizeText(t,i),r=B.sanitizeText(r,i),o=o?.map(a=>B.sanitizeText(a,i));const n={id:t||d.records.seq+"-"+Y(),message:r,seq:d.records.seq++,type:s??m.NORMAL,tags:o??[],parents:d.records.head==null?[]:[d.records.head.id],branch:d.records.currBranch};d.records.head=n,w.info("main branch",i.mainBranchName),d.records.commits.has(n.id)&&w.warn(`Commit ID ${n.id} already exists`),d.records.commits.set(n.id,n),d.records.branches.set(d.records.currBranch,n.id),w.debug("in pushCommit "+n.id)},"commit"),Ie=h(function(e){let r=e.name;const t=e.order;if(r=B.sanitizeText(r,S()),d.records.branches.has(r))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${r}")`);d.records.branches.set(r,d.records.head!=null?d.records.head.id:null),d.records.branchConfig.set(r,{name:r,order:t}),ae(r),w.debug("in createBranch")},"branch"),Oe=h(e=>{let r=e.branch,t=e.id;const s=e.type,o=e.tags,i=S();r=B.sanitizeText(r,i),t&&(t=B.sanitizeText(t,i));const n=d.records.branches.get(d.records.currBranch),a=d.records.branches.get(r),l=n?d.records.commits.get(n):void 0,f=a?d.records.commits.get(a):void 0;if(l&&f&&l.branch===r)throw new Error(`Cannot merge branch '${r}' into itself.`);if(d.records.currBranch===r){const c=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},c}if(l===void 0||!l){const c=new Error(`Incorrect usage of "merge". Current branch (${d.records.currBranch})has no commits`);throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["commit"]},c}if(!d.records.branches.has(r)){const c=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:[`branch ${r}`]},c}if(f===void 0||!f){const c=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:['"commit"']},c}if(l===f){const c=new Error('Incorrect usage of "merge". Both branches have same head');throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},c}if(t&&d.records.commits.has(t)){const c=new Error('Incorrect usage of "merge". Commit with id:'+t+" already exists, use different custom id");throw c.hash={text:`merge ${r} ${t} ${s} ${o?.join(" ")}`,token:`merge ${r} ${t} ${s} ${o?.join(" ")}`,expected:[`merge ${r} ${t}_UNIQUE ${s} ${o?.join(" ")}`]},c}const g=a||"",$={id:t||`${d.records.seq}-${Y()}`,message:`merged branch ${r} into ${d.records.currBranch}`,seq:d.records.seq++,parents:d.records.head==null?[]:[d.records.head.id,g],branch:d.records.currBranch,type:m.MERGE,customType:s,customId:!!t,tags:o??[]};d.records.head=$,d.records.commits.set($.id,$),d.records.branches.set(d.records.currBranch,$.id),w.debug(d.records.branches),w.debug("in mergeBranch")},"merge"),_e=h(function(e){let r=e.id,t=e.targetId,s=e.tags,o=e.parent;w.debug("Entering cherryPick:",r,t,s);const i=S();if(r=B.sanitizeText(r,i),t=B.sanitizeText(t,i),s=s?.map(l=>B.sanitizeText(l,i)),o=B.sanitizeText(o,i),!r||!d.records.commits.has(r)){const l=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw l.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},l}const n=d.records.commits.get(r);if(n===void 0||!n)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(o&&!(Array.isArray(n.parents)&&n.parents.includes(o)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const a=n.branch;if(n.type===m.MERGE&&!o)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!t||!d.records.commits.has(t)){if(a===d.records.currBranch){const $=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const l=d.records.branches.get(d.records.currBranch);if(l===void 0||!l){const $=new Error(`Incorrect usage of "cherry-pick". Current branch (${d.records.currBranch})has no commits`);throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const f=d.records.commits.get(l);if(f===void 0||!f){const $=new Error(`Incorrect usage of "cherry-pick". Current branch (${d.records.currBranch})has no commits`);throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const g={id:d.records.seq+"-"+Y(),message:`cherry-picked ${n?.message} into ${d.records.currBranch}`,seq:d.records.seq++,parents:d.records.head==null?[]:[d.records.head.id,n.id],branch:d.records.currBranch,type:m.CHERRY_PICK,tags:s?s.filter(Boolean):[`cherry-pick:${n.id}${n.type===m.MERGE?`|parent:${o}`:""}`]};d.records.head=g,d.records.commits.set(g.id,g),d.records.branches.set(d.records.currBranch,g.id),w.debug(d.records.branches),w.debug("in cherryPick")}},"cherryPick"),ae=h(function(e){if(e=B.sanitizeText(e,S()),d.records.branches.has(e)){d.records.currBranch=e;const r=d.records.branches.get(d.records.currBranch);r===void 0||!r?d.records.head=null:d.records.head=d.records.commits.get(r)??null}else{const r=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw r.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},r}},"checkout");function V(e,r,t){const s=e.indexOf(r);s===-1?e.push(t):e.splice(s,1,t)}h(V,"upsert");function Q(e){const r=e.reduce((o,i)=>o.seq>i.seq?o:i,e[0]);let t="";e.forEach(function(o){o===r?t+=" *":t+=" |"});const s=[t,r.id,r.seq];for(const o in d.records.branches)d.records.branches.get(o)===r.id&&s.push(o);if(w.debug(s.join(" ")),r.parents&&r.parents.length==2&&r.parents[0]&&r.parents[1]){const o=d.records.commits.get(r.parents[0]);V(e,r,o),r.parents[1]&&e.push(d.records.commits.get(r.parents[1]))}else{if(r.parents.length==0)return;if(r.parents[0]){const o=d.records.commits.get(r.parents[0]);V(e,r,o)}}e=te(e,o=>o.id),Q(e)}h(Q,"prettyPrintCommitHistory");var Ge=h(function(){w.debug(d.records.commits);const e=ne()[0];Q([e])},"prettyPrint"),He=h(function(){d.reset(),we()},"clear"),Se=h(function(){return[...d.records.branchConfig.values()].map((r,t)=>r.order!==null&&r.order!==void 0?r:{...r,order:parseFloat(`0.${t}`)}).sort((r,t)=>(r.order??0)-(t.order??0)).map(({name:r})=>({name:r}))},"getBranchesAsObjArray"),Ae=h(function(){return d.records.branches},"getBranches"),De=h(function(){return d.records.commits},"getCommits"),ne=h(function(){const e=[...d.records.commits.values()];return e.forEach(function(r){w.debug(r.id)}),e.sort((r,t)=>r.seq-t.seq),e},"getCommitsArray"),qe=h(function(){return d.records.currBranch},"getCurrentBranch"),Pe=h(function(){return d.records.direction},"getDirection"),We=h(function(){return d.records.head},"getHead"),se={commitType:m,getConfig:S,setDirection:Te,setOptions:Le,getOptions:Me,commit:Re,branch:Ie,merge:Oe,cherryPick:_e,checkout:ae,prettyPrint:Ge,clear:He,getBranchesAsObjArray:Se,getBranches:Ae,getCommits:De,getCommitsArray:ne,getCurrentBranch:qe,getDirection:Pe,getHead:We,setAccTitle:xe,getAccTitle:ye,getAccDescription:ue,setAccDescription:ge,setDiagramTitle:fe,getDiagramTitle:$e},Ne=h((e,r)=>{le(e,r),e.dir&&r.setDirection(e.dir);for(const t of e.statements)Fe(t,r)},"populate"),Fe=h((e,r)=>{const s={Commit:h(o=>r.commit(ze(o)),"Commit"),Branch:h(o=>r.branch(Ye(o)),"Branch"),Merge:h(o=>r.merge(je(o)),"Merge"),Checkout:h(o=>r.checkout(Ue(o)),"Checkout"),CherryPicking:h(o=>r.cherryPick(Ke(o)),"CherryPicking")}[e.$type];s?s(e):w.error(`Unknown statement type: ${e.$type}`)},"parseStatement"),ze=h(e=>({id:e.id,msg:e.message??"",type:e.type!==void 0?m[e.type]:m.NORMAL,tags:e.tags??void 0}),"parseCommit"),Ye=h(e=>({name:e.name,order:e.order??0}),"parseBranch"),je=h(e=>({branch:e.branch,id:e.id??"",type:e.type!==void 0?m[e.type]:void 0,tags:e.tags??void 0}),"parseMerge"),Ue=h(e=>e.branch,"parseCheckout"),Ke=h(e=>({id:e.id,targetId:"",tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),"parseCherryPicking"),Ve={parse:h(async e=>{const r=await Ee("gitGraph",e);w.debug(r),Ne(r,se)},"parse")},O=10,_=40,L=4,R=2,G=8,j=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),X=12,Z=new Set(["redux-color","redux-dark-color"]),Xe=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),H=h((e,r,t=!1)=>t&&e>0?(e-1)%(r-1)+1:e%r,"calcColorIndex"),C=new Map,E=new Map,F=30,q=new Map,z=[],I=0,y="LR",Je=h(()=>{C.clear(),E.clear(),q.clear(),I=0,z=[],y="LR"},"clear"),oe=h(e=>{const r=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof e=="string"?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(s=>{const o=document.createElementNS("http://www.w3.org/2000/svg","tspan");o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),o.setAttribute("dy","1em"),o.setAttribute("x","0"),o.setAttribute("class","row"),o.textContent=s.trim(),r.appendChild(o)}),r},"drawText"),ce=h(e=>{let r,t,s;return y==="BT"?(t=h((o,i)=>o<=i,"comparisonFunc"),s=1/0):(t=h((o,i)=>o>=i,"comparisonFunc"),s=0),e.forEach(o=>{const i=y==="TB"||y=="BT"?E.get(o)?.y:E.get(o)?.x;i!==void 0&&t(i,s)&&(r=o,s=i)}),r},"findClosestParent"),Qe=h(e=>{let r="",t=1/0;return e.forEach(s=>{const o=E.get(s).y;o<=t&&(r=s,t=o)}),r||void 0},"findClosestParentBT"),Ze=h((e,r,t)=>{let s=t,o=t;const i=[];e.forEach(n=>{const a=r.get(n);if(!a)throw new Error(`Commit not found for key ${n}`);a.parents.length?(s=rr(a),o=Math.max(s,o)):i.push(a),tr(a,s)}),s=o,i.forEach(n=>{ar(n,s,t)}),e.forEach(n=>{const a=r.get(n);if(a?.parents.length){const l=Qe(a.parents);s=E.get(l).y-_,s<=o&&(o=s);const f=C.get(a.branch).pos,g=s-O;E.set(a.id,{x:f,y:g})}})},"setParallelBTPos"),er=h(e=>{const r=ce(e.parents.filter(s=>s!==null));if(!r)throw new Error(`Closest parent not found for commit ${e.id}`);const t=E.get(r)?.y;if(t===void 0)throw new Error(`Closest parent position not found for commit ${e.id}`);return t},"findClosestParentPos"),rr=h(e=>er(e)+_,"calculateCommitPosition"),tr=h((e,r)=>{const t=C.get(e.branch);if(!t)throw new Error(`Branch not found for commit ${e.id}`);const s=t.pos,o=r+O;return E.set(e.id,{x:s,y:o}),{x:s,y:o}},"setCommitPosition"),ar=h((e,r,t)=>{const s=C.get(e.branch);if(!s)throw new Error(`Branch not found for commit ${e.id}`);const o=r+t,i=s.pos;E.set(e.id,{x:i,y:o})},"setRootPosition"),nr=h((e,r,t,s,o,i)=>{const{theme:n}=W(),a=j.has(n??""),l=Z.has(n??""),f=Xe.has(n??"");if(i===m.HIGHLIGHT)e.append("rect").attr("x",t.x-10+(a?3:0)).attr("y",t.y-10+(a?3:0)).attr("width",a?14:20).attr("height",a?14:20).attr("class",`commit ${r.id} commit-highlight${H(o,G,l)} ${s}-outer`),e.append("rect").attr("x",t.x-6+(a?2:0)).attr("y",t.y-6+(a?2:0)).attr("width",a?8:12).attr("height",a?8:12).attr("class",`commit ${r.id} commit${H(o,G,l)} ${s}-inner`);else if(i===m.CHERRY_PICK)e.append("circle").attr("cx",t.x).attr("cy",t.y).attr("r",a?7:10).attr("class",`commit ${r.id} ${s}`),e.append("circle").attr("cx",t.x-3).attr("cy",t.y+2).attr("r",a?2.5:2.75).attr("fill",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("circle").attr("cx",t.x+3).attr("cy",t.y+2).attr("r",a?2.5:2.75).attr("fill",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("line").attr("x1",t.x+3).attr("y1",t.y+1).attr("x2",t.x).attr("y2",t.y-5).attr("stroke",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("line").attr("x1",t.x-3).attr("y1",t.y+1).attr("x2",t.x).attr("y2",t.y-5).attr("stroke",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`);else{const g=e.append("circle");if(g.attr("cx",t.x),g.attr("cy",t.y),g.attr("r",a?7:10),g.attr("class",`commit ${r.id} commit${H(o,G,l)}`),i===m.MERGE){const $=e.append("circle");$.attr("cx",t.x),$.attr("cy",t.y),$.attr("r",a?5:6),$.attr("class",`commit ${s} ${r.id} commit${H(o,G,l)}`)}if(i===m.REVERSE){const $=e.append("path"),c=a?4:5;$.attr("d",`M ${t.x-c},${t.y-c}L${t.x+c},${t.y+c}M${t.x-c},${t.y+c}L${t.x+c},${t.y-c}`).attr("class",`commit ${s} ${r.id} commit${H(o,G,l)}`)}}},"drawCommitBullet"),sr=h((e,r,t,s,o)=>{if(r.type!==m.CHERRY_PICK&&(r.customId&&r.type===m.MERGE||r.type!==m.MERGE)&&o.showCommitLabel){const i=e.append("g"),n=i.insert("rect").attr("class","commit-label-bkg"),a=i.append("text").attr("x",s).attr("y",t.y+25).attr("class","commit-label").text(r.id),l=a.node()?.getBBox();if(l&&(n.attr("x",t.posWithOffset-l.width/2-R).attr("y",t.y+13.5).attr("width",l.width+2*R).attr("height",l.height+2*R),y==="TB"||y==="BT"?(n.attr("x",t.x-(l.width+4*L+5)).attr("y",t.y-12),a.attr("x",t.x-(l.width+4*L)).attr("y",t.y+l.height-12)):a.attr("x",t.posWithOffset-l.width/2),o.rotateCommitLabel))if(y==="TB"||y==="BT")a.attr("transform","rotate(-45, "+t.x+", "+t.y+")"),n.attr("transform","rotate(-45, "+t.x+", "+t.y+")");else{const f=-7.5-(l.width+10)/25*9.5,g=10+l.width/25*8.5;i.attr("transform","translate("+f+", "+g+") rotate(-45, "+s+", "+t.y+")")}}},"drawCommitLabel"),or=h((e,r,t,s)=>{if(r.tags.length>0){let o=0,i=0,n=0;const a=[];for(const l of r.tags.reverse()){const f=e.insert("polygon"),g=e.append("circle"),$=e.append("text").attr("y",t.y-16-o).attr("class","tag-label").text(l),c=$.node()?.getBBox();if(!c)throw new Error("Tag bbox not found");i=Math.max(i,c.width),n=Math.max(n,c.height),$.attr("x",t.posWithOffset-c.width/2),a.push({tag:$,hole:g,rect:f,yOffset:o}),o+=20}for(const{tag:l,hole:f,rect:g,yOffset:$}of a){const c=n/2,x=t.y-19.2-$;if(g.attr("class","tag-label-bkg").attr("points",`
|
|
1
|
+
import{p as le}from"./chunk-4BX2VUAB-AGQbPC36.js";import{I as he}from"./chunk-QZHKN3VN-BFpijhFi.js";import{q as $e,p as fe,s as ge,g as ue,a as ye,b as xe,_ as h,D as J,l as w,d as me,c as W,u as pe,E as be,z as we,k as B,F as ke,G as ve,H as Ce}from"./DocContent-D2Pgvsaw.js";import{p as Ee}from"./wardley-L42UT6IY-Da4i2-Py.js";var m={NORMAL:0,REVERSE:1,HIGHLIGHT:2,MERGE:3,CHERRY_PICK:4},Be=ve.gitGraph,S=h(()=>ke({...Be,...J().gitGraph}),"getConfig"),d=new he(()=>{const e=S(),r=e.mainBranchName,t=e.mainBranchOrder;return{mainBranchName:r,commits:new Map,head:null,branchConfig:new Map([[r,{name:r,order:t}]]),branches:new Map([[r,null]]),currBranch:r,direction:"LR",seq:0,options:{}}});function Y(){return Ce({length:7})}h(Y,"getID");function te(e,r){const t=Object.create(null);return e.reduce((s,o)=>{const i=r(o);return t[i]||(t[i]=!0,s.push(o)),s},[])}h(te,"uniqBy");var Te=h(function(e){d.records.direction=e},"setDirection"),Le=h(function(e){w.debug("options str",e),e=e?.trim(),e=e||"{}";try{d.records.options=JSON.parse(e)}catch(r){w.error("error while parsing gitGraph options",r.message)}},"setOptions"),Me=h(function(){return d.records.options},"getOptions"),Re=h(function(e){let r=e.msg,t=e.id;const s=e.type;let o=e.tags;w.info("commit",r,t,s,o),w.debug("Entering commit:",r,t,s,o);const i=S();t=B.sanitizeText(t,i),r=B.sanitizeText(r,i),o=o?.map(a=>B.sanitizeText(a,i));const n={id:t||d.records.seq+"-"+Y(),message:r,seq:d.records.seq++,type:s??m.NORMAL,tags:o??[],parents:d.records.head==null?[]:[d.records.head.id],branch:d.records.currBranch};d.records.head=n,w.info("main branch",i.mainBranchName),d.records.commits.has(n.id)&&w.warn(`Commit ID ${n.id} already exists`),d.records.commits.set(n.id,n),d.records.branches.set(d.records.currBranch,n.id),w.debug("in pushCommit "+n.id)},"commit"),Ie=h(function(e){let r=e.name;const t=e.order;if(r=B.sanitizeText(r,S()),d.records.branches.has(r))throw new Error(`Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ${r}")`);d.records.branches.set(r,d.records.head!=null?d.records.head.id:null),d.records.branchConfig.set(r,{name:r,order:t}),ae(r),w.debug("in createBranch")},"branch"),Oe=h(e=>{let r=e.branch,t=e.id;const s=e.type,o=e.tags,i=S();r=B.sanitizeText(r,i),t&&(t=B.sanitizeText(t,i));const n=d.records.branches.get(d.records.currBranch),a=d.records.branches.get(r),l=n?d.records.commits.get(n):void 0,f=a?d.records.commits.get(a):void 0;if(l&&f&&l.branch===r)throw new Error(`Cannot merge branch '${r}' into itself.`);if(d.records.currBranch===r){const c=new Error('Incorrect usage of "merge". Cannot merge a branch to itself');throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},c}if(l===void 0||!l){const c=new Error(`Incorrect usage of "merge". Current branch (${d.records.currBranch})has no commits`);throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["commit"]},c}if(!d.records.branches.has(r)){const c=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") does not exist");throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:[`branch ${r}`]},c}if(f===void 0||!f){const c=new Error('Incorrect usage of "merge". Branch to be merged ('+r+") has no commits");throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:['"commit"']},c}if(l===f){const c=new Error('Incorrect usage of "merge". Both branches have same head');throw c.hash={text:`merge ${r}`,token:`merge ${r}`,expected:["branch abc"]},c}if(t&&d.records.commits.has(t)){const c=new Error('Incorrect usage of "merge". Commit with id:'+t+" already exists, use different custom id");throw c.hash={text:`merge ${r} ${t} ${s} ${o?.join(" ")}`,token:`merge ${r} ${t} ${s} ${o?.join(" ")}`,expected:[`merge ${r} ${t}_UNIQUE ${s} ${o?.join(" ")}`]},c}const g=a||"",$={id:t||`${d.records.seq}-${Y()}`,message:`merged branch ${r} into ${d.records.currBranch}`,seq:d.records.seq++,parents:d.records.head==null?[]:[d.records.head.id,g],branch:d.records.currBranch,type:m.MERGE,customType:s,customId:!!t,tags:o??[]};d.records.head=$,d.records.commits.set($.id,$),d.records.branches.set(d.records.currBranch,$.id),w.debug(d.records.branches),w.debug("in mergeBranch")},"merge"),_e=h(function(e){let r=e.id,t=e.targetId,s=e.tags,o=e.parent;w.debug("Entering cherryPick:",r,t,s);const i=S();if(r=B.sanitizeText(r,i),t=B.sanitizeText(t,i),s=s?.map(l=>B.sanitizeText(l,i)),o=B.sanitizeText(o,i),!r||!d.records.commits.has(r)){const l=new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');throw l.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},l}const n=d.records.commits.get(r);if(n===void 0||!n)throw new Error('Incorrect usage of "cherryPick". Source commit id should exist and provided');if(o&&!(Array.isArray(n.parents)&&n.parents.includes(o)))throw new Error("Invalid operation: The specified parent commit is not an immediate parent of the cherry-picked commit.");const a=n.branch;if(n.type===m.MERGE&&!o)throw new Error("Incorrect usage of cherry-pick: If the source commit is a merge commit, an immediate parent commit must be specified.");if(!t||!d.records.commits.has(t)){if(a===d.records.currBranch){const $=new Error('Incorrect usage of "cherryPick". Source commit is already on current branch');throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const l=d.records.branches.get(d.records.currBranch);if(l===void 0||!l){const $=new Error(`Incorrect usage of "cherry-pick". Current branch (${d.records.currBranch})has no commits`);throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const f=d.records.commits.get(l);if(f===void 0||!f){const $=new Error(`Incorrect usage of "cherry-pick". Current branch (${d.records.currBranch})has no commits`);throw $.hash={text:`cherryPick ${r} ${t}`,token:`cherryPick ${r} ${t}`,expected:["cherry-pick abc"]},$}const g={id:d.records.seq+"-"+Y(),message:`cherry-picked ${n?.message} into ${d.records.currBranch}`,seq:d.records.seq++,parents:d.records.head==null?[]:[d.records.head.id,n.id],branch:d.records.currBranch,type:m.CHERRY_PICK,tags:s?s.filter(Boolean):[`cherry-pick:${n.id}${n.type===m.MERGE?`|parent:${o}`:""}`]};d.records.head=g,d.records.commits.set(g.id,g),d.records.branches.set(d.records.currBranch,g.id),w.debug(d.records.branches),w.debug("in cherryPick")}},"cherryPick"),ae=h(function(e){if(e=B.sanitizeText(e,S()),d.records.branches.has(e)){d.records.currBranch=e;const r=d.records.branches.get(d.records.currBranch);r===void 0||!r?d.records.head=null:d.records.head=d.records.commits.get(r)??null}else{const r=new Error(`Trying to checkout branch which is not yet created. (Help try using "branch ${e}")`);throw r.hash={text:`checkout ${e}`,token:`checkout ${e}`,expected:[`branch ${e}`]},r}},"checkout");function V(e,r,t){const s=e.indexOf(r);s===-1?e.push(t):e.splice(s,1,t)}h(V,"upsert");function Q(e){const r=e.reduce((o,i)=>o.seq>i.seq?o:i,e[0]);let t="";e.forEach(function(o){o===r?t+=" *":t+=" |"});const s=[t,r.id,r.seq];for(const o in d.records.branches)d.records.branches.get(o)===r.id&&s.push(o);if(w.debug(s.join(" ")),r.parents&&r.parents.length==2&&r.parents[0]&&r.parents[1]){const o=d.records.commits.get(r.parents[0]);V(e,r,o),r.parents[1]&&e.push(d.records.commits.get(r.parents[1]))}else{if(r.parents.length==0)return;if(r.parents[0]){const o=d.records.commits.get(r.parents[0]);V(e,r,o)}}e=te(e,o=>o.id),Q(e)}h(Q,"prettyPrintCommitHistory");var Ge=h(function(){w.debug(d.records.commits);const e=ne()[0];Q([e])},"prettyPrint"),He=h(function(){d.reset(),we()},"clear"),Se=h(function(){return[...d.records.branchConfig.values()].map((r,t)=>r.order!==null&&r.order!==void 0?r:{...r,order:parseFloat(`0.${t}`)}).sort((r,t)=>(r.order??0)-(t.order??0)).map(({name:r})=>({name:r}))},"getBranchesAsObjArray"),Ae=h(function(){return d.records.branches},"getBranches"),De=h(function(){return d.records.commits},"getCommits"),ne=h(function(){const e=[...d.records.commits.values()];return e.forEach(function(r){w.debug(r.id)}),e.sort((r,t)=>r.seq-t.seq),e},"getCommitsArray"),qe=h(function(){return d.records.currBranch},"getCurrentBranch"),Pe=h(function(){return d.records.direction},"getDirection"),We=h(function(){return d.records.head},"getHead"),se={commitType:m,getConfig:S,setDirection:Te,setOptions:Le,getOptions:Me,commit:Re,branch:Ie,merge:Oe,cherryPick:_e,checkout:ae,prettyPrint:Ge,clear:He,getBranchesAsObjArray:Se,getBranches:Ae,getCommits:De,getCommitsArray:ne,getCurrentBranch:qe,getDirection:Pe,getHead:We,setAccTitle:xe,getAccTitle:ye,getAccDescription:ue,setAccDescription:ge,setDiagramTitle:fe,getDiagramTitle:$e},Ne=h((e,r)=>{le(e,r),e.dir&&r.setDirection(e.dir);for(const t of e.statements)Fe(t,r)},"populate"),Fe=h((e,r)=>{const s={Commit:h(o=>r.commit(ze(o)),"Commit"),Branch:h(o=>r.branch(Ye(o)),"Branch"),Merge:h(o=>r.merge(je(o)),"Merge"),Checkout:h(o=>r.checkout(Ue(o)),"Checkout"),CherryPicking:h(o=>r.cherryPick(Ke(o)),"CherryPicking")}[e.$type];s?s(e):w.error(`Unknown statement type: ${e.$type}`)},"parseStatement"),ze=h(e=>({id:e.id,msg:e.message??"",type:e.type!==void 0?m[e.type]:m.NORMAL,tags:e.tags??void 0}),"parseCommit"),Ye=h(e=>({name:e.name,order:e.order??0}),"parseBranch"),je=h(e=>({branch:e.branch,id:e.id??"",type:e.type!==void 0?m[e.type]:void 0,tags:e.tags??void 0}),"parseMerge"),Ue=h(e=>e.branch,"parseCheckout"),Ke=h(e=>({id:e.id,targetId:"",tags:e.tags?.length===0?void 0:e.tags,parent:e.parent}),"parseCherryPicking"),Ve={parse:h(async e=>{const r=await Ee("gitGraph",e);w.debug(r),Ne(r,se)},"parse")},O=10,_=40,L=4,R=2,G=8,j=new Set(["redux","redux-dark","redux-color","redux-dark-color"]),X=12,Z=new Set(["redux-color","redux-dark-color"]),Xe=new Set(["dark","redux-dark","redux-dark-color","neo-dark"]),H=h((e,r,t=!1)=>t&&e>0?(e-1)%(r-1)+1:e%r,"calcColorIndex"),C=new Map,E=new Map,F=30,q=new Map,z=[],I=0,y="LR",Je=h(()=>{C.clear(),E.clear(),q.clear(),I=0,z=[],y="LR"},"clear"),oe=h(e=>{const r=document.createElementNS("http://www.w3.org/2000/svg","text");return(typeof e=="string"?e.split(/\\n|\n|<br\s*\/?>/gi):e).forEach(s=>{const o=document.createElementNS("http://www.w3.org/2000/svg","tspan");o.setAttributeNS("http://www.w3.org/XML/1998/namespace","xml:space","preserve"),o.setAttribute("dy","1em"),o.setAttribute("x","0"),o.setAttribute("class","row"),o.textContent=s.trim(),r.appendChild(o)}),r},"drawText"),ce=h(e=>{let r,t,s;return y==="BT"?(t=h((o,i)=>o<=i,"comparisonFunc"),s=1/0):(t=h((o,i)=>o>=i,"comparisonFunc"),s=0),e.forEach(o=>{const i=y==="TB"||y=="BT"?E.get(o)?.y:E.get(o)?.x;i!==void 0&&t(i,s)&&(r=o,s=i)}),r},"findClosestParent"),Qe=h(e=>{let r="",t=1/0;return e.forEach(s=>{const o=E.get(s).y;o<=t&&(r=s,t=o)}),r||void 0},"findClosestParentBT"),Ze=h((e,r,t)=>{let s=t,o=t;const i=[];e.forEach(n=>{const a=r.get(n);if(!a)throw new Error(`Commit not found for key ${n}`);a.parents.length?(s=rr(a),o=Math.max(s,o)):i.push(a),tr(a,s)}),s=o,i.forEach(n=>{ar(n,s,t)}),e.forEach(n=>{const a=r.get(n);if(a?.parents.length){const l=Qe(a.parents);s=E.get(l).y-_,s<=o&&(o=s);const f=C.get(a.branch).pos,g=s-O;E.set(a.id,{x:f,y:g})}})},"setParallelBTPos"),er=h(e=>{const r=ce(e.parents.filter(s=>s!==null));if(!r)throw new Error(`Closest parent not found for commit ${e.id}`);const t=E.get(r)?.y;if(t===void 0)throw new Error(`Closest parent position not found for commit ${e.id}`);return t},"findClosestParentPos"),rr=h(e=>er(e)+_,"calculateCommitPosition"),tr=h((e,r)=>{const t=C.get(e.branch);if(!t)throw new Error(`Branch not found for commit ${e.id}`);const s=t.pos,o=r+O;return E.set(e.id,{x:s,y:o}),{x:s,y:o}},"setCommitPosition"),ar=h((e,r,t)=>{const s=C.get(e.branch);if(!s)throw new Error(`Branch not found for commit ${e.id}`);const o=r+t,i=s.pos;E.set(e.id,{x:i,y:o})},"setRootPosition"),nr=h((e,r,t,s,o,i)=>{const{theme:n}=W(),a=j.has(n??""),l=Z.has(n??""),f=Xe.has(n??"");if(i===m.HIGHLIGHT)e.append("rect").attr("x",t.x-10+(a?3:0)).attr("y",t.y-10+(a?3:0)).attr("width",a?14:20).attr("height",a?14:20).attr("class",`commit ${r.id} commit-highlight${H(o,G,l)} ${s}-outer`),e.append("rect").attr("x",t.x-6+(a?2:0)).attr("y",t.y-6+(a?2:0)).attr("width",a?8:12).attr("height",a?8:12).attr("class",`commit ${r.id} commit${H(o,G,l)} ${s}-inner`);else if(i===m.CHERRY_PICK)e.append("circle").attr("cx",t.x).attr("cy",t.y).attr("r",a?7:10).attr("class",`commit ${r.id} ${s}`),e.append("circle").attr("cx",t.x-3).attr("cy",t.y+2).attr("r",a?2.5:2.75).attr("fill",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("circle").attr("cx",t.x+3).attr("cy",t.y+2).attr("r",a?2.5:2.75).attr("fill",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("line").attr("x1",t.x+3).attr("y1",t.y+1).attr("x2",t.x).attr("y2",t.y-5).attr("stroke",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`),e.append("line").attr("x1",t.x-3).attr("y1",t.y+1).attr("x2",t.x).attr("y2",t.y-5).attr("stroke",f?"#000000":"#fff").attr("class",`commit ${r.id} ${s}`);else{const g=e.append("circle");if(g.attr("cx",t.x),g.attr("cy",t.y),g.attr("r",a?7:10),g.attr("class",`commit ${r.id} commit${H(o,G,l)}`),i===m.MERGE){const $=e.append("circle");$.attr("cx",t.x),$.attr("cy",t.y),$.attr("r",a?5:6),$.attr("class",`commit ${s} ${r.id} commit${H(o,G,l)}`)}if(i===m.REVERSE){const $=e.append("path"),c=a?4:5;$.attr("d",`M ${t.x-c},${t.y-c}L${t.x+c},${t.y+c}M${t.x-c},${t.y+c}L${t.x+c},${t.y-c}`).attr("class",`commit ${s} ${r.id} commit${H(o,G,l)}`)}}},"drawCommitBullet"),sr=h((e,r,t,s,o)=>{if(r.type!==m.CHERRY_PICK&&(r.customId&&r.type===m.MERGE||r.type!==m.MERGE)&&o.showCommitLabel){const i=e.append("g"),n=i.insert("rect").attr("class","commit-label-bkg"),a=i.append("text").attr("x",s).attr("y",t.y+25).attr("class","commit-label").text(r.id),l=a.node()?.getBBox();if(l&&(n.attr("x",t.posWithOffset-l.width/2-R).attr("y",t.y+13.5).attr("width",l.width+2*R).attr("height",l.height+2*R),y==="TB"||y==="BT"?(n.attr("x",t.x-(l.width+4*L+5)).attr("y",t.y-12),a.attr("x",t.x-(l.width+4*L)).attr("y",t.y+l.height-12)):a.attr("x",t.posWithOffset-l.width/2),o.rotateCommitLabel))if(y==="TB"||y==="BT")a.attr("transform","rotate(-45, "+t.x+", "+t.y+")"),n.attr("transform","rotate(-45, "+t.x+", "+t.y+")");else{const f=-7.5-(l.width+10)/25*9.5,g=10+l.width/25*8.5;i.attr("transform","translate("+f+", "+g+") rotate(-45, "+s+", "+t.y+")")}}},"drawCommitLabel"),or=h((e,r,t,s)=>{if(r.tags.length>0){let o=0,i=0,n=0;const a=[];for(const l of r.tags.reverse()){const f=e.insert("polygon"),g=e.append("circle"),$=e.append("text").attr("y",t.y-16-o).attr("class","tag-label").text(l),c=$.node()?.getBBox();if(!c)throw new Error("Tag bbox not found");i=Math.max(i,c.width),n=Math.max(n,c.height),$.attr("x",t.posWithOffset-c.width/2),a.push({tag:$,hole:g,rect:f,yOffset:o}),o+=20}for(const{tag:l,hole:f,rect:g,yOffset:$}of a){const c=n/2,x=t.y-19.2-$;if(g.attr("class","tag-label-bkg").attr("points",`
|
|
2
2
|
${s-i/2-L/2},${x+R}
|
|
3
3
|
${s-i/2-L/2},${x-R}
|
|
4
4
|
${t.posWithOffset-i/2-L},${x-c-R}
|
package/gui/dist/assets/{infoDiagram-5YYISTIA-BBBZLBfU.js → infoDiagram-5YYISTIA-CjtHqsAF.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as a,l as s,I as o,e as i}from"./DocContent-
|
|
1
|
+
import{_ as a,l as s,I as o,e as i}from"./DocContent-D2Pgvsaw.js";import{p as g}from"./wardley-L42UT6IY-Da4i2-Py.js";var p={parse:a(async r=>{const e=await g("info",r);s.debug(e)},"parse")},v={version:"11.15.0"},d=a(()=>v.version,"getVersion"),m={getVersion:d},c=a((r,e,n)=>{s.debug(`rendering info diagram
|
|
2
2
|
`+r);const t=o(e);i(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${n}`)},"draw"),l={draw:c},_={parser:p,db:m,renderer:l};export{_ as diagram};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as o,c as ot,N as ut,I as dt,al as yt,z as ft,k as pt,p as it,a as gt,b as kt,g as mt,s as wt,q as _t,e as bt}from"./DocContent-
|
|
1
|
+
import{_ as o,c as ot,N as ut,I as dt,al as yt,z as ft,k as pt,p as it,a as gt,b as kt,g as mt,s as wt,q as _t,e as bt}from"./DocContent-D2Pgvsaw.js";var J=(function(){var e=o(function(T,t,s,i){for(s=s||{},i=T.length;i--;s[T[i]]=t);return s},"o"),h=[1,4],r=[1,14],a=[1,12],l=[1,13],y=[6,7,8],f=[1,20],d=[1,18],m=[1,19],u=[6,7,11],k=[1,6,13,14],g=[1,23],_=[1,24],x=[1,6,7,11,13,14],D={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:o(function(t,s,i,c,p,n,v){var w=n.length-1;switch(p){case 6:case 7:return c;case 15:c.addNode(n[w-1].length,n[w].trim());break;case 16:c.addNode(0,n[w].trim());break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:r,7:[1,10],9:9,12:11,13:a,14:l},e(y,[2,3]),{1:[2,2]},e(y,[2,4]),e(y,[2,5]),{1:[2,6],6:r,12:15,13:a,14:l},{6:r,9:16,12:11,13:a,14:l},{6:f,7:d,10:17,11:m},e(u,[2,18],{14:[1,21]}),e(u,[2,16]),e(u,[2,17]),{6:f,7:d,10:22,11:m},{1:[2,7],6:r,12:15,13:a,14:l},e(k,[2,14],{7:g,11:_}),e(x,[2,8]),e(x,[2,9]),e(x,[2,10]),e(u,[2,15]),e(k,[2,13],{7:g,11:_}),e(x,[2,11]),e(x,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(t,s){if(s.recoverable)this.trace(t);else{var i=new Error(t);throw i.hash=s,i}},"parseError"),parse:o(function(t){var s=this,i=[0],c=[],p=[null],n=[],v=this.table,w="",I=0,$=0,L=2,A=1,C=n.slice.call(arguments,1),b=Object.create(this.lexer),S={yy:{}};for(var N in this.yy)Object.prototype.hasOwnProperty.call(this.yy,N)&&(S.yy[N]=this.yy[N]);b.setInput(t,S.yy),S.yy.lexer=b,S.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var R=b.yylloc;n.push(R);var G=b.options&&b.options.ranges;typeof S.yy.parseError=="function"?this.parseError=S.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Y(P){i.length=i.length-2*P,p.length=p.length-P,n.length=n.length-P}o(Y,"popStack");function tt(){var P;return P=c.pop()||b.lex()||A,typeof P!="number"&&(P instanceof Array&&(c=P,P=c.pop()),P=s.symbols_[P]||P),P}o(tt,"lex");for(var M,W,B,q,z={},U,V,et,Z;;){if(W=i[i.length-1],this.defaultActions[W]?B=this.defaultActions[W]:((M===null||typeof M>"u")&&(M=tt()),B=v[W]&&v[W][M]),typeof B>"u"||!B.length||!B[0]){var K="";Z=[];for(U in v[W])this.terminals_[U]&&U>L&&Z.push("'"+this.terminals_[U]+"'");b.showPosition?K="Parse error on line "+(I+1)+`:
|
|
2
2
|
`+b.showPosition()+`
|
|
3
3
|
Expecting `+Z.join(", ")+", got '"+(this.terminals_[M]||M)+"'":K="Parse error on line "+(I+1)+": Unexpected "+(M==A?"end of input":"'"+(this.terminals_[M]||M)+"'"),this.parseError(K,{text:b.match,token:this.terminals_[M]||M,line:b.yylineno,loc:R,expected:Z})}if(B[0]instanceof Array&&B.length>1)throw new Error("Parse Error: multiple actions possible at state: "+W+", token: "+M);switch(B[0]){case 1:i.push(M),p.push(b.yytext),n.push(b.yylloc),i.push(B[1]),M=null,$=b.yyleng,w=b.yytext,I=b.yylineno,R=b.yylloc;break;case 2:if(V=this.productions_[B[1]][1],z.$=p[p.length-V],z._$={first_line:n[n.length-(V||1)].first_line,last_line:n[n.length-1].last_line,first_column:n[n.length-(V||1)].first_column,last_column:n[n.length-1].last_column},G&&(z._$.range=[n[n.length-(V||1)].range[0],n[n.length-1].range[1]]),q=this.performAction.apply(z,[w,$,I,S.yy,B[1],p,n].concat(C)),typeof q<"u")return q;V&&(i=i.slice(0,-1*V*2),p=p.slice(0,-1*V),n=n.slice(0,-1*V)),i.push(this.productions_[B[1]][0]),p.push(z.$),n.push(z._$),et=v[i[i.length-2]][i[i.length-1]],i.push(et);break;case 3:return!0}}return!0},"parse")},O=(function(){var T={EOF:1,parseError:o(function(s,i){if(this.yy.parser)this.yy.parser.parseError(s,i);else throw new Error(s)},"parseError"),setInput:o(function(t,s){return this.yy=s||this.yy||{},this._input=t,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:o(function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var s=t.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:o(function(t){var s=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var c=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),i.length-1&&(this.yylineno-=i.length-1);var p=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:i?(i.length===c.length?this.yylloc.first_column:0)+c[c.length-i.length].length-i[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[p[0],p[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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:o(function(t){this.unput(this.match.slice(t))},"less"),pastInput:o(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var t=this.pastInput(),s=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
|
package/gui/dist/assets/{journeyDiagram-JHISSGLW-z2Fq1AWA.js → journeyDiagram-JHISSGLW-BT5Bu4px.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as gt}from"./chunk-FMBD7UC4-
|
|
1
|
+
import{g as gt}from"./chunk-FMBD7UC4-ytPdLd3c.js";import{a as mt,g as lt,h as xt,d as kt}from"./chunk-ND2GUHAM-MQj2MK8N.js";import{g as _t,s as vt,a as bt,b as wt,q as Tt,p as St,_ as s,c as R,d as X,e as $t,z as Mt}from"./DocContent-D2Pgvsaw.js";import{d as it}from"./arc-ytJX8b9b.js";var U=(function(){var t=s(function(h,r,n,l){for(n=n||{},l=h.length;l--;n[h[l]]=r);return n},"o"),e=[6,8,10,11,12,14,16,17,18],a=[1,9],f=[1,10],i=[1,11],u=[1,12],p=[1,13],o=[1,14],g={trace:s(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:s(function(r,n,l,y,d,c,v){var k=c.length-1;switch(d){case 1:return c[k-1];case 2:this.$=[];break;case 3:c[k-1].push(c[k]),this.$=c[k-1];break;case 4:case 5:this.$=c[k];break;case 6:case 7:this.$=[];break;case 8:y.setDiagramTitle(c[k].substr(6)),this.$=c[k].substr(6);break;case 9:this.$=c[k].trim(),y.setAccTitle(this.$);break;case 10:case 11:this.$=c[k].trim(),y.setAccDescription(this.$);break;case 12:y.addSection(c[k].substr(8)),this.$=c[k].substr(8);break;case 13:y.addTask(c[k-1],c[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:a,12:f,14:i,16:u,17:p,18:o},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:s(function(r,n){if(n.recoverable)this.trace(r);else{var l=new Error(r);throw l.hash=n,l}},"parseError"),parse:s(function(r){var n=this,l=[0],y=[],d=[null],c=[],v=this.table,k="",C=0,Q=0,yt=2,D=1,dt=c.slice.call(arguments,1),_=Object.create(this.lexer),I={yy:{}};for(var O in this.yy)Object.prototype.hasOwnProperty.call(this.yy,O)&&(I.yy[O]=this.yy[O]);_.setInput(r,I.yy),I.yy.lexer=_,I.yy.parser=this,typeof _.yylloc>"u"&&(_.yylloc={});var Y=_.yylloc;c.push(Y);var ft=_.options&&_.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pt(w){l.length=l.length-2*w,d.length=d.length-w,c.length=c.length-w}s(pt,"popStack");function tt(){var w;return w=y.pop()||_.lex()||D,typeof w!="number"&&(w instanceof Array&&(y=w,w=y.pop()),w=n.symbols_[w]||w),w}s(tt,"lex");for(var b,A,T,q,F={},N,M,et,z;;){if(A=l[l.length-1],this.defaultActions[A]?T=this.defaultActions[A]:((b===null||typeof b>"u")&&(b=tt()),T=v[A]&&v[A][b]),typeof T>"u"||!T.length||!T[0]){var H="";z=[];for(N in v[A])this.terminals_[N]&&N>yt&&z.push("'"+this.terminals_[N]+"'");_.showPosition?H="Parse error on line "+(C+1)+`:
|
|
2
2
|
`+_.showPosition()+`
|
|
3
3
|
Expecting `+z.join(", ")+", got '"+(this.terminals_[b]||b)+"'":H="Parse error on line "+(C+1)+": Unexpected "+(b==D?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(H,{text:_.match,token:this.terminals_[b]||b,line:_.yylineno,loc:Y,expected:z})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+A+", token: "+b);switch(T[0]){case 1:l.push(b),d.push(_.yytext),c.push(_.yylloc),l.push(T[1]),b=null,Q=_.yyleng,k=_.yytext,C=_.yylineno,Y=_.yylloc;break;case 2:if(M=this.productions_[T[1]][1],F.$=d[d.length-M],F._$={first_line:c[c.length-(M||1)].first_line,last_line:c[c.length-1].last_line,first_column:c[c.length-(M||1)].first_column,last_column:c[c.length-1].last_column},ft&&(F._$.range=[c[c.length-(M||1)].range[0],c[c.length-1].range[1]]),q=this.performAction.apply(F,[k,Q,C,I.yy,T[1],d,c].concat(dt)),typeof q<"u")return q;M&&(l=l.slice(0,-1*M*2),d=d.slice(0,-1*M),c=c.slice(0,-1*M)),l.push(this.productions_[T[1]][0]),d.push(F.$),c.push(F._$),et=v[l[l.length-2]][l[l.length-1]],l.push(et);break;case 3:return!0}}return!0},"parse")},m=(function(){var h={EOF:1,parseError:s(function(n,l){if(this.yy.parser)this.yy.parser.parseError(n,l);else throw new Error(n)},"parseError"),setInput:s(function(r,n){return this.yy=n||this.yy||{},this._input=r,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:s(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var n=r.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:s(function(r){var n=r.length,l=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var y=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),l.length-1&&(this.yylineno-=l.length-1);var d=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:l?(l.length===y.length?this.yylloc.first_column:0)+y[y.length-l.length].length-l[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:s(function(){return this._more=!0,this},"more"),reject:s(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:s(function(r){this.unput(this.match.slice(r))},"less"),pastInput:s(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:s(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:s(function(){var r=this.pastInput(),n=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as o,l as te,c as H,I as fe,af as ye,ag as be,ah as me,Y as _e,G as Y,i as j,t as ke,J as Ee,V as Se,W as ce,X as le}from"./DocContent-
|
|
1
|
+
import{_ as o,l as te,c as H,I as fe,af as ye,ag as be,ah as me,Y as _e,G as Y,i as j,t as ke,J as Ee,V as Se,W as ce,X as le}from"./DocContent-D2Pgvsaw.js";import{g as Ne}from"./chunk-FMBD7UC4-ytPdLd3c.js";var $=(function(){var e=o(function(O,i,n,r){for(n=n||{},r=O.length;r--;n[O[r]]=i);return n},"o"),h=[1,4],p=[1,13],s=[1,12],d=[1,15],_=[1,16],m=[1,20],l=[1,19],D=[6,7,8],I=[1,26],g=[1,24],w=[1,25],k=[6,7,11],F=[1,31],N=[6,7,11,24],V=[1,6,13,16,17,20,23],f=[1,35],A=[1,36],L=[1,6,7,11,13,16,17,20,23],M=[1,38],T={trace:o(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:o(function(i,n,r,a,u,t,U){var c=t.length-1;switch(u){case 6:case 7:return a;case 8:a.getLogger().trace("Stop NL ");break;case 9:a.getLogger().trace("Stop EOF ");break;case 11:a.getLogger().trace("Stop NL2 ");break;case 12:a.getLogger().trace("Stop EOF2 ");break;case 15:a.getLogger().info("Node: ",t[c-1].id),a.addNode(t[c-2].length,t[c-1].id,t[c-1].descr,t[c-1].type,t[c]);break;case 16:a.getLogger().info("Node: ",t[c].id),a.addNode(t[c-1].length,t[c].id,t[c].descr,t[c].type);break;case 17:a.getLogger().trace("Icon: ",t[c]),a.decorateNode({icon:t[c]});break;case 18:case 23:a.decorateNode({class:t[c]});break;case 19:a.getLogger().trace("SPACELIST");break;case 20:a.getLogger().trace("Node: ",t[c-1].id),a.addNode(0,t[c-1].id,t[c-1].descr,t[c-1].type,t[c]);break;case 21:a.getLogger().trace("Node: ",t[c].id),a.addNode(0,t[c].id,t[c].descr,t[c].type);break;case 22:a.decorateNode({icon:t[c]});break;case 27:a.getLogger().trace("node found ..",t[c-2]),this.$={id:t[c-1],descr:t[c-1],type:a.getType(t[c-2],t[c])};break;case 28:this.$={id:t[c],descr:t[c],type:0};break;case 29:a.getLogger().trace("node found ..",t[c-3]),this.$={id:t[c-3],descr:t[c-1],type:a.getType(t[c-2],t[c])};break;case 30:this.$=t[c-1]+t[c];break;case 31:this.$=t[c];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:h},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:h},{6:p,7:[1,10],9:9,12:11,13:s,14:14,16:d,17:_,18:17,19:18,20:m,23:l},e(D,[2,3]),{1:[2,2]},e(D,[2,4]),e(D,[2,5]),{1:[2,6],6:p,12:21,13:s,14:14,16:d,17:_,18:17,19:18,20:m,23:l},{6:p,9:22,12:11,13:s,14:14,16:d,17:_,18:17,19:18,20:m,23:l},{6:I,7:g,10:23,11:w},e(k,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:m,23:l}),e(k,[2,19]),e(k,[2,21],{15:30,24:F}),e(k,[2,22]),e(k,[2,23]),e(N,[2,25]),e(N,[2,26]),e(N,[2,28],{20:[1,32]}),{21:[1,33]},{6:I,7:g,10:34,11:w},{1:[2,7],6:p,12:21,13:s,14:14,16:d,17:_,18:17,19:18,20:m,23:l},e(V,[2,14],{7:f,11:A}),e(L,[2,8]),e(L,[2,9]),e(L,[2,10]),e(k,[2,16],{15:37,24:F}),e(k,[2,17]),e(k,[2,18]),e(k,[2,20],{24:M}),e(N,[2,31]),{21:[1,39]},{22:[1,40]},e(V,[2,13],{7:f,11:A}),e(L,[2,11]),e(L,[2,12]),e(k,[2,15],{24:M}),e(N,[2,30]),{22:[1,41]},e(N,[2,27]),e(N,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:o(function(i,n){if(n.recoverable)this.trace(i);else{var r=new Error(i);throw r.hash=n,r}},"parseError"),parse:o(function(i){var n=this,r=[0],a=[],u=[null],t=[],U=this.table,c="",W=0,se=0,ue=2,re=1,ge=t.slice.call(arguments,1),b=Object.create(this.lexer),R={yy:{}};for(var J in this.yy)Object.prototype.hasOwnProperty.call(this.yy,J)&&(R.yy[J]=this.yy[J]);b.setInput(i,R.yy),R.yy.lexer=b,R.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var q=b.yylloc;t.push(q);var de=b.options&&b.options.ranges;typeof R.yy.parseError=="function"?this.parseError=R.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function pe(S){r.length=r.length-2*S,u.length=u.length-S,t.length=t.length-S}o(pe,"popStack");function ae(){var S;return S=a.pop()||b.lex()||re,typeof S!="number"&&(S instanceof Array&&(a=S,S=a.pop()),S=n.symbols_[S]||S),S}o(ae,"lex");for(var E,P,x,Q,G={},z,C,oe,X;;){if(P=r[r.length-1],this.defaultActions[P]?x=this.defaultActions[P]:((E===null||typeof E>"u")&&(E=ae()),x=U[P]&&U[P][E]),typeof x>"u"||!x.length||!x[0]){var Z="";X=[];for(z in U[P])this.terminals_[z]&&z>ue&&X.push("'"+this.terminals_[z]+"'");b.showPosition?Z="Parse error on line "+(W+1)+`:
|
|
2
2
|
`+b.showPosition()+`
|
|
3
3
|
Expecting `+X.join(", ")+", got '"+(this.terminals_[E]||E)+"'":Z="Parse error on line "+(W+1)+": Unexpected "+(E==re?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(Z,{text:b.match,token:this.terminals_[E]||E,line:b.yylineno,loc:q,expected:X})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+P+", token: "+E);switch(x[0]){case 1:r.push(E),u.push(b.yytext),t.push(b.yylloc),r.push(x[1]),E=null,se=b.yyleng,c=b.yytext,W=b.yylineno,q=b.yylloc;break;case 2:if(C=this.productions_[x[1]][1],G.$=u[u.length-C],G._$={first_line:t[t.length-(C||1)].first_line,last_line:t[t.length-1].last_line,first_column:t[t.length-(C||1)].first_column,last_column:t[t.length-1].last_column},de&&(G._$.range=[t[t.length-(C||1)].range[0],t[t.length-1].range[1]]),Q=this.performAction.apply(G,[c,se,W,R.yy,x[1],u,t].concat(ge)),typeof Q<"u")return Q;C&&(r=r.slice(0,-1*C*2),u=u.slice(0,-1*C),t=t.slice(0,-1*C)),r.push(this.productions_[x[1]][0]),u.push(G.$),t.push(G._$),oe=U[r[r.length-2]][r[r.length-1]],r.push(oe);break;case 3:return!0}}return!0},"parse")},K=(function(){var O={EOF:1,parseError:o(function(n,r){if(this.yy.parser)this.yy.parser.parseError(n,r);else throw new Error(n)},"parseError"),setInput:o(function(i,n){return this.yy=n||this.yy||{},this._input=i,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:o(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var n=i.match(/(?:\r\n?|\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:o(function(i){var n=i.length,r=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var a=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),r.length-1&&(this.yylineno-=r.length-1);var u=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:r?(r.length===a.length?this.yylloc.first_column:0)+a[a.length-r.length].length-r[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[u[0],u[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},"unput"),more:o(function(){return this._more=!0,this},"more"),reject:o(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:o(function(i){this.unput(this.match.slice(i))},"less"),pastInput:o(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:o(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:o(function(){var i=this.pastInput(),n=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{by as j,bz as p,bA as w,bB as k,bC as q}from"./DocContent-D2Pgvsaw.js";import{i as z}from"./init-Gi6I4Gst.js";import{e as g,f as B,a as D,b as F}from"./defaultLocale-DX6XiGOO.js";function M(n,r){return n==null||r==null?NaN:n<r?-1:n>r?1:n>=r?0:NaN}function I(n,r){return n==null||r==null?NaN:r<n?-1:r>n?1:r>=n?0:NaN}function R(n){let r,t,e;n.length!==2?(r=M,t=(o,c)=>M(n(o),c),e=(o,c)=>n(o)-c):(r=n===M||n===I?n:P,t=n,e=n);function u(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<0?i=l+1:h=l}while(i<h)}return i}function f(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<=0?i=l+1:h=l}while(i<h)}return i}function a(o,c,i=0,h=o.length){const l=u(o,c,i,h-1);return l>i&&e(o[l-1],c)>-e(o[l],c)?l-1:l}return{left:u,center:a,right:f}}function P(){return 0}function V(n){return n===null?NaN:+n}const $=R(M),x=$.right;R(V).center;const C=Math.sqrt(50),O=Math.sqrt(10),T=Math.sqrt(2);function v(n,r,t){const e=(r-n)/Math.max(0,t),u=Math.floor(Math.log10(e)),f=e/Math.pow(10,u),a=f>=C?10:f>=O?5:f>=T?2:1;let o,c,i;return u<0?(i=Math.pow(10,-u)/a,o=Math.round(n*i),c=Math.round(r*i),o/i<n&&++o,c/i>r&&--c,i=-i):(i=Math.pow(10,u)*a,o=Math.round(n/i),c=Math.round(r/i),o*i<n&&++o,c*i>r&&--c),c<o&&.5<=t&&t<2?v(n,r,t*2):[o,c,i]}function E(n,r,t){if(r=+r,n=+n,t=+t,!(t>0))return[];if(n===r)return[n];const e=r<n,[u,f,a]=e?v(r,n,t):v(n,r,t);if(!(f>=u))return[];const o=f-u+1,c=new Array(o);if(e)if(a<0)for(let i=0;i<o;++i)c[i]=(f-i)/-a;else for(let i=0;i<o;++i)c[i]=(f-i)*a;else if(a<0)for(let i=0;i<o;++i)c[i]=(u+i)/-a;else for(let i=0;i<o;++i)c[i]=(u+i)*a;return c}function y(n,r,t){return r=+r,n=+n,t=+t,v(n,r,t)[2]}function G(n,r,t){r=+r,n=+n,t=+t;const e=r<n,u=e?y(r,n,t):y(n,r,t);return(e?-1:1)*(u<0?1/-u:u)}function H(n,r){r||(r=[]);var t=n?Math.min(r.length,n.length):0,e=r.slice(),u;return function(f){for(u=0;u<t;++u)e[u]=n[u]*(1-f)+r[u]*f;return e}}function J(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function K(n,r){var t=r?r.length:0,e=n?Math.min(t,n.length):0,u=new Array(e),f=new Array(t),a;for(a=0;a<e;++a)u[a]=d(n[a],r[a]);for(;a<t;++a)f[a]=r[a];return function(o){for(a=0;a<e;++a)f[a]=u[a](o);return f}}function L(n,r){var t=new Date;return n=+n,r=+r,function(e){return t.setTime(n*(1-e)+r*e),t}}function Q(n,r){var t={},e={},u;(n===null||typeof n!="object")&&(n={}),(r===null||typeof r!="object")&&(r={});for(u in r)u in n?t[u]=d(n[u],r[u]):e[u]=r[u];return function(f){for(u in t)e[u]=t[u](f);return e}}function d(n,r){var t=typeof r,e;return r==null||t==="boolean"?j(r):(t==="number"?p:t==="string"?(e=w(r))?(r=e,k):q:r instanceof w?k:r instanceof Date?L:J(r)?H:Array.isArray(r)?K:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?Q:p)(n,r)}function U(n,r){return n=+n,r=+r,function(t){return Math.round(n*(1-t)+r*t)}}function W(n){return Math.max(0,-g(Math.abs(n)))}function X(n,r){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(g(r)/3)))*3-g(Math.abs(n)))}function Y(n,r){return n=Math.abs(n),r=Math.abs(r)-n,Math.max(0,g(r)-g(n))+1}function Z(n){return function(){return n}}function _(n){return+n}var A=[0,1];function m(n){return n}function N(n,r){return(r-=n=+n)?function(t){return(t-n)/r}:Z(isNaN(r)?NaN:.5)}function b(n,r){var t;return n>r&&(t=n,n=r,r=t),function(e){return Math.max(n,Math.min(r,e))}}function nn(n,r,t){var e=n[0],u=n[1],f=r[0],a=r[1];return u<e?(e=N(u,e),f=t(a,f)):(e=N(e,u),f=t(f,a)),function(o){return f(e(o))}}function rn(n,r,t){var e=Math.min(n.length,r.length)-1,u=new Array(e),f=new Array(e),a=-1;for(n[e]<n[0]&&(n=n.slice().reverse(),r=r.slice().reverse());++a<e;)u[a]=N(n[a],n[a+1]),f[a]=t(r[a],r[a+1]);return function(o){var c=x(n,o,1,e)-1;return f[c](u[c](o))}}function en(n,r){return r.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function tn(){var n=A,r=A,t=d,e,u,f,a=m,o,c,i;function h(){var s=Math.min(n.length,r.length);return a!==m&&(a=b(n[0],n[s-1])),o=s>2?rn:nn,c=i=null,l}function l(s){return s==null||isNaN(s=+s)?f:(c||(c=o(n.map(e),r,t)))(e(a(s)))}return l.invert=function(s){return a(u((i||(i=o(r,n.map(e),p)))(s)))},l.domain=function(s){return arguments.length?(n=Array.from(s,_),h()):n.slice()},l.range=function(s){return arguments.length?(r=Array.from(s),h()):r.slice()},l.rangeRound=function(s){return r=Array.from(s),t=U,h()},l.clamp=function(s){return arguments.length?(a=s?!0:m,h()):a!==m},l.interpolate=function(s){return arguments.length?(t=s,h()):t},l.unknown=function(s){return arguments.length?(f=s,l):f},function(s,S){return e=s,u=S,h()}}function un(){return tn()(m,m)}function an(n,r,t,e){var u=G(n,r,t),f;switch(e=B(e??",f"),e.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(r));return e.precision==null&&!isNaN(f=X(u,a))&&(e.precision=f),D(e,a)}case"":case"e":case"g":case"p":case"r":{e.precision==null&&!isNaN(f=Y(u,Math.max(Math.abs(n),Math.abs(r))))&&(e.precision=f-(e.type==="e"));break}case"f":case"%":{e.precision==null&&!isNaN(f=W(u))&&(e.precision=f-(e.type==="%")*2);break}}return F(e)}function on(n){var r=n.domain;return n.ticks=function(t){var e=r();return E(e[0],e[e.length-1],t??10)},n.tickFormat=function(t,e){var u=r();return an(u[0],u[u.length-1],t??10,e)},n.nice=function(t){t==null&&(t=10);var e=r(),u=0,f=e.length-1,a=e[u],o=e[f],c,i,h=10;for(o<a&&(i=a,a=o,o=i,i=u,u=f,f=i);h-- >0;){if(i=y(a,o,t),i===c)return e[u]=a,e[f]=o,r(e);if(i>0)a=Math.floor(a/i)*i,o=Math.ceil(o/i)*i;else if(i<0)a=Math.ceil(a*i)/i,o=Math.floor(o*i)/i;else break;c=i}return n},n}function fn(){var n=un();return n.copy=function(){return en(n,fn())},z.apply(n,arguments),on(n)}export{en as a,R as b,un as c,fn as l,G as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.export-bundle-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .15s}.export-bundle-item:hover{background:#1a1f27}.export-bundle-info{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px}.export-bundle-name{font-size:14px;color:#e1e4e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-bundle-desc{font-size:12px;color:#6e7681;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-bundle-meta{font-size:12px;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}::highlight(dc-passage){background-color:#d299222e;text-decoration:underline;text-decoration-color:#d29922b3}::highlight(dc-focus){background-color:#d299226b}.rail-tabs{display:flex;align-items:flex-end;gap:16px;min-width:0}.rail-tab{display:inline-flex;align-items:center;gap:6px;padding:0 0 6px;border:none;border-bottom:2px solid transparent;background:none;color:#8b949e;font:inherit;font-size:12px;font-weight:500;cursor:pointer}.rail-tab:hover{color:#c9d1d9}.rail-tab.active{border-bottom-color:#f0f6fc;color:#f0f6fc;font-weight:600}.rail-tab-count{min-width:16px;height:15px;padding:0 4px;border-radius:8px;background:#1f6feb;color:#fff;font-size:9.5px;font-weight:700;line-height:15px;text-align:center}.cp{display:flex;flex-direction:column;gap:10px}.cp-toolbar{display:flex;align-items:center;gap:10px}.cp-filter{padding:0;border:none;background:none;color:#8b949e;font:inherit;font-size:12px;cursor:pointer}.cp-filter.active{color:#e1e4e8;font-weight:600}.cp-mark-all{margin-left:auto;padding:0;border:none;background:none;color:#58a6ff;font:inherit;font-size:11.5px;cursor:pointer}.cp-mark-all:hover{text-decoration:underline}.cp-usage{display:flex;align-items:baseline;gap:10px;color:#6e7681;font-size:11px}.cp-close-toggle{margin-left:auto;padding:0;border:none;background:none;color:#58a6ff;font:inherit;font-size:11px;white-space:nowrap;cursor:pointer}.cp-close-toggle:hover{text-decoration:underline}.cp-error{color:#f85149;font-size:12px}.cp-empty{color:#6e7681;font-size:12px;padding:6px 0}.cp-card{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid #30363d;border-radius:8px;background:#161b22;cursor:pointer}.cp-card:not(.cp-card--unread){background:#12161d;border-color:#21262d}.cp-card:not(.cp-card--unread) .cp-body{color:#8b949e}.cp-card--active{border-color:#d29922!important}.cp-card--detached{border-style:dashed;border-color:#484f58}.cp-head{display:flex;align-items:center;gap:6px;min-width:0}.cp-dot{width:7px;height:7px;flex-shrink:0;border-radius:50%;background:#58a6ff}.cp-state{flex-shrink:0}.cp-state--read{color:#3fb950}.cp-state--detached{color:#8b949e}.cp-author{color:#e6edf3;font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-time{color:#6e7681;font-size:11.5px;white-space:nowrap}.cp-actions{display:inline-flex;gap:2px;margin-left:auto}.cp-icon{display:inline-flex;padding:3px;border:none;border-radius:4px;background:none;color:#8b949e;cursor:pointer}.cp-icon:hover:not(:disabled){background:#262c36;color:#e1e4e8}.cp-icon--danger:hover:not(:disabled){color:#f85149}.cp-quote{color:#e3b341;font-size:11.5px;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cp-quote--lost,.cp-card--detached .cp-quote{color:#8b949e}.cp-note{color:#6e7681;font-size:11px}.cp-body{color:#c9d1d9;font-size:12.5px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.cp-reply{display:flex;flex-direction:column;gap:3px;padding-top:8px;border-top:1px solid #21262d}.cp-reply-head{color:#8b949e;font-size:11.5px;font-weight:600}.cp-reply--unread .cp-reply-head:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#58a6ff;vertical-align:middle}.cp-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;border-top:1px solid #21262d;color:#c9d1d9;font-size:12px;cursor:default}.cp-confirm span{flex-basis:100%}.cp-confirm-btn{height:26px;padding:0 10px;border:1px solid #30363d;border-radius:6px;background:#161b22;color:#c9d1d9;font:inherit;font-size:12px;cursor:pointer}.cp-confirm-btn--danger{border-color:#f8514980;color:#f85149}.cp-detached{display:flex;flex-direction:column;gap:8px;margin-top:8px}.cp-detached-text{color:#6e7681;font-size:11.5px;line-height:1.45}.doc-comments-btn{position:relative;display:inline-flex;align-items:center;gap:6px}.doc-comments-dot{position:absolute;top:3px;right:3px;width:7px;height:7px;border-radius:50%;background:#58a6ff}.btn-secondary.publish-btn--open{border-color:#58a6ff;background:#1f2937}.publish-btn-icon--published{color:#3fb950}.publish-btn-dot{width:6px;height:6px;border-radius:50%;background:#d29922}.publish-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:400px;padding:18px 20px 20px;border:1px solid #30363d;border-radius:10px;background:#161b22;box-shadow:0 8px 24px #00000080;display:flex;flex-direction:column;gap:12px;font-size:12.5px;color:#c9d1d9;white-space:normal}.publish-head{display:flex;align-items:center;gap:8px}.publish-online-dot{width:8px;height:8px;border-radius:50%;background:#3fb950;flex-shrink:0}.publish-title{flex:1;font-size:14px;font-weight:600;color:#f0f6fc}.publish-close{display:inline-flex;padding:2px;border:none;background:none;color:#6e7681;cursor:pointer}.publish-close:hover{color:#c9d1d9}.publish-text{margin:0;color:#8b949e;line-height:1.5}.publish-version{display:flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid #21262d;border-radius:6px;background:#0f1117;color:#c9d1d9;font-size:12px}.publish-version svg{color:#8b949e;flex-shrink:0}.publish-field{display:flex;flex-direction:column;gap:6px}.publish-field-label{font-size:12px;font-weight:500;color:#c9d1d9}.publish-field-optional{font-weight:400;color:#8b949e}.publish-input{width:100%;padding:8px 12px;border:1px solid #30363d;border-radius:6px;background:#0d1117;color:#e1e4e8;font:inherit;font-size:12.5px;outline:none}.publish-input--multiline{resize:vertical;min-height:64px;line-height:1.45}.publish-input:focus{border-color:#1f6feb}.publish-input::placeholder{color:#6e7681}.publish-access{display:flex;align-items:center;gap:8px;color:#8b949e;font-size:12px}.publish-access svg{color:#d29922;flex-shrink:0}.publish-actions{display:flex;justify-content:flex-end;gap:8px}.publish-actions--split{justify-content:space-between}.publish-actions button:disabled{opacity:.6;cursor:default}.publish-error{padding:8px 12px;border:1px solid #f85149;border-radius:6px;background:#3a1a1a;color:#f85149;font-size:12px;overflow-wrap:anywhere}.publish-link{display:flex;align-items:center;gap:8px;height:36px;padding:0 4px 0 10px;border:1px solid #30363d;border-radius:6px;background:#0d1117}.publish-link-icon{color:#8b949e;flex-shrink:0}.publish-link-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a5d6ff;font-family:Fira Code,Cascadia Code,Consolas,monospace;font-size:11.5px}.publish-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border:none;border-radius:6px;background:none;color:#8b949e;cursor:pointer}.publish-icon-btn:hover{background:#21262d;color:#f0f6fc}.publish-icon-btn--danger:hover,.publish-icon-btn--danger.active{background:#f851491f;color:#f85149}.publish-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;border:none;border-radius:5px;background:#1f6feb;color:#fff;cursor:pointer}.publish-copy-btn:hover{background:#388bfd}.publish-meta{color:#8b949e;font-size:12px}.publish-quote{padding-left:10px;border-left:2px solid #30363d;color:#c9d1d9;font-style:italic;overflow-wrap:anywhere}.publish-sep{height:1px;margin:2px -20px;background:#21262d}.publish-warning{display:flex;gap:8px;padding:9px 12px;border:1px solid rgba(210,153,34,.45);border-radius:6px;background:#d2992214;color:#e3b341;font-size:12px;line-height:1.45}.publish-warning svg{flex-shrink:0;margin-top:1px}.publish-uptodate{display:flex;align-items:center;gap:8px;color:#3fb950;font-size:12px}.btn-secondary.publish-danger-btn{color:#f85149;border-color:#f8514980}.btn-secondary.publish-danger-btn:hover{background:#f851491f;color:#ff7b72;border-color:#f85149}.publish-confirm{display:flex;flex-direction:column;gap:8px}.publish-confirm-title{font-size:13px;font-weight:600;color:#f0f6fc}.publish-confirm-text{color:#8b949e;font-size:12px;line-height:1.5}.publish-confirm-btn{height:30px;padding:0 14px;border:none;border-radius:6px;background:#da3633;color:#fff;font-size:12px;font-weight:600;cursor:pointer}.publish-confirm-btn:hover{background:#f85149}.pubs-view{flex:1;min-width:0;overflow-y:auto;padding:28px 32px 40px}.pubs-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px}.pubs-title{font-size:22px;font-weight:600;color:#f0f6fc}.pubs-subtitle{margin-top:6px;color:#8b949e;font-size:12.5px}.pubs-filter{display:flex;padding:3px;border:1px solid #30363d;border-radius:7px;background:#161b22;flex-shrink:0}.pubs-filter button{min-width:100px;height:26px;padding:0 12px;border:none;border-radius:5px;background:none;color:#8b949e;font-size:12.5px;font-weight:500;cursor:pointer}.pubs-filter button.active{background:#1f2937;color:#f0f6fc}.pubs-load-error{margin-bottom:16px}.pubs-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:64px 0;color:#8b949e}.pubs-empty svg{color:#484f58;margin-bottom:4px}.pubs-empty-hint{color:#6e7681;font-size:12px}.pubs-table{border:1px solid #21262d;border-radius:8px;background:#12161d;overflow:hidden}.pubs-row{display:grid;grid-template-columns:minmax(200px,1.3fr) minmax(160px,1.6fr) 170px 180px 220px;align-items:center;gap:16px;min-height:56px;padding:0 16px}.pubs-row--head{min-height:36px;border-bottom:1px solid #21262d;color:#6e7681;font-size:10.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.pubs-row-wrap+.pubs-row-wrap{border-top:1px solid #21262d}.pubs-row-wrap:hover,.pubs-row-wrap--active{background:#161b22}.pubs-doc{display:flex;align-items:center;gap:10px;min-width:0}.pubs-doc-icon{color:#8b949e;flex-shrink:0}.pubs-doc-text{display:flex;flex-direction:column;min-width:0}.pubs-doc-title{padding:0;border:none;background:none;color:#f0f6fc;font:inherit;font-size:13px;font-weight:500;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.pubs-doc-title:hover{color:#58a6ff;text-decoration:underline}.pubs-doc-title--missing{color:#8b949e;cursor:default}.pubs-doc-folder{color:#6e7681;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pubs-note{color:#c9d1d9;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pubs-note--empty{color:#484f58}.pubs-date{color:#8b949e;font-size:12.5px;white-space:nowrap}.pubs-badge{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;border:1px solid;font-size:11.5px;font-weight:500;white-space:nowrap}.pubs-badge--current{color:#3fb950;border-color:#3fb95066;background:#3fb9501f}.pubs-badge--modified{color:#e3b341;border-color:#d2992266;background:#d299221f}.pubs-badge--missing{color:#f85149;border-color:#f8514966;background:#f851491a}.pubs-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px}.pubs-update-btn{display:inline-flex;align-items:center;gap:6px;height:28px;margin-right:8px;padding:0 11px;border:1px solid #1f6feb;border-radius:6px;background:#1f6feb1f;color:#58a6ff;font-size:12.5px;font-weight:500;cursor:pointer;white-space:nowrap}.pubs-update-btn:hover,.pubs-update-btn.active{background:#1f6feb38}.pubs-row-panel{display:flex;align-items:flex-end;justify-content:flex-end;gap:16px;padding:4px 16px 16px}.pubs-row-panel .publish-confirm{width:420px;padding:14px 16px;border:1px solid #30363d;border-radius:8px;background:#0f1117}.pubs-row-panel-field{width:420px}.pubs-row-error{margin:0 16px 12px}.pubs-row-empty{padding:24px 16px;color:#8b949e;text-align:center}.logs-view{display:flex;flex:1;min-height:0;min-width:0;--logs-mono: "Fira Code", "Cascadia Code", Consolas, monospace}.logs-sidebar{width:300px;flex-shrink:0;display:flex;flex-direction:column;padding:0 12px;background:#0d1117;border-right:1px solid #21262d;overflow-y:auto}.logs-sidebar-label{padding:24px 8px 8px;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#6e7681}.logs-source{position:relative;display:flex;align-items:center;gap:10px;width:100%;min-height:56px;padding:10px 12px 10px 16px;border:1px solid transparent;border-radius:6px;background:transparent;color:#c9d1d9;text-align:left;cursor:pointer;font:inherit;transition:background .15s}.logs-source:hover{background:#161b22}.logs-source.active{background:#161b22;border-color:#30363d}.logs-source.active:before{content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:3px;border-radius:2px;background:#58a6ff}.logs-source-icon{flex-shrink:0;align-self:flex-start;margin-top:2px;color:#8b949e}.logs-source.active .logs-source-icon{color:#58a6ff}.logs-source-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.logs-source-title{font-size:13px}.logs-source.active .logs-source-title{font-weight:600;color:#f0f6fc}.logs-source-sub{font-size:11px;color:#8b949e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logs-source-badge{align-self:flex-start;flex-shrink:0;padding:2px 8px;border-radius:9px;background:#3d1418;color:#f85149;font-size:10px;font-weight:600}.logs-source .logs-live-dot{align-self:flex-start;margin-top:6px}.logs-sidebar-footer{margin-top:auto;padding:0 8px 20px;border-top:1px solid #21262d}.logs-sidebar-footer .logs-sidebar-label{padding-left:0;padding-top:16px}.logs-dir{font-family:var(--logs-mono);font-size:12px;color:#c9d1d9;overflow-wrap:anywhere}.logs-dir-sizes{margin-top:8px;font-size:11px;color:#8b949e}.logs-main{flex:1;min-width:0;display:flex;flex-direction:column}.logs-panel{flex:1;min-height:0;display:flex;flex-direction:column;gap:16px;padding:16px 24px 0}.logs-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.logs-page-heading{min-width:0}.logs-breadcrumb{font-size:12px;color:#6e7681}.logs-title{margin:6px 0;font-size:22px;font-weight:600;color:#f0f6fc}.logs-file-meta{font-family:var(--logs-mono);font-size:12px;color:#8b949e;white-space:pre;overflow:hidden;text-overflow:ellipsis}.logs-inline-error{margin-top:6px;font-size:12px;color:#f85149}.logs-actions{display:flex;gap:8px;flex-shrink:0;margin-top:18px}.logs-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid #30363d;border-radius:6px;background:#21262d;color:#c9d1d9;font:inherit;font-size:12px;text-decoration:none;cursor:pointer;transition:all .15s}.logs-btn:hover{border-color:#8b949e;color:#f0f6fc}.logs-btn--small{height:26px;font-size:11px;padding:0 10px;flex-shrink:0}.logs-follow-btn .logs-live-dot{background:#6e7681}.logs-follow-btn.active{background:#12261a;border-color:#238636;color:#3fb950;font-weight:600}.logs-follow-btn.active .logs-live-dot{background:#3fb950}.logs-live-dot{display:inline-block;width:8px;height:8px;flex-shrink:0;border-radius:50%;background:#3fb950}.logs-live-dot.paused{background:#6e7681}.logs-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.logs-stat{min-height:68px;padding:10px 14px;border:1px solid #30363d;border-radius:6px;background:#161b22}.logs-stat-label{display:flex;justify-content:space-between;font-size:11px;font-weight:600;text-transform:uppercase;color:#6e7681}.logs-stat-aside{font-weight:400;text-transform:none}.logs-stat-row{display:flex;align-items:baseline;gap:12px;margin-top:6px;min-width:0}.logs-stat-value{font-size:20px;font-weight:600;color:#f0f6fc;white-space:nowrap}.logs-stat-value.small{font-size:16px;margin-top:6px}.logs-stat-row .logs-stat-value.small{margin-top:0}.logs-stat-value.error{color:#f85149}.logs-stat-detail{font-size:12px;color:#8b949e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logs-gauge{height:4px;margin-top:8px;border-radius:2px;background:#21262d;overflow:hidden}.logs-gauge-fill{height:100%;border-radius:2px;background:#3fb950}.logs-gauge-fill.low{background:#f85149}.logs-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.logs-toolbar-spacer{flex:1}.logs-search{display:flex;align-items:center;gap:8px;width:320px;height:32px;padding:0 12px;border:1px solid #30363d;border-radius:6px;background:#0d1117;color:#6e7681}.logs-search:focus-within{border-color:#58a6ff}.logs-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:#e1e4e8;font:inherit;font-size:12px}.logs-search input::placeholder{color:#6e7681}.logs-segmented{display:flex;gap:2px;height:32px;padding:3px;border:1px solid #30363d;border-radius:6px;background:#0d1117}.logs-segment{display:inline-flex;align-items:center;gap:6px;padding:0 12px;border:none;border-radius:4px;background:transparent;font:inherit;font-size:12px;cursor:pointer}.logs-segment:hover{background:#161b22}.logs-segment.active{background:#21262d;font-weight:600}.logs-segment-count{font-variant-numeric:tabular-nums}.logs-tone--neutral{color:#8b949e}.logs-tone--neutral.active{color:#f0f6fc}.logs-tone--info{color:#58a6ff}.logs-tone--warn{color:#d29922}.logs-tone--error{color:#f85149}.logs-tone--git{color:#a371f7}.logs-select{position:relative;display:flex;align-items:center;gap:8px;height:32px;padding:0 12px;border:1px solid #30363d;border-radius:6px;background:#0d1117;color:#8b949e;font-size:12px}.logs-select:focus-within{border-color:#58a6ff}.logs-select-value{flex:1;min-width:0;color:#c9d1d9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logs-select select{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.logs-table{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid #30363d;border-radius:6px;background:#0d1117;overflow:hidden}.logs-server-grid{display:grid;grid-template-columns:116px 70px 110px minmax(0,1fr) 16px;align-items:center;column-gap:0}.logs-github-grid{display:grid;grid-template-columns:106px 60px minmax(0,1fr) 210px 150px 76px 84px 16px;align-items:center;column-gap:0}.logs-table-head{flex-shrink:0;height:32px;padding:0 14px;background:#161b22;border-bottom:1px solid #30363d;font-size:11px;font-weight:600;text-transform:uppercase;color:#6e7681}.logs-table-head .align-right{text-align:right}.logs-table-body{flex:1;min-height:0;overflow-y:auto}.logs-empty{padding:32px;text-align:center;font-size:13px;color:#6e7681}.logs-row{position:relative;border-bottom:1px solid #161b22}.logs-row.open{background:#161b22;border-bottom-color:#21262d}.logs-row.open:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#58a6ff}.logs-row--warn.open:before{background:#d29922}.logs-row--error.open:before{background:#f85149}.logs-row-line{width:100%;min-height:28px;padding:0 14px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.logs-row--tall .logs-row-line{min-height:44px}.logs-row:not(.open) .logs-row-line:hover{background:#11161d}.logs-row-chevron{color:#8b949e;justify-self:end}.logs-row-chevron.hover-only{visibility:hidden}.logs-row-line:hover .logs-row-chevron.hover-only{visibility:visible}.logs-cell-time,.logs-cell-scope,.logs-cell-message,.logs-cell-command,.logs-cell-repo,.logs-cell-trigger,.logs-cell-duration{font-family:var(--logs-mono);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logs-cell-time{color:#6e7681}.logs-row.open .logs-cell-time{color:#c9d1d9}.logs-cell-scope{color:#8b949e;padding-right:8px}.logs-cell-scope.github{color:#a371f7}.logs-cell-message{color:#c9d1d9;padding-right:8px}.logs-level-text--debug{color:#8b949e}.logs-level-text--warn{color:#d29922}.logs-level-text--error{color:#f85149}.logs-more{color:#6e7681}.logs-cell-what{display:flex;flex-direction:column;gap:2px;min-width:0;padding:5px 16px 5px 0}.logs-cell-action{font-size:13px;color:#c9d1d9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logs-row.open .logs-cell-action{color:#f0f6fc;font-weight:600}.logs-cell-command{font-size:11px;color:#8b949e}.logs-cell-repo{color:#8b949e;padding-right:8px}.logs-cell-repo.muted{color:#6e7681}.logs-cell-trigger{color:#c9d1d9;padding-right:8px}.logs-cell-duration{color:#8b949e;text-align:right}.logs-badge{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:18px;padding:0 6px;border-radius:4px;font-size:10px;font-weight:600;letter-spacing:.02em}.logs-badge--wide{min-width:60px}.logs-badge--neutral{background:#21262d;color:#8b949e}.logs-badge--info{background:#0d2036;color:#58a6ff}.logs-badge--warn{background:#3d2a00;color:#d29922}.logs-badge--error{background:#3d1418;color:#f85149}.logs-badge--ok{background:#12261a;color:#3fb950}.logs-badge--git{background:#2a1f3d;color:#a371f7}.logs-github-grid .logs-badge:not(.logs-badge--wide){min-width:40px}.logs-row-detail{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 14px;margin:0 30px 10px 0;border:1px solid #30363d;border-radius:6px;background:#0d1117}.logs-detail--server{margin-left:310px}.logs-detail--github{margin-left:180px}.logs-detail-main{min-width:0}.logs-detail-text{font-size:12px;color:#c9d1d9;margin-bottom:8px;white-space:pre-wrap;overflow-wrap:anywhere}.logs-detail-context{margin:0;font-family:var(--logs-mono);font-size:11px;line-height:17px;color:#8b949e;white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.logs-link{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;border:none;background:none;color:#58a6ff;font:inherit;font-size:12px;cursor:pointer}.logs-link:hover{text-decoration:underline}.logs-status{display:flex;align-items:center;gap:8px;flex-shrink:0;height:40px;font-size:11px;color:#8b949e}.logs-status-error{color:#f85149}.logs-status-order{margin-left:auto;color:#6e7681}@media(max-width:1280px){.logs-sidebar{width:240px}.logs-github-grid{grid-template-columns:106px 60px minmax(0,1fr) 170px 130px 76px 80px 16px}.logs-detail--server,.logs-detail--github{margin-left:120px}}.dashboard{display:flex;flex-direction:row;width:100%;max-width:1600px;margin:0 auto;height:100vh;background:#0f1117;color:#e1e4e8;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}@media(min-width:1601px){.dashboard{border-left:1px solid #21262d;border-right:1px solid #21262d}}.sync-button-wrapper{position:relative}@keyframes sync-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-result{position:absolute;bottom:0;left:calc(100% + 14px);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}.tag-badge{font-size:10px;padding:1px 6px;border-radius:8px;background:#21262d;color:#8b949e}.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}.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}.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{.nav-rail,.nav-panel-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-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}.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}}.source-icon{flex-shrink:0;color:#8b949e}.source-icon.active{color:#58a6ff}.source-icon.error{color:#f85149}.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}.dashboard-body{display:flex;flex:1;min-width:0;overflow:hidden}.nav-rail{position:relative;z-index:30;width:56px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 0;background:#0b0e13;border-right:1px solid #21262d;box-sizing:border-box}.rail-logo{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#1f6feb;color:#fff}.rail-sep{width:28px;height:1px;margin:4px 0;flex-shrink:0;background:#21262d}.rail-spacer{flex:1}.rail-btn{position:relative;width:40px;height:40px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:10px;background:transparent;color:#8b949e;cursor:pointer;transition:background .15s,color .15s}.rail-btn:hover:not(:disabled){background:#161b22;color:#c9d1d9}.rail-btn.active,.rail-btn.active:hover{background:#1f2937;color:#58a6ff}.rail-btn.active:before{content:"";position:absolute;left:-8px;top:10px;bottom:10px;width:3px;border-radius:2px;background:#58a6ff}.rail-btn.conflict{color:#f85149}.rail-btn:disabled{cursor:default}.rail-btn[data-tooltip]:hover:after{content:attr(data-tooltip);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);z-index:100;padding:6px 10px;border:1px solid #30363d;border-radius:6px;background:#21262d;box-shadow:0 8px 24px #00000080;color:#e1e4e8;font-size:12.5px;white-space:pre;pointer-events:none}.rail-badge{position:absolute;top:2px;right:0;min-width:10px;height:14px;padding:0 3px;border:2px solid #0b0e13;border-radius:9px;font-size:9px;font-weight:700;line-height:14px;text-align:center}.rail-badge--warn{background:#d29922;color:#0b0e13}.rail-badge--accent{background:#1f6feb;color:#fff}.rail-badge--danger{background:#f85149;color:#fff}.rail-dot{position:absolute;top:7px;right:7px;width:8px;height:8px;border:2px solid #0b0e13;border-radius:50%;background:#f85149}.project-avatar{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:8px;color:#fff;font-weight:700;letter-spacing:.02em}.project-selector{position:relative}.project-trigger{outline:none}.project-selector .project-trigger:focus-visible{box-shadow:0 0 0 2px #1f6feb}.project-selector--rail .project-trigger{display:inline-flex;padding:0;border:none;border-radius:8px;background:none;cursor:pointer}.project-selector--rail .project-trigger:hover,.project-selector--rail .project-trigger.open{box-shadow:0 0 0 2px #30363d}.project-selector--rail .project-trigger.error{box-shadow:0 0 0 2px #f85149}.project-selector--card{flex:1;min-width:0}.project-selector--card .project-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;border:none;border-radius:8px;background:#1a1f27;text-align:left;cursor:pointer;transition:background .15s}.project-selector--card .project-trigger .project-avatar{border-radius:7px}.project-selector--card .project-trigger:hover,.project-selector--card .project-trigger.open{background:#1f2530}.project-selector--card .project-trigger.error{box-shadow:inset 0 0 0 1px #f85149}.project-trigger-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.project-trigger-label{font-size:14px;font-weight:600;color:#f0f6fc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-trigger-caption{font-size:12px;color:#8b949e}.project-trigger-caption.error{color:#f85149}.project-trigger-caret{flex-shrink:0;color:#6e7681}.project-menu{position:absolute;z-index:60;width:380px;padding:6px;border:1px solid #30363d;border-radius:8px;background:#161b22;box-shadow:0 8px 24px #00000080}.project-selector--rail .project-menu{top:0;left:calc(100% + 12px)}.project-selector--card .project-menu{top:calc(100% + 6px);left:0}.project-menu-list{outline:none}.project-menu .project-menu-label{font-size:11px}.project-menu .project-option-name{font-size:14px}.project-option-source{display:flex;align-items:center;gap:5px;font-size:12px}.project-menu-footer{margin-top:4px;padding-top:4px;border-top:1px solid #21262d}.project-menu-action{width:100%;display:flex;align-items:center;gap:8px;padding:8px 10px;border:none;border-radius:6px;background:none;color:#c9d1d9;font-size:13px;cursor:pointer}.project-menu-action:hover{background:#21262d;color:#f0f6fc}.new-project-row{display:flex;gap:6px;padding:4px}.new-project-input{flex:1;min-width:0;height:28px;padding:0 8px;border:1px solid #30363d;border-radius:6px;background:#0d1117;color:#e1e4e8;font-size:13px;outline:none}.new-project-input:focus{border-color:#58a6ff}.new-project-btn{width:28px;height:28px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #30363d;border-radius:6px;background:#21262d;color:#c9d1d9;cursor:pointer}.new-project-btn:hover{color:#f0f6fc;border-color:#8b949e}.nav-panel-wrapper{position:relative;z-index:20;width:var(--panel-width);flex-shrink:0;transition:width .2s ease}.nav-panel-wrapper.collapsed{width:0;overflow:hidden}.nav-panel-wrapper.resizing{transition:none;-webkit-user-select:none;user-select:none}.nav-panel-resizer{position:absolute;top:0;right:-3px;bottom:0;width:6px;cursor:col-resize;z-index:5}.nav-panel-resizer:hover,.nav-panel-wrapper.resizing .nav-panel-resizer{background:#1f6feb}.nav-panel{width:var(--panel-width);height:100%;display:flex;flex-direction:column;min-height:0;background:#13171e;border-right:1px solid #21262d;box-sizing:border-box}.nav-panel-project{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 8px;border-bottom:1px solid #21262d;flex-shrink:0}.nav-panel-new{width:28px;height:28px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:7px;background:#1f6feb;color:#fff;cursor:pointer;transition:background .15s}.nav-panel-new:hover{background:#388bfd}.nav-panel-heading{display:flex;align-items:center;gap:8px;min-height:22px;padding:12px 12px 8px 16px;flex-shrink:0}.nav-panel-title{flex:1;font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#8b949e}.nav-panel-count{font-size:12px;color:#6e7681}.nav-panel-tool{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:5px;background:none;color:#6e7681;cursor:pointer}.nav-panel-tool:hover{background:#21262d;color:#f0f6fc}.nav-panel-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 8px 12px}.nav-empty{padding:24px 16px;text-align:center;color:#8b949e;font-size:13.5px}.tree-row{display:flex;align-items:center;gap:8px;height:32px;padding-right:8px;border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.tree-row:hover{background:#1a1f27}.tree-row-chevron{flex-shrink:0;margin-right:-4px;color:#6e7681}.tree-row-icon{flex-shrink:0;color:#6e7681}.tree-row--folder .tree-row-icon{color:#8b949e}.tree-row-label{flex:1;min-width:0;font-size:14px;color:#c9d1d9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-row--folder .tree-row-label{font-weight:500;color:#e1e4e8}.tree-row.active{background:#172338}.tree-row.active .tree-row-icon{color:#58a6ff}.tree-row.active .tree-row-label{font-weight:500;color:#f0f6fc}.tree-row-count{min-width:14px;text-align:right;font-size:12px;color:#6e7681}.tree-row-meta{flex-shrink:0;font-size:11.5px;color:#6e7681}.stale-dot{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:#d29922}.tree-comments{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;color:#58a6ff;font-size:11px;font-weight:700}.tree-children{position:relative}.tree-children:before{content:"";position:absolute;left:var(--guide-x);top:0;bottom:0;width:1px;background:#262c36}.search-box{display:flex;flex-direction:column;gap:8px;padding:0 4px 10px}.search-field{position:relative;display:flex;align-items:center}.search-input{width:100%;height:34px;padding:0 40px 0 32px;border:1px solid #30363d;border-radius:8px;background:#0d1117;color:#e1e4e8;font-size:13.5px;outline:none;box-sizing:border-box;transition:border-color .15s}.search-input:focus{border-color:#1f6feb}.search-input::placeholder{color:#6e7681}.search-field-icon{position:absolute;left:10px;color:#6e7681;pointer-events:none}.search-kbd,.search-clear-btn{position:absolute;right:7px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;background:#21262d;color:#8b949e;font-size:10px}.search-kbd{padding:0 6px;pointer-events:none}.search-clear-btn{width:18px;border:none;cursor:pointer}.search-clear-btn:hover{background:#30363d;color:#f0f6fc}.segmented{display:flex;padding:2px;border:1px solid #21262d;border-radius:7px;background:#0d1117}.segmented-option{flex:1;height:26px;border:none;border-radius:5px;background:none;color:#8b949e;font-size:12.5px;cursor:pointer}.segmented-option:hover{color:#c9d1d9}.segmented-option.active{background:#262c36;color:#f0f6fc;font-weight:500}.search-result{padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .15s}.search-result:hover{background:#1a1f27}.search-result.active{background:#172338}.search-result-head{display:flex;align-items:baseline;gap:8px}.search-result-title{flex:1;min-width:0;font-size:14px;font-weight:500;color:#e1e4e8}.search-result-score{flex-shrink:0;font-size:12px;color:#3fb950}.search-result-meta,.search-result-excerpt{margin-top:2px;font-size:12px;color:#8b949e}
|