@diagrammo/dgmo 0.87.0 → 0.89.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 (149) hide show
  1. package/README.md +4 -2
  2. package/dist/advanced.d.ts +47 -11
  3. package/dist/advanced.js +110 -106
  4. package/dist/{analyzer-R5UBTRO2.js → analyzer-7ZGAZIE6.js} +2 -2
  5. package/dist/block.js +26 -25
  6. package/dist/{chart-meta-PbgpGwYo.d.ts → chart-meta-Bev5Ebjr.d.ts} +1 -1
  7. package/dist/chart-meta.d.ts +2 -2
  8. package/dist/chart-meta.js +11 -11
  9. package/dist/{chart-types-Db_EGf1o.d.ts → chart-types-Bf8C5QQW.d.ts} +1 -1
  10. package/dist/{charts-d3-3BZRSZV6.js → charts-d3-KEQSUWKP.js} +10 -10
  11. package/dist/{chunk-LJFXC3IP.js → chunk-2GM7N5TV.js} +10 -10
  12. package/dist/{chunk-H2GEIFUF.js → chunk-3AQJNY65.js} +8 -8
  13. package/dist/chunk-44FTCIRI.js +438 -0
  14. package/dist/{chunk-WZ23JJ7U.js → chunk-4AJKOUBO.js} +11 -11
  15. package/dist/{chunk-YK4N6TBN.js → chunk-4R6OMKXB.js} +7 -7
  16. package/dist/{chunk-HEYGGSNQ.js → chunk-5LE2CTLS.js} +2 -2
  17. package/dist/{chunk-AGO3PFGS.js → chunk-7C2RAGPT.js} +46 -31
  18. package/dist/{chunk-VJ2KROJ5.js → chunk-7KPHRTND.js} +1 -1
  19. package/dist/{chunk-LHL6HDUL.js → chunk-7SX4IY6T.js} +84 -12
  20. package/dist/{chunk-LSQGJN5H.js → chunk-7W4XLIVH.js} +15 -15
  21. package/dist/{chunk-Q2U5635V.js → chunk-ABP5BUD6.js} +9 -430
  22. package/dist/{chunk-XUDGZJTJ.js → chunk-AZ24RI5L.js} +6 -6
  23. package/dist/{chunk-UMRZPRAN.js → chunk-BB6QKWHZ.js} +15 -15
  24. package/dist/{chunk-6I5UN4FD.js → chunk-C4FRGZGX.js} +4 -4
  25. package/dist/{chunk-3DOQOXXI.js → chunk-CNUN5GO6.js} +1 -1
  26. package/dist/{chunk-5KGM44TG.js → chunk-CX6OH5WP.js} +1 -1
  27. package/dist/{chunk-D4M25W6R.js → chunk-DDPGEGHB.js} +5 -5
  28. package/dist/{chunk-B7CU2HW5.js → chunk-DZPHN2WN.js} +9 -9
  29. package/dist/{chunk-O6MMQQLF.js → chunk-ECMA6XE2.js} +10 -10
  30. package/dist/{chunk-MGBV4JEI.js → chunk-EDXGEQW3.js} +1 -1
  31. package/dist/{chunk-FBKPSU3A.js → chunk-EXKCRXPO.js} +9 -9
  32. package/dist/{chunk-HTPZDZKQ.js → chunk-FKLE6QA3.js} +13 -13
  33. package/dist/{chunk-ERNCPKD4.js → chunk-G2KHLANR.js} +1 -1
  34. package/dist/{chunk-NJIGYGZS.js → chunk-HAMF4F3P.js} +12 -7
  35. package/dist/{chunk-UY6TEJJH.js → chunk-HJRP6PXL.js} +1 -1
  36. package/dist/{chunk-LNO3ASX5.js → chunk-HUNDJTTH.js} +1 -1
  37. package/dist/{chunk-RH2PROYG.js → chunk-I6GGMCTV.js} +4 -2
  38. package/dist/{chunk-DOXBS7F5.js → chunk-ID2K3IHI.js} +4 -4
  39. package/dist/{chunk-33FQ6HNV.js → chunk-IQ6P3HDE.js} +9 -9
  40. package/dist/{chunk-BAZT6CIF.js → chunk-ITSBBQTH.js} +7 -7
  41. package/dist/{chunk-UNNJCSSQ.js → chunk-JVZ7KFAX.js} +1 -1
  42. package/dist/{chunk-AQIBKTPG.js → chunk-K5XT7NHD.js} +3 -3
  43. package/dist/{chunk-HAH5X345.js → chunk-KATED53P.js} +1 -1
  44. package/dist/{chunk-7HWY4QAJ.js → chunk-L24LESXF.js} +1 -0
  45. package/dist/{chunk-VPASQOR3.js → chunk-LFKSHDVI.js} +1 -1
  46. package/dist/{chunk-XVSJYAK7.js → chunk-LPYYZCSI.js} +2 -2
  47. package/dist/{chunk-BV6PKJUS.js → chunk-LR6RRDWN.js} +5 -5
  48. package/dist/{chunk-DAX42XVH.js → chunk-LYLNMN77.js} +8 -8
  49. package/dist/{chunk-PJQZWJ5I.js → chunk-M2BCY7H3.js} +1015 -146
  50. package/dist/{chunk-A4XPI4YN.js → chunk-MFW6P7WH.js} +27 -0
  51. package/dist/{chunk-CFBY77QJ.js → chunk-N4BBSDWI.js} +9 -9
  52. package/dist/{chunk-IDJGV6VM.js → chunk-NIUO2TNR.js} +215 -1
  53. package/dist/{chunk-PLE2432T.js → chunk-NRPELUB6.js} +2 -2
  54. package/dist/{chunk-FM3WAVB6.js → chunk-NS7L7YKH.js} +1 -1
  55. package/dist/{chunk-YMG7JDEY.js → chunk-NSR2CGV6.js} +71 -24
  56. package/dist/{chunk-LD2JSKU3.js → chunk-OOCVGX4W.js} +15 -0
  57. package/dist/{chunk-N4XHXBDQ.js → chunk-PMNITNPR.js} +4 -4
  58. package/dist/{chunk-MSXRNVHB.js → chunk-Q6SQISHT.js} +12 -11
  59. package/dist/{chunk-UNAP6O26.js → chunk-QIOYTQDZ.js} +9 -9
  60. package/dist/{chunk-BT2WH2XT.js → chunk-RGWYZR3S.js} +1 -1
  61. package/dist/{chunk-PPH6ILHL.js → chunk-RPKBWJBB.js} +4 -4
  62. package/dist/{chunk-JD4RHBNX.js → chunk-RXIKESRI.js} +7 -7
  63. package/dist/{chunk-BMUWF77V.js → chunk-S2WE7TVK.js} +4 -4
  64. package/dist/{chunk-QFIXL3OK.js → chunk-SEKNYIMO.js} +1 -1
  65. package/dist/{chunk-FPXMCGS5.js → chunk-SLQT3JP3.js} +1 -1
  66. package/dist/{chunk-LL6D3MES.js → chunk-SOPM5PLO.js} +9 -9
  67. package/dist/{chunk-J7Q4VPBJ.js → chunk-TAP2NZEU.js} +22 -16
  68. package/dist/{chunk-RE6TVIAV.js → chunk-UKJLPA7R.js} +4 -4
  69. package/dist/{chunk-RGI64U3A.js → chunk-UQLHKLF4.js} +9 -9
  70. package/dist/{chunk-LPXC4I4R.js → chunk-UWKRPQZO.js} +61 -32
  71. package/dist/{chunk-XIFK423U.js → chunk-W7QN5BC5.js} +4 -4
  72. package/dist/{chunk-XWYR5T52.js → chunk-WEF6MXFG.js} +14 -14
  73. package/dist/{chunk-P5V63L35.js → chunk-WP22MHH6.js} +17 -17
  74. package/dist/{chunk-PUVTFUNH.js → chunk-WRCAH3UO.js} +18 -18
  75. package/dist/{chunk-N7XRBWXA.js → chunk-XJ2TBXHA.js} +10 -10
  76. package/dist/{chunk-DSG6GBUQ.js → chunk-XUCQVKLQ.js} +6 -6
  77. package/dist/{chunk-NZCSVD4M.js → chunk-Y7PSAHAY.js} +8 -8
  78. package/dist/{chunk-AAMCXQPP.js → chunk-YMFQLWZ2.js} +6 -6
  79. package/dist/completion-registry.d.ts +1 -1
  80. package/dist/completion-registry.js +4 -16
  81. package/dist/countdown.js +1 -1
  82. package/dist/{dgmo-router-F2DSURTR.js → dgmo-router-7WANZOBD.js} +11 -11
  83. package/dist/{dimensions-6QAWEGIR.js → dimensions-7MF7VSGS.js} +6 -6
  84. package/dist/{flowchart-renderer-THC6Y7EH.js → flowchart-renderer-DZQZRL2F.js} +6 -5
  85. package/dist/index.d.ts +1 -1
  86. package/dist/index.js +28 -27
  87. package/dist/{layout-P6DTD4RT.js → layout-4RRC7XU7.js} +2 -2
  88. package/dist/{layout-QX5T6ZNE.js → layout-6L3BIFEZ.js} +4 -4
  89. package/dist/{layout-SOPAVXIH.js → layout-DXVAYF6W.js} +3 -3
  90. package/dist/{layout-LUQKAGGT.js → layout-EFEZ533S.js} +4 -4
  91. package/dist/{layout-EHTYSMV4.js → layout-H4K54IW3.js} +2 -2
  92. package/dist/{layout-AM57TGN5.js → layout-IGAVGDME.js} +3 -3
  93. package/dist/{layout-5NPBHV5F.js → layout-PP36LUTA.js} +2 -2
  94. package/dist/{layout-CUFA7XJD.js → layout-Q3RYSODA.js} +4 -4
  95. package/dist/layout-XUW444O5.js +1 -1
  96. package/dist/{layout-BOVTLAOT.js → layout-ZP7XYVXF.js} +2 -2
  97. package/dist/{layout-search-VKSBUCDM.js → layout-search-YKUL4VBV.js} +105 -6
  98. package/dist/{legend-constants-ZVO4FLAK.js → legend-constants-HE7FVDJP.js} +4 -2
  99. package/dist/{palettes-BIV54XLS.js → palettes-WZAIQTEG.js} +6 -4
  100. package/dist/{parser-ACW6C6OY.js → parser-337TACHB.js} +1 -1
  101. package/dist/{parser-WUK6CP5X.js → parser-GCCWMBTU.js} +3 -3
  102. package/dist/{parser-GPW4ZHPQ.js → parser-IMM2JJX3.js} +2 -1
  103. package/dist/{parser-JXS4426S.js → parser-P4TOQYNN.js} +2 -2
  104. package/dist/{parser-PVIWHVGY.js → parser-TL3JA4RI.js} +1 -1
  105. package/dist/{parser-C327BBE3.js → parser-UTXFJG4X.js} +1 -1
  106. package/dist/{renderer-RWJ45DWH.js → renderer-2ZQ6DPVD.js} +3 -3
  107. package/dist/{renderer-NHPKNNBD.js → renderer-3AD4NDF5.js} +9 -9
  108. package/dist/{renderer-2KVQGGTT.js → renderer-43ESBXVY.js} +8 -8
  109. package/dist/{renderer-A4LMOBZL.js → renderer-4JE5ORRO.js} +12 -12
  110. package/dist/{renderer-RAATRF6W.js → renderer-5GZNGZU5.js} +7 -7
  111. package/dist/{renderer-RMGN3Q7D.js → renderer-6OQM32X3.js} +3 -3
  112. package/dist/{renderer-222OTVQV.js → renderer-7HOSI6JJ.js} +4 -4
  113. package/dist/{renderer-NX4YKWCJ.js → renderer-7L7J4DHO.js} +8 -8
  114. package/dist/{renderer-DCFQDBGJ.js → renderer-7MCC6GKH.js} +2 -2
  115. package/dist/{renderer-3FF4QVGW.js → renderer-7VQOKAII.js} +8 -8
  116. package/dist/{renderer-4BHOELCE.js → renderer-BLHN3RCY.js} +3 -3
  117. package/dist/{renderer-PQYO2HCE.js → renderer-CEIX5JPA.js} +3 -3
  118. package/dist/{renderer-2OOPQ4CH.js → renderer-CHQZES6G.js} +3 -3
  119. package/dist/{renderer-36JH4OMC.js → renderer-DBNDLKPE.js} +9 -9
  120. package/dist/{renderer-KVAQE7PQ.js → renderer-DCJ4AQ3N.js} +7 -7
  121. package/dist/{renderer-LODEVN3V.js → renderer-EAORWLVK.js} +10 -10
  122. package/dist/{renderer-XRALFCIN.js → renderer-FCXRDYSJ.js} +8 -8
  123. package/dist/{renderer-YDAVCRTP.js → renderer-IR5GGAPB.js} +8 -8
  124. package/dist/{renderer-QM23SWAM.js → renderer-J4OS77PK.js} +2 -2
  125. package/dist/{renderer-4BIMRO4X.js → renderer-JR2XNZAH.js} +6 -6
  126. package/dist/{renderer-JKV2DBYP.js → renderer-JRVY7HAD.js} +6 -6
  127. package/dist/{renderer-R34GJL7U.js → renderer-NAA7D33G.js} +11 -11
  128. package/dist/{renderer-SDUSBCJI.js → renderer-P4XCRNCY.js} +7 -7
  129. package/dist/{renderer-A6ACVK4X.js → renderer-QQHQY3GT.js} +6 -6
  130. package/dist/{renderer-YIZ7G4HU.js → renderer-TJJGFQGT.js} +13 -13
  131. package/dist/{renderer-3CTUWCO7.js → renderer-VGQMJC5K.js} +12 -12
  132. package/dist/{renderer-ELYPDPNF.js → renderer-VYWCMRWA.js} +8 -7
  133. package/dist/{renderer-WH2HWE5Z.js → renderer-WB75JME5.js} +8 -8
  134. package/dist/{renderer-BICLPGAH.js → renderer-WQ654YT5.js} +2 -2
  135. package/dist/{renderer-6BUUTWVS.js → renderer-XFEZ5UBE.js} +8 -8
  136. package/dist/{renderer-4NZZ5J2F.js → renderer-XHEMXBQM.js} +7 -7
  137. package/dist/{renderer-RENDISO5.js → renderer-YTEZK3GC.js} +12 -12
  138. package/dist/{renderer-X5A5VIRD.js → renderer-ZXQXRNDR.js} +8 -8
  139. package/dist/{renderer-radial-XZ5TKUT4.js → renderer-radial-NA5DVBG4.js} +7 -7
  140. package/dist/{state-renderer-5IQ4OJUI.js → state-renderer-4S2C2CHB.js} +9 -9
  141. package/docs/ai-integration.md +5 -3
  142. package/docs/language-reference.md +2 -2
  143. package/package.json +1 -1
  144. package/dist/{chunk-3TYUXC7D.js → chunk-2SKMEL7V.js} +0 -0
  145. package/dist/{chunk-CLQIXD2C.js → chunk-7Z2VFRP5.js} +3 -3
  146. package/dist/{chunk-NF5YKFRH.js → chunk-B3S76BZO.js} +0 -0
  147. package/dist/{chunk-UIUXIDBX.js → chunk-CUYHST3B.js} +4 -4
  148. package/dist/{chunk-GUYVKGFN.js → chunk-DPSMX4EY.js} +0 -0
  149. package/dist/{chunk-2A4DQAXG.js → chunk-IIOLFAGJ.js} +3 -3
