flow-mindmap 0.5.11 → 0.5.12
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 +23 -2
- package/dist/flow-mindmap.js +2 -2
- package/dist/flow-mindmap.umd.cjs +2 -2
- package/dist/style.css +2 -2
- package/dist/types.d.ts +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
# flow-mindmap
|
|
2
2
|
|
|
3
|
-
A modern, minimalist mind mapping tool — xmind-style, embeddable as a Vue 3 component.
|
|
4
|
-
|
|
3
|
+
A modern, minimalist mind mapping tool — xmind-style, embeddable as a Vue 3 component.
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="https://cdn.jsdelivr.net/gh/xz333221/flow-mindmap@v0.5.11/docs/screenshots/overview.png" alt="flow-mindmap overview" width="780" />
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
## 特性
|
|
10
|
+
|
|
5
11
|
- 纯 SVG 渲染,矢量缩放无损
|
|
6
12
|
- 拖拽、缩放、平移画布
|
|
7
13
|
- 键盘快捷键: `Tab` 添加子节点 / `Enter` 添加同级 / `F2` 编辑 / `Delete` 删除节点
|
|
@@ -12,6 +18,21 @@ A modern, minimalist mind mapping tool — xmind-style, embeddable as a Vue 3 co
|
|
|
12
18
|
- 扁平化 SVG 线框图标,无任何 Emoji
|
|
13
19
|
- Apache-2.0 开源协议,可在 npm 安装作为组件使用
|
|
14
20
|
|
|
21
|
+
## 预览
|
|
22
|
+
|
|
23
|
+
### 三种布局
|
|
24
|
+
|
|
25
|
+
| mindmap(默认) | tree(右向树) | org(向下组织结构) |
|
|
26
|
+
| :-: | :-: | :-: |
|
|
27
|
+
|  |  |  |
|
|
28
|
+
|
|
29
|
+
### 可调画板
|
|
30
|
+
|
|
31
|
+
右键画布 → 设置 打开右侧抽屉,所有视觉项实时生效:
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
|
|
15
36
|
## 安装
|
|
16
37
|
|
|
17
38
|
```bash
|
package/dist/flow-mindmap.js
CHANGED
|
@@ -3676,7 +3676,7 @@ const _c = {
|
|
|
3676
3676
|
for (const [i, r] of n)
|
|
3677
3677
|
t[i] = r;
|
|
3678
3678
|
return t;
|
|
3679
|
-
}, ps = /* @__PURE__ */ Hf(Uf, [["__scopeId", "data-v-
|
|
3679
|
+
}, ps = /* @__PURE__ */ Hf(Uf, [["__scopeId", "data-v-ecc6e0c5"]]), br = 20;
|
|
3680
3680
|
function Ff(e, n) {
|
|
3681
3681
|
e.style.height = "auto";
|
|
3682
3682
|
const t = n.minRows * br, i = n.maxRows > 0 ? n.maxRows * br : 1 / 0, r = Math.max(t, Math.min(i, e.scrollHeight));
|
|
@@ -14949,7 +14949,7 @@ function walk(n: Node) {
|
|
|
14949
14949
|
}, 8, ["open"])
|
|
14950
14950
|
]));
|
|
14951
14951
|
}
|
|
14952
|
-
}), Om = "0.5.
|
|
14952
|
+
}), Om = "0.5.12", zm = {
|
|
14953
14953
|
install(e) {
|
|
14954
14954
|
e.component("FlowMindMap", Rs), e.component("FlowMindMapOutline", us), e.component("FlowMindMapDrawer", hn), e.component("FlowMindMapDataPanel", ds), e.component("FlowMindMapMarkdownPanel", fs), e.component("FlowMindMapSettingsPanel", ps), e.component("FlowMindMapNotePanel", Ms), e.component("FlowMindMapApp", Cm);
|
|
14955
14955
|
}
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
`,Vo=e.defineComponent({__name:"MarkdownPanel",props:{data:{}},emits:["import"],setup(t,{emit:o}){const n=t,i=o,a=e.ref(Dn(n.data)),c=e.ref(null),s=e.ref(null),u=e.computed(()=>{try{const I=On(a.value||"");return c.value=null,I}catch(I){return c.value=I.message,{id:"preview_fallback",text:a.value||"(空)",children:[]}}}),d=e.computed(()=>Ot(u.value));let p=null;e.watch(a,()=>{p&&clearTimeout(p),p=setTimeout(()=>{var I;return(I=s.value)==null?void 0:I.resetView()},250)});function h(){try{const I=On(a.value||"");c.value=null,i("import",I)}catch(I){c.value=I.message}}function w(){a.value=Dn(n.data),c.value=null,e.nextTick(()=>{var I;return(I=s.value)==null?void 0:I.resetView()})}function C(){a.value="",c.value=null,e.nextTick(()=>{var I;return(I=s.value)==null?void 0:I.resetView()})}function $(){const I=document.createElement("input");I.type="file",I.accept=".md,text/markdown,text/plain",I.onchange=()=>{var k;const _=(k=I.files)==null?void 0:k[0];if(!_)return;const y=new FileReader;y.onload=()=>{typeof y.result=="string"&&(a.value=y.result,c.value=null,e.nextTick(()=>{var m;return(m=s.value)==null?void 0:m.resetView()}))},y.readAsText(_)},I.click()}function R(){const I=new Blob([a.value],{type:"text/markdown;charset=utf-8"}),_=URL.createObjectURL(I),y=document.createElement("a");y.href=_;const k=(n.data.text||"mindmap").trim()||"mindmap";y.download=`${k}.md`,y.click(),URL.revokeObjectURL(_)}function U(){a.value=Oc,c.value=null,e.nextTick(()=>{var I;return(I=s.value)==null?void 0:I.resetView()})}return(I,_)=>(e.openBlock(),e.createElementBlock("div",Ac,[e.createElementVNode("div",{class:"zm-md-toolbar"},[e.createElementVNode("button",{class:"zm-md-btn",title:"从 .md 文件加载",onClick:$},[..._[1]||(_[1]=[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M12 4 V15"}),e.createElementVNode("polyline",{points:"7 9 12 4 17 9"}),e.createElementVNode("path",{d:"M4 19 H20"})],-1),e.createElementVNode("span",null,"加载 .md",-1)])]),e.createElementVNode("button",{class:"zm-md-btn",title:"把当前导图导出为 .md",onClick:R},[..._[2]||(_[2]=[e.createElementVNode("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M12 15 V4"}),e.createElementVNode("polyline",{points:"7 9 12 4 17 9"}),e.createElementVNode("path",{d:"M4 19 H20"})],-1),e.createElementVNode("span",null,"导出 .md",-1)])]),_[3]||(_[3]=e.createElementVNode("span",{class:"zm-md-spacer"},null,-1)),e.createElementVNode("button",{class:"zm-md-btn",title:"用示例内容填充",onClick:U},"示例"),e.createElementVNode("button",{class:"zm-md-btn",title:"覆盖为当前导图",onClick:w},"同步"),e.createElementVNode("button",{class:"zm-md-btn",title:"清空",onClick:C},"清空")]),c.value?(e.openBlock(),e.createElementBlock("div",_c,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Rc,[e.createElementVNode("div",Bc,[_[4]||(_[4]=e.createElementVNode("div",{class:"zm-md-pane-header"},[e.createElementVNode("span",null,"Markdown"),e.createElementVNode("span",{class:"zm-md-hint"},"# 根 · ## 一级 · ### 二级 …")],-1)),e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":_[0]||(_[0]=y=>a.value=y),class:"zm-md-textarea",spellcheck:"false",placeholder:"# 标题…"},null,512),[[e.vModelText,a.value]])]),e.createElementVNode("div",vc,[_[5]||(_[5]=e.createElementVNode("div",{class:"zm-md-pane-header"},[e.createElementVNode("span",null,"导图预览"),e.createElementVNode("span",{class:"zm-md-hint"},"只读")],-1)),e.createElementVNode("div",zc,[e.createVNode(ei,{ref_key:"previewRef",ref:s,data:d.value,readonly:"","preview-mode":""},null,8,["data"])])])]),e.createElementVNode("div",Ic,[e.createElementVNode("button",{class:"zm-md-btn is-primary",disabled:!a.value.trim(),onClick:h},"应用到导图",8,Lc)])]))}}),Dc={class:"zm-settings-panel"},Vc={class:"zm-settings-section"},$c={class:"zm-settings-field"},Pc={class:"zm-settings-control"},Fc={class:"zm-color-input-wrap"},Uc=["value"],Hc={class:"zm-color-input-text"},Wc={class:"zm-swatch-row zm-swatch-row--compact"},Gc=["title","onClick"],jc={class:"zm-settings-field"},Kc=["value"],Yc={class:"zm-slider"},qc=["value"],Xc={class:"zm-settings-field"},Zc=["value"],Jc={class:"zm-slider"},Qc=["value"],ed={class:"zm-settings-field zm-line-style-field"},td={class:"zm-line-style-group"},nd=["title","onClick"],od=["viewBox"],id={key:0,d:"M 0 12 Q 14 2, 28 12",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round"},rd={key:1,d:"M 0 10 L 12 10 Q 16 10 16 6 L 16 4 L 28 4",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},ld={key:2,d:"M 0 10 L 16 10 L 16 4 L 28 4",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},ad={key:3,d:"M 0 12 C 8 0, 20 0, 28 12",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round"},sd={key:4,x1:"0",y1:"12",x2:"28",y2:"12",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round"},cd={class:"zm-line-style-label"},dd={class:"zm-settings-field zm-line-style-field"},ud={class:"zm-line-style-group"},fd=["title","onClick"],md=["viewBox"],pd={key:0,d:"M 0 12 Q 14 2, 28 12",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round"},hd={key:1,d:"M 0 10 L 12 10 Q 16 10 16 6 L 16 4 L 28 4",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},gd={key:2,d:"M 0 10 L 16 10 L 16 4 L 28 4",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round","stroke-linejoin":"round"},bd={key:3,d:"M 0 12 C 8 0, 20 0, 28 12",fill:"none",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round"},kd={key:4,x1:"0",y1:"12",x2:"28",y2:"12",stroke:"currentColor","stroke-width":"2.2","stroke-linecap":"round"},yd={class:"zm-line-style-label"},xd={key:0,class:"zm-settings-field"},Ed={class:"zm-settings-label"},wd={class:"zm-settings-sub"},Nd=["value"],Sd={key:1,class:"zm-slider"},Td=["value"],Cd={class:"zm-settings-field zm-line-style-field"},Md={class:"zm-line-style-group"},Ad=["title","onClick"],_d={viewBox:"0 0 28 18",width:"28",height:"18",preserveAspectRatio:"none"},Rd={key:0,d:"M 8 9 L 0 9 M 20 9 L 28 9",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},Bd={key:1,d:"M 14 9 L 0 9 M 14 9 L 28 9",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round"},vd={key:2,d:"M 8 7 L 0 4 M 8 9 L 0 9 M 8 11 L 0 14 M 20 7 L 28 4 M 20 9 L 28 9 M 20 11 L 28 14",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round"},zd={class:"zm-line-style-label"},Id={class:"zm-settings-field"},Ld={key:2,class:"zm-palette-picker"},Od={class:"zm-palette-list"},Dd=["onClick"],Vd={class:"zm-palette-option-name"},$d={class:"zm-palette-option-swatches"},Pd={key:0,class:"zm-palette-custom-editor"},Fd=["value"],Ud={class:"zm-palette-custom-actions"},Hd={class:"zm-settings-field"},Wd={key:3,class:"zm-settings-field"},Gd={class:"zm-settings-label"},jd={class:"zm-settings-sub"},Kd=["value"],Yd={key:4,class:"zm-slider"},qd=["value"],Xd={key:5,class:"zm-settings-field"},Zd={class:"zm-settings-field"},Jd={class:"zm-settings-preview"},Qd={viewBox:"0 0 200 70",width:"100%",height:"70",preserveAspectRatio:"none"},eu=["x1","y1","x2","y2","stroke","stroke-width"],tu={key:0,class:"zm-settings-section"},nu={class:"zm-settings-section-title"},ou={key:0,class:"zm-settings-section-sub"},iu={class:"zm-settings-field"},ru={class:"zm-settings-value-tag"},lu={class:"zm-swatch-row"},au=["title","onClick"],su={class:"zm-swatch zm-swatch--custom",title:"自定义颜色"},cu=["value"],du={class:"zm-settings-field"},uu={class:"zm-settings-value-tag"},fu={class:"zm-swatch-row"},mu=["title","onClick"],pu={class:"zm-swatch zm-swatch--custom",title:"自定义颜色"},hu=["value"],gu={class:"zm-settings-field"},bu=["value"],ku=["value"],yu={class:"zm-settings-field"},xu=["value"],Eu={class:"zm-slider"},wu=["value"],Nu={class:"zm-settings-section zm-settings-section--actions"},$o=((t,o)=>{const n=t.__vccOpts||t;for(const[i,a]of o)n[i]=a;return n})(e.defineComponent({__name:"SettingsPanel",props:{settings:{},hasSelection:{type:Boolean},selectedNodeText:{},nodeStyle:{}},emits:["update:settings","update:nodeStyle","reset"],setup(t,{emit:o}){const n=t,i=o;function a(Y,E){i("update:settings",{[Y]:E})}const c=[{value:"arc",label:"圆弧",viewBox:"0 0 28 14"},{value:"rounded-elbow",label:"圆角折线",viewBox:"0 0 28 14"},{value:"elbow",label:"折线",viewBox:"0 0 28 14"},{value:"straight",label:"直线",viewBox:"0 0 28 14"},{value:"curve",label:"S曲线",viewBox:"0 0 28 14"}],s=c,u=[{value:"edge",label:"左右中点"},{value:"center",label:"节点正中心"},{value:"proportional",label:"按比例计算"}],d=[{value:100,label:"100"},{value:200,label:"200"},{value:300,label:"300"},{value:400,label:"400 (常规)"},{value:500,label:"500"},{value:600,label:"600 (半粗)"},{value:700,label:"700 (粗体)"},{value:800,label:"800"},{value:900,label:"900"}];function p(Y){i("update:nodeStyle",Y)}const h=e.computed(()=>[...mn,...n.settings.customPalettes]),w=e.reactive({});function C(Y){return w[Y.id]===void 0&&(w[Y.id]=Y.colors.join(`
|
|
56
56
|
`)),w[Y.id]}function $(Y){const E=w[Y.id]??"",re=Ka(E);if(re.length===0){w[Y.id]=Y.colors.join(`
|
|
57
57
|
`);return}const pe=n.settings.customPalettes.map(de=>de.id===Y.id?{...de,colors:re}:de);i("update:settings",{customPalettes:pe})}function R(){const Y=h.value.find(Ee=>Ee.id===n.settings.branchPaletteId),E=Y?[...Y.colors]:[...mn[0].colors],re="custom-";let pe=re+(n.settings.customPalettes.length+1);for(;mn.some(Ee=>Ee.id===pe)||n.settings.customPalettes.some(Ee=>Ee.id===pe);)pe=re+Math.random().toString(36).slice(2,7);const de={id:pe,name:`我的配色 ${n.settings.customPalettes.length+1}`,colors:E};i("update:settings",{customPalettes:[...n.settings.customPalettes,de],branchPaletteId:pe}),w[pe]=E.join(`
|
|
58
|
-
`)}function U(Y){const E=n.settings.customPalettes.filter(pe=>pe.id!==Y.id),re=n.settings.branchPaletteId===Y.id?"default":n.settings.branchPaletteId;i("update:settings",{customPalettes:E,...re!==n.settings.branchPaletteId?{branchPaletteId:re}:{}}),delete w[Y.id]}const I=["#f87171","#fb923c","#fbbf24","#a3e635","#34d399","#22d3ee","#818cf8","#c084fc","#1e2937","#f8fafc","#94a3b8"],_=["#f8fafc","#ffffff","#e2e8f0","#1e2937","#0f172a","#fef3c7","#dbeafe","#dcfce7","#fce7f3","#f1f5f9"],y=[0,1,2,3],k=["#f87171","#fb923c","#34d399","#818cf8"];function m(Y,E,re,pe){if(E<=1)return re;const de=Y/(E-1);return re+(pe-re)*de}function P(Y,E,re,pe){const de=E*Math.pow(pe,Y);return Math.max(re,de)}const j=e.computed(()=>{const Y=n.settings.lineWidthStart,E=n.settings.lineWidthEnd,re=n.settings.taperedEdge,pe=y.length,de=8,Ee=192,ee=h.value.find(ue=>ue.id===n.settings.branchPaletteId),ce=ee&&ee.colors.length?ee.colors:k;return y.map((ue,g)=>{const V=10+g*60/(pe-1);return{x1:de,y1:V,x2:Ee,y2:V,w:re?P(ue,Y,E,n.settings.lineWidthTaper):m(ue,pe,Y,E),color:n.settings.rainbowBranch?ce[g%ce.length]:"#94a3b8"}})});return(Y,E)=>{var re,pe,de,Ee,ee,ce,ue;return e.openBlock(),e.createElementBlock("div",Dc,[e.createElementVNode("section",Vc,[E[48]||(E[48]=e.createElementVNode("h4",{class:"zm-settings-section-title"},"画布",-1)),e.createElementVNode("div",$c,[E[25]||(E[25]=e.createElementVNode("span",{class:"zm-settings-label"},"画布背景色",-1)),e.createElementVNode("div",Pc,[e.createElementVNode("label",Fc,[e.createElementVNode("input",{type:"color",class:"zm-color-input",value:t.settings.canvasBg||"#f8fafc",onInput:E[0]||(E[0]=g=>a("canvasBg",g.target.value))},null,40,Uc),e.createElementVNode("span",Hc,e.toDisplayString(t.settings.canvasBg||"默认"),1)])])]),e.createElementVNode("div",Wc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(_,g=>e.createElementVNode("button",{key:"cbg-"+g,class:e.normalizeClass(["zm-swatch",{"is-active":(t.settings.canvasBg||"#f8fafc")===g}]),style:e.normalizeStyle({background:g}),title:g,onClick:V=>a("canvasBg",g)},null,14,Gc)),64)),e.createElementVNode("button",{class:"zm-swatch is-reset",title:"恢复默认",onClick:E[1]||(E[1]=g=>a("canvasBg",void 0))},"∅")]),E[49]||(E[49]=e.createElementVNode("div",{class:"zm-settings-divider"},null,-1)),e.createElementVNode("div",jc,[E[26]||(E[26]=e.createElementVNode("span",{class:"zm-settings-label"},"线条粗端 (根部)",-1)),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"0.2",value:t.settings.lineWidthStart,onChange:E[2]||(E[2]=g=>a("lineWidthStart",parseFloat(g.target.value)||0))},null,40,Kc)]),e.createElementVNode("div",Yc,[E[27]||(E[27]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"0.4",max:"20",step:"0.2",value:t.settings.lineWidthStart,onInput:E[3]||(E[3]=g=>a("lineWidthStart",parseFloat(g.target.value)))},null,40,qc)]),e.createElementVNode("div",Xc,[E[28]||(E[28]=e.createElementVNode("span",{class:"zm-settings-label"},"线条细端 (子端)",-1)),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"0.2",value:t.settings.lineWidthEnd,onChange:E[4]||(E[4]=g=>a("lineWidthEnd",parseFloat(g.target.value)||0))},null,40,Zc)]),e.createElementVNode("div",Jc,[E[29]||(E[29]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"0.1",max:"6",step:"0.1",value:t.settings.lineWidthEnd,onInput:E[5]||(E[5]=g=>a("lineWidthEnd",parseFloat(g.target.value)))},null,40,Qc)]),E[50]||(E[50]=e.createElementVNode("div",{class:"zm-settings-divider"},null,-1)),e.createElementVNode("div",ed,[E[30]||(E[30]=e.createElementVNode("span",{class:"zm-settings-label"},"根节点线条",-1)),e.createElementVNode("div",td,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),g=>(e.openBlock(),e.createElementBlock("button",{key:g.value,class:e.normalizeClass(["zm-line-style-btn",{"is-on":t.settings.rootLineStyle===g.value}]),title:g.label,onClick:V=>a("rootLineStyle",g.value)},[(e.openBlock(),e.createElementBlock("svg",{viewBox:g.viewBox,width:"28",height:"14",preserveAspectRatio:"none"},[g.value==="arc"?(e.openBlock(),e.createElementBlock("path",id)):g.value==="rounded-elbow"?(e.openBlock(),e.createElementBlock("path",rd)):g.value==="elbow"?(e.openBlock(),e.createElementBlock("path",ld)):g.value==="curve"?(e.openBlock(),e.createElementBlock("path",ad)):(e.openBlock(),e.createElementBlock("line",sd))],8,od)),e.createElementVNode("span",cd,e.toDisplayString(g.label),1)],10,nd))),128))])]),e.createElementVNode("div",dd,[E[31]||(E[31]=e.createElementVNode("span",{class:"zm-settings-label"},"非根节点线条",-1)),e.createElementVNode("div",ud,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(c,g=>e.createElementVNode("button",{key:g.value,class:e.normalizeClass(["zm-line-style-btn",{"is-on":t.settings.lineStyle===g.value}]),title:g.label,onClick:V=>a("lineStyle",g.value)},[(e.openBlock(),e.createElementBlock("svg",{viewBox:g.viewBox,width:"28",height:"14",preserveAspectRatio:"none"},[g.value==="arc"?(e.openBlock(),e.createElementBlock("path",pd)):g.value==="rounded-elbow"?(e.openBlock(),e.createElementBlock("path",hd)):g.value==="elbow"?(e.openBlock(),e.createElementBlock("path",gd)):g.value==="curve"?(e.openBlock(),e.createElementBlock("path",bd)):(e.openBlock(),e.createElementBlock("line",kd))],8,md)),e.createElementVNode("span",yd,e.toDisplayString(g.label),1)],10,fd)),64))])]),t.settings.lineStyle==="rounded-elbow"||t.settings.rootLineStyle==="rounded-elbow"?(e.openBlock(),e.createElementBlock("div",xd,[e.createElementVNode("span",Ed,[E[32]||(E[32]=e.createTextVNode("圆角大小 ",-1)),e.createElementVNode("span",wd,e.toDisplayString(t.settings.elbowRadius)+"px",1)]),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"1",min:"2",max:"40",value:t.settings.elbowRadius,onChange:E[6]||(E[6]=g=>a("elbowRadius",parseFloat(g.target.value)||20))},null,40,Nd)])):e.createCommentVNode("",!0),t.settings.lineStyle==="rounded-elbow"||t.settings.rootLineStyle==="rounded-elbow"?(e.openBlock(),e.createElementBlock("div",Sd,[E[33]||(E[33]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"2",max:"40",step:"1",value:t.settings.elbowRadius,onInput:E[7]||(E[7]=g=>a("elbowRadius",parseFloat(g.target.value)))},null,40,Td)])):e.createCommentVNode("",!0),e.createElementVNode("div",Cd,[E[35]||(E[35]=e.createElementVNode("span",{class:"zm-settings-label"},"线条起点",-1)),e.createElementVNode("div",Md,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(u,g=>e.createElementVNode("button",{key:g.value,class:e.normalizeClass(["zm-line-style-btn",{"is-on":t.settings.lineOrigin===g.value}]),title:g.label,onClick:V=>a("lineOrigin",g.value)},[(e.openBlock(),e.createElementBlock("svg",_d,[E[34]||(E[34]=e.createElementVNode("rect",{x:"8",y:"6",width:"12",height:"6",rx:"2",fill:"none",stroke:"currentColor","stroke-width":"1.2",opacity:"0.5"},null,-1)),g.value==="edge"?(e.openBlock(),e.createElementBlock("path",Rd)):g.value==="center"?(e.openBlock(),e.createElementBlock("path",Bd)):(e.openBlock(),e.createElementBlock("path",vd))])),e.createElementVNode("span",zd,e.toDisplayString(g.label),1)],10,Ad)),64))])]),e.createElementVNode("div",Id,[E[37]||(E[37]=e.createElementVNode("span",{class:"zm-settings-label"},"一级分支彩虹色",-1)),e.createElementVNode("button",{class:e.normalizeClass(["zm-toggle",{"is-on":t.settings.rainbowBranch}]),onClick:E[8]||(E[8]=g=>a("rainbowBranch",!t.settings.rainbowBranch))},[...E[36]||(E[36]=[e.createElementVNode("span",{class:"zm-toggle-knob"},null,-1)])],2)]),t.settings.rainbowBranch?(e.openBlock(),e.createElementBlock("div",Ld,[E[38]||(E[38]=e.createElementVNode("div",{class:"zm-settings-field"},[e.createElementVNode("span",{class:"zm-settings-label"},"配色方案")],-1)),e.createElementVNode("div",Od,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,g=>(e.openBlock(),e.createElementBlock("button",{key:g.id,class:e.normalizeClass(["zm-palette-option",{"is-active":t.settings.branchPaletteId===g.id}]),onClick:V=>a("branchPaletteId",g.id)},[e.createElementVNode("span",Vd,e.toDisplayString(g.name),1),e.createElementVNode("span",$d,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.colors,(V,G)=>(e.openBlock(),e.createElementBlock("span",{key:G,class:"zm-palette-option-swatch",style:e.normalizeStyle({background:V})},null,4))),128))])],10,Dd))),128))]),t.settings.customPalettes.find(g=>g.id===t.settings.branchPaletteId)?(e.openBlock(),e.createElementBlock("div",Pd,[e.createElementVNode("textarea",{class:"zm-palette-textarea",rows:"3",spellcheck:"false",placeholder:"一行一个 hex,例如 #f87171",value:C(t.settings.customPalettes.find(g=>g.id===t.settings.branchPaletteId)),onInput:E[9]||(E[9]=g=>w[t.settings.customPalettes.find(V=>V.id===t.settings.branchPaletteId).id]=g.target.value)},null,40,Fd),e.createElementVNode("div",Ud,[e.createElementVNode("button",{type:"button",class:"zm-data-btn is-primary",onClick:E[10]||(E[10]=g=>$(t.settings.customPalettes.find(V=>V.id===t.settings.branchPaletteId)))},"保存"),e.createElementVNode("button",{type:"button",class:"zm-data-btn",onClick:E[11]||(E[11]=g=>U(t.settings.customPalettes.find(V=>V.id===t.settings.branchPaletteId)))},"删除")])])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"zm-palette-add",onClick:R},"+ 新建配色")])):e.createCommentVNode("",!0),E[51]||(E[51]=e.createElementVNode("div",{class:"zm-settings-divider"},null,-1)),e.createElementVNode("div",Hd,[E[40]||(E[40]=e.createElementVNode("span",{class:"zm-settings-label"},"每条连线独立渐变",-1)),e.createElementVNode("button",{class:e.normalizeClass(["zm-toggle",{"is-on":t.settings.taperedEdge}]),onClick:E[12]||(E[12]=g=>a("taperedEdge",!t.settings.taperedEdge))},[...E[39]||(E[39]=[e.createElementVNode("span",{class:"zm-toggle-knob"},null,-1)])],2)]),t.settings.taperedEdge?(e.openBlock(),e.createElementBlock("div",Wd,[e.createElementVNode("span",Gd,[E[41]||(E[41]=e.createTextVNode("层级衰减 ",-1)),e.createElementVNode("span",jd,e.toDisplayString(Math.round(t.settings.lineWidthTaper*100))+"%",1)]),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"0.05",min:"0.1",max:"1",value:t.settings.lineWidthTaper,onChange:E[13]||(E[13]=g=>a("lineWidthTaper",parseFloat(g.target.value)||.67))},null,40,Kd)])):e.createCommentVNode("",!0),t.settings.taperedEdge?(e.openBlock(),e.createElementBlock("div",Yd,[E[42]||(E[42]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"0.1",max:"1",step:"0.01",value:t.settings.lineWidthTaper,onInput:E[14]||(E[14]=g=>a("lineWidthTaper",parseFloat(g.target.value)))},null,40,qd)])):e.createCommentVNode("",!0),t.settings.taperedEdge?(e.openBlock(),e.createElementBlock("div",Xd,[E[44]||(E[44]=e.createElementVNode("span",{class:"zm-settings-label"},"非根节点相同粗细",-1)),e.createElementVNode("button",{class:e.normalizeClass(["zm-toggle",{"is-on":t.settings.uniformLineWidth}]),onClick:E[15]||(E[15]=g=>a("uniformLineWidth",!t.settings.uniformLineWidth))},[...E[43]||(E[43]=[e.createElementVNode("span",{class:"zm-toggle-knob"},null,-1)])],2)])):e.createCommentVNode("",!0),e.createElementVNode("div",Zd,[E[46]||(E[46]=e.createElementVNode("span",{class:"zm-settings-label"},"显示节点序号",-1)),e.createElementVNode("button",{class:e.normalizeClass(["zm-toggle",{"is-on":t.settings.showOrderBadge}]),onClick:E[16]||(E[16]=g=>a("showOrderBadge",!t.settings.showOrderBadge))},[...E[45]||(E[45]=[e.createElementVNode("span",{class:"zm-toggle-knob"},null,-1)])],2)]),e.createElementVNode("div",Jd,[(e.openBlock(),e.createElementBlock("svg",Qd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(j.value,(g,V)=>(e.openBlock(),e.createElementBlock("line",{key:V,x1:g.x1,y1:g.y1,x2:g.x2,y2:g.y2,stroke:t.settings.rainbowBranch?g.color:"#94a3b8","stroke-width":g.w,"stroke-linecap":"butt"},null,8,eu))),128))])),E[47]||(E[47]=e.createElementVNode("div",{class:"zm-settings-preview-labels"},[e.createElementVNode("span",null,"根"),e.createElementVNode("span",null,"1级"),e.createElementVNode("span",null,"2级"),e.createElementVNode("span",null,"3级")],-1))])]),t.hasSelection?(e.openBlock(),e.createElementBlock("section",tu,[e.createElementVNode("h4",nu,[E[52]||(E[52]=e.createTextVNode(" 节点 ",-1)),t.selectedNodeText?(e.openBlock(),e.createElementBlock("span",ou,'"'+e.toDisplayString(t.selectedNodeText)+'"',1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",iu,[E[53]||(E[53]=e.createElementVNode("span",{class:"zm-settings-label"},"背景颜色",-1)),e.createElementVNode("span",ru,e.toDisplayString(((re=t.nodeStyle)==null?void 0:re.bg)||"默认"),1)]),e.createElementVNode("div",lu,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(I,g=>{var V;return e.createElementVNode("button",{key:"bg-"+g,class:e.normalizeClass(["zm-swatch",{"is-active":((V=t.nodeStyle)==null?void 0:V.bg)===g}]),style:e.normalizeStyle({background:g}),title:g,onClick:G=>p({bg:g})},null,14,au)}),64)),e.createElementVNode("label",su,[e.createElementVNode("input",{type:"color",value:((pe=t.nodeStyle)==null?void 0:pe.bg)||"#ffffff",onInput:E[17]||(E[17]=g=>p({bg:g.target.value}))},null,40,cu)]),e.createElementVNode("button",{class:"zm-swatch is-reset",title:"清除",onClick:E[18]||(E[18]=g=>p({bg:void 0}))},"∅")]),e.createElementVNode("div",du,[E[54]||(E[54]=e.createElementVNode("span",{class:"zm-settings-label"},"文字颜色",-1)),e.createElementVNode("span",uu,e.toDisplayString(((de=t.nodeStyle)==null?void 0:de.textColor)||"默认"),1)]),e.createElementVNode("div",fu,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(I,g=>{var V;return e.createElementVNode("button",{key:"fg-"+g,class:e.normalizeClass(["zm-swatch",{"is-active":((V=t.nodeStyle)==null?void 0:V.textColor)===g}]),style:e.normalizeStyle({background:g}),title:g,onClick:G=>p({textColor:g})},null,14,mu)}),64)),e.createElementVNode("label",pu,[e.createElementVNode("input",{type:"color",value:((Ee=t.nodeStyle)==null?void 0:Ee.textColor)||"#1e2937",onInput:E[19]||(E[19]=g=>p({textColor:g.target.value}))},null,40,hu)]),e.createElementVNode("button",{class:"zm-swatch is-reset",title:"清除",onClick:E[20]||(E[20]=g=>p({textColor:void 0}))},"∅")]),E[58]||(E[58]=e.createElementVNode("div",{class:"zm-settings-divider"},null,-1)),e.createElementVNode("div",gu,[E[55]||(E[55]=e.createElementVNode("span",{class:"zm-settings-label"},"字重",-1)),e.createElementVNode("select",{class:"zm-select",value:((ee=t.nodeStyle)==null?void 0:ee.fontWeight)??400,onChange:E[21]||(E[21]=g=>p({fontWeight:parseInt(g.target.value)}))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(d,g=>e.createElementVNode("option",{key:g.value,value:g.value},e.toDisplayString(g.label),9,ku)),64))],40,bu)]),e.createElementVNode("div",yu,[E[56]||(E[56]=e.createElementVNode("span",{class:"zm-settings-label"},"文字大小",-1)),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"1",min:"8",max:"48",value:((ce=t.nodeStyle)==null?void 0:ce.fontSize)??14,onChange:E[22]||(E[22]=g=>p({fontSize:parseInt(g.target.value)||14}))},null,40,xu)]),e.createElementVNode("div",Eu,[E[57]||(E[57]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"8",max:"48",step:"1",value:((ue=t.nodeStyle)==null?void 0:ue.fontSize)??14,onInput:E[23]||(E[23]=g=>p({fontSize:parseInt(g.target.value)}))},null,40,wu)]),E[59]||(E[59]=e.createElementVNode("p",{class:"zm-settings-hint"},"仅作用于当前节点,不影响子节点。",-1))])):e.createCommentVNode("",!0),e.createElementVNode("section",Nu,[e.createElementVNode("button",{class:"zm-settings-reset",onClick:E[24]||(E[24]=g=>i("reset"))},"恢复默认设置")])])}}}),[["__scopeId","data-v-8119213a"]]),Cr=20;function Su(t,o){t.style.height="auto";const n=o.minRows*Cr,i=o.maxRows>0?o.maxRows*Cr:1/0,a=Math.max(n,Math.min(i,t.scrollHeight));t.style.height=a+"px",t.style.overflowY=t.scrollHeight>i?"auto":"hidden"}function xi(t,o={}){const n={minRows:o.minRows??3,maxRows:o.maxRows??12};function i(){const c=t.value;c&&Su(c,n)}function a(){i()}e.onMounted(async()=>{await e.nextTick();const c=t.value;c&&(c.addEventListener("input",a),i())}),e.watch(()=>{var c;return(c=t.value)==null?void 0:c.value},()=>i()),e.onBeforeUnmount(()=>{const c=t.value;c&&c.removeEventListener("input",a)})}function Tu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Mr(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(o=>{const n=t[o],i=typeof n;(i==="object"||i==="function")&&!Object.isFrozen(n)&&Mr(n)}),t}class Ar{constructor(o){o.data===void 0&&(o.data={}),this.data=o.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function _r(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function pn(t,...o){const n=Object.create(null);for(const i in t)n[i]=t[i];return o.forEach(function(i){for(const a in i)n[a]=i[a]}),n}const Cu="</span>",Rr=t=>!!t.scope,Mu=(t,{prefix:o})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const n=t.split(".");return[`${o}${n.shift()}`,...n.map((i,a)=>`${i}${"_".repeat(a+1)}`)].join(" ")}return`${o}${t}`};class Au{constructor(o,n){this.buffer="",this.classPrefix=n.classPrefix,o.walk(this)}addText(o){this.buffer+=_r(o)}openNode(o){if(!Rr(o))return;const n=Mu(o.scope,{prefix:this.classPrefix});this.span(n)}closeNode(o){Rr(o)&&(this.buffer+=Cu)}value(){return this.buffer}span(o){this.buffer+=`<span class="${o}">`}}const Br=(t={})=>{const o={children:[]};return Object.assign(o,t),o};class Ei{constructor(){this.rootNode=Br(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(o){this.top.children.push(o)}openNode(o){const n=Br({scope:o});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(o){return this.constructor._walk(o,this.rootNode)}static _walk(o,n){return typeof n=="string"?o.addText(n):n.children&&(o.openNode(n),n.children.forEach(i=>this._walk(o,i)),o.closeNode(n)),o}static _collapse(o){typeof o!="string"&&o.children&&(o.children.every(n=>typeof n=="string")?o.children=[o.children.join("")]:o.children.forEach(n=>{Ei._collapse(n)}))}}class _u extends Ei{constructor(o){super(),this.options=o}addText(o){o!==""&&this.add(o)}startScope(o){this.openNode(o)}endScope(){this.closeNode()}__addSublanguage(o,n){const i=o.root;n&&(i.scope=`language:${n}`),this.add(i)}toHTML(){return new Au(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function lo(t){return t?typeof t=="string"?t:t.source:null}function vr(t){return Nn("(?=",t,")")}function Ru(t){return Nn("(?:",t,")*")}function Bu(t){return Nn("(?:",t,")?")}function Nn(...t){return t.map(n=>lo(n)).join("")}function vu(t){const o=t[t.length-1];return typeof o=="object"&&o.constructor===Object?(t.splice(t.length-1,1),o):{}}function wi(...t){return"("+(vu(t).capture?"":"?:")+t.map(i=>lo(i)).join("|")+")"}function zr(t){return new RegExp(t.toString()+"|").exec("").length-1}function zu(t,o){const n=t&&t.exec(o);return n&&n.index===0}const Iu=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Ni(t,{joinWith:o}){let n=0;return t.map(i=>{n+=1;const a=n;let c=lo(i),s="";for(;c.length>0;){const u=Iu.exec(c);if(!u){s+=c;break}s+=c.substring(0,u.index),c=c.substring(u.index+u[0].length),u[0][0]==="\\"&&u[1]?s+="\\"+String(Number(u[1])+a):(s+=u[0],u[0]==="("&&n++)}return s}).map(i=>`(${i})`).join(o)}const Lu=/\b\B/,Ir="[a-zA-Z]\\w*",Si="[a-zA-Z_]\\w*",Lr="\\b\\d+(\\.\\d+)?",Or="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Dr="\\b(0b[01]+)",Ou="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Du=(t={})=>{const o=/^#![ ]*\//;return t.binary&&(t.begin=Nn(o,/.*\b/,t.binary,/\b.*/)),pn({scope:"meta",begin:o,end:/$/,relevance:0,"on:begin":(n,i)=>{n.index!==0&&i.ignoreMatch()}},t)},ao={begin:"\\\\[\\s\\S]",relevance:0},Vu={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ao]},$u={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ao]},Pu={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Po=function(t,o,n={}){const i=pn({scope:"comment",begin:t,end:o,contains:[]},n);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const a=wi("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:Nn(/[ ]+/,"(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},Fu=Po("//","$"),Uu=Po("/\\*","\\*/"),Hu=Po("#","$"),Wu={scope:"number",begin:Lr,relevance:0},Gu={scope:"number",begin:Or,relevance:0},ju={scope:"number",begin:Dr,relevance:0},Ku={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ao,{begin:/\[/,end:/\]/,relevance:0,contains:[ao]}]},Yu={scope:"title",begin:Ir,relevance:0},qu={scope:"title",begin:Si,relevance:0},Xu={begin:"\\.\\s*"+Si,relevance:0};var Fo=Object.freeze({__proto__:null,APOS_STRING_MODE:Vu,BACKSLASH_ESCAPE:ao,BINARY_NUMBER_MODE:ju,BINARY_NUMBER_RE:Dr,COMMENT:Po,C_BLOCK_COMMENT_MODE:Uu,C_LINE_COMMENT_MODE:Fu,C_NUMBER_MODE:Gu,C_NUMBER_RE:Or,END_SAME_AS_BEGIN:function(t){return Object.assign(t,{"on:begin":(o,n)=>{n.data._beginMatch=o[1]},"on:end":(o,n)=>{n.data._beginMatch!==o[1]&&n.ignoreMatch()}})},HASH_COMMENT_MODE:Hu,IDENT_RE:Ir,MATCH_NOTHING_RE:Lu,METHOD_GUARD:Xu,NUMBER_MODE:Wu,NUMBER_RE:Lr,PHRASAL_WORDS_MODE:Pu,QUOTE_STRING_MODE:$u,REGEXP_MODE:Ku,RE_STARTERS_RE:Ou,SHEBANG:Du,TITLE_MODE:Yu,UNDERSCORE_IDENT_RE:Si,UNDERSCORE_TITLE_MODE:qu});function Zu(t,o){t.input[t.index-1]==="."&&o.ignoreMatch()}function Ju(t,o){t.className!==void 0&&(t.scope=t.className,delete t.className)}function Qu(t,o){o&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=Zu,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function ef(t,o){Array.isArray(t.illegal)&&(t.illegal=wi(...t.illegal))}function tf(t,o){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function nf(t,o){t.relevance===void 0&&(t.relevance=1)}const of=(t,o)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},t);Object.keys(t).forEach(i=>{delete t[i]}),t.keywords=n.keywords,t.begin=Nn(n.beforeMatch,vr(n.begin)),t.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},t.relevance=0,delete n.beforeMatch},rf=["of","and","for","in","not","or","if","then","parent","list","value"],lf="keyword";function Vr(t,o,n=lf){const i=Object.create(null);return typeof t=="string"?a(n,t.split(" ")):Array.isArray(t)?a(n,t):Object.keys(t).forEach(function(c){Object.assign(i,Vr(t[c],o,c))}),i;function a(c,s){o&&(s=s.map(u=>u.toLowerCase())),s.forEach(function(u){const d=u.split("|");i[d[0]]=[c,af(d[0],d[1])]})}}function af(t,o){return o?Number(o):sf(t)?0:1}function sf(t){return rf.includes(t.toLowerCase())}const $r={},Sn=t=>{console.error(t)},Pr=(t,...o)=>{console.log(`WARN: ${t}`,...o)},Vn=(t,o)=>{$r[`${t}/${o}`]||(console.log(`Deprecated as of ${t}. ${o}`),$r[`${t}/${o}`]=!0)},Uo=new Error;function Fr(t,o,{key:n}){let i=0;const a=t[n],c={},s={};for(let u=1;u<=o.length;u++)s[u+i]=a[u],c[u+i]=!0,i+=zr(o[u-1]);t[n]=s,t[n]._emit=c,t[n]._multi=!0}function cf(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw Sn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Uo;if(typeof t.beginScope!="object"||t.beginScope===null)throw Sn("beginScope must be object"),Uo;Fr(t,t.begin,{key:"beginScope"}),t.begin=Ni(t.begin,{joinWith:""})}}function df(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw Sn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Uo;if(typeof t.endScope!="object"||t.endScope===null)throw Sn("endScope must be object"),Uo;Fr(t,t.end,{key:"endScope"}),t.end=Ni(t.end,{joinWith:""})}}function uf(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function ff(t){uf(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),cf(t),df(t)}function mf(t){function o(s,u){return new RegExp(lo(s),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(u?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(u,d){d.position=this.position++,this.matchIndexes[this.matchAt]=d,this.regexes.push([d,u]),this.matchAt+=zr(u)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const u=this.regexes.map(d=>d[1]);this.matcherRe=o(Ni(u,{joinWith:"|"}),!0),this.lastIndex=0}exec(u){this.matcherRe.lastIndex=this.lastIndex;const d=this.matcherRe.exec(u);if(!d)return null;const p=d.findIndex((w,C)=>C>0&&w!==void 0),h=this.matchIndexes[p];return d.splice(0,p),Object.assign(d,h)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(u){if(this.multiRegexes[u])return this.multiRegexes[u];const d=new n;return this.rules.slice(u).forEach(([p,h])=>d.addRule(p,h)),d.compile(),this.multiRegexes[u]=d,d}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(u,d){this.rules.push([u,d]),d.type==="begin"&&this.count++}exec(u){const d=this.getMatcher(this.regexIndex);d.lastIndex=this.lastIndex;let p=d.exec(u);if(this.resumingScanAtSamePosition()&&!(p&&p.index===this.lastIndex)){const h=this.getMatcher(0);h.lastIndex=this.lastIndex+1,p=h.exec(u)}return p&&(this.regexIndex+=p.position+1,this.regexIndex===this.count&&this.considerAll()),p}}function a(s){const u=new i;return s.contains.forEach(d=>u.addRule(d.begin,{rule:d,type:"begin"})),s.terminatorEnd&&u.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&u.addRule(s.illegal,{type:"illegal"}),u}function c(s,u){const d=s;if(s.isCompiled)return d;[Ju,tf,ff,of].forEach(h=>h(s,u)),t.compilerExtensions.forEach(h=>h(s,u)),s.__beforeBegin=null,[Qu,ef,nf].forEach(h=>h(s,u)),s.isCompiled=!0;let p=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),p=s.keywords.$pattern,delete s.keywords.$pattern),p=p||/\w+/,s.keywords&&(s.keywords=Vr(s.keywords,t.case_insensitive)),d.keywordPatternRe=o(p,!0),u&&(s.begin||(s.begin=/\B|\b/),d.beginRe=o(d.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(d.endRe=o(d.end)),d.terminatorEnd=lo(d.end)||"",s.endsWithParent&&u.terminatorEnd&&(d.terminatorEnd+=(s.end?"|":"")+u.terminatorEnd)),s.illegal&&(d.illegalRe=o(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(h){return pf(h==="self"?s:h)})),s.contains.forEach(function(h){c(h,d)}),s.starts&&c(s.starts,u),d.matcher=a(d),d}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=pn(t.classNameAliases||{}),c(t)}function Ur(t){return t?t.endsWithParent||Ur(t.starts):!1}function pf(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(o){return pn(t,{variants:null},o)})),t.cachedVariants?t.cachedVariants:Ur(t)?pn(t,{starts:t.starts?pn(t.starts):null}):Object.isFrozen(t)?pn(t):t}var hf="11.11.1";class gf extends Error{constructor(o,n){super(o),this.name="HTMLInjectionError",this.html=n}}const Ti=_r,Hr=pn,Wr=Symbol("nomatch"),bf=7,Gr=function(t){const o=Object.create(null),n=Object.create(null),i=[];let a=!0;const c="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let u={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:_u};function d(g){return u.noHighlightRe.test(g)}function p(g){let V=g.className+" ";V+=g.parentNode?g.parentNode.className:"";const G=u.languageDetectRe.exec(V);if(G){const oe=E(G[1]);return oe||(Pr(c.replace("{}",G[1])),Pr("Falling back to no-highlight mode for this block.",g)),oe?G[1]:"no-highlight"}return V.split(/\s+/).find(oe=>d(oe)||E(oe))}function h(g,V,G){let oe="",fe="";typeof V=="object"?(oe=g,G=V.ignoreIllegals,fe=V.language):(Vn("10.7.0","highlight(lang, code, ...args) has been deprecated."),Vn("10.7.0",`Please use highlight(code, options) instead.
|
|
58
|
+
`)}function U(Y){const E=n.settings.customPalettes.filter(pe=>pe.id!==Y.id),re=n.settings.branchPaletteId===Y.id?"default":n.settings.branchPaletteId;i("update:settings",{customPalettes:E,...re!==n.settings.branchPaletteId?{branchPaletteId:re}:{}}),delete w[Y.id]}const I=["#f87171","#fb923c","#fbbf24","#a3e635","#34d399","#22d3ee","#818cf8","#c084fc","#1e2937","#f8fafc","#94a3b8"],_=["#f8fafc","#ffffff","#e2e8f0","#1e2937","#0f172a","#fef3c7","#dbeafe","#dcfce7","#fce7f3","#f1f5f9"],y=[0,1,2,3],k=["#f87171","#fb923c","#34d399","#818cf8"];function m(Y,E,re,pe){if(E<=1)return re;const de=Y/(E-1);return re+(pe-re)*de}function P(Y,E,re,pe){const de=E*Math.pow(pe,Y);return Math.max(re,de)}const j=e.computed(()=>{const Y=n.settings.lineWidthStart,E=n.settings.lineWidthEnd,re=n.settings.taperedEdge,pe=y.length,de=8,Ee=192,ee=h.value.find(ue=>ue.id===n.settings.branchPaletteId),ce=ee&&ee.colors.length?ee.colors:k;return y.map((ue,g)=>{const V=10+g*60/(pe-1);return{x1:de,y1:V,x2:Ee,y2:V,w:re?P(ue,Y,E,n.settings.lineWidthTaper):m(ue,pe,Y,E),color:n.settings.rainbowBranch?ce[g%ce.length]:"#94a3b8"}})});return(Y,E)=>{var re,pe,de,Ee,ee,ce,ue;return e.openBlock(),e.createElementBlock("div",Dc,[e.createElementVNode("section",Vc,[E[48]||(E[48]=e.createElementVNode("h4",{class:"zm-settings-section-title"},"画布",-1)),e.createElementVNode("div",$c,[E[25]||(E[25]=e.createElementVNode("span",{class:"zm-settings-label"},"画布背景色",-1)),e.createElementVNode("div",Pc,[e.createElementVNode("label",Fc,[e.createElementVNode("input",{type:"color",class:"zm-color-input",value:t.settings.canvasBg||"#f8fafc",onInput:E[0]||(E[0]=g=>a("canvasBg",g.target.value))},null,40,Uc),e.createElementVNode("span",Hc,e.toDisplayString(t.settings.canvasBg||"默认"),1)])])]),e.createElementVNode("div",Wc,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(_,g=>e.createElementVNode("button",{key:"cbg-"+g,class:e.normalizeClass(["zm-swatch",{"is-active":(t.settings.canvasBg||"#f8fafc")===g}]),style:e.normalizeStyle({background:g}),title:g,onClick:V=>a("canvasBg",g)},null,14,Gc)),64)),e.createElementVNode("button",{class:"zm-swatch is-reset",title:"恢复默认",onClick:E[1]||(E[1]=g=>a("canvasBg",void 0))},"∅")]),E[49]||(E[49]=e.createElementVNode("div",{class:"zm-settings-divider"},null,-1)),e.createElementVNode("div",jc,[E[26]||(E[26]=e.createElementVNode("span",{class:"zm-settings-label"},"线条粗端 (根部)",-1)),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"0.2",value:t.settings.lineWidthStart,onChange:E[2]||(E[2]=g=>a("lineWidthStart",parseFloat(g.target.value)||0))},null,40,Kc)]),e.createElementVNode("div",Yc,[E[27]||(E[27]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"0.4",max:"20",step:"0.2",value:t.settings.lineWidthStart,onInput:E[3]||(E[3]=g=>a("lineWidthStart",parseFloat(g.target.value)))},null,40,qc)]),e.createElementVNode("div",Xc,[E[28]||(E[28]=e.createElementVNode("span",{class:"zm-settings-label"},"线条细端 (子端)",-1)),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"0.2",value:t.settings.lineWidthEnd,onChange:E[4]||(E[4]=g=>a("lineWidthEnd",parseFloat(g.target.value)||0))},null,40,Zc)]),e.createElementVNode("div",Jc,[E[29]||(E[29]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"0.1",max:"6",step:"0.1",value:t.settings.lineWidthEnd,onInput:E[5]||(E[5]=g=>a("lineWidthEnd",parseFloat(g.target.value)))},null,40,Qc)]),E[50]||(E[50]=e.createElementVNode("div",{class:"zm-settings-divider"},null,-1)),e.createElementVNode("div",ed,[E[30]||(E[30]=e.createElementVNode("span",{class:"zm-settings-label"},"根节点线条",-1)),e.createElementVNode("div",td,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(s),g=>(e.openBlock(),e.createElementBlock("button",{key:g.value,class:e.normalizeClass(["zm-line-style-btn",{"is-on":t.settings.rootLineStyle===g.value}]),title:g.label,onClick:V=>a("rootLineStyle",g.value)},[(e.openBlock(),e.createElementBlock("svg",{viewBox:g.viewBox,width:"28",height:"14",preserveAspectRatio:"none"},[g.value==="arc"?(e.openBlock(),e.createElementBlock("path",id)):g.value==="rounded-elbow"?(e.openBlock(),e.createElementBlock("path",rd)):g.value==="elbow"?(e.openBlock(),e.createElementBlock("path",ld)):g.value==="curve"?(e.openBlock(),e.createElementBlock("path",ad)):(e.openBlock(),e.createElementBlock("line",sd))],8,od)),e.createElementVNode("span",cd,e.toDisplayString(g.label),1)],10,nd))),128))])]),e.createElementVNode("div",dd,[E[31]||(E[31]=e.createElementVNode("span",{class:"zm-settings-label"},"非根节点线条",-1)),e.createElementVNode("div",ud,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(c,g=>e.createElementVNode("button",{key:g.value,class:e.normalizeClass(["zm-line-style-btn",{"is-on":t.settings.lineStyle===g.value}]),title:g.label,onClick:V=>a("lineStyle",g.value)},[(e.openBlock(),e.createElementBlock("svg",{viewBox:g.viewBox,width:"28",height:"14",preserveAspectRatio:"none"},[g.value==="arc"?(e.openBlock(),e.createElementBlock("path",pd)):g.value==="rounded-elbow"?(e.openBlock(),e.createElementBlock("path",hd)):g.value==="elbow"?(e.openBlock(),e.createElementBlock("path",gd)):g.value==="curve"?(e.openBlock(),e.createElementBlock("path",bd)):(e.openBlock(),e.createElementBlock("line",kd))],8,md)),e.createElementVNode("span",yd,e.toDisplayString(g.label),1)],10,fd)),64))])]),t.settings.lineStyle==="rounded-elbow"||t.settings.rootLineStyle==="rounded-elbow"?(e.openBlock(),e.createElementBlock("div",xd,[e.createElementVNode("span",Ed,[E[32]||(E[32]=e.createTextVNode("圆角大小 ",-1)),e.createElementVNode("span",wd,e.toDisplayString(t.settings.elbowRadius)+"px",1)]),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"1",min:"2",max:"40",value:t.settings.elbowRadius,onChange:E[6]||(E[6]=g=>a("elbowRadius",parseFloat(g.target.value)||20))},null,40,Nd)])):e.createCommentVNode("",!0),t.settings.lineStyle==="rounded-elbow"||t.settings.rootLineStyle==="rounded-elbow"?(e.openBlock(),e.createElementBlock("div",Sd,[E[33]||(E[33]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"2",max:"40",step:"1",value:t.settings.elbowRadius,onInput:E[7]||(E[7]=g=>a("elbowRadius",parseFloat(g.target.value)))},null,40,Td)])):e.createCommentVNode("",!0),e.createElementVNode("div",Cd,[E[35]||(E[35]=e.createElementVNode("span",{class:"zm-settings-label"},"线条起点",-1)),e.createElementVNode("div",Md,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(u,g=>e.createElementVNode("button",{key:g.value,class:e.normalizeClass(["zm-line-style-btn",{"is-on":t.settings.lineOrigin===g.value}]),title:g.label,onClick:V=>a("lineOrigin",g.value)},[(e.openBlock(),e.createElementBlock("svg",_d,[E[34]||(E[34]=e.createElementVNode("rect",{x:"8",y:"6",width:"12",height:"6",rx:"2",fill:"none",stroke:"currentColor","stroke-width":"1.2",opacity:"0.5"},null,-1)),g.value==="edge"?(e.openBlock(),e.createElementBlock("path",Rd)):g.value==="center"?(e.openBlock(),e.createElementBlock("path",Bd)):(e.openBlock(),e.createElementBlock("path",vd))])),e.createElementVNode("span",zd,e.toDisplayString(g.label),1)],10,Ad)),64))])]),e.createElementVNode("div",Id,[E[37]||(E[37]=e.createElementVNode("span",{class:"zm-settings-label"},"一级分支彩虹色",-1)),e.createElementVNode("button",{class:e.normalizeClass(["zm-toggle",{"is-on":t.settings.rainbowBranch}]),onClick:E[8]||(E[8]=g=>a("rainbowBranch",!t.settings.rainbowBranch))},[...E[36]||(E[36]=[e.createElementVNode("span",{class:"zm-toggle-knob"},null,-1)])],2)]),t.settings.rainbowBranch?(e.openBlock(),e.createElementBlock("div",Ld,[E[38]||(E[38]=e.createElementVNode("div",{class:"zm-settings-field"},[e.createElementVNode("span",{class:"zm-settings-label"},"配色方案")],-1)),e.createElementVNode("div",Od,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,g=>(e.openBlock(),e.createElementBlock("button",{key:g.id,class:e.normalizeClass(["zm-palette-option",{"is-active":t.settings.branchPaletteId===g.id}]),onClick:V=>a("branchPaletteId",g.id)},[e.createElementVNode("span",Vd,e.toDisplayString(g.name),1),e.createElementVNode("span",$d,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.colors,(V,G)=>(e.openBlock(),e.createElementBlock("span",{key:G,class:"zm-palette-option-swatch",style:e.normalizeStyle({background:V})},null,4))),128))])],10,Dd))),128))]),t.settings.customPalettes.find(g=>g.id===t.settings.branchPaletteId)?(e.openBlock(),e.createElementBlock("div",Pd,[e.createElementVNode("textarea",{class:"zm-palette-textarea",rows:"3",spellcheck:"false",placeholder:"一行一个 hex,例如 #f87171",value:C(t.settings.customPalettes.find(g=>g.id===t.settings.branchPaletteId)),onInput:E[9]||(E[9]=g=>w[t.settings.customPalettes.find(V=>V.id===t.settings.branchPaletteId).id]=g.target.value)},null,40,Fd),e.createElementVNode("div",Ud,[e.createElementVNode("button",{type:"button",class:"zm-data-btn is-primary",onClick:E[10]||(E[10]=g=>$(t.settings.customPalettes.find(V=>V.id===t.settings.branchPaletteId)))},"保存"),e.createElementVNode("button",{type:"button",class:"zm-data-btn",onClick:E[11]||(E[11]=g=>U(t.settings.customPalettes.find(V=>V.id===t.settings.branchPaletteId)))},"删除")])])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"zm-palette-add",onClick:R},"+ 新建配色")])):e.createCommentVNode("",!0),E[51]||(E[51]=e.createElementVNode("div",{class:"zm-settings-divider"},null,-1)),e.createElementVNode("div",Hd,[E[40]||(E[40]=e.createElementVNode("span",{class:"zm-settings-label"},"每条连线独立渐变",-1)),e.createElementVNode("button",{class:e.normalizeClass(["zm-toggle",{"is-on":t.settings.taperedEdge}]),onClick:E[12]||(E[12]=g=>a("taperedEdge",!t.settings.taperedEdge))},[...E[39]||(E[39]=[e.createElementVNode("span",{class:"zm-toggle-knob"},null,-1)])],2)]),t.settings.taperedEdge?(e.openBlock(),e.createElementBlock("div",Wd,[e.createElementVNode("span",Gd,[E[41]||(E[41]=e.createTextVNode("层级衰减 ",-1)),e.createElementVNode("span",jd,e.toDisplayString(Math.round(t.settings.lineWidthTaper*100))+"%",1)]),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"0.05",min:"0.1",max:"1",value:t.settings.lineWidthTaper,onChange:E[13]||(E[13]=g=>a("lineWidthTaper",parseFloat(g.target.value)||.67))},null,40,Kd)])):e.createCommentVNode("",!0),t.settings.taperedEdge?(e.openBlock(),e.createElementBlock("div",Yd,[E[42]||(E[42]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"0.1",max:"1",step:"0.01",value:t.settings.lineWidthTaper,onInput:E[14]||(E[14]=g=>a("lineWidthTaper",parseFloat(g.target.value)))},null,40,qd)])):e.createCommentVNode("",!0),t.settings.taperedEdge?(e.openBlock(),e.createElementBlock("div",Xd,[E[44]||(E[44]=e.createElementVNode("span",{class:"zm-settings-label"},"非根节点相同粗细",-1)),e.createElementVNode("button",{class:e.normalizeClass(["zm-toggle",{"is-on":t.settings.uniformLineWidth}]),onClick:E[15]||(E[15]=g=>a("uniformLineWidth",!t.settings.uniformLineWidth))},[...E[43]||(E[43]=[e.createElementVNode("span",{class:"zm-toggle-knob"},null,-1)])],2)])):e.createCommentVNode("",!0),e.createElementVNode("div",Zd,[E[46]||(E[46]=e.createElementVNode("span",{class:"zm-settings-label"},"显示节点序号",-1)),e.createElementVNode("button",{class:e.normalizeClass(["zm-toggle",{"is-on":t.settings.showOrderBadge}]),onClick:E[16]||(E[16]=g=>a("showOrderBadge",!t.settings.showOrderBadge))},[...E[45]||(E[45]=[e.createElementVNode("span",{class:"zm-toggle-knob"},null,-1)])],2)]),e.createElementVNode("div",Jd,[(e.openBlock(),e.createElementBlock("svg",Qd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(j.value,(g,V)=>(e.openBlock(),e.createElementBlock("line",{key:V,x1:g.x1,y1:g.y1,x2:g.x2,y2:g.y2,stroke:t.settings.rainbowBranch?g.color:"#94a3b8","stroke-width":g.w,"stroke-linecap":"butt"},null,8,eu))),128))])),E[47]||(E[47]=e.createElementVNode("div",{class:"zm-settings-preview-labels"},[e.createElementVNode("span",null,"根"),e.createElementVNode("span",null,"1级"),e.createElementVNode("span",null,"2级"),e.createElementVNode("span",null,"3级")],-1))])]),t.hasSelection?(e.openBlock(),e.createElementBlock("section",tu,[e.createElementVNode("h4",nu,[E[52]||(E[52]=e.createTextVNode(" 节点 ",-1)),t.selectedNodeText?(e.openBlock(),e.createElementBlock("span",ou,'"'+e.toDisplayString(t.selectedNodeText)+'"',1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",iu,[E[53]||(E[53]=e.createElementVNode("span",{class:"zm-settings-label"},"背景颜色",-1)),e.createElementVNode("span",ru,e.toDisplayString(((re=t.nodeStyle)==null?void 0:re.bg)||"默认"),1)]),e.createElementVNode("div",lu,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(I,g=>{var V;return e.createElementVNode("button",{key:"bg-"+g,class:e.normalizeClass(["zm-swatch",{"is-active":((V=t.nodeStyle)==null?void 0:V.bg)===g}]),style:e.normalizeStyle({background:g}),title:g,onClick:G=>p({bg:g})},null,14,au)}),64)),e.createElementVNode("label",su,[e.createElementVNode("input",{type:"color",value:((pe=t.nodeStyle)==null?void 0:pe.bg)||"#ffffff",onInput:E[17]||(E[17]=g=>p({bg:g.target.value}))},null,40,cu)]),e.createElementVNode("button",{class:"zm-swatch is-reset",title:"清除",onClick:E[18]||(E[18]=g=>p({bg:void 0}))},"∅")]),e.createElementVNode("div",du,[E[54]||(E[54]=e.createElementVNode("span",{class:"zm-settings-label"},"文字颜色",-1)),e.createElementVNode("span",uu,e.toDisplayString(((de=t.nodeStyle)==null?void 0:de.textColor)||"默认"),1)]),e.createElementVNode("div",fu,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(I,g=>{var V;return e.createElementVNode("button",{key:"fg-"+g,class:e.normalizeClass(["zm-swatch",{"is-active":((V=t.nodeStyle)==null?void 0:V.textColor)===g}]),style:e.normalizeStyle({background:g}),title:g,onClick:G=>p({textColor:g})},null,14,mu)}),64)),e.createElementVNode("label",pu,[e.createElementVNode("input",{type:"color",value:((Ee=t.nodeStyle)==null?void 0:Ee.textColor)||"#1e2937",onInput:E[19]||(E[19]=g=>p({textColor:g.target.value}))},null,40,hu)]),e.createElementVNode("button",{class:"zm-swatch is-reset",title:"清除",onClick:E[20]||(E[20]=g=>p({textColor:void 0}))},"∅")]),E[58]||(E[58]=e.createElementVNode("div",{class:"zm-settings-divider"},null,-1)),e.createElementVNode("div",gu,[E[55]||(E[55]=e.createElementVNode("span",{class:"zm-settings-label"},"字重",-1)),e.createElementVNode("select",{class:"zm-select",value:((ee=t.nodeStyle)==null?void 0:ee.fontWeight)??400,onChange:E[21]||(E[21]=g=>p({fontWeight:parseInt(g.target.value)}))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(d,g=>e.createElementVNode("option",{key:g.value,value:g.value},e.toDisplayString(g.label),9,ku)),64))],40,bu)]),e.createElementVNode("div",yu,[E[56]||(E[56]=e.createElementVNode("span",{class:"zm-settings-label"},"文字大小",-1)),e.createElementVNode("input",{class:"zm-settings-number",type:"number",step:"1",min:"8",max:"48",value:((ce=t.nodeStyle)==null?void 0:ce.fontSize)??14,onChange:E[22]||(E[22]=g=>p({fontSize:parseInt(g.target.value)||14}))},null,40,xu)]),e.createElementVNode("div",Eu,[E[57]||(E[57]=e.createElementVNode("div",{class:"zm-slider-track"},null,-1)),e.createElementVNode("input",{type:"range",min:"8",max:"48",step:"1",value:((ue=t.nodeStyle)==null?void 0:ue.fontSize)??14,onInput:E[23]||(E[23]=g=>p({fontSize:parseInt(g.target.value)}))},null,40,wu)]),E[59]||(E[59]=e.createElementVNode("p",{class:"zm-settings-hint"},"仅作用于当前节点,不影响子节点。",-1))])):e.createCommentVNode("",!0),e.createElementVNode("section",Nu,[e.createElementVNode("button",{class:"zm-settings-reset",onClick:E[24]||(E[24]=g=>i("reset"))},"恢复默认设置")])])}}}),[["__scopeId","data-v-ecc6e0c5"]]),Cr=20;function Su(t,o){t.style.height="auto";const n=o.minRows*Cr,i=o.maxRows>0?o.maxRows*Cr:1/0,a=Math.max(n,Math.min(i,t.scrollHeight));t.style.height=a+"px",t.style.overflowY=t.scrollHeight>i?"auto":"hidden"}function xi(t,o={}){const n={minRows:o.minRows??3,maxRows:o.maxRows??12};function i(){const c=t.value;c&&Su(c,n)}function a(){i()}e.onMounted(async()=>{await e.nextTick();const c=t.value;c&&(c.addEventListener("input",a),i())}),e.watch(()=>{var c;return(c=t.value)==null?void 0:c.value},()=>i()),e.onBeforeUnmount(()=>{const c=t.value;c&&c.removeEventListener("input",a)})}function Tu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Mr(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(o=>{const n=t[o],i=typeof n;(i==="object"||i==="function")&&!Object.isFrozen(n)&&Mr(n)}),t}class Ar{constructor(o){o.data===void 0&&(o.data={}),this.data=o.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function _r(t){return t.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function pn(t,...o){const n=Object.create(null);for(const i in t)n[i]=t[i];return o.forEach(function(i){for(const a in i)n[a]=i[a]}),n}const Cu="</span>",Rr=t=>!!t.scope,Mu=(t,{prefix:o})=>{if(t.startsWith("language:"))return t.replace("language:","language-");if(t.includes(".")){const n=t.split(".");return[`${o}${n.shift()}`,...n.map((i,a)=>`${i}${"_".repeat(a+1)}`)].join(" ")}return`${o}${t}`};class Au{constructor(o,n){this.buffer="",this.classPrefix=n.classPrefix,o.walk(this)}addText(o){this.buffer+=_r(o)}openNode(o){if(!Rr(o))return;const n=Mu(o.scope,{prefix:this.classPrefix});this.span(n)}closeNode(o){Rr(o)&&(this.buffer+=Cu)}value(){return this.buffer}span(o){this.buffer+=`<span class="${o}">`}}const Br=(t={})=>{const o={children:[]};return Object.assign(o,t),o};class Ei{constructor(){this.rootNode=Br(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(o){this.top.children.push(o)}openNode(o){const n=Br({scope:o});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(o){return this.constructor._walk(o,this.rootNode)}static _walk(o,n){return typeof n=="string"?o.addText(n):n.children&&(o.openNode(n),n.children.forEach(i=>this._walk(o,i)),o.closeNode(n)),o}static _collapse(o){typeof o!="string"&&o.children&&(o.children.every(n=>typeof n=="string")?o.children=[o.children.join("")]:o.children.forEach(n=>{Ei._collapse(n)}))}}class _u extends Ei{constructor(o){super(),this.options=o}addText(o){o!==""&&this.add(o)}startScope(o){this.openNode(o)}endScope(){this.closeNode()}__addSublanguage(o,n){const i=o.root;n&&(i.scope=`language:${n}`),this.add(i)}toHTML(){return new Au(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function lo(t){return t?typeof t=="string"?t:t.source:null}function vr(t){return Nn("(?=",t,")")}function Ru(t){return Nn("(?:",t,")*")}function Bu(t){return Nn("(?:",t,")?")}function Nn(...t){return t.map(n=>lo(n)).join("")}function vu(t){const o=t[t.length-1];return typeof o=="object"&&o.constructor===Object?(t.splice(t.length-1,1),o):{}}function wi(...t){return"("+(vu(t).capture?"":"?:")+t.map(i=>lo(i)).join("|")+")"}function zr(t){return new RegExp(t.toString()+"|").exec("").length-1}function zu(t,o){const n=t&&t.exec(o);return n&&n.index===0}const Iu=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function Ni(t,{joinWith:o}){let n=0;return t.map(i=>{n+=1;const a=n;let c=lo(i),s="";for(;c.length>0;){const u=Iu.exec(c);if(!u){s+=c;break}s+=c.substring(0,u.index),c=c.substring(u.index+u[0].length),u[0][0]==="\\"&&u[1]?s+="\\"+String(Number(u[1])+a):(s+=u[0],u[0]==="("&&n++)}return s}).map(i=>`(${i})`).join(o)}const Lu=/\b\B/,Ir="[a-zA-Z]\\w*",Si="[a-zA-Z_]\\w*",Lr="\\b\\d+(\\.\\d+)?",Or="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Dr="\\b(0b[01]+)",Ou="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Du=(t={})=>{const o=/^#![ ]*\//;return t.binary&&(t.begin=Nn(o,/.*\b/,t.binary,/\b.*/)),pn({scope:"meta",begin:o,end:/$/,relevance:0,"on:begin":(n,i)=>{n.index!==0&&i.ignoreMatch()}},t)},ao={begin:"\\\\[\\s\\S]",relevance:0},Vu={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ao]},$u={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ao]},Pu={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},Po=function(t,o,n={}){const i=pn({scope:"comment",begin:t,end:o,contains:[]},n);i.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const a=wi("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return i.contains.push({begin:Nn(/[ ]+/,"(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),i},Fu=Po("//","$"),Uu=Po("/\\*","\\*/"),Hu=Po("#","$"),Wu={scope:"number",begin:Lr,relevance:0},Gu={scope:"number",begin:Or,relevance:0},ju={scope:"number",begin:Dr,relevance:0},Ku={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ao,{begin:/\[/,end:/\]/,relevance:0,contains:[ao]}]},Yu={scope:"title",begin:Ir,relevance:0},qu={scope:"title",begin:Si,relevance:0},Xu={begin:"\\.\\s*"+Si,relevance:0};var Fo=Object.freeze({__proto__:null,APOS_STRING_MODE:Vu,BACKSLASH_ESCAPE:ao,BINARY_NUMBER_MODE:ju,BINARY_NUMBER_RE:Dr,COMMENT:Po,C_BLOCK_COMMENT_MODE:Uu,C_LINE_COMMENT_MODE:Fu,C_NUMBER_MODE:Gu,C_NUMBER_RE:Or,END_SAME_AS_BEGIN:function(t){return Object.assign(t,{"on:begin":(o,n)=>{n.data._beginMatch=o[1]},"on:end":(o,n)=>{n.data._beginMatch!==o[1]&&n.ignoreMatch()}})},HASH_COMMENT_MODE:Hu,IDENT_RE:Ir,MATCH_NOTHING_RE:Lu,METHOD_GUARD:Xu,NUMBER_MODE:Wu,NUMBER_RE:Lr,PHRASAL_WORDS_MODE:Pu,QUOTE_STRING_MODE:$u,REGEXP_MODE:Ku,RE_STARTERS_RE:Ou,SHEBANG:Du,TITLE_MODE:Yu,UNDERSCORE_IDENT_RE:Si,UNDERSCORE_TITLE_MODE:qu});function Zu(t,o){t.input[t.index-1]==="."&&o.ignoreMatch()}function Ju(t,o){t.className!==void 0&&(t.scope=t.className,delete t.className)}function Qu(t,o){o&&t.beginKeywords&&(t.begin="\\b("+t.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",t.__beforeBegin=Zu,t.keywords=t.keywords||t.beginKeywords,delete t.beginKeywords,t.relevance===void 0&&(t.relevance=0))}function ef(t,o){Array.isArray(t.illegal)&&(t.illegal=wi(...t.illegal))}function tf(t,o){if(t.match){if(t.begin||t.end)throw new Error("begin & end are not supported with match");t.begin=t.match,delete t.match}}function nf(t,o){t.relevance===void 0&&(t.relevance=1)}const of=(t,o)=>{if(!t.beforeMatch)return;if(t.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},t);Object.keys(t).forEach(i=>{delete t[i]}),t.keywords=n.keywords,t.begin=Nn(n.beforeMatch,vr(n.begin)),t.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},t.relevance=0,delete n.beforeMatch},rf=["of","and","for","in","not","or","if","then","parent","list","value"],lf="keyword";function Vr(t,o,n=lf){const i=Object.create(null);return typeof t=="string"?a(n,t.split(" ")):Array.isArray(t)?a(n,t):Object.keys(t).forEach(function(c){Object.assign(i,Vr(t[c],o,c))}),i;function a(c,s){o&&(s=s.map(u=>u.toLowerCase())),s.forEach(function(u){const d=u.split("|");i[d[0]]=[c,af(d[0],d[1])]})}}function af(t,o){return o?Number(o):sf(t)?0:1}function sf(t){return rf.includes(t.toLowerCase())}const $r={},Sn=t=>{console.error(t)},Pr=(t,...o)=>{console.log(`WARN: ${t}`,...o)},Vn=(t,o)=>{$r[`${t}/${o}`]||(console.log(`Deprecated as of ${t}. ${o}`),$r[`${t}/${o}`]=!0)},Uo=new Error;function Fr(t,o,{key:n}){let i=0;const a=t[n],c={},s={};for(let u=1;u<=o.length;u++)s[u+i]=a[u],c[u+i]=!0,i+=zr(o[u-1]);t[n]=s,t[n]._emit=c,t[n]._multi=!0}function cf(t){if(Array.isArray(t.begin)){if(t.skip||t.excludeBegin||t.returnBegin)throw Sn("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),Uo;if(typeof t.beginScope!="object"||t.beginScope===null)throw Sn("beginScope must be object"),Uo;Fr(t,t.begin,{key:"beginScope"}),t.begin=Ni(t.begin,{joinWith:""})}}function df(t){if(Array.isArray(t.end)){if(t.skip||t.excludeEnd||t.returnEnd)throw Sn("skip, excludeEnd, returnEnd not compatible with endScope: {}"),Uo;if(typeof t.endScope!="object"||t.endScope===null)throw Sn("endScope must be object"),Uo;Fr(t,t.end,{key:"endScope"}),t.end=Ni(t.end,{joinWith:""})}}function uf(t){t.scope&&typeof t.scope=="object"&&t.scope!==null&&(t.beginScope=t.scope,delete t.scope)}function ff(t){uf(t),typeof t.beginScope=="string"&&(t.beginScope={_wrap:t.beginScope}),typeof t.endScope=="string"&&(t.endScope={_wrap:t.endScope}),cf(t),df(t)}function mf(t){function o(s,u){return new RegExp(lo(s),"m"+(t.case_insensitive?"i":"")+(t.unicodeRegex?"u":"")+(u?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(u,d){d.position=this.position++,this.matchIndexes[this.matchAt]=d,this.regexes.push([d,u]),this.matchAt+=zr(u)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const u=this.regexes.map(d=>d[1]);this.matcherRe=o(Ni(u,{joinWith:"|"}),!0),this.lastIndex=0}exec(u){this.matcherRe.lastIndex=this.lastIndex;const d=this.matcherRe.exec(u);if(!d)return null;const p=d.findIndex((w,C)=>C>0&&w!==void 0),h=this.matchIndexes[p];return d.splice(0,p),Object.assign(d,h)}}class i{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(u){if(this.multiRegexes[u])return this.multiRegexes[u];const d=new n;return this.rules.slice(u).forEach(([p,h])=>d.addRule(p,h)),d.compile(),this.multiRegexes[u]=d,d}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(u,d){this.rules.push([u,d]),d.type==="begin"&&this.count++}exec(u){const d=this.getMatcher(this.regexIndex);d.lastIndex=this.lastIndex;let p=d.exec(u);if(this.resumingScanAtSamePosition()&&!(p&&p.index===this.lastIndex)){const h=this.getMatcher(0);h.lastIndex=this.lastIndex+1,p=h.exec(u)}return p&&(this.regexIndex+=p.position+1,this.regexIndex===this.count&&this.considerAll()),p}}function a(s){const u=new i;return s.contains.forEach(d=>u.addRule(d.begin,{rule:d,type:"begin"})),s.terminatorEnd&&u.addRule(s.terminatorEnd,{type:"end"}),s.illegal&&u.addRule(s.illegal,{type:"illegal"}),u}function c(s,u){const d=s;if(s.isCompiled)return d;[Ju,tf,ff,of].forEach(h=>h(s,u)),t.compilerExtensions.forEach(h=>h(s,u)),s.__beforeBegin=null,[Qu,ef,nf].forEach(h=>h(s,u)),s.isCompiled=!0;let p=null;return typeof s.keywords=="object"&&s.keywords.$pattern&&(s.keywords=Object.assign({},s.keywords),p=s.keywords.$pattern,delete s.keywords.$pattern),p=p||/\w+/,s.keywords&&(s.keywords=Vr(s.keywords,t.case_insensitive)),d.keywordPatternRe=o(p,!0),u&&(s.begin||(s.begin=/\B|\b/),d.beginRe=o(d.begin),!s.end&&!s.endsWithParent&&(s.end=/\B|\b/),s.end&&(d.endRe=o(d.end)),d.terminatorEnd=lo(d.end)||"",s.endsWithParent&&u.terminatorEnd&&(d.terminatorEnd+=(s.end?"|":"")+u.terminatorEnd)),s.illegal&&(d.illegalRe=o(s.illegal)),s.contains||(s.contains=[]),s.contains=[].concat(...s.contains.map(function(h){return pf(h==="self"?s:h)})),s.contains.forEach(function(h){c(h,d)}),s.starts&&c(s.starts,u),d.matcher=a(d),d}if(t.compilerExtensions||(t.compilerExtensions=[]),t.contains&&t.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return t.classNameAliases=pn(t.classNameAliases||{}),c(t)}function Ur(t){return t?t.endsWithParent||Ur(t.starts):!1}function pf(t){return t.variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(o){return pn(t,{variants:null},o)})),t.cachedVariants?t.cachedVariants:Ur(t)?pn(t,{starts:t.starts?pn(t.starts):null}):Object.isFrozen(t)?pn(t):t}var hf="11.11.1";class gf extends Error{constructor(o,n){super(o),this.name="HTMLInjectionError",this.html=n}}const Ti=_r,Hr=pn,Wr=Symbol("nomatch"),bf=7,Gr=function(t){const o=Object.create(null),n=Object.create(null),i=[];let a=!0;const c="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]};let u={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:_u};function d(g){return u.noHighlightRe.test(g)}function p(g){let V=g.className+" ";V+=g.parentNode?g.parentNode.className:"";const G=u.languageDetectRe.exec(V);if(G){const oe=E(G[1]);return oe||(Pr(c.replace("{}",G[1])),Pr("Falling back to no-highlight mode for this block.",g)),oe?G[1]:"no-highlight"}return V.split(/\s+/).find(oe=>d(oe)||E(oe))}function h(g,V,G){let oe="",fe="";typeof V=="object"?(oe=g,G=V.ignoreIllegals,fe=V.language):(Vn("10.7.0","highlight(lang, code, ...args) has been deprecated."),Vn("10.7.0",`Please use highlight(code, options) instead.
|
|
59
59
|
https://github.com/highlightjs/highlight.js/issues/2277`),fe=g,oe=V),G===void 0&&(G=!0);const O={code:oe,language:fe};ce("before:highlight",O);const L=O.result?O.result:w(O.language,O.code,G);return L.code=O.code,ce("after:highlight",L),L}function w(g,V,G,oe){const fe=Object.create(null);function O(q,le){return q.keywords[le]}function L(){if(!me.keywords){De.addText(ze);return}let q=0;me.keywordPatternRe.lastIndex=0;let le=me.keywordPatternRe.exec(ze),xe="";for(;le;){xe+=ze.substring(q,le.index);const Re=it.case_insensitive?le[0].toLowerCase():le[0],Ge=O(me,Re);if(Ge){const[lt,Mt]=Ge;if(De.addText(xe),xe="",fe[Re]=(fe[Re]||0)+1,fe[Re]<=bf&&(Ft+=Mt),lt.startsWith("_"))xe+=le[0];else{const Bn=it.classNameAliases[lt]||lt;z(le[0],Bn)}}else xe+=le[0];q=me.keywordPatternRe.lastIndex,le=me.keywordPatternRe.exec(ze)}xe+=ze.substring(q),De.addText(xe)}function se(){if(ze==="")return;let q=null;if(typeof me.subLanguage=="string"){if(!o[me.subLanguage]){De.addText(ze);return}q=w(me.subLanguage,ze,!0,mt[me.subLanguage]),mt[me.subLanguage]=q._top}else q=$(ze,me.subLanguage.length?me.subLanguage:null);me.relevance>0&&(Ft+=q.relevance),De.__addSublanguage(q._emitter,q.language)}function ke(){me.subLanguage!=null?se():L(),ze=""}function z(q,le){q!==""&&(De.startScope(le),De.addText(q),De.endScope())}function S(q,le){let xe=1;const Re=le.length-1;for(;xe<=Re;){if(!q._emit[xe]){xe++;continue}const Ge=it.classNameAliases[q[xe]]||q[xe],lt=le[xe];Ge?z(lt,Ge):(ze=lt,L(),ze=""),xe++}}function F(q,le){return q.scope&&typeof q.scope=="string"&&De.openNode(it.classNameAliases[q.scope]||q.scope),q.beginScope&&(q.beginScope._wrap?(z(ze,it.classNameAliases[q.beginScope._wrap]||q.beginScope._wrap),ze=""):q.beginScope._multi&&(S(q.beginScope,le),ze="")),me=Object.create(q,{parent:{value:me}}),me}function W(q,le,xe){let Re=zu(q.endRe,xe);if(Re){if(q["on:end"]){const Ge=new Ar(q);q["on:end"](le,Ge),Ge.isMatchIgnored&&(Re=!1)}if(Re){for(;q.endsParent&&q.parent;)q=q.parent;return q}}if(q.endsWithParent)return W(q.parent,le,xe)}function te(q){return me.matcher.regexIndex===0?(ze+=q[0],1):(wt=!0,0)}function ye(q){const le=q[0],xe=q.rule,Re=new Ar(xe),Ge=[xe.__beforeBegin,xe["on:begin"]];for(const lt of Ge)if(lt&&(lt(q,Re),Re.isMatchIgnored))return te(le);return xe.skip?ze+=le:(xe.excludeBegin&&(ze+=le),ke(),!xe.returnBegin&&!xe.excludeBegin&&(ze=le)),F(xe,q),xe.returnBegin?0:le.length}function nt(q){const le=q[0],xe=V.substring(q.index),Re=W(me,q,xe);if(!Re)return Wr;const Ge=me;me.endScope&&me.endScope._wrap?(ke(),z(le,me.endScope._wrap)):me.endScope&&me.endScope._multi?(ke(),S(me.endScope,q)):Ge.skip?ze+=le:(Ge.returnEnd||Ge.excludeEnd||(ze+=le),ke(),Ge.excludeEnd&&(ze=le));do me.scope&&De.closeNode(),!me.skip&&!me.subLanguage&&(Ft+=me.relevance),me=me.parent;while(me!==Re.parent);return Re.starts&&F(Re.starts,q),Ge.returnEnd?0:le.length}function ft(){const q=[];for(let le=me;le!==it;le=le.parent)le.scope&&q.unshift(le.scope);q.forEach(le=>De.openNode(le))}let ot={};function ln(q,le){const xe=le&&le[0];if(ze+=q,xe==null)return ke(),0;if(ot.type==="begin"&&le.type==="end"&&ot.index===le.index&&xe===""){if(ze+=V.slice(le.index,le.index+1),!a){const Re=new Error(`0 width match regex (${g})`);throw Re.languageName=g,Re.badRule=ot.rule,Re}return 1}if(ot=le,le.type==="begin")return ye(le);if(le.type==="illegal"&&!G){const Re=new Error('Illegal lexeme "'+xe+'" for mode "'+(me.scope||"<unnamed>")+'"');throw Re.mode=me,Re}else if(le.type==="end"){const Re=nt(le);if(Re!==Wr)return Re}if(le.type==="illegal"&&xe==="")return ze+=`
|
|
60
60
|
`,1;if(Ct>1e5&&Ct>le.index*3)throw new Error("potential infinite loop, way more iterations than matches");return ze+=xe,xe.length}const it=E(g);if(!it)throw Sn(c.replace("{}",g)),new Error('Unknown language: "'+g+'"');const an=mf(it);let Pt="",me=oe||an;const mt={},De=new u.__emitter(u);ft();let ze="",Ft=0,rt=0,Ct=0,wt=!1;try{if(it.__emitTokens)it.__emitTokens(V,De);else{for(me.matcher.considerAll();;){Ct++,wt?wt=!1:me.matcher.considerAll(),me.matcher.lastIndex=rt;const q=me.matcher.exec(V);if(!q)break;const le=V.substring(rt,q.index),xe=ln(le,q);rt=q.index+xe}ln(V.substring(rt))}return De.finalize(),Pt=De.toHTML(),{language:g,value:Pt,relevance:Ft,illegal:!1,_emitter:De,_top:me}}catch(q){if(q.message&&q.message.includes("Illegal"))return{language:g,value:Ti(V),illegal:!0,relevance:0,_illegalBy:{message:q.message,index:rt,context:V.slice(rt-100,rt+100),mode:q.mode,resultSoFar:Pt},_emitter:De};if(a)return{language:g,value:Ti(V),illegal:!1,relevance:0,errorRaised:q,_emitter:De,_top:me};throw q}}function C(g){const V={value:Ti(g),illegal:!1,relevance:0,_top:s,_emitter:new u.__emitter(u)};return V._emitter.addText(g),V}function $(g,V){V=V||u.languages||Object.keys(o);const G=C(g),oe=V.filter(E).filter(pe).map(ke=>w(ke,g,!1));oe.unshift(G);const fe=oe.sort((ke,z)=>{if(ke.relevance!==z.relevance)return z.relevance-ke.relevance;if(ke.language&&z.language){if(E(ke.language).supersetOf===z.language)return 1;if(E(z.language).supersetOf===ke.language)return-1}return 0}),[O,L]=fe,se=O;return se.secondBest=L,se}function R(g,V,G){const oe=V&&n[V]||G;g.classList.add("hljs"),g.classList.add(`language-${oe}`)}function U(g){let V=null;const G=p(g);if(d(G))return;if(ce("before:highlightElement",{el:g,language:G}),g.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",g);return}if(g.children.length>0&&(u.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(g)),u.throwUnescapedHTML))throw new gf("One of your code blocks includes unescaped HTML.",g.innerHTML);V=g;const oe=V.textContent,fe=G?h(oe,{language:G,ignoreIllegals:!0}):$(oe);g.innerHTML=fe.value,g.dataset.highlighted="yes",R(g,G,fe.language),g.result={language:fe.language,re:fe.relevance,relevance:fe.relevance},fe.secondBest&&(g.secondBest={language:fe.secondBest.language,relevance:fe.secondBest.relevance}),ce("after:highlightElement",{el:g,result:fe,text:oe})}function I(g){u=Hr(u,g)}const _=()=>{m(),Vn("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function y(){m(),Vn("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let k=!1;function m(){function g(){m()}if(document.readyState==="loading"){k||window.addEventListener("DOMContentLoaded",g,!1),k=!0;return}document.querySelectorAll(u.cssSelector).forEach(U)}function P(g,V){let G=null;try{G=V(t)}catch(oe){if(Sn("Language definition for '{}' could not be registered.".replace("{}",g)),a)Sn(oe);else throw oe;G=s}G.name||(G.name=g),o[g]=G,G.rawDefinition=V.bind(null,t),G.aliases&&re(G.aliases,{languageName:g})}function j(g){delete o[g];for(const V of Object.keys(n))n[V]===g&&delete n[V]}function Y(){return Object.keys(o)}function E(g){return g=(g||"").toLowerCase(),o[g]||o[n[g]]}function re(g,{languageName:V}){typeof g=="string"&&(g=[g]),g.forEach(G=>{n[G.toLowerCase()]=V})}function pe(g){const V=E(g);return V&&!V.disableAutodetect}function de(g){g["before:highlightBlock"]&&!g["before:highlightElement"]&&(g["before:highlightElement"]=V=>{g["before:highlightBlock"](Object.assign({block:V.el},V))}),g["after:highlightBlock"]&&!g["after:highlightElement"]&&(g["after:highlightElement"]=V=>{g["after:highlightBlock"](Object.assign({block:V.el},V))})}function Ee(g){de(g),i.push(g)}function ee(g){const V=i.indexOf(g);V!==-1&&i.splice(V,1)}function ce(g,V){const G=g;i.forEach(function(oe){oe[G]&&oe[G](V)})}function ue(g){return Vn("10.7.0","highlightBlock will be removed entirely in v12.0"),Vn("10.7.0","Please use highlightElement now."),U(g)}Object.assign(t,{highlight:h,highlightAuto:$,highlightAll:m,highlightElement:U,highlightBlock:ue,configure:I,initHighlighting:_,initHighlightingOnLoad:y,registerLanguage:P,unregisterLanguage:j,listLanguages:Y,getLanguage:E,registerAliases:re,autoDetection:pe,inherit:Hr,addPlugin:Ee,removePlugin:ee}),t.debugMode=function(){a=!1},t.safeMode=function(){a=!0},t.versionString=hf,t.regex={concat:Nn,lookahead:vr,either:wi,optional:Bu,anyNumberOfTimes:Ru};for(const g in Fo)typeof Fo[g]=="object"&&Mr(Fo[g]);return Object.assign(t,Fo),t},$n=Gr({});$n.newInstance=()=>Gr({});var kf=$n;$n.HighlightJS=$n,$n.default=$n;const Ci=Tu(kf);function Mi(t){const o=t.regex,n={},i={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:o.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},i]});const a={className:"subst",begin:/\$\(/,end:/\)/,contains:[t.BACKSLASH_ESCAPE]},c=t.inherit(t.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[t.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},u={className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,n,a]};a.contains.push(u);const d={match:/\\"/},p={className:"string",begin:/'/,end:/'/},h={match:/\\'/},w={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},t.NUMBER_MODE,n]},C=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],$=t.SHEBANG({binary:`(${C.join("|")})`,relevance:10}),R={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[t.inherit(t.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},U=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],I=["true","false"],_={match:/(\/[a-z._-]+)+/},y=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],k=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],m=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],P=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:U,literal:I,built_in:[...y,...k,"set","shopt",...m,...P]},contains:[$,t.SHEBANG(),R,w,c,s,_,u,d,p,h,n]}}const yf=t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),xf=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Ef=["defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],wf=[...xf,...Ef],Nf=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),Sf=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),Tf=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),Cf=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function Mf(t){const o=t.regex,n=yf(t),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},a="and or not only",c=/@-?\w[\w]*(-\w+)*/,s="[a-zA-Z-][a-zA-Z0-9_-]*",u=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,i,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+s,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+Sf.join("|")+")"},{begin:":(:)?("+Tf.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+Cf.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...u,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...u,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:o.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:c},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:a,attribute:Nf.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...u,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+wf.join("|")+")\\b"}]}}function jr(t){const c={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:c,illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{className:"string",variants:[t.QUOTE_STRING_MODE,t.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[t.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:c,illegal:/["']/}]}]}}var Pn="[0-9](_*[0-9])*",Ho=`\\.(${Pn})`,Wo="[0-9a-fA-F](_*[0-9a-fA-F])*",Kr={className:"number",variants:[{begin:`(\\b(${Pn})((${Ho})|\\.)?|(${Ho}))[eE][+-]?(${Pn})[fFdD]?\\b`},{begin:`\\b(${Pn})((${Ho})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Ho})[fFdD]?\\b`},{begin:`\\b(${Pn})[fFdD]\\b`},{begin:`\\b0[xX]((${Wo})\\.?|(${Wo})?\\.(${Wo}))[pP][+-]?(${Pn})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${Wo})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Yr(t,o,n){return n===-1?"":t.replace(o,i=>Yr(t,o,n-1))}function Af(t){const o=t.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",i=n+Yr("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),d={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},p={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},h={className:"params",begin:/\(/,end:/\)/,keywords:d,relevance:0,contains:[t.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:d,illegal:/<\/|#/,contains:[t.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[t.BACKSLASH_ESCAPE]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[o.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[h,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+i+"\\s+)",t.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:d,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:d,relevance:0,contains:[p,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,Kr,t.C_BLOCK_COMMENT_MODE]},t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE]},Kr,p]}}const qr="[A-Za-z$_][0-9A-Za-z$_]*",_f=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Rf=["true","false","null","undefined","NaN","Infinity"],Xr=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Zr=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Jr=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Bf=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],vf=[].concat(Jr,Xr,Zr);function Qr(t){const o=t.regex,n=(G,{after:oe})=>{const fe="</"+G[0].slice(1);return G.input.indexOf(fe,oe)!==-1},i=qr,a={begin:"<>",end:"</>"},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(G,oe)=>{const fe=G[0].length+G.index,O=G.input[fe];if(O==="<"||O===","){oe.ignoreMatch();return}O===">"&&(n(G,{after:fe})||oe.ignoreMatch());let L;const se=G.input.substring(fe);if(L=se.match(/^\s*=/)){oe.ignoreMatch();return}if((L=se.match(/^\s+extends\s+/))&&L.index===0){oe.ignoreMatch();return}}},u={$pattern:qr,keyword:_f,literal:Rf,built_in:vf,"variable.language":Bf},d="[0-9](_?[0-9])*",p=`\\.(${d})`,h="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",w={className:"number",variants:[{begin:`(\\b(${h})((${p})|\\.)?|(${p}))[eE][+-]?(${d})\\b`},{begin:`\\b(${h})\\b((${p})\\b|\\.)?|(${p})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},C={className:"subst",begin:"\\$\\{",end:"\\}",keywords:u,contains:[]},$={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,C],subLanguage:"xml"}},R={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,C],subLanguage:"css"}},U={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,C],subLanguage:"graphql"}},I={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,C]},y={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},k=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,$,R,U,I,{match:/\$\d+/},w];C.contains=k.concat({begin:/\{/,end:/\}/,keywords:u,contains:["self"].concat(k)});const m=[].concat(y,C.contains),P=m.concat([{begin:/(\s*)\(/,end:/\)/,keywords:u,contains:["self"].concat(m)}]),j={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:P},Y={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,o.concat(i,"(",o.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},E={relevance:0,match:o.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Xr,...Zr]}},re={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},pe={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[j],illegal:/%/},de={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Ee(G){return o.concat("(?!",G.join("|"),")")}const ee={match:o.concat(/\b/,Ee([...Jr,"super","import"].map(G=>`${G}\\s*\\(`)),i,o.lookahead(/\s*\(/)),className:"title.function",relevance:0},ce={begin:o.concat(/\./,o.lookahead(o.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},ue={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},j]},g="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",V={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,o.lookahead(g)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[j]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:u,exports:{PARAMS_CONTAINS:P,CLASS_REFERENCE:E},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),re,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,$,R,U,I,y,{match:/\$\d+/},w,E,{scope:"attr",match:i+o.lookahead(":"),relevance:0},V,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[y,t.REGEXP_MODE,{className:"function",begin:g,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:P}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:a.begin,end:a.end},{match:c},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},pe,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[j,t.inherit(t.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},ce,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[j]},ee,de,Y,ue,{match:/\$[(.]/}]}}function zf(t){const o={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},i=["true","false","null"],a={scope:"literal",beginKeywords:i.join(" ")};return{name:"JSON",aliases:["jsonc"],keywords:{literal:i},contains:[o,n,t.QUOTE_STRING_MODE,a,t.C_NUMBER_MODE,t.C_LINE_COMMENT_MODE,t.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}function el(t){const o=t.regex,n={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},i={begin:"^[-\\*]{3,}",end:"$"},a={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},c={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},s={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},u=/[A-Za-z][A-Za-z0-9+.-]*/,d={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:o.concat(/\[.+?\]\(/,u,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},p={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},h={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},w=t.inherit(p,{contains:[]}),C=t.inherit(h,{contains:[]});p.contains.push(C),h.contains.push(w);let $=[n,d];return[p,h,w,C].forEach(_=>{_.contains=_.contains.concat($)}),$=$.concat(p,h),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:$},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:$}]}]},n,c,p,h,{className:"quote",begin:"^>\\s+",contains:$,end:"$"},a,i,d,s,{scope:"literal",match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function tl(t){const o=t.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),i=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],u={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},d={className:"meta",begin:/^(>>>|\.\.\.) /},p={className:"subst",begin:/\{/,end:/\}/,keywords:u,illegal:/#/},h={begin:/\{\{/,relevance:0},w={className:"string",contains:[t.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,d],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[t.BACKSLASH_ESCAPE,d,h,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[t.BACKSLASH_ESCAPE,d,h,p]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[t.BACKSLASH_ESCAPE,h,p]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[t.BACKSLASH_ESCAPE,h,p]},t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},C="[0-9](_?[0-9])*",$=`(\\b(${C}))?\\.(${C})|\\b(${C})\\.`,R=`\\b|${i.join("|")}`,U={className:"number",relevance:0,variants:[{begin:`(\\b(${C})|(${$}))[eE][+-]?(${C})[jJ]?(?=${R})`},{begin:`(${$})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${R})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${R})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${R})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${R})`},{begin:`\\b(${C})[jJ](?=${R})`}]},I={className:"comment",begin:o.lookahead(/# type:/),end:/$/,keywords:u,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},_={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:["self",d,U,w,t.HASH_COMMENT_MODE]}]};return p.contains=[w,U,d],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:u,illegal:/(<\/|\?)|=>/,contains:[d,U,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},w,I,t.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[_]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[U,_,w]}]}}function nl(t){const o=t.regex,n=/(r#)?/,i=o.concat(n,t.UNDERSCORE_IDENT_RE),a=o.concat(n,t.IDENT_RE),c={className:"title.function.invoke",relevance:0,begin:o.concat(/\b/,/(?!let|for|while|if|else|match\b)/,a,o.lookahead(/\s*\(/))},s="([ui](8|16|32|64|128|size)|f(32|64))?",u=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],d=["true","false","Some","None","Ok","Err"],p=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],h=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:t.IDENT_RE+"!?",type:h,keyword:u,literal:d,built_in:p},illegal:"</",contains:[t.C_LINE_COMMENT_MODE,t.COMMENT("/\\*","\\*/",{contains:["self"]}),t.inherit(t.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+s},{begin:"\\b0o([0-7_]+)"+s},{begin:"\\b0x([A-Fa-f0-9_]+)"+s},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+s}],relevance:0},{begin:[/fn/,/\s+/,i],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[t.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,i],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,i,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,i],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,i],className:{1:"keyword",3:"title.class"}},{begin:t.IDENT_RE+"::",keywords:{keyword:"Self",built_in:p,type:h}},{className:"punctuation",begin:"->"},c]}}function If(t){const o=t.regex,n=t.COMMENT("--","$"),i={scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},a={begin:/"/,end:/"/,contains:[{match:/""/}]},c=["true","false","unknown"],s=["double precision","large object","with timezone","without timezone"],u=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],d=["add","asc","collation","desc","final","first","last","view"],p=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],h=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],w=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],C=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],$=h,R=[...p,...d].filter(P=>!h.includes(P)),U={scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},I={scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},_={match:o.concat(/\b/,o.either(...$),/\s*\(/),relevance:0,keywords:{built_in:$}};function y(P){return o.concat(/\b/,o.either(...P.map(j=>j.replace(/\s+/,"\\s+"))),/\b/)}const k={scope:"keyword",match:y(C),relevance:0};function m(P,{exceptions:j,when:Y}={}){const E=Y;return j=j||[],P.map(re=>re.match(/\|\d+$/)||j.includes(re)?re:E(re)?`${re}|0`:re)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:m(R,{when:P=>P.length<3}),literal:c,type:u,built_in:w},contains:[{scope:"type",match:y(s)},k,_,U,i,a,t.C_NUMBER_MODE,t.C_BLOCK_COMMENT_MODE,n,I]}}const Go="[A-Za-z$_][0-9A-Za-z$_]*",ol=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],il=["true","false","null","undefined","NaN","Infinity"],rl=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ll=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],al=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],sl=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],cl=[].concat(al,rl,ll);function Lf(t){const o=t.regex,n=(G,{after:oe})=>{const fe="</"+G[0].slice(1);return G.input.indexOf(fe,oe)!==-1},i=Go,a={begin:"<>",end:"</>"},c=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(G,oe)=>{const fe=G[0].length+G.index,O=G.input[fe];if(O==="<"||O===","){oe.ignoreMatch();return}O===">"&&(n(G,{after:fe})||oe.ignoreMatch());let L;const se=G.input.substring(fe);if(L=se.match(/^\s*=/)){oe.ignoreMatch();return}if((L=se.match(/^\s+extends\s+/))&&L.index===0){oe.ignoreMatch();return}}},u={$pattern:Go,keyword:ol,literal:il,built_in:cl,"variable.language":sl},d="[0-9](_?[0-9])*",p=`\\.(${d})`,h="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",w={className:"number",variants:[{begin:`(\\b(${h})((${p})|\\.)?|(${p}))[eE][+-]?(${d})\\b`},{begin:`\\b(${h})\\b((${p})\\b|\\.)?|(${p})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},C={className:"subst",begin:"\\$\\{",end:"\\}",keywords:u,contains:[]},$={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,C],subLanguage:"xml"}},R={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,C],subLanguage:"css"}},U={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[t.BACKSLASH_ESCAPE,C],subLanguage:"graphql"}},I={className:"string",begin:"`",end:"`",contains:[t.BACKSLASH_ESCAPE,C]},y={className:"comment",variants:[t.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:i+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),t.C_BLOCK_COMMENT_MODE,t.C_LINE_COMMENT_MODE]},k=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,$,R,U,I,{match:/\$\d+/},w];C.contains=k.concat({begin:/\{/,end:/\}/,keywords:u,contains:["self"].concat(k)});const m=[].concat(y,C.contains),P=m.concat([{begin:/(\s*)\(/,end:/\)/,keywords:u,contains:["self"].concat(m)}]),j={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:P},Y={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,o.concat(i,"(",o.concat(/\./,i),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,i],scope:{1:"keyword",3:"title.class"}}]},E={relevance:0,match:o.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...rl,...ll]}},re={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},pe={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[j],illegal:/%/},de={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function Ee(G){return o.concat("(?!",G.join("|"),")")}const ee={match:o.concat(/\b/,Ee([...al,"super","import"].map(G=>`${G}\\s*\\(`)),i,o.lookahead(/\s*\(/)),className:"title.function",relevance:0},ce={begin:o.concat(/\./,o.lookahead(o.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},ue={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},j]},g="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+t.UNDERSCORE_IDENT_RE+")\\s*=>",V={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,o.lookahead(g)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[j]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:u,exports:{PARAMS_CONTAINS:P,CLASS_REFERENCE:E},illegal:/#(?![$_A-z])/,contains:[t.SHEBANG({label:"shebang",binary:"node",relevance:5}),re,t.APOS_STRING_MODE,t.QUOTE_STRING_MODE,$,R,U,I,y,{match:/\$\d+/},w,E,{scope:"attr",match:i+o.lookahead(":"),relevance:0},V,{begin:"("+t.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[y,t.REGEXP_MODE,{className:"function",begin:g,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:t.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:u,contains:P}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:a.begin,end:a.end},{match:c},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:"xml",contains:[{begin:s.begin,end:s.end,skip:!0,contains:["self"]}]}]},pe,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+t.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[j,t.inherit(t.TITLE_MODE,{begin:i,className:"title.function"})]},{match:/\.\.\./,relevance:0},ce,{match:"\\$"+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[j]},ee,de,Y,ue,{match:/\$[(.]/}]}}function dl(t){const o=t.regex,n=Lf(t),i=Go,a=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],c={begin:[/namespace/,/\s+/,t.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},s={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:a},contains:[n.exports.CLASS_REFERENCE]},u={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},d=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],p={$pattern:Go,keyword:ol.concat(d),literal:il,built_in:cl.concat(a),"variable.language":sl},h={className:"meta",begin:"@"+i},w=(U,I,_)=>{const y=U.contains.findIndex(k=>k.label===I);if(y===-1)throw new Error("can not find mode to replace");U.contains.splice(y,1,_)};Object.assign(n.keywords,p),n.exports.PARAMS_CONTAINS.push(h);const C=n.contains.find(U=>U.scope==="attr"),$=Object.assign({},C,{match:o.concat(i,o.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,C,$]),n.contains=n.contains.concat([h,c,s,$]),w(n,"shebang",t.SHEBANG()),w(n,"use_strict",u);const R=n.contains.find(U=>U.label==="func.def");return R.relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function ul(t){const o=t.regex,n=o.concat(/[\p{L}_]/u,o.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),i=/[\p{L}0-9._:-]+/u,a={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},c={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=t.inherit(c,{begin:/\(/,end:/\)/}),u=t.inherit(t.APOS_STRING_MODE,{className:"string"}),d=t.inherit(t.QUOTE_STRING_MODE,{className:"string"}),p={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:i,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[a]},{begin:/'/,end:/'/,contains:[a]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[c,d,u,s,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[c,s,d,u]}]}]},t.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},a,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[d]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[p],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[p],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:o.concat(/</,o.lookahead(o.concat(n,o.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:p}]},{className:"tag",begin:o.concat(/<\//,o.lookahead(o.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function fl(t){const o="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",i={className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},a={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},c={className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},s={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[t.BACKSLASH_ESCAPE,a]},u=t.inherit(s,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),C={className:"number",begin:"\\b"+"[0-9]{4}(-[0-9][0-9]){0,2}"+"([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?"+"(\\.[0-9]*)?"+"([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?"+"\\b"},$={end:",",endsWithParent:!0,excludeEnd:!0,keywords:o,relevance:0},R={begin:/\{/,end:/\}/,contains:[$],illegal:"\\n",relevance:0},U={begin:"\\[",end:"\\]",contains:[$],illegal:"\\n",relevance:0},I=[i,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+t.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+t.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},t.HASH_COMMENT_MODE,{beginKeywords:o,keywords:{literal:o}},C,{className:"number",begin:t.C_NUMBER_RE+"\\b",relevance:0},R,U,c,s],_=[...I];return _.pop(),_.push(u),$.contains=_,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:I}}const Ai={bash:Mi,sh:Mi,shell:Mi,css:Mf,go:jr,golang:jr,java:Af,javascript:Qr,js:Qr,json:zf,markdown:el,md:el,python:tl,py:tl,rust:nl,rs:nl,sql:If,typescript:dl,ts:dl,xml:ul,html:ul,yaml:fl,yml:fl};for(const[t,o]of Object.entries(Ai))Ci.registerLanguage(t,o);function jo(t){const o=t.split(`
|
|
61
61
|
`);return/^(`{3,}|~{3,})/.test(o[0]??"")&&o.shift(),/^(`{3,}|~{3,})\s*$/.test(o[o.length-1]??"")&&o.pop(),o.join(`
|
|
@@ -167,4 +167,4 @@ function walk(n: Node) {
|
|
|
167
167
|
| --- | --- | --- | --- | --- |
|
|
168
168
|
| 1 | 2 | 3 | 4 | 5 |
|
|
169
169
|
| 6 | 7 | 8 | 9 | 10 |`},children:[]}]},{id:"r_note",text:"笔记 (note)",note:{text:`节点右上角的便签图标。
|
|
170
|
-
鼠标悬浮预览前 60 字,点击打开完整笔记编辑器。`},children:[{id:"r_note_a",text:"悬浮预览",children:[]},{id:"r_note_b",text:"点击展开编辑",children:[]},{id:"r_note_c",text:"export → ```note 围栏",children:[]}]},{id:"r_link",text:"链接 (link)",link:{url:"https://github.com/xz333221/flow-mindmap"},children:[{id:"r_link_a",text:"节点右侧的小图标",children:[]},{id:"r_link_b",text:"点击在新 tab 打开",children:[]},{id:"r_link_c",text:"export → [label](url)",children:[]}]},{id:"r_para",text:"段落 / 列表 (子节点)",children:[{id:"r_para_a",text:"段落不再是父节点框内文字",children:[]},{id:"r_para_b",text:"列表每项一个子节点",children:[]},{id:"r_para_c",text:"节点框大小保持一致,边线对齐",children:[]}]}]};function n(){return typeof location<"u"&&location.hash==="#fan"?i:typeof location<"u"&&location.hash==="#stress"?a:(typeof location<"u"&&location.hash==="#rich",o)}const i={id:"root",text:"flow-mindmap 思维导图",children:[{id:"n_a",text:"主题一",children:[]},{id:"n_b",text:"主题二",children:[]},{id:"n_c",text:"主题三",children:[]},{id:"n_d",text:"主题四",children:[]},{id:"n_e",text:"主题五",children:[]},{id:"n_f",text:"主题六",children:[]},{id:"n_g",text:"主题七",children:[]},{id:"n_h",text:"主题八",children:[]},{id:"n_i",text:"主题九",children:[]}]},a=(()=>{const z=(W,te)=>({id:W,text:te,children:[]}),S=[z("s_l1","左一"),z("s_l2","左二"),z("s_l3","左三"),z("s_l4","左四"),z("s_l5","左五"),z("s_l6","左六"),z("s_l7","左七")],F=[z("s_r1","右一"),z("s_r2","右二"),z("s_r3","右三"),z("s_r4","右四"),z("s_r5","右五"),z("s_r6","右六"),z("s_r7","右七")];return{id:"root",text:"flow-mindmap 思维导图",children:[...S,...F]}})(),c=e.ref(o),s=e.ref(null),u=e.ref(new Set),d=e.ref(!1),p=e.ref(!1),h=e.ref(!1),w=e.ref(!1),C=e.ref(0),$=e.ref(!1),R=e.ref(!1),U=e.ref(null);function I(){c.value=n()}function _(){p.value=!0,h.value=!1,w.value=!1}function y(z){_()}const k=e.reactive({autoBalanceOnChange:!0,lineWidthStart:16,lineWidthEnd:3.6,rainbowBranch:!0,branchPaletteId:"default",customPalettes:[],lineStyle:"rounded-elbow",rootLineStyle:"arc",lineOrigin:"proportional",layoutMode:"mindmap",taperedEdge:!0,lineWidthTaper:.1,uniformLineWidth:!0,elbowRadius:20,showOrderBadge:!1,canvasBg:void 0}),m=e.computed(()=>{var z;return s.value?((z=U.value)==null?void 0:z.getNodeStyle(s.value.id))??{}:{}});function P(z){var S;Object.assign(k,z),(S=U.value)==null||S.applySettings(z)}function j(z){var S;s.value&&((S=U.value)==null||S.applyNodeStyle(s.value.id,z))}function Y(){var S;const z={autoBalanceOnChange:!0,lineWidthStart:16,lineWidthEnd:.6,rainbowBranch:!0,branchPaletteId:"default",customPalettes:[],lineStyle:"rounded-elbow",rootLineStyle:"arc",lineOrigin:"proportional",layoutMode:"mindmap",taperedEdge:!0,lineWidthTaper:.1,uniformLineWidth:!0,elbowRadius:20,showOrderBadge:!1,canvasBg:void 0};Object.assign(k,z),(S=U.value)==null||S.applySettings(z)}function E(z){if(z.key==="Escape"){if($.value){$.value=!1,z.stopPropagation();return}R.value&&(R.value=!1,z.stopPropagation())}}e.onMounted(()=>{var z;document.addEventListener("keydown",E),window.addEventListener("hashchange",I),(z=U.value)==null||z.applySettings({rainbowBranch:k.rainbowBranch,branchPaletteId:k.branchPaletteId,customPalettes:k.customPalettes,lineWidthStart:k.lineWidthStart,lineWidthEnd:k.lineWidthEnd,lineStyle:k.lineStyle,rootLineStyle:k.rootLineStyle,lineOrigin:k.lineOrigin})}),e.onBeforeUnmount(()=>{document.removeEventListener("keydown",E),window.removeEventListener("hashchange",I)});function re(z){c.value=z}function pe(z){var F;const S=z&&z.length>0?z[0]:null;s.value=S,S?!w.value&&((F=U.value)!=null&&F.nodeHasContent(S.id))&&(p.value=!1,h.value=!1,w.value=!0):w.value=!1}e.watch(c,z=>{if(!s.value)return;const S=Ee(z,s.value.id);S?S!==s.value&&(s.value=S):s.value=null},{deep:!1});function de(z){if(!s.value||s.value.id!==z){const S=Ee(c.value,z);S&&(s.value=S)}p.value=!1,h.value=!1,w.value=!0,C.value++}function Ee(z,S){if(z.id===S)return z;for(const F of z.children){const W=Ee(F,S);if(W)return W}return null}function ee(z){var S;s.value&&((S=U.value)==null||S.applyNodeNote(s.value.id,z))}function ce(){var z;s.value&&((z=U.value)==null||z.removeNodeNote(s.value.id))}function ue(z){var S;s.value&&((S=U.value)==null||S.applyNodeLink(s.value.id,z))}function g(z){var S;s.value&&((S=U.value)==null||S.applyNodeImageByUrl(s.value.id,z))}function V(z){var S;s.value&&((S=U.value)==null||S.applyNodeRichContent(s.value.id,z))}function G(z){const S=document.querySelector(`[data-node-id="${z.id}"]`);S&&S.click()}function oe(z){const S=new Set(u.value);S.has(z)?S.delete(z):S.add(z),u.value=S}function fe(z){var S;(S=U.value)==null||S.setNodeText(z.id,z.text)}function O(z){var S;(S=U.value)==null||S.addChild(z)}function L(z){var S;(S=U.value)==null||S.addSibling(z)}function se(z){var S;(S=U.value)==null||S.moveNode(z.srcId,z.targetId,z.position)}const ke=e.computed(()=>{var z;return((z=s.value)==null?void 0:z.id)??null});return(z,S)=>(e.openBlock(),e.createElementBlock("div",lh,[e.createVNode(Vt,{side:"left",width:300,open:d.value,title:"大纲","onUpdate:open":S[0]||(S[0]=F=>d.value=F)},{default:e.withCtx(()=>[e.createVNode(Oo,{data:c.value,"selected-id":ke.value,"collapsed-ids":u.value,onSelect:G,onToggleCollapse:oe,onEdit:fe,onAddChild:O,onAddSibling:L,onMove:se},null,8,["data","selected-id","collapsed-ids"])]),_:1},8,["open"]),e.createElementVNode("main",ah,[R.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"zm-app-preview-exit",title:"退出预览 (Esc)",onClick:S[1]||(S[1]=F=>R.value=!1)},[...S[11]||(S[11]=[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),e.createElementVNode("line",{x1:"2",y1:"2",x2:"22",y2:"22"})],-1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",sh,[e.createVNode(ei,{ref_key:"mindMapRef",ref:U,data:c.value,"preview-mode":R.value,"built-in-drawers":!1,onChange:re,onSelect:pe,onEditNote:de,onCanvasSettings:S[2]||(S[2]=F=>$.value=!0),onCanvasData:_,onCanvasImport:y,onCanvasTogglePreview:S[3]||(S[3]=F=>R.value=!R.value),onCanvasOutline:S[4]||(S[4]=F=>d.value=!0)},null,8,["data","preview-mode"])])]),e.createVNode(Vt,{side:"right",width:360,open:p.value&&!R.value,title:"数据","onUpdate:open":S[6]||(S[6]=F=>p.value=F)},{default:e.withCtx(()=>[e.createVNode(Do,{data:c.value,onImport:S[5]||(S[5]=F=>c.value=F)},null,8,["data"])]),_:1},8,["open"]),e.createVNode(Vt,{side:"right",width:420,open:h.value&&!R.value,title:"Markdown","onUpdate:open":S[8]||(S[8]=F=>h.value=F)},{default:e.withCtx(()=>[e.createVNode(Vo,{data:c.value,onImport:S[7]||(S[7]=F=>c.value=F)},null,8,["data"])]),_:1},8,["open"]),e.createVNode(Vt,{side:"right",width:360,open:w.value&&!R.value,title:"节点内容","onUpdate:open":S[9]||(S[9]=F=>w.value=F)},{default:e.withCtx(()=>[e.createVNode(Qo,{"selected-node":s.value,readonly:!1,"focus-tick":C.value,onApply:ee,onRemove:ce,onSetLink:ue,onSetImage:g,onSetRich:V},null,8,["selected-node","focus-tick"])]),_:1},8,["open"]),e.createVNode(Vt,{side:"right",width:340,open:$.value&&!R.value,title:"设置","onUpdate:open":S[10]||(S[10]=F=>$.value=F)},{default:e.withCtx(()=>{var F;return[e.createVNode($o,{settings:k,"has-selection":s.value!==null,"selected-node-text":(F=s.value)==null?void 0:F.text,"node-style":m.value,"onUpdate:settings":P,"onUpdate:nodeStyle":j,onReset:Y},null,8,["settings","has-selection","selected-node-text","node-style"])]}),_:1},8,["open"])]))}}),ch="0.5.
|
|
170
|
+
鼠标悬浮预览前 60 字,点击打开完整笔记编辑器。`},children:[{id:"r_note_a",text:"悬浮预览",children:[]},{id:"r_note_b",text:"点击展开编辑",children:[]},{id:"r_note_c",text:"export → ```note 围栏",children:[]}]},{id:"r_link",text:"链接 (link)",link:{url:"https://github.com/xz333221/flow-mindmap"},children:[{id:"r_link_a",text:"节点右侧的小图标",children:[]},{id:"r_link_b",text:"点击在新 tab 打开",children:[]},{id:"r_link_c",text:"export → [label](url)",children:[]}]},{id:"r_para",text:"段落 / 列表 (子节点)",children:[{id:"r_para_a",text:"段落不再是父节点框内文字",children:[]},{id:"r_para_b",text:"列表每项一个子节点",children:[]},{id:"r_para_c",text:"节点框大小保持一致,边线对齐",children:[]}]}]};function n(){return typeof location<"u"&&location.hash==="#fan"?i:typeof location<"u"&&location.hash==="#stress"?a:(typeof location<"u"&&location.hash==="#rich",o)}const i={id:"root",text:"flow-mindmap 思维导图",children:[{id:"n_a",text:"主题一",children:[]},{id:"n_b",text:"主题二",children:[]},{id:"n_c",text:"主题三",children:[]},{id:"n_d",text:"主题四",children:[]},{id:"n_e",text:"主题五",children:[]},{id:"n_f",text:"主题六",children:[]},{id:"n_g",text:"主题七",children:[]},{id:"n_h",text:"主题八",children:[]},{id:"n_i",text:"主题九",children:[]}]},a=(()=>{const z=(W,te)=>({id:W,text:te,children:[]}),S=[z("s_l1","左一"),z("s_l2","左二"),z("s_l3","左三"),z("s_l4","左四"),z("s_l5","左五"),z("s_l6","左六"),z("s_l7","左七")],F=[z("s_r1","右一"),z("s_r2","右二"),z("s_r3","右三"),z("s_r4","右四"),z("s_r5","右五"),z("s_r6","右六"),z("s_r7","右七")];return{id:"root",text:"flow-mindmap 思维导图",children:[...S,...F]}})(),c=e.ref(o),s=e.ref(null),u=e.ref(new Set),d=e.ref(!1),p=e.ref(!1),h=e.ref(!1),w=e.ref(!1),C=e.ref(0),$=e.ref(!1),R=e.ref(!1),U=e.ref(null);function I(){c.value=n()}function _(){p.value=!0,h.value=!1,w.value=!1}function y(z){_()}const k=e.reactive({autoBalanceOnChange:!0,lineWidthStart:16,lineWidthEnd:3.6,rainbowBranch:!0,branchPaletteId:"default",customPalettes:[],lineStyle:"rounded-elbow",rootLineStyle:"arc",lineOrigin:"proportional",layoutMode:"mindmap",taperedEdge:!0,lineWidthTaper:.1,uniformLineWidth:!0,elbowRadius:20,showOrderBadge:!1,canvasBg:void 0}),m=e.computed(()=>{var z;return s.value?((z=U.value)==null?void 0:z.getNodeStyle(s.value.id))??{}:{}});function P(z){var S;Object.assign(k,z),(S=U.value)==null||S.applySettings(z)}function j(z){var S;s.value&&((S=U.value)==null||S.applyNodeStyle(s.value.id,z))}function Y(){var S;const z={autoBalanceOnChange:!0,lineWidthStart:16,lineWidthEnd:.6,rainbowBranch:!0,branchPaletteId:"default",customPalettes:[],lineStyle:"rounded-elbow",rootLineStyle:"arc",lineOrigin:"proportional",layoutMode:"mindmap",taperedEdge:!0,lineWidthTaper:.1,uniformLineWidth:!0,elbowRadius:20,showOrderBadge:!1,canvasBg:void 0};Object.assign(k,z),(S=U.value)==null||S.applySettings(z)}function E(z){if(z.key==="Escape"){if($.value){$.value=!1,z.stopPropagation();return}R.value&&(R.value=!1,z.stopPropagation())}}e.onMounted(()=>{var z;document.addEventListener("keydown",E),window.addEventListener("hashchange",I),(z=U.value)==null||z.applySettings({rainbowBranch:k.rainbowBranch,branchPaletteId:k.branchPaletteId,customPalettes:k.customPalettes,lineWidthStart:k.lineWidthStart,lineWidthEnd:k.lineWidthEnd,lineStyle:k.lineStyle,rootLineStyle:k.rootLineStyle,lineOrigin:k.lineOrigin})}),e.onBeforeUnmount(()=>{document.removeEventListener("keydown",E),window.removeEventListener("hashchange",I)});function re(z){c.value=z}function pe(z){var F;const S=z&&z.length>0?z[0]:null;s.value=S,S?!w.value&&((F=U.value)!=null&&F.nodeHasContent(S.id))&&(p.value=!1,h.value=!1,w.value=!0):w.value=!1}e.watch(c,z=>{if(!s.value)return;const S=Ee(z,s.value.id);S?S!==s.value&&(s.value=S):s.value=null},{deep:!1});function de(z){if(!s.value||s.value.id!==z){const S=Ee(c.value,z);S&&(s.value=S)}p.value=!1,h.value=!1,w.value=!0,C.value++}function Ee(z,S){if(z.id===S)return z;for(const F of z.children){const W=Ee(F,S);if(W)return W}return null}function ee(z){var S;s.value&&((S=U.value)==null||S.applyNodeNote(s.value.id,z))}function ce(){var z;s.value&&((z=U.value)==null||z.removeNodeNote(s.value.id))}function ue(z){var S;s.value&&((S=U.value)==null||S.applyNodeLink(s.value.id,z))}function g(z){var S;s.value&&((S=U.value)==null||S.applyNodeImageByUrl(s.value.id,z))}function V(z){var S;s.value&&((S=U.value)==null||S.applyNodeRichContent(s.value.id,z))}function G(z){const S=document.querySelector(`[data-node-id="${z.id}"]`);S&&S.click()}function oe(z){const S=new Set(u.value);S.has(z)?S.delete(z):S.add(z),u.value=S}function fe(z){var S;(S=U.value)==null||S.setNodeText(z.id,z.text)}function O(z){var S;(S=U.value)==null||S.addChild(z)}function L(z){var S;(S=U.value)==null||S.addSibling(z)}function se(z){var S;(S=U.value)==null||S.moveNode(z.srcId,z.targetId,z.position)}const ke=e.computed(()=>{var z;return((z=s.value)==null?void 0:z.id)??null});return(z,S)=>(e.openBlock(),e.createElementBlock("div",lh,[e.createVNode(Vt,{side:"left",width:300,open:d.value,title:"大纲","onUpdate:open":S[0]||(S[0]=F=>d.value=F)},{default:e.withCtx(()=>[e.createVNode(Oo,{data:c.value,"selected-id":ke.value,"collapsed-ids":u.value,onSelect:G,onToggleCollapse:oe,onEdit:fe,onAddChild:O,onAddSibling:L,onMove:se},null,8,["data","selected-id","collapsed-ids"])]),_:1},8,["open"]),e.createElementVNode("main",ah,[R.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"zm-app-preview-exit",title:"退出预览 (Esc)",onClick:S[1]||(S[1]=F=>R.value=!1)},[...S[11]||(S[11]=[e.createElementVNode("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),e.createElementVNode("line",{x1:"2",y1:"2",x2:"22",y2:"22"})],-1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",sh,[e.createVNode(ei,{ref_key:"mindMapRef",ref:U,data:c.value,"preview-mode":R.value,"built-in-drawers":!1,onChange:re,onSelect:pe,onEditNote:de,onCanvasSettings:S[2]||(S[2]=F=>$.value=!0),onCanvasData:_,onCanvasImport:y,onCanvasTogglePreview:S[3]||(S[3]=F=>R.value=!R.value),onCanvasOutline:S[4]||(S[4]=F=>d.value=!0)},null,8,["data","preview-mode"])])]),e.createVNode(Vt,{side:"right",width:360,open:p.value&&!R.value,title:"数据","onUpdate:open":S[6]||(S[6]=F=>p.value=F)},{default:e.withCtx(()=>[e.createVNode(Do,{data:c.value,onImport:S[5]||(S[5]=F=>c.value=F)},null,8,["data"])]),_:1},8,["open"]),e.createVNode(Vt,{side:"right",width:420,open:h.value&&!R.value,title:"Markdown","onUpdate:open":S[8]||(S[8]=F=>h.value=F)},{default:e.withCtx(()=>[e.createVNode(Vo,{data:c.value,onImport:S[7]||(S[7]=F=>c.value=F)},null,8,["data"])]),_:1},8,["open"]),e.createVNode(Vt,{side:"right",width:360,open:w.value&&!R.value,title:"节点内容","onUpdate:open":S[9]||(S[9]=F=>w.value=F)},{default:e.withCtx(()=>[e.createVNode(Qo,{"selected-node":s.value,readonly:!1,"focus-tick":C.value,onApply:ee,onRemove:ce,onSetLink:ue,onSetImage:g,onSetRich:V},null,8,["selected-node","focus-tick"])]),_:1},8,["open"]),e.createVNode(Vt,{side:"right",width:340,open:$.value&&!R.value,title:"设置","onUpdate:open":S[10]||(S[10]=F=>$.value=F)},{default:e.withCtx(()=>{var F;return[e.createVNode($o,{settings:k,"has-selection":s.value!==null,"selected-node-text":(F=s.value)==null?void 0:F.text,"node-style":m.value,"onUpdate:settings":P,"onUpdate:nodeStyle":j,onReset:Y},null,8,["settings","has-selection","selected-node-text","node-style"])]}),_:1},8,["open"])]))}}),ch="0.5.12",dh={install(t){t.component("FlowMindMap",ei),t.component("FlowMindMapOutline",Oo),t.component("FlowMindMapDrawer",Vt),t.component("FlowMindMapDataPanel",Do),t.component("FlowMindMapMarkdownPanel",Vo),t.component("FlowMindMapSettingsPanel",$o),t.component("FlowMindMapNotePanel",Qo),t.component("FlowMindMapApp",Yl)}};Ce.DataPanel=Do,Ce.Drawer=Vt,Ce.MARKER_LIB=ki,Ce.MarkdownPanel=Vo,Ce.MindMap=ei,Ce.MindMapApp=Yl,Ce.NotePanel=Qo,Ce.Outline=Oo,Ce.SettingsPanel=$o,Ce.VERSION=ch,Ce.addChild=bi,Ce.addSibling=Er,Ce.clone=Ot,Ce.default=dh,Ce.findNode=be,Ce.findParent=Dt,Ce.markdownToMindMap=On,Ce.markdownToRichMindMap=ts,Ce.markerDef=fs,Ce.markerLabel=Tr,Ce.markerSvg=Lo,Ce.mindMapToMarkdown=Dn,Ce.removeNode=Bo,Ce.richBlockToMarkdown=ns,Ce.tagColor=yi,Ce.uid=Xt,Object.defineProperties(Ce,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/dist/style.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
.zm-node-menu{position:fixed;z-index:40;min-width:168px;padding:4px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0f172a24;display:flex;flex-direction:column;gap:2px;font-size:13px;color:#1e293b;-webkit-user-select:none;user-select:none}.zm-node-menu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;border-radius:4px;cursor:pointer;width:100%;transition:background .1s}.zm-node-menu-item:hover:not(:disabled){background:#f1f5f9}.zm-node-menu-item:active:not(:disabled){background:#e2e8f0}.zm-node-menu-item:disabled{color:#94a3b8;cursor:not-allowed}.zm-node-menu-icon{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;font-size:10px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-weight:600;color:#64748b;flex-shrink:0}.zm-node-menu-icon-code{font-size:10px;letter-spacing:-1px}.zm-node-menu-icon-table{font-size:12px;font-family:inherit}.zm-node-menu-divider{height:1px;background:#e2e8f0;margin:2px 4px}.zm-node-menu-arrow{margin-left:auto;font-size:14px;color:#94a3b8;transition:transform .15s}.zm-node-menu-arrow.is-open{transform:rotate(90deg)}.zm-marker-picker{padding:4px 8px 6px;display:flex;flex-direction:column;gap:6px}.zm-marker-group{display:flex;flex-direction:column;gap:3px}.zm-marker-group-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.zm-marker-grid{display:flex;flex-wrap:wrap;gap:3px}.zm-marker-cell{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:#f8fafc;cursor:pointer;padding:0;transition:all .1s}.zm-marker-cell:hover{background:#e2e8f0;border-color:#cbd5e1}.zm-marker-cell.is-active{background:#eff6ff;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f633}.zm-marker-cell svg{display:block}.zm-marker-clear{font:inherit;font-size:11px;color:#b91c1c;background:transparent;border:none;cursor:pointer;text-align:center;padding:3px;border-radius:4px}.zm-marker-clear:hover{background:#fee2e2}.zm-canvas-menu{position:fixed;z-index:40;min-width:140px;padding:4px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;box-shadow:0 8px 24px #0f172a24;display:flex;flex-direction:column;gap:2px;font-size:13px;color:#1e293b;-webkit-user-select:none;user-select:none}.zm-canvas-menu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;border-radius:4px;cursor:pointer;width:100%;box-sizing:border-box;transition:background .1s}.zm-canvas-menu-item:hover:not(:disabled){background:#f1f5f9}.zm-canvas-menu-item:active:not(:disabled){background:#e2e8f0}.zm-canvas-menu-item:disabled{color:#94a3b8;cursor:not-allowed}.zm-canvas-menu-item-has-submenu{position:relative;box-sizing:border-box}.zm-canvas-menu-item-has-submenu.is-open,.zm-canvas-menu-item-has-submenu:hover{background:#f1f5f9}.zm-canvas-menu-caret{margin-left:auto;color:#94a3b8;flex-shrink:0;display:inline-flex;align-items:center}.zm-canvas-menu-divider{height:1px;background:#e2e8f0;margin:2px 4px}.zm-canvas-submenu{position:fixed;z-index:41;min-width:160px;padding:4px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;box-shadow:0 8px 24px #0f172a24;display:flex;flex-direction:column;gap:2px;font-size:13px;color:#1e293b;-webkit-user-select:none;user-select:none;animation:zm-submenu-in .12s ease-out}@keyframes zm-submenu-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.zm-drawer{display:flex;flex-direction:column;height:100%;background:#fff;border-right:1px solid #e2e8f0;overflow:hidden;flex-shrink:0}.zm-drawer--canvas{position:absolute;top:0;bottom:0;height:100%;z-index:40;box-shadow:0 8px 24px #0f172a1f}.zm-drawer--left.zm-drawer--canvas{left:0;border-right:1px solid #e2e8f0}.zm-drawer--right.zm-drawer--canvas{right:0;border-right:none;border-left:1px solid #e2e8f0}.zm-drawer-canvas-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a47;z-index:39;cursor:pointer}.zm-drawer-enter-active,.zm-drawer-leave-active{transition:width .22s ease,opacity .15s ease}.zm-drawer-enter-from,.zm-drawer-leave-to{width:0!important;opacity:0;border-right:none}.zm-slide-left-enter-active,.zm-slide-left-leave-active,.zm-slide-right-enter-active,.zm-slide-right-leave-active{transition:transform .22s ease,opacity .18s ease}.zm-slide-left-enter-from,.zm-slide-left-leave-to{transform:translate(-100%);opacity:0}.zm-slide-right-enter-from,.zm-slide-right-leave-to{transform:translate(100%);opacity:0}.zm-fade-enter-active,.zm-fade-leave-active{transition:opacity .18s ease}.zm-fade-enter-from,.zm-fade-leave-to{opacity:0}.zm-drawer--right{border-right:none;border-left:1px solid #e2e8f0}.zm-drawer-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #f1f5f9;flex-shrink:0}.zm-drawer-title{margin:0;flex:1;font-size:13px;font-weight:600;color:#1e293b;letter-spacing:.02em}.zm-drawer-close{width:24px;height:24px;border:none;background:transparent;color:#94a3b8;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.zm-drawer-close:hover{background:#f1f5f9;color:#1e293b}.zm-drawer-body{flex:1;overflow:auto;min-height:0}.zm-outline-root{display:flex;flex-direction:column;height:100%}.zm-outline-search{display:flex;align-items:center;gap:6px;padding:8px 10px 4px;flex-shrink:0}.zm-outline-search-icon{color:#94a3b8;flex-shrink:0}.zm-outline-search-input{flex:1;min-width:0;padding:4px 8px;font:inherit;font-size:12px;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;outline:none;box-sizing:border-box}.zm-outline-search-input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 2px #3b82f61f}.zm-outline-search-input::placeholder{color:#94a3b8;font-size:11px}.zm-outline-search-count{font-size:11px;color:#64748b;white-space:nowrap;min-width:36px;text-align:center;flex-shrink:0}.zm-outline-search-empty{color:#ef4444}.zm-outline-search-clear{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:4px;cursor:pointer;color:#94a3b8;font-size:16px;line-height:1;flex-shrink:0}.zm-outline-search-clear:hover{background:#f1f5f9;color:#1e293b}.zm-outline-actions{display:flex;justify-content:flex-end;padding:4px 10px;flex-shrink:0}.zm-outline-action-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-family:inherit;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:5px;cursor:pointer;transition:all .1s}.zm-outline-action-btn:hover{background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}.zm-outline-action-btn.is-success{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.zm-outline{list-style:none;margin:0;padding:4px 0 8px;font-size:13px;overflow:auto;flex:1;min-height:0}.zm-outline-row{display:flex;align-items:center;gap:6px;padding-right:6px;padding-top:4px;padding-bottom:4px;cursor:grab;color:#334155;border-radius:4px;margin:0 6px;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s;position:relative}.zm-outline-row:active{cursor:grabbing}.zm-outline-row:hover{background:#f1f5f9}.zm-outline-row.is-root{font-weight:600;color:#0f172a}.zm-outline-row.is-selected{background:#eff6ff;color:#1d4ed8}.zm-outline-row.is-selected .zm-outline-toggle,.zm-outline-row.is-selected .zm-outline-dot,.zm-outline-row.is-selected .zm-outline-row-copy,.zm-outline-row.is-selected .zm-outline-row-action{color:#1d4ed8}.zm-outline-row.is-search-hit{background:#fffbeb;box-shadow:inset 3px 0 #f59e0b}.zm-outline-row.is-search-current{background:#fef3c7;box-shadow:inset 3px 0 #f97316,inset 0 0 0 1px #f973164d}.zm-outline-row.is-drag-over-before:before,.zm-outline-row.is-drag-over-after:after{content:"";position:absolute;left:6px;right:6px;height:2px;background:#3b82f6;border-radius:1px;pointer-events:none}.zm-outline-row.is-drag-over-before:before{top:0}.zm-outline-row.is-drag-over-after:after{bottom:0}.zm-outline-row.is-drag-over-child{background:#dbeafe!important;outline:2px solid #3b82f6;outline-offset:-2px}.zm-outline-toggle{width:16px;height:16px;border:none;background:transparent;color:#94a3b8;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:3px;flex-shrink:0;padding:0}.zm-outline-toggle:hover{background:#e2e8f0;color:#475569}.zm-outline-dot{width:4px;height:4px;border-radius:50%;background:#cbd5e1;flex-shrink:0;margin:0 6px}.zm-outline-index{font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums;min-width:22px;flex-shrink:0;-webkit-user-select:none;user-select:none}.zm-outline-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.zm-outline-input{flex:1;font:inherit;font-size:13px;color:inherit;background:#fff;border:1px solid #3b82f6;border-radius:3px;padding:1px 4px;margin:-2px 0;outline:none}.zm-outline-row-action{width:20px;height:20px;border:1px solid transparent;background:transparent;color:#94a3b8;cursor:pointer;border-radius:4px;flex-shrink:0;padding:0;display:none;align-items:center;justify-content:center;transition:background .1s,color .1s,border-color .1s}.zm-outline-row:hover .zm-outline-row-action,.zm-outline-row.is-selected .zm-outline-row-action{display:inline-flex}.zm-outline-row-action:hover{background:#e0e7ff;color:#4338ca;border-color:#c7d2fe}.zm-outline-row-action img{filter:invert(38%) sepia(94%) saturate(2417%) hue-rotate(229deg) brightness(91%) contrast(91%)}.zm-outline-row-copy{width:20px;height:20px;border:none;background:transparent;color:#94a3b8;display:none;align-items:center;justify-content:center;cursor:pointer;border-radius:3px;flex-shrink:0;padding:0;transition:background .1s,color .1s}.zm-outline-row:hover .zm-outline-row-copy,.zm-outline-row.is-selected .zm-outline-row-copy{display:flex}.zm-outline-row-copy:hover{background:#e2e8f0;color:#475569}.zm-outline-row-copy.is-success{display:flex;color:#047857;background:#ecfdf5}.zm-jtv-root{font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;color:#334155}.zm-jtv-header{display:flex;align-items:center;gap:4px;cursor:pointer;border-radius:3px;padding-right:6px;-webkit-user-select:none;user-select:none}.zm-jtv-header:hover{background:#f1f5f9}.zm-jtv-toggle{display:inline-block;width:12px;text-align:center;font-size:9px;color:#94a3b8;flex-shrink:0}.zm-jtv-toggle.is-leaf{color:#cbd5e1}.zm-jtv-key{color:#1d4ed8;font-weight:500}.zm-jtv-colon{color:#94a3b8;margin-right:4px}.zm-jtv-size{color:#64748b;font-style:italic}.zm-jtv-bracket,.zm-jtv-brace{color:#94a3b8;font-weight:500;margin-left:4px}.zm-jtv-footer{color:#94a3b8;font-weight:500}.zm-jtv-leaf{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding-right:6px;border-radius:3px}.zm-jtv-leaf:hover{background:#f8fafc}.zm-jtv-value{word-break:break-all}.zm-jtv-string{color:#047857}.zm-jtv-number{color:#b45309}.zm-jtv-boolean{color:#7c3aed;font-weight:500}.zm-jtv-null,.zm-jtv-undefined{color:#94a3b8;font-style:italic}.zm-jtv-thumb-wrap{display:inline-flex;align-items:center;gap:4px;margin-left:6px;flex-shrink:0}.zm-jtv-thumb{max-width:48px;max-height:32px;border:1px solid #e2e8f0;border-radius:3px;background:#fff;object-fit:contain}.zm-jtv-thumb-link{font-size:10px;color:#3b82f6;text-decoration:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.zm-jtv-thumb-link:hover{text-decoration:underline}.zm-jtv-leaf mark,.zm-jtv-key mark{background:#fef08a;color:#422006;padding:0 1px;border-radius:2px}.zm-data-panel{display:flex;flex-direction:column;height:100%;background:#fff}.zm-data-header{display:flex;align-items:center;padding:8px 12px 6px;border-bottom:1px solid #f1f5f9;background:#f8fafc;flex-shrink:0}.zm-data-title{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0}.zm-data-title-text{font-size:12px;font-weight:600;color:#1e293b;letter-spacing:.02em}.zm-data-title-meta{font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums}.zm-data-toolbar{display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid #f1f5f9;background:#fff;flex-shrink:0;flex-wrap:wrap}.zm-data-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-family:inherit;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .1s}.zm-data-btn:hover{background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}.zm-data-btn.is-icon{padding:4px 8px}.zm-data-btn.is-active{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.zm-data-btn.is-success{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.zm-data-btn.is-primary{background:#3b82f6;color:#fff;border-color:#3b82f6}.zm-data-btn.is-primary:hover{background:#2563eb;border-color:#2563eb;color:#fff}.zm-data-btn:disabled{opacity:.4;cursor:not-allowed}.zm-data-btn-label{font-size:11px}.zm-data-toolbar-spacer{flex:1;min-width:4px}.zm-data-search{display:flex;align-items:center;gap:4px;padding:3px 6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;transition:all .1s;flex:0 1 160px;min-width:0}.zm-data-search:focus-within,.zm-data-search.is-active{background:#fff;border-color:#3b82f6}.zm-data-search svg{color:#94a3b8;flex-shrink:0}.zm-data-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:11px;color:#1e293b;padding:0}.zm-data-search input::placeholder{color:#94a3b8}.zm-data-search-clear{border:none;background:transparent;color:#94a3b8;cursor:pointer;padding:0 2px;font-size:14px;line-height:1;border-radius:2px}.zm-data-search-clear:hover{background:#e2e8f0;color:#1e293b}.zm-data-paste{padding:8px 10px 10px;border-bottom:1px solid #f1f5f9;background:#f8fafc;flex-shrink:0}.zm-data-tabs{display:flex;gap:4px;margin-bottom:6px}.zm-data-tab{font:inherit;font-size:11px;padding:2px 8px;border:1px solid #e2e8f0;border-radius:4px;background:#fff;color:#475569;cursor:pointer;transition:all .1s}.zm-data-tab:hover{background:#f1f5f9}.zm-data-tab.is-active{background:#1e293b;border-color:#1e293b;color:#fff}.zm-data-paste textarea{width:100%;min-height:60px;max-height:160px;padding:6px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.4;border:1px solid #e2e8f0;border-radius:4px;background:#fff;resize:vertical;box-sizing:border-box}.zm-data-paste textarea:focus{outline:none;border-color:#3b82f6}.zm-data-paste-actions{display:flex;gap:4px;margin-top:6px}.zm-data-error{margin-top:6px;font-size:11px;color:#dc2626}.zm-data-tree{flex:1;overflow:auto;padding:8px 4px 8px 6px;background:#fff}.zm-data-footer{padding:6px 12px;border-top:1px solid #f1f5f9;background:#f8fafc;font-size:10px;color:#94a3b8;line-height:1.5;flex-shrink:0}.zm-data-footer-hint code{font-family:SF Mono,Menlo,Consolas,monospace;font-size:10px;background:#fff;border:1px solid #e2e8f0;padding:0 3px;border-radius:3px;color:#475569;margin:0 1px}.zm-md-panel{display:flex;flex-direction:column;height:100%;background:#f8fafc}.zm-md-toolbar{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #f1f5f9;background:#f8fafc;flex-shrink:0}.zm-md-spacer{flex:1}.zm-md-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-family:inherit;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .1s;white-space:nowrap}.zm-md-btn:hover:not(:disabled){background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}.zm-md-btn:disabled{opacity:.4;cursor:not-allowed}.zm-md-btn.is-primary{background:#3b82f6;color:#fff;border-color:#3b82f6}.zm-md-btn.is-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb;color:#fff}.zm-md-error{padding:6px 10px;font-size:11px;color:#dc2626;background:#fef2f2;border-bottom:1px solid #fee2e2;flex-shrink:0}.zm-md-split{flex:1;display:flex;flex-direction:column;min-height:0}.zm-md-edit,.zm-md-preview{display:flex;flex-direction:column;min-height:0;flex:1}.zm-md-pane-header{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:600;color:#475569;background:#f1f5f9;border-bottom:1px solid #e2e8f0;letter-spacing:.02em;flex-shrink:0}.zm-md-hint{margin-left:auto;font-weight:400;color:#94a3b8;font-size:10px}.zm-md-textarea{flex:1;width:100%;padding:10px 12px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;color:#1e293b;border:none;border-bottom:1px solid #e2e8f0;background:#fff;resize:none;outline:none;box-sizing:border-box}.zm-md-textarea:focus{background:#fafbfc}.zm-md-preview-body{flex:1;position:relative;min-height:0;background:#fff;border-bottom:1px solid #e2e8f0}.zm-md-footer{display:flex;justify-content:flex-end;padding:8px 10px;background:#f8fafc;border-top:1px solid #e2e8f0;flex-shrink:0}.zm-settings-panel[data-v-8119213a]{display:flex;flex-direction:column;gap:12px;padding:14px 14px 18px}.zm-settings-section[data-v-8119213a]{background:#fff;border:1px solid #eef0f3;border-radius:10px;padding:14px}.zm-settings-section--actions[data-v-8119213a]{background:transparent;border:none;padding:0}.zm-settings-section-title[data-v-8119213a]{margin:0 0 12px;font-size:13px;font-weight:700;color:#0f172a;letter-spacing:.01em;display:flex;align-items:baseline;gap:6px}.zm-settings-section-sub[data-v-8119213a]{font-size:11px;font-weight:500;color:#64748b;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zm-settings-field[data-v-8119213a]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0;font-size:13px;color:#1e293b;min-height:28px}.zm-settings-label[data-v-8119213a]{flex:1;color:#334155;font-weight:500}.zm-settings-sub[data-v-8119213a]{font-size:11px;color:#64748b;font-weight:400;font-family:ui-monospace,monospace;margin-left:4px}.zm-settings-value-tag[data-v-8119213a]{font-size:11px;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:2px 8px;white-space:nowrap;font-family:ui-monospace,monospace}.zm-settings-number[data-v-8119213a]{font-size:12px;color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:4px 8px;width:64px;text-align:right;-moz-appearance:textfield;transition:border-color .12s}.zm-settings-number[data-v-8119213a]::-webkit-outer-spin-button,.zm-settings-number[data-v-8119213a]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.zm-settings-number[data-v-8119213a]:focus{outline:none;border-color:#6366f1;background:#fff}.zm-select[data-v-8119213a]{font-size:12px;font-family:inherit;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:4px 8px;cursor:pointer;outline:none;transition:border-color .12s;min-width:100px}.zm-select[data-v-8119213a]:focus,.zm-select[data-v-8119213a]:hover{border-color:#6366f1}.zm-select[data-v-8119213a]:focus{background:#fff}.zm-settings-hint[data-v-8119213a]{margin:6px 0 0;font-size:11px;color:#94a3b8;line-height:1.5}.zm-settings-divider[data-v-8119213a]{height:1px;background:#f1f5f9;margin:10px 0}.zm-slider[data-v-8119213a]{position:relative;height:22px;display:flex;align-items:center;margin:2px 0 6px}.zm-slider-track[data-v-8119213a]{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:4px;background:#e2e8f0;border-radius:999px;pointer-events:none}.zm-slider input[type=range][data-v-8119213a]{position:relative;width:100%;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;height:22px;cursor:pointer;z-index:1}.zm-slider input[type=range][data-v-8119213a]::-webkit-slider-runnable-track{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:transparent;border-radius:999px}.zm-slider input[type=range][data-v-8119213a]::-moz-range-track{height:4px;background:transparent;border-radius:999px}.zm-slider input[type=range][data-v-8119213a]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #6366f1;box-shadow:0 1px 4px #6366f140;cursor:pointer;margin-top:-6px;transition:border-color .12s,box-shadow .12s}.zm-slider input[type=range][data-v-8119213a]::-webkit-slider-thumb:hover{border-color:#4f46e5;box-shadow:0 2px 8px #6366f159}.zm-slider input[type=range][data-v-8119213a]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #6366f1;box-shadow:0 1px 4px #6366f140;cursor:pointer}.zm-toggle[data-v-8119213a]{position:relative;width:38px;height:22px;border:none;background:#cbd5e1;border-radius:999px;padding:0;cursor:pointer;transition:background .15s;flex-shrink:0}.zm-toggle.is-on[data-v-8119213a]{background:#6366f1}.zm-toggle-knob[data-v-8119213a]{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000002e;transition:transform .15s}.zm-toggle.is-on .zm-toggle-knob[data-v-8119213a]{transform:translate(16px)}.zm-swatch-row[data-v-8119213a]{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 10px}.zm-swatch-row--compact[data-v-8119213a]{gap:4px;margin-bottom:6px}.zm-swatch[data-v-8119213a]{width:22px;height:22px;border-radius:5px;border:1.5px solid #e2e8f0;cursor:pointer;padding:0;flex-shrink:0;transition:transform .1s,border-color .12s,box-shadow .12s}.zm-swatch[data-v-8119213a]:hover{transform:scale(1.12);border-color:#94a3b8}.zm-swatch.is-active[data-v-8119213a]{border-color:#6366f1;box-shadow:0 0 0 2px #6366f133}.zm-swatch.is-reset[data-v-8119213a]{background:#fff;color:#94a3b8;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}.zm-swatch.is-reset[data-v-8119213a]:hover{color:#ef4444;border-color:#fca5a5}.zm-swatch--custom[data-v-8119213a]{position:relative;overflow:hidden;background:conic-gradient(from 0deg,#f87171,#fbbf24,#34d399,#22d3ee,#818cf8,#c084fc,#f87171);border:1.5px solid #e2e8f0}.zm-swatch--custom input[type=color][data-v-8119213a]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.zm-color-input-wrap[data-v-8119213a]{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.zm-color-input[data-v-8119213a]{width:28px;height:22px;border:1.5px solid #e2e8f0;border-radius:5px;cursor:pointer;padding:0;background:none}.zm-color-input-text[data-v-8119213a]{font-size:11px;color:#64748b;font-family:ui-monospace,monospace}.zm-settings-field.zm-line-style-field[data-v-8119213a]{flex-direction:column;align-items:stretch;gap:6px}.zm-line-style-field .zm-settings-label[data-v-8119213a]{flex:none}.zm-line-style-group[data-v-8119213a]{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:4px;width:100%}.zm-line-style-btn[data-v-8119213a]{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:4px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;color:#94a3b8;transition:all .12s;font-family:inherit}.zm-line-style-btn[data-v-8119213a]:hover{border-color:#cbd5e1;color:#475569;background:#fff}.zm-line-style-btn.is-on[data-v-8119213a]{border-color:#6366f1;background:#eef2ff;color:#6366f1}.zm-line-style-label[data-v-8119213a]{font-size:11px;font-weight:500}.zm-settings-preview[data-v-8119213a]{margin-top:10px;background:#f8fafc;border:1px solid #eef0f3;border-radius:8px;padding:8px 8px 6px}.zm-settings-preview svg[data-v-8119213a]{display:block}.zm-settings-preview-labels[data-v-8119213a]{display:flex;justify-content:space-between;font-size:10px;color:#94a3b8;margin-top:4px;padding:0 2px}.zm-palette-picker[data-v-8119213a]{margin:8px 0;padding:10px;background:#f8fafc;border-radius:8px;border:1px solid #eef0f3}.zm-palette-list[data-v-8119213a]{display:flex;flex-direction:column;gap:6px;margin-top:4px}.zm-palette-option[data-v-8119213a]{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s;text-align:left;width:100%}.zm-palette-option[data-v-8119213a]:hover{border-color:#cbd5e1;background:#f8fafc}.zm-palette-option.is-active[data-v-8119213a]{border-color:#6366f1;background:#eef2ff;box-shadow:0 0 0 1px #6366f1}.zm-palette-option-name[data-v-8119213a]{font-size:12px;font-weight:500;color:#1e293b;min-width:36px;flex-shrink:0}.zm-palette-option-swatches[data-v-8119213a]{display:flex;gap:2px;flex:1;height:14px;border-radius:3px;overflow:hidden}.zm-palette-option-swatch[data-v-8119213a]{flex:1;min-width:0;height:100%}.zm-palette-custom-editor[data-v-8119213a]{margin-top:8px}.zm-palette-textarea[data-v-8119213a]{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.5;color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:6px 8px;resize:vertical;min-height:36px;outline:none;box-sizing:border-box;transition:border-color .1s}.zm-palette-textarea[data-v-8119213a]:focus{border-color:#6366f1}.zm-palette-custom-actions[data-v-8119213a]{display:flex;gap:6px;margin-top:6px}.zm-palette-add[data-v-8119213a]{margin-top:8px;width:100%;padding:6px 8px;font-size:12px;font-family:inherit;font-weight:500;color:#6366f1;background:#fff;border:1px dashed #c7d2fe;border-radius:6px;cursor:pointer;transition:all .1s}.zm-palette-add[data-v-8119213a]:hover{background:#eef2ff;border-color:#6366f1}.zm-data-btn[data-v-8119213a]{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-family:inherit;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .1s}.zm-data-btn[data-v-8119213a]:hover{background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}.zm-data-btn.is-primary[data-v-8119213a]{background:#6366f1;color:#fff;border-color:#6366f1}.zm-data-btn.is-primary[data-v-8119213a]:hover{background:#4f46e5;border-color:#4f46e5;color:#fff}.zm-settings-reset[data-v-8119213a]{width:100%;padding:8px 12px;font-size:12px;font-family:inherit;font-weight:500;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .1s}.zm-settings-reset[data-v-8119213a]:hover{background:#fef2f2;color:#ef4444;border-color:#fecaca}.zm-note-panel{display:flex;flex-direction:column;height:100%;padding:12px 12px 16px;gap:10px;background:#f8fafc}.zm-note-empty{padding:20px 12px;color:#64748b;font-size:13px;line-height:1.6}.zm-note-empty p{margin:0 0 6px}.zm-note-hint{color:#94a3b8;font-size:12px}.zm-note-header{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;flex-shrink:0}.zm-note-title-row{display:flex;align-items:baseline;gap:8px;min-width:0}.zm-note-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;flex-shrink:0}.zm-note-name{font-size:13px;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.zm-note-meta{font-size:11px;color:#94a3b8}.zm-note-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:2px}.zm-note-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.zm-note-section-head{display:flex;align-items:center;gap:8px;min-width:0}.zm-note-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;flex:1;min-width:0}.zm-note-section-hint{font-size:10px;color:#94a3b8}.zm-note-section-tag{font-size:10px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:1px 6px;line-height:1.4}.zm-note-section-actions{display:flex;justify-content:flex-end}.zm-note-textarea{width:100%;min-height:120px;padding:10px 12px;font:inherit;font-size:13px;line-height:20px;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;resize:none;outline:none;box-sizing:border-box;font-family:inherit;overflow:hidden}.zm-note-textarea:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.zm-note-textarea:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.zm-note-textarea::placeholder{color:#94a3b8;white-space:pre-line}.zm-note-split{display:flex;flex-direction:column;gap:6px}.zm-note-preview-toggle{font:inherit;font-size:10px;color:#1d4ed8;background:transparent;border:1px solid #bfdbfe;border-radius:999px;padding:1px 8px;cursor:pointer;transition:all .1s;flex-shrink:0}.zm-note-preview-toggle:hover{background:#eff6ff;border-color:#93c5fd}.zm-note-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;max-height:240px;overflow:auto;font-size:13px;line-height:1.6;color:#1e293b}.zm-note-preview-hint{color:#94a3b8;font-size:12px;font-style:italic}.zm-note-preview-body h1,.zm-note-preview-body h2,.zm-note-preview-body h3{margin:8px 0 4px;font-weight:600;color:#0f172a}.zm-note-preview-body h1{font-size:16px}.zm-note-preview-body h2{font-size:14px}.zm-note-preview-body h3{font-size:13px}.zm-note-preview-body h4,.zm-note-preview-body h5,.zm-note-preview-body h6{margin:6px 0 4px;font-size:12px;font-weight:600;color:#334155}.zm-note-preview-body p{margin:0 0 6px}.zm-note-preview-body p:last-child{margin-bottom:0}.zm-note-preview-body ul,.zm-note-preview-body ol{margin:0 0 6px;padding-left:20px}.zm-note-preview-body li{margin:0 0 2px}.zm-note-preview-body blockquote{margin:0 0 6px;padding:4px 10px;border-left:3px solid #cbd5e1;color:#475569;background:#f1f5f9}.zm-note-preview-body code{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;background:#f1f5f9;padding:1px 4px;border-radius:3px;color:#be185d}.zm-note-preview-body pre{margin:0 0 6px;padding:8px 10px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;overflow:auto}.zm-note-preview-body pre code{background:transparent;padding:0;color:inherit;font-size:12px;line-height:1.55}.zm-note-preview-body a{color:#1d4ed8;text-decoration:underline;text-decoration-color:#bfdbfe}.zm-note-preview-body a:hover{text-decoration-color:#1d4ed8}.zm-note-preview-body table{border-collapse:collapse;margin:0 0 6px;font-size:12px}.zm-note-preview-body th,.zm-note-preview-body td{border:1px solid #e2e8f0;padding:4px 8px;text-align:left}.zm-note-preview-body th{background:#f1f5f9;font-weight:600}.zm-note-preview-body hr{border:none;border-top:1px solid #e2e8f0;margin:8px 0}.zm-note-preview-body img{max-width:100%;max-height:200px;border-radius:4px;display:block}.zm-note-input{width:100%;padding:7px 10px;font:inherit;font-size:12px;line-height:1.5;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;outline:none;box-sizing:border-box;font-family:inherit}.zm-note-input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.zm-note-input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.zm-note-input-code{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:11px;min-height:80px;resize:none;white-space:pre;line-height:20px;overflow:hidden}.zm-note-add-row{display:flex;flex-wrap:wrap;gap:6px;padding:2px 2px 0}.zm-note-add-chip{font:inherit;font-size:11px;color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:999px;padding:3px 10px;cursor:pointer;transition:all .1s}.zm-note-add-chip:hover{color:#1d4ed8;border-color:#93c5fd;background:#eff6ff}.zm-note-link-chip{display:inline-block;max-width:100%;padding:6px 10px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#1d4ed8;font-size:12px;text-decoration:none;word-break:break-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:background .1s}.zm-note-link-chip:hover{background:#dbeafe}.zm-note-image{display:block;max-width:100%;max-height:240px;object-fit:contain;border-radius:6px;background:#f1f5f9;margin:0 auto}.zm-note-code{margin:0;padding:10px 12px;background:#f1f5f9;color:#24292e;border:1px solid #e2e8f0;border-radius:8px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;box-shadow:0 1px 3px #0f172a14}.zm-note-code code{font:inherit;color:inherit;background:transparent;padding:0}.zm-note-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;color:#1e293b;table-layout:auto;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #92400e14}.zm-note-table th{background:#fde68a;font-weight:600;padding:6px 10px;text-align:left;border-right:1px solid #fcd34d;white-space:nowrap}.zm-note-table th:last-child{border-right:none}.zm-note-table td{border-top:1px solid #fde68a;border-right:1px solid #fde68a;padding:6px 10px;text-align:left;vertical-align:top;word-break:break-word;background:#fffbeb}.zm-note-table tr:last-child td{border-bottom:none}.zm-note-table td:last-child{border-right:none}.zm-note-action-btn{padding:4px 10px;font-size:12px;font-family:inherit;color:#fff;background:#3b82f6;border:1px solid #3b82f6;border-radius:6px;cursor:pointer;transition:all .1s}.zm-note-action-btn.is-danger{color:#b91c1c;background:#fff;border-color:#fca5a5}.zm-note-action-btn.is-danger:hover{background:#fee2e2;border-color:#f87171}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
|
1
|
+
.zm-node-menu{position:fixed;z-index:40;min-width:168px;padding:4px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 8px 24px #0f172a24;display:flex;flex-direction:column;gap:2px;font-size:13px;color:#1e293b;-webkit-user-select:none;user-select:none}.zm-node-menu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;border-radius:4px;cursor:pointer;width:100%;transition:background .1s}.zm-node-menu-item:hover:not(:disabled){background:#f1f5f9}.zm-node-menu-item:active:not(:disabled){background:#e2e8f0}.zm-node-menu-item:disabled{color:#94a3b8;cursor:not-allowed}.zm-node-menu-icon{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;font-size:10px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-weight:600;color:#64748b;flex-shrink:0}.zm-node-menu-icon-code{font-size:10px;letter-spacing:-1px}.zm-node-menu-icon-table{font-size:12px;font-family:inherit}.zm-node-menu-divider{height:1px;background:#e2e8f0;margin:2px 4px}.zm-node-menu-arrow{margin-left:auto;font-size:14px;color:#94a3b8;transition:transform .15s}.zm-node-menu-arrow.is-open{transform:rotate(90deg)}.zm-marker-picker{padding:4px 8px 6px;display:flex;flex-direction:column;gap:6px}.zm-marker-group{display:flex;flex-direction:column;gap:3px}.zm-marker-group-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8}.zm-marker-grid{display:flex;flex-wrap:wrap;gap:3px}.zm-marker-cell{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:#f8fafc;cursor:pointer;padding:0;transition:all .1s}.zm-marker-cell:hover{background:#e2e8f0;border-color:#cbd5e1}.zm-marker-cell.is-active{background:#eff6ff;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f633}.zm-marker-cell svg{display:block}.zm-marker-clear{font:inherit;font-size:11px;color:#b91c1c;background:transparent;border:none;cursor:pointer;text-align:center;padding:3px;border-radius:4px}.zm-marker-clear:hover{background:#fee2e2}.zm-canvas-menu{position:fixed;z-index:40;min-width:140px;padding:4px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;box-shadow:0 8px 24px #0f172a24;display:flex;flex-direction:column;gap:2px;font-size:13px;color:#1e293b;-webkit-user-select:none;user-select:none}.zm-canvas-menu-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:none;background:transparent;color:inherit;font:inherit;text-align:left;border-radius:4px;cursor:pointer;width:100%;box-sizing:border-box;transition:background .1s}.zm-canvas-menu-item:hover:not(:disabled){background:#f1f5f9}.zm-canvas-menu-item:active:not(:disabled){background:#e2e8f0}.zm-canvas-menu-item:disabled{color:#94a3b8;cursor:not-allowed}.zm-canvas-menu-item-has-submenu{position:relative;box-sizing:border-box}.zm-canvas-menu-item-has-submenu.is-open,.zm-canvas-menu-item-has-submenu:hover{background:#f1f5f9}.zm-canvas-menu-caret{margin-left:auto;color:#94a3b8;flex-shrink:0;display:inline-flex;align-items:center}.zm-canvas-menu-divider{height:1px;background:#e2e8f0;margin:2px 4px}.zm-canvas-submenu{position:fixed;z-index:41;min-width:160px;padding:4px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-sizing:border-box;box-shadow:0 8px 24px #0f172a24;display:flex;flex-direction:column;gap:2px;font-size:13px;color:#1e293b;-webkit-user-select:none;user-select:none;animation:zm-submenu-in .12s ease-out}@keyframes zm-submenu-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.zm-drawer{display:flex;flex-direction:column;height:100%;background:#fafbfc;border-right:1px solid #e8eaed;overflow:hidden;flex-shrink:0}.zm-drawer--canvas{position:absolute;top:0;bottom:0;height:100%;z-index:40;box-shadow:0 12px 40px #0f172a14,0 2px 8px #0f172a0a}.zm-drawer--left.zm-drawer--canvas{left:0;border-right:1px solid #e8eaed}.zm-drawer--right.zm-drawer--canvas{right:0;border-right:none;border-left:1px solid #e8eaed}.zm-drawer-canvas-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a2e;z-index:39;cursor:pointer;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.zm-drawer-enter-active,.zm-drawer-leave-active{transition:width .22s ease,opacity .15s ease}.zm-drawer-enter-from,.zm-drawer-leave-to{width:0!important;opacity:0;border-right:none}.zm-slide-left-enter-active,.zm-slide-left-leave-active,.zm-slide-right-enter-active,.zm-slide-right-leave-active{transition:transform .22s ease,opacity .18s ease}.zm-slide-left-enter-from,.zm-slide-left-leave-to{transform:translate(-100%);opacity:0}.zm-slide-right-enter-from,.zm-slide-right-leave-to{transform:translate(100%);opacity:0}.zm-fade-enter-active,.zm-fade-leave-active{transition:opacity .18s ease}.zm-fade-enter-from,.zm-fade-leave-to{opacity:0}.zm-drawer--right{border-right:none;border-left:1px solid #e8eaed}.zm-drawer-header{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid #f0f1f3;flex-shrink:0;background:#fff}.zm-drawer-title{margin:0;flex:1;font-size:14px;font-weight:600;color:#0f172a;letter-spacing:-.01em}.zm-drawer-close{width:28px;height:28px;border:none;background:transparent;color:#94a3b8;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s,color .12s}.zm-drawer-close:hover{background:#f1f5f9;color:#1e293b}.zm-drawer-body{flex:1;overflow:auto;min-height:0}.zm-outline-root{display:flex;flex-direction:column;height:100%}.zm-outline-search{display:flex;align-items:center;gap:6px;padding:8px 10px 4px;flex-shrink:0}.zm-outline-search-icon{color:#94a3b8;flex-shrink:0}.zm-outline-search-input{flex:1;min-width:0;padding:5px 10px;font:inherit;font-size:12px;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;outline:none;box-sizing:border-box;transition:border-color .12s,box-shadow .12s}.zm-outline-search-input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a}.zm-outline-search-input::placeholder{color:#94a3b8;font-size:11px}.zm-outline-search-count{font-size:11px;color:#64748b;white-space:nowrap;min-width:36px;text-align:center;flex-shrink:0}.zm-outline-search-empty{color:#ef4444}.zm-outline-search-clear{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:4px;cursor:pointer;color:#94a3b8;font-size:16px;line-height:1;flex-shrink:0}.zm-outline-search-clear:hover{background:#f1f5f9;color:#1e293b}.zm-outline-actions{display:flex;justify-content:flex-end;padding:4px 10px;flex-shrink:0}.zm-outline-action-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-size:11px;font-family:inherit;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:5px;cursor:pointer;transition:border-color .12s,background .12s;transition:all .1s}.zm-outline-action-btn:hover{background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}.zm-outline-action-btn.is-success{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.zm-outline{list-style:none;margin:0;padding:4px 0 8px;font-size:13px;overflow:auto;flex:1;min-height:0}.zm-outline-row{display:flex;align-items:center;gap:6px;padding-right:6px;padding-top:4px;padding-bottom:4px;cursor:grab;color:#334155;border-radius:4px;margin:0 6px;-webkit-user-select:none;user-select:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .1s;position:relative}.zm-outline-row:active{cursor:grabbing}.zm-outline-row:hover{background:#f1f5f9}.zm-outline-row.is-root{font-weight:600;color:#0f172a}.zm-outline-row.is-selected{background:#eff6ff;color:#1d4ed8}.zm-outline-row.is-selected .zm-outline-toggle,.zm-outline-row.is-selected .zm-outline-dot,.zm-outline-row.is-selected .zm-outline-row-copy,.zm-outline-row.is-selected .zm-outline-row-action{color:#1d4ed8}.zm-outline-row.is-search-hit{background:#fffbeb;box-shadow:inset 3px 0 #f59e0b}.zm-outline-row.is-search-current{background:#fef3c7;box-shadow:inset 3px 0 #f97316,inset 0 0 0 1px #f973164d}.zm-outline-row.is-drag-over-before:before,.zm-outline-row.is-drag-over-after:after{content:"";position:absolute;left:6px;right:6px;height:2px;background:#3b82f6;border-radius:1px;pointer-events:none}.zm-outline-row.is-drag-over-before:before{top:0}.zm-outline-row.is-drag-over-after:after{bottom:0}.zm-outline-row.is-drag-over-child{background:#dbeafe!important;outline:2px solid #3b82f6;outline-offset:-2px}.zm-outline-toggle{width:16px;height:16px;border:none;background:transparent;color:#94a3b8;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:3px;flex-shrink:0;padding:0}.zm-outline-toggle:hover{background:#e2e8f0;color:#475569}.zm-outline-dot{width:4px;height:4px;border-radius:50%;background:#cbd5e1;flex-shrink:0;margin:0 6px}.zm-outline-index{font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums;min-width:22px;flex-shrink:0;-webkit-user-select:none;user-select:none}.zm-outline-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.zm-outline-input{flex:1;font:inherit;font-size:13px;color:inherit;background:#fff;border:1px solid #3b82f6;border-radius:3px;padding:1px 4px;margin:-2px 0;outline:none}.zm-outline-row-action{width:20px;height:20px;border:1px solid transparent;background:transparent;color:#94a3b8;cursor:pointer;border-radius:4px;flex-shrink:0;padding:0;display:none;align-items:center;justify-content:center;transition:background .1s,color .1s,border-color .1s}.zm-outline-row:hover .zm-outline-row-action,.zm-outline-row.is-selected .zm-outline-row-action{display:inline-flex}.zm-outline-row-action:hover{background:#dbeafe;color:#1d4ed8;border-color:#bfdbfe}.zm-outline-row-action img{filter:invert(38%) sepia(94%) saturate(2417%) hue-rotate(229deg) brightness(91%) contrast(91%)}.zm-outline-row-copy{width:20px;height:20px;border:none;background:transparent;color:#94a3b8;display:none;align-items:center;justify-content:center;cursor:pointer;border-radius:3px;flex-shrink:0;padding:0;transition:background .1s,color .1s}.zm-outline-row:hover .zm-outline-row-copy,.zm-outline-row.is-selected .zm-outline-row-copy{display:flex}.zm-outline-row-copy:hover{background:#e2e8f0;color:#475569}.zm-outline-row-copy.is-success{display:flex;color:#047857;background:#ecfdf5}.zm-jtv-root{font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.6;color:#334155}.zm-jtv-header{display:flex;align-items:center;gap:4px;cursor:pointer;border-radius:3px;padding-right:6px;-webkit-user-select:none;user-select:none}.zm-jtv-header:hover{background:#f1f5f9}.zm-jtv-toggle{display:inline-block;width:12px;text-align:center;font-size:9px;color:#94a3b8;flex-shrink:0}.zm-jtv-toggle.is-leaf{color:#cbd5e1}.zm-jtv-key{color:#1d4ed8;font-weight:500}.zm-jtv-colon{color:#94a3b8;margin-right:4px}.zm-jtv-size{color:#64748b;font-style:italic}.zm-jtv-bracket,.zm-jtv-brace{color:#94a3b8;font-weight:500;margin-left:4px}.zm-jtv-footer{color:#94a3b8;font-weight:500}.zm-jtv-leaf{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding-right:6px;border-radius:3px}.zm-jtv-leaf:hover{background:#f8fafc}.zm-jtv-value{word-break:break-all}.zm-jtv-string{color:#047857}.zm-jtv-number{color:#b45309}.zm-jtv-boolean{color:#7c3aed;font-weight:500}.zm-jtv-null,.zm-jtv-undefined{color:#94a3b8;font-style:italic}.zm-jtv-thumb-wrap{display:inline-flex;align-items:center;gap:4px;margin-left:6px;flex-shrink:0}.zm-jtv-thumb{max-width:48px;max-height:32px;border:1px solid #e2e8f0;border-radius:3px;background:#fff;object-fit:contain}.zm-jtv-thumb-link{font-size:10px;color:#3b82f6;text-decoration:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.zm-jtv-thumb-link:hover{text-decoration:underline}.zm-jtv-leaf mark,.zm-jtv-key mark{background:#fef08a;color:#422006;padding:0 1px;border-radius:2px}.zm-data-panel{display:flex;flex-direction:column;height:100%;background:#fff}.zm-data-header{display:flex;align-items:center;padding:8px 12px 6px;border-bottom:1px solid #f1f5f9;background:#f8fafc;flex-shrink:0}.zm-data-title{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0}.zm-data-title-text{font-size:12px;font-weight:600;color:#1e293b;letter-spacing:.02em}.zm-data-title-meta{font-size:11px;color:#94a3b8;font-variant-numeric:tabular-nums}.zm-data-toolbar{display:flex;align-items:center;gap:4px;padding:6px 10px;border-bottom:1px solid #f1f5f9;background:#fff;flex-shrink:0;flex-wrap:wrap}.zm-data-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-family:inherit;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .1s}.zm-data-btn:hover{background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}.zm-data-btn.is-icon{padding:4px 8px}.zm-data-btn.is-active{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.zm-data-btn.is-success{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.zm-data-btn.is-primary{background:#3b82f6;color:#fff;border-color:#3b82f6}.zm-data-btn.is-primary:hover{background:#2563eb;border-color:#2563eb;color:#fff}.zm-data-btn:disabled{opacity:.4;cursor:not-allowed}.zm-data-btn-label{font-size:11px}.zm-data-toolbar-spacer{flex:1;min-width:4px}.zm-data-search{display:flex;align-items:center;gap:4px;padding:3px 6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;transition:all .1s;flex:0 1 160px;min-width:0}.zm-data-search:focus-within,.zm-data-search.is-active{background:#fff;border-color:#3b82f6}.zm-data-search svg{color:#94a3b8;flex-shrink:0}.zm-data-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:11px;color:#1e293b;padding:0}.zm-data-search input::placeholder{color:#94a3b8}.zm-data-search-clear{border:none;background:transparent;color:#94a3b8;cursor:pointer;padding:0 2px;font-size:14px;line-height:1;border-radius:2px}.zm-data-search-clear:hover{background:#e2e8f0;color:#1e293b}.zm-data-paste{padding:8px 10px 10px;border-bottom:1px solid #f1f5f9;background:#f8fafc;flex-shrink:0}.zm-data-tabs{display:flex;gap:4px;margin-bottom:6px}.zm-data-tab{font:inherit;font-size:11px;padding:2px 8px;border:1px solid #e2e8f0;border-radius:4px;background:#fff;color:#475569;cursor:pointer;transition:all .1s}.zm-data-tab:hover{background:#f1f5f9}.zm-data-tab.is-active{background:#1e293b;border-color:#1e293b;color:#fff}.zm-data-paste textarea{width:100%;min-height:60px;max-height:160px;padding:6px 8px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:11px;line-height:1.4;border:1px solid #e2e8f0;border-radius:4px;background:#fff;resize:vertical;box-sizing:border-box}.zm-data-paste textarea:focus{outline:none;border-color:#3b82f6}.zm-data-paste-actions{display:flex;gap:4px;margin-top:6px}.zm-data-error{margin-top:6px;font-size:11px;color:#dc2626}.zm-data-tree{flex:1;overflow:auto;padding:8px 4px 8px 6px;background:#fff}.zm-data-footer{padding:6px 12px;border-top:1px solid #f1f5f9;background:#f8fafc;font-size:10px;color:#94a3b8;line-height:1.5;flex-shrink:0}.zm-data-footer-hint code{font-family:SF Mono,Menlo,Consolas,monospace;font-size:10px;background:#fff;border:1px solid #e2e8f0;padding:0 3px;border-radius:3px;color:#475569;margin:0 1px}.zm-md-panel{display:flex;flex-direction:column;height:100%;background:#f8fafc}.zm-md-toolbar{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid #f1f5f9;background:#f8fafc;flex-shrink:0}.zm-md-spacer{flex:1}.zm-md-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-family:inherit;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .1s;white-space:nowrap}.zm-md-btn:hover:not(:disabled){background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}.zm-md-btn:disabled{opacity:.4;cursor:not-allowed}.zm-md-btn.is-primary{background:#3b82f6;color:#fff;border-color:#3b82f6}.zm-md-btn.is-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb;color:#fff}.zm-md-error{padding:6px 10px;font-size:11px;color:#dc2626;background:#fef2f2;border-bottom:1px solid #fee2e2;flex-shrink:0}.zm-md-split{flex:1;display:flex;flex-direction:column;min-height:0}.zm-md-edit,.zm-md-preview{display:flex;flex-direction:column;min-height:0;flex:1}.zm-md-pane-header{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:600;color:#475569;background:#f1f5f9;border-bottom:1px solid #e2e8f0;letter-spacing:.02em;flex-shrink:0}.zm-md-hint{margin-left:auto;font-weight:400;color:#94a3b8;font-size:10px}.zm-md-textarea{flex:1;width:100%;padding:10px 12px;font-family:SF Mono,Menlo,Consolas,monospace;font-size:12px;line-height:1.5;color:#1e293b;border:none;border-bottom:1px solid #e2e8f0;background:#fff;resize:none;outline:none;box-sizing:border-box}.zm-md-textarea:focus{background:#fafbfc}.zm-md-preview-body{flex:1;position:relative;min-height:0;background:#fff;border-bottom:1px solid #e2e8f0}.zm-md-footer{display:flex;justify-content:flex-end;padding:8px 10px;background:#f8fafc;border-top:1px solid #e2e8f0;flex-shrink:0}.zm-settings-panel[data-v-ecc6e0c5]{display:flex;flex-direction:column;gap:14px;padding:16px 16px 24px}.zm-settings-section[data-v-ecc6e0c5]{background:#fff;border:1px solid #eef0f3;border-radius:12px;padding:16px}.zm-settings-section--actions[data-v-ecc6e0c5]{background:transparent;border:none;padding:0}.zm-settings-section-title[data-v-ecc6e0c5]{margin:0 0 14px;font-size:13px;font-weight:600;color:#0f172a;letter-spacing:-.01em;display:flex;align-items:baseline;gap:6px}.zm-settings-section-sub[data-v-ecc6e0c5]{font-size:11px;font-weight:500;color:#64748b;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zm-settings-field[data-v-ecc6e0c5]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;font-size:13px;color:#1e293b;min-height:32px}.zm-settings-label[data-v-ecc6e0c5]{flex:1;color:#334155;font-weight:500}.zm-settings-sub[data-v-ecc6e0c5]{font-size:11px;color:#64748b;font-weight:400;font-family:ui-monospace,monospace;margin-left:4px}.zm-settings-value-tag[data-v-ecc6e0c5]{font-size:11px;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:2px 8px;white-space:nowrap;font-family:ui-monospace,monospace}.zm-settings-number[data-v-ecc6e0c5]{font-size:12px;color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:5px 10px;width:64px;text-align:right;-moz-appearance:textfield;transition:border-color .12s,box-shadow .12s}.zm-settings-number[data-v-ecc6e0c5]::-webkit-outer-spin-button,.zm-settings-number[data-v-ecc6e0c5]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.zm-settings-number[data-v-ecc6e0c5]:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61a}.zm-select[data-v-ecc6e0c5]{font-size:12px;font-family:inherit;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:5px 10px;cursor:pointer;outline:none;transition:border-color .12s,box-shadow .12s;min-width:100px}.zm-select[data-v-ecc6e0c5]:focus,.zm-select[data-v-ecc6e0c5]:hover{border-color:#3b82f6}.zm-select[data-v-ecc6e0c5]:focus{background:#fff;box-shadow:0 0 0 3px #3b82f61a}.zm-settings-hint[data-v-ecc6e0c5]{margin:6px 0 0;font-size:11px;color:#94a3b8;line-height:1.5}.zm-settings-divider[data-v-ecc6e0c5]{height:1px;background:#f1f5f9;margin:12px 0}.zm-slider[data-v-ecc6e0c5]{position:relative;height:22px;display:flex;align-items:center;margin:2px 0 6px}.zm-slider-track[data-v-ecc6e0c5]{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:4px;background:#e2e8f0;border-radius:999px;pointer-events:none}.zm-slider input[type=range][data-v-ecc6e0c5]{position:relative;width:100%;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;height:22px;cursor:pointer;z-index:1}.zm-slider input[type=range][data-v-ecc6e0c5]::-webkit-slider-runnable-track{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:transparent;border-radius:999px}.zm-slider input[type=range][data-v-ecc6e0c5]::-moz-range-track{height:4px;background:transparent;border-radius:999px}.zm-slider input[type=range][data-v-ecc6e0c5]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #3b82f6;box-shadow:0 1px 4px #3b82f633;cursor:pointer;margin-top:-6px;transition:border-color .12s,box-shadow .12s}.zm-slider input[type=range][data-v-ecc6e0c5]::-webkit-slider-thumb:hover{border-color:#2563eb;box-shadow:0 2px 8px #3b82f64d}.zm-slider input[type=range][data-v-ecc6e0c5]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #3b82f6;box-shadow:0 1px 4px #3b82f633;cursor:pointer}.zm-toggle[data-v-ecc6e0c5]{position:relative;width:38px;height:22px;border:none;background:#cbd5e1;border-radius:999px;padding:0;cursor:pointer;transition:background .15s;flex-shrink:0}.zm-toggle.is-on[data-v-ecc6e0c5]{background:#3b82f6}.zm-toggle-knob[data-v-ecc6e0c5]{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000002e;transition:transform .15s}.zm-toggle.is-on .zm-toggle-knob[data-v-ecc6e0c5]{transform:translate(16px)}.zm-swatch-row[data-v-ecc6e0c5]{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 10px}.zm-swatch-row--compact[data-v-ecc6e0c5]{gap:4px;margin-bottom:6px}.zm-swatch[data-v-ecc6e0c5]{width:22px;height:22px;border-radius:7px;border:1.5px solid #e2e8f0;cursor:pointer;padding:0;flex-shrink:0;transition:transform .1s,border-color .12s,box-shadow .12s}.zm-swatch[data-v-ecc6e0c5]:hover{transform:scale(1.12);border-color:#94a3b8}.zm-swatch.is-active[data-v-ecc6e0c5]{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.zm-swatch.is-reset[data-v-ecc6e0c5]{background:#fff;color:#94a3b8;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}.zm-swatch.is-reset[data-v-ecc6e0c5]:hover{color:#ef4444;border-color:#fca5a5}.zm-swatch--custom[data-v-ecc6e0c5]{position:relative;overflow:hidden;background:conic-gradient(from 0deg,#f87171,#fbbf24,#34d399,#22d3ee,#818cf8,#c084fc,#f87171);border:1.5px solid #e2e8f0}.zm-swatch--custom input[type=color][data-v-ecc6e0c5]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.zm-color-input-wrap[data-v-ecc6e0c5]{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.zm-color-input[data-v-ecc6e0c5]{width:28px;height:22px;border:1.5px solid #e2e8f0;border-radius:7px;cursor:pointer;padding:0;background:none}.zm-color-input-text[data-v-ecc6e0c5]{font-size:11px;color:#64748b;font-family:ui-monospace,monospace}.zm-settings-field.zm-line-style-field[data-v-ecc6e0c5]{flex-direction:column;align-items:stretch;gap:6px}.zm-line-style-field .zm-settings-label[data-v-ecc6e0c5]{flex:none}.zm-line-style-group[data-v-ecc6e0c5]{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:4px;width:100%}.zm-line-style-btn[data-v-ecc6e0c5]{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:5px 4px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;color:#94a3b8;transition:all .12s;font-family:inherit}.zm-line-style-btn[data-v-ecc6e0c5]:hover{border-color:#cbd5e1;color:#475569;background:#fff}.zm-line-style-btn.is-on[data-v-ecc6e0c5]{border-color:#3b82f6;background:#eff6ff;color:#3b82f6}.zm-line-style-label[data-v-ecc6e0c5]{font-size:11px;font-weight:500}.zm-settings-preview[data-v-ecc6e0c5]{margin-top:12px;background:#f8fafc;border:1px solid #eef0f3;border-radius:10px;padding:10px 10px 8px}.zm-settings-preview svg[data-v-ecc6e0c5]{display:block}.zm-settings-preview-labels[data-v-ecc6e0c5]{display:flex;justify-content:space-between;font-size:10px;color:#94a3b8;margin-top:4px;padding:0 2px}.zm-palette-picker[data-v-ecc6e0c5]{margin:8px 0;padding:12px;background:#f8fafc;border-radius:10px;border:1px solid #eef0f3}.zm-palette-list[data-v-ecc6e0c5]{display:flex;flex-direction:column;gap:6px;margin-top:4px}.zm-palette-option[data-v-ecc6e0c5]{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .15s,background .15s;text-align:left;width:100%}.zm-palette-option[data-v-ecc6e0c5]:hover{border-color:#cbd5e1;background:#f8fafc}.zm-palette-option.is-active[data-v-ecc6e0c5]{border-color:#3b82f6;background:#eff6ff;box-shadow:0 0 0 1px #3b82f6}.zm-palette-option-name[data-v-ecc6e0c5]{font-size:12px;font-weight:500;color:#1e293b;min-width:36px;flex-shrink:0}.zm-palette-option-swatches[data-v-ecc6e0c5]{display:flex;gap:2px;flex:1;height:14px;border-radius:3px;overflow:hidden}.zm-palette-option-swatch[data-v-ecc6e0c5]{flex:1;min-width:0;height:100%}.zm-palette-custom-editor[data-v-ecc6e0c5]{margin-top:8px}.zm-palette-textarea[data-v-ecc6e0c5]{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.5;color:#0f172a;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:7px 8px;resize:vertical;min-height:36px;outline:none;box-sizing:border-box;transition:border-color .1s,box-shadow .1s}.zm-palette-textarea[data-v-ecc6e0c5]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.zm-palette-custom-actions[data-v-ecc6e0c5]{display:flex;gap:6px;margin-top:6px}.zm-palette-add[data-v-ecc6e0c5]{margin-top:8px;width:100%;padding:7px 8px;font-size:12px;font-family:inherit;font-weight:500;color:#3b82f6;background:#fff;border:1px dashed #bfdbfe;border-radius:8px;cursor:pointer;transition:all .1s}.zm-palette-add[data-v-ecc6e0c5]:hover{background:#eff6ff;border-color:#3b82f6}.zm-data-btn[data-v-ecc6e0c5]{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-family:inherit;color:#475569;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .1s}.zm-data-btn[data-v-ecc6e0c5]:hover{background:#f1f5f9;color:#1e293b;border-color:#cbd5e1}.zm-data-btn.is-primary[data-v-ecc6e0c5]{background:#3b82f6;color:#fff;border-color:#3b82f6}.zm-data-btn.is-primary[data-v-ecc6e0c5]:hover{background:#2563eb;border-color:#2563eb;color:#fff}.zm-settings-reset[data-v-ecc6e0c5]{width:100%;padding:10px 12px;font-size:12px;font-family:inherit;font-weight:500;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .1s}.zm-settings-reset[data-v-ecc6e0c5]:hover{background:#fef2f2;color:#ef4444;border-color:#fecaca}.zm-note-panel{display:flex;flex-direction:column;height:100%;padding:12px 12px 16px;gap:10px;background:#f8fafc}.zm-note-empty{padding:20px 12px;color:#64748b;font-size:13px;line-height:1.6}.zm-note-empty p{margin:0 0 6px}.zm-note-hint{color:#94a3b8;font-size:12px}.zm-note-header{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;flex-shrink:0}.zm-note-title-row{display:flex;align-items:baseline;gap:8px;min-width:0}.zm-note-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;flex-shrink:0}.zm-note-name{font-size:13px;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.zm-note-meta{font-size:11px;color:#94a3b8}.zm-note-scroll{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-right:2px}.zm-note-section{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.zm-note-section-head{display:flex;align-items:center;gap:8px;min-width:0}.zm-note-section-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#64748b;flex:1;min-width:0}.zm-note-section-hint{font-size:10px;color:#94a3b8}.zm-note-section-tag{font-size:10px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:1px 6px;line-height:1.4}.zm-note-section-actions{display:flex;justify-content:flex-end}.zm-note-textarea{width:100%;min-height:120px;padding:10px 12px;font:inherit;font-size:13px;line-height:20px;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;resize:none;outline:none;box-sizing:border-box;font-family:inherit;overflow:hidden}.zm-note-textarea:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.zm-note-textarea:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.zm-note-textarea::placeholder{color:#94a3b8;white-space:pre-line}.zm-note-split{display:flex;flex-direction:column;gap:6px}.zm-note-preview-toggle{font:inherit;font-size:10px;color:#1d4ed8;background:transparent;border:1px solid #bfdbfe;border-radius:999px;padding:1px 8px;cursor:pointer;transition:all .1s;flex-shrink:0}.zm-note-preview-toggle:hover{background:#eff6ff;border-color:#93c5fd}.zm-note-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;max-height:240px;overflow:auto;font-size:13px;line-height:1.6;color:#1e293b}.zm-note-preview-hint{color:#94a3b8;font-size:12px;font-style:italic}.zm-note-preview-body h1,.zm-note-preview-body h2,.zm-note-preview-body h3{margin:8px 0 4px;font-weight:600;color:#0f172a}.zm-note-preview-body h1{font-size:16px}.zm-note-preview-body h2{font-size:14px}.zm-note-preview-body h3{font-size:13px}.zm-note-preview-body h4,.zm-note-preview-body h5,.zm-note-preview-body h6{margin:6px 0 4px;font-size:12px;font-weight:600;color:#334155}.zm-note-preview-body p{margin:0 0 6px}.zm-note-preview-body p:last-child{margin-bottom:0}.zm-note-preview-body ul,.zm-note-preview-body ol{margin:0 0 6px;padding-left:20px}.zm-note-preview-body li{margin:0 0 2px}.zm-note-preview-body blockquote{margin:0 0 6px;padding:4px 10px;border-left:3px solid #cbd5e1;color:#475569;background:#f1f5f9}.zm-note-preview-body code{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;background:#f1f5f9;padding:1px 4px;border-radius:3px;color:#be185d}.zm-note-preview-body pre{margin:0 0 6px;padding:8px 10px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;overflow:auto}.zm-note-preview-body pre code{background:transparent;padding:0;color:inherit;font-size:12px;line-height:1.55}.zm-note-preview-body a{color:#1d4ed8;text-decoration:underline;text-decoration-color:#bfdbfe}.zm-note-preview-body a:hover{text-decoration-color:#1d4ed8}.zm-note-preview-body table{border-collapse:collapse;margin:0 0 6px;font-size:12px}.zm-note-preview-body th,.zm-note-preview-body td{border:1px solid #e2e8f0;padding:4px 8px;text-align:left}.zm-note-preview-body th{background:#f1f5f9;font-weight:600}.zm-note-preview-body hr{border:none;border-top:1px solid #e2e8f0;margin:8px 0}.zm-note-preview-body img{max-width:100%;max-height:200px;border-radius:4px;display:block}.zm-note-input{width:100%;padding:7px 10px;font:inherit;font-size:12px;line-height:1.5;color:#1e293b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;outline:none;box-sizing:border-box;font-family:inherit}.zm-note-input:focus{border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f61f}.zm-note-input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.zm-note-input-code{font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:11px;min-height:80px;resize:none;white-space:pre;line-height:20px;overflow:hidden}.zm-note-add-row{display:flex;flex-wrap:wrap;gap:6px;padding:2px 2px 0}.zm-note-add-chip{font:inherit;font-size:11px;color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:999px;padding:3px 10px;cursor:pointer;transition:all .1s}.zm-note-add-chip:hover{color:#1d4ed8;border-color:#93c5fd;background:#eff6ff}.zm-note-link-chip{display:inline-block;max-width:100%;padding:6px 10px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#1d4ed8;font-size:12px;text-decoration:none;word-break:break-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:background .1s}.zm-note-link-chip:hover{background:#dbeafe}.zm-note-image{display:block;max-width:100%;max-height:240px;object-fit:contain;border-radius:6px;background:#f1f5f9;margin:0 auto}.zm-note-code{margin:0;padding:10px 12px;background:#f1f5f9;color:#24292e;border:1px solid #e2e8f0;border-radius:8px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:320px;overflow:auto;box-shadow:0 1px 3px #0f172a14}.zm-note-code code{font:inherit;color:inherit;background:transparent;padding:0}.zm-note-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;color:#1e293b;table-layout:auto;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #92400e14}.zm-note-table th{background:#fde68a;font-weight:600;padding:6px 10px;text-align:left;border-right:1px solid #fcd34d;white-space:nowrap}.zm-note-table th:last-child{border-right:none}.zm-note-table td{border-top:1px solid #fde68a;border-right:1px solid #fde68a;padding:6px 10px;text-align:left;vertical-align:top;word-break:break-word;background:#fffbeb}.zm-note-table tr:last-child td{border-bottom:none}.zm-note-table td:last-child{border-right:none}.zm-note-action-btn{padding:4px 10px;font-size:12px;font-family:inherit;color:#fff;background:#3b82f6;border:1px solid #3b82f6;border-radius:6px;cursor:pointer;transition:all .1s}.zm-note-action-btn.is-danger{color:#b91c1c;background:#fff;border-color:#fca5a5}.zm-note-action-btn.is-danger:hover{background:#fee2e2;border-color:#f87171}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
|
|
2
2
|
Theme: GitHub
|
|
3
3
|
Description: Light theme as seen on github.com
|
|
4
4
|
Author: github.com
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
|
|
8
8
|
Outdated base version: https://github.com/primer/github-syntax-light
|
|
9
9
|
Current colors taken from GitHub's CSS
|
|
10
|
-
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.zm-mindmap{position:relative;width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;-webkit-user-select:none;user-select:none}.zm-canvas{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab}.zm-canvas:active{cursor:grabbing}.zm-world{position:absolute;left:0;top:0;transform-origin:0 0}.zm-svg-layer{position:absolute;pointer-events:none;overflow:visible}.zm-marquee{position:absolute;border:1px dashed #3b82f6;background:#3b82f614;pointer-events:none;z-index:5}.zm-svg{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;shape-rendering:geometricPrecision}.zm-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4em;box-sizing:border-box;border-radius:8px;border:1px solid transparent;line-height:1.2;cursor:default;transition:box-shadow .15s;white-space:nowrap;z-index:1}.zm-node:hover{box-shadow:0 4px 12px #0000001a;z-index:2}.zm-node:not(.is-root):not(.is-editing){cursor:grab}.zm-node.is-root{cursor:default}.zm-node.is-dragging-source{opacity:.4;cursor:grabbing}.zm-node.is-drop-target{outline:2px solid #4caf50;outline-offset:2px;transition:outline-color .1s ease}.zm-node.is-drop-target-before{box-shadow:0 -3px #3b82f6,0 1px 2px #0000000f}.zm-node.is-drop-target-after{box-shadow:0 3px #3b82f6,0 1px 2px #0000000f}.zm-drop-indicator{position:absolute;background:#3b82f6;border-radius:2px;pointer-events:none;z-index:9999;box-shadow:0 0 6px #3b82f680}.zm-drag-ghost{position:absolute;pointer-events:none;z-index:10000;padding:4px 10px;background:#fff;border:1px solid #4caf50;border-radius:4px;box-shadow:0 4px 12px #00000026;font-size:13px;color:#333;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;will-change:transform,left,top}body.is-dragging{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.zm-node.is-root{font-weight:600}.zm-node.is-selected{outline:2px solid #3b82f6;outline-offset:2px;z-index:3}.zm-node.is-selected-secondary{outline:2px solid #bfdbfe;outline-offset:2px;z-index:2}.zm-text{display:flex;align-items:center;justify-content:center;gap:4px;min-height:1.2em;max-width:200px;overflow:hidden}.zm-text-label{pointer-events:none;overflow:hidden;white-space:pre-line;min-width:0;flex-shrink:1}.zm-input{border:none;outline:none;background:transparent;color:inherit;font:inherit;text-align:center;width:100%;min-width:40px;resize:none;overflow:hidden;padding:0;line-height:1.2}.zm-tooltip{position:absolute;max-width:240px;padding:6px 10px;background:#0f172af0;color:#f8fafc;font-size:12px;line-height:1.4;border-radius:6px;box-shadow:0 4px 14px #0000002e;pointer-events:none;z-index:1000;white-space:normal;word-break:break-word;transform:translate(-50%,-100%);animation:zm-tooltip-in .12s ease-out}.zm-tooltip.is-below{transform:translate(-50%)}.zm-tooltip:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);border:4px solid transparent;border-top-color:#0f172af0}.zm-tooltip.is-below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#0f172af0}@keyframes zm-tooltip-in{0%{opacity:0;transform:translate(-50%,calc(-100% + 4px))}to{opacity:1;transform:translate(-50%,-100%)}}.zm-tooltip.is-below{animation-name:zm-tooltip-in-below}@keyframes zm-tooltip-in-below{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.zm-rich{margin-top:6px;width:max-content;overflow:visible;font-size:.78em;line-height:1.35;text-align:left;border-radius:4px;padding:0 .8em .2em;color:inherit}.zm-rich-above{margin:0 0 2px}.zm-rich-no-overflow{max-height:none;overflow:visible}.zm-rich-code{margin:0;padding:6px 14px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.92em;white-space:pre-wrap;word-break:break-word;background:#fffffff2;border:1px solid currentColor;border-radius:6px}.zm-rich-list{margin:0;padding-left:1.2em;list-style:disc}.zm-rich-list li{margin:1px 0}.zm-rich-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.92em;background:#fffffff2;border:1px solid currentColor;border-radius:6px;overflow:hidden}.zm-rich-table th{background:#ffffffbf;font-weight:600;text-align:left;padding:3px 10px;border-bottom:1px solid currentColor;border-right:1px solid currentColor;opacity:.9}.zm-rich-table th:last-child{border-right:none}.zm-rich-table td{border-top:1px solid currentColor;border-right:1px solid currentColor;padding:3px 10px;opacity:.9}.zm-rich-table tr:last-child td{border-bottom:none}.zm-rich-table td:last-child{border-right:none}.zm-rich-edit{width:100%;min-height:90px;margin:0;padding:4px 6px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.92em;line-height:1.4;color:inherit;background:#fff9;border:1px solid currentColor;border-radius:3px;outline:none;resize:vertical;white-space:pre;box-sizing:border-box}.zm-rich-edit:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.zm-rich-paragraph{white-space:pre-wrap;word-break:break-word}.zm-btn{position:absolute;width:18px;height:18px;border-radius:50%;border:none;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,transform .15s;z-index:4}.zm-node:hover .zm-btn,.zm-node.is-selected .zm-btn{opacity:1}.zm-btn:hover{transform:scale(1.15)}.zm-collapse{right:-10px;top:50%;width:22px;height:22px;border-radius:50%;background:#fff;border:none;transform:translateY(-50%);box-shadow:0 1px 4px #0f172a38;display:flex;align-items:center;justify-content:center}.zm-collapse-bar{display:block;width:10px;height:2.5px;border-radius:1.5px;background:var(--zm-collapse-color, #64748b)}.zm-collapse.is-on-left{right:auto;left:-10px}.zm-collapse:hover{transform:translateY(-50%) scale(1.15);background:#fff}.zm-collapse-badge{position:absolute;top:50%;transform:translateY(-50%);left:calc(100% + 8px);min-width:18px;height:18px;padding:0 5px;border-radius:5px;color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center;box-shadow:0 1px 2px #00000026;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:2;transition:filter .1s}.zm-collapse-badge.is-on-left{left:auto;right:calc(100% + 8px)}.zm-collapse-badge:hover{filter:brightness(.9)}.zm-node.has-image{flex-direction:column;padding:8px;gap:6px;white-space:normal}.zm-node-img{display:block;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;object-fit:contain;border-radius:4px}.zm-node-link,.zm-node-note-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;background:transparent;color:currentColor;border-radius:3px;cursor:pointer;flex-shrink:0;text-decoration:none;opacity:.75;transition:opacity .1s,background .1s;pointer-events:auto}.zm-node-link:hover,.zm-node-note-btn:hover{opacity:1;background:#0f172a14}.zm-node-link svg,.zm-node-note-btn svg{display:block}.zm-img-resize-handle{position:absolute;right:-6px;bottom:-6px;width:14px;height:14px;background:#3b82f6;border:2px solid #ffffff;border-radius:50%;cursor:nwse-resize;z-index:4;box-shadow:0 1px 4px #0f172a4d;transition:transform .1s}.zm-img-resize-handle:hover{transform:scale(1.2)}.zm-node.is-resizing{cursor:nwse-resize!important}.zm-img-remove-btn{position:absolute;right:-6px;top:-6px;width:16px;height:16px;background:#fff;border:1px solid #e2e8f0;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;padding:0;z-index:4;box-shadow:0 1px 3px #0f172a26;transition:all .1s}.zm-img-remove-btn:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.zm-order-badge{display:inline-block;margin-left:6px;padding:0 5px;font-size:10px;font-weight:600;line-height:16px;color:#475569;background:#e2e8f0;border-radius:3px;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;vertical-align:middle}.zm-canvas-fab{position:absolute;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:#fff;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 2px 8px #0f172a14;color:#475569;cursor:pointer;z-index:11;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease,background .1s,color .1s}.zm-canvas-fab.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.zm-canvas-fab:hover{background:#f1f5f9;color:#1e293b;box-shadow:0 4px 12px #0f172a1f}.zm-canvas-fab:active{transform:scale(.94)}.zm-canvas-fab-preview{top:16px;right:16px}.zm-canvas-fab-outline{top:16px;left:16px}.zm-toolbar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:6px 10px;background:#fff;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 4px 12px #0000000f;z-index:10;transition:opacity .18s ease,transform .18s ease}.zm-toolbar.is-preview-only{opacity:0;pointer-events:none;transform:translate(-50%) translateY(8px)}.zm-toolbar.is-preview-only.is-hovered{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.zm-tb-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:6px;cursor:pointer;color:#475569}.zm-tb-btn:hover{background:#f1f5f9;color:#1e293b}.zm-tb-btn img{filter:invert(20%) sepia(15%) saturate(500%) hue-rotate(180deg);transition:filter .1s}.zm-tb-btn:hover img{filter:invert(15%) sepia(30%) saturate(800%) hue-rotate(180deg)}.zm-tb-btn.active{background:var(--zm-tb-active, #fff7ed);color:var(--zm-tb-active-fg, #c2410c)}.zm-tb-divider{width:1px;height:18px;background:#e2e8f0;margin:0 4px}.zm-tb-tip{font-size:12px;color:#64748b;min-width:38px;text-align:center}.zm-tb-zoom{cursor:pointer;-webkit-user-select:none;user-select:none}.zm-tb-zoom:hover{color:#3b82f6}.zm-node.is-search-hit{outline:2px solid #f59e0b;outline-offset:2px;z-index:3}.zm-node.is-search-current{outline:3px solid #f97316;outline-offset:3px;z-index:4;box-shadow:0 0 0 4px #f9731626}.zm-node.is-search-dimmed{opacity:.35}.zm-node-markers{display:flex;align-items:center;gap:2px;flex-shrink:0;pointer-events:none}.zm-node-marker{display:inline-flex;width:14px;height:14px;flex-shrink:0}.zm-node-marker svg{display:block;width:14px;height:14px}.zm-node-tags{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;margin-top:3px;max-width:100%;overflow:hidden}.zm-node-tag{display:inline-block;padding:1px 6px;border-radius:999px;font-size:10px;line-height:1.4;font-weight:500;white-space:nowrap;pointer-events:none}.zm-app{display:flex;width:100%;height:100%;background:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;color:#1e293b;overflow:hidden}.zm-app-main{flex:1;display:flex;flex-direction:column;min-width:0}.zm-app-preview-exit{position:absolute;top:12px;right:12px;z-index:10;width:32px;height:32px;border:1px solid #e2e8f0;background:#fff;color:#475569;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0f172a14;transition:background .1s,color .1s,transform .1s}.zm-app-preview-exit:hover{background:#f1f5f9;color:#0f172a;transform:scale(1.05)}.zm-app-canvas{flex:1;position:relative;min-height:0}
|
|
10
|
+
*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}.zm-mindmap{position:relative;width:100%;height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;-webkit-user-select:none;user-select:none}.zm-canvas{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab}.zm-canvas:active{cursor:grabbing}.zm-world{position:absolute;left:0;top:0;transform-origin:0 0}.zm-svg-layer{position:absolute;pointer-events:none;overflow:visible}.zm-marquee{position:absolute;border:1px dashed #3b82f6;background:#3b82f614;pointer-events:none;z-index:5}.zm-svg{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;shape-rendering:geometricPrecision}.zm-node{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4em;box-sizing:border-box;border-radius:8px;border:1px solid transparent;line-height:1.2;cursor:default;transition:box-shadow .15s;white-space:nowrap;z-index:1}.zm-node:hover{box-shadow:0 4px 12px #0000001a;z-index:2}.zm-node:not(.is-root):not(.is-editing){cursor:grab}.zm-node.is-root{cursor:default}.zm-node.is-dragging-source{opacity:.4;cursor:grabbing}.zm-node.is-drop-target{outline:2px solid #4caf50;outline-offset:2px;transition:outline-color .1s ease}.zm-node.is-drop-target-before{box-shadow:0 -3px #3b82f6,0 1px 2px #0000000f}.zm-node.is-drop-target-after{box-shadow:0 3px #3b82f6,0 1px 2px #0000000f}.zm-drop-indicator{position:absolute;background:#3b82f6;border-radius:2px;pointer-events:none;z-index:9999;box-shadow:0 0 6px #3b82f680}.zm-drag-ghost{position:absolute;pointer-events:none;z-index:10000;padding:4px 10px;background:#fff;border:1px solid #4caf50;border-radius:4px;box-shadow:0 4px 12px #00000026;font-size:13px;color:#333;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis;will-change:transform,left,top}body.is-dragging{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.zm-node.is-root{font-weight:600}.zm-node.is-selected{outline:2px solid #3b82f6;outline-offset:2px;z-index:3}.zm-node.is-selected-secondary{outline:2px solid #bfdbfe;outline-offset:2px;z-index:2}.zm-text{display:flex;align-items:center;justify-content:center;gap:4px;min-height:1.2em;max-width:200px;overflow:hidden}.zm-text-label{pointer-events:none;overflow:hidden;white-space:pre-line;min-width:0;flex-shrink:1}.zm-input{border:none;outline:none;background:transparent;color:inherit;font:inherit;text-align:center;width:100%;min-width:40px;resize:none;overflow:hidden;padding:0;line-height:1.2}.zm-tooltip{position:absolute;max-width:240px;padding:6px 10px;background:#0f172af0;color:#f8fafc;font-size:12px;line-height:1.4;border-radius:6px;box-shadow:0 4px 14px #0000002e;pointer-events:none;z-index:1000;white-space:normal;word-break:break-word;transform:translate(-50%,-100%);animation:zm-tooltip-in .12s ease-out}.zm-tooltip.is-below{transform:translate(-50%)}.zm-tooltip:after{content:"";position:absolute;left:50%;top:100%;transform:translate(-50%);border:4px solid transparent;border-top-color:#0f172af0}.zm-tooltip.is-below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#0f172af0}@keyframes zm-tooltip-in{0%{opacity:0;transform:translate(-50%,calc(-100% + 4px))}to{opacity:1;transform:translate(-50%,-100%)}}.zm-tooltip.is-below{animation-name:zm-tooltip-in-below}@keyframes zm-tooltip-in-below{0%{opacity:0;transform:translate(-50%,-4px)}to{opacity:1;transform:translate(-50%)}}.zm-rich{margin-top:6px;width:max-content;overflow:visible;font-size:.78em;line-height:1.35;text-align:left;border-radius:4px;padding:0 .8em .2em;color:inherit}.zm-rich-above{margin:0 0 2px}.zm-rich-no-overflow{max-height:none;overflow:visible}.zm-rich-code{margin:0;padding:6px 14px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.92em;white-space:pre-wrap;word-break:break-word;background:#fffffff2;border:1px solid currentColor;border-radius:6px}.zm-rich-list{margin:0;padding-left:1.2em;list-style:disc}.zm-rich-list li{margin:1px 0}.zm-rich-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.92em;background:#fffffff2;border:1px solid currentColor;border-radius:6px;overflow:hidden}.zm-rich-table th{background:#ffffffbf;font-weight:600;text-align:left;padding:3px 10px;border-bottom:1px solid currentColor;border-right:1px solid currentColor;opacity:.9}.zm-rich-table th:last-child{border-right:none}.zm-rich-table td{border-top:1px solid currentColor;border-right:1px solid currentColor;padding:3px 10px;opacity:.9}.zm-rich-table tr:last-child td{border-bottom:none}.zm-rich-table td:last-child{border-right:none}.zm-rich-edit{width:100%;min-height:90px;margin:0;padding:4px 6px;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.92em;line-height:1.4;color:inherit;background:#fff9;border:1px solid currentColor;border-radius:3px;outline:none;resize:vertical;white-space:pre;box-sizing:border-box}.zm-rich-edit:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f626}.zm-rich-paragraph{white-space:pre-wrap;word-break:break-word}.zm-btn{position:absolute;width:18px;height:18px;border-radius:50%;border:none;background:#3b82f6;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,transform .15s;z-index:4}.zm-node:hover .zm-btn,.zm-node.is-selected .zm-btn{opacity:1}.zm-btn:hover{transform:scale(1.15)}.zm-collapse{right:-10px;top:50%;width:22px;height:22px;border-radius:50%;background:#fff;border:none;transform:translateY(-50%);box-shadow:0 1px 4px #0f172a38;display:flex;align-items:center;justify-content:center}.zm-collapse-bar{display:block;width:10px;height:2.5px;border-radius:1.5px;background:var(--zm-collapse-color, #64748b)}.zm-collapse.is-on-left{right:auto;left:-10px}.zm-collapse:hover{transform:translateY(-50%) scale(1.15);background:#fff}.zm-collapse-badge{position:absolute;top:50%;transform:translateY(-50%);left:calc(100% + 8px);min-width:18px;height:18px;padding:0 5px;border-radius:5px;color:#fff;font-size:11px;font-weight:600;line-height:18px;text-align:center;box-shadow:0 1px 2px #00000026;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:2;transition:filter .1s}.zm-collapse-badge.is-on-left{left:auto;right:calc(100% + 8px)}.zm-collapse-badge:hover{filter:brightness(.9)}.zm-node.has-image{flex-direction:column;padding:8px;gap:6px;white-space:normal}.zm-node-img{display:block;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;object-fit:contain;border-radius:4px}.zm-node-link,.zm-node-note-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;background:transparent;color:currentColor;border-radius:3px;cursor:pointer;flex-shrink:0;text-decoration:none;opacity:.75;transition:opacity .1s,background .1s;pointer-events:auto}.zm-node-link:hover,.zm-node-note-btn:hover{opacity:1;background:#0f172a14}.zm-node-link svg,.zm-node-note-btn svg{display:block}.zm-img-resize-handle{position:absolute;right:-6px;bottom:-6px;width:14px;height:14px;background:#3b82f6;border:2px solid #ffffff;border-radius:50%;cursor:nwse-resize;z-index:4;box-shadow:0 1px 4px #0f172a4d;transition:transform .1s}.zm-img-resize-handle:hover{transform:scale(1.2)}.zm-node.is-resizing{cursor:nwse-resize!important}.zm-img-remove-btn{position:absolute;right:-6px;top:-6px;width:16px;height:16px;background:#fff;border:1px solid #e2e8f0;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;padding:0;z-index:4;box-shadow:0 1px 3px #0f172a26;transition:all .1s}.zm-img-remove-btn:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.zm-order-badge{display:inline-block;margin-left:6px;padding:0 5px;font-size:10px;font-weight:600;line-height:16px;color:#475569;background:#e2e8f0;border-radius:3px;font-variant-numeric:tabular-nums;pointer-events:none;-webkit-user-select:none;user-select:none;vertical-align:middle}.zm-canvas-fab{position:absolute;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:none;background:#fff;border:1px solid #e8eaed;border-radius:999px;box-shadow:0 2px 8px #0f172a0f,0 1px 2px #0f172a0a;color:#475569;cursor:pointer;z-index:11;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .18s ease,transform .18s ease,background .1s,color .1s,box-shadow .12s}.zm-canvas-fab.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.zm-canvas-fab:hover{background:#f8fafc;color:#1e293b;box-shadow:0 4px 16px #0f172a1a,0 1px 4px #0f172a0f}.zm-canvas-fab:active{transform:scale(.94)}.zm-canvas-fab-preview{top:16px;right:16px}.zm-canvas-fab-outline{top:16px;left:16px}.zm-toolbar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:7px 12px;background:#ffffffeb;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);border:1px solid rgba(226,232,240,.6);border-radius:999px;box-shadow:0 4px 20px #0f172a0f,0 1px 3px #0f172a0a;z-index:10;transition:opacity .18s ease,transform .18s ease}.zm-toolbar.is-preview-only{opacity:0;pointer-events:none;transform:translate(-50%) translateY(8px)}.zm-toolbar.is-preview-only.is-hovered{opacity:1;pointer-events:auto;transform:translate(-50%) translateY(0)}.zm-tb-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;border-radius:8px;cursor:pointer;color:#475569;transition:background .12s,color .12s}.zm-tb-btn:hover{background:#f1f5f9;color:#0f172a}.zm-tb-btn img{filter:invert(20%) sepia(15%) saturate(500%) hue-rotate(180deg);transition:filter .1s}.zm-tb-btn:hover img{filter:invert(15%) sepia(30%) saturate(800%) hue-rotate(180deg)}.zm-tb-btn.active{background:var(--zm-tb-active, #fff7ed);color:var(--zm-tb-active-fg, #c2410c)}.zm-tb-divider{width:1px;height:18px;background:#e2e8f0b3;margin:0 4px}.zm-tb-tip{font-size:12px;color:#64748b;min-width:38px;text-align:center}.zm-tb-zoom{cursor:pointer;-webkit-user-select:none;user-select:none}.zm-tb-zoom:hover{color:#3b82f6}.zm-node.is-search-hit{outline:2px solid #f59e0b;outline-offset:2px;z-index:3}.zm-node.is-search-current{outline:3px solid #f97316;outline-offset:3px;z-index:4;box-shadow:0 0 0 4px #f9731626}.zm-node.is-search-dimmed{opacity:.35}.zm-node-markers{display:flex;align-items:center;gap:2px;flex-shrink:0;pointer-events:none}.zm-node-marker{display:inline-flex;width:14px;height:14px;flex-shrink:0}.zm-node-marker svg{display:block;width:14px;height:14px}.zm-node-tags{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;margin-top:3px;max-width:100%;overflow:hidden}.zm-node-tag{display:inline-block;padding:1px 6px;border-radius:999px;font-size:10px;line-height:1.4;font-weight:500;white-space:nowrap;pointer-events:none}.zm-app{display:flex;width:100%;height:100%;background:#f8fafc;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;color:#1e293b;overflow:hidden}.zm-app-main{flex:1;display:flex;flex-direction:column;min-width:0}.zm-app-preview-exit{position:absolute;top:12px;right:12px;z-index:10;width:34px;height:34px;border:1px solid #e8eaed;background:#ffffffeb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#475569;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0f172a0f;transition:background .12s,color .12s,transform .12s}.zm-app-preview-exit:hover{background:#f1f5f9;color:#0f172a;transform:scale(1.05)}.zm-app-canvas{flex:1;position:relative;min-height:0}
|
package/dist/types.d.ts
CHANGED
|
@@ -211,7 +211,7 @@ export interface MindMapSettings {
|
|
|
211
211
|
lineWidthTaper: number;
|
|
212
212
|
/** When true, all non-root edges share the same width (= lineWidthEnd),
|
|
213
213
|
* giving a uniform "thin" look for every branch regardless of depth.
|
|
214
|
-
* Only effective when taperedEdge is true. Default
|
|
214
|
+
* Only effective when taperedEdge is true. Default true. */
|
|
215
215
|
uniformLineWidth: boolean;
|
|
216
216
|
/** Corner radius (px) for the 'rounded-elbow' line style. Controls
|
|
217
217
|
* how round the 90° bends are. Only applied to the child-end corner;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flow-mindmap",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.12",
|
|
4
4
|
"description": "A modern, minimalist mind mapping tool — xmind-style, embeddable as a Vue component.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
"typecheck": "vue-tsc --noEmit",
|
|
53
53
|
"lint": "eslint . --ext .vue,.ts,.js --max-warnings 0",
|
|
54
54
|
"test": "vitest run",
|
|
55
|
-
"test:watch": "vitest"
|
|
55
|
+
"test:watch": "vitest",
|
|
56
|
+
"screenshots": "node scripts/screenshots.mjs"
|
|
56
57
|
},
|
|
57
58
|
"peerDependencies": {
|
|
58
59
|
"vue": "^3.4.0"
|