@diagrammo/dgmo 0.68.0 → 0.70.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 (203) hide show
  1. package/dist/advanced.d.ts +16 -4
  2. package/dist/advanced.js +101 -99
  3. package/dist/block.js +55 -55
  4. package/dist/{calculator-M326KQFW.js → calculator-GU4NVYE2.js} +3 -3
  5. package/dist/{chart-meta-CpicJ1kj.d.ts → chart-meta-DNsYpNbh.d.ts} +18 -22
  6. package/dist/chart-meta.d.ts +1 -1
  7. package/dist/chart-meta.js +43 -43
  8. package/dist/{charts-d3-I6OE5K3B.js → charts-d3-HWKV46CS.js} +10 -10
  9. package/dist/{chunk-BBY57XAA.js → chunk-2QLYLYLN.js} +40 -40
  10. package/dist/{chunk-INLEOJIX.js → chunk-3QLXP6QZ.js} +2 -2
  11. package/dist/{chunk-MBODBL7C.js → chunk-4CTCOHDS.js} +3 -3
  12. package/dist/{chunk-E2GEV3BI.js → chunk-4FEPSBUH.js} +3 -3
  13. package/dist/{chunk-AFCVHK3G.js → chunk-56TCBKXP.js} +3 -3
  14. package/dist/{chunk-4IE42ODL.js → chunk-5ECGBM5S.js} +14 -10
  15. package/dist/{chunk-QMYJO4EL.js → chunk-5FBSYKPQ.js} +23 -7
  16. package/dist/{chunk-BDI25HWH.js → chunk-65KNPZCC.js} +4 -4
  17. package/dist/{chunk-J2EXBAPZ.js → chunk-6CLC26GU.js} +2 -2
  18. package/dist/{chunk-C666LP3O.js → chunk-6KJMPC6H.js} +9 -9
  19. package/dist/{chunk-SR7NGZNM.js → chunk-6NEFSIL3.js} +4 -4
  20. package/dist/{chunk-D2WHS23S.js → chunk-6NWCQCJV.js} +3 -3
  21. package/dist/{chunk-NSJK7F2V.js → chunk-6WI76LHG.js} +3 -3
  22. package/dist/{chunk-2CMM36O7.js → chunk-76XAJN7L.js} +2 -2
  23. package/dist/{chunk-JTUDM7S4.js → chunk-7LIDBQDO.js} +10 -10
  24. package/dist/{chunk-5T7K6QND.js → chunk-7LMDJ3U7.js} +8 -8
  25. package/dist/{chunk-XHFXA6RP.js → chunk-7YCHRBD3.js} +2 -2
  26. package/dist/{chunk-QQADQBKG.js → chunk-AA6LBVBN.js} +4 -4
  27. package/dist/{chunk-GXOMKWQ5.js → chunk-ASUFSCVV.js} +7 -7
  28. package/dist/{chunk-IJ4FUFTR.js → chunk-B6MHT3A7.js} +2 -2
  29. package/dist/{chunk-QRWY5QTA.js → chunk-BNJC5KVG.js} +6 -6
  30. package/dist/{chunk-CSUF6PNF.js → chunk-BQVCENFX.js} +3 -3
  31. package/dist/{chunk-FBD5ASMB.js → chunk-BSI5EOAX.js} +2 -2
  32. package/dist/{chunk-I7IQ2NEJ.js → chunk-CE2Z3OXR.js} +3 -3
  33. package/dist/{chunk-OLPWKS5L.js → chunk-CVMD5UWI.js} +3 -3
  34. package/dist/{chunk-4GQ6I46C.js → chunk-D62K46CW.js} +2 -2
  35. package/dist/{chunk-O42EAZUV.js → chunk-EC5USK74.js} +4 -4
  36. package/dist/{chunk-YMYPFX4O.js → chunk-EDFUVEO6.js} +7 -7
  37. package/dist/{chunk-GMLSYNFP.js → chunk-EHRME74D.js} +7 -7
  38. package/dist/{chunk-IJSFEU4J.js → chunk-FFI25S5O.js} +8 -8
  39. package/dist/{chunk-XKMCL2YJ.js → chunk-FH3S7FDS.js} +8 -8
  40. package/dist/{chunk-G7QZF6T3.js → chunk-FQ7OYKOS.js} +10 -10
  41. package/dist/{chunk-RF5YDIYT.js → chunk-G5UTJZFR.js} +2 -2
  42. package/dist/{chunk-X2X7MTKH.js → chunk-GAK5UOKL.js} +3 -3
  43. package/dist/{chunk-WDLD5MU5.js → chunk-H4VRTBMS.js} +9 -9
  44. package/dist/{chunk-CHOKOYSC.js → chunk-H7LQGRM3.js} +3 -3
  45. package/dist/{chunk-FLFBY5GN.js → chunk-HAGHVHR7.js} +2 -2
  46. package/dist/{chunk-QNCXONBR.js → chunk-HBVKOYZD.js} +2 -2
  47. package/dist/{chunk-QE4GTFZS.js → chunk-HK3JTWG3.js} +2 -2
  48. package/dist/{chunk-6BOPYGJC.js → chunk-HQBY3N3S.js} +3 -3
  49. package/dist/{chunk-LALFMQ7Q.js → chunk-IODPKTRZ.js} +2 -2
  50. package/dist/{chunk-UINRIO77.js → chunk-IOVJT4PE.js} +9 -9
  51. package/dist/{chunk-H52HJ26L.js → chunk-IW6N2JJL.js} +2 -2
  52. package/dist/{chunk-N6XI5VTA.js → chunk-J3XFVPEU.js} +4 -4
  53. package/dist/{chunk-TT5B36WO.js → chunk-JCAINYVG.js} +8 -8
  54. package/dist/{chunk-EK4QX7NQ.js → chunk-JR6H5MEF.js} +3 -3
  55. package/dist/{chunk-DJC5M7VC.js → chunk-K3MUWASA.js} +3 -3
  56. package/dist/{chunk-SJGZSPSW.js → chunk-KSK6B35D.js} +3 -3
  57. package/dist/{chunk-A6CTYC7O.js → chunk-KVM4POFR.js} +3 -3
  58. package/dist/{chunk-42IT4BG2.js → chunk-KWRW6BLG.js} +37 -12
  59. package/dist/{chunk-OWUWLZJT.js → chunk-LK35AH5V.js} +12 -10
  60. package/dist/{chunk-DPFCFU2K.js → chunk-LQB3NKEA.js} +3 -3
  61. package/dist/{chunk-P2PUWV3Y.js → chunk-M2QQQWM3.js} +5 -1
  62. package/dist/{chunk-JCL4K7AK.js → chunk-MACY4WJ4.js} +8 -8
  63. package/dist/{chunk-XC7BUB3P.js → chunk-MGAWLZQE.js} +2 -2
  64. package/dist/{chunk-JWJBWNQL.js → chunk-MMYRNZRQ.js} +3 -3
  65. package/dist/{chunk-YXI6Y7YY.js → chunk-MOMPLSQI.js} +2 -2
  66. package/dist/{chunk-FG24NXKN.js → chunk-MTPKBSTR.js} +2 -2
  67. package/dist/{chunk-6E5YZR4S.js → chunk-MUXI4Y6U.js} +5 -5
  68. package/dist/{chunk-63WPPHOM.js → chunk-MZBEPHFY.js} +2 -2
  69. package/dist/{chunk-NMIWEUIG.js → chunk-N5XT3OWL.js} +2 -2
  70. package/dist/{chunk-TWILCDUE.js → chunk-NTXNVS47.js} +4 -4
  71. package/dist/{chunk-3PSPUYT5.js → chunk-NZ2Z4ZEN.js} +4 -4
  72. package/dist/{chunk-MDI5FMWO.js → chunk-PBXMUXBW.js} +13 -2
  73. package/dist/{chunk-3A7KMF33.js → chunk-PMDE3I53.js} +3 -3
  74. package/dist/{chunk-IZ6RWMBM.js → chunk-PP75ABA4.js} +8 -8
  75. package/dist/{chunk-IL5UVUMK.js → chunk-PYL2K5CE.js} +3 -3
  76. package/dist/{chunk-BBCKUAUR.js → chunk-PZVYUQJA.js} +3 -3
  77. package/dist/{chunk-3A2HZBFD.js → chunk-Q7UM3R3Y.js} +2 -2
  78. package/dist/{chunk-GDQN2TPX.js → chunk-QQFO63AA.js} +7 -7
  79. package/dist/{chunk-XVEPB2UU.js → chunk-QQI4JTJB.js} +3 -3
  80. package/dist/{chunk-NQ7RRQU4.js → chunk-QRLNO6C7.js} +108 -95
  81. package/dist/{chunk-3HOCNSPD.js → chunk-QX53GOI7.js} +2 -2
  82. package/dist/{chunk-4TM7MWU4.js → chunk-R2UUKZ6R.js} +5 -5
  83. package/dist/{chunk-27YPE7NO.js → chunk-R2VVBC52.js} +5 -5
  84. package/dist/{chunk-FWVKPEG3.js → chunk-RTTELOOP.js} +2 -2
  85. package/dist/{chunk-YJOOIOSR.js → chunk-SHS3O7ZZ.js} +4 -4
  86. package/dist/{chunk-LK6LTSLH.js → chunk-SPA7DCB3.js} +3 -3
  87. package/dist/{chunk-B25BEH3F.js → chunk-SW36YNNE.js} +3 -3
  88. package/dist/{chunk-PZOFMBF3.js → chunk-TJ5PDNGU.js} +2 -2
  89. package/dist/{chunk-R4XM44BW.js → chunk-TSY25V7W.js} +7 -7
  90. package/dist/{chunk-YGFNITPC.js → chunk-UFKFABSP.js} +11 -11
  91. package/dist/{chunk-Q3XVMFVF.js → chunk-UG3MRJL6.js} +4 -3
  92. package/dist/{chunk-P5OCINCI.js → chunk-USOLDMYO.js} +9 -9
  93. package/dist/{chunk-YKWHUPBP.js → chunk-V5VCGTS4.js} +6 -6
  94. package/dist/{chunk-G64OVYUT.js → chunk-VALNMR2Y.js} +4 -4
  95. package/dist/{chunk-2EPV7CLY.js → chunk-VSZRPDIZ.js} +5 -5
  96. package/dist/{chunk-VLI5SYXW.js → chunk-WBPWR2CX.js} +5 -5
  97. package/dist/{chunk-TPKNA2U5.js → chunk-WN6V4ILM.js} +7 -7
  98. package/dist/{chunk-DBF4IM4U.js → chunk-XAPHRRQ4.js} +8 -8
  99. package/dist/{chunk-VXBEG3IB.js → chunk-XDEVAAY4.js} +3 -3
  100. package/dist/{chunk-GC7CBX6C.js → chunk-Y37EDBPR.js} +3 -3
  101. package/dist/{chunk-A5FNLWKP.js → chunk-YA464EGR.js} +3 -3
  102. package/dist/{chunk-CUYDE77F.js → chunk-YXW2ZYS3.js} +27 -5
  103. package/dist/{chunk-LQR46XGR.js → chunk-YYFIZ3AO.js} +2 -2
  104. package/dist/{chunk-UTOELEK2.js → chunk-Z4KRDDZC.js} +3 -3
  105. package/dist/{chunk-7L53J53J.js → chunk-Z6G367CM.js} +3 -3
  106. package/dist/{chunk-V4BYBIBU.js → chunk-ZCWEJ3VB.js} +2 -2
  107. package/dist/{chunk-U7CXUGQS.js → chunk-ZLPNK7U2.js} +3 -3
  108. package/dist/completion-registry.js +9 -6
  109. package/dist/dgmo-router-YFNEFJST.js +89 -0
  110. package/dist/{dimensions-ILAVBRQ3.js → dimensions-RIZPH26J.js} +8 -8
  111. package/dist/editor.js +4 -0
  112. package/dist/{flowchart-parser-T4XZRSA7.js → flowchart-parser-A64T3OEL.js} +4 -4
  113. package/dist/{flowchart-renderer-6JKM2FA4.js → flowchart-renderer-F6PDPKK7.js} +7 -7
  114. package/dist/highlight.d.ts +45 -1
  115. package/dist/highlight.js +28 -0
  116. package/dist/index.js +51 -51
  117. package/dist/{layout-IO6ORC5T.js → layout-2D6VKW6G.js} +4 -4
  118. package/dist/layout-2DUQIJOI.js +15 -0
  119. package/dist/{layout-62ERBWCM.js → layout-36Z4NU4W.js} +4 -4
  120. package/dist/layout-COGPMCW5.js +15 -0
  121. package/dist/{layout-MNOTDWXW.js → layout-CYNBG5EP.js} +6 -6
  122. package/dist/{layout-FA37VP7V.js → layout-FFCYSTW7.js} +3 -3
  123. package/dist/{legend-constants-RGINV5SF.js → legend-constants-FP5MFDD4.js} +3 -3
  124. package/dist/{palettes-WO3VA6NU.js → palettes-WQZ2TPVZ.js} +2 -2
  125. package/dist/{parser-AZZHRVJF.js → parser-2PN2WRYX.js} +6 -4
  126. package/dist/{parser-JZPSIWRC.js → parser-2QQJFTMD.js} +4 -4
  127. package/dist/{parser-BGX5ODHF.js → parser-3QXKYLDG.js} +3 -3
  128. package/dist/{parser-WLL63XH7.js → parser-4CEHZFZG.js} +5 -5
  129. package/dist/{parser-P7T2BGAI.js → parser-4VIMOING.js} +4 -4
  130. package/dist/{parser-WHDC7OV2.js → parser-52SRJNP4.js} +4 -4
  131. package/dist/{parser-J75RSQFI.js → parser-53ALMRAE.js} +4 -4
  132. package/dist/{parser-63BQDUWB.js → parser-5ETIIQIM.js} +4 -4
  133. package/dist/{parser-MCUKPCYE.js → parser-6OWUGHKY.js} +4 -4
  134. package/dist/{parser-GHLWPCIX.js → parser-A3B5KVPK.js} +4 -4
  135. package/dist/{parser-UKQC7N6K.js → parser-CDA5DGXA.js} +4 -4
  136. package/dist/{parser-5WIZGKNE.js → parser-CLDLYMDI.js} +4 -4
  137. package/dist/{parser-YO2JBE52.js → parser-D5EZ6Y5I.js} +4 -4
  138. package/dist/{parser-CSKF2KNO.js → parser-DAMYSBVY.js} +3 -3
  139. package/dist/{parser-MUYBWGUB.js → parser-DLIBNGNQ.js} +3 -3
  140. package/dist/{parser-6VNVZO5F.js → parser-E33LTBYE.js} +4 -4
  141. package/dist/{parser-SSUMVOJA.js → parser-FNOWLKC4.js} +4 -4
  142. package/dist/{parser-DSNINT2K.js → parser-GEELVJ4X.js} +3 -3
  143. package/dist/{parser-RAKD267X.js → parser-IL4T3HCM.js} +5 -5
  144. package/dist/{parser-56746U6W.js → parser-LGDW543A.js} +4 -4
  145. package/dist/{parser-RBY2UFTE.js → parser-LJZIQJRA.js} +3 -3
  146. package/dist/{parser-KRF4S5RW.js → parser-M7HBD7V2.js} +4 -4
  147. package/dist/{parser-KN7H2RQC.js → parser-PXI5UCVR.js} +3 -3
  148. package/dist/{parser-4CMMKTRS.js → parser-Q2K7TDEA.js} +3 -3
  149. package/dist/{parser-DLUOCPMD.js → parser-RZIIZ3EW.js} +3 -3
  150. package/dist/{parser-2K4Z7RNT.js → parser-SEFSLUXW.js} +3 -3
  151. package/dist/{parser-5JS6VM6L.js → parser-SOOR27MC.js} +5 -5
  152. package/dist/{parser-3KFNCRLD.js → parser-SZXKUTVE.js} +4 -4
  153. package/dist/{parser-NWERESX3.js → parser-U3T76HY2.js} +4 -4
  154. package/dist/{parser-OEBFJHT4.js → parser-VDD3N5SC.js} +5 -5
  155. package/dist/{parser-FTC7FZ6Z.js → parser-VQKLDBS7.js} +4 -4
  156. package/dist/{parser-VMGTNHP2.js → parser-YCRATNR6.js} +3 -3
  157. package/dist/{parser-5ZUEF4WE.js → parser-ZXI4IQ5Y.js} +4 -4
  158. package/dist/{renderer-GYYJ4APT.js → renderer-3EN7ZSXI.js} +10 -10
  159. package/dist/{renderer-JFOHE3YB.js → renderer-3VPTEQBU.js} +10 -10
  160. package/dist/{renderer-RL2JGVPC.js → renderer-4LLJHGIQ.js} +10 -10
  161. package/dist/{renderer-M4DAYNWC.js → renderer-52KYFTNZ.js} +4 -4
  162. package/dist/{renderer-EWTETTII.js → renderer-52YQ3EYR.js} +9 -9
  163. package/dist/{renderer-BXPWSNTJ.js → renderer-AF6DVUZH.js} +12 -12
  164. package/dist/renderer-BQORZPWF.js +76 -0
  165. package/dist/{renderer-FHXAWDNI.js → renderer-BT6TOWBE.js} +4 -4
  166. package/dist/{renderer-T4CMBGA5.js → renderer-EVHFS3PP.js} +9 -9
  167. package/dist/{renderer-FI4IKF4I.js → renderer-F75AZ6HF.js} +8 -8
  168. package/dist/{renderer-URPIVAPI.js → renderer-FAD65M5Z.js} +3 -3
  169. package/dist/{renderer-3GG2DEFQ.js → renderer-KLRBL45Z.js} +8 -8
  170. package/dist/{renderer-GHYH6DLG.js → renderer-KVRTLE2D.js} +4 -4
  171. package/dist/{renderer-L5QGQTLV.js → renderer-MGYWZFFR.js} +6 -6
  172. package/dist/{renderer-LCHVBTV4.js → renderer-P2MICJH5.js} +12 -12
  173. package/dist/{renderer-RVFPPKWN.js → renderer-PR3AGJ37.js} +10 -10
  174. package/dist/{renderer-QQBUBD66.js → renderer-PUYQ5CDE.js} +9 -9
  175. package/dist/{renderer-SFQHFPC5.js → renderer-Q24E7LBF.js} +9 -9
  176. package/dist/{renderer-AOFIEF2T.js → renderer-QOI2SEEA.js} +11 -11
  177. package/dist/{renderer-X3V2G4UL.js → renderer-QZRM6H4S.js} +3 -3
  178. package/dist/{renderer-6ST44AVP.js → renderer-REULT7UI.js} +10 -10
  179. package/dist/renderer-RJLAM6G5.js +23 -0
  180. package/dist/{renderer-L7S6YVM6.js → renderer-RY7RQQ37.js} +4 -4
  181. package/dist/{renderer-WR6J7NKH.js → renderer-SDCMF5AF.js} +9 -9
  182. package/dist/{renderer-KY6PADCM.js → renderer-SFYFVKVN.js} +10 -10
  183. package/dist/{renderer-BEVY3UP5.js → renderer-U7INHN4J.js} +5 -5
  184. package/dist/{renderer-WENGQEX6.js → renderer-UC2ZZISO.js} +8 -8
  185. package/dist/{renderer-OWUXQDHM.js → renderer-VK6KVXFB.js} +5 -5
  186. package/dist/{renderer-PJNJOCLB.js → renderer-VTP3QCCP.js} +9 -9
  187. package/dist/{renderer-REFE3YFH.js → renderer-WA5K5VWA.js} +11 -11
  188. package/dist/{renderer-TJD6A3AK.js → renderer-WPGW6FTW.js} +12 -12
  189. package/dist/{renderer-6NDYVZXQ.js → renderer-XOPHJWNZ.js} +9 -9
  190. package/dist/{renderer-YAW4VHAI.js → renderer-YZMFPZGC.js} +12 -10
  191. package/dist/renderer-radial-AVHNPO2N.js +21 -0
  192. package/dist/{state-parser-3U4232LJ.js → state-parser-GSU2ZDVR.js} +5 -5
  193. package/dist/{state-renderer-JJSQJZEL.js → state-renderer-Q6XQDK3W.js} +12 -12
  194. package/docs/ai-integration.md +1 -1
  195. package/docs/language-reference.md +29 -30
  196. package/gallery/fixtures/event-line-now-color.dgmo +23 -0
  197. package/package.json +1 -1
  198. package/dist/dgmo-router-464FE256.js +0 -89
  199. package/dist/layout-7JULRP4Y.js +0 -15
  200. package/dist/layout-SBQTN2YM.js +0 -15
  201. package/dist/renderer-2UIQVKXK.js +0 -23
  202. package/dist/renderer-NXIK3LOA.js +0 -76
  203. package/dist/renderer-radial-HOUGPUPW.js +0 -21
