@diagrammo/dgmo 0.60.0 → 0.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/advanced.d.ts +6 -6
  2. package/dist/advanced.js +91 -93
  3. package/dist/auto.js +109 -109
  4. package/dist/auto.mjs +300 -425
  5. package/dist/block.js +49 -105
  6. package/dist/{calculator-ORAKSL5D.js → calculator-M326KQFW.js} +3 -3
  7. package/dist/{chart-meta-C6UaqhTP.d.ts → chart-meta-gUwAzi7N.d.ts} +9 -3
  8. package/dist/chart-meta.d.ts +2 -2
  9. package/dist/chart-meta.js +44 -46
  10. package/dist/{charts-d3-FSNSASP7.js → charts-d3-MN6QCYKU.js} +5 -5
  11. package/dist/{chunk-ON4MEUC4.js → chunk-23RWHHI5.js} +11 -2
  12. package/dist/{chunk-SLGHGT76.js → chunk-2CMM36O7.js} +2 -2
  13. package/dist/{chunk-XVOGT46C.js → chunk-2PTK46E2.js} +2 -2
  14. package/dist/{chunk-X5AIFXB7.js → chunk-2WPLOS4Q.js} +4 -4
  15. package/dist/{chunk-4IFPX4J6.js → chunk-3A2HZBFD.js} +2 -2
  16. package/dist/{chunk-OJD4FU6H.js → chunk-3A7KMF33.js} +2 -2
  17. package/dist/{chunk-DKCEG3N6.js → chunk-3HYRJAXO.js} +4 -4
  18. package/dist/{chunk-V5OBLPLA.js → chunk-3OLO2MZ6.js} +4 -4
  19. package/dist/{chunk-Y5KXCKI5.js → chunk-4BEAHH6G.js} +5 -5
  20. package/dist/{chunk-EKKS325Q.js → chunk-4GQ6I46C.js} +2 -2
  21. package/dist/{chunk-MROSEZHE.js → chunk-5PWIV7ZF.js} +3 -3
  22. package/dist/{chunk-DKG2ADEN.js → chunk-63WPPHOM.js} +2 -2
  23. package/dist/{chunk-I53E3L5M.js → chunk-65QX6LYT.js} +3 -3
  24. package/dist/{chunk-243KZTTS.js → chunk-6BVIZW5N.js} +7 -7
  25. package/dist/{chunk-ZPUVAJTW.js → chunk-6CWNVQPW.js} +3 -3
  26. package/dist/{chunk-6RR4XUOB.js → chunk-7BJQUII6.js} +6 -6
  27. package/dist/{chunk-X5CJAFZF.js → chunk-7FTGNJQ2.js} +3 -3
  28. package/dist/{chunk-PTYUSRGT.js → chunk-7QCYHZVO.js} +5 -5
  29. package/dist/{chunk-ZU2EXJEL.js → chunk-A34FVVVI.js} +2 -2
  30. package/dist/{chunk-BGBGWFUI.js → chunk-A5FNLWKP.js} +3 -3
  31. package/dist/{chunk-BG23Y7JD.js → chunk-AFCVHK3G.js} +3 -3
  32. package/dist/{chunk-QMKFLQL4.js → chunk-AKD3YZ54.js} +3 -3
  33. package/dist/{chunk-BVPRRSMX.js → chunk-B25BEH3F.js} +3 -3
  34. package/dist/{chunk-K5L3LXT3.js → chunk-BSJIPMPG.js} +84 -84
  35. package/dist/{chunk-GCZQAT4Z.js → chunk-CHOKOYSC.js} +3 -3
  36. package/dist/{chunk-2NSR6INI.js → chunk-CSUF6PNF.js} +3 -3
  37. package/dist/{chunk-ZTSBP3AH.js → chunk-CUYDE77F.js} +3 -3
  38. package/dist/{chunk-ZBOSGLES.js → chunk-DJC5M7VC.js} +3 -3
  39. package/dist/{chunk-6XWZKCVS.js → chunk-DPFCFU2K.js} +3 -3
  40. package/dist/{chunk-CDIBHGPW.js → chunk-DY4VJYG7.js} +3 -3
  41. package/dist/{chunk-32G7X6BX.js → chunk-DZZWR6GT.js} +6 -6
  42. package/dist/{chunk-6YY56KU2.js → chunk-E2GEV3BI.js} +3 -3
  43. package/dist/{chunk-PSWWCLLI.js → chunk-EK4QX7NQ.js} +3 -3
  44. package/dist/{chunk-DC3EBYIG.js → chunk-FXLGBUIQ.js} +5 -5
  45. package/dist/{chunk-VVCYOF3P.js → chunk-HBSKE3ML.js} +3 -3
  46. package/dist/{chunk-IO436ODZ.js → chunk-HJ6TMHQG.js} +4 -4
  47. package/dist/{chunk-6F74K4JL.js → chunk-I7IQ2NEJ.js} +3 -3
  48. package/dist/{chunk-VGFUVFJA.js → chunk-IL5UVUMK.js} +3 -3
  49. package/dist/{chunk-S5OQWV54.js → chunk-INLEOJIX.js} +2 -2
  50. package/dist/{chunk-DDQ47BMP.js → chunk-JWJBWNQL.js} +3 -3
  51. package/dist/{chunk-ZJR2YBVN.js → chunk-KOHIF4LD.js} +2 -2
  52. package/dist/{chunk-CWOKQSBQ.js → chunk-KRTO7NRK.js} +2 -2
  53. package/dist/{chunk-TL6WZWSZ.js → chunk-LALFMQ7Q.js} +2 -2
  54. package/dist/{chunk-EYP34TFP.js → chunk-LQR46XGR.js} +2 -2
  55. package/dist/{chunk-QABZKAKF.js → chunk-LRKGF7RN.js} +6 -6
  56. package/dist/{chunk-LLA5C2TM.js → chunk-MDI5FMWO.js} +2 -2
  57. package/dist/{chunk-N4NFZIXE.js → chunk-MOT3NXB5.js} +2 -2
  58. package/dist/{chunk-GZAKQDX7.js → chunk-MRD4QWFK.js} +3 -3
  59. package/dist/{chunk-EZGWUS5G.js → chunk-NEV5IW33.js} +5 -5
  60. package/dist/{chunk-HQI7S72D.js → chunk-NKRVFQGO.js} +4 -4
  61. package/dist/{chunk-V5PHEH2M.js → chunk-NMIWEUIG.js} +2 -2
  62. package/dist/{chunk-OSXJY6SY.js → chunk-NSJK7F2V.js} +3 -3
  63. package/dist/{chunk-6KWE5553.js → chunk-O42EAZUV.js} +3 -3
  64. package/dist/{chunk-LXUBC5H4.js → chunk-OIK6Y2EJ.js} +5 -5
  65. package/dist/{chunk-EQGLGTU2.js → chunk-OLPWKS5L.js} +3 -3
  66. package/dist/{chunk-DXSRQLD4.js → chunk-OPBZYISB.js} +2 -2
  67. package/dist/{chunk-IXY2IPOW.js → chunk-P2PUWV3Y.js} +233 -58
  68. package/dist/{chunk-4VFQPEC6.js → chunk-PFGJ7SCM.js} +6 -6
  69. package/dist/{chunk-JAHV7RFV.js → chunk-PTKCX5ZE.js} +4 -4
  70. package/dist/{chunk-U5UKFXHB.js → chunk-Q3XVMFVF.js} +2 -2
  71. package/dist/{chunk-SJT4W23S.js → chunk-QE4GTFZS.js} +2 -2
  72. package/dist/{chunk-TR7WNZFJ.js → chunk-QFNRHY62.js} +3 -3
  73. package/dist/{chunk-R53THUTP.js → chunk-QMYJO4EL.js} +4 -4
  74. package/dist/{chunk-IH3GHOHU.js → chunk-QQADQBKG.js} +4 -4
  75. package/dist/{chunk-TDZRLG7I.js → chunk-RF5YDIYT.js} +2 -2
  76. package/dist/{chunk-HFOSP6E2.js → chunk-RKTIIU7Z.js} +3 -3
  77. package/dist/{chunk-35SOKGIP.js → chunk-S23HOUJS.js} +2 -2
  78. package/dist/{chunk-SEDLXFTX.js → chunk-SBOG6R6A.js} +4 -4
  79. package/dist/{chunk-T7FMXKIG.js → chunk-SF3JAWMY.js} +3 -3
  80. package/dist/{chunk-GSSCUREO.js → chunk-SMHTYVMK.js} +6 -6
  81. package/dist/{chunk-SQLVM3G7.js → chunk-SR7NGZNM.js} +4 -4
  82. package/dist/{chunk-VGCL263O.js → chunk-SSR6JAR3.js} +2 -2
  83. package/dist/{chunk-HPNOT5GQ.js → chunk-TJCHULP5.js} +2 -2
  84. package/dist/{chunk-PLDCXGLQ.js → chunk-TRP7PC5Z.js} +5 -5
  85. package/dist/{chunk-3O3W2JS2.js → chunk-U42ZEK7L.js} +2 -2
  86. package/dist/{chunk-UYY7MVJK.js → chunk-U7CXUGQS.js} +3 -3
  87. package/dist/{chunk-IOUUQLDE.js → chunk-UKZ7K5GS.js} +2 -2
  88. package/dist/{chunk-TJV3J74Y.js → chunk-UTOELEK2.js} +3 -3
  89. package/dist/{chunk-E5G55SYS.js → chunk-UZ3JPYD3.js} +3 -3
  90. package/dist/{chunk-ZP2FV4WO.js → chunk-VWCGN2ST.js} +3 -3
  91. package/dist/{chunk-W2Z4KS72.js → chunk-VXBEG3IB.js} +3 -3
  92. package/dist/{chunk-Z4RFILRE.js → chunk-W32HMBPW.js} +3 -3
  93. package/dist/{chunk-KZFAEMQQ.js → chunk-X2X7MTKH.js} +3 -3
  94. package/dist/{chunk-5USRKIR3.js → chunk-X4FCKGK2.js} +4 -4
  95. package/dist/{chunk-MM4Z32EH.js → chunk-XC7BUB3P.js} +2 -2
  96. package/dist/{chunk-XS7CL7NX.js → chunk-XHFXA6RP.js} +2 -2
  97. package/dist/{chunk-JQDZHYGU.js → chunk-XJZCXNWR.js} +3 -3
  98. package/dist/{chunk-XZXXSZ7E.js → chunk-YJCILMEA.js} +4 -4
  99. package/dist/{chunk-GSVHOF3J.js → chunk-YXI6Y7YY.js} +2 -2
  100. package/dist/{chunk-P3343TTF.js → chunk-ZDFIY6WX.js} +95 -116
  101. package/dist/cli.cjs +125 -125
  102. package/dist/cloud-reference.d.ts +24 -4
  103. package/dist/cloud-reference.js +5 -1
  104. package/dist/completion-registry.js +5 -7
  105. package/dist/dgmo-router-UVYAJCAF.js +89 -0
  106. package/dist/{dimensions-PC6WLKCC.js → dimensions-QCPOPPKE.js} +5 -5
  107. package/dist/editor.d.ts +9 -2
  108. package/dist/editor.js +229 -57
  109. package/dist/element.js +110 -110
  110. package/dist/element.mjs +300 -425
  111. package/dist/{flowchart-parser-PZQY2UC4.js → flowchart-parser-T4XZRSA7.js} +4 -4
  112. package/dist/{flowchart-renderer-RS6IRRE7.js → flowchart-renderer-XFDCX7MZ.js} +5 -5
  113. package/dist/highlight.js +229 -57
  114. package/dist/index.d.ts +4 -4
  115. package/dist/index.js +49 -50
  116. package/dist/{layout-GKWT37FH.js → layout-H4H4OFE4.js} +3 -3
  117. package/dist/{layout-W423CCED.js → layout-OH4VQ3OI.js} +4 -4
  118. package/dist/{layout-LH6LNIUV.js → layout-QTZO6CW5.js} +3 -3
  119. package/dist/{layout-AUAW5U74.js → layout-SKQMIXTG.js} +4 -4
  120. package/dist/{layout-GU6POUGD.js → layout-UU4VJTOP.js} +4 -4
  121. package/dist/{layout-MNQZ3Q45.js → layout-WCOEZPOI.js} +4 -4
  122. package/dist/live-link-resolve.js +1 -1
  123. package/dist/{parser-NJGZF5MK.js → parser-2BGDJJ2L.js} +5 -5
  124. package/dist/{parser-3QHLZK6F.js → parser-2K4Z7RNT.js} +3 -3
  125. package/dist/{parser-6HT34DZ3.js → parser-3KFNCRLD.js} +4 -4
  126. package/dist/{parser-WXZU47Z4.js → parser-4CMMKTRS.js} +3 -3
  127. package/dist/{parser-BNGLB2VS.js → parser-56746U6W.js} +4 -4
  128. package/dist/{parser-56HMQG5C.js → parser-5JS6VM6L.js} +5 -5
  129. package/dist/{parser-2OJSWKXO.js → parser-5ZUEF4WE.js} +4 -4
  130. package/dist/{parser-7C5GZCAU.js → parser-63BQDUWB.js} +4 -4
  131. package/dist/{parser-TPCKCQ4Z.js → parser-6VNVZO5F.js} +4 -4
  132. package/dist/{parser-6S65S3DX.js → parser-AZZHRVJF.js} +4 -4
  133. package/dist/{parser-WI2B7IL3.js → parser-BGX5ODHF.js} +3 -3
  134. package/dist/{parser-TABGTEHH.js → parser-DLUOCPMD.js} +3 -3
  135. package/dist/{parser-CXLR6MAY.js → parser-DSNINT2K.js} +3 -3
  136. package/dist/{parser-RMUGOZO3.js → parser-FTC7FZ6Z.js} +4 -4
  137. package/dist/{parser-5I7W54EA.js → parser-GHLWPCIX.js} +4 -4
  138. package/dist/{parser-BVC642CN.js → parser-J75RSQFI.js} +4 -4
  139. package/dist/{parser-IWQQY5VU.js → parser-JZPSIWRC.js} +4 -4
  140. package/dist/{parser-QCSDU4FU.js → parser-KN7H2RQC.js} +3 -3
  141. package/dist/{parser-4QYDFXV2.js → parser-KRF4S5RW.js} +4 -4
  142. package/dist/{parser-4OU5P3BM.js → parser-KSIYWKYF.js} +4 -4
  143. package/dist/{parser-UB6XGLTC.js → parser-MCUKPCYE.js} +4 -4
  144. package/dist/{parser-G7KP6LZH.js → parser-MUYBWGUB.js} +3 -3
  145. package/dist/{parser-QCYEJOLZ.js → parser-NWERESX3.js} +4 -4
  146. package/dist/{parser-63LK7YBR.js → parser-OEBFJHT4.js} +5 -5
  147. package/dist/{parser-DROHJTBZ.js → parser-P7T2BGAI.js} +4 -4
  148. package/dist/{parser-7W7DPIGR.js → parser-RAKD267X.js} +4 -4
  149. package/dist/{parser-AD5OAVX6.js → parser-RBY2UFTE.js} +3 -3
  150. package/dist/{parser-5BHZMV3O.js → parser-SRUPRH77.js} +4 -4
  151. package/dist/{parser-QJ7XK7AB.js → parser-SSUMVOJA.js} +4 -4
  152. package/dist/{parser-BLCDJB7N.js → parser-UKQC7N6K.js} +4 -4
  153. package/dist/{parser-AWO3N6YH.js → parser-VMGTNHP2.js} +3 -3
  154. package/dist/{parser-55CSWK3N.js → parser-WHDC7OV2.js} +4 -4
  155. package/dist/{parser-453DEZ4P.js → parser-YO2JBE52.js} +4 -4
  156. package/dist/{registry-C0HvobTb.d.ts → registry-Ch0Umdi1.d.ts} +174 -1
  157. package/dist/{renderer-G24W6J6H.js → renderer-2DKA5QXA.js} +4 -4
  158. package/dist/{renderer-66YB63F4.js → renderer-2PGIIOFN.js} +7 -7
  159. package/dist/{renderer-RH5OJ6Q6.js → renderer-35F3XMZH.js} +5 -5
  160. package/dist/{renderer-3Z5MSBWR.js → renderer-4RQ5PGHY.js} +6 -6
  161. package/dist/{renderer-LGSSP3JI.js → renderer-62FFDWMY.js} +6 -6
  162. package/dist/{renderer-SHMFNFE4.js → renderer-63MLWS6L.js} +7 -7
  163. package/dist/{renderer-GFZT6Q5F.js → renderer-6QW5OAJG.js} +5 -5
  164. package/dist/{renderer-H5C2JN62.js → renderer-AMCTCBV3.js} +5 -5
  165. package/dist/{renderer-PGMTAQIE.js → renderer-AS6LLDZM.js} +5 -5
  166. package/dist/{renderer-YYG4LYKS.js → renderer-AVR3LBTS.js} +6 -6
  167. package/dist/{renderer-LPQUBMXZ.js → renderer-BBBN7QNX.js} +4 -4
  168. package/dist/{renderer-DQLSUTSU.js → renderer-CHHYNEK7.js} +5 -5
  169. package/dist/{renderer-J76L474X.js → renderer-CU6BEHHV.js} +3 -3
  170. package/dist/{renderer-NE2GQBAU.js → renderer-CXRSD26Q.js} +7 -7
  171. package/dist/{renderer-JO27QMZB.js → renderer-DJ5DP3RH.js} +5 -5
  172. package/dist/{renderer-ZMAPGMF2.js → renderer-DRLZELXM.js} +5 -5
  173. package/dist/{renderer-BTFZWWIG.js → renderer-GESKWINV.js} +7 -7
  174. package/dist/{renderer-RB4FJJYN.js → renderer-IG5PQXEM.js} +7 -7
  175. package/dist/renderer-IYMA5W7X.js +76 -0
  176. package/dist/{renderer-PTLCAUC6.js → renderer-JBF2PAVP.js} +5 -5
  177. package/dist/{renderer-RRIXAQSF.js → renderer-JL7L5Y5M.js} +5 -5
  178. package/dist/{renderer-A3QD5R2C.js → renderer-JSFWNV37.js} +6 -6
  179. package/dist/{renderer-U55GLRDJ.js → renderer-M7YOXAGC.js} +3 -3
  180. package/dist/{renderer-5INUWSXC.js → renderer-R6OKKSVR.js} +7 -7
  181. package/dist/{renderer-2HFRMVHO.js → renderer-RN5ZFIEK.js} +6 -6
  182. package/dist/{renderer-CQWF3JE3.js → renderer-TDFRMG3O.js} +3 -3
  183. package/dist/{renderer-MFD57VGM.js → renderer-UTXVIAS7.js} +5 -5
  184. package/dist/{renderer-S7ZTD4XM.js → renderer-VYMTBSF4.js} +7 -7
  185. package/dist/{renderer-NVT3RP5Q.js → renderer-XSHOMUJQ.js} +7 -7
  186. package/dist/{renderer-T4DY572A.js → renderer-ZHBFOSK5.js} +5 -5
  187. package/dist/{renderer-radial-2DDUIUWA.js → renderer-radial-4J2KO4GZ.js} +6 -6
  188. package/dist/{state-parser-PNC2IHIA.js → state-parser-3U4232LJ.js} +5 -5
  189. package/dist/{state-renderer-QGPK55TI.js → state-renderer-GBHDOEXR.js} +7 -7
  190. package/dist/{themes-l406Vj2z.d.ts → themes-DC6u80yr.d.ts} +1 -1
  191. package/docs/language-reference.md +1 -1
  192. package/package.json +1 -1
  193. package/dist/chunk-ZEIYC7XO.js +0 -229
  194. package/dist/dgmo-router-JD7THHB7.js +0 -90
  195. package/dist/renderer-MDCH52MC.js +0 -77
