@aiderdesk/aiderdesk 0.61.0-dev → 0.61.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 (175) hide show
  1. package/out/renderer/assets/__vite-browser-external-2447137e-DYxpcVy9.js +4 -0
  2. package/out/renderer/assets/{_baseUniq-Z8t1Ab1g.js → _baseUniq-BPF2Herp.js} +21 -197
  3. package/out/renderer/assets/{arc-CwESpVYE.js → arc-DfPLteHF.js} +1 -1
  4. package/out/renderer/assets/{architectureDiagram-2XIMDMQ5-C490EQr5.js → architectureDiagram-Q4EWVU46-Bw0u-sSH.js} +34 -20
  5. package/out/renderer/assets/{blockDiagram-WCTKOSBZ-DbHssxrQ.js → blockDiagram-DXYQGD6D-CkfB9if8.js} +21 -8
  6. package/out/renderer/assets/{c4Diagram-IC4MRINW-BxE3GUKu.js → c4Diagram-AHTNJAMY-DweK9Liz.js} +31 -35
  7. package/out/renderer/assets/{channel-C9hJq_Xr.js → channel-C5wwrRof.js} +1 -1
  8. package/out/renderer/assets/{chunk-4BX2VUAB-ChcKNpL6.js → chunk-4BX2VUAB-0KM14cFd.js} +1 -1
  9. package/out/renderer/assets/{chunk-WL4C6EOR-vhby2fZi.js → chunk-4TB4RGXK-CmVtCVL4.js} +121 -82
  10. package/out/renderer/assets/{chunk-55IACEB6-oLT9lXTt.js → chunk-55IACEB6-BzVYZvBM.js} +1 -1
  11. package/out/renderer/assets/{chunk-KX2RTZJC-D32tV7H-.js → chunk-EDXVE4YY-BryQl5Kv.js} +1 -1
  12. package/out/renderer/assets/{chunk-FMBD7UC4-B5k8rETe.js → chunk-FMBD7UC4-CRiLea_e.js} +1 -1
  13. package/out/renderer/assets/{chunk-NQ4KR5QH-Bmqo2FpL.js → chunk-OYMX7WX6-Cpi4N3NO.js} +32 -15
  14. package/out/renderer/assets/{chunk-QZHKN3VN-8BpGifjS.js → chunk-QZHKN3VN-BT8kABWC.js} +1 -1
  15. package/out/renderer/assets/{chunk-JSJVCQXG-DtjSx6Cj.js → chunk-YZCP3GAM-OLZV_Sef.js} +1 -1
  16. package/out/renderer/assets/{classDiagram-VBA2DB6C-BxRSSb9e.js → classDiagram-6PBFFD2Q-VdE6G90i.js} +6 -6
  17. package/out/renderer/assets/{classDiagram-v2-RAHNMMFH-BxRSSb9e.js → classDiagram-v2-HSJHXN6E-VdE6G90i.js} +6 -6
  18. package/out/renderer/assets/{clone-D9a-uIZa.js → clone-DwQZ86nS.js} +1 -1
  19. package/out/renderer/assets/{cose-bilkent-S5V4N54A-CUqqQ-6R.js → cose-bilkent-S5V4N54A-BEcAKM9H.js} +1 -1
  20. package/out/renderer/assets/{dagre-KLK3FWXG-ORIwMMhq.js → dagre-KV5264BT-BcFQYL1M.js} +6 -6
  21. package/out/renderer/assets/diagram-5BDNPKRD-GrUNdC1u.js +171 -0
  22. package/out/renderer/assets/{diagram-E7M64L7V-bS9HcoDQ.js → diagram-G4DWMVQ6-CG4S-ov5.js} +15 -13
  23. package/out/renderer/assets/{diagram-IFDJBPK2-BRlTIR0J.js → diagram-MMDJMWI5-9ogY3MRC.js} +5 -6
  24. package/out/renderer/assets/{diagram-P4PSJMXO-jsjGwH-p.js → diagram-TYMM5635-Ck7mI1bS.js} +5 -6
  25. package/out/renderer/assets/{erDiagram-INFDFZHY-DGlgjHOQ.js → erDiagram-SMLLAGMA-Dvf_c-7M.js} +81 -35
  26. package/out/renderer/assets/{flowDiagram-PKNHOUZH-CzLC87bM.js → flowDiagram-DWJPFMVM-CPDjOXYp.js} +27 -45
  27. package/out/renderer/assets/{ganttDiagram-A5KZAMGK-BbDv36wT.js → ganttDiagram-T4ZO3ILL-B4dJrK-3.js} +17 -8
  28. package/out/renderer/assets/{gitGraphDiagram-K3NZZRJ6-CBQnBjEi.js → gitGraphDiagram-UUTBAWPF-De2eCfMN.js} +244 -67
  29. package/out/renderer/assets/{graph-Dl5N6maZ.js → graph-BFn23kR_.js} +175 -3
  30. package/out/renderer/assets/{index-MDHavDF9.js → index-BL-57WPa.js} +15877 -20787
  31. package/out/renderer/assets/{index-CDCy_DhA.css → index-BkntVzTm.css} +114 -301
  32. package/out/renderer/assets/{infoDiagram-LFFYTUFH-GtEDBEmz.js → infoDiagram-42DDH7IO-BIt9B6mQ.js} +5 -6
  33. package/out/renderer/assets/{ishikawaDiagram-PHBUUO56-Uj90gr3I.js → ishikawaDiagram-UXIWVN3A-CXZs0KGV.js} +3 -3
  34. package/out/renderer/assets/{journeyDiagram-4ABVD52K-DekFuOwS.js → journeyDiagram-VCZTEJTY-B-EXuj5b.js} +14 -13
  35. package/out/renderer/assets/{kanban-definition-K7BYSVSG-Hfz2L6NS.js → kanban-definition-6JOO6SKY-ByvN0qaD.js} +5 -2
  36. package/out/renderer/assets/{layout-B9K2VT39.js → layout-BpybWUv6.js} +117 -4
  37. package/out/renderer/assets/min-DB8ixvoT.js +41 -0
  38. package/out/renderer/assets/{mindmap-definition-YRQLILUH-DDcS7_GH.js → mindmap-definition-QFDTVHPH-Do-I-At8.js} +69 -13
  39. package/out/renderer/assets/{pieDiagram-SKSYHLDU-DwjEcJ0Q.js → pieDiagram-DEJITSTG-Cnpf6Gt6.js} +20 -13
  40. package/out/renderer/assets/{quadrantDiagram-337W2JSQ-CpGqN7vo.js → quadrantDiagram-34T5L4WZ-VcOb1qLd.js} +1 -1
  41. package/out/renderer/assets/{requirementDiagram-Z7DCOOCP-qDRUf1ip.js → requirementDiagram-MS252O5E-VJs9Hpaw.js} +42 -11
  42. package/out/renderer/assets/{sankeyDiagram-WA2Y5GQK-DRKS8C1H.js → sankeyDiagram-XADWPNL6-BoXxgLvi.js} +1 -1
  43. package/out/renderer/assets/{sequenceDiagram-2WXFIKYE-DhVN2ug2.js → sequenceDiagram-FGHM5R23-b69hQjSp.js} +446 -220
  44. package/out/renderer/assets/{stateDiagram-RAJIS63D-BpP4eSqu.js → stateDiagram-FHFEXIEX-BK7E-REm.js} +10 -9
  45. package/out/renderer/assets/{stateDiagram-v2-FVOUBMTO-B_qQJqra.js → stateDiagram-v2-QKLJ7IA2-Cd2wfCQu.js} +4 -4
  46. package/out/renderer/assets/{timeline-definition-YZTLITO2-UoWXE_76.js → timeline-definition-GMOUNBTQ-Bl-MTfK5.js} +445 -71
  47. package/out/renderer/assets/{vennDiagram-LZ73GAT5-Dp1FZ609.js → vennDiagram-DHZGUBPP-DNmr1k2L.js} +1 -1
  48. package/out/renderer/assets/{treemap-KZPCXAKY-W2a2L6ff.js → wardley-RL74JXVD-DTbxPMj9.js} +1474 -977
  49. package/out/renderer/assets/wardleyDiagram-NUSXRM2D-BWw08wtD.js +901 -0
  50. package/out/renderer/assets/{xychartDiagram-JWTSCODW-CTzYHTbD.js → xychartDiagram-5P7HB3ND-EEYPnLDT.js} +20 -4
  51. package/out/renderer/index.html +3 -3
  52. package/out/renderer/progress.html +212 -62
  53. package/out/resources/mcp-server/aider-desk-mcp-server.js +642 -402
  54. package/out/runner.js +976 -386
  55. package/package.json +2 -3
  56. package/out/renderer/assets/_basePickBy-BWoXHZ8Z.js +0 -161
  57. package/out/renderer/assets/apl-fqmucPXA.js +0 -140
  58. package/out/renderer/assets/asciiarmor-DucZyvP0.js +0 -56
  59. package/out/renderer/assets/asn1-BnOEsgAm.js +0 -144
  60. package/out/renderer/assets/asterisk-QAlztEwS.js +0 -345
  61. package/out/renderer/assets/brainfuck-DZVCuF_t.js +0 -53
  62. package/out/renderer/assets/clike-xqXYL6ge.js +0 -805
  63. package/out/renderer/assets/clojure-BhXMqnxz.js +0 -849
  64. package/out/renderer/assets/cmake-BGaNd9E7.js +0 -71
  65. package/out/renderer/assets/cobol-4yqQntpt.js +0 -120
  66. package/out/renderer/assets/coffeescript-D2dXvhEc.js +0 -308
  67. package/out/renderer/assets/commonlisp-CF_VNHQR.js +0 -130
  68. package/out/renderer/assets/crystal-DyuLTqLs.js +0 -398
  69. package/out/renderer/assets/css-c-jst79C.js +0 -1783
  70. package/out/renderer/assets/cypher-Dlu_3r4V.js +0 -121
  71. package/out/renderer/assets/d-UURgV0Ux.js +0 -179
  72. package/out/renderer/assets/diff-B_Bi2Crb.js +0 -25
  73. package/out/renderer/assets/dockerfile-Bvk733Ga.js +0 -201
  74. package/out/renderer/assets/dtd-Dy74G54E.js +0 -114
  75. package/out/renderer/assets/dylan-TSb-Nfix.js +0 -314
  76. package/out/renderer/assets/ebnf-4fKAGW3a.js +0 -140
  77. package/out/renderer/assets/ecl-B59qGGVg.js +0 -178
  78. package/out/renderer/assets/eiffel-Dze7nlu3.js +0 -134
  79. package/out/renderer/assets/elm-DG7jkhNZ.js +0 -176
  80. package/out/renderer/assets/erlang-BO6gOnGA.js +0 -674
  81. package/out/renderer/assets/factor-CMxFHDqz.js +0 -65
  82. package/out/renderer/assets/fcl-CDDUNjTj.js +0 -141
  83. package/out/renderer/assets/forth-B9D2JCeE.js +0 -116
  84. package/out/renderer/assets/fortran-CAG2BFbe.js +0 -467
  85. package/out/renderer/assets/gas-d3KEcW3x.js +0 -294
  86. package/out/renderer/assets/gherkin-DhZlEZiy.js +0 -115
  87. package/out/renderer/assets/groovy-CpwJiBl7.js +0 -223
  88. package/out/renderer/assets/haskell-ySd-OUo8.js +0 -459
  89. package/out/renderer/assets/haxe-7MlzfeYV.js +0 -514
  90. package/out/renderer/assets/http-BqypyemW.js +0 -79
  91. package/out/renderer/assets/idl-4HIGJlDI.js +0 -985
  92. package/out/renderer/assets/index-6qedlt0q.js +0 -689
  93. package/out/renderer/assets/index-86jDpUJn.js +0 -385
  94. package/out/renderer/assets/index-BRjO8ber.js +0 -332
  95. package/out/renderer/assets/index-BVgw7j0d.js +0 -312
  96. package/out/renderer/assets/index-BhkyI1q3.js +0 -642
  97. package/out/renderer/assets/index-BqrmLPkg.js +0 -82
  98. package/out/renderer/assets/index-BuPbw4xM.js +0 -178
  99. package/out/renderer/assets/index-CTO-LPBg.js +0 -311
  100. package/out/renderer/assets/index-CTO4SzlI.js +0 -97
  101. package/out/renderer/assets/index-CZ9IQK_0.js +0 -2488
  102. package/out/renderer/assets/index-CZxsVxBZ.js +0 -1765
  103. package/out/renderer/assets/index-DIXV-3Xn.js +0 -406
  104. package/out/renderer/assets/index-DNzOtZX5.js +0 -61
  105. package/out/renderer/assets/index-DZtJe7oC.js +0 -1019
  106. package/out/renderer/assets/index-DaWjZz_g.js +0 -291
  107. package/out/renderer/assets/index-De056HHR.js +0 -151
  108. package/out/renderer/assets/index-Dk3wSDSN.js +0 -117
  109. package/out/renderer/assets/index-Dy4VRsnA.js +0 -1041
  110. package/out/renderer/assets/index-FnnayPBc.js +0 -82
  111. package/out/renderer/assets/index-MZb_zy6R.js +0 -704
  112. package/out/renderer/assets/index-chzQl8rJ.js +0 -157
  113. package/out/renderer/assets/index-s-Owx3Pm.js +0 -327
  114. package/out/renderer/assets/javascript-C_OHM9hj.js +0 -994
  115. package/out/renderer/assets/julia-Bs6JJhYG.js +0 -407
  116. package/out/renderer/assets/livescript-DmzgM3Yt.js +0 -296
  117. package/out/renderer/assets/lua-8cJgIlqe.js +0 -256
  118. package/out/renderer/assets/mathematica-DNLOL9PQ.js +0 -110
  119. package/out/renderer/assets/mbox-Ga7d4MMN.js +0 -117
  120. package/out/renderer/assets/mirc-Dma3B8rS.js +0 -107
  121. package/out/renderer/assets/mllike-DHn7xckP.js +0 -334
  122. package/out/renderer/assets/modelica-0d55jYY0.js +0 -147
  123. package/out/renderer/assets/mscgen-DdqZYINH.js +0 -135
  124. package/out/renderer/assets/mumps-Btr8VblO.js +0 -93
  125. package/out/renderer/assets/nginx-DTDtBDVN.js +0 -141
  126. package/out/renderer/assets/nsis-3zG7tgur.js +0 -62
  127. package/out/renderer/assets/ntriples-CvgOYMpL.js +0 -153
  128. package/out/renderer/assets/octave-DYBj3-tl.js +0 -200
  129. package/out/renderer/assets/oz-R_e8WMIi.js +0 -231
  130. package/out/renderer/assets/pascal-GD8iposT.js +0 -105
  131. package/out/renderer/assets/perl-DL9mHpoi.js +0 -1105
  132. package/out/renderer/assets/pig-C_4T4YIV.js +0 -101
  133. package/out/renderer/assets/powershell-B0suO7Vd.js +0 -328
  134. package/out/renderer/assets/properties-BR-vP1aU.js +0 -58
  135. package/out/renderer/assets/protobuf-BxgpyhoW.js +0 -77
  136. package/out/renderer/assets/pug-CTXt1f8z.js +0 -405
  137. package/out/renderer/assets/puppet-Bdao66PW.js +0 -137
  138. package/out/renderer/assets/python-CvWbmiX4.js +0 -427
  139. package/out/renderer/assets/q-CrbCVq4a.js +0 -131
  140. package/out/renderer/assets/r-V7nswm59.js +0 -170
  141. package/out/renderer/assets/rpm-C-DLY-If.js +0 -109
  142. package/out/renderer/assets/ruby-JDKLJNK0.js +0 -330
  143. package/out/renderer/assets/sas-D2UG-yhZ.js +0 -207
  144. package/out/renderer/assets/scheme-BKzrkGJD.js +0 -222
  145. package/out/renderer/assets/shell-BlsXDxCn.js +0 -222
  146. package/out/renderer/assets/sieve-CjwBwOY5.js +0 -135
  147. package/out/renderer/assets/simple-mode-DMneyfDu.js +0 -130
  148. package/out/renderer/assets/smalltalk-BOIGQuhN.js +0 -121
  149. package/out/renderer/assets/solr-CwD7U71z.js +0 -69
  150. package/out/renderer/assets/sparql-DYskk2vE.js +0 -249
  151. package/out/renderer/assets/spreadsheet-Bgtt3oLP.js +0 -87
  152. package/out/renderer/assets/sql-BSrOzCRI.js +0 -354
  153. package/out/renderer/assets/stex-B6LNC55o.js +0 -231
  154. package/out/renderer/assets/stylus-BkS-boTH.js +0 -565
  155. package/out/renderer/assets/swift-FRZi1uvB.js +0 -291
  156. package/out/renderer/assets/tcl-CUcaCdmq.js +0 -114
  157. package/out/renderer/assets/textile-BnFpjsrl.js +0 -414
  158. package/out/renderer/assets/tiddlywiki-CjprD-Qp.js +0 -218
  159. package/out/renderer/assets/tiki-DK9DOeWn.js +0 -268
  160. package/out/renderer/assets/toml-BOuWGMcf.js +0 -76
  161. package/out/renderer/assets/troff-E1bJ0PPL.js +0 -61
  162. package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +0 -133
  163. package/out/renderer/assets/ttcn-tKd4HLu4.js +0 -192
  164. package/out/renderer/assets/turtle-Dq7-1WAf.js +0 -124
  165. package/out/renderer/assets/vb-Dp90gtsv.js +0 -196
  166. package/out/renderer/assets/vbscript-CI6_mxxU.js +0 -479
  167. package/out/renderer/assets/velocity-BwIZK1TH.js +0 -149
  168. package/out/renderer/assets/verilog-DDCYnHN8.js +0 -430
  169. package/out/renderer/assets/vhdl-DCkMIyT9.js +0 -158
  170. package/out/renderer/assets/webidl-BTLTThCm.js +0 -204
  171. package/out/renderer/assets/xquery-BrBUuxMR.js +0 -525
  172. package/out/renderer/assets/yacas-b5lAVEIl.js +0 -130
  173. package/out/renderer/assets/z80-BZV19vqv.js +0 -93
  174. package/scripts/download-uv.mjs +0 -147
  175. /package/patches/{ai+5.0.161.patch → ai+5.0.167.patch} +0 -0
