@diagrammo/dgmo 0.49.0 → 0.50.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 (192) hide show
  1. package/.cursorrules +6 -2
  2. package/.github/copilot-instructions.md +6 -2
  3. package/.windsurfrules +6 -2
  4. package/SKILL.md +6 -2
  5. package/dist/advanced.d.ts +419 -12
  6. package/dist/advanced.js +557 -195
  7. package/dist/auto.js +129 -119
  8. package/dist/auto.mjs +11543 -4815
  9. package/dist/block.js +145 -48
  10. package/dist/{charts-d3-EW3YQTEA.js → charts-d3-DKUD7MQE.js} +5 -5
  11. package/dist/{chunk-5FGDJIJX.js → chunk-2C56LEML.js} +3 -3
  12. package/dist/{chunk-35BBZDFE.js → chunk-2JJ2KNPI.js} +4 -4
  13. package/dist/{chunk-ZTLWVRNS.js → chunk-2QYTMIRR.js} +2 -2
  14. package/dist/{chunk-VC3TR4NL.js → chunk-3G6TMNVF.js} +3 -3
  15. package/dist/{chunk-ZDUQGL3N.js → chunk-3LKM6FMW.js} +2 -2
  16. package/dist/{chunk-4BD7EVPK.js → chunk-3P2DKJCG.js} +2 -2
  17. package/dist/{chunk-6CLKNXVP.js → chunk-3TDRHT4J.js} +457 -78
  18. package/dist/chunk-3XPUDB7B.js +420 -0
  19. package/dist/{chunk-DDTJ5N7Q.js → chunk-3ZPC476N.js} +6 -6
  20. package/dist/{chunk-BPIJLRYE.js → chunk-4BMJQFNK.js} +3 -3
  21. package/dist/{chunk-N4J5KGWG.js → chunk-4S723I74.js} +8 -8
  22. package/dist/{chunk-4YNP6O47.js → chunk-5JSWBPZZ.js} +3 -3
  23. package/dist/{chunk-KUBBJ2CD.js → chunk-5Z736BSU.js} +6 -6
  24. package/dist/{chunk-MJCG5K2O.js → chunk-6BFZKBGD.js} +2 -2
  25. package/dist/{chunk-XCC2RENT.js → chunk-6IAA2QQ2.js} +2 -2
  26. package/dist/{chunk-FUCAB3KQ.js → chunk-6M5PJFQG.js} +3 -3
  27. package/dist/{chunk-T7IKPCMI.js → chunk-6X4AKWLF.js} +3 -3
  28. package/dist/{chunk-JFPY3UJ7.js → chunk-6ZT4U37Q.js} +8 -8
  29. package/dist/{chunk-CLR4A2N2.js → chunk-7G2ER4CY.js} +4 -4
  30. package/dist/chunk-7PQYTZMA.js +681 -0
  31. package/dist/{chunk-LG4TWW4U.js → chunk-7RB5Q6MB.js} +8 -8
  32. package/dist/{chunk-7OVSJI2V.js → chunk-A3WQVFBS.js} +3 -3
  33. package/dist/{chunk-X2CH42BN.js → chunk-ASS5YYIZ.js} +7 -7
  34. package/dist/{chunk-3NFJWFNP.js → chunk-BDXC7MDK.js} +1045 -124
  35. package/dist/chunk-BTUTZMPT.js +482 -0
  36. package/dist/{chunk-UVCXZEGU.js → chunk-CVV36CWI.js} +2 -2
  37. package/dist/{chunk-TC3YWBFO.js → chunk-DMJJ3CEQ.js} +29 -8
  38. package/dist/{chunk-NVT6C2VE.js → chunk-EJTKV7CY.js} +4 -4
  39. package/dist/{chunk-4NQ3IKUM.js → chunk-ER5SCQWQ.js} +5 -5
  40. package/dist/{chunk-7VLUGEMJ.js → chunk-F5UDBSJY.js} +4 -4
  41. package/dist/{chunk-IHLSHCPZ.js → chunk-FAL7NOK3.js} +5 -5
  42. package/dist/{chunk-YRVLP7UU.js → chunk-FB2WHOEQ.js} +4 -4
  43. package/dist/chunk-FL4IOQ37.js +379 -0
  44. package/dist/{chunk-6VE3VLWM.js → chunk-GBE54KY6.js} +6 -5
  45. package/dist/{chunk-ZXL6MB4R.js → chunk-GL5UZ6NY.js} +3 -3
  46. package/dist/{chunk-3BIAFYD2.js → chunk-GPWHQ5FJ.js} +2 -2
  47. package/dist/chunk-GROQGHCT.js +960 -0
  48. package/dist/{chunk-GB3YZTAM.js → chunk-H73FP42Q.js} +5 -5
  49. package/dist/{chunk-O5MQPK7E.js → chunk-I4IFRCUB.js} +3 -3
  50. package/dist/{chunk-IUK7AGD4.js → chunk-I7F2A35O.js} +2 -2
  51. package/dist/{chunk-YTN572Q2.js → chunk-IA3FJYWR.js} +2 -2
  52. package/dist/{chunk-RI4NIMFP.js → chunk-JFYIP7XU.js} +75 -35
  53. package/dist/{chunk-UWDO3O52.js → chunk-JZNMXEIV.js} +2 -2
  54. package/dist/chunk-KJXIHOVL.js +940 -0
  55. package/dist/{chunk-26RVGM44.js → chunk-L2ZTFHAY.js} +2 -2
  56. package/dist/{chunk-PU3AUQPA.js → chunk-M5RXSRO2.js} +2 -2
  57. package/dist/{chunk-XKTN7CZF.js → chunk-NFFIKVNO.js} +4 -4
  58. package/dist/{chunk-SVDWQGX2.js → chunk-NISQC5KW.js} +139 -78
  59. package/dist/{chunk-4HVNZ7WF.js → chunk-O4VUFXIH.js} +3 -3
  60. package/dist/{chunk-F743CM2N.js → chunk-O76UD6VJ.js} +3 -3
  61. package/dist/{chunk-TLKMTQYL.js → chunk-OHQEMBLI.js} +3 -3
  62. package/dist/{chunk-BGJV5ATD.js → chunk-ONA5KPV3.js} +2 -2
  63. package/dist/{chunk-ZNQX6QWH.js → chunk-OTAL43EH.js} +6 -2
  64. package/dist/{chunk-FMKTYMP4.js → chunk-OTP5KVLO.js} +3 -3
  65. package/dist/{chunk-5ZZLLBFK.js → chunk-PGEGPSCZ.js} +2 -2
  66. package/dist/{chunk-XJ7J6WOO.js → chunk-PJUGRJHJ.js} +4 -4
  67. package/dist/{chunk-6SA7FJE4.js → chunk-PLZI6KPM.js} +10 -10
  68. package/dist/{chunk-AJ2PEY7J.js → chunk-PMN3Q7RJ.js} +2 -2
  69. package/dist/chunk-Q4V4XQWV.js +158 -0
  70. package/dist/{chunk-5XCM7UUW.js → chunk-QDFNCATJ.js} +99 -35
  71. package/dist/{chunk-CEHZOPGM.js → chunk-QFQ35BTO.js} +2 -2
  72. package/dist/{chunk-4UDKKGHH.js → chunk-QUJGFNFN.js} +2 -2
  73. package/dist/{chunk-IBC35BTK.js → chunk-R56LASIN.js} +2 -2
  74. package/dist/{chunk-SJEGO2QL.js → chunk-RV26LTUU.js} +4 -4
  75. package/dist/chunk-RV6A2B5S.js +354 -0
  76. package/dist/{chunk-65RTDUZH.js → chunk-S5GRONXL.js} +3 -3
  77. package/dist/{chunk-K6HNAY5V.js → chunk-SCHXJTZL.js} +2 -2
  78. package/dist/{chunk-ALRHIR6I.js → chunk-SGFZZAUO.js} +4 -4
  79. package/dist/{chunk-KV6Y2HE6.js → chunk-SU2VBK4L.js} +4 -4
  80. package/dist/{chunk-D5AVQCDN.js → chunk-T4BRO3Z6.js} +3 -3
  81. package/dist/{chunk-IFK3GIUW.js → chunk-TSA237IM.js} +2 -2
  82. package/dist/{chunk-SQDFK5ZQ.js → chunk-TWCLK2GA.js} +3 -3
  83. package/dist/{chunk-DKEPS5LH.js → chunk-U2HGPLZS.js} +36 -2
  84. package/dist/{chunk-EYN7VFKL.js → chunk-URSQLCTR.js} +3 -3
  85. package/dist/{chunk-BCT5G2VN.js → chunk-UUS2GIJZ.js} +5 -5
  86. package/dist/{chunk-LVHPTBO3.js → chunk-UXOSVCLJ.js} +4 -4
  87. package/dist/{chunk-HBVD67XG.js → chunk-WCUHAQKB.js} +2 -2
  88. package/dist/{chunk-YYX3SU6H.js → chunk-WWN566I7.js} +257 -101
  89. package/dist/{chunk-YM2BSPYW.js → chunk-X2NMFTG3.js} +2 -2
  90. package/dist/{chunk-ZREZOIGS.js → chunk-XCLHOZAM.js} +6 -6
  91. package/dist/{chunk-KQAEKMIX.js → chunk-XDXNDSKO.js} +2 -2
  92. package/dist/{chunk-RTERS6S5.js → chunk-XMVQ5F4M.js} +4 -4
  93. package/dist/{chunk-4FIV4K4Z.js → chunk-YA7D2N2O.js} +7 -7
  94. package/dist/{chunk-B57V3DWN.js → chunk-YB3FW24O.js} +3 -3
  95. package/dist/chunk-YNRDWYZP.js +295 -0
  96. package/dist/{chunk-2WMBWZY2.js → chunk-YZLMKW4T.js} +3 -3
  97. package/dist/{chunk-SGHSY3LU.js → chunk-Z6XJQ6KO.js} +81 -6
  98. package/dist/cli.cjs +153 -144
  99. package/dist/clock.d.ts +10 -0
  100. package/dist/clock.js +235 -0
  101. package/dist/countdown.d.ts +12 -0
  102. package/dist/countdown.js +450 -0
  103. package/dist/dgmo-router-QOMFCOOV.js +84 -0
  104. package/dist/{dimensions-WSIJXT5Q.js → dimensions-P5FSX2QN.js} +5 -5
  105. package/dist/editor.js +39 -1
  106. package/dist/element.js +131 -121
  107. package/dist/element.mjs +11543 -4815
  108. package/dist/{flowchart-parser-IVZN7CQN.js → flowchart-parser-OE4WHLTF.js} +4 -4
  109. package/dist/{flowchart-renderer-GMI2U3DD.js → flowchart-renderer-GPCSMTOR.js} +6 -6
  110. package/dist/highlight.d.ts +17 -1
  111. package/dist/highlight.js +156 -5
  112. package/dist/index.js +50 -45
  113. package/dist/{layout-HQMBPJVS.js → layout-46366KBT.js} +2 -2
  114. package/dist/{layout-D42XE4RE.js → layout-5BG6DFCU.js} +3 -3
  115. package/dist/{layout-K2ZN3Q42.js → layout-T3OZU5QW.js} +4 -4
  116. package/dist/{layout-S3EK4IYO.js → layout-TJIWF7EM.js} +4 -4
  117. package/dist/{layout-GZ2CWONU.js → layout-VYELEAW7.js} +4 -4
  118. package/dist/{layout-4Z5JM7PT.js → layout-WZHNDT2O.js} +4 -4
  119. package/dist/{parser-OBQG655V.js → parser-45DENHFZ.js} +4 -4
  120. package/dist/{parser-MCJWF5G3.js → parser-4AI5ZN5F.js} +3 -3
  121. package/dist/{parser-SMBJO3XN.js → parser-4P36TUVD.js} +4 -4
  122. package/dist/{parser-ZYC3XGNS.js → parser-5AURY4A6.js} +4 -4
  123. package/dist/{parser-WISPH7LW.js → parser-A2BEFMGK.js} +4 -4
  124. package/dist/parser-B5FVS7O6.js +11 -0
  125. package/dist/{parser-KPMN5KKE.js → parser-C2HF2C2E.js} +4 -4
  126. package/dist/parser-CSFUN3CT.js +14 -0
  127. package/dist/{parser-TITK4YW6.js → parser-D3QT6GWN.js} +5 -5
  128. package/dist/{parser-ZKF5K2H2.js → parser-D5637H5H.js} +4 -4
  129. package/dist/{parser-IKZFTLOJ.js → parser-DFFEDKHH.js} +3 -3
  130. package/dist/parser-DOKMZXVZ.js +13 -0
  131. package/dist/parser-FMPCVFRK.js +15 -0
  132. package/dist/{parser-UBGPTIZD.js → parser-HYRTF3DO.js} +3 -3
  133. package/dist/{parser-TNYX5S7E.js → parser-I2UIJKVQ.js} +4 -4
  134. package/dist/{parser-K647FRI4.js → parser-IBWNAPY4.js} +3 -3
  135. package/dist/{parser-JD7OQ2E6.js → parser-KUQWRPIT.js} +4 -4
  136. package/dist/{parser-HVJFTOXL.js → parser-LWKKBNSA.js} +3 -3
  137. package/dist/{parser-4ROBKVUR.js → parser-O4QFCUW7.js} +5 -5
  138. package/dist/{parser-BL7Z72EY.js → parser-PGMQDD4G.js} +4 -4
  139. package/dist/{parser-QJYS7KQQ.js → parser-Q4QKCIWQ.js} +4 -4
  140. package/dist/{parser-UGA23PYK.js → parser-QTOB4KFL.js} +4 -4
  141. package/dist/{parser-DERPY5KC.js → parser-QYYM4QVW.js} +4 -4
  142. package/dist/{parser-GFSOPDB7.js → parser-RZMQP7MM.js} +4 -4
  143. package/dist/parser-RZPVAQVX.js +11 -0
  144. package/dist/parser-SOUJOEYI.js +13 -0
  145. package/dist/{parser-MBJSBTL5.js → parser-UQE5OWZI.js} +5 -5
  146. package/dist/{parser-MRBPXXIV.js → parser-WAV5JRPT.js} +4 -4
  147. package/dist/{parser-4BKIFG2C.js → parser-YLKYBRIT.js} +5 -5
  148. package/dist/{parser-D6ONJQFR.js → parser-YS7TOS2K.js} +3 -3
  149. package/dist/{parser-CLMFZWCC.js → parser-ZSOWUBML.js} +5 -5
  150. package/dist/{parser-XWUDFJ7P.js → parser-ZTBATMLX.js} +4 -4
  151. package/dist/{renderer-LWGJFT3D.js → renderer-35HSIDMZ.js} +5 -5
  152. package/dist/{renderer-BB5PREMY.js → renderer-4ITCHBT7.js} +4 -4
  153. package/dist/{renderer-YHXPN3GF.js → renderer-67NPCBIS.js} +7 -7
  154. package/dist/{renderer-TPIBXNOS.js → renderer-6GHYK7DX.js} +6 -6
  155. package/dist/{renderer-VICQ4WNY.js → renderer-6RNGHC5Z.js} +5 -5
  156. package/dist/renderer-72LGR2YF.js +14 -0
  157. package/dist/{renderer-W5RMOURB.js → renderer-7SWMIFMM.js} +6 -6
  158. package/dist/{renderer-6L3NBEY5.js → renderer-BBCEFILK.js} +6 -6
  159. package/dist/{renderer-VFUVRNLK.js → renderer-BSW7SRIZ.js} +4 -4
  160. package/dist/{renderer-CGW7QPNA.js → renderer-BY533UWU.js} +7 -7
  161. package/dist/{renderer-V3JEMWMM.js → renderer-BZSBPTZJ.js} +6 -6
  162. package/dist/{renderer-DKESNMU5.js → renderer-CXUC4KAD.js} +6 -6
  163. package/dist/{renderer-XEKIRPI6.js → renderer-FZUKFUNZ.js} +5 -5
  164. package/dist/renderer-G2NLGNKF.js +17 -0
  165. package/dist/{renderer-THD6V5TL.js → renderer-GO3FE3RA.js} +9 -7
  166. package/dist/{renderer-ROV756WT.js → renderer-HPGR6USK.js} +5 -5
  167. package/dist/renderer-ICJN2SA2.js +24 -0
  168. package/dist/{renderer-4IUPINAE.js → renderer-INEXO7B6.js} +7 -7
  169. package/dist/{renderer-SQ3JUAI7.js → renderer-KDYCFRBX.js} +6 -6
  170. package/dist/renderer-KY4KQBTF.js +19 -0
  171. package/dist/{renderer-MJDDU27W.js → renderer-LBN65V45.js} +10 -10
  172. package/dist/{renderer-UZF3JROD.js → renderer-MGBWOCXG.js} +8 -8
  173. package/dist/{renderer-MFJ7HY2H.js → renderer-O4JKUGKO.js} +5 -5
  174. package/dist/{renderer-QL5KO6SK.js → renderer-OOGFODWP.js} +7 -7
  175. package/dist/{renderer-A5VFZQQK.js → renderer-Q6ZKPLS6.js} +6 -6
  176. package/dist/{renderer-TYXRHMRI.js → renderer-SZQ326M5.js} +9 -9
  177. package/dist/{renderer-6T3KK4S3.js → renderer-TKG6LS4U.js} +7 -7
  178. package/dist/{renderer-QNHUXCRL.js → renderer-TQMZGDAX.js} +9 -9
  179. package/dist/{renderer-radial-MHO2VDXN.js → renderer-radial-JELMHQ24.js} +6 -6
  180. package/dist/{state-parser-RX3GXOIB.js → state-parser-3REXRK3R.js} +4 -4
  181. package/dist/{state-renderer-AJUKGNWU.js → state-renderer-XYLNRWXR.js} +6 -6
  182. package/docs/ai-integration.md +6 -2
  183. package/docs/language-reference.md +253 -22
  184. package/gallery/fixtures/body.dgmo +17 -0
  185. package/gallery/fixtures/bracket.dgmo +30 -0
  186. package/gallery/fixtures/clock.dgmo +8 -0
  187. package/gallery/fixtures/countdown.dgmo +3 -0
  188. package/gallery/fixtures/goal.dgmo +4 -0
  189. package/package.json +12 -4
  190. package/dist/dgmo-router-ODKPEJ3P.js +0 -79
  191. package/dist/parser-667RGSUW.js +0 -13
  192. package/dist/parser-J3P2D6IP.js +0 -13