package/dist/element.mjs CHANGED
@@ -856,6 +856,241 @@ var init_directives_registry = __esm({
856
856
  }
857
857
  });
858
858
 
859
+ // src/chart-types.ts
860
+ var chartTypesData, chartTypes, CHART_TYPE_IDS;
861
+ var init_chart_types = __esm({
862
+ "src/chart-types.ts"() {
863
+ "use strict";
864
+ chartTypesData = [
865
+ // ── Tier 1 — Narrative / architecture diagrams ────────────
866
+ {
867
+ id: "journey-map",
868
+ description: "User experience flow with emotion scores, phases, and annotations"
869
+ },
870
+ {
871
+ id: "c4",
872
+ description: "System architecture (context, container, component, deployment)"
873
+ },
874
+ {
875
+ id: "er",
876
+ description: "Database schemas and relationships"
877
+ },
878
+ {
879
+ id: "class",
880
+ description: "UML class hierarchies"
881
+ },
882
+ {
883
+ id: "sequence",
884
+ description: "Message request and response interaction flows",
885
+ fallback: true
886
+ },
887
+ {
888
+ id: "state",
889
+ description: "State machine / lifecycle transitions"
890
+ },
891
+ {
892
+ id: "infra",
893
+ description: "Infrastructure traffic flow with RPS computation"
894
+ },
895
+ {
896
+ id: "gantt",
897
+ description: "Project scheduling with task dependencies and milestones"
898
+ },
899
+ {
900
+ id: "pert",
901
+ description: "Project network with three-point estimates, critical path, and uncertainty (Beta-PERT, Monte Carlo)"
902
+ },
903
+ {
904
+ id: "swimlane",
905
+ description: "Cross-functional process flow with lanes, phases and gateways (BPMN-style)"
906
+ },
907
+ {
908
+ id: "version-control",
909
+ description: "Git / version-control branch-and-merge graph: commits, branches, merges, rebase, HEAD and remote-tracking (gitGraph-style)"
910
+ },
911
+ // ── Tier 2 — Specialized structural diagrams ──────────────
912
+ {
913
+ id: "timeline",
914
+ description: "Events, eras, and date ranges"
915
+ },
916
+ {
917
+ id: "event-line",
918
+ description: "Annotated narrative timeline \u2014 events on a horizontal line with descriptions (not the date-scaled timeline)"
919
+ },
920
+ {
921
+ id: "body",
922
+ description: "Human anatomy figure annotated by muscle/bone/joint name \u2014 for medical, exercise, and educational diagrams"
923
+ },
924
+ {
925
+ id: "org",
926
+ description: "Reporting hierarchy"
927
+ },
928
+ {
929
+ id: "family",
930
+ description: "Family tree / genealogy: unions (couples), children, remarriage, adoption, and GEDCOM-style metadata"
931
+ },
932
+ {
933
+ id: "sitemap",
934
+ description: "Site / app navigation structure"
935
+ },
936
+ {
937
+ id: "bracket",
938
+ description: "Single-elimination tournament bracket: winners auto-advance up a tree; seed the field for a day-0 skeleton or list results for a casual bracket, with two sides mirroring inward to a championship"
939
+ },
940
+ {
941
+ id: "kanban",
942
+ description: "Task board columns"
943
+ },
944
+ {
945
+ id: "raci",
946
+ description: "Tasks \xD7 roles responsibility matrix with constraint linting"
947
+ },
948
+ {
949
+ id: "tech-radar",
950
+ description: "Technology adoption quadrants (adopt/trial/assess/hold)"
951
+ },
952
+ {
953
+ id: "mindmap",
954
+ description: "Radial hierarchy of ideas branching from a central topic"
955
+ },
956
+ {
957
+ id: "wireframe",
958
+ description: "Low-fidelity UI layout with panels, controls, and annotations"
959
+ },
960
+ {
961
+ id: "cycle",
962
+ description: "Cyclical process visualization (PDCA, OODA, DevOps loops)"
963
+ },
964
+ {
965
+ id: "pyramid",
966
+ description: "Stacked hierarchy of layers with descriptions (Maslow, DIKW)"
967
+ },
968
+ {
969
+ id: "ring",
970
+ description: "Concentric rings showing nested or hierarchical categories (read core-out)"
971
+ },
972
+ {
973
+ id: "treemap",
974
+ description: "Nested rectangles sized by value \u2014 show a hierarchy\u2019s proportions (budgets, disk usage, portfolios) with color by category, value heatmap, or branch"
975
+ },
976
+ {
977
+ id: "block",
978
+ description: "Block diagram: an author-controlled grid of rectangular blocks with nested, collapsible containers \u2014 system/hardware/architecture layouts where the 2-D arrangement is the meaning"
979
+ },
980
+ {
981
+ id: "sketch",
982
+ description: "GUI-first constrained canvas: uniformly-sized shapes placed freely on a snap grid, arrows between them, meaning through tags \u2014 the markup is generated by the canvas editor"
983
+ },
984
+ {
985
+ id: "goal",
986
+ description: "Single progress-toward-a-target value (now vs target) as a progress bar, thermometer, or gauge \u2014 KPIs, fundraising, quotas, completion"
987
+ },
988
+ {
989
+ id: "countdown",
990
+ description: 'Live "N days until X" that ticks every second and is accurate on every load \u2014 trip dates, launches, deadlines; the only dynamic chart type'
991
+ },
992
+ {
993
+ id: "clock",
994
+ description: "Live world-clock board: current time for people/places across time zones, ticking every second, with optional working-hours status and sundown line"
995
+ },
996
+ {
997
+ id: "map",
998
+ description: "Geographic concept map: highlight/score regions, drop points of interest, connect with routes or edges"
999
+ },
1000
+ // ── Tier 3 — Specialized analytical charts ────────────────
1001
+ {
1002
+ id: "quadrant",
1003
+ description: "2x2 positioning matrix"
1004
+ },
1005
+ {
1006
+ id: "venn",
1007
+ description: "Set overlaps"
1008
+ },
1009
+ {
1010
+ id: "funnel",
1011
+ description: "Conversion pipeline"
1012
+ },
1013
+ {
1014
+ id: "slope",
1015
+ description: "Change between 2 time periods"
1016
+ },
1017
+ {
1018
+ id: "sankey",
1019
+ description: "Flow / allocation visualization"
1020
+ },
1021
+ {
1022
+ id: "arc",
1023
+ description: "Network relationships (linear or circular via `layout`)"
1024
+ },
1025
+ {
1026
+ id: "wordcloud",
1027
+ description: "Term frequency visualization"
1028
+ },
1029
+ {
1030
+ id: "heatmap",
1031
+ description: "Matrix intensity visualization"
1032
+ },
1033
+ {
1034
+ id: "function",
1035
+ description: "Mathematical expressions"
1036
+ },
1037
+ // ── Tier 4 — General-purpose data charts ──────────────────
1038
+ {
1039
+ id: "bar",
1040
+ description: "Categorical comparisons for 3 - 5 figures",
1041
+ fallback: true
1042
+ },
1043
+ {
1044
+ id: "line",
1045
+ description: "Trends over time",
1046
+ fallback: true
1047
+ },
1048
+ {
1049
+ id: "pie",
1050
+ description: "Part-to-whole proportions"
1051
+ },
1052
+ {
1053
+ id: "radar",
1054
+ description: "Multi-dimensional metrics"
1055
+ },
1056
+ {
1057
+ id: "polar-area",
1058
+ description: "Radial bar chart"
1059
+ },
1060
+ {
1061
+ id: "scatter",
1062
+ description: "2D data points or bubble chart"
1063
+ },
1064
+ // ── Tier 5 — Generic catch-alls (listed last on purpose) ──
1065
+ {
1066
+ id: "flowchart",
1067
+ description: "Decision trees and process flows",
1068
+ fallback: true
1069
+ },
1070
+ {
1071
+ id: "boxes-and-lines",
1072
+ description: "General-purpose node-edge diagrams with groups and tags",
1073
+ fallback: true
1074
+ },
1075
+ // ── Not a tier — a pointer, not a drawing ─────────────────
1076
+ // `live-link` holds no diagram of its own; it names one published to
1077
+ // Diagrammo Cloud. Internal (see `internal` above): it arrives by being saved
1078
+ // from a shared link, never by being picked from a list. Kept LAST because
1079
+ // `chartTypes.slice(0, 8)` is a live window feeding language-reference checks
1080
+ // and the generated AI core — any insertion above position 8 shifts it.
1081
+ {
1082
+ id: "live-link",
1083
+ description: "A pointer to a diagram published at Diagrammo Cloud",
1084
+ internal: true
1085
+ }
1086
+ ];
1087
+ chartTypes = chartTypesData;
1088
+ CHART_TYPE_IDS = chartTypesData.map(
1089
+ (c) => c.id
1090
+ );
1091
+ }
1092
+ });
1093
+
859
1094
  // src/utils/reserved-key-registry.ts
