@diagrammo/dgmo 0.92.1 → 0.93.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 (164) hide show
  1. package/dist/advanced.d.ts +77 -20
  2. package/dist/advanced.js +453 -420
  3. package/dist/block.d.ts +2 -2
  4. package/dist/block.js +75 -70
  5. package/dist/{chart-meta-BBqLnv5q.d.ts → chart-meta-BbjsRY7o.d.ts} +2 -2
  6. package/dist/chart-meta.d.ts +3 -3
  7. package/dist/chart-meta.js +25 -19
  8. package/dist/{chart-types-CbXlZFLd.d.ts → chart-types-Cppnp31G.d.ts} +173 -4
  9. package/dist/{charts-d3-QUUDVETP.js → charts-d3-ERYYVGP6.js} +7 -6
  10. package/dist/{chunk-HIWHIYLD.js → chunk-2TFXRBCD.js} +19 -19
  11. package/dist/{chunk-O5WUZGPV.js → chunk-3GCASUWA.js} +17 -17
  12. package/dist/{chunk-ZJAK6C7Y.js → chunk-3PP746YM.js} +6 -1
  13. package/dist/{chunk-WLLO3PZ3.js → chunk-472EOHVW.js} +17 -17
  14. package/dist/{chunk-JLU52ZDT.js → chunk-5CBX66KB.js} +10 -10
  15. package/dist/{chunk-DEFBUZWV.js → chunk-5HAYT43L.js} +70 -54
  16. package/dist/{chunk-S7W75MIM.js → chunk-65GPEV5V.js} +21 -3
  17. package/dist/{chunk-Q6W2K33N.js → chunk-6XLMTAEX.js} +1 -1
  18. package/dist/{chunk-JKST4RTT.js → chunk-7OWK5K5C.js} +6 -6
  19. package/dist/{chunk-73EYNV4O.js → chunk-A5WIAMCT.js} +4 -6
  20. package/dist/{chunk-X5BUX2GK.js → chunk-ADVGV3P7.js} +1 -1
  21. package/dist/{chunk-45QUTYPD.js → chunk-CYDM2XII.js} +17 -17
  22. package/dist/chunk-CYTFO2LF.js +209 -0
  23. package/dist/{chunk-JRWUHLRP.js → chunk-D6PVMUCX.js} +51 -8
  24. package/dist/{chunk-BRSM6Z34.js → chunk-DAHQL57W.js} +14 -14
  25. package/dist/{chunk-RBFJT23E.js → chunk-EQWC76GQ.js} +6 -6
  26. package/dist/{chunk-ADNIO3XY.js → chunk-FIYW7JW4.js} +5 -5
  27. package/dist/{chunk-7ENDOHAA.js → chunk-FMAVHTYB.js} +919 -927
  28. package/dist/{chunk-3PFMGNOM.js → chunk-GJXMG4S3.js} +26 -11
  29. package/dist/chunk-GXCDD6NG.js +24 -0
  30. package/dist/{chunk-Y2V5AEVG.js → chunk-IESUM4N5.js} +2331 -2236
  31. package/dist/{chunk-QQPNCXAO.js → chunk-IIV4SMJL.js} +18 -18
  32. package/dist/{chunk-5EBYPETE.js → chunk-J43OCO22.js} +3 -5
  33. package/dist/{chunk-L5NW3PVL.js → chunk-J6AEKIRQ.js} +1 -1
  34. package/dist/{chunk-2BJW7FSF.js → chunk-KBEWVCK3.js} +1 -1
  35. package/dist/{chunk-LRP5FXST.js → chunk-KCHQVED5.js} +18 -17
  36. package/dist/{chunk-Q6ZQX2HX.js → chunk-KCMGIYPO.js} +4 -6
  37. package/dist/{chunk-MDVJYRJT.js → chunk-KPGPK4SK.js} +22 -22
  38. package/dist/{chunk-Q2UFOKPB.js → chunk-KPSSNGAE.js} +22 -22
  39. package/dist/{chunk-V4D2ZQBE.js → chunk-KRPLP5LP.js} +6 -1
  40. package/dist/{chunk-BZX7QCXJ.js → chunk-KRU2LCIP.js} +15 -15
  41. package/dist/{chunk-HXULJZA2.js → chunk-LDDDKWL6.js} +6 -1
  42. package/dist/{chunk-NREU4JFE.js → chunk-LNVB75QU.js} +6 -8
  43. package/dist/{chunk-MX4SZLSV.js → chunk-LUDUDBO6.js} +16 -8
  44. package/dist/{chunk-2YAFDND3.js → chunk-M4NV5PPU.js} +4 -6
  45. package/dist/{chunk-26BBJUBW.js → chunk-M6ZQAFPD.js} +4 -6
  46. package/dist/{chunk-NPWVOFB3.js → chunk-MB2SQF7N.js} +1 -1
  47. package/dist/{chunk-6ZL2XYM7.js → chunk-MLY5ALOV.js} +6 -6
  48. package/dist/chunk-NJJCTEBM.js +416 -0
  49. package/dist/{chunk-OQW4ETJX.js → chunk-NM5V5EKY.js} +6 -1
  50. package/dist/{chunk-ONYO5WJW.js → chunk-NMK7KJZZ.js} +21 -21
  51. package/dist/{chunk-6BNNLVAR.js → chunk-NPDVWFAQ.js} +6 -1
  52. package/dist/{chunk-FTUMRSGT.js → chunk-P5FUWXPW.js} +4 -286
  53. package/dist/chunk-P7TRFL4P.js +54 -0
  54. package/dist/{chunk-A4PNWAUW.js → chunk-PGSGJLUR.js} +6 -1
  55. package/dist/{chunk-DRFGIOZ6.js → chunk-Q7Y6JQ3R.js} +4 -6
  56. package/dist/{chunk-J2E7EUER.js → chunk-QDRCWVV3.js} +17 -17
  57. package/dist/{chunk-MXAP37W6.js → chunk-TNV4F5WA.js} +16 -7
  58. package/dist/{chunk-EBSFSOJC.js → chunk-U7U64UUN.js} +22 -22
  59. package/dist/chunk-UCHZJJIT.js +421 -0
  60. package/dist/{chunk-FSJ3ZA6N.js → chunk-UG7AQQNR.js} +12 -12
  61. package/dist/{chunk-WFA6IULY.js → chunk-URRAWU5D.js} +5 -0
  62. package/dist/{chunk-VOR32OHN.js → chunk-USAGHYRD.js} +13 -15
  63. package/dist/{chunk-QUGC7GWB.js → chunk-UVX3IYXF.js} +15 -15
  64. package/dist/{chunk-B5PEKSRH.js → chunk-VSAKEMDD.js} +6 -1
  65. package/dist/{chunk-5SSTVFPX.js → chunk-WK5QEYFA.js} +5 -7
  66. package/dist/{chunk-KTGZDMDX.js → chunk-XUTR7GNT.js} +76 -28
  67. package/dist/{chunk-6WVX4KNP.js → chunk-YDZIVDVR.js} +97 -297
  68. package/dist/{chunk-URQIWIKX.js → chunk-YXXIRM4C.js} +3 -3
  69. package/dist/{chunk-H5UEVW6Q.js → chunk-ZD3QCNB7.js} +1 -1
  70. package/dist/{chunk-DUPZ2BBY.js → chunk-ZTLMEBAC.js} +66 -4
  71. package/dist/clock.js +168 -0
  72. package/dist/completion-registry.js +3 -1
  73. package/dist/countdown.js +36 -395
  74. package/dist/{dgmo-router-4UAPPIKN.js → dgmo-router-CZN36TR3.js} +50 -43
  75. package/dist/{dimensions-SCNVYLRF.js → dimensions-7HHKO5BS.js} +3 -3
  76. package/dist/{d3-BThYBTQk.d.ts → export-context-Ceh3wr0E.d.ts} +2 -8
  77. package/dist/{flowchart-parser-NA75YQ77.js → flowchart-parser-4MZPWYK6.js} +8 -3
  78. package/dist/{flowchart-renderer-6MGGX4RC.js → flowchart-renderer-5XDN575E.js} +13 -17
  79. package/dist/index.d.ts +8 -7
  80. package/dist/index.js +80 -74
  81. package/dist/{layout-S3RLVPH4.js → layout-33FHGDEV.js} +10 -12
  82. package/dist/{layout-MBVBAMPA.js → layout-3TSVAGWH.js} +2 -2
  83. package/dist/{layout-WRG4APSJ.js → layout-5GHV7HNM.js} +9 -13
  84. package/dist/layout-FTOGDNUL.js +23 -0
  85. package/dist/{layout-BNLFQHSB.js → layout-QXGPY7KA.js} +7 -9
  86. package/dist/{layout-search-PMYL3VWS.js → layout-search-EMTCDC3C.js} +8 -10
  87. package/dist/{palettes-IN7ZFRJM.js → palettes-4Y7CL2QL.js} +4 -2
  88. package/dist/{parser-3MK56JZC.js → parser-4Y6PODW6.js} +2 -2
  89. package/dist/{parser-2NWH5JUS.js → parser-A3AN76RQ.js} +2 -1
  90. package/dist/{parser-LCJ76UXS.js → parser-BT4NI6JY.js} +5 -1
  91. package/dist/{parser-FXDS4JDK.js → parser-F7NDRPMA.js} +2 -2
  92. package/dist/{parser-BES6LV3G.js → parser-GDLKUBTO.js} +5 -1
  93. package/dist/{parser-SEUTXN6U.js → parser-KJPPUN4D.js} +2 -2
  94. package/dist/{parser-SIKL4PLF.js → parser-KMKVFET2.js} +5 -1
  95. package/dist/{parser-5LW5JDYG.js → parser-NL73FSFI.js} +5 -1
  96. package/dist/{parser-VA7ZQQTA.js → parser-NUU3DVW4.js} +5 -1
  97. package/dist/{parser-L6RWDXQN.js → parser-OGF2CDA6.js} +8 -3
  98. package/dist/{parser-XZUKNZPB.js → parser-R3LPEQIT.js} +7 -1
  99. package/dist/{parser-X23GRTQJ.js → parser-RCIEKN7Y.js} +5 -1
  100. package/dist/{parser-GX5YLRIP.js → parser-VKYUAT4Y.js} +8 -3
  101. package/dist/{parser-QYISOAGR.js → parser-YX72VLDZ.js} +8 -3
  102. package/dist/redraw-MSXU4ZD2.js +73 -0
  103. package/dist/redraw-T324XAF3.js +1698 -0
  104. package/dist/{renderer-5VKPB4LL.js → renderer-37PLQHVB.js} +5 -5
  105. package/dist/{renderer-ISSDGK54.js → renderer-3F47TPZ2.js} +3 -3
  106. package/dist/{renderer-3QAFDXEY.js → renderer-5ITLW7MX.js} +14 -12
  107. package/dist/{renderer-ZZ6MWVB7.js → renderer-6GJWADLO.js} +4 -4
  108. package/dist/{renderer-MM27BSBO.js → renderer-7Y3LR4R2.js} +3 -4
  109. package/dist/{renderer-2FVUPBGV.js → renderer-AM7P4LN7.js} +1 -1
  110. package/dist/{renderer-ZHGHTSNG.js → renderer-BO73LSVT.js} +13 -12
  111. package/dist/{renderer-3IHQI4A4.js → renderer-CNRQFIEI.js} +11 -10
  112. package/dist/{renderer-OAR5VPH4.js → renderer-DAZWHNLI.js} +2 -2
  113. package/dist/{renderer-NDA2FFYB.js → renderer-DD6T3C4J.js} +5 -5
  114. package/dist/{renderer-WIU5BJUK.js → renderer-DDWDCM2K.js} +2 -2
  115. package/dist/{renderer-7ZZG5HR3.js → renderer-EVKWGUGT.js} +8 -9
  116. package/dist/{renderer-3JY6JAQJ.js → renderer-FL7EOSBU.js} +5 -6
  117. package/dist/{renderer-RUSFL7WU.js → renderer-GFALLIYT.js} +7 -6
  118. package/dist/{renderer-O6DY46AV.js → renderer-GFGFHYWY.js} +7 -7
  119. package/dist/{renderer-5TZVFQ7K.js → renderer-GOXAP2IE.js} +7 -8
  120. package/dist/{renderer-NHTR7IRR.js → renderer-GPAVVUET.js} +4 -5
  121. package/dist/{renderer-TO2NVJP3.js → renderer-HJ54YXT3.js} +50 -45
  122. package/dist/{renderer-LM4ICK6I.js → renderer-HYGTMBHT.js} +4 -5
  123. package/dist/{renderer-S3YCLJKL.js → renderer-IHCWBFPI.js} +17 -20
  124. package/dist/{renderer-XO57LTU4.js → renderer-ISDKO3DI.js} +5 -5
  125. package/dist/{renderer-LQP3AGEJ.js → renderer-J3QWK6IM.js} +3 -4
  126. package/dist/{renderer-J666LZXJ.js → renderer-J6H4Q3RM.js} +7 -8
  127. package/dist/{renderer-ALWVK3EJ.js → renderer-JJ4QW3SK.js} +6 -6
  128. package/dist/{renderer-DC7C5Q3G.js → renderer-NOYLNVTI.js} +2 -2
  129. package/dist/{renderer-ZGY7P4BM.js → renderer-PBKTAWQV.js} +16 -20
  130. package/dist/{renderer-XGG2UNXT.js → renderer-POBGKIUT.js} +3 -4
  131. package/dist/{renderer-QGIHLZOJ.js → renderer-RDI2RYUP.js} +9 -10
  132. package/dist/{renderer-JEJT3YET.js → renderer-TSCSZ6CL.js} +2 -3
  133. package/dist/{renderer-VPIELEE5.js → renderer-VDBNC7A6.js} +8 -9
  134. package/dist/{renderer-DVNMCYHZ.js → renderer-VI34SD5V.js} +14 -14
  135. package/dist/{renderer-J5FKF423.js → renderer-W4MUMXJE.js} +7 -4
  136. package/dist/{renderer-RSK6QFWN.js → renderer-XJMVG2WJ.js} +7 -9
  137. package/dist/{state-parser-TIR2ORJY.js → state-parser-NPYTMRXP.js} +8 -3
  138. package/dist/{state-renderer-G6SUXU4J.js → state-renderer-44K2KDX7.js} +15 -19
  139. package/dist/{tag-groups-DsoVpAY-.d.ts → tag-groups-DydewK3D.d.ts} +2 -173
  140. package/dist/{themes-DRNjxX7Q.d.ts → themes-DzIH3Hjv.d.ts} +3 -2
  141. package/docs/ai-integration.md +1 -1
  142. package/docs/language-reference.md +23 -2
  143. package/gallery/fixtures/whiteboard.dgmo +3 -0
  144. package/package.json +2 -6
  145. package/dist/chunk-3Y63RFJL.js +0 -75
  146. package/dist/chunk-5DH3KYFH.js +0 -20
  147. package/dist/chunk-O753JUEZ.js +0 -67
  148. package/dist/chunk-RJNZHFNG.js +0 -51
  149. package/dist/chunk-Z6DXWULM.js +0 -23
  150. package/dist/layout-5USEVQBY.js +0 -25
  151. package/dist/{chunk-YITHYQCL.js → chunk-4FT5KQ7H.js} +7 -7
  152. package/dist/{chunk-GE7ICBX6.js → chunk-4RY5D5RE.js} +4 -4
  153. package/dist/{chunk-4QLGGQNO.js → chunk-4WQX55VX.js} +14 -14
  154. package/dist/{chunk-DGUGE67L.js → chunk-CDYV46JE.js} +3 -3
  155. package/dist/{chunk-IGKFOHBG.js → chunk-CQYFZOUC.js} +13 -13
  156. package/dist/{chunk-TKAB3FTK.js → chunk-DRQSB72S.js} +11 -11
  157. package/dist/{chunk-ZKP77MB3.js → chunk-FVTYJUXR.js} +5 -5
  158. package/dist/{chunk-MA42PIGJ.js → chunk-H5NVCOEJ.js} +4 -4
  159. package/dist/{chunk-BEA4D7OS.js → chunk-IXHWS2HI.js} +3 -3
  160. package/dist/{chunk-QKY6W4NA.js → chunk-KHL652SX.js} +25 -25
  161. package/dist/{chunk-6OIMUSDX.js → chunk-MUJVNSEW.js} +9 -9
  162. package/dist/{chunk-YO6AQU4A.js → chunk-QJOVZ4TC.js} +12 -12
  163. package/dist/{chunk-SOHZDW6N.js → chunk-UXNA2H2V.js} +3 -3
  164. package/dist/{chunk-NO3UX6AP.js → chunk-V2NQV7VL.js} +4 -4
