@diagrammo/dgmo 0.49.0 → 0.50.1

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 (198) 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.js +557 -195
  6. package/dist/auto.js +129 -119
  7. package/dist/auto.mjs +19496 -12761
  8. package/dist/block.js +145 -48
  9. package/dist/{charts-d3-EW3YQTEA.js → charts-d3-LR6D3D7A.js} +5 -5
  10. package/dist/{chunk-5FGDJIJX.js → chunk-2C56LEML.js} +3 -3
  11. package/dist/{chunk-XJ7J6WOO.js → chunk-2KGXHFYK.js} +4 -4
  12. package/dist/{chunk-T7IKPCMI.js → chunk-3LH5CLP4.js} +3 -3
  13. package/dist/{chunk-ZDUQGL3N.js → chunk-3LKM6FMW.js} +2 -2
  14. package/dist/{chunk-4FIV4K4Z.js → chunk-3NODSS6A.js} +7 -7
  15. package/dist/{chunk-4BD7EVPK.js → chunk-3P2DKJCG.js} +2 -2
  16. package/dist/{chunk-TC3YWBFO.js → chunk-3UIKSPFB.js} +35 -9
  17. package/dist/{chunk-SJEGO2QL.js → chunk-3XGZF2QJ.js} +4 -4
  18. package/dist/chunk-3XPUDB7B.js +420 -0
  19. package/dist/{chunk-O5MQPK7E.js → chunk-3Y2DRD7S.js} +3 -3
  20. package/dist/chunk-3YPY3OXD.js +354 -0
  21. package/dist/{chunk-N4J5KGWG.js → chunk-4MJ7M6YL.js} +8 -8
  22. package/dist/{chunk-JFPY3UJ7.js → chunk-4S52SK6G.js} +8 -8
  23. package/dist/{chunk-ALRHIR6I.js → chunk-5GJYGP5Z.js} +4 -4
  24. package/dist/{chunk-SQDFK5ZQ.js → chunk-5OWVC2A6.js} +3 -3
  25. package/dist/{chunk-7VLUGEMJ.js → chunk-66NVRO4K.js} +4 -4
  26. package/dist/{chunk-ZREZOIGS.js → chunk-66RUL3XF.js} +6 -6
  27. package/dist/{chunk-MJCG5K2O.js → chunk-6BFZKBGD.js} +2 -2
  28. package/dist/{chunk-2WMBWZY2.js → chunk-6HJBFVLO.js} +3 -3
  29. package/dist/{chunk-XCC2RENT.js → chunk-6IAA2QQ2.js} +2 -2
  30. package/dist/{chunk-B57V3DWN.js → chunk-7L3R6I3U.js} +3 -3
  31. package/dist/chunk-7PQYTZMA.js +681 -0
  32. package/dist/{chunk-6SA7FJE4.js → chunk-7QKLIMRZ.js} +10 -10
  33. package/dist/{chunk-YTN572Q2.js → chunk-7TV5Y53Y.js} +2 -2
  34. package/dist/{chunk-6CLKNXVP.js → chunk-BBGDM4NQ.js} +457 -78
  35. package/dist/{chunk-3NFJWFNP.js → chunk-BDXC7MDK.js} +1045 -124
  36. package/dist/{chunk-D5AVQCDN.js → chunk-BH3UYK36.js} +3 -3
  37. package/dist/chunk-BTUTZMPT.js +482 -0
  38. package/dist/{chunk-LVHPTBO3.js → chunk-C2CVAM3U.js} +4 -4
  39. package/dist/{chunk-BCT5G2VN.js → chunk-DFTFPYUD.js} +5 -5
  40. package/dist/{chunk-KV6Y2HE6.js → chunk-DSWVNQVS.js} +4 -4
  41. package/dist/{chunk-4YNP6O47.js → chunk-DZXYF2F5.js} +13 -3
  42. package/dist/{chunk-FUCAB3KQ.js → chunk-EAMEADTV.js} +3 -3
  43. package/dist/chunk-FA6K3FWM.js +940 -0
  44. package/dist/{chunk-HBVD67XG.js → chunk-FJUNPCYI.js} +2 -2
  45. package/dist/{chunk-6VE3VLWM.js → chunk-GBE54KY6.js} +6 -5
  46. package/dist/{chunk-YRVLP7UU.js → chunk-GKC3HILQ.js} +4 -4
  47. package/dist/{chunk-ZXL6MB4R.js → chunk-GL5UZ6NY.js} +3 -3
  48. package/dist/{chunk-GB3YZTAM.js → chunk-H73FP42Q.js} +5 -5
  49. package/dist/{chunk-4UDKKGHH.js → chunk-HEVYAHLW.js} +2 -2
  50. package/dist/{chunk-DDTJ5N7Q.js → chunk-HLJVEAOF.js} +6 -6
  51. package/dist/{chunk-CLR4A2N2.js → chunk-HTMN2Z6U.js} +4 -4
  52. package/dist/{chunk-TLKMTQYL.js → chunk-I2WKW7C7.js} +3 -3
  53. package/dist/{chunk-IUK7AGD4.js → chunk-I7F2A35O.js} +2 -2
  54. package/dist/{chunk-IBC35BTK.js → chunk-IUMPEA64.js} +2 -2
  55. package/dist/{chunk-5XCM7UUW.js → chunk-J6K7RP6P.js} +100 -36
  56. package/dist/{chunk-AJ2PEY7J.js → chunk-JJUOHGX2.js} +2 -2
  57. package/dist/{chunk-CEHZOPGM.js → chunk-KFZYNWWO.js} +2 -2
  58. package/dist/{chunk-4NQ3IKUM.js → chunk-KHEYDLMT.js} +5 -5
  59. package/dist/{chunk-YM2BSPYW.js → chunk-LE4MYMLI.js} +2 -2
  60. package/dist/{chunk-PU3AUQPA.js → chunk-M5RXSRO2.js} +2 -2
  61. package/dist/{chunk-XKTN7CZF.js → chunk-MCZ5LBZD.js} +4 -4
  62. package/dist/{chunk-35BBZDFE.js → chunk-NU3XLTGP.js} +4 -4
  63. package/dist/{chunk-BPIJLRYE.js → chunk-NWED7CYO.js} +3 -3
  64. package/dist/{chunk-YYX3SU6H.js → chunk-OMNGQPEZ.js} +257 -101
  65. package/dist/{chunk-BGJV5ATD.js → chunk-ONA5KPV3.js} +2 -2
  66. package/dist/{chunk-ZNQX6QWH.js → chunk-OTAL43EH.js} +6 -2
  67. package/dist/{chunk-F743CM2N.js → chunk-OTQKUHRS.js} +3 -3
  68. package/dist/{chunk-KUBBJ2CD.js → chunk-P7CE7LXL.js} +6 -6
  69. package/dist/{chunk-UVCXZEGU.js → chunk-PFHVU7UA.js} +2 -2
  70. package/dist/{chunk-5ZZLLBFK.js → chunk-PGEGPSCZ.js} +2 -2
  71. package/dist/chunk-Q4V4XQWV.js +158 -0
  72. package/dist/{chunk-IHLSHCPZ.js → chunk-QJP6PG7F.js} +5 -5
  73. package/dist/{chunk-EYN7VFKL.js → chunk-QROYX7TT.js} +3 -3
  74. package/dist/chunk-QXKWYZNR.js +379 -0
  75. package/dist/{chunk-VC3TR4NL.js → chunk-RZ6YKEUJ.js} +3 -3
  76. package/dist/{chunk-K6HNAY5V.js → chunk-SCHXJTZL.js} +2 -2
  77. package/dist/{chunk-7OVSJI2V.js → chunk-SQLNBA64.js} +3 -3
  78. package/dist/{chunk-65RTDUZH.js → chunk-SXRTRMEE.js} +3 -3
  79. package/dist/{chunk-3BIAFYD2.js → chunk-T4VOVZT5.js} +2 -2
  80. package/dist/{chunk-UWDO3O52.js → chunk-TN35C5KM.js} +2 -2
  81. package/dist/{chunk-IFK3GIUW.js → chunk-TSA237IM.js} +2 -2
  82. package/dist/{chunk-DKEPS5LH.js → chunk-U2HGPLZS.js} +36 -2
  83. package/dist/{chunk-4HVNZ7WF.js → chunk-VBYSIOOY.js} +3 -3
  84. package/dist/{chunk-ZTLWVRNS.js → chunk-VDOOQZUD.js} +2 -2
  85. package/dist/{chunk-RTERS6S5.js → chunk-VUJGMJE6.js} +4 -4
  86. package/dist/{chunk-X2CH42BN.js → chunk-VVW3F3MD.js} +7 -7
  87. package/dist/{chunk-RI4NIMFP.js → chunk-VVZRV54S.js} +75 -35
  88. package/dist/{chunk-LG4TWW4U.js → chunk-WW32K72E.js} +8 -8
  89. package/dist/{chunk-NVT6C2VE.js → chunk-X6EZPSW6.js} +4 -4
  90. package/dist/{chunk-KQAEKMIX.js → chunk-XDXNDSKO.js} +2 -2
  91. package/dist/{chunk-FMKTYMP4.js → chunk-XJLKLU4D.js} +3 -3
  92. package/dist/chunk-Y4RNXEAO.js +952 -0
  93. package/dist/{chunk-26RVGM44.js → chunk-YIA4LEX4.js} +15 -7
  94. package/dist/chunk-YNRDWYZP.js +295 -0
  95. package/dist/{chunk-SGHSY3LU.js → chunk-Z6XJQ6KO.js} +81 -6
  96. package/dist/{chunk-SVDWQGX2.js → chunk-ZAD4HV2G.js} +139 -78
  97. package/dist/cli.cjs +153 -144
  98. package/dist/clock.d.ts +10 -0
  99. package/dist/clock.js +235 -0
  100. package/dist/countdown.d.ts +12 -0
  101. package/dist/countdown.js +450 -0
  102. package/dist/dgmo-router-YTU3ENAX.js +84 -0
  103. package/dist/{dimensions-WSIJXT5Q.js → dimensions-OTBKC5M6.js} +5 -5
  104. package/dist/editor.js +39 -1
  105. package/dist/element.js +131 -121
  106. package/dist/element.mjs +19496 -12761
  107. package/dist/{flowchart-parser-IVZN7CQN.js → flowchart-parser-OE4WHLTF.js} +4 -4
  108. package/dist/{flowchart-renderer-GMI2U3DD.js → flowchart-renderer-GPCSMTOR.js} +6 -6
  109. package/dist/highlight.d.ts +17 -1
  110. package/dist/highlight.js +156 -5
  111. package/dist/index.js +50 -45
  112. package/dist/{layout-HQMBPJVS.js → layout-46366KBT.js} +2 -2
  113. package/dist/{layout-D42XE4RE.js → layout-5BG6DFCU.js} +3 -3
  114. package/dist/{layout-K2ZN3Q42.js → layout-7MZ5NF2N.js} +4 -4
  115. package/dist/{layout-4Z5JM7PT.js → layout-FWODLIMP.js} +4 -4
  116. package/dist/{layout-GZ2CWONU.js → layout-J36454XU.js} +4 -4
  117. package/dist/{layout-S3EK4IYO.js → layout-LD6XTLD6.js} +4 -4
  118. package/dist/{parser-CLMFZWCC.js → parser-36HVKU5U.js} +5 -5
  119. package/dist/{parser-MCJWF5G3.js → parser-4AI5ZN5F.js} +3 -3
  120. package/dist/{parser-DERPY5KC.js → parser-4NO6VZ6S.js} +4 -4
  121. package/dist/parser-4WQQQXCG.js +13 -0
  122. package/dist/{parser-4ROBKVUR.js → parser-5OXGPNBF.js} +5 -5
  123. package/dist/{parser-XWUDFJ7P.js → parser-AGVYTQXV.js} +4 -4
  124. package/dist/{parser-TITK4YW6.js → parser-AXKBDGNO.js} +5 -5
  125. package/dist/parser-B5FVS7O6.js +11 -0
  126. package/dist/parser-CSFUN3CT.js +14 -0
  127. package/dist/parser-CVMEDULU.js +15 -0
  128. package/dist/{parser-KPMN5KKE.js → parser-D5VILGN2.js} +4 -4
  129. package/dist/{parser-IKZFTLOJ.js → parser-DFFEDKHH.js} +3 -3
  130. package/dist/{parser-JD7OQ2E6.js → parser-H3XEPFPV.js} +4 -4
  131. package/dist/{parser-UBGPTIZD.js → parser-HYRTF3DO.js} +3 -3
  132. package/dist/{parser-K647FRI4.js → parser-IBWNAPY4.js} +3 -3
  133. package/dist/{parser-4BKIFG2C.js → parser-IJBMRXMC.js} +5 -5
  134. package/dist/{parser-MBJSBTL5.js → parser-JJR52VAT.js} +5 -5
  135. package/dist/{parser-SMBJO3XN.js → parser-K3XXLMUW.js} +4 -4
  136. package/dist/{parser-OBQG655V.js → parser-KCR2WS3V.js} +4 -4
  137. package/dist/{parser-HVJFTOXL.js → parser-LWKKBNSA.js} +3 -3
  138. package/dist/{parser-ZYC3XGNS.js → parser-MPCE5JBG.js} +4 -4
  139. package/dist/{parser-QJYS7KQQ.js → parser-MTOMTWTD.js} +4 -4
  140. package/dist/{parser-GFSOPDB7.js → parser-O4HIUN6G.js} +4 -4
  141. package/dist/{parser-BL7Z72EY.js → parser-PSA4UBSP.js} +4 -4
  142. package/dist/{parser-TNYX5S7E.js → parser-RV4M6AS2.js} +4 -4
  143. package/dist/parser-RZPVAQVX.js +11 -0
  144. package/dist/{parser-UGA23PYK.js → parser-TGQZJ5OT.js} +4 -4
  145. package/dist/parser-TXND652E.js +13 -0
  146. package/dist/{parser-WISPH7LW.js → parser-VKOJM7KS.js} +4 -4
  147. package/dist/{parser-ZKF5K2H2.js → parser-W4PQUGX3.js} +4 -4
  148. package/dist/{parser-MRBPXXIV.js → parser-WAV5JRPT.js} +4 -4
  149. package/dist/{parser-D6ONJQFR.js → parser-YS7TOS2K.js} +3 -3
  150. package/dist/pert.d.ts +8 -0
  151. package/dist/{renderer-VFUVRNLK.js → renderer-2AZ5HJFK.js} +4 -4
  152. package/dist/{renderer-V3JEMWMM.js → renderer-2QPMJ2DA.js} +6 -6
  153. package/dist/renderer-45PSOL3E.js +19 -0
  154. package/dist/{renderer-BB5PREMY.js → renderer-4ITCHBT7.js} +4 -4
  155. package/dist/{renderer-XEKIRPI6.js → renderer-5DSEWF74.js} +5 -5
  156. package/dist/{renderer-QNHUXCRL.js → renderer-6OKF44KS.js} +9 -9
  157. package/dist/renderer-72LGR2YF.js +14 -0
  158. package/dist/{renderer-YHXPN3GF.js → renderer-7SD6MSBS.js} +7 -7
  159. package/dist/renderer-A5VE5BCI.js +24 -0
  160. package/dist/{renderer-A5VFZQQK.js → renderer-AUW2BE6G.js} +6 -6
  161. package/dist/{renderer-LWGJFT3D.js → renderer-B5TBNZJE.js} +5 -5
  162. package/dist/{renderer-4IUPINAE.js → renderer-BSR2O2H6.js} +7 -7
  163. package/dist/{renderer-DKESNMU5.js → renderer-CYB4LK3G.js} +6 -6
  164. package/dist/{renderer-MFJ7HY2H.js → renderer-FF24KZCI.js} +5 -5
  165. package/dist/{renderer-CGW7QPNA.js → renderer-FPE3J5VZ.js} +7 -7
  166. package/dist/{renderer-6T3KK4S3.js → renderer-FYSVXL7M.js} +7 -7
  167. package/dist/{renderer-THD6V5TL.js → renderer-HDCCZURL.js} +9 -7
  168. package/dist/{renderer-TPIBXNOS.js → renderer-JCCHNECZ.js} +6 -6
  169. package/dist/{renderer-QL5KO6SK.js → renderer-KS7YZJE2.js} +7 -7
  170. package/dist/{renderer-SQ3JUAI7.js → renderer-NGXZTRK6.js} +6 -6
  171. package/dist/{renderer-MJDDU27W.js → renderer-ODUUOPVT.js} +10 -10
  172. package/dist/renderer-PJM35LJN.js +17 -0
  173. package/dist/{renderer-TYXRHMRI.js → renderer-PPIHO5FI.js} +9 -9
  174. package/dist/{renderer-W5RMOURB.js → renderer-PSMMZCKH.js} +6 -6
  175. package/dist/{renderer-UZF3JROD.js → renderer-QAOBLRXV.js} +8 -8
  176. package/dist/{renderer-ROV756WT.js → renderer-R2WNIC2C.js} +5 -5
  177. package/dist/{renderer-VICQ4WNY.js → renderer-SBS3YWU5.js} +5 -5
  178. package/dist/{renderer-6L3NBEY5.js → renderer-UYMQQCJK.js} +6 -6
  179. package/dist/{renderer-radial-MHO2VDXN.js → renderer-radial-F7X5F2VU.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/advanced.d.ts +0 -6162
  191. package/dist/auto.d.ts +0 -54
  192. package/dist/block.d.ts +0 -123
  193. package/dist/dgmo-router-ODKPEJ3P.js +0 -79
  194. package/dist/element.d.ts +0 -62
  195. package/dist/index.d.ts +0 -166
  196. package/dist/parser-667RGSUW.js +0 -13
  197. package/dist/parser-J3P2D6IP.js +0 -13
  198. package/dist/themes-1-CuKpeH.d.ts +0 -908
package/dist/advanced.js CHANGED
@@ -1,24 +1,25 @@
1
1
  import {
2
- layoutTreemapRadial,
3
- renderTreemapRadial,
4
- renderTreemapRadialForExport
5
- } from "./chunk-XKTN7CZF.js";
6
- import {
7
- layoutTreemap,
8
- renderTreemap,
9
- renderTreemapForExport
10
- } from "./chunk-7VLUGEMJ.js";
11
- import "./chunk-UVCXZEGU.js";
12
- import {
13
- authoredCollapsedIds,
14
- layoutBlock,
15
- renderBlock,
16
- renderBlockForExport
17
- } from "./chunk-VC3TR4NL.js";
2
+ renderCountdown,
3
+ renderCountdownForExport
4
+ } from "./chunk-Y4RNXEAO.js";
5
+ import {
6
+ formatTime,
7
+ handAngles,
8
+ renderClock,
9
+ renderClockForExport,
10
+ sunLine,
11
+ workStatus,
12
+ zoneParts
13
+ } from "./chunk-7PQYTZMA.js";
14
+ import {
15
+ layoutBracket,
16
+ renderBracket,
17
+ renderBracketForExport
18
+ } from "./chunk-FA6K3FWM.js";
18
19
  import {
19
20
  renderRaci,
20
21
  renderRaciForExport
21
- } from "./chunk-GB3YZTAM.js";
22
+ } from "./chunk-H73FP42Q.js";
22
23
  import {
23
24
  applyCollapseProjection,
24
25
  applyGroupOrdering,
@@ -28,37 +29,11 @@ import {
28
29
  computeActivations,
29
30
  groupMessagesBySection,
30
31
  renderSequenceDiagram
31
- } from "./chunk-SJEGO2QL.js";
32
- import {
33
- renderJourneyMap,
34
- renderJourneyMapForExport
35
- } from "./chunk-XJ7J6WOO.js";
36
- import {
37
- computeCycleLayout,
38
- renderCycle,
39
- renderCycleForExport
40
- } from "./chunk-AJ2PEY7J.js";
41
- import {
42
- resolveMap
43
- } from "./chunk-EOFPYPAU.js";
44
- import {
45
- renderMap,
46
- renderMapForExport
47
- } from "./chunk-T7IKPCMI.js";
32
+ } from "./chunk-3XGZF2QJ.js";
48
33
  import {
49
34
  mapContentAspect,
50
35
  mapExportDimensions
51
- } from "./chunk-UWDO3O52.js";
52
- import {
53
- albersSkewFallback,
54
- layoutMap,
55
- mapBackgroundColor,
56
- mapNeutralLandColor
57
- } from "./chunk-YM2BSPYW.js";
58
- import {
59
- decodeFeatures,
60
- regionAt
61
- } from "./chunk-I5IGB56C.js";
36
+ } from "./chunk-TN35C5KM.js";
62
37
  import {
63
38
  loadMapData
64
39
  } from "./chunk-6MTWIQVO.js";
