@diagrammo/dgmo 0.48.2 → 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 (244) hide show
  1. package/.cursorrules +12 -3
  2. package/.github/copilot-instructions.md +12 -3
  3. package/.windsurfrules +12 -3
  4. package/SKILL.md +12 -3
  5. package/dist/advanced.d.ts +851 -1
  6. package/dist/advanced.js +601 -177
  7. package/dist/auto.css +63 -0
  8. package/dist/auto.js +220 -110
  9. package/dist/auto.mjs +45920 -33167
  10. package/dist/block.css +63 -0
  11. package/dist/block.d.ts +13 -5
  12. package/dist/block.js +239 -62
  13. package/dist/{charts-d3-QOZHKTCT.js → charts-d3-DKUD7MQE.js} +9 -8
  14. package/dist/{chunk-3MQQNXPD.js → chunk-2C56LEML.js} +3 -3
  15. package/dist/{chunk-L66GEFB6.js → chunk-2JJ2KNPI.js} +4 -4
  16. package/dist/{chunk-6SM5NJQH.js → chunk-2QYTMIRR.js} +4 -4
  17. package/dist/{chunk-RJE5JTVK.js → chunk-3G6TMNVF.js} +7 -7
  18. package/dist/{chunk-MO5YHHMQ.js → chunk-3LKM6FMW.js} +2 -2
  19. package/dist/{chunk-76OWZ3BA.js → chunk-3P2DKJCG.js} +2 -2
  20. package/dist/chunk-3TDRHT4J.js +1043 -0
  21. package/dist/chunk-3XPUDB7B.js +420 -0
  22. package/dist/{chunk-2LACINWN.js → chunk-3ZPC476N.js} +7 -7
  23. package/dist/{chunk-G2H74XJZ.js → chunk-4BMJQFNK.js} +8 -8
  24. package/dist/{chunk-THXCFRTU.js → chunk-4S723I74.js} +9 -9
  25. package/dist/{chunk-6NYWYNBI.js → chunk-4XK3FLFB.js} +3 -3
  26. package/dist/chunk-5JSWBPZZ.js +607 -0
  27. package/dist/{chunk-WCT3NYCV.js → chunk-5LWQH6QV.js} +1 -1
  28. package/dist/{chunk-7DTWEFUE.js → chunk-5Z736BSU.js} +8 -8
  29. package/dist/{chunk-ERLBPDGU.js → chunk-6BFZKBGD.js} +2 -2
  30. package/dist/{chunk-6HO5ZTXK.js → chunk-6IAA2QQ2.js} +2 -2
  31. package/dist/{chunk-H6PI3KJT.js → chunk-6IUAK7RZ.js} +2 -2
  32. package/dist/{chunk-RTLBSQ3G.js → chunk-6M5PJFQG.js} +3 -3
  33. package/dist/{chunk-Z5CGSFJB.js → chunk-6X4AKWLF.js} +4 -4
  34. package/dist/{chunk-OJR3MQYV.js → chunk-6ZT4U37Q.js} +291 -52
  35. package/dist/{chunk-5QXL4NYS.js → chunk-7G2ER4CY.js} +10 -5
  36. package/dist/chunk-7PQYTZMA.js +681 -0
  37. package/dist/{chunk-OURHMODR.js → chunk-7RB5Q6MB.js} +11 -11
  38. package/dist/{chunk-YAA6IID3.js → chunk-7UEMZREK.js} +2 -2
  39. package/dist/{chunk-AN2MOO5T.js → chunk-A3WQVFBS.js} +3 -3
  40. package/dist/{chunk-VOKGH627.js → chunk-AHGF2YYA.js} +13 -3
  41. package/dist/{chunk-CI2G3OEB.js → chunk-ASS5YYIZ.js} +12 -12
  42. package/dist/{chunk-TYS6CSS5.js → chunk-BCYVE3N5.js} +2 -2
  43. package/dist/chunk-BDXC7MDK.js +2395 -0
  44. package/dist/chunk-BTUTZMPT.js +482 -0
  45. package/dist/{chunk-YGJTDXVR.js → chunk-C4GQDB5L.js} +2 -2
  46. package/dist/{chunk-Y2ZE3MSG.js → chunk-C63UWAKM.js} +2 -2
  47. package/dist/{chunk-725LDASD.js → chunk-CLD2OKV7.js} +2 -2
  48. package/dist/{chunk-WBRZJOEC.js → chunk-CMCR5WBW.js} +3 -3
  49. package/dist/{chunk-IZMRON6C.js → chunk-CVV36CWI.js} +2 -2
  50. package/dist/chunk-DMJJ3CEQ.js +254 -0
  51. package/dist/{chunk-MZSBFAPJ.js → chunk-EJTKV7CY.js} +9 -9
  52. package/dist/{chunk-FITOLXSX.js → chunk-EOFPYPAU.js} +26 -2
  53. package/dist/{chunk-X5LCYCL5.js → chunk-ER5SCQWQ.js} +5 -5
  54. package/dist/{chunk-4OHACBGX.js → chunk-F2L5GCQ4.js} +2 -2
  55. package/dist/{chunk-FCIIHT24.js → chunk-F5UDBSJY.js} +7 -7
  56. package/dist/{chunk-3JLKYGBQ.js → chunk-F7BFXWNQ.js} +2 -2
  57. package/dist/{chunk-FANX6UJR.js → chunk-FAL7NOK3.js} +11 -11
  58. package/dist/{chunk-BUPDIHML.js → chunk-FB2WHOEQ.js} +4 -4
  59. package/dist/chunk-FL4IOQ37.js +379 -0
  60. package/dist/{chunk-LIOHW36Z.js → chunk-GBE54KY6.js} +6 -5
  61. package/dist/{chunk-RUNNI6VE.js → chunk-GL5UZ6NY.js} +3 -3
  62. package/dist/{chunk-4GRI7MEB.js → chunk-GPWHQ5FJ.js} +6 -6
  63. package/dist/chunk-GROQGHCT.js +960 -0
  64. package/dist/{chunk-SGZYXELT.js → chunk-H73FP42Q.js} +9 -6
  65. package/dist/{chunk-PBAHEPLQ.js → chunk-HGN652MU.js} +7 -6
  66. package/dist/{chunk-3SMGIJDD.js → chunk-HHXOONLX.js} +13 -1
  67. package/dist/{chunk-QOOUC2J5.js → chunk-HQCHYB5F.js} +2 -2
  68. package/dist/{chunk-AELOBFW5.js → chunk-I4IFRCUB.js} +3 -3
  69. package/dist/{chunk-GMR5MFHJ.js → chunk-I7F2A35O.js} +2 -2
  70. package/dist/{chunk-T2OE3YQB.js → chunk-IA3FJYWR.js} +3 -3
  71. package/dist/chunk-IAEC4KLA.js +492 -0
  72. package/dist/chunk-IVKC4GID.js +32 -0
  73. package/dist/{chunk-HSH73DP6.js → chunk-JFYIP7XU.js} +139 -39
  74. package/dist/{chunk-CKNVO24D.js → chunk-JZNMXEIV.js} +2 -2
  75. package/dist/chunk-KJXIHOVL.js +940 -0
  76. package/dist/chunk-L2ZTFHAY.js +331 -0
  77. package/dist/{chunk-B7JUCQUA.js → chunk-M5RXSRO2.js} +4 -4
  78. package/dist/{chunk-ULOEATBZ.js → chunk-NFFIKVNO.js} +106 -29
  79. package/dist/{chunk-PZMETGLY.js → chunk-NISQC5KW.js} +358 -122
  80. package/dist/chunk-O4VUFXIH.js +574 -0
  81. package/dist/{chunk-RVMRZAPB.js → chunk-O76UD6VJ.js} +3 -3
  82. package/dist/{chunk-JM4LEPY3.js → chunk-O7NUCTFU.js} +2 -2
  83. package/dist/{chunk-JED6ZDEE.js → chunk-O7WP4ZD4.js} +2 -2
  84. package/dist/{chunk-EVCVDTXE.js → chunk-OHQEMBLI.js} +3 -3
  85. package/dist/{chunk-ZBWMSD5N.js → chunk-ONA5KPV3.js} +4 -4
  86. package/dist/{chunk-Y3J7VR52.js → chunk-OTAL43EH.js} +34 -2
  87. package/dist/{chunk-WCSOJFU3.js → chunk-OTP5KVLO.js} +3 -3
  88. package/dist/{chunk-RYEGFMUO.js → chunk-PGEGPSCZ.js} +2 -2
  89. package/dist/{chunk-ZO27FGJS.js → chunk-PH5X4GIP.js} +2 -2
  90. package/dist/{chunk-ZJEL4H2R.js → chunk-PJUGRJHJ.js} +9 -9
  91. package/dist/{chunk-ZGR7ULFJ.js → chunk-PLZI6KPM.js} +26 -14
  92. package/dist/{chunk-3R5POCTZ.js → chunk-PMN3Q7RJ.js} +6 -6
  93. package/dist/{chunk-YGJZWZTY.js → chunk-PZFVK3IH.js} +2 -2
  94. package/dist/chunk-Q4V4XQWV.js +158 -0
  95. package/dist/chunk-QDFNCATJ.js +325 -0
  96. package/dist/{chunk-QEBUY5NY.js → chunk-QFQ35BTO.js} +4 -4
  97. package/dist/chunk-QQJUTGQH.js +135 -0
  98. package/dist/{chunk-PWIHZ6NJ.js → chunk-QUJGFNFN.js} +4 -4
  99. package/dist/{chunk-J5FIXQRT.js → chunk-R56LASIN.js} +4 -4
  100. package/dist/{chunk-SRTU6HMQ.js → chunk-RV26LTUU.js} +8 -8
  101. package/dist/chunk-RV6A2B5S.js +354 -0
  102. package/dist/{chunk-EB6FPQUP.js → chunk-S5GRONXL.js} +3 -3
  103. package/dist/{chunk-5MLYVTYM.js → chunk-SCHXJTZL.js} +2 -2
  104. package/dist/{chunk-T3UBLACL.js → chunk-SCQ5VPUF.js} +19 -5
  105. package/dist/{chunk-PBHE5UG6.js → chunk-SGFZZAUO.js} +46 -12
  106. package/dist/{chunk-BUVJFRPY.js → chunk-SU2VBK4L.js} +4 -4
  107. package/dist/{chunk-SML67VPV.js → chunk-T4BRO3Z6.js} +3 -3
  108. package/dist/{chunk-NURGB5Z4.js → chunk-TSA237IM.js} +2 -2
  109. package/dist/chunk-TWCLK2GA.js +273 -0
  110. package/dist/{chunk-IJZFN3HM.js → chunk-TWQUYVP3.js} +4 -4
  111. package/dist/{chunk-DKEPS5LH.js → chunk-U2HGPLZS.js} +36 -2
  112. package/dist/{chunk-B65G5DNL.js → chunk-URSQLCTR.js} +3 -3
  113. package/dist/{chunk-ILKORZ3H.js → chunk-UUS2GIJZ.js} +7 -7
  114. package/dist/{chunk-XAKEUMEJ.js → chunk-UXOSVCLJ.js} +4 -4
  115. package/dist/{chunk-QLCCJEJI.js → chunk-WCUHAQKB.js} +2 -2
  116. package/dist/{chunk-WVAJFAIA.js → chunk-WWN566I7.js} +257 -101
  117. package/dist/{chunk-IPWPWM6R.js → chunk-X2NMFTG3.js} +111 -10
  118. package/dist/{chunk-UWN33VNX.js → chunk-XCLHOZAM.js} +10 -10
  119. package/dist/{chunk-P235SVAH.js → chunk-XDXNDSKO.js} +2 -2
  120. package/dist/chunk-XHVV4NVW.js +51 -0
  121. package/dist/{chunk-33LCUH4H.js → chunk-XMVQ5F4M.js} +4 -4
  122. package/dist/{chunk-MITI6NOL.js → chunk-YA7D2N2O.js} +11 -11
  123. package/dist/{chunk-7JEGTRLD.js → chunk-YB3FW24O.js} +3 -3
  124. package/dist/chunk-YNRDWYZP.js +295 -0
  125. package/dist/{chunk-44CM72SQ.js → chunk-YZLMKW4T.js} +3 -3
  126. package/dist/chunk-Z6XJQ6KO.js +452 -0
  127. package/dist/cli.cjs +179 -133
  128. package/dist/clock.d.ts +10 -0
  129. package/dist/clock.js +235 -0
  130. package/dist/countdown.d.ts +12 -0
  131. package/dist/countdown.js +450 -0
  132. package/dist/dgmo-router-QOMFCOOV.js +84 -0
  133. package/dist/dimensions-P5FSX2QN.js +22 -0
  134. package/dist/editor.js +43 -2
  135. package/dist/element.js +220 -110
  136. package/dist/element.mjs +45920 -33167
  137. package/dist/{flowchart-parser-ZNSKIBVR.js → flowchart-parser-OE4WHLTF.js} +4 -4
  138. package/dist/{flowchart-renderer-SNDSII4D.js → flowchart-renderer-GPCSMTOR.js} +8 -8
  139. package/dist/highlight.d.ts +17 -1
  140. package/dist/highlight.js +163 -6
  141. package/dist/index.d.ts +5 -1
  142. package/dist/index.js +199 -233
  143. package/dist/{layout-HRBZPFCN.js → layout-34CLNICW.js} +5 -5
  144. package/dist/layout-46366KBT.js +10 -0
  145. package/dist/{layout-HWDSRX5E.js → layout-5BG6DFCU.js} +6 -6
  146. package/dist/layout-6RDJHS6E.js +9 -0
  147. package/dist/{layout-7QXCNOVS.js → layout-7H4H46CS.js} +3 -3
  148. package/dist/{layout-46N4JJYK.js → layout-7SKMFYHL.js} +5 -5
  149. package/dist/{layout-EE6GE46Y.js → layout-DC4TVXER.js} +5 -5
  150. package/dist/layout-FGQWRYYW.js +14 -0
  151. package/dist/{layout-S2QBYSK2.js → layout-NXG63LWH.js} +3 -3
  152. package/dist/{layout-N76NR4ZO.js → layout-PUQCB6AN.js} +7 -7
  153. package/dist/{layout-HYZPWAK5.js → layout-QNUQLEHU.js} +3 -3
  154. package/dist/{layout-UM5F4DJB.js → layout-T3OZU5QW.js} +5 -5
  155. package/dist/layout-TJIWF7EM.js +14 -0
  156. package/dist/layout-VYELEAW7.js +14 -0
  157. package/dist/{layout-5RA6QWR6.js → layout-WZHNDT2O.js} +6 -6
  158. package/dist/{layout-search-OYV77HHS.js → layout-search-QS44PI5R.js} +6 -6
  159. package/dist/{parser-6BTRLKRZ.js → parser-45DENHFZ.js} +4 -4
  160. package/dist/{parser-TFZFBVWN.js → parser-4AI5ZN5F.js} +3 -3
  161. package/dist/{parser-XDVELHRK.js → parser-4P36TUVD.js} +4 -4
  162. package/dist/{parser-ZSDPZYQP.js → parser-5AURY4A6.js} +4 -4
  163. package/dist/{parser-N5O4IHUN.js → parser-A2BEFMGK.js} +4 -4
  164. package/dist/parser-B5FVS7O6.js +11 -0
  165. package/dist/{parser-NGU3ETO6.js → parser-C2HF2C2E.js} +4 -4
  166. package/dist/parser-CSFUN3CT.js +14 -0
  167. package/dist/{parser-TRTHDFPP.js → parser-D3QT6GWN.js} +5 -5
  168. package/dist/parser-D5637H5H.js +15 -0
  169. package/dist/{parser-VQP2UJ6W.js → parser-DFFEDKHH.js} +3 -3
  170. package/dist/parser-DOKMZXVZ.js +13 -0
  171. package/dist/parser-FMPCVFRK.js +15 -0
  172. package/dist/{parser-Y6WTBU76.js → parser-HYRTF3DO.js} +3 -3
  173. package/dist/{parser-I6KXEYFK.js → parser-I2UIJKVQ.js} +4 -4
  174. package/dist/{parser-O5J4VBII.js → parser-IBWNAPY4.js} +3 -3
  175. package/dist/{parser-PQ3POX45.js → parser-KUQWRPIT.js} +4 -4
  176. package/dist/{parser-2MFP2H2E.js → parser-LWKKBNSA.js} +3 -3
  177. package/dist/{parser-OV7NOBW6.js → parser-O4QFCUW7.js} +5 -5
  178. package/dist/{parser-IXSZZQHY.js → parser-PGMQDD4G.js} +4 -4
  179. package/dist/{parser-3STE62GB.js → parser-Q4QKCIWQ.js} +4 -4
  180. package/dist/parser-QTOB4KFL.js +14 -0
  181. package/dist/{parser-2EWECDSA.js → parser-QYYM4QVW.js} +4 -4
  182. package/dist/{parser-4OGOBJJ4.js → parser-RZMQP7MM.js} +4 -4
  183. package/dist/parser-RZPVAQVX.js +11 -0
  184. package/dist/parser-SOUJOEYI.js +13 -0
  185. package/dist/{parser-4FL2CMDG.js → parser-UQE5OWZI.js} +5 -5
  186. package/dist/{parser-NRAI6O25.js → parser-WAV5JRPT.js} +4 -4
  187. package/dist/{parser-KNSQSKQO.js → parser-YLKYBRIT.js} +5 -5
  188. package/dist/{parser-XKRP7QKP.js → parser-YS7TOS2K.js} +3 -3
  189. package/dist/{parser-AQETEVRW.js → parser-ZSOWUBML.js} +5 -5
  190. package/dist/{parser-CFZD5IBL.js → parser-ZTBATMLX.js} +4 -4
  191. package/dist/{renderer-VACVQYML.js → renderer-35HSIDMZ.js} +8 -8
  192. package/dist/{renderer-5MYBMBYO.js → renderer-4ITCHBT7.js} +5 -5
  193. package/dist/{renderer-CLJHQPBJ.js → renderer-67NPCBIS.js} +11 -11
  194. package/dist/{renderer-5NDVNDAZ.js → renderer-6GHYK7DX.js} +9 -9
  195. package/dist/{renderer-Z7I3W2PP.js → renderer-6RNGHC5Z.js} +8 -8
  196. package/dist/renderer-72LGR2YF.js +14 -0
  197. package/dist/{renderer-KQB7UGDS.js → renderer-7RH2SI3B.js} +3 -3
  198. package/dist/renderer-7SWMIFMM.js +21 -0
  199. package/dist/renderer-BBCEFILK.js +24 -0
  200. package/dist/{renderer-JGBKUCZD.js → renderer-BSW7SRIZ.js} +4 -4
  201. package/dist/{renderer-BYCNMBF7.js → renderer-BY533UWU.js} +11 -11
  202. package/dist/{renderer-6W5462RB.js → renderer-BZSBPTZJ.js} +9 -9
  203. package/dist/{renderer-7MVLWWQD.js → renderer-CXUC4KAD.js} +9 -9
  204. package/dist/{renderer-QIWVHWZO.js → renderer-DAXMXIKD.js} +3 -3
  205. package/dist/renderer-FZUKFUNZ.js +23 -0
  206. package/dist/renderer-G2NLGNKF.js +17 -0
  207. package/dist/renderer-GO3FE3RA.js +24 -0
  208. package/dist/{renderer-ZGNTUWC4.js → renderer-HPGR6USK.js} +8 -8
  209. package/dist/{renderer-UV6MI64M.js → renderer-HVCU2C3Z.js} +3 -3
  210. package/dist/renderer-ICJN2SA2.js +24 -0
  211. package/dist/{renderer-AWWAF6XD.js → renderer-INEXO7B6.js} +10 -10
  212. package/dist/{renderer-YY2OSF6E.js → renderer-KDYCFRBX.js} +8 -8
  213. package/dist/renderer-KY4KQBTF.js +19 -0
  214. package/dist/{renderer-B2OMQIQG.js → renderer-LBN65V45.js} +13 -13
  215. package/dist/{renderer-N43WR5GV.js → renderer-MGBWOCXG.js} +10 -10
  216. package/dist/{renderer-PGX2TKVS.js → renderer-O4JKUGKO.js} +8 -8
  217. package/dist/{renderer-4JHRUBE6.js → renderer-OOGFODWP.js} +10 -10
  218. package/dist/{renderer-6EEZHMH4.js → renderer-Q6ZKPLS6.js} +9 -9
  219. package/dist/{renderer-RPOA5YPZ.js → renderer-SZQ326M5.js} +12 -12
  220. package/dist/{renderer-ZRNG54CW.js → renderer-TKG6LS4U.js} +11 -11
  221. package/dist/{renderer-W4M6QLIJ.js → renderer-TQMZGDAX.js} +13 -13
  222. package/dist/renderer-radial-JELMHQ24.js +21 -0
  223. package/dist/{resolver-NOAA7ID7.js → resolver-FHBCO3PL.js} +3 -3
  224. package/dist/{state-parser-Z2V23ATR.js → state-parser-3REXRK3R.js} +4 -4
  225. package/dist/{state-renderer-B4DQBM6M.js → state-renderer-XYLNRWXR.js} +8 -8
  226. package/docs/ai-integration.md +12 -3
  227. package/docs/language-reference.md +429 -24
  228. package/gallery/fixtures/body.dgmo +17 -0
  229. package/gallery/fixtures/bracket.dgmo +30 -0
  230. package/gallery/fixtures/clock.dgmo +8 -0
  231. package/gallery/fixtures/countdown.dgmo +3 -0
  232. package/gallery/fixtures/family.dgmo +23 -0
  233. package/gallery/fixtures/goal.dgmo +4 -0
  234. package/gallery/fixtures/sketch.dgmo +22 -0
  235. package/package.json +12 -4
  236. package/dist/chunk-ODZVHU3R.js +0 -153
  237. package/dist/dgmo-router-X35VLZLM.js +0 -73
  238. package/dist/dimensions-J3FHIMJ6.js +0 -22
  239. package/dist/layout-5T6RH5M6.js +0 -14
  240. package/dist/layout-G23F7LDH.js +0 -9
  241. package/dist/layout-OB3RI63S.js +0 -14
  242. package/dist/parser-JAL2HD4I.js +0 -13
  243. package/dist/renderer-SMIBCRVB.js +0 -24
  244. package/dist/renderer-radial-C32GPJQ7.js +0 -21