@@ -25,7 +25,7 @@ import {
25
25
  } from "./chunk-WQ6G6FFM.js";
26
26
  import {
27
27
  parseJourneyMap
28
- } from "./chunk-NF5YKFRH.js";
28
+ } from "./chunk-B3S76BZO.js";
29
29
  import {
30
30
  parsePyramid
31
31
  } from "./chunk-PIXJL77H.js";
@@ -84,7 +84,7 @@ import {
84
84
  } from "./chunk-QFHWYWQL.js";
85
85
  import {
86
86
  parseKanban
87
- } from "./chunk-GUYVKGFN.js";
87
+ } from "./chunk-DPSMX4EY.js";
88
88
  import {
89
89
  parseC4
90
90
  } from "./chunk-GSYZZFI5.js";
@@ -93,17 +93,17 @@ import {
93
93
  } from "./chunk-GUTZCRBT.js";
94
94
  import {
95
95
  parseGantt
96
- } from "./chunk-BAZT6CIF.js";
96
+ } from "./chunk-ITSBBQTH.js";
97
97
  import {
98
98
  parseDgmoChartType
99
- } from "./chunk-AQIBKTPG.js";
99
+ } from "./chunk-K5XT7NHD.js";
100
100
  import {
101
101
  parseRaci
102
102
  } from "./chunk-3RYBTEF5.js";