@@ -10,7 +10,7 @@ import {
10
10
  tagAttrKey,
11
11
  validateTagGroupNames,
12
12
  validateTagValues
13
- } from "./chunk-MDI5FMWO.js";
13
+ } from "./chunk-PBXMUXBW.js";
14
14
  import {
15
15
  OPTION_NOCOLON_RE,
16
16
  ORG_REGISTRY,
@@ -21,7 +21,7 @@ import {
21
21
  splitNameAndMeta,
22
22
  warnUnknownMetaKeys,
23
23
  withTagAliases
24
- } from "./chunk-P2PUWV3Y.js";
24
+ } from "./chunk-M2QQQWM3.js";
25
25
  import {
26
26
  formatDgmoError,
27
27
  makeDgmoError,
@@ -36,7 +36,8 @@ var KNOWN_OPTIONS = /* @__PURE__ */ new Set([
36
36
  "sub-node-label",
37
37
  "hide",
38
38
  "show-sub-node-count",
39
- "active-tag"
39
+ "active-tag",
40
+ "focus"
40
41
  ]);
41
42
  var KNOWN_BOOLEANS = /* @__PURE__ */ new Set([
42
43
  "show-sub-node-count",
@@ -84,6 +85,7 @@ function parseOrg(content, palette) {
84
85
  let contentStarted = false;
85
86
  let nodeCounter = 0;
86
87
  let containerCounter = 0;
88
+ let focusOptionLine = 0;
87
89
  let currentTagGroup = null;
88
90
  const metaAliasMap = /* @__PURE__ */ new Map();
89
91
  const nameAliasMap = /* @__PURE__ */ new Map();
@@ -164,6 +166,7 @@ function parseOrg(content, palette) {
164
166
  const key = optMatch[1].trim().toLowerCase();
165
167
  if (KNOWN_OPTIONS.has(key)) {
166
168
  options[key] = optMatch[2].trim();
169
+ if (key === "focus") focusOptionLine = lineNumber;
167
170
  continue;
168
171
  }
169
172
  }
@@ -297,9 +300,27 @@ function parseOrg(content, palette) {
297
300
  result.diagnostics.push(diag);
298
301
  result.error = formatDgmoError(diag);
299
302
  }
303
+ const focusName = options["focus"];
304
+ if (focusName && result.roots.length > 0) {
305
+ if (!findOrgNodeIdByName(result.roots, focusName)) {
306
+ pushWarning(
307
+ focusOptionLine || 1,
308
+ `focus target "${focusName}" not found \u2014 showing the whole chart`
309
+ );
310
+ }
311
+ }
300
312
  result.direction = options["direction-lr"] ? "LR" : "TB";
301
313
  return result;
302
314
  }
315
+ function findOrgNodeIdByName(nodes, name) {
316
+ const target = name.trim().toLowerCase();
317
+ for (const node of nodes) {
318
+ if (node.label.trim().toLowerCase() === target) return node.id;
319
+ const hit = findOrgNodeIdByName(node.children, target);
320
+ if (hit) return hit;
321
+ }
322
+ return null;
323
+ }
303
324
  function parseNodeLabel(trimmed, _indent, lineNumber, _palette, counter, metaAliasMap = /* @__PURE__ */ new Map(), diagnostics, nameAliasMap) {
304
325
  const registry = withTagAliases(ORG_REGISTRY, new Set(metaAliasMap.keys()));
305
326
  const id = `node-${counter}`;
@@ -363,6 +384,7 @@ function findMetadataParent(indent, indentStack) {
363
384
 
364
385
  export {
365
386
  looksLikeOrg,
366
- parseOrg
387
+ parseOrg,
388
+ findOrgNodeIdByName
367
389
  };
368
- //# sourceMappingURL=chunk-CUYDE77F.js.map
390
+ //# sourceMappingURL=chunk-YXW2ZYS3.js.map
@@ -5,7 +5,7 @@ import {
5
5
  splitNameAndMeta,
6
6
  tryParseSharedOption,
7
7
  warnUnknownMetaKeys
8
- } from "./chunk-P2PUWV3Y.js";
8
+ } from "./chunk-M2QQQWM3.js";
9
9
  import {
10
10
  makeDgmoError,
11
11
  makeFail
@@ -274,4 +274,4 @@ function parseCycle(content) {
274
274
  export {
275
275
  parseCycle
276
276
  };
277
- //# sourceMappingURL=chunk-LQR46XGR.js.map
277
+ //# sourceMappingURL=chunk-YYFIZ3AO.js.map
@@ -8,7 +8,7 @@ import {
8
8
  stripDefaultModifier,
9
9
  tagAttrKey,
10
10
  validateTagGroupNames
11
- } from "./chunk-MDI5FMWO.js";
11
+ } from "./chunk-PBXMUXBW.js";
12
12
  import {
13
13
  MAP_DIRECTIVE_KEY_SET,
14
14
  MAP_REGISTRY,
@@ -17,7 +17,7 @@ import {
17
17
  peelRampColors,
18
18
  splitNameAndMeta,
19
19
  withTagAliases
20
- } from "./chunk-P2PUWV3Y.js";
20
+ } from "./chunk-M2QQQWM3.js";
21
21
  import {
22
22
  NEGATIVE_VALUE_DX,
23
23
  emit,
@@ -652,4 +652,4 @@ export {
652
652
  looksLikeMap,
653
653
  parseMap
654
654
  };
655
- //# sourceMappingURL=chunk-UTOELEK2.js.map
655
+ //# sourceMappingURL=chunk-Z4KRDDZC.js.map
@@ -10,10 +10,10 @@ import {
10
10
  } from "./chunk-U7VO6JAA.js";
11
11
  import {
12
12
  parseDgmoChartType
13
- } from "./chunk-BBY57XAA.js";
13
+ } from "./chunk-2QLYLYLN.js";
14
14
  import {
15
15
  chartTypes
16
- } from "./chunk-P2PUWV3Y.js";
16
+ } from "./chunk-M2QQQWM3.js";
17
17
 
18
18
  // src/error-card.ts
19
19
  var DOCS_BASE = "https://diagrammo.app/docs";
@@ -204,4 +204,4 @@ export {
204
204
  MONO_FAMILY,
205
205
  renderErrorCard
206
206
  };
207
- //# sourceMappingURL=chunk-7L53J53J.js.map
207
+ //# sourceMappingURL=chunk-Z6G367CM.js.map
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  injectDefaultTagMetadata,
13
13
  resolveTagColor
14
- } from "./chunk-MDI5FMWO.js";
14
+ } from "./chunk-PBXMUXBW.js";
15
15
 
16
16
  // src/mindmap/text-wrap.ts
17
17
  var H_PAD = 16;
@@ -556,4 +556,4 @@ export {
556
556
  computeNodeText,
557
557
  layoutMindmap
558
558
  };
559
- //# sourceMappingURL=chunk-V4BYBIBU.js.map
559
+ //# sourceMappingURL=chunk-ZCWEJ3VB.js.map
@@ -9,13 +9,13 @@ import {
9
9
  matchTagBlockHeading,
10
10
  stripDefaultModifier,
11
11
  tagAttrKey
12
- } from "./chunk-MDI5FMWO.js";
12
+ } from "./chunk-PBXMUXBW.js";
13
13
  import {
14
14
  extractColor,
15
15
  fillModeFromToken,
16
16
  measureIndent,
17
17
  parseFirstLine
18
- } from "./chunk-P2PUWV3Y.js";
18
+ } from "./chunk-M2QQQWM3.js";
19
19
  import {
20
20
  emit
21
21
  } from "./chunk-OLMWTJVU.js";