@@ -0,0 +1,273 @@
1
+ import {
2
+ familyCardRows,
3
+ familyDisplayLabel
4
+ } from "./chunk-IVKC4GID.js";
5
+ import {
6
+ CARD_RADIUS,
7
+ EDGE_STROKE_WIDTH,
8
+ HEADER_HEIGHT,
9
+ LABEL_FONT_SIZE,
10
+ META_FONT_SIZE,
11
+ META_LINE_HEIGHT,
12
+ NODE_STROKE_WIDTH,
13
+ SEPARATOR_GAP
14
+ } from "./chunk-3CIOJ5YJ.js";
15
+ import {
16
+ renderIntegratedLegend
17
+ } from "./chunk-QUJGFNFN.js";
18
+ import {
19
+ getMaxLegendReservedHeight
20
+ } from "./chunk-7UEMZREK.js";
21
+ import {
22
+ TITLE_FONT_SIZE,
23
+ TITLE_FONT_WEIGHT,
24
+ TITLE_Y
25
+ } from "./chunk-A4GOY3PE.js";
26
+ import {
27
+ FONT_FAMILY
28
+ } from "./chunk-6KFWC4CO.js";
29
+ import {
30
+ LEGEND_GROUP_GAP
31
+ } from "./chunk-HQCHYB5F.js";
32
+ import {
33
+ measureText
34
+ } from "./chunk-5LWQH6QV.js";
35
+ import {
36
+ contrastText,
37
+ mix,
38
+ shapeFill,
39
+ themeBaseBg
40
+ } from "./chunk-P6T66CCZ.js";
41
+ import {
42
+ resolveTagColor,
43
+ tagAttrKey
44
+ } from "./chunk-WCUHAQKB.js";
45
+ import {
46
+ resolveColor
47
+ } from "./chunk-TLVIHFRO.js";
48
+
49
+ // src/family/renderer.ts
50
+ import * as d3Selection from "d3-selection";
51
+ var KEY_X = 10;
52
+ var KEY_VALUE_GAP = 6;
53
+ var BAR_DOT_R = 3.5;
54
+ var TITLE_RESERVE = 40;
55
+ var DIM_OPACITY = 0.28;
56
+ var ROMAN = [
57
+ [10, "X"],
58
+ [9, "IX"],
59
+ [5, "V"],
60
+ [4, "IV"],
61
+ [1, "I"]
62
+ ];
63
+ function toRoman(n) {
64
+ let out = "";
65
+ let v = n;
66
+ for (const [val, sym] of ROMAN)
67
+ while (v >= val) {
68
+ out += sym;
69
+ v -= val;
70
+ }
71
+ return out;
72
+ }
73
+ function baseColor(node, parsed, palette, activeTagGroup) {
74
+ if (node.color) {
75
+ const c = resolveColor(node.color, palette);
76
+ if (c) return c;
77
+ }
78
+ if (activeTagGroup) {
79
+ const c = resolveTagColor(
80
+ node.tagMetadata,
81
+ [...parsed.tagGroups],
82
+ activeTagGroup
83
+ );
84
+ if (c && c !== "#999999") return c;
85
+ }
86
+ return palette.primary;
87
+ }
88
+ function renderFamilyForExport(container, parsed, layout, palette, isDark, opts = {}) {
89
+ d3Selection.select(container).selectAll(":not([data-d3-tooltip])").remove();
90
+ const activeTagGroup = opts.activeTagGroup ?? null;
91
+ const solid = parsed.options["solid-fill"] === "on";
92
+ const noDaggers = parsed.options["no-daggers"] === "true";
93
+ const baseBg = themeBaseBg(palette, isDark);
94
+ const PAD = 20;
95
+ const MAX_SCALE = 1.5;
96
+ const titleReserve = parsed.title ? TITLE_RESERVE : 0;
97
+ const legendGroups = parsed.tagGroups.filter((g) => g.entries.length > 0).map((g) => ({
98
+ name: g.name,
99
+ entries: g.entries.map((e) => ({ value: e.value, color: e.color }))
100
+ }));
101
+ const hasLegend = legendGroups.length > 0;
102
+ const legendConfig = {
103
+ groups: legendGroups,
104
+ position: { placement: "top-center", titleRelation: "below-title" },
105
+ mode: opts.exportMode ? "export" : "preview",
106
+ showInactivePills: true
107
+ };
108
+ const contentW = layout.width;
109
+ const contentH = layout.height;
110
+ const W = opts.fit?.width ?? opts.exportDims?.width ?? contentW + PAD * 2;
111
+ const legendReserve = hasLegend ? getMaxLegendReservedHeight(legendConfig, W) + LEGEND_GROUP_GAP : 0;
112
+ const chrome = titleReserve + legendReserve;
113
+ let scale = 1;
114
+ let H;
115
+ if (opts.fit) {
116
+ H = opts.fit.height;
117
+ const availW = Math.max(1, W - PAD * 2);
118
+ const availH = Math.max(1, H - chrome - PAD * 2);
119
+ scale = Math.min(MAX_SCALE, availW / contentW, availH / contentH);
120
+ if (!Number.isFinite(scale) || scale <= 0) scale = 1;
121
+ } else {
122
+ H = contentH + chrome + PAD * 2;
123
+ }
124
+ const svg = d3Selection.select(container).append("svg").attr("xmlns", "http://www.w3.org/2000/svg").attr("width", W).attr("height", H).attr("viewBox", `0 0 ${W} ${H}`).attr("preserveAspectRatio", "xMidYMin meet").attr("data-fit-scale", scale.toFixed(3)).style("font-family", FONT_FAMILY);
125
+ svg.append("style").text(
126
+ ".family-focus-icon{opacity:0;transition:opacity .15s ease;pointer-events:none}.family-card:hover .family-focus-icon{opacity:.6;pointer-events:all}.family-focus-icon:hover{opacity:1}"
127
+ );
128
+ if (parsed.title) {
129
+ svg.append("text").attr("x", W / 2).attr("y", TITLE_Y).attr("text-anchor", "middle").attr("font-size", TITLE_FONT_SIZE).attr("font-weight", TITLE_FONT_WEIGHT).attr("fill", palette.text).text(parsed.title);
130
+ }
131
+ if (hasLegend) {
132
+ const legendParent = svg.append("g").attr("transform", `translate(0, ${titleReserve})`);
133
+ renderIntegratedLegend(legendParent, {
134
+ ...legendConfig,
135
+ palette,
136
+ isDark,
137
+ width: W,
138
+ activeGroup: activeTagGroup
139
+ });
140
+ legendParent.selectAll("[data-legend-group]").classed("family-legend-group", true);
141
+ }
142
+ const contentX = (W - contentW * scale) / 2;
143
+ const root = svg.append("g").attr(
144
+ "transform",
145
+ `translate(${contentX}, ${chrome + PAD}) scale(${scale})`
146
+ );
147
+ if (parsed.options["generations"] === "true" && layout.rows.length > 0) {
148
+ const bandG = root.append("g").attr("class", "family-generation-bands");
149
+ const toneA = mix(palette.textMuted, baseBg, 7);
150
+ const toneB = mix(palette.textMuted, baseBg, 2);
151
+ const BAND_VPAD = 12;
152
+ const BAND_INSET = 2;
153
+ for (let i = 0; i < layout.rows.length; i++) {
154
+ const r = layout.rows[i];
155
+ bandG.append("rect").attr("x", BAND_INSET).attr("y", r.y - BAND_VPAD).attr("width", Math.max(0, contentW - BAND_INSET * 2)).attr("height", r.height + BAND_VPAD * 2).attr("rx", CARD_RADIUS).attr("fill", i % 2 === 0 ? toneA : toneB);
156
+ }
157
+ }
158
+ const edgeG = root.append("g").attr("class", "family-edges");
159
+ const pathD = (pts) => pts.map((p, i) => `${i ? "L" : "M"}${p.x} ${p.y}`).join(" ");
160
+ const line = (pts, dashed, dimmed) => {
161
+ edgeG.append("path").attr("d", pathD(pts)).attr("fill", "none").attr("stroke", palette.textMuted).attr("stroke-width", EDGE_STROKE_WIDTH).attr("stroke-dasharray", dashed ? "6 3" : null).attr("stroke-opacity", dimmed ? DIM_OPACITY : null);
162
+ };
163
+ const byUnion = /* @__PURE__ */ new Map();
164
+ for (const e of layout.edges) {
165
+ (byUnion.get(e.unionId) ?? byUnion.set(e.unionId, []).get(e.unionId)).push(
166
+ e
167
+ );
168
+ }
169
+ for (const group of byUnion.values()) {
170
+ const first = group[0];
171
+ const allAdopted = group.every((e) => e.adopted);
172
+ const trunkDimmed = group.every((e) => e.dimmed);
173
+ if (first.points.length > 2) {
174
+ line(first.points.slice(0, 2), allAdopted, trunkDimmed);
175
+ for (const e of group) line(e.points.slice(1), e.adopted, !!e.dimmed);
176
+ } else {
177
+ for (const e of group) line(e.points, e.adopted, !!e.dimmed);
178
+ }
179
+ for (const e of group) {
180
+ if (!e.adopted) continue;
181
+ const last = e.points[e.points.length - 1];
182
+ const prev = e.points[e.points.length - 2] ?? last;
183
+ edgeG.append("text").attr("x", last.x + 5).attr("y", (last.y + prev.y) / 2).attr("font-size", META_FONT_SIZE).attr("font-style", "italic").attr("fill", palette.textMuted).attr("fill-opacity", e.dimmed ? DIM_OPACITY : null).text("adopted");
184
+ }
185
+ }
186
+ const barG = root.append("g").attr("class", "family-bars");
187
+ for (const bar of layout.bars) {
188
+ const bg = barG.append("g");
189
+ if (bar.dimmed) bg.attr("opacity", DIM_OPACITY);
190
+ bg.append("line").attr("x1", bar.x1).attr("y1", bar.y).attr("x2", bar.x2).attr("y2", bar.y).attr("stroke", palette.textMuted).attr("stroke-width", EDGE_STROKE_WIDTH).attr("stroke-dasharray", bar.divorced ? "6 3" : null).attr("class", "family-marriage-bar").attr("data-line-number", String(bar.lineNumber));
191
+ bg.append("circle").attr("cx", bar.midX).attr("cy", bar.y).attr("r", BAR_DOT_R).attr("fill", palette.textMuted);
192
+ if (bar.year) {
193
+ bg.append("text").attr("x", bar.labelX).attr("y", bar.y - BAR_DOT_R - 3).attr("text-anchor", "middle").attr("font-size", META_FONT_SIZE).attr("fill", palette.textMuted).attr("stroke", baseBg).attr("stroke-width", 3).attr("stroke-linejoin", "round").attr("paint-order", "stroke").text(`m. ${bar.year}`);
194
+ }
195
+ }
196
+ const occludeG = root.append("g").attr("class", "family-dim-occluders");
197
+ for (const node of layout.nodes) {
198
+ if (!node.dimmed) continue;
199
+ occludeG.append("rect").attr("x", node.x).attr("y", node.y).attr("width", node.width).attr("height", node.height).attr("rx", CARD_RADIUS).attr("fill", baseBg);
200
+ }
201
+ const cardsG = root.append("g").attr("class", "family-cards");
202
+ for (const node of layout.nodes) {
203
+ const isPh = !!node.placeholder;
204
+ const base = baseColor(node, parsed, palette, activeTagGroup);
205
+ const fill = isPh ? mix(palette.textMuted, baseBg, 6) : shapeFill(palette, base, isDark, { solid });
206
+ const stroke = isPh ? palette.textMuted : base;
207
+ const labelColor = isPh ? palette.textMuted : contrastText(fill, palette.textOnFillLight, palette.textOnFillDark);
208
+ const g = cardsG.append("g").attr("class", "family-card").attr("transform", `translate(${node.x}, ${node.y})`).attr("data-line-number", String(node.lineNumber)).attr("data-person-id", node.id);
209
+ if (node.dimmed) g.attr("opacity", DIM_OPACITY);
210
+ if (activeTagGroup) {
211
+ const key = tagAttrKey(activeTagGroup);
212
+ const v = node.tagMetadata[key];
213
+ if (v) g.attr(`data-tag-${key}`, v.toLowerCase());
214
+ }
215
+ g.append("rect").attr("x", 0).attr("y", 0).attr("width", node.width).attr("height", node.height).attr("rx", CARD_RADIUS).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", NODE_STROKE_WIDTH);
216
+ g.append("text").attr("x", node.width / 2).attr("y", HEADER_HEIGHT / 2 + LABEL_FONT_SIZE / 2 - 2).attr("text-anchor", "middle").attr("fill", labelColor).attr("font-size", LABEL_FONT_SIZE).attr("font-weight", "bold").text(noDaggers ? node.label : familyDisplayLabel(node));
217
+ if (isPh) continue;
218
+ const fx = node.width - 13;
219
+ const fy = 9;
220
+ const focusG = g.append("g").attr("class", "family-focus-icon").attr("data-focus-person", node.id).attr("data-export-ignore", "true").style("cursor", "pointer");
221
+ focusG.append("rect").attr("x", fx - 6).attr("y", fy - 6).attr("width", 16).attr("height", 16).attr("fill", "transparent");
222
+ focusG.append("circle").attr("cx", fx).attr("cy", fy).attr("r", 5).attr("fill", "none").attr("stroke", labelColor).attr("stroke-width", 1.4);
223
+ focusG.append("circle").attr("cx", fx).attr("cy", fy).attr("r", 1.6).attr("fill", labelColor);
224
+ const rows = familyCardRows(node);
225
+ if (rows.length === 0) continue;
226
+ g.append("line").attr("x1", 0).attr("y1", HEADER_HEIGHT).attr("x2", node.width).attr("y2", HEADER_HEIGHT).attr("stroke", solid ? labelColor : stroke).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
227
+ const maxKeyWidth = Math.max(
228
+ 0,
229
+ ...rows.filter((r) => !r.year).map((r) => measureText(`${r.key}: `, META_FONT_SIZE))
230
+ );
231
+ const valueX = KEY_X + maxKeyWidth + KEY_VALUE_GAP;
232
+ const startY = HEADER_HEIGHT + SEPARATOR_GAP + META_FONT_SIZE;
233
+ rows.forEach((r, i) => {
234
+ const rowY = startY + i * META_LINE_HEIGHT;
235
+ if (r.year) {
236
+ g.append("text").attr("x", KEY_X).attr("y", rowY).attr("fill", labelColor).attr("fill-opacity", 0.7).attr("font-size", META_FONT_SIZE).text(r.value);
237
+ } else {
238
+ g.append("text").attr("x", KEY_X).attr("y", rowY).attr("fill", labelColor).attr("font-size", META_FONT_SIZE).text(`${r.key}: `);
239
+ g.append("text").attr("x", valueX).attr("y", rowY).attr("fill", labelColor).attr("font-size", META_FONT_SIZE).text(r.value);
240
+ }
241
+ });
242
+ }
243
+ if (parsed.options["generations"] === "true") {
244
+ const genG = root.append("g").attr("class", "family-generations");
245
+ for (const rw of layout.rows) {
246
+ genG.append("text").attr("x", 6).attr("y", rw.y + rw.height / 2).attr("dominant-baseline", "middle").attr("font-size", META_FONT_SIZE).attr("font-weight", "bold").attr("fill", palette.textMuted).text(`Gen ${toRoman(rw.row + 1)}`);
247
+ }
248
+ }
249
+ if (layout.ancestors.length > 0 && layout.focusAnchor) {
250
+ const aG = root.append("g").attr("class", "family-ancestors");
251
+ const anchor = layout.focusAnchor;
252
+ const dotY = layout.ancestors[0].y;
253
+ aG.append("line").attr("x1", anchor.x).attr("y1", dotY).attr("x2", anchor.x).attr("y2", anchor.y).attr("stroke", palette.textMuted).attr("stroke-width", EDGE_STROKE_WIDTH).attr("stroke-opacity", 0.5);
254
+ for (const a of layout.ancestors) {
255
+ const hue = (a.color ? resolveColor(a.color, palette) : null) ?? resolveColor(
256
+ a.sex === "m" ? "blue" : a.sex === "f" ? "purple" : "gray",
257
+ palette
258
+ ) ?? palette.textMuted;
259
+ const dot = aG.append("g").attr("data-ancestor", a.label).attr("data-focus-person", a.id).style("cursor", "pointer");
260
+ dot.append("circle").attr("cx", a.x).attr("cy", a.y).attr("r", 6).attr("fill", mix(hue, baseBg, 40)).attr("stroke", hue).attr("stroke-width", 1.5);
261
+ dot.append("text").attr("x", a.x + 10).attr("y", a.y).attr("dominant-baseline", "middle").attr("font-size", META_FONT_SIZE).attr("fill", palette.textMuted).attr("stroke", baseBg).attr("stroke-width", 3).attr("stroke-linejoin", "round").attr("paint-order", "stroke").text(a.label);
262
+ }
263
+ }
264
+ }
265
+ function renderFamily(container, parsed, layout, palette, isDark, opts = {}) {
266
+ renderFamilyForExport(container, parsed, layout, palette, isDark, opts);
267
+ }
268
+
269
+ export {
270
+ renderFamilyForExport,
271
+ renderFamily
272
+ };
273
+ //# sourceMappingURL=chunk-TWCLK2GA.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildPlacedNotes
3
- } from "./chunk-JED6ZDEE.js";
3
+ } from "./chunk-O7WP4ZD4.js";
4
4
  import {
5
5
  noteCanvasShift
6
6
  } from "./chunk-6EK55ART.js";