860
1095
  function staticRegistry(keys) {
861
1096
  return { keys: new Set(keys), tagAliases: /* @__PURE__ */ new Set() };
@@ -1494,67 +1729,12 @@ var init_parsing = __esm({
1494
1729
  init_colors();
1495
1730
  init_diagnostics();
1496
1731
  init_directives_registry();
1732
+ init_chart_types();
1497
1733
  init_reserved_key_registry();
1498
1734
  RECOGNIZED_COLOR_SET = new Set(
1499
1735
  RECOGNIZED_COLOR_NAMES
1500
1736
  );
1501
- ALL_CHART_TYPES = /* @__PURE__ */ new Set([
1502
- // data charts
1503
- "bar",
1504
- "line",
1505
- "pie",
1506
- "polar-area",
1507
- "radar",
1508
- "scatter",
1509
- "sankey",
1510
- "function",
1511
- "heatmap",
1512
- "funnel",
1513
- // visualizations
1514
- "slope",
1515
- "wordcloud",
1516
- "arc",
1517
- "timeline",
1518
- "event-line",
1519
- "venn",
1520
- "quadrant",
1521
- // diagrams
1522
- "body",
1523
- "sequence",
1524
- "flowchart",
1525
- "class",
1526
- "er",
1527
- "org",
1528
- "kanban",
1529
- "c4",
1530
- "state",
1531
- "sitemap",
1532
- "infra",
1533
- "gantt",
1534
- "pert",
1535
- "boxes-and-lines",
1536
- "swimlane",
1537
- "version-control",
1538
- "mindmap",
1539
- "wireframe",
1540
- "tech-radar",
1541
- "cycle",
1542
- "journey-map",
1543
- "pyramid",
1544
- "ring",
1545
- "treemap",
1546
- "block",
1547
- "goal",
1548
- "countdown",
1549
- "clock",
1550
- "sketch",
1551
- "raci",
1552
- "map",
1553
- "family",
1554
- "bracket",
1555
- // pointer, not a drawing — internal (see ChartTypeMeta.internal)
1556
- "live-link"
1557
- ]);
1737
+ ALL_CHART_TYPES = new Set(CHART_TYPE_IDS);
1558
1738
  OPTION_NOCOLON_RE = /^([a-z][a-z0-9-]*)\s+(.+)$/i;
1559
1739
  GLOBAL_BOOLEANS = /* @__PURE__ */ new Set([
1560
1740
  "fill-tint",
@@ -14572,8 +14752,8 @@ var init_parser12 = __esm({
14572
14752
  });
14573
14753
 
14574
14754
  // src/cloud-reference.ts
14575
- function parseCloudReference(text) {
14576
- const fence = FENCE_RE.exec(text) ?? EMBED_RE.exec(text);
14755
+ function parseCloudReferenceFence(text) {
14756
+ const fence = FENCE_RE.exec(text);
14577
14757
  if (fence) return reference(fence[1]);
14578
14758
  return parseCloudReferenceUrl(text);
14579
14759
  }
@@ -14619,7 +14799,7 @@ function resolveTarget(value) {
14619
14799
  const asUrl = parseCloudReferenceUrl(trimmed)?.id;
14620
14800
  if (asUrl) return asUrl;
14621
14801
  if (!/^[^\s[\]]+$/.test(trimmed)) return null;
14622
- return parseCloudReference(`live-link ${trimmed}`)?.id ?? null;
14802
+ return parseCloudReferenceFence(`live-link ${trimmed}`)?.id ?? null;
14623
14803
  }
14624
14804
  function pinnedRevision(value) {
14625
14805
  const trimmed = value.trim();
@@ -14642,7 +14822,7 @@ function pinnedRevision(value) {
14642
14822
  }
14643
14823
  function isLiveLinkLine(line11) {
14644
14824
  const trimmed = line11.trim();
14645
- return parseCloudReference(trimmed) !== null || pinnedRevision(trimmed) !== null;
14825
+ return parseCloudReferenceFence(trimmed) !== null || pinnedRevision(trimmed) !== null;
14646
14826
  }
14647
14827
  function parseLiveLink(content) {
14648
14828
  const diagnostics = [];
@@ -14667,7 +14847,7 @@ function parseLiveLink(content) {
14667
14847
  const first = parseFirstLine(trimmed);
14668
14848
  titleLineNumber = i + 1;
14669
14849
  if (!first) {
14670
- wholeLineId = parseCloudReference(trimmed)?.id ?? null;
14850
+ wholeLineId = parseCloudReferenceFence(trimmed)?.id ?? null;
14671
14851
  if (wholeLineId !== null) {
14672
14852
  bodyStart = i + 1;
14673
14853
  break;
@@ -14825,237 +15005,6 @@ var init_parser13 = __esm({
14825
15005
  }
14826
15006
  });
14827
15007
 
14828
- // src/chart-types.ts
14829
- var chartTypes;
14830
- var init_chart_types = __esm({
14831
- "src/chart-types.ts"() {
14832
- "use strict";
14833
- chartTypes = [
14834
- // ── Tier 1 — Narrative / architecture diagrams ────────────
14835
- {
14836
- id: "journey-map",
14837
- description: "User experience flow with emotion scores, phases, and annotations"
14838
- },
14839
- {
14840
- id: "c4",
14841
- description: "System architecture (context, container, component, deployment)"
14842
- },
14843
- {
14844
- id: "er",
14845
- description: "Database schemas and relationships"
14846
- },
14847
- {
14848
- id: "class",
14849
- description: "UML class hierarchies"
14850
- },
14851
- {
14852
- id: "sequence",
14853
- description: "Message request and response interaction flows",
14854
- fallback: true
14855
- },
14856
- {
14857
- id: "state",
14858
- description: "State machine / lifecycle transitions"
14859
- },
14860
- {
14861
- id: "infra",
14862
- description: "Infrastructure traffic flow with RPS computation"
14863
- },
14864
- {
14865
- id: "gantt",
14866
- description: "Project scheduling with task dependencies and milestones"
14867
- },
14868
- {
14869
- id: "pert",
14870
- description: "Project network with three-point estimates, critical path, and uncertainty (Beta-PERT, Monte Carlo)"
14871
- },
14872
- {
14873
- id: "swimlane",
14874
- description: "Cross-functional process flow with lanes, phases and gateways (BPMN-style)"
14875
- },
14876
- {
14877
- id: "version-control",
14878
- description: "Git / version-control branch-and-merge graph: commits, branches, merges, rebase, HEAD and remote-tracking (gitGraph-style)"
14879
- },
14880
- // ── Tier 2 — Specialized structural diagrams ──────────────
14881
- {
14882
- id: "timeline",
14883
- description: "Events, eras, and date ranges"
14884
- },
14885
- {
14886
- id: "event-line",
14887
- description: "Annotated narrative timeline \u2014 events on a horizontal line with descriptions (not the date-scaled timeline)"
14888
- },
14889
- {
14890
- id: "body",
14891
- description: "Human anatomy figure annotated by muscle/bone/joint name \u2014 for medical, exercise, and educational diagrams"
14892
- },
14893
- {
14894
- id: "org",
14895
- description: "Reporting hierarchy"
14896
- },
14897
- {
14898
- id: "family",
14899
- description: "Family tree / genealogy: unions (couples), children, remarriage, adoption, and GEDCOM-style metadata"
14900
- },
14901
- {
14902
- id: "sitemap",
14903
- description: "Site / app navigation structure"
14904
- },
14905
- {
14906
- id: "bracket",
14907
- description: "Single-elimination tournament bracket: winners auto-advance up a tree; seed the field for a day-0 skeleton or list results for a casual bracket, with two sides mirroring inward to a championship"
14908
- },
14909
- {
14910
- id: "kanban",
14911
- description: "Task board columns"
14912
- },
14913
- {
14914
- id: "raci",
14915
- description: "Tasks \xD7 roles responsibility matrix with constraint linting"
14916
- },
14917
- {
14918
- id: "tech-radar",
14919
- description: "Technology adoption quadrants (adopt/trial/assess/hold)"
14920
- },
14921
- {
14922
- id: "mindmap",
14923
- description: "Radial hierarchy of ideas branching from a central topic"
14924
- },
14925
- {
14926
- id: "wireframe",
14927
- description: "Low-fidelity UI layout with panels, controls, and annotations"
14928
- },
14929
- {
14930
- id: "cycle",
14931
- description: "Cyclical process visualization (PDCA, OODA, DevOps loops)"
14932
- },
14933
- {
14934
- id: "pyramid",
14935
- description: "Stacked hierarchy of layers with descriptions (Maslow, DIKW)"
14936
- },
14937
- {
14938
- id: "ring",
14939
- description: "Concentric rings showing nested or hierarchical categories (read core-out)"
14940
- },
14941
- {
14942
- id: "treemap",
14943
- description: "Nested rectangles sized by value \u2014 show a hierarchy\u2019s proportions (budgets, disk usage, portfolios) with color by category, value heatmap, or branch"
14944
- },
14945
- {
14946
- id: "block",
14947
- description: "Block diagram: an author-controlled grid of rectangular blocks with nested, collapsible containers \u2014 system/hardware/architecture layouts where the 2-D arrangement is the meaning"
14948
- },
14949
- {
14950
- id: "sketch",
14951
- description: "GUI-first constrained canvas: uniformly-sized shapes placed freely on a snap grid, arrows between them, meaning through tags \u2014 the markup is generated by the canvas editor"
14952
- },
14953
- {
14954
- id: "goal",
14955
- description: "Single progress-toward-a-target value (now vs target) as a progress bar, thermometer, or gauge \u2014 KPIs, fundraising, quotas, completion"
14956
- },
14957
- {
14958
- id: "countdown",
14959
- description: 'Live "N days until X" that ticks every second and is accurate on every load \u2014 trip dates, launches, deadlines; the only dynamic chart type'
14960
- },
14961
- {
14962
- id: "clock",
14963
- description: "Live world-clock board: current time for people/places across time zones, ticking every second, with optional working-hours status and sundown line"
14964
- },
14965
- {
14966
- id: "map",
14967
- description: "Geographic concept map: highlight/score regions, drop points of interest, connect with routes or edges"
14968
- },
14969
- // ── Tier 3 — Specialized analytical charts ────────────────
14970
- {
14971
- id: "quadrant",
14972
- description: "2x2 positioning matrix"
14973
- },
14974
- {
14975
- id: "venn",
14976
- description: "Set overlaps"
14977
- },
14978
- {
14979
- id: "funnel",
14980
- description: "Conversion pipeline"
14981
- },
14982
- {
14983
- id: "slope",
14984
- description: "Change between 2 time periods"
14985
- },
14986
- {
14987
- id: "sankey",
14988
- description: "Flow / allocation visualization"
14989
- },
14990
- {
14991
- id: "arc",
14992
- description: "Network relationships (linear or circular via `layout`)"
14993
- },
14994
- {
14995
- id: "wordcloud",
14996
- description: "Term frequency visualization"
14997
- },
14998
- {
14999
- id: "heatmap",
15000
- description: "Matrix intensity visualization"
15001
- },
15002
- {
15003
- id: "function",
15004
- description: "Mathematical expressions"
15005
- },
15006
- // ── Tier 4 — General-purpose data charts ──────────────────
15007
- {
15008
- id: "bar",
15009
- description: "Categorical comparisons for 3 - 5 figures",
15010
- fallback: true
15011
- },
15012
- {
15013
- id: "line",
15014
- description: "Trends over time",
15015
- fallback: true
15016
- },
15017
- {
15018
- id: "pie",
15019
- description: "Part-to-whole proportions"
15020
- },
15021
- {
15022
- id: "radar",
15023
- description: "Multi-dimensional metrics"
15024
- },
15025
- {
15026
- id: "polar-area",
15027
- description: "Radial bar chart"
15028
- },
15029
- {
15030
- id: "scatter",
15031
- description: "2D data points or bubble chart"
15032
- },
15033
- // ── Tier 5 — Generic catch-alls (listed last on purpose) ──
15034
- {
15035
- id: "flowchart",
15036
- description: "Decision trees and process flows",
15037
- fallback: true
15038
- },
15039
- {
15040
- id: "boxes-and-lines",
15041
- description: "General-purpose node-edge diagrams with groups and tags",
15042
- fallback: true
15043
- },
15044
- // ── Not a tier — a pointer, not a drawing ─────────────────
15045
- // `live-link` holds no diagram of its own; it names one published to
15046
- // Diagrammo Cloud. Internal (see `internal` above): it arrives by being saved
15047
- // from a shared link, never by being picked from a list. Kept LAST because
15048
- // `chartTypes.slice(0, 8)` is a live window feeding language-reference checks
15049
- // and the generated AI core — any insertion above position 8 shifts it.
15050
- {
15051
- id: "live-link",
15052
- description: "A pointer to a diagram published at Diagrammo Cloud",
15053
- internal: true
15054
- }
15055
- ];
15056
- }
15057
- });
15058
-
15059
15008
  // src/chart.ts
15060
15009
  function rejectSeriesHeader(result, keyword, lineNumber) {
15061
15010
  if (result.type === "bar" && keyword === "series") {
@@ -33704,7 +33653,7 @@ function minDimsFamily(c) {
33704
33653
  function isExtendedChartParser(parse) {
33705
33654
  return EXTENDED_CHART_DOORS.has(parse);
33706
33655
  }
33707
- var CHART_TYPE_REGISTRY, REGISTRY_BY_ID;
33656
+ var REGISTRY, CHART_TYPE_REGISTRY, REGISTRY_BY_ID;
33708
33657
  var init_chart_type_registry = __esm({
33709
33658
  "src/chart-type-registry.ts"() {
33710
33659
  "use strict";
@@ -33751,201 +33700,182 @@ var init_chart_type_registry = __esm({
33751
33700
  init_parser38();
33752
33701
  init_parser39();
33753
33702
  init_parser13();
33754
- CHART_TYPE_REGISTRY = [
33703
+ REGISTRY = {
33755
33704
  // ── Structured diagrams ───────────────────────────────────
33756
- {
33757
- id: "sequence",
33705
+ sequence: {
33758
33706
  category: "diagram",
33759
33707
  parse: parseSequenceDgmo,
33760
33708
  measure: measureSequence,
33761
33709
  minDims: minDimsSequence
33762
33710
  },
33763
- {
33764
- id: "flowchart",
33711
+ flowchart: {
33765
33712
  category: "diagram",
33766
33713
  parse: parseFlowchart,
33767
33714
  measure: measureFlowchart,
33768
33715
  minDims: minDimsGraph
33769
33716
  },
33770
- {
33771
- id: "class",
33717
+ class: {
33772
33718
  category: "diagram",
33773
33719
  parse: parseClassDiagram,
33774
33720
  measure: measureClass,
33775
33721
  minDims: minDimsEntities
33776
33722
  },
33777
- {
33778
- id: "er",
33723
+ er: {
33779
33724
  category: "diagram",
33780
33725
  parse: parseERDiagram,
33781
33726
  measure: measureER,
33782
33727
  minDims: minDimsEntities
33783
33728
  },
33784
- {
33785
- id: "state",
33729
+ state: {
33786
33730
  category: "diagram",
33787
33731
  parse: parseState,
33788
33732
  measure: measureStateGraph,
33789
33733
  minDims: minDimsGraph
33790
33734
  },
33791
- {
33792
- id: "org",
33735
+ org: {
33793
33736
  category: "diagram",
33794
33737
  parse: parseOrg,
33795
33738
  measure: measureOrg,
33796
33739
  minDims: minDimsOrg
33797
33740
  },
33798
- {
33799
- id: "kanban",
33741
+ kanban: {
33800
33742
  category: "diagram",
33801
33743
  parse: parseKanban,
33802
33744
  measure: measureKanban,
33803
33745
  minDims: minDimsKanban
33804
33746
  },
33805
- { id: "c4", category: "diagram", parse: parseC4 },
33806
- { id: "sitemap", category: "diagram", parse: parseSitemap },
33807
- {
33808
- id: "infra",
33747
+ c4: { category: "diagram", parse: parseC4 },
33748
+ sitemap: { category: "diagram", parse: parseSitemap },
33749
+ infra: {
33809
33750
  category: "diagram",
33810
33751
  parse: parseInfra,
33811
33752
  measure: measureInfra,
33812
33753
  minDims: minDimsInfra
33813
33754
  },
33814
- {
33815
- id: "gantt",
33755
+ gantt: {
33816
33756
  category: "diagram",
33817
33757
  parse: parseGantt,
33818
33758
  measure: measureGantt,
33819
33759
  minDims: minDimsGantt
33820
33760
  },
33821
- {
33822
- id: "pert",
33761
+ pert: {
33823
33762
  category: "diagram",
33824
33763
  parse: parsePert,
33825
33764
  measure: measurePert,
33826
33765
  minDims: minDimsPert
33827
33766
  },
33828
- { id: "boxes-and-lines", category: "diagram", parse: parseBoxesAndLines },
33829
- { id: "sketch", category: "diagram", parse: parseSketch },
33830
- {
33831
- id: "swimlane",
33767
+ "boxes-and-lines": { category: "diagram", parse: parseBoxesAndLines },
33768
+ sketch: { category: "diagram", parse: parseSketch },
33769
+ swimlane: {
33832
33770
  category: "diagram",
33833
33771
  parse: parseSwimlane,
33834
33772
  measure: measureSwimlane,
33835
33773
  minDims: minDimsSwimlane
33836
33774
  },
33837
- {
33838
- id: "family",
33775
+ family: {
33839
33776
  category: "diagram",
33840
33777
  parse: parseFamily,
33841
33778
  measure: measureFamily,
33842
33779
  minDims: minDimsFamily
33843
33780
  },
33844
- {
33845
- id: "version-control",
33781
+ "version-control": {
33846
33782
  category: "diagram",
33847
33783
  parse: parseVersionControl,
33848
33784
  measure: measureVersionControl,
33849
33785
  minDims: minDimsVersionControl
33850
33786
  },
33851
- {
33852
- id: "mindmap",
33787
+ mindmap: {
33853
33788
  category: "diagram",
33854
33789
  parse: parseMindmap,
33855
33790
  measure: measureMindmap,
33856
33791
  minDims: minDimsMindmap
33857
33792
  },
33858
- { id: "wireframe", category: "diagram", parse: parseWireframe },
33859
- { id: "journey-map", category: "diagram", parse: parseJourneyMap },
33860
- {
33861
- id: "raci",
33793
+ wireframe: { category: "diagram", parse: parseWireframe },
33794
+ "journey-map": { category: "diagram", parse: parseJourneyMap },
33795
+ raci: {
33862
33796
  category: "diagram",
33863
33797
  parse: parseRaci,
33864
33798
  measure: measureRaci,
33865
33799
  minDims: minDimsRaci
33866
33800
  },
33867
33801
  // ── Standard ECharts charts (parseChart) ──────────────────
33868
- { id: "bar", category: "data-chart", parse: parseChart },
33869
- { id: "line", category: "data-chart", parse: parseChart },
33870
- { id: "pie", category: "data-chart", parse: parseChart },
33871
- { id: "radar", category: "data-chart", parse: parseChart },
33872
- { id: "polar-area", category: "data-chart", parse: parseChart },
33802
+ bar: { category: "data-chart", parse: parseChart },
33803
+ line: { category: "data-chart", parse: parseChart },
33804
+ pie: { category: "data-chart", parse: parseChart },
33805
+ radar: { category: "data-chart", parse: parseChart },
33806
+ "polar-area": { category: "data-chart", parse: parseChart },
33873
33807
  // ── Extended ECharts charts — own per-type parser door (Story 109.2a) ──
33874
- { id: "scatter", category: "data-chart", parse: parseScatter },
33875
- { id: "sankey", category: "data-chart", parse: parseSankey },
33876
- { id: "function", category: "data-chart", parse: parseFunctionChart },
33877
- {
33878
- id: "heatmap",
33808
+ scatter: { category: "data-chart", parse: parseScatter },
33809
+ sankey: { category: "data-chart", parse: parseSankey },
33810
+ function: { category: "data-chart", parse: parseFunctionChart },
33811
+ heatmap: {
33879
33812
  category: "data-chart",
33880
33813
  parse: parseHeatmap,
33881
33814
  measure: measureHeatmap,
33882
33815
  minDims: minDimsHeatmap
33883
33816
  },
33884
- { id: "funnel", category: "data-chart", parse: parseFunnel },
33817
+ funnel: { category: "data-chart", parse: parseFunnel },
33885
33818
  // ── D3 visualizations — own per-viz parser door (Story 109.2) ──
33886
- { id: "slope", category: "visualization", parse: parseSlope },
33887
- { id: "wordcloud", category: "visualization", parse: parseWordcloud },
33888
- {
33889
- id: "arc",
33819
+ slope: { category: "visualization", parse: parseSlope },
33820
+ wordcloud: { category: "visualization", parse: parseWordcloud },
33821
+ arc: {
33890
33822
  category: "visualization",
33891
33823
  parse: parseArc,
33892
33824
  measure: measureArc,
33893
33825
  minDims: minDimsArc
33894
33826
  },
33895
- { id: "timeline", category: "visualization", parse: parseTimeline },
33896
- {
33897
- id: "event-line",
33827
+ timeline: { category: "visualization", parse: parseTimeline },
33828
+ "event-line": {
33898
33829
  category: "visualization",
33899
33830
  parse: parseEventLine,
33900
33831
  measure: measureEventLine,
33901
33832
  minDims: minDimsEventLine
33902
33833
  },
33903
- { id: "venn", category: "visualization", parse: parseVenn },
33904
- { id: "quadrant", category: "visualization", parse: parseQuadrant },
33905
- {
33906
- id: "body",
33834
+ venn: { category: "visualization", parse: parseVenn },
33835
+ quadrant: { category: "visualization", parse: parseQuadrant },
33836
+ body: {
33907
33837
  category: "diagram",
33908
33838
  parse: parseBody,
33909
33839
  measure: measureBody,
33910
33840
  minDims: minDimsBody
33911
33841
  },
33912
33842
  // ── Visualizations with their own parsers ─────────────────
33913
- {
33914
- id: "tech-radar",
33843
+ "tech-radar": {
33915
33844
  category: "visualization",
33916
33845
  parse: parseTechRadar,
33917
33846
  measure: measureTechRadar,
33918
33847
  minDims: minDimsTechRadar
33919
33848
  },
33920
- { id: "cycle", category: "visualization", parse: parseCycle },
33921
- { id: "pyramid", category: "visualization", parse: parsePyramid },
33922
- { id: "ring", category: "visualization", parse: parseRing },
33849
+ cycle: { category: "visualization", parse: parseCycle },
33850
+ pyramid: { category: "visualization", parse: parsePyramid },
33851
+ ring: { category: "visualization", parse: parseRing },
33923
33852
  // Treemap: squarified hierarchy. No measure/minDims — a treemap fills whatever
33924
33853
  // rectangle it's given and has no intrinsic aspect/size (F11).
33925
- { id: "treemap", category: "visualization", parse: parseTreemap },
33854
+ treemap: { category: "visualization", parse: parseTreemap },
33926
33855
  // Block diagram: deterministic grid (no measure/minDims — it sizes to content
33927
33856
  // and is scaled to fit whatever rectangle it's given).
33928
- { id: "block", category: "visualization", parse: parseBlock },
33857
+ block: { category: "visualization", parse: parseBlock },
33929
33858
  // Goal: a single now/target value in one of three faces (bar/thermometer/
33930
33859
  // gauge). No measure/minDims — it centers in whatever rectangle it's given.
33931
- { id: "goal", category: "visualization", parse: parseGoal },
33860
+ goal: { category: "visualization", parse: parseGoal },
33932
33861
  // Countdown: the only dynamic chart — a single "N days until X" that ticks
33933
33862
  // live. No measure/minDims; it centers in whatever rectangle it's given.
33934
- { id: "countdown", category: "visualization", parse: parseCountdown },
33863
+ countdown: { category: "visualization", parse: parseCountdown },
33935
33864
  // Clock: live world-clock board — one row per place/zone, ticking every
33936
33865
  // second. No measure/minDims; it sizes to its rows and scales to fit.
33937
- { id: "clock", category: "visualization", parse: parseClock },
33866
+ clock: { category: "visualization", parse: parseClock },
33938
33867
  // Bracket: single-elim tournament tree. A diagram (structural, node-and-edge);
33939
33868
  // no measure/minDims — it sizes to content and scales to fit its rectangle.
33940
- { id: "bracket", category: "diagram", parse: parseBracket },
33869
+ bracket: { category: "diagram", parse: parseBracket },
33941
33870
  // ── Geographic map (own parser → resolver → layout → renderer) ──
33942
- { id: "map", category: "visualization", parse: parseMap },
33871
+ map: { category: "visualization", parse: parseMap },
33943
33872
  // Live link: a pointer to a diagram published at Diagrammo Cloud, rendered
33944
33873
  // as a reference card. `diagram` like every other card-shaped type, so the
33945
33874
  // export-handler cross-check covers it rather than being relaxed for it. No
33946
33875
  // measure/minDims — the card sizes to its own text and scales to fit.
33947
- { id: "live-link", category: "diagram", parse: parseLiveLink }
33948
- ];
33876
+ "live-link": { category: "diagram", parse: parseLiveLink }
33877
+ };
33878
+ CHART_TYPE_REGISTRY = Object.entries(REGISTRY).map(([id, d]) => ({ id, ...d }));
33949
33879
  REGISTRY_BY_ID = new Map(
33950
33880
  CHART_TYPE_REGISTRY.map((d) => [d.id, d])
33951
33881
  );
@@ -86768,63 +86698,8 @@ var ModifierKeyword = 5;
86768
86698
 
86769
86699
  // src/editor/keywords.ts
86770
86700
  init_directives_registry();
86771
- var CHART_TYPES = /* @__PURE__ */ new Set([
86772
- // Diagram types
86773
- "sequence",
86774
- "flowchart",
86775
- "class",
86776
- "er",
86777
- "org",
86778
- "family",
86779
- "kanban",
86780
- "c4",
86781
- "state",
86782
- "sitemap",
86783
- "bracket",
86784
- "infra",
86785
- "gantt",
86786
- "pert",
86787
- "boxes-and-lines",
86788
- "swimlane",
86789
- "version-control",
86790
- "wireframe",
86791
- "tech-radar",
86792
- "mindmap",
86793
- "journey-map",
86794
- "pyramid",
86795
- "ring",
86796
- "treemap",
86797
- "block",
86798
- "goal",
86799
- "countdown",
86800
- "clock",
86801
- "sketch",
86802
- "raci",
86803
- "cycle",
86804
- // Data chart types
86805
- "bar",
86806
- "line",
86807
- "pie",
86808
- "polar-area",
86809
- "radar",
86810
- "scatter",
86811
- "sankey",
86812
- "function",
86813
- "heatmap",
86814
- "funnel",
86815
- // Visualization types
86816
- "slope",
86817
- "wordcloud",
86818
- "arc",
86819
- "timeline",
86820
- "event-line",
86821
- "venn",
86822
- "quadrant",
86823
- "map",
86824
- "body",
86825
- // Pointer type — internal, but it must still highlight when one is open
86826
- "live-link"
86827
- ]);
86701
+ init_chart_types();
86702
+ var CHART_TYPES = new Set(CHART_TYPE_IDS);
86828
86703
  var TAG_KEYWORD = "tag";
86829
86704
  var DIRECTIVE_KEYWORDS = /* @__PURE__ */ new Set([...REGISTRY_DIRECTIVE_TOKENS]);
86830
86705
  var CONTROL_KEYWORDS = /* @__PURE__ */ new Set([...REGISTRY_CONTROL_TOKENS]);
@@ -87866,7 +87741,7 @@ var CSS = AUTO_BASE_CSS + "\n" + BLOCK_CSS + "\n" + darkScopedBlockCss(BLOCK_CSS
87866
87741
 
87867
87742
  // src/auto/shared.ts
87868
87743
  init_safe_href();
87869
- var VERSION = "0.60.0";
87744
+ var VERSION = "0.61.0";
87870
87745
  var ARIA_LABEL_MAX = 200;
87871
87746
  var COPIED_INTERACTION_MS = 1500;
87872
87747
  var LOG_PREFIX = "[dgmo]";