@@ -264,4 +264,4 @@ export {
264
264
  parseBody,
265
265
  extractSymbols
266
266
  };
267
- //# sourceMappingURL=chunk-U7CXUGQS.js.map
267
+ //# sourceMappingURL=chunk-ZLPNK7U2.js.map
@@ -4,12 +4,12 @@ import {
4
4
  import {
5
5
  GROUP_ONLY_METADATA,
6
6
  STATE_KEYWORDS
7
- } from "./chunk-B25BEH3F.js";
8
- import "./chunk-MDI5FMWO.js";
7
+ } from "./chunk-SW36YNNE.js";
8
+ import "./chunk-PBXMUXBW.js";
9
9
  import {
10
10
  ALL_CHART_TYPES,
11
11
  chartTypes
12
- } from "./chunk-P2PUWV3Y.js";
12
+ } from "./chunk-M2QQQWM3.js";
13
13
  import "./chunk-EXNKNJ65.js";
14
14
  import "./chunk-OLMWTJVU.js";
15
15
  import "./chunk-5WRI5ZAA.js";
@@ -219,7 +219,7 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
219
219
  },
220
220
  "no-legend": { description: "Hide the tag legend" },
221
221
  now: {
222
- description: '"now" pin at today (bare) or a pinned date (now 2026-07-20)'
222
+ description: "Pin on the spine, captioned with its date \u2014 today (bare) or a pinned date (now 2026-07-20); a trailing color recolors it (now blue)"
223
223
  },
