@diagrammo/dgmo 0.88.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 (148) hide show
  1. package/README.md +4 -2
  2. package/dist/advanced.d.ts +41 -11
  3. package/dist/advanced.js +107 -105
  4. package/dist/{analyzer-R5UBTRO2.js → analyzer-7ZGAZIE6.js} +2 -2
  5. package/dist/block.js +25 -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-WXPBP4IT.js → chunk-44FTCIRI.js} +9 -9
  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-MVCPO6LI.js → chunk-7C2RAGPT.js} +31 -21
  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-XUDGZJTJ.js → chunk-AZ24RI5L.js} +6 -6
  22. package/dist/{chunk-UMRZPRAN.js → chunk-BB6QKWHZ.js} +15 -15
  23. package/dist/{chunk-6I5UN4FD.js → chunk-C4FRGZGX.js} +4 -4
  24. package/dist/{chunk-3DOQOXXI.js → chunk-CNUN5GO6.js} +1 -1
  25. package/dist/{chunk-5KGM44TG.js → chunk-CX6OH5WP.js} +1 -1
  26. package/dist/{chunk-D4M25W6R.js → chunk-DDPGEGHB.js} +5 -5
  27. package/dist/{chunk-B7CU2HW5.js → chunk-DZPHN2WN.js} +9 -9
  28. package/dist/{chunk-O6MMQQLF.js → chunk-ECMA6XE2.js} +10 -10
  29. package/dist/{chunk-MGBV4JEI.js → chunk-EDXGEQW3.js} +1 -1
  30. package/dist/{chunk-5LD7SHXO.js → chunk-EXKCRXPO.js} +9 -9
  31. package/dist/{chunk-HTPZDZKQ.js → chunk-FKLE6QA3.js} +13 -13
  32. package/dist/{chunk-ERNCPKD4.js → chunk-G2KHLANR.js} +1 -1
  33. package/dist/{chunk-NJIGYGZS.js → chunk-HAMF4F3P.js} +12 -7
  34. package/dist/{chunk-UY6TEJJH.js → chunk-HJRP6PXL.js} +1 -1
  35. package/dist/{chunk-LNO3ASX5.js → chunk-HUNDJTTH.js} +1 -1
  36. package/dist/{chunk-RH2PROYG.js → chunk-I6GGMCTV.js} +4 -2
  37. package/dist/{chunk-DOXBS7F5.js → chunk-ID2K3IHI.js} +4 -4
  38. package/dist/{chunk-33FQ6HNV.js → chunk-IQ6P3HDE.js} +9 -9
  39. package/dist/{chunk-BAZT6CIF.js → chunk-ITSBBQTH.js} +7 -7
  40. package/dist/{chunk-UNNJCSSQ.js → chunk-JVZ7KFAX.js} +1 -1
  41. package/dist/{chunk-AQIBKTPG.js → chunk-K5XT7NHD.js} +3 -3
  42. package/dist/{chunk-HAH5X345.js → chunk-KATED53P.js} +1 -1
  43. package/dist/{chunk-7HWY4QAJ.js → chunk-L24LESXF.js} +1 -0
  44. package/dist/{chunk-VPASQOR3.js → chunk-LFKSHDVI.js} +1 -1
  45. package/dist/{chunk-XVSJYAK7.js → chunk-LPYYZCSI.js} +2 -2
  46. package/dist/{chunk-BV6PKJUS.js → chunk-LR6RRDWN.js} +5 -5
  47. package/dist/{chunk-DAX42XVH.js → chunk-LYLNMN77.js} +8 -8
  48. package/dist/{chunk-VW52W5F6.js → chunk-M2BCY7H3.js} +101 -84
  49. package/dist/{chunk-A4XPI4YN.js → chunk-MFW6P7WH.js} +27 -0
  50. package/dist/{chunk-CFBY77QJ.js → chunk-N4BBSDWI.js} +9 -9
  51. package/dist/{chunk-IDJGV6VM.js → chunk-NIUO2TNR.js} +215 -1
  52. package/dist/{chunk-PLE2432T.js → chunk-NRPELUB6.js} +2 -2
  53. package/dist/{chunk-FM3WAVB6.js → chunk-NS7L7YKH.js} +1 -1
  54. package/dist/{chunk-YMG7JDEY.js → chunk-NSR2CGV6.js} +71 -24
  55. package/dist/{chunk-LD2JSKU3.js → chunk-OOCVGX4W.js} +15 -0
  56. package/dist/{chunk-N4XHXBDQ.js → chunk-PMNITNPR.js} +4 -4
  57. package/dist/{chunk-MSXRNVHB.js → chunk-Q6SQISHT.js} +12 -11
  58. package/dist/{chunk-UNAP6O26.js → chunk-QIOYTQDZ.js} +9 -9
  59. package/dist/{chunk-BT2WH2XT.js → chunk-RGWYZR3S.js} +1 -1
  60. package/dist/{chunk-PPH6ILHL.js → chunk-RPKBWJBB.js} +4 -4
  61. package/dist/{chunk-JD4RHBNX.js → chunk-RXIKESRI.js} +7 -7
  62. package/dist/{chunk-BMUWF77V.js → chunk-S2WE7TVK.js} +4 -4
  63. package/dist/{chunk-QFIXL3OK.js → chunk-SEKNYIMO.js} +1 -1
  64. package/dist/{chunk-FPXMCGS5.js → chunk-SLQT3JP3.js} +1 -1
  65. package/dist/{chunk-LL6D3MES.js → chunk-SOPM5PLO.js} +9 -9
  66. package/dist/{chunk-J7Q4VPBJ.js → chunk-TAP2NZEU.js} +22 -16
  67. package/dist/{chunk-RE6TVIAV.js → chunk-UKJLPA7R.js} +4 -4
  68. package/dist/{chunk-RGI64U3A.js → chunk-UQLHKLF4.js} +9 -9
  69. package/dist/{chunk-JLETTWUJ.js → chunk-UWKRPQZO.js} +49 -23
  70. package/dist/{chunk-XIFK423U.js → chunk-W7QN5BC5.js} +4 -4
  71. package/dist/{chunk-XWYR5T52.js → chunk-WEF6MXFG.js} +14 -14
  72. package/dist/{chunk-P5V63L35.js → chunk-WP22MHH6.js} +17 -17
  73. package/dist/{chunk-PUVTFUNH.js → chunk-WRCAH3UO.js} +18 -18
  74. package/dist/{chunk-N7XRBWXA.js → chunk-XJ2TBXHA.js} +10 -10
  75. package/dist/{chunk-DSG6GBUQ.js → chunk-XUCQVKLQ.js} +6 -6
  76. package/dist/{chunk-NZCSVD4M.js → chunk-Y7PSAHAY.js} +8 -8
  77. package/dist/{chunk-AAMCXQPP.js → chunk-YMFQLWZ2.js} +6 -6
  78. package/dist/completion-registry.d.ts +1 -1
  79. package/dist/completion-registry.js +4 -16
  80. package/dist/countdown.js +1 -1
  81. package/dist/{dgmo-router-F2DSURTR.js → dgmo-router-7WANZOBD.js} +11 -11
  82. package/dist/{dimensions-6QAWEGIR.js → dimensions-7MF7VSGS.js} +6 -6
  83. package/dist/{flowchart-renderer-THC6Y7EH.js → flowchart-renderer-DZQZRL2F.js} +6 -5
  84. package/dist/index.d.ts +1 -1
  85. package/dist/index.js +27 -27
  86. package/dist/{layout-P6DTD4RT.js → layout-4RRC7XU7.js} +2 -2
  87. package/dist/{layout-QX5T6ZNE.js → layout-6L3BIFEZ.js} +4 -4
  88. package/dist/{layout-SOPAVXIH.js → layout-DXVAYF6W.js} +3 -3
  89. package/dist/{layout-LUQKAGGT.js → layout-EFEZ533S.js} +4 -4
  90. package/dist/{layout-EHTYSMV4.js → layout-H4K54IW3.js} +2 -2
  91. package/dist/{layout-AM57TGN5.js → layout-IGAVGDME.js} +3 -3
  92. package/dist/{layout-5NPBHV5F.js → layout-PP36LUTA.js} +2 -2
  93. package/dist/{layout-CUFA7XJD.js → layout-Q3RYSODA.js} +4 -4
  94. package/dist/layout-XUW444O5.js +1 -1
  95. package/dist/{layout-BOVTLAOT.js → layout-ZP7XYVXF.js} +2 -2
  96. package/dist/{layout-search-VKSBUCDM.js → layout-search-YKUL4VBV.js} +105 -6
  97. package/dist/{legend-constants-ZVO4FLAK.js → legend-constants-HE7FVDJP.js} +4 -2
  98. package/dist/{palettes-BIV54XLS.js → palettes-WZAIQTEG.js} +6 -4
  99. package/dist/{parser-ACW6C6OY.js → parser-337TACHB.js} +1 -1
  100. package/dist/{parser-WUK6CP5X.js → parser-GCCWMBTU.js} +3 -3
  101. package/dist/{parser-GPW4ZHPQ.js → parser-IMM2JJX3.js} +2 -1
  102. package/dist/{parser-JXS4426S.js → parser-P4TOQYNN.js} +2 -2
  103. package/dist/{parser-PVIWHVGY.js → parser-TL3JA4RI.js} +1 -1
  104. package/dist/{parser-C327BBE3.js → parser-UTXFJG4X.js} +1 -1
  105. package/dist/{renderer-RWJ45DWH.js → renderer-2ZQ6DPVD.js} +3 -3
  106. package/dist/{renderer-NHPKNNBD.js → renderer-3AD4NDF5.js} +9 -9
  107. package/dist/{renderer-2KVQGGTT.js → renderer-43ESBXVY.js} +8 -8
  108. package/dist/{renderer-A4LMOBZL.js → renderer-4JE5ORRO.js} +12 -12
  109. package/dist/{renderer-RAATRF6W.js → renderer-5GZNGZU5.js} +7 -7
  110. package/dist/{renderer-RMGN3Q7D.js → renderer-6OQM32X3.js} +3 -3
  111. package/dist/{renderer-222OTVQV.js → renderer-7HOSI6JJ.js} +4 -4
  112. package/dist/{renderer-RNCYODNF.js → renderer-7L7J4DHO.js} +8 -8
  113. package/dist/{renderer-DCFQDBGJ.js → renderer-7MCC6GKH.js} +2 -2
  114. package/dist/{renderer-3FF4QVGW.js → renderer-7VQOKAII.js} +8 -8
  115. package/dist/{renderer-4BHOELCE.js → renderer-BLHN3RCY.js} +3 -3
  116. package/dist/{renderer-PQYO2HCE.js → renderer-CEIX5JPA.js} +3 -3
  117. package/dist/{renderer-2OOPQ4CH.js → renderer-CHQZES6G.js} +3 -3
  118. package/dist/{renderer-36JH4OMC.js → renderer-DBNDLKPE.js} +9 -9
  119. package/dist/{renderer-KVAQE7PQ.js → renderer-DCJ4AQ3N.js} +7 -7
  120. package/dist/{renderer-LODEVN3V.js → renderer-EAORWLVK.js} +10 -10
  121. package/dist/{renderer-XRALFCIN.js → renderer-FCXRDYSJ.js} +8 -8
  122. package/dist/{renderer-YDAVCRTP.js → renderer-IR5GGAPB.js} +8 -8
  123. package/dist/{renderer-QM23SWAM.js → renderer-J4OS77PK.js} +2 -2
  124. package/dist/{renderer-4BIMRO4X.js → renderer-JR2XNZAH.js} +6 -6
  125. package/dist/{renderer-JKV2DBYP.js → renderer-JRVY7HAD.js} +6 -6
  126. package/dist/{renderer-R34GJL7U.js → renderer-NAA7D33G.js} +11 -11
  127. package/dist/{renderer-SDUSBCJI.js → renderer-P4XCRNCY.js} +7 -7
  128. package/dist/{renderer-A6ACVK4X.js → renderer-QQHQY3GT.js} +6 -6
  129. package/dist/{renderer-YIZ7G4HU.js → renderer-TJJGFQGT.js} +13 -13
  130. package/dist/{renderer-TPOZOAXR.js → renderer-VGQMJC5K.js} +12 -12
  131. package/dist/{renderer-XUPLAO4B.js → renderer-VYWCMRWA.js} +7 -7
  132. package/dist/{renderer-WH2HWE5Z.js → renderer-WB75JME5.js} +8 -8
  133. package/dist/{renderer-BICLPGAH.js → renderer-WQ654YT5.js} +2 -2
  134. package/dist/{renderer-6BUUTWVS.js → renderer-XFEZ5UBE.js} +8 -8
  135. package/dist/{renderer-4NZZ5J2F.js → renderer-XHEMXBQM.js} +7 -7
  136. package/dist/{renderer-RENDISO5.js → renderer-YTEZK3GC.js} +12 -12
  137. package/dist/{renderer-X5A5VIRD.js → renderer-ZXQXRNDR.js} +8 -8
  138. package/dist/{renderer-radial-XZ5TKUT4.js → renderer-radial-NA5DVBG4.js} +7 -7
  139. package/dist/{state-renderer-5IQ4OJUI.js → state-renderer-4S2C2CHB.js} +9 -9
  140. package/docs/ai-integration.md +5 -3
  141. package/docs/language-reference.md +2 -2
  142. package/package.json +1 -1
  143. package/dist/{chunk-3TYUXC7D.js → chunk-2SKMEL7V.js} +0 -0
  144. package/dist/{chunk-CLQIXD2C.js → chunk-7Z2VFRP5.js} +3 -3
  145. package/dist/{chunk-NF5YKFRH.js → chunk-B3S76BZO.js} +0 -0
  146. package/dist/{chunk-UIUXIDBX.js → chunk-CUYHST3B.js} +4 -4
  147. package/dist/{chunk-GUYVKGFN.js → chunk-DPSMX4EY.js} +0 -0
  148. package/dist/{chunk-2A4DQAXG.js → chunk-IIOLFAGJ.js} +3 -3
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  normalizePertSourceForShare,
3
3
  resolveOrgImports