@@ -8,7 +8,7 @@ import {
8
8
  measureText,
9
9
  truncateText,
10
10
  wrapTextToWidth
11
- } from "./chunk-WCT3NYCV.js";
11
+ } from "./chunk-5LWQH6QV.js";
12
12
  import {
13
13
  resolveNotes
14
14
  } from "./chunk-FMDSF3OV.js";
@@ -311,7 +311,7 @@ function computeNodeSize(node, reserveValueRow) {
311
311
  return { width: w, height: Math.max(NODE_HEIGHT, totalHeight) };
312
312
  }
313
313
  async function layoutBoxesAndLines(parsed, collapseInfo, layoutOptions) {
314
- const { layoutBoxesAndLinesSearch } = await import("./layout-search-OYV77HHS.js");
314
+ const { layoutBoxesAndLinesSearch } = await import("./layout-search-QS44PI5R.js");
315
315
  const searchOpts = {
316
316
  ...layoutOptions?.hideDescriptions !== void 0 && {
317
317
  hideDescriptions: layoutOptions.hideDescriptions
@@ -460,4 +460,4 @@ export {
460
460
  computeNodeSize,
461
461
  layoutBoxesAndLines
462
462
  };
463
- //# sourceMappingURL=chunk-IJZFN3HM.js.map
463
+ //# sourceMappingURL=chunk-TWQUYVP3.js.map
@@ -126,6 +126,17 @@ var DIRECTIVES_REGISTRY = [
126
126
  { token: "import", category: "directive" },
127
127
  { token: "hide", category: "directive" },
128
128
  { token: "direction", category: "directive" },
129
+ // ── Clock ────────────────────────────────────────────────
130
+ // The board's flat directives — highlight-only (the parser validates them
131
+ // inline, no extractable Set). `no-title` + `direction` are already listed
132
+ // above (shared). Values (analog is a bare flag; color-by's
133
+ // place|work|daylight|time|none) highlight as plain tokens.
134
+ { token: "analog", category: "directive" },
135
+ { token: "hours", category: "directive" },
136
+ { token: "days", category: "directive" },
137
+ { token: "no-sun", category: "directive" },
138
+ { token: "time-24", category: "directive" },
139
+ { token: "color-by", category: "directive" },
129
140
  // ── Boxes-and-lines ──────────────────────────────────────
130
141
  // `heat <Label> [low] [high]` is the value→colour ramp directive, but `heat`
131
142
  // is NOT registered as a directive keyword: it is dual-use with the `heat:`
@@ -218,6 +229,17 @@ var DIRECTIVES_REGISTRY = [
218
229
  { token: "scrubber-trials", category: "directive" },
219
230
  { token: "start-date", category: "directive" },
220
231
  { token: "end-date", category: "directive" },
232
+ // ── Goal ─────────────────────────────────────────────────
233
+ // Mode flags, value-key leaders, and opt-outs. `now`/`target` collide with
234
+ // label prose ("start now", "on target"), but the arrow-label demotion pass
235
+ // (see highlight-api LABEL_WORD_NODES) treats any keyword-bearing label as
236
+ // text and demotes them, so they highlight only as line leaders.
237
+ { token: "thermometer", category: "directive" },
238
+ { token: "gauge", category: "directive" },
239
+ { token: "now", category: "directive" },
240
+ { token: "target", category: "directive" },
241
+ { token: "no-note", category: "directive" },
242
+ { token: "no-auto-color", category: "directive" },
221
243
  // ── Control-flow + wireframe element keywords (CONTROL) ──
222
244
  { token: "if", category: "control" },
223
245
  { token: "else", category: "control" },
@@ -259,7 +281,19 @@ var DIRECTIVES_REGISTRY = [
259
281
  { token: "date", category: "modifier" },
260
282
  { token: "timestamp", category: "modifier" },
261
283
  { token: "float", category: "modifier" },
262
- { token: "decimal", category: "modifier" }
284
+ { token: "decimal", category: "modifier" },
285
+ // ── Bracket ──────────────────────────────────────────────
286
+ // `beats` / `vs` are the infix match keywords; the rest are line directives.
287
+ // (`seed` and `no-legend` already appear above — shared, not re-listed.)
288
+ { token: "beats", category: "control" },
289
+ { token: "vs", category: "control" },
290
+ { token: "rounds", category: "directive" },
291
+ { token: "accent", category: "directive" },
292
+ { token: "no-round", category: "modifier" },
293
+ { token: "no-rounds", category: "modifier" },
294
+ { token: "single-elim", category: "modifier" },
295
+ { token: "double-elim", category: "modifier" },
296
+ { token: "seeded", category: "modifier" }
263
297
  ];
264
298
  function tokensWhere(pred) {
265
299
  const out = /* @__PURE__ */ new Set();
@@ -312,4 +346,4 @@ export {
312
346
  REGISTRY_MODIFIER_TOKENS,
313
347
  REGISTRY_COLON_KEY_TOKENS
314
348
  };
315
- //# sourceMappingURL=chunk-DKEPS5LH.js.map
349
+ //# sourceMappingURL=chunk-U2HGPLZS.js.map
@@ -11,7 +11,7 @@ import {
11
11
  stripDefaultModifier,
12
12
  tagAttrKey,
13
13
  validateTagGroupNames
14
- } from "./chunk-QLCCJEJI.js";
14
+ } from "./chunk-WCUHAQKB.js";
15
15
  import {
16
16
  parseInArrowLabel
17
17
  } from "./chunk-FFUN5D66.js";
@@ -27,7 +27,7 @@ import {
27
27
  splitNameAndMeta,
28
28
  warnUnknownMetaKeys,
29
29
  withTagAliases
30
- } from "./chunk-Y3J7VR52.js";
30
+ } from "./chunk-OTAL43EH.js";
31
31
  import {
32
32
  formatDgmoError,
33
33
  makeDgmoError,
@@ -804,4 +804,4 @@ function validateDeploymentRefs(result, knownNames, pushWarning) {
804
804
  export {
805
805
  parseC4
806
806
  };
807
- //# sourceMappingURL=chunk-B65G5DNL.js.map
807
+ //# sourceMappingURL=chunk-URSQLCTR.js.map
@@ -4,7 +4,7 @@ import {
4
4
  layoutC4Containers,
5
5
  layoutC4Context,
6
6
  layoutC4Deployment
7
- } from "./chunk-QEBUY5NY.js";
7
+ } from "./chunk-QFQ35BTO.js";
8
8
  import {
9
9
  renderInlineText
10
10
  } from "./chunk-3HDBAXF5.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-3CIOJ5YJ.js";
18
18
  import {
19
19
  renderIntegratedLegend
20
- } from "./chunk-PWIHZ6NJ.js";
20
+ } from "./chunk-QUJGFNFN.js";
21
21
  import {
22
22
  TITLE_FONT_SIZE,
23
23
  TITLE_FONT_WEIGHT
@@ -27,14 +27,14 @@ import {
27
27
  } from "./chunk-6KFWC4CO.js";
28
28
  import {
29
29
  LEGEND_HEIGHT
30
- } from "./chunk-QOOUC2J5.js";
30
+ } from "./chunk-HQCHYB5F.js";
31
31
  import {
32
32
  measureText,
33
33
  wrapTextToWidth
34
- } from "./chunk-WCT3NYCV.js";
34
+ } from "./chunk-5LWQH6QV.js";
35
35
  import {
36
36
  parseC4
37
- } from "./chunk-B65G5DNL.js";
37
+ } from "./chunk-URSQLCTR.js";
38
38
  import {
39
39
  preprocessDescriptionLine
40
40
  } from "./chunk-IYULMRBE.js";
@@ -45,7 +45,7 @@ import {
45
45
  } from "./chunk-P6T66CCZ.js";
46
46
  import {
47
47
  tagAttrKey
48
- } from "./chunk-QLCCJEJI.js";
48
+ } from "./chunk-WCUHAQKB.js";
49
49
 
50
50
  // src/c4/renderer.ts
51
51
  import * as d3Selection from "d3-selection";
@@ -1035,4 +1035,4 @@ export {
1035
1035
  renderC4Deployment,
1036
1036
  renderC4DeploymentForExport
1037
1037
  };
1038
- //# sourceMappingURL=chunk-ILKORZ3H.js.map
1038
+ //# sourceMappingURL=chunk-UUS2GIJZ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  GANTT_BOOLEAN_SET,
3
3
  GANTT_OPTION_SET
4
- } from "./chunk-DKEPS5LH.js";
4
+ } from "./chunk-U2HGPLZS.js";
5
5
  import {
6
6
  parseDuration,
7
7
  parseOffset,
@@ -15,7 +15,7 @@ import {
15
15
  stripDefaultModifier,
16
16
  tagAttrKey,
17
17
  validateTagGroupNames
18
- } from "./chunk-QLCCJEJI.js";
18
+ } from "./chunk-WCUHAQKB.js";
19
19
  import {
20
20
  normalizeName
21
21
  } from "./chunk-NOTA6TEI.js";