@@ -71,28 +46,30 @@ import {
71
46
  renderRingForExport
72
47
  } from "./chunk-PZFVK3IH.js";
73
48
  import {
74
- measurePertAnalysisBlock,
75
- renderPert,
76
- renderPertAnalysisBlock,
77
- renderPertForExport
78
- } from "./chunk-X2CH42BN.js";
49
+ layoutTreemapRadial,
50
+ renderTreemapRadial,
51
+ renderTreemapRadialForExport
52
+ } from "./chunk-MCZ5LBZD.js";
79
53
  import {
80
- layoutPert,
81
- relayoutPert
82
- } from "./chunk-F2L5GCQ4.js";
54
+ layoutTreemap,
55
+ renderTreemap,
56
+ renderTreemapForExport
57
+ } from "./chunk-66NVRO4K.js";
83
58
  import {
84
- calculateSchedule,
85
- collectTasks,
86
- resolveTaskName
87
- } from "./chunk-Z72XRXD4.js";
59
+ authoredCollapsedIds,
60
+ layoutBlock,
61
+ renderBlock,
62
+ renderBlockForExport
63
+ } from "./chunk-RZ6YKEUJ.js";
88
64
  import {
89
- buildTagLaneRowList,
90
- renderGantt
91
- } from "./chunk-BPIJLRYE.js";
65
+ renderGoal,
66
+ renderGoalForExport
67
+ } from "./chunk-3YPY3OXD.js";
68
+ import "./chunk-PFHVU7UA.js";
92
69
  import {
93
70
  renderState,
94
71
  renderStateForExport
95
- } from "./chunk-BGJV5ATD.js";
72
+ } from "./chunk-ONA5KPV3.js";
96
73
  import {
97
74
  collapseStateGroups
98
75
  } from "./chunk-SQ7IY53Q.js";
