dominds 1.16.2 → 1.16.4

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.
Files changed (170) hide show
  1. package/dist/dialog-display-state.d.ts +3 -1
  2. package/dist/dialog-display-state.js +8 -1
  3. package/dist/dialog-fork.js +9 -0
  4. package/dist/dialog-global-registry.d.ts +5 -1
  5. package/dist/dialog-global-registry.js +45 -1
  6. package/dist/dialog.d.ts +3 -0
  7. package/dist/dialog.js +4 -0
  8. package/dist/llm/gen/anthropic.d.ts +3 -3
  9. package/dist/llm/gen/anthropic.js +115 -21
  10. package/dist/llm/gen/codex.js +78 -13
  11. package/dist/llm/gen/failure-classifier.js +10 -0
  12. package/dist/llm/gen/openai-compatible.d.ts +6 -3
  13. package/dist/llm/gen/openai-compatible.js +132 -16
  14. package/dist/llm/gen/openai.d.ts +2 -2
  15. package/dist/llm/gen/openai.js +95 -15
  16. package/dist/llm/gen/tool-result-image-ingest.d.ts +39 -0
  17. package/dist/llm/gen/tool-result-image-ingest.js +158 -0
  18. package/dist/llm/gen.d.ts +17 -1
  19. package/dist/llm/kernel-driver/drive.js +15 -0
  20. package/dist/llm/kernel-driver/flow.js +230 -177
  21. package/dist/llm/kernel-driver/loop.js +5 -0
  22. package/dist/persistence.d.ts +2 -0
  23. package/dist/persistence.js +107 -0
  24. package/dist/priming.js +76 -0
  25. package/package.json +3 -3
  26. package/webapp/dist/assets/{_basePickBy-BJWCmtUm.js → _basePickBy-BKLfvXfr.js} +3 -3
  27. package/webapp/dist/assets/_basePickBy-BKLfvXfr.js.map +1 -0
  28. package/webapp/dist/assets/{_baseUniq-D6k_lGfs.js → _baseUniq-DeO2MBcA.js} +2 -2
  29. package/webapp/dist/assets/_baseUniq-DeO2MBcA.js.map +1 -0
  30. package/webapp/dist/assets/{arc-DYDaESgj.js → arc-Bez5-ouI.js} +2 -2
  31. package/webapp/dist/assets/arc-Bez5-ouI.js.map +1 -0
  32. package/webapp/dist/assets/{architectureDiagram-VXUJARFQ-DZMT7dqc.js → architectureDiagram-2XIMDMQ5-BiDh8CGJ.js} +26 -8
  33. package/webapp/dist/assets/architectureDiagram-2XIMDMQ5-BiDh8CGJ.js.map +1 -0
  34. package/webapp/dist/assets/{blockDiagram-VD42YOAC-CABpgVAa.js → blockDiagram-WCTKOSBZ-fSZbZ3PY.js} +187 -170
  35. package/webapp/dist/assets/blockDiagram-WCTKOSBZ-fSZbZ3PY.js.map +1 -0
  36. package/webapp/dist/assets/{c4Diagram-YG6GDRKO-COLZS8Ul.js → c4Diagram-IC4MRINW-C-WxkPD_.js} +4 -4
  37. package/webapp/dist/assets/c4Diagram-IC4MRINW-C-WxkPD_.js.map +1 -0
  38. package/webapp/dist/assets/{channel-CYFm9Cri.js → channel-CbXK2-c_.js} +2 -2
  39. package/webapp/dist/assets/channel-CbXK2-c_.js.map +1 -0
  40. package/webapp/dist/assets/{chunk-4BX2VUAB-CX_-XbaN.js → chunk-4BX2VUAB-D6CgMaUm.js} +2 -2
  41. package/webapp/dist/assets/chunk-4BX2VUAB-D6CgMaUm.js.map +1 -0
  42. package/webapp/dist/assets/{chunk-55IACEB6-ByD-NdBC.js → chunk-55IACEB6-CafQjmEn.js} +2 -2
  43. package/webapp/dist/assets/chunk-55IACEB6-CafQjmEn.js.map +1 -0
  44. package/webapp/dist/assets/{chunk-FMBD7UC4-DYGviJnf.js → chunk-FMBD7UC4-CZRe1oW9.js} +2 -2
  45. package/webapp/dist/assets/chunk-FMBD7UC4-CZRe1oW9.js.map +1 -0
  46. package/webapp/dist/assets/{chunk-TZMSLE5B-_HISzxl3.js → chunk-JSJVCQXG-C3KJDde2.js} +14 -6
  47. package/webapp/dist/assets/chunk-JSJVCQXG-C3KJDde2.js.map +1 -0
  48. package/webapp/dist/assets/{chunk-QN33PNHL-B8DWRL9f.js → chunk-KX2RTZJC-1gHfMJyM.js} +2 -2
  49. package/webapp/dist/assets/chunk-KX2RTZJC-1gHfMJyM.js.map +1 -0
  50. package/webapp/dist/assets/{chunk-DI55MBZ5-DV7sdJmQ.js → chunk-NQ4KR5QH-CEZ0VIio.js} +9 -7
  51. package/webapp/dist/assets/chunk-NQ4KR5QH-CEZ0VIio.js.map +1 -0
  52. package/webapp/dist/assets/{chunk-QZHKN3VN-B1aYIzMR.js → chunk-QZHKN3VN-BE5nbumW.js} +2 -2
  53. package/webapp/dist/assets/chunk-QZHKN3VN-BE5nbumW.js.map +1 -0
  54. package/webapp/dist/assets/{chunk-B4BG7PRW-BANemsDD.js → chunk-WL4C6EOR-CY1FogYe.js} +171 -121
  55. package/webapp/dist/assets/chunk-WL4C6EOR-CY1FogYe.js.map +1 -0
  56. package/webapp/dist/assets/{classDiagram-2ON5EDUG-CpyYj1Rc.js → classDiagram-VBA2DB6C-DIAo1m4U.js} +7 -6
  57. package/webapp/dist/assets/classDiagram-VBA2DB6C-DIAo1m4U.js.map +1 -0
  58. package/webapp/dist/assets/{classDiagram-v2-WZHVMYZB-CpyYj1Rc.js → classDiagram-v2-RAHNMMFH-DIAo1m4U.js} +7 -6
  59. package/webapp/dist/assets/classDiagram-v2-RAHNMMFH-DIAo1m4U.js.map +1 -0
  60. package/webapp/dist/assets/{clone-B_9AxWIU.js → clone-BzZfwhKW.js} +2 -2
  61. package/webapp/dist/assets/clone-BzZfwhKW.js.map +1 -0
  62. package/webapp/dist/assets/{cose-bilkent-S5V4N54A-17ECLfPR.js → cose-bilkent-S5V4N54A-DIRdD9UY.js} +2 -2
  63. package/webapp/dist/assets/cose-bilkent-S5V4N54A-DIRdD9UY.js.map +1 -0
  64. package/webapp/dist/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -1
  65. package/webapp/dist/assets/{dagre-6UL2VRFP-DhRqcF1o.js → dagre-KLK3FWXG-BCEgv7zL.js} +7 -7
  66. package/webapp/dist/assets/dagre-KLK3FWXG-BCEgv7zL.js.map +1 -0
  67. package/webapp/dist/assets/defaultLocale-B2RvLBDe.js.map +1 -1
  68. package/webapp/dist/assets/{diagram-PSM6KHXK-lpDT6Wwb.js → diagram-E7M64L7V-CwNdHUlg.js} +10 -10
  69. package/webapp/dist/assets/diagram-E7M64L7V-CwNdHUlg.js.map +1 -0
  70. package/webapp/dist/assets/{diagram-QEK2KX5R-ohxbPpDH.js → diagram-IFDJBPK2-DBtRFFBv.js} +9 -8
  71. package/webapp/dist/assets/diagram-IFDJBPK2-DBtRFFBv.js.map +1 -0
  72. package/webapp/dist/assets/{diagram-S2PKOQOG-DAFFGfch.js → diagram-P4PSJMXO-BJRf8VnU.js} +8 -8
  73. package/webapp/dist/assets/diagram-P4PSJMXO-BJRf8VnU.js.map +1 -0
  74. package/webapp/dist/assets/{erDiagram-Q2GNP2WA-BH-7rI43.js → erDiagram-INFDFZHY-BoZdWdP2.js} +96 -75
  75. package/webapp/dist/assets/erDiagram-INFDFZHY-BoZdWdP2.js.map +1 -0
  76. package/webapp/dist/assets/{flowDiagram-NV44I4VS-CdEjFbz4.js → flowDiagram-PKNHOUZH-Dptcw76l.js} +98 -81
  77. package/webapp/dist/assets/flowDiagram-PKNHOUZH-Dptcw76l.js.map +1 -0
  78. package/webapp/dist/assets/{ganttDiagram-JELNMOA3-Cju2t-lK.js → ganttDiagram-A5KZAMGK-qM3zsgxI.js} +28 -3
  79. package/webapp/dist/assets/ganttDiagram-A5KZAMGK-qM3zsgxI.js.map +1 -0
  80. package/webapp/dist/assets/{gitGraphDiagram-V2S2FVAM-CUJ5oxCg.js → gitGraphDiagram-K3NZZRJ6-125S1YW0.js} +38 -46
  81. package/webapp/dist/assets/gitGraphDiagram-K3NZZRJ6-125S1YW0.js.map +1 -0
  82. package/webapp/dist/assets/graph-PACfG8qk.js +782 -0
  83. package/webapp/dist/assets/graph-PACfG8qk.js.map +1 -0
  84. package/webapp/dist/assets/{index-BLnM-uON.js → index-D8Klc1n-.js} +1114 -1048
  85. package/webapp/dist/assets/{index-BLnM-uON.js.map → index-D8Klc1n-.js.map} +1 -1
  86. package/webapp/dist/assets/{index-xvYYeHuy.css → index-YaxF76or.css} +1 -1
  87. package/webapp/dist/assets/{infoDiagram-HS3SLOUP-Df8p0okQ.js → infoDiagram-LFFYTUFH-B9vrFy_9.js} +7 -7
  88. package/webapp/dist/assets/infoDiagram-LFFYTUFH-B9vrFy_9.js.map +1 -0
  89. package/webapp/dist/assets/init-ZxktEp_H.js.map +1 -1
  90. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-CzcXR0Tc.js +966 -0
  91. package/webapp/dist/assets/ishikawaDiagram-PHBUUO56-CzcXR0Tc.js.map +1 -0
  92. package/webapp/dist/assets/{journeyDiagram-XKPGCS4Q-BXMl8H-d.js → journeyDiagram-4ABVD52K-BzoWs6ft.js} +5 -5
  93. package/webapp/dist/assets/journeyDiagram-4ABVD52K-BzoWs6ft.js.map +1 -0
  94. package/webapp/dist/assets/{kanban-definition-3W4ZIXB7-Cc5RwCEh.js → kanban-definition-K7BYSVSG-TJm1UiSH.js} +5 -3
  95. package/webapp/dist/assets/kanban-definition-K7BYSVSG-TJm1UiSH.js.map +1 -0
  96. package/webapp/dist/assets/{layout-BB2SvQcE.js → layout-D-kg27bk.js} +5 -5
  97. package/webapp/dist/assets/layout-D-kg27bk.js.map +1 -0
  98. package/webapp/dist/assets/{linear-Cj50lA0a.js → linear-l0qAHpRW.js} +2 -2
  99. package/webapp/dist/assets/linear-l0qAHpRW.js.map +1 -0
  100. package/webapp/dist/assets/{mindmap-definition-VGOIOE7T-BLBklJVX.js → mindmap-definition-YRQLILUH-D4282T7u.js} +7 -5
  101. package/webapp/dist/assets/mindmap-definition-YRQLILUH-D4282T7u.js.map +1 -0
  102. package/webapp/dist/assets/ordinal-CxptdPJm.js.map +1 -1
  103. package/webapp/dist/assets/{pieDiagram-ADFJNKIX-BQrOgSc-.js → pieDiagram-SKSYHLDU-BKJYIUkU.js} +8 -8
  104. package/webapp/dist/assets/pieDiagram-SKSYHLDU-BKJYIUkU.js.map +1 -0
  105. package/webapp/dist/assets/{quadrantDiagram-AYHSOK5B-C62TxtsO.js → quadrantDiagram-337W2JSQ-yjekONzR.js} +3 -3
  106. package/webapp/dist/assets/quadrantDiagram-337W2JSQ-yjekONzR.js.map +1 -0
  107. package/webapp/dist/assets/{requirementDiagram-UZGBJVZJ-Is6Q3osM.js → requirementDiagram-Z7DCOOCP-DMH1wutn.js} +16 -6
  108. package/webapp/dist/assets/requirementDiagram-Z7DCOOCP-DMH1wutn.js.map +1 -0
  109. package/webapp/dist/assets/{sankeyDiagram-TZEHDZUN-CCAW8Dr2.js → sankeyDiagram-WA2Y5GQK-Cs4ACtdq.js} +2 -2
  110. package/webapp/dist/assets/sankeyDiagram-WA2Y5GQK-Cs4ACtdq.js.map +1 -0
  111. package/webapp/dist/assets/{sequenceDiagram-WL72ISMW-DpODpbl6.js → sequenceDiagram-2WXFIKYE-4sriOpV9.js} +601 -201
  112. package/webapp/dist/assets/sequenceDiagram-2WXFIKYE-4sriOpV9.js.map +1 -0
  113. package/webapp/dist/assets/{stateDiagram-FKZM4ZOC-B8LHaf5T.js → stateDiagram-RAJIS63D-BUMObt6W.js} +9 -9
  114. package/webapp/dist/assets/stateDiagram-RAJIS63D-BUMObt6W.js.map +1 -0
  115. package/webapp/dist/assets/{stateDiagram-v2-4FDKWEC3-4FzTkpgz.js → stateDiagram-v2-FVOUBMTO-DazzpfnH.js} +5 -5
  116. package/webapp/dist/assets/stateDiagram-v2-FVOUBMTO-DazzpfnH.js.map +1 -0
  117. package/webapp/dist/assets/{timeline-definition-IT6M3QCI-Ckxc4qZe.js → timeline-definition-YZTLITO2-CdChFPnp.js} +3 -3
  118. package/webapp/dist/assets/timeline-definition-YZTLITO2-CdChFPnp.js.map +1 -0
  119. package/webapp/dist/assets/{treemap-GDKQZRPO-QQa4vKMv.js → treemap-KZPCXAKY-DW9mBchB.js} +37 -24
  120. package/webapp/dist/assets/treemap-KZPCXAKY-DW9mBchB.js.map +1 -0
  121. package/webapp/dist/assets/vennDiagram-LZ73GAT5-Bu9N_8Cu.js +2487 -0
  122. package/webapp/dist/assets/vennDiagram-LZ73GAT5-Bu9N_8Cu.js.map +1 -0
  123. package/webapp/dist/assets/{xychartDiagram-PRI3JC2R-Ba2uJcs6.js → xychartDiagram-JWTSCODW-BI_N4JiZ.js} +4 -4
  124. package/webapp/dist/assets/xychartDiagram-JWTSCODW-BI_N4JiZ.js.map +1 -0
  125. package/webapp/dist/index.html +2 -2
  126. package/webapp/dist/assets/_basePickBy-BJWCmtUm.js.map +0 -1
  127. package/webapp/dist/assets/_baseUniq-D6k_lGfs.js.map +0 -1
  128. package/webapp/dist/assets/arc-DYDaESgj.js.map +0 -1
  129. package/webapp/dist/assets/architectureDiagram-VXUJARFQ-DZMT7dqc.js.map +0 -1
  130. package/webapp/dist/assets/blockDiagram-VD42YOAC-CABpgVAa.js.map +0 -1
  131. package/webapp/dist/assets/c4Diagram-YG6GDRKO-COLZS8Ul.js.map +0 -1
  132. package/webapp/dist/assets/channel-CYFm9Cri.js.map +0 -1
  133. package/webapp/dist/assets/chunk-4BX2VUAB-CX_-XbaN.js.map +0 -1
  134. package/webapp/dist/assets/chunk-55IACEB6-ByD-NdBC.js.map +0 -1
  135. package/webapp/dist/assets/chunk-B4BG7PRW-BANemsDD.js.map +0 -1
  136. package/webapp/dist/assets/chunk-DI55MBZ5-DV7sdJmQ.js.map +0 -1
  137. package/webapp/dist/assets/chunk-FMBD7UC4-DYGviJnf.js.map +0 -1
  138. package/webapp/dist/assets/chunk-QN33PNHL-B8DWRL9f.js.map +0 -1
  139. package/webapp/dist/assets/chunk-QZHKN3VN-B1aYIzMR.js.map +0 -1
  140. package/webapp/dist/assets/chunk-TZMSLE5B-_HISzxl3.js.map +0 -1
  141. package/webapp/dist/assets/classDiagram-2ON5EDUG-CpyYj1Rc.js.map +0 -1
  142. package/webapp/dist/assets/classDiagram-v2-WZHVMYZB-CpyYj1Rc.js.map +0 -1
  143. package/webapp/dist/assets/clone-B_9AxWIU.js.map +0 -1
  144. package/webapp/dist/assets/cose-bilkent-S5V4N54A-17ECLfPR.js.map +0 -1
  145. package/webapp/dist/assets/dagre-6UL2VRFP-DhRqcF1o.js.map +0 -1
  146. package/webapp/dist/assets/diagram-PSM6KHXK-lpDT6Wwb.js.map +0 -1
  147. package/webapp/dist/assets/diagram-QEK2KX5R-ohxbPpDH.js.map +0 -1
  148. package/webapp/dist/assets/diagram-S2PKOQOG-DAFFGfch.js.map +0 -1
  149. package/webapp/dist/assets/erDiagram-Q2GNP2WA-BH-7rI43.js.map +0 -1
  150. package/webapp/dist/assets/flowDiagram-NV44I4VS-CdEjFbz4.js.map +0 -1
  151. package/webapp/dist/assets/ganttDiagram-JELNMOA3-Cju2t-lK.js.map +0 -1
  152. package/webapp/dist/assets/gitGraphDiagram-V2S2FVAM-CUJ5oxCg.js.map +0 -1
  153. package/webapp/dist/assets/graph-mhcc7ldf.js +0 -425
  154. package/webapp/dist/assets/graph-mhcc7ldf.js.map +0 -1
  155. package/webapp/dist/assets/infoDiagram-HS3SLOUP-Df8p0okQ.js.map +0 -1
  156. package/webapp/dist/assets/journeyDiagram-XKPGCS4Q-BXMl8H-d.js.map +0 -1
  157. package/webapp/dist/assets/kanban-definition-3W4ZIXB7-Cc5RwCEh.js.map +0 -1
  158. package/webapp/dist/assets/layout-BB2SvQcE.js.map +0 -1
  159. package/webapp/dist/assets/linear-Cj50lA0a.js.map +0 -1
  160. package/webapp/dist/assets/mindmap-definition-VGOIOE7T-BLBklJVX.js.map +0 -1
  161. package/webapp/dist/assets/pieDiagram-ADFJNKIX-BQrOgSc-.js.map +0 -1
  162. package/webapp/dist/assets/quadrantDiagram-AYHSOK5B-C62TxtsO.js.map +0 -1
  163. package/webapp/dist/assets/requirementDiagram-UZGBJVZJ-Is6Q3osM.js.map +0 -1
  164. package/webapp/dist/assets/sankeyDiagram-TZEHDZUN-CCAW8Dr2.js.map +0 -1
  165. package/webapp/dist/assets/sequenceDiagram-WL72ISMW-DpODpbl6.js.map +0 -1
  166. package/webapp/dist/assets/stateDiagram-FKZM4ZOC-B8LHaf5T.js.map +0 -1
  167. package/webapp/dist/assets/stateDiagram-v2-4FDKWEC3-4FzTkpgz.js.map +0 -1
  168. package/webapp/dist/assets/timeline-definition-IT6M3QCI-Ckxc4qZe.js.map +0 -1
  169. package/webapp/dist/assets/treemap-GDKQZRPO-QQa4vKMv.js.map +0 -1
  170. package/webapp/dist/assets/xychartDiagram-PRI3JC2R-Ba2uJcs6.js.map +0 -1
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-6UL2VRFP-DhRqcF1o.js","assets/graph-mhcc7ldf.js","assets/_baseUniq-D6k_lGfs.js","assets/layout-BB2SvQcE.js","assets/_basePickBy-BJWCmtUm.js","assets/clone-B_9AxWIU.js","assets/cose-bilkent-S5V4N54A-17ECLfPR.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-YG6GDRKO-COLZS8Ul.js","assets/chunk-TZMSLE5B-_HISzxl3.js","assets/flowDiagram-NV44I4VS-CdEjFbz4.js","assets/chunk-FMBD7UC4-DYGviJnf.js","assets/chunk-55IACEB6-ByD-NdBC.js","assets/chunk-QN33PNHL-B8DWRL9f.js","assets/channel-CYFm9Cri.js","assets/erDiagram-Q2GNP2WA-BH-7rI43.js","assets/gitGraphDiagram-V2S2FVAM-CUJ5oxCg.js","assets/chunk-4BX2VUAB-CX_-XbaN.js","assets/chunk-QZHKN3VN-B1aYIzMR.js","assets/treemap-GDKQZRPO-QQa4vKMv.js","assets/ganttDiagram-JELNMOA3-Cju2t-lK.js","assets/linear-Cj50lA0a.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-HS3SLOUP-Df8p0okQ.js","assets/pieDiagram-ADFJNKIX-BQrOgSc-.js","assets/arc-DYDaESgj.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-AYHSOK5B-C62TxtsO.js","assets/xychartDiagram-PRI3JC2R-Ba2uJcs6.js","assets/requirementDiagram-UZGBJVZJ-Is6Q3osM.js","assets/sequenceDiagram-WL72ISMW-DpODpbl6.js","assets/classDiagram-2ON5EDUG-CpyYj1Rc.js","assets/chunk-B4BG7PRW-BANemsDD.js","assets/classDiagram-v2-WZHVMYZB-CpyYj1Rc.js","assets/stateDiagram-FKZM4ZOC-B8LHaf5T.js","assets/chunk-DI55MBZ5-DV7sdJmQ.js","assets/stateDiagram-v2-4FDKWEC3-4FzTkpgz.js","assets/journeyDiagram-XKPGCS4Q-BXMl8H-d.js","assets/timeline-definition-IT6M3QCI-Ckxc4qZe.js","assets/mindmap-definition-VGOIOE7T-BLBklJVX.js","assets/kanban-definition-3W4ZIXB7-Cc5RwCEh.js","assets/sankeyDiagram-TZEHDZUN-CCAW8Dr2.js","assets/diagram-S2PKOQOG-DAFFGfch.js","assets/diagram-QEK2KX5R-ohxbPpDH.js","assets/blockDiagram-VD42YOAC-CABpgVAa.js","assets/architectureDiagram-VXUJARFQ-DZMT7dqc.js","assets/diagram-PSM6KHXK-lpDT6Wwb.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-KLK3FWXG-BCEgv7zL.js","assets/graph-PACfG8qk.js","assets/_baseUniq-DeO2MBcA.js","assets/layout-D-kg27bk.js","assets/_basePickBy-BKLfvXfr.js","assets/clone-BzZfwhKW.js","assets/cose-bilkent-S5V4N54A-DIRdD9UY.js","assets/cytoscape.esm-Bm8DJGmZ.js","assets/c4Diagram-IC4MRINW-C-WxkPD_.js","assets/chunk-JSJVCQXG-C3KJDde2.js","assets/flowDiagram-PKNHOUZH-Dptcw76l.js","assets/chunk-FMBD7UC4-CZRe1oW9.js","assets/chunk-55IACEB6-CafQjmEn.js","assets/chunk-KX2RTZJC-1gHfMJyM.js","assets/channel-CbXK2-c_.js","assets/erDiagram-INFDFZHY-BoZdWdP2.js","assets/gitGraphDiagram-K3NZZRJ6-125S1YW0.js","assets/chunk-4BX2VUAB-D6CgMaUm.js","assets/chunk-QZHKN3VN-BE5nbumW.js","assets/treemap-KZPCXAKY-DW9mBchB.js","assets/ganttDiagram-A5KZAMGK-qM3zsgxI.js","assets/linear-l0qAHpRW.js","assets/init-ZxktEp_H.js","assets/defaultLocale-B2RvLBDe.js","assets/infoDiagram-LFFYTUFH-B9vrFy_9.js","assets/pieDiagram-SKSYHLDU-BKJYIUkU.js","assets/arc-Bez5-ouI.js","assets/ordinal-CxptdPJm.js","assets/quadrantDiagram-337W2JSQ-yjekONzR.js","assets/xychartDiagram-JWTSCODW-BI_N4JiZ.js","assets/requirementDiagram-Z7DCOOCP-DMH1wutn.js","assets/sequenceDiagram-2WXFIKYE-4sriOpV9.js","assets/classDiagram-VBA2DB6C-DIAo1m4U.js","assets/chunk-WL4C6EOR-CY1FogYe.js","assets/classDiagram-v2-RAHNMMFH-DIAo1m4U.js","assets/stateDiagram-RAJIS63D-BUMObt6W.js","assets/chunk-NQ4KR5QH-CEZ0VIio.js","assets/stateDiagram-v2-FVOUBMTO-DazzpfnH.js","assets/journeyDiagram-4ABVD52K-BzoWs6ft.js","assets/timeline-definition-YZTLITO2-CdChFPnp.js","assets/mindmap-definition-YRQLILUH-D4282T7u.js","assets/kanban-definition-K7BYSVSG-TJm1UiSH.js","assets/sankeyDiagram-WA2Y5GQK-Cs4ACtdq.js","assets/diagram-P4PSJMXO-BJRf8VnU.js","assets/diagram-IFDJBPK2-DBtRFFBv.js","assets/blockDiagram-WCTKOSBZ-fSZbZ3PY.js","assets/architectureDiagram-2XIMDMQ5-BiDh8CGJ.js","assets/diagram-E7M64L7V-CwNdHUlg.js"])))=>i.map(i=>d[i]);
2
2
  var __defProp = Object.defineProperty;