4
- } from "./chunk-FPXMCGS5.js";
4
+ } from "./chunk-SLQT3JP3.js";
5
5
  import {
6
6
  decodeDiagramUrl,
7
7
  decodeViewState,
@@ -10,22 +10,26 @@ import {
10
10
  } from "./chunk-RE27AX7O.js";
11
11
  import {
12
12
  parseDgmoChartType
13
- } from "./chunk-AQIBKTPG.js";
13
+ } from "./chunk-K5XT7NHD.js";
14
14
  import {
15
15
  parseRaci
16
16
  } from "./chunk-3RYBTEF5.js";
17
- import "./chunk-UNNJCSSQ.js";
18
- import "./chunk-3TYUXC7D.js";
17
+ import "./chunk-JVZ7KFAX.js";
18
+ import "./chunk-2SKMEL7V.js";
19
19
  import "./chunk-7WGCQE2E.js";
20
20
  import "./chunk-EQW6HOP4.js";
21
21
  import "./chunk-DAOFNU6J.js";
22
- import "./chunk-VPASQOR3.js";
22
+ import {
23
+ getAvailablePalettes,
24
+ getPalette
25
+ } from "./chunk-NIUO2TNR.js";
26
+ import "./chunk-LFKSHDVI.js";
23
27
  import "./chunk-C3Z4DX3V.js";