224
224
  TBD: {
225
225
  description: 'Date prefix for a not-yet-scheduled future event (e.g. "TBD Console Port")'
@@ -289,7 +289,7 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
289
289
  [
290
290
  "org",
291
291
  // Spec §7 §6.5: direction-tb, sub-node-label, show-sub-node-count,
292
- // hide, active-tag. fill family via FILL_FAMILY_CAPABLE.
292
+ // hide, active-tag, focus. fill family via FILL_FAMILY_CAPABLE.
293
293
  withGlobals({
294
294
  "no-legend": { description: "Hide the legend" },
295
295
  "direction-tb": { description: "Top-to-bottom layout (the default)" },
@@ -297,7 +297,10 @@ var COMPLETION_REGISTRY = /* @__PURE__ */ new Map([
297
297
  "sub-node-label": { description: "Label for sub-nodes" },
298
298
  "show-sub-node-count": { description: "Show sub-node counts" },
299
299
  hide: { description: "Hide tag:value pairs" },
300
- "active-tag": { description: "Active tag group name" }
300
+ "active-tag": { description: "Active tag group name" },
301
+ focus: {
302
+ description: "Re-root to a person or team subtree (focus Name)"
303
+ }
301
304
  })
302
305
  ],
303
306
  [
@@ -0,0 +1,89 @@
1
+ import {
2
+ CHART_TYPE_DESCRIPTIONS,
3
+ chartTypeParsers,
4
+ getAllChartTypes,
5
+ getRenderCategory,
6
+ isExtendedChartType,
7
+ knownChartTypeIds,
8
+ looksLikeC4,
9
+ looksLikeGantt,
10
+ parseDgmo,
11
+ parseDgmoChartType
12
+ } from "./chunk-2QLYLYLN.js";
13
+ import "./chunk-76XAJN7L.js";
14
+ import "./chunk-A2RUBBVT.js";
15
+ import "./chunk-MMYRNZRQ.js";
16
+ import "./chunk-G5UTJZFR.js";
17
+ import "./chunk-ZLPNK7U2.js";
18
+ import "./chunk-MGAWLZQE.js";
19
+ import "./chunk-2CW5ZTNH.js";
20
+ import "./chunk-BDXC7MDK.js";
21
+ import "./chunk-YYFIZ3AO.js";
22
+ import "./chunk-6WI76LHG.js";
23
+ import "./chunk-MOMPLSQI.js";
24
+ import "./chunk-IODPKTRZ.js";
25
+ import "./chunk-LQB3NKEA.js";
26
+ import "./chunk-BQVCENFX.js";
27
+ import "./chunk-XSVWUOUZ.js";
28
+ import "./chunk-Q7UM3R3Y.js";
29
+ import "./chunk-7YCHRBD3.js";
30
+ import "./chunk-OQKP2X3D.js";
31
+ import "./chunk-Z4KRDDZC.js";
32
+ import "./chunk-AA6LBVBN.js";
33
+ import "./chunk-56TCBKXP.js";
34
+ import "./chunk-RT7ACF77.js";
35
+ import "./chunk-GAK5UOKL.js";
36
+ import "./chunk-YA464EGR.js";
37
+ import "./chunk-QQJUTGQH.js";
38
+ import "./chunk-CVMD5UWI.js";
39
+ import "./chunk-N5XT3OWL.js";
40
+ import "./chunk-XDEVAAY4.js";
41
+ import "./chunk-3TYUXC7D.js";
42
+ import "./chunk-HAGHVHR7.js";
43
+ import "./chunk-5FBSYKPQ.js";
44
+ import "./chunk-D62K46CW.js";
45
+ import "./chunk-3QLXP6QZ.js";
46
+ import "./chunk-4FEPSBUH.js";
47
+ import "./chunk-PYL2K5CE.js";
48
+ import "./chunk-CE2Z3OXR.js";
49
+ import "./chunk-EC5USK74.js";
50
+ import "./chunk-EQW6HOP4.js";
51
+ import "./chunk-DAOFNU6J.js";
52
+ import "./chunk-KSK6B35D.js";
53
+ import "./chunk-C3Z4DX3V.js";
54
+ import "./chunk-H7LQGRM3.js";
55
+ import "./chunk-7TF3QOOD.js";
56
+ import "./chunk-6NEFSIL3.js";
57
+ import "./chunk-NXMESY4J.js";
58
+ import "./chunk-JR6H5MEF.js";
59
+ import "./chunk-65KNPZCC.js";
60
+ import "./chunk-HK3JTWG3.js";
61
+ import "./chunk-7NK42OIB.js";
62
+ import "./chunk-RRX4Z4TH.js";
63
+ import "./chunk-YXW2ZYS3.js";
64
+ import "./chunk-K3MUWASA.js";
65
+ import "./chunk-IYULMRBE.js";
66
+ import "./chunk-NOTA6TEI.js";
67
+ import "./chunk-I55PVEIX.js";
68
+ import "./chunk-SW36YNNE.js";
69
+ import "./chunk-PBXMUXBW.js";
70
+ import "./chunk-M2QQQWM3.js";
71
+ import "./chunk-23RWHHI5.js";
72
+ import "./chunk-R3XI2VC7.js";
73
+ import "./chunk-KWRW6BLG.js";
74
+ import "./chunk-EXNKNJ65.js";
75
+ import "./chunk-OLMWTJVU.js";
76
+ import "./chunk-5WRI5ZAA.js";
77
+ export {
78
+ CHART_TYPE_DESCRIPTIONS,
79
+ chartTypeParsers,
80
+ getAllChartTypes,
81
+ getRenderCategory,
82
+ isExtendedChartType,
83
+ knownChartTypeIds,
84
+ looksLikeC4,
85
+ looksLikeGantt,
86
+ parseDgmo,
87
+ parseDgmoChartType
88
+ };
89
+ //# sourceMappingURL=dgmo-router-YFNEFJST.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  mapContentAspect,
3
3
  mapExportDimensions
4
- } from "./chunk-PZOFMBF3.js";
5
- import "./chunk-6E5YZR4S.js";
4
+ } from "./chunk-TJ5PDNGU.js";
5
+ import "./chunk-MUXI4Y6U.js";
6
6
  import "./chunk-4QV26TEG.js";
7
7
  import "./chunk-L65WI4HO.js";
8
8
  import "./chunk-A4GOY3PE.js";
9
- import "./chunk-FG24NXKN.js";
10
- import "./chunk-3HOCNSPD.js";
9
+ import "./chunk-MTPKBSTR.js";
10
+ import "./chunk-QX53GOI7.js";
11
11
  import "./chunk-MTGGOCND.js";
12
- import "./chunk-MDI5FMWO.js";
13
- import "./chunk-P2PUWV3Y.js";
14
- import "./chunk-42IT4BG2.js";
12
+ import "./chunk-PBXMUXBW.js";
13
+ import "./chunk-M2QQQWM3.js";
14
+ import "./chunk-KWRW6BLG.js";
15
15
  import "./chunk-EXNKNJ65.js";
16
16
  import "./chunk-OLMWTJVU.js";
17
17
  import "./chunk-5WRI5ZAA.js";
@@ -19,4 +19,4 @@ export {
19
19
  mapContentAspect,
20
20
  mapExportDimensions
21
21
  };
22
- //# sourceMappingURL=dimensions-ILAVBRQ3.js.map
22
+ //# sourceMappingURL=dimensions-RIZPH26J.js.map
package/dist/editor.js CHANGED
@@ -176,6 +176,10 @@ var DIRECTIVES_REGISTRY = [
176
176
  { token: "tags", category: "directive" },
177
177
  { token: "import", category: "directive" },
178
178
  { token: "hide", category: "directive" },
179
+ // `focus <name>`: org subtree drill-down (view-state, source-backed) — the
180
+ // export re-roots to that person/team with the ancestor breadcrumb trail.
181
+ // Org reads it via its own KNOWN_OPTIONS; registered here for highlighting.
182
+ { token: "focus", category: "directive" },
179
183
  { token: "direction", category: "directive" },
180
184
  // ── Clock ────────────────────────────────────────────────
181
185
  // The board's flat directives — highlight-only (the parser validates them
@@ -2,14 +2,14 @@ import {
2
2
  extractSymbols,
3
3
  looksLikeFlowchart,
4
4
  parseFlowchart
5
- } from "./chunk-CHOKOYSC.js";
5
+ } from "./chunk-H7LQGRM3.js";
6
6
  import "./chunk-7TF3QOOD.js";
7
7
  import "./chunk-NXMESY4J.js";
8
- import "./chunk-QE4GTFZS.js";
8
+ import "./chunk-HK3JTWG3.js";
9
9
  import "./chunk-7NK42OIB.js";
10
10
  import "./chunk-RRX4Z4TH.js";
11
11
  import "./chunk-NOTA6TEI.js";
12
- import "./chunk-P2PUWV3Y.js";
12
+ import "./chunk-M2QQQWM3.js";
13
13
  import "./chunk-EXNKNJ65.js";
14
14
  import "./chunk-OLMWTJVU.js";
15
15
  import "./chunk-5WRI5ZAA.js";
@@ -18,4 +18,4 @@ export {
18
18
  looksLikeFlowchart,
19
19
  parseFlowchart
20
20
  };
21
- //# sourceMappingURL=flowchart-parser-T4XZRSA7.js.map
21
+ //# sourceMappingURL=flowchart-parser-A64T3OEL.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  renderFlowchart,
3
3
  renderFlowchartForExport
4
- } from "./chunk-4TM7MWU4.js";
4
+ } from "./chunk-R2UUKZ6R.js";
5
5
  import "./chunk-PDKUANDZ.js";