103
103
  import {
104
104
  PERT_DIAGNOSTICS,
105
105
  parsePert
106
- } from "./chunk-UNNJCSSQ.js";
106
+ } from "./chunk-JVZ7KFAX.js";
107
107
  import {
108
108
  parseLiveLink
109
109
  } from "./chunk-7WGCQE2E.js";
@@ -116,7 +116,7 @@ import {
116
116
  import {
117
117
  SEQUENCE_DIAGNOSTICS,
118
118
  parseSequenceDgmo
119
- } from "./chunk-VPASQOR3.js";
119
+ } from "./chunk-LFKSHDVI.js";
120
120
  import {
121
121
  parseFlowchart
122
122
  } from "./chunk-JRUEIRJB.js";
@@ -128,7 +128,7 @@ import {
128
128
  } from "./chunk-AYOVY75O.js";
129
129
  import {
130
130
  parseClassDiagram
131
- } from "./chunk-A4XPI4YN.js";
131
+ } from "./chunk-MFW6P7WH.js";
132
132
  import {
133
133
  parseERDiagram
134
134
  } from "./chunk-WPL5PFXE.js";
@@ -561,7 +561,7 @@ function parseVisualizationFull(content, palette) {
561
561
  if (line.startsWith("//")) continue;
562
562
  const eraRange = tlLeadingRange(line);
563
563
  const eraParsed = eraRange && splitTrailingColor(eraRange.rest);
564
- if (eraRange && eraParsed && eraParsed.label) {
564
+ if (eraRange && eraParsed?.label) {
565
565
  result.timelineEras.push({
566
566
  startDate: eraRange.start,
567
567
  endDate: eraRange.end,
@@ -590,7 +590,7 @@ function parseVisualizationFull(content, palette) {
590
590
  if (line.startsWith("//")) continue;
591
591
  const markerLd = tlLeadingDate(line);
592
592
  const markerParsed = markerLd && splitTrailingColor(markerLd.rest);
593
- if (markerLd && markerParsed && markerParsed.label) {
593
+ if (markerLd && markerParsed?.label) {
594
594
  result.timelineMarkers.push({
595
595
  date: markerLd.iso,
596
596
  label: markerParsed.label,
@@ -625,7 +625,7 @@ function parseVisualizationFull(content, palette) {
625
625
  const eraInline = line.match(/^era\s+(.+)$/i);
626
626
  const eraInlineRange = eraInline && tlLeadingRange(eraInline[1]);
627
627
  const eraInlineParsed = eraInlineRange && splitTrailingColor(eraInlineRange.rest);
628
- if (eraInlineRange && eraInlineParsed && eraInlineParsed.label) {
628
+ if (eraInlineRange && eraInlineParsed?.label) {
629
629
  result.timelineEras.push({
630
630
  startDate: eraInlineRange.start,
631
631
  endDate: eraInlineRange.end,
@@ -643,7 +643,7 @@ function parseVisualizationFull(content, palette) {
643
643
  const markerInline = line.match(/^marker\s+(.+)$/i);
644
644
  const markerInlineLd = markerInline && tlLeadingDate(markerInline[1]);
645
645
  const markerInlineParsed = markerInlineLd && splitTrailingColor(markerInlineLd.rest);
646
- if (markerInlineLd && markerInlineParsed && markerInlineParsed.label) {
646
+ if (markerInlineLd && markerInlineParsed?.label) {
647
647
  result.timelineMarkers.push({
648
648
  date: markerInlineLd.iso,
649
649
  label: markerInlineParsed.label,
@@ -1878,6 +1878,7 @@ export {
1878
1878
  parseQuadrant,
1879
1879
  listDiagnosticCodes,
1880
1880
  getDiagnosticSpec,
1881
+ REGISTRY_BY_ID,
1881
1882
  getRenderCategory,
1882
1883
  isExtendedChartType,
1883
1884
  getAllChartTypes,
@@ -7,10 +7,10 @@ import {
7
7
  mutedFill,
8
8
  resolveCellColor,
9
9
  resolveColorMode
10
- } from "./chunk-LNO3ASX5.js";
10
+ } from "./chunk-HUNDJTTH.js";
11
11
  import {
12
12
  layoutInlineHeader
13
- } from "./chunk-3DOQOXXI.js";
13
+ } from "./chunk-CNUN5GO6.js";
14
14
  import {
15
15
  TITLE_FONT_SIZE,
16
16
  TITLE_FONT_WEIGHT,
@@ -18,29 +18,29 @@ import {
18
18
  } from "./chunk-VLC6WNRD.js";
19
19
  import {
20
20
  renderIntegratedLegend
21
- } from "./chunk-LHL6HDUL.js";
21
+ } from "./chunk-7SX4IY6T.js";
22
22
  import {
23
23
  getLegendExtent,
24
24
  getMaxLegendReservedHeight
25
- } from "./chunk-FM3WAVB6.js";
25
+ } from "./chunk-NS7L7YKH.js";
26
26
  import {
27
27
  FONT_FAMILY
28
28
  } from "./chunk-ICLB27PZ.js";
29
+ import {
30
+ tagAttrKey
31
+ } from "./chunk-L5AFONQU.js";
29
32
  import {
30
33
  LEGEND_GROUP_GAP
31
- } from "./chunk-RH2PROYG.js";
34
+ } from "./chunk-I6GGMCTV.js";
32
35
  import {
33
36
  measureText
34
37
  } from "./chunk-KAO7JL4I.js";
35
- import {
36
- tagAttrKey
37
- } from "./chunk-L5AFONQU.js";
38
38
  import {
39
39
  contrastText,
40
40
  getSeriesColors,
41
41
  mix,
42
42
  themeBaseBg
43
- } from "./chunk-7HWY4QAJ.js";
43
+ } from "./chunk-L24LESXF.js";
44
44
 
45
45
  // src/treemap/renderer.ts
46
46
  import * as d3Selection from "d3-selection";
@@ -26,7 +26,7 @@ import {
26
26
  contrastText,
27
27
  mix,
28
28
  themeBaseBg
29
- } from "./chunk-7HWY4QAJ.js";
29
+ } from "./chunk-L24LESXF.js";
30
30
  import {
31
31
  CATEGORICAL_COLOR_ORDER,
32
32
  resolveColor
@@ -8,17 +8,17 @@ import {
8
8
  import {
9
9
  FONT_FAMILY
10
10
  } from "./chunk-ICLB27PZ.js";
11
- import {
12
- measureText
13
- } from "./chunk-KAO7JL4I.js";
14
11
  import {
15
12
  fillModeFromOptions
16
13
  } from "./chunk-44GP7PD5.js";
14
+ import {
15
+ measureText
16
+ } from "./chunk-KAO7JL4I.js";
17
17
  import {
18
18
  contrastText,
19
19
  mix,
20
20
  shapeFill
21
- } from "./chunk-7HWY4QAJ.js";
21
+ } from "./chunk-L24LESXF.js";
22
22
 
23
23
  // src/wireframe/renderer.ts
24
24
  import * as d3Selection from "d3-selection";
@@ -12,11 +12,6 @@ import {
12
12
  import {
13
13
  FONT_FAMILY
14
14
  } from "./chunk-ICLB27PZ.js";
15
- import {
16
- measureText,
17
- truncateText,
18
- wrapTextToWidth
19
- } from "./chunk-KAO7JL4I.js";
20
15
  import {
21
16
  allTasks
22
17
  } from "./chunk-3RYBTEF5.js";
@@ -27,11 +22,16 @@ import {
27
22
  fillModeFromOptions,
28
23
  legendSuppressed
29
24
  } from "./chunk-44GP7PD5.js";
25
+ import {
26
+ measureText,
27
+ truncateText,
28
+ wrapTextToWidth
29
+ } from "./chunk-KAO7JL4I.js";
30
30
  import {
31
31
  contrastText,
32
32
  mix,
33
33
  themeBaseBg
34
- } from "./chunk-7HWY4QAJ.js";
34
+ } from "./chunk-L24LESXF.js";
35
35
 
36
36
  // src/raci/renderer.ts
37
37
  import * as d3Selection from "d3-selection";
@@ -480,7 +480,7 @@ function setupColumnHover(svg) {
480
480
  const findRole = (target) => {
481
481
  let el = target;
482
482
  while (el && el !== node) {
483
- const r = el.getAttribute && el.getAttribute("data-role-id");
483
+ const r = el.getAttribute?.("data-role-id");
484
484
  if (r) return r;
485
485
  el = el.parentElement;
486
486
  }
@@ -15,18 +15,18 @@ import {
15
15
  import {
16
16
  FONT_FAMILY
17
17
  } from "./chunk-ICLB27PZ.js";
18
+ import {
19
+ fillModeFromOptions
20
+ } from "./chunk-44GP7PD5.js";
18
21
  import {
19
22
  CHAR_WIDTH_RATIO,
20
23
  measureText
21
24
  } from "./chunk-KAO7JL4I.js";
22
- import {
23
- fillModeFromOptions
24
- } from "./chunk-44GP7PD5.js";
25
25
  import {
26
26
  contrastText,
27
27
  getSeriesColors,
28
28
  shapeFill
29
- } from "./chunk-7HWY4QAJ.js";
29
+ } from "./chunk-L24LESXF.js";
30
30
  import {
31
31
  resolveColor
32
32
  } from "./chunk-2M4IGSCY.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  serializeSvg
3
- } from "./chunk-LD2JSKU3.js";
3
+ } from "./chunk-OOCVGX4W.js";
4
4
  import {
5
5
  FONT_FAMILY
6
6
  } from "./chunk-ICLB27PZ.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  formatLocalISODate
3
- } from "./chunk-3TYUXC7D.js";
3
+ } from "./chunk-2SKMEL7V.js";
4
4
  import {
5
5
  isTagBlockHeading,
6
6
  matchTagBlockHeading
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  computeNodeText,
3
3
  layoutMindmap
4
- } from "./chunk-UIUXIDBX.js";
4
+ } from "./chunk-CUYHST3B.js";
5
5
  import {
6
6
  renderInlineText
7
7
  } from "./chunk-S7W75MIM.js";
@@ -18,30 +18,27 @@ import {
18
18
  import {
19
19
  extractExportSvg,
20
20
  runInExportContainer
21
- } from "./chunk-QFIXL3OK.js";
21
+ } from "./chunk-SEKNYIMO.js";
22
22
  import {
23
23
  layoutInlineHeader
24
- } from "./chunk-3DOQOXXI.js";
24
+ } from "./chunk-CNUN5GO6.js";
25
25
  import {
26
26
  TITLE_FONT_SIZE,
27
27
  TITLE_FONT_WEIGHT
28
28
  } from "./chunk-VLC6WNRD.js";
29
29
  import {
30
30
  renderIntegratedLegend
31
- } from "./chunk-LHL6HDUL.js";
31
+ } from "./chunk-7SX4IY6T.js";
32
32
  import {
33
33
  getLegendExtent,
34
34
  getMaxLegendReservedHeight
35
- } from "./chunk-FM3WAVB6.js";
35
+ } from "./chunk-NS7L7YKH.js";
36
36
  import {
37
37
  FONT_FAMILY
38
38
  } from "./chunk-ICLB27PZ.js";
39
39
  import {
40
40
  parseMindmap
41
41
  } from "./chunk-NGC3IZRY.js";
42
- import {
43
- LEGEND_GROUP_GAP
44
- } from "./chunk-RH2PROYG.js";
45
42
  import {
46
43
  preprocessDescriptionLine
47
44
  } from "./chunk-IYULMRBE.js";
@@ -53,10 +50,13 @@ import {
53
50
  legendInlineRequested,
54
51
  legendSuppressed
55
52
  } from "./chunk-44GP7PD5.js";
53
+ import {
54
+ LEGEND_GROUP_GAP
55
+ } from "./chunk-I6GGMCTV.js";
56
56
  import {
57
57
  contrastText,
58
58
  shapeFill
59
- } from "./chunk-7HWY4QAJ.js";
59
+ } from "./chunk-L24LESXF.js";
60
60
 
61
61
  // src/mindmap/renderer.ts
62
62
  import * as d3Selection from "d3-selection";
@@ -9,30 +9,25 @@ import {
9
9
  } from "./chunk-XCKNFFKM.js";
10
10
  import {
11
11
  serializeSvg
12
- } from "./chunk-LD2JSKU3.js";
12
+ } from "./chunk-OOCVGX4W.js";
13
13
  import {
14
14
  TITLE_FONT_SIZE,
15
15
  TITLE_FONT_WEIGHT
16
16
  } from "./chunk-VLC6WNRD.js";
17
17
  import {
18
- renderIntegratedLegend
19
- } from "./chunk-LHL6HDUL.js";
18
+ keepSwimlaneToggleFocus,
19
+ renderIntegratedLegend,
20
+ wireSwimlaneToggle
21
+ } from "./chunk-7SX4IY6T.js";
20
22
  import {
21
23
  getMaxLegendReservedHeight
22
- } from "./chunk-FM3WAVB6.js";
24
+ } from "./chunk-NS7L7YKH.js";
23
25
  import {
24
26
  FONT_FAMILY
25
27
  } from "./chunk-ICLB27PZ.js";
26
28
  import {
27
29
  parseKanban
28
- } from "./chunk-GUYVKGFN.js";
29
- import {
30
- LEGEND_HEIGHT,
31
- measureLegendText
32
- } from "./chunk-RH2PROYG.js";
33
- import {
34
- measureText
35
- } from "./chunk-KAO7JL4I.js";
30
+ } from "./chunk-DPSMX4EY.js";
36
31
  import {
37
32
  tagAttrKey
38
33
  } from "./chunk-L5AFONQU.js";
@@ -40,12 +35,19 @@ import {
40
35
  fillModeFromOptions,
41
36
  legendSuppressed
42
37
  } from "./chunk-44GP7PD5.js";
38
+ import {
39
+ LEGEND_HEIGHT,
40
+ measureLegendText
41
+ } from "./chunk-I6GGMCTV.js";
42
+ import {
43
+ measureText
44
+ } from "./chunk-KAO7JL4I.js";
43
45
  import {
44
46
  contrastText,
45
47
  mix,
46
48
  shapeFill,
47
49
  themeBaseBg
48
- } from "./chunk-7HWY4QAJ.js";
50
+ } from "./chunk-L24LESXF.js";
49
51
 
50
52
  // src/kanban/renderer.ts
51
53
  import * as d3Selection from "d3-selection";
@@ -357,6 +359,12 @@ function computeLayout(parsed, _palette, collapsedColumns, hiddenMetaGroups, sDi
357
359
  return { columns: columnLayouts, totalWidth, totalHeight };
358
360
  }
359
361
  function renderKanban(container, parsed, palette, isDark, options) {
362
+ keepSwimlaneToggleFocus(
363
+ container,
364
+ () => drawKanban(container, parsed, palette, isDark, options)
365
+ );
366
+ }
367
+ function drawKanban(container, parsed, palette, isDark, options) {
360
368
  const exportDims = options?.exportDims;
361
369
  const activeTagGroup = options?.activeTagGroup ?? null;
362
370
  const onSwimlaneChange = options?.onSwimlaneChange;
@@ -476,9 +484,7 @@ function renderKanban(container, parsed, palette, isDark, options) {
476
484
  isCurrent,
477
485
  palette
478
486
  );
479
- iconEl.append("title").text(`Group by ${groupName}`);
480
- iconEl.style("cursor", "pointer").on("click", (event) => {
481
- event.stopPropagation();
487
+ wireSwimlaneToggle(iconEl, groupName, isCurrent, true, () => {
482
488
  onSwimlaneChange?.(isCurrent ? null : groupName);
483
489
  });
484
490
  }
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  paintRootBackground
3
- } from "./chunk-QFIXL3OK.js";
3
+ } from "./chunk-SEKNYIMO.js";
4
4
  import {
5
5
  serializeSvg
6
- } from "./chunk-LD2JSKU3.js";
6
+ } from "./chunk-OOCVGX4W.js";
7
7
  import {
8
8
  TITLE_FONT_SIZE,
9
9
  TITLE_FONT_WEIGHT,
@@ -14,7 +14,7 @@ import {
14
14
  } from "./chunk-ICLB27PZ.js";
15
15
  import {
16
16
  getSeriesColors
17
- } from "./chunk-7HWY4QAJ.js";
17
+ } from "./chunk-L24LESXF.js";
18
18
 
19
19
  // src/utils/d3-helpers.ts
20
20
  import * as d3Selection from "d3-selection";
@@ -93,7 +93,7 @@ var EXPORT_WIDTH = 1200;
93
93
  var EXPORT_HEIGHT = 800;
94
94
  async function resolveExportPalette(theme, palette) {
95
95
  if (palette) return palette;
96
- const { getPalette, DEFAULT_PALETTE_ID } = await import("./palettes-BIV54XLS.js");
96
+ const { getPalette, DEFAULT_PALETTE_ID } = await import("./palettes-WZAIQTEG.js");
97
97
  const cfg = getPalette(DEFAULT_PALETTE_ID);
98
98
  return theme === "dark" ? cfg.dark : cfg.light;
99
99
  }
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-XCKNFFKM.js";
4
4
  import {
5
5
  layoutInlineHeader
6
- } from "./chunk-3DOQOXXI.js";
6
+ } from "./chunk-CNUN5GO6.js";
7
7
  import {
8
8
  TITLE_FONT_SIZE,
9
9
  TITLE_FONT_WEIGHT,
@@ -11,31 +11,31 @@ import {
11
11
  } from "./chunk-VLC6WNRD.js";
12
12
  import {
13
13
  renderIntegratedLegend
14
- } from "./chunk-LHL6HDUL.js";
14
+ } from "./chunk-7SX4IY6T.js";
15
15
  import {
16
16
  getLegendExtent,
17
17
  getMaxLegendReservedHeight
18
- } from "./chunk-FM3WAVB6.js";
18
+ } from "./chunk-NS7L7YKH.js";
19
19
  import {
20
20
  FONT_FAMILY
21
21
  } from "./chunk-ICLB27PZ.js";
22
22
  import {
23
23
  isBlockNode
24
24
  } from "./chunk-XSVWUOUZ.js";
25
+ import {
26
+ resolveTagColor,
27
+ tagAttrKey
28
+ } from "./chunk-L5AFONQU.js";
25
29
  import {
26
30
  LEGEND_GROUP_GAP
27
- } from "./chunk-RH2PROYG.js";
31
+ } from "./chunk-I6GGMCTV.js";
28
32
  import {
29
33
  measureText
30
34
  } from "./chunk-KAO7JL4I.js";