24
28
  import "./chunk-JRUEIRJB.js";
25
29
  import "./chunk-7TF3QOOD.js";
26
30
  import "./chunk-AYOVY75O.js";
27
31
  import "./chunk-NXMESY4J.js";
28
- import "./chunk-A4XPI4YN.js";
32
+ import "./chunk-MFW6P7WH.js";
29
33
  import "./chunk-WPL5PFXE.js";
30
34
  import "./chunk-J64NZ6NF.js";
31
35
  import "./chunk-O753JUEZ.js";
@@ -44,13 +48,9 @@ import {
44
48
  parseFirstLine
45
49
  } from "./chunk-44GP7PD5.js";
46
50
  import "./chunk-5NU7NII2.js";
47
- import {
48
- getAvailablePalettes,
49
- getPalette
50
- } from "./chunk-IDJGV6VM.js";
51
51
  import {
52
52
  hexToHSLString
53
- } from "./chunk-7HWY4QAJ.js";
53
+ } from "./chunk-L24LESXF.js";
54
54
  import "./chunk-2M4IGSCY.js";
55
55
  import "./chunk-BYU54C3S.js";
56
56
  import "./chunk-5WRI5ZAA.js";
@@ -4,7 +4,7 @@ import { P as PaletteConfig } from './tag-groups-fgxWTyyB.js';
4
4
  declare function isValidHex(value: string): boolean;