@@ -1,65 +1,71 @@
1
- import { _ as __name, c as getConfig2, l as log, d as select, Y as setupGraphViewbox, $ as isDark, a0 as lighten, a1 as darken, C as __export, a2 as commonDb_exports, z as clear } from "./index-MDHavDF9.js";
2
- import { d as d3arc } from "./arc-CwESpVYE.js";
1
+ import { _ as __name, D as getConfig, Y as isDark, $ as lighten, a0 as darken, c as getConfig2, l as log, I as selectSvgElement, R as parseFontSize, a1 as setupGraphViewbox, d as select, C as __export, a2 as commonDb_exports, z as clear } from "./index-BL-57WPa.js";
2
+ import { d as d3arc } from "./arc-DfPLteHF.js";
3
3
  var parser = (function() {
4
4
  var o = /* @__PURE__ */ __name(function(k, v, o2, l) {
5
5
  for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v) ;
6
6
  return o2;
7
- }, "o"), $V0 = [6, 8, 10, 11, 12, 14, 16, 17, 20, 21], $V1 = [1, 9], $V2 = [1, 10], $V3 = [1, 11], $V4 = [1, 12], $V5 = [1, 13], $V6 = [1, 16], $V7 = [1, 17];
7
+ }, "o"), $V0 = [6, 11, 13, 14, 15, 17, 19, 20, 23, 24], $V1 = [1, 12], $V2 = [1, 13], $V3 = [1, 14], $V4 = [1, 15], $V5 = [1, 16], $V6 = [1, 19], $V7 = [1, 20];
8
8
  var parser2 = {
9
9
  trace: /* @__PURE__ */ __name(function trace() {
10
10
  }, "trace"),
11
11
  yy: {},
12
- symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "line": 7, "SPACE": 8, "statement": 9, "NEWLINE": 10, "title": 11, "acc_title": 12, "acc_title_value": 13, "acc_descr": 14, "acc_descr_value": 15, "acc_descr_multiline_value": 16, "section": 17, "period_statement": 18, "event_statement": 19, "period": 20, "event": 21, "$accept": 0, "$end": 1 },
13
- terminals_: { 2: "error", 4: "timeline", 6: "EOF", 8: "SPACE", 10: "NEWLINE", 11: "title", 12: "acc_title", 13: "acc_title_value", 14: "acc_descr", 15: "acc_descr_value", 16: "acc_descr_multiline_value", 17: "section", 20: "period", 21: "event" },
14
- productions_: [0, [3, 3], [5, 0], [5, 2], [7, 2], [7, 1], [7, 1], [7, 1], [9, 1], [9, 2], [9, 2], [9, 1], [9, 1], [9, 1], [9, 1], [18, 1], [19, 1]],
12
+ symbols_: { "error": 2, "start": 3, "timeline_header": 4, "document": 5, "EOF": 6, "timeline": 7, "timeline_lr": 8, "timeline_td": 9, "line": 10, "SPACE": 11, "statement": 12, "NEWLINE": 13, "title": 14, "acc_title": 15, "acc_title_value": 16, "acc_descr": 17, "acc_descr_value": 18, "acc_descr_multiline_value": 19, "section": 20, "period_statement": 21, "event_statement": 22, "period": 23, "event": 24, "$accept": 0, "$end": 1 },
13
+ terminals_: { 2: "error", 6: "EOF", 7: "timeline", 8: "timeline_lr", 9: "timeline_td", 11: "SPACE", 13: "NEWLINE", 14: "title", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 23: "period", 24: "event" },
14
+ productions_: [0, [3, 3], [4, 1], [4, 1], [4, 1], [5, 0], [5, 2], [10, 2], [10, 1], [10, 1], [10, 1], [12, 1], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [21, 1], [22, 1]],
15
15
  performAction: /* @__PURE__ */ __name(function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
16
16
  var $0 = $$.length - 1;
17
17
  switch (yystate) {
18
18
  case 1:
19
19
  return $$[$0 - 1];
20
- case 2:
21
- this.$ = [];
22
- break;
23
20
  case 3:
24
- $$[$0 - 1].push($$[$0]);
25
- this.$ = $$[$0 - 1];
21
+ yy.setDirection("LR");
26
22
  break;
27
23
  case 4:
24
+ yy.setDirection("TD");
25
+ break;
28
26
  case 5:
29
- this.$ = $$[$0];
27
+ this.$ = [];
30
28
  break;
31
29
  case 6:
30
+ $$[$0 - 1].push($$[$0]);
31
+ this.$ = $$[$0 - 1];
32
+ break;
32
33
  case 7:
34
+ case 8:
35
+ this.$ = $$[$0];
36
+ break;
37
+ case 9:
38
+ case 10:
33
39
  this.$ = [];
34
40
  break;
35
- case 8:
41
+ case 11:
36
42
  yy.getCommonDb().setDiagramTitle($$[$0].substr(6));
37
43
  this.$ = $$[$0].substr(6);
38
44
  break;
39
- case 9:
45
+ case 12:
40
46
  this.$ = $$[$0].trim();
41
47
  yy.getCommonDb().setAccTitle(this.$);
42
48
  break;
43
- case 10:
44
- case 11:
49
+ case 13:
50
+ case 14:
45
51
  this.$ = $$[$0].trim();
46
52
  yy.getCommonDb().setAccDescription(this.$);
47
53
  break;
48
- case 12:
54
+ case 15:
49
55
  yy.addSection($$[$0].substr(8));
50
56
  this.$ = $$[$0].substr(8);
51
57
  break;
52
- case 15:
58
+ case 18:
53
59
  yy.addTask($$[$0], 0, "");
54
60
  this.$ = $$[$0];
55
61
  break;
56
- case 16:
62
+ case 19:
57
63
  yy.addEvent($$[$0].substr(2));
58
64
  this.$ = $$[$0];
59
65
  break;
60
66
  }
61
67
  }, "anonymous"),