31
- import {
32
- resolveTagColor,
33
- tagAttrKey
34
- } from "./chunk-L5AFONQU.js";
35
35
  import {
36
36
  mix,
37
37
  themeBaseBg
38
- } from "./chunk-7HWY4QAJ.js";
38
+ } from "./chunk-L24LESXF.js";
39
39
 
40
40
  // src/block/renderer.ts
41
41
  import * as d3Selection from "d3-selection";
@@ -15,16 +15,26 @@ import {
15
15
  hideTooltip,
16
16
  renderChartTitle,
17
17
  showTooltip
18
- } from "./chunk-RE6TVIAV.js";
18
+ } from "./chunk-UKJLPA7R.js";
19
19
  import {
20
- renderIntegratedLegend
21
- } from "./chunk-LHL6HDUL.js";
20
+ keepSwimlaneToggleFocus,
21
+ renderIntegratedLegend,
22
+ wireSwimlaneToggle
23
+ } from "./chunk-7SX4IY6T.js";
22
24
  import {
23
25
  FONT_FAMILY
24
26
  } from "./chunk-ICLB27PZ.js";
25
27
  import {
26
28
  parseTimelineDate
27
29
  } from "./chunk-GDJW64XE.js";
30
+ import {
31
+ DEFAULT_PALETTE_ID,
32
+ getPalette
33
+ } from "./chunk-NIUO2TNR.js";
34
+ import {
35
+ resolveTagColor,
36
+ tagAttrKey
37
+ } from "./chunk-L5AFONQU.js";
28
38
  import {
29
39
  LEGEND_CAPSULE_PAD,
30
40
  LEGEND_DOT_R,
@@ -37,22 +47,14 @@ import {
37
47
  legendChromeColors,
38
48
  measureLegendText,
39
49
  truncateLegendText
40
- } from "./chunk-RH2PROYG.js";
41
- import {
42
- resolveTagColor,
43
- tagAttrKey
44
- } from "./chunk-L5AFONQU.js";
45
- import {
46
- DEFAULT_PALETTE_ID,
47
- getPalette
48
- } from "./chunk-IDJGV6VM.js";
50
+ } from "./chunk-I6GGMCTV.js";
49
51
  import {
50
52
  getEraColors,
51
53
  getSeriesColors,
52
54
  mix,
53
55
  shapeFill,
54
56
  themeBaseBg
55
- } from "./chunk-7HWY4QAJ.js";
57
+ } from "./chunk-L24LESXF.js";
56
58
 