5
5
  /**
6
6
  * Register a palette. Called at module initialization.
7
- * Validates that all 19 color fields per mode are present and valid hex.
7
+ * Validates that all 23 color fields per mode are present and valid hex.
8
8
  * Throws on malformed palettes to catch errors at startup, not at render time.
9
9
  */
10
10
  declare function registerPalette(palette: PaletteConfig): void;
@@ -2,24 +2,24 @@ import {
2
2
  D3_DATA_CHART_TYPES,
3
3
  renderDataChartD3,
4
4
  supportsD3DataChart
5
- } from "./chunk-H2GEIFUF.js";
5
+ } from "./chunk-3AQJNY65.js";
6
6
  import "./chunk-KMU65FYM.js";
7
7
  import "./chunk-EPDBWATV.js";
8
8
  import "./chunk-7UDAIP6W.js";
9
9
  import "./chunk-2CW5ZTNH.js";
10
- import "./chunk-RE6TVIAV.js";
11
- import "./chunk-QFIXL3OK.js";
12
- import "./chunk-3DOQOXXI.js";
13
- import "./chunk-LD2JSKU3.js";
10
+ import "./chunk-UKJLPA7R.js";
11
+ import "./chunk-SEKNYIMO.js";
12
+ import "./chunk-CNUN5GO6.js";
13
+ import "./chunk-OOCVGX4W.js";
14
14
  import "./chunk-VLC6WNRD.js";
15
- import "./chunk-FM3WAVB6.js";
15
+ import "./chunk-NS7L7YKH.js";
16
16
  import "./chunk-ICLB27PZ.js";
17
- import "./chunk-RH2PROYG.js";
18
- import "./chunk-KAO7JL4I.js";
17
+ import "./chunk-NIUO2TNR.js";
19
18
  import "./chunk-L5AFONQU.js";
20
19
  import "./chunk-44GP7PD5.js";
21
- import "./chunk-IDJGV6VM.js";
22
- import "./chunk-7HWY4QAJ.js";
20
+ import "./chunk-I6GGMCTV.js";
21
+ import "./chunk-KAO7JL4I.js";
22
+ import "./chunk-L24LESXF.js";
23
23
  import "./chunk-2M4IGSCY.js";
24
24
  import "./chunk-BYU54C3S.js";
25
25
  import "./chunk-5WRI5ZAA.js";
@@ -18,7 +18,7 @@ import {
18
18
  } from "./chunk-XCKNFFKM.js";
19
19
  import {
20
20
  layoutInlineHeader
21
- } from "./chunk-3DOQOXXI.js";
21
+ } from "./chunk-CNUN5GO6.js";
22
22
  import {
23
23
  TITLE_FONT_SIZE,
24
24
  TITLE_FONT_WEIGHT,
@@ -26,20 +26,14 @@ import {
26
26
  } from "./chunk-VLC6WNRD.js";
27
27
  import {
28
28
  renderIntegratedLegend
29
- } from "./chunk-LHL6HDUL.js";
29
+ } from "./chunk-7SX4IY6T.js";
30
30
  import {
31
31
  getLegendExtent,
32
32
  getMaxLegendReservedHeight
33
- } from "./chunk-FM3WAVB6.js";
33
+ } from "./chunk-NS7L7YKH.js";
34
34
  import {
35
35
  FONT_FAMILY
36
36
  } from "./chunk-ICLB27PZ.js";
37
- import {
38
- LEGEND_GROUP_GAP
39
- } from "./chunk-RH2PROYG.js";
40
- import {
41
- measureText
42
- } from "./chunk-KAO7JL4I.js";
43
37
  import {
44
38
  UNTAGGED_TAG_COLOR,
45
39
  resolveTagColor,
@@ -50,12 +44,18 @@ import {
50
44
  legendInlineRequested,
51
45
  legendSuppressed
52
46
  } from "./chunk-44GP7PD5.js";
47
+ import {
48
+ LEGEND_GROUP_GAP
49
+ } from "./chunk-I6GGMCTV.js";
50
+ import {
51
+ measureText
52
+ } from "./chunk-KAO7JL4I.js";
53
53
  import {
54
54
  contrastText,
55
55
  mix,
56
56
  shapeFill,
57
57
  themeBaseBg
58
- } from "./chunk-7HWY4QAJ.js";
58
+ } from "./chunk-L24LESXF.js";
59
59
  import {
60
60
  resolveColor
61
61
  } from "./chunk-2M4IGSCY.js";
@@ -25,10 +25,10 @@ import {
25
25
  initD3Chart,
26
26
  renderChartTitle,
27
27
  resolveExportPalette
28
- } from "./chunk-RE6TVIAV.js";
28
+ } from "./chunk-UKJLPA7R.js";
29
29
  import {
30
30
  layoutInlineHeader
31
- } from "./chunk-3DOQOXXI.js";
31
+ } from "./chunk-CNUN5GO6.js";
32
32
  import {
33
33
  TITLE_FONT_SIZE,
34
34
  TITLE_FONT_WEIGHT,
@@ -37,23 +37,23 @@ import {
37
37
  } from "./chunk-VLC6WNRD.js";
38
38
  import {
39
39
  computeLegendLayout
40
- } from "./chunk-FM3WAVB6.js";
40
+ } from "./chunk-NS7L7YKH.js";
41
41
  import {
42
42
  FONT_FAMILY
43
43
  } from "./chunk-ICLB27PZ.js";