6
6
  import "./chunk-IKHV5IJB.js";
7
7
  import "./chunk-LP7EC4MI.js";
8
- import "./chunk-H52HJ26L.js";
8
+ import "./chunk-IW6N2JJL.js";
9
9
  import "./chunk-6EK55ART.js";
10
10
  import "./chunk-MU3CJPJF.js";
11
11
  import "./chunk-5DH3KYFH.js";
@@ -17,15 +17,15 @@ import "./chunk-RU2HHHYA.js";
17
17
  import "./chunk-A4GOY3PE.js";
18
18
  import "./chunk-UTCPNJND.js";
19
19
  import "./chunk-MTGGOCND.js";
20
- import "./chunk-CHOKOYSC.js";
20
+ import "./chunk-H7LQGRM3.js";
21
21
  import "./chunk-7TF3QOOD.js";
22
22
  import "./chunk-NXMESY4J.js";
23
- import "./chunk-QE4GTFZS.js";
23
+ import "./chunk-HK3JTWG3.js";
24
24
  import "./chunk-7NK42OIB.js";
25
25
  import "./chunk-RRX4Z4TH.js";
26
26
  import "./chunk-NOTA6TEI.js";
27
- import "./chunk-P2PUWV3Y.js";
28
- import "./chunk-42IT4BG2.js";
27
+ import "./chunk-M2QQQWM3.js";
28
+ import "./chunk-KWRW6BLG.js";
29
29
  import "./chunk-EXNKNJ65.js";