62
- table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: [1, 6], 9: 7, 10: [1, 8], 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 7], { 1: [2, 1] }), o($V0, [2, 3]), { 9: 18, 11: $V1, 12: $V2, 14: $V3, 16: $V4, 17: $V5, 18: 14, 19: 15, 20: $V6, 21: $V7 }, o($V0, [2, 5]), o($V0, [2, 6]), o($V0, [2, 8]), { 13: [1, 19] }, { 15: [1, 20] }, o($V0, [2, 11]), o($V0, [2, 12]), o($V0, [2, 13]), o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 4]), o($V0, [2, 9]), o($V0, [2, 10])],
68
+ table: [{ 3: 1, 4: 2, 7: [1, 3], 8: [1, 4], 9: [1, 5] }, { 1: [3] }, o($V0, [2, 5], { 5: 6 }), o($V0, [2, 2]), o($V0, [2, 3]), o($V0, [2, 4]), { 6: [1, 7], 10: 8, 11: [1, 9], 12: 10, 13: [1, 11], 14: $V1, 15: $V2, 17: $V3, 19: $V4, 20: $V5, 21: 17, 22: 18, 23: $V6, 24: $V7 }, o($V0, [2, 10], { 1: [2, 1] }), o($V0, [2, 6]), { 12: 21, 14: $V1, 15: $V2, 17: $V3, 19: $V4, 20: $V5, 21: 17, 22: 18, 23: $V6, 24: $V7 }, o($V0, [2, 8]), o($V0, [2, 9]), o($V0, [2, 11]), { 16: [1, 22] }, { 18: [1, 23] }, o($V0, [2, 14]), o($V0, [2, 15]), o($V0, [2, 16]), o($V0, [2, 17]), o($V0, [2, 18]), o($V0, [2, 19]), o($V0, [2, 7]), o($V0, [2, 12]), o($V0, [2, 13])],
63
69
  defaultActions: {},