@@ -103,47 +80,55 @@ import {
103
80
  renderQuadrantFocusForExport,
104
81
  renderTechRadar,
105
82
  renderTechRadarForExport
106
- } from "./chunk-3BIAFYD2.js";
83
+ } from "./chunk-T4VOVZT5.js";
84
+ import {
85
+ renderJourneyMap,
86
+ renderJourneyMapForExport
87
+ } from "./chunk-2KGXHFYK.js";
107
88
  import {
108
89
  layoutJourneyMap
109
90
  } from "./chunk-F7BFXWNQ.js";
110
91
  import {
111
- renderC4ComponentsForExport,
112
- renderC4Containers,
113
- renderC4ContainersForExport,
114
- renderC4Context,
115
- renderC4ContextForExport,
116
- renderC4Deployment,
117
- renderC4DeploymentForExport
118
- } from "./chunk-BCT5G2VN.js";
92
+ computeCycleLayout,
93
+ renderCycle,
94
+ renderCycleForExport
95
+ } from "./chunk-JJUOHGX2.js";
119
96
  import {
120
- layoutC4Components,
121
- layoutC4Containers,
122
- layoutC4Context,
123
- layoutC4Deployment,
124
- rollUpContextRelationships
125
- } from "./chunk-CEHZOPGM.js";
97
+ resolveMap
98
+ } from "./chunk-EOFPYPAU.js";
126
99
  import {
127
- renderFlowchart,
128
- renderFlowchartForExport
129
- } from "./chunk-PU3AUQPA.js";
130
- import "./chunk-PDKUANDZ.js";
100
+ renderMap,
101
+ renderMapForExport
102
+ } from "./chunk-3LH5CLP4.js";
131
103
  import {
132
- layoutGraph
133
- } from "./chunk-SCQ5VPUF.js";
104
+ albersSkewFallback,
105
+ layoutMap,
106
+ mapBackgroundColor,
107
+ mapNeutralLandColor
108
+ } from "./chunk-LE4MYMLI.js";
109
+ import {
110
+ decodeFeatures,
111
+ regionAt
112
+ } from "./chunk-I5IGB56C.js";
134
113
  import {
135
114
  collectDiagramRoles,
136
115
  computeInfraLegendGroups,
137
116
  inferRoles,
138
117
  parseAndLayoutInfra,
139
118
  renderInfra
140
- } from "./chunk-ALRHIR6I.js";
119
+ } from "./chunk-5GJYGP5Z.js";
141
120
  import {
142
121
  computeInfra
143
122
  } from "./chunk-A44USUV7.js";