@@ -1,18 +1,20 @@
1
- import {
2
- wrapDescriptionLines
3
- } from "./chunk-NPWVOFB3.js";
4
- import {
5
- renderInlineText
6
- } from "./chunk-S7W75MIM.js";
7
1
  import {
8
2
  renderNodeCard
9
3
  } from "./chunk-R2K5L4UA.js";
10
4
  import {
11
5
  formatDateLabel
12
- } from "./chunk-O5WUZGPV.js";
6
+ } from "./chunk-3GCASUWA.js";
13
7
  import {
14
- renderIntegratedLegend
15
- } from "./chunk-NMS5XSLX.js";
8
+ parseTimelineDate
9
+ } from "./chunk-BQO24BDM.js";
10
+ import {
11
+ layoutInlineHeader
12
+ } from "./chunk-42UJ23H3.js";
13
+ import {
14
+ TITLE_FONT_SIZE,
15
+ TITLE_FONT_WEIGHT,
16
+ TITLE_Y
17
+ } from "./chunk-VLC6WNRD.js";
16
18
  import {
17
19
  CARD_RADIUS,
18
20
  HAIRLINE_DASH,
@@ -22,22 +24,20 @@ import {
22
24
  SEPARATOR_GAP
23
25
  } from "./chunk-XCKNFFKM.js";
24
26
  import {
25
- layoutInlineHeader
26
- } from "./chunk-42UJ23H3.js";
27
+ renderIntegratedLegend
28
+ } from "./chunk-NMS5XSLX.js";
27
29
  import {
28
30
  getLegendExtent
29
31
  } from "./chunk-JILEYZ2V.js";