44
+ import {
45
+ tagAttrKey
46
+ } from "./chunk-L5AFONQU.js";
44
47
  import {
45
48
  LEGEND_DOT_R,
46
49
  LEGEND_ENTRY_FONT_SIZE,
47
50
  LEGEND_HEIGHT,
48
51
  LEGEND_PILL_FONT_SIZE,
49
52
  legendChromeColors
50
- } from "./chunk-RH2PROYG.js";
53
+ } from "./chunk-I6GGMCTV.js";
51
54
  import {
52
55
  measureText
53
56
  } from "./chunk-KAO7JL4I.js";
54
- import {
55
- tagAttrKey
56
- } from "./chunk-L5AFONQU.js";
57
57
  import {
58
58
  contrastText,
59
59
  getSegmentColors,
@@ -63,7 +63,7 @@ import {
63
63
  mix,
64
64
  shapeFill,
65
65
  themeBaseBg
66
- } from "./chunk-7HWY4QAJ.js";
66
+ } from "./chunk-L24LESXF.js";
67
67
 
68
68
  // src/charts-d3/natural-size.ts
69
69
  var UNCOUNTED_WIDTH = 720;
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-ABP5BUD6.js";
12
12
  import {
13
13
  layoutInlineHeader
14
- } from "./chunk-3DOQOXXI.js";
14
+ } from "./chunk-CNUN5GO6.js";
15
15
  import {
16
16
  TITLE_FONT_SIZE,
17
17
  TITLE_FONT_WEIGHT,
@@ -19,31 +19,31 @@ import {
19
19
  } from "./chunk-VLC6WNRD.js";
20
20
  import {
21
21
  renderIntegratedLegend
22
- } from "./chunk-LHL6HDUL.js";
22
+ } from "./chunk-7SX4IY6T.js";
23
23
  import {
24
24
  getLegendExtent,
25
25
  getMaxLegendReservedHeight
26
- } from "./chunk-FM3WAVB6.js";
26
+ } from "./chunk-NS7L7YKH.js";
27
27
  import {
28
28
  FONT_FAMILY
29
29
  } from "./chunk-ICLB27PZ.js";
30
+ import {
31
+ resolveTagColor,
32
+ tagAttrKey
33
+ } from "./chunk-L5AFONQU.js";
30
34
  import {
31
35
  LEGEND_GROUP_GAP
32
- } from "./chunk-RH2PROYG.js";
36
+ } from "./chunk-I6GGMCTV.js";
33
37
  import {
34
38
  measureText
35
39
  } from "./chunk-KAO7JL4I.js";
36
- import {
37
- resolveTagColor,
38
- tagAttrKey
39
- } from "./chunk-L5AFONQU.js";
40
40
  import {
41
41
  contrastText,
42
42
  getSeriesColors,
43
43
  mix,
44
44
  shapeFill,
45
45
  themeBaseBg
46
- } from "./chunk-7HWY4QAJ.js";
46
+ } from "./chunk-L24LESXF.js";
47
47
  import {
48
48
  resolveColor
49
49
  } from "./chunk-2M4IGSCY.js";
@@ -4,7 +4,7 @@ import {
4
4
  layoutC4Containers,
5
5
  layoutC4Context,
6
6
  layoutC4Deployment
7
- } from "./chunk-DAX42XVH.js";
7
+ } from "./chunk-LYLNMN77.js";
8
8
  import {
9
9
  appendArrowheadMarkers,
10
10
  appendReverseArrowheadMarkers
@@ -28,27 +28,20 @@ import {
28
28
  } from "./chunk-XCKNFFKM.js";
29
29
  import {
30
30
  serializeSvg
31
- } from "./chunk-LD2JSKU3.js";
31
+ } from "./chunk-OOCVGX4W.js";
32
32
  import {
33
33
  TITLE_FONT_SIZE,
34
34
  TITLE_FONT_WEIGHT
35
35
  } from "./chunk-VLC6WNRD.js";
36
36
  import {
37
37
  renderIntegratedLegend
38
- } from "./chunk-LHL6HDUL.js";
38
+ } from "./chunk-7SX4IY6T.js";
39
39
  import {
40
40
  FONT_FAMILY
41
41
  } from "./chunk-ICLB27PZ.js";
42
42
  import {
43
43
  parseC4
44
44
  } from "./chunk-GSYZZFI5.js";
45
- import {
46
- LEGEND_HEIGHT
47
- } from "./chunk-RH2PROYG.js";
48
- import {
49
- measureText,
50
- wrapTextToWidth
51
- } from "./chunk-KAO7JL4I.js";
52
45
  import {
53
46
  preprocessDescriptionLine
54
47
  } from "./chunk-IYULMRBE.js";
@@ -59,12 +52,19 @@ import {
59
52
  import {
60
53
  fillModeFromOptions
61
54
  } from "./chunk-44GP7PD5.js";
55
+ import {
56
+ LEGEND_HEIGHT
57
+ } from "./chunk-I6GGMCTV.js";
58
+ import {
59
+ measureText,
60
+ wrapTextToWidth
61
+ } from "./chunk-KAO7JL4I.js";
62
62
  import {
63
63
  contrastText,
64
64
  groupFill,
65
65
  mix,
66
66
  shapeFill
67
- } from "./chunk-7HWY4QAJ.js";
67
+ } from "./chunk-L24LESXF.js";
68
68
 