144
123
  import {
145
124
  layoutInfra
146
125
  } from "./chunk-C63UWAKM.js";
126
+ import {
127
+ measurePertAnalysisBlock,
128
+ renderPert,
129
+ renderPertAnalysisBlock,
130
+ renderPertForExport
131
+ } from "./chunk-VVW3F3MD.js";
147
132
  import {
148
133
  analyzePert,
149
134
  buildSimulationContext,
@@ -153,27 +138,25 @@ import {
153
138
  simulateFast
154
139
  } from "./chunk-NX4EQS3U.js";
155
140
  import {
156
- renderSwimlaneForExport
157
- } from "./chunk-4NQ3IKUM.js";
158
- import "./chunk-LP7EC4MI.js";
141
+ layoutPert,
142
+ relayoutPert
143
+ } from "./chunk-F2L5GCQ4.js";
159
144
  import {
160
- layoutFamily
161
- } from "./chunk-IAEC4KLA.js";
145
+ calculateSchedule,
146
+ collectTasks,
147
+ resolveTaskName
148
+ } from "./chunk-Z72XRXD4.js";
162
149
  import {
163
- renderFamily,
164
- renderFamilyForExport
165
- } from "./chunk-SQDFK5ZQ.js";
166
- import "./chunk-IVKC4GID.js";
150
+ buildTagLaneRowList,
151
+ renderGantt
152
+ } from "./chunk-NWED7CYO.js";
167
153
  import {
168
154
  collapseMindmapTree
169
155
  } from "./chunk-UZ7EZW3B.js";
170
156
  import {
171
157
  renderMindmap,
172
158
  renderMindmapForExport
173
- } from "./chunk-N4J5KGWG.js";
174
- import {
175
- layoutMindmap
176
- } from "./chunk-YTN572Q2.js";
159
+ } from "./chunk-4MJ7M6YL.js";
177
160
  import {
178
161
  layoutWireframe
179
162
  } from "./chunk-6IUAK7RZ.js";
@@ -181,31 +164,33 @@ import {
181
164
  renderWireframe
182
165
  } from "./chunk-PH5X4GIP.js";
183
166
  import {
184
- renderERDiagram,
185
- renderERDiagramForExport
186
- } from "./chunk-4FIV4K4Z.js";
167
+ renderC4ComponentsForExport,
168
+ renderC4Containers,
169
+ renderC4ContainersForExport,
170
+ renderC4Context,
171
+ renderC4ContextForExport,
172
+ renderC4Deployment,
173
+ renderC4DeploymentForExport
174
+ } from "./chunk-DFTFPYUD.js";
187
175
  import {
188
- layoutERDiagram
189
- } from "./chunk-4XK3FLFB.js";
176
+ layoutC4Components,
177
+ layoutC4Containers,
178
+ layoutC4Context,
179
+ layoutC4Deployment,
180
+ rollUpContextRelationships
181
+ } from "./chunk-KFZYNWWO.js";
190
182
  import {
191
- SKETCH_FOOT_H,
192
- SKETCH_FOOT_W,
193
- SKETCH_GEOMETRY,
194
- SKETCH_HALF_SLOT_X,
195
- SKETCH_HALF_SLOT_Y,
196
- SKETCH_SEP,
197
- collapseSketch,
198
- layoutSketch,
199
- sketchSlotToPx
200
- } from "./chunk-SGHSY3LU.js";
183
+ renderFlowchart,
184
+ renderFlowchartForExport
185
+ } from "./chunk-M5RXSRO2.js";
186
+ import "./chunk-PDKUANDZ.js";
201
187
  import {
202
- renderSketch,
203
- renderSketchForExport
204
- } from "./chunk-6CLKNXVP.js";
188
+ layoutGraph
189
+ } from "./chunk-SCQ5VPUF.js";
205
190
  import {
206
191
  renderBoxesAndLines,
207
192
  renderBoxesAndLinesForExport
208
- } from "./chunk-DDTJ5N7Q.js";
193
+ } from "./chunk-HLJVEAOF.js";
209
194
  import {
210
195
  layoutSwimlane
211
196
  } from "./chunk-CLD2OKV7.js";
@@ -214,68 +199,108 @@ import {
214
199
  layoutBoxesAndLines
215
200
  } from "./chunk-TWQUYVP3.js";
216
201
  import {
217
- collapseOrgTree,
218
- focusOrgTree
219
- } from "./chunk-UJ4FJLBF.js";
202
+ renderSwimlaneForExport
203
+ } from "./chunk-KHEYDLMT.js";
204
+ import "./chunk-LP7EC4MI.js";
220
205
  import {
221
- renderOrg,
222
- renderOrgForExport
223
- } from "./chunk-IHLSHCPZ.js";
206
+ layoutFamily
207
+ } from "./chunk-IAEC4KLA.js";
224
208
  import {
225
- layoutSitemap
226
- } from "./chunk-ZTLWVRNS.js";
209
+ renderFamily,
210
+ renderFamilyForExport
211
+ } from "./chunk-5OWVC2A6.js";
212
+ import "./chunk-IVKC4GID.js";
227
213
  import {
228
- collapseSitemapTree
229
- } from "./chunk-UNCCZ3NU.js";
230
- import "./chunk-BS7SV7C3.js";
214
+ layoutMindmap
215
+ } from "./chunk-7TV5Y53Y.js";
231
216
  import {
232
217
  renderSitemap,
233
218
  renderSitemapForExport
234
- } from "./chunk-LG4TWW4U.js";
219
+ } from "./chunk-WW32K72E.js";
235
220
  import {
236
221
  computeCardArchive,
237
222
  computeCardMove,
238
223
  isArchiveColumn,
239
224
  renderKanban,
240
225
  renderKanbanForExport
241
- } from "./chunk-NVT6C2VE.js";
226
+ } from "./chunk-X6EZPSW6.js";
242
227
  import {
243
228
  renderClassDiagram,
244
229
  renderClassDiagramForExport
245
- } from "./chunk-KUBBJ2CD.js";
246
- import "./chunk-JEUJOX5X.js";
247
- import "./chunk-JTSMEYIZ.js";
230
+ } from "./chunk-P7CE7LXL.js";
248
231
  import {
249
232
  layoutClassDiagram
250
233
  } from "./chunk-CMCR5WBW.js";
234
+ import {
235
+ renderERDiagram,
236
+ renderERDiagramForExport
237
+ } from "./chunk-3NODSS6A.js";
238
+ import "./chunk-JEUJOX5X.js";
239
+ import {
240
+ layoutERDiagram
241
+ } from "./chunk-4XK3FLFB.js";
251
242
  import "./chunk-O7WP4ZD4.js";
252
243
  import "./chunk-6EK55ART.js";
253
244
  import "./chunk-BCYVE3N5.js";
254
245
  import "./chunk-5DH3KYFH.js";
246
+ import {
247
+ SKETCH_FOOT_H,
248
+ SKETCH_FOOT_W,
249
+ SKETCH_GEOMETRY,
250
+ SKETCH_HALF_SLOT_X,
251
+ SKETCH_HALF_SLOT_Y,
252
+ SKETCH_SEP,
253
+ SKETCH_SLOT_X,
254
+ SKETCH_SLOT_Y,
255
+ collapseSketch,
256
+ layoutSketch,
257
+ sketchSlotToPx
258
+ } from "./chunk-Z6XJQ6KO.js";
259
+ import {
260
+ renderSketch,
261
+ renderSketchForExport,
262
+ sketchEdgeGeometry
263
+ } from "./chunk-BBGDM4NQ.js";
255
264
  import {
256
265
  clearEventLineMuted,
257
266
  focusEventLine,
258
267
  renderEventLine,
259
268
  renderEventLineForExport
260
- } from "./chunk-6SA7FJE4.js";
261
- import "./chunk-AHGF2YYA.js";
269
+ } from "./chunk-7QKLIMRZ.js";
262
270
  import {
263
271
  parseInlineMarkdown,
264
272
  truncateBareUrl
265
273
  } from "./chunk-3HDBAXF5.js";