@@ -28,7 +28,7 @@ import {
28
28
  splitNameAndMeta,
29
29
  warnUnknownMetaKeys,
30
30
  withTagAliases
31
- } from "./chunk-Y3J7VR52.js";
31
+ } from "./chunk-OTAL43EH.js";
32
32
  import {
33
33
  formatDgmoError,
34
34
  makeDgmoError
@@ -1253,4 +1253,4 @@ export {
1253
1253
  GANTT_KNOWN_OPTIONS,
1254
1254
  GANTT_KNOWN_BOOLEANS
1255
1255
  };
1256
- //# sourceMappingURL=chunk-XAKEUMEJ.js.map
1256
+ //# sourceMappingURL=chunk-UXOSVCLJ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  stripQuotes,
3
3
  tokenizeQuoteAware
4
- } from "./chunk-Y3J7VR52.js";
4
+ } from "./chunk-OTAL43EH.js";
5
5
  import {
6
6
  CATEGORICAL_COLOR_ORDER,
7
7
  RECOGNIZED_COLOR_NAMES,
@@ -250,4 +250,4 @@ export {
250
250
  resolveActiveTagGroup,
251
251
  matchTagBlockHeading
252
252
  };
253
- //# sourceMappingURL=chunk-QLCCJEJI.js.map
253
+ //# sourceMappingURL=chunk-WCUHAQKB.js.map