69
69
  // src/c4/renderer.ts
70
70
  import * as d3Selection from "d3-selection";
@@ -12,27 +12,27 @@ import {
12
12
  } from "./chunk-VLC6WNRD.js";
13
13
  import {
14
14
  renderIntegratedLegend
15
- } from "./chunk-LHL6HDUL.js";
15
+ } from "./chunk-7SX4IY6T.js";
16
16
  import {
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
+ import {
23
+ fillModeFromOptions,
24
+ legendSuppressed
25
+ } from "./chunk-44GP7PD5.js";
22
26
  import {
23
27
  measureText,
24
28
  truncateText,
25
29
  wrapTextToWidth
26
30
  } from "./chunk-KAO7JL4I.js";
27
- import {
28
- fillModeFromOptions,
29
- legendSuppressed
30
- } from "./chunk-44GP7PD5.js";
31
31
  import {
32
32
  contrastText,
33
33
  mix,
34
34
  shapeFill
35
- } from "./chunk-7HWY4QAJ.js";
35
+ } from "./chunk-L24LESXF.js";
36
36
 
37
37
  // src/tech-radar/renderer.ts
38
38
  import * as d3Selection2 from "d3-selection";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildSwatches
3
- } from "./chunk-ERNCPKD4.js";
3
+ } from "./chunk-G2KHLANR.js";
4
4
  import {
5
5
  fixedParts,
6
6
  fixedTimeCells,
@@ -21,7 +21,7 @@ import {
21
21
  contrastText,
22
22
  mix,
23
23
  themeBaseBg
24
- } from "./chunk-7HWY4QAJ.js";
24
+ } from "./chunk-L24LESXF.js";
25
25
  import {
26
26
  resolveColor
27
27
  } from "./chunk-2M4IGSCY.js";
@@ -13,23 +13,34 @@ import {
13
13
  import {
14
14
  INLINE_HEADER_PAD,
15
15
  layoutInlineHeader
16
- } from "./chunk-3DOQOXXI.js";
16
+ } from "./chunk-CNUN5GO6.js";
17
17
  import {
18
18
  TITLE_FONT_SIZE,
19
19
  TITLE_FONT_WEIGHT,
20
20
  TITLE_Y
21
21
  } from "./chunk-VLC6WNRD.js";
22
22
  import {
23
- renderIntegratedLegend
24
- } from "./chunk-LHL6HDUL.js";
23
+ keepSwimlaneToggleFocus,
24
+ renderIntegratedLegend,
25
+ wireSwimlaneToggle
26
+ } from "./chunk-7SX4IY6T.js";
25
27
  import {
26
28
  controlsGroupCapsuleWidth,
27
29
  getLegendExtent,
28
30
  getMaxLegendReservedHeight
29
- } from "./chunk-FM3WAVB6.js";
31
+ } from "./chunk-NS7L7YKH.js";
30
32
  import {
31
33
  FONT_FAMILY
32
34
  } from "./chunk-ICLB27PZ.js";
35
+ import {
36
+ normalizeName
37
+ } from "./chunk-NOTA6TEI.js";
38
+ import {
39
+ UNTAGGED_TAG_COLOR,
40
+ resolveActiveTagGroup,
41
+ resolveTagColor,
42
+ tagAttrKey
43
+ } from "./chunk-L5AFONQU.js";
33
44
  import {
34
45
  LEGEND_CAPSULE_PAD,
35
46
  LEGEND_DOT_R,
@@ -44,28 +55,19 @@ import {
44
55
  LEGEND_PILL_PAD,
45
56
  measureLegendText,
46
57
  truncateLegendText
47
- } from "./chunk-RH2PROYG.js";
58
+ } from "./chunk-I6GGMCTV.js";
48
59
  import {
49
60
  CHAR_WIDTH_RATIO,
50
61
  measureText,
51
62
  truncateText
52
63
  } from "./chunk-KAO7JL4I.js";
53
- import {
54
- normalizeName
55
- } from "./chunk-NOTA6TEI.js";
56
- import {
57
- UNTAGGED_TAG_COLOR,
58
- resolveActiveTagGroup,
59
- resolveTagColor,
60
- tagAttrKey
61
- } from "./chunk-L5AFONQU.js";
62
64
  import {
63
65
  contrastText,
64
66
  getEraColors,
65
67
  getSeriesColors,
66
68
  mix,
67
69
  shapeFill
68
- } from "./chunk-7HWY4QAJ.js";
70
+ } from "./chunk-L24LESXF.js";
69
71
 
70
72
  // src/gantt/renderer.ts
71
73
  import * as d3Scale from "d3-scale";
@@ -131,6 +133,12 @@ function appendTaskIcon(textEl, label, isMilestone, iconColor, textColor) {
131
133
  textEl.append("tspan").attr("fill", textColor).text(" " + label);
132
134
  }