30
30
  import "./chunk-OLMWTJVU.js";
31
31
  import "./chunk-5WRI5ZAA.js";
@@ -33,4 +33,4 @@ export {
33
33
  renderFlowchart,
34
34
  renderFlowchartForExport
35
35
  };
36
- //# sourceMappingURL=flowchart-renderer-6JKM2FA4.js.map
36
+ //# sourceMappingURL=flowchart-renderer-F6PDPKK7.js.map
@@ -17,6 +17,50 @@ declare function scanMonthNameDates(line: string): Array<{
17
17
  end: number;
18
18
  }>;
19
19
 
20
+ /**
21
+ * Which directives take a trailing color, and how many.
22
+ *
23
+ * §1.5's trailing-token color rule applies to a handful of DIRECTIVE lines as
24
+ * well as to data lines, and each parser implements it locally — `extractColor`
25
+ * here, `peelTrailingColorName` there, `peelRampColors` for the value ramp.
26
+ * An editor cannot recover that from the grammar: `lane Writer gray` colors a
27
+ * lane and `lane gray` names one, and the two are the same shape.
28
+ *
29
+ * So the rules live here, beside the language, and ship through
30
+ * `@diagrammo/dgmo/highlight` for any editor that highlights DGMO.
31
+ * `tests/color-directives.test.ts` drives every entry through the real parser
32
+ * and fails when the table and the parser disagree — the table is a claim
33
+ * about behavior, and an unchecked claim is how the app's copy of this came to
34
+ * paint a color on `marker <date> orange`, which names a milestone "orange".
35
+ */
36
+ /** How a directive's trailing color tokens peel. */
37
+ interface ColorDirectiveRule {
38
+ /** Most trailing colors the parser peels. Two only for a value ramp. */
39
+ readonly max: number;
40
+ /**
41
+ * True when the directive's label is optional, so a color needs nothing in
42
+ * front of it — `now blue` and `now 2026-01-01 blue` both color the pin.
43
+ *
44
+ * Everywhere else a lone trailing token IS the label: `lane gray` names a
45
+ * lane "gray", `persona green` a persona "green". A color peels only when a
46
+ * label token precedes it, and a date does not count as one.
47
+ */
48
+ readonly labelOptional?: boolean;
49
+ }
50
+ /**
51
+ * Chart type → directive → rule. Absence means "this directive takes no
52
+ * trailing color", which is the case for the overwhelming majority — a
53
+ * directive's value is usually prose or a number, and `note the sky is blue`
54
+ * ends in a color word while meaning nothing of the sort.
55
+ *
56
+ * Gantt's `era` is deliberately absent even though it takes a color: its date
57
+ * range makes it an arrow line, which every editor already treats as a data
58
+ * line and colors through the ordinary trailing-token path.
59
+ */
60
+ declare const COLOR_DIRECTIVES: ReadonlyMap<string, ReadonlyMap<string, ColorDirectiveRule>>;
61
+ /** The rule for a directive on a chart type, or null when it takes no color. */
62
+ declare function colorDirectiveRule(chartType: string | null | undefined, directive: string): ColorDirectiveRule | null;
63
+
20
64
  /**
21
65
  * Standalone DGMO syntax highlighter — no CodeMirror dependency.
22
66
  *
@@ -82,4 +126,4 @@ declare const ROLE_TO_ANSI: Record<string, string>;
82
126
  */