@@ -2264,6 +2264,30 @@ interface SketchRenderOptions {
2264
2264
  hideDescriptions?: boolean;
2265
2265
  }
2266
2266
  declare function renderSketch(container: HTMLDivElement, parsed: ParsedSketch, layout: SketchLayout, palette: PaletteColors, isDark: boolean, options?: SketchRenderOptions): void;
2267
+ interface SketchEdgeGeometry {
2268
+ sourceId: string;
2269
+ targetId: string;
2270
+ /** Pure cubic path — parsed as one cubic by label/bounds/hit-test consumers. */
2271
+ d: string;
2272
+ mid: {
2273
+ x: number;
2274
+ y: number;
2275
+ };
2276
+ /** Visible stroke path WITH crossing-hops, when this edge hops another. The
2277
+ * renderer draws this if present; everything else still uses `d`. */
2278
+ dRender?: string;
2279
+ }
2280
+ /**
2281
+ * The full edge-routing pipeline (side assignment + curved paths + group-port
2282
+ * snapping) as a pure function, so the renderer AND the app`s live-drag preview
2283
+ * draw edges with IDENTICAL geometry. `offsets` shifts individual nodes/boxes
2284
+ * by live pixel deltas (a dragged shape and its box children) — pass none for
2285
+ * the committed layout.
2286
+ */
2287
+ declare function sketchEdgeGeometry(layout: SketchLayout, offsets?: ReadonlyMap<string, {
2288
+ dx: number;
2289
+ dy: number;
2290
+ }>): Array<SketchEdgeGeometry | null>;
2267
2291
  /** Export wrapper — the b&l precedent (thin spread). */