266
- import "./chunk-3CIOJ5YJ.js";
267
274
  import "./chunk-BMR4CIEO.js";
268
275
  import {
269
276
  renderBody,
270
277
  renderBodyForExport
271
- } from "./chunk-5XCM7UUW.js";
278
+ } from "./chunk-J6K7RP6P.js";
272
279
  import {
273
280
  renderVersionControl,
274
281
  renderVersionControlForExport
275
282
  } from "./chunk-QYTPPDAO.js";
283
+ import {
284
+ collapseOrgTree,
285
+ focusOrgTree
286
+ } from "./chunk-UJ4FJLBF.js";
287
+ import {
288
+ renderOrg,
289
+ renderOrgForExport
290
+ } from "./chunk-QJP6PG7F.js";
291
+ import "./chunk-JTSMEYIZ.js";
292
+ import "./chunk-AHGF2YYA.js";
293
+ import "./chunk-3CIOJ5YJ.js";
276
294
  import {
277
295
  layoutOrg
278
- } from "./chunk-IBC35BTK.js";
296
+ } from "./chunk-IUMPEA64.js";
297
+ import {
298
+ layoutSitemap
299
+ } from "./chunk-VDOOQZUD.js";
300
+ import {
301
+ collapseSitemapTree
302
+ } from "./chunk-UNCCZ3NU.js";
303
+ import "./chunk-BS7SV7C3.js";
279
304
  import {
280
305
  completeMapPlaces,
281
306
  completeMapRegions,
@@ -296,7 +321,20 @@ import {
296
321
  renderSlopeChart,
297
322
  renderVenn,
298
323
  renderWordCloud
299
- } from "./chunk-SVDWQGX2.js";
324
+ } from "./chunk-ZAD4HV2G.js";
325
+ import {
326
+ formatDateLabel,
327
+ renderTimeline
328
+ } from "./chunk-66RUL3XF.js";
329
+ import {
330
+ computeTimeTicks
331
+ } from "./chunk-YRYKTYMQ.js";
332
+ import {
333
+ ScaleContext
334
+ } from "./chunk-YYVTBZZC.js";
335
+ import {
336
+ renderLegendD3
337
+ } from "./chunk-HEVYAHLW.js";
300
338
  import {
301
339
  CHART_TYPE_DESCRIPTIONS,
302
340
  chartTypeParsers,
@@ -308,44 +346,48 @@ import {
308
346
  parseDgmo,
309
347
  parseDgmoChartType,
310
348
  parseVisualization
311
- } from "./chunk-RI4NIMFP.js";
349
+ } from "./chunk-VVZRV54S.js";
350
+ import {
351
+ parseGoal
352
+ } from "./chunk-Q4V4XQWV.js";
353
+ import {
354
+ parseCountdown,
355
+ targetToMs
356
+ } from "./chunk-BTUTZMPT.js";
357
+ import {
358
+ DAY_MS,
359
+ applyOrdinalTemplate,
360
+ formatCompound,
361
+ formatCount,
362
+ formatFooter,
363
+ formatHuman,
364
+ formatWordsDetail,
365
+ ordinalFor,
366
+ resolveNext
367
+ } from "./chunk-YNRDWYZP.js";
368
+ import {
369
+ parseClock
370
+ } from "./chunk-3XPUDB7B.js";
371
+ import {
372
+ parseBracket
373
+ } from "./chunk-QXKWYZNR.js";
312
374
  import {
313
375
  RACI_ERROR_CODES,
314
376
  RACI_WARNING_CODES,
315
377
  VARIANTS,
316
378
  allTasks,
317
379
  parseRaci
318
- } from "./chunk-5ZZLLBFK.js";
380
+ } from "./chunk-PGEGPSCZ.js";
319
381
  import {
320
382
  parseBody
321
- } from "./chunk-TC3YWBFO.js";
383
+ } from "./chunk-3UIKSPFB.js";
384
+ import "./chunk-BDXC7MDK.js";
322
385
  import {
323
386
  renderLegendSvg,
324
387
  renderLegendSvgFromConfig
325
- } from "./chunk-JFPY3UJ7.js";
388
+ } from "./chunk-4S52SK6G.js";
326
389
  import "./chunk-HGN652MU.js";
327
- import {
328
- getExtendedChartLegendGroups,
329
- getSimpleChartLegendGroups,
330
- parseChart,
331
- parseDataRowValues,
332
- parseExtendedChart
333
- } from "./chunk-KQAEKMIX.js";
334
- import {
335
- formatDateLabel,
336
- renderTimeline
337
- } from "./chunk-ZREZOIGS.js";
338
- import {
339
- computeTimeTicks
340
- } from "./chunk-YRYKTYMQ.js";
341
- import {
342
- ScaleContext
343
- } from "./chunk-YYVTBZZC.js";
344
390
  import "./chunk-U6EQI3U6.js";
345
- import "./chunk-3NFJWFNP.js";
346
- import {
347
- renderLegendD3
348
- } from "./chunk-4UDKKGHH.js";
349
391
  import {
350
392
  computeLegendLayout,
351
393
  controlsGroupCapsuleWidth,
@@ -358,100 +400,107 @@ import {
358
400
  LEGEND_HEIGHT
359
401
  } from "./chunk-HQCHYB5F.js";
360
402
  import "./chunk-5LWQH6QV.js";
403
+ import {
404
+ getExtendedChartLegendGroups,
405
+ getSimpleChartLegendGroups,
406
+ parseChart,
407
+ parseDataRowValues,
408
+ parseExtendedChart
409
+ } from "./chunk-XDXNDSKO.js";
361
410
  import {
362
411
  parseWireframe
363
- } from "./chunk-TLKMTQYL.js";
412
+ } from "./chunk-I2WKW7C7.js";
364
413
  import {
365
414
  parseTechRadar
366
- } from "./chunk-IFK3GIUW.js";
415
+ } from "./chunk-TSA237IM.js";
367
416
  import {
368
417
  parseCycle
369
- } from "./chunk-XCC2RENT.js";
418
+ } from "./chunk-6IAA2QQ2.js";
370
419
  import {
371
420
  parseJourneyMap
372
- } from "./chunk-2WMBWZY2.js";
421
+ } from "./chunk-6HJBFVLO.js";
373
422
  import {
374
423
  parsePyramid
375
- } from "./chunk-4BD7EVPK.js";
424
+ } from "./chunk-3P2DKJCG.js";
376
425
  import {
377
426
  parseRing
378
- } from "./chunk-ZDUQGL3N.js";
427
+ } from "./chunk-3LKM6FMW.js";
379
428
  import {
380
429
  parseTreemap
381
- } from "./chunk-FMKTYMP4.js";
430
+ } from "./chunk-XJLKLU4D.js";
382
431
  import {
383
432
  parseBlock
384
- } from "./chunk-B57V3DWN.js";
433
+ } from "./chunk-7L3R6I3U.js";
385
434
  import "./chunk-NNAAJVBU.js";
386
435
  import {
387
436
  INFRA_BEHAVIOR_KEYS,
388
437
  extractSymbols as extractSymbols4,
389
438
  parseInfra
390
- } from "./chunk-RTERS6S5.js";
439
+ } from "./chunk-VUJGMJE6.js";
391
440
  import {
392
441
  parseGantt
393
- } from "./chunk-LVHPTBO3.js";
442
+ } from "./chunk-C2CVAM3U.js";
394
443
  import {
395
444
  looksLikeMap,
396
445
  parseMap
397
- } from "./chunk-YRVLP7UU.js";
398
- import "./chunk-DKEPS5LH.js";
446
+ } from "./chunk-GKC3HILQ.js";
447
+ import "./chunk-U2HGPLZS.js";
399
448
  import {
400
449
  parseBoxesAndLines
401
- } from "./chunk-KV6Y2HE6.js";
450
+ } from "./chunk-DSWVNQVS.js";
402
451
  import {
403
452
  SKETCH_SHAPE_KINDS,
404
453
  isSketchShapeKind,
405
454
  parseSketch
406
- } from "./chunk-4YNP6O47.js";
455
+ } from "./chunk-DZXYF2F5.js";
407
456
  import "./chunk-XHVV4NVW.js";