30
32
  import {
31
- TITLE_FONT_SIZE,
32
- TITLE_FONT_WEIGHT,
33
- TITLE_Y
34
- } from "./chunk-VLC6WNRD.js";
33
+ wrapDescriptionLines
34
+ } from "./chunk-MB2SQF7N.js";
35
+ import {
36
+ renderInlineText
37
+ } from "./chunk-65GPEV5V.js";
35
38
  import {
36
39
  FONT_FAMILY
37
40
  } from "./chunk-ICLB27PZ.js";
38
- import {
39
- parseTimelineDate
40
- } from "./chunk-BQO24BDM.js";
41
41
  import {
42
42
  UNTAGGED_TAG_COLOR,
43
43
  resolveActiveTagGroup,
@@ -1,13 +1,11 @@
1
1
  import {
2
2
  searchPlacement
3
- } from "./chunk-HXULJZA2.js";
3
+ } from "./chunk-LDDDKWL6.js";
4
4
  import {
5
5
  buildPlacedNotes,
6
- noteCanvasShift
7
- } from "./chunk-FTUMRSGT.js";
8
- import {
6
+ noteCanvasShift,
9
7
  resolveNotes
10
- } from "./chunk-O753JUEZ.js";
8
+ } from "./chunk-NJJCTEBM.js";
11
9
  import {
12
10
  measureText
13
11
  } from "./chunk-KAO7JL4I.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildMapProjection
3
- } from "./chunk-GE7ICBX6.js";
3
+ } from "./chunk-4RY5D5RE.js";
4
4
  import {
5
5
  TITLE_FONT_SIZE,
6
6
  TITLE_Y
@@ -4,7 +4,7 @@ import {
4
4
  ruleFromAnchor,
5
5
  targetToMs,
6
6
  weekdayIndex
7
- } from "./chunk-WFA6IULY.js";
7
+ } from "./chunk-URRAWU5D.js";
8
8
  import {
9
9
  now
10
10
  } from "./chunk-3DPOIW3W.js";
@@ -1,3 +1,9 @@
1
+ import {
2
+ getExtendedChartLegendGroups,
3
+ getSimpleChartLegendGroups,
4
+ parseChart,
5
+ parseExtendedChart
6
+ } from "./chunk-H6BT45SN.js";
1
7
  import {
2
8
  computeQuadrantPointLabels,
3
9
  rectCircleOverlap,
@@ -6,17 +12,6 @@ import {
6
12
  import {
7
13
  MIN_CANVAS_WIDTH
8
14
  } from "./chunk-EPDBWATV.js";
9
- import {
10
- getExtendedChartLegendGroups,
11
- getSimpleChartLegendGroups,
12
- parseChart,
13
- parseExtendedChart
14
- } from "./chunk-H6BT45SN.js";
15
- import {
16
- EMPHASIS_DIM_OPACITY,
17
- EMPHASIS_DIM_TEXT_OPACITY,
18
- resolveEmphasis
19
- } from "./chunk-2CW5ZTNH.js";
20
15
  import {
21
16
  EXPORT_HEIGHT,
22
17
  EXPORT_WIDTH,
@@ -25,19 +20,24 @@ import {
25
20
  initD3Chart,
26
21
  renderChartTitle,
27
22
  resolveExportPalette
28
- } from "./chunk-Q6W2K33N.js";
23
+ } from "./chunk-6XLMTAEX.js";
24
+ import {
25
+ EMPHASIS_DIM_OPACITY,
26
+ EMPHASIS_DIM_TEXT_OPACITY,
27
+ resolveEmphasis
28
+ } from "./chunk-2CW5ZTNH.js";
29
29
  import {
30
30
  layoutInlineHeader
31
31
  } from "./chunk-42UJ23H3.js";
32
- import {
33
- computeLegendLayout
34
- } from "./chunk-JILEYZ2V.js";
35
32
  import {
36
33
  TITLE_FONT_SIZE,
37
34
  TITLE_FONT_WEIGHT,
38
35
  TITLE_OFFSET,
39
36
  TITLE_Y
40
37
  } from "./chunk-VLC6WNRD.js";
38
+ import {
39
+ computeLegendLayout
40
+ } from "./chunk-JILEYZ2V.js";
41
41
  import {
42
42
  FONT_FAMILY
43
43
  } from "./chunk-ICLB27PZ.js";
@@ -373,6 +373,7 @@ function drawValueLabel(svg, text, x, y, color, anchor = "middle") {
373
373
  svg.append("text").attr("x", x).attr("y", y).attr("text-anchor", anchor).attr("fill", color).attr("font-size", VALUE_FONT).attr("font-family", FONT_FAMILY).text(text);
374
374
  }
375
375
  var LABEL_ROTATE_DEG = 40;
376
+ var NEVER_THIN_MAX = 12;
376
377
  var LABEL_GAP = 8;
377
378
  var LABEL_LINE_HEIGHT = 1.25;
378
379
  function spreadIndices(total, count) {
@@ -406,12 +407,12 @@ function planCategoryLabels(labels, slot, font = TICK_FONT) {
406
407
  };
407
408
  }
408
409
  const flatStride = Math.ceil(flatNeeds / slot);
409
- if (flatStride <= 2) {
410
+ if (flatStride <= 2 && n > NEVER_THIN_MAX) {
410
411
  return { rotate: false, stride: 2, height: flatHeight, keep: all(2) };
411
412
  }
412
413
  const rad = LABEL_ROTATE_DEG * Math.PI / 180;
413
414
  const rotNeeds = font * LABEL_LINE_HEIGHT / Math.sin(rad);
414
- const stride = Math.max(1, Math.ceil(rotNeeds / slot));
415
+ const stride = n <= NEVER_THIN_MAX ? 1 : Math.max(1, Math.ceil(rotNeeds / slot));
415
416
  return {
416
417
  rotate: true,
417
418
  stride,
@@ -1,12 +1,10 @@
1
- import {
2
- tryCollectNote
3
- } from "./chunk-3Y63RFJL.js";
4
- import {
5
- resolveNotes
6
- } from "./chunk-O753JUEZ.js";
7
1
  import {
8
2
  validateLabelCharacters
9
3
  } from "./chunk-N7VMGZCU.js";
4
+ import {
5
+ resolveNotes,
6
+ tryCollectNote
7
+ } from "./chunk-NJJCTEBM.js";
10
8
  import {
11
9
  displayName,
12
10
  normalizeName
@@ -4,26 +4,27 @@ import {
4
4
  } from "./chunk-26EVL454.js";
5
5
  import {
6
6
  layoutGraph
7
- } from "./chunk-5SSTVFPX.js";
7
+ } from "./chunk-WK5QEYFA.js";
8
8
  import {
9
9
  appendArrowheadMarkers
10
10
  } from "./chunk-XBJJP2HN.js";
11
- import {
12
- NOTE_BADGE_RADIUS,
13
- noteConnectorPoints,
14
- renderNoteBadge,
15
- renderNoteBox,
16
- renderNoteConnector
17
- } from "./chunk-JRWUHLRP.js";
18
11
  import {
19
12
  fitDiagramToCanvas
20
13
  } from "./chunk-EPDBWATV.js";
14
+ import {
15
+ serializeSvg
16
+ } from "./chunk-CYRB2JTN.js";
21
17
  import {
22
18
  ScaleContext
23
19
  } from "./chunk-24YPR5EH.js";
24
20
  import {
25
- renderIntegratedLegend
26
- } from "./chunk-NMS5XSLX.js";
21
+ layoutInlineHeader
22
+ } from "./chunk-42UJ23H3.js";
23
+ import {
24
+ TITLE_FONT_SIZE,
25
+ TITLE_FONT_WEIGHT,
26
+ TITLE_Y
27
+ } from "./chunk-VLC6WNRD.js";
27
28
  import {
28
29
  ARROWHEAD_HEIGHT,
29
30
  ARROWHEAD_WIDTH,
@@ -32,26 +33,25 @@ import {
32
33
  NODE_STROKE_WIDTH
33
34
  } from "./chunk-XCKNFFKM.js";
34
35
  import {
35
- layoutInlineHeader
36
- } from "./chunk-42UJ23H3.js";
37
- import {
38
- serializeSvg
39
- } from "./chunk-CYRB2JTN.js";
36
+ renderIntegratedLegend
37
+ } from "./chunk-NMS5XSLX.js";
40
38
  import {
41
39
  getLegendExtent,
42
40
  getMaxLegendReservedHeight
43
41
  } from "./chunk-JILEYZ2V.js";
44
42
  import {
45
- TITLE_FONT_SIZE,
46
- TITLE_FONT_WEIGHT,
47
- TITLE_Y
48
- } from "./chunk-VLC6WNRD.js";
43
+ parseState
44
+ } from "./chunk-M4NV5PPU.js";
45
+ import {
46
+ NOTE_BADGE_RADIUS,
47
+ noteConnectorPoints,
48
+ renderNoteBadge,
49
+ renderNoteBox,
50
+ renderNoteConnector
51
+ } from "./chunk-D6PVMUCX.js";
49
52
  import {
50
53
  FONT_FAMILY
51
54
  } from "./chunk-ICLB27PZ.js";
52
- import {
53
- parseState
54
- } from "./chunk-2YAFDND3.js";
55
55
  import {
56
56
  resolveActiveTagGroup,
57
57
  resolveGroupTagColor,
@@ -1,19 +1,21 @@
1
1
  import {
2
2
  layoutClassDiagram
3
- } from "./chunk-5EBYPETE.js";
3
+ } from "./chunk-J43OCO22.js";
4
4
  import {
5
- NOTE_BADGE_RADIUS,
6
- noteConnectorPoints,
7
- renderNoteBadge,
8
- renderNoteBox,
9
- renderNoteConnector
10
- } from "./chunk-JRWUHLRP.js";
5
+ extractExportSvg,
6
+ runInExportContainer
7
+ } from "./chunk-TOHTKLKE.js";
11
8
  import {
12
9
  ScaleContext
13
10
  } from "./chunk-24YPR5EH.js";
14
11
  import {
15
- renderIntegratedLegend
16
- } from "./chunk-NMS5XSLX.js";
12
+ layoutInlineHeader
13
+ } from "./chunk-42UJ23H3.js";
14
+ import {
15
+ TITLE_FONT_SIZE,
16
+ TITLE_FONT_WEIGHT,
17
+ TITLE_Y
18
+ } from "./chunk-VLC6WNRD.js";
17
19
  import {
18
20
  ARROWHEAD_HEIGHT,
19
21
  ARROWHEAD_WIDTH,
@@ -23,26 +25,24 @@ import {
23
25
  NODE_STROKE_WIDTH
24
26
  } from "./chunk-XCKNFFKM.js";
25
27
  import {
26
- extractExportSvg,
27
- runInExportContainer
28
- } from "./chunk-TOHTKLKE.js";
29
- import {
30
- layoutInlineHeader
31
- } from "./chunk-42UJ23H3.js";
28
+ renderIntegratedLegend
29
+ } from "./chunk-NMS5XSLX.js";
32
30
  import {
33
31
  getLegendExtent
34
32
  } from "./chunk-JILEYZ2V.js";