133
135
  function renderGantt(container, resolved, palette, isDark, options, exportDims) {
136
+ keepSwimlaneToggleFocus(
137
+ container,
138
+ () => drawGantt(container, resolved, palette, isDark, options, exportDims)
139
+ );
140
+ }
141
+ function drawGantt(container, resolved, palette, isDark, options, exportDims) {
134
142
  container.innerHTML = "";
135
143
  bandClipCounter = 0;
136
144
  if (resolved.tasks.length === 0) return;
@@ -1326,15 +1334,17 @@ function renderTagLegend(svg, chartG, tagGroups, activeGroupName, chartLeftMargi
1326
1334
  isSwimlane,
1327
1335
  palette
1328
1336
  );
1329
- iconEl.append("title").text(`Group by ${groupName}`);
1330
- iconEl.style("cursor", "pointer").on("click", (event) => {
1331
- event.stopPropagation();
1332
- if (onSwimlaneChange) {
1333
- onSwimlaneChange(
1337
+ wireSwimlaneToggle(
1338
+ iconEl,
1339
+ groupName,
1340
+ isSwimlane,
1341
+ !!onSwimlaneChange,
1342
+ () => {
1343
+ onSwimlaneChange?.(
1334
1344
  currentSwimlaneGroup?.toLowerCase() === groupName.toLowerCase() ? null : groupName
1335
1345
  );
1336
1346
  }
1337
- });
1347
+ );
1338
1348
  }
1339
1349
  }
1340
1350
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildMapProjection
3
- } from "./chunk-BV6PKJUS.js";
3
+ } from "./chunk-LR6RRDWN.js";
4
4
  import {
5
5
  TITLE_FONT_SIZE,
6
6
  TITLE_Y
@@ -1,9 +1,12 @@
1
1
  import {
2
2
  computeLegendLayout
3
- } from "./chunk-FM3WAVB6.js";
3
+ } from "./chunk-NS7L7YKH.js";
4
4
  import {
5
5
  FONT_FAMILY
6
6
  } from "./chunk-ICLB27PZ.js";
7
+ import {
8
+ tagAttrKey
9
+ } from "./chunk-L5AFONQU.js";
7
10
  import {
8
11
  CONTROLS_ICON_PATH,
9
12
  LEGEND_DOT_R,
@@ -11,17 +14,15 @@ import {
11
14
  LEGEND_ENTRY_FONT_SIZE,
12
15
  LEGEND_HEIGHT,
13
16
  LEGEND_PILL_FONT_SIZE,
17
+ LEGEND_PILL_TOGGLE_CLASS,
14
18
  LEGEND_TOGGLE_DOT_R,
15
19
  LEGEND_TOGGLE_OFF_OPACITY,
16
20
  legendChromeColors,
17
21
  measureLegendText
18
- } from "./chunk-RH2PROYG.js";
19
- import {
20
- tagAttrKey
21
- } from "./chunk-L5AFONQU.js";
22
+ } from "./chunk-I6GGMCTV.js";
22
23
  import {
23
24
  valueRampStops
24
- } from "./chunk-7HWY4QAJ.js";
25
+ } from "./chunk-L24LESXF.js";
25
26
 
26
27
  // src/utils/legend-d3.ts
