@ours.network/messenger-server 1.0.14 → 1.0.16
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/dist/chunks/{chunk-F2RPUI4L.js → chunk-XTLMQC4C.js} +1 -1
- package/dist/chunks/{server-WLUUGBEW.js → server-E57EQNMC.js} +1 -1
- package/dist/cli.js +2 -2
- package/dist/web/assets/{abnfDiagram-N423BO3Z-B2zWN_lS.js → abnfDiagram-N423BO3Z-zYLPcj1g.js} +2 -2
- package/dist/web/assets/{abnfDiagram-N423BO3Z-B2zWN_lS.js.map → abnfDiagram-N423BO3Z-zYLPcj1g.js.map} +1 -1
- package/dist/web/assets/{arc-DSEsZ3bi.js → arc-BFMe4chQ.js} +2 -2
- package/dist/web/assets/{arc-DSEsZ3bi.js.map → arc-BFMe4chQ.js.map} +1 -1
- package/dist/web/assets/{architectureDiagram-T3A2C74G-BNT5Nwf-.js → architectureDiagram-T3A2C74G-BKelkZKH.js} +2 -2
- package/dist/web/assets/{architectureDiagram-T3A2C74G-BNT5Nwf-.js.map → architectureDiagram-T3A2C74G-BKelkZKH.js.map} +1 -1
- package/dist/web/assets/{blockDiagram-VBNYF7ZC-Dsie79yN.js → blockDiagram-VBNYF7ZC-CHED2d6n.js} +2 -2
- package/dist/web/assets/{blockDiagram-VBNYF7ZC-Dsie79yN.js.map → blockDiagram-VBNYF7ZC-CHED2d6n.js.map} +1 -1
- package/dist/web/assets/{browser-y_Z64J2T.js → browser-C90Z8xCa.js} +2 -2
- package/dist/web/assets/{browser-y_Z64J2T.js.map → browser-C90Z8xCa.js.map} +1 -1
- package/dist/web/assets/{c4Diagram-5PPSVZJV-D2NVxCg_.js → c4Diagram-5PPSVZJV-BM9MTPjg.js} +2 -2
- package/dist/web/assets/{c4Diagram-5PPSVZJV-D2NVxCg_.js.map → c4Diagram-5PPSVZJV-BM9MTPjg.js.map} +1 -1
- package/dist/web/assets/channel-CNo4GWLb.js +2 -0
- package/dist/web/assets/{channel-tDeVdqTr.js.map → channel-CNo4GWLb.js.map} +1 -1
- package/dist/web/assets/{chunk-2GRJ4B5K-1iB4g3Uh.js → chunk-2GRJ4B5K-C4iVGbxx.js} +2 -2
- package/dist/web/assets/{chunk-2GRJ4B5K-1iB4g3Uh.js.map → chunk-2GRJ4B5K-C4iVGbxx.js.map} +1 -1
- package/dist/web/assets/{chunk-2Q5K7J3B-By1OwGZX.js → chunk-2Q5K7J3B-Dve8Pse2.js} +2 -2
- package/dist/web/assets/{chunk-2Q5K7J3B-By1OwGZX.js.map → chunk-2Q5K7J3B-Dve8Pse2.js.map} +1 -1
- package/dist/web/assets/{chunk-5RXB4S5H-BZSiAsa7.js → chunk-5RXB4S5H-C2oB-qjN.js} +2 -2
- package/dist/web/assets/{chunk-5RXB4S5H-BZSiAsa7.js.map → chunk-5RXB4S5H-C2oB-qjN.js.map} +1 -1
- package/dist/web/assets/{chunk-5VM5RSS4-D7wM91Xr.js → chunk-5VM5RSS4-DWcZ1FCf.js} +2 -2
- package/dist/web/assets/{chunk-5VM5RSS4-D7wM91Xr.js.map → chunk-5VM5RSS4-DWcZ1FCf.js.map} +1 -1
- package/dist/web/assets/{chunk-6Q2QTUOP-DGg2gORU.js → chunk-6Q2QTUOP-DiQ5-a8V.js} +2 -2
- package/dist/web/assets/{chunk-6Q2QTUOP-DGg2gORU.js.map → chunk-6Q2QTUOP-DiQ5-a8V.js.map} +1 -1
- package/dist/web/assets/{chunk-GF5L2VYU-BSgo0UgG.js → chunk-GF5L2VYU-CFdwjOhW.js} +2 -2
- package/dist/web/assets/{chunk-GF5L2VYU-BSgo0UgG.js.map → chunk-GF5L2VYU-CFdwjOhW.js.map} +1 -1
- package/dist/web/assets/{chunk-JWPE2WC7-xGZ2Tmyl.js → chunk-JWPE2WC7-Bw73DQVt.js} +2 -2
- package/dist/web/assets/{chunk-JWPE2WC7-xGZ2Tmyl.js.map → chunk-JWPE2WC7-Bw73DQVt.js.map} +1 -1
- package/dist/web/assets/{chunk-KBJHAD2P-CcWPaQ9M.js → chunk-KBJHAD2P-DjRu5gDe.js} +2 -2
- package/dist/web/assets/{chunk-KBJHAD2P-CcWPaQ9M.js.map → chunk-KBJHAD2P-DjRu5gDe.js.map} +1 -1
- package/dist/web/assets/{chunk-RYQCIY6F-ifX5hHpF.js → chunk-RYQCIY6F-DH_lQJgv.js} +2 -2
- package/dist/web/assets/{chunk-RYQCIY6F-ifX5hHpF.js.map → chunk-RYQCIY6F-DH_lQJgv.js.map} +1 -1
- package/dist/web/assets/{chunk-XXDRQBXY-BJgFDi3U.js → chunk-XXDRQBXY-D-sQ51mo.js} +2 -2
- package/dist/web/assets/{chunk-XXDRQBXY-BJgFDi3U.js.map → chunk-XXDRQBXY-D-sQ51mo.js.map} +1 -1
- package/dist/web/assets/classDiagram-JCYQIIEL-n1b9u-Rf.js +2 -0
- package/dist/web/assets/{classDiagram-JCYQIIEL-HvibuhCN.js.map → classDiagram-JCYQIIEL-n1b9u-Rf.js.map} +1 -1
- package/dist/web/assets/classDiagram-v2-OCEON4UE-n1b9u-Rf.js +2 -0
- package/dist/web/assets/{classDiagram-v2-OCEON4UE-HvibuhCN.js.map → classDiagram-v2-OCEON4UE-n1b9u-Rf.js.map} +1 -1
- package/dist/web/assets/{cose-bilkent-JH36ORCC-CyyKFUp2.js → cose-bilkent-JH36ORCC-DqKiC30z.js} +2 -2
- package/dist/web/assets/{cose-bilkent-JH36ORCC-CyyKFUp2.js.map → cose-bilkent-JH36ORCC-DqKiC30z.js.map} +1 -1
- package/dist/web/assets/{cynefin-VYW2F7L2-C7QsJsAc.js → cynefin-VYW2F7L2-NdwQRwjo.js} +2 -2
- package/dist/web/assets/{cynefin-VYW2F7L2-C7QsJsAc.js.map → cynefin-VYW2F7L2-NdwQRwjo.js.map} +1 -1
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-HmVVRVTp.js → cynefinDiagram-MW4NZA55-BQAM0nx5.js} +2 -2
- package/dist/web/assets/{cynefinDiagram-MW4NZA55-HmVVRVTp.js.map → cynefinDiagram-MW4NZA55-BQAM0nx5.js.map} +1 -1
- package/dist/web/assets/{dagre-VZM6K2ZE-keYXY502.js → dagre-VZM6K2ZE-BakUuCWI.js} +2 -2
- package/dist/web/assets/{dagre-VZM6K2ZE-keYXY502.js.map → dagre-VZM6K2ZE-BakUuCWI.js.map} +1 -1
- package/dist/web/assets/{diagram-7IWD3JNH-BSVxrtzY.js → diagram-7IWD3JNH-DqlokNoJ.js} +2 -2
- package/dist/web/assets/{diagram-7IWD3JNH-BSVxrtzY.js.map → diagram-7IWD3JNH-DqlokNoJ.js.map} +1 -1
- package/dist/web/assets/{diagram-B4RE2ZJO-CUzw1p4P.js → diagram-B4RE2ZJO-CxfL2Ohr.js} +2 -2
- package/dist/web/assets/{diagram-B4RE2ZJO-CUzw1p4P.js.map → diagram-B4RE2ZJO-CxfL2Ohr.js.map} +1 -1
- package/dist/web/assets/{diagram-LBJQPF4R-oHmF20Td.js → diagram-LBJQPF4R-Bf5hVD55.js} +2 -2
- package/dist/web/assets/{diagram-LBJQPF4R-oHmF20Td.js.map → diagram-LBJQPF4R-Bf5hVD55.js.map} +1 -1
- package/dist/web/assets/{diagram-Q27KOJAE-CxOocBel.js → diagram-Q27KOJAE-CvO71PHg.js} +2 -2
- package/dist/web/assets/{diagram-Q27KOJAE-CxOocBel.js.map → diagram-Q27KOJAE-CvO71PHg.js.map} +1 -1
- package/dist/web/assets/{diagram-UB23O5K3-o_ENRt30.js → diagram-UB23O5K3-iQhxWPij.js} +2 -2
- package/dist/web/assets/{diagram-UB23O5K3-o_ENRt30.js.map → diagram-UB23O5K3-iQhxWPij.js.map} +1 -1
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-Puzz-dis.js → ebnfDiagram-BXEA7PRR-3knPZeRi.js} +2 -2
- package/dist/web/assets/{ebnfDiagram-BXEA7PRR-Puzz-dis.js.map → ebnfDiagram-BXEA7PRR-3knPZeRi.js.map} +1 -1
- package/dist/web/assets/{erDiagram-JOGREHBK-CFoSN_9S.js → erDiagram-JOGREHBK-BusNzhCo.js} +2 -2
- package/dist/web/assets/{erDiagram-JOGREHBK-CFoSN_9S.js.map → erDiagram-JOGREHBK-BusNzhCo.js.map} +1 -1
- package/dist/web/assets/{flowDiagram-UKHOOZJN-j1FYWrMF.js → flowDiagram-UKHOOZJN-D1GiHCui.js} +2 -2
- package/dist/web/assets/{flowDiagram-UKHOOZJN-j1FYWrMF.js.map → flowDiagram-UKHOOZJN-D1GiHCui.js.map} +1 -1
- package/dist/web/assets/{ganttDiagram-PKOTCBZU-CfigbHLE.js → ganttDiagram-PKOTCBZU-cQM02Z_A.js} +2 -2
- package/dist/web/assets/{ganttDiagram-PKOTCBZU-CfigbHLE.js.map → ganttDiagram-PKOTCBZU-cQM02Z_A.js.map} +1 -1
- package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-B71LyVkV.js → gitGraphDiagram-DS77QQ5N-mys_yOmq.js} +2 -2
- package/dist/web/assets/{gitGraphDiagram-DS77QQ5N-B71LyVkV.js.map → gitGraphDiagram-DS77QQ5N-mys_yOmq.js.map} +1 -1
- package/dist/web/assets/index-BWQQ5ucz.css +1 -0
- package/dist/web/assets/index-CAvELUgG.js +321 -0
- package/dist/web/assets/index-CAvELUgG.js.map +1 -0
- package/dist/web/assets/{infoDiagram-6WML65LV-BxlnSu6o.js → infoDiagram-6WML65LV-CYUIhFE6.js} +2 -2
- package/dist/web/assets/{infoDiagram-6WML65LV-BxlnSu6o.js.map → infoDiagram-6WML65LV-CYUIhFE6.js.map} +1 -1
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-CmLVrbUX.js → ishikawaDiagram-WSZJBQD7-D0gaNJgz.js} +2 -2
- package/dist/web/assets/{ishikawaDiagram-WSZJBQD7-CmLVrbUX.js.map → ishikawaDiagram-WSZJBQD7-D0gaNJgz.js.map} +1 -1
- package/dist/web/assets/{journeyDiagram-NVQOT4AX-CLKvJx4K.js → journeyDiagram-NVQOT4AX-DIhXjZwD.js} +2 -2
- package/dist/web/assets/{journeyDiagram-NVQOT4AX-CLKvJx4K.js.map → journeyDiagram-NVQOT4AX-DIhXjZwD.js.map} +1 -1
- package/dist/web/assets/{jsQR-1rjJPL_g.js → jsQR-C8ubx0fr.js} +2 -2
- package/dist/web/assets/{jsQR-1rjJPL_g.js.map → jsQR-C8ubx0fr.js.map} +1 -1
- package/dist/web/assets/{kanban-definition-27J2QSJJ-DJM79J_a.js → kanban-definition-27J2QSJJ-BxGDo3GN.js} +2 -2
- package/dist/web/assets/{kanban-definition-27J2QSJJ-DJM79J_a.js.map → kanban-definition-27J2QSJJ-BxGDo3GN.js.map} +1 -1
- package/dist/web/assets/{linear-CsUv0p1U.js → linear-CUc_zRCa.js} +2 -2
- package/dist/web/assets/{linear-CsUv0p1U.js.map → linear-CUc_zRCa.js.map} +1 -1
- package/dist/web/assets/{mermaid.core-DdtlQk8s.js → mermaid.core-CT_PukdE.js} +5 -5
- package/dist/web/assets/{mermaid.core-DdtlQk8s.js.map → mermaid.core-CT_PukdE.js.map} +1 -1
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-ztDhFbv3.js → mindmap-definition-FAOFIHXS-DzSWAB1J.js} +2 -2
- package/dist/web/assets/{mindmap-definition-FAOFIHXS-ztDhFbv3.js.map → mindmap-definition-FAOFIHXS-DzSWAB1J.js.map} +1 -1
- package/dist/web/assets/{pegDiagram-VL7TDLO6-CV5lnlip.js → pegDiagram-VL7TDLO6-B7M9OfRG.js} +2 -2
- package/dist/web/assets/{pegDiagram-VL7TDLO6-CV5lnlip.js.map → pegDiagram-VL7TDLO6-B7M9OfRG.js.map} +1 -1
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-llVYN4VC.js → pieDiagram-7S7Q4E2Y-BcYxwyY_.js} +2 -2
- package/dist/web/assets/{pieDiagram-7S7Q4E2Y-llVYN4VC.js.map → pieDiagram-7S7Q4E2Y-BcYxwyY_.js.map} +1 -1
- package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-UyvkvG5t.js → quadrantDiagram-CIZ2JOQS-Cqm-8BCr.js} +2 -2
- package/dist/web/assets/{quadrantDiagram-CIZ2JOQS-UyvkvG5t.js.map → quadrantDiagram-CIZ2JOQS-Cqm-8BCr.js.map} +1 -1
- package/dist/web/assets/{railroadDiagram-AXF67PYL-DC-m_7js.js → railroadDiagram-AXF67PYL-Cd4kbtKm.js} +2 -2
- package/dist/web/assets/{railroadDiagram-AXF67PYL-DC-m_7js.js.map → railroadDiagram-AXF67PYL-Cd4kbtKm.js.map} +1 -1
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-B5KoU0gT.js → requirementDiagram-LRYGKXZP-0QC6DgKB.js} +2 -2
- package/dist/web/assets/{requirementDiagram-LRYGKXZP-B5KoU0gT.js.map → requirementDiagram-LRYGKXZP-0QC6DgKB.js.map} +1 -1
- package/dist/web/assets/{sankeyDiagram-W5VNT64P-DgDYqDm6.js → sankeyDiagram-W5VNT64P-Dbw_ZsTK.js} +2 -2
- package/dist/web/assets/{sankeyDiagram-W5VNT64P-DgDYqDm6.js.map → sankeyDiagram-W5VNT64P-Dbw_ZsTK.js.map} +1 -1
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-6-E7ikP2.js → sequenceDiagram-SI44F4Z6-CTtqv5hy.js} +2 -2
- package/dist/web/assets/{sequenceDiagram-SI44F4Z6-6-E7ikP2.js.map → sequenceDiagram-SI44F4Z6-CTtqv5hy.js.map} +1 -1
- package/dist/web/assets/{sizeCapture-X5ZJPWSS-C7C_0sXi.js → sizeCapture-X5ZJPWSS-DEKrTD1X.js} +2 -2
- package/dist/web/assets/{sizeCapture-X5ZJPWSS-C7C_0sXi.js.map → sizeCapture-X5ZJPWSS-DEKrTD1X.js.map} +1 -1
- package/dist/web/assets/{stateDiagram-OKZ733FA-nYTj61HN.js → stateDiagram-OKZ733FA-QTIZuWV9.js} +2 -2
- package/dist/web/assets/{stateDiagram-OKZ733FA-nYTj61HN.js.map → stateDiagram-OKZ733FA-QTIZuWV9.js.map} +1 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-CrwRGZAU.js +2 -0
- package/dist/web/assets/{stateDiagram-v2-UEYNNEHI-10hPV_vD.js.map → stateDiagram-v2-UEYNNEHI-CrwRGZAU.js.map} +1 -1
- package/dist/web/assets/{swimlanes-SLNWSIFB-BSbMj0WM.js → swimlanes-SLNWSIFB-uVYP6afm.js} +3 -3
- package/dist/web/assets/{swimlanes-SLNWSIFB-BSbMj0WM.js.map → swimlanes-SLNWSIFB-uVYP6afm.js.map} +1 -1
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-Ck34axny.js +9 -0
- package/dist/web/assets/{swimlanesDiagram-ULZ7WXOC-hq3MVmaI.js.map → swimlanesDiagram-ULZ7WXOC-Ck34axny.js.map} +1 -1
- package/dist/web/assets/{timeline-definition-Z64GVDOM-nCbMfSgE.js → timeline-definition-Z64GVDOM-qp3Mh9Uw.js} +2 -2
- package/dist/web/assets/{timeline-definition-Z64GVDOM-nCbMfSgE.js.map → timeline-definition-Z64GVDOM-qp3Mh9Uw.js.map} +1 -1
- package/dist/web/assets/{vennDiagram-T6HMQDX7-Vq5F8Hmc.js → vennDiagram-T6HMQDX7-BV12qOhE.js} +2 -2
- package/dist/web/assets/{vennDiagram-T6HMQDX7-Vq5F8Hmc.js.map → vennDiagram-T6HMQDX7-BV12qOhE.js.map} +1 -1
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-BiJ1tqCm.js → wardleyDiagram-T6FBY63Y-CD3UVrjV.js} +2 -2
- package/dist/web/assets/{wardleyDiagram-T6FBY63Y-BiJ1tqCm.js.map → wardleyDiagram-T6FBY63Y-CD3UVrjV.js.map} +1 -1
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-CtTekuBn.js → xychartDiagram-ELKLHX3M-cB0ynd1S.js} +2 -2
- package/dist/web/assets/{xychartDiagram-ELKLHX3M-CtTekuBn.js.map → xychartDiagram-ELKLHX3M-cB0ynd1S.js.map} +1 -1
- package/dist/web/index.html +2 -2
- package/dist/web/sw.js +1 -1
- package/dist/web/version.json +1 -1
- package/package.json +1 -1
- package/dist/web/assets/channel-tDeVdqTr.js +0 -2
- package/dist/web/assets/classDiagram-JCYQIIEL-HvibuhCN.js +0 -2
- package/dist/web/assets/classDiagram-v2-OCEON4UE-HvibuhCN.js +0 -2
- package/dist/web/assets/index-Dj3R_BQQ.css +0 -1
- package/dist/web/assets/index-DzyoXXal.js +0 -321
- package/dist/web/assets/index-DzyoXXal.js.map +0 -1
- package/dist/web/assets/stateDiagram-v2-UEYNNEHI-10hPV_vD.js +0 -2
- package/dist/web/assets/swimlanesDiagram-ULZ7WXOC-hq3MVmaI.js +0 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e}from"./mermaid.core-
|
|
1
|
+
import{_ as e}from"./mermaid.core-CT_PukdE.js";var l=e(()=>`
|
|
2
2
|
/* Font Awesome icon styling - consolidated */
|
|
3
3
|
.label-icon {
|
|
4
4
|
display: inline-block;
|
|
@@ -13,4 +13,4 @@ import{_ as e}from"./mermaid.core-DdtlQk8s.js";var l=e(()=>`
|
|
|
13
13
|
stroke-width: revert;
|
|
14
14
|
}
|
|
15
15
|
`,"getIconStyles");export{l as g};
|
|
16
|
-
//# sourceMappingURL=chunk-5VM5RSS4-
|
|
16
|
+
//# sourceMappingURL=chunk-5VM5RSS4-DWcZ1FCf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-5VM5RSS4-
|
|
1
|
+
{"version":3,"file":"chunk-5VM5RSS4-DWcZ1FCf.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-5VM5RSS4.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/globalStyles.ts\nvar getIconStyles = /* @__PURE__ */ __name(() => `\n /* Font Awesome icon styling - consolidated */\n .label-icon {\n display: inline-block;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n }\n \n .node .label-icon path {\n fill: currentColor;\n stroke: revert;\n stroke-width: revert;\n }\n`, \"getIconStyles\");\n\nexport {\n getIconStyles\n};\n"],"names":["getIconStyles","__name"],"mappings":"+CAKG,IAACA,EAAgCC,EAAO,IAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAc9C,eAAe","x_google_ignoreList":[0]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as p,l as w,D as L,y as E,p as I,E as X,e as H,i as q,c as G}from"./mermaid.core-
|
|
1
|
+
import{_ as p,l as w,D as L,y as E,p as I,E as X,e as H,i as q,c as G}from"./mermaid.core-CT_PukdE.js";var z="",b="",N="",A=[],R=new Map,k=p(e=>q(e,G()),"sanitizeText"),F=p(e=>{switch(e.type){case"terminal":return{...e,value:k(e.value)};case"nonterminal":return{...e,name:k(e.name)};case"sequence":return{...e,elements:e.elements.map(F)};case"choice":return{...e,alternatives:e.alternatives.map(F)};case"optional":return{...e,element:F(e.element)};case"repetition":return{...e,element:F(e.element),separator:e.separator?F(e.separator):void 0};case"special":return{...e,text:k(e.text)}}},"sanitizeAstNode"),U=p(()=>{z="",b="",N="",A.length=0,R.clear(),I(),w.debug("[Railroad] Database cleared")},"clear"),_=p(e=>{z=k(e),w.debug("[Railroad] Title set:",e)},"setTitle"),W=p(()=>z,"getTitle"),j=p(e=>{const i={...e,name:k(e.name),definition:F(e.definition),comment:e.comment?k(e.comment):void 0};w.debug("[Railroad] Adding rule:",i.name),R.has(i.name)&&w.warn(`[Railroad] Rule '${i.name}' is already defined. Overwriting.`),A.push(i),R.set(i.name,i)},"addRule"),K=p(()=>A,"getRules"),J=p(e=>R.get(e),"getRule"),Q=p(e=>{b=k(e).replace(/^\s+/g,""),w.debug("[Railroad] Accessibility title set:",e)},"setAccTitle"),Z=p(()=>b,"getAccTitle"),V=p(e=>{N=k(e).replace(/\n\s+/g,`
|
|
2
2
|
`),w.debug("[Railroad] Accessibility description set:",e)},"setAccDescription"),ee=p(()=>N,"getAccDescription"),te=_,re=W,ie={clear:U,setTitle:_,getTitle:W,addRule:j,getRules:K,getRule:J,setAccTitle:Q,getAccTitle:Z,setAccDescription:V,getAccDescription:ee,setDiagramTitle:te,getDiagramTitle:re},g={compactMode:!1,padding:10,verticalSeparation:8,horizontalSeparation:10,arcRadius:10,fontSize:14,fontFamily:"monospace",terminalFill:"#FFFFC0",terminalStroke:"#000000",terminalTextColor:"#000000",nonTerminalFill:"#FFFFFF",nonTerminalStroke:"#000000",nonTerminalTextColor:"#000000",lineColor:"#000000",strokeWidth:2,markerFill:"#000000",commentFill:"#E8E8E8",commentStroke:"#888888",commentTextColor:"#666666",specialFill:"#F0E0FF",specialStroke:"#8800CC",ruleNameColor:"#000066",showMarkers:!0,markerRadius:5},ne=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,ae=/^[\w "',.-]+$/,oe=new Set(["compactMode","padding","verticalSeparation","horizontalSeparation","arcRadius","fontSize","fontFamily","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","showMarkers","markerRadius"]),B=p(e=>e?Object.keys(e).every(i=>i==="railroad"||oe.has(i)):!1,"isRailroadStyleOptions"),le=p(e=>e?"railroad"in e&&e.railroad?e.railroad:B(e)?e:{}:{},"extractRailroadOverrides"),se=p(e=>{if(!e||B(e))return{};const{railroad:i,svgId:a,theme:r,look:t,...n}=e;return n},"extractThemeOverrides"),m=p((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ne.test(a)?a:i},"sanitizeColorValue"),Y=p((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ae.test(a)?a:i},"sanitizeFontFamilyValue"),S=p((e,i)=>{const a=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(a)&&a>=0?a:i},"sanitizeNumberValue"),de=p(e=>{const i=typeof e=="number"?e:typeof e=="string"?Number.parseFloat(e):Number.NaN;return Number.isFinite(i)&&i>0?i:void 0},"parseThemeFontSize"),ce=p(e=>{const i=Y(e.fontFamily,g.fontFamily),a=de(e.fontSize)??g.fontSize;return{...g,fontFamily:i,fontSize:a,terminalFill:m(e.secondBkg??e.secondaryColor,g.terminalFill),terminalStroke:m(e.secondaryBorderColor??e.lineColor,g.terminalStroke),terminalTextColor:m(e.secondaryTextColor??e.textColor,g.terminalTextColor),nonTerminalFill:m(e.mainBkg??e.background,g.nonTerminalFill),nonTerminalStroke:m(e.primaryBorderColor??e.lineColor,g.nonTerminalStroke),nonTerminalTextColor:m(e.primaryTextColor??e.textColor,g.nonTerminalTextColor),lineColor:m(e.lineColor,g.lineColor),markerFill:m(e.lineColor,g.markerFill),commentFill:m(e.labelBackground??e.tertiaryColor,g.commentFill),commentStroke:m(e.tertiaryBorderColor??e.lineColor,g.commentStroke),commentTextColor:m(e.tertiaryTextColor??e.textColor,g.commentTextColor),specialFill:m(e.tertiaryColor??e.secondaryColor,g.specialFill),specialStroke:m(e.tertiaryBorderColor??e.secondaryBorderColor,g.specialStroke),ruleNameColor:m(e.titleColor??e.textColor,g.ruleNameColor)}},"buildThemeDefaults"),M=p(e=>{const i=E(),a={...X(),...i.themeVariables??{},...se(e)},r=ce(a),t={...i.railroad??{},...le(e)};return{compactMode:t.compactMode??r.compactMode,padding:S(t.padding,r.padding),verticalSeparation:S(t.verticalSeparation,r.verticalSeparation),horizontalSeparation:S(t.horizontalSeparation,r.horizontalSeparation),arcRadius:S(t.arcRadius,r.arcRadius),fontSize:S(t.fontSize,r.fontSize),fontFamily:Y(t.fontFamily,r.fontFamily),terminalFill:m(t.terminalFill,r.terminalFill),terminalStroke:m(t.terminalStroke,r.terminalStroke),terminalTextColor:m(t.terminalTextColor,r.terminalTextColor),nonTerminalFill:m(t.nonTerminalFill,r.nonTerminalFill),nonTerminalStroke:m(t.nonTerminalStroke,r.nonTerminalStroke),nonTerminalTextColor:m(t.nonTerminalTextColor,r.nonTerminalTextColor),lineColor:m(t.lineColor,r.lineColor),strokeWidth:S(t.strokeWidth,r.strokeWidth),markerFill:m(t.markerFill,r.markerFill),commentFill:m(t.commentFill,r.commentFill),commentStroke:m(t.commentStroke,r.commentStroke),commentTextColor:m(t.commentTextColor,r.commentTextColor),specialFill:m(t.specialFill,r.specialFill),specialStroke:m(t.specialStroke,r.specialStroke),ruleNameColor:m(t.ruleNameColor,r.ruleNameColor),showMarkers:t.showMarkers??r.showMarkers,markerRadius:S(t.markerRadius,r.markerRadius)}},"buildRailroadStyleOptions"),ue=p(e=>{const{fontFamily:i,fontSize:a,terminalFill:r,terminalStroke:t,terminalTextColor:n,nonTerminalFill:h,nonTerminalStroke:s,nonTerminalTextColor:o,lineColor:u,strokeWidth:c,markerFill:d,commentFill:x,commentStroke:l,commentTextColor:f,specialFill:y,specialStroke:v,ruleNameColor:C}=M(e);return`
|
|
3
3
|
.railroad-diagram {
|
|
4
4
|
font-family: ${i};
|
|
@@ -86,4 +86,4 @@ import{_ as p,l as w,D as L,y as E,p as I,E as X,e as H,i as q,c as G}from"./mer
|
|
|
86
86
|
}
|
|
87
87
|
`},"getStyles"),T=class{constructor(){this.d=""}static{p(this,"PathBuilder")}moveTo(e,i){return this.d+=`M ${e} ${i} `,this}lineTo(e,i){return this.d+=`L ${e} ${i} `,this}horizontalTo(e){return this.d+=`H ${e} `,this}verticalTo(e){return this.d+=`V ${e} `,this}arcTo(e,i,a,r,t,n,h){return this.d+=`A ${e} ${i} ${a} ${r?1:0} ${t?1:0} ${n} ${h} `,this}build(){return this.d.trim()}},me=class{constructor(e,i=M()){this.textCache=new Map,this.svg=e,this.config=i}static{p(this,"RailroadRenderer")}measureText(e){if(this.textCache.has(e))return this.textCache.get(e);const i=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(e),a=i.node().getBBox(),r={width:a.width,height:a.height};return i.remove(),this.textCache.set(e,r),r}renderTerminal(e,i){const a=this.measureText(i),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-terminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t).attr("rx",10).attr("ry",10),n.append("text").attr("x",r/2).attr("y",t/2).text(i),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderNonTerminal(e,i){const a=this.measureText(i),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-nonterminal");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t),n.append("text").attr("x",r/2).attr("y",t/2).text(i),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderSequence(e,i){const a=i.map(o=>this.renderExpression(e,o));let r=0,t=0,n=0;for(const o of a)r+=o.dimensions.width,t=Math.max(t,o.dimensions.up),n=Math.max(n,o.dimensions.down);r+=(a.length-1)*this.config.horizontalSeparation;const h=e.append("g").attr("class","railroad-sequence");let s=0;for(let o=0;o<a.length;o++){const u=a[o],c=t-u.dimensions.up;if(h.node().appendChild(u.element).setAttribute("transform",`translate(${s}, ${c})`),o<a.length-1){const x=s+u.dimensions.width,l=x+this.config.horizontalSeparation,f=t;h.append("path").attr("class","railroad-line").attr("d",new T().moveTo(x,f).lineTo(l,f).build())}s+=u.dimensions.width+this.config.horizontalSeparation}return{element:h.node(),dimensions:{width:r,height:t+n,up:t,down:n}}}renderChoice(e,i){const a=i.map(d=>this.renderExpression(e,d));let r=0,t=0;for(const d of a)r=Math.max(r,d.dimensions.width),t+=d.dimensions.height;t+=(a.length-1)*this.config.verticalSeparation;const n=this.config.arcRadius,h=n*4,s=r+h,o=e.append("g").attr("class","railroad-choice");let u=0;const c=t/2;for(const d of a){const x=u,l=x+d.dimensions.up,f=n*2+(r-d.dimensions.width)/2;o.node().appendChild(d.element).setAttribute("transform",`translate(${f}, ${x})`);const v=new T,C=l>c;l===c?v.moveTo(0,c).lineTo(f,l):v.moveTo(0,c).arcTo(n,n,0,!1,C,n,c+(C?n:-n)).lineTo(n,l-(C?n:-n)).arcTo(n,n,0,!1,!C,n*2,l).lineTo(f,l),o.append("path").attr("class","railroad-line").attr("d",v.build());const $=new T,O=f+d.dimensions.width,P=s-n*2;l===c?$.moveTo(O,l).lineTo(s,c):$.moveTo(O,l).lineTo(P,l).arcTo(n,n,0,!1,!C,s-n,l+(C?-n:n)).lineTo(s-n,c+(C?n:-n)).arcTo(n,n,0,!1,C,s,c),o.append("path").attr("class","railroad-line").attr("d",$.build()),u+=d.dimensions.height+this.config.verticalSeparation}return{element:o.node(),dimensions:{width:s,height:t,up:c,down:t-c}}}renderOptional(e,i){const a=this.renderExpression(e,i),r=this.config.arcRadius,t=r*2,n=a.dimensions.width+r*4,h=a.dimensions.height+t,s=e.append("g").attr("class","railroad-optional"),o=r*2,u=t;s.node().appendChild(a.element).setAttribute("transform",`translate(${o}, ${u})`);const d=u+a.dimensions.up,x=new T().moveTo(0,d).lineTo(r*2,d);s.append("path").attr("class","railroad-line").attr("d",x.build());const l=new T().moveTo(o+a.dimensions.width,d).lineTo(n,d);s.append("path").attr("class","railroad-line").attr("d",l.build());const f=new T().moveTo(0,d).arcTo(r,r,0,!1,!1,r,d-r).lineTo(r,r).arcTo(r,r,0,!1,!0,r*2,0).lineTo(n-r*2,0).arcTo(r,r,0,!1,!0,n-r,r).lineTo(n-r,d-r).arcTo(r,r,0,!1,!1,n,d);return s.append("path").attr("class","railroad-line").attr("d",f.build()),{element:s.node(),dimensions:{width:n,height:h,up:d,down:h-d}}}renderRepetition(e,i,a){const r=this.renderExpression(e,i),t=this.config.arcRadius,n=t*2,h=r.dimensions.width+t*4,s=a===0,o=r.dimensions.height+n+(s?n:0),u=e.append("g").attr("class","railroad-repetition"),c=t*2,d=s?n:0;u.node().appendChild(r.element).setAttribute("transform",`translate(${c}, ${d})`);const l=d+r.dimensions.up;u.append("path").attr("class","railroad-line").attr("d",new T().moveTo(0,l).lineTo(t*2,l).build()),u.append("path").attr("class","railroad-line").attr("d",new T().moveTo(c+r.dimensions.width,l).lineTo(h,l).build());const f=d+r.dimensions.height+t,y=new T().moveTo(c+r.dimensions.width,l).arcTo(t,t,0,!1,!0,c+r.dimensions.width+t,l+t).lineTo(c+r.dimensions.width+t,f).arcTo(t,t,0,!1,!0,c+r.dimensions.width,f+t).lineTo(t*2,f+t).arcTo(t,t,0,!1,!0,t,f).lineTo(t,l+t).arcTo(t,t,0,!1,!0,t*2,l);if(u.append("path").attr("class","railroad-line").attr("d",y.build()),s){const v=new T().moveTo(0,l).arcTo(t,t,0,!1,!1,t,l-t).lineTo(t,t).arcTo(t,t,0,!1,!0,t*2,0).lineTo(h-t*2,0).arcTo(t,t,0,!1,!0,h-t,t).lineTo(h-t,l-t).arcTo(t,t,0,!1,!1,h,l);u.append("path").attr("class","railroad-line").attr("d",v.build())}return{element:u.node(),dimensions:{width:h,height:o,up:l,down:o-l}}}renderSpecial(e,i){const a=this.measureText("? "+i+" ?"),r=a.width+this.config.padding*2,t=a.height+this.config.padding*2,n=e.append("g").attr("class","railroad-special");return n.append("rect").attr("x",0).attr("y",0).attr("width",r).attr("height",t),n.append("text").attr("x",r/2).attr("y",t/2).text("? "+i+" ?"),{element:n.node(),dimensions:{width:r,height:t,up:t/2,down:t/2}}}renderExpression(e,i){switch(i.type){case"terminal":return this.renderTerminal(e,i.value);case"nonterminal":return this.renderNonTerminal(e,i.name);case"sequence":return this.renderSequence(e,i.elements);case"choice":return this.renderChoice(e,i.alternatives);case"optional":return this.renderOptional(e,i.element);case"repetition":return this.renderRepetition(e,i.element,i.min);case"special":return this.renderSpecial(e,i.text);default:throw new Error(`Unknown node type: ${i.type}`)}}renderRule(e,i){const a=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${i})`),r=e.name+" =",t=this.measureText(r).width+20,n=t+20,h=a.append("g"),s=this.renderExpression(h,e.definition),o=Math.max(20,s.dimensions.up),u=o-s.dimensions.up;return h.attr("transform",`translate(${n}, ${u})`),a.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",o).text(r),a.append("g").attr("class","railroad-start").append("circle").attr("cx",t).attr("cy",o).attr("r",this.config.markerRadius),a.append("g").attr("class","railroad-end").append("circle").attr("cx",n+s.dimensions.width+10).attr("cy",o).attr("r",this.config.markerRadius),a.append("path").attr("class","railroad-line").attr("d",new T().moveTo(t+this.config.markerRadius,o).lineTo(n,o).build()),a.append("path").attr("class","railroad-line").attr("d",new T().moveTo(n+s.dimensions.width,o).lineTo(n+s.dimensions.width+10-this.config.markerRadius,o).build()),{height:Math.max(40,u+s.dimensions.height+this.config.padding*2),width:n+s.dimensions.width+10+this.config.markerRadius}}renderDiagram(e){let i=this.config.padding,a=0;for(const r of e){const t=this.renderRule(r,i);i+=t.height+this.config.verticalSeparation,a=Math.max(a,t.width)}return{width:a+this.config.padding*2,height:i+this.config.padding}}},D=p((e,i,a)=>{H(e,i.height,i.width,a),e.attr("viewBox",`0 0 ${i.width} ${i.height}`)},"configureRailroadSvgSize"),he=p((e,i,a)=>{w.debug(`[Railroad] Rendering diagram
|
|
88
88
|
`+e);try{const r=L(i);r.attr("class","railroad-diagram");const n=E().railroad?.useMaxWidth??!0,h=ie.getRules();if(w.debug(`[Railroad] Rendering ${h.length} rules`),h.length===0){w.warn("[Railroad] No rules to render"),D(r,{height:100,width:200},n);return}const o=new me(r,M()).renderDiagram(h);D(r,o,n),w.debug("[Railroad] Render complete")}catch(r){throw w.error("[Railroad] Render error:",r),r}},"draw"),ge={draw:he};export{ie as d,ue as g,ge as r};
|
|
89
|
-
//# sourceMappingURL=chunk-6Q2QTUOP-
|
|
89
|
+
//# sourceMappingURL=chunk-6Q2QTUOP-DiQ5-a8V.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-6Q2QTUOP-DGg2gORU.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-6Q2QTUOP.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-3NCLNEKW.mjs\";\nimport {\n clear,\n configureSvgSize,\n getConfig,\n getConfig2,\n getThemeVariables,\n sanitizeText\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/railroad/railroadDb.ts\nvar diagramTitle = \"\";\nvar accTitle = \"\";\nvar accDescription = \"\";\nvar rules = [];\nvar ruleMap = /* @__PURE__ */ new Map();\nvar sanitizeText2 = /* @__PURE__ */ __name((text) => {\n return sanitizeText(text, getConfig2());\n}, \"sanitizeText\");\nvar sanitizeAstNode = /* @__PURE__ */ __name((node) => {\n switch (node.type) {\n case \"terminal\":\n return { ...node, value: sanitizeText2(node.value) };\n case \"nonterminal\":\n return { ...node, name: sanitizeText2(node.name) };\n case \"sequence\":\n return { ...node, elements: node.elements.map(sanitizeAstNode) };\n case \"choice\":\n return { ...node, alternatives: node.alternatives.map(sanitizeAstNode) };\n case \"optional\":\n return { ...node, element: sanitizeAstNode(node.element) };\n case \"repetition\":\n return {\n ...node,\n element: sanitizeAstNode(node.element),\n separator: node.separator ? sanitizeAstNode(node.separator) : void 0\n };\n case \"special\":\n return { ...node, text: sanitizeText2(node.text) };\n }\n}, \"sanitizeAstNode\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n diagramTitle = \"\";\n accTitle = \"\";\n accDescription = \"\";\n rules.length = 0;\n ruleMap.clear();\n clear();\n log.debug(\"[Railroad] Database cleared\");\n}, \"clear\");\nvar setTitle = /* @__PURE__ */ __name((text) => {\n diagramTitle = sanitizeText2(text);\n log.debug(\"[Railroad] Title set:\", text);\n}, \"setTitle\");\nvar getTitle = /* @__PURE__ */ __name(() => {\n return diagramTitle;\n}, \"getTitle\");\nvar addRule = /* @__PURE__ */ __name((rule) => {\n const sanitizedRule = {\n ...rule,\n name: sanitizeText2(rule.name),\n definition: sanitizeAstNode(rule.definition),\n comment: rule.comment ? sanitizeText2(rule.comment) : void 0\n };\n log.debug(\"[Railroad] Adding rule:\", sanitizedRule.name);\n if (ruleMap.has(sanitizedRule.name)) {\n log.warn(`[Railroad] Rule '${sanitizedRule.name}' is already defined. Overwriting.`);\n }\n rules.push(sanitizedRule);\n ruleMap.set(sanitizedRule.name, sanitizedRule);\n}, \"addRule\");\nvar getRules = /* @__PURE__ */ __name(() => {\n return rules;\n}, \"getRules\");\nvar getRule = /* @__PURE__ */ __name((name) => {\n return ruleMap.get(name);\n}, \"getRule\");\nvar setAccTitle = /* @__PURE__ */ __name((text) => {\n accTitle = sanitizeText2(text).replace(/^\\s+/g, \"\");\n log.debug(\"[Railroad] Accessibility title set:\", text);\n}, \"setAccTitle\");\nvar getAccTitle = /* @__PURE__ */ __name(() => {\n return accTitle;\n}, \"getAccTitle\");\nvar setAccDescription = /* @__PURE__ */ __name((text) => {\n accDescription = sanitizeText2(text).replace(/\\n\\s+/g, \"\\n\");\n log.debug(\"[Railroad] Accessibility description set:\", text);\n}, \"setAccDescription\");\nvar getAccDescription = /* @__PURE__ */ __name(() => {\n return accDescription;\n}, \"getAccDescription\");\nvar setDiagramTitle = setTitle;\nvar getDiagramTitle = getTitle;\nvar db = {\n clear: clear2,\n setTitle,\n getTitle,\n addRule,\n getRules,\n getRule,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\n\n// src/diagrams/railroad/railroadTypes.ts\nvar DEFAULT_RAILROAD_CONFIG = {\n // Layout\n compactMode: false,\n // Spacing\n padding: 10,\n verticalSeparation: 8,\n horizontalSeparation: 10,\n arcRadius: 10,\n // Typography\n fontSize: 14,\n fontFamily: \"monospace\",\n // Colors - Terminal\n terminalFill: \"#FFFFC0\",\n terminalStroke: \"#000000\",\n terminalTextColor: \"#000000\",\n // Colors - Non-terminal\n nonTerminalFill: \"#FFFFFF\",\n nonTerminalStroke: \"#000000\",\n nonTerminalTextColor: \"#000000\",\n // Colors - Lines\n lineColor: \"#000000\",\n strokeWidth: 2,\n // Colors - Markers\n markerFill: \"#000000\",\n // Colors - Comment\n commentFill: \"#E8E8E8\",\n commentStroke: \"#888888\",\n commentTextColor: \"#666666\",\n // Colors - Special\n specialFill: \"#F0E0FF\",\n specialStroke: \"#8800CC\",\n // Other\n ruleNameColor: \"#000066\",\n showMarkers: true,\n markerRadius: 5\n};\n\n// src/diagrams/railroad/styles.ts\nvar COLOR_VALUE_PATTERN = /^#(?:[\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\\([\\d\\s%+,./-]+\\)$|^[a-z]+$/i;\nvar FONT_FAMILY_PATTERN = /^[\\w \"',.-]+$/;\nvar RAILROAD_STYLE_OPTION_KEYS = /* @__PURE__ */ new Set([\n \"compactMode\",\n \"padding\",\n \"verticalSeparation\",\n \"horizontalSeparation\",\n \"arcRadius\",\n \"fontSize\",\n \"fontFamily\",\n \"terminalFill\",\n \"terminalStroke\",\n \"terminalTextColor\",\n \"nonTerminalFill\",\n \"nonTerminalStroke\",\n \"nonTerminalTextColor\",\n \"lineColor\",\n \"strokeWidth\",\n \"markerFill\",\n \"commentFill\",\n \"commentStroke\",\n \"commentTextColor\",\n \"specialFill\",\n \"specialStroke\",\n \"ruleNameColor\",\n \"showMarkers\",\n \"markerRadius\"\n]);\nvar isRailroadStyleOptions = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return false;\n }\n return Object.keys(options).every(\n (key) => key === \"railroad\" || RAILROAD_STYLE_OPTION_KEYS.has(key)\n );\n}, \"isRailroadStyleOptions\");\nvar extractRailroadOverrides = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return {};\n }\n if (\"railroad\" in options && options.railroad) {\n return options.railroad;\n }\n return isRailroadStyleOptions(options) ? options : {};\n}, \"extractRailroadOverrides\");\nvar extractThemeOverrides = /* @__PURE__ */ __name((options) => {\n if (!options || isRailroadStyleOptions(options)) {\n return {};\n }\n const {\n railroad: _railroad,\n svgId: _svgId,\n theme: _theme,\n look: _look,\n ...themeOverrides\n } = options;\n return themeOverrides;\n}, \"extractThemeOverrides\");\nvar sanitizeColorValue = /* @__PURE__ */ __name((value, fallback) => {\n if (typeof value !== \"string\") {\n return fallback;\n }\n const normalized = value.trim();\n return COLOR_VALUE_PATTERN.test(normalized) ? normalized : fallback;\n}, \"sanitizeColorValue\");\nvar sanitizeFontFamilyValue = /* @__PURE__ */ __name((value, fallback) => {\n if (typeof value !== \"string\") {\n return fallback;\n }\n const normalized = value.trim();\n return FONT_FAMILY_PATTERN.test(normalized) ? normalized : fallback;\n}, \"sanitizeFontFamilyValue\");\nvar sanitizeNumberValue = /* @__PURE__ */ __name((value, fallback) => {\n const parsed = typeof value === \"number\" ? value : typeof value === \"string\" ? Number.parseFloat(value) : Number.NaN;\n return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback;\n}, \"sanitizeNumberValue\");\nvar parseThemeFontSize = /* @__PURE__ */ __name((value) => {\n const parsed = typeof value === \"number\" ? value : typeof value === \"string\" ? Number.parseFloat(value) : Number.NaN;\n return Number.isFinite(parsed) && parsed > 0 ? parsed : void 0;\n}, \"parseThemeFontSize\");\nvar buildThemeDefaults = /* @__PURE__ */ __name((themeVariables) => {\n const fontFamily = sanitizeFontFamilyValue(\n themeVariables.fontFamily,\n DEFAULT_RAILROAD_CONFIG.fontFamily\n );\n const fontSize = parseThemeFontSize(themeVariables.fontSize) ?? DEFAULT_RAILROAD_CONFIG.fontSize;\n return {\n ...DEFAULT_RAILROAD_CONFIG,\n fontFamily,\n fontSize,\n terminalFill: sanitizeColorValue(\n themeVariables.secondBkg ?? themeVariables.secondaryColor,\n DEFAULT_RAILROAD_CONFIG.terminalFill\n ),\n terminalStroke: sanitizeColorValue(\n themeVariables.secondaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.terminalStroke\n ),\n terminalTextColor: sanitizeColorValue(\n themeVariables.secondaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.terminalTextColor\n ),\n nonTerminalFill: sanitizeColorValue(\n themeVariables.mainBkg ?? themeVariables.background,\n DEFAULT_RAILROAD_CONFIG.nonTerminalFill\n ),\n nonTerminalStroke: sanitizeColorValue(\n themeVariables.primaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.nonTerminalStroke\n ),\n nonTerminalTextColor: sanitizeColorValue(\n themeVariables.primaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.nonTerminalTextColor\n ),\n lineColor: sanitizeColorValue(themeVariables.lineColor, DEFAULT_RAILROAD_CONFIG.lineColor),\n markerFill: sanitizeColorValue(themeVariables.lineColor, DEFAULT_RAILROAD_CONFIG.markerFill),\n commentFill: sanitizeColorValue(\n themeVariables.labelBackground ?? themeVariables.tertiaryColor,\n DEFAULT_RAILROAD_CONFIG.commentFill\n ),\n commentStroke: sanitizeColorValue(\n themeVariables.tertiaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.commentStroke\n ),\n commentTextColor: sanitizeColorValue(\n themeVariables.tertiaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.commentTextColor\n ),\n specialFill: sanitizeColorValue(\n themeVariables.tertiaryColor ?? themeVariables.secondaryColor,\n DEFAULT_RAILROAD_CONFIG.specialFill\n ),\n specialStroke: sanitizeColorValue(\n themeVariables.tertiaryBorderColor ?? themeVariables.secondaryBorderColor,\n DEFAULT_RAILROAD_CONFIG.specialStroke\n ),\n ruleNameColor: sanitizeColorValue(\n themeVariables.titleColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.ruleNameColor\n )\n };\n}, \"buildThemeDefaults\");\nvar buildRailroadStyleOptions = /* @__PURE__ */ __name((options) => {\n const currentConfig = getConfig();\n const themeVariables = {\n ...getThemeVariables(),\n ...currentConfig.themeVariables ?? {},\n ...extractThemeOverrides(options)\n };\n const themeDefaults = buildThemeDefaults(themeVariables);\n const railroadOptions = {\n ...currentConfig.railroad ?? {},\n ...extractRailroadOverrides(options)\n };\n return {\n compactMode: railroadOptions.compactMode ?? themeDefaults.compactMode,\n padding: sanitizeNumberValue(railroadOptions.padding, themeDefaults.padding),\n verticalSeparation: sanitizeNumberValue(\n railroadOptions.verticalSeparation,\n themeDefaults.verticalSeparation\n ),\n horizontalSeparation: sanitizeNumberValue(\n railroadOptions.horizontalSeparation,\n themeDefaults.horizontalSeparation\n ),\n arcRadius: sanitizeNumberValue(railroadOptions.arcRadius, themeDefaults.arcRadius),\n fontSize: sanitizeNumberValue(railroadOptions.fontSize, themeDefaults.fontSize),\n fontFamily: sanitizeFontFamilyValue(railroadOptions.fontFamily, themeDefaults.fontFamily),\n terminalFill: sanitizeColorValue(railroadOptions.terminalFill, themeDefaults.terminalFill),\n terminalStroke: sanitizeColorValue(\n railroadOptions.terminalStroke,\n themeDefaults.terminalStroke\n ),\n terminalTextColor: sanitizeColorValue(\n railroadOptions.terminalTextColor,\n themeDefaults.terminalTextColor\n ),\n nonTerminalFill: sanitizeColorValue(\n railroadOptions.nonTerminalFill,\n themeDefaults.nonTerminalFill\n ),\n nonTerminalStroke: sanitizeColorValue(\n railroadOptions.nonTerminalStroke,\n themeDefaults.nonTerminalStroke\n ),\n nonTerminalTextColor: sanitizeColorValue(\n railroadOptions.nonTerminalTextColor,\n themeDefaults.nonTerminalTextColor\n ),\n lineColor: sanitizeColorValue(railroadOptions.lineColor, themeDefaults.lineColor),\n strokeWidth: sanitizeNumberValue(railroadOptions.strokeWidth, themeDefaults.strokeWidth),\n markerFill: sanitizeColorValue(railroadOptions.markerFill, themeDefaults.markerFill),\n commentFill: sanitizeColorValue(railroadOptions.commentFill, themeDefaults.commentFill),\n commentStroke: sanitizeColorValue(railroadOptions.commentStroke, themeDefaults.commentStroke),\n commentTextColor: sanitizeColorValue(\n railroadOptions.commentTextColor,\n themeDefaults.commentTextColor\n ),\n specialFill: sanitizeColorValue(railroadOptions.specialFill, themeDefaults.specialFill),\n specialStroke: sanitizeColorValue(railroadOptions.specialStroke, themeDefaults.specialStroke),\n ruleNameColor: sanitizeColorValue(railroadOptions.ruleNameColor, themeDefaults.ruleNameColor),\n showMarkers: railroadOptions.showMarkers ?? themeDefaults.showMarkers,\n markerRadius: sanitizeNumberValue(railroadOptions.markerRadius, themeDefaults.markerRadius)\n };\n}, \"buildRailroadStyleOptions\");\nvar getStyles = /* @__PURE__ */ __name((options) => {\n const {\n fontFamily,\n fontSize,\n terminalFill,\n terminalStroke,\n terminalTextColor,\n nonTerminalFill,\n nonTerminalStroke,\n nonTerminalTextColor,\n lineColor,\n strokeWidth,\n markerFill,\n commentFill,\n commentStroke,\n commentTextColor,\n specialFill,\n specialStroke,\n ruleNameColor\n } = buildRailroadStyleOptions(options);\n return `\n .railroad-diagram {\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n }\n\n .railroad-terminal rect {\n fill: ${terminalFill};\n stroke: ${terminalStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-terminal text {\n fill: ${terminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-nonterminal rect {\n fill: ${nonTerminalFill};\n stroke: ${nonTerminalStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-nonterminal text {\n fill: ${nonTerminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-line {\n stroke: ${lineColor};\n stroke-width: ${strokeWidth}px;\n fill: none;\n }\n\n .railroad-start circle,\n .railroad-end circle {\n fill: ${markerFill};\n }\n\n .railroad-comment ellipse {\n fill: ${commentFill};\n stroke: ${commentStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-comment text {\n fill: ${commentTextColor};\n font-style: italic;\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-special rect {\n fill: ${specialFill};\n stroke: ${specialStroke};\n stroke-width: ${strokeWidth}px;\n stroke-dasharray: 5,3;\n }\n\n .railroad-special text {\n fill: ${nonTerminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-rule-name {\n font-weight: bold;\n fill: ${ruleNameColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n }\n\n .railroad-group {\n /* Grouping container, no specific styles */\n }\n`;\n}, \"getStyles\");\n\n// src/diagrams/railroad/railroadRenderer.ts\nvar PathBuilder = class {\n constructor() {\n this.d = \"\";\n }\n static {\n __name(this, \"PathBuilder\");\n }\n moveTo(x, y) {\n this.d += `M ${x} ${y} `;\n return this;\n }\n lineTo(x, y) {\n this.d += `L ${x} ${y} `;\n return this;\n }\n horizontalTo(x) {\n this.d += `H ${x} `;\n return this;\n }\n verticalTo(y) {\n this.d += `V ${y} `;\n return this;\n }\n arcTo(rx, ry, rotation, largeArc, sweep, x, y) {\n this.d += `A ${rx} ${ry} ${rotation} ${largeArc ? 1 : 0} ${sweep ? 1 : 0} ${x} ${y} `;\n return this;\n }\n build() {\n return this.d.trim();\n }\n};\nvar RailroadRenderer = class {\n constructor(svg, config = buildRailroadStyleOptions()) {\n this.textCache = /* @__PURE__ */ new Map();\n this.svg = svg;\n this.config = config;\n }\n static {\n __name(this, \"RailroadRenderer\");\n }\n /**\n * Measure text dimensions\n */\n measureText(text) {\n if (this.textCache.has(text)) {\n return this.textCache.get(text);\n }\n const tempText = this.svg.append(\"text\").attr(\"font-family\", this.config.fontFamily).attr(\"font-size\", this.config.fontSize).text(text);\n const bbox = tempText.node().getBBox();\n const dimensions = { width: bbox.width, height: bbox.height };\n tempText.remove();\n this.textCache.set(text, dimensions);\n return dimensions;\n }\n /**\n * Render terminal symbol (rounded rectangle)\n */\n renderTerminal(parent, value) {\n const textDim = this.measureText(value);\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-terminal\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height).attr(\"rx\", 10).attr(\"ry\", 10);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(value);\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render non-terminal symbol (rectangle)\n */\n renderNonTerminal(parent, name) {\n const textDim = this.measureText(name);\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-nonterminal\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(name);\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render sequence (horizontal concatenation)\n */\n renderSequence(parent, elements) {\n const rendered = elements.map((e) => this.renderExpression(parent, e));\n let totalWidth = 0;\n let maxUp = 0;\n let maxDown = 0;\n for (const r of rendered) {\n totalWidth += r.dimensions.width;\n maxUp = Math.max(maxUp, r.dimensions.up);\n maxDown = Math.max(maxDown, r.dimensions.down);\n }\n totalWidth += (rendered.length - 1) * this.config.horizontalSeparation;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-sequence\");\n let x = 0;\n for (let i = 0; i < rendered.length; i++) {\n const r = rendered[i];\n const y = maxUp - r.dimensions.up;\n const elem = group.node().appendChild(r.element);\n elem.setAttribute(\"transform\", `translate(${x}, ${y})`);\n if (i < rendered.length - 1) {\n const lineX1 = x + r.dimensions.width;\n const lineX2 = lineX1 + this.config.horizontalSeparation;\n const lineY = maxUp;\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", new PathBuilder().moveTo(lineX1, lineY).lineTo(lineX2, lineY).build());\n }\n x += r.dimensions.width + this.config.horizontalSeparation;\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: maxUp + maxDown,\n up: maxUp,\n down: maxDown\n }\n };\n }\n /**\n * Render choice (vertical alternatives)\n */\n renderChoice(parent, alternatives) {\n const rendered = alternatives.map((a) => this.renderExpression(parent, a));\n let maxWidth = 0;\n let totalHeight = 0;\n for (const r of rendered) {\n maxWidth = Math.max(maxWidth, r.dimensions.width);\n totalHeight += r.dimensions.height;\n }\n totalHeight += (rendered.length - 1) * this.config.verticalSeparation;\n const arcRadius = this.config.arcRadius;\n const arcWidth = arcRadius * 4;\n const totalWidth = maxWidth + arcWidth;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-choice\");\n let y = 0;\n const centerY = totalHeight / 2;\n for (const r of rendered) {\n const elemY = y;\n const elemCenterY = elemY + r.dimensions.up;\n const elemX = arcRadius * 2 + (maxWidth - r.dimensions.width) / 2;\n const elem = group.node().appendChild(r.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const leftPath = new PathBuilder();\n const isBelowCenter = elemCenterY > centerY;\n if (elemCenterY === centerY) {\n leftPath.moveTo(0, centerY).lineTo(elemX, elemCenterY);\n } else {\n leftPath.moveTo(0, centerY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n isBelowCenter,\n arcRadius,\n centerY + (isBelowCenter ? arcRadius : -arcRadius)\n ).lineTo(arcRadius, elemCenterY - (isBelowCenter ? arcRadius : -arcRadius)).arcTo(arcRadius, arcRadius, 0, false, !isBelowCenter, arcRadius * 2, elemCenterY).lineTo(elemX, elemCenterY);\n }\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", leftPath.build());\n const rightPath = new PathBuilder();\n const rightStart = elemX + r.dimensions.width;\n const rightLaneX = totalWidth - arcRadius * 2;\n if (elemCenterY === centerY) {\n rightPath.moveTo(rightStart, elemCenterY).lineTo(totalWidth, centerY);\n } else {\n rightPath.moveTo(rightStart, elemCenterY).lineTo(rightLaneX, elemCenterY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n !isBelowCenter,\n totalWidth - arcRadius,\n elemCenterY + (isBelowCenter ? -arcRadius : arcRadius)\n ).lineTo(totalWidth - arcRadius, centerY + (isBelowCenter ? arcRadius : -arcRadius)).arcTo(arcRadius, arcRadius, 0, false, isBelowCenter, totalWidth, centerY);\n }\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", rightPath.build());\n y += r.dimensions.height + this.config.verticalSeparation;\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render optional (bypass path above)\n */\n renderOptional(parent, element) {\n const inner = this.renderExpression(parent, element);\n const arcRadius = this.config.arcRadius;\n const arcHeight = arcRadius * 2;\n const totalWidth = inner.dimensions.width + arcRadius * 4;\n const totalHeight = inner.dimensions.height + arcHeight;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-optional\");\n const elemX = arcRadius * 2;\n const elemY = arcHeight;\n const elem = group.node().appendChild(inner.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const centerY = elemY + inner.dimensions.up;\n const lowerPath = new PathBuilder().moveTo(0, centerY).lineTo(arcRadius * 2, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", lowerPath.build());\n const lowerPath2 = new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).lineTo(totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", lowerPath2.build());\n const bypassPath = new PathBuilder().moveTo(0, centerY).arcTo(arcRadius, arcRadius, 0, false, false, arcRadius, centerY - arcRadius).lineTo(arcRadius, arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, 0).lineTo(totalWidth - arcRadius * 2, 0).arcTo(arcRadius, arcRadius, 0, false, true, totalWidth - arcRadius, arcRadius).lineTo(totalWidth - arcRadius, centerY - arcRadius).arcTo(arcRadius, arcRadius, 0, false, false, totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", bypassPath.build());\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render repetition (loop back path)\n */\n renderRepetition(parent, element, min) {\n const inner = this.renderExpression(parent, element);\n const arcRadius = this.config.arcRadius;\n const arcHeight = arcRadius * 2;\n const totalWidth = inner.dimensions.width + arcRadius * 4;\n const hasBypass = min === 0;\n const totalHeight = inner.dimensions.height + arcHeight + (hasBypass ? arcHeight : 0);\n const group = parent.append(\"g\").attr(\"class\", \"railroad-repetition\");\n const elemX = arcRadius * 2;\n const elemY = hasBypass ? arcHeight : 0;\n const elem = group.node().appendChild(inner.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const centerY = elemY + inner.dimensions.up;\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(0, centerY).lineTo(arcRadius * 2, centerY).build()\n );\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).lineTo(totalWidth, centerY).build()\n );\n const loopY = elemY + inner.dimensions.height + arcRadius;\n const loopPath = new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n true,\n elemX + inner.dimensions.width + arcRadius,\n centerY + arcRadius\n ).lineTo(elemX + inner.dimensions.width + arcRadius, loopY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n true,\n elemX + inner.dimensions.width,\n loopY + arcRadius\n ).lineTo(arcRadius * 2, loopY + arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius, loopY).lineTo(arcRadius, centerY + arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", loopPath.build());\n if (hasBypass) {\n const bypassPath = new PathBuilder().moveTo(0, centerY).arcTo(arcRadius, arcRadius, 0, false, false, arcRadius, centerY - arcRadius).lineTo(arcRadius, arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, 0).lineTo(totalWidth - arcRadius * 2, 0).arcTo(arcRadius, arcRadius, 0, false, true, totalWidth - arcRadius, arcRadius).lineTo(totalWidth - arcRadius, centerY - arcRadius).arcTo(arcRadius, arcRadius, 0, false, false, totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", bypassPath.build());\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render special sequence\n */\n renderSpecial(parent, text) {\n const textDim = this.measureText(\"? \" + text + \" ?\");\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-special\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(\"? \" + text + \" ?\");\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render an expression (recursive)\n */\n renderExpression(parent, node) {\n switch (node.type) {\n case \"terminal\":\n return this.renderTerminal(parent, node.value);\n case \"nonterminal\":\n return this.renderNonTerminal(parent, node.name);\n case \"sequence\":\n return this.renderSequence(parent, node.elements);\n case \"choice\":\n return this.renderChoice(parent, node.alternatives);\n case \"optional\":\n return this.renderOptional(parent, node.element);\n case \"repetition\":\n return this.renderRepetition(parent, node.element, node.min);\n case \"special\":\n return this.renderSpecial(parent, node.text);\n default:\n throw new Error(`Unknown node type: ${node.type}`);\n }\n }\n /**\n * Render a single rule\n */\n renderRule(rule, y) {\n const group = this.svg.append(\"g\").attr(\"class\", \"railroad-rule\").attr(\"transform\", `translate(0, ${y})`);\n const ruleName = rule.name + \" =\";\n const nameWidth = this.measureText(ruleName).width + 20;\n const definitionX = nameWidth + 20;\n const defGroup = group.append(\"g\");\n const result = this.renderExpression(defGroup, rule.definition);\n const baselineY = Math.max(20, result.dimensions.up);\n const definitionY = baselineY - result.dimensions.up;\n defGroup.attr(\"transform\", `translate(${definitionX}, ${definitionY})`);\n const nameGroup = group.append(\"g\").attr(\"class\", \"railroad-rule-name-group\");\n nameGroup.append(\"text\").attr(\"class\", \"railroad-rule-name\").attr(\"x\", 0).attr(\"y\", baselineY).text(ruleName);\n const startMarker = group.append(\"g\").attr(\"class\", \"railroad-start\");\n startMarker.append(\"circle\").attr(\"cx\", nameWidth).attr(\"cy\", baselineY).attr(\"r\", this.config.markerRadius);\n const endMarker = group.append(\"g\").attr(\"class\", \"railroad-end\");\n endMarker.append(\"circle\").attr(\"cx\", definitionX + result.dimensions.width + 10).attr(\"cy\", baselineY).attr(\"r\", this.config.markerRadius);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(nameWidth + this.config.markerRadius, baselineY).lineTo(definitionX, baselineY).build()\n );\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(definitionX + result.dimensions.width, baselineY).lineTo(definitionX + result.dimensions.width + 10 - this.config.markerRadius, baselineY).build()\n );\n return {\n height: Math.max(40, definitionY + result.dimensions.height + this.config.padding * 2),\n width: definitionX + result.dimensions.width + 10 + this.config.markerRadius\n };\n }\n /**\n * Render all rules\n */\n renderDiagram(rules2) {\n let y = this.config.padding;\n let maxWidth = 0;\n for (const rule of rules2) {\n const result = this.renderRule(rule, y);\n y += result.height + this.config.verticalSeparation;\n maxWidth = Math.max(maxWidth, result.width);\n }\n return {\n width: maxWidth + this.config.padding * 2,\n height: y + this.config.padding\n };\n }\n};\nvar configureRailroadSvgSize = /* @__PURE__ */ __name((svg, dimensions, useMaxWidth) => {\n configureSvgSize(svg, dimensions.height, dimensions.width, useMaxWidth);\n svg.attr(\"viewBox\", `0 0 ${dimensions.width} ${dimensions.height}`);\n}, \"configureRailroadSvgSize\");\nvar draw = /* @__PURE__ */ __name((text, id, _version) => {\n log.debug(\"[Railroad] Rendering diagram\\n\" + text);\n try {\n const svg = selectSvgElement(id);\n svg.attr(\"class\", \"railroad-diagram\");\n const railroadConfig = getConfig().railroad;\n const useMaxWidth = railroadConfig?.useMaxWidth ?? true;\n const rules2 = db.getRules();\n log.debug(`[Railroad] Rendering ${rules2.length} rules`);\n if (rules2.length === 0) {\n log.warn(\"[Railroad] No rules to render\");\n configureRailroadSvgSize(svg, { height: 100, width: 200 }, useMaxWidth);\n return;\n }\n const renderer2 = new RailroadRenderer(svg, buildRailroadStyleOptions());\n const dimensions = renderer2.renderDiagram(rules2);\n configureRailroadSvgSize(svg, dimensions, useMaxWidth);\n log.debug(\"[Railroad] Render complete\");\n } catch (error) {\n log.error(\"[Railroad] Render error:\", error);\n throw error;\n }\n}, \"draw\");\nvar renderer = { draw };\n\nexport {\n db,\n getStyles,\n renderer\n};\n"],"names":["diagramTitle","accTitle","accDescription","rules","ruleMap","sanitizeText2","__name","text","sanitizeText","getConfig2","sanitizeAstNode","node","clear2","clear","log","setTitle","getTitle","addRule","rule","sanitizedRule","getRules","getRule","name","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","db","DEFAULT_RAILROAD_CONFIG","COLOR_VALUE_PATTERN","FONT_FAMILY_PATTERN","RAILROAD_STYLE_OPTION_KEYS","isRailroadStyleOptions","options","key","extractRailroadOverrides","extractThemeOverrides","_railroad","_svgId","_theme","_look","themeOverrides","sanitizeColorValue","value","fallback","normalized","sanitizeFontFamilyValue","sanitizeNumberValue","parsed","parseThemeFontSize","buildThemeDefaults","themeVariables","fontFamily","fontSize","buildRailroadStyleOptions","currentConfig","getConfig","getThemeVariables","themeDefaults","railroadOptions","getStyles","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","PathBuilder","x","y","rx","ry","rotation","largeArc","sweep","RailroadRenderer","svg","config","tempText","bbox","dimensions","parent","textDim","width","height","group","elements","rendered","e","totalWidth","maxUp","maxDown","r","i","lineX1","lineX2","lineY","alternatives","a","maxWidth","totalHeight","arcRadius","arcWidth","centerY","elemY","elemCenterY","elemX","leftPath","isBelowCenter","rightPath","rightStart","rightLaneX","element","inner","arcHeight","lowerPath","lowerPath2","bypassPath","min","hasBypass","loopY","loopPath","ruleName","nameWidth","definitionX","defGroup","result","baselineY","definitionY","rules2","configureRailroadSvgSize","useMaxWidth","configureSvgSize","draw","id","_version","selectSvgElement","error","renderer"],"mappings":"uGAmBA,IAAIA,EAAe,GACfC,EAAW,GACXC,EAAiB,GACjBC,EAAQ,CAAA,EACRC,EAA0B,IAAI,IAC9BC,EAAgCC,EAAQC,GACnCC,EAAaD,EAAME,GAAY,EACrC,cAAc,EACbC,EAAkCJ,EAAQK,GAAS,CACrD,OAAQA,EAAK,KAAI,CACf,IAAK,WACH,MAAO,CAAE,GAAGA,EAAM,MAAON,EAAcM,EAAK,KAAK,CAAC,EACpD,IAAK,cACH,MAAO,CAAE,GAAGA,EAAM,KAAMN,EAAcM,EAAK,IAAI,CAAC,EAClD,IAAK,WACH,MAAO,CAAE,GAAGA,EAAM,SAAUA,EAAK,SAAS,IAAID,CAAe,CAAC,EAChE,IAAK,SACH,MAAO,CAAE,GAAGC,EAAM,aAAcA,EAAK,aAAa,IAAID,CAAe,CAAC,EACxE,IAAK,WACH,MAAO,CAAE,GAAGC,EAAM,QAASD,EAAgBC,EAAK,OAAO,CAAC,EAC1D,IAAK,aACH,MAAO,CACL,GAAGA,EACH,QAASD,EAAgBC,EAAK,OAAO,EACrC,UAAWA,EAAK,UAAYD,EAAgBC,EAAK,SAAS,EAAI,MACtE,EACI,IAAK,UACH,MAAO,CAAE,GAAGA,EAAM,KAAMN,EAAcM,EAAK,IAAI,CAAC,CACtD,CACA,EAAG,iBAAiB,EAChBC,EAAyBN,EAAO,IAAM,CACxCN,EAAe,GACfC,EAAW,GACXC,EAAiB,GACjBC,EAAM,OAAS,EACfC,EAAQ,MAAK,EACbS,EAAK,EACLC,EAAI,MAAM,6BAA6B,CACzC,EAAG,OAAO,EACNC,EAA2BT,EAAQC,GAAS,CAC9CP,EAAeK,EAAcE,CAAI,EACjCO,EAAI,MAAM,wBAAyBP,CAAI,CACzC,EAAG,UAAU,EACTS,EAA2BV,EAAO,IAC7BN,EACN,UAAU,EACTiB,EAA0BX,EAAQY,GAAS,CAC7C,MAAMC,EAAgB,CACpB,GAAGD,EACH,KAAMb,EAAca,EAAK,IAAI,EAC7B,WAAYR,EAAgBQ,EAAK,UAAU,EAC3C,QAASA,EAAK,QAAUb,EAAca,EAAK,OAAO,EAAI,MAC1D,EACEJ,EAAI,MAAM,0BAA2BK,EAAc,IAAI,EACnDf,EAAQ,IAAIe,EAAc,IAAI,GAChCL,EAAI,KAAK,oBAAoBK,EAAc,IAAI,oCAAoC,EAErFhB,EAAM,KAAKgB,CAAa,EACxBf,EAAQ,IAAIe,EAAc,KAAMA,CAAa,CAC/C,EAAG,SAAS,EACRC,EAA2Bd,EAAO,IAC7BH,EACN,UAAU,EACTkB,EAA0Bf,EAAQgB,GAC7BlB,EAAQ,IAAIkB,CAAI,EACtB,SAAS,EACRC,EAA8BjB,EAAQC,GAAS,CACjDN,EAAWI,EAAcE,CAAI,EAAE,QAAQ,QAAS,EAAE,EAClDO,EAAI,MAAM,sCAAuCP,CAAI,CACvD,EAAG,aAAa,EACZiB,EAA8BlB,EAAO,IAChCL,EACN,aAAa,EACZwB,EAAoCnB,EAAQC,GAAS,CACvDL,EAAiBG,EAAcE,CAAI,EAAE,QAAQ,SAAU;AAAA,CAAI,EAC3DO,EAAI,MAAM,4CAA6CP,CAAI,CAC7D,EAAG,mBAAmB,EAClBmB,GAAoCpB,EAAO,IACtCJ,EACN,mBAAmB,EAClByB,GAAkBZ,EAClBa,GAAkBZ,EAClBa,GAAK,CACP,MAAOjB,EACP,SAAAG,EACA,SAAAC,EACA,QAAAC,EACA,SAAAG,EACA,QAAAC,EACA,YAAAE,EACA,YAAAC,EACA,kBAAAC,EACA,kBAAAC,GACA,gBAAAC,GACA,gBAAAC,EACF,EAGIE,EAA0B,CAE5B,YAAa,GAEb,QAAS,GACT,mBAAoB,EACpB,qBAAsB,GACtB,UAAW,GAEX,SAAU,GACV,WAAY,YAEZ,aAAc,UACd,eAAgB,UAChB,kBAAmB,UAEnB,gBAAiB,UACjB,kBAAmB,UACnB,qBAAsB,UAEtB,UAAW,UACX,YAAa,EAEb,WAAY,UAEZ,YAAa,UACb,cAAe,UACf,iBAAkB,UAElB,YAAa,UACb,cAAe,UAEf,cAAe,UACf,YAAa,GACb,aAAc,CAChB,EAGIC,GAAsB,uHACtBC,GAAsB,gBACtBC,GAA6C,IAAI,IAAI,CACvD,cACA,UACA,qBACA,uBACA,YACA,WACA,aACA,eACA,iBACA,oBACA,kBACA,oBACA,uBACA,YACA,cACA,aACA,cACA,gBACA,mBACA,cACA,gBACA,gBACA,cACA,cACF,CAAC,EACGC,EAAyC5B,EAAQ6B,GAC9CA,EAGE,OAAO,KAAKA,CAAO,EAAE,MACzBC,GAAQA,IAAQ,YAAcH,GAA2B,IAAIG,CAAG,CACrE,EAJW,GAKR,wBAAwB,EACvBC,GAA2C/B,EAAQ6B,GAChDA,EAGD,aAAcA,GAAWA,EAAQ,SAC5BA,EAAQ,SAEVD,EAAuBC,CAAO,EAAIA,EAAU,CAAA,EAL1C,CAAA,EAMR,0BAA0B,EACzBG,GAAwChC,EAAQ6B,GAAY,CAC9D,GAAI,CAACA,GAAWD,EAAuBC,CAAO,EAC5C,MAAO,CAAA,EAET,KAAM,CACJ,SAAUI,EACV,MAAOC,EACP,MAAOC,EACP,KAAMC,EACN,GAAGC,CACP,EAAMR,EACJ,OAAOQ,CACT,EAAG,uBAAuB,EACtBC,EAAqCtC,EAAO,CAACuC,EAAOC,IAAa,CACnE,GAAI,OAAOD,GAAU,SACnB,OAAOC,EAET,MAAMC,EAAaF,EAAM,KAAI,EAC7B,OAAOd,GAAoB,KAAKgB,CAAU,EAAIA,EAAaD,CAC7D,EAAG,oBAAoB,EACnBE,EAA0C1C,EAAO,CAACuC,EAAOC,IAAa,CACxE,GAAI,OAAOD,GAAU,SACnB,OAAOC,EAET,MAAMC,EAAaF,EAAM,KAAI,EAC7B,OAAOb,GAAoB,KAAKe,CAAU,EAAIA,EAAaD,CAC7D,EAAG,yBAAyB,EACxBG,EAAsC3C,EAAO,CAACuC,EAAOC,IAAa,CACpE,MAAMI,EAAS,OAAOL,GAAU,SAAWA,EAAQ,OAAOA,GAAU,SAAW,OAAO,WAAWA,CAAK,EAAI,OAAO,IACjH,OAAO,OAAO,SAASK,CAAM,GAAKA,GAAU,EAAIA,EAASJ,CAC3D,EAAG,qBAAqB,EACpBK,GAAqC7C,EAAQuC,GAAU,CACzD,MAAMK,EAAS,OAAOL,GAAU,SAAWA,EAAQ,OAAOA,GAAU,SAAW,OAAO,WAAWA,CAAK,EAAI,OAAO,IACjH,OAAO,OAAO,SAASK,CAAM,GAAKA,EAAS,EAAIA,EAAS,MAC1D,EAAG,oBAAoB,EACnBE,GAAqC9C,EAAQ+C,GAAmB,CAClE,MAAMC,EAAaN,EACjBK,EAAe,WACfvB,EAAwB,UAC5B,EACQyB,EAAWJ,GAAmBE,EAAe,QAAQ,GAAKvB,EAAwB,SACxF,MAAO,CACL,GAAGA,EACH,WAAAwB,EACA,SAAAC,EACA,aAAcX,EACZS,EAAe,WAAaA,EAAe,eAC3CvB,EAAwB,YAC9B,EACI,eAAgBc,EACdS,EAAe,sBAAwBA,EAAe,UACtDvB,EAAwB,cAC9B,EACI,kBAAmBc,EACjBS,EAAe,oBAAsBA,EAAe,UACpDvB,EAAwB,iBAC9B,EACI,gBAAiBc,EACfS,EAAe,SAAWA,EAAe,WACzCvB,EAAwB,eAC9B,EACI,kBAAmBc,EACjBS,EAAe,oBAAsBA,EAAe,UACpDvB,EAAwB,iBAC9B,EACI,qBAAsBc,EACpBS,EAAe,kBAAoBA,EAAe,UAClDvB,EAAwB,oBAC9B,EACI,UAAWc,EAAmBS,EAAe,UAAWvB,EAAwB,SAAS,EACzF,WAAYc,EAAmBS,EAAe,UAAWvB,EAAwB,UAAU,EAC3F,YAAac,EACXS,EAAe,iBAAmBA,EAAe,cACjDvB,EAAwB,WAC9B,EACI,cAAec,EACbS,EAAe,qBAAuBA,EAAe,UACrDvB,EAAwB,aAC9B,EACI,iBAAkBc,EAChBS,EAAe,mBAAqBA,EAAe,UACnDvB,EAAwB,gBAC9B,EACI,YAAac,EACXS,EAAe,eAAiBA,EAAe,eAC/CvB,EAAwB,WAC9B,EACI,cAAec,EACbS,EAAe,qBAAuBA,EAAe,qBACrDvB,EAAwB,aAC9B,EACI,cAAec,EACbS,EAAe,YAAcA,EAAe,UAC5CvB,EAAwB,aAC9B,CACA,CACA,EAAG,oBAAoB,EACnB0B,EAA4ClD,EAAQ6B,GAAY,CAClE,MAAMsB,EAAgBC,EAAS,EACzBL,EAAiB,CACrB,GAAGM,EAAiB,EACpB,GAAGF,EAAc,gBAAkB,CAAA,EACnC,GAAGnB,GAAsBH,CAAO,CACpC,EACQyB,EAAgBR,GAAmBC,CAAc,EACjDQ,EAAkB,CACtB,GAAGJ,EAAc,UAAY,CAAA,EAC7B,GAAGpB,GAAyBF,CAAO,CACvC,EACE,MAAO,CACL,YAAa0B,EAAgB,aAAeD,EAAc,YAC1D,QAASX,EAAoBY,EAAgB,QAASD,EAAc,OAAO,EAC3E,mBAAoBX,EAClBY,EAAgB,mBAChBD,EAAc,kBACpB,EACI,qBAAsBX,EACpBY,EAAgB,qBAChBD,EAAc,oBACpB,EACI,UAAWX,EAAoBY,EAAgB,UAAWD,EAAc,SAAS,EACjF,SAAUX,EAAoBY,EAAgB,SAAUD,EAAc,QAAQ,EAC9E,WAAYZ,EAAwBa,EAAgB,WAAYD,EAAc,UAAU,EACxF,aAAchB,EAAmBiB,EAAgB,aAAcD,EAAc,YAAY,EACzF,eAAgBhB,EACdiB,EAAgB,eAChBD,EAAc,cACpB,EACI,kBAAmBhB,EACjBiB,EAAgB,kBAChBD,EAAc,iBACpB,EACI,gBAAiBhB,EACfiB,EAAgB,gBAChBD,EAAc,eACpB,EACI,kBAAmBhB,EACjBiB,EAAgB,kBAChBD,EAAc,iBACpB,EACI,qBAAsBhB,EACpBiB,EAAgB,qBAChBD,EAAc,oBACpB,EACI,UAAWhB,EAAmBiB,EAAgB,UAAWD,EAAc,SAAS,EAChF,YAAaX,EAAoBY,EAAgB,YAAaD,EAAc,WAAW,EACvF,WAAYhB,EAAmBiB,EAAgB,WAAYD,EAAc,UAAU,EACnF,YAAahB,EAAmBiB,EAAgB,YAAaD,EAAc,WAAW,EACtF,cAAehB,EAAmBiB,EAAgB,cAAeD,EAAc,aAAa,EAC5F,iBAAkBhB,EAChBiB,EAAgB,iBAChBD,EAAc,gBACpB,EACI,YAAahB,EAAmBiB,EAAgB,YAAaD,EAAc,WAAW,EACtF,cAAehB,EAAmBiB,EAAgB,cAAeD,EAAc,aAAa,EAC5F,cAAehB,EAAmBiB,EAAgB,cAAeD,EAAc,aAAa,EAC5F,YAAaC,EAAgB,aAAeD,EAAc,YAC1D,aAAcX,EAAoBY,EAAgB,aAAcD,EAAc,YAAY,CAC9F,CACA,EAAG,2BAA2B,EAC1BE,GAA4BxD,EAAQ6B,GAAY,CAClD,KAAM,CACJ,WAAAmB,EACA,SAAAC,EACA,aAAAQ,EACA,eAAAC,EACA,kBAAAC,EACA,gBAAAC,EACA,kBAAAC,EACA,qBAAAC,EACA,UAAAC,EACA,YAAAC,EACA,WAAAC,EACA,YAAAC,EACA,cAAAC,EACA,iBAAAC,EACA,YAAAC,EACA,cAAAC,EACA,cAAAC,CACJ,EAAMrB,EAA0BrB,CAAO,EACrC,MAAO;AAAA;AAAA,mBAEUmB,CAAU;AAAA,iBACZC,CAAQ;AAAA;AAAA;AAAA;AAAA,YAIbQ,CAAY;AAAA,cACVC,CAAc;AAAA,oBACRM,CAAW;AAAA;AAAA;AAAA;AAAA,YAInBL,CAAiB;AAAA,mBACVX,CAAU;AAAA,iBACZC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMbW,CAAe;AAAA,cACbC,CAAiB;AAAA,oBACXG,CAAW;AAAA;AAAA;AAAA;AAAA,YAInBF,CAAoB;AAAA,mBACbd,CAAU;AAAA,iBACZC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAMXc,CAAS;AAAA,oBACHC,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMnBC,CAAU;AAAA;AAAA;AAAA;AAAA,YAIVC,CAAW;AAAA,cACTC,CAAa;AAAA,oBACPH,CAAW;AAAA;AAAA;AAAA;AAAA,YAInBI,CAAgB;AAAA;AAAA,mBAETpB,CAAU;AAAA,iBACZC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAMboB,CAAW;AAAA,cACTC,CAAa;AAAA,oBACPN,CAAW;AAAA;AAAA;AAAA;AAAA;AAAA,YAKnBF,CAAoB;AAAA,mBACbd,CAAU;AAAA,iBACZC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAObsB,CAAa;AAAA,mBACNvB,CAAU;AAAA,iBACZC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAOzB,EAAG,WAAW,EAGVuB,EAAc,KAAM,CACtB,aAAc,CACZ,KAAK,EAAI,EACX,CACA,MAAA,CACExE,EAAO,KAAM,aAAa,CAC9B,CACE,OAAOyE,EAAGC,EAAG,CACX,YAAK,GAAK,KAAKD,CAAC,IAAIC,CAAC,IACd,IACT,CACA,OAAOD,EAAGC,EAAG,CACX,YAAK,GAAK,KAAKD,CAAC,IAAIC,CAAC,IACd,IACT,CACA,aAAaD,EAAG,CACd,YAAK,GAAK,KAAKA,CAAC,IACT,IACT,CACA,WAAWC,EAAG,CACZ,YAAK,GAAK,KAAKA,CAAC,IACT,IACT,CACA,MAAMC,EAAIC,EAAIC,EAAUC,EAAUC,EAAON,EAAGC,EAAG,CAC7C,YAAK,GAAK,KAAKC,CAAE,IAAIC,CAAE,IAAIC,CAAQ,IAAIC,EAAW,EAAI,CAAC,IAAIC,EAAQ,EAAI,CAAC,IAAIN,CAAC,IAAIC,CAAC,IAC3E,IACT,CACA,OAAQ,CACN,OAAO,KAAK,EAAE,KAAI,CACpB,CACF,EACIM,GAAmB,KAAM,CAC3B,YAAYC,EAAKC,EAAShC,IAA6B,CACrD,KAAK,UAA4B,IAAI,IACrC,KAAK,IAAM+B,EACX,KAAK,OAASC,CAChB,CACA,MAAA,CACElF,EAAO,KAAM,kBAAkB,CACnC,CAIE,YAAYC,EAAM,CAChB,GAAI,KAAK,UAAU,IAAIA,CAAI,EACzB,OAAO,KAAK,UAAU,IAAIA,CAAI,EAEhC,MAAMkF,EAAW,KAAK,IAAI,OAAO,MAAM,EAAE,KAAK,cAAe,KAAK,OAAO,UAAU,EAAE,KAAK,YAAa,KAAK,OAAO,QAAQ,EAAE,KAAKlF,CAAI,EAChImF,EAAOD,EAAS,KAAI,EAAG,QAAO,EAC9BE,EAAa,CAAE,MAAOD,EAAK,MAAO,OAAQA,EAAK,MAAM,EAC3D,OAAAD,EAAS,OAAM,EACf,KAAK,UAAU,IAAIlF,EAAMoF,CAAU,EAC5BA,CACT,CAIA,eAAeC,EAAQ/C,EAAO,CAC5B,MAAMgD,EAAU,KAAK,YAAYhD,CAAK,EAChCiD,EAAQD,EAAQ,MAAQ,KAAK,OAAO,QAAU,EAC9CE,EAASF,EAAQ,OAAS,KAAK,OAAO,QAAU,EAChDG,EAAQJ,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,mBAAmB,EAClE,OAAAI,EAAM,OAAO,MAAM,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,QAASF,CAAK,EAAE,KAAK,SAAUC,CAAM,EAAE,KAAK,KAAM,EAAE,EAAE,KAAK,KAAM,EAAE,EACvHC,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKF,EAAQ,CAAC,EAAE,KAAK,IAAKC,EAAS,CAAC,EAAE,KAAKlD,CAAK,EACnE,CACL,QAASmD,EAAM,KAAI,EACnB,WAAY,CACV,MAAAF,EACA,OAAAC,EACA,GAAIA,EAAS,EACb,KAAMA,EAAS,CACvB,CACA,CACE,CAIA,kBAAkBH,EAAQtE,EAAM,CAC9B,MAAMuE,EAAU,KAAK,YAAYvE,CAAI,EAC/BwE,EAAQD,EAAQ,MAAQ,KAAK,OAAO,QAAU,EAC9CE,EAASF,EAAQ,OAAS,KAAK,OAAO,QAAU,EAChDG,EAAQJ,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,sBAAsB,EACrE,OAAAI,EAAM,OAAO,MAAM,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,QAASF,CAAK,EAAE,KAAK,SAAUC,CAAM,EACzFC,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKF,EAAQ,CAAC,EAAE,KAAK,IAAKC,EAAS,CAAC,EAAE,KAAKzE,CAAI,EAClE,CACL,QAAS0E,EAAM,KAAI,EACnB,WAAY,CACV,MAAAF,EACA,OAAAC,EACA,GAAIA,EAAS,EACb,KAAMA,EAAS,CACvB,CACA,CACE,CAIA,eAAeH,EAAQK,EAAU,CAC/B,MAAMC,EAAWD,EAAS,IAAKE,GAAM,KAAK,iBAAiBP,EAAQO,CAAC,CAAC,EACrE,IAAIC,EAAa,EACbC,EAAQ,EACRC,EAAU,EACd,UAAWC,KAAKL,EACdE,GAAcG,EAAE,WAAW,MAC3BF,EAAQ,KAAK,IAAIA,EAAOE,EAAE,WAAW,EAAE,EACvCD,EAAU,KAAK,IAAIA,EAASC,EAAE,WAAW,IAAI,EAE/CH,IAAeF,EAAS,OAAS,GAAK,KAAK,OAAO,qBAClD,MAAMF,EAAQJ,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,mBAAmB,EAClE,IAAIb,EAAI,EACR,QAASyB,EAAI,EAAGA,EAAIN,EAAS,OAAQM,IAAK,CACxC,MAAMD,EAAIL,EAASM,CAAC,EACdxB,EAAIqB,EAAQE,EAAE,WAAW,GAG/B,GAFaP,EAAM,KAAI,EAAG,YAAYO,EAAE,OAAO,EAC1C,aAAa,YAAa,aAAaxB,CAAC,KAAKC,CAAC,GAAG,EAClDwB,EAAIN,EAAS,OAAS,EAAG,CAC3B,MAAMO,EAAS1B,EAAIwB,EAAE,WAAW,MAC1BG,EAASD,EAAS,KAAK,OAAO,qBAC9BE,EAAQN,EACdL,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,IAAK,IAAIlB,EAAW,EAAG,OAAO2B,EAAQE,CAAK,EAAE,OAAOD,EAAQC,CAAK,EAAE,OAAO,CACrI,CACA5B,GAAKwB,EAAE,WAAW,MAAQ,KAAK,OAAO,oBACxC,CACA,MAAO,CACL,QAASP,EAAM,KAAI,EACnB,WAAY,CACV,MAAOI,EACP,OAAQC,EAAQC,EAChB,GAAID,EACJ,KAAMC,CACd,CACA,CACE,CAIA,aAAaV,EAAQgB,EAAc,CACjC,MAAMV,EAAWU,EAAa,IAAKC,GAAM,KAAK,iBAAiBjB,EAAQiB,CAAC,CAAC,EACzE,IAAIC,EAAW,EACXC,EAAc,EAClB,UAAWR,KAAKL,EACdY,EAAW,KAAK,IAAIA,EAAUP,EAAE,WAAW,KAAK,EAChDQ,GAAeR,EAAE,WAAW,OAE9BQ,IAAgBb,EAAS,OAAS,GAAK,KAAK,OAAO,mBACnD,MAAMc,EAAY,KAAK,OAAO,UACxBC,EAAWD,EAAY,EACvBZ,EAAaU,EAAWG,EACxBjB,EAAQJ,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,iBAAiB,EAChE,IAAIZ,EAAI,EACR,MAAMkC,EAAUH,EAAc,EAC9B,UAAWR,KAAKL,EAAU,CACxB,MAAMiB,EAAQnC,EACRoC,EAAcD,EAAQZ,EAAE,WAAW,GACnCc,EAAQL,EAAY,GAAKF,EAAWP,EAAE,WAAW,OAAS,EACnDP,EAAM,KAAI,EAAG,YAAYO,EAAE,OAAO,EAC1C,aAAa,YAAa,aAAac,CAAK,KAAKF,CAAK,GAAG,EAC9D,MAAMG,EAAW,IAAIxC,EACfyC,EAAgBH,EAAcF,EAChCE,IAAgBF,EAClBI,EAAS,OAAO,EAAGJ,CAAO,EAAE,OAAOG,EAAOD,CAAW,EAErDE,EAAS,OAAO,EAAGJ,CAAO,EAAE,MAC1BF,EACAA,EACA,EACA,GACAO,EACAP,EACAE,GAAWK,EAAgBP,EAAY,CAACA,EAClD,EAAU,OAAOA,EAAWI,GAAeG,EAAgBP,EAAY,CAACA,EAAU,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,CAACO,EAAeP,EAAY,EAAGI,CAAW,EAAE,OAAOC,EAAOD,CAAW,EAEzLpB,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,IAAKsB,EAAS,MAAK,CAAE,EAC9E,MAAME,EAAY,IAAI1C,EAChB2C,EAAaJ,EAAQd,EAAE,WAAW,MAClCmB,EAAatB,EAAaY,EAAY,EACxCI,IAAgBF,EAClBM,EAAU,OAAOC,EAAYL,CAAW,EAAE,OAAOhB,EAAYc,CAAO,EAEpEM,EAAU,OAAOC,EAAYL,CAAW,EAAE,OAAOM,EAAYN,CAAW,EAAE,MACxEJ,EACAA,EACA,EACA,GACA,CAACO,EACDnB,EAAaY,EACbI,GAAeG,EAAgB,CAACP,EAAYA,EACtD,EAAU,OAAOZ,EAAaY,EAAWE,GAAWK,EAAgBP,EAAY,CAACA,EAAU,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAOO,EAAenB,EAAYc,CAAO,EAE/JlB,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,IAAKwB,EAAU,MAAK,CAAE,EAC/ExC,GAAKuB,EAAE,WAAW,OAAS,KAAK,OAAO,kBACzC,CACA,MAAO,CACL,QAASP,EAAM,KAAI,EACnB,WAAY,CACV,MAAOI,EACP,OAAQW,EACR,GAAIG,EACJ,KAAMH,EAAcG,CAC5B,CACA,CACE,CAIA,eAAetB,EAAQ+B,EAAS,CAC9B,MAAMC,EAAQ,KAAK,iBAAiBhC,EAAQ+B,CAAO,EAC7CX,EAAY,KAAK,OAAO,UACxBa,EAAYb,EAAY,EACxBZ,EAAawB,EAAM,WAAW,MAAQZ,EAAY,EAClDD,EAAca,EAAM,WAAW,OAASC,EACxC7B,EAAQJ,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,mBAAmB,EAC5DyB,EAAQL,EAAY,EACpBG,EAAQU,EACD7B,EAAM,KAAI,EAAG,YAAY4B,EAAM,OAAO,EAC9C,aAAa,YAAa,aAAaP,CAAK,KAAKF,CAAK,GAAG,EAC9D,MAAMD,EAAUC,EAAQS,EAAM,WAAW,GACnCE,EAAY,IAAIhD,EAAW,EAAG,OAAO,EAAGoC,CAAO,EAAE,OAAOF,EAAY,EAAGE,CAAO,EACpFlB,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,IAAK8B,EAAU,MAAK,CAAE,EAC/E,MAAMC,EAAa,IAAIjD,IAAc,OAAOuC,EAAQO,EAAM,WAAW,MAAOV,CAAO,EAAE,OAAOd,EAAYc,CAAO,EAC/GlB,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,IAAK+B,EAAW,MAAK,CAAE,EAChF,MAAMC,EAAa,IAAIlD,IAAc,OAAO,EAAGoC,CAAO,EAAE,MAAMF,EAAWA,EAAW,EAAG,GAAO,GAAOA,EAAWE,EAAUF,CAAS,EAAE,OAAOA,EAAWA,CAAS,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,GAAMA,EAAY,EAAG,CAAC,EAAE,OAAOZ,EAAaY,EAAY,EAAG,CAAC,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,GAAMZ,EAAaY,EAAWA,CAAS,EAAE,OAAOZ,EAAaY,EAAWE,EAAUF,CAAS,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,GAAOZ,EAAYc,CAAO,EACzc,OAAAlB,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,IAAKgC,EAAW,MAAK,CAAE,EACzE,CACL,QAAShC,EAAM,KAAI,EACnB,WAAY,CACV,MAAOI,EACP,OAAQW,EACR,GAAIG,EACJ,KAAMH,EAAcG,CAC5B,CACA,CACE,CAIA,iBAAiBtB,EAAQ+B,EAASM,EAAK,CACrC,MAAML,EAAQ,KAAK,iBAAiBhC,EAAQ+B,CAAO,EAC7CX,EAAY,KAAK,OAAO,UACxBa,EAAYb,EAAY,EACxBZ,EAAawB,EAAM,WAAW,MAAQZ,EAAY,EAClDkB,EAAYD,IAAQ,EACpBlB,EAAca,EAAM,WAAW,OAASC,GAAaK,EAAYL,EAAY,GAC7E7B,EAAQJ,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,qBAAqB,EAC9DyB,EAAQL,EAAY,EACpBG,EAAQe,EAAYL,EAAY,EACzB7B,EAAM,KAAI,EAAG,YAAY4B,EAAM,OAAO,EAC9C,aAAa,YAAa,aAAaP,CAAK,KAAKF,CAAK,GAAG,EAC9D,MAAMD,EAAUC,EAAQS,EAAM,WAAW,GACzC5B,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAClD,IACA,IAAIlB,EAAW,EAAG,OAAO,EAAGoC,CAAO,EAAE,OAAOF,EAAY,EAAGE,CAAO,EAAE,MAAK,CAC/E,EACIlB,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAClD,IACA,IAAIlB,EAAW,EAAG,OAAOuC,EAAQO,EAAM,WAAW,MAAOV,CAAO,EAAE,OAAOd,EAAYc,CAAO,EAAE,MAAK,CACzG,EACI,MAAMiB,EAAQhB,EAAQS,EAAM,WAAW,OAASZ,EAC1CoB,EAAW,IAAItD,EAAW,EAAG,OAAOuC,EAAQO,EAAM,WAAW,MAAOV,CAAO,EAAE,MACjFF,EACAA,EACA,EACA,GACA,GACAK,EAAQO,EAAM,WAAW,MAAQZ,EACjCE,EAAUF,CAChB,EAAM,OAAOK,EAAQO,EAAM,WAAW,MAAQZ,EAAWmB,CAAK,EAAE,MAC1DnB,EACAA,EACA,EACA,GACA,GACAK,EAAQO,EAAM,WAAW,MACzBO,EAAQnB,CACd,EAAM,OAAOA,EAAY,EAAGmB,EAAQnB,CAAS,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,GAAMA,EAAWmB,CAAK,EAAE,OAAOnB,EAAWE,EAAUF,CAAS,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,GAAMA,EAAY,EAAGE,CAAO,EAElN,GADAlB,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,IAAKoC,EAAS,MAAK,CAAE,EAC1EF,EAAW,CACb,MAAMF,EAAa,IAAIlD,IAAc,OAAO,EAAGoC,CAAO,EAAE,MAAMF,EAAWA,EAAW,EAAG,GAAO,GAAOA,EAAWE,EAAUF,CAAS,EAAE,OAAOA,EAAWA,CAAS,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,GAAMA,EAAY,EAAG,CAAC,EAAE,OAAOZ,EAAaY,EAAY,EAAG,CAAC,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,GAAMZ,EAAaY,EAAWA,CAAS,EAAE,OAAOZ,EAAaY,EAAWE,EAAUF,CAAS,EAAE,MAAMA,EAAWA,EAAW,EAAG,GAAO,GAAOZ,EAAYc,CAAO,EACzclB,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,IAAKgC,EAAW,MAAK,CAAE,CAClF,CACA,MAAO,CACL,QAAShC,EAAM,KAAI,EACnB,WAAY,CACV,MAAOI,EACP,OAAQW,EACR,GAAIG,EACJ,KAAMH,EAAcG,CAC5B,CACA,CACE,CAIA,cAActB,EAAQrF,EAAM,CAC1B,MAAMsF,EAAU,KAAK,YAAY,KAAOtF,EAAO,IAAI,EAC7CuF,EAAQD,EAAQ,MAAQ,KAAK,OAAO,QAAU,EAC9CE,EAASF,EAAQ,OAAS,KAAK,OAAO,QAAU,EAChDG,EAAQJ,EAAO,OAAO,GAAG,EAAE,KAAK,QAAS,kBAAkB,EACjE,OAAAI,EAAM,OAAO,MAAM,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,QAASF,CAAK,EAAE,KAAK,SAAUC,CAAM,EACzFC,EAAM,OAAO,MAAM,EAAE,KAAK,IAAKF,EAAQ,CAAC,EAAE,KAAK,IAAKC,EAAS,CAAC,EAAE,KAAK,KAAOxF,EAAO,IAAI,EAChF,CACL,QAASyF,EAAM,KAAI,EACnB,WAAY,CACV,MAAAF,EACA,OAAAC,EACA,GAAIA,EAAS,EACb,KAAMA,EAAS,CACvB,CACA,CACE,CAIA,iBAAiBH,EAAQjF,EAAM,CAC7B,OAAQA,EAAK,KAAI,CACf,IAAK,WACH,OAAO,KAAK,eAAeiF,EAAQjF,EAAK,KAAK,EAC/C,IAAK,cACH,OAAO,KAAK,kBAAkBiF,EAAQjF,EAAK,IAAI,EACjD,IAAK,WACH,OAAO,KAAK,eAAeiF,EAAQjF,EAAK,QAAQ,EAClD,IAAK,SACH,OAAO,KAAK,aAAaiF,EAAQjF,EAAK,YAAY,EACpD,IAAK,WACH,OAAO,KAAK,eAAeiF,EAAQjF,EAAK,OAAO,EACjD,IAAK,aACH,OAAO,KAAK,iBAAiBiF,EAAQjF,EAAK,QAASA,EAAK,GAAG,EAC7D,IAAK,UACH,OAAO,KAAK,cAAciF,EAAQjF,EAAK,IAAI,EAC7C,QACE,MAAM,IAAI,MAAM,sBAAsBA,EAAK,IAAI,EAAE,CACzD,CACE,CAIA,WAAWO,EAAM8D,EAAG,CAClB,MAAMgB,EAAQ,KAAK,IAAI,OAAO,GAAG,EAAE,KAAK,QAAS,eAAe,EAAE,KAAK,YAAa,gBAAgBhB,CAAC,GAAG,EAClGqD,EAAWnH,EAAK,KAAO,KACvBoH,EAAY,KAAK,YAAYD,CAAQ,EAAE,MAAQ,GAC/CE,EAAcD,EAAY,GAC1BE,EAAWxC,EAAM,OAAO,GAAG,EAC3ByC,EAAS,KAAK,iBAAiBD,EAAUtH,EAAK,UAAU,EACxDwH,EAAY,KAAK,IAAI,GAAID,EAAO,WAAW,EAAE,EAC7CE,EAAcD,EAAYD,EAAO,WAAW,GAClD,OAAAD,EAAS,KAAK,YAAa,aAAaD,CAAW,KAAKI,CAAW,GAAG,EACpD3C,EAAM,OAAO,GAAG,EAAE,KAAK,QAAS,0BAA0B,EAClE,OAAO,MAAM,EAAE,KAAK,QAAS,oBAAoB,EAAE,KAAK,IAAK,CAAC,EAAE,KAAK,IAAK0C,CAAS,EAAE,KAAKL,CAAQ,EACxFrC,EAAM,OAAO,GAAG,EAAE,KAAK,QAAS,gBAAgB,EACxD,OAAO,QAAQ,EAAE,KAAK,KAAMsC,CAAS,EAAE,KAAK,KAAMI,CAAS,EAAE,KAAK,IAAK,KAAK,OAAO,YAAY,EACzF1C,EAAM,OAAO,GAAG,EAAE,KAAK,QAAS,cAAc,EACtD,OAAO,QAAQ,EAAE,KAAK,KAAMuC,EAAcE,EAAO,WAAW,MAAQ,EAAE,EAAE,KAAK,KAAMC,CAAS,EAAE,KAAK,IAAK,KAAK,OAAO,YAAY,EAC1I1C,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAClD,IACA,IAAIlB,EAAW,EAAG,OAAOwD,EAAY,KAAK,OAAO,aAAcI,CAAS,EAAE,OAAOH,EAAaG,CAAS,EAAE,MAAK,CACpH,EACI1C,EAAM,OAAO,MAAM,EAAE,KAAK,QAAS,eAAe,EAAE,KAClD,IACA,IAAIlB,EAAW,EAAG,OAAOyD,EAAcE,EAAO,WAAW,MAAOC,CAAS,EAAE,OAAOH,EAAcE,EAAO,WAAW,MAAQ,GAAK,KAAK,OAAO,aAAcC,CAAS,EAAE,MAAK,CAC/K,EACW,CACL,OAAQ,KAAK,IAAI,GAAIC,EAAcF,EAAO,WAAW,OAAS,KAAK,OAAO,QAAU,CAAC,EACrF,MAAOF,EAAcE,EAAO,WAAW,MAAQ,GAAK,KAAK,OAAO,YACtE,CACE,CAIA,cAAcG,EAAQ,CACpB,IAAI5D,EAAI,KAAK,OAAO,QAChB8B,EAAW,EACf,UAAW5F,KAAQ0H,EAAQ,CACzB,MAAMH,EAAS,KAAK,WAAWvH,EAAM8D,CAAC,EACtCA,GAAKyD,EAAO,OAAS,KAAK,OAAO,mBACjC3B,EAAW,KAAK,IAAIA,EAAU2B,EAAO,KAAK,CAC5C,CACA,MAAO,CACL,MAAO3B,EAAW,KAAK,OAAO,QAAU,EACxC,OAAQ9B,EAAI,KAAK,OAAO,OAC9B,CACE,CACF,EACI6D,EAA2CvI,EAAO,CAACiF,EAAKI,EAAYmD,IAAgB,CACtFC,EAAiBxD,EAAKI,EAAW,OAAQA,EAAW,MAAOmD,CAAW,EACtEvD,EAAI,KAAK,UAAW,OAAOI,EAAW,KAAK,IAAIA,EAAW,MAAM,EAAE,CACpE,EAAG,0BAA0B,EACzBqD,GAAuB1I,EAAO,CAACC,EAAM0I,EAAIC,IAAa,CACxDpI,EAAI,MAAM;AAAA,EAAmCP,CAAI,EACjD,GAAI,CACF,MAAMgF,EAAM4D,EAAiBF,CAAE,EAC/B1D,EAAI,KAAK,QAAS,kBAAkB,EAEpC,MAAMuD,EADiBpF,EAAS,EAAG,UACC,aAAe,GAC7CkF,EAAS/G,GAAG,SAAQ,EAE1B,GADAf,EAAI,MAAM,wBAAwB8H,EAAO,MAAM,QAAQ,EACnDA,EAAO,SAAW,EAAG,CACvB9H,EAAI,KAAK,+BAA+B,EACxC+H,EAAyBtD,EAAK,CAAE,OAAQ,IAAK,MAAO,GAAG,EAAIuD,CAAW,EACtE,MACF,CAEA,MAAMnD,EADY,IAAIL,GAAiBC,EAAK/B,EAAyB,CAAE,EAC1C,cAAcoF,CAAM,EACjDC,EAAyBtD,EAAKI,EAAYmD,CAAW,EACrDhI,EAAI,MAAM,4BAA4B,CACxC,OAASsI,EAAO,CACd,MAAAtI,EAAI,MAAM,2BAA4BsI,CAAK,EACrCA,CACR,CACF,EAAG,MAAM,EACLC,GAAW,CAAE,KAAAL,EAAI","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"chunk-6Q2QTUOP-DiQ5-a8V.js","sources":["../../../node_modules/mermaid/dist/chunks/mermaid.core/chunk-6Q2QTUOP.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-3NCLNEKW.mjs\";\nimport {\n clear,\n configureSvgSize,\n getConfig,\n getConfig2,\n getThemeVariables,\n sanitizeText\n} from \"./chunk-I66GZJ75.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/railroad/railroadDb.ts\nvar diagramTitle = \"\";\nvar accTitle = \"\";\nvar accDescription = \"\";\nvar rules = [];\nvar ruleMap = /* @__PURE__ */ new Map();\nvar sanitizeText2 = /* @__PURE__ */ __name((text) => {\n return sanitizeText(text, getConfig2());\n}, \"sanitizeText\");\nvar sanitizeAstNode = /* @__PURE__ */ __name((node) => {\n switch (node.type) {\n case \"terminal\":\n return { ...node, value: sanitizeText2(node.value) };\n case \"nonterminal\":\n return { ...node, name: sanitizeText2(node.name) };\n case \"sequence\":\n return { ...node, elements: node.elements.map(sanitizeAstNode) };\n case \"choice\":\n return { ...node, alternatives: node.alternatives.map(sanitizeAstNode) };\n case \"optional\":\n return { ...node, element: sanitizeAstNode(node.element) };\n case \"repetition\":\n return {\n ...node,\n element: sanitizeAstNode(node.element),\n separator: node.separator ? sanitizeAstNode(node.separator) : void 0\n };\n case \"special\":\n return { ...node, text: sanitizeText2(node.text) };\n }\n}, \"sanitizeAstNode\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n diagramTitle = \"\";\n accTitle = \"\";\n accDescription = \"\";\n rules.length = 0;\n ruleMap.clear();\n clear();\n log.debug(\"[Railroad] Database cleared\");\n}, \"clear\");\nvar setTitle = /* @__PURE__ */ __name((text) => {\n diagramTitle = sanitizeText2(text);\n log.debug(\"[Railroad] Title set:\", text);\n}, \"setTitle\");\nvar getTitle = /* @__PURE__ */ __name(() => {\n return diagramTitle;\n}, \"getTitle\");\nvar addRule = /* @__PURE__ */ __name((rule) => {\n const sanitizedRule = {\n ...rule,\n name: sanitizeText2(rule.name),\n definition: sanitizeAstNode(rule.definition),\n comment: rule.comment ? sanitizeText2(rule.comment) : void 0\n };\n log.debug(\"[Railroad] Adding rule:\", sanitizedRule.name);\n if (ruleMap.has(sanitizedRule.name)) {\n log.warn(`[Railroad] Rule '${sanitizedRule.name}' is already defined. Overwriting.`);\n }\n rules.push(sanitizedRule);\n ruleMap.set(sanitizedRule.name, sanitizedRule);\n}, \"addRule\");\nvar getRules = /* @__PURE__ */ __name(() => {\n return rules;\n}, \"getRules\");\nvar getRule = /* @__PURE__ */ __name((name) => {\n return ruleMap.get(name);\n}, \"getRule\");\nvar setAccTitle = /* @__PURE__ */ __name((text) => {\n accTitle = sanitizeText2(text).replace(/^\\s+/g, \"\");\n log.debug(\"[Railroad] Accessibility title set:\", text);\n}, \"setAccTitle\");\nvar getAccTitle = /* @__PURE__ */ __name(() => {\n return accTitle;\n}, \"getAccTitle\");\nvar setAccDescription = /* @__PURE__ */ __name((text) => {\n accDescription = sanitizeText2(text).replace(/\\n\\s+/g, \"\\n\");\n log.debug(\"[Railroad] Accessibility description set:\", text);\n}, \"setAccDescription\");\nvar getAccDescription = /* @__PURE__ */ __name(() => {\n return accDescription;\n}, \"getAccDescription\");\nvar setDiagramTitle = setTitle;\nvar getDiagramTitle = getTitle;\nvar db = {\n clear: clear2,\n setTitle,\n getTitle,\n addRule,\n getRules,\n getRule,\n setAccTitle,\n getAccTitle,\n setAccDescription,\n getAccDescription,\n setDiagramTitle,\n getDiagramTitle\n};\n\n// src/diagrams/railroad/railroadTypes.ts\nvar DEFAULT_RAILROAD_CONFIG = {\n // Layout\n compactMode: false,\n // Spacing\n padding: 10,\n verticalSeparation: 8,\n horizontalSeparation: 10,\n arcRadius: 10,\n // Typography\n fontSize: 14,\n fontFamily: \"monospace\",\n // Colors - Terminal\n terminalFill: \"#FFFFC0\",\n terminalStroke: \"#000000\",\n terminalTextColor: \"#000000\",\n // Colors - Non-terminal\n nonTerminalFill: \"#FFFFFF\",\n nonTerminalStroke: \"#000000\",\n nonTerminalTextColor: \"#000000\",\n // Colors - Lines\n lineColor: \"#000000\",\n strokeWidth: 2,\n // Colors - Markers\n markerFill: \"#000000\",\n // Colors - Comment\n commentFill: \"#E8E8E8\",\n commentStroke: \"#888888\",\n commentTextColor: \"#666666\",\n // Colors - Special\n specialFill: \"#F0E0FF\",\n specialStroke: \"#8800CC\",\n // Other\n ruleNameColor: \"#000066\",\n showMarkers: true,\n markerRadius: 5\n};\n\n// src/diagrams/railroad/styles.ts\nvar COLOR_VALUE_PATTERN = /^#(?:[\\da-f]{3,4}|[\\da-f]{6}|[\\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\\([\\d\\s%+,./-]+\\)$|^[a-z]+$/i;\nvar FONT_FAMILY_PATTERN = /^[\\w \"',.-]+$/;\nvar RAILROAD_STYLE_OPTION_KEYS = /* @__PURE__ */ new Set([\n \"compactMode\",\n \"padding\",\n \"verticalSeparation\",\n \"horizontalSeparation\",\n \"arcRadius\",\n \"fontSize\",\n \"fontFamily\",\n \"terminalFill\",\n \"terminalStroke\",\n \"terminalTextColor\",\n \"nonTerminalFill\",\n \"nonTerminalStroke\",\n \"nonTerminalTextColor\",\n \"lineColor\",\n \"strokeWidth\",\n \"markerFill\",\n \"commentFill\",\n \"commentStroke\",\n \"commentTextColor\",\n \"specialFill\",\n \"specialStroke\",\n \"ruleNameColor\",\n \"showMarkers\",\n \"markerRadius\"\n]);\nvar isRailroadStyleOptions = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return false;\n }\n return Object.keys(options).every(\n (key) => key === \"railroad\" || RAILROAD_STYLE_OPTION_KEYS.has(key)\n );\n}, \"isRailroadStyleOptions\");\nvar extractRailroadOverrides = /* @__PURE__ */ __name((options) => {\n if (!options) {\n return {};\n }\n if (\"railroad\" in options && options.railroad) {\n return options.railroad;\n }\n return isRailroadStyleOptions(options) ? options : {};\n}, \"extractRailroadOverrides\");\nvar extractThemeOverrides = /* @__PURE__ */ __name((options) => {\n if (!options || isRailroadStyleOptions(options)) {\n return {};\n }\n const {\n railroad: _railroad,\n svgId: _svgId,\n theme: _theme,\n look: _look,\n ...themeOverrides\n } = options;\n return themeOverrides;\n}, \"extractThemeOverrides\");\nvar sanitizeColorValue = /* @__PURE__ */ __name((value, fallback) => {\n if (typeof value !== \"string\") {\n return fallback;\n }\n const normalized = value.trim();\n return COLOR_VALUE_PATTERN.test(normalized) ? normalized : fallback;\n}, \"sanitizeColorValue\");\nvar sanitizeFontFamilyValue = /* @__PURE__ */ __name((value, fallback) => {\n if (typeof value !== \"string\") {\n return fallback;\n }\n const normalized = value.trim();\n return FONT_FAMILY_PATTERN.test(normalized) ? normalized : fallback;\n}, \"sanitizeFontFamilyValue\");\nvar sanitizeNumberValue = /* @__PURE__ */ __name((value, fallback) => {\n const parsed = typeof value === \"number\" ? value : typeof value === \"string\" ? Number.parseFloat(value) : Number.NaN;\n return Number.isFinite(parsed) && parsed >= 0 ? parsed : fallback;\n}, \"sanitizeNumberValue\");\nvar parseThemeFontSize = /* @__PURE__ */ __name((value) => {\n const parsed = typeof value === \"number\" ? value : typeof value === \"string\" ? Number.parseFloat(value) : Number.NaN;\n return Number.isFinite(parsed) && parsed > 0 ? parsed : void 0;\n}, \"parseThemeFontSize\");\nvar buildThemeDefaults = /* @__PURE__ */ __name((themeVariables) => {\n const fontFamily = sanitizeFontFamilyValue(\n themeVariables.fontFamily,\n DEFAULT_RAILROAD_CONFIG.fontFamily\n );\n const fontSize = parseThemeFontSize(themeVariables.fontSize) ?? DEFAULT_RAILROAD_CONFIG.fontSize;\n return {\n ...DEFAULT_RAILROAD_CONFIG,\n fontFamily,\n fontSize,\n terminalFill: sanitizeColorValue(\n themeVariables.secondBkg ?? themeVariables.secondaryColor,\n DEFAULT_RAILROAD_CONFIG.terminalFill\n ),\n terminalStroke: sanitizeColorValue(\n themeVariables.secondaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.terminalStroke\n ),\n terminalTextColor: sanitizeColorValue(\n themeVariables.secondaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.terminalTextColor\n ),\n nonTerminalFill: sanitizeColorValue(\n themeVariables.mainBkg ?? themeVariables.background,\n DEFAULT_RAILROAD_CONFIG.nonTerminalFill\n ),\n nonTerminalStroke: sanitizeColorValue(\n themeVariables.primaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.nonTerminalStroke\n ),\n nonTerminalTextColor: sanitizeColorValue(\n themeVariables.primaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.nonTerminalTextColor\n ),\n lineColor: sanitizeColorValue(themeVariables.lineColor, DEFAULT_RAILROAD_CONFIG.lineColor),\n markerFill: sanitizeColorValue(themeVariables.lineColor, DEFAULT_RAILROAD_CONFIG.markerFill),\n commentFill: sanitizeColorValue(\n themeVariables.labelBackground ?? themeVariables.tertiaryColor,\n DEFAULT_RAILROAD_CONFIG.commentFill\n ),\n commentStroke: sanitizeColorValue(\n themeVariables.tertiaryBorderColor ?? themeVariables.lineColor,\n DEFAULT_RAILROAD_CONFIG.commentStroke\n ),\n commentTextColor: sanitizeColorValue(\n themeVariables.tertiaryTextColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.commentTextColor\n ),\n specialFill: sanitizeColorValue(\n themeVariables.tertiaryColor ?? themeVariables.secondaryColor,\n DEFAULT_RAILROAD_CONFIG.specialFill\n ),\n specialStroke: sanitizeColorValue(\n themeVariables.tertiaryBorderColor ?? themeVariables.secondaryBorderColor,\n DEFAULT_RAILROAD_CONFIG.specialStroke\n ),\n ruleNameColor: sanitizeColorValue(\n themeVariables.titleColor ?? themeVariables.textColor,\n DEFAULT_RAILROAD_CONFIG.ruleNameColor\n )\n };\n}, \"buildThemeDefaults\");\nvar buildRailroadStyleOptions = /* @__PURE__ */ __name((options) => {\n const currentConfig = getConfig();\n const themeVariables = {\n ...getThemeVariables(),\n ...currentConfig.themeVariables ?? {},\n ...extractThemeOverrides(options)\n };\n const themeDefaults = buildThemeDefaults(themeVariables);\n const railroadOptions = {\n ...currentConfig.railroad ?? {},\n ...extractRailroadOverrides(options)\n };\n return {\n compactMode: railroadOptions.compactMode ?? themeDefaults.compactMode,\n padding: sanitizeNumberValue(railroadOptions.padding, themeDefaults.padding),\n verticalSeparation: sanitizeNumberValue(\n railroadOptions.verticalSeparation,\n themeDefaults.verticalSeparation\n ),\n horizontalSeparation: sanitizeNumberValue(\n railroadOptions.horizontalSeparation,\n themeDefaults.horizontalSeparation\n ),\n arcRadius: sanitizeNumberValue(railroadOptions.arcRadius, themeDefaults.arcRadius),\n fontSize: sanitizeNumberValue(railroadOptions.fontSize, themeDefaults.fontSize),\n fontFamily: sanitizeFontFamilyValue(railroadOptions.fontFamily, themeDefaults.fontFamily),\n terminalFill: sanitizeColorValue(railroadOptions.terminalFill, themeDefaults.terminalFill),\n terminalStroke: sanitizeColorValue(\n railroadOptions.terminalStroke,\n themeDefaults.terminalStroke\n ),\n terminalTextColor: sanitizeColorValue(\n railroadOptions.terminalTextColor,\n themeDefaults.terminalTextColor\n ),\n nonTerminalFill: sanitizeColorValue(\n railroadOptions.nonTerminalFill,\n themeDefaults.nonTerminalFill\n ),\n nonTerminalStroke: sanitizeColorValue(\n railroadOptions.nonTerminalStroke,\n themeDefaults.nonTerminalStroke\n ),\n nonTerminalTextColor: sanitizeColorValue(\n railroadOptions.nonTerminalTextColor,\n themeDefaults.nonTerminalTextColor\n ),\n lineColor: sanitizeColorValue(railroadOptions.lineColor, themeDefaults.lineColor),\n strokeWidth: sanitizeNumberValue(railroadOptions.strokeWidth, themeDefaults.strokeWidth),\n markerFill: sanitizeColorValue(railroadOptions.markerFill, themeDefaults.markerFill),\n commentFill: sanitizeColorValue(railroadOptions.commentFill, themeDefaults.commentFill),\n commentStroke: sanitizeColorValue(railroadOptions.commentStroke, themeDefaults.commentStroke),\n commentTextColor: sanitizeColorValue(\n railroadOptions.commentTextColor,\n themeDefaults.commentTextColor\n ),\n specialFill: sanitizeColorValue(railroadOptions.specialFill, themeDefaults.specialFill),\n specialStroke: sanitizeColorValue(railroadOptions.specialStroke, themeDefaults.specialStroke),\n ruleNameColor: sanitizeColorValue(railroadOptions.ruleNameColor, themeDefaults.ruleNameColor),\n showMarkers: railroadOptions.showMarkers ?? themeDefaults.showMarkers,\n markerRadius: sanitizeNumberValue(railroadOptions.markerRadius, themeDefaults.markerRadius)\n };\n}, \"buildRailroadStyleOptions\");\nvar getStyles = /* @__PURE__ */ __name((options) => {\n const {\n fontFamily,\n fontSize,\n terminalFill,\n terminalStroke,\n terminalTextColor,\n nonTerminalFill,\n nonTerminalStroke,\n nonTerminalTextColor,\n lineColor,\n strokeWidth,\n markerFill,\n commentFill,\n commentStroke,\n commentTextColor,\n specialFill,\n specialStroke,\n ruleNameColor\n } = buildRailroadStyleOptions(options);\n return `\n .railroad-diagram {\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n }\n\n .railroad-terminal rect {\n fill: ${terminalFill};\n stroke: ${terminalStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-terminal text {\n fill: ${terminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-nonterminal rect {\n fill: ${nonTerminalFill};\n stroke: ${nonTerminalStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-nonterminal text {\n fill: ${nonTerminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-line {\n stroke: ${lineColor};\n stroke-width: ${strokeWidth}px;\n fill: none;\n }\n\n .railroad-start circle,\n .railroad-end circle {\n fill: ${markerFill};\n }\n\n .railroad-comment ellipse {\n fill: ${commentFill};\n stroke: ${commentStroke};\n stroke-width: ${strokeWidth}px;\n }\n\n .railroad-comment text {\n fill: ${commentTextColor};\n font-style: italic;\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-special rect {\n fill: ${specialFill};\n stroke: ${specialStroke};\n stroke-width: ${strokeWidth}px;\n stroke-dasharray: 5,3;\n }\n\n .railroad-special text {\n fill: ${nonTerminalTextColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n text-anchor: middle;\n dominant-baseline: middle;\n }\n\n .railroad-rule-name {\n font-weight: bold;\n fill: ${ruleNameColor};\n font-family: ${fontFamily};\n font-size: ${fontSize}px;\n }\n\n .railroad-group {\n /* Grouping container, no specific styles */\n }\n`;\n}, \"getStyles\");\n\n// src/diagrams/railroad/railroadRenderer.ts\nvar PathBuilder = class {\n constructor() {\n this.d = \"\";\n }\n static {\n __name(this, \"PathBuilder\");\n }\n moveTo(x, y) {\n this.d += `M ${x} ${y} `;\n return this;\n }\n lineTo(x, y) {\n this.d += `L ${x} ${y} `;\n return this;\n }\n horizontalTo(x) {\n this.d += `H ${x} `;\n return this;\n }\n verticalTo(y) {\n this.d += `V ${y} `;\n return this;\n }\n arcTo(rx, ry, rotation, largeArc, sweep, x, y) {\n this.d += `A ${rx} ${ry} ${rotation} ${largeArc ? 1 : 0} ${sweep ? 1 : 0} ${x} ${y} `;\n return this;\n }\n build() {\n return this.d.trim();\n }\n};\nvar RailroadRenderer = class {\n constructor(svg, config = buildRailroadStyleOptions()) {\n this.textCache = /* @__PURE__ */ new Map();\n this.svg = svg;\n this.config = config;\n }\n static {\n __name(this, \"RailroadRenderer\");\n }\n /**\n * Measure text dimensions\n */\n measureText(text) {\n if (this.textCache.has(text)) {\n return this.textCache.get(text);\n }\n const tempText = this.svg.append(\"text\").attr(\"font-family\", this.config.fontFamily).attr(\"font-size\", this.config.fontSize).text(text);\n const bbox = tempText.node().getBBox();\n const dimensions = { width: bbox.width, height: bbox.height };\n tempText.remove();\n this.textCache.set(text, dimensions);\n return dimensions;\n }\n /**\n * Render terminal symbol (rounded rectangle)\n */\n renderTerminal(parent, value) {\n const textDim = this.measureText(value);\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-terminal\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height).attr(\"rx\", 10).attr(\"ry\", 10);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(value);\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render non-terminal symbol (rectangle)\n */\n renderNonTerminal(parent, name) {\n const textDim = this.measureText(name);\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-nonterminal\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(name);\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render sequence (horizontal concatenation)\n */\n renderSequence(parent, elements) {\n const rendered = elements.map((e) => this.renderExpression(parent, e));\n let totalWidth = 0;\n let maxUp = 0;\n let maxDown = 0;\n for (const r of rendered) {\n totalWidth += r.dimensions.width;\n maxUp = Math.max(maxUp, r.dimensions.up);\n maxDown = Math.max(maxDown, r.dimensions.down);\n }\n totalWidth += (rendered.length - 1) * this.config.horizontalSeparation;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-sequence\");\n let x = 0;\n for (let i = 0; i < rendered.length; i++) {\n const r = rendered[i];\n const y = maxUp - r.dimensions.up;\n const elem = group.node().appendChild(r.element);\n elem.setAttribute(\"transform\", `translate(${x}, ${y})`);\n if (i < rendered.length - 1) {\n const lineX1 = x + r.dimensions.width;\n const lineX2 = lineX1 + this.config.horizontalSeparation;\n const lineY = maxUp;\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", new PathBuilder().moveTo(lineX1, lineY).lineTo(lineX2, lineY).build());\n }\n x += r.dimensions.width + this.config.horizontalSeparation;\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: maxUp + maxDown,\n up: maxUp,\n down: maxDown\n }\n };\n }\n /**\n * Render choice (vertical alternatives)\n */\n renderChoice(parent, alternatives) {\n const rendered = alternatives.map((a) => this.renderExpression(parent, a));\n let maxWidth = 0;\n let totalHeight = 0;\n for (const r of rendered) {\n maxWidth = Math.max(maxWidth, r.dimensions.width);\n totalHeight += r.dimensions.height;\n }\n totalHeight += (rendered.length - 1) * this.config.verticalSeparation;\n const arcRadius = this.config.arcRadius;\n const arcWidth = arcRadius * 4;\n const totalWidth = maxWidth + arcWidth;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-choice\");\n let y = 0;\n const centerY = totalHeight / 2;\n for (const r of rendered) {\n const elemY = y;\n const elemCenterY = elemY + r.dimensions.up;\n const elemX = arcRadius * 2 + (maxWidth - r.dimensions.width) / 2;\n const elem = group.node().appendChild(r.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const leftPath = new PathBuilder();\n const isBelowCenter = elemCenterY > centerY;\n if (elemCenterY === centerY) {\n leftPath.moveTo(0, centerY).lineTo(elemX, elemCenterY);\n } else {\n leftPath.moveTo(0, centerY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n isBelowCenter,\n arcRadius,\n centerY + (isBelowCenter ? arcRadius : -arcRadius)\n ).lineTo(arcRadius, elemCenterY - (isBelowCenter ? arcRadius : -arcRadius)).arcTo(arcRadius, arcRadius, 0, false, !isBelowCenter, arcRadius * 2, elemCenterY).lineTo(elemX, elemCenterY);\n }\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", leftPath.build());\n const rightPath = new PathBuilder();\n const rightStart = elemX + r.dimensions.width;\n const rightLaneX = totalWidth - arcRadius * 2;\n if (elemCenterY === centerY) {\n rightPath.moveTo(rightStart, elemCenterY).lineTo(totalWidth, centerY);\n } else {\n rightPath.moveTo(rightStart, elemCenterY).lineTo(rightLaneX, elemCenterY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n !isBelowCenter,\n totalWidth - arcRadius,\n elemCenterY + (isBelowCenter ? -arcRadius : arcRadius)\n ).lineTo(totalWidth - arcRadius, centerY + (isBelowCenter ? arcRadius : -arcRadius)).arcTo(arcRadius, arcRadius, 0, false, isBelowCenter, totalWidth, centerY);\n }\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", rightPath.build());\n y += r.dimensions.height + this.config.verticalSeparation;\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render optional (bypass path above)\n */\n renderOptional(parent, element) {\n const inner = this.renderExpression(parent, element);\n const arcRadius = this.config.arcRadius;\n const arcHeight = arcRadius * 2;\n const totalWidth = inner.dimensions.width + arcRadius * 4;\n const totalHeight = inner.dimensions.height + arcHeight;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-optional\");\n const elemX = arcRadius * 2;\n const elemY = arcHeight;\n const elem = group.node().appendChild(inner.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const centerY = elemY + inner.dimensions.up;\n const lowerPath = new PathBuilder().moveTo(0, centerY).lineTo(arcRadius * 2, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", lowerPath.build());\n const lowerPath2 = new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).lineTo(totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", lowerPath2.build());\n const bypassPath = new PathBuilder().moveTo(0, centerY).arcTo(arcRadius, arcRadius, 0, false, false, arcRadius, centerY - arcRadius).lineTo(arcRadius, arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, 0).lineTo(totalWidth - arcRadius * 2, 0).arcTo(arcRadius, arcRadius, 0, false, true, totalWidth - arcRadius, arcRadius).lineTo(totalWidth - arcRadius, centerY - arcRadius).arcTo(arcRadius, arcRadius, 0, false, false, totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", bypassPath.build());\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render repetition (loop back path)\n */\n renderRepetition(parent, element, min) {\n const inner = this.renderExpression(parent, element);\n const arcRadius = this.config.arcRadius;\n const arcHeight = arcRadius * 2;\n const totalWidth = inner.dimensions.width + arcRadius * 4;\n const hasBypass = min === 0;\n const totalHeight = inner.dimensions.height + arcHeight + (hasBypass ? arcHeight : 0);\n const group = parent.append(\"g\").attr(\"class\", \"railroad-repetition\");\n const elemX = arcRadius * 2;\n const elemY = hasBypass ? arcHeight : 0;\n const elem = group.node().appendChild(inner.element);\n elem.setAttribute(\"transform\", `translate(${elemX}, ${elemY})`);\n const centerY = elemY + inner.dimensions.up;\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(0, centerY).lineTo(arcRadius * 2, centerY).build()\n );\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).lineTo(totalWidth, centerY).build()\n );\n const loopY = elemY + inner.dimensions.height + arcRadius;\n const loopPath = new PathBuilder().moveTo(elemX + inner.dimensions.width, centerY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n true,\n elemX + inner.dimensions.width + arcRadius,\n centerY + arcRadius\n ).lineTo(elemX + inner.dimensions.width + arcRadius, loopY).arcTo(\n arcRadius,\n arcRadius,\n 0,\n false,\n true,\n elemX + inner.dimensions.width,\n loopY + arcRadius\n ).lineTo(arcRadius * 2, loopY + arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius, loopY).lineTo(arcRadius, centerY + arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", loopPath.build());\n if (hasBypass) {\n const bypassPath = new PathBuilder().moveTo(0, centerY).arcTo(arcRadius, arcRadius, 0, false, false, arcRadius, centerY - arcRadius).lineTo(arcRadius, arcRadius).arcTo(arcRadius, arcRadius, 0, false, true, arcRadius * 2, 0).lineTo(totalWidth - arcRadius * 2, 0).arcTo(arcRadius, arcRadius, 0, false, true, totalWidth - arcRadius, arcRadius).lineTo(totalWidth - arcRadius, centerY - arcRadius).arcTo(arcRadius, arcRadius, 0, false, false, totalWidth, centerY);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\"d\", bypassPath.build());\n }\n return {\n element: group.node(),\n dimensions: {\n width: totalWidth,\n height: totalHeight,\n up: centerY,\n down: totalHeight - centerY\n }\n };\n }\n /**\n * Render special sequence\n */\n renderSpecial(parent, text) {\n const textDim = this.measureText(\"? \" + text + \" ?\");\n const width = textDim.width + this.config.padding * 2;\n const height = textDim.height + this.config.padding * 2;\n const group = parent.append(\"g\").attr(\"class\", \"railroad-special\");\n group.append(\"rect\").attr(\"x\", 0).attr(\"y\", 0).attr(\"width\", width).attr(\"height\", height);\n group.append(\"text\").attr(\"x\", width / 2).attr(\"y\", height / 2).text(\"? \" + text + \" ?\");\n return {\n element: group.node(),\n dimensions: {\n width,\n height,\n up: height / 2,\n down: height / 2\n }\n };\n }\n /**\n * Render an expression (recursive)\n */\n renderExpression(parent, node) {\n switch (node.type) {\n case \"terminal\":\n return this.renderTerminal(parent, node.value);\n case \"nonterminal\":\n return this.renderNonTerminal(parent, node.name);\n case \"sequence\":\n return this.renderSequence(parent, node.elements);\n case \"choice\":\n return this.renderChoice(parent, node.alternatives);\n case \"optional\":\n return this.renderOptional(parent, node.element);\n case \"repetition\":\n return this.renderRepetition(parent, node.element, node.min);\n case \"special\":\n return this.renderSpecial(parent, node.text);\n default:\n throw new Error(`Unknown node type: ${node.type}`);\n }\n }\n /**\n * Render a single rule\n */\n renderRule(rule, y) {\n const group = this.svg.append(\"g\").attr(\"class\", \"railroad-rule\").attr(\"transform\", `translate(0, ${y})`);\n const ruleName = rule.name + \" =\";\n const nameWidth = this.measureText(ruleName).width + 20;\n const definitionX = nameWidth + 20;\n const defGroup = group.append(\"g\");\n const result = this.renderExpression(defGroup, rule.definition);\n const baselineY = Math.max(20, result.dimensions.up);\n const definitionY = baselineY - result.dimensions.up;\n defGroup.attr(\"transform\", `translate(${definitionX}, ${definitionY})`);\n const nameGroup = group.append(\"g\").attr(\"class\", \"railroad-rule-name-group\");\n nameGroup.append(\"text\").attr(\"class\", \"railroad-rule-name\").attr(\"x\", 0).attr(\"y\", baselineY).text(ruleName);\n const startMarker = group.append(\"g\").attr(\"class\", \"railroad-start\");\n startMarker.append(\"circle\").attr(\"cx\", nameWidth).attr(\"cy\", baselineY).attr(\"r\", this.config.markerRadius);\n const endMarker = group.append(\"g\").attr(\"class\", \"railroad-end\");\n endMarker.append(\"circle\").attr(\"cx\", definitionX + result.dimensions.width + 10).attr(\"cy\", baselineY).attr(\"r\", this.config.markerRadius);\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(nameWidth + this.config.markerRadius, baselineY).lineTo(definitionX, baselineY).build()\n );\n group.append(\"path\").attr(\"class\", \"railroad-line\").attr(\n \"d\",\n new PathBuilder().moveTo(definitionX + result.dimensions.width, baselineY).lineTo(definitionX + result.dimensions.width + 10 - this.config.markerRadius, baselineY).build()\n );\n return {\n height: Math.max(40, definitionY + result.dimensions.height + this.config.padding * 2),\n width: definitionX + result.dimensions.width + 10 + this.config.markerRadius\n };\n }\n /**\n * Render all rules\n */\n renderDiagram(rules2) {\n let y = this.config.padding;\n let maxWidth = 0;\n for (const rule of rules2) {\n const result = this.renderRule(rule, y);\n y += result.height + this.config.verticalSeparation;\n maxWidth = Math.max(maxWidth, result.width);\n }\n return {\n width: maxWidth + this.config.padding * 2,\n height: y + this.config.padding\n };\n }\n};\nvar configureRailroadSvgSize = /* @__PURE__ */ __name((svg, dimensions, useMaxWidth) => {\n configureSvgSize(svg, dimensions.height, dimensions.width, useMaxWidth);\n svg.attr(\"viewBox\", `0 0 ${dimensions.width} ${dimensions.height}`);\n}, \"configureRailroadSvgSize\");\nvar draw = /* @__PURE__ */ __name((text, id, _version) => {\n log.debug(\"[Railroad] Rendering diagram\\n\" + text);\n try {\n const svg = selectSvgElement(id);\n svg.attr(\"class\", \"railroad-diagram\");\n const railroadConfig = getConfig().railroad;\n const useMaxWidth = railroadConfig?.useMaxWidth ?? true;\n const rules2 = db.getRules();\n log.debug(`[Railroad] Rendering ${rules2.length} rules`);\n if (rules2.length === 0) {\n log.warn(\"[Railroad] No rules to render\");\n configureRailroadSvgSize(svg, { height: 100, width: 200 }, useMaxWidth);\n return;\n }\n const renderer2 = new RailroadRenderer(svg, buildRailroadStyleOptions());\n const dimensions = renderer2.renderDiagram(rules2);\n configureRailroadSvgSize(svg, dimensions, useMaxWidth);\n log.debug(\"[Railroad] Render complete\");\n } catch (error) {\n log.error(\"[Railroad] Render error:\", error);\n throw error;\n }\n}, \"draw\");\nvar renderer = { draw };\n\nexport {\n db,\n getStyles,\n renderer\n};\n"],"names":["diagramTitle","accTitle","accDescription","rules","ruleMap","sanitizeText2","__name","text","sanitizeText","getConfig2","sanitizeAstNode","node","clear2","clear","log","setTitle","getTitle","addRule","rule","sanitizedRule","getRules","getRule","name","setAccTitle","getAccTitle","setAccDescription","getAccDescription","setDiagramTitle","getDiagramTitle","db","DEFAULT_RAILROAD_CONFIG","COLOR_VALUE_PATTERN","FONT_FAMILY_PATTERN","RAILROAD_STYLE_OPTION_KEYS","isRailroadStyleOptions","options","key","extractRailroadOverrides","extractThemeOverrides","_railroad","_svgId","_theme","_look","themeOverrides","sanitizeColorValue","value","fallback","normalized","sanitizeFontFamilyValue","sanitizeNumberValue","parsed","parseThemeFontSize","buildThemeDefaults","themeVariables","fontFamily","fontSize","buildRailroadStyleOptions","currentConfig","getConfig","getThemeVariables","themeDefaults","railroadOptions","getStyles","terminalFill","terminalStroke","terminalTextColor","nonTerminalFill","nonTerminalStroke","nonTerminalTextColor","lineColor","strokeWidth","markerFill","commentFill","commentStroke","commentTextColor","specialFill","specialStroke","ruleNameColor","PathBuilder","x","y","rx","ry","rotation","largeArc","sweep","RailroadRenderer","svg","config","tempText","bbox","dimensions","parent","textDim","width","height","group","elements","rendered","e","totalWidth","maxUp","maxDown","r","i","lineX1","lineX2","lineY","alternatives","a","maxWidth","totalHeight","arcRadius","arcWidth","centerY","elemY","elemCenterY","elemX","leftPath","isBelowCenter","rightPath","rightStart","rightLaneX","element","inner","arcHeight","lowerPath","lowerPath2","bypassPath","min","hasBypass","loopY","loopPath","ruleName","nameWidth","definitionX","defGroup","result","baselineY","definitionY","rules2","configureRailroadSvgSize","useMaxWidth","configureSvgSize","draw","id","_version","selectSvgElement","error","renderer"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as tt}from"./chunk-5VM5RSS4-D7wM91Xr.js";import{g as st}from"./chunk-XXDRQBXY-BJgFDi3U.js";import{s as it}from"./chunk-KBJHAD2P-CcWPaQ9M.js";import{_ as f,l as Ie,c as F,u as at,v as nt,x as Oe,d as de,N as rt,b as ut,a as lt,s as ct,g as ot,n as ht,o as dt,k as I,p as pt,q as At,i as ft,O as G}from"./mermaid.core-DdtlQk8s.js";import{f as gt}from"./chunk-2GRJ4B5K-1iB4g3Uh.js";var we=function(){var t=f(function(O,o,h,p){for(h=h||{},p=O.length;p--;h[O[p]]=o);return h},"o"),i=[1,18],a=[1,19],n=[1,20],r=[1,41],c=[1,26],u=[1,42],d=[1,24],m=[1,25],g=[1,32],N=[1,33],Ae=[1,34],b=[1,45],fe=[1,35],ge=[1,36],me=[1,37],Ce=[1,38],be=[1,27],ke=[1,28],Ee=[1,29],Te=[1,30],ye=[1,31],k=[1,44],E=[1,46],T=[1,43],y=[1,47],De=[1,9],A=[1,8,9],Z=[1,58],$=[1,59],ee=[1,60],te=[1,61],se=[1,62],Fe=[1,63],Be=[1,64],_=[1,8,9,41],Pe=[1,77],M=[1,8,9,12,13,22,39,41,44,46,68,69,70,71,72,73,74,79,81],ie=[1,8,9,12,13,18,20,22,39,41,44,46,47,60,68,69,70,71,72,73,74,79,81,86,100,102,103],ae=[13,60,86,100,102,103],U=[13,60,73,74,86,100,102,103],Me=[13,60,68,69,70,71,72,86,100,102,103],ne=[1,103],z=[1,121],Y=[1,117],K=[1,113],W=[1,119],Q=[1,114],j=[1,115],X=[1,116],q=[1,118],H=[1,120],Re=[22,50,60,61,82,86,87,88,89,90],Ge=[1,128],re=[12,39],_e=[1,8,9,39,41,44,46],ue=[1,8,9,22],Ue=[1,153],ze=[1,8,9,61],x=[1,8,9,22,50,60,61,82,86,87,88,89,90],Se={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,classLiteralName:17,DOT:18,className:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,ANNOTATION_START:46,ANNOTATION_END:47,CLASS:48,emptyBody:49,SPACE:50,MEMBER:51,SEPARATOR:52,relation:53,NOTE_FOR:54,noteText:55,NOTE:56,CLASSDEF:57,classList:58,stylesOpt:59,ALPHA:60,COMMA:61,direction_tb:62,direction_bt:63,direction_rl:64,direction_lr:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,STYLE:82,CSSCLASS:83,style:84,styleComponent:85,NUM:86,COLON:87,UNIT:88,BRKT:89,PCT:90,commentToken:91,textToken:92,graphCodeTokens:93,textNoTagsToken:94,TAGSTART:95,TAGEND:96,"==":97,"--":98,DEFAULT:99,MINUS:100,keywords:101,UNICODE_TEXT:102,BQUOTE_STR:103,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",18:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"ANNOTATION_START",47:"ANNOTATION_END",48:"CLASS",50:"SPACE",51:"MEMBER",52:"SEPARATOR",54:"NOTE_FOR",56:"NOTE",57:"CLASSDEF",60:"ALPHA",61:"COMMA",62:"direction_tb",63:"direction_bt",64:"direction_rl",65:"direction_lr",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"STYLE",83:"CSSCLASS",86:"NUM",87:"COLON",88:"UNIT",89:"BRKT",90:"PCT",93:"graphCodeTokens",95:"TAGSTART",96:"TAGEND",97:"==",98:"--",99:"DEFAULT",100:"MINUS",101:"keywords",102:"UNICODE_TEXT",103:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,1],[15,3],[15,2],[19,1],[19,3],[19,1],[19,2],[19,2],[19,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[38,3],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,3],[24,6],[24,4],[24,7],[24,6],[43,2],[43,3],[49,0],[49,2],[49,2],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[58,1],[58,3],[32,1],[32,1],[32,1],[32,1],[53,3],[53,2],[53,2],[53,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[59,1],[59,3],[84,1],[84,2],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[91,1],[91,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[94,1],[94,1],[94,1],[94,1],[16,1],[16,1],[16,1],[16,1],[17,1],[55,1]],performAction:f(function(o,h,p,l,C,e,J){var s=e.length-1;switch(C){case 8:this.$=e[s-1];break;case 9:case 10:case 13:case 15:this.$=e[s];break;case 11:case 14:this.$=e[s-2]+"."+e[s];break;case 12:case 16:this.$=e[s-1]+e[s];break;case 17:case 18:this.$=e[s-1]+"~"+e[s]+"~";break;case 19:l.addRelation(e[s]);break;case 20:e[s-1].title=l.cleanupLabel(e[s]),l.addRelation(e[s-1]);break;case 31:this.$=e[s].trim(),l.setAccTitle(this.$);break;case 32:case 33:this.$=e[s].trim(),l.setAccDescription(this.$);break;case 34:l.addClassesToNamespace(e[s-3],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 35:l.addClassesToNamespace(e[s-4],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 36:this.$=l.addNamespace(e[s]);break;case 37:this.$=l.addNamespace(e[s-1],e[s]);break;case 38:this.$=[[e[s]],[]];break;case 39:this.$=[[e[s-1]],[]];break;case 40:e[s][0].unshift(e[s-2]),this.$=e[s];break;case 41:this.$=[[],[e[s]]];break;case 42:this.$=[[],[e[s-1]]];break;case 43:e[s][1].unshift(e[s-2]),this.$=e[s];break;case 44:case 45:this.$=[[],[]];break;case 46:this.$=e[s];break;case 48:l.setCssClass(e[s-2],e[s]);break;case 49:l.addMembers(e[s-3],e[s-1]);break;case 51:l.setCssClass(e[s-5],e[s-3]),l.addMembers(e[s-5],e[s-1]);break;case 52:l.addAnnotation(e[s-3],e[s-1]);break;case 53:l.addAnnotation(e[s-6],e[s-4]),l.addMembers(e[s-6],e[s-1]);break;case 54:l.addAnnotation(e[s-5],e[s-3]);break;case 55:this.$=e[s],l.addClass(e[s]);break;case 56:this.$=e[s-1],l.addClass(e[s-1]),l.setClassLabel(e[s-1],e[s]);break;case 60:l.addAnnotation(e[s],e[s-2]);break;case 61:case 74:this.$=[e[s]];break;case 62:e[s].push(e[s-1]),this.$=e[s];break;case 63:break;case 64:l.addMember(e[s-1],l.cleanupLabel(e[s]));break;case 65:break;case 66:break;case 67:this.$={id1:e[s-2],id2:e[s],relation:e[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 68:this.$={id1:e[s-3],id2:e[s],relation:e[s-1],relationTitle1:e[s-2],relationTitle2:"none"};break;case 69:this.$={id1:e[s-3],id2:e[s],relation:e[s-2],relationTitle1:"none",relationTitle2:e[s-1]};break;case 70:this.$={id1:e[s-4],id2:e[s],relation:e[s-2],relationTitle1:e[s-3],relationTitle2:e[s-1]};break;case 71:this.$=l.addNote(e[s],e[s-1]);break;case 72:this.$=l.addNote(e[s]);break;case 73:this.$=e[s-2],l.defineClass(e[s-1],e[s]);break;case 75:this.$=e[s-2].concat([e[s]]);break;case 76:l.setDirection("TB");break;case 77:l.setDirection("BT");break;case 78:l.setDirection("RL");break;case 79:l.setDirection("LR");break;case 80:this.$={type1:e[s-2],type2:e[s],lineType:e[s-1]};break;case 81:this.$={type1:"none",type2:e[s],lineType:e[s-1]};break;case 82:this.$={type1:e[s-1],type2:"none",lineType:e[s]};break;case 83:this.$={type1:"none",type2:"none",lineType:e[s]};break;case 84:this.$=l.relationType.AGGREGATION;break;case 85:this.$=l.relationType.EXTENSION;break;case 86:this.$=l.relationType.COMPOSITION;break;case 87:this.$=l.relationType.DEPENDENCY;break;case 88:this.$=l.relationType.LOLLIPOP;break;case 89:this.$=l.lineType.LINE;break;case 90:this.$=l.lineType.DOTTED_LINE;break;case 91:case 97:this.$=e[s-2],l.setClickEvent(e[s-1],e[s]);break;case 92:case 98:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 93:this.$=e[s-2],l.setLink(e[s-1],e[s]);break;case 94:this.$=e[s-3],l.setLink(e[s-2],e[s-1],e[s]);break;case 95:this.$=e[s-3],l.setLink(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 96:this.$=e[s-4],l.setLink(e[s-3],e[s-2],e[s]),l.setTooltip(e[s-3],e[s-1]);break;case 99:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1],e[s]);break;case 100:this.$=e[s-4],l.setClickEvent(e[s-3],e[s-2],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 101:this.$=e[s-3],l.setLink(e[s-2],e[s]);break;case 102:this.$=e[s-4],l.setLink(e[s-3],e[s-1],e[s]);break;case 103:this.$=e[s-4],l.setLink(e[s-3],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 104:this.$=e[s-5],l.setLink(e[s-4],e[s-2],e[s]),l.setTooltip(e[s-4],e[s-1]);break;case 105:this.$=e[s-2],l.setCssStyle(e[s-1],e[s]);break;case 106:l.setCssClass(e[s-1],e[s]);break;case 107:this.$=[e[s]];break;case 108:e[s-2].push(e[s]),this.$=e[s-2];break;case 110:this.$=e[s-1]+e[s];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(De,[2,5],{8:[1,48]}),{8:[1,49]},t(A,[2,19],{22:[1,50]}),t(A,[2,21]),t(A,[2,22]),t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),t(A,[2,26]),t(A,[2,27]),t(A,[2,28]),t(A,[2,29]),t(A,[2,30]),{34:[1,51]},{36:[1,52]},t(A,[2,33]),t(A,[2,63],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be}),{39:[1,65]},t(_,[2,47],{39:[1,67],44:[1,66],46:[1,68]}),t(A,[2,65]),t(A,[2,66]),{16:69,60:b,86:k,100:E,102:T},{16:39,17:40,19:70,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:71,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:72,60:b,86:k,100:E,102:T,103:y},{60:[1,73]},{13:[1,74]},{16:39,17:40,19:75,60:b,86:k,100:E,102:T,103:y},{13:Pe,55:76},{58:78,60:[1,79]},t(A,[2,76]),t(A,[2,77]),t(A,[2,78]),t(A,[2,79]),t(M,[2,13],{16:39,17:40,19:81,18:[1,80],20:[1,82],60:b,86:k,100:E,102:T,103:y}),t(M,[2,15],{20:[1,83]}),{15:84,16:85,17:86,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:87,60:b,86:k,100:E,102:T,103:y},t(ie,[2,133]),t(ie,[2,134]),t(ie,[2,135]),t(ie,[2,136]),t([1,8,9,12,13,20,22,39,41,44,46,68,69,70,71,72,73,74,79,81],[2,137]),t(De,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,19:21,38:22,43:23,16:39,17:40,5:88,33:i,35:a,37:n,42:r,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y}),{5:89,10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},t(A,[2,20]),t(A,[2,31]),t(A,[2,32]),{13:[1,91],16:39,17:40,19:90,60:b,86:k,100:E,102:T,103:y},{53:92,66:56,67:57,68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be},t(A,[2,64]),{67:93,73:Fe,74:Be},t(ae,[2,83],{66:94,68:Z,69:$,70:ee,71:te,72:se}),t(U,[2,84]),t(U,[2,85]),t(U,[2,86]),t(U,[2,87]),t(U,[2,88]),t(Me,[2,89]),t(Me,[2,90]),{8:[1,96],23:99,24:97,30:98,38:22,40:95,42:r,43:23,48:u,54:g,56:N},{16:100,60:b,86:k,100:E,102:T},{41:[1,102],45:101,51:ne},{16:104,60:b,86:k,100:E,102:T},{47:[1,105]},{13:[1,106]},{13:[1,107]},{79:[1,108],81:[1,109]},{22:z,50:Y,59:110,60:K,82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},{60:[1,122]},{13:Pe,55:123},t(_,[2,72]),t(_,[2,138]),{22:z,50:Y,59:124,60:K,61:[1,125],82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},t(Re,[2,74]),{16:39,17:40,19:126,60:b,86:k,100:E,102:T,103:y},t(M,[2,16]),t(M,[2,17]),t(M,[2,18]),{11:127,12:Ge,39:[2,36]},t(re,[2,9],{16:85,17:86,15:130,18:[1,129],60:b,86:k,100:E,102:T,103:y}),t(re,[2,10]),t(_e,[2,55],{11:131,12:Ge}),t(De,[2,7]),{9:[1,132]},t(ue,[2,67]),{16:39,17:40,19:133,60:b,86:k,100:E,102:T,103:y},{13:[1,135],16:39,17:40,19:134,60:b,86:k,100:E,102:T,103:y},t(ae,[2,82],{66:136,68:Z,69:$,70:ee,71:te,72:se}),t(ae,[2,81]),{41:[1,137]},{23:99,24:97,30:98,38:22,40:138,42:r,43:23,48:u,54:g,56:N},{8:[1,139],41:[2,38]},{8:[1,140],41:[2,41]},{8:[1,141],41:[2,44]},t(_,[2,48],{39:[1,142]}),{41:[1,143]},t(_,[2,50]),{41:[2,61],45:144,51:ne},{47:[1,145]},{16:39,17:40,19:146,60:b,86:k,100:E,102:T,103:y},t(A,[2,91],{13:[1,147]}),t(A,[2,93],{13:[1,149],77:[1,148]}),t(A,[2,97],{13:[1,150],80:[1,151]}),{13:[1,152]},t(A,[2,105],{61:Ue}),t(ze,[2,107],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(x,[2,109]),t(x,[2,111]),t(x,[2,112]),t(x,[2,113]),t(x,[2,114]),t(x,[2,115]),t(x,[2,116]),t(x,[2,117]),t(x,[2,118]),t(x,[2,119]),t(A,[2,106]),t(_,[2,71]),t(A,[2,73],{61:Ue}),{60:[1,155]},t(M,[2,14]),{39:[2,37]},{13:[1,156]},{15:157,16:85,17:86,60:b,86:k,100:E,102:T,103:y},t(re,[2,12]),t(_e,[2,56]),{1:[2,4]},t(ue,[2,69]),t(ue,[2,68]),{16:39,17:40,19:158,60:b,86:k,100:E,102:T,103:y},t(ae,[2,80]),t(_,[2,34]),{41:[1,159]},{23:99,24:97,30:98,38:22,40:160,41:[2,39],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:161,41:[2,42],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:162,41:[2,45],42:r,43:23,48:u,54:g,56:N},{45:163,51:ne},t(_,[2,49]),{41:[2,62]},t(_,[2,52],{39:[1,164]}),t(A,[2,60]),t(A,[2,92]),t(A,[2,94]),t(A,[2,95],{77:[1,165]}),t(A,[2,98]),t(A,[2,99],{13:[1,166]}),t(A,[2,101],{13:[1,168],77:[1,167]}),{22:z,50:Y,60:K,82:W,84:169,85:112,86:Q,87:j,88:X,89:q,90:H},t(x,[2,110]),t(Re,[2,75]),{14:[1,170]},t(re,[2,11]),t(ue,[2,70]),t(_,[2,35]),{41:[2,40]},{41:[2,43]},{41:[2,46]},{41:[1,171]},{41:[1,173],45:172,51:ne},t(A,[2,96]),t(A,[2,100]),t(A,[2,102]),t(A,[2,103],{77:[1,174]}),t(ze,[2,108],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(_e,[2,8]),t(_,[2,51]),{41:[1,175]},t(_,[2,54]),t(A,[2,104]),t(_,[2,53])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],127:[2,37],132:[2,4],144:[2,62],160:[2,40],161:[2,43],162:[2,46]},parseError:f(function(o,h){if(h.recoverable)this.trace(o);else{var p=new Error(o);throw p.hash=h,p}},"parseError"),parse:f(function(o){var h=this,p=[0],l=[],C=[null],e=[],J=this.table,s="",ce=0,Ye=0,Je=2,Ke=1,Ze=e.slice.call(arguments,1),D=Object.create(this.lexer),w={yy:{}};for(var Ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ne)&&(w.yy[Ne]=this.yy[Ne]);D.setInput(o,w.yy),w.yy.lexer=D,w.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Le=D.yylloc;e.push(Le);var $e=D.options&&D.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function et(S){p.length=p.length-2*S,C.length=C.length-S,e.length=e.length-S}f(et,"popStack");function We(){var S;return S=l.pop()||D.lex()||Ke,typeof S!="number"&&(S instanceof Array&&(l=S,S=l.pop()),S=h.symbols_[S]||S),S}f(We,"lex");for(var B,V,L,xe,R={},oe,v,Qe,he;;){if(V=p[p.length-1],this.defaultActions[V]?L=this.defaultActions[V]:((B===null||typeof B>"u")&&(B=We()),L=J[V]&&J[V][B]),typeof L>"u"||!L.length||!L[0]){var ve="";he=[];for(oe in J[V])this.terminals_[oe]&&oe>Je&&he.push("'"+this.terminals_[oe]+"'");D.showPosition?ve="Parse error on line "+(ce+1)+`:
|
|
1
|
+
import{g as tt}from"./chunk-5VM5RSS4-DWcZ1FCf.js";import{g as st}from"./chunk-XXDRQBXY-D-sQ51mo.js";import{s as it}from"./chunk-KBJHAD2P-DjRu5gDe.js";import{_ as f,l as Ie,c as F,u as at,v as nt,x as Oe,d as de,N as rt,b as ut,a as lt,s as ct,g as ot,n as ht,o as dt,k as I,p as pt,q as At,i as ft,O as G}from"./mermaid.core-CT_PukdE.js";import{f as gt}from"./chunk-2GRJ4B5K-C4iVGbxx.js";var we=function(){var t=f(function(O,o,h,p){for(h=h||{},p=O.length;p--;h[O[p]]=o);return h},"o"),i=[1,18],a=[1,19],n=[1,20],r=[1,41],c=[1,26],u=[1,42],d=[1,24],m=[1,25],g=[1,32],N=[1,33],Ae=[1,34],b=[1,45],fe=[1,35],ge=[1,36],me=[1,37],Ce=[1,38],be=[1,27],ke=[1,28],Ee=[1,29],Te=[1,30],ye=[1,31],k=[1,44],E=[1,46],T=[1,43],y=[1,47],De=[1,9],A=[1,8,9],Z=[1,58],$=[1,59],ee=[1,60],te=[1,61],se=[1,62],Fe=[1,63],Be=[1,64],_=[1,8,9,41],Pe=[1,77],M=[1,8,9,12,13,22,39,41,44,46,68,69,70,71,72,73,74,79,81],ie=[1,8,9,12,13,18,20,22,39,41,44,46,47,60,68,69,70,71,72,73,74,79,81,86,100,102,103],ae=[13,60,86,100,102,103],U=[13,60,73,74,86,100,102,103],Me=[13,60,68,69,70,71,72,86,100,102,103],ne=[1,103],z=[1,121],Y=[1,117],K=[1,113],W=[1,119],Q=[1,114],j=[1,115],X=[1,116],q=[1,118],H=[1,120],Re=[22,50,60,61,82,86,87,88,89,90],Ge=[1,128],re=[12,39],_e=[1,8,9,39,41,44,46],ue=[1,8,9,22],Ue=[1,153],ze=[1,8,9,61],x=[1,8,9,22,50,60,61,82,86,87,88,89,90],Se={trace:f(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mermaidDoc:4,statements:5,graphConfig:6,CLASS_DIAGRAM:7,NEWLINE:8,EOF:9,statement:10,classLabel:11,SQS:12,STR:13,SQE:14,namespaceName:15,alphaNumToken:16,classLiteralName:17,DOT:18,className:19,GENERICTYPE:20,relationStatement:21,LABEL:22,namespaceStatement:23,classStatement:24,memberStatement:25,annotationStatement:26,clickStatement:27,styleStatement:28,cssClassStatement:29,noteStatement:30,classDefStatement:31,direction:32,acc_title:33,acc_title_value:34,acc_descr:35,acc_descr_value:36,acc_descr_multiline_value:37,namespaceIdentifier:38,STRUCT_START:39,classStatements:40,STRUCT_STOP:41,NAMESPACE:42,classIdentifier:43,STYLE_SEPARATOR:44,members:45,ANNOTATION_START:46,ANNOTATION_END:47,CLASS:48,emptyBody:49,SPACE:50,MEMBER:51,SEPARATOR:52,relation:53,NOTE_FOR:54,noteText:55,NOTE:56,CLASSDEF:57,classList:58,stylesOpt:59,ALPHA:60,COMMA:61,direction_tb:62,direction_bt:63,direction_rl:64,direction_lr:65,relationType:66,lineType:67,AGGREGATION:68,EXTENSION:69,COMPOSITION:70,DEPENDENCY:71,LOLLIPOP:72,LINE:73,DOTTED_LINE:74,CALLBACK:75,LINK:76,LINK_TARGET:77,CLICK:78,CALLBACK_NAME:79,CALLBACK_ARGS:80,HREF:81,STYLE:82,CSSCLASS:83,style:84,styleComponent:85,NUM:86,COLON:87,UNIT:88,BRKT:89,PCT:90,commentToken:91,textToken:92,graphCodeTokens:93,textNoTagsToken:94,TAGSTART:95,TAGEND:96,"==":97,"--":98,DEFAULT:99,MINUS:100,keywords:101,UNICODE_TEXT:102,BQUOTE_STR:103,$accept:0,$end:1},terminals_:{2:"error",7:"CLASS_DIAGRAM",8:"NEWLINE",9:"EOF",12:"SQS",13:"STR",14:"SQE",18:"DOT",20:"GENERICTYPE",22:"LABEL",33:"acc_title",34:"acc_title_value",35:"acc_descr",36:"acc_descr_value",37:"acc_descr_multiline_value",39:"STRUCT_START",41:"STRUCT_STOP",42:"NAMESPACE",44:"STYLE_SEPARATOR",46:"ANNOTATION_START",47:"ANNOTATION_END",48:"CLASS",50:"SPACE",51:"MEMBER",52:"SEPARATOR",54:"NOTE_FOR",56:"NOTE",57:"CLASSDEF",60:"ALPHA",61:"COMMA",62:"direction_tb",63:"direction_bt",64:"direction_rl",65:"direction_lr",68:"AGGREGATION",69:"EXTENSION",70:"COMPOSITION",71:"DEPENDENCY",72:"LOLLIPOP",73:"LINE",74:"DOTTED_LINE",75:"CALLBACK",76:"LINK",77:"LINK_TARGET",78:"CLICK",79:"CALLBACK_NAME",80:"CALLBACK_ARGS",81:"HREF",82:"STYLE",83:"CSSCLASS",86:"NUM",87:"COLON",88:"UNIT",89:"BRKT",90:"PCT",93:"graphCodeTokens",95:"TAGSTART",96:"TAGEND",97:"==",98:"--",99:"DEFAULT",100:"MINUS",101:"keywords",102:"UNICODE_TEXT",103:"BQUOTE_STR"},productions_:[0,[3,1],[3,1],[4,1],[6,4],[5,1],[5,2],[5,3],[11,3],[15,1],[15,1],[15,3],[15,2],[19,1],[19,3],[19,1],[19,2],[19,2],[19,2],[10,1],[10,2],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,1],[10,2],[10,2],[10,1],[23,4],[23,5],[38,2],[38,3],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[40,1],[40,2],[40,3],[24,1],[24,3],[24,4],[24,3],[24,6],[24,4],[24,7],[24,6],[43,2],[43,3],[49,0],[49,2],[49,2],[26,4],[45,1],[45,2],[25,1],[25,2],[25,1],[25,1],[21,3],[21,4],[21,4],[21,5],[30,3],[30,2],[31,3],[58,1],[58,3],[32,1],[32,1],[32,1],[32,1],[53,3],[53,2],[53,2],[53,1],[66,1],[66,1],[66,1],[66,1],[66,1],[67,1],[67,1],[27,3],[27,4],[27,3],[27,4],[27,4],[27,5],[27,3],[27,4],[27,4],[27,5],[27,4],[27,5],[27,5],[27,6],[28,3],[29,3],[59,1],[59,3],[84,1],[84,2],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[85,1],[91,1],[91,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[92,1],[94,1],[94,1],[94,1],[94,1],[16,1],[16,1],[16,1],[16,1],[17,1],[55,1]],performAction:f(function(o,h,p,l,C,e,J){var s=e.length-1;switch(C){case 8:this.$=e[s-1];break;case 9:case 10:case 13:case 15:this.$=e[s];break;case 11:case 14:this.$=e[s-2]+"."+e[s];break;case 12:case 16:this.$=e[s-1]+e[s];break;case 17:case 18:this.$=e[s-1]+"~"+e[s]+"~";break;case 19:l.addRelation(e[s]);break;case 20:e[s-1].title=l.cleanupLabel(e[s]),l.addRelation(e[s-1]);break;case 31:this.$=e[s].trim(),l.setAccTitle(this.$);break;case 32:case 33:this.$=e[s].trim(),l.setAccDescription(this.$);break;case 34:l.addClassesToNamespace(e[s-3],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 35:l.addClassesToNamespace(e[s-4],e[s-1][0],e[s-1][1]),l.popNamespace();break;case 36:this.$=l.addNamespace(e[s]);break;case 37:this.$=l.addNamespace(e[s-1],e[s]);break;case 38:this.$=[[e[s]],[]];break;case 39:this.$=[[e[s-1]],[]];break;case 40:e[s][0].unshift(e[s-2]),this.$=e[s];break;case 41:this.$=[[],[e[s]]];break;case 42:this.$=[[],[e[s-1]]];break;case 43:e[s][1].unshift(e[s-2]),this.$=e[s];break;case 44:case 45:this.$=[[],[]];break;case 46:this.$=e[s];break;case 48:l.setCssClass(e[s-2],e[s]);break;case 49:l.addMembers(e[s-3],e[s-1]);break;case 51:l.setCssClass(e[s-5],e[s-3]),l.addMembers(e[s-5],e[s-1]);break;case 52:l.addAnnotation(e[s-3],e[s-1]);break;case 53:l.addAnnotation(e[s-6],e[s-4]),l.addMembers(e[s-6],e[s-1]);break;case 54:l.addAnnotation(e[s-5],e[s-3]);break;case 55:this.$=e[s],l.addClass(e[s]);break;case 56:this.$=e[s-1],l.addClass(e[s-1]),l.setClassLabel(e[s-1],e[s]);break;case 60:l.addAnnotation(e[s],e[s-2]);break;case 61:case 74:this.$=[e[s]];break;case 62:e[s].push(e[s-1]),this.$=e[s];break;case 63:break;case 64:l.addMember(e[s-1],l.cleanupLabel(e[s]));break;case 65:break;case 66:break;case 67:this.$={id1:e[s-2],id2:e[s],relation:e[s-1],relationTitle1:"none",relationTitle2:"none"};break;case 68:this.$={id1:e[s-3],id2:e[s],relation:e[s-1],relationTitle1:e[s-2],relationTitle2:"none"};break;case 69:this.$={id1:e[s-3],id2:e[s],relation:e[s-2],relationTitle1:"none",relationTitle2:e[s-1]};break;case 70:this.$={id1:e[s-4],id2:e[s],relation:e[s-2],relationTitle1:e[s-3],relationTitle2:e[s-1]};break;case 71:this.$=l.addNote(e[s],e[s-1]);break;case 72:this.$=l.addNote(e[s]);break;case 73:this.$=e[s-2],l.defineClass(e[s-1],e[s]);break;case 75:this.$=e[s-2].concat([e[s]]);break;case 76:l.setDirection("TB");break;case 77:l.setDirection("BT");break;case 78:l.setDirection("RL");break;case 79:l.setDirection("LR");break;case 80:this.$={type1:e[s-2],type2:e[s],lineType:e[s-1]};break;case 81:this.$={type1:"none",type2:e[s],lineType:e[s-1]};break;case 82:this.$={type1:e[s-1],type2:"none",lineType:e[s]};break;case 83:this.$={type1:"none",type2:"none",lineType:e[s]};break;case 84:this.$=l.relationType.AGGREGATION;break;case 85:this.$=l.relationType.EXTENSION;break;case 86:this.$=l.relationType.COMPOSITION;break;case 87:this.$=l.relationType.DEPENDENCY;break;case 88:this.$=l.relationType.LOLLIPOP;break;case 89:this.$=l.lineType.LINE;break;case 90:this.$=l.lineType.DOTTED_LINE;break;case 91:case 97:this.$=e[s-2],l.setClickEvent(e[s-1],e[s]);break;case 92:case 98:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 93:this.$=e[s-2],l.setLink(e[s-1],e[s]);break;case 94:this.$=e[s-3],l.setLink(e[s-2],e[s-1],e[s]);break;case 95:this.$=e[s-3],l.setLink(e[s-2],e[s-1]),l.setTooltip(e[s-2],e[s]);break;case 96:this.$=e[s-4],l.setLink(e[s-3],e[s-2],e[s]),l.setTooltip(e[s-3],e[s-1]);break;case 99:this.$=e[s-3],l.setClickEvent(e[s-2],e[s-1],e[s]);break;case 100:this.$=e[s-4],l.setClickEvent(e[s-3],e[s-2],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 101:this.$=e[s-3],l.setLink(e[s-2],e[s]);break;case 102:this.$=e[s-4],l.setLink(e[s-3],e[s-1],e[s]);break;case 103:this.$=e[s-4],l.setLink(e[s-3],e[s-1]),l.setTooltip(e[s-3],e[s]);break;case 104:this.$=e[s-5],l.setLink(e[s-4],e[s-2],e[s]),l.setTooltip(e[s-4],e[s-1]);break;case 105:this.$=e[s-2],l.setCssStyle(e[s-1],e[s]);break;case 106:l.setCssClass(e[s-1],e[s]);break;case 107:this.$=[e[s]];break;case 108:e[s-2].push(e[s]),this.$=e[s-2];break;case 110:this.$=e[s-1]+e[s];break}},"anonymous"),table:[{3:1,4:2,5:3,6:4,7:[1,6],10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},{1:[3]},{1:[2,1]},{1:[2,2]},{1:[2,3]},t(De,[2,5],{8:[1,48]}),{8:[1,49]},t(A,[2,19],{22:[1,50]}),t(A,[2,21]),t(A,[2,22]),t(A,[2,23]),t(A,[2,24]),t(A,[2,25]),t(A,[2,26]),t(A,[2,27]),t(A,[2,28]),t(A,[2,29]),t(A,[2,30]),{34:[1,51]},{36:[1,52]},t(A,[2,33]),t(A,[2,63],{53:53,66:56,67:57,13:[1,54],22:[1,55],68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be}),{39:[1,65]},t(_,[2,47],{39:[1,67],44:[1,66],46:[1,68]}),t(A,[2,65]),t(A,[2,66]),{16:69,60:b,86:k,100:E,102:T},{16:39,17:40,19:70,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:71,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:72,60:b,86:k,100:E,102:T,103:y},{60:[1,73]},{13:[1,74]},{16:39,17:40,19:75,60:b,86:k,100:E,102:T,103:y},{13:Pe,55:76},{58:78,60:[1,79]},t(A,[2,76]),t(A,[2,77]),t(A,[2,78]),t(A,[2,79]),t(M,[2,13],{16:39,17:40,19:81,18:[1,80],20:[1,82],60:b,86:k,100:E,102:T,103:y}),t(M,[2,15],{20:[1,83]}),{15:84,16:85,17:86,60:b,86:k,100:E,102:T,103:y},{16:39,17:40,19:87,60:b,86:k,100:E,102:T,103:y},t(ie,[2,133]),t(ie,[2,134]),t(ie,[2,135]),t(ie,[2,136]),t([1,8,9,12,13,20,22,39,41,44,46,68,69,70,71,72,73,74,79,81],[2,137]),t(De,[2,6],{10:5,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,19:21,38:22,43:23,16:39,17:40,5:88,33:i,35:a,37:n,42:r,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y}),{5:89,10:5,16:39,17:40,19:21,21:7,23:8,24:9,25:10,26:11,27:12,28:13,29:14,30:15,31:16,32:17,33:i,35:a,37:n,38:22,42:r,43:23,46:c,48:u,51:d,52:m,54:g,56:N,57:Ae,60:b,62:fe,63:ge,64:me,65:Ce,75:be,76:ke,78:Ee,82:Te,83:ye,86:k,100:E,102:T,103:y},t(A,[2,20]),t(A,[2,31]),t(A,[2,32]),{13:[1,91],16:39,17:40,19:90,60:b,86:k,100:E,102:T,103:y},{53:92,66:56,67:57,68:Z,69:$,70:ee,71:te,72:se,73:Fe,74:Be},t(A,[2,64]),{67:93,73:Fe,74:Be},t(ae,[2,83],{66:94,68:Z,69:$,70:ee,71:te,72:se}),t(U,[2,84]),t(U,[2,85]),t(U,[2,86]),t(U,[2,87]),t(U,[2,88]),t(Me,[2,89]),t(Me,[2,90]),{8:[1,96],23:99,24:97,30:98,38:22,40:95,42:r,43:23,48:u,54:g,56:N},{16:100,60:b,86:k,100:E,102:T},{41:[1,102],45:101,51:ne},{16:104,60:b,86:k,100:E,102:T},{47:[1,105]},{13:[1,106]},{13:[1,107]},{79:[1,108],81:[1,109]},{22:z,50:Y,59:110,60:K,82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},{60:[1,122]},{13:Pe,55:123},t(_,[2,72]),t(_,[2,138]),{22:z,50:Y,59:124,60:K,61:[1,125],82:W,84:111,85:112,86:Q,87:j,88:X,89:q,90:H},t(Re,[2,74]),{16:39,17:40,19:126,60:b,86:k,100:E,102:T,103:y},t(M,[2,16]),t(M,[2,17]),t(M,[2,18]),{11:127,12:Ge,39:[2,36]},t(re,[2,9],{16:85,17:86,15:130,18:[1,129],60:b,86:k,100:E,102:T,103:y}),t(re,[2,10]),t(_e,[2,55],{11:131,12:Ge}),t(De,[2,7]),{9:[1,132]},t(ue,[2,67]),{16:39,17:40,19:133,60:b,86:k,100:E,102:T,103:y},{13:[1,135],16:39,17:40,19:134,60:b,86:k,100:E,102:T,103:y},t(ae,[2,82],{66:136,68:Z,69:$,70:ee,71:te,72:se}),t(ae,[2,81]),{41:[1,137]},{23:99,24:97,30:98,38:22,40:138,42:r,43:23,48:u,54:g,56:N},{8:[1,139],41:[2,38]},{8:[1,140],41:[2,41]},{8:[1,141],41:[2,44]},t(_,[2,48],{39:[1,142]}),{41:[1,143]},t(_,[2,50]),{41:[2,61],45:144,51:ne},{47:[1,145]},{16:39,17:40,19:146,60:b,86:k,100:E,102:T,103:y},t(A,[2,91],{13:[1,147]}),t(A,[2,93],{13:[1,149],77:[1,148]}),t(A,[2,97],{13:[1,150],80:[1,151]}),{13:[1,152]},t(A,[2,105],{61:Ue}),t(ze,[2,107],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(x,[2,109]),t(x,[2,111]),t(x,[2,112]),t(x,[2,113]),t(x,[2,114]),t(x,[2,115]),t(x,[2,116]),t(x,[2,117]),t(x,[2,118]),t(x,[2,119]),t(A,[2,106]),t(_,[2,71]),t(A,[2,73],{61:Ue}),{60:[1,155]},t(M,[2,14]),{39:[2,37]},{13:[1,156]},{15:157,16:85,17:86,60:b,86:k,100:E,102:T,103:y},t(re,[2,12]),t(_e,[2,56]),{1:[2,4]},t(ue,[2,69]),t(ue,[2,68]),{16:39,17:40,19:158,60:b,86:k,100:E,102:T,103:y},t(ae,[2,80]),t(_,[2,34]),{41:[1,159]},{23:99,24:97,30:98,38:22,40:160,41:[2,39],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:161,41:[2,42],42:r,43:23,48:u,54:g,56:N},{23:99,24:97,30:98,38:22,40:162,41:[2,45],42:r,43:23,48:u,54:g,56:N},{45:163,51:ne},t(_,[2,49]),{41:[2,62]},t(_,[2,52],{39:[1,164]}),t(A,[2,60]),t(A,[2,92]),t(A,[2,94]),t(A,[2,95],{77:[1,165]}),t(A,[2,98]),t(A,[2,99],{13:[1,166]}),t(A,[2,101],{13:[1,168],77:[1,167]}),{22:z,50:Y,60:K,82:W,84:169,85:112,86:Q,87:j,88:X,89:q,90:H},t(x,[2,110]),t(Re,[2,75]),{14:[1,170]},t(re,[2,11]),t(ue,[2,70]),t(_,[2,35]),{41:[2,40]},{41:[2,43]},{41:[2,46]},{41:[1,171]},{41:[1,173],45:172,51:ne},t(A,[2,96]),t(A,[2,100]),t(A,[2,102]),t(A,[2,103],{77:[1,174]}),t(ze,[2,108],{85:154,22:z,50:Y,60:K,82:W,86:Q,87:j,88:X,89:q,90:H}),t(_e,[2,8]),t(_,[2,51]),{41:[1,175]},t(_,[2,54]),t(A,[2,104]),t(_,[2,53])],defaultActions:{2:[2,1],3:[2,2],4:[2,3],127:[2,37],132:[2,4],144:[2,62],160:[2,40],161:[2,43],162:[2,46]},parseError:f(function(o,h){if(h.recoverable)this.trace(o);else{var p=new Error(o);throw p.hash=h,p}},"parseError"),parse:f(function(o){var h=this,p=[0],l=[],C=[null],e=[],J=this.table,s="",ce=0,Ye=0,Je=2,Ke=1,Ze=e.slice.call(arguments,1),D=Object.create(this.lexer),w={yy:{}};for(var Ne in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Ne)&&(w.yy[Ne]=this.yy[Ne]);D.setInput(o,w.yy),w.yy.lexer=D,w.yy.parser=this,typeof D.yylloc>"u"&&(D.yylloc={});var Le=D.yylloc;e.push(Le);var $e=D.options&&D.options.ranges;typeof w.yy.parseError=="function"?this.parseError=w.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function et(S){p.length=p.length-2*S,C.length=C.length-S,e.length=e.length-S}f(et,"popStack");function We(){var S;return S=l.pop()||D.lex()||Ke,typeof S!="number"&&(S instanceof Array&&(l=S,S=l.pop()),S=h.symbols_[S]||S),S}f(We,"lex");for(var B,V,L,xe,R={},oe,v,Qe,he;;){if(V=p[p.length-1],this.defaultActions[V]?L=this.defaultActions[V]:((B===null||typeof B>"u")&&(B=We()),L=J[V]&&J[V][B]),typeof L>"u"||!L.length||!L[0]){var ve="";he=[];for(oe in J[V])this.terminals_[oe]&&oe>Je&&he.push("'"+this.terminals_[oe]+"'");D.showPosition?ve="Parse error on line "+(ce+1)+`:
|
|
2
2
|
`+D.showPosition()+`
|
|
3
3
|
Expecting `+he.join(", ")+", got '"+(this.terminals_[B]||B)+"'":ve="Parse error on line "+(ce+1)+": Unexpected "+(B==Ke?"end of input":"'"+(this.terminals_[B]||B)+"'"),this.parseError(ve,{text:D.match,token:this.terminals_[B]||B,line:D.yylineno,loc:Le,expected:he})}if(L[0]instanceof Array&&L.length>1)throw new Error("Parse Error: multiple actions possible at state: "+V+", token: "+B);switch(L[0]){case 1:p.push(B),C.push(D.yytext),e.push(D.yylloc),p.push(L[1]),B=null,Ye=D.yyleng,s=D.yytext,ce=D.yylineno,Le=D.yylloc;break;case 2:if(v=this.productions_[L[1]][1],R.$=C[C.length-v],R._$={first_line:e[e.length-(v||1)].first_line,last_line:e[e.length-1].last_line,first_column:e[e.length-(v||1)].first_column,last_column:e[e.length-1].last_column},$e&&(R._$.range=[e[e.length-(v||1)].range[0],e[e.length-1].range[1]]),xe=this.performAction.apply(R,[s,Ye,ce,w.yy,L[1],C,e].concat(Ze)),typeof xe<"u")return xe;v&&(p=p.slice(0,-1*v*2),C=C.slice(0,-1*v),e=e.slice(0,-1*v)),p.push(this.productions_[L[1]][0]),C.push(R.$),e.push(R._$),Qe=J[p[p.length-2]][p[p.length-1]],p.push(Qe);break;case 3:return!0}}return!0},"parse")},He=function(){var O={EOF:1,parseError:f(function(h,p){if(this.yy.parser)this.yy.parser.parseError(h,p);else throw new Error(h)},"parseError"),setInput:f(function(o,h){return this.yy=h||this.yy||{},this._input=o,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:f(function(){var o=this._input[0];this.yytext+=o,this.yyleng++,this.offset++,this.match+=o,this.matched+=o;var h=o.match(/(?:\r\n?|\n).*/g);return h?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),o},"input"),unput:f(function(o){var h=o.length,p=o.split(/(?:\r\n?|\n)/g);this._input=o+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-h),this.offset-=h;var l=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),p.length-1&&(this.yylineno-=p.length-1);var C=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:p?(p.length===l.length?this.yylloc.first_column:0)+l[l.length-p.length].length-p[0].length:this.yylloc.first_column-h},this.options.ranges&&(this.yylloc.range=[C[0],C[0]+this.yyleng-h]),this.yyleng=this.yytext.length,this},"unput"),more:f(function(){return this._more=!0,this},"more"),reject:f(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
4
4
|
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:f(function(o){this.unput(this.match.slice(o))},"less"),pastInput:f(function(){var o=this.matched.substr(0,this.matched.length-this.match.length);return(o.length>20?"...":"")+o.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:f(function(){var o=this.match;return o.length<20&&(o+=this._input.substr(0,20-o.length)),(o.substr(0,20)+(o.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:f(function(){var o=this.pastInput(),h=new Array(o.length+1).join("-");return o+this.upcomingInput()+`
|
|
@@ -204,4 +204,4 @@ g.classGroup line {
|
|
|
204
204
|
}
|
|
205
205
|
${tt()}
|
|
206
206
|
`,"getStyles"),St=mt,Ct=f((t,i="TB")=>{if(!t.doc)return i;let a=i;for(const n of t.doc)n.stmt==="dir"&&(a=n.value);return a},"getDir"),bt=f(function(t,i){return i.db.getClasses()},"getClasses"),kt=f(async function(t,i,a,n){Ie.info("REF0:"),Ie.info("Drawing class diagram (v3)",i);const{securityLevel:r,state:c,layout:u}=F();n.db.setDiagramId(i);const d=n.db.getData(),m=st(i,r);d.type=n.type,d.layoutAlgorithm=at(u),d.nodeSpacing=c?.nodeSpacing||50,d.rankSpacing=c?.rankSpacing||50,d.markers=["aggregation","extension","composition","dependency","lollipop"],d.diagramId=i,await nt(d,m);const g=8;Oe.insertTitle(m,"classDiagramTitleText",c?.titleTopMargin??25,n.db.getDiagramTitle()),it(m,g,"classDiagram",c?.useMaxWidth??!0)},"draw"),Nt={getClasses:bt,draw:kt,getDir:Ct};export{_t as C,Bt as a,Nt as c,St as s};
|
|
207
|
-
//# sourceMappingURL=chunk-GF5L2VYU-
|
|
207
|
+
//# sourceMappingURL=chunk-GF5L2VYU-CFdwjOhW.js.map
|