83
127
  declare function renderAnsi(tokens: HighlightToken[], useColor: boolean): string;
84
128
 
85
- export { ATTRIBUTE_KEYS, type HighlightToken, LIGHT_ROLE_STYLES, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, type RecurrenceSpan, classifyRecurrenceLine, highlightDgmo, renderAnsi, scanMonthNameDates };
129
+ export { ATTRIBUTE_KEYS, COLOR_DIRECTIVES, type ColorDirectiveRule, type HighlightToken, LIGHT_ROLE_STYLES, NODE_TO_ROLE, NORD_ROLE_STYLES, ROLE_TO_ANSI, type RecurrenceSpan, classifyRecurrenceLine, colorDirectiveRule, highlightDgmo, renderAnsi, scanMonthNameDates };
package/dist/highlight.js CHANGED
@@ -173,6 +173,10 @@ var DIRECTIVES_REGISTRY = [
173
173
  { token: "tags", category: "directive" },
174
174
  { token: "import", category: "directive" },
175
175
  { token: "hide", category: "directive" },
176
+ // `focus <name>`: org subtree drill-down (view-state, source-backed) — the
177
+ // export re-roots to that person/team with the ancestor breadcrumb trail.
178
+ // Org reads it via its own KNOWN_OPTIONS; registered here for highlighting.
179
+ { token: "focus", category: "directive" },
176
180
  { token: "direction", category: "directive" },
177
181
  // ── Clock ────────────────────────────────────────────────
178
182
  // The board's flat directives — highlight-only (the parser validates them
@@ -763,6 +767,28 @@ function scanMonthNameDates(line) {
763
767
  return spans;
764
768
  }
765
769
 
770
+ // src/editor/color-directives.ts
771
+ var COLOR_DIRECTIVES = /* @__PURE__ */ new Map([
772
+ ["event-line", /* @__PURE__ */ new Map([["now", { max: 1, labelOptional: true }]])],
773
+ ["gantt", /* @__PURE__ */ new Map([["marker", { max: 1 }]])],
774
+ ["swimlane", /* @__PURE__ */ new Map([["lane", { max: 1 }]])],
775
+ ["journey-map", /* @__PURE__ */ new Map([["persona", { max: 1 }]])],
776
+ ["map", /* @__PURE__ */ new Map([["region-heat", { max: 2 }]])],
777
+ [
778
+ "quadrant",
779
+ /* @__PURE__ */ new Map([
780
+ ["top-right", { max: 1 }],
781
+ ["top-left", { max: 1 }],
782
+ ["bottom-right", { max: 1 }],
783
+ ["bottom-left", { max: 1 }]
784
+ ])
785
+ ]
786
+ ]);
787
+ function colorDirectiveRule(chartType, directive) {
788
+ if (!chartType) return null;
789
+ return COLOR_DIRECTIVES.get(chartType)?.get(directive) ?? null;
790
+ }
791
+
766
792
  // src/editor/highlight-api.ts
767
793
  var NODE_TO_ROLE = {
768
794
  Comment: "comment",
@@ -1306,11 +1332,13 @@ function renderAnsi(tokens, useColor) {
1306
1332
  }
1307
1333
  export {
1308
1334
  ATTRIBUTE_KEYS,
1335
+ COLOR_DIRECTIVES,
1309
1336
  LIGHT_ROLE_STYLES,
1310
1337
  NODE_TO_ROLE,
1311
1338
  NORD_ROLE_STYLES,
1312
1339
  ROLE_TO_ANSI,
1313
1340
  classifyRecurrenceLine,
1341
+ colorDirectiveRule,
1314
1342
  highlightDgmo,
1315
1343
  renderAnsi,
1316
1344
  scanMonthNameDates