64
70
  parseError: /* @__PURE__ */ __name(function parseError(str, hash) {
65
71
  if (hash.recoverable) {
@@ -494,49 +500,53 @@ var parser = (function() {
494
500
  case 1:
495
501
  break;
496
502
  case 2:
497
- return 10;
503
+ return 13;
498
504
  case 3:
499
505
  break;
500
506
  case 4:
501
507
  break;
502
508
  case 5:
503
- return 4;
509
+ return 8;
504
510
  case 6:
505
- return 11;
511
+ return 9;
506
512
  case 7:
507
- this.begin("acc_title");
508
- return 12;
513
+ return 7;
509
514
  case 8:
515
+ return 14;
516
+ case 9:
517
+ this.begin("acc_title");
518
+ return 15;
519
+ case 10:
510
520
  this.popState();
511
521
  return "acc_title_value";
512
- case 9:
522
+ case 11:
513
523
  this.begin("acc_descr");
514
- return 14;
515
- case 10:
524
+ return 17;
525
+ case 12:
516
526
  this.popState();
517
527
  return "acc_descr_value";
518
- case 11:
528
+ case 13:
519
529
  this.begin("acc_descr_multiline");
520
530
  break;
521
- case 12:
531
+ case 14:
522
532
  this.popState();
523
533
  break;
524
- case 13:
525
- return "acc_descr_multiline_value";
526
- case 14:
527
- return 17;
528
534
  case 15:
529
- return 21;
535
+ return "acc_descr_multiline_value";
530
536
  case 16:
531
537
  return 20;
532
538
  case 17:
533
- return 6;
539
+ return 24;
534
540
  case 18:
541
+ return 23;
542
+ case 19:
543
+ return 6;
544
+ case 20:
535
545
  return "INVALID";
536
546
  }
537
547
  }, "anonymous"),
538
- rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^\n]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^:\n]+)/i, /^(?::\s(?:[^:\n]|:(?!\s))+)/i, /^(?:[^#:\n]+)/i, /^(?:$)/i, /^(?:.)/i],
539
- conditions: { "acc_descr_multiline": { "rules": [12, 13], "inclusive": false }, "acc_descr": { "rules": [10], "inclusive": false }, "acc_title": { "rules": [8], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 16, 17, 18], "inclusive": true } }
548
+ rules: [/^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline[ \t]+LR\b)/i, /^(?:timeline[ \t]+TD\b)/i, /^(?:timeline\b)/i, /^(?:title\s[^\n]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^:\n]+)/i, /^(?::\s(?:[^:\n]|:(?!\s))+)/i, /^(?:[^#:\n]+)/i, /^(?:$)/i, /^(?:.)/i],
549
+ conditions: { "acc_descr_multiline": { "rules": [14, 15], "inclusive": false }, "acc_descr": { "rules": [12], "inclusive": false }, "acc_title": { "rules": [10], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 16, 17, 18, 19, 20], "inclusive": true } }
540
550
  };
541
551
  return lexer2;
542
552
  })();
@@ -560,11 +570,14 @@ __export(timelineDb_exports, {
560
570
  clear: () => clear2,
561
571
  default: () => timelineDb_default,
562
572
  getCommonDb: () => getCommonDb,
573
+ getDirection: () => getDirection,
563
574
  getSections: () => getSections,
564
- getTasks: () => getTasks
575
+ getTasks: () => getTasks,
576
+ setDirection: () => setDirection
565
577
  });
566
578
  var currentSection = "";
567
579
  var currentTaskId = 0;
580
+ var direction = "LR";
568
581
  var sections = [];
569
582
  var tasks = [];
570
583
  var rawTasks = [];
@@ -574,8 +587,15 @@ var clear2 = /* @__PURE__ */ __name(function() {
574
587
  tasks.length = 0;
575
588
  currentSection = "";
576
589
  rawTasks.length = 0;
590
+ direction = "LR";
577
591
  clear();
578
592
  }, "clear");
