@aiquants/markdown 1.6.1 → 1.8.0
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/{abnfDiagram-VRR7QNED-DVICL1SS.cjs → abnfDiagram-VRR7QNED-BKvRUGcR.cjs} +2 -2
- package/dist/{abnfDiagram-VRR7QNED-DVICL1SS.cjs.map → abnfDiagram-VRR7QNED-BKvRUGcR.cjs.map} +1 -1
- package/dist/{abnfDiagram-VRR7QNED-RZnm_ZZC.js → abnfDiagram-VRR7QNED-C-27Yna6.js} +4 -4
- package/dist/{abnfDiagram-VRR7QNED-RZnm_ZZC.js.map → abnfDiagram-VRR7QNED-C-27Yna6.js.map} +1 -1
- package/dist/{arc-BmnitkkN.cjs → arc-CUOoCqkh.cjs} +2 -2
- package/dist/{arc-BmnitkkN.cjs.map → arc-CUOoCqkh.cjs.map} +1 -1
- package/dist/{arc-C-DBDbuo.js → arc-UxDDNW0x.js} +2 -2
- package/dist/{arc-C-DBDbuo.js.map → arc-UxDDNW0x.js.map} +1 -1
- package/dist/{architectureDiagram-ZJ3FMSHR-_FBgGrSC.js → architectureDiagram-ZJ3FMSHR-Ch5Nf0Ae.js} +3 -3
- package/dist/{architectureDiagram-ZJ3FMSHR-_FBgGrSC.js.map → architectureDiagram-ZJ3FMSHR-Ch5Nf0Ae.js.map} +1 -1
- package/dist/{architectureDiagram-ZJ3FMSHR-CCAJeMnU.cjs → architectureDiagram-ZJ3FMSHR-kO8dZQKK.cjs} +2 -2
- package/dist/{architectureDiagram-ZJ3FMSHR-CCAJeMnU.cjs.map → architectureDiagram-ZJ3FMSHR-kO8dZQKK.cjs.map} +1 -1
- package/dist/{blockDiagram-677ZJIJ3-W3Ryiu2c.cjs → blockDiagram-677ZJIJ3-BbjxBeAD.cjs} +2 -2
- package/dist/{blockDiagram-677ZJIJ3-W3Ryiu2c.cjs.map → blockDiagram-677ZJIJ3-BbjxBeAD.cjs.map} +1 -1
- package/dist/{blockDiagram-677ZJIJ3-CLkOcrVQ.js → blockDiagram-677ZJIJ3-CuCBVVNa.js} +4 -4
- package/dist/{blockDiagram-677ZJIJ3-CLkOcrVQ.js.map → blockDiagram-677ZJIJ3-CuCBVVNa.js.map} +1 -1
- package/dist/{c4Diagram-LMCZKHZV-FhSkJ7-q.js → c4Diagram-LMCZKHZV-BdJV5ivG.js} +3 -3
- package/dist/{c4Diagram-LMCZKHZV-FhSkJ7-q.js.map → c4Diagram-LMCZKHZV-BdJV5ivG.js.map} +1 -1
- package/dist/{c4Diagram-LMCZKHZV-B--cDHXw.cjs → c4Diagram-LMCZKHZV-BgTfc_W8.cjs} +2 -2
- package/dist/{c4Diagram-LMCZKHZV-B--cDHXw.cjs.map → c4Diagram-LMCZKHZV-BgTfc_W8.cjs.map} +1 -1
- package/dist/channel-BaZK7NhX.js +6 -0
- package/dist/{channel-B6gYWXtQ.js.map → channel-BaZK7NhX.js.map} +1 -1
- package/dist/channel-DcZBUEY6.cjs +2 -0
- package/dist/{channel-CZceKK2b.cjs.map → channel-DcZBUEY6.cjs.map} +1 -1
- package/dist/{chunk-2Q5K7J3B-CLA9LZQs.js → chunk-2Q5K7J3B-CSlHTmMh.js} +2 -2
- package/dist/{chunk-2Q5K7J3B-CLA9LZQs.js.map → chunk-2Q5K7J3B-CSlHTmMh.js.map} +1 -1
- package/dist/{chunk-2Q5K7J3B-UoZ4tiIj.cjs → chunk-2Q5K7J3B-D9s6eCoM.cjs} +2 -2
- package/dist/{chunk-2Q5K7J3B-UoZ4tiIj.cjs.map → chunk-2Q5K7J3B-D9s6eCoM.cjs.map} +1 -1
- package/dist/{chunk-32BRIVSS-CrDpazxa.js → chunk-32BRIVSS-CXH5EQUk.js} +2 -2
- package/dist/{chunk-32BRIVSS-CrDpazxa.js.map → chunk-32BRIVSS-CXH5EQUk.js.map} +1 -1
- package/dist/{chunk-32BRIVSS-CyUS1-2x.cjs → chunk-32BRIVSS-D2F2B9TZ.cjs} +2 -2
- package/dist/{chunk-32BRIVSS-CyUS1-2x.cjs.map → chunk-32BRIVSS-D2F2B9TZ.cjs.map} +1 -1
- package/dist/{chunk-5VM5RSS4-DnTlok-Z.js → chunk-5VM5RSS4-BhTMtA9l.js} +2 -2
- package/dist/{chunk-5VM5RSS4-DnTlok-Z.js.map → chunk-5VM5RSS4-BhTMtA9l.js.map} +1 -1
- package/dist/{chunk-5VM5RSS4-DCM2evxn.cjs → chunk-5VM5RSS4-CxjaLXsB.cjs} +2 -2
- package/dist/{chunk-5VM5RSS4-DCM2evxn.cjs.map → chunk-5VM5RSS4-CxjaLXsB.cjs.map} +1 -1
- package/dist/{chunk-EX3LRPZG-CDcYLfTb.cjs → chunk-EX3LRPZG-BCQ_eMbL.cjs} +2 -2
- package/dist/{chunk-EX3LRPZG-CDcYLfTb.cjs.map → chunk-EX3LRPZG-BCQ_eMbL.cjs.map} +1 -1
- package/dist/{chunk-EX3LRPZG-BXZN3BP6.js → chunk-EX3LRPZG-BOcBE4jP.js} +5 -5
- package/dist/{chunk-EX3LRPZG-BXZN3BP6.js.map → chunk-EX3LRPZG-BOcBE4jP.js.map} +1 -1
- package/dist/{chunk-JWPE2WC7-BOZsBb5v.js → chunk-JWPE2WC7-C20BXRVN.js} +2 -2
- package/dist/{chunk-JWPE2WC7-BOZsBb5v.js.map → chunk-JWPE2WC7-C20BXRVN.js.map} +1 -1
- package/dist/{chunk-JWPE2WC7-u2Y2E01t.cjs → chunk-JWPE2WC7-CLCAyxUO.cjs} +2 -2
- package/dist/{chunk-JWPE2WC7-u2Y2E01t.cjs.map → chunk-JWPE2WC7-CLCAyxUO.cjs.map} +1 -1
- package/dist/{chunk-MOJQB5TN-CODLoYka.js → chunk-MOJQB5TN-B_C5dwTy.js} +2 -2
- package/dist/{chunk-MOJQB5TN-CODLoYka.js.map → chunk-MOJQB5TN-B_C5dwTy.js.map} +1 -1
- package/dist/{chunk-MOJQB5TN-D9XmnzfN.cjs → chunk-MOJQB5TN-Bbpbi357.cjs} +2 -2
- package/dist/{chunk-MOJQB5TN-D9XmnzfN.cjs.map → chunk-MOJQB5TN-Bbpbi357.cjs.map} +1 -1
- package/dist/{chunk-PUDLZKDR-Vzafz0p_.js → chunk-PUDLZKDR-C0EKSRvH.js} +7 -7
- package/dist/{chunk-PUDLZKDR-Vzafz0p_.js.map → chunk-PUDLZKDR-C0EKSRvH.js.map} +1 -1
- package/dist/{chunk-PUDLZKDR-DIlJh7gW.cjs → chunk-PUDLZKDR-Cpp-nasK.cjs} +2 -2
- package/dist/{chunk-PUDLZKDR-DIlJh7gW.cjs.map → chunk-PUDLZKDR-Cpp-nasK.cjs.map} +1 -1
- package/dist/{chunk-RYQCIY6F-D7RgZ_ri.js → chunk-RYQCIY6F-BuIkG6A2.js} +2 -2
- package/dist/{chunk-RYQCIY6F-D7RgZ_ri.js.map → chunk-RYQCIY6F-BuIkG6A2.js.map} +1 -1
- package/dist/{chunk-RYQCIY6F-BgbNR_-2.cjs → chunk-RYQCIY6F-he5fUSYo.cjs} +2 -2
- package/dist/{chunk-RYQCIY6F-BgbNR_-2.cjs.map → chunk-RYQCIY6F-he5fUSYo.cjs.map} +1 -1
- package/dist/{chunk-V7JOEXUC-BtRbpCVo.cjs → chunk-V7JOEXUC-BcBXzffo.cjs} +2 -2
- package/dist/{chunk-V7JOEXUC-BtRbpCVo.cjs.map → chunk-V7JOEXUC-BcBXzffo.cjs.map} +1 -1
- package/dist/{chunk-V7JOEXUC-Csiot9oO.js → chunk-V7JOEXUC-DWnZRQBl.js} +6 -6
- package/dist/{chunk-V7JOEXUC-Csiot9oO.js.map → chunk-V7JOEXUC-DWnZRQBl.js.map} +1 -1
- package/dist/{chunk-VR4S4FIN-DH6f42Mu.js → chunk-VR4S4FIN-BWCLM0a0.js} +2 -2
- package/dist/{chunk-VR4S4FIN-DH6f42Mu.js.map → chunk-VR4S4FIN-BWCLM0a0.js.map} +1 -1
- package/dist/{chunk-VR4S4FIN-y0SDmoh2.cjs → chunk-VR4S4FIN-Bd3wwAe8.cjs} +2 -2
- package/dist/{chunk-VR4S4FIN-y0SDmoh2.cjs.map → chunk-VR4S4FIN-Bd3wwAe8.cjs.map} +1 -1
- package/dist/{chunk-XXDRQBXY-rC42S5QT.cjs → chunk-XXDRQBXY-C2UaLfce.cjs} +2 -2
- package/dist/{chunk-XXDRQBXY-rC42S5QT.cjs.map → chunk-XXDRQBXY-C2UaLfce.cjs.map} +1 -1
- package/dist/{chunk-XXDRQBXY-Csac6tCf.js → chunk-XXDRQBXY-qt9x9red.js} +2 -2
- package/dist/{chunk-XXDRQBXY-Csac6tCf.js.map → chunk-XXDRQBXY-qt9x9red.js.map} +1 -1
- package/dist/{classDiagram-OUVF2IWQ-Dd9EcDqY.js → classDiagram-OUVF2IWQ-B0lJPbAq.js} +3 -3
- package/dist/{classDiagram-OUVF2IWQ-Dd9EcDqY.js.map → classDiagram-OUVF2IWQ-B0lJPbAq.js.map} +1 -1
- package/dist/{classDiagram-OUVF2IWQ-Vq3KKBUy.cjs → classDiagram-OUVF2IWQ-BoGCNSIO.cjs} +2 -2
- package/dist/{classDiagram-OUVF2IWQ-Vq3KKBUy.cjs.map → classDiagram-OUVF2IWQ-BoGCNSIO.cjs.map} +1 -1
- package/dist/{classDiagram-v2-EOCWNBFH-Dd9EcDqY.js → classDiagram-v2-EOCWNBFH-B0lJPbAq.js} +3 -3
- package/dist/{classDiagram-v2-EOCWNBFH-Dd9EcDqY.js.map → classDiagram-v2-EOCWNBFH-B0lJPbAq.js.map} +1 -1
- package/dist/{classDiagram-v2-EOCWNBFH-Vq3KKBUy.cjs → classDiagram-v2-EOCWNBFH-BoGCNSIO.cjs} +2 -2
- package/dist/{classDiagram-v2-EOCWNBFH-Vq3KKBUy.cjs.map → classDiagram-v2-EOCWNBFH-BoGCNSIO.cjs.map} +1 -1
- package/dist/{cose-bilkent-JH36ORCC-BAYFBSur.js → cose-bilkent-JH36ORCC-BXH9dl_0.js} +2 -2
- package/dist/{cose-bilkent-JH36ORCC-BAYFBSur.js.map → cose-bilkent-JH36ORCC-BXH9dl_0.js.map} +1 -1
- package/dist/{cose-bilkent-JH36ORCC-CsHaaKi1.cjs → cose-bilkent-JH36ORCC-DRBzHIcA.cjs} +2 -2
- package/dist/{cose-bilkent-JH36ORCC-CsHaaKi1.cjs.map → cose-bilkent-JH36ORCC-DRBzHIcA.cjs.map} +1 -1
- package/dist/{cynefinDiagram-TSTJHNR4-CSZqIj_l.js → cynefinDiagram-TSTJHNR4-2jnqksgG.js} +3 -3
- package/dist/{cynefinDiagram-TSTJHNR4-CSZqIj_l.js.map → cynefinDiagram-TSTJHNR4-2jnqksgG.js.map} +1 -1
- package/dist/{cynefinDiagram-TSTJHNR4-BEPBV57_.cjs → cynefinDiagram-TSTJHNR4-Ge9B88rS.cjs} +2 -2
- package/dist/{cynefinDiagram-TSTJHNR4-BEPBV57_.cjs.map → cynefinDiagram-TSTJHNR4-Ge9B88rS.cjs.map} +1 -1
- package/dist/{dagre-VKFMJZFB-D9fBL_yM.js → dagre-VKFMJZFB-BqLynzOx.js} +3 -3
- package/dist/{dagre-VKFMJZFB-D9fBL_yM.js.map → dagre-VKFMJZFB-BqLynzOx.js.map} +1 -1
- package/dist/{dagre-VKFMJZFB-BlRE-U3S.cjs → dagre-VKFMJZFB-C7QheUvc.cjs} +2 -2
- package/dist/{dagre-VKFMJZFB-BlRE-U3S.cjs.map → dagre-VKFMJZFB-C7QheUvc.cjs.map} +1 -1
- package/dist/{diagram-FQU43EPY-Di26xB9f.cjs → diagram-FQU43EPY-CSPyECaU.cjs} +2 -2
- package/dist/{diagram-FQU43EPY-Di26xB9f.cjs.map → diagram-FQU43EPY-CSPyECaU.cjs.map} +1 -1
- package/dist/{diagram-FQU43EPY-DPR8KMs9.js → diagram-FQU43EPY-DUwsAw4u.js} +3 -3
- package/dist/{diagram-FQU43EPY-DPR8KMs9.js.map → diagram-FQU43EPY-DUwsAw4u.js.map} +1 -1
- package/dist/{diagram-G47NLZAW-71hjWkYs.cjs → diagram-G47NLZAW-BaP0Lyg0.cjs} +2 -2
- package/dist/{diagram-G47NLZAW-71hjWkYs.cjs.map → diagram-G47NLZAW-BaP0Lyg0.cjs.map} +1 -1
- package/dist/{diagram-G47NLZAW-BfL1Ut0H.js → diagram-G47NLZAW-h09HILJg.js} +4 -4
- package/dist/{diagram-G47NLZAW-BfL1Ut0H.js.map → diagram-G47NLZAW-h09HILJg.js.map} +1 -1
- package/dist/{diagram-NH7WQ7WH-BjJctDxT.js → diagram-NH7WQ7WH-BE3XRcGY.js} +3 -3
- package/dist/{diagram-NH7WQ7WH-BjJctDxT.js.map → diagram-NH7WQ7WH-BE3XRcGY.js.map} +1 -1
- package/dist/{diagram-NH7WQ7WH-B4uTamuE.cjs → diagram-NH7WQ7WH-DyJw7-Gl.cjs} +2 -2
- package/dist/{diagram-NH7WQ7WH-B4uTamuE.cjs.map → diagram-NH7WQ7WH-DyJw7-Gl.cjs.map} +1 -1
- package/dist/{diagram-OA4YK3LP-BoFOwiXF.js → diagram-OA4YK3LP-BfAM9MZv.js} +4 -4
- package/dist/{diagram-OA4YK3LP-BoFOwiXF.js.map → diagram-OA4YK3LP-BfAM9MZv.js.map} +1 -1
- package/dist/{diagram-OA4YK3LP-C1ORbLEL.cjs → diagram-OA4YK3LP-DqYpt5F6.cjs} +2 -2
- package/dist/{diagram-OA4YK3LP-C1ORbLEL.cjs.map → diagram-OA4YK3LP-DqYpt5F6.cjs.map} +1 -1
- package/dist/{diagram-WEI45ONY-COXEDGCZ.js → diagram-WEI45ONY-DtFOpBM4.js} +3 -3
- package/dist/{diagram-WEI45ONY-COXEDGCZ.js.map → diagram-WEI45ONY-DtFOpBM4.js.map} +1 -1
- package/dist/{diagram-WEI45ONY-BzuHWp9D.cjs → diagram-WEI45ONY-fz5dqgqy.cjs} +2 -2
- package/dist/{diagram-WEI45ONY-BzuHWp9D.cjs.map → diagram-WEI45ONY-fz5dqgqy.cjs.map} +1 -1
- package/dist/{ebnfDiagram-CCIWWBDH-N0w7QwtK.js → ebnfDiagram-CCIWWBDH-CyKVhKIb.js} +4 -4
- package/dist/{ebnfDiagram-CCIWWBDH-N0w7QwtK.js.map → ebnfDiagram-CCIWWBDH-CyKVhKIb.js.map} +1 -1
- package/dist/{ebnfDiagram-CCIWWBDH-DE7OPvSn.cjs → ebnfDiagram-CCIWWBDH-Haez4su4.cjs} +2 -2
- package/dist/{ebnfDiagram-CCIWWBDH-DE7OPvSn.cjs.map → ebnfDiagram-CCIWWBDH-Haez4su4.cjs.map} +1 -1
- package/dist/{erDiagram-Q63AITRT-CqsM_S0E.js → erDiagram-Q63AITRT-9hM3kPUW.js} +5 -5
- package/dist/{erDiagram-Q63AITRT-CqsM_S0E.js.map → erDiagram-Q63AITRT-9hM3kPUW.js.map} +1 -1
- package/dist/{erDiagram-Q63AITRT-KvBvwG4T.cjs → erDiagram-Q63AITRT-BGEWGa_b.cjs} +2 -2
- package/dist/{erDiagram-Q63AITRT-KvBvwG4T.cjs.map → erDiagram-Q63AITRT-BGEWGa_b.cjs.map} +1 -1
- package/dist/{extractHeadings-BiNpEj-K.js → extractHeadings-BH0T7P4n.js} +3834 -3824
- package/dist/{extractHeadings-BiNpEj-K.js.map → extractHeadings-BH0T7P4n.js.map} +1 -1
- package/dist/{extractHeadings-vnYM8Eet.cjs → extractHeadings-BsiIYa_e.cjs} +62 -62
- package/dist/{extractHeadings-vnYM8Eet.cjs.map → extractHeadings-BsiIYa_e.cjs.map} +1 -1
- package/dist/flowDiagram-23GEKE2U-B9LX4RXy.cjs +2 -0
- package/dist/flowDiagram-23GEKE2U-B9LX4RXy.cjs.map +1 -0
- package/dist/flowDiagram-23GEKE2U-Dk7STu-u.js +8 -0
- package/dist/flowDiagram-23GEKE2U-Dk7STu-u.js.map +1 -0
- package/dist/{ganttDiagram-NO4QXBWP-DvdToLYa.cjs → ganttDiagram-NO4QXBWP-4BbeHi64.cjs} +2 -2
- package/dist/{ganttDiagram-NO4QXBWP-DvdToLYa.cjs.map → ganttDiagram-NO4QXBWP-4BbeHi64.cjs.map} +1 -1
- package/dist/{ganttDiagram-NO4QXBWP-C2P9ON6O.js → ganttDiagram-NO4QXBWP-DtM5HL0C.js} +3 -3
- package/dist/{ganttDiagram-NO4QXBWP-C2P9ON6O.js.map → ganttDiagram-NO4QXBWP-DtM5HL0C.js.map} +1 -1
- package/dist/{gitGraphDiagram-IHSO6WYX-BkZsK9Hm.cjs → gitGraphDiagram-IHSO6WYX-D1NSh545.cjs} +2 -2
- package/dist/{gitGraphDiagram-IHSO6WYX-BkZsK9Hm.cjs.map → gitGraphDiagram-IHSO6WYX-D1NSh545.cjs.map} +1 -1
- package/dist/{gitGraphDiagram-IHSO6WYX-DVSslxqP.js → gitGraphDiagram-IHSO6WYX-DFSd1OPO.js} +4 -4
- package/dist/{gitGraphDiagram-IHSO6WYX-DVSslxqP.js.map → gitGraphDiagram-IHSO6WYX-DFSd1OPO.js.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.client.cjs +1 -1
- package/dist/index.client.js +1 -1
- package/dist/index.js +1 -1
- package/dist/{infoDiagram-FWYZ7A6U-Cd3TPtAG.cjs → infoDiagram-FWYZ7A6U-4wrBBE6X.cjs} +2 -2
- package/dist/{infoDiagram-FWYZ7A6U-Cd3TPtAG.cjs.map → infoDiagram-FWYZ7A6U-4wrBBE6X.cjs.map} +1 -1
- package/dist/{infoDiagram-FWYZ7A6U-vPnKgn2w.js → infoDiagram-FWYZ7A6U-ZRUjO8nW.js} +2 -2
- package/dist/{infoDiagram-FWYZ7A6U-vPnKgn2w.js.map → infoDiagram-FWYZ7A6U-ZRUjO8nW.js.map} +1 -1
- package/dist/{ishikawaDiagram-FXEZZL3T-CR9ySQXh.cjs → ishikawaDiagram-FXEZZL3T-DE9GPbED.cjs} +2 -2
- package/dist/{ishikawaDiagram-FXEZZL3T-CR9ySQXh.cjs.map → ishikawaDiagram-FXEZZL3T-DE9GPbED.cjs.map} +1 -1
- package/dist/{ishikawaDiagram-FXEZZL3T-BkgUhFd7.js → ishikawaDiagram-FXEZZL3T-DNgqlFhZ.js} +2 -2
- package/dist/{ishikawaDiagram-FXEZZL3T-BkgUhFd7.js.map → ishikawaDiagram-FXEZZL3T-DNgqlFhZ.js.map} +1 -1
- package/dist/{journeyDiagram-5HDEW3XC-CeLukjGs.js → journeyDiagram-5HDEW3XC-BXlXmDhR.js} +5 -5
- package/dist/{journeyDiagram-5HDEW3XC-CeLukjGs.js.map → journeyDiagram-5HDEW3XC-BXlXmDhR.js.map} +1 -1
- package/dist/{journeyDiagram-5HDEW3XC-C_kouMqJ.cjs → journeyDiagram-5HDEW3XC-jcXDYbA9.cjs} +2 -2
- package/dist/{journeyDiagram-5HDEW3XC-C_kouMqJ.cjs.map → journeyDiagram-5HDEW3XC-jcXDYbA9.cjs.map} +1 -1
- package/dist/{kanban-definition-HUTT4EX6-B7sK7KKo.js → kanban-definition-HUTT4EX6-C9IdgWIg.js} +3 -3
- package/dist/{kanban-definition-HUTT4EX6-B7sK7KKo.js.map → kanban-definition-HUTT4EX6-C9IdgWIg.js.map} +1 -1
- package/dist/{kanban-definition-HUTT4EX6-C72m9SkW.cjs → kanban-definition-HUTT4EX6-D5_pDh9h.cjs} +2 -2
- package/dist/{kanban-definition-HUTT4EX6-C72m9SkW.cjs.map → kanban-definition-HUTT4EX6-D5_pDh9h.cjs.map} +1 -1
- package/dist/{linear-DA8CNisd.js → linear-CTibpBci.js} +2 -2
- package/dist/{linear-DA8CNisd.js.map → linear-CTibpBci.js.map} +1 -1
- package/dist/{linear-BgdXLHZt.cjs → linear-DDWdtbxq.cjs} +2 -2
- package/dist/{linear-BgdXLHZt.cjs.map → linear-DDWdtbxq.cjs.map} +1 -1
- package/dist/{mindmap-definition-LN4V7U3C-C7YrqUCf.js → mindmap-definition-LN4V7U3C-CXaKAu6n.js} +4 -4
- package/dist/{mindmap-definition-LN4V7U3C-C7YrqUCf.js.map → mindmap-definition-LN4V7U3C-CXaKAu6n.js.map} +1 -1
- package/dist/{mindmap-definition-LN4V7U3C-CirMzlY5.cjs → mindmap-definition-LN4V7U3C-gBn938NF.cjs} +2 -2
- package/dist/{mindmap-definition-LN4V7U3C-CirMzlY5.cjs.map → mindmap-definition-LN4V7U3C-gBn938NF.cjs.map} +1 -1
- package/dist/{pegDiagram-2B236MQR-DpzcFesN.js → pegDiagram-2B236MQR-BiQyejnD.js} +4 -4
- package/dist/{pegDiagram-2B236MQR-DpzcFesN.js.map → pegDiagram-2B236MQR-BiQyejnD.js.map} +1 -1
- package/dist/{pegDiagram-2B236MQR-BWo1kluM.cjs → pegDiagram-2B236MQR-fR_9AvHk.cjs} +2 -2
- package/dist/{pegDiagram-2B236MQR-BWo1kluM.cjs.map → pegDiagram-2B236MQR-fR_9AvHk.cjs.map} +1 -1
- package/dist/{pieDiagram-ENE6RG2P-iRoOiNc4.cjs → pieDiagram-ENE6RG2P-BZtqlfyU.cjs} +2 -2
- package/dist/{pieDiagram-ENE6RG2P-iRoOiNc4.cjs.map → pieDiagram-ENE6RG2P-BZtqlfyU.cjs.map} +1 -1
- package/dist/{pieDiagram-ENE6RG2P-B6RHvEHE.js → pieDiagram-ENE6RG2P-CZTZpVqy.js} +4 -4
- package/dist/{pieDiagram-ENE6RG2P-B6RHvEHE.js.map → pieDiagram-ENE6RG2P-CZTZpVqy.js.map} +1 -1
- package/dist/{quadrantDiagram-ABIIQ3AL-9Gb8LEQi.js → quadrantDiagram-ABIIQ3AL-ByHTxHrm.js} +3 -3
- package/dist/{quadrantDiagram-ABIIQ3AL-9Gb8LEQi.js.map → quadrantDiagram-ABIIQ3AL-ByHTxHrm.js.map} +1 -1
- package/dist/{quadrantDiagram-ABIIQ3AL-DKbTOjNz.cjs → quadrantDiagram-ABIIQ3AL-CC5w4CkE.cjs} +2 -2
- package/dist/{quadrantDiagram-ABIIQ3AL-DKbTOjNz.cjs.map → quadrantDiagram-ABIIQ3AL-CC5w4CkE.cjs.map} +1 -1
- package/dist/{railroadDiagram-RFXS5EU6-CXgCaCb_.js → railroadDiagram-RFXS5EU6-C99zfAzl.js} +4 -4
- package/dist/{railroadDiagram-RFXS5EU6-CXgCaCb_.js.map → railroadDiagram-RFXS5EU6-C99zfAzl.js.map} +1 -1
- package/dist/{railroadDiagram-RFXS5EU6-SOxzO7C3.cjs → railroadDiagram-RFXS5EU6-_YckPr2T.cjs} +2 -2
- package/dist/{railroadDiagram-RFXS5EU6-SOxzO7C3.cjs.map → railroadDiagram-RFXS5EU6-_YckPr2T.cjs.map} +1 -1
- package/dist/{requirementDiagram-TGXJPOKE-B6RQ9Kpp.cjs → requirementDiagram-TGXJPOKE-BCeWSLF4.cjs} +2 -2
- package/dist/{requirementDiagram-TGXJPOKE-B6RQ9Kpp.cjs.map → requirementDiagram-TGXJPOKE-BCeWSLF4.cjs.map} +1 -1
- package/dist/{requirementDiagram-TGXJPOKE-DbSm2ehr.js → requirementDiagram-TGXJPOKE-DBzuXzE9.js} +4 -4
- package/dist/{requirementDiagram-TGXJPOKE-DbSm2ehr.js.map → requirementDiagram-TGXJPOKE-DBzuXzE9.js.map} +1 -1
- package/dist/{sankeyDiagram-HTMAVEWB-BNqZ6R3H.js → sankeyDiagram-HTMAVEWB-ChQ2ozXn.js} +2 -2
- package/dist/{sankeyDiagram-HTMAVEWB-BNqZ6R3H.js.map → sankeyDiagram-HTMAVEWB-ChQ2ozXn.js.map} +1 -1
- package/dist/{sankeyDiagram-HTMAVEWB-DgGDy2eG.cjs → sankeyDiagram-HTMAVEWB-DQOfpr04.cjs} +2 -2
- package/dist/{sankeyDiagram-HTMAVEWB-DgGDy2eG.cjs.map → sankeyDiagram-HTMAVEWB-DQOfpr04.cjs.map} +1 -1
- package/dist/{sequenceDiagram-DBY2YBRQ-Bf3EtJcL.js → sequenceDiagram-DBY2YBRQ-CCzsdQ__.js} +4 -4
- package/dist/{sequenceDiagram-DBY2YBRQ-Bf3EtJcL.js.map → sequenceDiagram-DBY2YBRQ-CCzsdQ__.js.map} +1 -1
- package/dist/{sequenceDiagram-DBY2YBRQ-BuKDthxK.cjs → sequenceDiagram-DBY2YBRQ-D2R8WWiq.cjs} +2 -2
- package/dist/{sequenceDiagram-DBY2YBRQ-BuKDthxK.cjs.map → sequenceDiagram-DBY2YBRQ-D2R8WWiq.cjs.map} +1 -1
- package/dist/{sizeCapture-X5ZJPWSS-CNWx6elV.js → sizeCapture-X5ZJPWSS-9Q2RBacx.js} +2 -2
- package/dist/{sizeCapture-X5ZJPWSS-CNWx6elV.js.map → sizeCapture-X5ZJPWSS-9Q2RBacx.js.map} +1 -1
- package/dist/{sizeCapture-X5ZJPWSS-NRqA0pmT.cjs → sizeCapture-X5ZJPWSS-CedNWC9b.cjs} +2 -2
- package/dist/{sizeCapture-X5ZJPWSS-NRqA0pmT.cjs.map → sizeCapture-X5ZJPWSS-CedNWC9b.cjs.map} +1 -1
- package/dist/src/components/MarkdownRenderer.d.ts +31 -1
- package/dist/src/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/src/components/MarkdownViewer.d.ts +9 -1
- package/dist/src/components/MarkdownViewer.d.ts.map +1 -1
- package/dist/src/index.client.d.ts +1 -1
- package/dist/src/index.client.d.ts.map +1 -1
- package/dist/{stateDiagram-2N3HPSRC-DqhvonPY.cjs → stateDiagram-2N3HPSRC-BFjEDzN5.cjs} +2 -2
- package/dist/{stateDiagram-2N3HPSRC-DqhvonPY.cjs.map → stateDiagram-2N3HPSRC-BFjEDzN5.cjs.map} +1 -1
- package/dist/{stateDiagram-2N3HPSRC-Bdphi4r-.js → stateDiagram-2N3HPSRC-DVXBUdgS.js} +3 -3
- package/dist/{stateDiagram-2N3HPSRC-Bdphi4r-.js.map → stateDiagram-2N3HPSRC-DVXBUdgS.js.map} +1 -1
- package/dist/{stateDiagram-v2-6OUMAXLB-p9rvsC9-.cjs → stateDiagram-v2-6OUMAXLB-BpxIqbgw.cjs} +2 -2
- package/dist/{stateDiagram-v2-6OUMAXLB-p9rvsC9-.cjs.map → stateDiagram-v2-6OUMAXLB-BpxIqbgw.cjs.map} +1 -1
- package/dist/{stateDiagram-v2-6OUMAXLB-DdB47j1a.js → stateDiagram-v2-6OUMAXLB-etkgI8XE.js} +3 -3
- package/dist/{stateDiagram-v2-6OUMAXLB-DdB47j1a.js.map → stateDiagram-v2-6OUMAXLB-etkgI8XE.js.map} +1 -1
- package/dist/{swimlanes-5IMT3BWC-JZVn9oCR.cjs → swimlanes-5IMT3BWC-ByyaHYdJ.cjs} +2 -2
- package/dist/{swimlanes-5IMT3BWC-JZVn9oCR.cjs.map → swimlanes-5IMT3BWC-ByyaHYdJ.cjs.map} +1 -1
- package/dist/{swimlanes-5IMT3BWC-BMZk0Lp2.js → swimlanes-5IMT3BWC-CRF_hU5-.js} +4 -4
- package/dist/{swimlanes-5IMT3BWC-BMZk0Lp2.js.map → swimlanes-5IMT3BWC-CRF_hU5-.js.map} +1 -1
- package/dist/{swimlanesDiagram-G3AALYLV-DxEegQkl.cjs → swimlanesDiagram-G3AALYLV-DmAVTn1y.cjs} +2 -2
- package/dist/{swimlanesDiagram-G3AALYLV-DxEegQkl.cjs.map → swimlanesDiagram-G3AALYLV-DmAVTn1y.cjs.map} +1 -1
- package/dist/{swimlanesDiagram-G3AALYLV-DNhrqmqB.js → swimlanesDiagram-G3AALYLV-qE56wCfv.js} +3 -3
- package/dist/{swimlanesDiagram-G3AALYLV-DNhrqmqB.js.map → swimlanesDiagram-G3AALYLV-qE56wCfv.js.map} +1 -1
- package/dist/{timeline-definition-FHXFAJF6-BjxOaDZF.cjs → timeline-definition-FHXFAJF6-CYpydtqC.cjs} +2 -2
- package/dist/{timeline-definition-FHXFAJF6-BjxOaDZF.cjs.map → timeline-definition-FHXFAJF6-CYpydtqC.cjs.map} +1 -1
- package/dist/{timeline-definition-FHXFAJF6-C4kHuqGr.js → timeline-definition-FHXFAJF6-U6tU13YO.js} +3 -3
- package/dist/{timeline-definition-FHXFAJF6-C4kHuqGr.js.map → timeline-definition-FHXFAJF6-U6tU13YO.js.map} +1 -1
- package/dist/{vennDiagram-L72KCM5P-nQ40EeIj.cjs → vennDiagram-L72KCM5P-CfbVR5CF.cjs} +2 -2
- package/dist/{vennDiagram-L72KCM5P-nQ40EeIj.cjs.map → vennDiagram-L72KCM5P-CfbVR5CF.cjs.map} +1 -1
- package/dist/{vennDiagram-L72KCM5P-faE6oCYZ.js → vennDiagram-L72KCM5P-q79Xn7UV.js} +2 -2
- package/dist/{vennDiagram-L72KCM5P-faE6oCYZ.js.map → vennDiagram-L72KCM5P-q79Xn7UV.js.map} +1 -1
- package/dist/{wardleyDiagram-EHGQE667-COQa-JdJ.js → wardleyDiagram-EHGQE667-BG3W74MX.js} +3 -3
- package/dist/{wardleyDiagram-EHGQE667-COQa-JdJ.js.map → wardleyDiagram-EHGQE667-BG3W74MX.js.map} +1 -1
- package/dist/{wardleyDiagram-EHGQE667-ByYfznTT.cjs → wardleyDiagram-EHGQE667-CSJ22zfj.cjs} +2 -2
- package/dist/{wardleyDiagram-EHGQE667-ByYfznTT.cjs.map → wardleyDiagram-EHGQE667-CSJ22zfj.cjs.map} +1 -1
- package/dist/{xychartDiagram-FW5EYKEG-D7FhqNeM.js → xychartDiagram-FW5EYKEG-BISI4a7c.js} +3 -3
- package/dist/{xychartDiagram-FW5EYKEG-D7FhqNeM.js.map → xychartDiagram-FW5EYKEG-BISI4a7c.js.map} +1 -1
- package/dist/{xychartDiagram-FW5EYKEG-BHBIM0-w.cjs → xychartDiagram-FW5EYKEG-Df8hBgvh.cjs} +2 -2
- package/dist/{xychartDiagram-FW5EYKEG-BHBIM0-w.cjs.map → xychartDiagram-FW5EYKEG-Df8hBgvh.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/channel-B6gYWXtQ.js +0 -6
- package/dist/channel-CZceKK2b.cjs +0 -2
- package/dist/flowDiagram-23GEKE2U-BNIQEPQk.cjs +0 -2
- package/dist/flowDiagram-23GEKE2U-BNIQEPQk.cjs.map +0 -1
- package/dist/flowDiagram-23GEKE2U-Cu3z7Hd2.js +0 -8
- package/dist/flowDiagram-23GEKE2U-Cu3z7Hd2.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as i } from "./extractHeadings-
|
|
1
|
+
import { _ as i } from "./extractHeadings-BH0T7P4n.js";
|
|
2
2
|
function t(c, e) {
|
|
3
3
|
c.accDescr && e.setAccDescription?.(c.accDescr), c.accTitle && e.setAccTitle?.(c.accTitle), c.title && e.setDiagramTitle?.(c.title);
|
|
4
4
|
}
|
|
@@ -6,4 +6,4 @@ i(t, "populateCommonDb");
|
|
|
6
6
|
export {
|
|
7
7
|
t as p
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=chunk-JWPE2WC7-
|
|
9
|
+
//# sourceMappingURL=chunk-JWPE2WC7-C20BXRVN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-JWPE2WC7-
|
|
1
|
+
{"version":3,"file":"chunk-JWPE2WC7-C20BXRVN.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JWPE2WC7.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n"],"names":["populateCommonDb","ast","db","__name"],"mappings":";AAKA,SAASA,EAAiBC,GAAKC,GAAI;AACjC,EAAID,EAAI,YACNC,EAAG,oBAAoBD,EAAI,QAAQ,GAEjCA,EAAI,YACNC,EAAG,cAAcD,EAAI,QAAQ,GAE3BA,EAAI,SACNC,EAAG,kBAAkBD,EAAI,KAAK;AAElC;AACAE,EAAOH,GAAkB,kBAAkB;","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const t=require("./extractHeadings-
|
|
2
|
-
//# sourceMappingURL=chunk-JWPE2WC7-
|
|
1
|
+
"use strict";const t=require("./extractHeadings-BsiIYa_e.cjs");function i(e,c){e.accDescr&&c.setAccDescription?.(e.accDescr),e.accTitle&&c.setAccTitle?.(e.accTitle),e.title&&c.setDiagramTitle?.(e.title)}t.__name(i,"populateCommonDb");exports.populateCommonDb=i;
|
|
2
|
+
//# sourceMappingURL=chunk-JWPE2WC7-CLCAyxUO.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-JWPE2WC7-
|
|
1
|
+
{"version":3,"file":"chunk-JWPE2WC7-CLCAyxUO.cjs","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JWPE2WC7.mjs"],"sourcesContent":["import {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/common/populateCommonDb.ts\nfunction populateCommonDb(ast, db) {\n if (ast.accDescr) {\n db.setAccDescription?.(ast.accDescr);\n }\n if (ast.accTitle) {\n db.setAccTitle?.(ast.accTitle);\n }\n if (ast.title) {\n db.setDiagramTitle?.(ast.title);\n }\n}\n__name(populateCommonDb, \"populateCommonDb\");\n\nexport {\n populateCommonDb\n};\n"],"names":["populateCommonDb","ast","db","__name"],"mappings":"+DAKA,SAASA,EAAiBC,EAAKC,EAAI,CAC7BD,EAAI,UACNC,EAAG,oBAAoBD,EAAI,QAAQ,EAEjCA,EAAI,UACNC,EAAG,cAAcD,EAAI,QAAQ,EAE3BA,EAAI,OACNC,EAAG,kBAAkBD,EAAI,KAAK,CAElC,CACAE,EAAAA,OAAOH,EAAkB,kBAAkB","x_google_ignoreList":[0]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as p, a1 as C, au as H, ap as B, al as q, av as G, a2 as U, a5 as j, $ as K } from "./extractHeadings-
|
|
1
|
+
import { _ as p, a1 as C, au as H, ap as B, al as q, av as G, a2 as U, a5 as j, $ as K } from "./extractHeadings-BH0T7P4n.js";
|
|
2
2
|
var A = "", M = "", O = "", D = [], b = /* @__PURE__ */ new Map(), v = /* @__PURE__ */ p((e) => j(e, K()), "sanitizeText"), y = /* @__PURE__ */ p((e) => {
|
|
3
3
|
switch (e.type) {
|
|
4
4
|
case "terminal":
|
|
@@ -662,4 +662,4 @@ export {
|
|
|
662
662
|
Te as g,
|
|
663
663
|
xe as r
|
|
664
664
|
};
|
|
665
|
-
//# sourceMappingURL=chunk-MOJQB5TN-
|
|
665
|
+
//# sourceMappingURL=chunk-MOJQB5TN-B_C5dwTy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunk-MOJQB5TN-CODLoYka.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-MOJQB5TN.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n clear,\n configureSvgSize,\n getConfig,\n getConfig2,\n getThemeVariables,\n sanitizeText\n} from \"./chunk-WYO6CB5R.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","_a","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
|
+
{"version":3,"file":"chunk-MOJQB5TN-B_C5dwTy.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/chunk-MOJQB5TN.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n clear,\n configureSvgSize,\n getConfig,\n getConfig2,\n getThemeVariables,\n sanitizeText\n} from \"./chunk-WYO6CB5R.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","_a","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
|
-
"use strict";const l=require("./extractHeadings-
|
|
1
|
+
"use strict";const l=require("./extractHeadings-BsiIYa_e.cjs");var b="",N="",A="",M=[],$=new Map,k=l.__name(e=>l.sanitizeText(e,l.getConfig2()),"sanitizeText"),F=l.__name(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"),I=l.__name(()=>{b="",N="",A="",M.length=0,$.clear(),l.clear(),l.log.debug("[Railroad] Database cleared")},"clear"),W=l.__name(e=>{b=k(e),l.log.debug("[Railroad] Title set:",e)},"setTitle"),B=l.__name(()=>b,"getTitle"),X=l.__name(e=>{const i={...e,name:k(e.name),definition:F(e.definition),comment:e.comment?k(e.comment):void 0};l.log.debug("[Railroad] Adding rule:",i.name),$.has(i.name)&&l.log.warn(`[Railroad] Rule '${i.name}' is already defined. Overwriting.`),M.push(i),$.set(i.name,i)},"addRule"),q=l.__name(()=>M,"getRules"),G=l.__name(e=>$.get(e),"getRule"),U=l.__name(e=>{N=k(e).replace(/^\s+/g,""),l.log.debug("[Railroad] Accessibility title set:",e)},"setAccTitle"),j=l.__name(()=>N,"getAccTitle"),K=l.__name(e=>{A=k(e).replace(/\n\s+/g,`
|
|
2
2
|
`),l.log.debug("[Railroad] Accessibility description set:",e)},"setAccDescription"),J=l.__name(()=>A,"getAccDescription"),Q=W,Z=B,Y={clear:I,setTitle:W,getTitle:B,addRule:X,getRules:q,getRule:G,setAccTitle:U,getAccTitle:j,setAccDescription:K,getAccDescription:J,setDiagramTitle:Q,getDiagramTitle:Z},f={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},V=/^#(?:[\da-f]{3,4}|[\da-f]{6}|[\da-f]{8})$|^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch)\([\d\s%+,./-]+\)$|^[a-z]+$/i,ee=/^[\w "',.-]+$/,te=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"]),P=l.__name(e=>e?Object.keys(e).every(i=>i==="railroad"||te.has(i)):!1,"isRailroadStyleOptions"),re=l.__name(e=>e?"railroad"in e&&e.railroad?e.railroad:P(e)?e:{}:{},"extractRailroadOverrides"),ie=l.__name(e=>{if(!e||P(e))return{};const{railroad:i,svgId:a,theme:n,look:t,...r}=e;return r},"extractThemeOverrides"),h=l.__name((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return V.test(a)?a:i},"sanitizeColorValue"),L=l.__name((e,i)=>{if(typeof e!="string")return i;const a=e.trim();return ee.test(a)?a:i},"sanitizeFontFamilyValue"),S=l.__name((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"),ne=l.__name(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"),ae=l.__name(e=>{const i=L(e.fontFamily,f.fontFamily),a=ne(e.fontSize)??f.fontSize;return{...f,fontFamily:i,fontSize:a,terminalFill:h(e.secondBkg??e.secondaryColor,f.terminalFill),terminalStroke:h(e.secondaryBorderColor??e.lineColor,f.terminalStroke),terminalTextColor:h(e.secondaryTextColor??e.textColor,f.terminalTextColor),nonTerminalFill:h(e.mainBkg??e.background,f.nonTerminalFill),nonTerminalStroke:h(e.primaryBorderColor??e.lineColor,f.nonTerminalStroke),nonTerminalTextColor:h(e.primaryTextColor??e.textColor,f.nonTerminalTextColor),lineColor:h(e.lineColor,f.lineColor),markerFill:h(e.lineColor,f.markerFill),commentFill:h(e.labelBackground??e.tertiaryColor,f.commentFill),commentStroke:h(e.tertiaryBorderColor??e.lineColor,f.commentStroke),commentTextColor:h(e.tertiaryTextColor??e.textColor,f.commentTextColor),specialFill:h(e.tertiaryColor??e.secondaryColor,f.specialFill),specialStroke:h(e.tertiaryBorderColor??e.secondaryBorderColor,f.specialStroke),ruleNameColor:h(e.titleColor??e.textColor,f.ruleNameColor)}},"buildThemeDefaults"),O=l.__name(e=>{const i=l.getConfig(),a={...l.getThemeVariables3(),...i.themeVariables??{},...ie(e)},n=ae(a),t={...i.railroad??{},...re(e)};return{compactMode:t.compactMode??n.compactMode,padding:S(t.padding,n.padding),verticalSeparation:S(t.verticalSeparation,n.verticalSeparation),horizontalSeparation:S(t.horizontalSeparation,n.horizontalSeparation),arcRadius:S(t.arcRadius,n.arcRadius),fontSize:S(t.fontSize,n.fontSize),fontFamily:L(t.fontFamily,n.fontFamily),terminalFill:h(t.terminalFill,n.terminalFill),terminalStroke:h(t.terminalStroke,n.terminalStroke),terminalTextColor:h(t.terminalTextColor,n.terminalTextColor),nonTerminalFill:h(t.nonTerminalFill,n.nonTerminalFill),nonTerminalStroke:h(t.nonTerminalStroke,n.nonTerminalStroke),nonTerminalTextColor:h(t.nonTerminalTextColor,n.nonTerminalTextColor),lineColor:h(t.lineColor,n.lineColor),strokeWidth:S(t.strokeWidth,n.strokeWidth),markerFill:h(t.markerFill,n.markerFill),commentFill:h(t.commentFill,n.commentFill),commentStroke:h(t.commentStroke,n.commentStroke),commentTextColor:h(t.commentTextColor,n.commentTextColor),specialFill:h(t.specialFill,n.specialFill),specialStroke:h(t.specialStroke,n.specialStroke),ruleNameColor:h(t.ruleNameColor,n.ruleNameColor),showMarkers:t.showMarkers??n.showMarkers,markerRadius:S(t.markerRadius,n.markerRadius)}},"buildRailroadStyleOptions"),oe=l.__name(e=>{const{fontFamily:i,fontSize:a,terminalFill:n,terminalStroke:t,terminalTextColor:r,nonTerminalFill:o,nonTerminalStroke:g,nonTerminalTextColor:s,lineColor:d,strokeWidth:p,markerFill:u,commentFill:m,commentStroke:w,commentTextColor:c,specialFill:T,specialStroke:_,ruleNameColor:v}=O(e);return`
|
|
3
3
|
.railroad-diagram {
|
|
4
4
|
font-family: ${i};
|
|
@@ -86,4 +86,4 @@
|
|
|
86
86
|
}
|
|
87
87
|
`},"getStyles"),y,x=(y=class{constructor(){this.d=""}moveTo(i,a){return this.d+=`M ${i} ${a} `,this}lineTo(i,a){return this.d+=`L ${i} ${a} `,this}horizontalTo(i){return this.d+=`H ${i} `,this}verticalTo(i){return this.d+=`V ${i} `,this}arcTo(i,a,n,t,r,o,g){return this.d+=`A ${i} ${a} ${n} ${t?1:0} ${r?1:0} ${o} ${g} `,this}build(){return this.d.trim()}},l.__name(y,"PathBuilder"),y),R,le=(R=class{constructor(i,a=O()){this.textCache=new Map,this.svg=i,this.config=a}measureText(i){if(this.textCache.has(i))return this.textCache.get(i);const a=this.svg.append("text").attr("font-family",this.config.fontFamily).attr("font-size",this.config.fontSize).text(i),n=a.node().getBBox(),t={width:n.width,height:n.height};return a.remove(),this.textCache.set(i,t),t}renderTerminal(i,a){const n=this.measureText(a),t=n.width+this.config.padding*2,r=n.height+this.config.padding*2,o=i.append("g").attr("class","railroad-terminal");return o.append("rect").attr("x",0).attr("y",0).attr("width",t).attr("height",r).attr("rx",10).attr("ry",10),o.append("text").attr("x",t/2).attr("y",r/2).text(a),{element:o.node(),dimensions:{width:t,height:r,up:r/2,down:r/2}}}renderNonTerminal(i,a){const n=this.measureText(a),t=n.width+this.config.padding*2,r=n.height+this.config.padding*2,o=i.append("g").attr("class","railroad-nonterminal");return o.append("rect").attr("x",0).attr("y",0).attr("width",t).attr("height",r),o.append("text").attr("x",t/2).attr("y",r/2).text(a),{element:o.node(),dimensions:{width:t,height:r,up:r/2,down:r/2}}}renderSequence(i,a){const n=a.map(d=>this.renderExpression(i,d));let t=0,r=0,o=0;for(const d of n)t+=d.dimensions.width,r=Math.max(r,d.dimensions.up),o=Math.max(o,d.dimensions.down);t+=(n.length-1)*this.config.horizontalSeparation;const g=i.append("g").attr("class","railroad-sequence");let s=0;for(let d=0;d<n.length;d++){const p=n[d],u=r-p.dimensions.up;if(g.node().appendChild(p.element).setAttribute("transform",`translate(${s}, ${u})`),d<n.length-1){const w=s+p.dimensions.width,c=w+this.config.horizontalSeparation,T=r;g.append("path").attr("class","railroad-line").attr("d",new x().moveTo(w,T).lineTo(c,T).build())}s+=p.dimensions.width+this.config.horizontalSeparation}return{element:g.node(),dimensions:{width:t,height:r+o,up:r,down:o}}}renderChoice(i,a){const n=a.map(m=>this.renderExpression(i,m));let t=0,r=0;for(const m of n)t=Math.max(t,m.dimensions.width),r+=m.dimensions.height;r+=(n.length-1)*this.config.verticalSeparation;const o=this.config.arcRadius,g=o*4,s=t+g,d=i.append("g").attr("class","railroad-choice");let p=0;const u=r/2;for(const m of n){const w=p,c=w+m.dimensions.up,T=o*2+(t-m.dimensions.width)/2;d.node().appendChild(m.element).setAttribute("transform",`translate(${T}, ${w})`);const v=new x,C=c>u;c===u?v.moveTo(0,u).lineTo(T,c):v.moveTo(0,u).arcTo(o,o,0,!1,C,o,u+(C?o:-o)).lineTo(o,c-(C?o:-o)).arcTo(o,o,0,!1,!C,o*2,c).lineTo(T,c),d.append("path").attr("class","railroad-line").attr("d",v.build());const z=new x,D=T+m.dimensions.width,H=s-o*2;c===u?z.moveTo(D,c).lineTo(s,u):z.moveTo(D,c).lineTo(H,c).arcTo(o,o,0,!1,!C,s-o,c+(C?-o:o)).lineTo(s-o,u+(C?o:-o)).arcTo(o,o,0,!1,C,s,u),d.append("path").attr("class","railroad-line").attr("d",z.build()),p+=m.dimensions.height+this.config.verticalSeparation}return{element:d.node(),dimensions:{width:s,height:r,up:u,down:r-u}}}renderOptional(i,a){const n=this.renderExpression(i,a),t=this.config.arcRadius,r=t*2,o=n.dimensions.width+t*4,g=n.dimensions.height+r,s=i.append("g").attr("class","railroad-optional"),d=t*2,p=r;s.node().appendChild(n.element).setAttribute("transform",`translate(${d}, ${p})`);const m=p+n.dimensions.up,w=new x().moveTo(0,m).lineTo(t*2,m);s.append("path").attr("class","railroad-line").attr("d",w.build());const c=new x().moveTo(d+n.dimensions.width,m).lineTo(o,m);s.append("path").attr("class","railroad-line").attr("d",c.build());const T=new x().moveTo(0,m).arcTo(t,t,0,!1,!1,t,m-t).lineTo(t,t).arcTo(t,t,0,!1,!0,t*2,0).lineTo(o-t*2,0).arcTo(t,t,0,!1,!0,o-t,t).lineTo(o-t,m-t).arcTo(t,t,0,!1,!1,o,m);return s.append("path").attr("class","railroad-line").attr("d",T.build()),{element:s.node(),dimensions:{width:o,height:g,up:m,down:g-m}}}renderRepetition(i,a,n){const t=this.renderExpression(i,a),r=this.config.arcRadius,o=r*2,g=t.dimensions.width+r*4,s=n===0,d=t.dimensions.height+o+(s?o:0),p=i.append("g").attr("class","railroad-repetition"),u=r*2,m=s?o:0;p.node().appendChild(t.element).setAttribute("transform",`translate(${u}, ${m})`);const c=m+t.dimensions.up;p.append("path").attr("class","railroad-line").attr("d",new x().moveTo(0,c).lineTo(r*2,c).build()),p.append("path").attr("class","railroad-line").attr("d",new x().moveTo(u+t.dimensions.width,c).lineTo(g,c).build());const T=m+t.dimensions.height+r,_=new x().moveTo(u+t.dimensions.width,c).arcTo(r,r,0,!1,!0,u+t.dimensions.width+r,c+r).lineTo(u+t.dimensions.width+r,T).arcTo(r,r,0,!1,!0,u+t.dimensions.width,T+r).lineTo(r*2,T+r).arcTo(r,r,0,!1,!0,r,T).lineTo(r,c+r).arcTo(r,r,0,!1,!0,r*2,c);if(p.append("path").attr("class","railroad-line").attr("d",_.build()),s){const v=new x().moveTo(0,c).arcTo(r,r,0,!1,!1,r,c-r).lineTo(r,r).arcTo(r,r,0,!1,!0,r*2,0).lineTo(g-r*2,0).arcTo(r,r,0,!1,!0,g-r,r).lineTo(g-r,c-r).arcTo(r,r,0,!1,!1,g,c);p.append("path").attr("class","railroad-line").attr("d",v.build())}return{element:p.node(),dimensions:{width:g,height:d,up:c,down:d-c}}}renderSpecial(i,a){const n=this.measureText("? "+a+" ?"),t=n.width+this.config.padding*2,r=n.height+this.config.padding*2,o=i.append("g").attr("class","railroad-special");return o.append("rect").attr("x",0).attr("y",0).attr("width",t).attr("height",r),o.append("text").attr("x",t/2).attr("y",r/2).text("? "+a+" ?"),{element:o.node(),dimensions:{width:t,height:r,up:r/2,down:r/2}}}renderExpression(i,a){switch(a.type){case"terminal":return this.renderTerminal(i,a.value);case"nonterminal":return this.renderNonTerminal(i,a.name);case"sequence":return this.renderSequence(i,a.elements);case"choice":return this.renderChoice(i,a.alternatives);case"optional":return this.renderOptional(i,a.element);case"repetition":return this.renderRepetition(i,a.element,a.min);case"special":return this.renderSpecial(i,a.text);default:throw new Error(`Unknown node type: ${a.type}`)}}renderRule(i,a){const n=this.svg.append("g").attr("class","railroad-rule").attr("transform",`translate(0, ${a})`),t=i.name+" =",r=this.measureText(t).width+20,o=r+20,g=n.append("g"),s=this.renderExpression(g,i.definition),d=Math.max(20,s.dimensions.up),p=d-s.dimensions.up;return g.attr("transform",`translate(${o}, ${p})`),n.append("g").attr("class","railroad-rule-name-group").append("text").attr("class","railroad-rule-name").attr("x",0).attr("y",d).text(t),n.append("g").attr("class","railroad-start").append("circle").attr("cx",r).attr("cy",d).attr("r",this.config.markerRadius),n.append("g").attr("class","railroad-end").append("circle").attr("cx",o+s.dimensions.width+10).attr("cy",d).attr("r",this.config.markerRadius),n.append("path").attr("class","railroad-line").attr("d",new x().moveTo(r+this.config.markerRadius,d).lineTo(o,d).build()),n.append("path").attr("class","railroad-line").attr("d",new x().moveTo(o+s.dimensions.width,d).lineTo(o+s.dimensions.width+10-this.config.markerRadius,d).build()),{height:Math.max(40,p+s.dimensions.height+this.config.padding*2),width:o+s.dimensions.width+10+this.config.markerRadius}}renderDiagram(i){let a=this.config.padding,n=0;for(const t of i){const r=this.renderRule(t,a);a+=r.height+this.config.verticalSeparation,n=Math.max(n,r.width)}return{width:n+this.config.padding*2,height:a+this.config.padding}}},l.__name(R,"RailroadRenderer"),R),E=l.__name((e,i,a)=>{l.configureSvgSize(e,i.height,i.width,a),e.attr("viewBox",`0 0 ${i.width} ${i.height}`)},"configureRailroadSvgSize"),se=l.__name((e,i,a)=>{l.log.debug(`[Railroad] Rendering diagram
|
|
88
88
|
`+e);try{const n=l.selectSvgElement(i);n.attr("class","railroad-diagram");const r=l.getConfig().railroad?.useMaxWidth??!0,o=Y.getRules();if(l.log.debug(`[Railroad] Rendering ${o.length} rules`),o.length===0){l.log.warn("[Railroad] No rules to render"),E(n,{height:100,width:200},r);return}const s=new le(n,O()).renderDiagram(o);E(n,s,r),l.log.debug("[Railroad] Render complete")}catch(n){throw l.log.error("[Railroad] Render error:",n),n}},"draw"),de={draw:se};exports.db=Y;exports.getStyles=oe;exports.renderer=de;
|
|
89
|
-
//# sourceMappingURL=chunk-MOJQB5TN-
|
|
89
|
+
//# sourceMappingURL=chunk-MOJQB5TN-Bbpbi357.cjs.map
|