35
33
  import {
36
- TITLE_FONT_SIZE,
37
- TITLE_FONT_WEIGHT,
38
- TITLE_Y
39
- } from "./chunk-VLC6WNRD.js";
34
+ parseClassDiagram
35
+ } from "./chunk-KCMGIYPO.js";
36
+ import {
37
+ NOTE_BADGE_RADIUS,
38
+ noteConnectorPoints,
39
+ renderNoteBadge,
40
+ renderNoteBox,
41
+ renderNoteConnector
42
+ } from "./chunk-D6PVMUCX.js";
40
43
  import {
41
44
  FONT_FAMILY
42
45
  } from "./chunk-ICLB27PZ.js";
43
- import {
44
- parseClassDiagram
45
- } from "./chunk-Q6ZQX2HX.js";
46
46
  import {
47
47
  fillModeFromOptions,
48
48
  legendInlineRequested,
@@ -1,3 +1,6 @@
1
+ import {
2
+ extractPaletteDirective
3
+ } from "./chunk-CYTFO2LF.js";
1
4
  import {
2
5
  displayName,
3
6
  normalizeName
@@ -95,7 +98,9 @@ function parseRaci(content, palette) {
95
98
  if (!content?.trim()) {
96
99
  return fail(0, "No content provided");
97
100
  }
98
- const lines = content.split("\n");
101
+ const directive = extractPaletteDirective(content);
102
+ result.diagnostics.push(...directive.diagnostics);
103
+ const lines = directive.content.split("\n");
99
104
  let i = 0;
100
105
  for (; i < lines.length; i++) {
101
106
  const trimmed = lines[i].trim();
@@ -12,11 +12,15 @@ import {
12
12
  appendReverseArrowheadMarkers
13
13
  } from "./chunk-XBJJP2HN.js";
14
14
  import {
15
- renderInlineText
16
- } from "./chunk-S7W75MIM.js";
15
+ serializeSvg
16
+ } from "./chunk-CYRB2JTN.js";
17
17
  import {
18
- renderIntegratedLegend
19
- } from "./chunk-NMS5XSLX.js";
18
+ parseC4
19
+ } from "./chunk-IXHWS2HI.js";
20
+ import {
21
+ TITLE_FONT_SIZE,
22
+ TITLE_FONT_WEIGHT
23
+ } from "./chunk-VLC6WNRD.js";
20
24
  import {
21
25
  ARROWHEAD_HEIGHT,
22
26
  ARROWHEAD_WIDTH,
@@ -32,21 +36,17 @@ import {
32
36
  NODE_STROKE_WIDTH
33
37
  } from "./chunk-XCKNFFKM.js";
34
38
  import {
35
- serializeSvg
36
- } from "./chunk-CYRB2JTN.js";
39
+ renderIntegratedLegend
40
+ } from "./chunk-NMS5XSLX.js";
37
41
  import {
38
- TITLE_FONT_SIZE,
39
- TITLE_FONT_WEIGHT
40
- } from "./chunk-VLC6WNRD.js";
42
+ preprocessDescriptionLine
43
+ } from "./chunk-IYULMRBE.js";
44
+ import {
45
+ renderInlineText
46
+ } from "./chunk-65GPEV5V.js";
41
47
  import {
42
48
  FONT_FAMILY
43
49
  } from "./chunk-ICLB27PZ.js";
44
- import {
45
- parseC4
46
- } from "./chunk-BEA4D7OS.js";
47
- import {
48
- preprocessDescriptionLine
49
- } from "./chunk-IYULMRBE.js";
50
50
  import {
51
51
  resolveGroupTagColor,
52
52
  tagAttrKey
@@ -4,11 +4,12 @@ import {
4
4
  countSplineCrossings,
5
5
  deroutePierces,
6
6
  searchBudget
7
- } from "./chunk-X5BUX2GK.js";
7
+ } from "./chunk-ADVGV3P7.js";
8
8
 
9
9
  // src/utils/placement-search.ts
10
10
  var SEARCH_RANKERS = ["tight-tree", "longest-path"];
11
11
  var SEARCH_SEEDS = 6;
12
+ var SEED_PATIENCE = 2;
12
13
  function seeded(s) {
13
14
  return () => {
14
15
  s = s + 1831565813 | 0;
@@ -68,9 +69,12 @@ function searchPlacement(direction, place, score) {
68
69
  )
69
70
  ];
70
71
  let attempts = 1;
72
+ let losingSeeds = 0;
71
73
  for (const cfg of configs) {
72
74
  if (bestBad === 0 || attempts >= budget.maxCandidates) break;
75
+ if (losingSeeds >= SEED_PATIENCE) break;
73
76
  attempts++;
77
+ if (cfg.seed !== void 0) losingSeeds++;
74
78
  let g;
75
79
  try {
76
80
  g = place(
@@ -90,6 +94,7 @@ function searchPlacement(direction, place, score) {
90
94
  best = g;
91
95
  bestLay = lay;
92
96
  bestBad = bad;
97
+ losingSeeds = 0;
93
98
  }
94
99
  }
95
100
  const bent = deroutePierces(bestLay);
@@ -1,12 +1,9 @@
1
- import {
2
- parseInlineMarkdown
3
- } from "./chunk-S7W75MIM.js";
4
- import {
5
- safeHref
6
- } from "./chunk-Z6DXWULM.js";
7
1
  import {
8
2
  ScaleContext
9
3
  } from "./chunk-24YPR5EH.js";
4
+ import {
5
+ TITLE_FONT_SIZE
6
+ } from "./chunk-VLC6WNRD.js";
10
7
  import {
11
8
  renderIntegratedLegend
12
9
  } from "./chunk-NMS5XSLX.js";
@@ -14,8 +11,9 @@ import {
14
11
  getMaxLegendReservedHeight
15
12
  } from "./chunk-JILEYZ2V.js";
16
13
  import {
17
- TITLE_FONT_SIZE
18
- } from "./chunk-VLC6WNRD.js";
14
+ parseInlineMarkdown,
15
+ safeHref
16
+ } from "./chunk-65GPEV5V.js";
19
17
  import {
20
18
  FONT_FAMILY
21
19
  } from "./chunk-ICLB27PZ.js";
@@ -1,13 +1,7 @@
1
- import {
2
- wrapDescriptionLines
3
- } from "./chunk-NPWVOFB3.js";
4
- import {
5
- renderInlineText,
6
- stripInlineMarkdown
7
- } from "./chunk-S7W75MIM.js";
8
1
  import {
9
2
  DAY_MS,
10
3
  applyOrdinalTemplate,
4
+ dayKey,
11
5
  dayStart,
12
6
  formatCompound,
13
7
  formatCount,
@@ -18,10 +12,17 @@ import {
18
12
  ordinalFor,
19
13
  sameDay,
20
14
  splitClockSeconds
21
- } from "./chunk-WFA6IULY.js";
15
+ } from "./chunk-URRAWU5D.js";
22
16
  import {
23
17
  now
24
18
  } from "./chunk-3DPOIW3W.js";
19
+ import {
20
+ wrapDescriptionLines
21
+ } from "./chunk-MB2SQF7N.js";
22
+ import {
23
+ renderInlineText,
24
+ stripInlineMarkdown
25
+ } from "./chunk-65GPEV5V.js";
25
26
  import {
26
27
  FONT_FAMILY
27
28
  } from "./chunk-ICLB27PZ.js";
@@ -1006,6 +1007,13 @@ function renderCountdown(container, parsed, palette, isDark, exportDims) {
1006
1007
  value.attr("data-dgmo-countdown-since-label", parsed.sinceLabel);
1007
1008
  }
1008
1009
  stampRecur(value, parsed);
1010
+ if (bandKind !== null && resolved !== null) {
1011
+ value.attr("data-dgmo-countdown-band-day", dayKey(now2, parsed.tz)).attr("data-dgmo-countdown-band-on", dayKey(resolved, parsed.tz));
1012
+ svg.attr(
1013
+ "data-dgmo-countdown-redraw",
1014
+ JSON.stringify({ parsed, palette, isDark, width, height })
1015
+ );
1016
+ }
1009
1017
  if (subText) {
1010
1018
  const detailSel = svg.append("text").attr("x", stacked ? leftX : width - padX).attr("y", heroBaseline + heroFont * 0.28 + detailFont).attr("text-anchor", stacked ? "start" : "end").attr("dominant-baseline", "alphabetic").attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", detailFont).attr("font-weight", "normal").attr("data-dgmo-countdown-detail", "");
1011
1019
  paintClock(detailSel, subText, Math.round(detailFont * 0.66), bandC.now);
@@ -1,12 +1,10 @@
1
- import {
2
- tryCollectNote
3
- } from "./chunk-3Y63RFJL.js";
4
- import {
5
- resolveNotes
6
- } from "./chunk-O753JUEZ.js";
7
1
  import {
8
2
  parseInArrowLabel
9
3
  } from "./chunk-N7VMGZCU.js";
4
+ import {
5
+ resolveNotes,
6
+ tryCollectNote
7
+ } from "./chunk-NJJCTEBM.js";
10
8
  import {
11
9
  displayName,
12
10
  normalizeName
@@ -1,15 +1,13 @@
1
1
  import {
2
2
  GRAPH_DX
3
3
  } from "./chunk-TIVMAITN.js";
4
- import {
5
- tryCollectNote
6
- } from "./chunk-3Y63RFJL.js";
7
- import {
8
- resolveNotes
9
- } from "./chunk-O753JUEZ.js";
10
4
  import {
11
5
  parseInArrowLabel
12
6
  } from "./chunk-N7VMGZCU.js";
7
+ import {
8
+ resolveNotes,
9
+ tryCollectNote
10
+ } from "./chunk-NJJCTEBM.js";
13
11
  import {
14
12
  displayName,
15
13
  normalizeName
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  stripInlineMarkdown
3
- } from "./chunk-S7W75MIM.js";
3
+ } from "./chunk-65GPEV5V.js";
4
4
 
5
5
  // src/utils/wrapped-desc.ts
6
6
  var BULLET_PREFIX = "\u2022 ";
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  ScaleContext
3
3
  } from "./chunk-24YPR5EH.js";
4
- import {
5
- NODE_STROKE_WIDTH
6
- } from "./chunk-XCKNFFKM.js";
7
4
  import {
8
5
  TITLE_FONT_SIZE,
9
6
  TITLE_FONT_WEIGHT,
10
7
  TITLE_Y
11
8
  } from "./chunk-VLC6WNRD.js";
12
9
  import {
13
- FONT_FAMILY
14
- } from "./chunk-ICLB27PZ.js";
10
+ NODE_STROKE_WIDTH
11
+ } from "./chunk-XCKNFFKM.js";
15
12
  import {
16
13
  allTasks
17
- } from "./chunk-V4D2ZQBE.js";
14
+ } from "./chunk-KRPLP5LP.js";
15
+ import {
16
+ FONT_FAMILY
17
+ } from "./chunk-ICLB27PZ.js";
18
18
  import {
19
19
  VARIANTS
20
20
  } from "./chunk-4WW3SGMH.js";