593
+ var setDirection = /* @__PURE__ */ __name(function(dir) {
594
+ direction = dir;
595
+ }, "setDirection");
596
+ var getDirection = /* @__PURE__ */ __name(function() {
597
+ return direction;
598
+ }, "getDirection");
579
599
  var addSection = /* @__PURE__ */ __name(function(txt) {
580
600
  currentSection = txt;
581
601
  sections.push(txt);
@@ -634,6 +654,8 @@ var compileTasks = /* @__PURE__ */ __name(function() {
634
654
  var timelineDb_default = {
635
655
  clear: clear2,
636
656
  getCommonDb,
657
+ getDirection,
658
+ setDirection,
637
659
  addSection,
638
660
  getSections,
639
661
  getTasks,
@@ -641,7 +663,7 @@ var timelineDb_default = {
641
663
  addTaskOrg,
642
664
  addEvent
643
665
  };
644
- var MAX_SECTIONS = 12;
666
+ var nodeCount = 0;
645
667
  var drawRect = /* @__PURE__ */ __name(function(elem, rectData) {
646
668
  const rectElem = elem.append("rect");
647
669
  rectElem.attr("x", rectData.x);
@@ -754,12 +776,12 @@ var drawSection = /* @__PURE__ */ __name(function(elem, section, conf) {
754
776
  );
755
777
  }, "drawSection");
756
778
  var taskCount = -1;
757
- var drawTask = /* @__PURE__ */ __name(function(elem, task, conf) {
779
+ var drawTask = /* @__PURE__ */ __name(function(elem, task, conf, diagramId) {
758
780
  const center = task.x + conf.width / 2;
759
781
  const g = elem.append("g");
760
782
  taskCount++;
761
783
  const maxHeight = 300 + 5 * 30;
762
- g.append("line").attr("id", "task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
784
+ g.append("line").attr("id", diagramId + "-task" + taskCount).attr("x1", center).attr("y1", task.y).attr("x2", center).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
763
785
  drawFace(g, {
764
786
  cx: center,
765
787
  cy: 300 + (5 - task.score) * 30,
@@ -861,8 +883,10 @@ var _drawTextCandidateFunc = /* @__PURE__ */ (function() {
861
883
  return conf.textPlacement === "fo" ? byFo : conf.textPlacement === "old" ? byText : byTspan;
862
884
  };
863
885
  })();
864
- var initGraphics = /* @__PURE__ */ __name(function(graphics) {
865
- graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
886
+ var initGraphics = /* @__PURE__ */ __name(function(graphics, id) {
887
+ nodeCount = 0;
888
+ taskCount = -1;
889
+ graphics.append("defs").append("marker").attr("id", id + "-arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
866
890
  }, "initGraphics");
867
891
  function wrap(text, width) {
868
892
  text.each(function() {
@@ -885,8 +909,11 @@ function wrap(text, width) {
885
909
  });
886
910
  }
887
911
  __name(wrap, "wrap");
888
- var drawNode = /* @__PURE__ */ __name(function(elem, node, fullSection, conf) {
889
- const section = fullSection % MAX_SECTIONS - 1;
912
+ var drawNode = /* @__PURE__ */ __name(function(elem, node, fullSection, conf, diagramId, isEvent = false) {
913
+ const { theme, look } = conf;
914
+ const isReduxTheme = theme?.includes("redux");
915
+ const maxSections = conf?.themeVariables?.THEME_COLOR_LIMIT ?? 12;
916
+ const section = fullSection % maxSections - 1;
890
917
  const nodeElem = elem.append("g");
891
918
  node.section = section;
892
919
  nodeElem.attr(
@@ -902,7 +929,28 @@ var drawNode = /* @__PURE__ */ __name(function(elem, node, fullSection, conf) {
902
929
  node.height = Math.max(node.height, node.maxHeight);
903
930
  node.width = node.width + 2 * node.padding;
904
931
  textElem.attr("transform", "translate(" + node.width / 2 + ", " + node.padding / 2 + ")");
905
- defaultBkg(bkgElem, node, section, conf);
932
+ if (isReduxTheme) {
933
+ textElem.attr(
934
+ "transform",
935
+ `translate(${node.width / 2}, ${isEvent ? node.padding / 2 + 3 : node.padding})`
936
+ );
937
+ }
938
+ defaultBkg(bkgElem, node, section, diagramId, conf);
939
+ if (look === "neo") {
940
+ nodeElem.attr("data-look", `neo`);
941
+ if (isReduxTheme) {
942
+ const isDark2 = theme.includes("dark");
943
+ const rootSvgNode = elem.node()?.ownerSVGElement ?? elem.node();
944
+ const rootSvg = select(rootSvgNode);
945
+ const svgId = rootSvg.attr("id") ?? "";
946
+ const dropShadowId = svgId ? `${svgId}-drop-shadow` : "drop-shadow";
947
+ if (rootSvg.select(`#${dropShadowId}`).empty()) {
948
+ const existingDefs = rootSvg.select("defs");
949
+ const defsEl = existingDefs.empty() ? rootSvg.append("defs") : existingDefs;
950
+ defsEl.append("filter").attr("id", dropShadowId).attr("height", "130%").attr("width", "130%").append("feDropShadow").attr("dx", "4").attr("dy", "4").attr("stdDeviation", 0).attr("flood-opacity", isDark2 ? "0.2" : "0.06").attr("flood-color", isDark2 ? "#FFFFFF" : "#000000");
951
+ }
952
+ }
953
+ }
906
954
  return node;
907
955
  }, "drawNode");
908
956
  var getVirtualNodeHeight = /* @__PURE__ */ __name(function(elem, node, conf) {
@@ -913,13 +961,15 @@ var getVirtualNodeHeight = /* @__PURE__ */ __name(function(elem, node, conf) {
913
961
  textElem.remove();
914
962
  return bbox.height + fontSize * 1.1 * 0.5 + node.padding;
915
963
  }, "getVirtualNodeHeight");
916
- var defaultBkg = /* @__PURE__ */ __name(function(elem, node, section) {
964
+ var defaultBkg = /* @__PURE__ */ __name(function(elem, node, section, diagramId, config) {
965
+ const { theme } = config;
966
+ const r = theme?.includes("redux") ? 0 : 5;
917
967
  const rd = 5;
918
- elem.append("path").attr("id", "node-" + node.id).attr("class", "node-bkg node-" + node.type).attr(
919
- "d",
920
- `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-5 5,-5 h${node.width - 2 * rd} q5,0 5,5 v${node.height - rd} H0 Z`
921
- );
922
- elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height);
968
+ const d = r > 0 ? `M0 ${node.height - rd} v${-node.height + 2 * rd} q0,-${r},${r},-${r} h${node.width - 2 * rd} q${r},0,${r},${r} v${node.height - rd} H0 Z` : `M0 ${node.height - rd} v${-(node.height - rd)} h${node.width} v${node.height} H0 Z`;
969
+ elem.append("path").attr("id", diagramId + "-node-" + nodeCount++).attr("class", "node-bkg node-" + node.type).attr("d", d);
970
+ if (!theme?.includes("redux")) {
971
+ elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node.height).attr("x2", node.width).attr("y2", node.height);
972
+ }
923
973
  }, "defaultBkg");
924
974
  var svgDraw_default = {
925
975
  drawRect,
@@ -937,6 +987,8 @@ var svgDraw_default = {
937
987
  };
938
988
  var draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {
939
989
  const conf = getConfig2();
990
+ const { look, theme, themeVariables } = conf;
991
+ const { useGradient, gradientStart, gradientStop } = themeVariables;
940
992
  const LEFT_MARGIN = conf.timeline?.leftMargin ?? 50;
941
993
  log.debug("timeline", diagObj.db);
942
994
  const securityLevel = conf.securityLevel;
@@ -950,7 +1002,7 @@ var draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {
950
1002
  const tasks2 = diagObj.db.getTasks();
951
1003
  const title = diagObj.db.getCommonDb().getDiagramTitle();
952
1004
  log.debug("task", tasks2);
953
- svgDraw_default.initGraphics(svg);
1005
+ svgDraw_default.initGraphics(svg, id);
954
1006
  const sections2 = diagObj.db.getSections();
955
1007
  log.debug("sections", sections2);
956
1008
  let maxSectionHeight = 0;
@@ -1023,7 +1075,7 @@ var draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {
1023
1075
  };
1024
1076
  log.debug("sectionNode", sectionNode);
1025
1077
  const sectionNodeWrapper = svg.append("g");
1026
- const node = svgDraw_default.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);
1078
+ const node = svgDraw_default.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf, id);
1027
1079
  log.debug("sectionNode output", node);
1028
1080
  sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`);
1029
1081
  masterY += maxSectionHeight + 50;
@@ -1039,7 +1091,8 @@ var draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {
1039
1091
  maxEventCount,
1040
1092
  maxEventLineLength,
1041
1093
  maxSectionHeight,
1042
- false
1094
+ false,
1095
+ id
1043
1096
  );
1044
1097
  }
1045
1098
  masterX += 200 * Math.max(tasksForSection.length, 1);
@@ -1059,17 +1112,25 @@ var draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {
1059
1112
  maxEventCount,
1060
1113
  maxEventLineLength,
1061
1114
  maxSectionHeight,
1062
- true
1115
+ true,
1116
+ id
1063
1117
  );
1064
1118
  }
1065
1119
  const box = svg.node().getBBox();
1066
1120
  log.debug("bounds", box);
1067
1121
  if (title) {
1068
- svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20);
1122
+ svg.append("text").text(title).attr("x", look === "neo" ? box.x * 2 + LEFT_MARGIN : box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20);
1069
1123
  }
1070
1124
  depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;
1071
1125
  const lineWrapper = svg.append("g").attr("class", "lineWrapper");
1072
- lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
1126
+ lineWrapper.append("line").attr("x1", LEFT_MARGIN).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", `url(#${id}-arrowhead)`);
1127
+ if (look === "neo" && useGradient && theme !== "neutral") {
1128
+ const existingDefs = svg.select("defs");
1129
+ const defsEl = existingDefs.empty() ? svg.append("defs") : existingDefs;
1130
+ const gradient = defsEl.append("linearGradient").attr("id", svg.attr("id") + "-gradient").attr("gradientUnits", "objectBoundingBox").attr("x1", "0%").attr("y1", "0%").attr("x2", "100%").attr("y2", "0%");
1131
+ gradient.append("stop").attr("offset", "0%").attr("stop-color", gradientStart).attr("stop-opacity", 1);
1132
+ gradient.append("stop").attr("offset", "100%").attr("stop-color", gradientStop).attr("stop-opacity", 1);
1133
+ }
1073
1134
  setupGraphViewbox(
1074
1135
  void 0,
1075
1136
  svg,
@@ -1077,7 +1138,7 @@ var draw = /* @__PURE__ */ __name(function(text, id, version, diagObj) {
1077
1138
  conf.timeline?.useMaxWidth ?? false
1078
1139
  );
1079
1140
  }, "draw");
1080
- var drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {
1141
+ var drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections, diagramId) {
1081
1142
  for (const task of tasks2) {
1082
1143
  const taskNode = {
1083
1144
  descr: task.task,
@@ -1089,7 +1150,7 @@ var drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor,
1089
1150
  };
1090
1151
  log.debug("taskNode", taskNode);
1091
1152
  const taskWrapper = diagram2.append("g").attr("class", "taskWrapper");
1092
- const node = svgDraw_default.drawNode(taskWrapper, taskNode, sectionColor, conf);
1153
+ const node = svgDraw_default.drawNode(taskWrapper, taskNode, sectionColor, conf, diagramId);
1093
1154
  const taskHeight = node.height;
1094
1155
  log.debug("taskHeight after draw", taskHeight);
1095
1156
  taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
@@ -1098,9 +1159,9 @@ var drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor,
1098
1159
  const lineWrapper = diagram2.append("g").attr("class", "lineWrapper");
1099
1160
  let lineLength = maxTaskHeight;
1100
1161
  masterY += 100;
1101
- lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf);
1162
+ lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf, diagramId);
1102
1163
  masterY -= 100;
1103
- lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr("y2", masterY + maxTaskHeight + 100 + maxEventLineLength + 100).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5");
1164
+ lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr("y2", masterY + maxTaskHeight + 100 + maxEventLineLength + 100).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", `url(#${diagramId}-arrowhead)`).attr("stroke-dasharray", "5,5");
1104
1165
  }
1105
1166
  masterX = masterX + 200;
1106
1167
  if (isWithoutSections && !conf.timeline?.disableMulticolor) {
@@ -1109,7 +1170,7 @@ var drawTasks = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor,
1109
1170
  }
1110
1171
  masterY = masterY - 10;
1111
1172
  }, "drawTasks");
1112
- var drawEvents = /* @__PURE__ */ __name(function(diagram2, events, sectionColor, masterX, masterY, conf) {
1173
+ var drawEvents = /* @__PURE__ */ __name(function(diagram2, events, sectionColor, masterX, masterY, conf, diagramId) {
1113
1174
  let maxEventHeight = 0;
1114
1175
  const eventBeginY = masterY;
1115
1176
  masterY = masterY + 100;
@@ -1124,7 +1185,7 @@ var drawEvents = /* @__PURE__ */ __name(function(diagram2, events, sectionColor,
1124
1185
  };
1125
1186
  log.debug("eventNode", eventNode);
1126
1187
  const eventWrapper = diagram2.append("g").attr("class", "eventWrapper");
1127
- const node = svgDraw_default.drawNode(eventWrapper, eventNode, sectionColor, conf);
1188
+ const node = svgDraw_default.drawNode(eventWrapper, eventNode, sectionColor, conf, diagramId, true);
1128
1189
  const eventHeight = node.height;
1129
1190
  maxEventHeight = maxEventHeight + eventHeight;
1130
1191
  eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
@@ -1138,6 +1199,284 @@ var timelineRenderer_default = {
1138
1199
  }, "setConf"),
1139
1200
  draw
1140
1201
  };
1202
+ var NODE_WIDTH = 200;
1203
+ var NODE_PADDING = 5;
1204
+ var NODE_TOTAL_WIDTH = NODE_WIDTH + NODE_PADDING * 2;
1205
+ var EVENT_WIDTH = NODE_WIDTH + 100;
1206
+ var EVENT_TOTAL_WIDTH = EVENT_WIDTH + NODE_PADDING * 2;
1207
+ var EVENT_SPACING = 10;
1208
+ var EVENT_VERTICAL_GAP = 0;
1209
+ var SECTION_TASK_GAP = 20;
1210
+ var TASK_AXIS_GAP = 20;
1211
+ var TASK_VERTICAL_GAP = 30;
1212
+ var EVENT_AXIS_GAP = 50;
1213
+ var draw2 = /* @__PURE__ */ __name(function(text, id, version, diagObj) {
1214
+ const conf = getConfig2();
1215
+ const LEFT_MARGIN = conf.timeline?.leftMargin ?? 50;
1216
+ log.debug("timeline", diagObj.db);
1217
+ const svg = selectSvgElement(id);
1218
+ svg.append("g");
1219
+ const tasks2 = diagObj.db.getTasks();
1220
+ const title = diagObj.db.getCommonDb().getDiagramTitle();
1221
+ log.debug("task", tasks2);
1222
+ svgDraw_default.initGraphics(svg);
1223
+ const sections2 = diagObj.db.getSections();
1224
+ log.debug("sections", sections2);
1225
+ let maxSectionHeight = 0;
1226
+ let maxTaskHeight = 0;
1227
+ const masterX = 50 + LEFT_MARGIN;
1228
+ let masterY = 50;
1229
+ const contentTopY = masterY;
1230
+ const sectionBeginX = masterX;
1231
+ const leftWidth = NODE_TOTAL_WIDTH + TASK_AXIS_GAP;
1232
+ const rightWidth = EVENT_TOTAL_WIDTH + EVENT_AXIS_GAP;
1233
+ const axisX = sectionBeginX + leftWidth;
1234
+ let sectionNumber = 0;
1235
+ const hasSections = sections2 && sections2.length > 0;
1236
+ const timelineX = hasSections ? axisX : masterX + leftWidth;
1237
+ const sectionWidth = Math.max(50, leftWidth + rightWidth - NODE_PADDING * 2);
1238
+ sections2.forEach(function(section) {
1239
+ const sectionNode = {
1240
+ number: sectionNumber,
1241
+ descr: section,
1242
+ section: sectionNumber,
1243
+ width: sectionWidth,
1244
+ padding: NODE_PADDING,
1245
+ maxHeight: maxSectionHeight
1246
+ };
1247
+ const sectionHeight = svgDraw_default.getVirtualNodeHeight(svg, sectionNode, conf);
1248
+ log.debug("sectionHeight before draw", sectionHeight);
1249
+ maxSectionHeight = Math.max(maxSectionHeight, sectionHeight);
1250
+ });
1251
+ let maxEventStackHeight = 0;
1252
+ log.debug("tasks.length", tasks2.length);
1253
+ for (const [i, task] of tasks2.entries()) {
1254
+ const taskNode = {
1255
+ number: i,
1256
+ descr: task,
1257
+ section: task.section,
1258
+ width: NODE_WIDTH,
1259
+ padding: NODE_PADDING,
1260
+ maxHeight: maxTaskHeight
1261
+ };
1262
+ const taskHeight = svgDraw_default.getVirtualNodeHeight(svg, taskNode, conf);
1263
+ log.debug("taskHeight before draw", taskHeight);
1264
+ maxTaskHeight = Math.max(maxTaskHeight, taskHeight);
1265
+ let maxEventStackHeightTemp = 0;
1266
+ for (const event of task.events) {
1267
+ const eventNode = {
1268
+ descr: event,
1269
+ section: task.section,
1270
+ number: task.section,
1271
+ width: EVENT_WIDTH,
1272
+ padding: NODE_PADDING,
1273
+ maxHeight: 50
1274
+ };
1275
+ maxEventStackHeightTemp += svgDraw_default.getVirtualNodeHeight(svg, eventNode, conf);
1276
+ }
1277
+ if (task.events.length > 0) {
1278
+ maxEventStackHeightTemp += (task.events.length - 1) * EVENT_SPACING;
1279
+ }
1280
+ maxEventStackHeight = Math.max(maxEventStackHeight, maxEventStackHeightTemp) + EVENT_VERTICAL_GAP;
1281
+ }
1282
+ log.debug("maxSectionHeight before draw", maxSectionHeight);
1283
+ log.debug("maxTaskHeight before draw", maxTaskHeight);
1284
+ const taskBlockHeight = Math.max(maxTaskHeight, maxEventStackHeight);
1285
+ const taskSpacing = taskBlockHeight + TASK_VERTICAL_GAP;
1286
+ if (hasSections) {
1287
+ sections2.forEach((section) => {
1288
+ const tasksForSection = tasks2.filter((task) => task.section === section);
1289
+ const sectionNode = {
1290
+ number: sectionNumber,
1291
+ descr: section,
1292
+ section: sectionNumber,
1293
+ width: sectionWidth,
1294
+ padding: NODE_PADDING,
1295
+ maxHeight: maxSectionHeight
1296
+ };
1297
+ log.debug("sectionNode", sectionNode);
1298
+ const sectionNodeWrapper = svg.append("g");
1299
+ const node = svgDraw_default.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf);
1300
+ log.debug("sectionNode output", node);
1301
+ const sectionX = timelineX - leftWidth;
1302
+ sectionNodeWrapper.attr("transform", `translate(${sectionX}, ${masterY})`);
1303
+ const taskStartY = masterY + node.height + SECTION_TASK_GAP;
1304
+ if (tasksForSection.length > 0) {
1305
+ drawTasks2(
1306
+ svg,
1307
+ tasksForSection,
1308
+ sectionNumber,
1309
+ timelineX,
1310
+ taskStartY,
1311
+ maxTaskHeight,
1312
+ conf,
1313
+ taskSpacing,
1314
+ false
1315
+ );
1316
+ }
1317
+ const taskCount2 = tasksForSection.length;
1318
+ const sectionHeight = node.height + SECTION_TASK_GAP + taskSpacing * Math.max(taskCount2, 1) - (taskCount2 > 0 ? TASK_VERTICAL_GAP * 2 : 0);
1319
+ masterY += sectionHeight;
1320
+ sectionNumber++;
1321
+ });
1322
+ } else {
1323
+ drawTasks2(
1324
+ svg,
1325
+ tasks2,
1326
+ sectionNumber,
1327
+ timelineX,
1328
+ masterY,
1329
+ maxTaskHeight,
1330
+ conf,
1331
+ taskSpacing,
1332
+ true
1333
+ );
1334
+ }
1335
+ let box = svg.node()?.getBBox();
1336
+ if (!box) {
1337
+ throw new Error("bbox not found");
1338
+ }
1339
+ log.debug("bounds", box);
1340
+ if (title) {
1341
+ svg.append("text").text(title).attr("x", box.width / 2 - LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20);
1342
+ box = svg.node()?.getBBox();
1343
+ if (!box) {
1344
+ throw new Error("bbox not found");
1345
+ }
1346
+ log.debug("bounds after title", box);
1347
+ }
1348
+ const [fontSize] = parseFontSize(conf.fontSize);
1349
+ const arrowTopOffset = (fontSize ?? 16) * 2;
1350
+ const arrowBottomPadding = (fontSize ?? 16) * 0.5 + 20;
1351
+ const lineWrapper = svg.append("g").attr("class", "lineWrapper");
1352
+ lineWrapper.append("line").attr("x1", timelineX).attr("y1", contentTopY - arrowTopOffset).attr("x2", timelineX).attr("y2", box.y + box.height + arrowBottomPadding).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
1353
+ lineWrapper.lower();
1354
+ setupGraphViewbox(
1355
+ void 0,
1356
+ svg,
1357
+ conf.timeline?.padding ?? 50,
1358
+ conf.timeline?.useMaxWidth ?? false
1359
+ );
1360
+ }, "draw");
1361
+ var drawTasks2 = /* @__PURE__ */ __name(function(diagram2, tasks2, sectionColor, timelineX, masterY, maxTaskHeight, conf, taskSpacing, isWithoutSections) {
1362
+ for (const task of tasks2) {
1363
+ const taskNode = {
1364
+ descr: task.task,
1365
+ section: sectionColor,
1366
+ number: sectionColor,
1367
+ width: NODE_WIDTH,
1368
+ padding: NODE_PADDING,
1369
+ maxHeight: maxTaskHeight
1370
+ };
1371
+ log.debug("taskNode", taskNode);
1372
+ const taskWrapper = diagram2.append("g").attr("class", "taskWrapper");
1373
+ const node = svgDraw_default.drawNode(taskWrapper, taskNode, sectionColor, conf);
1374
+ const taskHeight = node.height;
1375
+ log.debug("taskHeight after draw", taskHeight);
1376
+ const taskX = timelineX - TASK_AXIS_GAP - node.width;
1377
+ taskWrapper.attr("transform", `translate(${taskX}, ${masterY})`);
1378
+ maxTaskHeight = Math.max(maxTaskHeight, taskHeight);
1379
+ if (task.events && task.events.length > 0) {
1380
+ const eventsStartY = masterY;
1381
+ const eventsX = timelineX + EVENT_AXIS_GAP;
1382
+ drawEvents2(diagram2, task.events, sectionColor, timelineX, eventsX, eventsStartY, conf);
1383
+ }
1384
+ masterY = masterY + taskSpacing;
1385
+ if (isWithoutSections && !conf.timeline?.disableMulticolor) {
1386
+ sectionColor++;
1387
+ }
1388
+ }
1389
+ }, "drawTasks");
1390
+ var drawEvents2 = /* @__PURE__ */ __name(function(diagram2, events, sectionColor, axisX, eventsX, startY, conf) {
1391
+ let currentY = startY;
1392
+ for (const event of events) {
1393
+ const eventNode = {
1394
+ descr: event,
1395
+ section: sectionColor,
1396
+ number: sectionColor,
1397
+ width: EVENT_WIDTH,
1398
+ padding: NODE_PADDING,
1399
+ maxHeight: 0
1400
+ };
1401
+ log.debug("eventNode", eventNode);
1402
+ const eventWrapper = diagram2.append("g").attr("class", "eventWrapper");
1403
+ const node = svgDraw_default.drawNode(eventWrapper, eventNode, sectionColor, conf);
1404
+ const eventHeight = node.height;
1405
+ eventWrapper.attr("transform", `translate(${eventsX}, ${currentY})`);
1406
+ const lineWrapper = diagram2.append("g").attr("class", "lineWrapper");
1407
+ const lineY = currentY + eventHeight / 2;
1408
+ lineWrapper.append("line").attr("x1", axisX).attr("y1", lineY).attr("x2", eventsX).attr("y2", lineY).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5");
1409
+ currentY = currentY + eventHeight + EVENT_SPACING;
1410
+ }
1411
+ return currentY - startY;
1412
+ }, "drawEvents");
1413
+ var timelineRendererVertical_default = {
1414
+ setConf: /* @__PURE__ */ __name(() => {
1415
+ }, "setConf"),
1416
+ draw: draw2
1417
+ };
1418
+ var genReduxSections = /* @__PURE__ */ __name((options) => {
1419
+ const { theme } = getConfig();
1420
+ const isDarkTheme = theme?.includes("dark");
1421
+ const isColorTheme = theme?.includes("color");
1422
+ const rawSvgId = options.svgId?.replace(/^#/, "") ?? "";
1423
+ const scopedDropShadow = rawSvgId ? `url(#${rawSvgId}-drop-shadow)` : options.dropShadow ?? "none";
1424
+ let sections2 = "";
1425
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
1426
+ const sw = `${17 - 3 * i}`;
1427
+ const color = isColorTheme ? options.borderColorArray[i] : options.mainBkg;
1428
+ const stroke = isColorTheme ? options.borderColorArray[i] : options.nodeBorder;
1429
+ sections2 += `
1430
+ .section-${i - 1} rect,
1431
+ .section-${i - 1} path,
1432
+ .section-${i - 1} circle {
1433
+ fill: ${isDarkTheme && isColorTheme ? options.mainBkg : color};
1434
+ stroke: ${stroke};
1435
+ stroke-width: ${options.strokeWidth};
1436
+ filter: ${scopedDropShadow};
1437
+ }
1438
+
1439
+ .section-${i - 1} text {
1440
+ fill: ${options.nodeBorder};
1441
+ font-weight: ${options.fontWeight}
1442
+ }
1443
+
1444
+ .node-icon-${i - 1} {
1445
+ font-size: 40px;
1446
+ color: ${options["cScaleLabel" + i]};
1447
+ }
1448
+
1449
+ .section-edge-${i - 1} {
1450
+ stroke: ${options["cScale" + i]};
1451
+ }
1452
+
1453
+ .edge-depth-${i - 1} {
1454
+ stroke-width: ${sw};
1455
+ }
1456
+
1457
+ .section-${i - 1} line {
1458
+ stroke: ${options["cScaleInv" + i]};
1459
+ stroke-width: 3;
1460
+ }
1461
+
1462
+ .lineWrapper line {
1463
+ stroke: ${options.nodeBorder};
1464
+ stroke-width:${options.strokeWidth}
1465
+ }
1466
+
1467
+ .disabled,
1468
+ .disabled circle,
1469
+ .disabled text {
1470
+ fill: ${options.tertiaryColor ?? "lightgray"};
1471
+ }
1472
+
1473
+ .disabled text {
1474
+ fill: ${options.clusterBorder ?? "#efefef"};
1475
+ }
1476
+ `;
1477
+ }
1478
+ return sections2;
1479
+ }, "genReduxSections");
1141
1480
  var genSections = /* @__PURE__ */ __name((options) => {
1142
1481
  let sections2 = "";
1143
1482
  for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
@@ -1177,20 +1516,43 @@ var genSections = /* @__PURE__ */ __name((options) => {
1177
1516
  }
1178
1517
 
1179
1518
  .disabled, .disabled circle, .disabled text {
1180
- fill: lightgray;
1519
+ fill: ${options.tertiaryColor ?? "lightgray"};
1181
1520
  }
1182
1521
  .disabled text {
1183
- fill: #efefef;
1522
+ fill: ${options.clusterBorder ?? "#efefef"};
1184
1523
  }
1185
1524
  `;
1186
1525
  }
1187
1526
  return sections2;
1188
1527
  }, "genSections");
1189
- var getStyles = /* @__PURE__ */ __name((options) => `
1528
+ var getStyles = /* @__PURE__ */ __name((options) => {
1529
+ const { theme } = getConfig();
1530
+ const isReduxTheme = theme?.includes("redux");
1531
+ const isNeutralTheme = theme === "neutral";
1532
+ const rawSvgId = options.svgId?.replace(/^#/, "") ?? "";
1533
+ let gradientSections = "";
1534
+ if (options.useGradient && rawSvgId && options.THEME_COLOR_LIMIT && !isNeutralTheme) {
1535
+ for (let i = 0; i < options.THEME_COLOR_LIMIT; i++) {
1536
+ gradientSections += `
1537
+ .section-${i - 1}[data-look="neo"] rect,
1538
+ .section-${i - 1}[data-look="neo"] path,
1539
+ .section-${i - 1}[data-look="neo"] circle {
1540
+ fill: ${options.mainBkg};
1541
+ stroke: url(#${rawSvgId}-gradient);
1542
+ stroke-width: 2;
1543
+ }
1544
+ .section-${i - 1}[data-look="neo"] line {
1545
+ stroke: url(#${rawSvgId}-gradient);
1546
+ stroke-width: 2;
1547
+ }`;
1548
+ }
1549
+ }
1550
+ return `
1190
1551
  .edge {
1191
1552
  stroke-width: 3;
1192
1553
  }
1193
- ${genSections(options)}
1554
+ ${isReduxTheme ? genReduxSections(options) : genSections(options)}
1555
+ ${gradientSections}
1194
1556
  .section-root rect, .section-root path, .section-root circle {
1195
1557
  fill: ${options.git0};
1196
1558
  }
@@ -1209,11 +1571,23 @@ var getStyles = /* @__PURE__ */ __name((options) => `
1209
1571
  .eventWrapper {
1210
1572
  filter: brightness(120%);
1211
1573
  }
1212
- `, "getStyles");
1574
+ `;
1575
+ }, "getStyles");
1213
1576
  var styles_default = getStyles;
1577
+ var rendererSelector = {
1578
+ setConf: /* @__PURE__ */ __name(() => {
1579
+ }, "setConf"),
1580
+ draw: /* @__PURE__ */ __name((text, id, version, diagObj) => {
1581
+ const direction2 = diagObj?.db?.getDirection?.() ?? "LR";
1582
+ if (direction2 === "TD") {
1583
+ return timelineRendererVertical_default.draw(text, id, version, diagObj);
1584
+ }
1585
+ return timelineRenderer_default.draw(text, id, version, diagObj);
1586
+ }, "draw")
1587
+ };
1214
1588
  var diagram = {
1215
1589
  db: timelineDb_exports,
1216
- renderer: timelineRenderer_default,
1590
+ renderer: rendererSelector,
1217
1591
  parser: timeline_default,
1218
1592
  styles: styles_default
1219
1593
  };