3
3
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
4
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -5361,7 +5361,7 @@ const _createHooksMap = function _createHooksMap2() {
5361
5361
  function createDOMPurify() {
5362
5362
  let window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
5363
5363
  const DOMPurify = (root2) => createDOMPurify(root2);
5364
- DOMPurify.version = "3.3.2";
5364
+ DOMPurify.version = "3.3.3";
5365
5365
  DOMPurify.removed = [];
5366
5366
  if (!window2 || !window2.document || window2.document.nodeType !== NODE_TYPE.document || !window2.Element) {
5367
5367
  DOMPurify.isSupported = false;
@@ -11297,9 +11297,9 @@ MarkdownIt.prototype.disable = function(list2, ignoreInvalid) {
11297
11297
  }
11298
11298
  return this;
11299
11299
  };
11300
- MarkdownIt.prototype.use = function(plugin22) {
11300
+ MarkdownIt.prototype.use = function(plugin23) {
11301
11301
  const args = [this].concat(Array.prototype.slice.call(arguments, 1));
11302
- plugin22.apply(plugin22, args);
11302
+ plugin23.apply(plugin23, args);
11303
11303
  return this;
11304
11304
  };
11305
11305
  MarkdownIt.prototype.parse = function(src, env) {
@@ -12775,37 +12775,37 @@ function requireCore() {
12775
12775
  const lang = getLanguage(name);
12776
12776
  return lang && !lang.disableAutodetect;
12777
12777
  }
12778
- function upgradePluginAPI(plugin22) {
12779
- if (plugin22["before:highlightBlock"] && !plugin22["before:highlightElement"]) {
12780
- plugin22["before:highlightElement"] = (data) => {
12781
- plugin22["before:highlightBlock"](
12778
+ function upgradePluginAPI(plugin23) {
12779
+ if (plugin23["before:highlightBlock"] && !plugin23["before:highlightElement"]) {
12780
+ plugin23["before:highlightElement"] = (data) => {
12781
+ plugin23["before:highlightBlock"](
12782
12782
  Object.assign({ block: data.el }, data)
12783
12783
  );
12784
12784
  };
12785
12785
  }
12786
- if (plugin22["after:highlightBlock"] && !plugin22["after:highlightElement"]) {
12787
- plugin22["after:highlightElement"] = (data) => {
12788
- plugin22["after:highlightBlock"](
12786
+ if (plugin23["after:highlightBlock"] && !plugin23["after:highlightElement"]) {
12787
+ plugin23["after:highlightElement"] = (data) => {
12788
+ plugin23["after:highlightBlock"](
12789
12789
  Object.assign({ block: data.el }, data)
12790
12790
  );
12791
12791
  };
12792
12792
  }
12793
12793
  }
12794
- function addPlugin(plugin22) {
12795
- upgradePluginAPI(plugin22);
12796
- plugins.push(plugin22);
12794
+ function addPlugin(plugin23) {
12795
+ upgradePluginAPI(plugin23);
12796
+ plugins.push(plugin23);
12797
12797
  }
12798
- function removePlugin(plugin22) {
12799
- const index = plugins.indexOf(plugin22);
12798
+ function removePlugin(plugin23) {
12799
+ const index = plugins.indexOf(plugin23);
12800
12800
  if (index !== -1) {
12801
12801
  plugins.splice(index, 1);
12802
12802
  }
12803
12803
  }
12804
12804
  function fire(event, args) {
12805
12805
  const cb = event;
12806
- plugins.forEach(function(plugin22) {
12807
- if (plugin22[cb]) {
12808
- plugin22[cb](args);
12806
+ plugins.forEach(function(plugin23) {
12807
+ if (plugin23[cb]) {
12808
+ plugin23[cb](args);
12809
12809
  }
12810
12810
  });
12811
12811
  }
@@ -63691,8 +63691,8 @@ class Settings {
63691
63691
  }
63692
63692
  }
63693
63693
  class Style {
63694
- constructor(id28, size, cramped) {
63695
- this.id = id28;
63694
+ constructor(id30, size, cramped) {
63695
+ this.id = id30;
63696
63696
  this.size = size;
63697
63697
  this.cramped = cramped;
63698
63698
  }
@@ -64020,6 +64020,44 @@ var tallDelim = function tallDelim2(label, midHeight) {
64020
64020
  throw new Error("Unknown stretchy delimiter.");
64021
64021
  }
64022
64022
  };
64023
+ class DocumentFragment {
64024
+ // Never used; needed for satisfying interface.
64025
+ constructor(children2) {
64026
+ this.children = children2;
64027
+ this.classes = [];
64028
+ this.height = 0;
64029
+ this.depth = 0;
64030
+ this.maxFontSize = 0;
64031
+ this.style = {};
64032
+ }
64033
+ hasClass(className) {
64034
+ return this.classes.includes(className);
64035
+ }
64036
+ /** Convert the fragment into a node. */
64037
+ toNode() {
64038
+ var frag = document.createDocumentFragment();
64039
+ for (var i2 = 0; i2 < this.children.length; i2++) {
64040
+ frag.appendChild(this.children[i2].toNode());
64041
+ }
64042
+ return frag;
64043
+ }
64044
+ /** Convert the fragment into HTML markup. */
64045
+ toMarkup() {
64046
+ var markup = "";
64047
+ for (var i2 = 0; i2 < this.children.length; i2++) {
64048
+ markup += this.children[i2].toMarkup();
64049
+ }
64050
+ return markup;
64051
+ }
64052
+ /**
64053
+ * Converts the math node into a string, similar to innerText. Applies to
64054
+ * MathDomNode's only.
64055
+ */
64056
+ toText() {
64057
+ var toText = (child) => child.toText();
64058
+ return this.children.map(toText).join("");
64059
+ }
64060
+ }
64023
64061
  var ptPerUnit = {
64024
64062
  // https://en.wikibooks.org/wiki/LaTeX/Lengths and
64025
64063
  // https://tex.stackexchange.com/a/8263
@@ -64403,6 +64441,7 @@ function assertSpan(group) {
64403
64441
  throw new Error("Expected span<HtmlDomNode> but got " + String(group) + ".");
64404
64442
  }
64405
64443
  }
64444
+ var hasHtmlDomChildren = (node2) => node2 instanceof Span || node2 instanceof Anchor || node2 instanceof DocumentFragment;
64406
64445
  var fontMetricsData = {
64407
64446
  "AMS-Regular": {
64408
64447
  "32": [0, 0, 0, 0, 0.25],
@@ -67510,44 +67549,6 @@ var wideCharacterFont = (wideChar2, mode) => {
67510
67549
  throw new ParseError("Unsupported character: " + wideChar2);
67511
67550
  }
67512
67551
  };
67513
- class DocumentFragment {
67514
- // Never used; needed for satisfying interface.
67515
- constructor(children2) {
67516
- this.children = children2;
67517
- this.classes = [];
67518
- this.height = 0;
67519
- this.depth = 0;
67520
- this.maxFontSize = 0;
67521
- this.style = {};
67522
- }
67523
- hasClass(className) {
67524
- return this.classes.includes(className);
67525
- }
67526
- /** Convert the fragment into a node. */
67527
- toNode() {
67528
- var frag = document.createDocumentFragment();
67529
- for (var i2 = 0; i2 < this.children.length; i2++) {
67530
- frag.appendChild(this.children[i2].toNode());
67531
- }
67532
- return frag;
67533
- }
67534
- /** Convert the fragment into HTML markup. */
67535
- toMarkup() {
67536
- var markup = "";
67537
- for (var i2 = 0; i2 < this.children.length; i2++) {
67538
- markup += this.children[i2].toMarkup();
67539
- }
67540
- return markup;
67541
- }
67542
- /**
67543
- * Converts the math node into a string, similar to innerText. Applies to
67544
- * MathDomNode's only.
67545
- */
67546
- toText() {
67547
- var toText = (child) => child.toText();
67548
- return this.children.map(toText).join("");
67549
- }
67550
- }
67551
67552
  var lookupSymbol = function lookupSymbol2(value, fontName, mode) {
67552
67553
  if (symbols[mode][value]) {
67553
67554
  var replacement = symbols[mode][value].replace;
@@ -69248,6 +69249,14 @@ function checkSymbolNodeType(node2) {
69248
69249
  }
69249
69250
  return null;
69250
69251
  }
69252
+ var getBaseSymbol = (group) => {
69253
+ if (group instanceof SymbolNode) {
69254
+ return group;
69255
+ }
69256
+ if (hasHtmlDomChildren(group) && group.children.length === 1) {
69257
+ return getBaseSymbol(group.children[0]);
69258
+ }
69259
+ };
69251
69260
  var htmlBuilder$a = (grp, options) => {
69252
69261
  var base2;
69253
69262
  var group;
@@ -69266,9 +69275,8 @@ var htmlBuilder$a = (grp, options) => {
69266
69275
  var mustShift = group.isShifty && isCharacterBox(base2);
69267
69276
  var skew2 = 0;
69268
69277
  if (mustShift) {
69269
- var baseChar = getBaseElem(base2);
69270
- var baseGroup = buildGroup$1(baseChar, options.havingCrampedStyle());
69271
- skew2 = assertSymbolDomNode(baseGroup).skew;
69278
+ var _getBaseSymbol$skew, _getBaseSymbol;
69279
+ skew2 = (_getBaseSymbol$skew = (_getBaseSymbol = getBaseSymbol(body)) == null ? void 0 : _getBaseSymbol.skew) != null ? _getBaseSymbol$skew : 0;
69272
69280
  }
69273
69281
  var accentBelow = group.label === "\\c";
69274
69282
  var clearance = accentBelow ? body.height + body.depth : Math.min(body.height, options.fontMetrics().xHeight);
@@ -77565,7 +77573,7 @@ var renderToHTMLTree = function renderToHTMLTree2(expression, options) {
77565
77573
  return renderError(error2, expression, settings);
77566
77574
  }
77567
77575
  };
77568
- var version = "0.16.37";
77576
+ var version = "0.16.38";
77569
77577
  var __domTree = {
77570
77578
  Span,
77571
77579
  Anchor,
@@ -77795,147 +77803,6 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
77795
77803
  return baseModule().catch(handlePreloadError);
77796
77804
  });
77797
77805
  };
77798
- var package_default = {
77799
- name: "mermaid",
77800
- version: "11.12.3",
77801
- description: "Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.",
77802
- type: "module",
77803
- module: "./dist/mermaid.core.mjs",
77804
- types: "./dist/mermaid.d.ts",
77805
- exports: {
77806
- ".": {
77807
- types: "./dist/mermaid.d.ts",
77808
- import: "./dist/mermaid.core.mjs",
77809
- default: "./dist/mermaid.core.mjs"
77810
- },
77811
- "./*": "./*"
77812
- },
77813
- keywords: [
77814
- "diagram",
77815
- "markdown",
77816
- "flowchart",
77817
- "sequence diagram",
77818
- "gantt",
77819
- "class diagram",
77820
- "git graph",
77821
- "mindmap",
77822
- "packet diagram",
77823
- "c4 diagram",
77824
- "er diagram",
77825
- "pie chart",
77826
- "pie diagram",
77827
- "quadrant chart",
77828
- "requirement diagram",
77829
- "graph"
77830
- ],
77831
- scripts: {
77832
- clean: "rimraf dist",
77833
- dev: "pnpm -w dev",
77834
- "docs:code": "typedoc src/defaultConfig.ts src/config.ts src/mermaid.ts && prettier --write ./src/docs/config/setup",
77835
- "docs:build": "rimraf ../../docs && pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts",
77836
- "docs:verify": "pnpm docs:code && pnpm docs:spellcheck && tsx scripts/docs.cli.mts --verify",
77837
- "docs:pre:vitepress": "pnpm --filter ./src/docs prefetch && rimraf src/vitepress && pnpm docs:code && tsx scripts/docs.cli.mts --vitepress && pnpm --filter ./src/vitepress install --no-frozen-lockfile --ignore-scripts",
77838
- "docs:build:vitepress": "pnpm docs:pre:vitepress && (cd src/vitepress && pnpm run build) && cpy --flat src/docs/landing/ ./src/vitepress/.vitepress/dist/landing",
77839
- "docs:dev": 'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev" "tsx scripts/docs.cli.mts --watch --vitepress"',
77840
- "docs:dev:docker": 'pnpm docs:pre:vitepress && concurrently "pnpm --filter ./src/vitepress dev:docker" "tsx scripts/docs.cli.mts --watch --vitepress"',
77841
- "docs:serve": "pnpm docs:build:vitepress && vitepress serve src/vitepress",
77842
- "docs:spellcheck": 'cspell "src/docs/**/*.md"',
77843
- "docs:release-version": "tsx scripts/update-release-version.mts",
77844
- "docs:verify-version": "tsx scripts/update-release-version.mts --verify",
77845
- "types:build-config": "tsx scripts/create-types-from-json-schema.mts",
77846
- "types:verify-config": "tsx scripts/create-types-from-json-schema.mts --verify",
77847
- checkCircle: "npx madge --circular ./src",
77848
- prepublishOnly: "pnpm docs:verify-version"
77849
- },
77850
- repository: {
77851
- type: "git",
77852
- url: "https://github.com/mermaid-js/mermaid"
77853
- },
77854
- author: "Knut Sveidqvist",
77855
- license: "MIT",
77856
- standard: {
77857
- ignore: [
77858
- "**/parser/*.js",
77859
- "dist/**/*.js",
77860
- "cypress/**/*.js"
77861
- ],
77862
- globals: [
77863
- "page"
77864
- ]
77865
- },
77866
- dependencies: {
77867
- "@braintree/sanitize-url": "^7.1.1",
77868
- "@iconify/utils": "^3.0.1",
77869
- "@mermaid-js/parser": "workspace:^",
77870
- "@types/d3": "^7.4.3",
77871
- cytoscape: "^3.29.3",
77872
- "cytoscape-cose-bilkent": "^4.1.0",
77873
- "cytoscape-fcose": "^2.2.0",
77874
- d3: "^7.9.0",
77875
- "d3-sankey": "^0.12.3",
77876
- "dagre-d3-es": "7.0.13",
77877
- dayjs: "^1.11.18",
77878
- dompurify: "^3.2.5",
77879
- katex: "^0.16.22",
77880
- khroma: "^2.1.0",
77881
- "lodash-es": "^4.17.23",
77882
- marked: "^16.2.1",
77883
- roughjs: "^4.6.6",
77884
- stylis: "^4.3.6",
77885
- "ts-dedent": "^2.2.0",
77886
- uuid: "^11.1.0"
77887
- },
77888
- devDependencies: {
77889
- "@adobe/jsonschema2md": "^8.0.5",
77890
- "@iconify/types": "^2.0.0",
77891
- "@types/cytoscape": "^3.21.9",
77892
- "@types/cytoscape-fcose": "^2.2.4",
77893
- "@types/d3-sankey": "^0.12.4",
77894
- "@types/d3-scale": "^4.0.9",
77895
- "@types/d3-scale-chromatic": "^3.1.0",
77896
- "@types/d3-selection": "^3.0.11",
77897
- "@types/d3-shape": "^3.1.7",
77898
- "@types/jsdom": "^21.1.7",
77899
- "@types/katex": "^0.16.7",
77900
- "@types/lodash-es": "^4.17.12",
77901
- "@types/micromatch": "^4.0.9",
77902
- "@types/stylis": "^4.2.7",
77903
- "@types/uuid": "^10.0.0",
77904
- ajv: "^8.17.1",
77905
- canvas: "^3.1.2",
77906
- chokidar: "3.6.0",
77907
- concurrently: "^9.1.2",
77908
- "csstree-validator": "^4.0.1",
77909
- globby: "^14.1.0",
77910
- jison: "^0.4.18",
77911
- "js-base64": "^3.7.8",
77912
- jsdom: "^26.1.0",
77913
- "json-schema-to-typescript": "^15.0.4",
77914
- micromatch: "^4.0.8",
77915
- "path-browserify": "^1.0.1",
77916
- prettier: "^3.5.3",
77917
- remark: "^15.0.1",
77918
- "remark-frontmatter": "^5.0.0",
77919
- "remark-gfm": "^4.0.1",
77920
- rimraf: "^6.0.1",
77921
- "start-server-and-test": "^2.0.13",
77922
- "type-fest": "^4.35.0",
77923
- typedoc: "^0.28.12",
77924
- "typedoc-plugin-markdown": "^4.8.1",
77925
- typescript: "~5.7.3",
77926
- "unist-util-flatmap": "^1.0.0",
77927
- "unist-util-visit": "^5.0.0",
77928
- vitepress: "^1.6.4",
77929
- "vitepress-plugin-search": "1.0.4-alpha.22"
77930
- },
77931
- files: [
77932
- "dist/",
77933
- "README.md"
77934
- ],
77935
- publishConfig: {
77936
- access: "public"
77937
- }
77938
- };
77939
77806
  var dayjs_min$1 = { exports: {} };
77940
77807
  var dayjs_min = dayjs_min$1.exports;
77941
77808
  var hasRequiredDayjs_min;
@@ -78956,8 +78823,8 @@ var UnknownDiagramError = (_a2 = class extends Error {
78956
78823
  var detectors = {};
78957
78824
  var detectType$1 = /* @__PURE__ */ __name(function(text2, config2) {
78958
78825
  text2 = text2.replace(frontMatterRegex, "").replace(directiveRegex, "").replace(anyCommentRegex, "\n");
78959
- for (const [key, { detector: detector28 }] of Object.entries(detectors)) {
78960
- const diagram2 = detector28(text2, config2);
78826
+ for (const [key, { detector: detector30 }] of Object.entries(detectors)) {
78827
+ const diagram2 = detector30(text2, config2);
78961
78828
  if (diagram2) {
78962
78829
  return key;
78963
78830
  }
@@ -78967,16 +78834,16 @@ var detectType$1 = /* @__PURE__ */ __name(function(text2, config2) {
78967
78834
  );
78968
78835
  }, "detectType");
78969
78836
  var registerLazyLoadedDiagrams = /* @__PURE__ */ __name((...diagrams2) => {
78970
- for (const { id: id28, detector: detector28, loader: loader28 } of diagrams2) {
78971
- addDetector(id28, detector28, loader28);
78837
+ for (const { id: id30, detector: detector30, loader: loader30 } of diagrams2) {
78838
+ addDetector(id30, detector30, loader30);
78972
78839
  }
78973
78840
  }, "registerLazyLoadedDiagrams");
78974
- var addDetector = /* @__PURE__ */ __name((key, detector28, loader28) => {
78841
+ var addDetector = /* @__PURE__ */ __name((key, detector30, loader30) => {
78975
78842
  if (detectors[key]) {
78976
78843
  log.warn(`Detector with key ${key} already exists. Overwriting.`);
78977
78844
  }
78978
- detectors[key] = { detector: detector28, loader: loader28 };
78979
- log.debug(`Detector with key ${key} added${loader28 ? " with loader" : ""}`);
78845
+ detectors[key] = { detector: detector30, loader: loader30 };
78846
+ log.debug(`Detector with key ${key} added${loader30 ? " with loader" : ""}`);
78980
78847
  }, "addDetector");
78981
78848
  var getDiagramLoader = /* @__PURE__ */ __name((key) => {
78982
78849
  return detectors[key].loader;
@@ -79003,7 +78870,7 @@ var assignWithDepth = /* @__PURE__ */ __name((dst, src, { depth = 2, clobber = f
79003
78870
  }
79004
78871
  if (src !== void 0 && typeof dst === "object" && typeof src === "object") {
79005
78872
  Object.keys(src).forEach((key) => {
79006
- if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) {
78873
+ if (typeof src[key] === "object" && src[key] !== null && (dst[key] === void 0 || typeof dst[key] === "object")) {
79007
78874
  if (dst[key] === void 0) {
79008
78875
  dst[key] = Array.isArray(src[key]) ? [] : {};
79009
78876
  }
@@ -79184,6 +79051,16 @@ var Theme = (_b = class {
79184
79051
  this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
79185
79052
  this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
79186
79053
  this.pieOpacity = this.pieOpacity || "0.7";
79054
+ this.venn1 = this.venn1 ?? adjust(this.primaryColor, { l: -30 });
79055
+ this.venn2 = this.venn2 ?? adjust(this.secondaryColor, { l: -30 });
79056
+ this.venn3 = this.venn3 ?? adjust(this.tertiaryColor, { l: -30 });
79057
+ this.venn4 = this.venn4 ?? adjust(this.primaryColor, { h: 60, l: -30 });
79058
+ this.venn5 = this.venn5 ?? adjust(this.primaryColor, { h: -60, l: -30 });
79059
+ this.venn6 = this.venn6 ?? adjust(this.secondaryColor, { h: 60, l: -30 });
79060
+ this.venn7 = this.venn7 ?? adjust(this.primaryColor, { h: 120, l: -30 });
79061
+ this.venn8 = this.venn8 ?? adjust(this.secondaryColor, { h: 120, l: -30 });
79062
+ this.vennTitleTextColor = this.vennTitleTextColor ?? this.titleColor;
79063
+ this.vennSetTextColor = this.vennSetTextColor ?? this.textColor;
79187
79064
  this.radar = {
79188
79065
  axisColor: this.radar?.axisColor || this.lineColor,
79189
79066
  axisStrokeWidth: this.radar?.axisStrokeWidth || 2,
@@ -79425,7 +79302,7 @@ var Theme2 = (_c = class {
79425
79302
  this.taskTextOutsideColor = this.taskTextLightColor;
79426
79303
  this.gridColor = this.mainContrastColor;
79427
79304
  this.doneTaskBkgColor = this.mainContrastColor;
79428
- this.taskTextDarkColor = this.darkTextColor;
79305
+ this.taskTextDarkColor = invert(this.doneTaskBkgColor);
79429
79306
  this.archEdgeColor = this.lineColor;
79430
79307
  this.archEdgeArrowColor = this.lineColor;
79431
79308
  this.transitionColor = this.transitionColor || this.lineColor;
@@ -79491,16 +79368,21 @@ var Theme2 = (_c = class {
79491
79368
  this["pie" + i2] = this["cScale" + i2];
79492
79369
  }
79493
79370
  this.pieTitleTextSize = this.pieTitleTextSize || "25px";
79494
- this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
79371
+ this.pieTitleTextColor = this.pieTitleTextColor || this.mainContrastColor;
79495
79372
  this.pieSectionTextSize = this.pieSectionTextSize || "17px";
79496
79373
  this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
79497
79374
  this.pieLegendTextSize = this.pieLegendTextSize || "17px";
79498
- this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
79375
+ this.pieLegendTextColor = this.pieLegendTextColor || this.mainContrastColor;
79499
79376
  this.pieStrokeColor = this.pieStrokeColor || "black";
79500
79377
  this.pieStrokeWidth = this.pieStrokeWidth || "2px";
79501
79378
  this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
79502
79379
  this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
79503
79380
  this.pieOpacity = this.pieOpacity || "0.7";
79381
+ for (let i2 = 0; i2 < 8; i2++) {
79382
+ this["venn" + (i2 + 1)] = this["venn" + (i2 + 1)] ?? lighten(this["cScale" + i2], 30);
79383
+ }
79384
+ this.vennTitleTextColor = this.vennTitleTextColor ?? this.titleColor;
79385
+ this.vennSetTextColor = this.vennSetTextColor ?? this.textColor;
79504
79386
  this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
79505
79387
  this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });
79506
79388
  this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });
@@ -79819,6 +79701,16 @@ var Theme3 = (_d = class {
79819
79701
  this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
79820
79702
  this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
79821
79703
  this.pieOpacity = this.pieOpacity || "0.7";
79704
+ this.venn1 = this.venn1 ?? adjust(this.primaryColor, { l: -30 });
79705
+ this.venn2 = this.venn2 ?? adjust(this.secondaryColor, { l: -30 });
79706
+ this.venn3 = this.venn3 ?? adjust(this.tertiaryColor, { l: -40 });
79707
+ this.venn4 = this.venn4 ?? adjust(this.primaryColor, { h: 60, l: -30 });
79708
+ this.venn5 = this.venn5 ?? adjust(this.primaryColor, { h: -60, l: -30 });
79709
+ this.venn6 = this.venn6 ?? adjust(this.secondaryColor, { h: 60, l: -30 });
79710
+ this.venn7 = this.venn7 ?? adjust(this.primaryColor, { h: 120, l: -30 });
79711
+ this.venn8 = this.venn8 ?? adjust(this.secondaryColor, { h: 120, l: -30 });
79712
+ this.vennTitleTextColor = this.vennTitleTextColor ?? this.titleColor;
79713
+ this.vennSetTextColor = this.vennSetTextColor ?? this.textColor;
79822
79714
  this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
79823
79715
  this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });
79824
79716
  this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });
@@ -80120,6 +80012,16 @@ var Theme4 = (_e2 = class {
80120
80012
  this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
80121
80013
  this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
80122
80014
  this.pieOpacity = this.pieOpacity || "0.7";
80015
+ this.venn1 = this.venn1 ?? adjust(this.primaryColor, { l: -30 });
80016
+ this.venn2 = this.venn2 ?? adjust(this.secondaryColor, { l: -30 });
80017
+ this.venn3 = this.venn3 ?? adjust(this.tertiaryColor, { l: -30 });
80018
+ this.venn4 = this.venn4 ?? adjust(this.primaryColor, { h: 60, l: -30 });
80019
+ this.venn5 = this.venn5 ?? adjust(this.primaryColor, { h: -60, l: -30 });
80020
+ this.venn6 = this.venn6 ?? adjust(this.secondaryColor, { h: 60, l: -30 });
80021
+ this.venn7 = this.venn7 ?? adjust(this.primaryColor, { h: 120, l: -30 });
80022
+ this.venn8 = this.venn8 ?? adjust(this.secondaryColor, { h: 120, l: -30 });
80023
+ this.vennTitleTextColor = this.vennTitleTextColor ?? this.titleColor;
80024
+ this.vennSetTextColor = this.vennSetTextColor ?? this.textColor;
80123
80025
  this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
80124
80026
  this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });
80125
80027
  this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });
@@ -80441,6 +80343,11 @@ var Theme5 = (_f = class {
80441
80343
  this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
80442
80344
  this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
80443
80345
  this.pieOpacity = this.pieOpacity || "0.7";
80346
+ for (let i2 = 0; i2 < 8; i2++) {
80347
+ this["venn" + (i2 + 1)] = this["venn" + (i2 + 1)] ?? this["cScale" + i2];
80348
+ }
80349
+ this.vennTitleTextColor = this.vennTitleTextColor ?? this.titleColor;
80350
+ this.vennSetTextColor = this.vennSetTextColor ?? this.textColor;
80444
80351
  this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
80445
80352
  this.quadrant2Fill = this.quadrant2Fill || adjust(this.primaryColor, { r: 5, g: 5, b: 5 });
80446
80353
  this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 });
@@ -80569,7 +80476,7 @@ var config_schema_default = {
80569
80476
  "bottom": 0
80570
80477
  },
80571
80478
  "diagramPadding": 8,
80572
- "htmlLabels": true,
80479
+ "htmlLabels": null,
80573
80480
  "nodeSpacing": 50,
80574
80481
  "rankSpacing": 50,
80575
80482
  "curve": "basis",
@@ -80800,6 +80707,10 @@ var config_schema_default = {
80800
80707
  "maxNodeWidth": 200,
80801
80708
  "layoutAlgorithm": "cose-bilkent"
80802
80709
  },
80710
+ "ishikawa": {
80711
+ "useMaxWidth": true,
80712
+ "diagramPadding": 20
80713
+ },
80803
80714
  "kanban": {
80804
80715
  "useMaxWidth": true,
80805
80716
  "padding": 8,
@@ -81027,6 +80938,13 @@ var config_schema_default = {
81027
80938
  "axisLabelFactor": 1.05,
81028
80939
  "curveTension": 0.17
81029
80940
  },
80941
+ "venn": {
80942
+ "useMaxWidth": true,
80943
+ "width": 800,
80944
+ "height": 450,
80945
+ "padding": 8,
80946
+ "useDebugLayout": false
80947
+ },
81030
80948
  "theme": "default",
81031
80949
  "look": "classic",
81032
80950
  "handDrawnSeed": 0,
@@ -81283,6 +81201,9 @@ var config = {
81283
81201
  radar: {
81284
81202
  ...config_schema_default.radar
81285
81203
  },
81204
+ ishikawa: {
81205
+ ...config_schema_default.ishikawa
81206
+ },
81286
81207
  treemap: {
81287
81208
  useMaxWidth: true,
81288
81209
  padding: 10,
@@ -81294,6 +81215,9 @@ var config = {
81294
81215
  valueFontSize: 12,
81295
81216
  labelFontSize: 14,
81296
81217
  valueFormat: ","
81218
+ },
81219
+ venn: {
81220
+ ...config_schema_default.venn
81297
81221
  }
81298
81222
  };
81299
81223
  var keyify = /* @__PURE__ */ __name((obj, prefix = "") => Object.keys(obj).reduce((res, el) => {
@@ -81364,6 +81288,7 @@ var sanitizeCss = /* @__PURE__ */ __name((str2) => {
81364
81288
  return str2;
81365
81289
  }, "sanitizeCss");
81366
81290
  var defaultConfig = Object.freeze(defaultConfig_default);
81291
+ var evaluate = /* @__PURE__ */ __name((val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true, "evaluate");
81367
81292
  var siteConfig = assignWithDepth_default({}, defaultConfig);
81368
81293
  var configFromInitialize;
81369
81294
  var directives = [];
@@ -81458,7 +81383,8 @@ var reset = /* @__PURE__ */ __name((config2 = siteConfig) => {
81458
81383
  updateCurrentConfig(config2, directives);
81459
81384
  }, "reset");
81460
81385
  var ConfigWarning = {
81461
- LAZY_LOAD_DEPRECATED: "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."
81386
+ LAZY_LOAD_DEPRECATED: "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.",
81387
+ FLOWCHART_HTML_LABELS_DEPRECATED: "flowchart.htmlLabels is deprecated. Please use global htmlLabels instead."
81462
81388
  };
81463
81389
  var issuedWarnings = {};
81464
81390
  var issueWarning = /* @__PURE__ */ __name((warning) => {
@@ -81486,6 +81412,12 @@ var getUserDefinedConfig = /* @__PURE__ */ __name(() => {
81486
81412
  }
81487
81413
  return userConfig;
81488
81414
  }, "getUserDefinedConfig");
81415
+ var getEffectiveHtmlLabels = /* @__PURE__ */ __name((config2) => {
81416
+ if (config2.flowchart?.htmlLabels != void 0) {
81417
+ issueWarning("FLOWCHART_HTML_LABELS_DEPRECATED");
81418
+ }
81419
+ return evaluate(config2.htmlLabels ?? config2.flowchart?.htmlLabels ?? true);
81420
+ }, "getEffectiveHtmlLabels");
81489
81421
  var lineBreakRegex = /<br\s*\/?>/gi;
81490
81422
  var getRows = /* @__PURE__ */ __name((s2) => {
81491
81423
  if (!s2) {
@@ -81527,9 +81459,9 @@ var removeScript = /* @__PURE__ */ __name((txt) => {
81527
81459
  return sanitizedText;
81528
81460
  }, "removeScript");
81529
81461
  var sanitizeMore = /* @__PURE__ */ __name((text2, config2) => {
81530
- if (config2.flowchart?.htmlLabels !== false) {
81462
+ if (getEffectiveHtmlLabels(config2)) {
81531
81463
  const level = config2.securityLevel;
81532
- if (level === "antiscript" || level === "strict") {
81464
+ if (level === "antiscript" || level === "strict" || level === "sandbox") {
81533
81465
  text2 = removeScript(text2);
81534
81466
  } else if (level !== "loose") {
81535
81467
  text2 = breakToPlaceholder(text2);
@@ -81579,7 +81511,6 @@ var getUrl = /* @__PURE__ */ __name((useAbsolute) => {
81579
81511
  }
81580
81512
  return url;
81581
81513
  }, "getUrl");
81582
- var evaluate = /* @__PURE__ */ __name((val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true, "evaluate");
81583
81514
  var getMax = /* @__PURE__ */ __name(function(...values) {
81584
81515
  const newValues = values.filter((value) => {
81585
81516
  return !isNaN(value);
@@ -81868,15 +81799,15 @@ var getCommonDb = /* @__PURE__ */ __name(() => {
81868
81799
  return commonDb_exports;
81869
81800
  }, "getCommonDb");
81870
81801
  var diagrams = {};
81871
- var registerDiagram = /* @__PURE__ */ __name((id28, diagram2, detector28) => {
81872
- if (diagrams[id28]) {
81873
- log2.warn(`Diagram with id ${id28} already registered. Overwriting.`);
81802
+ var registerDiagram = /* @__PURE__ */ __name((id30, diagram2, detector30) => {
81803
+ if (diagrams[id30]) {
81804
+ log2.warn(`Diagram with id ${id30} already registered. Overwriting.`);
81874
81805
  }
81875
- diagrams[id28] = diagram2;
81876
- if (detector28) {
81877
- addDetector(id28, detector28);
81806
+ diagrams[id30] = diagram2;
81807
+ if (detector30) {
81808
+ addDetector(id30, detector30);
81878
81809
  }
81879
- addStylesForDiagram(id28, diagram2.styles);
81810
+ addStylesForDiagram(id30, diagram2.styles);
81880
81811
  diagram2.injectUtils?.(
81881
81812
  log2,
81882
81813
  setLogLevel2,
@@ -83277,11 +83208,11 @@ var STARTED = 3;
83277
83208
  var RUNNING = 4;
83278
83209
  var ENDING = 5;
83279
83210
  var ENDED = 6;
83280
- function schedule(node2, name, id28, index, group, timing) {
83211
+ function schedule(node2, name, id30, index, group, timing) {
83281
83212
  var schedules = node2.__transition;
83282
83213
  if (!schedules) node2.__transition = {};
83283
- else if (id28 in schedules) return;
83284
- create(node2, id28, {
83214
+ else if (id30 in schedules) return;
83215
+ create(node2, id30, {
83285
83216
  name,
83286
83217
  index,
83287
83218
  // For context during callback.
@@ -83297,24 +83228,24 @@ function schedule(node2, name, id28, index, group, timing) {
83297
83228
  state: CREATED
83298
83229
  });
83299
83230
  }
83300
- function init$1(node2, id28) {
83301
- var schedule2 = get(node2, id28);
83231
+ function init$1(node2, id30) {
83232
+ var schedule2 = get(node2, id30);
83302
83233
  if (schedule2.state > CREATED) throw new Error("too late; already scheduled");
83303
83234
  return schedule2;
83304
83235
  }
83305
- function set$1(node2, id28) {
83306
- var schedule2 = get(node2, id28);
83236
+ function set$1(node2, id30) {
83237
+ var schedule2 = get(node2, id30);
83307
83238
  if (schedule2.state > STARTED) throw new Error("too late; already running");
83308
83239
  return schedule2;
83309
83240
  }
83310
- function get(node2, id28) {
83241
+ function get(node2, id30) {
83311
83242
  var schedule2 = node2.__transition;
83312
- if (!schedule2 || !(schedule2 = schedule2[id28])) throw new Error("transition not found");
83243
+ if (!schedule2 || !(schedule2 = schedule2[id30])) throw new Error("transition not found");
83313
83244
  return schedule2;
83314
83245
  }
83315
- function create(node2, id28, self2) {
83246
+ function create(node2, id30, self2) {
83316
83247
  var schedules = node2.__transition, tween;
83317
- schedules[id28] = self2;
83248
+ schedules[id30] = self2;
83318
83249
  self2.timer = timer(schedule2, 0, self2.time);
83319
83250
  function schedule2(elapsed) {
83320
83251
  self2.state = SCHEDULED;
@@ -83333,7 +83264,7 @@ function create(node2, id28, self2) {
83333
83264
  o2.timer.stop();
83334
83265
  o2.on.call("interrupt", node2, node2.__data__, o2.index, o2.group);
83335
83266
  delete schedules[i2];
83336
- } else if (+i2 < id28) {
83267
+ } else if (+i2 < id30) {
83337
83268
  o2.state = ENDED;
83338
83269
  o2.timer.stop();
83339
83270
  o2.on.call("cancel", node2, node2.__data__, o2.index, o2.group);
@@ -83372,7 +83303,7 @@ function create(node2, id28, self2) {
83372
83303
  function stop() {
83373
83304
  self2.state = ENDED;
83374
83305
  self2.timer.stop();
83375
- delete schedules[id28];
83306
+ delete schedules[id30];
83376
83307
  for (var i2 in schedules) return;
83377
83308
  delete node2.__transition;
83378
83309
  }
@@ -83399,10 +83330,10 @@ function selection_interrupt(name) {
83399
83330
  interrupt(this, name);
83400
83331
  });
83401
83332
  }
83402
- function tweenRemove(id28, name) {
83333
+ function tweenRemove(id30, name) {
83403
83334
  var tween0, tween1;
83404
83335
  return function() {
83405
- var schedule2 = set$1(this, id28), tween = schedule2.tween;
83336
+ var schedule2 = set$1(this, id30), tween = schedule2.tween;
83406
83337
  if (tween !== tween0) {
83407
83338
  tween1 = tween0 = tween;
83408
83339
  for (var i2 = 0, n2 = tween1.length; i2 < n2; ++i2) {
@@ -83416,11 +83347,11 @@ function tweenRemove(id28, name) {
83416
83347
  schedule2.tween = tween1;
83417
83348
  };
83418
83349
  }
83419
- function tweenFunction(id28, name, value) {
83350
+ function tweenFunction(id30, name, value) {
83420
83351
  var tween0, tween1;
83421
83352
  if (typeof value !== "function") throw new Error();
83422
83353
  return function() {
83423
- var schedule2 = set$1(this, id28), tween = schedule2.tween;
83354
+ var schedule2 = set$1(this, id30), tween = schedule2.tween;
83424
83355
  if (tween !== tween0) {
83425
83356
  tween1 = (tween0 = tween).slice();
83426
83357
  for (var t2 = { name, value }, i2 = 0, n2 = tween1.length; i2 < n2; ++i2) {
@@ -83435,10 +83366,10 @@ function tweenFunction(id28, name, value) {
83435
83366
  };
83436
83367
  }
83437
83368
  function transition_tween(name, value) {
83438
- var id28 = this._id;
83369
+ var id30 = this._id;
83439
83370
  name += "";
83440
83371
  if (arguments.length < 2) {
83441
- var tween = get(this.node(), id28).tween;
83372
+ var tween = get(this.node(), id30).tween;
83442
83373
  for (var i2 = 0, n2 = tween.length, t2; i2 < n2; ++i2) {
83443
83374
  if ((t2 = tween[i2]).name === name) {
83444
83375
  return t2.value;
@@ -83446,16 +83377,16 @@ function transition_tween(name, value) {
83446
83377
  }
83447
83378
  return null;
83448
83379
  }
83449
- return this.each((value == null ? tweenRemove : tweenFunction)(id28, name, value));
83380
+ return this.each((value == null ? tweenRemove : tweenFunction)(id30, name, value));
83450
83381
  }
83451
83382
  function tweenValue(transition, name, value) {
83452
- var id28 = transition._id;
83383
+ var id30 = transition._id;
83453
83384
  transition.each(function() {
83454
- var schedule2 = set$1(this, id28);
83385
+ var schedule2 = set$1(this, id30);
83455
83386
  (schedule2.value || (schedule2.value = {}))[name] = value.apply(this, arguments);
83456
83387
  });
83457
83388
  return function(node2) {
83458
- return get(node2, id28).value[name];
83389
+ return get(node2, id30).value[name];
83459
83390
  };
83460
83391
  }
83461
83392
  function interpolate(a2, b2) {
@@ -83548,49 +83479,49 @@ function transition_attrTween(name, value) {
83548
83479
  var fullname = namespace(name);
83549
83480
  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
83550
83481
  }
83551
- function delayFunction(id28, value) {
83482
+ function delayFunction(id30, value) {
83552
83483
  return function() {
83553
- init$1(this, id28).delay = +value.apply(this, arguments);
83484
+ init$1(this, id30).delay = +value.apply(this, arguments);
83554
83485
  };
83555
83486
  }
83556
- function delayConstant(id28, value) {
83487
+ function delayConstant(id30, value) {
83557
83488
  return value = +value, function() {
83558
- init$1(this, id28).delay = value;
83489
+ init$1(this, id30).delay = value;
83559
83490
  };
83560
83491
  }
83561
83492
  function transition_delay(value) {
83562
- var id28 = this._id;
83563
- return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id28, value)) : get(this.node(), id28).delay;
83493
+ var id30 = this._id;
83494
+ return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id30, value)) : get(this.node(), id30).delay;
83564
83495
  }
83565
- function durationFunction(id28, value) {
83496
+ function durationFunction(id30, value) {
83566
83497
  return function() {
83567
- set$1(this, id28).duration = +value.apply(this, arguments);
83498
+ set$1(this, id30).duration = +value.apply(this, arguments);
83568
83499
  };
83569
83500
  }
83570
- function durationConstant(id28, value) {
83501
+ function durationConstant(id30, value) {
83571
83502
  return value = +value, function() {
83572
- set$1(this, id28).duration = value;
83503
+ set$1(this, id30).duration = value;
83573
83504
  };
83574
83505
  }
83575
83506
  function transition_duration(value) {
83576
- var id28 = this._id;
83577
- return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id28, value)) : get(this.node(), id28).duration;
83507
+ var id30 = this._id;
83508
+ return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id30, value)) : get(this.node(), id30).duration;
83578
83509
  }
83579
- function easeConstant(id28, value) {
83510
+ function easeConstant(id30, value) {
83580
83511
  if (typeof value !== "function") throw new Error();
83581
83512
  return function() {
83582
- set$1(this, id28).ease = value;
83513
+ set$1(this, id30).ease = value;
83583
83514
  };
83584
83515
  }
83585
83516
  function transition_ease(value) {
83586
- var id28 = this._id;
83587
- return arguments.length ? this.each(easeConstant(id28, value)) : get(this.node(), id28).ease;
83517
+ var id30 = this._id;
83518
+ return arguments.length ? this.each(easeConstant(id30, value)) : get(this.node(), id30).ease;
83588
83519
  }
83589
- function easeVarying(id28, value) {
83520
+ function easeVarying(id30, value) {
83590
83521
  return function() {
83591
83522
  var v2 = value.apply(this, arguments);
83592
83523
  if (typeof v2 !== "function") throw new Error();
83593
- set$1(this, id28).ease = v2;
83524
+ set$1(this, id30).ease = v2;
83594
83525
  };
83595
83526
  }
83596
83527
  function transition_easeVarying(value) {
@@ -83629,22 +83560,22 @@ function start(name) {
83629
83560
  return !t2 || t2 === "start";
83630
83561
  });
83631
83562
  }
83632
- function onFunction(id28, name, listener) {
83563
+ function onFunction(id30, name, listener) {
83633
83564
  var on0, on1, sit = start(name) ? init$1 : set$1;
83634
83565
  return function() {
83635
- var schedule2 = sit(this, id28), on = schedule2.on;
83566
+ var schedule2 = sit(this, id30), on = schedule2.on;
83636
83567
  if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);
83637
83568
  schedule2.on = on1;
83638
83569
  };
83639
83570
  }
83640
83571
  function transition_on(name, listener) {
83641
- var id28 = this._id;
83642
- return arguments.length < 2 ? get(this.node(), id28).on.on(name) : this.each(onFunction(id28, name, listener));
83572
+ var id30 = this._id;
83573
+ return arguments.length < 2 ? get(this.node(), id30).on.on(name) : this.each(onFunction(id30, name, listener));
83643
83574
  }
83644
- function removeFunction(id28) {
83575
+ function removeFunction(id30) {
83645
83576
  return function() {
83646
83577
  var parent = this.parentNode;
83647
- for (var i2 in this.__transition) if (+i2 !== id28) return;
83578
+ for (var i2 in this.__transition) if (+i2 !== id30) return;
83648
83579
  if (parent) parent.removeChild(this);
83649
83580
  };
83650
83581
  }
@@ -83652,28 +83583,28 @@ function transition_remove() {
83652
83583
  return this.on("end.remove", removeFunction(this._id));
83653
83584
  }
83654
83585
  function transition_select(select2) {
83655
- var name = this._name, id28 = this._id;
83586
+ var name = this._name, id30 = this._id;
83656
83587
  if (typeof select2 !== "function") select2 = selector(select2);
83657
83588
  for (var groups = this._groups, m2 = groups.length, subgroups = new Array(m2), j2 = 0; j2 < m2; ++j2) {
83658
83589
  for (var group = groups[j2], n2 = group.length, subgroup = subgroups[j2] = new Array(n2), node2, subnode, i2 = 0; i2 < n2; ++i2) {
83659
83590
  if ((node2 = group[i2]) && (subnode = select2.call(node2, node2.__data__, i2, group))) {
83660
83591
  if ("__data__" in node2) subnode.__data__ = node2.__data__;
83661
83592
  subgroup[i2] = subnode;
83662
- schedule(subgroup[i2], name, id28, i2, subgroup, get(node2, id28));
83593
+ schedule(subgroup[i2], name, id30, i2, subgroup, get(node2, id30));
83663
83594
  }
83664
83595
  }
83665
83596
  }
83666
- return new Transition(subgroups, this._parents, name, id28);
83597
+ return new Transition(subgroups, this._parents, name, id30);
83667
83598
  }
83668
83599
  function transition_selectAll(select2) {
83669
- var name = this._name, id28 = this._id;
83600
+ var name = this._name, id30 = this._id;
83670
83601
  if (typeof select2 !== "function") select2 = selectorAll(select2);
83671
83602
  for (var groups = this._groups, m2 = groups.length, subgroups = [], parents = [], j2 = 0; j2 < m2; ++j2) {
83672
83603
  for (var group = groups[j2], n2 = group.length, node2, i2 = 0; i2 < n2; ++i2) {
83673
83604
  if (node2 = group[i2]) {
83674
- for (var children2 = select2.call(node2, node2.__data__, i2, group), child, inherit2 = get(node2, id28), k2 = 0, l4 = children2.length; k2 < l4; ++k2) {
83605
+ for (var children2 = select2.call(node2, node2.__data__, i2, group), child, inherit2 = get(node2, id30), k2 = 0, l4 = children2.length; k2 < l4; ++k2) {
83675
83606
  if (child = children2[k2]) {
83676
- schedule(child, name, id28, k2, children2, inherit2);
83607
+ schedule(child, name, id30, k2, children2, inherit2);
83677
83608
  }
83678
83609
  }
83679
83610
  subgroups.push(children2);
@@ -83681,7 +83612,7 @@ function transition_selectAll(select2) {
83681
83612
  }
83682
83613
  }
83683
83614
  }
83684
- return new Transition(subgroups, parents, name, id28);
83615
+ return new Transition(subgroups, parents, name, id30);
83685
83616
  }
83686
83617
  var Selection = selection.prototype.constructor;
83687
83618
  function transition_selection() {
@@ -83714,10 +83645,10 @@ function styleFunction(name, interpolate2, value) {
83714
83645
  return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
83715
83646
  };
83716
83647
  }
83717
- function styleMaybeRemove(id28, name) {
83648
+ function styleMaybeRemove(id30, name) {
83718
83649
  var on0, on1, listener0, key = "style." + name, event = "end." + key, remove2;
83719
83650
  return function() {
83720
- var schedule2 = set$1(this, id28), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name)) : void 0;
83651
+ var schedule2 = set$1(this, id30), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name)) : void 0;
83721
83652
  if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);
83722
83653
  schedule2.on = on1;
83723
83654
  };
@@ -83802,13 +83733,13 @@ function transition_transition() {
83802
83733
  return new Transition(groups, this._parents, name, id1);
83803
83734
  }
83804
83735
  function transition_end() {
83805
- var on0, on1, that = this, id28 = that._id, size = that.size();
83736
+ var on0, on1, that = this, id30 = that._id, size = that.size();
83806
83737
  return new Promise(function(resolve, reject) {
83807
83738
  var cancel = { value: reject }, end = { value: function() {
83808
83739
  if (--size === 0) resolve();
83809
83740
  } };
83810
83741
  that.each(function() {
83811
- var schedule2 = set$1(this, id28), on = schedule2.on;
83742
+ var schedule2 = set$1(this, id30), on = schedule2.on;
83812
83743
  if (on !== on0) {
83813
83744
  on1 = (on0 = on).copy();
83814
83745
  on1._.cancel.push(cancel);
@@ -83821,11 +83752,11 @@ function transition_end() {
83821
83752
  });
83822
83753
  }
83823
83754
  var id$2 = 0;
83824
- function Transition(groups, parents, name, id28) {
83755
+ function Transition(groups, parents, name, id30) {
83825
83756
  this._groups = groups;
83826
83757
  this._parents = parents;
83827
83758
  this._name = name;
83828
- this._id = id28;
83759
+ this._id = id30;
83829
83760
  }
83830
83761
  function newId() {
83831
83762
  return ++id$2;
@@ -83873,30 +83804,30 @@ var defaultTiming = {
83873
83804
  duration: 250,
83874
83805
  ease: cubicInOut
83875
83806
  };
83876
- function inherit(node2, id28) {
83807
+ function inherit(node2, id30) {
83877
83808
  var timing;
83878
- while (!(timing = node2.__transition) || !(timing = timing[id28])) {
83809
+ while (!(timing = node2.__transition) || !(timing = timing[id30])) {
83879
83810
  if (!(node2 = node2.parentNode)) {
83880
- throw new Error(`transition ${id28} not found`);
83811
+ throw new Error(`transition ${id30} not found`);
83881
83812
  }
83882
83813
  }
83883
83814
  return timing;
83884
83815
  }
83885
83816
  function selection_transition(name) {
83886
- var id28, timing;
83817
+ var id30, timing;
83887
83818
  if (name instanceof Transition) {
83888
- id28 = name._id, name = name._name;
83819
+ id30 = name._id, name = name._name;
83889
83820
  } else {
83890
- id28 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
83821
+ id30 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + "";
83891
83822
  }
83892
83823
  for (var groups = this._groups, m2 = groups.length, j2 = 0; j2 < m2; ++j2) {
83893
83824
  for (var group = groups[j2], n2 = group.length, node2, i2 = 0; i2 < n2; ++i2) {
83894
83825
  if (node2 = group[i2]) {
83895
- schedule(node2, name, id28, i2, group, timing || inherit(node2, id28));
83826
+ schedule(node2, name, id30, i2, group, timing || inherit(node2, id30));
83896
83827
  }
83897
83828
  }
83898
83829
  }
83899
- return new Transition(groups, this._parents, name, id28);
83830
+ return new Transition(groups, this._parents, name, id30);
83900
83831
  }
83901
83832
  selection.prototype.interrupt = selection_interrupt;
83902
83833
  selection.prototype.transition = selection_transition;
@@ -85001,15 +84932,15 @@ Transform.prototype = {
85001
84932
  }
85002
84933
  };
85003
84934
  Transform.prototype;
85004
- var selectSvgElement = /* @__PURE__ */ __name((id28) => {
84935
+ var selectSvgElement = /* @__PURE__ */ __name((id30) => {
85005
84936
  const { securityLevel } = getConfig2();
85006
84937
  let root2 = select("body");
85007
84938
  if (securityLevel === "sandbox") {
85008
- const sandboxElement = select(`#i${id28}`);
84939
+ const sandboxElement = select(`#i${id30}`);
85009
84940
  const doc = sandboxElement.node()?.contentDocument ?? document;
85010
84941
  root2 = select(doc.body);
85011
84942
  }
85012
- const svg2 = root2.select(`#${id28}`);
84943
+ const svg2 = root2.select(`#${id30}`);
85013
84944
  return svg2;
85014
84945
  }, "selectSvgElement");
85015
84946
  function isNothing(subject) {
@@ -85932,6 +85863,19 @@ function charFromCodepoint(c2) {
85932
85863
  );
85933
85864
  }
85934
85865
  __name(charFromCodepoint, "charFromCodepoint");
85866
+ function setProperty(object, key, value) {
85867
+ if (key === "__proto__") {
85868
+ Object.defineProperty(object, key, {
85869
+ configurable: true,
85870
+ enumerable: true,
85871
+ writable: true,
85872
+ value
85873
+ });
85874
+ } else {
85875
+ object[key] = value;
85876
+ }
85877
+ }
85878
+ __name(setProperty, "setProperty");
85935
85879
  var simpleEscapeCheck = new Array(256);
85936
85880
  var simpleEscapeMap = new Array(256);
85937
85881
  for (i$1 = 0; i$1 < 256; i$1++) {
@@ -86056,7 +86000,7 @@ function mergeMappings(state2, destination, source, overridableKeys) {
86056
86000
  for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {
86057
86001
  key = sourceKeys[index];
86058
86002
  if (!_hasOwnProperty$1.call(destination, key)) {
86059
- destination[key] = source[key];
86003
+ setProperty(destination, key, source[key]);
86060
86004
  overridableKeys[key] = true;
86061
86005
  }
86062
86006
  }
@@ -86097,16 +86041,7 @@ function storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, val
86097
86041
  state2.position = startPos || state2.position;
86098
86042
  throwError(state2, "duplicated mapping key");
86099
86043
  }
86100
- if (keyNode === "__proto__") {
86101
- Object.defineProperty(_result, keyNode, {
86102
- configurable: true,
86103
- enumerable: true,
86104
- writable: true,
86105
- value: valueNode
86106
- });
86107
- } else {
86108
- _result[keyNode] = valueNode;
86109
- }
86044
+ setProperty(_result, keyNode, valueNode);
86110
86045
  delete overridableKeys[keyNode];
86111
86046
  }
86112
86047
  return _result;
@@ -87698,6 +87633,14 @@ function renamed(from2, to) {
87698
87633
  __name(renamed, "renamed");
87699
87634
  var JSON_SCHEMA = json;
87700
87635
  var load = loader$1.load;
87636
+ var computeLabelTransform = /* @__PURE__ */ __name((bbox, useHtmlLabels) => {
87637
+ if (useHtmlLabels) {
87638
+ return "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")";
87639
+ }
87640
+ const x2 = bbox.x ?? 0;
87641
+ const y3 = bbox.y ?? 0;
87642
+ return "translate(" + -(x2 + bbox.width / 2) + ", " + -(y3 + bbox.height / 2) + ")";
87643
+ }, "computeLabelTransform");
87701
87644
  var markerOffsets = {
87702
87645
  aggregation: 17.25,
87703
87646
  extension: 17.25,
@@ -87807,113 +87750,6 @@ var getLineFunctionsWithOffset = /* @__PURE__ */ __name((edge) => {
87807
87750
  }, "y")
87808
87751
  };
87809
87752
  }, "getLineFunctionsWithOffset");
87810
- var getSubGraphTitleMargins = /* @__PURE__ */ __name(({
87811
- flowchart
87812
- }) => {
87813
- const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;
87814
- const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;
87815
- const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;
87816
- return {
87817
- subGraphTitleTopMargin,
87818
- subGraphTitleBottomMargin,
87819
- subGraphTitleTotalMargin
87820
- };
87821
- }, "getSubGraphTitleMargins");
87822
- var solidStateFill = /* @__PURE__ */ __name((color2) => {
87823
- const { handDrawnSeed } = getConfig2();
87824
- return {
87825
- fill: color2,
87826
- hachureAngle: 120,
87827
- // angle of hachure,
87828
- hachureGap: 4,
87829
- fillWeight: 2,
87830
- roughness: 0.7,
87831
- stroke: color2,
87832
- seed: handDrawnSeed
87833
- };
87834
- }, "solidStateFill");
87835
- var compileStyles = /* @__PURE__ */ __name((node2) => {
87836
- const stylesMap = styles2Map([
87837
- ...node2.cssCompiledStyles || [],
87838
- ...node2.cssStyles || [],
87839
- ...node2.labelStyle || []
87840
- ]);
87841
- return { stylesMap, stylesArray: [...stylesMap] };
87842
- }, "compileStyles");
87843
- var styles2Map = /* @__PURE__ */ __name((styles2) => {
87844
- const styleMap2 = /* @__PURE__ */ new Map();
87845
- styles2.forEach((style2) => {
87846
- const [key, value] = style2.split(":");
87847
- styleMap2.set(key.trim(), value?.trim());
87848
- });
87849
- return styleMap2;
87850
- }, "styles2Map");
87851
- var isLabelStyle = /* @__PURE__ */ __name((key) => {
87852
- return key === "color" || key === "font-size" || key === "font-family" || key === "font-weight" || key === "font-style" || key === "text-decoration" || key === "text-align" || key === "text-transform" || key === "line-height" || key === "letter-spacing" || key === "word-spacing" || key === "text-shadow" || key === "text-overflow" || key === "white-space" || key === "word-wrap" || key === "word-break" || key === "overflow-wrap" || key === "hyphens";
87853
- }, "isLabelStyle");
87854
- var styles2String = /* @__PURE__ */ __name((node2) => {
87855
- const { stylesArray } = compileStyles(node2);
87856
- const labelStyles = [];
87857
- const nodeStyles = [];
87858
- const borderStyles = [];
87859
- const backgroundStyles = [];
87860
- stylesArray.forEach((style2) => {
87861
- const key = style2[0];
87862
- if (isLabelStyle(key)) {
87863
- labelStyles.push(style2.join(":") + " !important");
87864
- } else {
87865
- nodeStyles.push(style2.join(":") + " !important");
87866
- if (key.includes("stroke")) {
87867
- borderStyles.push(style2.join(":") + " !important");
87868
- }
87869
- if (key === "fill") {
87870
- backgroundStyles.push(style2.join(":") + " !important");
87871
- }
87872
- }
87873
- });
87874
- return {
87875
- labelStyles: labelStyles.join(";"),
87876
- nodeStyles: nodeStyles.join(";"),
87877
- stylesArray,
87878
- borderStyles,
87879
- backgroundStyles
87880
- };
87881
- }, "styles2String");
87882
- var userNodeOverrides = /* @__PURE__ */ __name((node2, options) => {
87883
- const { themeVariables, handDrawnSeed } = getConfig2();
87884
- const { nodeBorder, mainBkg } = themeVariables;
87885
- const { stylesMap } = compileStyles(node2);
87886
- const result = Object.assign(
87887
- {
87888
- roughness: 0.7,
87889
- fill: stylesMap.get("fill") || mainBkg,
87890
- fillStyle: "hachure",
87891
- // solid fill
87892
- fillWeight: 4,
87893
- hachureGap: 5.2,
87894
- stroke: stylesMap.get("stroke") || nodeBorder,
87895
- seed: handDrawnSeed,
87896
- strokeWidth: stylesMap.get("stroke-width")?.replace("px", "") || 1.3,
87897
- fillLineDash: [0, 0],
87898
- strokeLineDash: getStrokeDashArray(stylesMap.get("stroke-dasharray"))
87899
- },
87900
- options
87901
- );
87902
- return result;
87903
- }, "userNodeOverrides");
87904
- var getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {
87905
- if (!strokeDasharrayStyle) {
87906
- return [0, 0];
87907
- }
87908
- const dashArray = strokeDasharrayStyle.trim().split(/\s+/).map(Number);
87909
- if (dashArray.length === 1) {
87910
- const val = isNaN(dashArray[0]) ? 0 : dashArray[0];
87911
- return [val, val];
87912
- }
87913
- const first = isNaN(dashArray[0]) ? 0 : dashArray[0];
87914
- const second = isNaN(dashArray[1]) ? 0 : dashArray[1];
87915
- return [first, second];
87916
- }, "getStrokeDashArray");
87917
87753
  var dist$1 = {};
87918
87754
  var constants = {};
87919
87755
  var hasRequiredConstants;
@@ -89245,9 +89081,9 @@ var getEdgeId = /* @__PURE__ */ __name((from2, to, {
89245
89081
  counter = 0,
89246
89082
  prefix,
89247
89083
  suffix
89248
- }, id28) => {
89249
- if (id28) {
89250
- return id28;
89084
+ }, id30) => {
89085
+ if (id30) {
89086
+ return id30;
89251
89087
  }
89252
89088
  return `${prefix ? `${prefix}_` : ""}${from2}_${to}_${counter}${suffix ? `_${suffix}` : ""}`;
89253
89089
  }, "getEdgeId");
@@ -89265,6 +89101,150 @@ function isLabelCoordinateInPath(point2, dAttr) {
89265
89101
  return sanitizedD.includes(roundedX.toString()) || sanitizedD.includes(roundedY.toString());
89266
89102
  }
89267
89103
  __name(isLabelCoordinateInPath, "isLabelCoordinateInPath");
89104
+ var getSubGraphTitleMargins = /* @__PURE__ */ __name(({
89105
+ flowchart
89106
+ }) => {
89107
+ const subGraphTitleTopMargin = flowchart?.subGraphTitleMargin?.top ?? 0;
89108
+ const subGraphTitleBottomMargin = flowchart?.subGraphTitleMargin?.bottom ?? 0;
89109
+ const subGraphTitleTotalMargin = subGraphTitleTopMargin + subGraphTitleBottomMargin;
89110
+ return {
89111
+ subGraphTitleTopMargin,
89112
+ subGraphTitleBottomMargin,
89113
+ subGraphTitleTotalMargin
89114
+ };
89115
+ }, "getSubGraphTitleMargins");
89116
+ async function configureLabelImages(container, labelText) {
89117
+ const images = container.getElementsByTagName("img");
89118
+ if (!images || images.length === 0) {
89119
+ return;
89120
+ }
89121
+ const noImgText = labelText.replace(/<img[^>]*>/g, "").trim() === "";
89122
+ await Promise.all(
89123
+ [...images].map(
89124
+ (img) => new Promise((res) => {
89125
+ function setupImage() {
89126
+ img.style.display = "flex";
89127
+ img.style.flexDirection = "column";
89128
+ if (noImgText) {
89129
+ const bodyFontSize = getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize;
89130
+ const enlargingFactor = 5;
89131
+ const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);
89132
+ const width = parsedBodyFontSize * enlargingFactor + "px";
89133
+ img.style.minWidth = width;
89134
+ img.style.maxWidth = width;
89135
+ } else {
89136
+ img.style.width = "100%";
89137
+ }
89138
+ res(img);
89139
+ }
89140
+ __name(setupImage, "setupImage");
89141
+ setTimeout(() => {
89142
+ if (img.complete) {
89143
+ setupImage();
89144
+ }
89145
+ });
89146
+ img.addEventListener("error", setupImage);
89147
+ img.addEventListener("load", setupImage);
89148
+ })
89149
+ )
89150
+ );
89151
+ }
89152
+ __name(configureLabelImages, "configureLabelImages");
89153
+ var solidStateFill = /* @__PURE__ */ __name((color2) => {
89154
+ const { handDrawnSeed } = getConfig2();
89155
+ return {
89156
+ fill: color2,
89157
+ hachureAngle: 120,
89158
+ // angle of hachure,
89159
+ hachureGap: 4,
89160
+ fillWeight: 2,
89161
+ roughness: 0.7,
89162
+ stroke: color2,
89163
+ seed: handDrawnSeed
89164
+ };
89165
+ }, "solidStateFill");
89166
+ var compileStyles = /* @__PURE__ */ __name((node2) => {
89167
+ const stylesMap = styles2Map([
89168
+ ...node2.cssCompiledStyles || [],
89169
+ ...node2.cssStyles || [],
89170
+ ...node2.labelStyle || []
89171
+ ]);
89172
+ return { stylesMap, stylesArray: [...stylesMap] };
89173
+ }, "compileStyles");
89174
+ var styles2Map = /* @__PURE__ */ __name((styles2) => {
89175
+ const styleMap2 = /* @__PURE__ */ new Map();
89176
+ styles2.forEach((style2) => {
89177
+ const [key, value] = style2.split(":");
89178
+ styleMap2.set(key.trim(), value?.trim());
89179
+ });
89180
+ return styleMap2;
89181
+ }, "styles2Map");
89182
+ var isLabelStyle = /* @__PURE__ */ __name((key) => {
89183
+ return key === "color" || key === "font-size" || key === "font-family" || key === "font-weight" || key === "font-style" || key === "text-decoration" || key === "text-align" || key === "text-transform" || key === "line-height" || key === "letter-spacing" || key === "word-spacing" || key === "text-shadow" || key === "text-overflow" || key === "white-space" || key === "word-wrap" || key === "word-break" || key === "overflow-wrap" || key === "hyphens";
89184
+ }, "isLabelStyle");
89185
+ var styles2String = /* @__PURE__ */ __name((node2) => {
89186
+ const { stylesArray } = compileStyles(node2);
89187
+ const labelStyles = [];
89188
+ const nodeStyles = [];
89189
+ const borderStyles = [];
89190
+ const backgroundStyles = [];
89191
+ stylesArray.forEach((style2) => {
89192
+ const key = style2[0];
89193
+ if (isLabelStyle(key)) {
89194
+ labelStyles.push(style2.join(":") + " !important");
89195
+ } else {
89196
+ nodeStyles.push(style2.join(":") + " !important");
89197
+ if (key.includes("stroke")) {
89198
+ borderStyles.push(style2.join(":") + " !important");
89199
+ }
89200
+ if (key === "fill") {
89201
+ backgroundStyles.push(style2.join(":") + " !important");
89202
+ }
89203
+ }
89204
+ });
89205
+ return {
89206
+ labelStyles: labelStyles.join(";"),
89207
+ nodeStyles: nodeStyles.join(";"),
89208
+ stylesArray,
89209
+ borderStyles,
89210
+ backgroundStyles
89211
+ };
89212
+ }, "styles2String");
89213
+ var userNodeOverrides = /* @__PURE__ */ __name((node2, options) => {
89214
+ const { themeVariables, handDrawnSeed } = getConfig2();
89215
+ const { nodeBorder, mainBkg } = themeVariables;
89216
+ const { stylesMap } = compileStyles(node2);
89217
+ const result = Object.assign(
89218
+ {
89219
+ roughness: 0.7,
89220
+ fill: stylesMap.get("fill") || mainBkg,
89221
+ fillStyle: "hachure",
89222
+ // solid fill
89223
+ fillWeight: 4,
89224
+ hachureGap: 5.2,
89225
+ stroke: stylesMap.get("stroke") || nodeBorder,
89226
+ seed: handDrawnSeed,
89227
+ strokeWidth: stylesMap.get("stroke-width")?.replace("px", "") || 1.3,
89228
+ fillLineDash: [0, 0],
89229
+ strokeLineDash: getStrokeDashArray(stylesMap.get("stroke-dasharray"))
89230
+ },
89231
+ options
89232
+ );
89233
+ return result;
89234
+ }, "userNodeOverrides");
89235
+ var getStrokeDashArray = /* @__PURE__ */ __name((strokeDasharrayStyle) => {
89236
+ if (!strokeDasharrayStyle) {
89237
+ return [0, 0];
89238
+ }
89239
+ const dashArray = strokeDasharrayStyle.trim().split(/\s+/).map(Number);
89240
+ if (dashArray.length === 1) {
89241
+ const val = isNaN(dashArray[0]) ? 0 : dashArray[0];
89242
+ return [val, val];
89243
+ }
89244
+ const first = isNaN(dashArray[0]) ? 0 : dashArray[0];
89245
+ const second = isNaN(dashArray[1]) ? 0 : dashArray[1];
89246
+ return [first, second];
89247
+ }, "getStrokeDashArray");
89268
89248
  const defaultIconDimensions = Object.freeze({
89269
89249
  left: 0,
89270
89250
  top: 0,
@@ -89527,11 +89507,11 @@ function iconToSVG(icon2, customisations) {
89527
89507
  }
89528
89508
  const regex = /\sid="(\S+)"/g;
89529
89509
  const counters = /* @__PURE__ */ new Map();
89530
- function nextID(id28) {
89531
- id28 = id28.replace(/[0-9]+$/, "") || "a";
89532
- const count = counters.get(id28) || 0;
89533
- counters.set(id28, count + 1);
89534
- return count ? `${id28}${count}` : id28;
89510
+ function nextID(id30) {
89511
+ id30 = id30.replace(/[0-9]+$/, "") || "a";
89512
+ const count = counters.get(id30) || 0;
89513
+ counters.set(id30, count + 1);
89514
+ return count ? `${id30}${count}` : id30;
89535
89515
  }
89536
89516
  function replaceIDs(body) {
89537
89517
  const ids = [];
@@ -89539,9 +89519,9 @@ function replaceIDs(body) {
89539
89519
  while (match2 = regex.exec(body)) ids.push(match2[1]);
89540
89520
  if (!ids.length) return body;
89541
89521
  const suffix = "suffix" + (Math.random() * 16777216 | Date.now()).toString(16);
89542
- ids.forEach((id28) => {
89543
- const newID = nextID(id28);
89544
- const escapedID = id28.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
89522
+ ids.forEach((id30) => {
89523
+ const newID = nextID(id30);
89524
+ const escapedID = id30.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
89545
89525
  body = body.replace(new RegExp('([#;"])(' + escapedID + ')([")]|\\.[a-z])', "g"), "$1" + newID + suffix + "$3");
89546
89526
  });
89547
89527
  body = body.replace(new RegExp(suffix, "g"), "");
@@ -90718,12 +90698,12 @@ var getRegisteredIconData = /* @__PURE__ */ __name(async (iconName, fallbackPref
90718
90698
  }
90719
90699
  let icons = iconsStore.get(prefix);
90720
90700
  if (!icons) {
90721
- const loader28 = loaderStore.get(prefix);
90722
- if (!loader28) {
90701
+ const loader30 = loaderStore.get(prefix);
90702
+ if (!loader30) {
90723
90703
  throw new Error(`Icon set not found: ${data.prefix}`);
90724
90704
  }
90725
90705
  try {
90726
- const loaded = await loader28();
90706
+ const loaded = await loader30();
90727
90707
  icons = { ...loaded, prefix };
90728
90708
  iconsStore.set(prefix, icons);
90729
90709
  } catch (e2) {
@@ -90764,12 +90744,15 @@ function preprocessMarkdown(markdown, { markdownAutoWrap }) {
90764
90744
  const withoutBR = markdown.replace(/<br\/>/g, "\n");
90765
90745
  const withoutMultipleNewlines = withoutBR.replace(/\n{2,}/g, "\n");
90766
90746
  const withoutExtraSpaces = dedent(withoutMultipleNewlines);
90767
- if (markdownAutoWrap === false) {
90768
- return withoutExtraSpaces.replace(/ /g, "&nbsp;");
90769
- }
90770
90747
  return withoutExtraSpaces;
90771
90748
  }
90772
90749
  __name(preprocessMarkdown, "preprocessMarkdown");
90750
+ function nonMarkdownToLines(nonMarkdownText) {
90751
+ return nonMarkdownText.split(/\\n|\n|<br\s*\/?>/gi).map(
90752
+ (line2) => line2.trim().match(/<[^>]+>|[^\s<>]+/g)?.map((word) => ({ content: word, type: "normal" })) ?? []
90753
+ );
90754
+ }
90755
+ __name(nonMarkdownToLines, "nonMarkdownToLines");
90773
90756
  function markdownToLines(markdown, config2 = {}) {
90774
90757
  const preprocessedMarkdown = preprocessMarkdown(markdown, config2);
90775
90758
  const nodes = k$1.lexer(preprocessedMarkdown);
@@ -90813,6 +90796,18 @@ function markdownToLines(markdown, config2 = {}) {
90813
90796
  return lines;
90814
90797
  }
90815
90798
  __name(markdownToLines, "markdownToLines");
90799
+ function nonMarkdownToHTML(text2) {
90800
+ if (!text2) {
90801
+ return "";
90802
+ }
90803
+ return `<p>${/**
90804
+ * Replace new lines with <br /> tags.
90805
+ *
90806
+ * Unlike in markdown text, `\n` sequences are treated as line breaks here.
90807
+ */
90808
+ text2.replace(/\\n|\n/g, "<br />")}</p>`;
90809
+ }
90810
+ __name(nonMarkdownToHTML, "nonMarkdownToHTML");
90816
90811
  function markdownToHTML(markdown, { markdownAutoWrap } = {}) {
90817
90812
  const nodes = k$1.lexer(markdown);
90818
90813
  function output(node2) {
@@ -90916,29 +90911,32 @@ function splitLineToFitWidthRecursion(words, checkFit, lines = [], newLine = [])
90916
90911
  return splitLineToFitWidthRecursion(words, checkFit, lines);
90917
90912
  }
90918
90913
  __name(splitLineToFitWidthRecursion, "splitLineToFitWidthRecursion");
90919
- function applyStyle$1(dom, styleFn) {
90914
+ function applyStyle(dom, styleFn) {
90920
90915
  if (styleFn) {
90921
90916
  dom.attr("style", styleFn);
90922
90917
  }
90923
90918
  }
90924
- __name(applyStyle$1, "applyStyle");
90919
+ __name(applyStyle, "applyStyle");
90920
+ var maxSafeSizeForWidth = 16384;
90925
90921
  async function addHtmlSpan(element, node2, width, classes, addBackground = false, config2 = getConfig()) {
90926
90922
  const fo = element.append("foreignObject");
90927
- fo.attr("width", `${10 * width}px`);
90928
- fo.attr("height", `${10 * width}px`);
90923
+ fo.attr("width", `${Math.min(10 * width, maxSafeSizeForWidth)}px`);
90924
+ fo.attr("height", `${Math.min(10 * width, maxSafeSizeForWidth)}px`);
90929
90925
  const div = fo.append("xhtml:div");
90930
90926
  const sanitizedLabel = hasKatex(node2.label) ? await renderKatexSanitized(node2.label.replace(common_default.lineBreakRegex, "\n"), config2) : sanitizeText(node2.label, config2);
90931
90927
  const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
90932
90928
  const span = div.append("span");
90933
90929
  span.html(sanitizedLabel);
90934
- applyStyle$1(span, node2.labelStyle);
90930
+ applyStyle(span, node2.labelStyle);
90935
90931
  span.attr("class", `${labelClass} ${classes}`);
90936
- applyStyle$1(div, node2.labelStyle);
90932
+ applyStyle(div, node2.labelStyle);
90937
90933
  div.style("display", "table-cell");
90938
90934
  div.style("white-space", "nowrap");
90939
90935
  div.style("line-height", "1.5");
90940
- div.style("max-width", width + "px");
90941
- div.style("text-align", "center");
90936
+ if (width !== Number.POSITIVE_INFINITY) {
90937
+ div.style("max-width", width + "px");
90938
+ div.style("text-align", "center");
90939
+ }
90942
90940
  div.attr("xmlns", "http://www.w3.org/1999/xhtml");
90943
90941
  if (addBackground) {
90944
90942
  div.attr("class", "labelBkg");
@@ -90953,8 +90951,12 @@ async function addHtmlSpan(element, node2, width, classes, addBackground = false
90953
90951
  return fo.node();
90954
90952
  }
90955
90953
  __name(addHtmlSpan, "addHtmlSpan");
90956
- function createTspan(textElement, lineIndex, lineHeight) {
90957
- return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em");
90954
+ function createTspan(textElement, lineIndex, lineHeight, centerText = false) {
90955
+ const tspan = textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em");
90956
+ if (centerText) {
90957
+ tspan.attr("text-anchor", "middle");
90958
+ }
90959
+ return tspan;
90958
90960
  }
90959
90961
  __name(createTspan, "createTspan");
90960
90962
  function computeWidthOfText(parentNode, lineHeight, line2) {
@@ -90977,17 +90979,20 @@ function computeDimensionOfText(parentNode, lineHeight, text2) {
90977
90979
  return textDimension;
90978
90980
  }
90979
90981
  __name(computeDimensionOfText, "computeDimensionOfText");
90980
- function createFormattedText(width, g2, structuredText, addBackground = false) {
90982
+ function createFormattedText(width, g2, structuredText, addBackground = false, centerText = false) {
90981
90983
  const lineHeight = 1.1;
90982
90984
  const labelGroup = g2.append("g");
90983
90985
  const bkg = labelGroup.insert("rect").attr("class", "background").attr("style", "stroke: none");
90984
90986
  const textElement = labelGroup.append("text").attr("y", "-10.1");
90987
+ if (centerText) {
90988
+ textElement.attr("text-anchor", "middle");
90989
+ }
90985
90990
  let lineIndex = 0;
90986
90991
  for (const line2 of structuredText) {
90987
90992
  const checkWidth = /* @__PURE__ */ __name((line22) => computeWidthOfText(labelGroup, lineHeight, line22) <= width, "checkWidth");
90988
90993
  const linesUnderWidth = checkWidth(line2) ? [line2] : splitLineToFitWidth(line2, checkWidth);
90989
90994
  for (const preparedLine of linesUnderWidth) {
90990
- const tspan = createTspan(textElement, lineIndex, lineHeight);
90995
+ const tspan = createTspan(textElement, lineIndex, lineHeight, centerText);
90991
90996
  updateTextContentAndStyles(tspan, preparedLine);
90992
90997
  lineIndex++;
90993
90998
  }
@@ -91038,7 +91043,11 @@ var createText = /* @__PURE__ */ __name(async (el, text2 = "", {
91038
91043
  isTitle = false,
91039
91044
  classes = "",
91040
91045
  useHtmlLabels = true,
91046
+ markdown = true,
91041
91047
  isNode = true,
91048
+ /**
91049
+ * The width to wrap the text within. Set to `Number.POSITIVE_INFINITY` for no wrapping.
91050
+ */
91042
91051
  width = 200,
91043
91052
  addSvgBackground = false
91044
91053
  } = {}, config2) => {
@@ -91054,7 +91063,7 @@ var createText = /* @__PURE__ */ __name(async (el, text2 = "", {
91054
91063
  addSvgBackground
91055
91064
  );
91056
91065
  if (useHtmlLabels) {
91057
- const htmlText = markdownToHTML(text2, config2);
91066
+ const htmlText = markdown ? markdownToHTML(text2, config2) : nonMarkdownToHTML(text2);
91058
91067
  const decodedReplacedText = await replaceIconSubstring(decodeEntities(htmlText), config2);
91059
91068
  const inputForKatex = text2.replace(/\\\\/g, "\\");
91060
91069
  const node2 = {
@@ -91066,12 +91075,13 @@ var createText = /* @__PURE__ */ __name(async (el, text2 = "", {
91066
91075
  return vertexNode;
91067
91076
  } else {
91068
91077
  const sanitizeBR = text2.replace(/<br\s*\/?>/g, "<br/>");
91069
- const structuredText = markdownToLines(sanitizeBR.replace("<br>", "<br/>"), config2);
91078
+ const structuredText = markdown ? markdownToLines(sanitizeBR.replace("<br>", "<br/>"), config2) : nonMarkdownToLines(sanitizeBR);
91070
91079
  const svgLabel = createFormattedText(
91071
91080
  width,
91072
91081
  el,
91073
91082
  structuredText,
91074
- text2 ? addSvgBackground : false
91083
+ text2 ? addSvgBackground : false,
91084
+ !isNode
91075
91085
  );
91076
91086
  if (isNode) {
91077
91087
  if (/stroke:/.exec(style2)) {
@@ -91085,6 +91095,11 @@ var createText = /* @__PURE__ */ __name(async (el, text2 = "", {
91085
91095
  const edgeLabelTextStyle = style2.replace(/stroke:[^;]+;?/g, "").replace(/stroke-width:[^;]+;?/g, "").replace(/fill:[^;]+;?/g, "").replace(/color:/g, "fill:");
91086
91096
  select(svgLabel).select("text").attr("style", edgeLabelTextStyle);
91087
91097
  }
91098
+ if (isTitle) {
91099
+ select(svgLabel).selectAll("tspan.text-outer-tspan").classed("title-row", true);
91100
+ } else {
91101
+ select(svgLabel).selectAll("tspan.text-outer-tspan").classed("row", true);
91102
+ }
91088
91103
  return svgLabel;
91089
91104
  }
91090
91105
  }, "createText");
@@ -92102,52 +92117,28 @@ var labelHelper = /* @__PURE__ */ __name(async (parent, node2, _classes) => {
92102
92117
  } else {
92103
92118
  label = typeof node2.label === "string" ? node2.label : node2.label[0];
92104
92119
  }
92105
- const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {
92106
- useHtmlLabels,
92107
- width: node2.width || getConfig2().flowchart?.wrappingWidth,
92108
- // @ts-expect-error -- This is currently not used. Should this be `classes` instead?
92109
- cssClasses: "markdown-node-label",
92110
- style: node2.labelStyle,
92111
- addSvgBackground: !!node2.icon || !!node2.img
92112
- });
92120
+ const addBackground = !!node2.icon || !!node2.img;
92121
+ const isMarkdown = node2.labelType === "markdown";
92122
+ const text2 = await createText(
92123
+ labelEl,
92124
+ sanitizeText(decodeEntities(label), getConfig2()),
92125
+ {
92126
+ useHtmlLabels,
92127
+ width: node2.width || getConfig2().flowchart?.wrappingWidth,
92128
+ // @ts-expect-error -- This is currently not used. Should this be `classes` instead?
92129
+ cssClasses: isMarkdown ? "markdown-node-label" : void 0,
92130
+ style: node2.labelStyle,
92131
+ addSvgBackground: addBackground,
92132
+ markdown: isMarkdown
92133
+ },
92134
+ getConfig2()
92135
+ );
92113
92136
  let bbox = text2.getBBox();
92114
92137
  const halfPadding = (node2?.padding ?? 0) / 2;
92115
92138
  if (useHtmlLabels) {
92116
92139
  const div = text2.children[0];
92117
92140
  const dv = select(text2);
92118
- const images = div.getElementsByTagName("img");
92119
- if (images) {
92120
- const noImgText = label.replace(/<img[^>]*>/g, "").trim() === "";
92121
- await Promise.all(
92122
- [...images].map(
92123
- (img) => new Promise((res) => {
92124
- function setupImage() {
92125
- img.style.display = "flex";
92126
- img.style.flexDirection = "column";
92127
- if (noImgText) {
92128
- const bodyFontSize = getConfig2().fontSize ? getConfig2().fontSize : window.getComputedStyle(document.body).fontSize;
92129
- const enlargingFactor = 5;
92130
- const [parsedBodyFontSize = defaultConfig_default.fontSize] = parseFontSize(bodyFontSize);
92131
- const width = parsedBodyFontSize * enlargingFactor + "px";
92132
- img.style.minWidth = width;
92133
- img.style.maxWidth = width;
92134
- } else {
92135
- img.style.width = "100%";
92136
- }
92137
- res(img);
92138
- }
92139
- __name(setupImage, "setupImage");
92140
- setTimeout(() => {
92141
- if (img.complete) {
92142
- setupImage();
92143
- }
92144
- });
92145
- img.addEventListener("error", setupImage);
92146
- img.addEventListener("load", setupImage);
92147
- })
92148
- )
92149
- );
92150
- }
92141
+ await configureLabelImages(div, label);
92151
92142
  bbox = div.getBoundingClientRect();
92152
92143
  dv.attr("width", bbox.width);
92153
92144
  dv.attr("height", bbox.height);
@@ -92164,7 +92155,7 @@ var labelHelper = /* @__PURE__ */ __name(async (parent, node2, _classes) => {
92164
92155
  return { shapeSvg, bbox, halfPadding, label: labelEl };
92165
92156
  }, "labelHelper");
92166
92157
  var insertLabel = /* @__PURE__ */ __name(async (parent, label, options) => {
92167
- const useHtmlLabels = options.useHtmlLabels || evaluate(getConfig2()?.flowchart?.htmlLabels);
92158
+ const useHtmlLabels = options.useHtmlLabels ?? getEffectiveHtmlLabels(getConfig2());
92168
92159
  const labelEl = parent.insert("g").attr("class", "label").attr("style", options.labelStyle || "");
92169
92160
  const text2 = await createText(labelEl, sanitizeText(decodeEntities(label), getConfig2()), {
92170
92161
  useHtmlLabels,
@@ -92174,7 +92165,7 @@ var insertLabel = /* @__PURE__ */ __name(async (parent, label, options) => {
92174
92165
  });
92175
92166
  let bbox = text2.getBBox();
92176
92167
  const halfPadding = options.padding / 2;
92177
- if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {
92168
+ if (getEffectiveHtmlLabels(getConfig2())) {
92178
92169
  const div = text2.children[0];
92179
92170
  const dv = select(text2);
92180
92171
  bbox = div.getBoundingClientRect();
@@ -92260,76 +92251,26 @@ var intersectRect = /* @__PURE__ */ __name((node2, point2) => {
92260
92251
  return { x: x2 + sx, y: y3 + sy };
92261
92252
  }, "intersectRect");
92262
92253
  var intersect_rect_default = intersectRect;
92263
- function applyStyle(dom, styleFn) {
92264
- if (styleFn) {
92265
- dom.attr("style", styleFn);
92266
- }
92267
- }
92268
- __name(applyStyle, "applyStyle");
92269
- async function addHtmlLabel(node2) {
92270
- const fo = select(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"));
92271
- const div = fo.append("xhtml:div");
92272
- const config2 = getConfig2();
92273
- let label = node2.label;
92274
- if (node2.label && hasKatex(node2.label)) {
92275
- label = await renderKatexSanitized(node2.label.replace(common_default.lineBreakRegex, "\n"), config2);
92276
- }
92277
- const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
92278
- const labelSpan = '<span class="' + labelClass + '" ' + (node2.labelStyle ? 'style="' + node2.labelStyle + '"' : "") + // codeql [js/html-constructed-from-input] : false positive
92279
- ">" + label + "</span>";
92280
- div.html(sanitizeText(labelSpan, config2));
92281
- applyStyle(div, node2.labelStyle);
92282
- div.style("display", "inline-block");
92283
- div.style("padding-right", "1px");
92284
- div.style("white-space", "nowrap");
92285
- div.attr("xmlns", "http://www.w3.org/1999/xhtml");
92286
- return fo.node();
92287
- }
92288
- __name(addHtmlLabel, "addHtmlLabel");
92289
- var createLabel = /* @__PURE__ */ __name(async (_vertexText, style2, isTitle, isNode) => {
92254
+ var createLabel = /* @__PURE__ */ __name(async (element, _vertexText, style2, isTitle = false, isNode = false) => {
92290
92255
  let vertexText = _vertexText || "";
92291
92256
  if (typeof vertexText === "object") {
92292
92257
  vertexText = vertexText[0];
92293
92258
  }
92294
- if (evaluate(getConfig2().flowchart.htmlLabels)) {
92295
- vertexText = vertexText.replace(/\\n|\n/g, "<br />");
92296
- log.info("vertexText" + vertexText);
92297
- const node2 = {
92259
+ const config2 = getConfig2();
92260
+ const useHtmlLabels = getEffectiveHtmlLabels(config2);
92261
+ return await createText(
92262
+ element,
92263
+ vertexText,
92264
+ {
92265
+ style: style2,
92266
+ isTitle,
92267
+ useHtmlLabels,
92268
+ markdown: false,
92298
92269
  isNode,
92299
- label: decodeEntities(vertexText).replace(
92300
- /fa[blrs]?:fa-[\w-]+/g,
92301
- (s2) => `<i class='${s2.replace(":", " ")}'></i>`
92302
- ),
92303
- labelStyle: style2 ? style2.replace("fill:", "color:") : style2
92304
- };
92305
- let vertexNode = await addHtmlLabel(node2);
92306
- return vertexNode;
92307
- } else {
92308
- const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
92309
- svgLabel.setAttribute("style", style2.replace("color:", "fill:"));
92310
- let rows = [];
92311
- if (typeof vertexText === "string") {
92312
- rows = vertexText.split(/\\n|\n|<br\s*\/?>/gi);
92313
- } else if (Array.isArray(vertexText)) {
92314
- rows = vertexText;
92315
- } else {
92316
- rows = [];
92317
- }
92318
- for (const row of rows) {
92319
- const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
92320
- tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
92321
- tspan.setAttribute("dy", "1em");
92322
- tspan.setAttribute("x", "0");
92323
- if (isTitle) {
92324
- tspan.setAttribute("class", "title-row");
92325
- } else {
92326
- tspan.setAttribute("class", "row");
92327
- }
92328
- tspan.textContent = row.trim();
92329
- svgLabel.appendChild(tspan);
92330
- }
92331
- return svgLabel;
92332
- }
92270
+ width: Number.POSITIVE_INFINITY
92271
+ },
92272
+ config2
92273
+ );
92333
92274
  }, "createLabel");
92334
92275
  var createLabel_default = createLabel;
92335
92276
  var createRoundedRectPathD = /* @__PURE__ */ __name((x2, y3, totalWidth, totalHeight, radius) => [
@@ -92395,15 +92336,21 @@ var rect = /* @__PURE__ */ __name(async (parent, node2) => {
92395
92336
  const { clusterBkg, clusterBorder } = themeVariables;
92396
92337
  const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node2);
92397
92338
  const shapeSvg = parent.insert("g").attr("class", "cluster " + node2.cssClasses).attr("id", node2.id).attr("data-look", node2.look);
92398
- const useHtmlLabels = evaluate(siteConfig2.flowchart.htmlLabels);
92339
+ const useHtmlLabels = getEffectiveHtmlLabels(siteConfig2);
92399
92340
  const labelEl = shapeSvg.insert("g").attr("class", "cluster-label ");
92400
- const text2 = await createText(labelEl, node2.label, {
92401
- style: node2.labelStyle,
92402
- useHtmlLabels,
92403
- isNode: true
92404
- });
92341
+ let text2;
92342
+ if (node2.labelType === "markdown") {
92343
+ text2 = await createText(labelEl, node2.label, {
92344
+ style: node2.labelStyle,
92345
+ useHtmlLabels,
92346
+ isNode: true,
92347
+ width: node2.width
92348
+ });
92349
+ } else {
92350
+ text2 = await createLabel_default(labelEl, node2.label, node2.labelStyle || "", false, true);
92351
+ }
92405
92352
  let bbox = text2.getBBox();
92406
- if (evaluate(siteConfig2.flowchart.htmlLabels)) {
92353
+ if (getEffectiveHtmlLabels(siteConfig2)) {
92407
92354
  const div = text2.children[0];
92408
92355
  const dv = select(text2);
92409
92356
  bbox = div.getBoundingClientRect();
@@ -92486,9 +92433,9 @@ var roundedWithTitle = /* @__PURE__ */ __name(async (parent, node2) => {
92486
92433
  const outerRectG = shapeSvg.insert("g", ":first-child");
92487
92434
  const label = shapeSvg.insert("g").attr("class", "cluster-label");
92488
92435
  let innerRect = shapeSvg.append("rect");
92489
- const text2 = label.node().appendChild(await createLabel_default(node2.label, node2.labelStyle, void 0, true));
92436
+ const text2 = await createLabel_default(label, node2.label, node2.labelStyle, void 0, true);
92490
92437
  let bbox = text2.getBBox();
92491
- if (evaluate(siteConfig2.flowchart.htmlLabels)) {
92438
+ if (getEffectiveHtmlLabels(siteConfig2)) {
92492
92439
  const div = text2.children[0];
92493
92440
  const dv = select(text2);
92494
92441
  bbox = div.getBoundingClientRect();
@@ -92537,7 +92484,7 @@ var roundedWithTitle = /* @__PURE__ */ __name(async (parent, node2) => {
92537
92484
  }
92538
92485
  label.attr(
92539
92486
  "transform",
92540
- `translate(${node2.x - bbox.width / 2}, ${y3 + 1 - (evaluate(siteConfig2.flowchart.htmlLabels) ? 0 : 3)})`
92487
+ `translate(${node2.x - bbox.width / 2}, ${y3 + 1 - (getEffectiveHtmlLabels(siteConfig2) ? 0 : 3)})`
92541
92488
  );
92542
92489
  const rectBox = rect2.node().getBBox();
92543
92490
  node2.height = rectBox.height;
@@ -92556,7 +92503,7 @@ var kanbanSection = /* @__PURE__ */ __name(async (parent, node2) => {
92556
92503
  const { clusterBkg, clusterBorder } = themeVariables;
92557
92504
  const { labelStyles, nodeStyles, borderStyles, backgroundStyles } = styles2String(node2);
92558
92505
  const shapeSvg = parent.insert("g").attr("class", "cluster " + node2.cssClasses).attr("id", node2.id).attr("data-look", node2.look);
92559
- const useHtmlLabels = evaluate(siteConfig2.flowchart.htmlLabels);
92506
+ const useHtmlLabels = getEffectiveHtmlLabels(siteConfig2);
92560
92507
  const labelEl = shapeSvg.insert("g").attr("class", "cluster-label ");
92561
92508
  const text2 = await createText(labelEl, node2.label, {
92562
92509
  style: node2.labelStyle,
@@ -92565,7 +92512,7 @@ var kanbanSection = /* @__PURE__ */ __name(async (parent, node2) => {
92565
92512
  width: node2.width
92566
92513
  });
92567
92514
  let bbox = text2.getBBox();
92568
- if (evaluate(siteConfig2.flowchart.htmlLabels)) {
92515
+ if (getEffectiveHtmlLabels(siteConfig2)) {
92569
92516
  const div = text2.children[0];
92570
92517
  const dv = select(text2);
92571
92518
  bbox = div.getBoundingClientRect();
@@ -93677,44 +93624,49 @@ async function halfRoundedRectangle(parent, node2) {
93677
93624
  return shapeSvg;
93678
93625
  }
93679
93626
  __name(halfRoundedRectangle, "halfRoundedRectangle");
93627
+ var createHexagonPathD = /* @__PURE__ */ __name((x2, y3, width, height, m2) => {
93628
+ return [
93629
+ `M${x2 + m2},${y3}`,
93630
+ `L${x2 + width - m2},${y3}`,
93631
+ `L${x2 + width},${y3 - height / 2}`,
93632
+ `L${x2 + width - m2},${y3 - height}`,
93633
+ `L${x2 + m2},${y3 - height}`,
93634
+ `L${x2},${y3 - height / 2}`,
93635
+ "Z"
93636
+ ].join(" ");
93637
+ }, "createHexagonPathD");
93680
93638
  async function hexagon(parent, node2) {
93681
93639
  const { labelStyles, nodeStyles } = styles2String(node2);
93682
93640
  node2.labelStyle = labelStyles;
93683
93641
  const { shapeSvg, bbox } = await labelHelper(parent, node2, getNodeClasses(node2));
93684
- const h2 = bbox.height + (node2.padding ?? 0);
93685
- const w2 = bbox.width + (node2.padding ?? 0) * 2.5;
93686
- const { cssStyles } = node2;
93687
- const rc = at.svg(shapeSvg);
93688
- const options = userNodeOverrides(node2, {});
93689
- if (node2.look !== "handDrawn") {
93690
- options.roughness = 0;
93691
- options.fillStyle = "solid";
93692
- }
93693
- let halfWidth = w2 / 2;
93694
- const m2 = halfWidth / 6;
93695
- halfWidth = halfWidth + m2;
93696
- const halfHeight = h2 / 2;
93697
- const fixedLength = halfHeight / 2;
93698
- const deducedWidth = halfWidth - fixedLength;
93642
+ const f2 = 4;
93643
+ const h2 = bbox.height + node2.padding;
93644
+ const m2 = h2 / f2;
93645
+ const w2 = bbox.width + 2 * m2 + node2.padding;
93699
93646
  const points = [
93700
- { x: -deducedWidth, y: -halfHeight },
93701
- { x: 0, y: -halfHeight },
93702
- { x: deducedWidth, y: -halfHeight },
93703
- { x: halfWidth, y: 0 },
93704
- { x: deducedWidth, y: halfHeight },
93705
- { x: 0, y: halfHeight },
93706
- { x: -deducedWidth, y: halfHeight },
93707
- { x: -halfWidth, y: 0 }
93647
+ { x: m2, y: 0 },
93648
+ { x: w2 - m2, y: 0 },
93649
+ { x: w2, y: -h2 / 2 },
93650
+ { x: w2 - m2, y: -h2 },
93651
+ { x: m2, y: -h2 },
93652
+ { x: 0, y: -h2 / 2 }
93708
93653
  ];
93709
- const pathData = createPathFromPoints(points);
93710
- const shapeNode = rc.path(pathData, options);
93711
- const polygon = shapeSvg.insert(() => shapeNode, ":first-child");
93712
- polygon.attr("class", "basic label-container");
93713
- if (cssStyles && node2.look !== "handDrawn") {
93714
- polygon.selectChildren("path").attr("style", cssStyles);
93654
+ let polygon;
93655
+ const { cssStyles } = node2;
93656
+ if (node2.look === "handDrawn") {
93657
+ const rc = at.svg(shapeSvg);
93658
+ const options = userNodeOverrides(node2, {});
93659
+ const pathData = createHexagonPathD(0, 0, w2, h2, m2);
93660
+ const roughNode = rc.path(pathData, options);
93661
+ polygon = shapeSvg.insert(() => roughNode, ":first-child").attr("transform", `translate(${-w2 / 2}, ${h2 / 2})`);
93662
+ if (cssStyles) {
93663
+ polygon.attr("style", cssStyles);
93664
+ }
93665
+ } else {
93666
+ polygon = insertPolygonShape(shapeSvg, w2, h2, points);
93715
93667
  }
93716
- if (nodeStyles && node2.look !== "handDrawn") {
93717
- polygon.selectChildren("path").attr("style", nodeStyles);
93668
+ if (nodeStyles) {
93669
+ polygon.attr("style", nodeStyles);
93718
93670
  }
93719
93671
  node2.width = w2;
93720
93672
  node2.height = h2;
@@ -94733,7 +94685,7 @@ __name(multiWaveEdgedRectangle, "multiWaveEdgedRectangle");
94733
94685
  async function note(parent, node2, { config: { themeVariables } }) {
94734
94686
  const { labelStyles, nodeStyles } = styles2String(node2);
94735
94687
  node2.labelStyle = labelStyles;
94736
- const useHtmlLabels = node2.useHtmlLabels || getConfig().flowchart?.htmlLabels !== false;
94688
+ const useHtmlLabels = node2.useHtmlLabels || getEffectiveHtmlLabels(getConfig());
94737
94689
  if (!useHtmlLabels) {
94738
94690
  node2.centerLabel = true;
94739
94691
  }
@@ -94890,9 +94842,9 @@ async function rectWithTitle(parent, node2) {
94890
94842
  const label = shapeSvg.insert("g").attr("class", "label").attr("style", nodeStyles);
94891
94843
  const description = node2.description;
94892
94844
  const title = node2.label;
94893
- const text2 = label.node().appendChild(await createLabel_default(title, node2.labelStyle, true, true));
94845
+ const text2 = await createLabel_default(label, title, node2.labelStyle, true, true);
94894
94846
  let bbox = { width: 0, height: 0 };
94895
- if (evaluate(getConfig2()?.flowchart?.htmlLabels)) {
94847
+ if (getEffectiveHtmlLabels(getConfig2())) {
94896
94848
  const div2 = text2.children[0];
94897
94849
  const dv2 = select(text2);
94898
94850
  bbox = div2.getBoundingClientRect();
@@ -94902,13 +94854,12 @@ async function rectWithTitle(parent, node2) {
94902
94854
  log.info("Text 2", description);
94903
94855
  const textRows = description || [];
94904
94856
  const titleBox = text2.getBBox();
94905
- const descr = label.node().appendChild(
94906
- await createLabel_default(
94907
- textRows.join ? textRows.join("<br/>") : textRows,
94908
- node2.labelStyle,
94909
- true,
94910
- true
94911
- )
94857
+ const descr = await createLabel_default(
94858
+ label,
94859
+ Array.isArray(textRows) ? textRows.join("<br/>") : textRows,
94860
+ node2.labelStyle,
94861
+ true,
94862
+ true
94912
94863
  );
94913
94864
  const div = descr.children[0];
94914
94865
  const dv = select(descr);
@@ -94970,108 +94921,14 @@ async function rectWithTitle(parent, node2) {
94970
94921
  return shapeSvg;
94971
94922
  }
94972
94923
  __name(rectWithTitle, "rectWithTitle");
94973
- function generateArcPoints2(x1, y1, x2, y22, rx, ry, clockwise) {
94974
- const numPoints = 20;
94975
- const midX = (x1 + x2) / 2;
94976
- const midY = (y1 + y22) / 2;
94977
- const angle = Math.atan2(y22 - y1, x2 - x1);
94978
- const dx = (x2 - x1) / 2;
94979
- const dy = (y22 - y1) / 2;
94980
- const transformedX = dx / rx;
94981
- const transformedY = dy / ry;
94982
- const distance2 = Math.sqrt(transformedX ** 2 + transformedY ** 2);
94983
- if (distance2 > 1) {
94984
- throw new Error("The given radii are too small to create an arc between the points.");
94985
- }
94986
- const scaledCenterDistance = Math.sqrt(1 - distance2 ** 2);
94987
- const centerX = midX + scaledCenterDistance * ry * Math.sin(angle) * (clockwise ? -1 : 1);
94988
- const centerY = midY - scaledCenterDistance * rx * Math.cos(angle) * (clockwise ? -1 : 1);
94989
- const startAngle = Math.atan2((y1 - centerY) / ry, (x1 - centerX) / rx);
94990
- const endAngle = Math.atan2((y22 - centerY) / ry, (x2 - centerX) / rx);
94991
- let angleRange = endAngle - startAngle;
94992
- if (clockwise && angleRange < 0) {
94993
- angleRange += 2 * Math.PI;
94994
- }
94995
- if (!clockwise && angleRange > 0) {
94996
- angleRange -= 2 * Math.PI;
94997
- }
94998
- const points = [];
94999
- for (let i2 = 0; i2 < numPoints; i2++) {
95000
- const t2 = i2 / (numPoints - 1);
95001
- const angle2 = startAngle + t2 * angleRange;
95002
- const x3 = centerX + rx * Math.cos(angle2);
95003
- const y3 = centerY + ry * Math.sin(angle2);
95004
- points.push({ x: x3, y: y3 });
95005
- }
95006
- return points;
95007
- }
95008
- __name(generateArcPoints2, "generateArcPoints");
95009
94924
  async function roundedRect(parent, node2) {
95010
- const { labelStyles, nodeStyles } = styles2String(node2);
95011
- node2.labelStyle = labelStyles;
95012
- const { shapeSvg, bbox } = await labelHelper(parent, node2, getNodeClasses(node2));
95013
- const labelPaddingX = node2?.padding ?? 0;
95014
- const labelPaddingY = node2?.padding ?? 0;
95015
- const w2 = (node2?.width ? node2?.width : bbox.width) + labelPaddingX * 2;
95016
- const h2 = (node2?.height ? node2?.height : bbox.height) + labelPaddingY * 2;
95017
- const radius = node2.radius || 5;
95018
- const taper = node2.taper || 5;
95019
- const { cssStyles } = node2;
95020
- const rc = at.svg(shapeSvg);
95021
- const options = userNodeOverrides(node2, {});
95022
- if (node2.stroke) {
95023
- options.stroke = node2.stroke;
95024
- }
95025
- if (node2.look !== "handDrawn") {
95026
- options.roughness = 0;
95027
- options.fillStyle = "solid";
95028
- }
95029
- const points = [
95030
- // Top edge (left to right)
95031
- { x: -w2 / 2 + taper, y: -h2 / 2 },
95032
- // Top-left corner start (1)
95033
- { x: w2 / 2 - taper, y: -h2 / 2 },
95034
- // Top-right corner start (2)
95035
- ...generateArcPoints2(w2 / 2 - taper, -h2 / 2, w2 / 2, -h2 / 2 + taper, radius, radius, true),
95036
- // Top-left arc (2 to 3)
95037
- // Right edge (top to bottom)
95038
- { x: w2 / 2, y: -h2 / 2 + taper },
95039
- // Top-right taper point (3)
95040
- { x: w2 / 2, y: h2 / 2 - taper },
95041
- // Bottom-right taper point (4)
95042
- ...generateArcPoints2(w2 / 2, h2 / 2 - taper, w2 / 2 - taper, h2 / 2, radius, radius, true),
95043
- // Top-left arc (4 to 5)
95044
- // Bottom edge (right to left)
95045
- { x: w2 / 2 - taper, y: h2 / 2 },
95046
- // Bottom-right corner start (5)
95047
- { x: -w2 / 2 + taper, y: h2 / 2 },
95048
- // Bottom-left corner start (6)
95049
- ...generateArcPoints2(-w2 / 2 + taper, h2 / 2, -w2 / 2, h2 / 2 - taper, radius, radius, true),
95050
- // Top-left arc (4 to 5)
95051
- // Left edge (bottom to top)
95052
- { x: -w2 / 2, y: h2 / 2 - taper },
95053
- // Bottom-left taper point (7)
95054
- { x: -w2 / 2, y: -h2 / 2 + taper },
95055
- // Top-left taper point (8)
95056
- ...generateArcPoints2(-w2 / 2, -h2 / 2 + taper, -w2 / 2 + taper, -h2 / 2, radius, radius, true)
95057
- // Top-left arc (4 to 5)
95058
- ];
95059
- const pathData = createPathFromPoints(points);
95060
- const shapeNode = rc.path(pathData, options);
95061
- const polygon = shapeSvg.insert(() => shapeNode, ":first-child");
95062
- polygon.attr("class", "basic label-container outer-path");
95063
- if (cssStyles && node2.look !== "handDrawn") {
95064
- polygon.selectChildren("path").attr("style", cssStyles);
95065
- }
95066
- if (nodeStyles && node2.look !== "handDrawn") {
95067
- polygon.selectChildren("path").attr("style", nodeStyles);
95068
- }
95069
- updateNodeBounds(node2, polygon);
95070
- node2.intersect = function(point2) {
95071
- const pos = intersect_default.polygon(node2, points, point2);
95072
- return pos;
94925
+ const options = {
94926
+ rx: 5,
94927
+ ry: 5,
94928
+ labelPaddingX: (node2?.padding || 0) * 1,
94929
+ labelPaddingY: (node2?.padding || 0) * 1
95073
94930
  };
95074
- return shapeSvg;
94931
+ return drawRect(parent, node2, options);
95075
94932
  }
95076
94933
  __name(roundedRect, "roundedRect");
95077
94934
  async function shadedProcess(parent, node2) {
@@ -95637,7 +95494,7 @@ async function triangle(parent, node2) {
95637
95494
  const { labelStyles, nodeStyles } = styles2String(node2);
95638
95495
  node2.labelStyle = labelStyles;
95639
95496
  const { shapeSvg, bbox, label } = await labelHelper(parent, node2, getNodeClasses(node2));
95640
- const useHtmlLabels = evaluate(getConfig2().flowchart?.htmlLabels);
95497
+ const useHtmlLabels = node2.useHtmlLabels || getEffectiveHtmlLabels(getConfig2());
95641
95498
  const w2 = bbox.width + (node2.padding ?? 0);
95642
95499
  const h2 = w2 + bbox.height;
95643
95500
  const tw = w2 + bbox.height;
@@ -97295,12 +97152,12 @@ var positionNode = /* @__PURE__ */ __name((node2) => {
97295
97152
  }
97296
97153
  return diff;
97297
97154
  }, "positionNode");
97298
- var addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id28, diagramType, strokeColor) => {
97155
+ var addEdgeMarkers = /* @__PURE__ */ __name((svgPath, edge, url, id30, diagramType, strokeColor) => {
97299
97156
  if (edge.arrowTypeStart) {
97300
- addEdgeMarker(svgPath, "start", edge.arrowTypeStart, url, id28, diagramType, strokeColor);
97157
+ addEdgeMarker(svgPath, "start", edge.arrowTypeStart, url, id30, diagramType, strokeColor);
97301
97158
  }
97302
97159
  if (edge.arrowTypeEnd) {
97303
- addEdgeMarker(svgPath, "end", edge.arrowTypeEnd, url, id28, diagramType, strokeColor);
97160
+ addEdgeMarker(svgPath, "end", edge.arrowTypeEnd, url, id30, diagramType, strokeColor);
97304
97161
  }
97305
97162
  }, "addEdgeMarkers");
97306
97163
  var arrowTypesMap = {
@@ -97320,7 +97177,7 @@ var arrowTypesMap = {
97320
97177
  requirement_arrow: { type: "requirement_arrow", fill: false },
97321
97178
  requirement_contains: { type: "requirement_contains", fill: false }
97322
97179
  };
97323
- var addEdgeMarker = /* @__PURE__ */ __name((svgPath, position2, arrowType, url, id28, diagramType, strokeColor) => {
97180
+ var addEdgeMarker = /* @__PURE__ */ __name((svgPath, position2, arrowType, url, id30, diagramType, strokeColor) => {
97324
97181
  const arrowTypeInfo = arrowTypesMap[arrowType];
97325
97182
  if (!arrowTypeInfo) {
97326
97183
  log.warn(`Unknown arrow type: ${arrowType}`);
@@ -97328,7 +97185,7 @@ var addEdgeMarker = /* @__PURE__ */ __name((svgPath, position2, arrowType, url,
97328
97185
  }
97329
97186
  const endMarkerType = arrowTypeInfo.type;
97330
97187
  const suffix = position2 === "start" ? "Start" : "End";
97331
- const originalMarkerId = `${id28}_${diagramType}-${endMarkerType}${suffix}`;
97188
+ const originalMarkerId = `${id30}_${diagramType}-${endMarkerType}${suffix}`;
97332
97189
  if (strokeColor && strokeColor.trim() !== "") {
97333
97190
  const colorId = strokeColor.replace(/[^\dA-Za-z]/g, "_");
97334
97191
  const coloredMarkerId = `${originalMarkerId}_${colorId}`;
@@ -97352,6 +97209,9 @@ var addEdgeMarker = /* @__PURE__ */ __name((svgPath, position2, arrowType, url,
97352
97209
  svgPath.attr(`marker-${position2}`, `url(${url}#${originalMarkerId})`);
97353
97210
  }
97354
97211
  }, "addEdgeMarker");
97212
+ var resolveEdgeCurveType = /* @__PURE__ */ __name((edgeCurve) => {
97213
+ return typeof edgeCurve === "string" ? edgeCurve : getConfig2()?.flowchart?.curve;
97214
+ }, "resolveEdgeCurveType");
97355
97215
  var edgeLabels = /* @__PURE__ */ new Map();
97356
97216
  var terminalLabels = /* @__PURE__ */ new Map();
97357
97217
  var clear = /* @__PURE__ */ __name(() => {
@@ -97359,46 +97219,79 @@ var clear = /* @__PURE__ */ __name(() => {
97359
97219
  terminalLabels.clear();
97360
97220
  }, "clear");
97361
97221
  var getLabelStyles = /* @__PURE__ */ __name((styleArray) => {
97362
- let styles2 = styleArray ? styleArray.reduce((acc, style2) => acc + ";" + style2, "") : "";
97363
- return styles2;
97222
+ if (!styleArray) {
97223
+ return "";
97224
+ }
97225
+ if (typeof styleArray === "string") {
97226
+ return styleArray;
97227
+ }
97228
+ return styleArray.reduce((acc, style2) => acc + ";" + style2, "");
97364
97229
  }, "getLabelStyles");
97365
97230
  var insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {
97366
- let useHtmlLabels = evaluate(getConfig2().flowchart.htmlLabels);
97231
+ const config2 = getConfig2();
97232
+ let useHtmlLabels = getEffectiveHtmlLabels(config2);
97367
97233
  const { labelStyles } = styles2String(edge);
97368
97234
  edge.labelStyle = labelStyles;
97369
- const labelElement = await createText(elem, edge.label, {
97370
- style: edge.labelStyle,
97371
- useHtmlLabels,
97372
- addSvgBackground: true,
97373
- isNode: false
97374
- });
97375
- log.info("abc82", edge, edge.labelType);
97376
97235
  const edgeLabel = elem.insert("g").attr("class", "edgeLabel");
97377
97236
  const label = edgeLabel.insert("g").attr("class", "label").attr("data-id", edge.id);
97237
+ const isMarkdown = edge.labelType === "markdown";
97238
+ const markdownWidth = void 0;
97239
+ const labelElement = await createText(
97240
+ elem,
97241
+ edge.label,
97242
+ {
97243
+ style: getLabelStyles(edge.labelStyle),
97244
+ useHtmlLabels,
97245
+ addSvgBackground: true,
97246
+ isNode: false,
97247
+ markdown: isMarkdown,
97248
+ // Plain text edge labels should auto-wrap, markdown edge labels respect markdownAutoWrap config
97249
+ width: isMarkdown ? markdownWidth : void 0
97250
+ },
97251
+ config2
97252
+ );
97378
97253
  label.node().appendChild(labelElement);
97254
+ log.info("abc82", edge, edge.labelType);
97379
97255
  let bbox = labelElement.getBBox();
97256
+ let transformBbox = bbox;
97380
97257
  if (useHtmlLabels) {
97381
97258
  const div = labelElement.children[0];
97382
97259
  const dv = select(labelElement);
97383
97260
  bbox = div.getBoundingClientRect();
97261
+ transformBbox = bbox;
97384
97262
  dv.attr("width", bbox.width);
97385
97263
  dv.attr("height", bbox.height);
97264
+ } else {
97265
+ const textEl = select(labelElement).select("text").node();
97266
+ if (textEl && typeof textEl.getBBox === "function") {
97267
+ transformBbox = textEl.getBBox();
97268
+ }
97386
97269
  }
97387
- label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
97270
+ label.attr("transform", computeLabelTransform(transformBbox, useHtmlLabels));
97388
97271
  edgeLabels.set(edge.id, edgeLabel);
97389
97272
  edge.width = bbox.width;
97390
97273
  edge.height = bbox.height;
97391
97274
  let fo;
97392
97275
  if (edge.startLabelLeft) {
97276
+ const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
97277
+ const inner2 = startEdgeLabelLeft.insert("g").attr("class", "inner");
97393
97278
  const startLabelElement = await createLabel_default(
97279
+ inner2,
97394
97280
  edge.startLabelLeft,
97395
- getLabelStyles(edge.labelStyle)
97281
+ getLabelStyles(edge.labelStyle) || "",
97282
+ false,
97283
+ false
97396
97284
  );
97397
- const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
97398
- const inner2 = startEdgeLabelLeft.insert("g").attr("class", "inner");
97399
- fo = inner2.node().appendChild(startLabelElement);
97400
- const slBox = startLabelElement.getBBox();
97401
- inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
97285
+ fo = startLabelElement;
97286
+ let slBox = startLabelElement.getBBox();
97287
+ if (useHtmlLabels) {
97288
+ const div = startLabelElement.children[0];
97289
+ const dv = select(startLabelElement);
97290
+ slBox = div.getBoundingClientRect();
97291
+ dv.attr("width", slBox.width);
97292
+ dv.attr("height", slBox.height);
97293
+ }
97294
+ inner2.attr("transform", computeLabelTransform(slBox, useHtmlLabels));
97402
97295
  if (!terminalLabels.get(edge.id)) {
97403
97296
  terminalLabels.set(edge.id, {});
97404
97297
  }
@@ -97406,16 +97299,26 @@ var insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {
97406
97299
  setTerminalWidth(fo, edge.startLabelLeft);
97407
97300
  }
97408
97301
  if (edge.startLabelRight) {
97302
+ const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
97303
+ const inner2 = startEdgeLabelRight.insert("g").attr("class", "inner");
97409
97304
  const startLabelElement = await createLabel_default(
97305
+ inner2,
97410
97306
  edge.startLabelRight,
97411
- getLabelStyles(edge.labelStyle)
97307
+ getLabelStyles(edge.labelStyle) || "",
97308
+ false,
97309
+ false
97412
97310
  );
97413
- const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
97414
- const inner2 = startEdgeLabelRight.insert("g").attr("class", "inner");
97415
- fo = startEdgeLabelRight.node().appendChild(startLabelElement);
97311
+ fo = startLabelElement;
97416
97312
  inner2.node().appendChild(startLabelElement);
97417
- const slBox = startLabelElement.getBBox();
97418
- inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
97313
+ let slBox = startLabelElement.getBBox();
97314
+ if (useHtmlLabels) {
97315
+ const div = startLabelElement.children[0];
97316
+ const dv = select(startLabelElement);
97317
+ slBox = div.getBoundingClientRect();
97318
+ dv.attr("width", slBox.width);
97319
+ dv.attr("height", slBox.height);
97320
+ }
97321
+ inner2.attr("transform", computeLabelTransform(slBox, useHtmlLabels));
97419
97322
  if (!terminalLabels.get(edge.id)) {
97420
97323
  terminalLabels.set(edge.id, {});
97421
97324
  }
@@ -97423,12 +97326,25 @@ var insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {
97423
97326
  setTerminalWidth(fo, edge.startLabelRight);
97424
97327
  }
97425
97328
  if (edge.endLabelLeft) {
97426
- const endLabelElement = await createLabel_default(edge.endLabelLeft, getLabelStyles(edge.labelStyle));
97427
97329
  const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
97428
97330
  const inner2 = endEdgeLabelLeft.insert("g").attr("class", "inner");
97429
- fo = inner2.node().appendChild(endLabelElement);
97430
- const slBox = endLabelElement.getBBox();
97431
- inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
97331
+ const endLabelElement = await createLabel_default(
97332
+ inner2,
97333
+ edge.endLabelLeft,
97334
+ getLabelStyles(edge.labelStyle) || "",
97335
+ false,
97336
+ false
97337
+ );
97338
+ fo = endLabelElement;
97339
+ let slBox = endLabelElement.getBBox();
97340
+ if (useHtmlLabels) {
97341
+ const div = endLabelElement.children[0];
97342
+ const dv = select(endLabelElement);
97343
+ slBox = div.getBoundingClientRect();
97344
+ dv.attr("width", slBox.width);
97345
+ dv.attr("height", slBox.height);
97346
+ }
97347
+ inner2.attr("transform", computeLabelTransform(slBox, useHtmlLabels));
97432
97348
  endEdgeLabelLeft.node().appendChild(endLabelElement);
97433
97349
  if (!terminalLabels.get(edge.id)) {
97434
97350
  terminalLabels.set(edge.id, {});
@@ -97437,12 +97353,25 @@ var insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {
97437
97353
  setTerminalWidth(fo, edge.endLabelLeft);
97438
97354
  }
97439
97355
  if (edge.endLabelRight) {
97440
- const endLabelElement = await createLabel_default(edge.endLabelRight, getLabelStyles(edge.labelStyle));
97441
97356
  const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
97442
97357
  const inner2 = endEdgeLabelRight.insert("g").attr("class", "inner");
97443
- fo = inner2.node().appendChild(endLabelElement);
97444
- const slBox = endLabelElement.getBBox();
97445
- inner2.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
97358
+ const endLabelElement = await createLabel_default(
97359
+ inner2,
97360
+ edge.endLabelRight,
97361
+ getLabelStyles(edge.labelStyle) || "",
97362
+ false,
97363
+ false
97364
+ );
97365
+ fo = endLabelElement;
97366
+ let slBox = endLabelElement.getBBox();
97367
+ if (useHtmlLabels) {
97368
+ const div = endLabelElement.children[0];
97369
+ const dv = select(endLabelElement);
97370
+ slBox = div.getBoundingClientRect();
97371
+ dv.attr("width", slBox.width);
97372
+ dv.attr("height", slBox.height);
97373
+ }
97374
+ inner2.attr("transform", computeLabelTransform(slBox, useHtmlLabels));
97446
97375
  endEdgeLabelRight.node().appendChild(endLabelElement);
97447
97376
  if (!terminalLabels.get(edge.id)) {
97448
97377
  terminalLabels.set(edge.id, {});
@@ -97453,7 +97382,7 @@ var insertEdgeLabel = /* @__PURE__ */ __name(async (elem, edge) => {
97453
97382
  return labelElement;
97454
97383
  }, "insertEdgeLabel");
97455
97384
  function setTerminalWidth(fo, value) {
97456
- if (getConfig2().flowchart.htmlLabels && fo) {
97385
+ if (getEffectiveHtmlLabels(getConfig2()) && fo) {
97457
97386
  fo.style.width = value.length * 9 + "px";
97458
97387
  fo.style.height = "12px";
97459
97388
  }
@@ -97715,7 +97644,7 @@ var generateDashArray = /* @__PURE__ */ __name((len, oValueS, oValueE) => {
97715
97644
  const dashArray = `0 ${oValueS} ${middlePattern} ${oValueE}`;
97716
97645
  return dashArray;
97717
97646
  }, "generateDashArray");
97718
- var insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id28, skipIntersect = false) {
97647
+ var insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramType, startNode, endNode, id30, skipIntersect = false) {
97719
97648
  const { handDrawnSeed } = getConfig2();
97720
97649
  let points = edge.points;
97721
97650
  let pointsHasChanged = false;
@@ -97759,10 +97688,12 @@ var insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramT
97759
97688
  pointsHasChanged = true;
97760
97689
  }
97761
97690
  let lineData = points.filter((p2) => !Number.isNaN(p2.y));
97762
- lineData = fixCorners(lineData);
97763
- let curve = curveBasis;
97764
- curve = curveLinear;
97765
- switch (edge.curve) {
97691
+ const edgeCurveType = resolveEdgeCurveType(edge.curve);
97692
+ if (edgeCurveType !== "rounded") {
97693
+ lineData = fixCorners(lineData);
97694
+ }
97695
+ let curve = curveLinear;
97696
+ switch (edgeCurveType) {
97766
97697
  case "linear":
97767
97698
  curve = curveLinear;
97768
97699
  break;
@@ -97799,6 +97730,9 @@ var insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramT
97799
97730
  case "stepBefore":
97800
97731
  curve = stepBefore;
97801
97732
  break;
97733
+ case "rounded":
97734
+ curve = curveLinear;
97735
+ break;
97802
97736
  default:
97803
97737
  curve = curveBasis;
97804
97738
  }
@@ -97832,9 +97766,16 @@ var insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramT
97832
97766
  strokeClasses += " edge-pattern-solid";
97833
97767
  }
97834
97768
  let svgPath;
97835
- let linePath = edge.curve === "rounded" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);
97769
+ let linePath = edgeCurveType === "rounded" ? generateRoundedPath(applyMarkerOffsetsToPoints(lineData, edge), 5) : lineFunction(lineData);
97836
97770
  const edgeStyles = Array.isArray(edge.style) ? edge.style : [edge.style];
97837
97771
  let strokeColor = edgeStyles.find((style2) => style2?.startsWith("stroke:"));
97772
+ let animationClass = "";
97773
+ if (edge.animate) {
97774
+ animationClass = "edge-animation-fast";
97775
+ }
97776
+ if (edge.animation) {
97777
+ animationClass = "edge-animation-" + edge.animation;
97778
+ }
97838
97779
  let animatedEdge = false;
97839
97780
  if (edge.look === "handDrawn") {
97840
97781
  const rc = at.svg(elem);
@@ -97844,24 +97785,20 @@ var insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramT
97844
97785
  seed: handDrawnSeed
97845
97786
  });
97846
97787
  strokeClasses += " transition";
97847
- svgPath = select(svgPathNode).select("path").attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edgeStyles ? edgeStyles.reduce((acc, style2) => acc + ";" + style2, "") : "");
97788
+ svgPath = select(svgPathNode).select("path").attr("id", edge.id).attr(
97789
+ "class",
97790
+ " " + strokeClasses + (edge.classes ? " " + edge.classes : "") + (animationClass ? " " + animationClass : "")
97791
+ ).attr("style", edgeStyles ? edgeStyles.reduce((acc, style2) => acc + ";" + style2, "") : "");
97848
97792
  let d2 = svgPath.attr("d");
97849
97793
  svgPath.attr("d", d2);
97850
97794
  elem.node().appendChild(svgPath.node());
97851
97795
  } else {
97852
97796
  const stylesFromClasses = edgeClassStyles.join(";");
97853
97797
  const styles2 = edgeStyles ? edgeStyles.reduce((acc, style2) => acc + style2 + ";", "") : "";
97854
- let animationClass = "";
97855
- if (edge.animate) {
97856
- animationClass = " edge-animation-fast";
97857
- }
97858
- if (edge.animation) {
97859
- animationClass = " edge-animation-" + edge.animation;
97860
- }
97861
97798
  const pathStyle = (stylesFromClasses ? stylesFromClasses + ";" + styles2 + ";" : styles2) + ";" + (edgeStyles ? edgeStyles.reduce((acc, style2) => acc + ";" + style2, "") : "");
97862
97799
  svgPath = elem.append("path").attr("d", linePath).attr("id", edge.id).attr(
97863
97800
  "class",
97864
- " " + strokeClasses + (edge.classes ? " " + edge.classes : "") + (animationClass ?? "")
97801
+ " " + strokeClasses + (edge.classes ? " " + edge.classes : "") + (animationClass ? " " + animationClass : "")
97865
97802
  ).attr("style", pathStyle);
97866
97803
  strokeColor = pathStyle.match(/stroke:([^;]+)/)?.[1];
97867
97804
  animatedEdge = edge.animate === true || !!edge.animation || stylesFromClasses.includes("animation");
@@ -97891,7 +97828,7 @@ var insertEdge = /* @__PURE__ */ __name(function(elem, edge, clusterDb, diagramT
97891
97828
  }
97892
97829
  log.info("arrowTypeStart", edge.arrowTypeStart);
97893
97830
  log.info("arrowTypeEnd", edge.arrowTypeEnd);
97894
- addEdgeMarkers(svgPath, edge, url, id28, diagramType, strokeColor);
97831
+ addEdgeMarkers(svgPath, edge, url, id30, diagramType, strokeColor);
97895
97832
  const midIndex = Math.floor(points.length / 2);
97896
97833
  const point2 = points[midIndex];
97897
97834
  if (!utils_default.isLabelCoordinateInPath(point2, svgPath.attr("d"))) {
@@ -97989,73 +97926,73 @@ function applyMarkerOffsetsToPoints(points, edge) {
97989
97926
  return newPoints;
97990
97927
  }
97991
97928
  __name(applyMarkerOffsetsToPoints, "applyMarkerOffsetsToPoints");
97992
- var insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type2, id28) => {
97929
+ var insertMarkers = /* @__PURE__ */ __name((elem, markerArray, type2, id30) => {
97993
97930
  markerArray.forEach((markerName) => {
97994
- markers[markerName](elem, type2, id28);
97931
+ markers[markerName](elem, type2, id30);
97995
97932
  });
97996
97933
  }, "insertMarkers");
97997
- var extension = /* @__PURE__ */ __name((elem, type2, id28) => {
97998
- log.trace("Making markers for ", id28);
97999
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-extensionStart").attr("class", "marker extension " + type2).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
98000
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-extensionEnd").attr("class", "marker extension " + type2).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
97934
+ var extension = /* @__PURE__ */ __name((elem, type2, id30) => {
97935
+ log.trace("Making markers for ", id30);
97936
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-extensionStart").attr("class", "marker extension " + type2).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
97937
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-extensionEnd").attr("class", "marker extension " + type2).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
98001
97938
  }, "extension");
98002
- var composition = /* @__PURE__ */ __name((elem, type2, id28) => {
98003
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-compositionStart").attr("class", "marker composition " + type2).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
98004
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-compositionEnd").attr("class", "marker composition " + type2).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
97939
+ var composition = /* @__PURE__ */ __name((elem, type2, id30) => {
97940
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-compositionStart").attr("class", "marker composition " + type2).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
97941
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-compositionEnd").attr("class", "marker composition " + type2).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
98005
97942
  }, "composition");
98006
- var aggregation = /* @__PURE__ */ __name((elem, type2, id28) => {
98007
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-aggregationStart").attr("class", "marker aggregation " + type2).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
98008
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-aggregationEnd").attr("class", "marker aggregation " + type2).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
97943
+ var aggregation = /* @__PURE__ */ __name((elem, type2, id30) => {
97944
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-aggregationStart").attr("class", "marker aggregation " + type2).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
97945
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-aggregationEnd").attr("class", "marker aggregation " + type2).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
98009
97946
  }, "aggregation");
98010
- var dependency = /* @__PURE__ */ __name((elem, type2, id28) => {
98011
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-dependencyStart").attr("class", "marker dependency " + type2).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
98012
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-dependencyEnd").attr("class", "marker dependency " + type2).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
97947
+ var dependency = /* @__PURE__ */ __name((elem, type2, id30) => {
97948
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-dependencyStart").attr("class", "marker dependency " + type2).attr("refX", 6).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
97949
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-dependencyEnd").attr("class", "marker dependency " + type2).attr("refX", 13).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
98013
97950
  }, "dependency");
98014
- var lollipop = /* @__PURE__ */ __name((elem, type2, id28) => {
98015
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-lollipopStart").attr("class", "marker lollipop " + type2).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
98016
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-lollipopEnd").attr("class", "marker lollipop " + type2).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
97951
+ var lollipop = /* @__PURE__ */ __name((elem, type2, id30) => {
97952
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-lollipopStart").attr("class", "marker lollipop " + type2).attr("refX", 13).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
97953
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-lollipopEnd").attr("class", "marker lollipop " + type2).attr("refX", 1).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("fill", "transparent").attr("cx", 7).attr("cy", 7).attr("r", 6);
98017
97954
  }, "lollipop");
98018
- var point = /* @__PURE__ */ __name((elem, type2, id28) => {
98019
- elem.append("marker").attr("id", id28 + "_" + type2 + "-pointEnd").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
98020
- elem.append("marker").attr("id", id28 + "_" + type2 + "-pointStart").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
97955
+ var point = /* @__PURE__ */ __name((elem, type2, id30) => {
97956
+ elem.append("marker").attr("id", id30 + "_" + type2 + "-pointEnd").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
97957
+ elem.append("marker").attr("id", id30 + "_" + type2 + "-pointStart").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 4.5).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 8).attr("markerHeight", 8).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
98021
97958
  }, "point");
98022
- var circle = /* @__PURE__ */ __name((elem, type2, id28) => {
98023
- elem.append("marker").attr("id", id28 + "_" + type2 + "-circleEnd").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
98024
- elem.append("marker").attr("id", id28 + "_" + type2 + "-circleStart").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
97959
+ var circle = /* @__PURE__ */ __name((elem, type2, id30) => {
97960
+ elem.append("marker").attr("id", id30 + "_" + type2 + "-circleEnd").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
97961
+ elem.append("marker").attr("id", id30 + "_" + type2 + "-circleStart").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
98025
97962
  }, "circle");
98026
- var cross = /* @__PURE__ */ __name((elem, type2, id28) => {
98027
- elem.append("marker").attr("id", id28 + "_" + type2 + "-crossEnd").attr("class", "marker cross " + type2).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
98028
- elem.append("marker").attr("id", id28 + "_" + type2 + "-crossStart").attr("class", "marker cross " + type2).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
97963
+ var cross = /* @__PURE__ */ __name((elem, type2, id30) => {
97964
+ elem.append("marker").attr("id", id30 + "_" + type2 + "-crossEnd").attr("class", "marker cross " + type2).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
97965
+ elem.append("marker").attr("id", id30 + "_" + type2 + "-crossStart").attr("class", "marker cross " + type2).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
98029
97966
  }, "cross");
98030
- var barb = /* @__PURE__ */ __name((elem, type2, id28) => {
98031
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "userSpaceOnUse").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
97967
+ var barb = /* @__PURE__ */ __name((elem, type2, id30) => {
97968
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "userSpaceOnUse").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
98032
97969
  }, "barb");
98033
- var only_one = /* @__PURE__ */ __name((elem, type2, id28) => {
98034
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-onlyOneStart").attr("class", "marker onlyOne " + type2).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("d", "M9,0 L9,18 M15,0 L15,18");
98035
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-onlyOneEnd").attr("class", "marker onlyOne " + type2).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("d", "M3,0 L3,18 M9,0 L9,18");
97970
+ var only_one = /* @__PURE__ */ __name((elem, type2, id30) => {
97971
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-onlyOneStart").attr("class", "marker onlyOne " + type2).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("d", "M9,0 L9,18 M15,0 L15,18");
97972
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-onlyOneEnd").attr("class", "marker onlyOne " + type2).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("d", "M3,0 L3,18 M9,0 L9,18");
98036
97973
  }, "only_one");
98037
- var zero_or_one = /* @__PURE__ */ __name((elem, type2, id28) => {
98038
- const startMarker = elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-zeroOrOneStart").attr("class", "marker zeroOrOne " + type2).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
97974
+ var zero_or_one = /* @__PURE__ */ __name((elem, type2, id30) => {
97975
+ const startMarker = elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-zeroOrOneStart").attr("class", "marker zeroOrOne " + type2).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
98039
97976
  startMarker.append("circle").attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6);
98040
97977
  startMarker.append("path").attr("d", "M9,0 L9,18");
98041
- const endMarker = elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-zeroOrOneEnd").attr("class", "marker zeroOrOne " + type2).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
97978
+ const endMarker = elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-zeroOrOneEnd").attr("class", "marker zeroOrOne " + type2).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
98042
97979
  endMarker.append("circle").attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6);
98043
97980
  endMarker.append("path").attr("d", "M21,0 L21,18");
98044
97981
  }, "zero_or_one");
98045
- var one_or_more = /* @__PURE__ */ __name((elem, type2, id28) => {
98046
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-oneOrMoreStart").attr("class", "marker oneOrMore " + type2).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");
98047
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-oneOrMoreEnd").attr("class", "marker oneOrMore " + type2).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
97982
+ var one_or_more = /* @__PURE__ */ __name((elem, type2, id30) => {
97983
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-oneOrMoreStart").attr("class", "marker oneOrMore " + type2).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");
97984
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-oneOrMoreEnd").attr("class", "marker oneOrMore " + type2).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
98048
97985
  }, "one_or_more");
98049
- var zero_or_more = /* @__PURE__ */ __name((elem, type2, id28) => {
98050
- const startMarker = elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-zeroOrMoreStart").attr("class", "marker zeroOrMore " + type2).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
97986
+ var zero_or_more = /* @__PURE__ */ __name((elem, type2, id30) => {
97987
+ const startMarker = elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-zeroOrMoreStart").attr("class", "marker zeroOrMore " + type2).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
98051
97988
  startMarker.append("circle").attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6);
98052
97989
  startMarker.append("path").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18");
98053
- const endMarker = elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-zeroOrMoreEnd").attr("class", "marker zeroOrMore " + type2).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
97990
+ const endMarker = elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-zeroOrMoreEnd").attr("class", "marker zeroOrMore " + type2).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
98054
97991
  endMarker.append("circle").attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6);
98055
97992
  endMarker.append("path").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
98056
97993
  }, "zero_or_more");
98057
- var requirement_arrow = /* @__PURE__ */ __name((elem, type2, id28) => {
98058
- elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-requirement_arrowEnd").attr("refX", 20).attr("refY", 10).attr("markerWidth", 20).attr("markerHeight", 20).attr("orient", "auto").append("path").attr(
97994
+ var requirement_arrow = /* @__PURE__ */ __name((elem, type2, id30) => {
97995
+ elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-requirement_arrowEnd").attr("refX", 20).attr("refY", 10).attr("markerWidth", 20).attr("markerHeight", 20).attr("orient", "auto").append("path").attr(
98059
97996
  "d",
98060
97997
  `M0,0
98061
97998
  L20,10
@@ -98063,8 +98000,8 @@ var requirement_arrow = /* @__PURE__ */ __name((elem, type2, id28) => {
98063
98000
  L0,20`
98064
98001
  );
98065
98002
  }, "requirement_arrow");
98066
- var requirement_contains = /* @__PURE__ */ __name((elem, type2, id28) => {
98067
- const containsNode = elem.append("defs").append("marker").attr("id", id28 + "_" + type2 + "-requirement_containsStart").attr("refX", 0).attr("refY", 10).attr("markerWidth", 20).attr("markerHeight", 20).attr("orient", "auto").append("g");
98003
+ var requirement_contains = /* @__PURE__ */ __name((elem, type2, id30) => {
98004
+ const containsNode = elem.append("defs").append("marker").attr("id", id30 + "_" + type2 + "-requirement_containsStart").attr("refX", 0).attr("refY", 10).attr("markerWidth", 20).attr("markerHeight", 20).attr("orient", "auto").append("g");
98068
98005
  containsNode.append("circle").attr("cx", 10).attr("cy", 10).attr("r", 9).attr("fill", "none");
98069
98006
  containsNode.append("line").attr("x1", 1).attr("x2", 19).attr("y1", 10).attr("y2", 10);
98070
98007
  containsNode.append("line").attr("y1", 1).attr("y2", 19).attr("x1", 10).attr("x2", 10);
@@ -98102,20 +98039,20 @@ var internalHelpers = {
98102
98039
  };
98103
98040
  var layoutAlgorithms = {};
98104
98041
  var registerLayoutLoaders = /* @__PURE__ */ __name((loaders) => {
98105
- for (const loader28 of loaders) {
98106
- layoutAlgorithms[loader28.name] = loader28;
98042
+ for (const loader30 of loaders) {
98043
+ layoutAlgorithms[loader30.name] = loader30;
98107
98044
  }
98108
98045
  }, "registerLayoutLoaders");
98109
98046
  var registerDefaultLayoutLoaders = /* @__PURE__ */ __name(() => {
98110
98047
  registerLayoutLoaders([
98111
98048
  {
98112
98049
  name: "dagre",
98113
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-6UL2VRFP-DhRqcF1o.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
98050
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./dagre-KLK3FWXG-BCEgv7zL.js"), true ? __vite__mapDeps([0,1,2,3,4,5]) : void 0), "loader")
98114
98051
  },
98115
98052
  ...[
98116
98053
  {
98117
98054
  name: "cose-bilkent",
98118
- loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-17ECLfPR.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
98055
+ loader: /* @__PURE__ */ __name(async () => await __vitePreload(() => import("./cose-bilkent-S5V4N54A-DIRdD9UY.js"), true ? __vite__mapDeps([6,7]) : void 0), "loader")
98119
98056
  }
98120
98057
  ]
98121
98058
  ]);
@@ -98555,7 +98492,7 @@ var detector = /* @__PURE__ */ __name((txt) => {
98555
98492
  }, "detector");
98556
98493
  var loader = /* @__PURE__ */ __name(async () => {
98557
98494
  const { diagram: diagram2 } = await __vitePreload(async () => {
98558
- const { diagram: diagram22 } = await import("./c4Diagram-YG6GDRKO-COLZS8Ul.js");
98495
+ const { diagram: diagram22 } = await import("./c4Diagram-IC4MRINW-C-WxkPD_.js");
98559
98496
  return { diagram: diagram22 };
98560
98497
  }, true ? __vite__mapDeps([8,9]) : void 0);
98561
98498
  return { id: id$1, diagram: diagram2 };
@@ -98575,9 +98512,9 @@ var detector2 = /* @__PURE__ */ __name((txt, config2) => {
98575
98512
  }, "detector");
98576
98513
  var loader2 = /* @__PURE__ */ __name(async () => {
98577
98514
  const { diagram: diagram2 } = await __vitePreload(async () => {
98578
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CdEjFbz4.js");
98515
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-Dptcw76l.js");
98579
98516
  return { diagram: diagram22 };
98580
- }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
98517
+ }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
98581
98518
  return { id: id2, diagram: diagram2 };
98582
98519
  }, "loader");
98583
98520
  var plugin2 = {
@@ -98601,9 +98538,9 @@ var detector3 = /* @__PURE__ */ __name((txt, config2) => {
98601
98538
  }, "detector");
98602
98539
  var loader3 = /* @__PURE__ */ __name(async () => {
98603
98540
  const { diagram: diagram2 } = await __vitePreload(async () => {
98604
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CdEjFbz4.js");
98541
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-Dptcw76l.js");
98605
98542
  return { diagram: diagram22 };
98606
- }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
98543
+ }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
98607
98544
  return { id: id3, diagram: diagram2 };
98608
98545
  }, "loader");
98609
98546
  var plugin3 = {
@@ -98618,7 +98555,7 @@ var detector4 = /* @__PURE__ */ __name((txt) => {
98618
98555
  }, "detector");
98619
98556
  var loader4 = /* @__PURE__ */ __name(async () => {
98620
98557
  const { diagram: diagram2 } = await __vitePreload(async () => {
98621
- const { diagram: diagram22 } = await import("./erDiagram-Q2GNP2WA-BH-7rI43.js");
98558
+ const { diagram: diagram22 } = await import("./erDiagram-INFDFZHY-BoZdWdP2.js");
98622
98559
  return { diagram: diagram22 };
98623
98560
  }, true ? __vite__mapDeps([15,12,13,14]) : void 0);
98624
98561
  return { id: id4, diagram: diagram2 };
@@ -98635,7 +98572,7 @@ var detector5 = /* @__PURE__ */ __name((txt) => {
98635
98572
  }, "detector");
98636
98573
  var loader5 = /* @__PURE__ */ __name(async () => {
98637
98574
  const { diagram: diagram2 } = await __vitePreload(async () => {
98638
- const { diagram: diagram22 } = await import("./gitGraphDiagram-V2S2FVAM-CUJ5oxCg.js");
98575
+ const { diagram: diagram22 } = await import("./gitGraphDiagram-K3NZZRJ6-125S1YW0.js");
98639
98576
  return { diagram: diagram22 };
98640
98577
  }, true ? __vite__mapDeps([16,17,18,19,2,4,5]) : void 0);
98641
98578
  return { id: id5, diagram: diagram2 };
@@ -98652,7 +98589,7 @@ var detector6 = /* @__PURE__ */ __name((txt) => {
98652
98589
  }, "detector");
98653
98590
  var loader6 = /* @__PURE__ */ __name(async () => {
98654
98591
  const { diagram: diagram2 } = await __vitePreload(async () => {
98655
- const { diagram: diagram22 } = await import("./ganttDiagram-JELNMOA3-Cju2t-lK.js");
98592
+ const { diagram: diagram22 } = await import("./ganttDiagram-A5KZAMGK-qM3zsgxI.js");
98656
98593
  return { diagram: diagram22 };
98657
98594
  }, true ? __vite__mapDeps([20,21,22,23]) : void 0);
98658
98595
  return { id: id6, diagram: diagram2 };
@@ -98669,7 +98606,7 @@ var detector7 = /* @__PURE__ */ __name((txt) => {
98669
98606
  }, "detector");
98670
98607
  var loader7 = /* @__PURE__ */ __name(async () => {
98671
98608
  const { diagram: diagram2 } = await __vitePreload(async () => {
98672
- const { diagram: diagram22 } = await import("./infoDiagram-HS3SLOUP-Df8p0okQ.js");
98609
+ const { diagram: diagram22 } = await import("./infoDiagram-LFFYTUFH-B9vrFy_9.js");
98673
98610
  return { diagram: diagram22 };
98674
98611
  }, true ? __vite__mapDeps([24,19,2,4,5]) : void 0);
98675
98612
  return { id: id7, diagram: diagram2 };
@@ -98685,7 +98622,7 @@ var detector8 = /* @__PURE__ */ __name((txt) => {
98685
98622
  }, "detector");
98686
98623
  var loader8 = /* @__PURE__ */ __name(async () => {
98687
98624
  const { diagram: diagram2 } = await __vitePreload(async () => {
98688
- const { diagram: diagram22 } = await import("./pieDiagram-ADFJNKIX-BQrOgSc-.js");
98625
+ const { diagram: diagram22 } = await import("./pieDiagram-SKSYHLDU-BKJYIUkU.js");
98689
98626
  return { diagram: diagram22 };
98690
98627
  }, true ? __vite__mapDeps([25,17,19,2,4,5,26,27,22]) : void 0);
98691
98628
  return { id: id8, diagram: diagram2 };
@@ -98701,7 +98638,7 @@ var detector9 = /* @__PURE__ */ __name((txt) => {
98701
98638
  }, "detector");
98702
98639
  var loader9 = /* @__PURE__ */ __name(async () => {
98703
98640
  const { diagram: diagram2 } = await __vitePreload(async () => {
98704
- const { diagram: diagram22 } = await import("./quadrantDiagram-AYHSOK5B-C62TxtsO.js");
98641
+ const { diagram: diagram22 } = await import("./quadrantDiagram-337W2JSQ-yjekONzR.js");
98705
98642
  return { diagram: diagram22 };
98706
98643
  }, true ? __vite__mapDeps([28,21,22,23]) : void 0);
98707
98644
  return { id: id9, diagram: diagram2 };
@@ -98718,7 +98655,7 @@ var detector10 = /* @__PURE__ */ __name((txt) => {
98718
98655
  }, "detector");
98719
98656
  var loader10 = /* @__PURE__ */ __name(async () => {
98720
98657
  const { diagram: diagram2 } = await __vitePreload(async () => {
98721
- const { diagram: diagram22 } = await import("./xychartDiagram-PRI3JC2R-Ba2uJcs6.js");
98658
+ const { diagram: diagram22 } = await import("./xychartDiagram-JWTSCODW-BI_N4JiZ.js");
98722
98659
  return { diagram: diagram22 };
98723
98660
  }, true ? __vite__mapDeps([29,22,27,21,23]) : void 0);
98724
98661
  return { id: id10, diagram: diagram2 };
@@ -98735,7 +98672,7 @@ var detector11 = /* @__PURE__ */ __name((txt) => {
98735
98672
  }, "detector");
98736
98673
  var loader11 = /* @__PURE__ */ __name(async () => {
98737
98674
  const { diagram: diagram2 } = await __vitePreload(async () => {
98738
- const { diagram: diagram22 } = await import("./requirementDiagram-UZGBJVZJ-Is6Q3osM.js");
98675
+ const { diagram: diagram22 } = await import("./requirementDiagram-Z7DCOOCP-DMH1wutn.js");
98739
98676
  return { diagram: diagram22 };
98740
98677
  }, true ? __vite__mapDeps([30,12,13]) : void 0);
98741
98678
  return { id: id11, diagram: diagram2 };
@@ -98752,7 +98689,7 @@ var detector12 = /* @__PURE__ */ __name((txt) => {
98752
98689
  }, "detector");
98753
98690
  var loader12 = /* @__PURE__ */ __name(async () => {
98754
98691
  const { diagram: diagram2 } = await __vitePreload(async () => {
98755
- const { diagram: diagram22 } = await import("./sequenceDiagram-WL72ISMW-DpODpbl6.js");
98692
+ const { diagram: diagram22 } = await import("./sequenceDiagram-2WXFIKYE-4sriOpV9.js");
98756
98693
  return { diagram: diagram22 };
98757
98694
  }, true ? __vite__mapDeps([31,9,18]) : void 0);
98758
98695
  return { id: id12, diagram: diagram2 };
@@ -98772,9 +98709,9 @@ var detector13 = /* @__PURE__ */ __name((txt, config2) => {
98772
98709
  }, "detector");
98773
98710
  var loader13 = /* @__PURE__ */ __name(async () => {
98774
98711
  const { diagram: diagram2 } = await __vitePreload(async () => {
98775
- const { diagram: diagram22 } = await import("./classDiagram-2ON5EDUG-CpyYj1Rc.js");
98712
+ const { diagram: diagram22 } = await import("./classDiagram-VBA2DB6C-DIAo1m4U.js");
98776
98713
  return { diagram: diagram22 };
98777
- }, true ? __vite__mapDeps([32,33,11,12,13]) : void 0);
98714
+ }, true ? __vite__mapDeps([32,33,11,9,12,13]) : void 0);
98778
98715
  return { id: id13, diagram: diagram2 };
98779
98716
  }, "loader");
98780
98717
  var plugin11 = {
@@ -98792,9 +98729,9 @@ var detector14 = /* @__PURE__ */ __name((txt, config2) => {
98792
98729
  }, "detector");
98793
98730
  var loader14 = /* @__PURE__ */ __name(async () => {
98794
98731
  const { diagram: diagram2 } = await __vitePreload(async () => {
98795
- const { diagram: diagram22 } = await import("./classDiagram-v2-WZHVMYZB-CpyYj1Rc.js");
98732
+ const { diagram: diagram22 } = await import("./classDiagram-v2-RAHNMMFH-DIAo1m4U.js");
98796
98733
  return { diagram: diagram22 };
98797
- }, true ? __vite__mapDeps([34,33,11,12,13]) : void 0);
98734
+ }, true ? __vite__mapDeps([34,33,11,9,12,13]) : void 0);
98798
98735
  return { id: id14, diagram: diagram2 };
98799
98736
  }, "loader");
98800
98737
  var plugin12 = {
@@ -98812,7 +98749,7 @@ var detector15 = /* @__PURE__ */ __name((txt, config2) => {
98812
98749
  }, "detector");
98813
98750
  var loader15 = /* @__PURE__ */ __name(async () => {
98814
98751
  const { diagram: diagram2 } = await __vitePreload(async () => {
98815
- const { diagram: diagram22 } = await import("./stateDiagram-FKZM4ZOC-B8LHaf5T.js");
98752
+ const { diagram: diagram22 } = await import("./stateDiagram-RAJIS63D-BUMObt6W.js");
98816
98753
  return { diagram: diagram22 };
98817
98754
  }, true ? __vite__mapDeps([35,36,12,13,1,2,3,4]) : void 0);
98818
98755
  return { id: id15, diagram: diagram2 };
@@ -98835,7 +98772,7 @@ var detector16 = /* @__PURE__ */ __name((txt, config2) => {
98835
98772
  }, "detector");
98836
98773
  var loader16 = /* @__PURE__ */ __name(async () => {
98837
98774
  const { diagram: diagram2 } = await __vitePreload(async () => {
98838
- const { diagram: diagram22 } = await import("./stateDiagram-v2-4FDKWEC3-4FzTkpgz.js");
98775
+ const { diagram: diagram22 } = await import("./stateDiagram-v2-FVOUBMTO-DazzpfnH.js");
98839
98776
  return { diagram: diagram22 };
98840
98777
  }, true ? __vite__mapDeps([37,36,12,13]) : void 0);
98841
98778
  return { id: id16, diagram: diagram2 };
@@ -98852,9 +98789,9 @@ var detector17 = /* @__PURE__ */ __name((txt) => {
98852
98789
  }, "detector");
98853
98790
  var loader17 = /* @__PURE__ */ __name(async () => {
98854
98791
  const { diagram: diagram2 } = await __vitePreload(async () => {
98855
- const { diagram: diagram22 } = await import("./journeyDiagram-XKPGCS4Q-BXMl8H-d.js");
98792
+ const { diagram: diagram22 } = await import("./journeyDiagram-4ABVD52K-BzoWs6ft.js");
98856
98793
  return { diagram: diagram22 };
98857
- }, true ? __vite__mapDeps([38,9,11,26]) : void 0);
98794
+ }, true ? __vite__mapDeps([38,11,9,26]) : void 0);
98858
98795
  return { id: id17, diagram: diagram2 };
98859
98796
  }, "loader");
98860
98797
  var plugin15 = {
@@ -98863,9 +98800,9 @@ var plugin15 = {
98863
98800
  loader: loader17
98864
98801
  };
98865
98802
  var journeyDetector_default = plugin15;
98866
- var draw = /* @__PURE__ */ __name((_text, id28, version2) => {
98803
+ var draw = /* @__PURE__ */ __name((_text, id30, version2) => {
98867
98804
  log.debug("rendering svg for syntax error\n");
98868
- const svg2 = selectSvgElement(id28);
98805
+ const svg2 = selectSvgElement(id30);
98869
98806
  const g2 = svg2.append("g");
98870
98807
  svg2.attr("viewBox", "0 0 2412 512");
98871
98808
  configureSvgSize(svg2, 100, 512, true);
@@ -98922,9 +98859,9 @@ var detector18 = /* @__PURE__ */ __name((txt, config2 = {}) => {
98922
98859
  }, "detector");
98923
98860
  var loader18 = /* @__PURE__ */ __name(async () => {
98924
98861
  const { diagram: diagram2 } = await __vitePreload(async () => {
98925
- const { diagram: diagram22 } = await import("./flowDiagram-NV44I4VS-CdEjFbz4.js");
98862
+ const { diagram: diagram22 } = await import("./flowDiagram-PKNHOUZH-Dptcw76l.js");
98926
98863
  return { diagram: diagram22 };
98927
- }, true ? __vite__mapDeps([10,11,12,13,14]) : void 0);
98864
+ }, true ? __vite__mapDeps([10,11,9,12,13,14]) : void 0);
98928
98865
  return { id: id18, diagram: diagram2 };
98929
98866
  }, "loader");
98930
98867
  var plugin16 = {
@@ -98939,7 +98876,7 @@ var detector19 = /* @__PURE__ */ __name((txt) => {
98939
98876
  }, "detector");
98940
98877
  var loader19 = /* @__PURE__ */ __name(async () => {
98941
98878
  const { diagram: diagram2 } = await __vitePreload(async () => {
98942
- const { diagram: diagram22 } = await import("./timeline-definition-IT6M3QCI-Ckxc4qZe.js");
98879
+ const { diagram: diagram22 } = await import("./timeline-definition-YZTLITO2-CdChFPnp.js");
98943
98880
  return { diagram: diagram22 };
98944
98881
  }, true ? __vite__mapDeps([39,26]) : void 0);
98945
98882
  return { id: id19, diagram: diagram2 };
@@ -98956,7 +98893,7 @@ var detector20 = /* @__PURE__ */ __name((txt) => {
98956
98893
  }, "detector");
98957
98894
  var loader20 = /* @__PURE__ */ __name(async () => {
98958
98895
  const { diagram: diagram2 } = await __vitePreload(async () => {
98959
- const { diagram: diagram22 } = await import("./mindmap-definition-VGOIOE7T-BLBklJVX.js");
98896
+ const { diagram: diagram22 } = await import("./mindmap-definition-YRQLILUH-D4282T7u.js");
98960
98897
  return { diagram: diagram22 };
98961
98898
  }, true ? __vite__mapDeps([40,12,13]) : void 0);
98962
98899
  return { id: id20, diagram: diagram2 };
@@ -98973,7 +98910,7 @@ var detector21 = /* @__PURE__ */ __name((txt) => {
98973
98910
  }, "detector");
98974
98911
  var loader21 = /* @__PURE__ */ __name(async () => {
98975
98912
  const { diagram: diagram2 } = await __vitePreload(async () => {
98976
- const { diagram: diagram22 } = await import("./kanban-definition-3W4ZIXB7-Cc5RwCEh.js");
98913
+ const { diagram: diagram22 } = await import("./kanban-definition-K7BYSVSG-TJm1UiSH.js");
98977
98914
  return { diagram: diagram22 };
98978
98915
  }, true ? __vite__mapDeps([41,11]) : void 0);
98979
98916
  return { id: id21, diagram: diagram2 };
@@ -98990,7 +98927,7 @@ var detector22 = /* @__PURE__ */ __name((txt) => {
98990
98927
  }, "detector");
98991
98928
  var loader22 = /* @__PURE__ */ __name(async () => {
98992
98929
  const { diagram: diagram2 } = await __vitePreload(async () => {
98993
- const { diagram: diagram22 } = await import("./sankeyDiagram-TZEHDZUN-CCAW8Dr2.js");
98930
+ const { diagram: diagram22 } = await import("./sankeyDiagram-WA2Y5GQK-Cs4ACtdq.js");
98994
98931
  return { diagram: diagram22 };
98995
98932
  }, true ? __vite__mapDeps([42,27,22]) : void 0);
98996
98933
  return { id: id22, diagram: diagram2 };
@@ -99007,7 +98944,7 @@ var detector23 = /* @__PURE__ */ __name((txt) => {
99007
98944
  }, "detector");
99008
98945
  var loader23 = /* @__PURE__ */ __name(async () => {
99009
98946
  const { diagram: diagram2 } = await __vitePreload(async () => {
99010
- const { diagram: diagram22 } = await import("./diagram-S2PKOQOG-DAFFGfch.js");
98947
+ const { diagram: diagram22 } = await import("./diagram-P4PSJMXO-BJRf8VnU.js");
99011
98948
  return { diagram: diagram22 };
99012
98949
  }, true ? __vite__mapDeps([43,17,19,2,4,5]) : void 0);
99013
98950
  return { id: id23, diagram: diagram2 };
@@ -99023,7 +98960,7 @@ var detector24 = /* @__PURE__ */ __name((txt) => {
99023
98960
  }, "detector");
99024
98961
  var loader24 = /* @__PURE__ */ __name(async () => {
99025
98962
  const { diagram: diagram2 } = await __vitePreload(async () => {
99026
- const { diagram: diagram22 } = await import("./diagram-QEK2KX5R-ohxbPpDH.js");
98963
+ const { diagram: diagram22 } = await import("./diagram-IFDJBPK2-DBtRFFBv.js");
99027
98964
  return { diagram: diagram22 };
99028
98965
  }, true ? __vite__mapDeps([44,17,19,2,4,5]) : void 0);
99029
98966
  return { id: id24, diagram: diagram2 };
@@ -99039,7 +98976,7 @@ var detector25 = /* @__PURE__ */ __name((txt) => {
99039
98976
  }, "detector");
99040
98977
  var loader25 = /* @__PURE__ */ __name(async () => {
99041
98978
  const { diagram: diagram2 } = await __vitePreload(async () => {
99042
- const { diagram: diagram22 } = await import("./blockDiagram-VD42YOAC-CABpgVAa.js");
98979
+ const { diagram: diagram22 } = await import("./blockDiagram-WCTKOSBZ-fSZbZ3PY.js");
99043
98980
  return { diagram: diagram22 };
99044
98981
  }, true ? __vite__mapDeps([45,11,5,2,1,14]) : void 0);
99045
98982
  return { id: id25, diagram: diagram2 };
@@ -99056,7 +98993,7 @@ var detector26 = /* @__PURE__ */ __name((txt) => {
99056
98993
  }, "detector");
99057
98994
  var loader26 = /* @__PURE__ */ __name(async () => {
99058
98995
  const { diagram: diagram2 } = await __vitePreload(async () => {
99059
- const { diagram: diagram22 } = await import("./architectureDiagram-VXUJARFQ-DZMT7dqc.js");
98996
+ const { diagram: diagram22 } = await import("./architectureDiagram-2XIMDMQ5-BiDh8CGJ.js");
99060
98997
  return { diagram: diagram22 };
99061
98998
  }, true ? __vite__mapDeps([46,17,19,2,4,5,7]) : void 0);
99062
98999
  return { id: id26, diagram: diagram2 };
@@ -99067,22 +99004,55 @@ var architecture = {
99067
99004
  loader: loader26
99068
99005
  };
99069
99006
  var architectureDetector_default = architecture;
99070
- var id27 = "treemap";
99007
+ var id27 = "ishikawa";
99071
99008
  var detector27 = /* @__PURE__ */ __name((txt) => {
99072
- return /^\s*treemap/.test(txt);
99009
+ return /^\s*ishikawa(-beta)?\b/i.test(txt);
99073
99010
  }, "detector");
99074
99011
  var loader27 = /* @__PURE__ */ __name(async () => {
99075
99012
  const { diagram: diagram2 } = await __vitePreload(async () => {
99076
- const { diagram: diagram22 } = await import("./diagram-PSM6KHXK-lpDT6Wwb.js");
99013
+ const { diagram: diagram22 } = await import("./ishikawaDiagram-PHBUUO56-CzcXR0Tc.js");
99077
99014
  return { diagram: diagram22 };
99078
- }, true ? __vite__mapDeps([47,13,17,19,2,4,5,23,27,22]) : void 0);
99015
+ }, true ? [] : void 0);
99079
99016
  return { id: id27, diagram: diagram2 };
99080
99017
  }, "loader");
99081
- var treemap = {
99018
+ var ishikawa = {
99082
99019
  id: id27,
99083
99020
  detector: detector27,
99084
99021
  loader: loader27
99085
99022
  };
99023
+ var id28 = "venn";
99024
+ var detector28 = /* @__PURE__ */ __name((txt) => {
99025
+ return /^\s*venn-beta/.test(txt);
99026
+ }, "detector");
99027
+ var loader28 = /* @__PURE__ */ __name(async () => {
99028
+ const { diagram: diagram2 } = await __vitePreload(async () => {
99029
+ const { diagram: diagram22 } = await import("./vennDiagram-LZ73GAT5-Bu9N_8Cu.js");
99030
+ return { diagram: diagram22 };
99031
+ }, true ? [] : void 0);
99032
+ return { id: id28, diagram: diagram2 };
99033
+ }, "loader");
99034
+ var plugin22 = {
99035
+ id: id28,
99036
+ detector: detector28,
99037
+ loader: loader28
99038
+ };
99039
+ var vennDetector_default = plugin22;
99040
+ var id29 = "treemap";
99041
+ var detector29 = /* @__PURE__ */ __name((txt) => {
99042
+ return /^\s*treemap/.test(txt);
99043
+ }, "detector");
99044
+ var loader29 = /* @__PURE__ */ __name(async () => {
99045
+ const { diagram: diagram2 } = await __vitePreload(async () => {
99046
+ const { diagram: diagram22 } = await import("./diagram-E7M64L7V-CwNdHUlg.js");
99047
+ return { diagram: diagram22 };
99048
+ }, true ? __vite__mapDeps([47,13,17,19,2,4,5,23,27,22]) : void 0);
99049
+ return { id: id29, diagram: diagram2 };
99050
+ }, "loader");
99051
+ var treemap = {
99052
+ id: id29,
99053
+ detector: detector29,
99054
+ loader: loader29
99055
+ };
99086
99056
  var hasLoadedDiagrams = false;
99087
99057
  var addDiagrams = /* @__PURE__ */ __name(() => {
99088
99058
  if (hasLoadedDiagrams) {
@@ -99147,22 +99117,24 @@ var addDiagrams = /* @__PURE__ */ __name(() => {
99147
99117
  xychartDetector_default,
99148
99118
  blockDetector_default,
99149
99119
  radar,
99150
- treemap
99120
+ ishikawa,
99121
+ treemap,
99122
+ vennDetector_default
99151
99123
  );
99152
99124
  }, "addDiagrams");
99153
99125
  var loadRegisteredDiagrams = /* @__PURE__ */ __name(async () => {
99154
99126
  log.debug(`Loading registered diagrams`);
99155
99127
  const results = await Promise.allSettled(
99156
- Object.entries(detectors).map(async ([key, { detector: detector28, loader: loader28 }]) => {
99157
- if (!loader28) {
99128
+ Object.entries(detectors).map(async ([key, { detector: detector30, loader: loader30 }]) => {
99129
+ if (!loader30) {
99158
99130
  return;
99159
99131
  }
99160
99132
  try {
99161
99133
  getDiagram(key);
99162
99134
  } catch {
99163
99135
  try {
99164
- const { diagram: diagram2, id: id28 } = await loader28();
99165
- registerDiagram(id28, diagram2, detector28);
99136
+ const { diagram: diagram2, id: id30 } = await loader30();
99137
+ registerDiagram(id30, diagram2, detector30);
99166
99138
  } catch (err) {
99167
99139
  log.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);
99168
99140
  delete detectors[key];
@@ -99219,12 +99191,12 @@ var Diagram = (_j = class {
99219
99191
  try {
99220
99192
  getDiagram(type2);
99221
99193
  } catch {
99222
- const loader28 = getDiagramLoader(type2);
99223
- if (!loader28) {
99194
+ const loader30 = getDiagramLoader(type2);
99195
+ if (!loader30) {
99224
99196
  throw new UnknownDiagramError(`Diagram ${type2} not found.`);
99225
99197
  }
99226
- const { id: id28, diagram: diagram2 } = await loader28();
99227
- registerDiagram(id28, diagram2);
99198
+ const { id: id30, diagram: diagram2 } = await loader30();
99199
+ registerDiagram(id30, diagram2);
99228
99200
  }
99229
99201
  const { db, parser, renderer: renderer2, init: init2 } = getDiagram(type2);
99230
99202
  if (parser.parser) {
@@ -99238,8 +99210,8 @@ var Diagram = (_j = class {
99238
99210
  await parser.parse(text2);
99239
99211
  return new _j(type2, text2, db, parser, renderer2);
99240
99212
  }
99241
- async render(id28, version2) {
99242
- await this.renderer.draw(this.text, id28, version2, this);
99213
+ async render(id30, version2) {
99214
+ await this.renderer.draw(this.text, id30, version2, this);
99243
99215
  }
99244
99216
  getParser() {
99245
99217
  return this.parser;
@@ -99392,7 +99364,7 @@ ${config2.themeCSS}`;
99392
99364
  :root { --mermaid-alt-font-family: ${config2.altFontFamily}}`;
99393
99365
  }
99394
99366
  if (classDefs instanceof Map) {
99395
- const htmlLabels = config2.htmlLabels ?? config2.flowchart?.htmlLabels;
99367
+ const htmlLabels = getEffectiveHtmlLabels(config2);
99396
99368
  const cssHtmlElements = ["> *", "span"];
99397
99369
  const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"];
99398
99370
  const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;
@@ -99437,13 +99409,13 @@ var putIntoIFrame = /* @__PURE__ */ __name((svgCode = "", svgElement) => {
99437
99409
  ${IFRAME_NOT_SUPPORTED_MSG}
99438
99410
  </iframe>`;
99439
99411
  }, "putIntoIFrame");
99440
- var appendDivSvgG = /* @__PURE__ */ __name((parentRoot, id28, enclosingDivId, divStyle, svgXlink) => {
99412
+ var appendDivSvgG = /* @__PURE__ */ __name((parentRoot, id30, enclosingDivId, divStyle, svgXlink) => {
99441
99413
  const enclosingDiv = parentRoot.append("div");
99442
99414
  enclosingDiv.attr("id", enclosingDivId);
99443
99415
  if (divStyle) {
99444
99416
  enclosingDiv.attr("style", divStyle);
99445
99417
  }
99446
- const svgNode2 = enclosingDiv.append("svg").attr("id", id28).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD);
99418
+ const svgNode2 = enclosingDiv.append("svg").attr("id", id30).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD);
99447
99419
  if (svgXlink) {
99448
99420
  svgNode2.attr("xmlns:xlink", svgXlink);
99449
99421
  }
@@ -99454,12 +99426,12 @@ function sandboxedIframe(parentNode, iFrameId) {
99454
99426
  return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", "");
99455
99427
  }
99456
99428
  __name(sandboxedIframe, "sandboxedIframe");
99457
- var removeExistingElements = /* @__PURE__ */ __name((doc, id28, divId, iFrameId) => {
99458
- doc.getElementById(id28)?.remove();
99429
+ var removeExistingElements = /* @__PURE__ */ __name((doc, id30, divId, iFrameId) => {
99430
+ doc.getElementById(id30)?.remove();
99459
99431
  doc.getElementById(divId)?.remove();
99460
99432
  doc.getElementById(iFrameId)?.remove();
99461
99433
  }, "removeExistingElements");
99462
- var render2 = /* @__PURE__ */ __name(async function(id28, text2, svgContainingElement) {
99434
+ var render2 = /* @__PURE__ */ __name(async function(id30, text2, svgContainingElement) {
99463
99435
  addDiagrams();
99464
99436
  const processed = processAndSetConfigs(text2);
99465
99437
  text2 = processed.code;
@@ -99468,10 +99440,10 @@ var render2 = /* @__PURE__ */ __name(async function(id28, text2, svgContainingEl
99468
99440
  if (text2.length > (config2?.maxTextSize ?? MAX_TEXTLENGTH)) {
99469
99441
  text2 = MAX_TEXTLENGTH_EXCEEDED_MSG;
99470
99442
  }
99471
- const idSelector = "#" + id28;
99472
- const iFrameID = "i" + id28;
99443
+ const idSelector = "#" + id30;
99444
+ const iFrameID = "i" + id30;
99473
99445
  const iFrameID_selector = "#" + iFrameID;
99474
- const enclosingDivID = "d" + id28;
99446
+ const enclosingDivID = "d" + id30;
99475
99447
  const enclosingDivID_selector = "#" + enclosingDivID;
99476
99448
  const removeTempElements = /* @__PURE__ */ __name(() => {
99477
99449
  const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;
@@ -99495,9 +99467,9 @@ var render2 = /* @__PURE__ */ __name(async function(id28, text2, svgContainingEl
99495
99467
  } else {
99496
99468
  root2 = select(svgContainingElement);
99497
99469
  }
99498
- appendDivSvgG(root2, id28, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);
99470
+ appendDivSvgG(root2, id30, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);
99499
99471
  } else {
99500
- removeExistingElements(document, id28, enclosingDivID, iFrameID);
99472
+ removeExistingElements(document, id30, enclosingDivID, iFrameID);
99501
99473
  if (isSandboxed) {
99502
99474
  const iframe = sandboxedIframe(select("body"), iFrameID);
99503
99475
  root2 = select(iframe.nodes()[0].contentDocument.body);
@@ -99505,7 +99477,7 @@ var render2 = /* @__PURE__ */ __name(async function(id28, text2, svgContainingEl
99505
99477
  } else {
99506
99478
  root2 = select("body");
99507
99479
  }
99508
- appendDivSvgG(root2, id28, enclosingDivID);
99480
+ appendDivSvgG(root2, id30, enclosingDivID);
99509
99481
  }
99510
99482
  let diag;
99511
99483
  let parseEncounteredException;
@@ -99529,12 +99501,12 @@ var render2 = /* @__PURE__ */ __name(async function(id28, text2, svgContainingEl
99529
99501
  style1.innerHTML = rules;
99530
99502
  svg2.insertBefore(style1, firstChild);
99531
99503
  try {
99532
- await diag.renderer.draw(text2, id28, package_default.version, diag);
99504
+ await diag.renderer.draw(text2, id30, "11.13.0", diag);
99533
99505
  } catch (e2) {
99534
99506
  if (config2.suppressErrorRendering) {
99535
99507
  removeTempElements();
99536
99508
  } else {
99537
- errorRenderer_default.draw(text2, id28, package_default.version);
99509
+ errorRenderer_default.draw(text2, id30, "11.13.0");
99538
99510
  }
99539
99511
  throw e2;
99540
99512
  }
@@ -99542,7 +99514,7 @@ var render2 = /* @__PURE__ */ __name(async function(id28, text2, svgContainingEl
99542
99514
  const a11yTitle = diag.db.getAccTitle?.();
99543
99515
  const a11yDescr = diag.db.getAccDescription?.();
99544
99516
  addA11yInfo(diagramType, svgNode2, a11yTitle, a11yDescr);
99545
- root2.select(`[id="${id28}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD);
99517
+ root2.select(`[id="${id30}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD);
99546
99518
  let svgCode = root2.select(enclosingDivID_selector).node().innerHTML;
99547
99519
  log.debug("config.arrowMarkerAbsolute", config2.arrowMarkerAbsolute);
99548
99520
  svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute));
@@ -99682,7 +99654,7 @@ var runThrowsErrors = /* @__PURE__ */ __name(async function({ postRenderCallback
99682
99654
  continue;
99683
99655
  }
99684
99656
  element.setAttribute("data-processed", "true");
99685
- const id28 = `mermaid-${idGenerator.next()}`;
99657
+ const id30 = `mermaid-${idGenerator.next()}`;
99686
99658
  txt = element.innerHTML;
99687
99659
  txt = dedent(utils_default.entityDecode(txt)).trim().replace(/<br\s*\/?>/gi, "<br/>");
99688
99660
  const init2 = utils_default.detectInit(txt);
@@ -99690,10 +99662,10 @@ var runThrowsErrors = /* @__PURE__ */ __name(async function({ postRenderCallback
99690
99662
  log.debug("Detected early reinit: ", init2);
99691
99663
  }
99692
99664
  try {
99693
- const { svg: svg2, bindFunctions } = await render22(id28, txt, element);
99665
+ const { svg: svg2, bindFunctions } = await render22(id30, txt, element);
99694
99666
  element.innerHTML = svg2;
99695
99667
  if (postRenderCallback) {
99696
- await postRenderCallback(id28);
99668
+ await postRenderCallback(id30);
99697
99669
  }
99698
99670
  if (bindFunctions) {
99699
99671
  bindFunctions(element);
@@ -99788,10 +99760,10 @@ var parse2 = /* @__PURE__ */ __name(async (text2, parseOptions) => {
99788
99760
  executeQueue().catch(reject);
99789
99761
  });
99790
99762
  }, "parse");
99791
- var render22 = /* @__PURE__ */ __name((id28, text2, container) => {
99763
+ var render22 = /* @__PURE__ */ __name((id30, text2, container) => {
99792
99764
  return new Promise((resolve, reject) => {
99793
99765
  const performCall = /* @__PURE__ */ __name(() => new Promise((res, rej) => {
99794
- mermaidAPI.render(id28, text2, container).then(
99766
+ mermaidAPI.render(id30, text2, container).then(
99795
99767
  (r2) => {
99796
99768
  res(r2);
99797
99769
  resolve(r2);
@@ -99809,8 +99781,8 @@ var render22 = /* @__PURE__ */ __name((id28, text2, container) => {
99809
99781
  });
99810
99782
  }, "render");
99811
99783
  var getRegisteredDiagramsMetadata = /* @__PURE__ */ __name(() => {
99812
- return Object.keys(detectors).map((id28) => ({
99813
- id: id28
99784
+ return Object.keys(detectors).map((id30) => ({
99785
+ id: id30
99814
99786
  }));
99815
99787
  }, "getRegisteredDiagramsMetadata");
99816
99788
  var mermaid = {
@@ -99843,13 +99815,13 @@ class DomindsMermaidBlock extends HTMLElement {
99843
99815
  return normalizedNewlines.replace(
99844
99816
  /(\b[\w-]+)\[([^\]\n]*?)\]/g,
99845
99817
  (_full, rawId, rawLabel) => {
99846
- const id28 = String(rawId);
99818
+ const id30 = String(rawId);
99847
99819
  const label = String(rawLabel).trim();
99848
- if (!label) return `${id28}[]`;
99849
- if (label.startsWith('"') || label.startsWith("'")) return `${id28}[${label}]`;
99850
- if (!/[<>()|]/.test(label)) return `${id28}[${label}]`;
99820
+ if (!label) return `${id30}[]`;
99821
+ if (label.startsWith('"') || label.startsWith("'")) return `${id30}[${label}]`;
99822
+ if (!/[<>()|]/.test(label)) return `${id30}[${label}]`;
99851
99823
  const escaped = label.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
99852
- return `${id28}["${escaped}"]`;
99824
+ return `${id30}["${escaped}"]`;
99853
99825
  }
99854
99826
  );
99855
99827
  }
@@ -100290,14 +100262,14 @@ md.core.ruler.push("dominds_heading_ids", (state2) => {
100290
100262
  const rawText = inline2.content;
100291
100263
  const base2 = slugifyHeadingId(rawText);
100292
100264
  if (!base2) continue;
100293
- let id28 = base2;
100265
+ let id30 = base2;
100294
100266
  let attempt = 2;
100295
- while (used.has(id28)) {
100296
- id28 = `${base2}-${attempt}`;
100267
+ while (used.has(id30)) {
100268
+ id30 = `${base2}-${attempt}`;
100297
100269
  attempt += 1;
100298
100270
  }
100299
- used.add(id28);
100300
- token2.attrSet("id", id28);
100271
+ used.add(id30);
100272
+ token2.attrSet("id", id30);
100301
100273
  }
100302
100274
  });
100303
100275
  installDomindsMathBlockRule(md);
@@ -100547,6 +100519,8 @@ class DomindsDialogContainer extends HTMLElement {
100547
100519
  this.webSearchSectionBySeq = /* @__PURE__ */ new Map();
100548
100520
  this.nativeToolSectionByIdentity = /* @__PURE__ */ new Map();
100549
100521
  this.nativeToolSectionBySeq = /* @__PURE__ */ new Map();
100522
+ this.toolResultImageStatusByKey = /* @__PURE__ */ new Map();
100523
+ this.toolResultImageStatusElByKey = /* @__PURE__ */ new Map();
100550
100524
  this.queuedUserBubbleByMsgId = /* @__PURE__ */ new Map();
100551
100525
  this.pendingTellaskCallAnchorByGenseq = /* @__PURE__ */ new Map();
100552
100526
  this.progressiveExpandObserverByTarget = /* @__PURE__ */ new WeakMap();
@@ -101182,7 +101156,7 @@ class DomindsDialogContainer extends HTMLElement {
101182
101156
  this.teamConfiguration = {
101183
101157
  memberDefaults: { icon: cfg.memberDefaults.icon, name: cfg.memberDefaults.name },
101184
101158
  members: Object.fromEntries(
101185
- Object.entries(cfg.members).map(([id28, m2]) => [id28, { icon: m2.icon, name: m2.name }])
101159
+ Object.entries(cfg.members).map(([id30, m2]) => [id30, { icon: m2.icon, name: m2.name }])
101186
101160
  )
101187
101161
  };
101188
101162
  } catch (error2) {
@@ -101277,6 +101251,8 @@ class DomindsDialogContainer extends HTMLElement {
101277
101251
  this.webSearchSectionBySeq.clear();
101278
101252
  this.nativeToolSectionByIdentity.clear();
101279
101253
  this.nativeToolSectionBySeq.clear();
101254
+ this.toolResultImageStatusByKey.clear();
101255
+ this.toolResultImageStatusElByKey.clear();
101280
101256
  this.queuedUserBubbleByMsgId.clear();
101281
101257
  this.pendingTellaskCallAnchorByGenseq.clear();
101282
101258
  const messages = this.shadowRoot?.querySelector(".messages");
@@ -101304,6 +101280,8 @@ class DomindsDialogContainer extends HTMLElement {
101304
101280
  this.webSearchSectionBySeq.clear();
101305
101281
  this.nativeToolSectionByIdentity.clear();
101306
101282
  this.nativeToolSectionBySeq.clear();
101283
+ this.toolResultImageStatusByKey.clear();
101284
+ this.toolResultImageStatusElByKey.clear();
101307
101285
  this.queuedUserBubbleByMsgId.clear();
101308
101286
  this.pendingTellaskCallAnchorByGenseq.clear();
101309
101287
  const messages = this.shadowRoot?.querySelector(".messages");
@@ -101501,6 +101479,9 @@ class DomindsDialogContainer extends HTMLElement {
101501
101479
  case "native_tool_call_evt":
101502
101480
  this.handleNativeToolCall(event);
101503
101481
  break;
101482
+ case "tool_result_image_ingest_evt":
101483
+ this.handleToolResultImageIngest(event);
101484
+ break;
101504
101485
  // Function results
101505
101486
  case "func_result_evt":
101506
101487
  if (this.generationBubble && this.currentCourse !== event.course) {
@@ -101885,6 +101866,16 @@ class DomindsDialogContainer extends HTMLElement {
101885
101866
  this.pendingCallTimingById.delete(callId);
101886
101867
  }
101887
101868
  }
101869
+ for (const key of Array.from(this.toolResultImageStatusByKey.keys())) {
101870
+ if (key.startsWith(`${String(seq2)}::`)) {
101871
+ this.toolResultImageStatusByKey.delete(key);
101872
+ }
101873
+ }
101874
+ for (const [key, statusEl] of this.toolResultImageStatusElByKey.entries()) {
101875
+ if (key.startsWith(`${String(seq2)}::`) || !statusEl.isConnected) {
101876
+ this.toolResultImageStatusElByKey.delete(key);
101877
+ }
101878
+ }
101888
101879
  if (this.pendingCallTimingById.size === 0) {
101889
101880
  this.stopCallTimingTicker();
101890
101881
  }
@@ -102304,9 +102295,9 @@ itemId: ${itemId}` : ""}` : `itemId: ${itemId}`;
102304
102295
  const seen2 = /* @__PURE__ */ new Set();
102305
102296
  const out = [];
102306
102297
  for (const match2 of headline.matchAll(re2)) {
102307
- const id28 = (match2[1] ?? "").trim();
102308
- if (id28 === "") continue;
102309
- const mention = `@${id28}`;
102298
+ const id30 = (match2[1] ?? "").trim();
102299
+ if (id30 === "") continue;
102300
+ const mention = `@${id30}`;
102310
102301
  if (seen2.has(mention)) continue;
102311
102302
  seen2.add(mention);
102312
102303
  out.push(mention);
@@ -102633,6 +102624,30 @@ itemId: ${itemId}` : ""}` : `itemId: ${itemId}`;
102633
102624
  this.markCallSitePending(event.callId, callingSection, startedAtMs);
102634
102625
  this.scrollToBottom();
102635
102626
  }
102627
+ makeToolResultImageStatusKey(genseq, toolCallId, relPath) {
102628
+ return `${String(genseq)}::${toolCallId}::${relPath}`;
102629
+ }
102630
+ updateToolResultImageStatusDisplay(args) {
102631
+ const key = this.makeToolResultImageStatusKey(args.genseq, args.toolCallId, args.relPath);
102632
+ this.toolResultImageStatusByKey.set(key, {
102633
+ message: args.message,
102634
+ disposition: args.disposition,
102635
+ genseq: args.genseq
102636
+ });
102637
+ const existing = this.toolResultImageStatusElByKey.get(key);
102638
+ if (!existing) return;
102639
+ existing.textContent = args.message;
102640
+ existing.setAttribute("data-image-ingest-disposition", args.disposition);
102641
+ }
102642
+ handleToolResultImageIngest(event) {
102643
+ this.updateToolResultImageStatusDisplay({
102644
+ genseq: event.genseq,
102645
+ toolCallId: event.toolCallId,
102646
+ relPath: event.artifact.relPath,
102647
+ message: event.message,
102648
+ disposition: event.disposition
102649
+ });
102650
+ }
102636
102651
  // === FUNCTION RESULTS ===
102637
102652
  handleFuncResult(event) {
102638
102653
  if (event.id) {
@@ -102644,6 +102659,11 @@ itemId: ${itemId}` : ""}` : `itemId: ${itemId}`;
102644
102659
  if (resultEl) {
102645
102660
  const items = event.contentItems;
102646
102661
  if (Array.isArray(items) && items.length > 0) {
102662
+ for (const key of Array.from(this.toolResultImageStatusElByKey.keys())) {
102663
+ if (key.startsWith(`${String(event.genseq)}::${event.id}::`)) {
102664
+ this.toolResultImageStatusElByKey.delete(key);
102665
+ }
102666
+ }
102647
102667
  resultEl.innerHTML = "";
102648
102668
  for (const item of items) {
102649
102669
  if (item.type === "input_text") {
@@ -102660,18 +102680,40 @@ itemId: ${itemId}` : ""}` : `itemId: ${itemId}`;
102660
102680
  continue;
102661
102681
  }
102662
102682
  if (item.type === "input_image") {
102683
+ const figure = document.createElement("figure");
102684
+ figure.className = "tool-result-image";
102685
+ figure.setAttribute("data-tool-call-id", event.id);
102686
+ figure.setAttribute("data-artifact-rel-path", item.artifact.relPath);
102663
102687
  const img = document.createElement("img");
102664
102688
  img.alt = "tool image";
102665
102689
  img.style.maxWidth = "100%";
102666
102690
  img.style.height = "auto";
102667
102691
  img.style.display = "block";
102692
+ const ingestStatus = document.createElement("figcaption");
102693
+ ingestStatus.className = "tool-result-image-ingest-status";
102694
+ const imageStatusKey = this.makeToolResultImageStatusKey(
102695
+ event.genseq,
102696
+ event.id,
102697
+ item.artifact.relPath
102698
+ );
102699
+ this.toolResultImageStatusElByKey.set(imageStatusKey, ingestStatus);
102700
+ const existingStatus = this.toolResultImageStatusByKey.get(imageStatusKey);
102701
+ if (existingStatus) {
102702
+ ingestStatus.textContent = existingStatus.message;
102703
+ ingestStatus.setAttribute(
102704
+ "data-image-ingest-disposition",
102705
+ existingStatus.disposition
102706
+ );
102707
+ }
102668
102708
  const placeholder = document.createElement("div");
102669
102709
  placeholder.textContent = `Loading image (${item.mimeType}, ${item.byteLength} bytes)…`;
102670
102710
  placeholder.style.opacity = "0.8";
102671
102711
  placeholder.style.fontSize = "12px";
102672
102712
  placeholder.style.margin = "6px 0";
102673
- resultEl.appendChild(placeholder);
102674
- resultEl.appendChild(img);
102713
+ figure.appendChild(placeholder);
102714
+ figure.appendChild(img);
102715
+ figure.appendChild(ingestStatus);
102716
+ resultEl.appendChild(figure);
102675
102717
  const api = getApiClient();
102676
102718
  const params = new URLSearchParams();
102677
102719
  params.set("path", item.artifact.relPath);
@@ -104057,19 +104099,19 @@ ${event.content}`;
104057
104099
  // User messages are now handled by 'end_of_user_saying_evt' event - see handleDialogEvent()
104058
104100
  getAuthorLabel(role, responderId) {
104059
104101
  if (role === "user") return "Human";
104060
- const id28 = responderId || this.currentDialog?.agentId || "";
104061
- if (!id28) return "🤖 Assistant";
104062
- if (this.teamConfiguration?.members?.[id28]) {
104063
- const member = this.teamConfiguration.members[id28];
104102
+ const id30 = responderId || this.currentDialog?.agentId || "";
104103
+ if (!id30) return "🤖 Assistant";
104104
+ if (this.teamConfiguration?.members?.[id30]) {
104105
+ const member = this.teamConfiguration.members[id30];
104064
104106
  const icon2 = member.icon || this.teamConfiguration.memberDefaults?.icon || "🤖";
104065
- const name = member.name || `@${id28}`;
104107
+ const name = member.name || `@${id30}`;
104066
104108
  return `${icon2} ${name}`;
104067
104109
  }
104068
104110
  if (this.teamConfiguration?.memberDefaults) {
104069
104111
  const icon2 = this.teamConfiguration.memberDefaults.icon || "🤖";
104070
- return `${icon2} @${id28}`;
104112
+ return `${icon2} @${id30}`;
104071
104113
  }
104072
- return `🤖 @${id28}`;
104114
+ return `🤖 @${id30}`;
104073
104115
  }
104074
104116
  escapeHtml(text2) {
104075
104117
  return text2.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
@@ -105104,6 +105146,27 @@ ${event.content}`;
105104
105146
  color: var(--color-danger, #ef4444);
105105
105147
  }
105106
105148
 
105149
+ .tool-result-image {
105150
+ margin: 8px 0;
105151
+ }
105152
+
105153
+ .tool-result-image > img {
105154
+ border-radius: 8px;
105155
+ border: 1px solid var(--dominds-border, var(--color-border-primary, #e2e8f0));
105156
+ background: var(--color-bg-tertiary, #f8fafc);
105157
+ }
105158
+
105159
+ .tool-result-image-ingest-status {
105160
+ margin-top: 6px;
105161
+ font-size: var(--dominds-font-size-xs, 11px);
105162
+ line-height: 1.45;
105163
+ color: var(--dominds-fg-muted, var(--color-fg-tertiary, #64748b));
105164
+ }
105165
+
105166
+ .tool-result-image-ingest-status[data-image-ingest-disposition^='filtered_'] {
105167
+ color: var(--color-warning-strong, #b45309);
105168
+ }
105169
+
105107
105170
  .func-call-section.failed {
105108
105171
  border-left-color: var(--color-danger, #ef4444);
105109
105172
  background: rgba(239, 68, 68, 0.08);
@@ -105795,16 +105858,16 @@ class DomindsDocsPanel extends HTMLElement {
105795
105858
  }
105796
105859
  scrollToPendingAnchorIfAny() {
105797
105860
  if (!this.pendingScrollAnchorId) return;
105798
- const id28 = this.pendingScrollAnchorId;
105861
+ const id30 = this.pendingScrollAnchorId;
105799
105862
  this.pendingScrollAnchorId = null;
105800
- this.scrollToAnchorId(id28);
105863
+ this.scrollToAnchorId(id30);
105801
105864
  }
105802
- scrollToAnchorId(id28) {
105865
+ scrollToAnchorId(id30) {
105803
105866
  const root2 = this.shadowRoot;
105804
105867
  if (!root2) return;
105805
105868
  const body = root2.querySelector(".docs-body");
105806
105869
  if (!(body instanceof HTMLElement)) return;
105807
- const anchor2 = body.querySelector(`#${CSS.escape(id28)}`);
105870
+ const anchor2 = body.querySelector(`#${CSS.escape(id30)}`);
105808
105871
  if (!(anchor2 instanceof HTMLElement)) return;
105809
105872
  anchor2.scrollIntoView({ behavior: "smooth", block: "start" });
105810
105873
  }
@@ -105855,13 +105918,13 @@ class DomindsDocsPanel extends HTMLElement {
105855
105918
  if (href.startsWith("#")) {
105856
105919
  const idRaw = href.slice(1);
105857
105920
  if (!idRaw) return;
105858
- let id28 = idRaw;
105921
+ let id30 = idRaw;
105859
105922
  try {
105860
- id28 = decodeURIComponent(idRaw);
105923
+ id30 = decodeURIComponent(idRaw);
105861
105924
  } catch {
105862
105925
  }
105863
- if (!id28) return;
105864
- this.scrollToAnchorId(id28);
105926
+ if (!id30) return;
105927
+ this.scrollToAnchorId(id30);
105865
105928
  return;
105866
105929
  }
105867
105930
  if (href.startsWith("/f/") || href === "/f" || href === "/workspace" || href.startsWith("/workspace/") || href === "/rtws" || href.startsWith("/rtws/")) {
@@ -107228,8 +107291,8 @@ class DomindsQ4HPanel extends HTMLElement {
107228
107291
  if (!root2) return;
107229
107292
  const selectedId = this.selectedQuestionId;
107230
107293
  root2.querySelectorAll(".q4h-question-card").forEach((card2) => {
107231
- const id28 = card2.getAttribute("data-question-id");
107232
- const selected = selectedId !== null && id28 === selectedId;
107294
+ const id30 = card2.getAttribute("data-question-id");
107295
+ const selected = selectedId !== null && id30 === selectedId;
107233
107296
  card2.classList.toggle("selected", selected);
107234
107297
  });
107235
107298
  if (selectedId !== null) {
@@ -108371,20 +108434,20 @@ class DomindsSnippetsPanel extends HTMLElement {
108371
108434
  const target = e2.target;
108372
108435
  if (target instanceof Element && target.closest("button")) return;
108373
108436
  if (this.state.kind !== "ready") return;
108374
- const id28 = card2.getAttribute("data-id");
108375
- if (typeof id28 !== "string" || id28 === "") return;
108437
+ const id30 = card2.getAttribute("data-id");
108438
+ if (typeof id30 !== "string" || id30 === "") return;
108376
108439
  const all = this.state.groups.flatMap((g2) => g2.templates);
108377
- const snippet2 = all.find((x2) => x2.id === id28);
108440
+ const snippet2 = all.find((x2) => x2.id === id30);
108378
108441
  this.selectSnippet(snippet2 ?? null);
108379
108442
  });
108380
108443
  card2.addEventListener("keydown", (e2) => {
108381
108444
  if (e2.key !== "Enter" && e2.key !== " ") return;
108382
108445
  e2.preventDefault();
108383
108446
  if (this.state.kind !== "ready") return;
108384
- const id28 = card2.getAttribute("data-id");
108385
- if (typeof id28 !== "string" || id28 === "") return;
108447
+ const id30 = card2.getAttribute("data-id");
108448
+ if (typeof id30 !== "string" || id30 === "") return;
108386
108449
  const all = this.state.groups.flatMap((g2) => g2.templates);
108387
- const snippet2 = all.find((x2) => x2.id === id28);
108450
+ const snippet2 = all.find((x2) => x2.id === id30);
108388
108451
  this.selectSnippet(snippet2 ?? null);
108389
108452
  });
108390
108453
  });
@@ -108605,8 +108668,8 @@ function requireAppJson() {
108605
108668
  function parseToolsetJson(v2, at2) {
108606
108669
  if (!isRecord(v2))
108607
108670
  return { ok: false, errorText: `Invalid ${at2}: expected object` };
108608
- const id28 = asString(v2["id"]);
108609
- if (!id28 || id28.trim() === "")
108671
+ const id30 = asString(v2["id"]);
108672
+ if (!id30 || id30.trim() === "")
108610
108673
  return { ok: false, errorText: `Invalid ${at2}.id: required` };
108611
108674
  const descriptionI18n = v2["descriptionI18n"];
108612
108675
  if (descriptionI18n !== void 0 && !isI18nText(descriptionI18n)) {
@@ -108625,7 +108688,7 @@ function requireAppJson() {
108625
108688
  return {
108626
108689
  ok: true,
108627
108690
  toolset: {
108628
- id: id28,
108691
+ id: id30,
108629
108692
  descriptionI18n,
108630
108693
  tools
108631
108694
  }
@@ -108634,8 +108697,8 @@ function requireAppJson() {
108634
108697
  function parseDialogRunControlJson(v2, at2) {
108635
108698
  if (!isRecord(v2))
108636
108699
  return { ok: false, errorText: `Invalid ${at2}: expected object` };
108637
- const id28 = asString(v2["id"]);
108638
- if (!id28 || id28.trim() === "")
108700
+ const id30 = asString(v2["id"]);
108701
+ if (!id30 || id30.trim() === "")
108639
108702
  return { ok: false, errorText: `Invalid ${at2}.id: required` };
108640
108703
  const descriptionI18n = v2["descriptionI18n"];
108641
108704
  if (descriptionI18n !== void 0 && !isI18nText(descriptionI18n)) {
@@ -108644,7 +108707,7 @@ function requireAppJson() {
108644
108707
  return {
108645
108708
  ok: true,
108646
108709
  control: {
108647
- id: id28,
108710
+ id: id30,
108648
108711
  descriptionI18n
108649
108712
  }
108650
108713
  };
@@ -109158,16 +109221,16 @@ class DomindsTeamManualPanel extends HTMLElement {
109158
109221
  const href = link2.getAttribute("href");
109159
109222
  if (typeof href !== "string") return;
109160
109223
  if (!href.startsWith("#")) return;
109161
- let id28 = href.slice(1);
109224
+ let id30 = href.slice(1);
109162
109225
  try {
109163
- id28 = decodeURIComponent(id28);
109226
+ id30 = decodeURIComponent(id30);
109164
109227
  } catch {
109165
109228
  }
109166
- if (!id28) {
109229
+ if (!id30) {
109167
109230
  e2.preventDefault();
109168
109231
  return;
109169
109232
  }
109170
- const anchor2 = body.querySelector(`#${CSS.escape(id28)}`);
109233
+ const anchor2 = body.querySelector(`#${CSS.escape(id30)}`);
109171
109234
  e2.preventDefault();
109172
109235
  if (!(anchor2 instanceof HTMLElement)) return;
109173
109236
  anchor2.scrollIntoView({ behavior: "smooth", block: "start" });
@@ -121931,13 +121994,13 @@ ${content}`;
121931
121994
  for (const item of value) {
121932
121995
  if (typeof item !== "object" || item === null) continue;
121933
121996
  const rec = item;
121934
- const id28 = typeof rec["id"] === "string" ? rec["id"] : "";
121997
+ const id30 = typeof rec["id"] === "string" ? rec["id"] : "";
121935
121998
  const timestamp2 = typeof rec["timestamp"] === "string" ? rec["timestamp"] : "";
121936
121999
  const kind = rec["kind"];
121937
122000
  const message = typeof rec["message"] === "string" ? rec["message"] : "";
121938
- if (!id28 || !timestamp2 || !message) continue;
122001
+ if (!id30 || !timestamp2 || !message) continue;
121939
122002
  if (kind !== "error" && kind !== "warning" && kind !== "info") continue;
121940
- next2.push({ id: id28, timestamp: timestamp2, kind, message });
122003
+ next2.push({ id: id30, timestamp: timestamp2, kind, message });
121941
122004
  }
121942
122005
  return next2;
121943
122006
  }
@@ -121954,11 +122017,11 @@ ${content}`;
121954
122017
  pushToastHistoryEntry(entry) {
121955
122018
  this.loadToastHistoryFromStorage();
121956
122019
  const now2 = /* @__PURE__ */ new Date();
121957
- const id28 = `${String(now2.getTime())}-${String(this.toastHistorySeq += 1)}`;
122020
+ const id30 = `${String(now2.getTime())}-${String(this.toastHistorySeq += 1)}`;
121958
122021
  const trimmed = entry.message.trim();
121959
122022
  if (trimmed === "") return;
121960
122023
  const next2 = {
121961
- id: id28,
122024
+ id: id30,
121962
122025
  timestamp: now2.toISOString(),
121963
122026
  kind: entry.kind,
121964
122027
  message: trimmed
@@ -123410,28 +123473,28 @@ ${t2.commandLabel}: ${commandStr}`;
123410
123473
  const next2 = [];
123411
123474
  const seenIds = /* @__PURE__ */ new Set();
123412
123475
  for (const existing of this.q4hQuestions) {
123413
- const id28 = typeof existing.id === "string" ? existing.id : "";
123414
- if (!id28) {
123476
+ const id30 = typeof existing.id === "string" ? existing.id : "";
123477
+ if (!id30) {
123415
123478
  throw new Error("Q4H client cache violation: existing question has invalid id");
123416
123479
  }
123417
- if (seenIds.has(id28)) {
123418
- throw new Error(`Q4H client cache violation: duplicate cached question id (${id28})`);
123480
+ if (seenIds.has(id30)) {
123481
+ throw new Error(`Q4H client cache violation: duplicate cached question id (${id30})`);
123419
123482
  }
123420
- seenIds.add(id28);
123483
+ seenIds.add(id30);
123421
123484
  const existingWithDialog = existing;
123422
123485
  const selfId = typeof existingWithDialog.selfId === "string" ? existingWithDialog.selfId : null;
123423
123486
  if (!selfId) {
123424
- const incoming2 = incomingById.get(id28);
123487
+ const incoming2 = incomingById.get(id30);
123425
123488
  next2.push(incoming2 ?? existing);
123426
- if (incoming2) incomingById.delete(id28);
123489
+ if (incoming2) incomingById.delete(id30);
123427
123490
  continue;
123428
123491
  }
123429
123492
  const rootId = typeof existingWithDialog.rootId === "string" && existingWithDialog.rootId ? existingWithDialog.rootId : selfId;
123430
123493
  const status = this.lookupVisibleDialogStatusByIds(rootId, selfId);
123431
- const incoming = incomingById.get(id28);
123494
+ const incoming = incomingById.get(id30);
123432
123495
  if (incoming) {
123433
123496
  next2.push(incoming);
123434
- incomingById.delete(id28);
123497
+ incomingById.delete(id30);
123435
123498
  continue;
123436
123499
  }
123437
123500
  if (status === "running") {
@@ -123439,11 +123502,11 @@ ${t2.commandLabel}: ${commandStr}`;
123439
123502
  }
123440
123503
  next2.push(existing);
123441
123504
  }
123442
- for (const [id28, q2] of incomingById.entries()) {
123443
- if (seenIds.has(id28)) {
123444
- throw new Error(`Q4H state merge violation: duplicate id during merge (${id28})`);
123505
+ for (const [id30, q2] of incomingById.entries()) {
123506
+ if (seenIds.has(id30)) {
123507
+ throw new Error(`Q4H state merge violation: duplicate id during merge (${id30})`);
123445
123508
  }
123446
- seenIds.add(id28);
123509
+ seenIds.add(id30);
123447
123510
  next2.push(q2);
123448
123511
  }
123449
123512
  this.q4hQuestions = next2;
@@ -125465,15 +125528,15 @@ document.addEventListener("DOMContentLoaded", async () => {
125465
125528
  });
125466
125529
  export {
125467
125530
  commonDb_exports as $,
125468
- rgba$1 as A,
125469
- __export as B,
125470
- setupGraphViewbox2 as C,
125471
- cleanAndMerge as D,
125472
- defaultConfig_default as E,
125473
- getConfig as F,
125474
- random as G,
125475
- selectSvgElement as H,
125476
- package_default as I,
125531
+ defaultConfig2 as A,
125532
+ rgba$1 as B,
125533
+ __export as C,
125534
+ setupGraphViewbox2 as D,
125535
+ cleanAndMerge as E,
125536
+ defaultConfig_default as F,
125537
+ getConfig as G,
125538
+ random as H,
125539
+ selectSvgElement as I,
125477
125540
  JSON_SCHEMA as J,
125478
125541
  getThemeVariables3 as K,
125479
125542
  hasKatex as L,
@@ -125493,7 +125556,7 @@ export {
125493
125556
  ZERO_WIDTH_SPACE as Z,
125494
125557
  __name as _,
125495
125558
  getAccTitle as a,
125496
- isLabelStyle as a$,
125559
+ isIndex as a$,
125497
125560
  withPath as a0,
125498
125561
  halfPi as a1,
125499
125562
  epsilon as a2,
@@ -125504,33 +125567,33 @@ export {
125504
125567
  abs$1 as a7,
125505
125568
  pi as a8,
125506
125569
  sqrt as a9,
125507
- baseRest as aA,
125508
- isArrayLikeObject as aB,
125509
- constant as aC,
125510
- isFunction as aD,
125511
- isEmpty2 as aE,
125512
- computeDimensionOfText as aF,
125513
- array as aG,
125514
- getUserDefinedConfig as aH,
125515
- getDefaultExportFromCjs as aI,
125516
- getIconSVG as aJ,
125517
- registerIconPacks as aK,
125518
- unknownIcon as aL,
125519
- constant$2 as aM,
125520
- interpolateNumber as aN,
125521
- color as aO,
125522
- interpolateRgb as aP,
125523
- interpolateString as aQ,
125524
- isObject as aR,
125525
- isIterateeCall as aS,
125526
- keysIn as aT,
125527
- eq as aU,
125528
- isArrayLike as aV,
125529
- isArray as aW,
125530
- identity as aX,
125531
- isIndex as aY,
125532
- assignValue as aZ,
125533
- styles2String as a_,
125570
+ positionEdgeLabel as aA,
125571
+ insertEdgeLabel as aB,
125572
+ baseRest as aC,
125573
+ isArrayLikeObject as aD,
125574
+ constant as aE,
125575
+ isFunction as aF,
125576
+ isEmpty2 as aG,
125577
+ computeDimensionOfText as aH,
125578
+ adjustChannel as aI,
125579
+ array as aJ,
125580
+ getUserDefinedConfig as aK,
125581
+ getDefaultExportFromCjs as aL,
125582
+ getIconSVG as aM,
125583
+ registerIconPacks as aN,
125584
+ unknownIcon as aO,
125585
+ constant$2 as aP,
125586
+ interpolateNumber as aQ,
125587
+ color as aR,
125588
+ interpolateRgb as aS,
125589
+ interpolateString as aT,
125590
+ isObject as aU,
125591
+ isIterateeCall as aV,
125592
+ keysIn as aW,
125593
+ eq as aX,
125594
+ isArrayLike as aY,
125595
+ isArray as aZ,
125596
+ identity as a_,
125534
125597
  atan2 as aa,
125535
125598
  constant$1 as ab,
125536
125599
  asin as ac,
@@ -125540,65 +125603,68 @@ export {
125540
125603
  insertNode as ag,
125541
125604
  positionNode as ah,
125542
125605
  getLineFunctionsWithOffset as ai,
125543
- evaluate as aj,
125606
+ getEffectiveHtmlLabels as aj,
125544
125607
  createText as ak,
125545
- getSubGraphTitleMargins as al,
125546
- replaceIconSubstring as am,
125547
- decodeEntities as an,
125548
- getStylesFromArray as ao,
125549
- Utils as ap,
125550
- Color$1 as aq,
125551
- markers_default as ar,
125552
- clear2 as as,
125553
- clear as at,
125554
- clear$1 as au,
125555
- updateNodeBounds as av,
125556
- setNodeElem as aw,
125557
- insertEdge as ax,
125558
- positionEdgeLabel as ay,
125559
- insertEdgeLabel as az,
125608
+ computeLabelTransform as al,
125609
+ getSubGraphTitleMargins as am,
125610
+ getStylesFromArray as an,
125611
+ decodeEntities as ao,
125612
+ configureLabelImages as ap,
125613
+ Utils as aq,
125614
+ Color$1 as ar,
125615
+ at as as,
125616
+ markers_default as at,
125617
+ clear2 as au,
125618
+ clear as av,
125619
+ clear$1 as aw,
125620
+ updateNodeBounds as ax,
125621
+ setNodeElem as ay,
125622
+ insertEdge as az,
125560
125623
  setAccTitle as b,
125561
- Rgb as b0,
125562
- rgbConvert as b1,
125563
- define as b2,
125564
- extend$1 as b3,
125565
- Color as b4,
125566
- nogamma as b5,
125567
- hue as b6,
125568
- dayjs2 as b7,
125569
- setToString as b8,
125570
- overRest as b9,
125571
- Set$1 as bA,
125572
- createAssigner as bB,
125573
- isPrototype as bC,
125574
- getAugmentedNamespace as bD,
125575
- __vitePreload as bE,
125576
- baseFor as ba,
125577
- baseAssignValue as bb,
125578
- baseUnary as bc,
125579
- merge as bd,
125580
- isObjectLike as be,
125581
- baseGetTag as bf,
125582
- Symbol$1 as bg,
125583
- arrayLikeKeys as bh,
125584
- baseKeys as bi,
125585
- memoize as bj,
125586
- isArguments as bk,
125587
- copyObject as bl,
125588
- getPrototype as bm,
125589
- cloneArrayBuffer as bn,
125590
- cloneTypedArray as bo,
125591
- getTag as bp,
125592
- nodeUtil as bq,
125593
- copyArray as br,
125594
- isBuffer as bs,
125595
- cloneBuffer as bt,
125596
- initCloneObject as bu,
125597
- Stack as bv,
125598
- MapCache as bw,
125599
- Uint8Array$1 as bx,
125600
- isTypedArray as by,
125601
- isLength as bz,
125624
+ assignValue as b0,
125625
+ styles2String as b1,
125626
+ isLabelStyle as b2,
125627
+ Rgb as b3,
125628
+ rgbConvert as b4,
125629
+ define as b5,
125630
+ extend$1 as b6,
125631
+ Color as b7,
125632
+ nogamma as b8,
125633
+ hue as b9,
125634
+ Uint8Array$1 as bA,
125635
+ isTypedArray as bB,
125636
+ isLength as bC,
125637
+ Set$1 as bD,
125638
+ createAssigner as bE,
125639
+ isPrototype as bF,
125640
+ getAugmentedNamespace as bG,
125641
+ __vitePreload as bH,
125642
+ dayjs2 as ba,
125643
+ setToString as bb,
125644
+ overRest as bc,
125645
+ baseFor as bd,
125646
+ baseAssignValue as be,
125647
+ baseUnary as bf,
125648
+ merge as bg,
125649
+ isObjectLike as bh,
125650
+ baseGetTag as bi,
125651
+ Symbol$1 as bj,
125652
+ arrayLikeKeys as bk,
125653
+ baseKeys as bl,
125654
+ memoize as bm,
125655
+ isArguments as bn,
125656
+ copyObject as bo,
125657
+ getPrototype as bp,
125658
+ cloneArrayBuffer as bq,
125659
+ cloneTypedArray as br,
125660
+ getTag as bs,
125661
+ nodeUtil as bt,
125662
+ copyArray as bu,
125663
+ isBuffer as bv,
125664
+ cloneBuffer as bw,
125665
+ initCloneObject as bx,
125666
+ Stack as by,
125667
+ MapCache as bz,
125602
125668
  getConfig2 as c,
125603
125669
  select as d,
125604
125670
  configureSvgSize as e,
@@ -125621,7 +125687,7 @@ export {
125621
125687
  isValidShape as v,
125622
125688
  wrapLabel as w,
125623
125689
  getEdgeId as x,
125624
- clear$2 as y,
125625
- defaultConfig2 as z
125690
+ purify as y,
125691
+ clear$2 as z
125626
125692
  };
125627
- //# sourceMappingURL=index-BLnM-uON.js.map
125693
+ //# sourceMappingURL=index-D8Klc1n-.js.map