408
457
  import {
409
458
  parseSwimlane
410
- } from "./chunk-YYX3SU6H.js";
459
+ } from "./chunk-OMNGQPEZ.js";
411
460
  import {
412
461
  parseFamily
413
- } from "./chunk-4HVNZ7WF.js";
462
+ } from "./chunk-VBYSIOOY.js";
414
463
  import "./chunk-QQJUTGQH.js";
415
464
  import {
416
465
  parseMindmap
417
- } from "./chunk-65RTDUZH.js";
466
+ } from "./chunk-SXRTRMEE.js";
418
467
  import {
419
468
  extractSymbols as extractSymbols3,
420
469
  looksLikeERDiagram,
421
470
  parseERDiagram
422
- } from "./chunk-35BBZDFE.js";
471
+ } from "./chunk-NU3XLTGP.js";
423
472
  import {
424
473
  parseOrg
425
- } from "./chunk-F743CM2N.js";
474
+ } from "./chunk-OTQKUHRS.js";
426
475
  import {
427
476
  looksLikeSitemap,
428
477
  parseSitemap
429
- } from "./chunk-7OVSJI2V.js";
478
+ } from "./chunk-SQLNBA64.js";
430
479
  import {
431
480
  extractPertSymbols,
432
481
  looksLikePert,
433
482
  parsePert
434
- } from "./chunk-FUCAB3KQ.js";
483
+ } from "./chunk-EAMEADTV.js";
435
484
  import {
436
485
  formatLocalISODate
437
486
  } from "./chunk-L3UHP6TD.js";
438
487
  import "./chunk-USZW2HHU.js";
439
488
  import {
440
489
  parseEventLine
441
- } from "./chunk-CLR4A2N2.js";
490
+ } from "./chunk-HTMN2Z6U.js";
442
491
  import {
443
492
  addDurationToDate,
444
493
  parseTimelineDate
445
- } from "./chunk-IUK7AGD4.js";
494
+ } from "./chunk-I7F2A35O.js";
446
495
  import {
447
496
  parseVersionControl
448
- } from "./chunk-MJCG5K2O.js";
497
+ } from "./chunk-6BFZKBGD.js";
449
498
  import {
450
499
  parseKanban
451
- } from "./chunk-O5MQPK7E.js";
500
+ } from "./chunk-3Y2DRD7S.js";
452
501
  import {
453
502
  parseC4
454
- } from "./chunk-EYN7VFKL.js";
503
+ } from "./chunk-QROYX7TT.js";
455
504
  import "./chunk-IYULMRBE.js";
456
505
  import {
457
506
  atlasPalette,
@@ -483,7 +532,7 @@ import {
483
532
  isSequenceNote,
484
533
  looksLikeSequence,
485
534
  parseSequenceDgmo
486
- } from "./chunk-D5AVQCDN.js";
535
+ } from "./chunk-BH3UYK36.js";
487
536
  import {
488
537
  RULE_COUNT,
489
538
  inferParticipantType
@@ -493,24 +542,24 @@ import {
493
542
  isTagBlockHeading,
494
543
  matchTagBlockHeading,
495
544
  tagAttrKey
496
- } from "./chunk-HBVD67XG.js";
545
+ } from "./chunk-FJUNPCYI.js";
497
546
  import {
498
547
  extractSymbols,
499
548
  looksLikeFlowchart,
500
549
  parseFlowchart
501
- } from "./chunk-6VE3VLWM.js";
550
+ } from "./chunk-GBE54KY6.js";
502
551
  import "./chunk-I46X5VUA.js";
503
552
  import {
504
553
  looksLikeState,
505
554
  parseState
506
- } from "./chunk-5FGDJIJX.js";
555
+ } from "./chunk-2C56LEML.js";
507
556
  import "./chunk-NXMESY4J.js";
508
557
  import {
509
558
  extractSymbols as extractSymbols2,
510
559
  looksLikeClassDiagram,
511
560
  parseClassDiagram
512
- } from "./chunk-ZXL6MB4R.js";
513
- import "./chunk-K6HNAY5V.js";
561
+ } from "./chunk-GL5UZ6NY.js";
562
+ import "./chunk-SCHXJTZL.js";
514
563
  import "./chunk-FMDSF3OV.js";
