@aiderdesk/aiderdesk 0.61.0-dev → 0.61.1

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 (196) 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/resources/skills/extension-creator/SKILL.md +320 -0
  55. package/out/resources/skills/extension-creator/assets/templates/Component.jsx.template +76 -0
  56. package/out/resources/skills/extension-creator/assets/templates/ConfigComponent.jsx.template +38 -0
  57. package/out/resources/skills/extension-creator/assets/templates/folder-extension/config.ts.template +29 -0
  58. package/out/resources/skills/extension-creator/assets/templates/folder-extension/index.ts.template +42 -0
  59. package/out/resources/skills/extension-creator/assets/templates/folder-extension/package.json +12 -0
  60. package/out/resources/skills/extension-creator/assets/templates/folder-extension/tsconfig.json +23 -0
  61. package/out/resources/skills/extension-creator/assets/templates/folder-extension-with-config/index.ts.template +80 -0
  62. package/out/resources/skills/extension-creator/assets/templates/single-file.ts.template +30 -0
  63. package/out/resources/skills/extension-creator/assets/templates/ui-component-external.ts.template +91 -0
  64. package/out/resources/skills/extension-creator/assets/templates/ui-component.ts.template +79 -0
  65. package/out/resources/skills/extension-creator/references/command-definition.md +170 -0
  66. package/out/resources/skills/extension-creator/references/config-components.md +427 -0
  67. package/out/resources/skills/extension-creator/references/event-types.md +156 -0
  68. package/out/resources/skills/extension-creator/references/examples-gallery.md +583 -0
  69. package/out/resources/skills/extension-creator/references/extension-interface.md +240 -0
  70. package/out/resources/skills/extension-creator/references/extension-types.md +186 -0
  71. package/out/resources/skills/extension-creator/references/in-repo-flow.md +132 -0
  72. package/out/resources/skills/extension-creator/references/install-targets.md +96 -0
  73. package/out/resources/skills/extension-creator/references/project-global-flow.md +76 -0
  74. package/out/resources/skills/extension-creator/references/ui-components.md +663 -0
  75. package/out/runner.js +976 -386
  76. package/package.json +2 -3
  77. package/out/renderer/assets/_basePickBy-BWoXHZ8Z.js +0 -161
  78. package/out/renderer/assets/apl-fqmucPXA.js +0 -140
  79. package/out/renderer/assets/asciiarmor-DucZyvP0.js +0 -56
  80. package/out/renderer/assets/asn1-BnOEsgAm.js +0 -144
  81. package/out/renderer/assets/asterisk-QAlztEwS.js +0 -345
  82. package/out/renderer/assets/brainfuck-DZVCuF_t.js +0 -53
  83. package/out/renderer/assets/clike-xqXYL6ge.js +0 -805
  84. package/out/renderer/assets/clojure-BhXMqnxz.js +0 -849
  85. package/out/renderer/assets/cmake-BGaNd9E7.js +0 -71
  86. package/out/renderer/assets/cobol-4yqQntpt.js +0 -120
  87. package/out/renderer/assets/coffeescript-D2dXvhEc.js +0 -308
  88. package/out/renderer/assets/commonlisp-CF_VNHQR.js +0 -130
  89. package/out/renderer/assets/crystal-DyuLTqLs.js +0 -398
  90. package/out/renderer/assets/css-c-jst79C.js +0 -1783
  91. package/out/renderer/assets/cypher-Dlu_3r4V.js +0 -121
  92. package/out/renderer/assets/d-UURgV0Ux.js +0 -179
  93. package/out/renderer/assets/diff-B_Bi2Crb.js +0 -25
  94. package/out/renderer/assets/dockerfile-Bvk733Ga.js +0 -201
  95. package/out/renderer/assets/dtd-Dy74G54E.js +0 -114
  96. package/out/renderer/assets/dylan-TSb-Nfix.js +0 -314
  97. package/out/renderer/assets/ebnf-4fKAGW3a.js +0 -140
  98. package/out/renderer/assets/ecl-B59qGGVg.js +0 -178
  99. package/out/renderer/assets/eiffel-Dze7nlu3.js +0 -134
  100. package/out/renderer/assets/elm-DG7jkhNZ.js +0 -176
  101. package/out/renderer/assets/erlang-BO6gOnGA.js +0 -674
  102. package/out/renderer/assets/factor-CMxFHDqz.js +0 -65
  103. package/out/renderer/assets/fcl-CDDUNjTj.js +0 -141
  104. package/out/renderer/assets/forth-B9D2JCeE.js +0 -116
  105. package/out/renderer/assets/fortran-CAG2BFbe.js +0 -467
  106. package/out/renderer/assets/gas-d3KEcW3x.js +0 -294
  107. package/out/renderer/assets/gherkin-DhZlEZiy.js +0 -115
  108. package/out/renderer/assets/groovy-CpwJiBl7.js +0 -223
  109. package/out/renderer/assets/haskell-ySd-OUo8.js +0 -459
  110. package/out/renderer/assets/haxe-7MlzfeYV.js +0 -514
  111. package/out/renderer/assets/http-BqypyemW.js +0 -79
  112. package/out/renderer/assets/idl-4HIGJlDI.js +0 -985
  113. package/out/renderer/assets/index-6qedlt0q.js +0 -689
  114. package/out/renderer/assets/index-86jDpUJn.js +0 -385
  115. package/out/renderer/assets/index-BRjO8ber.js +0 -332
  116. package/out/renderer/assets/index-BVgw7j0d.js +0 -312
  117. package/out/renderer/assets/index-BhkyI1q3.js +0 -642
  118. package/out/renderer/assets/index-BqrmLPkg.js +0 -82
  119. package/out/renderer/assets/index-BuPbw4xM.js +0 -178
  120. package/out/renderer/assets/index-CTO-LPBg.js +0 -311
  121. package/out/renderer/assets/index-CTO4SzlI.js +0 -97
  122. package/out/renderer/assets/index-CZ9IQK_0.js +0 -2488
  123. package/out/renderer/assets/index-CZxsVxBZ.js +0 -1765
  124. package/out/renderer/assets/index-DIXV-3Xn.js +0 -406
  125. package/out/renderer/assets/index-DNzOtZX5.js +0 -61
  126. package/out/renderer/assets/index-DZtJe7oC.js +0 -1019
  127. package/out/renderer/assets/index-DaWjZz_g.js +0 -291
  128. package/out/renderer/assets/index-De056HHR.js +0 -151
  129. package/out/renderer/assets/index-Dk3wSDSN.js +0 -117
  130. package/out/renderer/assets/index-Dy4VRsnA.js +0 -1041
  131. package/out/renderer/assets/index-FnnayPBc.js +0 -82
  132. package/out/renderer/assets/index-MZb_zy6R.js +0 -704
  133. package/out/renderer/assets/index-chzQl8rJ.js +0 -157
  134. package/out/renderer/assets/index-s-Owx3Pm.js +0 -327
  135. package/out/renderer/assets/javascript-C_OHM9hj.js +0 -994
  136. package/out/renderer/assets/julia-Bs6JJhYG.js +0 -407
  137. package/out/renderer/assets/livescript-DmzgM3Yt.js +0 -296
  138. package/out/renderer/assets/lua-8cJgIlqe.js +0 -256
  139. package/out/renderer/assets/mathematica-DNLOL9PQ.js +0 -110
  140. package/out/renderer/assets/mbox-Ga7d4MMN.js +0 -117
  141. package/out/renderer/assets/mirc-Dma3B8rS.js +0 -107
  142. package/out/renderer/assets/mllike-DHn7xckP.js +0 -334
  143. package/out/renderer/assets/modelica-0d55jYY0.js +0 -147
  144. package/out/renderer/assets/mscgen-DdqZYINH.js +0 -135
  145. package/out/renderer/assets/mumps-Btr8VblO.js +0 -93
  146. package/out/renderer/assets/nginx-DTDtBDVN.js +0 -141
  147. package/out/renderer/assets/nsis-3zG7tgur.js +0 -62
  148. package/out/renderer/assets/ntriples-CvgOYMpL.js +0 -153
  149. package/out/renderer/assets/octave-DYBj3-tl.js +0 -200
  150. package/out/renderer/assets/oz-R_e8WMIi.js +0 -231
  151. package/out/renderer/assets/pascal-GD8iposT.js +0 -105
  152. package/out/renderer/assets/perl-DL9mHpoi.js +0 -1105
  153. package/out/renderer/assets/pig-C_4T4YIV.js +0 -101
  154. package/out/renderer/assets/powershell-B0suO7Vd.js +0 -328
  155. package/out/renderer/assets/properties-BR-vP1aU.js +0 -58
  156. package/out/renderer/assets/protobuf-BxgpyhoW.js +0 -77
  157. package/out/renderer/assets/pug-CTXt1f8z.js +0 -405
  158. package/out/renderer/assets/puppet-Bdao66PW.js +0 -137
  159. package/out/renderer/assets/python-CvWbmiX4.js +0 -427
  160. package/out/renderer/assets/q-CrbCVq4a.js +0 -131
  161. package/out/renderer/assets/r-V7nswm59.js +0 -170
  162. package/out/renderer/assets/rpm-C-DLY-If.js +0 -109
  163. package/out/renderer/assets/ruby-JDKLJNK0.js +0 -330
  164. package/out/renderer/assets/sas-D2UG-yhZ.js +0 -207
  165. package/out/renderer/assets/scheme-BKzrkGJD.js +0 -222
  166. package/out/renderer/assets/shell-BlsXDxCn.js +0 -222
  167. package/out/renderer/assets/sieve-CjwBwOY5.js +0 -135
  168. package/out/renderer/assets/simple-mode-DMneyfDu.js +0 -130
  169. package/out/renderer/assets/smalltalk-BOIGQuhN.js +0 -121
  170. package/out/renderer/assets/solr-CwD7U71z.js +0 -69
  171. package/out/renderer/assets/sparql-DYskk2vE.js +0 -249
  172. package/out/renderer/assets/spreadsheet-Bgtt3oLP.js +0 -87
  173. package/out/renderer/assets/sql-BSrOzCRI.js +0 -354
  174. package/out/renderer/assets/stex-B6LNC55o.js +0 -231
  175. package/out/renderer/assets/stylus-BkS-boTH.js +0 -565
  176. package/out/renderer/assets/swift-FRZi1uvB.js +0 -291
  177. package/out/renderer/assets/tcl-CUcaCdmq.js +0 -114
  178. package/out/renderer/assets/textile-BnFpjsrl.js +0 -414
  179. package/out/renderer/assets/tiddlywiki-CjprD-Qp.js +0 -218
  180. package/out/renderer/assets/tiki-DK9DOeWn.js +0 -268
  181. package/out/renderer/assets/toml-BOuWGMcf.js +0 -76
  182. package/out/renderer/assets/troff-E1bJ0PPL.js +0 -61
  183. package/out/renderer/assets/ttcn-cfg-Dc39-fIP.js +0 -133
  184. package/out/renderer/assets/ttcn-tKd4HLu4.js +0 -192
  185. package/out/renderer/assets/turtle-Dq7-1WAf.js +0 -124
  186. package/out/renderer/assets/vb-Dp90gtsv.js +0 -196
  187. package/out/renderer/assets/vbscript-CI6_mxxU.js +0 -479
  188. package/out/renderer/assets/velocity-BwIZK1TH.js +0 -149
  189. package/out/renderer/assets/verilog-DDCYnHN8.js +0 -430
  190. package/out/renderer/assets/vhdl-DCkMIyT9.js +0 -158
  191. package/out/renderer/assets/webidl-BTLTThCm.js +0 -204
  192. package/out/renderer/assets/xquery-BrBUuxMR.js +0 -525
  193. package/out/renderer/assets/yacas-b5lAVEIl.js +0 -130
  194. package/out/renderer/assets/z80-BZV19vqv.js +0 -93
  195. package/scripts/download-uv.mjs +0 -147
  196. /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
  };