57
59
  // src/embed/escape.ts
58
60
  var HTML_ENTITIES = {
@@ -72,6 +74,8 @@ function escapeAttr(s) {
72
74
  // src/timeline/renderer.ts
73
75
  import * as d3Scale from "d3-scale";
74
76
  import * as d3Selection from "d3-selection";
77
+ var MIN_TOP_SCALE_BAND = 26;
78
+ var MIN_BOTTOM_BAND = 30;
75
79
  function renderEras(g, eras, scale, isVertical, innerWidth, innerHeight, onEnter, onLeave, hasScale = false, _tooltip = null, palette, reservedLabelY, fillMode, outlineBg) {
76
80
  const eraColors = getEraColors(
77
81
  palette ?? getPalette(DEFAULT_PALETTE_ID).light
@@ -650,7 +654,7 @@ function renderTimelineTagLegendOverlay(container, parsed, palette, isDark, setu
650
654
  };
651
655
  const centralCallbacks = viewMode ? {} : {
652
656
  onGroupToggle: (groupName) => {
653
- currentActiveGroup = currentActiveGroup === groupName.toLowerCase() ? null : groupName.toLowerCase();
657
+ currentActiveGroup = currentActiveGroup?.toLowerCase() === groupName.toLowerCase() ? null : groupName.toLowerCase();
654
658
  drawLegend2();
655
659
  recolorEvents2();
656
660
  onTagStateChange?.(currentActiveGroup, currentSwimlaneGroup);
@@ -689,15 +693,21 @@ function renderTimelineTagLegendOverlay(container, parsed, palette, isDark, setu
689
693
  iconY,
690
694
  isSwimActive
691
695
  );
692
- iconEl.attr("data-swimlane-toggle", groupKey).on("click", (event) => {
693
- event.stopPropagation();
694
- currentSwimlaneGroup = currentSwimlaneGroup === groupKey ? null : groupKey;
695
- onTagStateChange?.(
696
- currentActiveGroup,
697
- currentSwimlaneGroup
698
- );
699
- relayout2();
700
- });
696
+ iconEl.attr("data-swimlane-toggle", groupKey);
697
+ wireSwimlaneToggle(
698
+ iconEl,
699
+ groupName,
700
+ isSwimActive,
701
+ !exportDims,
702
+ () => {
703
+ currentSwimlaneGroup = currentSwimlaneGroup === groupKey ? null : groupKey;
704
+ onTagStateChange?.(
705
+ currentActiveGroup,
706
+ currentSwimlaneGroup
707
+ );
708
+ relayout2();
709
+ }
710
+ );
701
711
  }
702
712
  }
703
713
  };
@@ -799,11 +809,12 @@ function renderTimelineHorizontalTimeSort(container, parsed, palette, isDark, se
799
809
  const MARKER_ROW_H = ctx.structural(22);
800
810
  const eraReserve = timelineEras.length > 0 ? ERA_ROW_H : 0;
801
811
  const markerReserve = timelineMarkers.length > 0 ? MARKER_ROW_H : 0;
802
- const topScaleH = timelineScale ? ctx.structural(40) : 0;
812
+ const topScaleH = timelineScale ? Math.max(ctx.structural(40), MIN_TOP_SCALE_BAND) : 0;
813
+ const hasGroupLegend = timelineGroups.length > 0 && !parsed.noLegend;
803
814
  const margin = {
804
- top: ctx.aesthetic(104) + topScaleH + eraReserve + markerReserve + tagLegendReserve,
815
+ top: 50 + (hasGroupLegend ? 54 : ctx.aesthetic(54)) + topScaleH + eraReserve + markerReserve + tagLegendReserve,
805
816
  right: ctx.aesthetic(40),
806
- bottom: ctx.aesthetic(40) + scaleMargin,
817
+ bottom: Math.max(ctx.aesthetic(40), MIN_BOTTOM_BAND) + scaleMargin,
807
818
  left: ctx.aesthetic(60)
808
819
  };
809
820
  const markerLabelY = markerReserve ? -(topScaleH + MARKER_ROW_H / 2) : 0;
@@ -874,8 +885,8 @@ function renderTimelineHorizontalTimeSort(container, parsed, palette, isDark, se
874
885
  formatBoundaryLabel(latestEndDateStr, earliestStartDateStr)
875
886
  );
876
887
  }
877
- if (timelineGroups.length > 0 && !parsed.noLegend) {
878
- const legendY = timelineScale ? -ctx.aesthetic(75) : -ctx.aesthetic(55);
888
+ if (hasGroupLegend) {
889
+ const legendY = timelineScale ? -(topScaleH + 35) : -55;
879
890
  renderTimelineGroupLegend(
880
891
  g,
881
892
  timelineGroups,
@@ -1033,7 +1044,7 @@ function renderTimelineHorizontalGrouped(container, parsed, palette, isDark, set
1033
1044
  const MARKER_ROW_H = ctx.structural(22);
1034
1045
  const eraReserve = timelineEras.length > 0 ? ERA_ROW_H : 0;
1035
1046
  const markerReserve = timelineMarkers.length > 0 ? MARKER_ROW_H : 0;
1036
- const topScaleH = timelineScale ? ctx.structural(40) : 0;
1047
+ const topScaleH = timelineScale ? Math.max(ctx.structural(40), MIN_TOP_SCALE_BAND) : 0;
1037
1048
  const maxGroupNameLen = Math.max(...lanes.map((l) => l.name.length)) + 2;
1038
1049
  const maxEventLabelLen = Math.max(
1039
1050
  0,
@@ -1044,11 +1055,11 @@ function renderTimelineHorizontalGrouped(container, parsed, palette, isDark, set
1044
1055
  ctx.aesthetic(140),
1045
1056
  maxLeftLabelLen * sCharW + ctx.aesthetic(30)
1046
1057
  );
1047
- const baseTopMargin = title ? ctx.aesthetic(50) : ctx.aesthetic(20);
1058
+ const baseTopMargin = title ? 50 : ctx.aesthetic(20);
1048
1059
  const margin = {
1049
1060
  top: baseTopMargin + topScaleH + eraReserve + markerReserve + tagLegendReserve,
1050
1061
  right: ctx.aesthetic(40),
1051
- bottom: ctx.aesthetic(40) + scaleMargin,
1062
+ bottom: Math.max(ctx.aesthetic(40), MIN_BOTTOM_BAND) + scaleMargin,
1052
1063
  left: dynamicLeftMargin
1053
1064
  };
1054
1065
  const markerLabelY = markerReserve ? -(topScaleH + MARKER_ROW_H / 2) : 0;
@@ -1136,7 +1147,7 @@ function renderTimelineHorizontalGrouped(container, parsed, palette, isDark, set
1136
1147
  g.append("rect").attr("class", "tl-group-header-bg").attr("data-group", lane.name).attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", bandH).attr("rx", sBandRx).attr("fill", shapeFill(palette, laneColor, isDark, { mode: fillMode })).style("pointer-events", "none");
1137
1148
  g.append("rect").attr("class", "tl-group-header-accent").attr("data-group", lane.name).attr("x", bandX).attr("y", bandY).attr("width", sBandAccentW).attr("height", bandH).attr("fill", laneColor).attr("clip-path", `url(#${clipId})`).style("pointer-events", "none");
1138
1149
  const headerG = g.append("g").attr("class", "tl-group-header").attr("data-group", lane.name).style("cursor", "pointer").on("mouseenter", () => fadeToGroup(g, lane.name)).on("mouseleave", () => fadeReset(g)).on("click", () => toggleGroup(lane.name));
1139
- headerG.append("text").attr("x", -margin.left + ctx.aesthetic(10)).attr("y", curY + sBarH / 2).attr("dy", "0.35em").attr("text-anchor", "start").attr("fill", textColor).attr("font-size", sLaneHeaderFont).attr("font-weight", "bold").text(`${toggleIcon} ${lane.name}`);
1150
+ headerG.append("text").attr("x", bandX + 5).attr("y", curY + sBarH / 2).attr("dy", "0.35em").attr("text-anchor", "start").attr("fill", textColor).attr("font-size", sLaneHeaderFont).attr("font-weight", "bold").text(`${toggleIcon} ${lane.name}`);
1140
1151
  if (lane.events.length > 0) {
1141
1152
  const evDates = lane.events.map((ev) => parseTimelineDate(ev.date));
1142
1153
  const evEndDates = lane.events.filter((ev) => ev.endDate).map((ev) => parseTimelineDate(ev.endDate));
@@ -1583,6 +1594,24 @@ function renderTimelineVertical(container, parsed, palette, isDark, setup, hover
1583
1594
  var timelineCollapseState = /* @__PURE__ */ new WeakMap();
1584
1595
  var tlBandClipCounter = 0;
1585
1596
  function renderTimeline(container, parsed, palette, isDark, onClickItem, exportDims, activeTagGroup, swimlaneTagGroup, onTagStateChange, viewMode, exportMode) {
1597
+ keepSwimlaneToggleFocus(
1598
+ container,
1599
+ () => drawTimeline(
1600
+ container,
1601
+ parsed,
1602
+ palette,
1603
+ isDark,
1604
+ onClickItem,
1605
+ exportDims,
1606
+ activeTagGroup,
1607
+ swimlaneTagGroup,
1608
+ onTagStateChange,
1609
+ viewMode,
1610
+ exportMode
1611
+ )
1612
+ );
1613
+ }
1614
+ function drawTimeline(container, parsed, palette, isDark, onClickItem, exportDims, activeTagGroup, swimlaneTagGroup, onTagStateChange, viewMode, exportMode) {
1586
1615
  const setup = setupTimeline(
1587
1616
  container,
1588
1617
  parsed,