27
28
  function centerText(sel) {
@@ -45,6 +46,7 @@ function renderLegendD3(container, config, state, palette, isDark, callbacks, co
45
46
  legendG.attr("data-legend-active", null);
46
47
  }
47
48
  const { groupBg, pillBorder } = legendChromeColors(palette, isDark);
49
+ const interactive = config.mode !== "export";
48
50
  if (currentLayout.activeCapsule) {
49
51
  renderCapsule(
50
52
  legendG,
@@ -53,11 +55,12 @@ function renderLegendD3(container, config, state, palette, isDark, callbacks, co
53
55
  groupBg,
54
56
  pillBorder,
55
57
  isDark,
58
+ interactive,
56
59
  callbacks
57
60
  );
58
61
  }
59
62
  for (const pill of currentLayout.pills) {
60
- renderPill(legendG, pill, palette, groupBg, callbacks);
63
+ renderPill(legendG, pill, palette, groupBg, interactive, callbacks);
61
64
  }
62
65
  if (currentLayout.controlsGroup) {
63
66
  renderControlsGroup(
@@ -81,6 +84,7 @@ function renderLegendD3(container, config, state, palette, isDark, callbacks, co
81
84
  config.controls
82
85
  );
83
86
  }
87
+ if (interactive) restorePillFocus(legendG.node());
84
88
  }
85
89
  render();
86
90
  return {
@@ -99,11 +103,46 @@ function renderLegendD3(container, config, state, palette, isDark, callbacks, co
99
103
  }
100
104
  };
101
105
  }
102
- function renderCapsule(parent, capsule, palette, groupBg, pillBorder, isDark, callbacks) {
106
+ function wireGroupToggleKeys(target, groupName, isActive) {
107
+ target.classed(LEGEND_PILL_TOGGLE_CLASS, true).attr("role", "button").attr("tabindex", "0").attr("aria-label", groupName).attr("aria-pressed", isActive ? "true" : "false").on("keydown", (event) => {
108
+ if (event.key !== "Enter" && event.key !== " ") return;
109
+ event.preventDefault();
110
+ event.stopPropagation();
111
+ const el = event.currentTarget;
112
+ const view = el.ownerDocument.defaultView;
113
+ if (!view) return;
114
+ const host = legendHost(el);
115
+ pendingPillFocus = host ? { host, label: groupName } : null;
116
+ el.dispatchEvent(new view.MouseEvent("click", { bubbles: true }));
117
+ });
118
+ }
119
+ var pendingPillFocus = null;
120
+ function legendHost(el) {
121
+ let svg = el.ownerSVGElement;
122
+ while (svg?.ownerSVGElement) svg = svg.ownerSVGElement;
123
+ return svg?.parentElement ?? null;
124
+ }
125
+ function restorePillFocus(root) {
126
+ const pending = pendingPillFocus;
127
+ if (!pending || !root || !pending.host.contains(root)) return;
128
+ const doc = root.ownerDocument;
129
+ if (doc.activeElement && doc.activeElement !== doc.body) return;
130
+ for (const el of root.querySelectorAll(
131
+ `.${LEGEND_PILL_TOGGLE_CLASS}`
132
+ )) {
133
+ if (el.getAttribute("aria-label") === pending.label) {
134
+ pendingPillFocus = null;
135
+ el.focus();
136
+ return;
137
+ }
138
+ }
139
+ }
140
+ function renderCapsule(parent, capsule, palette, groupBg, pillBorder, isDark, interactive, callbacks) {
103
141
  const g = parent.append("g").attr("transform", `translate(${capsule.x},${capsule.y})`).attr("data-legend-group", tagAttrKey(capsule.groupName)).style("cursor", "pointer");
104
142
  g.append("rect").attr("width", capsule.width).attr("height", capsule.height).attr("rx", LEGEND_HEIGHT / 2).attr("fill", groupBg);
105
143
  const pill = capsule.pill;
106
- g.append("rect").attr("x", pill.x).attr("y", pill.y).attr("width", pill.width).attr("height", pill.height).attr("rx", pill.height / 2).attr("fill", palette.bg);
144
+ const pillRect = g.append("rect").attr("x", pill.x).attr("y", pill.y).attr("width", pill.width).attr("height", pill.height).attr("rx", pill.height / 2).attr("fill", palette.bg);
145
+ if (interactive) wireGroupToggleKeys(pillRect, capsule.groupName, true);
107
146
  g.append("rect").attr("x", pill.x).attr("y", pill.y).attr("width", pill.width).attr("height", pill.height).attr("rx", pill.height / 2).attr("fill", "none").attr("stroke", pillBorder).attr("stroke-width", 0.75);
108
147
  g.append("text").attr("x", pill.x + pill.width / 2).attr("y", LEGEND_HEIGHT / 2).attr("text-anchor", "middle").call(centerText).attr("font-size", LEGEND_PILL_FONT_SIZE).attr("font-weight", "normal").attr("fill", palette.text).attr("pointer-events", "none").attr("font-family", FONT_FAMILY).text(capsule.groupName);
109
148
  if (capsule.gradient) {
@@ -140,9 +179,10 @@ function renderCapsule(parent, capsule, palette, groupBg, pillBorder, isDark, ca
140
179
  callbacks.onGroupRendered(capsule.groupName, g, true);
141
180
  }
142
181
  }
143
- function renderPill(parent, pill, palette, groupBg, callbacks) {
182
+ function renderPill(parent, pill, palette, groupBg, interactive, callbacks) {
144
183
  const g = parent.append("g").attr("transform", `translate(${pill.x},${pill.y})`).attr("data-legend-group", tagAttrKey(pill.groupName)).style("cursor", "pointer");
145
- g.append("rect").attr("width", pill.width).attr("height", pill.height).attr("rx", pill.height / 2).attr("fill", groupBg);
184
+ const pillRect = g.append("rect").attr("width", pill.width).attr("height", pill.height).attr("rx", pill.height / 2).attr("fill", groupBg);
185
+ if (interactive) wireGroupToggleKeys(pillRect, pill.groupName, false);
146
186
  g.append("text").attr("x", pill.width / 2).attr("y", pill.height / 2).attr("text-anchor", "middle").call(centerText).attr("font-size", LEGEND_PILL_FONT_SIZE).attr("font-weight", "normal").attr("fill", palette.textMuted).attr("pointer-events", "none").attr("font-family", FONT_FAMILY).text(pill.groupName);
147
187
  if (callbacks?.onGroupToggle) {
148
188
  const cb = callbacks.onGroupToggle;
@@ -289,8 +329,40 @@ function renderIntegratedLegend(container, opts) {
289
329
  opts.width
290
330
  );
291
331
  }
332
+ var SWIMLANE_TOGGLE_CLASS = "dgmo-swimlane-toggle";
333
+ function wireSwimlaneToggle(iconEl, groupName, isActive, interactive, activate) {
334
+ const label = `Group by ${groupName}`;
335
+ iconEl.append("title").text(label);
336
+ iconEl.style("cursor", "pointer").on("click", (event) => {
337
+ event.stopPropagation();
338
+ activate();
339
+ });
340
+ if (!interactive) return;
341
+ iconEl.classed(SWIMLANE_TOGGLE_CLASS, true).attr("role", "button").attr("tabindex", "0").attr("aria-label", label).attr("aria-pressed", isActive ? "true" : "false").on("keydown", (event) => {
342
+ if (event.key !== "Enter" && event.key !== " ") return;
343
+ event.preventDefault();
344
+ event.stopPropagation();
345
+ activate();
346
+ });
347
+ }
348
+ function keepSwimlaneToggleFocus(container, render) {
349
+ const active = container.ownerDocument.activeElement;
350
+ const label = active && container.contains(active) && active.classList.contains(SWIMLANE_TOGGLE_CLASS) ? active.getAttribute("aria-label") : null;
351
+ render();
352
+ if (label === null) return;
353
+ for (const el of container.querySelectorAll(
354
+ `.${SWIMLANE_TOGGLE_CLASS}`
355
+ )) {
356
+ if (el.getAttribute("aria-label") === label) {
357
+ el.focus();
358
+ return;
359
+ }
360
+ }
361
+ }
292
362
 
293
363
  export {
294
364
  renderLegendD3,
295
- renderIntegratedLegend
365
+ renderIntegratedLegend,
366
+ wireSwimlaneToggle,
367
+ keepSwimlaneToggleFocus
296
368
  };