515
564
  import {
516
565
  ARROW_DIAGNOSTIC_CODES,
@@ -526,7 +575,7 @@ import {
526
575
  ALL_CHART_TYPES,
527
576
  measureIndent,
528
577
  parseFirstLine
529
- } from "./chunk-ZNQX6QWH.js";
578
+ } from "./chunk-OTAL43EH.js";
530
579
  import {
531
580
  INVALID_COLOR_CODE,
532
581
  INVALID_CSS_COLOR_HEX,
@@ -917,6 +966,298 @@ function normalizePertSourceForShare(dsl) {
917
966
  return out.join("\n");
918
967
  }
919
968
 
969
+ // src/countdown/ticker.ts
970
+ var DATE_ONLY_RE = /^\d{4}-\d{2}-\d{2}$/;
971
+ function dayStartLocal(ms) {
972
+ const d = new Date(ms);
973
+ return new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();
974
+ }
975
+ function dayDeltaLocal(aMs, bMs) {
976
+ const a = new Date(aMs);
977
+ const b = new Date(bMs);
978
+ const a0 = new Date(a.getFullYear(), a.getMonth(), a.getDate()).getTime();
979
+ const b0 = new Date(b.getFullYear(), b.getMonth(), b.getDate()).getTime();
980
+ return Math.round((b0 - a0) / DAY_MS);
981
+ }
982
+ function pad2(n) {
983
+ return n < 10 ? "0" + n : String(n);
984
+ }
985
+ function polar(cx, cy, r, deg) {
986
+ const a = (deg - 90) * Math.PI / 180;
987
+ return [cx + r * Math.cos(a), cy + r * Math.sin(a)];
988
+ }
989
+ function arcPath(cx, cy, r, frac) {
990
+ frac = Math.max(0, Math.min(0.9999, frac));
991
+ const [x0, y0] = polar(cx, cy, r, 0);
992
+ const [x1, y1] = polar(cx, cy, r, frac * 360);
993
+ return `M ${x0} ${y0} A ${r} ${r} 0 ${frac > 0.5 ? 1 : 0} 1 ${x1} ${y1}`;
994
+ }
995
+ function updateGauges(svg, remaining) {
996
+ const rem = Math.abs(remaining);
997
+ const vals = {
998
+ h: Math.floor(rem / 36e5),
999
+ m: Math.floor(rem % 36e5 / 6e4),
1000
+ s: Math.floor(rem % 6e4 / 1e3)
1001
+ };
1002
+ const fracs = {
1003
+ h: vals["h"] % 24 / 24,
1004
+ m: vals["m"] / 60,
1005
+ s: vals["s"] / 60
1006
+ };
1007
+ svg.querySelectorAll("[data-dgmo-gauge-val]").forEach((el) => {
1008
+ const k = el.getAttribute("data-dgmo-gauge-val");
1009
+ const v = pad2(vals[k] ?? 0);
1010
+ if (el.textContent !== v) el.textContent = v;
1011
+ });
1012
+ svg.querySelectorAll("[data-dgmo-gauge-arc]").forEach((el) => {
1013
+ const k = el.getAttribute("data-dgmo-gauge-arc");
1014
+ const cx = Number(el.getAttribute("data-cx"));
1015
+ const cy = Number(el.getAttribute("data-cy"));
1016
+ const r = Number(el.getAttribute("data-r"));
1017
+ const f = fracs[k] ?? 0;
1018
+ el.setAttribute("d", f > 1e-3 ? arcPath(cx, cy, r, f) : "");
1019
+ });
1020
+ const cap = svg.querySelector("[data-dgmo-gauge-caption]");
1021
+ if (cap) {
1022
+ const t = remaining >= 0 ? "TO GO" : "AGO";
1023
+ if (cap.textContent !== t) cap.textContent = t;
1024
+ }
1025
+ }
1026
+ function targetToMs2(target) {
1027
+ const s = target.trim();
1028
+ if (DATE_ONLY_RE.test(s)) {
1029
+ const p = s.split("-").map(Number);
1030
+ return new Date(p[0], p[1] - 1, p[2]).getTime();
1031
+ }
1032
+ const t = new Date(s).getTime();
1033
+ return Number.isFinite(t) ? t : null;
1034
+ }
1035
+ function readRule(node) {
1036
+ const kind = node.getAttribute("data-dgmo-recur-kind");
1037
+ if (!kind) return null;
1038
+ const num = (name) => {
1039
+ const v = node.getAttribute(name);
1040
+ return v === null ? void 0 : Number(v);
1041
+ };
1042
+ return {
1043
+ kind,
1044
+ month: num("data-dgmo-recur-month"),
1045
+ day: num("data-dgmo-recur-day"),
1046
+ nth: num("data-dgmo-recur-nth"),
1047
+ weekday: num("data-dgmo-recur-weekday"),
1048
+ hour: num("data-dgmo-recur-hour") ?? 0,
1049
+ minute: num("data-dgmo-recur-minute") ?? 0,
1050
+ allDay: node.getAttribute("data-dgmo-recur-allday") !== "0",
1051
+ intervalN: num("data-dgmo-recur-interval-n"),
1052
+ intervalUnit: node.getAttribute("data-dgmo-recur-interval-unit") ?? void 0,
1053
+ anchorMs: num("data-dgmo-recur-anchor")
1054
+ };
1055
+ }
1056
+ function sameLocalDay(a, b) {
1057
+ const x = new Date(a);
1058
+ const y = new Date(b);
1059
+ return x.getFullYear() === y.getFullYear() && x.getMonth() === y.getMonth() && x.getDate() === y.getDate();
1060
+ }
1061
+ function readFields(node) {
1062
+ const raw = node.getAttribute("data-dgmo-countdown-fields");
1063
+ if (!raw) return ["d", "h", "m", "s"];
1064
+ return raw.split(",").filter((f) => ["d", "h", "m", "s"].includes(f));
1065
+ }
1066
+ function updateNode(node, now) {
1067
+ const rule = readRule(node);
1068
+ const units = node.getAttribute("data-dgmo-countdown-units") || "days";
1069
+ const round = node.getAttribute("data-dgmo-countdown-round") || "up";
1070
+ const fields = readFields(node);
1071
+ const onDay = node.getAttribute("data-dgmo-countdown-onday");
1072
+ const title = node.getAttribute("data-dgmo-countdown-title");
1073
+ let resolvedMs;
1074
+ let expiredNow = false;
1075
+ if (rule) {
1076
+ resolvedMs = resolveNext(rule, now);
1077
+ } else {
1078
+ const target = node.getAttribute("data-dgmo-countdown");
1079
+ resolvedMs = target ? targetToMs2(target) : null;
1080
+ if (resolvedMs !== null && resolvedMs - now <= 0) expiredNow = true;
1081
+ }
1082
+ if (resolvedMs === null) return;
1083
+ const remaining = resolvedMs - now;
1084
+ const sinceAttr = node.getAttribute("data-dgmo-countdown-since");
1085
+ const custom = node.getAttribute("data-dgmo-countdown-expired");
1086
+ const hasTime = node.getAttribute("data-dgmo-countdown-hastime") === "1";
1087
+ const frozen = expiredNow && custom !== null;
1088
+ const clockFinale = hasTime && !frozen && dayDeltaLocal(now, resolvedMs) <= 0;
1089
+ let text;
1090
+ if (frozen) {
1091
+ text = custom;
1092
+ } else if (clockFinale) {
1093
+ const clock = formatCount(Math.abs(remaining), {
1094
+ units: "clock",
1095
+ round,
1096
+ fields
1097
+ });
1098
+ text = remaining < 0 ? `${clock} ago` : clock;
1099
+ } else if (expiredNow) {
1100
+ if (units === "compound" || units === "human")
1101
+ text = `${formatCompound(resolvedMs, now)} ago`;
1102
+ else {
1103
+ const elapsed = -remaining;
1104
+ text = elapsed <= 0 ? "Now!" : `${formatCount(elapsed, { units, round, fields })} ago`;
1105
+ }
1106
+ } else if (rule && sameLocalDay(resolvedMs, now)) {
1107
+ text = onDay ?? "Today!";
1108
+ } else if (units === "human") {
1109
+ text = hasTime ? formatHuman(now, resolvedMs).big : formatHuman(dayStartLocal(now), dayStartLocal(resolvedMs)).big;
1110
+ } else if (units === "compound") {
1111
+ text = formatCompound(now, resolvedMs);
1112
+ } else {
1113
+ text = formatCount(Math.max(0, remaining), { units, round, fields });
1114
+ }
1115
+ if (node.textContent !== text) node.textContent = text;
1116
+ node.setAttribute(
1117
+ "aria-label",
1118
+ title ? `${title}: ${text}` : expiredNow ? text : `${text} remaining`
1119
+ );
1120
+ const svg = node.ownerSVGElement ?? node.closest("svg");
1121
+ if (!svg) return;
1122
+ const footer = svg.querySelector("[data-dgmo-countdown-footer]");
1123
+ if (footer && !expiredNow) {
1124
+ const hasTime2 = node.getAttribute("data-dgmo-countdown-hastime") === "1";
1125
+ footer.textContent = formatFooter(resolvedMs, hasTime2);
1126
+ }
1127
+ const eyebrowEl = svg.querySelector("[data-dgmo-countdown-eyebrow]");
1128
+ if (eyebrowEl && sinceAttr) {
1129
+ const tpl = node.getAttribute("data-dgmo-countdown-since-label") || "Nth";
1130
+ eyebrowEl.textContent = applyOrdinalTemplate(
1131
+ tpl,
1132
+ ordinalFor(resolvedMs, Number(sinceAttr))
1133
+ );
1134
+ }
1135
+ const detail = svg.querySelector("[data-dgmo-countdown-detail]");
1136
+ if (detail && !expiredNow && !clockFinale) {
1137
+ if (units === "words") {
1138
+ detail.textContent = formatWordsDetail(Math.max(0, remaining));
1139
+ } else if (units === "human" && remaining > 0) {
1140
+ detail.textContent = hasTime ? formatCount(remaining, { units: "clock", round, fields }) : formatHuman(dayStartLocal(now), dayStartLocal(resolvedMs)).sub;
1141
+ }
1142
+ }
1143
+ if (clockFinale) updateGauges(svg, remaining);
1144
+ const stamp = svg.querySelector("[data-dgmo-countdown-asof]");
1145
+ if (stamp && stamp.parentNode) stamp.parentNode.removeChild(stamp);
1146
+ }
1147
+ function tickCountdowns(root = document) {
1148
+ if (typeof document === "undefined") return;
1149
+ const now = Date.now();
1150
+ root.querySelectorAll("[data-dgmo-countdown]").forEach((node) => updateNode(node, now));
1151
+ }
1152
+ var intervalStarted = false;
1153
+ function startCountdowns(root = document) {
1154
+ if (typeof window === "undefined" || typeof document === "undefined") return;
1155
+ tickCountdowns(root);
1156
+ if (intervalStarted) return;
1157
+ intervalStarted = true;
1158
+ window.setInterval(() => tickCountdowns(document), 1e3);
1159
+ }
1160
+
1161
+ // src/clock/ticker.ts
1162
+ function readWork(node) {
1163
+ const start = node.getAttribute("data-dgmo-clock-work-start");
1164
+ const end = node.getAttribute("data-dgmo-clock-work-end");
1165
+ if (start === null || end === null) return null;
1166
+ const days = {};
1167
+ (node.getAttribute("data-dgmo-clock-work-days") ?? "").split(",").filter(Boolean).forEach((d) => {
1168
+ days[d] = true;
1169
+ });
1170
+ return { startMin: Number(start), endMin: Number(end), days };
1171
+ }
1172
+ function setHand(group, which, angle) {
1173
+ const hand = group.querySelector(`[data-dgmo-clock-hand="${which}"]`);
1174
+ if (hand) hand.setAttribute("transform", `rotate(${angle} 50 50)`);
1175
+ }
1176
+ function setPart(group, sel, textContent) {
1177
+ const el = group.querySelector(sel);
1178
+ if (el && el.textContent !== textContent) el.textContent = textContent;
1179
+ }
1180
+ function updateRow(group, now) {
1181
+ const zone = group.getAttribute("data-dgmo-clock-zone");
1182
+ if (!zone) return;
1183
+ const parts = zoneParts(zone, now);
1184
+ const latAttr = group.getAttribute("data-dgmo-clock-lat");
1185
+ const lonAttr = group.getAttribute("data-dgmo-clock-lon");
1186
+ const sunOn = group.getAttribute("data-dgmo-clock-sun") === "1";
1187
+ const hasCoords = latAttr !== null && lonAttr !== null;
1188
+ const sun = sunOn && hasCoords ? sunLine(now, Number(latAttr), Number(lonAttr)) : null;
1189
+ const up = sun ? sun.up : parts.h >= 6 && parts.h < 18;
1190
+ const c = (name) => group.getAttribute(`data-dgmo-clock-c-${name}`) ?? "";
1191
+ const stColor = up ? c("day") : c("night");
1192
+ const stTint = up ? c("day-soft") : c("night-soft");
1193
+ const hours12 = group.getAttribute("data-dgmo-clock-hours12") !== "0";
1194
+ const ts = formatTime(parts.h, parts.m, parts.s, hours12);
1195
+ const ang = handAngles(parts.h, parts.m, parts.s);
1196
+ setHand(group, "h", ang.hour);
1197
+ setHand(group, "m", ang.minute);
1198
+ setHand(group, "s", ang.second);
1199
+ const autoSolid = group.getAttribute("data-dgmo-clock-auto-solid");
1200
+ const autoFace = group.getAttribute("data-dgmo-clock-auto-face");
1201
+ const faceFill = autoFace ?? stTint;
1202
+ const handColor = autoSolid ?? stColor;
1203
+ const face = group.querySelector("[data-dgmo-clock-facebg]");
1204
+ if (face) face.setAttribute("fill", faceFill);
1205
+ const ring = group.querySelector("[data-dgmo-clock-facering]");
1206
+ if (ring && autoSolid) ring.setAttribute("stroke", autoSolid);
1207
+ const center = group.querySelector("[data-dgmo-clock-center]");
1208
+ if (center) center.setAttribute("fill", handColor);
1209
+ const secondHand = group.querySelector('[data-dgmo-clock-hand="s"]');
1210
+ if (secondHand) secondHand.setAttribute("stroke", handColor);
1211
+ setPart(group, '[data-dgmo-clock-digital-part="main"]', ts.main);
1212
+ setPart(group, '[data-dgmo-clock-digital-part="sec"]', `:${ts.sec}`);
1213
+ setPart(group, '[data-dgmo-clock-digital-part="ap"]', ` ${ts.ap}`);
1214
+ setPart(group, "[data-dgmo-clock-ampm]", ts.ap.toUpperCase());
1215
+ const work = readWork(group);
1216
+ const status = workStatus(parts, work);
1217
+ const statusEl = group.querySelector("[data-dgmo-clock-status]");
1218
+ if (status && statusEl) {
1219
+ const col = status.cls === "ok" ? c("ok") : status.cls === "soon" ? c("soon") : c("off");
1220
+ if (statusEl.textContent !== status.text)
1221
+ statusEl.textContent = status.text;
1222
+ statusEl.setAttribute("fill", col);
1223
+ const dot = group.querySelector("[data-dgmo-clock-status-dot]");
1224
+ if (dot) {
1225
+ if (status.cls === "off") {
1226
+ dot.setAttribute("fill", "none");
1227
+ dot.setAttribute("stroke", col);
1228
+ dot.setAttribute("stroke-width", "1.4");
1229
+ } else {
1230
+ dot.setAttribute("fill", col);
1231
+ dot.setAttribute("stroke", "none");
1232
+ }
1233
+ }
1234
+ }
1235
+ const sunEl = group.querySelector("[data-dgmo-clock-sun-line]");
1236
+ if (sun && sunEl) {
1237
+ if (sunEl.textContent !== sun.text) sunEl.textContent = sun.text;
1238
+ const icon = group.querySelector("[data-dgmo-clock-sun-icon]");
1239
+ if (icon) {
1240
+ const sunG = icon.querySelector('[data-clock-glyph="sun"]');
1241
+ const moonG = icon.querySelector('[data-clock-glyph="moon"]');
1242
+ if (sunG) sunG.setAttribute("display", up ? "inline" : "none");
1243
+ if (moonG) moonG.setAttribute("display", up ? "none" : "inline");
1244
+ }
1245
+ }
1246
+ }
1247
+ function tickClocks(root = document) {
1248
+ if (typeof document === "undefined") return;
1249
+ const now = Date.now();
1250
+ root.querySelectorAll("[data-dgmo-clock]").forEach((group) => updateRow(group, now));
1251
+ }
1252
+ var intervalStarted2 = false;
1253
+ function startClocks(root = document) {
1254
+ if (typeof window === "undefined" || typeof document === "undefined") return;
1255
+ tickClocks(root);
1256
+ if (intervalStarted2) return;
1257
+ intervalStarted2 = true;
1258
+ window.setInterval(() => tickClocks(document), 1e3);
1259
+ }
1260
+
920
1261
  // src/map/invert.ts
921
1262
  function inInsetFrame(inset, px, py) {
922
1263
  return px >= inset.x && px <= inset.x + inset.w && py >= inset.y && py <= inset.y + inset.h;
@@ -1586,6 +1927,8 @@ export {
1586
1927
  SKETCH_HALF_SLOT_Y,
1587
1928
  SKETCH_SEP,
1588
1929
  SKETCH_SHAPE_KINDS,
1930
+ SKETCH_SLOT_X,
1931
+ SKETCH_SLOT_Y,
1589
1932
  ScaleContext,
1590
1933
  addDurationToDate,
1591
1934
  albersSkewFallback,
@@ -1672,6 +2015,7 @@ export {
1672
2015
  knownChartTypeIds,
1673
2016
  layoutBlock,
1674
2017
  layoutBoxesAndLines,
2018
+ layoutBracket,
1675
2019
  layoutC4Components,
1676
2020
  layoutC4Containers,
1677
2021
  layoutC4Context,
@@ -1720,9 +2064,12 @@ export {
1720
2064
  parseBlock,
1721
2065
  parseBody,
1722
2066
  parseBoxesAndLines,
2067
+ parseBracket,
1723
2068
  parseC4,
1724
2069
  parseChart,
1725
2070
  parseClassDiagram,
2071
+ parseClock,
2072
+ parseCountdown,
1726
2073
  parseCycle,
1727
2074
  parseDataRowValues,
1728
2075
  parseDgmo,
@@ -1734,6 +2081,7 @@ export {
1734
2081
  parseFirstLine,
1735
2082
  parseFlowchart,
1736
2083
  parseGantt,
2084
+ parseGoal,
1737
2085
  parseInArrowLabel,
1738
2086
  parseInfra,
1739
2087
  parseInlineMarkdown,
@@ -1772,6 +2120,8 @@ export {
1772
2120
  renderBodyForExport,
1773
2121
  renderBoxesAndLines,
1774
2122
  renderBoxesAndLinesForExport,
2123
+ renderBracket,
2124
+ renderBracketForExport,
1775
2125
  renderC4ComponentsForExport,
1776
2126
  renderC4Containers,
1777
2127
  renderC4ContainersForExport,
@@ -1781,6 +2131,10 @@ export {
1781
2131
  renderC4DeploymentForExport,
1782
2132
  renderClassDiagram,
1783
2133
  renderClassDiagramForExport,
2134
+ renderClock,
2135
+ renderClockForExport,
2136
+ renderCountdown,
2137
+ renderCountdownForExport,
1784
2138
  renderCycle,
1785
2139
  renderCycleForExport,
1786
2140
  renderERDiagram,
@@ -1793,6 +2147,8 @@ export {
1793
2147
  renderFlowchartForExport,
1794
2148
  renderForExport,
1795
2149
  renderGantt,
2150
+ renderGoal,
2151
+ renderGoalForExport,
1796
2152
  renderInfra,
1797
2153
  renderJourneyMap,
1798
2154
  renderJourneyMapForExport,
@@ -1853,10 +2209,16 @@ export {
1853
2209
  shapeFill,
1854
2210
  simulateCanonical,
1855
2211
  simulateFast,
2212
+ sketchEdgeGeometry,
1856
2213
  sketchSlotToPx,
1857
2214
  slatePalette,
2215
+ startClocks,
2216
+ startCountdowns,
1858
2217
  tagAttrKey,
2218
+ targetToMs,
1859
2219
  themes,
2220
+ tickClocks,
2221
+ tickCountdowns,
1860
2222
  tidewaterPalette,
1861
2223
  tint,
1862
2224
  tokyoNightPalette,