2268
2292
  declare function renderSketchForExport(container: HTMLDivElement, parsed: ParsedSketch, layout: SketchLayout, palette: PaletteColors, isDark: boolean, options?: {
2269
2293
  exportDims?: {
@@ -2299,7 +2323,10 @@ declare const SKETCH_GEOMETRY: {
2299
2323
  readonly cellPx: 26;
2300
2324
  /** universal footprint width, in grid cells */
2301
2325
  readonly footprintCellsW: 8;
2302
- /** mandatory gap between footprints, in cells */
2326
+ /**
2327
+ * Legacy — the gap is now a derived half-unit (footprint/2 per axis), not
2328
+ * these cell counts. Kept only so the shape of SKETCH_GEOMETRY is stable.
2329
+ */
2303
2330
  readonly gapCellsX: 4;
2304
2331
  readonly gapCellsY: 4;
2305
2332
  /** box reserved top band, px (spec decision 12) */
@@ -2313,22 +2340,34 @@ declare const SKETCH_GEOMETRY: {
2313
2340
  declare const SKETCH_FOOT_W: number;
2314
2341
  /**
2315
2342
  * Footprint height, px — the ONE universal size (spec §31.2). Every shape is a
2316
- * golden-ratio landscape box: height = width / φ. Uniform: every shape draws to
2317
- * exactly SKETCH_FOOT_W × SKETCH_FOOT_H, keeping the half-slot lattice (and the
2318
- * app's alignment/spacing guides that read these constants) exact. The org-card
2319
- * body (header + rule + ~4 rows) fits within this height.
2343
+ * golden-ratio landscape box: height ≈ width / φ, forced EVEN so half the
2344
+ * height is a whole pixel (the vertical half-unit). 208/φ = 128.6 → 128
2345
+ * (ratio 1.625). Uniform: every shape draws to exactly SKETCH_FOOT_W ×
2346
+ * SKETCH_FOOT_H. The org-card body (header + rule + ~4 rows) fits within it.
2320
2347
  */
2321
2348
  declare const SKETCH_FOOT_H: number;
2322
- /** Horizontal half-slot pitch, px: (footprint + gap) / 2. */
2349
+ /**
2350
+ * Horizontal half-unit pitch, px: HALF a footprint (104). This is the dot grid
2351
+ * AND the snap step — a footprint is 2 of these wide, so its left/right edges
2352
+ * both land on dots.
2353
+ */
2323
2354
  declare const SKETCH_HALF_SLOT_X: number;
2324
- /** Vertical half-slot pitch, px: (footprint + gap) / 2. */
2355
+ /** Vertical half-unit pitch, px: half a footprint (64). */
2325
2356
  declare const SKETCH_HALF_SLOT_Y: number;
2326
2357
  /**
2327
- * Minimum origin separation in half-slots: two shapes collide when BOTH
2328
- * axis deltas are < SKETCH_SEP (at exactly SEP the footprint gap equals the
2329
- * mandatory gap).
2358
+ * Minimum origin separation in half-units. A footprint spans 2 half-units and
2359
+ * the mandatory gap adds 1 more, so each shape claims a SEP×SEP (3×3) collision
2360
+ * block (unitRect in layout.ts); two shapes collide when their blocks overlap.
2361
+ * At exactly SEP apart the gap between footprints == one half-unit.
2330
2362
  */
2331
- declare const SKETCH_SEP = 2;
2363
+ declare const SKETCH_SEP = 3;
2364
+ /**
2365
+ * Full-slot pitch, px: footprint + gap (== SKETCH_SEP half-units). The
2366
+ * origin-to-origin distance between two edge-adjacent shapes. 312 × 192 —
2367
+ * horizontal spacing is unchanged from the old geometry, vertical is tighter.
2368
+ */
2369
+ declare const SKETCH_SLOT_X: number;
2370
+ declare const SKETCH_SLOT_Y: number;
2332
2371
  /** Slot → px (origin of the footprint), before any canvas padding. */
2333
2372
  declare function sketchSlotToPx(c: number, r: number): {
2334
2373
  x: number;
@@ -4691,6 +4730,196 @@ declare function clearEventLineMuted(container: HTMLElement): void;
4691
4730
  declare function focusEventLine(container: HTMLElement, spec: EventLineFocus | null): void;
4692
4731
  declare function renderEventLineForExport(container: HTMLDivElement, parsed: ParsedEventLine, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions, tagOverride?: string): void;
4693
4732
 
4733
+ /** A resolved recurrence rule. Built by the parser, re-read by the ticker. */
4734
+ interface RecurRule {
4735
+ /** How `on` binds to the cadence. */
4736
+ readonly kind: 'month-day' | 'nth-weekday' | 'last-weekday' | 'weekly' | 'interval';
4737
+ /** month-day: 0-11. */
4738
+ readonly month?: number | undefined;
4739
+ /** month-day: 1-31. */
4740
+ readonly day?: number | undefined;
4741
+ /** nth-weekday: 1-5. */
4742
+ readonly nth?: number | undefined;
4743
+ /** nth/last/weekly: 0 (Sun) – 6 (Sat). */
4744
+ readonly weekday?: number | undefined;
4745
+ /** time-of-day hour 0-23 (default 0). */
4746
+ readonly hour: number;
4747
+ /** time-of-day minute 0-59 (default 0). */
4748
+ readonly minute: number;
4749
+ /** No `at` time given → the occurrence is the whole DAY (see resolveNext). */
4750
+ readonly allDay: boolean;
4751
+ /** interval cadence unit. */
4752
+ readonly intervalUnit?: 'day' | 'week' | 'month' | undefined;
4753
+ /** interval multiplier (>= 1). */
4754
+ readonly intervalN?: number | undefined;
4755
+ /** interval anchor epoch ms (from `from <date>`). */
4756
+ readonly anchorMs?: number | undefined;
4757
+ }
4758
+ type CountUnits = 'human' | 'days' | 'full' | 'clock' | 'weeks' | 'words' | 'compound';
4759
+ type RoundMode = 'up' | 'down' | 'nearest';
4760
+ /** Which `full`-mode segments show. */
4761
+ type Field = 'd' | 'h' | 'm' | 's';
4762
+
4763
+ interface ParsedCountdown {
4764
+ readonly type: 'countdown';
4765
+ readonly title: string | null;
4766
+ readonly titleLineNumber: number | null;
4767
+ /**
4768
+ * Canonical one-shot target string emitted verbatim into `data-dgmo-countdown`.
4769
+ * A bare `YYYY-MM-DD` stays a date (ticker resolves it to viewer-local
4770
+ * midnight); a datetime keeps its authored form; `now` resolves to a fixed
4771
+ * render-time instant. Null for recurring blocks.
4772
+ */
4773
+ readonly target: string | null;
4774
+ /**
4775
+ * The one-shot target resolved to absolute epoch ms (bare date → local
4776
+ * midnight; `now` → the render-time instant). Null for recurring blocks or an
4777
+ * unparseable target. For one-shot blocks this equals `resolvedMs`.
4778
+ */
4779
+ readonly targetMs: number | null;
4780
+ /** The recurrence rule, or null for one-shot blocks. */
4781
+ readonly rule: RecurRule | null;
4782
+ /**
4783
+ * The resolved next instant (epoch ms). For one-shot == the target; for
4784
+ * recurring == `resolveNext(rule, renderTime)`. Null when unresolvable.
4785
+ */
4786
+ readonly resolvedMs: number | null;
4787
+ /** Whether the resolved instant carries a meaningful time-of-day (drives footer). */
4788
+ readonly hasTime: boolean;
4789
+ readonly since: number | null;
4790
+ /** Eyebrow template: `Nth` → ordinal word, `N` → the number. Null → "Nth <title>". */
4791
+ readonly sinceLabel: string | null;
4792
+ readonly units: CountUnits;
4793
+ readonly round: RoundMode;
4794
+ readonly fields: readonly Field[];
4795
+ readonly lang: string;
4796
+ /** Text shown on the occurrence day (recurring only). */
4797
+ readonly onDay: string | null;
4798
+ /** Explicit text shown once a one-shot target passes; null → count UP ("N ago"). */
4799
+ readonly expired: string | null;
4800
+ /**
4801
+ * Free-text note under the ancillary line — inline (`note buy flowers`) or a
4802
+ * `note` header + indented body lines. Simple markdown (**bold** / *italic* /
4803
+ * `code` / links / `- ` bullets), like `goal`'s caption.
4804
+ */
4805
+ readonly note: string | null;
4806
+ /**
4807
+ * Suppress the "you-are-here → event" calendar band. The band is **default-on**
4808
+ * for every date-bearing countdown (the renderer auto-picks the tier from the
4809
+ * span to the target — §36.6); `no-visual` collapses the chart to the header.
4810
+ */
4811
+ readonly noVisual: boolean;
4812
+ /**
4813
+ * Resolved trailing-token / `color:` hex, if any. Sets the gradient's HOT
4814
+ * endpoint (the target color); defaults to red when unset.
4815
+ */
4816
+ readonly color?: string;
4817
+ readonly diagnostics: readonly DgmoError[];
4818
+ readonly error: string | null;
4819
+ }
4820
+
4821
+ /**
4822
+ * Resolve a one-shot target string to absolute epoch ms. A bare `YYYY-MM-DD` is
4823
+ * **local** midnight (JS `new Date("2026-08-21")` would be UTC midnight — wrong
4824
+ * for "days until"); a datetime with no offset is local; an offset is honored.
4825
+ */
4826
+ declare function targetToMs(target: string): number | null;
4827
+ declare function parseCountdown(content: string, palette?: PaletteColors): ParsedCountdown;
4828
+
4829
+ declare function renderCountdown(container: HTMLDivElement, parsed: ParsedCountdown, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
4830
+ declare function renderCountdownForExport(container: HTMLDivElement, parsed: ParsedCountdown, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
4831
+
4832
+ /** Run one update pass over every countdown node inside `root`. */
4833
+ declare function tickCountdowns(root?: ParentNode): void;
4834
+ /**
4835
+ * Update `root` immediately, then (once per page) register a single 1s interval
4836
+ * that re-scans the whole document. Idempotent — safe to call on every render /
4837
+ * route change (mirrors remark's `clickHandlerBound` guard). No-op with no DOM.
4838
+ */
4839
+ declare function startCountdowns(root?: ParentNode): void;
4840
+
4841
+ /** Which clock face the whole board renders. EITHER/OR — never both. */
4842
+ type ClockFace = 'analog' | 'digital';
4843
+ /**
4844
+ * What dimension drives each zone's color (`color-by <dimension>`). Time + label
4845
+ * render in the resolved solid color; the lane/column gets a soft wash of it. A
4846
+ * hand-set per-zone shade ("defined") always overrides the dimension for that
4847
+ * zone — `color-by` only fills the zones you did not color yourself.
4848
+ * • `place` — a distinct palette accent per place (identity, default)
4849
+ * • `work` — green in-hours / amber closing / grey off (needs `hours`)
4850
+ * • `daylight` — warm sun-up / cool sun-down
4851
+ * • `time` — continuous dawn→dusk→night ramp by local hour
4852
+ * • `none` — neutral greyscale (`color-by none`)
4853
+ */
4854
+ type ClockColorBy = 'place' | 'work' | 'daylight' | 'time' | 'none';
4855
+ /** A resolved working window, applied in each row's OWN zone-local time. */
4856
+ interface WorkWindow {
4857
+ /** Minutes past midnight the window opens (e.g. 9:00 → 540). */
4858
+ readonly startMin: number;
4859
+ /** Minutes past midnight the window closes (e.g. 17:00 → 1020). */
4860
+ readonly endMin: number;
4861
+ /**
4862
+ * Working days as a set keyed by the 3-letter weekday abbreviation the
4863
+ * `Intl` short weekday emits (`Mon`,`Tue`,…,`Sun`). A day maps to `true` when
4864
+ * it is a working day. Defaults to Mon–Fri when `hours` is given without
4865
+ * `days`.
4866
+ */
4867
+ readonly days: Record<string, boolean>;
4868
+ }
4869
+ /** One place/person row on the board. */
4870
+ interface ClockEntry {
4871
+ /** The place name (before the zone token), e.g. "New York". */
4872
+ readonly place: string;
4873
+ /** The IANA zone token, e.g. "America/New_York". */
4874
+ readonly zone: string;
4875
+ /** The display alias (`as <label>`), defaulting to `place`. */
4876
+ readonly label: string;
4877
+ /** Representative latitude for sundown math, or null when unknown. */
4878
+ readonly lat: number | null;
4879
+ /** Representative longitude for sundown math, or null when unknown. */
4880
+ readonly lon: number | null;
4881
+ /** Resolved trailing palette color (a faint row tint), or null. */
4882
+ readonly color: string | null;
4883
+ /** 1-based source line the entry was authored on. */
4884
+ readonly lineNumber: number;
4885
+ }
4886
+ interface ParsedClock {
4887
+ readonly type: 'clock';
4888
+ readonly title: string | null;
4889
+ readonly titleLineNumber: number | null;
4890
+ /** Board-level face. Default `digital`. */
4891
+ readonly face: ClockFace;
4892
+ /** 12-hour am/pm display when true (default), 24-hour when false (`time-24`). */
4893
+ readonly hours12: boolean;
4894
+ /** Whether the sundown/sunrise line is drawn (default on; `sun false` to hide). */
4895
+ readonly sun: boolean;
4896
+ /** `no-title` directive — suppress the title AND the working-window summary. */
4897
+ readonly noTitle: boolean;
4898
+ /** `direction lr` lays entries out as vertical columns (time on top); default rows. */
4899
+ readonly columns: boolean;
4900
+ /** What drives each zone's color. Default `place`; disable via `color-by none`. */
4901
+ readonly colorBy: ClockColorBy;
4902
+ /** The working window, or null when no `hours` directive was given. */
4903
+ readonly work: WorkWindow | null;
4904
+ readonly entries: readonly ClockEntry[];
4905
+ readonly diagnostics: readonly DgmoError[];
4906
+ readonly error: string | null;
4907
+ }
4908
+
4909
+ declare function parseClock(content: string, palette?: PaletteColors): ParsedClock;
4910
+
4911
+ declare function renderClock(container: HTMLDivElement, parsed: ParsedClock, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
4912
+ declare function renderClockForExport(container: HTMLDivElement, parsed: ParsedClock, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
4913
+
4914
+ /** Run one update pass over every clock row inside `root`. */
4915
+ declare function tickClocks(root?: ParentNode): void;
4916
+ /**
4917
+ * Update `root` immediately, then (once per page) register a single 1s interval
4918
+ * that re-scans the whole document. Idempotent — safe to call on every render /
4919
+ * route change. No-op with no DOM.
4920
+ */
4921
+ declare function startClocks(root?: ParentNode): void;
4922
+
4694
4923
  /** A named part annotation (`chest e: Primary` + bare-body notes). */
4695
4924
  interface BodyPart {
4696
4925
  /** Canonical part name as written (label text). */
@@ -4700,6 +4929,11 @@ interface BodyPart {
4700
4929
  /** Bare indented body lines (markdown-light; `- ` bullets normalized). */
4701
4930
  readonly notes: readonly string[];
4702
4931
  readonly lineNumber: number;
4932
+ /**
4933
+ * Optional anatomical side (patient's own left/right) from a `left `/`right `
4934
+ * prefix, e.g. `right pec`. Aims the leader at just that side's component.
4935
+ */
4936
+ readonly side?: 'left' | 'right';
4703
4937
  }
4704
4938
  type BodyView = 'front' | 'back';
4705
4939
  type BodySex = 'male' | 'female';
@@ -4726,10 +4960,20 @@ interface ParsedBody {
4726
4960
  /** A resolvable catalog entry: its path geometry + a baked leader anchor. */
4727
4961
  interface BodyPartGeometry {
4728
4962
  readonly paths: readonly string[];
4963
+ /** Union centroid — used for gutter side (L/R) + vertical ordering. */
4729
4964
  readonly anchor: {
4730
4965
  readonly x: number;
4731
4966
  readonly y: number;
4732
4967
  };
4968
+ /**
4969
+ * Centroids of each disjoint muscle component (e.g. left + right pec). The
4970
+ * renderer aims a leader at whichever component sits nearest the label, so a
4971
+ * bilateral muscle connects to the side it's labelled on — not the midline.
4972
+ */
4973
+ readonly centers?: ReadonlyArray<{
4974
+ readonly x: number;
4975
+ readonly y: number;
4976
+ }>;
4733
4977
  }
4734
4978
  /** One figure: silhouette + muscle geometry + catalog lookup. */
4735
4979
  interface BodyFigure {
@@ -4761,6 +5005,169 @@ declare function parseBody(content: string, palette?: PaletteColors): ParsedBody
4761
5005
  declare function renderBody(container: HTMLDivElement, parsed: ParsedBody, palette: PaletteColors, _isDark: boolean, _onClickItem?: (lineNumber: number) => void, exportDims?: D3ExportDimensions, tagOverride?: string): void;
4762
5006
  declare function renderBodyForExport(container: HTMLDivElement, parsed: ParsedBody, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions, tagOverride?: string): void;
4763
5007
 
5008
+ /** Render face. `bar` is the default (no mode flag). */
5009
+ type GoalMode = 'bar' | 'thermometer' | 'gauge';
5010
+ interface GoalOptions {
5011
+ /** Hide the `%` label. */
5012
+ readonly noPercent: boolean;
5013
+ /** Hide the raw `now / target` label. */
5014
+ readonly noValue: boolean;
5015
+ /** Full-saturation fill instead of the 25% tint. */
5016
+ readonly solidFill: boolean;
5017
+ /** Hide the banner title. */
5018
+ readonly noTitle: boolean;
5019
+ /** Disable auto traffic-light fill color (fall back to the palette color). */
5020
+ readonly noAutoColor: boolean;
5021
+ /** Suppress the `note` description block even when one is present. */
5022
+ readonly noNote: boolean;
5023
+ }
5024
+ interface ParsedGoal {
5025
+ readonly type: 'goal';
5026
+ readonly title: string | null;
5027
+ readonly titleLineNumber: number | null;
5028
+ /** Optional free-text caption shown under the value (via `note <text>`). */
5029
+ readonly description: string | null;
5030
+ readonly mode: GoalMode;
5031
+ /** Current value (raw; may be negative or exceed target). */
5032
+ readonly now: number;
5033
+ /** Goal value. `0` when missing/invalid — the renderer draws a 0% shell. */
5034
+ readonly target: number;
5035
+ /** False when `target` was missing or ≤ 0 (an error was emitted). */
5036
+ readonly hasTarget: boolean;
5037
+ /** Resolved trailing-token / `color:` hex, if any. */
5038
+ readonly color?: string;
5039
+ readonly options: GoalOptions;
5040
+ readonly diagnostics: readonly DgmoError[];
5041
+ readonly error: string | null;
5042
+ }
5043
+
5044
+ declare function parseGoal(content: string, palette?: PaletteColors): ParsedGoal;
5045
+
5046
+ declare function renderGoal(container: HTMLDivElement, parsed: ParsedGoal, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
5047
+ declare function renderGoalForExport(container: HTMLDivElement, parsed: ParsedGoal, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
5048
+
5049
+ type BracketMode = 'single-elim' | 'double-elim';
5050
+ /** One authored match line. `p1` is left of the keyword (= winner if decided). */
5051
+ interface RawMatch {
5052
+ /** Left operand — the winner for a `beats` line. */
5053
+ readonly p1: string;
5054
+ /** Right operand — the loser for a `beats` line. */
5055
+ readonly p2: string;
5056
+ /** True for `beats` (decided); false for `vs` (pending). */
5057
+ readonly decided: boolean;
5058
+ /** Cosmetic score text (`2-1`), if present. Never changes the winner (§3). */
5059
+ readonly score: string | null;
5060
+ /** Owning side label, or null for an indent-0 championship / single ladder. */
5061
+ readonly side: string | null;
5062
+ /** Home competitor for this match (`@ Name`), or null. */
5063
+ readonly home: string | null;
5064
+ /** Prose commentary lines indented under the match (`- ` → •, inline md). */
5065
+ readonly commentary: readonly string[];
5066
+ readonly lineNumber: number;
5067
+ }
5068
+ /** A `seed N Name` declaration (seeded mode only). */
5069
+ interface RawSeed {
5070
+ readonly seed: number;
5071
+ readonly name: string;
5072
+ readonly side: string | null;
5073
+ readonly lineNumber: number;
5074
+ }
5075
+ interface BracketSide {
5076
+ readonly label: string;
5077
+ /** Resolved trailing-token color for the side, if any. */
5078
+ readonly color?: string;
5079
+ }
5080
+ /** A round/column: its name plus an optional color (tints the label + column). */
5081
+ interface RoundDef {
5082
+ readonly name: string;
5083
+ readonly color?: string;
5084
+ }
5085
+ interface ParsedBracket {
5086
+ readonly type: 'bracket';
5087
+ readonly title: string | null;
5088
+ readonly titleLineNumber: number | null;
5089
+ readonly mode: BracketMode;
5090
+ /** True when any `seed` line was present → full-skeleton (day-0) rendering. */
5091
+ readonly seeded: boolean;
5092
+ /** Column definitions from `rounds` (entry round → inner), each colorable. */
5093
+ readonly roundNames: readonly RoundDef[];
5094
+ readonly sides: readonly BracketSide[];
5095
+ readonly matches: readonly RawMatch[];
5096
+ readonly seeds: readonly RawSeed[];
5097
+ /** Tag groups (block/org idiom) — a competitor's tag colors its box outline. */
5098
+ readonly tagGroups: readonly TagGroup[];
5099
+ /** competitor name → its metadata (`{ tk: 'MLB Ballpark' }`). */
5100
+ readonly competitorMeta: ReadonlyMap<string, Record<string, string>>;
5101
+ /** Resolved active tag group name (drives outline color + legend), or null. */
5102
+ readonly activeTag: string | null;
5103
+ /** Hide the tag legend. */
5104
+ readonly noLegend: boolean;
5105
+ /** Suppress round/column labels (`no-round`). */
5106
+ readonly noRounds: boolean;
5107
+ /** Winner accent color override (`accent <color>`); default blue. */
5108
+ readonly accentColor?: string;
5109
+ readonly diagnostics: readonly DgmoError[];
5110
+ readonly error: string | null;
5111
+ }
5112
+
5113
+ declare function parseBracket(content: string, palette?: PaletteColors): ParsedBracket;
5114
+
5115
+ declare function renderBracket(container: HTMLDivElement, parsed: ParsedBracket, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
5116
+ declare function renderBracketForExport(container: HTMLDivElement, parsed: ParsedBracket, palette: PaletteColors, isDark: boolean, exportDims?: D3ExportDimensions): void;
5117
+
5118
+ interface ConnectorPoint {
5119
+ readonly x: number;
5120
+ /** Origin y. For a decided child this is the winner box; for an undecided
5121
+ * child `yA`/`yB` are its two boxes (renderer draws a `]` merge). */
5122
+ readonly y: number;
5123
+ readonly yA: number;
5124
+ readonly yB: number;
5125
+ }
5126
+ interface LaidMatch {
5127
+ readonly round: number;
5128
+ readonly side: string | null;
5129
+ /** Center x of this match's two boxes. */
5130
+ readonly x: number;
5131
+ /** Center y between the two boxes. */
5132
+ readonly y: number;
5133
+ readonly top: string | null;
5134
+ readonly bot: string | null;
5135
+ readonly winner: 'top' | 'bot' | null;
5136
+ readonly score: string | null;
5137
+ /** Both participants known but undecided (`vs`). */
5138
+ readonly pending: boolean;
5139
+ readonly isChampionship: boolean;
5140
+ /** Origin point of the connector into the top box (child winner), or null. */
5141
+ readonly topFrom: ConnectorPoint | null;
5142
+ readonly botFrom: ConnectorPoint | null;
5143
+ /** Prose commentary lines rendered under the match. */
5144
+ readonly commentary: readonly string[];
5145
+ /** Explicit home competitor (`@ Name`), or null. */
5146
+ readonly home: string | null;
5147
+ readonly lineNumber: number | null;
5148
+ }
5149
+ interface ColumnLabel {
5150
+ readonly x: number;
5151
+ readonly label: string;
5152
+ /** Round color — tints the label and shades the column. */
5153
+ readonly color?: string;
5154
+ }
5155
+ interface BracketLayout {
5156
+ readonly matches: readonly LaidMatch[];
5157
+ readonly columns: readonly ColumnLabel[];
5158
+ readonly sideLabels: readonly {
5159
+ x0: number;
5160
+ x1: number;
5161
+ label: string;
5162
+ color?: string;
5163
+ }[];
5164
+ readonly width: number;
5165
+ readonly height: number;
5166
+ readonly champion: string | null;
5167
+ readonly diagnostics: readonly DgmoError[];
5168
+ }
5169
+ declare function layoutBracket(parsed: ParsedBracket): BracketLayout;
5170
+
4764
5171
  type VCNodeKind = 'commit' | 'merge' | 'cherry';
4765
5172
  type VCCommitType = 'normal' | 'highlight' | 'reverse';
4766
5173
  type VCDirection = 'LR' | 'TB' | 'BT';
@@ -6159,4 +6566,4 @@ declare function parseFirstLine(line: string): {
6159
6566
  title: string | undefined;
6160
6567
  } | null;
6161
6568
 
6162
- export { ALL_CHART_TYPES, ARROW_DIAGNOSTIC_CODES, type Activation, type AncestorInfo, type ArcLink, type ArcNodeGroup, type BLCollapseResult, type BLEdge, type BLGroup, type BLLayoutEdge, type BLLayoutGroup, type BLLayoutNode, type BLLayoutResult, type BLNode, type BlipTrend, type BlockCell, type BlockGrid, type BlockLayoutItem, type BlockLayoutResult, type BlockNode, type BlockOptions, type BodyFigure, type BodyOptions, type BodyPart, type C4ArrowType, type C4DeploymentNode, type C4Element, type C4ElementType, type C4Group, type C4LayoutBoundary, type C4LayoutEdge, type C4LayoutNode, type C4LayoutResult, type C4LegendEntry, type C4LegendGroup, type C4Relationship, type C4Shape, type C4TagEntry, type C4TagGroup, type ChartDataPoint, type ChartEra, type ChartType$1 as ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type CollapsedMindmapResult, type CollapsedOrgResult, type CollapsedSitemapResult, type CollapsedView, CompactViewState, type ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type CreateMapGeoQueryOptions, type CycleEdge, type CycleLayoutEdge, type CycleLayoutNode, type CycleLayoutResult, type CycleNode, type CycleRenderOptions, type D3ExportDimensions, DgmoError, type DiagramSymbols, type Duration, type DurationUnit, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EventLineEra, type EventLineEvent, type EventLineFocus, type EventLineOptions, type ExpandedActivity, type ExtendedChartType, type FamilyChild, type FamilyChildEdge, type FamilyLayoutNode, type FamilyLayoutResult, type FamilyMarriageBar, type FamilyPerson, type FamilySex, type FamilyUnion, type FocusOrgResult, type FocusResult, type FocusTarget, type GanttDependency, type GanttEra, type GanttGroup, type GroupRow as GanttGroupRow, type GanttHolidays, type GanttInteractiveOptions, type LaneHeaderRow as GanttLaneHeaderRow, type GanttMarker, type GanttNode, type GanttOptions, type Row as GanttRow, type GanttTask, type TaskRow as GanttTaskRow, GeoExtent, type GetOrCreateNameResult, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, INFRA_BEHAVIOR_KEYS, INVALID_COLOR_CODE, INVALID_CSS_COLOR_HEX, type ImportSource, type InfraAvailabilityPercentiles, type InfraBehaviorKey, type InfraCbState, type InfraComputeParams, type InfraDiagnostic, type InfraEdge, type InfraGroup, type InfraLatencyPercentiles, type InfraLayoutEdge, type InfraLayoutGroup, type InfraLayoutNode, type InfraLayoutResult, type InfraLegendGroup, type InfraNode, type InfraPlaybackState, type InfraProperty, type InfraRole, type InfraTagGroup, type InlineSpan, type JourneyMapAnnotation, type JourneyMapInteractiveOptions, type JourneyMapLayout, type JourneyMapPersona, type JourneyMapPhase, type JourneyMapStep, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, LEGEND_GEAR_PILL_W, LEGEND_HEIGHT, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutOptions$1 as LayoutOptions, type LayoutResult$1 as LayoutResult, type LegendCallbacks, type LegendConfig, type LegendControl, type LegendGroupData, type LegendHandle, type LegendLayout, type LegendMode, type LegendPalette, type LegendPosition, type LegendState, MapData, type MapExportDimensions, type MapGeoQuery, type MapLayout, type MapLayoutInset, type MapLayoutLeg, MapLayoutLegend, type MapLayoutPoi, type MapLayoutRegion, type MapLayoutStretch, type MemberVisibility, type MindmapLayoutEdge, type MindmapLayoutNode, type MindmapLayoutResult, type MindmapNode, type MonteCarloResult, type NameEntry, type NearestCity, type NodeDetail, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, PaletteColors, PaletteConfig, type ParseInArrowLabelResult, type ParsedBlock, type ParsedBody, type ParsedBoxesAndLines, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedCycle, type ParsedERDiagram, type ParsedEventLine, type ParsedExtendedChart, type ParsedFamily, type ParsedGantt, type ParsedGraph, type ParsedInfra, type ParsedJourneyMap, type ParsedKanban, ParsedMap, type ParsedMindmap, type ParsedOrg, type ParsedPert, type ParsedPyramid, type ParsedRaci, type ParsedRing, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedSketch, type ParsedSwimlane, type ParsedTechRadar, type ParsedTreemap, type ParsedVersionControl, type ParsedVisualization, type ParsedWireframe, type ParticipantType, type PertActivity, type Anchor as PertAnchor, type PertDirection, type PertEdge, type PertGroup, type PertLayoutEdge, type PertLayoutGroup, type PertLayoutNode, type LayoutOverrides as PertLayoutOverrides, type LayoutResult as PertLayoutResult, type PertMilestone, type PertOptions, type PertRenderOptions, type PlacedLabel, type ProjectedCity, type PyramidLayer, type QuadrantPosition, RACI_ERROR_CODES, VARIANTS as RACI_VARIANTS, RACI_WARNING_CODES, RECOGNIZED_COLOR_NAMES, RULE_COUNT, type RaciDragSource, type RaciInteractionHandlers, type RaciMarker, type RaciPhase, type RaciRoleAssignment, type RaciTask, type RaciVariant, type RadialCell, type RadialLayoutResult, type ReadFileFn, type RegionToken, type RelationshipType, type RenderStep, type ResolveImportsResult, type ResolvedActivity, type ResolvedGroup$1 as ResolvedGroup, ResolvedMap, type ResolvedPert, type ResolvedGroup as ResolvedPertGroup, type ResolvedSchedule, type ResolvedTask, type ResultCard, type ResultTokens, type RingLayer, SKETCH_FOOT_H, SKETCH_FOOT_W, SKETCH_GEOMETRY, SKETCH_HALF_SLOT_X, SKETCH_HALF_SLOT_Y, SKETCH_SEP, SKETCH_SHAPE_KINDS, ScaleContext, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, type SimulateOptions, type SitemapContainerBounds, type SitemapDirection, type SitemapEdge, type SitemapLayoutEdge, type SitemapLayoutNode, type SitemapLayoutResult, type SitemapLegendEntry, type SitemapLegendGroup, type SitemapNode, type SketchAt, type SketchBox, type SketchCollapseResult, type SketchEdge, type SketchEdgeHeads, type SketchLayout, type SketchLayoutBox, type SketchLayoutNode, type SketchLayoutOptions, type SketchNode, type SketchOptions, type SketchRenderOptions, type SketchShapeKind, type StateCollapseResult, type SwimEdge, type SwimEvent, type SwimLane, type SwimNode, type SwimPhase, type SwimShape, type LayoutBand as SwimlaneLayoutBand, type SwimlaneLayoutResult, TagEntry, TagGroup, type TechRadarBlip, type TechRadarLayoutPoint, type TechRadarQuadrant, type TechRadarRing, type TreemapCell, type TreemapColorMode, type TreemapLayoutResult, type TreemapNode, type TreemapOptions, type VCBranch, type VCNode, type VCNote, type VCOptions, type VCRef, type VisualizationType, type WireframeElement, type WireframeElementType, type WireframeFormFactor, type WireframeLayout, type WireframeLayoutNode, addDurationToDate, albersSkewFallback, analyzePert, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, atlasPalette, authoredCollapsedIds, blueprintPalette, buildNoteMessageMap, buildRenderSequence, buildSimulationContext, buildTagLaneRowList, calculateSchedule, catppuccinPalette, clearEventLineMuted, collapseBoxesAndLines, collapseMindmapTree, collapseOrgTree, collapseSitemapTree, collapseSketch, collapseStateGroups, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeCycleLayout, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeRadarLayout, computeTimeTicks, contrastText, controlsGroupCapsuleWidth, createMapGeoQuery, displayName, extractSymbols$2 as extractClassSymbols, extractSymbols$1 as extractErSymbols, extractSymbols$3 as extractFlowchartSymbols, extractSymbols as extractInfraSymbols, extractPertSymbols, focusBoxesAndLines, focusEventLine, focusOrgTree, formatDateLabel, getExtendedChartLegendGroups, getLegendReservedHeight, getOrCreateName, getRadarGeometry, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, invalidColorDiagnostic, isArchiveColumn, isInvalidColorToken, isRecognizedColorName, isSequenceBlock, isSequenceNote, isSketchShapeKind, layoutBlock, layoutBoxesAndLines, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutFamily, layoutGraph, layoutInfra, layoutJourneyMap, layoutMap, layoutMindmap, layoutOrg, layoutPert, layoutSitemap, layoutSketch, layoutSwimlane, layoutTreemap, layoutTreemapRadial, layoutWireframe, loadMapData, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeMap, looksLikePert, looksLikeSequence, looksLikeSitemap, looksLikeState, mapBackgroundColor, mapContentAspect, mapExportDimensions, mapNeutralLandColor, measurePertAnalysisBlock, mix, mulberry32, nearestNamedColor, nord, nordPalette, normalizeName, normalizePertSourceForShare, orderArcNodes, parseAndLayoutInfra, parseBlock, parseBody, parseBoxesAndLines, parseC4, parseChart, parseClassDiagram, parseCycle, parseDataRowValues, parseERDiagram, parseEventLine, parseExtendedChart, parseFamily, parseFirstLine, parseFlowchart, parseGantt, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseJourneyMap, parseKanban, parseMap, parseMindmap, parseOrg, parsePert, parsePyramid, parseRaci, parseRing, parseSequenceDgmo, parseSequenceDgmo as parseSequenceDiagram, parseSitemap, parseSketch, parseState, parseSwimlane, parseTechRadar, parseTimelineDate, parseTreemap, parseVersionControl, parseVisualization, parseWireframe, cellAppendMarker as raciCellAppendMarker, cellCycle as raciCellCycle, cellRemove as raciCellRemove, cellReplace as raciCellReplace, relayoutPert, render, renderArcDiagram, renderBlock, renderBlockForExport, renderBody, renderBodyForExport, renderBoxesAndLines, renderBoxesAndLinesForExport, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderCycle, renderCycleForExport, renderERDiagram, renderERDiagramForExport, renderEventLine, renderEventLineForExport, renderFamily, renderFamilyForExport, renderFlowchart, renderFlowchartForExport, renderForExport, renderGantt, renderInfra, renderJourneyMap, renderJourneyMapForExport, renderKanban, renderKanbanForExport, renderLegendD3, renderLegendSvg, renderLegendSvgFromConfig, renderMap, renderMapForExport, renderMindmap, renderMindmapForExport, renderOrg, renderOrgForExport, renderPert, renderPertAnalysisBlock, renderPertForExport, renderPyramid, renderPyramidForExport, renderQuadrant, renderQuadrantFocus, renderQuadrantFocusForExport, renderRaci, renderRaciForExport, renderRing, renderRingForExport, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSketch, renderSketchForExport, renderSlopeChart, renderState, renderStateForExport, renderSwimlaneForExport, renderTechRadar, renderTechRadarForExport, renderTimeline, renderTreemap, renderTreemapForExport, renderTreemapRadial, renderTreemapRadialForExport, renderVenn, renderVersionControl, renderVersionControlForExport, renderWireframe, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveMap, resolveOrgImports, resolveTaskName, rollUpContextRelationships, sampleBetaPert, seriesColors, shade, shapeFill, simulateCanonical, simulateFast, sketchSlotToPx, slatePalette, tidewaterPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra, validateLabelCharacters };
6569
+ export { ALL_CHART_TYPES, ARROW_DIAGNOSTIC_CODES, type Activation, type AncestorInfo, type ArcLink, type ArcNodeGroup, type BLCollapseResult, type BLEdge, type BLGroup, type BLLayoutEdge, type BLLayoutGroup, type BLLayoutNode, type BLLayoutResult, type BLNode, type BlipTrend, type BlockCell, type BlockGrid, type BlockLayoutItem, type BlockLayoutResult, type BlockNode, type BlockOptions, type BodyFigure, type BodyOptions, type BodyPart, type BracketMode, type BracketSide, type C4ArrowType, type C4DeploymentNode, type C4Element, type C4ElementType, type C4Group, type C4LayoutBoundary, type C4LayoutEdge, type C4LayoutNode, type C4LayoutResult, type C4LegendEntry, type C4LegendGroup, type C4Relationship, type C4Shape, type C4TagEntry, type C4TagGroup, type ChartDataPoint, type ChartEra, type ChartType$1 as ChartType, type ClassLayoutEdge, type ClassLayoutNode, type ClassLayoutResult, type ClassMember, type ClassModifier, type ClassNode, type ClassRelationship, type ClockEntry, type ClockFace, type CollapsedMindmapResult, type CollapsedOrgResult, type CollapsedSitemapResult, type CollapsedView, CompactViewState, type ComputedInfraEdge, type ComputedInfraModel, type ComputedInfraNode, type ContextRelationship, type CountUnits, type CreateMapGeoQueryOptions, type CycleEdge, type CycleLayoutEdge, type CycleLayoutNode, type CycleLayoutResult, type CycleNode, type CycleRenderOptions, type D3ExportDimensions, DgmoError, type DiagramSymbols, type Duration, type DurationUnit, type ERCardinality, type ERColumn, type ERConstraint, type ERLayoutEdge, type ERLayoutNode, type ERLayoutResult, type ERRelationship, type ERTable, type ElseIfBranch, type EventLineEra, type EventLineEvent, type EventLineFocus, type EventLineOptions, type ExpandedActivity, type ExtendedChartType, type FamilyChild, type FamilyChildEdge, type FamilyLayoutNode, type FamilyLayoutResult, type FamilyMarriageBar, type FamilyPerson, type FamilySex, type FamilyUnion, type FocusOrgResult, type FocusResult, type FocusTarget, type GanttDependency, type GanttEra, type GanttGroup, type GroupRow as GanttGroupRow, type GanttHolidays, type GanttInteractiveOptions, type LaneHeaderRow as GanttLaneHeaderRow, type GanttMarker, type GanttNode, type GanttOptions, type Row as GanttRow, type GanttTask, type TaskRow as GanttTaskRow, GeoExtent, type GetOrCreateNameResult, type GoalMode, type GoalOptions, type GraphDirection, type GraphEdge, type GraphGroup, type GraphNode, type GraphShape, INFRA_BEHAVIOR_KEYS, INVALID_COLOR_CODE, INVALID_CSS_COLOR_HEX, type ImportSource, type InfraAvailabilityPercentiles, type InfraBehaviorKey, type InfraCbState, type InfraComputeParams, type InfraDiagnostic, type InfraEdge, type InfraGroup, type InfraLatencyPercentiles, type InfraLayoutEdge, type InfraLayoutGroup, type InfraLayoutNode, type InfraLayoutResult, type InfraLegendGroup, type InfraNode, type InfraPlaybackState, type InfraProperty, type InfraRole, type InfraTagGroup, type InlineSpan, type JourneyMapAnnotation, type JourneyMapInteractiveOptions, type JourneyMapLayout, type JourneyMapPersona, type JourneyMapPhase, type JourneyMapStep, type KanbanCard, type KanbanColumn, type KanbanTagEntry, type KanbanTagGroup, LEGEND_GEAR_PILL_W, LEGEND_HEIGHT, type LayoutEdge, type LayoutGroup, type LayoutNode, type LayoutOptions$1 as LayoutOptions, type LayoutResult$1 as LayoutResult, type LegendCallbacks, type LegendConfig, type LegendControl, type LegendGroupData, type LegendHandle, type LegendLayout, type LegendMode, type LegendPalette, type LegendPosition, type LegendState, MapData, type MapExportDimensions, type MapGeoQuery, type MapLayout, type MapLayoutInset, type MapLayoutLeg, MapLayoutLegend, type MapLayoutPoi, type MapLayoutRegion, type MapLayoutStretch, type MemberVisibility, type MindmapLayoutEdge, type MindmapLayoutNode, type MindmapLayoutResult, type MindmapNode, type MonteCarloResult, type NameEntry, type NearestCity, type NodeDetail, type OrgContainerBounds, type OrgLayoutEdge, type OrgLayoutNode, type OrgLayoutResult, type OrgNode, PaletteColors, PaletteConfig, type ParseInArrowLabelResult, type ParsedBlock, type ParsedBody, type ParsedBoxesAndLines, type ParsedBracket, type ParsedC4, type ParsedChart, type ParsedClassDiagram, type ParsedClock, type ParsedCountdown, type ParsedCycle, type ParsedERDiagram, type ParsedEventLine, type ParsedExtendedChart, type ParsedFamily, type ParsedGantt, type ParsedGoal, type ParsedGraph, type ParsedInfra, type ParsedJourneyMap, type ParsedKanban, ParsedMap, type ParsedMindmap, type ParsedOrg, type ParsedPert, type ParsedPyramid, type ParsedRaci, type ParsedRing, type ParsedSequenceDgmo, type ParsedSitemap, type ParsedSketch, type ParsedSwimlane, type ParsedTechRadar, type ParsedTreemap, type ParsedVersionControl, type ParsedVisualization, type ParsedWireframe, type ParticipantType, type PertActivity, type Anchor as PertAnchor, type PertDirection, type PertEdge, type PertGroup, type PertLayoutEdge, type PertLayoutGroup, type PertLayoutNode, type LayoutOverrides as PertLayoutOverrides, type LayoutResult as PertLayoutResult, type PertMilestone, type PertOptions, type PertRenderOptions, type PlacedLabel, type ProjectedCity, type PyramidLayer, type QuadrantPosition, RACI_ERROR_CODES, VARIANTS as RACI_VARIANTS, RACI_WARNING_CODES, RECOGNIZED_COLOR_NAMES, RULE_COUNT, type RaciDragSource, type RaciInteractionHandlers, type RaciMarker, type RaciPhase, type RaciRoleAssignment, type RaciTask, type RaciVariant, type RadialCell, type RadialLayoutResult, type RawMatch, type RawSeed, type ReadFileFn, type RecurRule, type RegionToken, type RelationshipType, type RenderStep, type ResolveImportsResult, type ResolvedActivity, type ResolvedGroup$1 as ResolvedGroup, ResolvedMap, type ResolvedPert, type ResolvedGroup as ResolvedPertGroup, type ResolvedSchedule, type ResolvedTask, type ResultCard, type ResultTokens, type RingLayer, type RoundMode, SKETCH_FOOT_H, SKETCH_FOOT_W, SKETCH_GEOMETRY, SKETCH_HALF_SLOT_X, SKETCH_HALF_SLOT_Y, SKETCH_SEP, SKETCH_SHAPE_KINDS, SKETCH_SLOT_X, SKETCH_SLOT_Y, ScaleContext, type SectionMessageGroup, type SequenceBlock, type SequenceElement, type SequenceGroup, type SequenceMessage, type SequenceNote, type SequenceParticipant, type SequenceRenderOptions, type SequenceSection, type SimulateOptions, type SitemapContainerBounds, type SitemapDirection, type SitemapEdge, type SitemapLayoutEdge, type SitemapLayoutNode, type SitemapLayoutResult, type SitemapLegendEntry, type SitemapLegendGroup, type SitemapNode, type SketchAt, type SketchBox, type SketchCollapseResult, type SketchEdge, type SketchEdgeGeometry, type SketchEdgeHeads, type SketchLayout, type SketchLayoutBox, type SketchLayoutNode, type SketchLayoutOptions, type SketchNode, type SketchOptions, type SketchRenderOptions, type SketchShapeKind, type StateCollapseResult, type SwimEdge, type SwimEvent, type SwimLane, type SwimNode, type SwimPhase, type SwimShape, type LayoutBand as SwimlaneLayoutBand, type SwimlaneLayoutResult, TagEntry, TagGroup, type TechRadarBlip, type TechRadarLayoutPoint, type TechRadarQuadrant, type TechRadarRing, type TreemapCell, type TreemapColorMode, type TreemapLayoutResult, type TreemapNode, type TreemapOptions, type VCBranch, type VCNode, type VCNote, type VCOptions, type VCRef, type VisualizationType, type WireframeElement, type WireframeElementType, type WireframeFormFactor, type WireframeLayout, type WireframeLayoutNode, type WorkWindow, addDurationToDate, albersSkewFallback, analyzePert, applyCollapseProjection, applyGroupOrdering, applyPositionOverrides, atlasPalette, authoredCollapsedIds, blueprintPalette, buildNoteMessageMap, buildRenderSequence, buildSimulationContext, buildTagLaneRowList, calculateSchedule, catppuccinPalette, clearEventLineMuted, collapseBoxesAndLines, collapseMindmapTree, collapseOrgTree, collapseSitemapTree, collapseSketch, collapseStateGroups, collectDiagramRoles, collectTasks, colorNames, computeActivations, computeCardArchive, computeCardMove, computeCycleLayout, computeInfra, computeInfraLegendGroups, computeLegendLayout, computeRadarLayout, computeTimeTicks, contrastText, controlsGroupCapsuleWidth, createMapGeoQuery, displayName, extractSymbols$2 as extractClassSymbols, extractSymbols$1 as extractErSymbols, extractSymbols$3 as extractFlowchartSymbols, extractSymbols as extractInfraSymbols, extractPertSymbols, focusBoxesAndLines, focusEventLine, focusOrgTree, formatDateLabel, getExtendedChartLegendGroups, getLegendReservedHeight, getOrCreateName, getRadarGeometry, getSeriesColors, getSimpleChartLegendGroups, groupMessagesBySection, hexToHSL, hexToHSLString, hslToHex, inferParticipantType, inferRoles, invalidColorDiagnostic, isArchiveColumn, isInvalidColorToken, isRecognizedColorName, isSequenceBlock, isSequenceNote, isSketchShapeKind, layoutBlock, layoutBoxesAndLines, layoutBracket, layoutC4Components, layoutC4Containers, layoutC4Context, layoutC4Deployment, layoutClassDiagram, layoutERDiagram, layoutFamily, layoutGraph, layoutInfra, layoutJourneyMap, layoutMap, layoutMindmap, layoutOrg, layoutPert, layoutSitemap, layoutSketch, layoutSwimlane, layoutTreemap, layoutTreemapRadial, layoutWireframe, loadMapData, looksLikeClassDiagram, looksLikeERDiagram, looksLikeFlowchart, looksLikeMap, looksLikePert, looksLikeSequence, looksLikeSitemap, looksLikeState, mapBackgroundColor, mapContentAspect, mapExportDimensions, mapNeutralLandColor, measurePertAnalysisBlock, mix, mulberry32, nearestNamedColor, nord, nordPalette, normalizeName, normalizePertSourceForShare, orderArcNodes, parseAndLayoutInfra, parseBlock, parseBody, parseBoxesAndLines, parseBracket, parseC4, parseChart, parseClassDiagram, parseClock, parseCountdown, parseCycle, parseDataRowValues, parseERDiagram, parseEventLine, parseExtendedChart, parseFamily, parseFirstLine, parseFlowchart, parseGantt, parseGoal, parseInArrowLabel, parseInfra, parseInlineMarkdown, parseJourneyMap, parseKanban, parseMap, parseMindmap, parseOrg, parsePert, parsePyramid, parseRaci, parseRing, parseSequenceDgmo, parseSequenceDgmo as parseSequenceDiagram, parseSitemap, parseSketch, parseState, parseSwimlane, parseTechRadar, parseTimelineDate, parseTreemap, parseVersionControl, parseVisualization, parseWireframe, cellAppendMarker as raciCellAppendMarker, cellCycle as raciCellCycle, cellRemove as raciCellRemove, cellReplace as raciCellReplace, relayoutPert, render, renderArcDiagram, renderBlock, renderBlockForExport, renderBody, renderBodyForExport, renderBoxesAndLines, renderBoxesAndLinesForExport, renderBracket, renderBracketForExport, renderC4ComponentsForExport, renderC4Containers, renderC4ContainersForExport, renderC4Context, renderC4ContextForExport, renderC4Deployment, renderC4DeploymentForExport, renderClassDiagram, renderClassDiagramForExport, renderClock, renderClockForExport, renderCountdown, renderCountdownForExport, renderCycle, renderCycleForExport, renderERDiagram, renderERDiagramForExport, renderEventLine, renderEventLineForExport, renderFamily, renderFamilyForExport, renderFlowchart, renderFlowchartForExport, renderForExport, renderGantt, renderGoal, renderGoalForExport, renderInfra, renderJourneyMap, renderJourneyMapForExport, renderKanban, renderKanbanForExport, renderLegendD3, renderLegendSvg, renderLegendSvgFromConfig, renderMap, renderMapForExport, renderMindmap, renderMindmapForExport, renderOrg, renderOrgForExport, renderPert, renderPertAnalysisBlock, renderPertForExport, renderPyramid, renderPyramidForExport, renderQuadrant, renderQuadrantFocus, renderQuadrantFocusForExport, renderRaci, renderRaciForExport, renderRing, renderRingForExport, renderSequenceDiagram, renderSitemap, renderSitemapForExport, renderSketch, renderSketchForExport, renderSlopeChart, renderState, renderStateForExport, renderSwimlaneForExport, renderTechRadar, renderTechRadarForExport, renderTimeline, renderTreemap, renderTreemapForExport, renderTreemapRadial, renderTreemapRadialForExport, renderVenn, renderVersionControl, renderVersionControlForExport, renderWireframe, renderWordCloud, resolveColor, resolveColorWithDiagnostic, resolveMap, resolveOrgImports, resolveTaskName, rollUpContextRelationships, sampleBetaPert, seriesColors, shade, shapeFill, simulateCanonical, simulateFast, sketchEdgeGeometry, sketchSlotToPx, slatePalette, startClocks, startCountdowns, targetToMs, tickClocks, tickCountdowns, tidewaterPalette, tint, tokyoNightPalette, truncateBareUrl, validateComputed, validateInfra, validateLabelCharacters };