@covro/covro 0.3.1-dev.1 → 0.3.1-dev.2
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 +10 -8
- package/README.zh-CN.md +10 -8
- package/dist/drizzle/0006_project_order.sql +8 -0
- package/dist/drizzle/meta/0006_snapshot.json +488 -0
- package/dist/drizzle/meta/_journal.json +7 -0
- package/dist/server/db/schema.js +1 -0
- package/dist/server/db/schema.js.map +2 -2
- package/dist/server/http.js +10 -0
- package/dist/server/http.js.map +2 -2
- package/dist/server/projects.js +48 -5
- package/dist/server/projects.js.map +2 -2
- package/dist/server/service.js +5 -0
- package/dist/server/service.js.map +2 -2
- package/dist/shared/updates.js.map +2 -2
- package/dist/shared/validation.js +2 -0
- package/dist/shared/validation.js.map +2 -2
- package/dist/update-worker.cjs +4 -3
- package/dist/updates/manager.js +7 -4
- package/dist/updates/manager.js.map +2 -2
- package/dist/updates/registry.js +21 -9
- package/dist/updates/registry.js.map +3 -3
- package/dist/updates/worker.js +3 -3
- package/dist/updates/worker.js.map +2 -2
- package/dist/web/assets/{abnfDiagram-WEYOIA3C-DLvlob5t.js → abnfDiagram-WEYOIA3C-BFmMm05x.js} +1 -1
- package/dist/web/assets/{arc-DgauwgFe.js → arc-lnrGH4K4.js} +1 -1
- package/dist/web/assets/{architecture-WOLXFQ4H-DvjLv0QN.js → architecture-WOLXFQ4H-CDbpw3av.js} +1 -1
- package/dist/web/assets/{architectureDiagram-ZHVYKT53-BAyZGlzu.js → architectureDiagram-ZHVYKT53-Br4uXjzV.js} +1 -1
- package/dist/web/assets/{blockDiagram-RJAE7QA3-BVfkmjlt.js → blockDiagram-RJAE7QA3-2cto1XrH.js} +1 -1
- package/dist/web/assets/{c4Diagram-XDPPPE54-rTsfyMoB.js → c4Diagram-XDPPPE54-pPOONSo8.js} +1 -1
- package/dist/web/assets/channel-D_YOL9S0.js +1 -0
- package/dist/web/assets/{chunk-2E7WHVMD-CQ_N_vLS.js → chunk-2E7WHVMD-CqOBPcBj.js} +1 -1
- package/dist/web/assets/{chunk-4EMNKR2T-wBy_gyo6.js → chunk-4EMNKR2T-BvMm1kcN.js} +1 -1
- package/dist/web/assets/{chunk-55XCU76K-DYiwIhmI.js → chunk-55XCU76K-CojzCeCA.js} +1 -1
- package/dist/web/assets/{chunk-7S6XSTFO-CRGtfVHg.js → chunk-7S6XSTFO-wa76hIsr.js} +1 -1
- package/dist/web/assets/{chunk-AQDTSKZB-1G2Za6bm.js → chunk-AQDTSKZB-tD5bFGjM.js} +1 -1
- package/dist/web/assets/{chunk-DSNLSHJZ-B1LLoYuG.js → chunk-DSNLSHJZ-ByVh88M0.js} +1 -1
- package/dist/web/assets/{chunk-HAGFOTED-78h1RpHh.js → chunk-HAGFOTED-BhOQL-iG.js} +1 -1
- package/dist/web/assets/{chunk-HNE4Q36P-DmR5B27Q.js → chunk-HNE4Q36P-BZiD7Dq0.js} +1 -1
- package/dist/web/assets/{chunk-NQOKRVIF-D7WSEPzg.js → chunk-NQOKRVIF-DhSSkcDm.js} +1 -1
- package/dist/web/assets/{chunk-UHW7PFBP-gl7a5V-l.js → chunk-UHW7PFBP-BONg0JLM.js} +1 -1
- package/dist/web/assets/{chunk-VQ5W62QI-KaBXxBre.js → chunk-VQ5W62QI-CehpDQpX.js} +1 -1
- package/dist/web/assets/{chunk-WQQL4CDK-DDczFoOr.js → chunk-WQQL4CDK-C4Cm0U7u.js} +1 -1
- package/dist/web/assets/{chunk-XXDRQBXY-3ug4Qhxg.js → chunk-XXDRQBXY-Ddcg44F2.js} +1 -1
- package/dist/web/assets/{chunk-YZO67HFG-BpWOuCXP.js → chunk-YZO67HFG-CJYc1t5Y.js} +1 -1
- package/dist/web/assets/{chunk-ZAUX2LTX-1ojPb1if.js → chunk-ZAUX2LTX-BeF7PiBe.js} +1 -1
- package/dist/web/assets/{chunk-ZCHMQSOR-D2kK2cPj.js → chunk-ZCHMQSOR-BzxdttZQ.js} +1 -1
- package/dist/web/assets/{classDiagram-v2-4MYWR3UA-B7eMvxAO.js → classDiagram-v2-4MYWR3UA-XeRozDII.js} +1 -1
- package/dist/web/assets/{cose-bilkent-JH36ORCC-BtB8mbt8.js → cose-bilkent-JH36ORCC-zvgm5h82.js} +1 -1
- package/dist/web/assets/{cynefin-EF2NZ3EQ-CIctqxlE.js → cynefin-EF2NZ3EQ-DffawypB.js} +1 -1
- package/dist/web/assets/{cynefinDiagram-WF24UDRP-qat2GD9P.js → cynefinDiagram-WF24UDRP-e2kk_Xg4.js} +1 -1
- package/dist/web/assets/{dagre-NK4GIZVX-OJamzzID.js → dagre-NK4GIZVX-DPTt7HIR.js} +1 -1
- package/dist/web/assets/{diagram-CBK3MWTC-C7cX2tqO.js → diagram-CBK3MWTC-CKQPukdf.js} +1 -1
- package/dist/web/assets/{diagram-I5XIIV2D-DsMfKVN7.js → diagram-I5XIIV2D-CBI_lUfl.js} +1 -1
- package/dist/web/assets/{diagram-ODIL2UCW-Cz66FxdJ.js → diagram-ODIL2UCW-DXuDuOob.js} +1 -1
- package/dist/web/assets/{diagram-PFBEJUXE-CwhPuwKj.js → diagram-PFBEJUXE-C9Y1lchY.js} +1 -1
- package/dist/web/assets/{diagram-RJA3I4VV-C52IGiFJ.js → diagram-RJA3I4VV-CbcN7pHo.js} +1 -1
- package/dist/web/assets/{diagram-TYUNFSNR-C2LZVLKY.js → diagram-TYUNFSNR-D_MmDJKc.js} +1 -1
- package/dist/web/assets/{dist-Bxu8YbZb.js → dist-C-d_G2FS.js} +1 -1
- package/dist/web/assets/{ebnfDiagram-V4P3TTPT-eQKKlMli.js → ebnfDiagram-V4P3TTPT-CIlDI7Ps.js} +1 -1
- package/dist/web/assets/{elk-QONTBCTQ-C5kIOZTA.js → elk-QONTBCTQ-BrywoKK7.js} +1 -1
- package/dist/web/assets/{erDiagram-KYQIGQAA-CMTowz5P.js → erDiagram-KYQIGQAA-CKg6BT7V.js} +1 -1
- package/dist/web/assets/{eventmodeling-K75KTNOO-C5v-UF8X.js → eventmodeling-K75KTNOO-BkwvMA16.js} +1 -1
- package/dist/web/assets/flowDiagram-IUGLLWBU-DTkRetsK.js +1 -0
- package/dist/web/assets/{ganttDiagram-R7GPNTJY-B0viiC-b.js → ganttDiagram-R7GPNTJY-DR_AlXXn.js} +1 -1
- package/dist/web/assets/{gitGraph-VSP46ZUC-tEjFmPhN.js → gitGraph-VSP46ZUC-Cv1cefI5.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-PDYL7XHY-CsOwt7jz.js → gitGraphDiagram-PDYL7XHY-D_prlvP9.js} +1 -1
- package/dist/web/assets/index-Br54jmas.js +147 -0
- package/dist/web/assets/index-Crq1cgK9.css +1 -0
- package/dist/web/assets/{info-OHQRW6UA-DnFGu4Ew.js → info-OHQRW6UA--i-b1e1W.js} +1 -1
- package/dist/web/assets/{infoDiagram-MVDRKAX5-B6WiNaDF.js → infoDiagram-MVDRKAX5-D5xGvRSb.js} +1 -1
- package/dist/web/assets/{ishikawaDiagram-HPEHV2GE-Dn70fI1r.js → ishikawaDiagram-HPEHV2GE-CdDzjaNo.js} +1 -1
- package/dist/web/assets/{journeyDiagram-BOSHW7O7-BUjYzV2f.js → journeyDiagram-BOSHW7O7-DYXkvOgG.js} +1 -1
- package/dist/web/assets/{kanban-definition-FNSA4HC5-BDMfWbtB.js → kanban-definition-FNSA4HC5-DMRrVeRI.js} +1 -1
- package/dist/web/assets/{line-DNSRZHBK.js → line-IKuSdaT6.js} +1 -1
- package/dist/web/assets/{linear-CrS49q6J.js → linear-DG-Bn7df.js} +1 -1
- package/dist/web/assets/{mermaid-parser.core-DXuyO8Px.js → mermaid-parser.core-Cr4hqI31.js} +3 -3
- package/dist/web/assets/{mermaid.core-DUTnbQkq.js → mermaid.core-Ch6ggfwZ.js} +4 -4
- package/dist/web/assets/{mindmap-definition-6OY57UG3-CqZTtItJ.js → mindmap-definition-6OY57UG3-BLIFHye9.js} +1 -1
- package/dist/web/assets/{packet-JDAUHWVQ-DXEZgY0a.js → packet-JDAUHWVQ-BaBw3Vck.js} +1 -1
- package/dist/web/assets/{pegDiagram-ECIUJNBX-D6CCPNem.js → pegDiagram-ECIUJNBX-BgFAs43s.js} +1 -1
- package/dist/web/assets/{pie-XZMESJXO-AXRFjZ4G.js → pie-XZMESJXO-Dr-clP68.js} +1 -1
- package/dist/web/assets/{pieDiagram-GNMPY74T-B9Ss8_5s.js → pieDiagram-GNMPY74T-bQ1SwzEf.js} +1 -1
- package/dist/web/assets/{quadrantDiagram-D57K4MC3-JrlylCtz.js → quadrantDiagram-D57K4MC3-suHq6vLw.js} +1 -1
- package/dist/web/assets/{radar-ABXABTNO-ChFm4hZg.js → radar-ABXABTNO-Cd4Nn-aB.js} +1 -1
- package/dist/web/assets/{railroad-I3PHUGI6-DaXXzqhZ.js → railroad-I3PHUGI6-BEUNjieA.js} +1 -1
- package/dist/web/assets/{railroad-abnf-LNEFI6M7-DGE67q11.js → railroad-abnf-LNEFI6M7-DosoD9le.js} +1 -1
- package/dist/web/assets/{railroad-ebnf-DWYD2UWJ-Cq9S3q72.js → railroad-ebnf-DWYD2UWJ-CNykm4Du.js} +1 -1
- package/dist/web/assets/{railroad-peg-JR7BVNR7-D2Gth3eY.js → railroad-peg-JR7BVNR7-C97ZuCXG.js} +1 -1
- package/dist/web/assets/{railroadDiagram-Y72NRBL7-BpkXX59H.js → railroadDiagram-Y72NRBL7-B1BnvTWP.js} +1 -1
- package/dist/web/assets/{requirementDiagram-EQYSW5RA-oNp3DMM4.js → requirementDiagram-EQYSW5RA-CrlURwLY.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-SY24JHO5-bHfheSKO.js → sankeyDiagram-SY24JHO5-CEYWGGec.js} +1 -1
- package/dist/web/assets/{sequenceDiagram-BLEHNHQU-CEM2XfNF.js → sequenceDiagram-BLEHNHQU-CbUEnXPs.js} +1 -1
- package/dist/web/assets/{src-KjMctvzy.js → src-Dy1r7Mij.js} +1 -1
- package/dist/web/assets/{stateDiagram-v2-A6IESKWZ-D_TaR_ix.js → stateDiagram-v2-A6IESKWZ-DkxgX1jY.js} +1 -1
- package/dist/web/assets/{swimlanes-B3ENRKFQ-BUYl2fsg.js → swimlanes-B3ENRKFQ-B7RmFqNN.js} +1 -1
- package/dist/web/assets/swimlanesDiagram-AYQRV4AK-C0XU1o_x.js +8 -0
- package/dist/web/assets/{timeline-definition-JXYKGLGB-CpKsGN6d.js → timeline-definition-JXYKGLGB-DdaRshUD.js} +1 -1
- package/dist/web/assets/{treeView-D4JQ5SDB-Dioaagqt.js → treeView-D4JQ5SDB-UjtdDBri.js} +1 -1
- package/dist/web/assets/{treemap-SAJKECNS-B8NLQ14o.js → treemap-SAJKECNS-CfFPhlAU.js} +1 -1
- package/dist/web/assets/{usecaseDiagram-WPOLBNNX-CfwdxcsG.js → usecaseDiagram-WPOLBNNX-DpibMf1h.js} +1 -1
- package/dist/web/assets/{vennDiagram-Q3Y3IDCW-DQoKGtXo.js → vennDiagram-Q3Y3IDCW-DB_R8qT1.js} +1 -1
- package/dist/web/assets/{wardley-7MLQ67FV-DQHLHmeZ.js → wardley-7MLQ67FV-Bhatoa5s.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-IVAIDKWA-DV-lq7zb.js → wardleyDiagram-IVAIDKWA-DBhy_JBR.js} +1 -1
- package/dist/web/assets/{xychartDiagram-4URNHDU4-wV4ueoGC.js → xychartDiagram-4URNHDU4-C2oV2jkE.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +4 -4
- package/dist/web/assets/channel-GGfPocHk.js +0 -1
- package/dist/web/assets/flowDiagram-IUGLLWBU-C-jE8afx.js +0 -1
- package/dist/web/assets/index-COSho7m2.css +0 -1
- package/dist/web/assets/index-D7GZPtTj.js +0 -147
- package/dist/web/assets/swimlanesDiagram-AYQRV4AK-DDLmyR4x.js +0 -8
package/dist/web/assets/{usecaseDiagram-WPOLBNNX-CfwdxcsG.js → usecaseDiagram-WPOLBNNX-DpibMf1h.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t,p as n}from"./src-
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t,p as n}from"./src-Dy1r7Mij.js";import{C as r,H as i,U as a,_ as o,a as s,b as c,f as l,q as u,v as d,y as f,z as p}from"./chunk-DSNLSHJZ-ByVh88M0.js";import{_ as m}from"./chunk-7S6XSTFO-wa76hIsr.js";import"./chunk-YZO67HFG-CJYc1t5Y.js";import{i as h}from"./chunk-AQDTSKZB-tD5bFGjM.js";import"./chunk-UHW7PFBP-BONg0JLM.js";import{a as g,i as _,o as ee,r as v}from"./chunk-J5ZVWO5B-oDCd-gWO.js";import"./chunk-HAGFOTED-BhOQL-iG.js";import"./chunk-ZAUX2LTX-BeF7PiBe.js";import"./chunk-WQQL4CDK-C4Cm0U7u.js";import{t as te}from"./chunk-XXDRQBXY-Ddcg44F2.js";import{t as ne}from"./chunk-VQ5W62QI-CehpDQpX.js";import"./chunk-HNE4Q36P-BZiD7Dq0.js";import{i as re,r as ie}from"./mermaid.core-Ch6ggfwZ.js";function ae(e){console&&console.error&&console.error(`Error: ${e}`)}function y(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function oe(e){let t=new Date().getTime(),n=e();return{time:new Date().getTime()-t,value:n}}function se(e){function t(){}t.prototype=e;let n=new t;function r(){return typeof n.bar}return r(),r(),e}function ce(e){return le(e)?e.LABEL:e.name}function le(e){return typeof e.LABEL==`string`&&e.LABEL!==``}var b=class{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){this._definition=e}accept(e){e.visit(this),this.definition.forEach(t=>{t.accept(e)})}},x=class extends b{constructor(e){super([]),this.idx=1,Object.assign(this,j(e))}set definition(e){}get definition(){return this.referencedRule===void 0?[]:this.referencedRule.definition}accept(e){e.visit(this)}},S=class extends b{constructor(e){super(e.definition),this.orgText=``,Object.assign(this,j(e))}},C=class extends b{constructor(e){super(e.definition),this.ignoreAmbiguities=!1,Object.assign(this,j(e))}},w=class extends b{constructor(e){super(e.definition),this.idx=1,Object.assign(this,j(e))}},T=class extends b{constructor(e){super(e.definition),this.idx=1,Object.assign(this,j(e))}},E=class extends b{constructor(e){super(e.definition),this.idx=1,Object.assign(this,j(e))}},D=class extends b{constructor(e){super(e.definition),this.idx=1,Object.assign(this,j(e))}},O=class extends b{constructor(e){super(e.definition),this.idx=1,Object.assign(this,j(e))}},k=class extends b{get definition(){return this._definition}set definition(e){this._definition=e}constructor(e){super(e.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,Object.assign(this,j(e))}},A=class{constructor(e){this.idx=1,Object.assign(this,j(e))}accept(e){e.visit(this)}};function ue(e){return e.map(de)}function de(e){function t(e){return e.map(de)}if(e instanceof x){let t={type:`NonTerminal`,name:e.nonTerminalName,idx:e.idx};return typeof e.label==`string`&&(t.label=e.label),t}if(e instanceof C)return{type:`Alternative`,definition:t(e.definition)};if(e instanceof w)return{type:`Option`,idx:e.idx,definition:t(e.definition)};if(e instanceof T)return{type:`RepetitionMandatory`,idx:e.idx,definition:t(e.definition)};if(e instanceof E)return{type:`RepetitionMandatoryWithSeparator`,idx:e.idx,separator:de(new A({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof O)return{type:`RepetitionWithSeparator`,idx:e.idx,separator:de(new A({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof D)return{type:`Repetition`,idx:e.idx,definition:t(e.definition)};if(e instanceof k)return{type:`Alternation`,idx:e.idx,definition:t(e.definition)};if(e instanceof A){let t={type:`Terminal`,name:e.terminalType.name,label:ce(e.terminalType),idx:e.idx};typeof e.label==`string`&&(t.terminalLabel=e.label);let n=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(t.pattern=n instanceof RegExp?n.source:n),t}if(e instanceof S)return{type:`Rule`,name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error(`non exhaustive match`)}function j(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}var fe=class{visit(e){let t=e;switch(t.constructor){case x:return this.visitNonTerminal(t);case C:return this.visitAlternative(t);case w:return this.visitOption(t);case T:return this.visitRepetitionMandatory(t);case E:return this.visitRepetitionMandatoryWithSeparator(t);case O:return this.visitRepetitionWithSeparator(t);case D:return this.visitRepetition(t);case k:return this.visitAlternation(t);case A:return this.visitTerminal(t);case S:return this.visitRule(t);default:throw Error(`non exhaustive match`)}}visitNonTerminal(e){}visitAlternative(e){}visitOption(e){}visitRepetition(e){}visitRepetitionMandatory(e){}visitRepetitionMandatoryWithSeparator(e){}visitRepetitionWithSeparator(e){}visitAlternation(e){}visitTerminal(e){}visitRule(e){}};function pe(e){return e instanceof C||e instanceof w||e instanceof D||e instanceof T||e instanceof E||e instanceof O||e instanceof A||e instanceof S}function me(e,t=[]){return e instanceof w||e instanceof D||e instanceof O?!0:e instanceof k?e.definition.some(e=>me(e,t)):e instanceof x&&t.includes(e)?!1:e instanceof b&&(e instanceof x&&t.push(e),e.definition.every(e=>me(e,t)))}function he(e){return e instanceof k}function M(e){if(e instanceof x)return`SUBRULE`;if(e instanceof w)return`OPTION`;if(e instanceof k)return`OR`;if(e instanceof T)return`AT_LEAST_ONE`;if(e instanceof E)return`AT_LEAST_ONE_SEP`;if(e instanceof O)return`MANY_SEP`;if(e instanceof D)return`MANY`;if(e instanceof A)return`CONSUME`;throw Error(`non exhaustive match`)}var ge=class{walk(e,t=[]){e.definition.forEach((n,r)=>{let i=e.definition.slice(r+1);if(n instanceof x)this.walkProdRef(n,i,t);else if(n instanceof A)this.walkTerminal(n,i,t);else if(n instanceof C)this.walkFlat(n,i,t);else if(n instanceof w)this.walkOption(n,i,t);else if(n instanceof T)this.walkAtLeastOne(n,i,t);else if(n instanceof E)this.walkAtLeastOneSep(n,i,t);else if(n instanceof O)this.walkManySep(n,i,t);else if(n instanceof D)this.walkMany(n,i,t);else if(n instanceof k)this.walkOr(n,i,t);else throw Error(`non exhaustive match`)})}walkTerminal(e,t,n){}walkProdRef(e,t,n){}walkFlat(e,t,n){let r=t.concat(n);this.walk(e,r)}walkOption(e,t,n){let r=t.concat(n);this.walk(e,r)}walkAtLeastOne(e,t,n){let r=[new w({definition:e.definition})].concat(t,n);this.walk(e,r)}walkAtLeastOneSep(e,t,n){let r=_e(e,t,n);this.walk(e,r)}walkMany(e,t,n){let r=[new w({definition:e.definition})].concat(t,n);this.walk(e,r)}walkManySep(e,t,n){let r=_e(e,t,n);this.walk(e,r)}walkOr(e,t,n){let r=t.concat(n);e.definition.forEach(e=>{let t=new C({definition:[e]});this.walk(t,r)})}};function _e(e,t,n){return[new w({definition:[new A({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function ve(e){if(e instanceof x)return ve(e.referencedRule);if(e instanceof A)return xe(e);if(pe(e))return ye(e);if(he(e))return be(e);throw Error(`non exhaustive match`)}function ye(e){let t=[],n=e.definition,r=0,i=n.length>r,a,o=!0;for(;i&&o;)a=n[r],o=me(a),t=t.concat(ve(a)),r+=1,i=n.length>r;return[...new Set(t)]}function be(e){let t=e.definition.map(e=>ve(e));return[...new Set(t.flat())]}function xe(e){return[e.terminalType]}var Se=`_~IN~_`,Ce=class extends ge{constructor(e){super(),this.topProd=e,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(e,t,n){}walkProdRef(e,t,n){let r=Te(e.referencedRule,e.idx)+this.topProd.name,i=ve(new C({definition:t.concat(n)}));this.follows[r]=i}};function we(e){let t={};return e.forEach(e=>{let n=new Ce(e).startWalking();Object.assign(t,n)}),t}function Te(e,t){return e.name+t+Se}function N(e){return e.charCodeAt(0)}function Ee(e,t){Array.isArray(e)?e.forEach(function(e){t.push(e)}):t.push(e)}function De(e,t){if(e[t]===!0)throw`duplicate flag `+t;e[t],e[t]=!0}function Oe(e){if(e===void 0)throw Error(`Internal Error - Should never get here!`);return!0}function ke(){throw Error(`Internal Error - Should never get here!`)}function Ae(e){return e.type===`Character`}var je=[];for(let e=N(`0`);e<=N(`9`);e++)je.push(e);var Me=[N(`_`)].concat(je);for(let e=N(`a`);e<=N(`z`);e++)Me.push(e);for(let e=N(`A`);e<=N(`Z`);e++)Me.push(e);var Ne=[N(` `),N(`\f`),N(`
|
|
2
2
|
`),N(`\r`),N(` `),N(`\v`),N(` `),N(`\xA0`),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(` `),N(`\u2028`),N(`\u2029`),N(` `),N(` `),N(` `),N(``)],Pe=/[0-9a-fA-F]/,Fe=/[0-9]/,Ie=/[1-9]/,Le=class{constructor(){this.idx=0,this.input=``,this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(e){this.idx=e.idx,this.input=e.input,this.groupIdx=e.groupIdx}pattern(e){this.idx=0,this.input=e,this.groupIdx=0,this.consumeChar(`/`);let t=this.disjunction();this.consumeChar(`/`);let n={type:`Flags`,loc:{begin:this.idx,end:e.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case`g`:De(n,`global`);break;case`i`:De(n,`ignoreCase`);break;case`m`:De(n,`multiLine`);break;case`u`:De(n,`unicode`);break;case`y`:De(n,`sticky`)}if(this.idx!==this.input.length)throw Error(`Redundant input: `+this.input.substring(this.idx));return{type:`Pattern`,flags:n,value:t,loc:this.loc(0)}}disjunction(){let e=[],t=this.idx;for(e.push(this.alternative());this.peekChar()===`|`;)this.consumeChar(`|`),e.push(this.alternative());return{type:`Disjunction`,value:e,loc:this.loc(t)}}alternative(){let e=[],t=this.idx;for(;this.isTerm();)e.push(this.term());return{type:`Alternative`,value:e,loc:this.loc(t)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let e=this.idx;switch(this.popChar()){case`^`:return{type:`StartAnchor`,loc:this.loc(e)};case`$`:return{type:`EndAnchor`,loc:this.loc(e)};case`\\`:switch(this.popChar()){case`b`:return{type:`WordBoundary`,loc:this.loc(e)};case`B`:return{type:`NonWordBoundary`,loc:this.loc(e)}}throw Error(`Invalid Assertion Escape`);case`(`:this.consumeChar(`?`);let t;switch(this.popChar()){case`=`:t=`Lookahead`;break;case`!`:t=`NegativeLookahead`;break;case`<`:switch(this.popChar()){case`=`:t=`Lookbehind`;break;case`!`:t=`NegativeLookbehind`}}Oe(t);let n=this.disjunction();return this.consumeChar(`)`),{type:t,value:n,loc:this.loc(e)}}return ke()}quantifier(e=!1){let t,n=this.idx;switch(this.popChar()){case`*`:t={atLeast:0,atMost:1/0};break;case`+`:t={atLeast:1,atMost:1/0};break;case`?`:t={atLeast:0,atMost:1};break;case`{`:let n=this.integerIncludingZero();switch(this.popChar()){case`}`:t={atLeast:n,atMost:n};break;case`,`:let e;this.isDigit()?(e=this.integerIncludingZero(),t={atLeast:n,atMost:e}):t={atLeast:n,atMost:1/0},this.consumeChar(`}`)}if(e===!0&&t===void 0)return;Oe(t)}if((e!==!0||t!==void 0)&&Oe(t))return this.peekChar(0)===`?`?(this.consumeChar(`?`),t.greedy=!1):t.greedy=!0,t.type=`Quantifier`,t.loc=this.loc(n),t}atom(){let e,t=this.idx;switch(this.peekChar()){case`.`:e=this.dotAll();break;case`\\`:e=this.atomEscape();break;case`[`:e=this.characterClass();break;case`(`:e=this.group()}return e===void 0&&this.isPatternCharacter()&&(e=this.patternCharacter()),Oe(e)?(e.loc=this.loc(t),this.isQuantifier()&&(e.quantifier=this.quantifier()),e):ke()}dotAll(){return this.consumeChar(`.`),{type:`Set`,complement:!0,value:[N(`
|
|
3
3
|
`),N(`\r`),N(`\u2028`),N(`\u2029`)]}}atomEscape(){switch(this.consumeChar(`\\`),this.peekChar()){case`1`:case`2`:case`3`:case`4`:case`5`:case`6`:case`7`:case`8`:case`9`:return this.decimalEscapeAtom();case`d`:case`D`:case`s`:case`S`:case`w`:case`W`:return this.characterClassEscape();case`f`:case`n`:case`r`:case`t`:case`v`:return this.controlEscapeAtom();case`c`:return this.controlLetterEscapeAtom();case`0`:return this.nulCharacterAtom();case`x`:return this.hexEscapeSequenceAtom();case`u`:return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:`GroupBackReference`,value:this.positiveInteger()}}characterClassEscape(){let e,t=!1;switch(this.popChar()){case`d`:e=je;break;case`D`:e=je,t=!0;break;case`s`:e=Ne;break;case`S`:e=Ne,t=!0;break;case`w`:e=Me;break;case`W`:e=Me,t=!0}return Oe(e)?{type:`Set`,value:e,complement:t}:ke()}controlEscapeAtom(){let e;switch(this.popChar()){case`f`:e=N(`\f`);break;case`n`:e=N(`
|
|
4
4
|
`);break;case`r`:e=N(`\r`);break;case`t`:e=N(` `);break;case`v`:e=N(`\v`)}return Oe(e)?{type:`Character`,value:e}:ke()}controlLetterEscapeAtom(){this.consumeChar(`c`);let e=this.popChar();if(/[a-zA-Z]/.test(e)===!1)throw Error(`Invalid `);return{type:`Character`,value:e.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar(`0`),{type:`Character`,value:N(`\0`)}}hexEscapeSequenceAtom(){return this.consumeChar(`x`),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar(`u`),this.parseHexDigits(4)}identityEscapeAtom(){return{type:`Character`,value:N(this.popChar())}}classPatternCharacterAtom(){switch(this.peekChar()){case`
|
package/dist/web/assets/{vennDiagram-Q3Y3IDCW-DQoKGtXo.js → vennDiagram-Q3Y3IDCW-DB_R8qT1.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{p as t}from"./src-KjMctvzy.js";import{C as n,H as r,U as i,_ as a,a as o,c as s,f as c,it as l,nt as u,q as d,rt as f,tt as p,v as m,y as h}from"./chunk-DSNLSHJZ-B1LLoYuG.js";import{i as g}from"./chunk-7S6XSTFO-CRGtfVHg.js";import{t as _}from"./rough.esm-Dy-Kn_BL.js";import{a as v}from"./mermaid.core-DUTnbQkq.js";var y=(e,t)=>f(e,`a`,-t),b=1e-10;function x(e,t){let n=C(e),r=n.filter(t=>S(t,e)),i=0,a=0,o=[];if(r.length>1){let t=O(r);for(let e=0;e<r.length;++e){let n=r[e];n.angle=Math.atan2(n.x-t.x,n.y-t.y)}r.sort((e,t)=>t.angle-e.angle);let n=r[r.length-1];for(let t=0;t<r.length;++t){let s=r[t];a+=(n.x+s.x)*(s.y-n.y);let c={x:(s.x+n.x)/2,y:(s.y+n.y)/2},l=null;for(let t=0;t<s.parentIndex.length;++t)if(n.parentIndex.includes(s.parentIndex[t])){let r=e[s.parentIndex[t]],i=Math.atan2(s.x-r.x,s.y-r.y),a=Math.atan2(n.x-r.x,n.y-r.y),o=a-i;o<0&&(o+=2*Math.PI);let u=a-o/2,d=T(c,{x:r.x+r.radius*Math.sin(u),y:r.y+r.radius*Math.cos(u)});d>r.radius*2&&(d=r.radius*2),(l==null||l.width>d)&&(l={circle:r,width:d,p1:s,p2:n,large:d>r.radius,sweep:!0})}l!=null&&(o.push(l),i+=w(l.circle.radius,l.width),n=s)}}else{let t=e[0];for(let n=1;n<e.length;++n)e[n].radius<t.radius&&(t=e[n]);let n=!1;for(let r=0;r<e.length;++r)if(T(e[r],t)>Math.abs(t.radius-e[r].radius)){n=!0;break}n?i=a=0:(i=t.radius*t.radius*Math.PI,o.push({circle:t,p1:{x:t.x,y:t.y+t.radius},p2:{x:t.x-b,y:t.y+t.radius},width:t.radius*2,large:!0,sweep:!0}))}return a/=2,t&&(t.area=i+a,t.arcArea=i,t.polygonArea=a,t.arcs=o,t.innerPoints=r,t.intersectionPoints=n),i+a}function S(e,t){return t.every(t=>T(e,t)<t.radius+b)}function C(e){let t=[];for(let n=0;n<e.length;++n)for(let r=n+1;r<e.length;++r){let i=D(e[n],e[r]);for(let e of i)e.parentIndex=[n,r],t.push(e)}return t}function w(e,t){return e*e*Math.acos(1-t/e)-(e-t)*Math.sqrt(t*(2*e-t))}function T(e,t){return Math.sqrt((e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y))}function E(e,t,n){if(n>=e+t)return 0;if(n<=Math.abs(e-t))return Math.PI*Math.min(e,t)*Math.min(e,t);let r=e-(n*n-t*t+e*e)/(2*n),i=t-(n*n-e*e+t*t)/(2*n);return w(e,r)+w(t,i)}function D(e,t){let n=T(e,t),r=e.radius,i=t.radius;if(n>=r+i||n<=Math.abs(r-i))return[];let a=(r*r-i*i+n*n)/(2*n),o=Math.sqrt(r*r-a*a),s=e.x+a*(t.x-e.x)/n,c=e.y+a*(t.y-e.y)/n,l=-(t.y-e.y)*(o/n),u=-(t.x-e.x)*(o/n);return[{x:s+l,y:c-u},{x:s-l,y:c+u}]}function O(e){let t={x:0,y:0};for(let n of e)t.x+=n.x,t.y+=n.y;return t.x/=e.length,t.y/=e.length,t}function k(e,t,n,r){r||={};let i=r.maxIterations||100,a=r.tolerance||1e-10,o=e(t),s=e(n),c=n-t;if(o*s>0)throw`Initial bisect points must have opposite signs`;if(o===0)return t;if(s===0)return n;for(let n=0;n<i;++n){c/=2;let n=t+c,r=e(n);if(r*o>=0&&(t=n),Math.abs(c)<a||r===0)return n}return t+c}function A(e){let t=Array(e);for(let n=0;n<e;++n)t[n]=0;return t}function j(e,t){return A(e).map(()=>A(t))}function M(e,t){let n=0;for(let r=0;r<e.length;++r)n+=e[r]*t[r];return n}function N(e){return Math.sqrt(M(e,e))}function P(e,t,n){for(let r=0;r<t.length;++r)e[r]=t[r]*n}function F(e,t,n,r,i){for(let a=0;a<e.length;++a)e[a]=t*n[a]+r*i[a]}function I(e,t,n){n||={};let r=n.maxIterations||t.length*200,i=n.nonZeroDelta||1.05,a=n.zeroDelta||.001,o=n.minErrorDelta||1e-6,s=n.minErrorDelta||1e-5,c=n.rho===void 0?1:n.rho,l=n.chi===void 0?2:n.chi,u=n.psi===void 0?-.5:n.psi,d=n.sigma===void 0?.5:n.sigma,f,p=t.length,m=Array(p+1);m[0]=t,m[0].fx=e(t),m[0].id=0;for(let n=0;n<p;++n){let r=t.slice();r[n]=r[n]?r[n]*i:a,m[n+1]=r,m[n+1].fx=e(r),m[n+1].id=n+1}function h(e){for(let t=0;t<e.length;t++)m[p][t]=e[t];m[p].fx=e.fx}let g=(e,t)=>e.fx-t.fx,_=t.slice(),v=t.slice(),y=t.slice(),b=t.slice();for(let t=0;t<r;++t){if(m.sort(g),n.history){let e=m.map(e=>{let t=e.slice();return t.fx=e.fx,t.id=e.id,t});e.sort((e,t)=>e.id-t.id),n.history.push({x:m[0].slice(),fx:m[0].fx,simplex:e})}f=0;for(let e=0;e<p;++e)f=Math.max(f,Math.abs(m[0][e]-m[1][e]));if(Math.abs(m[0].fx-m[p].fx)<o&&f<s)break;for(let e=0;e<p;++e){_[e]=0;for(let t=0;t<p;++t)_[e]+=m[t][e];_[e]/=p}let t=m[p];if(F(v,1+c,_,-c,t),v.fx=e(v),v.fx<m[0].fx)F(b,1+l,_,-l,t),b.fx=e(b),b.fx<v.fx?h(b):h(v);else if(v.fx>=m[p-1].fx){let n=!1;if(v.fx>t.fx?(F(y,1+u,_,-u,t),y.fx=e(y),y.fx<t.fx?h(y):n=!0):(F(y,1-u*c,_,u*c,t),y.fx=e(y),y.fx<v.fx?h(y):n=!0),n){if(d>=1)break;for(let t=1;t<m.length;++t)F(m[t],1-d,m[0],d,m[t]),m[t].fx=e(m[t])}}else h(v)}return m.sort(g),{fx:m[0].fx,x:m[0]}}function L(e,t,n,r,i,a,o){let s=n.fx,c=M(n.fxprime,t),l=s,u=s,d=c,f=0;i||=1,a||=1e-6,o||=.1;function p(u,f,p){for(let m=0;m<16;++m)if(i=(u+f)/2,F(r.x,1,n.x,i,t),l=r.fx=e(r.x,r.fxprime),d=M(r.fxprime,t),l>s+a*i*c||l>=p)f=i;else{if(Math.abs(d)<=-o*c)return i;d*(f-u)>=0&&(f=u),u=i,p=l}return 0}for(let m=0;m<10;++m){if(F(r.x,1,n.x,i,t),l=r.fx=e(r.x,r.fxprime),d=M(r.fxprime,t),l>s+a*i*c||m&&l>=u)return p(f,i,u);if(Math.abs(d)<=-o*c)return i;if(d>=0)return p(i,f,l);u=l,f=i,i*=2}return i}function R(e,t,n){let r={x:t.slice(),fx:0,fxprime:t.slice()},i={x:t.slice(),fx:0,fxprime:t.slice()},a=t.slice(),o,s,c=1,l;n||={},l=n.maxIterations||t.length*20,r.fx=e(r.x,r.fxprime),o=r.fxprime.slice(),P(o,r.fxprime,-1);for(let t=0;t<l;++t){if(c=L(e,o,r,i,c),n.history&&n.history.push({x:r.x.slice(),fx:r.fx,fxprime:r.fxprime.slice(),alpha:c}),!c)P(o,r.fxprime,-1);else{F(a,1,i.fxprime,-1,r.fxprime);let e=M(r.fxprime,r.fxprime),t=Math.max(0,M(a,i.fxprime)/e);F(o,t,o,-1,i.fxprime),s=r,r=i,i=s}if(N(r.fxprime)<=1e-5)break}return n.history&&n.history.push({x:r.x.slice(),fx:r.fx,fxprime:r.fxprime.slice(),alpha:c}),r}function ee(e,t={}){t.maxIterations=t.maxIterations||500;let n=t.initialLayout||ae,r=t.lossFunction||B,i=ne(e,t),a=n(i,t),o=Object.keys(a),s=[];for(let e of o)s.push(a[e].x),s.push(a[e].y);let c=I(e=>{let t={};for(let n=0;n<o.length;++n){let r=o[n];t[r]={x:e[2*n],y:e[2*n+1],radius:a[r].radius}}return r(t,i)},s,t).x;for(let e=0;e<o.length;++e){let t=o[e];a[t].x=c[2*e],a[t].y=c[2*e+1]}return a}var te=1e-10;function z(e,t,n){return Math.min(e,t)*Math.min(e,t)*Math.PI<=n+te?Math.abs(e-t):k(r=>E(e,t,r)-n,0,e+t)}function ne(e,t={}){let n=t.distinct,r=e.map(e=>Object.assign({},e));function i(e){return e.join(`;`)}if(n){let e=new Map;for(let t of r)for(let n=0;n<t.sets.length;n++){let r=String(t.sets[n]);e.set(r,t.size+(e.get(r)||0));for(let i=n+1;i<t.sets.length;i++){let n=String(t.sets[i]),a=`${r};${n}`,o=`${n};${r}`;e.set(a,t.size+(e.get(a)||0)),e.set(o,t.size+(e.get(o)||0))}}for(let t of r)t.sets.length<3&&(t.size=e.get(i(t.sets)))}let a=[],o=new Set;for(let e of r)if(e.sets.length===1)a.push(e.sets[0]);else if(e.sets.length===2){let t=e.sets[0],n=e.sets[1];o.add(i(e.sets)),o.add(i([n,t]))}a.sort((e,t)=>e===t?0:e<t?-1:1);for(let e=0;e<a.length;++e){let t=a[e];for(let n=e+1;n<a.length;++n){let e=a[n];o.has(i([t,e]))||r.push({sets:[t,e],size:0})}}return r}function re(e,t,n){let r=j(t.length,t.length),i=j(t.length,t.length);return e.filter(e=>e.sets.length===2).forEach(e=>{let a=n[e.sets[0]],o=n[e.sets[1]],s=z(Math.sqrt(t[a].size/Math.PI),Math.sqrt(t[o].size/Math.PI),e.size);r[a][o]=r[o][a]=s;let c=0;e.size+1e-10>=Math.min(t[a].size,t[o].size)?c=1:e.size<=1e-10&&(c=-1),i[a][o]=i[o][a]=c}),{distances:r,constraints:i}}function ie(e,t,n,r){for(let e=0;e<t.length;++e)t[e]=0;let i=0;for(let a=0;a<n.length;++a){let o=e[2*a],s=e[2*a+1];for(let c=a+1;c<n.length;++c){let l=e[2*c],u=e[2*c+1],d=n[a][c],f=r[a][c],p=(l-o)*(l-o)+(u-s)*(u-s),m=Math.sqrt(p),h=p-d*d;f>0&&m<=d||f<0&&m>=d||(i+=2*h*h,t[2*a]+=4*h*(o-l),t[2*a+1]+=4*h*(s-u),t[2*c]+=4*h*(l-o),t[2*c+1]+=4*h*(u-s))}}return i}function ae(e,t={}){let n=se(e,t),r=t.lossFunction||B;if(e.length>=8){let i=oe(e,t),a=r(i,e),o=r(n,e);a+1e-8<o&&(n=i)}return n}function oe(e,t={}){let n=t.restarts||10,r=[],i={};for(let t of e)t.sets.length===1&&(i[t.sets[0]]=r.length,r.push(t));let{distances:a,constraints:o}=re(e,r,i),s=N(a.map(N))/a.length;a=a.map(e=>e.map(e=>e/s));let c=(e,t)=>ie(e,t,a,o),l=null;for(let e=0;e<n;++e){let e=R(c,A(a.length*2).map(Math.random),t);(!l||e.fx<l.fx)&&(l=e)}let u=l.x,d={};for(let e=0;e<r.length;++e){let t=r[e];d[t.sets[0]]={x:u[2*e]*s,y:u[2*e+1]*s,radius:Math.sqrt(t.size/Math.PI)}}if(t.history)for(let e of t.history)P(e.x,s);return d}function se(e,t){let n=t&&t.lossFunction?t.lossFunction:B,r={},i={};for(let t of e)if(t.sets.length===1){let e=t.sets[0];r[e]={x:1e10,y:1e10,rowid:r.length,size:t.size,radius:Math.sqrt(t.size/Math.PI)},i[e]=[]}e=e.filter(e=>e.sets.length===2);for(let t of e){let e=t.weight==null?1:t.weight,n=t.sets[0],a=t.sets[1];t.size+te>=Math.min(r[n].size,r[a].size)&&(e=0),i[n].push({set:a,size:t.size,weight:e}),i[a].push({set:n,size:t.size,weight:e})}let a=[];Object.keys(i).forEach(e=>{let t=0;for(let n=0;n<i[e].length;++n)t+=i[e][n].size*i[e][n].weight;a.push({set:e,size:t})});function o(e,t){return t.size-e.size}a.sort(o);let s={};function c(e){return e.set in s}function l(e,t){r[t].x=e.x,r[t].y=e.y,s[t]=!0}l({x:0,y:0},a[0].set);for(let t=1;t<a.length;++t){let s=a[t].set,d=i[s].filter(c),f=r[s];if(d.sort(o),d.length===0)throw`ERROR: missing pairwise overlap information`;let p=[];for(var u=0;u<d.length;++u){let e=r[d[u].set],t=z(f.radius,e.radius,d[u].size);p.push({x:e.x+t,y:e.y}),p.push({x:e.x-t,y:e.y}),p.push({y:e.y+t,x:e.x}),p.push({y:e.y-t,x:e.x});for(let n=u+1;n<d.length;++n){let i=r[d[n].set],a=z(f.radius,i.radius,d[n].size),o=D({x:e.x,y:e.y,radius:t},{x:i.x,y:i.y,radius:a});p.push(...o)}}let m=1e50,h=p[0];for(let t of p){r[s].x=t.x,r[s].y=t.y;let i=n(r,e);i<m&&(m=i,h=t)}l(h,s)}return r}function B(e,t){let n=0;for(let r of t){if(r.sets.length===1)continue;let t;if(r.sets.length===2){let n=e[r.sets[0]],i=e[r.sets[1]];t=E(n.radius,i.radius,T(n,i))}else t=x(r.sets.map(t=>e[t]));let i=r.weight==null?1:r.weight;n+=i*(t-r.size)*(t-r.size)}return n}function ce(e,t){let n=0;for(let r of t){if(r.sets.length===1)continue;let t;if(r.sets.length===2){let n=e[r.sets[0]],i=e[r.sets[1]];t=E(n.radius,i.radius,T(n,i))}else t=x(r.sets.map(t=>e[t]));let i=r.weight==null?1:r.weight,a=Math.log((t+1)/(r.size+1));n+=i*a*a}return n}function le(e,t,n){if(n==null?e.sort((e,t)=>t.radius-e.radius):e.sort(n),e.length>0){let t=e[0].x,n=e[0].y;for(let r of e)r.x-=t,r.y-=n}if(e.length===2&&T(e[0],e[1])<Math.abs(e[1].radius-e[0].radius)&&(e[1].x=e[0].x+e[0].radius-e[1].radius-1e-10,e[1].y=e[0].y),e.length>1){let n=Math.atan2(e[1].x,e[1].y)-t,r=Math.cos(n),i=Math.sin(n);for(let t of e){let e=t.x,n=t.y;t.x=r*e-i*n,t.y=i*e+r*n}}if(e.length>2){let n=Math.atan2(e[2].x,e[2].y)-t;for(;n<0;)n+=2*Math.PI;for(;n>2*Math.PI;)n-=2*Math.PI;if(n>Math.PI){let t=e[1].y/(1e-10+e[1].x);for(let n of e){var r=(n.x+t*n.y)/(1+t*t);n.x=2*r-n.x,n.y=2*r*t-n.y}}}}function ue(e){e.forEach(e=>{e.parent=e});function t(e){return e.parent!==e&&(e.parent=t(e.parent)),e.parent}function n(e,n){let r=t(e);r.parent=t(n)}for(let t=0;t<e.length;++t)for(let r=t+1;r<e.length;++r){let i=e[t].radius+e[r].radius;T(e[t],e[r])+1e-10<i&&n(e[r],e[t])}let r=new Map;for(let n=0;n<e.length;++n){let i=t(e[n]).parent.setid;r.has(i)||r.set(i,[]),r.get(i).push(e[n])}return e.forEach(e=>{delete e.parent}),Array.from(r.values())}function V(e){let t=t=>({max:e.reduce((e,n)=>Math.max(e,n[t]+n.radius),-1/0),min:e.reduce((e,n)=>Math.min(e,n[t]-n.radius),1/0)});return{xRange:t(`x`),yRange:t(`y`)}}function de(e,t,n){t??=Math.PI/2;let r=me(e).map(e=>Object.assign({},e)),i=ue(r);for(let e of i){le(e,t,n);let r=V(e);e.size=(r.xRange.max-r.xRange.min)*(r.yRange.max-r.yRange.min),e.bounds=r}i.sort((e,t)=>t.size-e.size),r=i[0];let a=r.bounds,o=(a.xRange.max-a.xRange.min)/50;function s(e,t,n){if(!e)return;let i=e.bounds,s,c;if(t)s=a.xRange.max-i.xRange.min+o;else{s=a.xRange.max-i.xRange.max;let e=(i.xRange.max-i.xRange.min)/2-(a.xRange.max-a.xRange.min)/2;e<0&&(s+=e)}if(n)c=a.yRange.max-i.yRange.min+o;else{c=a.yRange.max-i.yRange.max;let e=(i.yRange.max-i.yRange.min)/2-(a.yRange.max-a.yRange.min)/2;e<0&&(c+=e)}for(let t of e)t.x+=s,t.y+=c,r.push(t)}let c=1;for(;c<i.length;)s(i[c],!0,!1),s(i[c+1],!1,!0),s(i[c+2],!0,!0),c+=3,a=V(r);return pe(r)}function fe(e,t,n,r,i){let a=me(e);t-=2*r,n-=2*r;let{xRange:o,yRange:s}=V(a);if(o.max===o.min||s.max===s.min)return console.log(`not scaling solution: zero size detected`),e;let c,l;if(i){let e=Math.sqrt(i/Math.PI)*2;c=t/e,l=n/e}else c=t/(o.max-o.min),l=n/(s.max-s.min);let u=Math.min(l,c),d=(t-(o.max-o.min)*u)/2,f=(n-(s.max-s.min)*u)/2;return pe(a.map(e=>({radius:u*e.radius,x:r+d+(e.x-o.min)*u,y:r+f+(e.y-s.min)*u,setid:e.setid})))}function pe(e){let t={};for(let n of e)t[n.setid]=n;return t}function me(e){return Object.keys(e).map(t=>Object.assign(e[t],{setid:t}))}function he(e={}){let t=!1,n=600,r=350,i=15,a=1e3,o=Math.PI/2,s=!0,c=null,l=!0,u=!0,d=null,f=null,p=!1,m=null,h=e&&e.symmetricalTextCentre?e.symmetricalTextCentre:!1,g={},_=e&&e.colourScheme?e.colourScheme:e&&e.colorScheme?e.colorScheme:[`#1f77b4`,`#ff7f0e`,`#2ca02c`,`#d62728`,`#9467bd`,`#8c564b`,`#e377c2`,`#7f7f7f`,`#bcbd22`,`#17becf`],v=0,y=function(e){if(e in g)return g[e];var t=g[e]=_[v];return v+=1,v>=_.length&&(v=0),t},b=ee,x=B;function S(g){let _=g.datum(),v=new Set;_.forEach(e=>{e.size==0&&e.sets.length==1&&v.add(e.sets[0])}),_=_.filter(e=>!e.sets.some(e=>v.has(e)));let S={},C={};if(_.length>0){let e=b(_,{lossFunction:x,distinct:p});s&&(e=de(e,o,f)),S=fe(e,n,r,i,c),C=ve(S,_,h)}let w={};_.forEach(e=>{e.label&&(w[e.sets]=e.label)});function T(e){if(e.sets in w)return w[e.sets];if(e.sets.length==1)return``+e.sets[0]}g.selectAll(`svg`).data([S]).enter().append(`svg`);let E=g.select(`svg`);t?E.attr(`viewBox`,`0 0 ${n} ${r}`):E.attr(`width`,n).attr(`height`,r);let D={},O=!1;E.selectAll(`.venn-area path`).each(function(e){let t=this.getAttribute(`d`);e.sets.length==1&&t&&!p&&(O=!0,D[e.sets[0]]=be(t))});function k(e){return t=>Ce(e.sets.map(e=>{let i=D[e],a=S[e];return i||={x:n/2,y:r/2,radius:1},a||={x:n/2,y:r/2,radius:1},{x:i.x*(1-t)+a.x*t,y:i.y*(1-t)+a.y*t,radius:i.radius*(1-t)+a.radius*t}}),m)}let A=E.selectAll(`.venn-area`).data(_,e=>e.sets),j=A.enter().append(`g`).attr(`class`,e=>`venn-area venn-${e.sets.length==1?`circle`:`intersection`}${e.colour||e.color?` venn-coloured`:``}`).attr(`data-venn-sets`,e=>e.sets.join(`_`)),M=j.append(`path`),N=j.append(`text`).attr(`class`,`label`).text(e=>T(e)).attr(`text-anchor`,`middle`).attr(`dy`,`.35em`).attr(`x`,n/2).attr(`y`,r/2);u&&(M.style(`fill-opacity`,`0`).filter(e=>e.sets.length==1).style(`fill`,e=>e.colour?e.colour:e.color?e.color:y(e.sets)).style(`fill-opacity`,`.25`),N.style(`fill`,t=>t.colour||t.color?`#FFF`:e.textFill?e.textFill:t.sets.length==1?y(t.sets):`#444`));function P(e){return typeof e.transition==`function`?e.transition(`venn`).duration(a):e}let F=g;O&&typeof F.transition==`function`?(F=P(g),F.selectAll(`path`).attrTween(`d`,k)):F.selectAll(`path`).attr(`d`,e=>Ce(e.sets.map(e=>S[e])),m);let I=F.selectAll(`text`).filter(e=>e.sets in C).text(e=>T(e)).attr(`x`,e=>Math.floor(C[e.sets].x)).attr(`y`,e=>Math.floor(C[e.sets].y));l&&(O?`on`in I?I.on(`end`,H(S,T)):I.each(`end`,H(S,T)):I.each(H(S,T)));let L=P(A.exit()).remove();typeof A.transition==`function`&&L.selectAll(`path`).attrTween(`d`,k);let R=L.selectAll(`text`).attr(`x`,n/2).attr(`y`,r/2);return d!==null&&(N.style(`font-size`,`0px`),I.style(`font-size`,d),R.style(`font-size`,`0px`)),{circles:S,textCentres:C,nodes:A,enter:j,update:F,exit:L}}return S.wrap=function(e){return arguments.length?(l=e,S):l},S.useViewBox=function(){return t=!0,S},S.width=function(e){return arguments.length?(n=e,S):n},S.height=function(e){return arguments.length?(r=e,S):r},S.padding=function(e){return arguments.length?(i=e,S):i},S.distinct=function(e){return arguments.length?(p=e,S):p},S.colours=function(e){return arguments.length?(y=e,S):y},S.colors=function(e){return arguments.length?(y=e,S):y},S.fontSize=function(e){return arguments.length?(d=e,S):d},S.round=function(e){return arguments.length?(m=e,S):m},S.duration=function(e){return arguments.length?(a=e,S):a},S.layoutFunction=function(e){return arguments.length?(b=e,S):b},S.normalize=function(e){return arguments.length?(s=e,S):s},S.scaleToFit=function(e){return arguments.length?(c=e,S):c},S.styled=function(e){return arguments.length?(u=e,S):u},S.orientation=function(e){return arguments.length?(o=e,S):o},S.orientationOrder=function(e){return arguments.length?(f=e,S):f},S.lossFunction=function(e){return arguments.length?(x=e==="default"?B:e===`logRatio`?ce:e,S):x},S}function H(e,t){return function(n){let r=this,i=e[n.sets[0]].radius||50,a=t(n)||``,o=a.split(/\s+/).reverse(),s=(a.length+o.length)/3,c=o.pop(),l=[c],u=0,d=1.1;r.textContent=null;let f=[];function p(e){let t=r.ownerDocument.createElementNS(r.namespaceURI,`tspan`);return t.textContent=e,f.push(t),r.append(t),t}let m=p(c);for(;c=o.pop(),c;){l.push(c);let e=l.join(` `);m.textContent=e,e.length>s&&m.getComputedTextLength()>i&&(l.pop(),m.textContent=l.join(` `),l=[c],m=p(c),u++)}let h=.35-u*d/2,g=r.getAttribute(`x`),_=r.getAttribute(`y`);f.forEach((e,t)=>{e.setAttribute(`x`,g),e.setAttribute(`y`,_),e.setAttribute(`dy`,`${h+t*d}em`)})}}function U(e,t,n){let r=t[0].radius-T(t[0],e);for(let n=1;n<t.length;++n){let i=t[n].radius-T(t[n],e);i<=r&&(r=i)}for(let t=0;t<n.length;++t){let i=T(n[t],e)-n[t].radius;i<=r&&(r=i)}return r}function ge(e,t,n){let r=[];for(let t of e)r.push({x:t.x,y:t.y}),r.push({x:t.x+t.radius/2,y:t.y}),r.push({x:t.x-t.radius/2,y:t.y}),r.push({x:t.x,y:t.y+t.radius/2}),r.push({x:t.x,y:t.y-t.radius/2});let i=r[0],a=U(r[0],e,t);for(let n=1;n<r.length;++n){let o=U(r[n],e,t);o>=a&&(i=r[n],a=o)}let o=I(n=>-1*U({x:n[0],y:n[1]},e,t),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,s={x:n?0:o[0],y:o[1]},c=!0;for(let t of e)if(T(s,t)>t.radius){c=!1;break}for(let e of t)if(T(s,e)<e.radius){c=!1;break}if(c)return s;if(e.length==1)return{x:e[0].x,y:e[0].y};let l={};return x(e,l),l.arcs.length===0?{x:0,y:-1e3,disjoint:!0}:l.arcs.length==1?{x:l.arcs[0].circle.x,y:l.arcs[0].circle.y}:t.length?ge(e,[]):O(l.arcs.map(e=>e.p1))}function _e(e){let t={},n=Object.keys(e);for(let e of n)t[e]=[];for(let r=0;r<n.length;r++){let i=n[r],a=e[i];for(let o=r+1;o<n.length;++o){let r=n[o],s=e[r],c=T(a,s);c+s.radius<=a.radius+1e-10?t[r].push(i):c+a.radius<=s.radius+1e-10&&t[i].push(r)}}return t}function ve(e,t,n){let r={},i=_e(e);for(let a=0;a<t.length;++a){let o=t[a].sets,s={},c={};for(let e=0;e<o.length;++e){s[o[e]]=!0;let t=i[o[e]];for(let e=0;e<t.length;++e)c[t[e]]=!0}let l=[],u=[];for(let t in e)t in s?l.push(e[t]):t in c||u.push(e[t]);let d=ge(l,u,n);r[o]=d,d.disjoint&&t[a].size>0&&console.log(`WARNING: area `+o+` not represented on screen`)}return r}function ye(e,t,n){let r=[];return r.push(`
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{p as t}from"./src-Dy1r7Mij.js";import{C as n,H as r,U as i,_ as a,a as o,c as s,f as c,it as l,nt as u,q as d,rt as f,tt as p,v as m,y as h}from"./chunk-DSNLSHJZ-ByVh88M0.js";import{i as g}from"./chunk-7S6XSTFO-wa76hIsr.js";import{t as _}from"./rough.esm-Dy-Kn_BL.js";import{a as v}from"./mermaid.core-Ch6ggfwZ.js";var y=(e,t)=>f(e,`a`,-t),b=1e-10;function x(e,t){let n=C(e),r=n.filter(t=>S(t,e)),i=0,a=0,o=[];if(r.length>1){let t=O(r);for(let e=0;e<r.length;++e){let n=r[e];n.angle=Math.atan2(n.x-t.x,n.y-t.y)}r.sort((e,t)=>t.angle-e.angle);let n=r[r.length-1];for(let t=0;t<r.length;++t){let s=r[t];a+=(n.x+s.x)*(s.y-n.y);let c={x:(s.x+n.x)/2,y:(s.y+n.y)/2},l=null;for(let t=0;t<s.parentIndex.length;++t)if(n.parentIndex.includes(s.parentIndex[t])){let r=e[s.parentIndex[t]],i=Math.atan2(s.x-r.x,s.y-r.y),a=Math.atan2(n.x-r.x,n.y-r.y),o=a-i;o<0&&(o+=2*Math.PI);let u=a-o/2,d=T(c,{x:r.x+r.radius*Math.sin(u),y:r.y+r.radius*Math.cos(u)});d>r.radius*2&&(d=r.radius*2),(l==null||l.width>d)&&(l={circle:r,width:d,p1:s,p2:n,large:d>r.radius,sweep:!0})}l!=null&&(o.push(l),i+=w(l.circle.radius,l.width),n=s)}}else{let t=e[0];for(let n=1;n<e.length;++n)e[n].radius<t.radius&&(t=e[n]);let n=!1;for(let r=0;r<e.length;++r)if(T(e[r],t)>Math.abs(t.radius-e[r].radius)){n=!0;break}n?i=a=0:(i=t.radius*t.radius*Math.PI,o.push({circle:t,p1:{x:t.x,y:t.y+t.radius},p2:{x:t.x-b,y:t.y+t.radius},width:t.radius*2,large:!0,sweep:!0}))}return a/=2,t&&(t.area=i+a,t.arcArea=i,t.polygonArea=a,t.arcs=o,t.innerPoints=r,t.intersectionPoints=n),i+a}function S(e,t){return t.every(t=>T(e,t)<t.radius+b)}function C(e){let t=[];for(let n=0;n<e.length;++n)for(let r=n+1;r<e.length;++r){let i=D(e[n],e[r]);for(let e of i)e.parentIndex=[n,r],t.push(e)}return t}function w(e,t){return e*e*Math.acos(1-t/e)-(e-t)*Math.sqrt(t*(2*e-t))}function T(e,t){return Math.sqrt((e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y))}function E(e,t,n){if(n>=e+t)return 0;if(n<=Math.abs(e-t))return Math.PI*Math.min(e,t)*Math.min(e,t);let r=e-(n*n-t*t+e*e)/(2*n),i=t-(n*n-e*e+t*t)/(2*n);return w(e,r)+w(t,i)}function D(e,t){let n=T(e,t),r=e.radius,i=t.radius;if(n>=r+i||n<=Math.abs(r-i))return[];let a=(r*r-i*i+n*n)/(2*n),o=Math.sqrt(r*r-a*a),s=e.x+a*(t.x-e.x)/n,c=e.y+a*(t.y-e.y)/n,l=-(t.y-e.y)*(o/n),u=-(t.x-e.x)*(o/n);return[{x:s+l,y:c-u},{x:s-l,y:c+u}]}function O(e){let t={x:0,y:0};for(let n of e)t.x+=n.x,t.y+=n.y;return t.x/=e.length,t.y/=e.length,t}function k(e,t,n,r){r||={};let i=r.maxIterations||100,a=r.tolerance||1e-10,o=e(t),s=e(n),c=n-t;if(o*s>0)throw`Initial bisect points must have opposite signs`;if(o===0)return t;if(s===0)return n;for(let n=0;n<i;++n){c/=2;let n=t+c,r=e(n);if(r*o>=0&&(t=n),Math.abs(c)<a||r===0)return n}return t+c}function A(e){let t=Array(e);for(let n=0;n<e;++n)t[n]=0;return t}function j(e,t){return A(e).map(()=>A(t))}function M(e,t){let n=0;for(let r=0;r<e.length;++r)n+=e[r]*t[r];return n}function N(e){return Math.sqrt(M(e,e))}function P(e,t,n){for(let r=0;r<t.length;++r)e[r]=t[r]*n}function F(e,t,n,r,i){for(let a=0;a<e.length;++a)e[a]=t*n[a]+r*i[a]}function I(e,t,n){n||={};let r=n.maxIterations||t.length*200,i=n.nonZeroDelta||1.05,a=n.zeroDelta||.001,o=n.minErrorDelta||1e-6,s=n.minErrorDelta||1e-5,c=n.rho===void 0?1:n.rho,l=n.chi===void 0?2:n.chi,u=n.psi===void 0?-.5:n.psi,d=n.sigma===void 0?.5:n.sigma,f,p=t.length,m=Array(p+1);m[0]=t,m[0].fx=e(t),m[0].id=0;for(let n=0;n<p;++n){let r=t.slice();r[n]=r[n]?r[n]*i:a,m[n+1]=r,m[n+1].fx=e(r),m[n+1].id=n+1}function h(e){for(let t=0;t<e.length;t++)m[p][t]=e[t];m[p].fx=e.fx}let g=(e,t)=>e.fx-t.fx,_=t.slice(),v=t.slice(),y=t.slice(),b=t.slice();for(let t=0;t<r;++t){if(m.sort(g),n.history){let e=m.map(e=>{let t=e.slice();return t.fx=e.fx,t.id=e.id,t});e.sort((e,t)=>e.id-t.id),n.history.push({x:m[0].slice(),fx:m[0].fx,simplex:e})}f=0;for(let e=0;e<p;++e)f=Math.max(f,Math.abs(m[0][e]-m[1][e]));if(Math.abs(m[0].fx-m[p].fx)<o&&f<s)break;for(let e=0;e<p;++e){_[e]=0;for(let t=0;t<p;++t)_[e]+=m[t][e];_[e]/=p}let t=m[p];if(F(v,1+c,_,-c,t),v.fx=e(v),v.fx<m[0].fx)F(b,1+l,_,-l,t),b.fx=e(b),b.fx<v.fx?h(b):h(v);else if(v.fx>=m[p-1].fx){let n=!1;if(v.fx>t.fx?(F(y,1+u,_,-u,t),y.fx=e(y),y.fx<t.fx?h(y):n=!0):(F(y,1-u*c,_,u*c,t),y.fx=e(y),y.fx<v.fx?h(y):n=!0),n){if(d>=1)break;for(let t=1;t<m.length;++t)F(m[t],1-d,m[0],d,m[t]),m[t].fx=e(m[t])}}else h(v)}return m.sort(g),{fx:m[0].fx,x:m[0]}}function L(e,t,n,r,i,a,o){let s=n.fx,c=M(n.fxprime,t),l=s,u=s,d=c,f=0;i||=1,a||=1e-6,o||=.1;function p(u,f,p){for(let m=0;m<16;++m)if(i=(u+f)/2,F(r.x,1,n.x,i,t),l=r.fx=e(r.x,r.fxprime),d=M(r.fxprime,t),l>s+a*i*c||l>=p)f=i;else{if(Math.abs(d)<=-o*c)return i;d*(f-u)>=0&&(f=u),u=i,p=l}return 0}for(let m=0;m<10;++m){if(F(r.x,1,n.x,i,t),l=r.fx=e(r.x,r.fxprime),d=M(r.fxprime,t),l>s+a*i*c||m&&l>=u)return p(f,i,u);if(Math.abs(d)<=-o*c)return i;if(d>=0)return p(i,f,l);u=l,f=i,i*=2}return i}function R(e,t,n){let r={x:t.slice(),fx:0,fxprime:t.slice()},i={x:t.slice(),fx:0,fxprime:t.slice()},a=t.slice(),o,s,c=1,l;n||={},l=n.maxIterations||t.length*20,r.fx=e(r.x,r.fxprime),o=r.fxprime.slice(),P(o,r.fxprime,-1);for(let t=0;t<l;++t){if(c=L(e,o,r,i,c),n.history&&n.history.push({x:r.x.slice(),fx:r.fx,fxprime:r.fxprime.slice(),alpha:c}),!c)P(o,r.fxprime,-1);else{F(a,1,i.fxprime,-1,r.fxprime);let e=M(r.fxprime,r.fxprime),t=Math.max(0,M(a,i.fxprime)/e);F(o,t,o,-1,i.fxprime),s=r,r=i,i=s}if(N(r.fxprime)<=1e-5)break}return n.history&&n.history.push({x:r.x.slice(),fx:r.fx,fxprime:r.fxprime.slice(),alpha:c}),r}function ee(e,t={}){t.maxIterations=t.maxIterations||500;let n=t.initialLayout||ae,r=t.lossFunction||B,i=ne(e,t),a=n(i,t),o=Object.keys(a),s=[];for(let e of o)s.push(a[e].x),s.push(a[e].y);let c=I(e=>{let t={};for(let n=0;n<o.length;++n){let r=o[n];t[r]={x:e[2*n],y:e[2*n+1],radius:a[r].radius}}return r(t,i)},s,t).x;for(let e=0;e<o.length;++e){let t=o[e];a[t].x=c[2*e],a[t].y=c[2*e+1]}return a}var te=1e-10;function z(e,t,n){return Math.min(e,t)*Math.min(e,t)*Math.PI<=n+te?Math.abs(e-t):k(r=>E(e,t,r)-n,0,e+t)}function ne(e,t={}){let n=t.distinct,r=e.map(e=>Object.assign({},e));function i(e){return e.join(`;`)}if(n){let e=new Map;for(let t of r)for(let n=0;n<t.sets.length;n++){let r=String(t.sets[n]);e.set(r,t.size+(e.get(r)||0));for(let i=n+1;i<t.sets.length;i++){let n=String(t.sets[i]),a=`${r};${n}`,o=`${n};${r}`;e.set(a,t.size+(e.get(a)||0)),e.set(o,t.size+(e.get(o)||0))}}for(let t of r)t.sets.length<3&&(t.size=e.get(i(t.sets)))}let a=[],o=new Set;for(let e of r)if(e.sets.length===1)a.push(e.sets[0]);else if(e.sets.length===2){let t=e.sets[0],n=e.sets[1];o.add(i(e.sets)),o.add(i([n,t]))}a.sort((e,t)=>e===t?0:e<t?-1:1);for(let e=0;e<a.length;++e){let t=a[e];for(let n=e+1;n<a.length;++n){let e=a[n];o.has(i([t,e]))||r.push({sets:[t,e],size:0})}}return r}function re(e,t,n){let r=j(t.length,t.length),i=j(t.length,t.length);return e.filter(e=>e.sets.length===2).forEach(e=>{let a=n[e.sets[0]],o=n[e.sets[1]],s=z(Math.sqrt(t[a].size/Math.PI),Math.sqrt(t[o].size/Math.PI),e.size);r[a][o]=r[o][a]=s;let c=0;e.size+1e-10>=Math.min(t[a].size,t[o].size)?c=1:e.size<=1e-10&&(c=-1),i[a][o]=i[o][a]=c}),{distances:r,constraints:i}}function ie(e,t,n,r){for(let e=0;e<t.length;++e)t[e]=0;let i=0;for(let a=0;a<n.length;++a){let o=e[2*a],s=e[2*a+1];for(let c=a+1;c<n.length;++c){let l=e[2*c],u=e[2*c+1],d=n[a][c],f=r[a][c],p=(l-o)*(l-o)+(u-s)*(u-s),m=Math.sqrt(p),h=p-d*d;f>0&&m<=d||f<0&&m>=d||(i+=2*h*h,t[2*a]+=4*h*(o-l),t[2*a+1]+=4*h*(s-u),t[2*c]+=4*h*(l-o),t[2*c+1]+=4*h*(u-s))}}return i}function ae(e,t={}){let n=se(e,t),r=t.lossFunction||B;if(e.length>=8){let i=oe(e,t),a=r(i,e),o=r(n,e);a+1e-8<o&&(n=i)}return n}function oe(e,t={}){let n=t.restarts||10,r=[],i={};for(let t of e)t.sets.length===1&&(i[t.sets[0]]=r.length,r.push(t));let{distances:a,constraints:o}=re(e,r,i),s=N(a.map(N))/a.length;a=a.map(e=>e.map(e=>e/s));let c=(e,t)=>ie(e,t,a,o),l=null;for(let e=0;e<n;++e){let e=R(c,A(a.length*2).map(Math.random),t);(!l||e.fx<l.fx)&&(l=e)}let u=l.x,d={};for(let e=0;e<r.length;++e){let t=r[e];d[t.sets[0]]={x:u[2*e]*s,y:u[2*e+1]*s,radius:Math.sqrt(t.size/Math.PI)}}if(t.history)for(let e of t.history)P(e.x,s);return d}function se(e,t){let n=t&&t.lossFunction?t.lossFunction:B,r={},i={};for(let t of e)if(t.sets.length===1){let e=t.sets[0];r[e]={x:1e10,y:1e10,rowid:r.length,size:t.size,radius:Math.sqrt(t.size/Math.PI)},i[e]=[]}e=e.filter(e=>e.sets.length===2);for(let t of e){let e=t.weight==null?1:t.weight,n=t.sets[0],a=t.sets[1];t.size+te>=Math.min(r[n].size,r[a].size)&&(e=0),i[n].push({set:a,size:t.size,weight:e}),i[a].push({set:n,size:t.size,weight:e})}let a=[];Object.keys(i).forEach(e=>{let t=0;for(let n=0;n<i[e].length;++n)t+=i[e][n].size*i[e][n].weight;a.push({set:e,size:t})});function o(e,t){return t.size-e.size}a.sort(o);let s={};function c(e){return e.set in s}function l(e,t){r[t].x=e.x,r[t].y=e.y,s[t]=!0}l({x:0,y:0},a[0].set);for(let t=1;t<a.length;++t){let s=a[t].set,d=i[s].filter(c),f=r[s];if(d.sort(o),d.length===0)throw`ERROR: missing pairwise overlap information`;let p=[];for(var u=0;u<d.length;++u){let e=r[d[u].set],t=z(f.radius,e.radius,d[u].size);p.push({x:e.x+t,y:e.y}),p.push({x:e.x-t,y:e.y}),p.push({y:e.y+t,x:e.x}),p.push({y:e.y-t,x:e.x});for(let n=u+1;n<d.length;++n){let i=r[d[n].set],a=z(f.radius,i.radius,d[n].size),o=D({x:e.x,y:e.y,radius:t},{x:i.x,y:i.y,radius:a});p.push(...o)}}let m=1e50,h=p[0];for(let t of p){r[s].x=t.x,r[s].y=t.y;let i=n(r,e);i<m&&(m=i,h=t)}l(h,s)}return r}function B(e,t){let n=0;for(let r of t){if(r.sets.length===1)continue;let t;if(r.sets.length===2){let n=e[r.sets[0]],i=e[r.sets[1]];t=E(n.radius,i.radius,T(n,i))}else t=x(r.sets.map(t=>e[t]));let i=r.weight==null?1:r.weight;n+=i*(t-r.size)*(t-r.size)}return n}function ce(e,t){let n=0;for(let r of t){if(r.sets.length===1)continue;let t;if(r.sets.length===2){let n=e[r.sets[0]],i=e[r.sets[1]];t=E(n.radius,i.radius,T(n,i))}else t=x(r.sets.map(t=>e[t]));let i=r.weight==null?1:r.weight,a=Math.log((t+1)/(r.size+1));n+=i*a*a}return n}function le(e,t,n){if(n==null?e.sort((e,t)=>t.radius-e.radius):e.sort(n),e.length>0){let t=e[0].x,n=e[0].y;for(let r of e)r.x-=t,r.y-=n}if(e.length===2&&T(e[0],e[1])<Math.abs(e[1].radius-e[0].radius)&&(e[1].x=e[0].x+e[0].radius-e[1].radius-1e-10,e[1].y=e[0].y),e.length>1){let n=Math.atan2(e[1].x,e[1].y)-t,r=Math.cos(n),i=Math.sin(n);for(let t of e){let e=t.x,n=t.y;t.x=r*e-i*n,t.y=i*e+r*n}}if(e.length>2){let n=Math.atan2(e[2].x,e[2].y)-t;for(;n<0;)n+=2*Math.PI;for(;n>2*Math.PI;)n-=2*Math.PI;if(n>Math.PI){let t=e[1].y/(1e-10+e[1].x);for(let n of e){var r=(n.x+t*n.y)/(1+t*t);n.x=2*r-n.x,n.y=2*r*t-n.y}}}}function ue(e){e.forEach(e=>{e.parent=e});function t(e){return e.parent!==e&&(e.parent=t(e.parent)),e.parent}function n(e,n){let r=t(e);r.parent=t(n)}for(let t=0;t<e.length;++t)for(let r=t+1;r<e.length;++r){let i=e[t].radius+e[r].radius;T(e[t],e[r])+1e-10<i&&n(e[r],e[t])}let r=new Map;for(let n=0;n<e.length;++n){let i=t(e[n]).parent.setid;r.has(i)||r.set(i,[]),r.get(i).push(e[n])}return e.forEach(e=>{delete e.parent}),Array.from(r.values())}function V(e){let t=t=>({max:e.reduce((e,n)=>Math.max(e,n[t]+n.radius),-1/0),min:e.reduce((e,n)=>Math.min(e,n[t]-n.radius),1/0)});return{xRange:t(`x`),yRange:t(`y`)}}function de(e,t,n){t??=Math.PI/2;let r=me(e).map(e=>Object.assign({},e)),i=ue(r);for(let e of i){le(e,t,n);let r=V(e);e.size=(r.xRange.max-r.xRange.min)*(r.yRange.max-r.yRange.min),e.bounds=r}i.sort((e,t)=>t.size-e.size),r=i[0];let a=r.bounds,o=(a.xRange.max-a.xRange.min)/50;function s(e,t,n){if(!e)return;let i=e.bounds,s,c;if(t)s=a.xRange.max-i.xRange.min+o;else{s=a.xRange.max-i.xRange.max;let e=(i.xRange.max-i.xRange.min)/2-(a.xRange.max-a.xRange.min)/2;e<0&&(s+=e)}if(n)c=a.yRange.max-i.yRange.min+o;else{c=a.yRange.max-i.yRange.max;let e=(i.yRange.max-i.yRange.min)/2-(a.yRange.max-a.yRange.min)/2;e<0&&(c+=e)}for(let t of e)t.x+=s,t.y+=c,r.push(t)}let c=1;for(;c<i.length;)s(i[c],!0,!1),s(i[c+1],!1,!0),s(i[c+2],!0,!0),c+=3,a=V(r);return pe(r)}function fe(e,t,n,r,i){let a=me(e);t-=2*r,n-=2*r;let{xRange:o,yRange:s}=V(a);if(o.max===o.min||s.max===s.min)return console.log(`not scaling solution: zero size detected`),e;let c,l;if(i){let e=Math.sqrt(i/Math.PI)*2;c=t/e,l=n/e}else c=t/(o.max-o.min),l=n/(s.max-s.min);let u=Math.min(l,c),d=(t-(o.max-o.min)*u)/2,f=(n-(s.max-s.min)*u)/2;return pe(a.map(e=>({radius:u*e.radius,x:r+d+(e.x-o.min)*u,y:r+f+(e.y-s.min)*u,setid:e.setid})))}function pe(e){let t={};for(let n of e)t[n.setid]=n;return t}function me(e){return Object.keys(e).map(t=>Object.assign(e[t],{setid:t}))}function he(e={}){let t=!1,n=600,r=350,i=15,a=1e3,o=Math.PI/2,s=!0,c=null,l=!0,u=!0,d=null,f=null,p=!1,m=null,h=e&&e.symmetricalTextCentre?e.symmetricalTextCentre:!1,g={},_=e&&e.colourScheme?e.colourScheme:e&&e.colorScheme?e.colorScheme:[`#1f77b4`,`#ff7f0e`,`#2ca02c`,`#d62728`,`#9467bd`,`#8c564b`,`#e377c2`,`#7f7f7f`,`#bcbd22`,`#17becf`],v=0,y=function(e){if(e in g)return g[e];var t=g[e]=_[v];return v+=1,v>=_.length&&(v=0),t},b=ee,x=B;function S(g){let _=g.datum(),v=new Set;_.forEach(e=>{e.size==0&&e.sets.length==1&&v.add(e.sets[0])}),_=_.filter(e=>!e.sets.some(e=>v.has(e)));let S={},C={};if(_.length>0){let e=b(_,{lossFunction:x,distinct:p});s&&(e=de(e,o,f)),S=fe(e,n,r,i,c),C=ve(S,_,h)}let w={};_.forEach(e=>{e.label&&(w[e.sets]=e.label)});function T(e){if(e.sets in w)return w[e.sets];if(e.sets.length==1)return``+e.sets[0]}g.selectAll(`svg`).data([S]).enter().append(`svg`);let E=g.select(`svg`);t?E.attr(`viewBox`,`0 0 ${n} ${r}`):E.attr(`width`,n).attr(`height`,r);let D={},O=!1;E.selectAll(`.venn-area path`).each(function(e){let t=this.getAttribute(`d`);e.sets.length==1&&t&&!p&&(O=!0,D[e.sets[0]]=be(t))});function k(e){return t=>Ce(e.sets.map(e=>{let i=D[e],a=S[e];return i||={x:n/2,y:r/2,radius:1},a||={x:n/2,y:r/2,radius:1},{x:i.x*(1-t)+a.x*t,y:i.y*(1-t)+a.y*t,radius:i.radius*(1-t)+a.radius*t}}),m)}let A=E.selectAll(`.venn-area`).data(_,e=>e.sets),j=A.enter().append(`g`).attr(`class`,e=>`venn-area venn-${e.sets.length==1?`circle`:`intersection`}${e.colour||e.color?` venn-coloured`:``}`).attr(`data-venn-sets`,e=>e.sets.join(`_`)),M=j.append(`path`),N=j.append(`text`).attr(`class`,`label`).text(e=>T(e)).attr(`text-anchor`,`middle`).attr(`dy`,`.35em`).attr(`x`,n/2).attr(`y`,r/2);u&&(M.style(`fill-opacity`,`0`).filter(e=>e.sets.length==1).style(`fill`,e=>e.colour?e.colour:e.color?e.color:y(e.sets)).style(`fill-opacity`,`.25`),N.style(`fill`,t=>t.colour||t.color?`#FFF`:e.textFill?e.textFill:t.sets.length==1?y(t.sets):`#444`));function P(e){return typeof e.transition==`function`?e.transition(`venn`).duration(a):e}let F=g;O&&typeof F.transition==`function`?(F=P(g),F.selectAll(`path`).attrTween(`d`,k)):F.selectAll(`path`).attr(`d`,e=>Ce(e.sets.map(e=>S[e])),m);let I=F.selectAll(`text`).filter(e=>e.sets in C).text(e=>T(e)).attr(`x`,e=>Math.floor(C[e.sets].x)).attr(`y`,e=>Math.floor(C[e.sets].y));l&&(O?`on`in I?I.on(`end`,H(S,T)):I.each(`end`,H(S,T)):I.each(H(S,T)));let L=P(A.exit()).remove();typeof A.transition==`function`&&L.selectAll(`path`).attrTween(`d`,k);let R=L.selectAll(`text`).attr(`x`,n/2).attr(`y`,r/2);return d!==null&&(N.style(`font-size`,`0px`),I.style(`font-size`,d),R.style(`font-size`,`0px`)),{circles:S,textCentres:C,nodes:A,enter:j,update:F,exit:L}}return S.wrap=function(e){return arguments.length?(l=e,S):l},S.useViewBox=function(){return t=!0,S},S.width=function(e){return arguments.length?(n=e,S):n},S.height=function(e){return arguments.length?(r=e,S):r},S.padding=function(e){return arguments.length?(i=e,S):i},S.distinct=function(e){return arguments.length?(p=e,S):p},S.colours=function(e){return arguments.length?(y=e,S):y},S.colors=function(e){return arguments.length?(y=e,S):y},S.fontSize=function(e){return arguments.length?(d=e,S):d},S.round=function(e){return arguments.length?(m=e,S):m},S.duration=function(e){return arguments.length?(a=e,S):a},S.layoutFunction=function(e){return arguments.length?(b=e,S):b},S.normalize=function(e){return arguments.length?(s=e,S):s},S.scaleToFit=function(e){return arguments.length?(c=e,S):c},S.styled=function(e){return arguments.length?(u=e,S):u},S.orientation=function(e){return arguments.length?(o=e,S):o},S.orientationOrder=function(e){return arguments.length?(f=e,S):f},S.lossFunction=function(e){return arguments.length?(x=e==="default"?B:e===`logRatio`?ce:e,S):x},S}function H(e,t){return function(n){let r=this,i=e[n.sets[0]].radius||50,a=t(n)||``,o=a.split(/\s+/).reverse(),s=(a.length+o.length)/3,c=o.pop(),l=[c],u=0,d=1.1;r.textContent=null;let f=[];function p(e){let t=r.ownerDocument.createElementNS(r.namespaceURI,`tspan`);return t.textContent=e,f.push(t),r.append(t),t}let m=p(c);for(;c=o.pop(),c;){l.push(c);let e=l.join(` `);m.textContent=e,e.length>s&&m.getComputedTextLength()>i&&(l.pop(),m.textContent=l.join(` `),l=[c],m=p(c),u++)}let h=.35-u*d/2,g=r.getAttribute(`x`),_=r.getAttribute(`y`);f.forEach((e,t)=>{e.setAttribute(`x`,g),e.setAttribute(`y`,_),e.setAttribute(`dy`,`${h+t*d}em`)})}}function U(e,t,n){let r=t[0].radius-T(t[0],e);for(let n=1;n<t.length;++n){let i=t[n].radius-T(t[n],e);i<=r&&(r=i)}for(let t=0;t<n.length;++t){let i=T(n[t],e)-n[t].radius;i<=r&&(r=i)}return r}function ge(e,t,n){let r=[];for(let t of e)r.push({x:t.x,y:t.y}),r.push({x:t.x+t.radius/2,y:t.y}),r.push({x:t.x-t.radius/2,y:t.y}),r.push({x:t.x,y:t.y+t.radius/2}),r.push({x:t.x,y:t.y-t.radius/2});let i=r[0],a=U(r[0],e,t);for(let n=1;n<r.length;++n){let o=U(r[n],e,t);o>=a&&(i=r[n],a=o)}let o=I(n=>-1*U({x:n[0],y:n[1]},e,t),[i.x,i.y],{maxIterations:500,minErrorDelta:1e-10}).x,s={x:n?0:o[0],y:o[1]},c=!0;for(let t of e)if(T(s,t)>t.radius){c=!1;break}for(let e of t)if(T(s,e)<e.radius){c=!1;break}if(c)return s;if(e.length==1)return{x:e[0].x,y:e[0].y};let l={};return x(e,l),l.arcs.length===0?{x:0,y:-1e3,disjoint:!0}:l.arcs.length==1?{x:l.arcs[0].circle.x,y:l.arcs[0].circle.y}:t.length?ge(e,[]):O(l.arcs.map(e=>e.p1))}function _e(e){let t={},n=Object.keys(e);for(let e of n)t[e]=[];for(let r=0;r<n.length;r++){let i=n[r],a=e[i];for(let o=r+1;o<n.length;++o){let r=n[o],s=e[r],c=T(a,s);c+s.radius<=a.radius+1e-10?t[r].push(i):c+a.radius<=s.radius+1e-10&&t[i].push(r)}}return t}function ve(e,t,n){let r={},i=_e(e);for(let a=0;a<t.length;++a){let o=t[a].sets,s={},c={};for(let e=0;e<o.length;++e){s[o[e]]=!0;let t=i[o[e]];for(let e=0;e<t.length;++e)c[t[e]]=!0}let l=[],u=[];for(let t in e)t in s?l.push(e[t]):t in c||u.push(e[t]);let d=ge(l,u,n);r[o]=d,d.disjoint&&t[a].size>0&&console.log(`WARNING: area `+o+` not represented on screen`)}return r}function ye(e,t,n){let r=[];return r.push(`
|
|
2
2
|
M`,e,t),r.push(`
|
|
3
3
|
m`,-n,0),r.push(`
|
|
4
4
|
a`,n,n,0,1,0,n*2,0),r.push(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{i as createWardleyServices}from"./mermaid-parser.core-
|
|
1
|
+
import"./chunk-NGNAAXSQ-C2Wy9Xmz.js";export{i as createWardleyServices}from"./mermaid-parser.core-Cr4hqI31.js";
|
package/dist/web/assets/{wardleyDiagram-IVAIDKWA-DV-lq7zb.js → wardleyDiagram-IVAIDKWA-DBhy_JBR.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./mermaid-parser.core-
|
|
1
|
+
import{n as e}from"./mermaid-parser.core-Cr4hqI31.js";import{n as t}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as n}from"./src-Dy1r7Mij.js";import{C as r,E as i,H as a,U as o,_ as s,a as c,b as l,c as u,q as d,v as f,y as p}from"./chunk-DSNLSHJZ-ByVh88M0.js";import{i as m}from"./chunk-7S6XSTFO-wa76hIsr.js";import{t as h}from"./chunk-JWPE2WC7-DVXcaiue.js";import{a as g}from"./mermaid.core-Ch6ggfwZ.js";var _=t((e,t)=>{let n=e<=1?e*100:e;if(n<0||n>100)throw Error(`${t} must be between 0-1 (decimal) or 0-100 (percentage). Received: ${e}`);return n},`toPercent`),v=t((e,t,n)=>({x:_(t,`${n} evolution`),y:_(e,`${n} visibility`)}),`toCoordinates`),y=t(e=>{if(e){if(e===`+<>`)return`bidirectional`;if(e===`+<`)return`backward`;if(e===`+>`)return`forward`}},`getFlowFromPort`),b=t(e=>{if(!e?.startsWith(`+`))return{};let t=/^\+'([^']*)'/.exec(e)?.[1];return e.includes(`<>`)?{flow:`bidirectional`,label:t}:e.includes(`<`)?{flow:`backward`,label:t}:e.includes(`>`)?{flow:`forward`,label:t}:{label:t}},`extractFlowFromArrow`),x=t((e,t)=>{if(h(e,t),e.size&&t.setSize(e.size.width,e.size.height),e.evolution){let n=e.evolution.stages.map(e=>e.secondName?`${e.name.trim()} / ${e.secondName.trim()}`:e.name.trim()),r=e.evolution.stages.filter(e=>e.boundary!==void 0).map(e=>e.boundary);t.updateAxes({stages:n,stageBoundaries:r})}if(e.anchors.forEach(e=>{let n=v(e.visibility,e.evolution,`Anchor "${e.name}"`);t.addNode(e.name,e.name,n.x,n.y,`anchor`)}),e.components.forEach(e=>{let n=v(e.visibility,e.evolution,`Component "${e.name}"`),r=e.label?(e.label.negX?-1:1)*e.label.offsetX:void 0,i=e.label?(e.label.negY?-1:1)*e.label.offsetY:void 0,a=e.decorator?.strategy;t.addNode(e.name,e.name,n.x,n.y,`component`,r,i,e.inertia,a)}),e.notes.forEach(e=>{let n=v(e.visibility,e.evolution,`Note "${e.text}"`);t.addNote(e.text,n.x,n.y)}),e.pipelines.forEach(e=>{let n=t.getNode(e.parent);if(!n||typeof n.y!=`number`)throw Error(`Pipeline "${e.parent}" must reference an existing component with coordinates.`);let r=n.y;t.startPipeline(e.parent),e.components.forEach(n=>{let i=`${e.parent}_${n.name}`,a=n.label?(n.label.negX?-1:1)*n.label.offsetX:void 0,o=n.label?(n.label.negY?-1:1)*n.label.offsetY:void 0,s=_(n.evolution,`Pipeline component "${n.name}" evolution`);t.addNode(i,n.name,s,r,`pipeline-component`,a,o),t.addPipelineComponent(e.parent,i)})}),e.links.forEach(e=>{let n=!!e.arrow&&(e.arrow.includes(`-.->`)||e.arrow.includes(`.-.`)),r=y(e.fromPort)??y(e.toPort),{flow:i,label:a}=b(e.arrow);!r&&i&&(r=i);let o=e.linkLabel,s=a??o;t.addLink(t.resolveNodeId(e.from),t.resolveNodeId(e.to),n,s,r)}),e.evolves.forEach(e=>{let n=t.getNode(e.component);if(n?.y!==void 0){let r=_(e.target,`Evolve target for "${e.component}"`);t.addTrend(e.component,r,n.y)}}),e.annotations.length>0){let n=e.annotations[0],r=v(n.x,n.y,`Annotations box`);t.setAnnotationsBox(r.x,r.y)}e.annotation.forEach(e=>{let n=v(e.x,e.y,`Annotation ${e.number}`);t.addAnnotation(e.number,[{x:n.x,y:n.y}],e.text)}),e.accelerators.forEach(e=>{let n=v(e.x,e.y,`Accelerator "${e.name}"`);t.addAccelerator(e.name,n.x,n.y)}),e.deaccelerators.forEach(e=>{let n=v(e.x,e.y,`Deaccelerator "${e.name}"`);t.addDeaccelerator(e.name,n.x,n.y)})},`populateDb`),S={parser:{yy:void 0},parse:t(async t=>{let r=await e(`wardley`,t);n.debug(r);let i=S.parser?.yy;if(!i||typeof i.addNode!=`function`)throw Error(`parser.parser?.yy was not a WardleyDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.`);x(r,i)},`parse`)},C=new class{constructor(){this.nodes=new Map,this.links=[],this.trends=new Map,this.pipelines=new Map,this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.axes={}}static{t(this,`WardleyBuilder`)}addNode(e){let t=this.nodes.get(e.id)??{id:e.id,label:e.label},n={...t,...e,className:e.className??t.className,labelOffsetX:e.labelOffsetX??t.labelOffsetX,labelOffsetY:e.labelOffsetY??t.labelOffsetY};this.nodes.set(e.id,n)}addLink(e){this.links.push(e)}addTrend(e){this.trends.set(e.nodeId,e)}startPipeline(e){this.pipelines.set(e,{nodeId:e,componentIds:[]});let t=this.nodes.get(e);t&&(t.isPipelineParent=!0)}addPipelineComponent(e,t){let n=this.pipelines.get(e);n&&n.componentIds.push(t);let r=this.nodes.get(t);r&&(r.inPipeline=!0)}addAnnotation(e){this.annotations.push(e)}addNote(e){this.notes.push(e)}addAccelerator(e){this.accelerators.push(e)}addDeaccelerator(e){this.deaccelerators.push(e)}setAnnotationsBox(e,t){this.annotationsBox={x:e,y:t}}setAxes(e){this.axes={...this.axes,...e}}setSize(e,t){this.size={width:e,height:t}}getNode(e){return this.nodes.get(e)}resolveNodeId(e){if(this.nodes.has(e))return e;for(let[t,n]of this.nodes)if(n.label===e)return t;return e}build(){let e=[];for(let t of this.nodes.values()){if(typeof t.x!=`number`||typeof t.y!=`number`)throw Error(`Node "${t.label}" is missing coordinates`);e.push(t)}return{nodes:e,links:[...this.links],trends:[...this.trends.values()],pipelines:[...this.pipelines.values()],annotations:[...this.annotations],notes:[...this.notes],accelerators:[...this.accelerators],deaccelerators:[...this.deaccelerators],annotationsBox:this.annotationsBox,axes:{...this.axes},size:this.size}}clear(){this.nodes.clear(),this.links=[],this.trends.clear(),this.pipelines.clear(),this.annotations=[],this.notes=[],this.accelerators=[],this.deaccelerators=[],this.annotationsBox=void 0,this.axes={},this.size=void 0}};function w(){return l()[`wardley-beta`]}t(w,`getConfig`);function T(e,t,n,r,i,a,o,s,c){C.addNode({id:e,label:t,x:n,y:r,className:i,labelOffsetX:a,labelOffsetY:o,inertia:s,sourceStrategy:c})}t(T,`addNode`);function E(e,t,n=!1,r,i){C.addLink({source:e,target:t,dashed:n,label:r,flow:i})}t(E,`addLink`);function D(e,t,n){C.addTrend({nodeId:e,targetX:t,targetY:n})}t(D,`addTrend`);function O(e,t,n){C.addAnnotation({number:e,coordinates:t,text:n})}t(O,`addAnnotation`);function k(e,t,n){C.addNote({text:e,x:t,y:n})}t(k,`addNote`);function A(e,t,n){C.addAccelerator({name:e,x:t,y:n})}t(A,`addAccelerator`);function j(e,t,n){C.addDeaccelerator({name:e,x:t,y:n})}t(j,`addDeaccelerator`);function M(e,t){C.setAnnotationsBox(e,t)}t(M,`setAnnotationsBox`);function N(e,t){C.setSize(e,t)}t(N,`setSize`);function P(e){C.startPipeline(e)}t(P,`startPipeline`);function F(e,t){C.addPipelineComponent(e,t)}t(F,`addPipelineComponent`);function I(e){C.setAxes(e)}t(I,`updateAxes`);function L(e){return C.getNode(e)}t(L,`getNode`);function R(e){return C.resolveNodeId(e)}t(R,`resolveNodeId`);function z(){return C.build()}t(z,`getWardleyData`);function B(){C.clear(),c()}t(B,`clear`);var V={getConfig:w,addNode:T,addLink:E,addTrend:D,addAnnotation:O,addNote:k,addAccelerator:A,addDeaccelerator:j,setAnnotationsBox:M,setSize:N,startPipeline:P,addPipelineComponent:F,updateAxes:I,getNode:L,resolveNodeId:R,getWardleyData:z,clear:B,setAccTitle:o,getAccTitle:f,setDiagramTitle:d,getDiagramTitle:r,getAccDescription:s,setAccDescription:a},H=[`Genesis`,`Custom Built`,`Product`,`Commodity`],U=t(()=>{let{themeVariables:e}=l();return{backgroundColor:e.wardley?.backgroundColor??e.background??`#fff`,axisColor:e.wardley?.axisColor??`#000`,axisTextColor:e.wardley?.axisTextColor??e.primaryTextColor??`#222`,gridColor:e.wardley?.gridColor??`rgba(100, 100, 100, 0.2)`,componentFill:e.wardley?.componentFill??`#fff`,componentStroke:e.wardley?.componentStroke??`#000`,componentLabelColor:e.wardley?.componentLabelColor??e.primaryTextColor??`#222`,linkStroke:e.wardley?.linkStroke??`#000`,evolutionStroke:e.wardley?.evolutionStroke??`#dc3545`,annotationStroke:e.wardley?.annotationStroke??`#000`,annotationTextColor:e.wardley?.annotationTextColor??e.primaryTextColor??`#222`,annotationFill:e.wardley?.annotationFill??e.background??`#fff`}},`getTheme`),W=t(()=>{let e=l()[`wardley-beta`];return{width:e?.width??900,height:e?.height??600,padding:e?.padding??48,nodeRadius:e?.nodeRadius??6,nodeLabelOffset:e?.nodeLabelOffset??8,axisFontSize:e?.axisFontSize??12,labelFontSize:e?.labelFontSize??10,showGrid:e?.showGrid??!1,useMaxWidth:e?.useMaxWidth??!0}},`getConfigValues`),G={parser:S,db:V,renderer:{draw:t((e,r,i,a)=>{n.debug(`Rendering Wardley map
|
|
2
2
|
`+e);let o=W(),s=U(),c=o.nodeRadius*1.6,l=a.db,d=l.getWardleyData(),f=l.getDiagramTitle(),p=d.size?.width??o.width,m=d.size?.height??o.height,h=g(r);h.selectAll(`*`).remove(),u(h,m,p,o.useMaxWidth),h.attr(`viewBox`,`0 0 ${p} ${m}`);let _=h.append(`g`).attr(`class`,`wardley-map`),v=h.append(`defs`);v.append(`marker`).attr(`id`,`arrow-${r}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,6).attr(`markerHeight`,6).attr(`orient`,`auto-start-reverse`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`fill`,s.evolutionStroke).attr(`stroke`,`none`),v.append(`marker`).attr(`id`,`link-arrow-end-${r}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,9).attr(`refY`,5).attr(`markerWidth`,5).attr(`markerHeight`,5).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`fill`,s.linkStroke).attr(`stroke`,`none`),v.append(`marker`).attr(`id`,`link-arrow-start-${r}`).attr(`viewBox`,`0 0 10 10`).attr(`refX`,1).attr(`refY`,5).attr(`markerWidth`,5).attr(`markerHeight`,5).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 10 0 L 0 5 L 10 10 z`).attr(`fill`,s.linkStroke).attr(`stroke`,`none`),_.append(`rect`).attr(`class`,`wardley-background`).attr(`width`,p).attr(`height`,m).attr(`fill`,s.backgroundColor);let y=p-o.padding*2,b=m-o.padding*2;f&&_.append(`text`).attr(`class`,`wardley-title`).attr(`x`,p/2).attr(`y`,o.padding/2).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize*1.05).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).text(f);let x=t(e=>o.padding+e/100*y,`projectX`),S=t(e=>m-o.padding-e/100*b,`projectY`),C=_.append(`g`).attr(`class`,`wardley-axes`);C.append(`line`).attr(`x1`,o.padding).attr(`x2`,p-o.padding).attr(`y1`,m-o.padding).attr(`y2`,m-o.padding).attr(`stroke`,s.axisColor).attr(`stroke-width`,1),C.append(`line`).attr(`x1`,o.padding).attr(`x2`,o.padding).attr(`y1`,o.padding).attr(`y2`,m-o.padding).attr(`stroke`,s.axisColor).attr(`stroke-width`,1);let w=d.axes.xLabel??`Evolution`,T=d.axes.yLabel??`Visibility`;C.append(`text`).attr(`class`,`wardley-axis-label wardley-axis-label-x`).attr(`x`,o.padding+y/2).attr(`y`,m-o.padding/4).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).text(w),C.append(`text`).attr(`class`,`wardley-axis-label wardley-axis-label-y`).attr(`x`,o.padding/3).attr(`y`,o.padding+b/2).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize).attr(`font-weight`,`bold`).attr(`text-anchor`,`middle`).attr(`transform`,`rotate(-90 ${o.padding/3} ${o.padding+b/2})`).text(T);let E=d.axes.stages&&d.axes.stages.length>0?d.axes.stages:H;if(E.length>0){let e=_.append(`g`).attr(`class`,`wardley-stages`),t=d.axes.stageBoundaries,n=[];if(t&&t.length===E.length){let e=0;t.forEach(t=>{n.push({start:e,end:t}),e=t})}else{let e=1/E.length;E.forEach((t,r)=>{n.push({start:r*e,end:(r+1)*e})})}E.forEach((t,r)=>{let i=n[r],a=o.padding+i.start*y,c=(a+(o.padding+i.end*y))/2;r>0&&e.append(`line`).attr(`x1`,a).attr(`x2`,a).attr(`y1`,o.padding).attr(`y2`,m-o.padding).attr(`stroke`,`#000`).attr(`stroke-width`,1).attr(`stroke-dasharray`,`5 5`).attr(`opacity`,.8),e.append(`text`).attr(`class`,`wardley-stage-label`).attr(`x`,c).attr(`y`,m-o.padding/1.5).attr(`fill`,s.axisTextColor).attr(`font-size`,o.axisFontSize-2).attr(`text-anchor`,`middle`).text(t)})}if(o.showGrid){let e=_.append(`g`).attr(`class`,`wardley-grid`);for(let t=1;t<4;t++){let n=t/4,r=o.padding+y*n;e.append(`line`).attr(`x1`,r).attr(`x2`,r).attr(`y1`,o.padding).attr(`y2`,m-o.padding).attr(`stroke`,s.gridColor).attr(`stroke-dasharray`,`2 6`),e.append(`line`).attr(`x1`,o.padding).attr(`x2`,p-o.padding).attr(`y1`,m-o.padding-b*n).attr(`y2`,m-o.padding-b*n).attr(`stroke`,s.gridColor).attr(`stroke-dasharray`,`2 6`)}}let D=new Map;if(d.nodes.forEach(e=>{D.set(e.id,{x:x(e.x),y:S(e.y),node:e})}),d.pipelines.length>0){let e=_.append(`g`).attr(`class`,`wardley-pipelines`),t=_.append(`g`).attr(`class`,`wardley-pipeline-links`);d.pipelines.forEach(n=>{if(n.componentIds.length===0)return;let r=n.componentIds.map(e=>({id:e,pos:D.get(e),node:d.nodes.find(t=>t.id===e)})).filter(e=>e.pos&&e.node).sort((e,t)=>e.node.x-t.node.x);for(let e=0;e<r.length-1;e++){let n=r[e],i=r[e+1];t.append(`line`).attr(`class`,`wardley-pipeline-evolution-link`).attr(`x1`,n.pos.x).attr(`y1`,n.pos.y).attr(`x2`,i.pos.x).attr(`y2`,i.pos.y).attr(`stroke`,s.linkStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,`4 4`)}let i=1/0,a=-1/0,l=0;if(n.componentIds.forEach(e=>{let t=D.get(e);t&&(i=Math.min(i,t.x),a=Math.max(a,t.x),l=t.y)}),i!==1/0&&a!==-1/0){let t=o.nodeRadius*4,r=l-t/2,u=D.get(n.nodeId);u&&(u.x=(i+a)/2,u.y=r-c/6),e.append(`rect`).attr(`class`,`wardley-pipeline-box`).attr(`x`,i-15).attr(`y`,r).attr(`width`,a-i+30).attr(`height`,t).attr(`fill`,`none`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`rx`,4).attr(`ry`,4)}})}let O=_.append(`g`).attr(`class`,`wardley-links`),k=new Map;d.pipelines.forEach(e=>{k.set(e.nodeId,new Set(e.componentIds))});let A=d.links.filter(e=>!(!D.has(e.source)||!D.has(e.target)||k.get(e.target)?.has(e.source)));O.selectAll(`line`).data(A).enter().append(`line`).attr(`class`,e=>`wardley-link${e.dashed?` wardley-link--dashed`:``}`).attr(`x1`,e=>{let t=D.get(e.source),n=D.get(e.target),r=d.nodes.find(t=>t.id===e.source).isPipelineParent?c/Math.sqrt(2):o.nodeRadius,i=n.x-t.x,a=n.y-t.y,s=Math.sqrt(i*i+a*a);return t.x+i/s*r}).attr(`y1`,e=>{let t=D.get(e.source),n=D.get(e.target),r=d.nodes.find(t=>t.id===e.source).isPipelineParent?c/Math.sqrt(2):o.nodeRadius,i=n.x-t.x,a=n.y-t.y,s=Math.sqrt(i*i+a*a);return t.y+a/s*r}).attr(`x2`,e=>{let t=D.get(e.source),n=D.get(e.target),r=d.nodes.find(t=>t.id===e.target).isPipelineParent?c/Math.sqrt(2):o.nodeRadius,i=t.x-n.x,a=t.y-n.y,s=Math.sqrt(i*i+a*a);return n.x+i/s*r}).attr(`y2`,e=>{let t=D.get(e.source),n=D.get(e.target),r=d.nodes.find(t=>t.id===e.target).isPipelineParent?c/Math.sqrt(2):o.nodeRadius,i=t.x-n.x,a=t.y-n.y,s=Math.sqrt(i*i+a*a);return n.y+a/s*r}).attr(`stroke`,s.linkStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,e=>e.dashed?`6 6`:null).attr(`marker-end`,e=>e.flow===`forward`||e.flow===`bidirectional`?`url(#link-arrow-end-${r})`:null).attr(`marker-start`,e=>e.flow===`backward`||e.flow===`bidirectional`?`url(#link-arrow-start-${r})`:null),O.selectAll(`text`).data(A.filter(e=>e.label)).enter().append(`text`).attr(`class`,`wardley-link-label`).attr(`x`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.x+n.x)/2,i=n.y-t.y,a=n.x-t.x;return r+i/Math.sqrt(a*a+i*i)*8}).attr(`y`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.y+n.y)/2,i=n.x-t.x,a=n.y-t.y,o=Math.sqrt(i*i+a*a);return r+-i/o*8}).attr(`fill`,s.axisTextColor).attr(`font-size`,o.labelFontSize).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`middle`).attr(`transform`,e=>{let t=D.get(e.source),n=D.get(e.target),r=(t.x+n.x)/2,i=(t.y+n.y)/2,a=n.x-t.x,o=n.y-t.y,s=Math.sqrt(a*a+o*o),c=o/s,l=-a/s,u=r+c*8,d=i+l*8,f=Math.atan2(o,a)*180/Math.PI;return(f>90||f<-90)&&(f+=180),`rotate(${f} ${u} ${d})`}).text(e=>e.label);let j=_.append(`g`).attr(`class`,`wardley-trends`),M=d.trends.map(e=>{let t=D.get(e.nodeId);if(!t)return null;let n=x(e.targetX),r=S(e.targetY),i=n-t.x,a=r-t.y,s=Math.sqrt(i*i+a*a),c=o.nodeRadius+2;return{origin:t,targetX:n,targetY:r,adjustedX2:s>c?n-i/s*c:n,adjustedY2:s>c?r-a/s*c:r}}).filter(e=>e!==null);j.selectAll(`line`).data(M).enter().append(`line`).attr(`class`,`wardley-trend`).attr(`x1`,e=>e.origin.x).attr(`y1`,e=>e.origin.y).attr(`x2`,e=>e.adjustedX2).attr(`y2`,e=>e.adjustedY2).attr(`stroke`,s.evolutionStroke).attr(`stroke-width`,1).attr(`stroke-dasharray`,`4 4`).attr(`marker-end`,`url(#arrow-${r})`);let N=_.append(`g`).attr(`class`,`wardley-nodes`).selectAll(`g`).data(d.nodes).enter().append(`g`).attr(`class`,e=>[`wardley-node`,e.className?`wardley-node--${e.className}`:``].filter(Boolean).join(` `));N.filter(e=>e.sourceStrategy===`outsource`).append(`circle`).attr(`class`,`wardley-outsource-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#666`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.sourceStrategy===`buy`).append(`circle`).attr(`class`,`wardley-buy-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#ccc`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.sourceStrategy===`build`).append(`circle`).attr(`class`,`wardley-build-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`#eee`).attr(`stroke`,`#000`).attr(`stroke-width`,1);let P=N.filter(e=>e.sourceStrategy===`market`);P.append(`circle`).attr(`class`,`wardley-market-overlay`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius*2).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>!e.isPipelineParent&&e.sourceStrategy!==`market`&&e.className!==`anchor`).append(`circle`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y).attr(`r`,o.nodeRadius).attr(`fill`,s.componentFill).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1);let F=o.nodeRadius*.7,I=o.nodeRadius*1.2;if(P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x).attr(`y1`,e=>D.get(e.id).y-I).attr(`x2`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`y2`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`y1`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`x2`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`y2`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`line`).attr(`class`,`wardley-market-line`).attr(`x1`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`y1`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`x2`,e=>D.get(e.id).x).attr(`y2`,e=>D.get(e.id).y-I).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x).attr(`cy`,e=>D.get(e.id).y-I).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x-I*Math.cos(Math.PI/6)).attr(`cy`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),P.append(`circle`).attr(`class`,`wardley-market-dot`).attr(`cx`,e=>D.get(e.id).x+I*Math.cos(Math.PI/6)).attr(`cy`,e=>D.get(e.id).y+I*Math.sin(Math.PI/6)).attr(`r`,F).attr(`fill`,`white`).attr(`stroke`,s.componentStroke).attr(`stroke-width`,2),N.filter(e=>e.isPipelineParent===!0).append(`rect`).attr(`x`,e=>D.get(e.id).x-c/2).attr(`y`,e=>D.get(e.id).y-c/2).attr(`width`,c).attr(`height`,c).attr(`fill`,s.componentFill).attr(`stroke`,s.componentStroke).attr(`stroke-width`,1),N.filter(e=>e.inertia===!0).append(`line`).attr(`class`,`wardley-inertia`).attr(`x1`,e=>{let t=D.get(e.id),n=e.isPipelineParent?c/2+15:o.nodeRadius+15;return e.sourceStrategy&&(n+=o.nodeRadius+10),t.x+n}).attr(`y1`,e=>{let t=D.get(e.id),n=e.isPipelineParent?c:o.nodeRadius*2;return t.y-n/2}).attr(`x2`,e=>{let t=D.get(e.id),n=e.isPipelineParent?c/2+15:o.nodeRadius+15;return e.sourceStrategy&&(n+=o.nodeRadius+10),t.x+n}).attr(`y2`,e=>{let t=D.get(e.id),n=e.isPipelineParent?c:o.nodeRadius*2;return t.y+n/2}).attr(`stroke`,s.componentStroke).attr(`stroke-width`,6),N.append(`text`).attr(`x`,e=>{let t=D.get(e.id);if(e.className===`anchor`)return e.labelOffsetX===void 0?t.x:t.x+e.labelOffsetX;let n=o.nodeLabelOffset;e.sourceStrategy&&e.labelOffsetX===void 0&&(n+=10);let r=e.labelOffsetX??n;return t.x+r}).attr(`y`,e=>{let t=D.get(e.id);if(e.className===`anchor`)return e.labelOffsetY===void 0?t.y-3:t.y+e.labelOffsetY;let n=-o.nodeLabelOffset;e.sourceStrategy&&e.labelOffsetY===void 0&&(n-=10);let r=e.labelOffsetY??n;return t.y+r}).attr(`class`,`wardley-node-label`).attr(`fill`,e=>e.className===`evolved`?s.evolutionStroke:e.className===`anchor`?`#000`:s.componentLabelColor).attr(`font-size`,o.labelFontSize).attr(`font-weight`,e=>e.className===`anchor`?`bold`:`normal`).attr(`text-anchor`,e=>e.className===`anchor`?`middle`:`start`).attr(`dominant-baseline`,e=>e.className===`anchor`?`middle`:`auto`).text(e=>e.label),d.annotations.length>0){let e=_.append(`g`).attr(`class`,`wardley-annotations`);if(d.annotations.forEach(t=>{let n=t.coordinates.map(e=>({x:x(e.x),y:S(e.y)}));if(n.length>1)for(let t=0;t<n.length-1;t++)e.append(`line`).attr(`class`,`wardley-annotation-line`).attr(`x1`,n[t].x).attr(`y1`,n[t].y).attr(`x2`,n[t+1].x).attr(`y2`,n[t+1].y).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`stroke-dasharray`,`4 4`);n.forEach(n=>{let r=e.append(`g`).attr(`class`,`wardley-annotation`);r.append(`circle`).attr(`cx`,n.x).attr(`cy`,n.y).attr(`r`,10).attr(`fill`,`white`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5),r.append(`text`).attr(`x`,n.x).attr(`y`,n.y).attr(`text-anchor`,`middle`).attr(`dominant-baseline`,`central`).attr(`font-size`,10).attr(`fill`,s.axisTextColor).attr(`font-weight`,`bold`).text(t.number)})}),d.annotationsBox){let t=x(d.annotationsBox.x),n=S(d.annotationsBox.y),r=e.append(`g`).attr(`class`,`wardley-annotations-box`),i=[...d.annotations].filter(e=>e.text).sort((e,t)=>e.number-t.number),a=[];if(i.forEach((e,i)=>{let o=r.append(`text`).attr(`x`,t+10).attr(`y`,n+10+(i+1)*16).attr(`font-size`,11).attr(`fill`,s.axisTextColor).attr(`text-anchor`,`start`).attr(`dominant-baseline`,`middle`).text(`${e.number}. ${e.text}`);a.push(o)}),a.length>0){let e=0,c=0;a.forEach(t=>{let n=t.node(),r=n.getComputedTextLength();e=Math.max(e,r);let i=n.getBBox();c=Math.max(c,i.height)});let l=e+20+105,u=i.length*16+20+c/2,d=o.padding,f=p-o.padding-l,h=o.padding,g=m-o.padding-u;t=Math.max(d,Math.min(t,f)),n=Math.max(h,Math.min(n,g)),a.forEach((e,r)=>{e.attr(`x`,t+10).attr(`y`,n+10+(r+1)*16)}),r.insert(`rect`,`text`).attr(`x`,t).attr(`y`,n).attr(`width`,l).attr(`height`,u).attr(`fill`,`white`).attr(`stroke`,s.axisColor).attr(`stroke-width`,1.5).attr(`rx`,4).attr(`ry`,4)}}}if(d.notes.length>0){let e=_.append(`g`).attr(`class`,`wardley-notes`);d.notes.forEach(t=>{let n=x(t.x),r=S(t.y);e.append(`text`).attr(`x`,n).attr(`y`,r).attr(`text-anchor`,`start`).attr(`font-size`,11).attr(`fill`,s.axisTextColor).attr(`font-weight`,`bold`).text(t.text)})}if(d.accelerators.length>0){let e=_.append(`g`).attr(`class`,`wardley-accelerators`);d.accelerators.forEach(t=>{let n=x(t.x),r=S(t.y),i=`
|
|
3
3
|
M ${n} ${r-15}
|
|
4
4
|
L ${n+60-20} ${r-15}
|
package/dist/web/assets/{xychartDiagram-4URNHDU4-wV4ueoGC.js → xychartDiagram-4URNHDU4-C2oV2jkE.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-
|
|
1
|
+
import{n as e}from"./chunk-Y2CYZVJY-DsF7k-Jl.js";import{m as t}from"./src-Dy1r7Mij.js";import{C as n,E as r,H as i,U as a,_ as o,a as s,c,f as l,q as u,v as d,y as f,z as p}from"./chunk-DSNLSHJZ-ByVh88M0.js";import{t as m}from"./linear-DG-Bn7df.js";import{t as h}from"./ordinal-BDEzSJ7C.js";import{t as g}from"./init-C-OQMol4.js";import{i as _}from"./chunk-7S6XSTFO-wa76hIsr.js";import{t as v}from"./line-IKuSdaT6.js";import"./chunk-YZO67HFG-CJYc1t5Y.js";import{t as y}from"./chunk-AQDTSKZB-tD5bFGjM.js";import{a as b}from"./mermaid.core-Ch6ggfwZ.js";function x(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function S(){var e=h().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=x(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return S(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},g.apply(d(),arguments)}var C=(function(){var t=e(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,10,12,14,16,18,19,21,23],r=[2,6],i=[1,3],a=[1,5],o=[1,6],s=[1,7],c=[1,5,10,12,14,16,18,19,21,23,36,37,38],l=[1,25],u=[1,26],d=[1,28],f=[1,29],p=[1,30],m=[1,31],h=[1,32],g=[1,33],_=[1,34],v=[1,35],y=[1,36],b=[1,37],x=[1,43],S=[1,42],C=[1,47],w=[1,50],T=[1,10,12,14,16,18,19,21,23,36,37,38],E=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38],D=[1,10,12,14,16,18,19,21,23,24,26,28,29,36,37,38,42,43,44,45,46,47,48,49,50,51],O=[1,65],k=[26,28],A={trace:e(function(){},`trace`),yy:{},symbols_:{error:2,start:3,eol:4,XYCHART:5,chartConfig:6,document:7,CHART_ORIENTATION:8,statement:9,title:10,text:11,X_AXIS:12,parseXAxis:13,Y_AXIS:14,parseYAxis:15,LINE:16,plotData:17,BAR:18,acc_title:19,acc_title_value:20,acc_descr:21,acc_descr_value:22,acc_descr_multiline_value:23,SQUARE_BRACES_START:24,dataPoints:25,SQUARE_BRACES_END:26,dataPoint:27,COMMA:28,NUMBER_WITH_DECIMAL:29,STR:30,xAxisData:31,bandData:32,ARROW_DELIMITER:33,commaSeparatedTexts:34,yAxisData:35,NEWLINE:36,SEMI:37,EOF:38,alphaNum:39,MD_STR:40,alphaNumToken:41,AMP:42,NUM:43,ALPHA:44,PLUS:45,EQUALS:46,MULT:47,DOT:48,BRKT:49,MINUS:50,UNDERSCORE:51,$accept:0,$end:1},terminals_:{2:`error`,5:`XYCHART`,8:`CHART_ORIENTATION`,10:`title`,12:`X_AXIS`,14:`Y_AXIS`,16:`LINE`,18:`BAR`,19:`acc_title`,20:`acc_title_value`,21:`acc_descr`,22:`acc_descr_value`,23:`acc_descr_multiline_value`,24:`SQUARE_BRACES_START`,26:`SQUARE_BRACES_END`,28:`COMMA`,29:`NUMBER_WITH_DECIMAL`,30:`STR`,33:`ARROW_DELIMITER`,36:`NEWLINE`,37:`SEMI`,38:`EOF`,40:`MD_STR`,42:`AMP`,43:`NUM`,44:`ALPHA`,45:`PLUS`,46:`EQUALS`,47:`MULT`,48:`DOT`,49:`BRKT`,50:`MINUS`,51:`UNDERSCORE`},productions_:[0,[3,2],[3,3],[3,2],[3,1],[6,1],[7,0],[7,2],[9,2],[9,2],[9,2],[9,2],[9,2],[9,3],[9,2],[9,3],[9,2],[9,2],[9,1],[17,3],[25,3],[25,1],[27,2],[27,1],[13,1],[13,2],[13,1],[31,1],[31,3],[32,3],[34,3],[34,1],[15,1],[15,2],[15,1],[35,3],[4,1],[4,1],[4,1],[11,1],[11,1],[11,1],[39,1],[39,2],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1],[41,1]],performAction:e(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 5:r.setOrientation(a[s]);break;case 9:r.setDiagramTitle(a[s].text.trim());break;case 12:r.setLineData({text:``,type:`text`},a[s]);break;case 13:r.setLineData(a[s-1],a[s]);break;case 14:r.setBarData({text:``,type:`text`},a[s]);break;case 15:r.setBarData(a[s-1],a[s]);break;case 16:this.$=a[s].trim(),r.setAccTitle(this.$);break;case 17:case 18:this.$=a[s].trim(),r.setAccDescription(this.$);break;case 19:this.$=a[s-1];break;case 20:case 30:this.$=[a[s-2],...a[s]];break;case 21:case 31:this.$=[a[s]];break;case 22:this.$={value:Number(a[s-1]),label:a[s]};break;case 23:this.$={value:Number(a[s]),label:``};break;case 24:r.setXAxisTitle(a[s]);break;case 25:r.setXAxisTitle(a[s-1]);break;case 26:r.setXAxisTitle({type:`text`,text:``});break;case 27:r.setXAxisBand(a[s]);break;case 28:r.setXAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 29:this.$=a[s-1];break;case 32:r.setYAxisTitle(a[s]);break;case 33:r.setYAxisTitle(a[s-1]);break;case 34:r.setYAxisTitle({type:`text`,text:``});break;case 35:r.setYAxisRangeData(Number(a[s-2]),Number(a[s]));break;case 39:this.$={text:a[s],type:`text`};break;case 40:this.$={text:a[s],type:`text`};break;case 41:this.$={text:a[s],type:`markdown`};break;case 42:this.$=a[s];break;case 43:this.$=a[s-1]+``+a[s]}},`anonymous`),table:[t(n,r,{3:1,4:2,7:4,5:i,36:a,37:o,38:s}),{1:[3]},t(n,r,{4:2,7:4,3:8,5:i,36:a,37:o,38:s}),t(n,r,{4:2,7:4,6:9,3:10,5:i,8:[1,11],36:a,37:o,38:s}),{1:[2,4],9:12,10:[1,13],12:[1,14],14:[1,15],16:[1,16],18:[1,17],19:[1,18],21:[1,19],23:[1,20]},t(c,[2,36]),t(c,[2,37]),t(c,[2,38]),{1:[2,1]},t(n,r,{4:2,7:4,3:21,5:i,36:a,37:o,38:s}),{1:[2,3]},t(c,[2,5]),t(n,[2,7],{4:22,36:a,37:o,38:s}),{11:23,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:39,13:38,24:x,29:S,30:l,31:40,32:41,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:45,15:44,29:C,30:l,35:46,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:49,17:48,24:w,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{11:52,17:51,24:w,30:l,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},{20:[1,53]},{22:[1,54]},t(T,[2,18]),{1:[2,2]},t(T,[2,8]),t(T,[2,9]),t(E,[2,39],{41:55,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b}),t(E,[2,40]),t(E,[2,41]),t(D,[2,42]),t(D,[2,44]),t(D,[2,45]),t(D,[2,46]),t(D,[2,47]),t(D,[2,48]),t(D,[2,49]),t(D,[2,50]),t(D,[2,51]),t(D,[2,52]),t(D,[2,53]),t(T,[2,10]),t(T,[2,24],{32:41,31:56,24:x,29:S}),t(T,[2,26]),t(T,[2,27]),{33:[1,57]},{11:59,30:l,34:58,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},t(T,[2,11]),t(T,[2,32],{35:60,29:C}),t(T,[2,34]),{33:[1,61]},t(T,[2,12]),{17:62,24:w},{25:63,27:64,29:O},t(T,[2,14]),{17:66,24:w},t(T,[2,16]),t(T,[2,17]),t(D,[2,43]),t(T,[2,25]),{29:[1,67]},{26:[1,68]},{26:[2,31],28:[1,69]},t(T,[2,33]),{29:[1,70]},t(T,[2,13]),{26:[1,71]},{26:[2,21],28:[1,72]},t(k,[2,23],{30:[1,73]}),t(T,[2,15]),t(T,[2,28]),t(T,[2,29]),{11:59,30:l,34:74,39:24,40:u,41:27,42:d,43:f,44:p,45:m,46:h,47:g,48:_,49:v,50:y,51:b},t(T,[2,35]),t(T,[2,19]),{25:75,27:64,29:O},t(k,[2,22]),{26:[2,30]},{26:[2,20]}],defaultActions:{8:[2,1],10:[2,3],21:[2,2],74:[2,30],75:[2,20]},parseError:e(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:e(function(t){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(t,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;this.parseError=typeof g.yy.parseError==`function`?g.yy.parseError:Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}e(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}e(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
|
|
2
2
|
`+h.showPosition()+`
|
|
3
3
|
Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};A.lexer=(function(){return{EOF:1,parseError:e(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:e(function(e,t){return this.yy=t||this.yy||{},this._input=e,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:e(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:e(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=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),n.length-1&&(this.yylineno-=n.length-1);var i=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:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:e(function(){return this._more=!0,this},`more`),reject:e(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:e(function(e){this.unput(this.match.slice(e))},`less`),pastInput:e(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:e(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:e(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
|
package/dist/web/index.html
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
<meta name="theme-color" content="#f7f8fa" />
|
|
7
7
|
<link rel="icon" type="image/svg+xml" href="/covro.svg" />
|
|
8
8
|
<title>Covro</title>
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-Br54jmas.js"></script>
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Crq1cgK9.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
|
13
13
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@covro/covro",
|
|
3
|
-
"version": "0.3.1-dev.
|
|
3
|
+
"version": "0.3.1-dev.2",
|
|
4
4
|
"description": "A self-hosted browser workspace for your local Codex",
|
|
5
5
|
"bin": {
|
|
6
6
|
"covro": "bin/covro.mjs"
|
|
@@ -91,14 +91,14 @@
|
|
|
91
91
|
"unsupported": []
|
|
92
92
|
},
|
|
93
93
|
"covroDatabase": {
|
|
94
|
-
"schemaVersion":
|
|
94
|
+
"schemaVersion": 7,
|
|
95
95
|
"minRestorableSchemaVersion": 1,
|
|
96
96
|
"backupFormatVersion": 1
|
|
97
97
|
},
|
|
98
|
-
"covroCommit": "
|
|
98
|
+
"covroCommit": "cac8a4f99f144332db464be03e0a063498e393d4",
|
|
99
99
|
"covroChannel": "dev",
|
|
100
100
|
"covroRelease": {
|
|
101
|
-
"runId": "
|
|
101
|
+
"runId": "39625868272",
|
|
102
102
|
"runAttempt": "1"
|
|
103
103
|
}
|
|
104
104
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ot as e,st as t}from"./chunk-DSNLSHJZ-B1LLoYuG.js";var n=(n,r)=>t.lang.round(e.parse(n)[r]);export{n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./src-KjMctvzy.js";import"./chunk-DSNLSHJZ-B1LLoYuG.js";import"./chunk-7S6XSTFO-CRGtfVHg.js";import"./chunk-YZO67HFG-BpWOuCXP.js";import"./chunk-AQDTSKZB-1G2Za6bm.js";import"./chunk-UHW7PFBP-gl7a5V-l.js";import"./chunk-HAGFOTED-78h1RpHh.js";import"./chunk-ZAUX2LTX-1ojPb1if.js";import"./chunk-WQQL4CDK-DDczFoOr.js";import"./chunk-55XCU76K-DYiwIhmI.js";import"./chunk-XXDRQBXY-3ug4Qhxg.js";import"./chunk-VQ5W62QI-KaBXxBre.js";import"./chunk-HNE4Q36P-DmR5B27Q.js";export{n as diagram}from"./chunk-NQOKRVIF-D7WSEPzg.js";import"./mermaid.core-DUTnbQkq.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.collapsible-activity{--activity-sticky-offset:var(--conversation-sticky-offset,0px);--activity-surface:#fbfcfb;overflow:clip}.collapsible-activity.activity-failed{--activity-surface:#fff5f3}.collapsible-activity>summary{background:var(--activity-surface);border-radius:6px}.collapsible-activity[open]>summary{top:var(--activity-sticky-offset);z-index:1;border-bottom-right-radius:0;border-bottom-left-radius:0;position:sticky;box-shadow:0 1px #e8ebea}.collapsible-activity>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.activity-collapse-hint{flex-shrink:0;font-size:10px;display:none}.collapsible-activity[open]>summary>.activity-collapse-hint{display:inline}.collapsible-activity-group{--activity-group-header-height:44px}.collapsible-activity-group>summary{min-height:44px}.collapsible-activity-group[open]>summary{z-index:2}.collapsible-activity-group .collapsible-activity{--activity-sticky-offset:calc(var(--conversation-sticky-offset,0px) + var(--activity-group-header-height))}.activity-group{--activity-surface:#f5f8f6;background:#fbfcfb;border:1px solid #e8ebea;border-radius:7px;min-width:0;margin:10px 0}.activity-group>summary{color:#7b8780;background:#f5f8f6;align-items:center;gap:8px;padding:11px 12px;font-size:11px;list-style:none;display:flex}.activity-group>summary>svg{flex-shrink:0}.activity-group>summary::-webkit-details-marker{display:none}.auto-review-card>summary::-webkit-details-marker{display:none}.activity-group[open]>summary>svg:last-child,.auto-review-card[open]>summary>svg:last-child{transform:rotate(90deg)}.activity-group>summary .activity-description{flex:1}.activity-group-reviews{color:#7b8780;flex-shrink:0;font-size:10px}.activity-group-status{color:#7b8780;flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:3px 8px;max-width:55%;font-size:10px;display:flex}.activity-group-status>span{white-space:nowrap}.activity-group-running{color:#55785f;font-weight:600}.activity-group-problem{color:var(--destructive);font-weight:600}.activity-group-attention{color:#8b6726;font-weight:600}.activity-group-items{border-top:1px solid #e8ebea;min-width:0;padding:1px 10px}.activity-group-items>.activity,.activity-group-items>.auto-review-card{margin:9px 0}.auto-review-card.collapsible-activity{--activity-surface:#fafcfb;padding:0}.auto-review-card.auto-review-inProgress,.auto-review-card.auto-review-timedOut{--activity-surface:#fdfbf5}.auto-review-card.auto-review-denied{--activity-surface:#fff6f4}.auto-review-card.collapsible-activity>summary{min-height:44px;color:inherit;align-items:center;gap:8px;padding:11px 12px;font-size:11px;list-style:none;display:flex}.auto-review-card.collapsible-activity .activity-description{flex:1}.auto-review-card.auto-review-denied>summary{color:#ae4c42}.auto-review-card.auto-review-inProgress>summary,.auto-review-card.auto-review-timedOut>summary{color:#8f7135}.auto-review-body{font-size:11px}@media (width<=760px){.activity-group-reviews,.activity-group>summary .command-summary{display:none}.activity-group>summary{gap:6px}.activity-group-status{gap:2px 6px;max-width:58%;font-size:9px}.activity-group-items{padding-inline:6px}}.shell-panel{border-top:1px solid var(--border);background:var(--surface,#fff);flex-direction:column;flex:none;min-height:0;max-height:60dvh;display:flex}.main-panel.shell-visible{overflow:hidden}.main-panel.shell-visible .conversation-area{min-height:0}.main-panel.shell-visible>.bottom-region{flex-shrink:1;min-height:0;max-height:22dvh}.main-panel.shell-visible .composer-box textarea{--composer-min-height:48px;--composer-max-height:90px;padding-top:9px}.shell-header{flex-shrink:0}.shell-header,.shell-heading,.shell-actions,.shell-result-toolbar,.shell-submit-row{align-items:center;gap:10px;display:flex}.shell-header{justify-content:space-between;padding:7px 24px}.shell-heading{min-width:0;font-size:12px}.shell-heading>span{text-overflow:ellipsis;white-space:nowrap;color:#737d87;overflow:hidden}.shell-heading .shell-running{color:#25724b;flex-shrink:0}.shell-body{flex:1;min-height:0;padding:0 24px 14px;overflow:auto}.shell-location{color:#737d87;align-items:baseline;gap:10px;font-size:11px;display:flex}.shell-location>span{flex-shrink:0}.shell-location code{overflow-wrap:anywhere;color:#3f4c58}.shell-help,.shell-collapsed-note,.shell-background{color:#737d87;margin:6px 0 10px;font-size:11px;line-height:1.6}.shell-collapsed-note{margin:-3px 24px 8px}.shell-background{color:#2f7255}.shell-warning{color:#975327;overflow-wrap:anywhere;background:#fff6e9;border-radius:6px;margin:6px 0;padding:7px 10px;font-size:12px;line-height:1.6}.shell-result{border:1px solid #dce2e5;border-radius:8px;overflow:hidden}.shell-result-toolbar{background:#f5f7f8;justify-content:space-between;padding:5px 10px}.shell-result-toolbar label{color:#737d87;flex:1;align-items:center;gap:8px;min-width:0;font-size:10px;display:flex}.shell-result-toolbar select{color:#3f4c58;min-width:0;max-width:100%;font:inherit;background:0 0;border:0;flex:1;padding:4px;font-size:11px}.shell-result-toolbar button{flex-shrink:0}.shell-command-line{color:#e2eaf0;background:#18212b;gap:10px;padding:10px 12px 0;font-size:12px;display:flex}.shell-command-line>span{color:#81c9a1}.shell-command-line code{white-space:pre-wrap;overflow-wrap:anywhere}.shell-output{color:#e2eaf0;white-space:pre-wrap;overflow-wrap:anywhere;background:#18212b;height:110px;margin:0;padding:10px 12px 16px;font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.shell-stderr{color:#ffb6a9}.shell-output-empty{color:#9aaaba}.shell-result-status{color:#3f6b52;background:#f5f7f8;flex-wrap:wrap;gap:14px;padding:6px 12px;font-size:11px;display:flex}.shell-status-failed,.shell-status-unknown{color:#a94f35}.shell-empty{text-align:center;color:#737d87;padding:20px 12px;font-size:12px}.shell-empty p{margin:7px 0}.shell-empty>span{font-size:11px}.shell-form{margin-top:10px}.shell-form textarea{box-sizing:border-box;resize:vertical;color:#28333d;background:#fff;border:1px solid #dce2e5;border-radius:7px;width:100%;max-height:120px;padding:9px 11px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:block}.shell-form textarea:focus{outline-offset:1px;outline:2px solid #8ba99a}.shell-submit-row{justify-content:space-between;margin-top:7px}.shell-submit-row>span{color:#737d87;font-size:10px}.shell-entry{gap:5px}.shell-entry-count{color:#2d6d48;background:#e5f2e9;border-radius:8px;padding:0 5px}.topbar{position:relative}.topbar .diagnostics-panel{top:calc(100% - 6px)}@media (width<=760px){.main-panel.shell-visible>.bottom-region{display:none}.shell-panel{max-height:70dvh}.shell-header{padding:5px 12px}.shell-body{padding:0 12px 10px}.shell-collapsed-note{margin-left:12px}.shell-output{height:110px}.shell-submit-row{gap:6px}.shell-submit-row>span{max-width:58%;line-height:1.5}.shell-entry{padding:6px}}:root{color:#252b32;font-synthesis:none;--border:#e6e8eb;--muted:#7b838c;--accent:#13765d;--accent-soft:#eaf4ef;--sidebar:#f7f8fa;--destructive:#ae3e39;background:#fff;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,summary,select{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.5}button,input,textarea,select,summary,a{outline-offset:3px}:focus-visible{outline:2px solid #18866b}a{color:var(--accent);text-underline-offset:3px}p{line-height:1.7}h1,h2,h3,p{margin-top:0}pre,code,.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.7;overflow-x:auto}svg{vertical-align:middle;flex-shrink:0}.button{white-space:nowrap;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:38px;padding:8px 13px;font-size:13px;font-weight:550;text-decoration:none;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.button-primary{color:#fff;background:#243d34;border-color:#243d34}.button-primary:hover:not(:disabled){background:#315346}.button-secondary{color:#343c43;background:#fff;border-color:#dde1e4;box-shadow:0 1px 2px #00000004}.button-secondary:hover:not(:disabled){background:#f4f6f5;border-color:#bfc7c2}.button-ghost{color:#727b85;background:0 0}.button-ghost:hover:not(:disabled){color:#35443d;background:#edf0ef}.button-destructive{color:#fff;background:#ae3e39}.button-small{min-height:32px;padding:6px 10px;font-size:12px}.button-icon{width:32px;height:32px;min-height:32px;padding:6px}.app-shell{height:100dvh;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--border);background:var(--sidebar);flex-direction:column;flex-shrink:0;width:292px;padding:16px 12px 18px;display:flex}.sidebar-header{flex-shrink:0;min-width:0}.brand{letter-spacing:-.7px;align-items:center;gap:8px;margin-bottom:12px;padding:0 2px;font-size:18px;font-weight:700;display:flex}.brand-mark{flex-shrink:0;width:28px;height:28px}.brand-mark img{display:block}.brand-name{flex:1;min-width:0}.brand>.button{flex-shrink:0}.project-search{align-items:center;gap:8px;margin-bottom:8px;display:flex}.eyebrow{color:#9a9fa5;letter-spacing:1px;font-size:11px;font-weight:600;display:block}.project-search input{color:#303b35;background:#fff;border:1px solid #dce1e3;border-radius:8px;flex:1;width:0;min-width:0;min-height:36px;padding:8px 10px;font-size:12px}.project-search input::placeholder{color:#939ba2}.sidebar-toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;display:flex}.project-list{overscroll-behavior:contain;flex:1;min-height:0;margin:4px -6px;padding:0 6px;scroll-padding-top:40px;overflow:hidden auto}.add-project{margin:0}.project-group{border-top:1px solid var(--border);padding:12px 0 16px}.project-group:first-child{border-top:0}.project-heading{z-index:2;background:var(--sidebar);align-items:center;gap:3px;margin:0;font-size:13px;display:flex;position:sticky;top:0}.project-heading>.control-hint{flex-shrink:0}.project-heading>.button,.project-heading>.control-hint>.button{color:#7b8881;flex-shrink:0}.project-link{color:#55635b;text-align:left;background:0 0;border:1px solid #0000;border-radius:7px;flex:1;align-items:center;gap:8px;width:100%;min-width:0;padding:8px;font-weight:600;display:flex}.project-dialog{border:1px solid var(--border);color:#303b35;background:#fff;border-radius:16px;width:min(500px,100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:22px;overflow-y:auto;box-shadow:0 20px 80px #172a2233}.project-dialog::backdrop{background:#172a2255}.project-dialog-heading,.project-dialog-heading>div{align-items:center;gap:10px;display:flex}.project-dialog-heading{justify-content:space-between;margin-bottom:12px}.project-dialog h2{margin:0;font-size:18px;font-weight:600}.project-dialog form>p{color:#748078;font-size:13px}.project-field{flex-direction:column;gap:8px;margin-top:19px;font-size:13px;font-weight:550;display:flex}.project-field input{color:#303b35;background:#fff;border:1px solid #d5ddd8;border-radius:8px;width:100%;min-width:0;min-height:42px;padding:10px 12px;font-size:14px}.project-field input::placeholder{color:#99a19c}.project-field small{color:#7b867f;font-size:12px;font-weight:400;line-height:1.7}.project-directory{background:#f4f7f5;border-radius:8px;flex-direction:column;gap:7px;padding:12px;font-size:12px;display:flex}.project-directory span{color:#748078}.project-directory code{overflow-wrap:anywhere;line-height:1.7}.project-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:25px;display:flex}.project-dialog-actions .project-remove-button{color:var(--destructive);margin-right:auto}.project-dialog form>.project-dialog-error{color:var(--destructive);overflow-wrap:anywhere;margin:16px 0 0}.project-removal-note{color:#687568;background:#f8f9f5;border:1px solid #e6e8df;border-radius:8px;padding:14px;font-size:13px}.project-removal-note p:last-child{margin-bottom:0}.project-link>span:first-of-type{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.project-link:hover{background:#eef0f2}.project-activity{color:#236443;text-align:center;background:#dcebe1;border-radius:10px;flex-shrink:0;min-width:19px;margin-left:auto;padding:2px 5px;font-size:10px}.project-error{overflow-wrap:anywhere;margin:8px}.thread-list{min-width:0}.thread-link{text-align:left;color:#879088;background:0 0;border:1px solid #0000;border-radius:8px;align-items:flex-start;gap:6px;width:100%;min-height:36px;padding:8px 10px;display:flex}.thread-link:hover{background:#eef0f2}.thread-link>svg{margin-top:1px}.thread-selected{color:#446451;background:#ebefec}.thread-selected:hover{background:#e7ece8}.thread-link-content{flex:1;min-width:0}.thread-title{color:#4d555e;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:18px;display:block;overflow:hidden}.thread-selected .thread-title{color:#244734}.sidebar-empty{color:#9aa1a7;margin-bottom:0;padding:10px 12px;font-size:12px}.thread-pagination{text-align:center;flex-direction:column;display:flex}.sidebar-pagination-status,.load-more{border:1px solid #0000;margin:0;padding:2px 12px;font-size:11px;font-weight:400;line-height:16px}.sidebar-pagination-status,.load-more:disabled{color:#969da4}.load-more{justify-content:center;width:100%;min-height:22px}.load-more:disabled{opacity:1;cursor:wait}.load-more-error{color:#966724;background:#fbf5e9}.load-more-error:hover:not(:disabled){color:#80571d;background:#f5ead4}.sidebar-footer{border-top:1px solid var(--border);margin:18px 8px 0;padding-top:16px;position:relative}.privacy-mark{color:#66786c;align-items:center;gap:6px;font-size:11px;display:flex}.notification-settings-button{justify-content:flex-start;height:24px;min-height:24px;padding:2px 5px;font-size:11px;position:absolute;top:12px;right:0}.notification-settings-status{color:#748078;font-size:10px}.notification-dialog>p,.gateway-intro,.gateway-help,.gateway-review>p,.gateway-conflict p,.notification-background{color:#66786c;font-size:13px;line-height:1.7}.gateway-settings-button{height:26px;min-height:26px;margin:-5px 0 10px -5px;padding:3px 5px;font-size:12px}.gateway-settings-button~.notification-settings-button{top:11px}.gateway-dialog{width:min(800px,100vw - 24px);padding:24px}.gateway-dialog .project-dialog-heading{z-index:2;background:#fff;margin:-1px -1px 12px;padding:8px 0;position:sticky;top:-24px}.gateway-file{border:1px solid var(--border);background:#f7f9f7;border-radius:9px;gap:5px;padding:12px 14px;font-size:12px;display:grid}.gateway-file span{color:#748078}.gateway-file code,.gateway-changes span{overflow-wrap:anywhere;white-space:pre-wrap}.gateway-status{color:#375e47;background:#edf5ee;border-radius:9px;gap:6px;margin:14px 0;padding:12px 14px;font-size:12px;display:grid}.gateway-status[data-pending=true]{color:#795d20;background:#faf2dc}.gateway-tools{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.gateway-section{border-top:1px solid var(--border);margin-top:22px;padding-top:18px}.gateway-section h3,.gateway-section>summary,.gateway-review h3{color:#354e40;margin:0;font-size:14px;font-weight:600}.gateway-section>summary{cursor:pointer}.gateway-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 22px;display:grid}.gateway-fields .project-field{min-width:0;margin-top:15px}.gateway-fields textarea,.gateway-fields select{color:#303b35;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #d5ddd8;border-radius:8px;padding:10px 12px;font-weight:400}.gateway-dialog fieldset{border:0;min-width:0;margin:0;padding:0}.gateway-dialog input:disabled,.gateway-dialog textarea:disabled,.gateway-dialog select:disabled{opacity:.65}.project-field .gateway-running{color:#8a6a2d;overflow-wrap:anywhere;white-space:pre-wrap;border-left:2px solid #b8954c;padding-left:8px}.gateway-error,.gateway-notice{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;padding:12px;font-size:12px;line-height:1.8}.gateway-error{color:#a5372f;background:#fff0ed}.gateway-notice{color:#375e47;background:#edf5ee}.gateway-save-bar{border-top:1px solid var(--border);color:#748078;background:#fff;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding:14px 0 8px;font-size:12px;display:flex;position:sticky;bottom:-24px}.gateway-review{margin-top:24px}.gateway-changes{gap:10px;display:grid}.gateway-changes>div{border:1px solid var(--border);border-radius:9px;gap:8px;padding:14px;font-size:12px;display:grid}.gateway-changes span{color:#66786c}.gateway-json{margin-top:18px;font-size:12px}.gateway-json pre{background:#f7f9f7;max-height:300px;padding:14px;overflow:auto}@media (width<=600px){.gateway-dialog{padding:18px}.gateway-fields{grid-template-columns:minmax(0,1fr)}.gateway-dialog .project-dialog-heading{top:-18px}.gateway-save-bar{bottom:-18px}}.notification-control{border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding:14px;display:flex}.notification-control>div{flex-direction:column;gap:5px;min-width:0;font-size:13px;display:flex}.notification-control span{color:#748078;font-size:12px}.notification-control .button{flex-shrink:0}.notification-dialog .notification-help{font-size:12px}.notification-background{border-top:1px solid var(--border);margin-top:22px;padding-top:16px}.notification-background h3{color:#303b35;margin:0;font-size:13px}.notification-background summary{cursor:pointer;color:#405e4c}.notification-background ul{padding-left:20px}.notification-background li+li{margin-top:8px}.notification-background a{color:#337052;margin-left:5px;text-decoration:underline}.privacy-mark:before{content:"";background:#739c82;border-radius:50%;width:5px;height:5px}.sidebar-footer p{color:#a1a6ac;margin:7px 0 0;font-size:10px}.main-panel{flex-direction:column;flex:1;min-width:0;display:flex;position:relative}.topbar{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:15px;min-height:84px;padding:20px 32px;display:flex}.topbar-title{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.topbar-title>div{flex:1;min-width:0}.breadcrumb{color:#899199;align-items:center;gap:7px;margin-bottom:6px;font-size:10px;display:flex}.breadcrumb span{color:#a5aab0}.topbar h1{white-space:nowrap;text-overflow:ellipsis;max-width:360px;margin:0;font-size:15px;font-weight:550;overflow:hidden}.topbar-status{align-items:center;gap:17px;font-size:11px;display:flex}.thread-title-editor{min-width:0;max-width:480px}.thread-title-editor .thread-title-hint{display:block}.thread-title-editor h1:not(.sr-only){overflow:visible}.thread-title-trigger{max-width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:center;gap:8px;padding:3px 0;display:flex}.thread-title-trigger span{text-overflow:ellipsis;overflow:hidden}.thread-title-trigger svg{color:var(--muted);flex-shrink:0}.thread-title-trigger:hover,.thread-title-trigger:focus-visible{color:var(--accent)}.thread-title-trigger[aria-disabled=true]{cursor:default;color:inherit}.thread-title-fields{align-items:center;gap:6px;display:flex}.thread-title-fields input{border:1px solid var(--border);width:100%;min-width:0;color:inherit;font:inherit;background:#fff;border-radius:7px;padding:7px 9px;font-size:15px}.thread-title-fields .button{flex-shrink:0}.thread-title-help,.thread-title-error{overflow-wrap:anywhere;margin:6px 0 0;font-size:11px;line-height:1.5}.thread-title-help{color:var(--muted)}.thread-title-error{color:var(--destructive)}.status{color:#828a90;white-space:nowrap;align-items:center;gap:5px;font-size:11px;display:inline-flex}.status-dot{background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.status-running,.status-completed{color:#56866a}.status-waitingApproval,.status-waitingInput,.status-unknown{color:#ad7d26}.status-failed{color:#ac534e}.connection-badge{color:#8b949b;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.connection-connected .status-dot{color:#6c997f}.connection-disconnected,.connection-authenticationRequired{color:#ab6c33}.connection-banner,.compatibility-banner,.demo-banner{color:#8a733b;background:#f8f4e9;flex-shrink:0;padding:8px 30px;font-size:12px}.compatibility-notice{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.compatibility-notice>span{flex:1;min-width:180px;line-height:1.65}.compatibility-dialog{color:#42463d;background:#fffefb;border:1px solid #ddd8c8;border-radius:14px;width:min(520px,100vw - 32px);max-height:calc(100dvh - 40px);padding:24px;overflow-y:auto;box-shadow:0 20px 80px #172a2233}.compatibility-dialog::backdrop{background:#172a2255}.compatibility-dialog-heading{color:#8b7037;align-items:center;gap:10px;display:flex}.compatibility-dialog h2{margin:0;font-size:17px;font-weight:600}.compatibility-dialog>p{margin:17px 0;font-size:13px;line-height:1.8}.compatibility-dialog dl{background:#f7f5ed;border-radius:7px;padding:14px;font-size:12px}.compatibility-dialog dt{color:#817d6b}.compatibility-dialog dd{color:#514f43}.compatibility-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.compatibility-uncertain{background:#fcf8ed;border:1px solid #e6ddc6;border-radius:7px;padding:12px;font-size:12px}.compatibility-uncertain p{margin-bottom:10px}.connection-banner{justify-content:space-between;align-items:center;gap:10px;display:flex}.demo-banner{color:#6476a6;text-align:center;background:#eef1fa;padding:6px;font-size:10px}.error-banner{color:#a75248;overflow-wrap:anywhere;background:#fff5f3;border:1px solid #efd6d3;border-radius:7px;align-items:center;gap:10px;margin:12px 0;padding:11px 13px;font-size:12px;line-height:1.6;display:flex}.error-banner.dismissible{justify-content:space-between;margin:10px 30px 0}.persistent-banner{flex-shrink:0;margin:10px 30px 0}.persistent-banner a{margin-left:auto}.conversation-area{flex-direction:column;flex:1;min-height:100px;display:flex;position:relative}.conversation-viewport{--conversation-sticky-offset:0px;--prompt-sticky-height:40px;flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.conversation-scroll{overscroll-behavior:contain;scroll-behavior:auto;flex:1;min-height:0;overflow-y:auto}.conversation-content,.sticky-prompt-slot{width:min(100%,872px);margin:0 auto}.conversation-content{padding:30px 38px 25px}.conversation-viewport:has(.sticky-prompt){--conversation-sticky-offset:var(--prompt-sticky-height)}.conversation-viewport:has(.sticky-prompt) .conversation-scroll{scroll-padding-top:calc(var(--conversation-sticky-offset) + 8px)}.sticky-prompt-slot{z-index:3;height:0;padding-inline:38px;position:absolute;top:0;left:0;right:0}.sticky-prompt{width:100%;height:var(--prompt-sticky-height);min-height:var(--prompt-sticky-height);background:var(--accent-soft);color:#284d3f;text-align:left;border:1px solid #dce7e0;border-top:0;border-radius:0 0 8px 8px;gap:10px;padding:0 12px;line-height:20px;box-shadow:0 2px 5px #243d2810}.sticky-prompt:hover{background:#e5eee8}.sticky-prompt-label,.sticky-prompt>svg{flex-shrink:0}.sticky-prompt-label{color:var(--accent);font-size:10px;font-weight:600}.sticky-prompt-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12px;font-weight:400;overflow:hidden}.context-compaction-pinned{flex-shrink:0;width:min(100%,872px);margin:0 auto;padding:14px 38px 0}.context-compaction{color:var(--muted);align-items:flex-start;gap:10px;margin:18px 0;font-size:12px;line-height:1.6;display:flex}.context-compaction>div{min-width:0}.context-compaction strong{font-weight:500}.context-compaction p{overflow-wrap:anywhere;margin:3px 0 0}.compaction-icon{flex-shrink:0;padding-top:1px;display:flex}.context-compaction-inProgress{color:#33665f;background:#f0f7f6;border:1px solid #c9dfdc;border-radius:10px;margin:0;padding:12px 14px}.context-compaction-inProgress .compaction-icon{animation:1.8s ease-in-out infinite compaction-pulse}.context-compaction-failed{color:#a75248}@keyframes compaction-pulse{50%{opacity:.4}}.codex-reconnect-pinned{flex-shrink:0;width:min(100%,872px);margin:0 auto;padding:14px 38px 0}.codex-reconnect{color:#79601f;background:#fff9e9;border:1px solid #eadbb0;border-radius:8px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:12px;line-height:1.6;display:flex}.codex-reconnect>svg{flex-shrink:0;margin-top:2px}.codex-reconnect-content{min-width:0}.codex-reconnect strong{font-weight:600}.codex-reconnect p{margin:4px 0 0}.codex-reconnect details{margin-top:5px;font-size:11px}.codex-reconnect-message{overflow-wrap:anywhere;white-space:pre-wrap;max-height:100px;overflow-y:auto}.codex-reconnect-failed{color:#a75248;background:#fff5f3;border-color:#efd6d3}.turn>.codex-reconnect{margin-bottom:24px}.empty-state{text-align:center;margin:max(4vh,30px) auto 30px;padding:28px 0}.empty-symbol{color:#58715f;background:#f3f5f2;border:1px solid #e9ede7;border-radius:23px;place-items:center;width:76px;height:76px;margin:0 auto 30px;display:grid;transform:rotate(-5deg);box-shadow:0 5px 15px #223b2404}.empty-state .eyebrow{color:#99a09a;margin-bottom:15px;font-size:10px}.empty-state h1{letter-spacing:-.8px;color:#343c35;margin-bottom:15px;font-size:clamp(21px,2.5vw,30px);font-weight:550}.empty-state>p:not(.eyebrow){color:#8d9599;font-size:12px;line-height:1.9}.empty-features{color:#a1a8a3;justify-content:center;gap:25px;padding-top:25px;font-size:10px;display:flex}.empty-features span{align-items:center;gap:6px;display:flex}.turn{padding-bottom:25px}.turn+.turn{border-top:1px solid #f0f1f3;padding-top:23px}.turn-heading{color:#a7adb2;justify-content:space-between;margin:0 0 24px 41px;font-size:10px;display:flex}.turn:has(>.turn-completion){padding-bottom:12px}.turn>:has(+.turn-completion){margin-bottom:0}.turn-completion{color:var(--muted);overflow-wrap:anywhere;margin:8px 0 0;font-size:11px;line-height:1.6}.turn-completion-status{white-space:nowrap}.turn-tps{white-space:nowrap;cursor:help;text-underline-offset:3px;-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.turn-completion-status svg{margin-right:5px}.reply-copy-controls{vertical-align:middle;align-items:center;gap:4px;max-width:100%;margin-left:6px;display:inline-flex}.reply-copy-button{width:28px;height:28px;min-height:28px;color:inherit;padding:5px}.reply-copy-feedback:empty{opacity:0}.reply-copy-failed{color:var(--destructive)}.message{margin-bottom:25px;display:flex}.message-content{flex:1;min-width:0;font-size:13px;line-height:1.9}.user-message{justify-content:flex-end}.user-message .message-content{background:var(--accent-soft);color:#284d3f;border-radius:18px;flex:0 auto;max-width:85%;padding:12px 18px}.user-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:0}.user-question-reply+.user-question-reply{margin-top:16px}.user-question-reply blockquote{color:#526b5e;white-space:pre-wrap;overflow-wrap:anywhere;border-left:3px solid #b5cfc0;margin:0 0 8px;padding-left:12px}.user-message:focus-visible{outline:none}.user-message:focus-visible .message-content{outline:2px solid var(--accent);outline-offset:3px}.markdown{color:#48515b;overflow-wrap:anywhere;line-height:1.85}.markdown p{margin-bottom:12px}.markdown p:last-child{margin-bottom:0}.markdown h1,.markdown h2,.markdown h3{color:#354139;margin:20px 0 10px;font-size:1.15em;font-weight:600}.markdown ul,.markdown ol{padding-left:23px}.markdown li{padding:3px 0}.markdown code{background:#f0f3f1;border-radius:3px;padding:2px 4px;font-size:11px}.markdown pre{border:1px solid var(--border);background:#f7f8f8;border-radius:7px;padding:13px 15px}.markdown pre code{background:0 0;padding:0}.markdown-code-block{border:1px solid var(--border);background:#f7f8f8;border-radius:7px;min-width:0;max-width:100%;margin:0 0 12px;position:relative}.markdown-code-block:last-child{margin-bottom:0}.markdown-code-toolbar{position:absolute;top:6px;right:6px}.code-copy-feedback{z-index:1;border:1px solid var(--border);width:max-content;max-width:min(260px,100vw - 64px);color:var(--accent);pointer-events:none;background:#fff;border-radius:6px;padding:6px 9px;font-size:12px;line-height:1.5;position:absolute;bottom:calc(100% + 6px);right:0;box-shadow:0 2px 8px #0000000d}.code-copy-feedback:empty{opacity:0}.code-copy-failed{color:#ae3e39}.markdown .markdown-code-block pre{white-space:pre;overflow-wrap:normal;outline-offset:-3px;border:0;margin:0 44px 0 0}.mermaid-block{border:1px solid var(--border);color:#48515b;background:#fff;border-radius:7px;min-width:0;max-width:100%;margin:0 0 12px;overflow:hidden}.mermaid-block:last-child{margin-bottom:0}.mermaid-toolbar{border-bottom:1px solid var(--border);background:#f7f8f8;flex-wrap:wrap;align-items:center;gap:4px;padding:6px 8px;display:flex}.mermaid-label{margin-right:auto;font-size:12px;font-weight:600}.mermaid-toolbar .button{min-height:32px;color:inherit;padding:5px 7px}.markdown .mermaid-notice,.markdown .mermaid-feedback{margin:0;padding:10px 14px;font-size:12px}.mermaid-error{color:#ae3e39}.mermaid-diagram{outline-offset:-3px;max-height:min(65vh,640px);padding:16px;overflow:auto}.mermaid-diagram img{height:auto;margin:0 auto;display:block}.mermaid-diagram.mermaid-actual-size img{max-width:none;margin:0}.markdown .mermaid-source{white-space:pre;overflow-wrap:normal;outline-offset:-3px;border:0;border-radius:0;max-height:min(65vh,640px);margin:0;overflow:auto}.mermaid-block[data-theme=dark]{color:#e2e8ee;background:#20252b;border-color:#46515b}.mermaid-block[data-theme=dark] .mermaid-toolbar,.mermaid-block[data-theme=dark] .mermaid-source{background:#252c33;border-color:#46515b}.mermaid-block[data-theme=dark] .mermaid-error{color:#ffb5af}.mermaid-block[data-theme=dark] .button-ghost:hover:not(:disabled),.mermaid-block[data-theme=dark] .button[aria-pressed=true]{background:#36424d}.markdown blockquote{color:#7b8780;border-left:3px solid #d4dfd6;margin-left:0;padding-left:15px}.markdown img{max-width:100%}.markdown-table-scroll{outline-offset:-2px;max-width:100%;margin:0 0 12px;overflow-x:auto}.markdown-table-scroll:last-child{margin-bottom:0}.markdown table{border-collapse:collapse;width:100%;min-width:480px}.markdown th,.markdown td{border:1px solid var(--border);vertical-align:top;min-width:6rem;padding:9px 12px}.markdown th{color:#354139;background:#f0f3f1;font-weight:600}.markdown th:not([align]){text-align:left}.markdown td code{white-space:nowrap}.markdown tbody tr:nth-child(2n){background:#fafcfb}.auto-review-card{color:#66756c;overflow-wrap:anywhere;background:#fafcfb;border:1px solid #e2e7e3;border-radius:7px;min-width:0;margin:10px 0 10px 40px;padding:12px 14px;font-size:11px}.auto-review-heading{align-items:center;gap:7px;margin-bottom:10px;display:flex}.auto-review-heading>svg{flex-shrink:0}.auto-review-heading h3{min-width:0;margin:0;font-size:11px;font-weight:600}.auto-review-status{color:#617267;white-space:nowrap;background:#edf1ee;border-radius:4px;flex-shrink:0;margin-left:auto;padding:3px 7px;font-size:10px;font-weight:600}.auto-review-inProgress,.auto-review-timedOut{background:#fdfbf5;border-color:#e8dfc9}.auto-review-inProgress .auto-review-heading,.auto-review-timedOut .auto-review-heading{color:#8f7135}.auto-review-inProgress .auto-review-status,.auto-review-timedOut .auto-review-status{color:#8b6726;background:#f5edd9}.auto-review-approved .auto-review-status{color:#41694c;background:#e9f2eb}.auto-review-denied{background:#fff6f4;border-color:#efd0cc}.auto-review-denied .auto-review-heading{color:#ae4c42}.auto-review-denied .auto-review-status{color:#a13e34;background:#fae5e1}.auto-review-operation{gap:5px;min-width:0;display:grid}.auto-review-operation>span{color:#66746b;font-weight:600}.auto-review-operation>code{color:#4e6154;white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;font-size:11px;line-height:1.6}.auto-review-rationale{margin-top:10px;line-height:1.6}.auto-review-rationale strong{font-weight:600}.auto-review-rationale p{color:#56655c;white-space:pre-wrap;overflow-wrap:anywhere;margin:3px 0 0}.auto-review-details{margin-top:10px;font-size:10px}.auto-review-details>summary{color:#839087}.auto-review-details dl{border-top:1px solid #e4e8e3;grid-template-columns:max-content minmax(0,1fr);gap:6px 12px;margin:10px 0 0;padding-top:10px;line-height:1.5;display:grid}.auto-review-details dt{color:#7c897f}.auto-review-details dd{color:#586b5d;overflow-wrap:anywhere;min-width:0;margin:0}.activity{background:#fbfcfb;border:1px solid #e8ebea;border-radius:7px;margin:10px 0 10px 40px;overflow:clip}.activity>summary{color:#7b8780;align-items:center;gap:8px;padding:11px 12px;font-size:11px;list-style:none;display:flex}.activity>summary::-webkit-details-marker{display:none}.activity-description{align-items:center;gap:8px;min-width:0;display:flex}.activity-label{white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:100%;overflow:hidden}.command-summary{white-space:nowrap;text-overflow:ellipsis;color:#a0a8a2;min-width:0;font-size:10px;overflow:hidden}.activity-status{color:#9ba79d;white-space:nowrap;flex-shrink:0;margin-left:auto;font-size:10px}.activity-failed{background:#fff5f3;border-color:#efd6d3}.activity-failed>summary,.activity-failed .activity-status{color:var(--destructive)}.activity-failed .activity-status{font-weight:600}.activity[open]>summary>svg:last-child{transform:rotate(90deg)}.activity-body{border-top:1px solid #ebeeeb;padding:13px;font-size:12px}.activity-body>:last-child{margin-bottom:0}.command,.tool-output{color:#506453;background:#f1f4f2;border-radius:5px;margin:8px 0;padding:11px}.tool-output{color:#657068;background:#fff}.truncation{color:#a18145;align-items:center;gap:6px;font-size:11px;display:flex}.file-change-link{text-align:left;gap:8px;width:100%;margin:6px 0;font-size:12px;display:flex}.file-change-link code{overflow-wrap:anywhere;white-space:normal;min-width:0}.file-change-link>span{white-space:nowrap;color:var(--muted);margin-left:auto;font-size:11px}.file-change-link>svg{flex-shrink:0}.turn-diff{border:1px solid var(--border);text-align:left;color:#526458;border-radius:8px;justify-content:flex-start;gap:10px;width:100%;height:auto;margin:18px 0 0;padding:12px 14px;display:flex}.turn-diff>span{flex:1;font-size:12px}.turn-diff small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:400;display:block}.back-to-bottom{position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 3px 15px #18321f12}.bottom-region{flex-shrink:0;width:min(100%,872px);max-height:65%;margin:0 auto;padding:0 38px;overflow-y:auto}.composer-region{padding-bottom:max(12px, env(safe-area-inset-bottom))}.composer-resume-status{color:#65776a;align-items:center;gap:6px;margin:0 0 8px;padding:0 2px;font-size:12px;line-height:1.5;display:flex}.composer-resume-status svg{animation:1.2s linear infinite composer-resume-spin}@keyframes composer-resume-spin{to{transform:rotate(360deg)}}.composer-box{background:#fff;border:1px solid #d9dfda;border-radius:12px;position:relative;overflow:hidden;box-shadow:0 3px 12px #26432705}.composer-box:focus-within{border-color:#96afa0;box-shadow:0 0 0 2px #5e956410}.composer-resize-handle{z-index:1;color:#9baaa0;cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;width:32px;height:32px;padding:0;position:absolute;top:0;right:0}.composer-resize-handle svg{pointer-events:none;position:absolute;top:0;right:0}.composer-resize-handle path{stroke:currentColor;stroke-width:3px;stroke-linecap:round}.composer-resize-handle:hover,.composer-resize-handle:focus-visible,.composer-resize-handle:active,.composer-resize-handle[data-resizing=true]{color:var(--accent)}.composer-resize-handle:focus-visible{outline:none}html.composer-resizing,html.composer-resizing *{cursor:ns-resize!important;-webkit-user-select:none!important;user-select:none!important}@media (pointer:coarse){.composer-resize-handle{width:44px;height:44px}}.slash-menu{background:#fafcfb;border-bottom:1px solid #e1e8e3}.slash-menu-heading,.slash-menu-footer{color:#536b5d;justify-content:space-between;gap:8px;padding:9px 14px;font-size:11px;display:flex}.slash-menu-heading>span,.slash-menu-footer{color:#748379}.slash-menu-heading{padding-right:48px}.slash-options{max-height:min(260px,30dvh);padding:0 6px;scroll-padding-block:4px;overflow-y:auto}.slash-option{color:#536359;text-align:left;width:100%;min-height:60px;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex-direction:column;gap:4px;padding:10px 9px;font-size:12px;line-height:1.5;display:flex}.slash-option[aria-selected=true]{background:#edf5ef;border-color:#bfd4c5}.slash-option-title{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.slash-option-title strong{color:#244b34;font-size:13px}.slash-option-title>span{color:#77867c;font-size:11px}.slash-unavailable{color:#8b6144}.slash-feedback,.slash-empty{color:#46644e;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:10px 14px;font-size:12px;line-height:1.6}.slash-feedback{background:#f4f8f4;border-bottom:1px solid #e1e8e3;padding-right:48px}.slash-feedback[role=alert]{color:#934922;background:#fdf7f1}.composer-box textarea{--composer-min-height:93px;--composer-max-height:230px;resize:none;width:100%;min-height:var(--composer-min-height);max-height:min(var(--composer-max-height), var(--composer-available-height,230px));color:#45534a;background:0 0;border:0;outline:0;padding:17px 44px 7px 17px;font-size:13px;line-height:1.7}.composer-box textarea::placeholder{color:#a8aeab}.composer-images{flex-wrap:wrap;gap:10px;margin:0;padding:14px 44px 0 14px;list-style:none;display:flex}.composer-images li{background:#f4f7f4;border:1px solid #d9dfda;border-radius:8px;width:104px;position:relative;overflow:hidden}.composer-images img,.composer-images li>span:first-child{object-fit:contain;width:100%;height:72px;display:block}.composer-image-name{text-overflow:ellipsis;white-space:nowrap;padding:4px 6px;font-size:10px;display:block;overflow:hidden}.composer-images button{width:26px;height:26px;padding:0;position:absolute;top:3px;right:3px}.composer-image-error{color:#a33b36;margin:12px 14px 0;font-size:12px}.message-images{flex-wrap:wrap;gap:8px;display:flex}.message-images img{object-fit:contain;border-radius:8px;max-width:min(100%,260px);max-height:200px}.composer-box{container-type:inline-size}.composer-actions{justify-content:space-between;align-items:center;gap:12px;padding:7px 12px 12px;display:flex}.composer-context,.composer-send-controls{align-items:center;gap:7px;min-width:0;display:flex}.composer-context{flex:1 1 0}.composer-send-controls{flex:none;margin-left:auto}.composer-send-controls>:not(.settings-model){flex-shrink:0}.composer-target{color:#8d9b90;flex:0 auto;align-items:center;gap:6px;min-width:0;max-width:180px;font-size:11px;display:flex}.composer-target svg{flex-shrink:0}.composer-target>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.control-hint{display:inline-flex}.control-hint>:disabled{pointer-events:none}.tooltip-content{z-index:100;width:max-content;max-width:min(260px, var(--radix-tooltip-content-available-width));max-height:var(--radix-tooltip-content-available-height);color:#fff;white-space:normal;overflow-wrap:anywhere;text-align:left;background:#243d33;border-radius:6px;padding:7px 10px;font-size:11px;line-height:1.5;box-shadow:0 3px 12px #18321f20}.control-hint-content>span,.control-hint-description>span{display:block}.tooltip-arrow{fill:#243d33}.composer-note{text-align:center;color:#a9b1ac;margin:0;padding-top:10px;font-size:9px}.settings-panel{color:#65776a;font-size:12px}.select-trigger{border:1px solid var(--border);color:#314b38;min-width:0;min-height:36px;font:inherit;white-space:nowrap;background:#fff;border-radius:6px;justify-content:space-between;align-items:center;gap:7px;padding:7px 10px;display:inline-flex}.select-chevron{opacity:.65}.select-content{z-index:100;min-width:160px;max-width:min(360px,100vw - 16px);max-height:min(320px, var(--radix-select-content-available-height));color:#314b38;background:#fff;border:1px solid #dce5de;border-radius:8px;font-size:12px;line-height:1.5;overflow:hidden;box-shadow:0 6px 24px #18321f20}.select-viewport{padding:4px}.select-item{cursor:default;-webkit-user-select:none;user-select:none;overflow-wrap:anywhere;border-radius:4px;outline:none;align-items:center;gap:7px;width:100%;padding:7px 30px 7px 8px;display:flex;position:relative}.select-item[data-highlighted]{color:#243d33;background:#edf3ee}.select-item[data-disabled]{opacity:.5;pointer-events:none}.select-item-indicator{justify-content:center;align-items:center;display:flex;position:absolute;right:8px}.select-label{color:#748479;padding:6px 8px;font-size:11px}.select-scroll-button{justify-content:center;align-items:center;padding:4px;display:flex}.settings-choice{background:#f5f8f5;border:0;border-radius:16px;align-items:center;min-width:0;min-height:32px;display:flex;position:relative}.settings-choice:hover:not(:disabled),.settings-choice[data-state=open]{background:#edf3ee}.settings-model{flex:0 160px;width:160px;max-width:160px;padding:6px 9px 6px 10px}.settings-model .select-chevron{flex-shrink:0}.settings-model-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-effort{justify-content:center;width:34px;padding:4px}.settings-speed{cursor:pointer;color:#637669;background:0 0;justify-content:center;width:28px;padding:4px}.settings-speed[data-fast=true]{color:#326744}.settings-effort .select-chevron{display:none}.reasoning-tier[data-effort=max]{--effort-color:#a65310;--effort-surface:#fff4e5;--effort-hover:#ffead0;--effort-glow:#e9953340}.reasoning-tier[data-effort=ultra]{--effort-color:#7c3ad9;--effort-surface:#f4edff;--effort-hover:#eadcff;--effort-glow:#aa78ed40}.reasoning-tier:is([data-effort=max],[data-effort=ultra]){color:var(--effort-color)}.settings-effort:is([data-effort=max],[data-effort=ultra]){background:var(--effort-surface);width:80px;padding:4px 8px}.settings-effort:is([data-effort=max],[data-effort=ultra]):is(:hover:not(:disabled),[data-state=open]),.select-item.reasoning-tier:is([data-effort=max],[data-effort=ultra])[data-highlighted]{background:var(--effort-hover)}.reasoning-effort-display{border-radius:inherit;justify-content:center;align-items:center;gap:4px;display:inline-flex}.reasoning-tier-label{font-size:11px;font-weight:650;line-height:20px}.settings-effort[data-effort=max] .reasoning-effort-display{animation:.9s ease-out effort-max-ignite}.settings-effort[data-effort=ultra] .reasoning-effort-display{animation:1.25s ease-out effort-ultra-ignite}@keyframes effort-max-ignite{0%,to{box-shadow:0 0 #0000}35%{box-shadow:0 0 0 5px var(--effort-glow), 0 0 14px var(--effort-glow)}70%{box-shadow:0 0 0 2px var(--effort-glow)}}@keyframes effort-ultra-ignite{0%,to{filter:drop-shadow(0 0 #0000);box-shadow:0 0 #0000}30%,65%{filter:drop-shadow(0 0 4px var(--effort-glow));box-shadow:-5px 0 12px var(--effort-glow), 5px 0 12px var(--effort-glow)}48%{filter:drop-shadow(0 0 1px var(--effort-glow));box-shadow:0 0 4px var(--effort-glow)}}@media (prefers-reduced-motion:reduce){.settings-effort[data-effort] .reasoning-effort-display{animation:none}}.settings-choice:focus-visible{outline-offset:2px;outline:2px solid #6b9674}.settings-choice:disabled{opacity:.6;cursor:default}.settings-policy{cursor:pointer;color:#637669;min-height:32px;font:inherit;white-space:nowrap;background:0 0;border:0;border-radius:16px;flex-shrink:0;align-items:center;gap:5px;padding:5px 7px;font-size:11px;display:flex}.settings-policy:hover,.settings-policy[aria-expanded=true]{background:#edf3ee}.settings-policy{flex-shrink:0;min-width:0;max-width:190px}.permission-mode-label{text-overflow:ellipsis;overflow:hidden}.permission-pending-dot{background:#ac7d2e;border-radius:50%;flex-shrink:0;width:5px;height:5px}.settings-details-toggle{color:#748479;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0;place-items:center;width:28px;height:30px;padding:0;display:grid}.settings-details-toggle:hover,.settings-details-toggle[aria-expanded=true]{color:#415e49;background:#edf3ee}.permission-mode-menu{width:min(350px,100vw - 24px);max-height:min(440px, var(--radix-select-content-available-height))}.permission-mode-menu .select-item{flex-direction:column;align-items:flex-start;gap:4px;padding-top:10px;padding-bottom:10px}.permission-mode-menu .select-item-description{color:#6b7c6f;font-size:11px;line-height:1.6}.permission-mode-menu strong{font-size:12px;font-weight:600}.permission-description>span{display:block}.permission-mode-menu .permission-unavailable{color:#85682c}.permission-mode-menu .select-item[data-disabled]{opacity:.7}.permission-values{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px 20px;margin:0;font-size:11px;line-height:1.6;display:grid}.permission-values>div{min-width:0}.permission-values dt{color:#748479}.permission-values dd{color:#415e49;overflow-wrap:anywhere;margin:2px 0 0}.settings-fields{background:#f8faf8;border:1px solid #e3e9e4;border-radius:10px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:0 12px 8px;padding:14px;display:grid}.settings-heading{grid-column:1/-1;justify-content:space-between;gap:12px;font-size:11px;display:flex}.settings-heading span{color:#748479}.settings-fields label{flex-direction:column;gap:7px;min-width:0;font-size:11px;display:flex}.settings-fields .select-trigger{color:#415e49;background:#fff;border:1px solid #dee5df;border-radius:5px;width:100%;padding:7px 8px;font-size:11px}.settings-note,.settings-observed{color:#6b7c6f;overflow-wrap:anywhere;grid-column:1/-1;margin:0;font-size:10px;line-height:1.6}.settings-observed{flex-wrap:wrap;gap:4px 18px;display:flex}.settings-pending,.settings-defaults,.settings-error{overflow-wrap:anywhere;color:#85682c;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:4px 14px 10px;font-size:11px;line-height:1.5;display:flex}.settings-pending button,.settings-defaults button,.settings-error button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.settings-defaults[data-state=saved]{color:#52735a}.settings-pending>span{min-width:0;max-width:100%}@container (width<=700px){.composer-actions{gap:8px}.composer-action-label{display:none}.composer-send-controls .button{width:32px;height:32px;padding:0}}@container (width<=600px){.composer-actions{gap:4px}.settings-policy>span,.settings-policy>svg:last-child{display:none}.settings-policy{justify-content:center;width:28px;min-height:32px;padding:6px}.settings-details-toggle{width:28px;min-height:32px}.permission-values{grid-template-columns:minmax(0,1fr)}.composer-context,.composer-send-controls{gap:3px}.settings-model{flex-basis:auto;gap:3px;width:clamp(50px,22cqw,160px);padding:6px 5px}.settings-model .select-chevron{flex-shrink:0;width:12px}.settings-choice.settings-effort{width:28px;padding:2px}.reasoning-tier-label{display:none}.settings-speed{width:24px;padding:3px}.settings-fields{grid-template-columns:minmax(0,1fr);padding:12px}}@container (width<=330px){.composer-target{flex:none}.composer-target>span{display:none}.settings-model{width:60px}}.pending-actions{overscroll-behavior:contain;max-height:38vh;margin-bottom:12px;overflow-y:auto}.async-question-card{overflow-wrap:anywhere;background:#f8faf8;border:1px solid #dce5df;border-radius:12px;min-width:0;padding:18px;font-size:12px}.async-question-heading,.async-question-heading>span,.async-question-footer{align-items:center;gap:8px;display:flex}.async-question-heading{color:#415e49;justify-content:space-between;margin-bottom:18px}.async-question-heading small,.async-question-footer>span{color:#748479;font-size:11px}.async-question-card fieldset{border:0;min-width:0;margin:0 0 18px;padding:0}.async-question-card legend{margin-bottom:6px;padding:0;font-weight:600;line-height:1.7}.async-question-card .question-option{background:#fff;border-color:#dce5df}.async-question-card .question-option:has(input:checked){background:#edf4ee;border-color:#8bab95}.async-question-card .text-input{resize:vertical;width:100%;line-height:1.6}.async-question-answer{white-space:pre-wrap;color:#415e49;margin:4px 0 0}.async-question-footer{flex-wrap:wrap;justify-content:space-between}.async-question-footer>button{margin-left:auto}.action-card{overflow-wrap:anywhere;background:#fdfbf5;border:1px solid #eadfc6;border-radius:10px;min-width:0;margin-bottom:10px;padding:16px;font-size:12px}.action-card:last-child{margin-bottom:0}.action-heading{align-items:center;gap:8px;margin-bottom:11px;display:flex}.action-icon{color:#ad955c;flex-shrink:0}.action-heading h3{color:#736343;margin:0;font-size:12px;font-weight:600}.action-state{white-space:nowrap;color:#b5a179;flex-shrink:0;margin-left:auto;font-size:10px}.action-card p{color:#8d826a;font-size:11px}.action-cwd>span{white-space:nowrap}.action-options{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.action-card fieldset{border:0;margin:0 0 10px;padding:5px 0 12px}.action-card legend{color:#8e7b4a;font-size:11px;font-weight:600}.question-option{cursor:pointer;background:#fffefa;border:1px solid #eee5d5;border-radius:6px;align-items:center;gap:8px;margin:7px 0;padding:10px 12px;display:flex}.question-option:has(input:checked){background:#faf5e8;border-color:#c2b488}.question-option strong{color:#756a4e;font-size:11px;font-weight:550;display:block}.question-option small{color:#a39b87;margin-top:4px;font-size:10px;display:block}.option-number{color:#c1b69a;margin-left:auto;font-size:9px}input[type=checkbox],input[type=radio]{accent-color:#557963}.text-input{color:#6d6755;background:#fff;border:1px solid #dddccb;border-radius:6px;width:100%;padding:10px;font-size:12px}.action-card-unsupported{background:#fff8f7;border-color:#e4c2bc}.action-card-unsupported .action-state,.action-card-unsupported .action-icon{color:#a84339}.permission-details{color:#665a40;background:#fffefa;border:1px solid #e7decb;border-radius:7px;gap:12px;margin:14px 0;padding:12px;display:grid}.permission-network{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.permission-details h4{margin:0 0 8px;font-size:11px;font-weight:600}.permission-paths{gap:8px;margin:0;padding:0;list-style:none;display:grid}.permission-paths li{align-items:flex-start;gap:10px;min-width:0;display:flex}.permission-paths code{overflow-wrap:anywhere;min-width:0;font-size:11px;line-height:1.6}.permission-access{color:#4c6b52;text-align:center;background:#edf1e9;border-radius:4px;flex-shrink:0;min-width:38px;padding:2px 5px;font-size:10px}.permission-access-write{color:#866123;background:#f5ead2}.permission-access-deny{color:#a84339;background:#fae7e4}.elicitation-source strong{color:#665a40;font-weight:600}.elicitation-fields{gap:16px;margin-top:16px;display:grid}.elicitation-field{min-width:0}.elicitation-field-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;display:flex}.elicitation-field-heading label{color:#665a40;font-weight:600}.field-necessity{color:#928367;margin-left:8px;font-size:10px;font-weight:400}.field-unset{color:#6d765f;text-underline-offset:3px;font:inherit;cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:2px 0;text-decoration:underline}.field-unset:disabled{cursor:default;opacity:.5}.elicitation-field .text-input{min-width:0;min-height:39px}.elicitation-field [aria-invalid=true]{border-color:#bd6056}.action-card .field-description,.action-card .field-hint{color:#817456;margin:5px 0 8px;line-height:1.5}.action-card .field-hint{margin-bottom:0;font-size:10px}.action-card .elicitation-error{color:#a23c33;margin:7px 0 0;line-height:1.5}.elicitation-multi-options{border:1px solid #0000;border-radius:6px;flex-wrap:wrap;gap:8px;display:flex}.elicitation-multi-options .question-option{margin:0}.elicitation-url{color:#665a40;background:#fffefa;border:1px solid #e7decb;border-radius:7px;justify-items:start;gap:10px;padding:12px;display:grid}.elicitation-url code{overflow-wrap:anywhere;max-width:100%;font-size:11px}.elicitation-url a{color:#446b55;text-underline-offset:3px}.elicitation-url p{margin:0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.session-resume-notice{color:#917b4e;background:#fdfbf5;border:1px solid #eadfc6;border-radius:8px;margin-bottom:14px;padding:15px;font-size:12px}.session-resume-notice strong{color:#8a7446;font-weight:550}.session-resume-notice p{margin:9px 0;font-size:11px}.session-resume-notice button+button{margin-left:8px}.pending-notice{color:#a18d59;background:#fcf9f0;border:1px solid #eee6d5;border-radius:7px;align-items:center;gap:7px;margin-bottom:12px;padding:8px 10px;font-size:10px;display:flex}.pending-notice .button{flex-shrink:0}.pending-notice>span{margin-right:auto}.subtle{color:#96a097;overflow-wrap:anywhere;font-size:11px}.inline-error{overflow-wrap:anywhere;font-size:11px;color:#b36f63!important}.raw-details{color:#98a097;margin:10px 0;font-size:10px}.raw-details summary{color:#8d978d;font-size:10px}.raw-details pre{background:#ffffff80;border:1px solid #e9ebe4;border-radius:5px;max-height:260px;padding:9px;font-size:10px;overflow:auto}.diagnostics>summary{color:#8f9991;white-space:nowrap;align-items:center;gap:5px;font-size:10px;list-style:none;display:flex}.diagnostics>summary::-webkit-details-marker{display:none}.diagnostics-panel{z-index:5;background:#fff;border:1px solid #e2e8e3;border-radius:12px;width:390px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 100px);padding:20px;position:absolute;top:73px;right:25px;overflow-y:auto;box-shadow:0 12px 50px #1a38241a}.diagnostics-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.diagnostics-heading h2{color:#586b5d;margin:0;font-size:13px;font-weight:600}dl{grid-template-columns:90px 1fr;gap:9px 15px;margin:0;font-size:11px;line-height:1.6;display:grid}dt{color:#a0aaa3}dd{color:#6a7b70;overflow-wrap:anywhere;min-width:0;margin:0}.count-badge{text-align:center;color:#a08951;background:#f7efdc;border-radius:5px;min-width:16px;padding:1px 4px;font-size:9px}.operation-section{border-top:1px solid #e9ede9;margin:20px 0;padding-top:16px}.operation-section>h3{color:#7f896b;margin-bottom:12px;font-size:12px}.operation-card{background:#fafbf8;border:1px solid #e7eadf;border-radius:7px;margin-bottom:10px;padding:12px}.operation-title{color:#a59e83;justify-content:space-between;gap:7px;margin-bottom:12px;font-size:9px;display:flex}.operation-title strong{color:#8e865f;font-size:11px}.operation-card dl{grid-template-columns:60px 1fr;font-size:10px}.reconcile p{color:#9d9c88;margin:10px 0;font-size:10px}.reconcile label{color:#8c906e;gap:5px;margin:10px 0;font-size:10px;line-height:1.5;display:flex}.mobile-only,.sidebar-backdrop{display:none}@media (width>=1550px){.sidebar{width:312px}.conversation-content{padding-top:42px}}@media (width<=1150px){.sidebar{width:268px}.topbar{padding:19px 24px}.topbar-status{gap:10px}.topbar-status>.status{display:none}.connection-badge{font-size:10px}}@media (width<=760px){.mobile-only{display:inline-flex}.sidebar{z-index:20;width:min(320px,100vw - 36px);padding:16px 12px;transition:transform .18s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar-open{transform:translate(0)}.sidebar-backdrop{z-index:19;background:#18261e44;border:0;display:block;position:fixed;inset:0}.topbar{flex-wrap:wrap;gap:10px;min-height:78px;padding:15px 15px 14px 10px}.topbar h1{max-width:calc(100vw - 220px);font-size:13px}.topbar:has(.thread-title-editing) .topbar-title{flex-basis:100%}.thread-title-fields input{min-height:44px;font-size:16px}.thread-title-fields .button{width:44px;height:44px}.topbar-status{flex-direction:column;align-items:flex-end;gap:7px;margin-left:auto}.breadcrumb{font-size:9px}.diagnostics-panel{padding:15px;top:73px;right:12px}.connection-badge,.diagnostics>summary{font-size:9px}.conversation-content{padding:25px 20px}.sticky-prompt-slot{padding-inline:20px}.context-compaction-pinned,.codex-reconnect-pinned{padding:12px 20px 0}.bottom-region{max-height:65%;padding:0 16px}.empty-state{margin-top:30px;padding:25px 5px}.empty-state h1{font-size:23px}.empty-features{flex-wrap:wrap;gap:16px;font-size:9px}.empty-features span:last-child{display:none}.empty-symbol{width:65px;height:65px;margin-bottom:25px}.message-content{font-size:12px}.user-message .message-content{max-width:90%;padding:11px 15px}.activity,.auto-review-card,.turn-diff,.turn-heading{margin-left:0}.composer-box textarea{--composer-min-height:83px;padding:14px 48px 5px 13px;font-size:13px}.composer-target{text-overflow:ellipsis;white-space:nowrap;max-width:120px;font-size:9px;overflow:hidden}.composer-actions{padding:5px 9px 9px}.composer-note{font-size:8px}.error-banner.dismissible,.persistent-banner{margin:8px 15px 0;font-size:10px}.connection-banner,.compatibility-banner{padding:6px 16px;font-size:10px}.persistent-banner{flex-wrap:wrap}.pending-notice{flex-wrap:wrap;font-size:9px}.action-card{padding:13px}.action-heading{flex-wrap:wrap}.action-state{font-size:9px}.action-card p{font-size:10px}.action-options .button{min-height:38px}}@media (prefers-reduced-motion:reduce){.context-compaction-inProgress .compaction-icon,.composer-resume-status svg{animation:none}*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.archive-switch{gap:4px;display:flex}.thread-row{border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:start;margin-bottom:2px;display:grid;position:relative}.thread-row:has(.thread-selected){background:#ebefec}.thread-row .thread-link{min-width:0;padding-right:4px}.thread-row-actions{align-items:center;gap:0;padding:4px 4px 0 0;display:flex}.thread-status-placeholder,.thread-status-indicator{width:20px;height:28px;color:var(--muted);flex:0 0 20px;justify-content:center;align-items:center;display:inline-flex;position:relative}.thread-status-glyph{justify-content:center;align-items:center;display:inline-flex}.thread-status-dot{border:1px solid;border-radius:50%;width:7px;height:7px}.thread-status-completed,.thread-status-running{color:var(--accent)}.thread-status-completed .thread-status-dot{background:currentColor}.thread-status-waitingApproval,.thread-status-waitingInput,.thread-status-unknown{color:#986414}.thread-status-failed{color:var(--destructive)}.thread-status-notification{border:1px solid var(--sidebar);background:#986414;border-radius:50%;width:6px;height:6px;position:absolute;top:5px;right:0}.thread-status-spinning{animation:1s linear infinite thread-status-spin}@keyframes thread-status-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.thread-status-spinning{animation:none}}.thread-details-trigger,.thread-fork>.button,.thread-archive>button{width:24px;height:28px;min-height:28px;color:var(--muted)}.thread-details-trigger[aria-expanded=true]{color:var(--accent);background:var(--accent-soft)}.thread-archive>button[aria-disabled=true]{cursor:default}.thread-details{border:1px solid var(--border);color:#59636c;overflow-wrap:anywhere;background:#fff;border-radius:8px;grid-column:1/-1;margin:3px 4px 8px;padding:12px;font-size:12px}.thread-details h3{color:#35463e;margin-bottom:10px;font-size:13px;line-height:1.6}.thread-details dl{margin:0 0 10px;display:block}.thread-details dl>div{grid-template-columns:4em minmax(0,1fr);align-items:start;gap:8px;margin-top:6px;display:grid}.thread-details dt{color:var(--muted)}.thread-details dd{margin:0}.thread-details dl>.thread-id-row{grid-template-columns:5em minmax(0,1fr)}.thread-id-value{align-items:flex-start;gap:6px;min-width:0;display:flex}.thread-id-value code{overflow-wrap:anywhere;white-space:normal;-webkit-user-select:text;user-select:text;flex:1;min-width:0}.thread-id-copy{flex:none;width:24px;height:24px;min-height:24px}.thread-id-feedback{color:var(--muted);font-size:11px;display:block}.thread-id-failed{color:var(--destructive)}.thread-details .status{font-size:inherit;background:0 0;padding:0}.thread-details p{margin:8px 0 0}.thread-origin-note{color:var(--muted)}@media (pointer:coarse){.thread-row .thread-link{min-height:44px;padding:12px 4px 12px 10px}.thread-row-actions{gap:0;padding:0}.thread-details-trigger,.thread-fork>.button,.thread-archive>button{width:32px;height:44px;min-height:44px}}.archive-notice{border:1px solid var(--border);background:#fff;border-radius:8px;align-items:center;gap:12px;margin:12px 24px 0;padding:12px 16px;font-size:13px;display:flex}.archive-notice div{flex:1;min-width:0}.archive-notice p{color:var(--muted);margin:3px 0 0;font-size:12px}@media (width<=700px){.archive-notice{flex-wrap:wrap;margin-inline:12px}}.local-image{vertical-align:top;max-width:100%;margin:8px 0;display:inline-block}.local-image-open{border:1px solid var(--border);color:#526458;cursor:zoom-in;text-align:left;background:#f8faf8;border-radius:9px;flex-direction:column;max-width:min(100%,432px);padding:5px;display:flex;overflow:hidden}.markdown .local-image-thumbnail{object-fit:contain;border-radius:5px;width:auto;max-width:min(100%,420px);height:auto;max-height:280px;display:block}.local-image-caption{overflow-wrap:anywhere;max-width:100%;padding:4px 5px 0;font-size:11px}.local-image-link{text-underline-offset:3px;text-decoration-style:dotted}.local-image-loading,.local-image-error{color:#627269;background:#f3f5f3;border-radius:7px;flex-direction:column;align-items:flex-start;gap:7px;max-width:100%;padding:13px;font-size:12px;display:flex}.local-image-error{color:#995338;background:#fff8f4;border:1px solid #e9d6cd}.local-image-error code,.local-image-loading code{overflow-wrap:anywhere;white-space:normal}.image-retry{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.image-preview-dialog{border:1px solid var(--border);color:#354139;background:#fff;border-radius:12px;width:min(1120px,100vw - 32px);max-width:none;max-height:calc(100dvh - 32px);padding:18px;box-shadow:0 24px 80px #162d2540}.image-preview-dialog::backdrop{background:#14251dd9}.image-preview-heading,.image-preview-toolbar{align-items:center;gap:10px;display:flex}.image-preview-heading{justify-content:space-between}.image-preview-heading h2{overflow-wrap:anywhere;min-width:0;margin:0;font-size:16px}.image-preview-heading>button{flex-shrink:0}.image-preview-toolbar{flex-wrap:wrap;margin:12px 0}.image-preview-toolbar output{text-align:center;font-variant-numeric:tabular-nums;min-width:42px;font-size:12px}.image-preview-shortcuts{color:#76847b;margin-left:auto;font-size:11px}.image-preview-viewport{border:1px solid var(--border);outline-offset:-3px;background:#edf1ee;border-radius:7px;height:min(65dvh,760px);min-height:100px;overflow:auto}.image-preview-canvas{justify-content:center;align-items:center;width:max-content;min-width:100%;min-height:100%;display:flex}.image-preview-canvas img{flex-shrink:0;display:block}.image-preview-path{color:#718077;gap:8px;margin:12px 0 0;font-size:11px;display:flex}.image-preview-path>span{flex-shrink:0}.image-preview-path code{overflow-wrap:anywhere;white-space:normal;min-width:0}@media (width<=600px){.image-preview-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:12px}.image-preview-viewport{height:58dvh}.image-preview-shortcuts{display:none}}.local-file-link{text-decoration-style:dotted;text-decoration-thickness:1px}.local-file-link:hover{text-decoration-style:solid}.file-preview{border:0;border-left:1px solid var(--border);color:inherit;background:#fff;flex:none;width:clamp(420px,43vw,800px);min-width:0;max-width:none;height:100%;max-height:none;margin:0;padding:0;position:relative;overflow:hidden}.file-preview[open]{flex-direction:column;display:flex}.file-preview-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:18px 20px;display:flex}.file-preview-header>.button,.file-preview-icon{flex-shrink:0}.file-preview-header>.button:first-child{order:4}.file-preview-icon{color:var(--accent)}.file-preview-title{flex:1;min-width:0}.file-preview-title h2{text-overflow:ellipsis;white-space:nowrap;margin:0 0 3px;font-size:14px;font-weight:600;overflow:hidden}.file-preview-title>span{color:var(--muted);font-size:11px}.file-preview-back{display:none}.file-preview-toolbar{color:var(--muted);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 20px;font-size:11px;display:flex}.file-preview-toolbar>div{gap:4px;display:flex}.file-preview-toolbar [aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.file-preview-feedback{color:var(--accent);margin:0;padding:0 24px;font-size:12px}.file-preview-feedback:empty{display:none}.file-preview-scroll{overscroll-behavior:contain;flex:1;min-height:0;padding:20px 32px 48px;scroll-padding:24px;overflow:auto}.file-preview-scroll>.markdown{max-width:760px;margin:0 auto;font-size:15px;line-height:1.9}.file-preview-scroll .markdown h1{font-size:1.65em}.file-preview-scroll .markdown h2{font-size:1.3em}.file-preview-scroll .markdown>:first-child{margin-top:0}.file-preview-source{white-space:pre-wrap;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;background:0 0;border:0;margin:0;padding:0;font-size:13px}.json-preview{tab-size:2;line-height:1.8}.json-key{color:#6f42a1}.json-string{color:#17664b}.json-number{color:#175fa8}.json-boolean,.json-null{color:#a33f21}.json-preview-warning{color:#80501b;background:#fff8ed;border:1px solid #e3c69d;border-radius:8px;margin:0 0 20px;padding:12px 14px;font-size:13px;line-height:1.7}.file-preview-error{text-align:center;padding:40px 0;font-size:14px}.file-preview-error>svg{color:var(--muted);margin-bottom:20px}.file-preview-error h3{font-size:16px}.file-preview-loading{color:var(--muted);font-size:14px}.file-preview-path{border-top:1px solid var(--border);padding:10px 20px max(10px, env(safe-area-inset-bottom));color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font:10px/1.5 SFMono-Regular,Consolas,monospace;overflow:hidden}@media (width<=1279px){.file-preview{border:0;width:100%;height:100dvh;position:fixed;inset:0}.file-preview::backdrop{background:#fff}.file-preview-header{padding:max(12px, env(safe-area-inset-top)) 12px 12px;gap:8px}.file-preview-header>.button:first-child{order:0}.file-preview-header>.button{min-height:44px}.file-preview-back{display:block}.file-preview-close,.file-preview-icon{display:none}.file-preview-toolbar{padding:8px 20px}.file-preview-toolbar .button{min-height:40px;padding-inline:16px}.file-preview-scroll{padding:18px 22px 40px}.file-preview-scroll>.markdown{font-size:16px}}.update-dialog{width:min(540px,100vw - 32px)}.update-version,.update-available{flex-wrap:wrap;align-items:baseline;gap:12px;padding:16px 0;display:flex}.update-version strong{letter-spacing:-.03em;font-size:22px}.update-version code,.update-available code{color:var(--muted);font-size:12px}.update-codex{border:1px solid var(--border);overflow-wrap:anywhere;background:#f7f8fa;border-radius:9px;margin:0 0 16px;padding:12px 14px}.update-codex h3{color:var(--muted);margin:0 0 8px;font-size:12px;font-weight:600}.update-codex>div{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.update-codex p{margin:8px 0 0;font-size:12px;line-height:1.6}.update-codex-status{color:#4f6658;margin-left:auto}.update-codex[data-state=verified]{background:#f4f8f5;border-color:#c0d6c7}.update-codex[data-state=unverified],.update-codex[data-state=unknown]{background:#fcfaf4;border-color:#dfd4b6}.update-codex[data-state=unsupported]{background:#fcf6f5;border-color:#e2c0be}.update-codex-consent{margin-top:12px}.update-channel{justify-content:space-between;align-items:center;gap:16px;font-weight:600;display:flex}.update-channel select{border:1px solid var(--border);color:#303b35;min-width:148px;font:inherit;background:#f7f8fa;border-radius:8px;padding:8px 12px}.update-control{border-block:1px solid var(--border);justify-content:space-between;align-items:center;gap:20px;margin-top:18px;padding:18px 0;display:flex}.update-control p{margin:5px 0 0}.update-buttons{justify-content:flex-end;gap:10px;margin:18px 0;display:flex}.update-progress{border:1px solid var(--border);background:#f7f8fa;border-radius:10px;gap:7px;margin:18px 0;padding:16px;display:grid}.update-progress>span{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.update-progress p{margin:0;line-height:1.65}.update-progress progress{accent-color:#303b35;width:100%;height:6px;margin-top:8px}.update-progress[data-phase=failed]{border-color:#e5a7a7}.update-progress[data-phase=succeeded]{border-color:#a3c6b0}.update-notice{background:#f7f8fa;border-radius:8px;padding:12px;font-size:13px;line-height:1.6}.update-source{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;font-size:12px;display:flex}.update-source a{color:inherit;align-items:center;gap:4px;display:inline-flex}.update-downgrade{align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;display:flex}.covro-brand-button{min-height:32px;color:inherit;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:5px;padding:0;display:flex}.covro-brand-button svg{opacity:.55}.covro-brand-button[data-update-available=true] svg{color:var(--accent);opacity:1}.history-pagination{min-height:48px;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.conversation-scroll{overflow-anchor:none}.history-opening{color:var(--muted);padding:48px 16px}.history-skeleton{gap:14px;margin-top:28px;display:grid}.history-skeleton span{background:var(--border);border-radius:6px;width:75%;height:16px}.history-skeleton span:nth-child(2){width:92%}.history-skeleton span:nth-child(3){width:55%}.history-cache-notice{background:var(--surface);color:var(--muted);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.diff-scope{color:var(--muted);border-bottom:1px solid var(--border);margin:0;padding:14px 20px;font-size:12px;line-height:1.7}.diff-list-toolbar{color:var(--muted);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.diff-files{overscroll-behavior:contain;flex:1;min-height:0;padding:0 12px 12px;scroll-padding-top:12px;overflow:auto}.diff-file{border:1px solid var(--border);border-radius:8px;min-width:0;margin-bottom:16px;overflow:clip}.diff-file:first-child{margin-top:12px}.diff-file:last-child{margin-bottom:0}.diff-file-heading{z-index:2;box-shadow:0 1px 0 var(--border);background:#f7f9f8;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;font-size:12px;display:flex;position:sticky;top:0}.diff-file-heading h3{overflow-wrap:anywhere;min-width:0;font-size:inherit;flex:180px;margin:0;font-weight:500;line-height:1.7}.diff-file-heading h3 code{white-space:normal}.diff-file-heading .button{margin-left:auto}.diff-collapsed{color:var(--muted);margin:0;padding:16px 12px;font-size:12px;line-height:1.8}.diff-file .diff-empty{min-height:0;padding:24px 16px}.diff-collapse-bottom{margin:8px auto;display:flex}.diff-kind{color:#476580;background:#edf2f6;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:10px}.diff-kind-added{color:#257145;background:#e7f4eb}.diff-kind-deleted{color:#a34039;background:#fff0ed}.diff-kind-renamed{color:#865d21;background:#faf0df}.diff-stats{flex-shrink:0;gap:8px;font:11px/1.8 monospace;display:inline-flex}.diff-stats>:first-child{color:#257145}.diff-stats>:last-child{color:#ab453d}.diff-rename{overflow-wrap:anywhere;color:var(--muted);margin:0;padding:8px 12px;font-size:11px}.diff-controls{color:var(--muted);justify-content:flex-end;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:flex}.diff-warning{color:#865d21;background:#fff7e8;margin:0;padding:8px 20px;font-size:12px;line-height:1.6}.diff-content{border-top:1px solid var(--border);overflow-x:auto}.diff-table{border-collapse:separate;border-spacing:0;tab-size:4;width:100%;font:12px/1.8 SFMono-Regular,Consolas,monospace}.diff-table th{color:var(--muted);text-align:left;white-space:nowrap;border-bottom:1px solid var(--border);background:#f7f9f8;padding:5px 7px;font-size:10px;font-weight:400}.diff-table th:first-child,.diff-table th:nth-child(2){text-align:right}.diff-hunk td{color:#4b6f85;white-space:pre-wrap;overflow-wrap:anywhere;background:#eef4f8;padding:7px 12px;font-size:11px}.diff-hunk span{margin-right:8px;font-family:inherit;font-weight:600}.diff-line td{vertical-align:top}.diff-line-number{text-align:right;color:#89938d;-webkit-user-select:none;user-select:none;background:#f7f9f8;border-right:1px solid #e9eeeb;width:1%;min-width:38px;padding:0 7px}.diff-marker{-webkit-user-select:none;user-select:none;width:1%;padding:0 6px}.diff-code{white-space:pre;padding:0 16px 0 4px}.diff-code code{font:inherit}.diff-added{color:#245c37;background:#eaf6ee}.diff-removed{color:#983f38;background:#fff0ed}.diff-added .diff-line-number{color:#4f7b5d;background:#dff0e5}.diff-removed .diff-line-number{color:#a66b62;background:#fbe4df}.diff-note{color:var(--muted);font-style:italic}.diff-wrap .diff-table{table-layout:fixed}.diff-wrap .diff-code{white-space:pre-wrap;overflow-wrap:anywhere}.diff-wrap th:first-child,.diff-wrap th:nth-child(2){width:42px}.diff-wrap th:nth-child(3){width:22px}.diff-empty{text-align:center;min-height:180px;color:var(--muted);flex:1;padding:40px 24px;font-size:13px}.diff-empty h3{color:var(--foreground);font-size:15px}.diff-empty p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}@media (width<=600px){.diff-scope{padding:12px 16px;font-size:11px}.diff-files{padding:0 8px 8px}.diff-file:first-child{margin-top:8px}.diff-file-heading{gap:6px;padding:8px}.diff-file-heading h3{flex-basis:100%}.diff-file-heading .button{min-height:40px}.diff-controls{padding:4px 8px 8px}.diff-controls .button{min-height:40px}.diff-table{font-size:11px}.diff-warning{padding:8px 16px;font-size:11px}}.diff-loading{flex:1;padding:24px}.diff-inline-change{color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;padding:0}.diff-added .diff-inline-change{background:#abdfb8}.diff-removed .diff-inline-change{background:#f6bdb6}.workspace-directory{color:var(--muted);margin-top:4px;font-size:12px}.workspace-directory summary{cursor:pointer;width:fit-content}.workspace-directory code{overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;max-width:min(520px,60vw);display:block}.project-import-modes{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.project-clone-status{background:#f4f7f5;border-radius:10px;flex-direction:column;gap:12px;margin-top:18px;padding:16px;font-size:13px;display:flex}.project-clone-status progress{accent-color:#47775e;width:100%}.project-clone-status code{overflow-wrap:anywhere}.project-clone-status small{color:#748078;line-height:1.7}.language-selector{width:100%;min-width:0;color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.language-selector select{border:1px solid var(--border);color:#252b32;background:#fff;border-radius:6px;min-width:0;max-width:65%;padding:5px 8px}.language-selector select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.action-options,.composer-actions,.sidebar-toolbar,.settings-pending{flex-wrap:wrap}.action-options>button{white-space:normal;overflow-wrap:anywhere;height:auto;min-height:32px}.permission-description,.settings-note,.sidebar-footer p{overflow-wrap:anywhere}.sidebar-footer{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;margin-top:12px;padding-top:10px;display:grid}.sidebar-footer .language-selector{justify-content:flex-start;gap:6px}.sidebar-footer .language-selector svg{flex-shrink:0}.sidebar-footer .language-selector select{flex-shrink:0;width:90px;max-width:100%}.sidebar-footer .gateway-settings-button{justify-self:end;margin:0}.sidebar-footer .notification-settings-button{white-space:normal;justify-self:start;min-width:0;max-width:100%;height:auto;position:static}.sidebar-footer .privacy-mark{justify-self:end}.sidebar-footer p{grid-column:1/-1;margin:0}.project-clone-details pre{white-space:pre-wrap;overflow-wrap:anywhere}.error-banner.dismissible{flex-wrap:wrap}.error-technical{flex-basis:100%;min-width:0}.error-technical pre{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:0}@media (width>=761px){.topbar{flex-wrap:wrap}.topbar-title{flex:180px}.topbar-status{flex-wrap:wrap;flex:0 auto;max-width:100%}.breadcrumb{white-space:nowrap;overflow:hidden}}.gateway-error pre{white-space:pre-wrap;overflow-wrap:anywhere}.backup-dialog{width:min(680px,100vw - 24px)}.backup-dialog>h3,.backup-scope h3{margin:20px 0 10px;font-size:14px}.backup-summary,.backup-actions,.backup-record-heading,.backup-notice{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.backup-summary{color:var(--muted);justify-content:space-between;padding:14px 0;font-size:13px}.backup-actions{margin:4px 0 16px}.backup-progress,.backup-record,.backup-scope{border:1px solid var(--border);border-radius:10px;min-width:0;padding:14px}.backup-progress{margin:14px 0}.backup-progress p,.backup-record p,.backup-scope p{margin:8px 0;font-size:13px;line-height:1.6}.backup-progress progress{width:100%}.backup-records{gap:12px;margin:0;padding:0;list-style:none;display:grid}.backup-record-heading{justify-content:space-between;font-size:13px}.backup-record-heading span,.backup-record time{color:var(--muted);font-size:12px}.backup-record time{margin-top:8px;display:block}.backup-record[data-phase=failed],.backup-record[data-phase=corrupt],.backup-record[data-phase=interrupted]{border-color:var(--destructive)}.backup-path,.backup-restore code{overflow-wrap:anywhere;white-space:pre-wrap;color:var(--muted);margin:10px 0;font-size:11px;line-height:1.7;display:block}.backup-restore{margin-top:14px;font-size:12px}.backup-restore summary{cursor:pointer}.backup-scope,.backup-empty{margin-top:20px;font-size:13px}.backup-scope h3{margin-top:0}.backup-notice{font-size:13px}.sidebar-local-tools{align-items:center;gap:4px;min-width:0;display:flex}.sidebar-local-tools .language-selector>svg{display:none}.sidebar-footer .backup-settings-button{width:32px;height:32px;min-height:32px;color:var(--muted);flex-shrink:0;padding:0}.backup-technical-details pre{white-space:pre-wrap;overflow-wrap:anywhere}
|