@diagrammo/dgmo 0.50.2 → 0.52.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.
- package/.cursorrules +15 -19
- package/.github/copilot-instructions.md +15 -19
- package/.windsurfrules +15 -19
- package/SKILL.md +15 -19
- package/dist/advanced.d.ts +155 -65
- package/dist/advanced.js +231 -189
- package/dist/{analyzer-UYKBXAKR.js → analyzer-BJ54GIFB.js} +3 -3
- package/dist/auto.css +31 -8
- package/dist/auto.d.ts +6 -0
- package/dist/auto.js +171 -133
- package/dist/auto.mjs +3062 -1478
- package/dist/block.css +28 -8
- package/dist/block.js +138 -72
- package/dist/charts-d3-MXEP6BNP.js +26 -0
- package/dist/{chunk-3YPY3OXD.js → chunk-3HF5YEFJ.js} +17 -7
- package/dist/{chunk-4MJ7M6YL.js → chunk-3HGU63UY.js} +14 -13
- package/dist/chunk-3LK5DNED.js +35 -0
- package/dist/{chunk-3Y2DRD7S.js → chunk-3QD7VP3U.js} +9 -4
- package/dist/{chunk-6BFZKBGD.js → chunk-3YRPZ7ZZ.js} +2 -2
- package/dist/{chunk-WW32K72E.js → chunk-44VCIPHF.js} +25 -21
- package/dist/{chunk-TN35C5KM.js → chunk-4AQRFDXL.js} +2 -2
- package/dist/{chunk-HHXOONLX.js → chunk-4B5YISOR.js} +38 -1
- package/dist/{chunk-PGEGPSCZ.js → chunk-4IHAV6O7.js} +2 -2
- package/dist/{chunk-7L3R6I3U.js → chunk-4UNQ6X24.js} +10 -7
- package/dist/{chunk-O7NUCTFU.js → chunk-4YFKQ5WT.js} +7 -4
- package/dist/{chunk-5WFIYXQ6.js → chunk-5223KXFD.js} +122 -242
- package/dist/{chunk-PFHVU7UA.js → chunk-5BHJZH62.js} +3 -3
- package/dist/{chunk-QYTPPDAO.js → chunk-5HILBT7X.js} +2 -2
- package/dist/{chunk-GKC3HILQ.js → chunk-5NGAO4QK.js} +27 -4
- package/dist/{chunk-IAEC4KLA.js → chunk-5QKQSSPO.js} +2 -2
- package/dist/{chunk-DSWVNQVS.js → chunk-5RP7JRVP.js} +4 -59
- package/dist/{chunk-MCZ5LBZD.js → chunk-5SEVICBT.js} +8 -8
- package/dist/{chunk-GBE54KY6.js → chunk-6EJITS44.js} +8 -5
- package/dist/{chunk-BBGDM4NQ.js → chunk-6HQH6JZE.js} +35 -16
- package/dist/{chunk-66NVRO4K.js → chunk-6LBQ7ELG.js} +17 -18
- package/dist/{chunk-4XK3FLFB.js → chunk-6NYWYNBI.js} +3 -3
- package/dist/{chunk-VBYSIOOY.js → chunk-75G3Q4DK.js} +3 -3
- package/dist/{chunk-3NODSS6A.js → chunk-77FGAVZC.js} +13 -10
- package/dist/{chunk-6IAA2QQ2.js → chunk-7BIZCTAX.js} +2 -2
- package/dist/{chunk-TWQUYVP3.js → chunk-7DF4J4RL.js} +4 -4
- package/dist/{chunk-66RUL3XF.js → chunk-7KINELPI.js} +111 -49
- package/dist/{chunk-L3UHP6TD.js → chunk-7L4UJOY6.js} +1 -2
- package/dist/{chunk-QJP6PG7F.js → chunk-7QE3XMRK.js} +19 -18
- package/dist/{chunk-P7CE7LXL.js → chunk-AAXZDUOV.js} +18 -17
- package/dist/{chunk-SXRTRMEE.js → chunk-AL672HNE.js} +3 -3
- package/dist/chunk-APKUAJ2L.js +220 -0
- package/dist/{chunk-SCHXJTZL.js → chunk-ARGMQ3H4.js} +2 -2
- package/dist/{chunk-HEVYAHLW.js → chunk-AUIM2NVH.js} +5 -5
- package/dist/{chunk-3LH5CLP4.js → chunk-BKVOYV6I.js} +143 -6
- package/dist/{chunk-RZ6YKEUJ.js → chunk-BPIZNB5O.js} +17 -15
- package/dist/{chunk-QROYX7TT.js → chunk-BPY242XU.js} +6 -4
- package/dist/{chunk-OTAL43EH.js → chunk-BRENJ2BQ.js} +39 -3
- package/dist/{chunk-FA6K3FWM.js → chunk-CCNDLW7Z.js} +44 -22
- package/dist/{chunk-2KGXHFYK.js → chunk-CIRFIL4M.js} +49 -29
- package/dist/chunk-DAOFNU6J.js +283 -0
- package/dist/{chunk-QJJZSROI.js → chunk-DYWQFQJP.js} +48 -38
- package/dist/{chunk-XEGTMVYY.js → chunk-EMLPOL77.js} +15 -8
- package/dist/{chunk-NWED7CYO.js → chunk-FHGVORFO.js} +29 -25
- package/dist/{chunk-U2HGPLZS.js → chunk-FQ7HTV52.js} +17 -2
- package/dist/{chunk-H73FP42Q.js → chunk-FQMUHRVC.js} +70 -31
- package/dist/{chunk-BTUTZMPT.js → chunk-FT3ZYWET.js} +108 -42
- package/dist/{chunk-T5SHNNGP.js → chunk-FUPF2UYQ.js} +92 -34
- package/dist/{chunk-3XPUDB7B.js → chunk-FY5MSZAP.js} +279 -39
- package/dist/{chunk-M5RXSRO2.js → chunk-GCYTI3DE.js} +42 -33
- package/dist/{chunk-DN66GPY5.js → chunk-GJFAMOGK.js} +24 -3
- package/dist/{chunk-F2L5GCQ4.js → chunk-GU46PPT3.js} +3 -3
- package/dist/{chunk-6IUAK7RZ.js → chunk-H6PI3KJT.js} +2 -2
- package/dist/{chunk-ONA5KPV3.js → chunk-H7KENAZO.js} +18 -14
- package/dist/{chunk-SQLNBA64.js → chunk-HBPDFCQY.js} +3 -3
- package/dist/{chunk-SCQ5VPUF.js → chunk-HFMYN6N2.js} +2 -2
- package/dist/{chunk-FJUNPCYI.js → chunk-HHKO6SKY.js} +2 -2
- package/dist/{chunk-DZXYF2F5.js → chunk-HQQNCY7W.js} +21 -8
- package/dist/{chunk-7TV5Y53Y.js → chunk-HWX6ZHF3.js} +3 -3
- package/dist/{chunk-3P2DKJCG.js → chunk-ICPJPQ5C.js} +2 -2
- package/dist/{chunk-VUJGMJE6.js → chunk-IM6PDDCE.js} +4 -4
- package/dist/{chunk-JJUOHGX2.js → chunk-INE5YJBZ.js} +13 -8
- package/dist/{chunk-HTMN2Z6U.js → chunk-J6QROYDA.js} +58 -11
- package/dist/{chunk-NX4EQS3U.js → chunk-J76PIKAT.js} +2 -2
- package/dist/{chunk-SVTI362O.js → chunk-J7KJR3R6.js} +129 -109
- package/dist/{chunk-JEUJOX5X.js → chunk-J7TLCB2Q.js} +2 -2
- package/dist/{chunk-O7WP4ZD4.js → chunk-JED6ZDEE.js} +2 -2
- package/dist/{chunk-J6K7RP6P.js → chunk-JRCOYRRH.js} +19 -7
- package/dist/{chunk-7QKLIMRZ.js → chunk-K2I2XOZD.js} +46 -51
- package/dist/{chunk-EAMEADTV.js → chunk-K4EOKJA6.js} +96 -24
- package/dist/{chunk-5OWVC2A6.js → chunk-KGVZ5VGH.js} +13 -10
- package/dist/{chunk-DFTFPYUD.js → chunk-LBMS4AW6.js} +22 -21
- package/dist/{chunk-VVW3F3MD.js → chunk-LGT3PZCJ.js} +27 -19
- package/dist/{chunk-OMNGQPEZ.js → chunk-LTXOLDUZ.js} +9 -6
- package/dist/{chunk-Q4V4XQWV.js → chunk-MUE65OTD.js} +5 -4
- package/dist/{chunk-5GJYGP5Z.js → chunk-MUVJ57EP.js} +14 -18
- package/dist/{chunk-CLD2OKV7.js → chunk-MX2EY5Y7.js} +2 -2
- package/dist/{chunk-OTQKUHRS.js → chunk-NNS4E7CW.js} +6 -4
- package/dist/{chunk-NNAAJVBU.js → chunk-NR5HCAUD.js} +1 -1
- package/dist/{chunk-KFZYNWWO.js → chunk-ONU3U4GL.js} +4 -4
- package/dist/{chunk-YNRDWYZP.js → chunk-OQKP2X3D.js} +170 -51
- package/dist/{chunk-AHGF2YYA.js → chunk-OTOHI4JO.js} +2 -2
- package/dist/{chunk-EOFPYPAU.js → chunk-P3NRSSUU.js} +51 -11
- package/dist/{chunk-QXKWYZNR.js → chunk-PRI2OD4E.js} +10 -3
- package/dist/{chunk-U6EQI3U6.js → chunk-QBZYACOG.js} +3 -3
- package/dist/{chunk-C2CVAM3U.js → chunk-QGATPIPX.js} +170 -91
- package/dist/{chunk-PZFVK3IH.js → chunk-QHXCAEMX.js} +8 -5
- package/dist/{chunk-BH3UYK36.js → chunk-QJMKPUYK.js} +15 -5
- package/dist/{chunk-HQCHYB5F.js → chunk-QOOUC2J5.js} +2 -2
- package/dist/{chunk-Z6XJQ6KO.js → chunk-QVENJMNX.js} +2 -2
- package/dist/{chunk-IUMPEA64.js → chunk-QZX5S6R3.js} +4 -4
- package/dist/{chunk-I7F2A35O.js → chunk-R3YSD62R.js} +25 -47
- package/dist/{chunk-NU3XLTGP.js → chunk-REJAIQ5S.js} +4 -4
- package/dist/{chunk-2C56LEML.js → chunk-ROOE4R4Y.js} +8 -5
- package/dist/{chunk-XHVV4NVW.js → chunk-RT7ACF77.js} +12 -2
- package/dist/{chunk-I2WKW7C7.js → chunk-SMRFPVLQ.js} +3 -3
- package/dist/{chunk-VDOOQZUD.js → chunk-SWSIKFEB.js} +4 -4
- package/dist/{chunk-HLJVEAOF.js → chunk-T4A4TSTJ.js} +19 -45
- package/dist/{chunk-KHEYDLMT.js → chunk-TJVLKNGR.js} +20 -10
- package/dist/{chunk-GL5UZ6NY.js → chunk-TPFKKXCB.js} +3 -3
- package/dist/{chunk-X6EZPSW6.js → chunk-TTIM6YTT.js} +31 -21
- package/dist/{chunk-BCYVE3N5.js → chunk-TYS6CSS5.js} +2 -2
- package/dist/{chunk-T4VOVZT5.js → chunk-UBLHQTLV.js} +15 -14
- package/dist/{chunk-3LKM6FMW.js → chunk-UNURMIQO.js} +2 -2
- package/dist/{chunk-TSA237IM.js → chunk-VILVLS7P.js} +5 -3
- package/dist/{chunk-HGN652MU.js → chunk-VL2O2F3W.js} +2 -2
- package/dist/{chunk-3XGZF2QJ.js → chunk-VQOCMUWI.js} +39 -28
- package/dist/{chunk-P6T66CCZ.js → chunk-WBM7ZNDI.js} +3 -2
- package/dist/{chunk-CMCR5WBW.js → chunk-WBRZJOEC.js} +3 -3
- package/dist/{chunk-5LWQH6QV.js → chunk-WCT3NYCV.js} +1 -1
- package/dist/{chunk-C4GQDB5L.js → chunk-WRNFDFPU.js} +2 -2
- package/dist/{chunk-6HJBFVLO.js → chunk-XD6ZYURY.js} +9 -4
- package/dist/{chunk-C63UWAKM.js → chunk-Y2ZE3MSG.js} +2 -2
- package/dist/{chunk-7UEMZREK.js → chunk-YAA6IID3.js} +2 -2
- package/dist/{chunk-F7BFXWNQ.js → chunk-YIBAWQGJ.js} +7 -4
- package/dist/{chunk-PH5X4GIP.js → chunk-YTMTPUH4.js} +8 -5
- package/dist/{chunk-3UIKSPFB.js → chunk-Z5QVYKR7.js} +11 -3
- package/dist/{chunk-KQ57MHRO.js → chunk-ZEF5M5MB.js} +155 -87
- package/dist/{chunk-LE4MYMLI.js → chunk-ZJV7GYR4.js} +6 -6
- package/dist/{chunk-XJLKLU4D.js → chunk-ZNWAYU6N.js} +11 -7
- package/dist/cli.cjs +165 -148
- package/dist/clock.js +105 -25
- package/dist/countdown.js +208 -82
- package/dist/dgmo-router-X7ZGAPIE.js +86 -0
- package/dist/dimensions-45H6JQEY.js +22 -0
- package/dist/editor.js +17 -2
- package/dist/element.d.ts +6 -0
- package/dist/element.js +172 -134
- package/dist/element.mjs +3026 -1463
- package/dist/{flowchart-parser-OE4WHLTF.js → flowchart-parser-UKELHBSB.js} +4 -4
- package/dist/{flowchart-renderer-GPCSMTOR.js → flowchart-renderer-MNCDS7MV.js} +10 -10
- package/dist/highlight.d.ts +21 -1
- package/dist/highlight.js +106 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +59 -57
- package/dist/{layout-FWODLIMP.js → layout-2L3WMRYU.js} +6 -6
- package/dist/{layout-7SKMFYHL.js → layout-46N4JJYK.js} +5 -5
- package/dist/{layout-7H4H46CS.js → layout-7QXCNOVS.js} +3 -3
- package/dist/layout-A4XWNVID.js +14 -0
- package/dist/{layout-46366KBT.js → layout-A5UHRWVH.js} +3 -3
- package/dist/{layout-NXG63LWH.js → layout-AM2JWW3X.js} +4 -4
- package/dist/{layout-DC4TVXER.js → layout-EE6GE46Y.js} +5 -5
- package/dist/{layout-FGQWRYYW.js → layout-F4WO357A.js} +3 -3
- package/dist/layout-G23F7LDH.js +9 -0
- package/dist/{layout-QNUQLEHU.js → layout-GM4UGR7B.js} +5 -4
- package/dist/{layout-7MZ5NF2N.js → layout-GQQJXNYH.js} +5 -5
- package/dist/{layout-5BG6DFCU.js → layout-IIE2S5FK.js} +6 -6
- package/dist/{layout-34CLNICW.js → layout-OAC4PEAC.js} +5 -5
- package/dist/layout-VMCRX66I.js +14 -0
- package/dist/{layout-PUQCB6AN.js → layout-ZDOSXL5G.js} +7 -7
- package/dist/{layout-search-QS44PI5R.js → layout-search-55FU6HD3.js} +6 -157
- package/dist/map-data/gazetteer.json +1 -1
- package/dist/{palettes-PRJ2RI6D.js → palettes-UDLZ2SA4.js} +2 -2
- package/dist/{parser-D5VILGN2.js → parser-2ECN6JA2.js} +4 -4
- package/dist/{parser-LWKKBNSA.js → parser-4WTIHM5J.js} +3 -3
- package/dist/{parser-DFFEDKHH.js → parser-5H2BTSJQ.js} +3 -3
- package/dist/{parser-4NO6VZ6S.js → parser-75KVXUNS.js} +4 -4
- package/dist/{parser-VKOJM7KS.js → parser-774AC53T.js} +4 -4
- package/dist/{parser-IBWNAPY4.js → parser-BE4YCSRU.js} +3 -3
- package/dist/{parser-4AI5ZN5F.js → parser-CNGUQUQI.js} +3 -3
- package/dist/{parser-36HVKU5U.js → parser-DEUUSQIN.js} +7 -6
- package/dist/{parser-H3XEPFPV.js → parser-DQAFLUJB.js} +4 -4
- package/dist/{parser-5OXGPNBF.js → parser-EYCKNKQA.js} +5 -5
- package/dist/{parser-TGQZJ5OT.js → parser-FXISIU6A.js} +4 -4
- package/dist/{parser-JJR52VAT.js → parser-GTB4XC7P.js} +5 -5
- package/dist/{parser-AGVYTQXV.js → parser-GVEPAUSD.js} +4 -4
- package/dist/{parser-WAV5JRPT.js → parser-HSQGTY4G.js} +4 -4
- package/dist/{parser-YS7TOS2K.js → parser-HVKRINUS.js} +3 -3
- package/dist/{parser-W4PQUGX3.js → parser-J5MIEYO4.js} +5 -5
- package/dist/parser-KMZIXLDZ.js +13 -0
- package/dist/{parser-HYRTF3DO.js → parser-LJHXWSXU.js} +3 -3
- package/dist/{parser-KCR2WS3V.js → parser-PT3W72G5.js} +4 -4
- package/dist/{parser-CVMEDULU.js → parser-SBJQDPHL.js} +4 -4
- package/dist/{parser-RZPVAQVX.js → parser-SUWWWCMX.js} +4 -3
- package/dist/{parser-TXND652E.js → parser-SXDRNZOA.js} +4 -4
- package/dist/parser-UMILOW3M.js +14 -0
- package/dist/{parser-RV4M6AS2.js → parser-UP3AZ367.js} +4 -4
- package/dist/{parser-IJBMRXMC.js → parser-WHPRV3X5.js} +5 -5
- package/dist/{parser-MPCE5JBG.js → parser-WX3UODSJ.js} +4 -4
- package/dist/{parser-K3XXLMUW.js → parser-XCIEN3KN.js} +4 -4
- package/dist/{parser-AXKBDGNO.js → parser-XIRTUMVN.js} +5 -5
- package/dist/{parser-B5FVS7O6.js → parser-YKCGIG45.js} +3 -3
- package/dist/{parser-PSA4UBSP.js → parser-YKYMQG3B.js} +4 -4
- package/dist/{parser-MTOMTWTD.js → parser-ZGM2OJ6Y.js} +6 -5
- package/dist/{parser-CSFUN3CT.js → parser-ZL5QUFVH.js} +5 -4
- package/dist/pert.d.ts +2 -2
- package/dist/{renderer-PPIHO5FI.js → renderer-3F7OS2AX.js} +14 -13
- package/dist/{renderer-SBS3YWU5.js → renderer-4QB4K7Q3.js} +9 -9
- package/dist/{renderer-GHPZMFU2.js → renderer-5DAKMIU2.js} +3 -3
- package/dist/{renderer-R2WNIC2C.js → renderer-5H4SY7YY.js} +9 -9
- package/dist/{renderer-DAXMXIKD.js → renderer-5PIQPFOX.js} +5 -4
- package/dist/{renderer-45PSOL3E.js → renderer-6MU37QF5.js} +6 -6
- package/dist/renderer-AQVMWJ4M.js +27 -0
- package/dist/{renderer-A5VE5BCI.js → renderer-BDDW6K7N.js} +9 -9
- package/dist/{renderer-AUW2BE6G.js → renderer-BNB3VIDY.js} +10 -10
- package/dist/{renderer-4ITCHBT7.js → renderer-CQY6ATOS.js} +6 -6
- package/dist/{renderer-6OKF44KS.js → renderer-CVW75CXL.js} +15 -15
- package/dist/{renderer-7RH2SI3B.js → renderer-DT4XRFEP.js} +5 -4
- package/dist/{renderer-B5TBNZJE.js → renderer-ERHBSTQT.js} +9 -9
- package/dist/{renderer-HVCU2C3Z.js → renderer-HSHHVYWF.js} +5 -4
- package/dist/renderer-IDPVUFNB.js +28 -0
- package/dist/renderer-ILX6BGKR.js +21 -0
- package/dist/renderer-JP663HKG.js +22 -0
- package/dist/{renderer-KS7YZJE2.js → renderer-KNFTTOBL.js} +11 -11
- package/dist/{renderer-2AZ5HJFK.js → renderer-MVUZBESR.js} +5 -5
- package/dist/{renderer-QAOBLRXV.js → renderer-N4EBR2FV.js} +11 -11
- package/dist/{renderer-P5ROYQGU.js → renderer-NHO46CT2.js} +4 -4
- package/dist/{renderer-NGXZTRK6.js → renderer-NO2QJ5LZ.js} +10 -10
- package/dist/{renderer-FPE3J5VZ.js → renderer-OGFV5RXX.js} +12 -12
- package/dist/{renderer-ODUUOPVT.js → renderer-PDLESJMS.js} +15 -15
- package/dist/renderer-T4MTNINC.js +24 -0
- package/dist/renderer-TOUGFGTM.js +24 -0
- package/dist/{renderer-BSR2O2H6.js → renderer-U3KPD43Y.js} +14 -13
- package/dist/{renderer-JCCHNECZ.js → renderer-X334IJU2.js} +10 -10
- package/dist/{renderer-5DSEWF74.js → renderer-Y5OAMOCR.js} +9 -9
- package/dist/{renderer-5KVCNMOJ.js → renderer-YONAKAJU.js} +5 -3
- package/dist/{renderer-7SD6MSBS.js → renderer-YWMI6Y2U.js} +12 -12
- package/dist/{renderer-2QPMJ2DA.js → renderer-ZWIH4WDW.js} +10 -10
- package/dist/renderer-radial-7CGZMVMS.js +21 -0
- package/dist/{resolver-FHBCO3PL.js → resolver-EMTGNR3D.js} +4 -3
- package/dist/{state-parser-3REXRK3R.js → state-parser-BATWAID2.js} +4 -4
- package/dist/{state-renderer-XYLNRWXR.js → state-renderer-3FKZJ3LP.js} +10 -10
- package/dist/{themes-PdPR1-hC.d.ts → themes-32xj5ZTW.d.ts} +27 -0
- package/docs/ai-integration.md +15 -19
- package/docs/language-reference.md +106 -21
- package/gallery/fixtures/clock.dgmo +3 -3
- package/gallery/fixtures/countdown-tz.dgmo +5 -0
- package/package.json +1 -1
- package/dist/charts-d3-MUW3LTML.js +0 -26
- package/dist/dgmo-router-CE2G67FV.js +0 -84
- package/dist/dimensions-OTBKC5M6.js +0 -22
- package/dist/layout-6RDJHS6E.js +0 -9
- package/dist/layout-J36454XU.js +0 -14
- package/dist/layout-LD6XTLD6.js +0 -14
- package/dist/parser-4WQQQXCG.js +0 -13
- package/dist/parser-O4HIUN6G.js +0 -13
- package/dist/renderer-CYB4LK3G.js +0 -22
- package/dist/renderer-FF24KZCI.js +0 -24
- package/dist/renderer-FYSVXL7M.js +0 -28
- package/dist/renderer-HDCCZURL.js +0 -24
- package/dist/renderer-PSMMZCKH.js +0 -21
- package/dist/renderer-UYMQQCJK.js +0 -24
- package/dist/renderer-radial-F7X5F2VU.js +0 -21
|
@@ -7,11 +7,11 @@ import {
|
|
|
7
7
|
} from "./chunk-YYVTBZZC.js";
|
|
8
8
|
import {
|
|
9
9
|
renderIntegratedLegend
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AUIM2NVH.js";
|
|
11
11
|
import {
|
|
12
12
|
controlsGroupCapsuleWidth,
|
|
13
13
|
getMaxLegendReservedHeight
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YAA6IID3.js";
|
|
15
15
|
import {
|
|
16
16
|
TITLE_FONT_SIZE,
|
|
17
17
|
TITLE_FONT_WEIGHT,
|
|
@@ -34,23 +34,23 @@ import {
|
|
|
34
34
|
LEGEND_PILL_PAD,
|
|
35
35
|
measureLegendText,
|
|
36
36
|
truncateLegendText
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-QOOUC2J5.js";
|
|
38
38
|
import {
|
|
39
39
|
CHAR_WIDTH_RATIO,
|
|
40
40
|
measureText,
|
|
41
41
|
truncateText
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-WCT3NYCV.js";
|
|
43
43
|
import {
|
|
44
44
|
contrastText,
|
|
45
45
|
getSeriesColors,
|
|
46
46
|
mix,
|
|
47
47
|
shapeFill
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-WBM7ZNDI.js";
|
|
49
49
|
import {
|
|
50
50
|
resolveActiveTagGroup,
|
|
51
51
|
resolveTagColor,
|
|
52
52
|
tagAttrKey
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-HHKO6SKY.js";
|
|
54
54
|
import {
|
|
55
55
|
normalizeName
|
|
56
56
|
} from "./chunk-NOTA6TEI.js";
|
|
@@ -100,18 +100,13 @@ function computeBarLabel(label, x1, barWidth, innerWidth, textColor, onFillColor
|
|
|
100
100
|
var BAND_ACCENT_W = 4;
|
|
101
101
|
var BAND_RADIUS = 4;
|
|
102
102
|
var bandClipCounter = 0;
|
|
103
|
-
function renderLabelBand(svg, y, leftMargin, color, palette, isDark, cssPrefix, dataAttr,
|
|
103
|
+
function renderLabelBand(svg, y, leftMargin, color, palette, isDark, cssPrefix, dataAttr, fillMode, barH = BAR_H, bandRadius = BAND_RADIUS, bandAccentW = BAND_ACCENT_W) {
|
|
104
104
|
const bandX = 5;
|
|
105
105
|
const bandW = leftMargin - 7;
|
|
106
106
|
const bandY = y - barH / 2;
|
|
107
107
|
const clipId = `gantt-band-clip-${bandClipCounter++}`;
|
|
108
108
|
svg.append("clipPath").attr("id", clipId).append("rect").attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", barH).attr("rx", bandRadius);
|
|
109
|
-
const tint = svg.append("rect").attr("class", `gantt-${cssPrefix}-band-bg`).attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", barH).attr("rx", bandRadius).attr(
|
|
110
|
-
"fill",
|
|
111
|
-
shapeFill(palette, color, isDark, {
|
|
112
|
-
...solid !== void 0 && { solid }
|
|
113
|
-
})
|
|
114
|
-
).style("pointer-events", "none");
|
|
109
|
+
const tint = svg.append("rect").attr("class", `gantt-${cssPrefix}-band-bg`).attr("x", bandX).attr("y", bandY).attr("width", bandW).attr("height", barH).attr("rx", bandRadius).attr("fill", shapeFill(palette, color, isDark, { mode: fillMode })).style("pointer-events", "none");
|
|
115
110
|
const accent = svg.append("rect").attr("class", `gantt-${cssPrefix}-band-accent`).attr("x", bandX).attr("y", bandY).attr("width", bandAccentW).attr("height", barH).attr("fill", color).attr("clip-path", `url(#${clipId})`).style("pointer-events", "none");
|
|
116
111
|
if (dataAttr) {
|
|
117
112
|
tint.attr(dataAttr.key, dataAttr.value);
|
|
@@ -127,7 +122,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
127
122
|
container.innerHTML = "";
|
|
128
123
|
bandClipCounter = 0;
|
|
129
124
|
if (resolved.tasks.length === 0) return;
|
|
130
|
-
const
|
|
125
|
+
const fillMode = void 0;
|
|
131
126
|
const onClickItem = options?.onClickItem;
|
|
132
127
|
const collapsedGroups = options?.collapsedGroups ?? new Set(resolved.groups.filter((g2) => g2.collapsed).map((g2) => g2.name));
|
|
133
128
|
const onToggleGroup = options?.onToggleGroup;
|
|
@@ -318,7 +313,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
318
313
|
seriesColors,
|
|
319
314
|
palette
|
|
320
315
|
);
|
|
321
|
-
const fillColor = shapeFill(palette, color, isDark, {
|
|
316
|
+
const fillColor = shapeFill(palette, color, isDark, { mode: fillMode });
|
|
322
317
|
el.select("rect").attr("fill", fillColor).attr("stroke", color);
|
|
323
318
|
});
|
|
324
319
|
}
|
|
@@ -419,7 +414,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
419
414
|
isDark,
|
|
420
415
|
"lane",
|
|
421
416
|
{ key: "data-lane", value: row.laneName },
|
|
422
|
-
|
|
417
|
+
fillMode,
|
|
423
418
|
sBarH,
|
|
424
419
|
sBandRadius,
|
|
425
420
|
sBandAccentW
|
|
@@ -446,7 +441,9 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
446
441
|
toggleIcon + " " + row.laneName + (row.aggregateProgress !== null ? ` ${Math.round(row.aggregateProgress)}%` : "")
|
|
447
442
|
);
|
|
448
443
|
if (laneBarWidth > 0) {
|
|
449
|
-
const barFill = shapeFill(palette, laneColor, isDark, {
|
|
444
|
+
const barFill = shapeFill(palette, laneColor, isDark, {
|
|
445
|
+
mode: fillMode
|
|
446
|
+
});
|
|
450
447
|
const laneBandG = g.append("g").attr("class", "gantt-lane-band-group").attr("data-lane", row.laneName).on("mouseenter", () => {
|
|
451
448
|
highlightLane(g, svg, row.tagKey, row.laneName);
|
|
452
449
|
if (row.laneStartDate && row.laneEndDate) {
|
|
@@ -492,7 +489,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
492
489
|
isDark,
|
|
493
490
|
"group",
|
|
494
491
|
{ key: "data-group", value: group.name },
|
|
495
|
-
|
|
492
|
+
fillMode,
|
|
496
493
|
sBarH,
|
|
497
494
|
sBandRadius,
|
|
498
495
|
sBandAccentW
|
|
@@ -539,7 +536,10 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
539
536
|
resetHighlight(g, svg);
|
|
540
537
|
hideGanttDateIndicators(g);
|
|
541
538
|
});
|
|
542
|
-
summaryG.append("rect").attr("x", gx1).attr("y", yOffset).attr("width", barWidth).attr("height", sBarH).attr("rx", 4).attr(
|
|
539
|
+
summaryG.append("rect").attr("x", gx1).attr("y", yOffset).attr("width", barWidth).attr("height", sBarH).attr("rx", 4).attr(
|
|
540
|
+
"fill",
|
|
541
|
+
shapeFill(palette, groupColor, isDark, { mode: fillMode })
|
|
542
|
+
).attr("stroke", groupColor).attr("stroke-width", 2);
|
|
543
543
|
if (group.progress !== null && group.progress > 0) {
|
|
544
544
|
summaryG.append("rect").attr("x", gx1).attr("y", yOffset).attr("width", barWidth * Math.min(group.progress / 100, 1)).attr("height", sBarH).attr("fill", groupColor).attr("opacity", 0.5);
|
|
545
545
|
}
|
|
@@ -551,7 +551,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
551
551
|
innerWidth,
|
|
552
552
|
palette.text,
|
|
553
553
|
contrastText(
|
|
554
|
-
shapeFill(palette, groupColor, isDark, {
|
|
554
|
+
shapeFill(palette, groupColor, isDark, { mode: fillMode }),
|
|
555
555
|
palette.textOnFillLight,
|
|
556
556
|
palette.textOnFillDark
|
|
557
557
|
),
|
|
@@ -569,7 +569,9 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
569
569
|
});
|
|
570
570
|
} else {
|
|
571
571
|
const groupBarWidth = Math.max(gx2 - gx1, 2);
|
|
572
|
-
const bandFill = shapeFill(palette, groupColor, isDark, {
|
|
572
|
+
const bandFill = shapeFill(palette, groupColor, isDark, {
|
|
573
|
+
mode: fillMode
|
|
574
|
+
});
|
|
573
575
|
const groupBarG = g.append("g").attr("class", "gantt-group-bar").attr("data-group", group.name).attr("data-line-number", String(group.lineNumber)).on("mouseenter", () => {
|
|
574
576
|
highlightGroup(g, svg, group.name);
|
|
575
577
|
showGanttDateIndicators(
|
|
@@ -596,7 +598,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
596
598
|
innerWidth,
|
|
597
599
|
palette.text,
|
|
598
600
|
contrastText(
|
|
599
|
-
shapeFill(palette, groupColor, isDark, {
|
|
601
|
+
shapeFill(palette, groupColor, isDark, { mode: fillMode }),
|
|
600
602
|
palette.textOnFillLight,
|
|
601
603
|
palette.textOnFillDark
|
|
602
604
|
),
|
|
@@ -676,7 +678,9 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
676
678
|
const x1 = xScale(tStart);
|
|
677
679
|
const x2 = xScale(tEnd);
|
|
678
680
|
const barWidth = Math.max(x2 - x1, 2);
|
|
679
|
-
const fillColor = shapeFill(palette, barColor, isDark, {
|
|
681
|
+
const fillColor = shapeFill(palette, barColor, isDark, {
|
|
682
|
+
mode: fillMode
|
|
683
|
+
});
|
|
680
684
|
const taskG = g.append("g").attr("class", "gantt-task").attr("data-line-number", String(task.lineNumber)).attr("data-task-name", task.label).attr("data-task-id", task.id).attr("data-group", topGroup).style("cursor", onClickItem ? "pointer" : "default").on("click", () => {
|
|
681
685
|
if (onClickItem) onClickItem(task.lineNumber);
|
|
682
686
|
}).on("mouseenter", () => {
|
|
@@ -747,7 +751,7 @@ function renderGantt(container, resolved, palette, isDark, options, exportDims)
|
|
|
747
751
|
innerWidth,
|
|
748
752
|
palette.text,
|
|
749
753
|
contrastText(
|
|
750
|
-
shapeFill(palette, barColor, isDark, {
|
|
754
|
+
shapeFill(palette, barColor, isDark, { mode: fillMode }),
|
|
751
755
|
palette.textOnFillLight,
|
|
752
756
|
palette.textOnFillDark
|
|
753
757
|
),
|
|
@@ -2101,4 +2105,4 @@ export {
|
|
|
2101
2105
|
renderGantt,
|
|
2102
2106
|
buildTagLaneRowList
|
|
2103
2107
|
};
|
|
2104
|
-
//# sourceMappingURL=chunk-
|
|
2108
|
+
//# sourceMappingURL=chunk-FHGVORFO.js.map
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
// src/directives-registry.ts
|
|
2
2
|
var DIRECTIVES_REGISTRY = [
|
|
3
|
+
// ── Universal date handling (§ BL-121) ───────────────────
|
|
4
|
+
// Accepted in every date-bearing chart (gantt, pert, countdown, timeline,
|
|
5
|
+
// event-line). Handled inline by each parser's prescan — no parser-Set
|
|
6
|
+
// membership here — so they only contribute highlighting (DIRECTIVE_KEYWORDS).
|
|
7
|
+
{ token: "year", category: "directive" },
|
|
8
|
+
{ token: "date-order", category: "directive" },
|
|
9
|
+
{ token: "no-current-year", category: "directive" },
|
|
3
10
|
// ── Infra ────────────────────────────────────────────────
|
|
4
11
|
// Top-level SLO options that are ALSO accepted as node colon-properties
|
|
5
12
|
// (dual membership). Highlight bare (kept in DIRECTIVE_KEYWORDS) — their
|
|
@@ -58,7 +65,9 @@ var DIRECTIVES_REGISTRY = [
|
|
|
58
65
|
{ token: "sprint-length", category: "directive", gantt: ["option"] },
|
|
59
66
|
{ token: "sprint-number", category: "directive", gantt: ["option"] },
|
|
60
67
|
{ token: "sprint-start", category: "directive", gantt: ["option"] },
|
|
61
|
-
{ token: "
|
|
68
|
+
{ token: "fill-tint", category: "directive", gantt: ["boolean"] },
|
|
69
|
+
{ token: "fill-solid", category: "directive", gantt: ["boolean"] },
|
|
70
|
+
{ token: "fill-outline", category: "directive", gantt: ["boolean"] },
|
|
62
71
|
// `chart` is a wireframe element keyword (CONTROL); gantt also accepts it as
|
|
63
72
|
// an option. Highlight family is control.
|
|
64
73
|
{ token: "chart", category: "control", gantt: ["option"] },
|
|
@@ -86,6 +95,12 @@ var DIRECTIVES_REGISTRY = [
|
|
|
86
95
|
{ token: "no-colorize", category: "directive", map: true },
|
|
87
96
|
{ token: "no-cities", category: "directive", map: true },
|
|
88
97
|
{ token: "no-cluster-pois", category: "directive", map: true },
|
|
98
|
+
// ── Clock channel (BL-122): live local-time cards on POIs flagged `clock` ──
|
|
99
|
+
// Activation is the per-POI `clock` flag (peeled in the map parser, not a
|
|
100
|
+
// directive). `hours 9-17` / `days mon-fri` are the global availability
|
|
101
|
+
// window (reused verbatim from the clock chart type).
|
|
102
|
+
{ token: "hours", category: "directive", map: true },
|
|
103
|
+
{ token: "days", category: "directive", map: true },
|
|
89
104
|
// ── Shared across types ──────────────────────────────────
|
|
90
105
|
// `active-tag`: infra top-level option + gantt option + map directive.
|
|
91
106
|
{
|
|
@@ -346,4 +361,4 @@ export {
|
|
|
346
361
|
REGISTRY_MODIFIER_TOKENS,
|
|
347
362
|
REGISTRY_COLON_KEY_TOKENS
|
|
348
363
|
};
|
|
349
|
-
//# sourceMappingURL=chunk-
|
|
364
|
+
//# sourceMappingURL=chunk-FQ7HTV52.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
import {
|
|
8
8
|
VARIANTS,
|
|
9
9
|
allTasks
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-4IHAV6O7.js";
|
|
11
11
|
import {
|
|
12
12
|
TITLE_FONT_SIZE,
|
|
13
13
|
TITLE_FONT_WEIGHT,
|
|
@@ -20,12 +20,15 @@ import {
|
|
|
20
20
|
measureText,
|
|
21
21
|
truncateText,
|
|
22
22
|
wrapTextToWidth
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-WCT3NYCV.js";
|
|
24
24
|
import {
|
|
25
25
|
contrastText,
|
|
26
26
|
mix,
|
|
27
27
|
themeBaseBg
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-WBM7ZNDI.js";
|
|
29
|
+
import {
|
|
30
|
+
fillModeFromOptions
|
|
31
|
+
} from "./chunk-BRENJ2BQ.js";
|
|
29
32
|
|
|
30
33
|
// src/raci/renderer.ts
|
|
31
34
|
import * as d3Selection from "d3-selection";
|
|
@@ -158,7 +161,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
|
|
|
158
161
|
if (width <= 0 || height <= 0) return;
|
|
159
162
|
const tasksAll = [...allTasks(parsed)];
|
|
160
163
|
if (tasksAll.length === 0 && parsed.phases.length === 0) return;
|
|
161
|
-
const
|
|
164
|
+
const fillMode = fillModeFromOptions(parsed.options);
|
|
162
165
|
const surfaceBg = themeBaseBg(palette, isDark);
|
|
163
166
|
const roleCount = Math.max(1, parsed.roles.length);
|
|
164
167
|
const idealWidth = roleCount * ROLE_COL_MAX + TASK_LABEL_MAX + 2 * H_MARGIN;
|
|
@@ -312,7 +315,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
|
|
|
312
315
|
legendChipW,
|
|
313
316
|
palette,
|
|
314
317
|
surfaceBg,
|
|
315
|
-
|
|
318
|
+
fillMode,
|
|
316
319
|
onMarkerDragStart,
|
|
317
320
|
sLegendChipGap,
|
|
318
321
|
sLegendHeight,
|
|
@@ -332,7 +335,14 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
|
|
|
332
335
|
if (taskIdx < 0) return;
|
|
333
336
|
const yTop = rowYs[i];
|
|
334
337
|
const rh = taskRowContent.get(row.task.id)?.rowHeight ?? sRowHeight;
|
|
335
|
-
|
|
338
|
+
const bandAccent = autoAccent(taskIdx, palette);
|
|
339
|
+
const band = bandsG.append("rect").attr("class", "raci-row-band").attr("data-task-id", row.task.id).attr("x", sHMargin).attr("y", yTop + 2).attr("width", innerWidth).attr("height", rh - 4).attr("rx", 6).attr(
|
|
340
|
+
"fill",
|
|
341
|
+
fillMode === "outline" ? surfaceBg : mix(bandAccent, surfaceBg, 12)
|
|
342
|
+
);
|
|
343
|
+
if (fillMode === "outline") {
|
|
344
|
+
band.attr("stroke", bandAccent).attr("stroke-width", 1);
|
|
345
|
+
}
|
|
336
346
|
});
|
|
337
347
|
}
|
|
338
348
|
const columnsG = svg.append("g").attr("class", "raci-columns");
|
|
@@ -340,14 +350,21 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
|
|
|
340
350
|
const cx = roleX(i) + sColumnInset;
|
|
341
351
|
const cw = roleColW - 2 * sColumnInset;
|
|
342
352
|
const roleColor = parsed.roleColors[i] ?? autoAccent(i, palette);
|
|
343
|
-
const
|
|
344
|
-
const
|
|
353
|
+
const outline = fillMode === "outline";
|
|
354
|
+
const bodyFill = outline ? surfaceBg : mix(roleColor, themeBaseBg(palette, isDark), 16);
|
|
355
|
+
const headerFill = outline ? surfaceBg : mix(roleColor, themeBaseBg(palette, isDark), 30);
|
|
345
356
|
const colG = columnsG.append("g").attr("class", "raci-column").attr("data-role-id", roleId);
|
|
346
|
-
colG.append("rect").attr("class", "raci-column-body").attr("x", cx).attr("y", headerY).attr("width", cw).attr("height", colTotalHeight).attr("rx", sColumnRadius).attr("fill", bodyFill);
|
|
347
|
-
|
|
357
|
+
const bodyRect = colG.append("rect").attr("class", "raci-column-body").attr("x", cx).attr("y", headerY).attr("width", cw).attr("height", colTotalHeight).attr("rx", sColumnRadius).attr("fill", bodyFill);
|
|
358
|
+
if (outline) {
|
|
359
|
+
bodyRect.attr("stroke", roleColor).attr("stroke-width", 1);
|
|
360
|
+
}
|
|
361
|
+
const headerPath = colG.append("path").attr("class", "raci-column-header").attr(
|
|
348
362
|
"d",
|
|
349
363
|
topRoundedRectPath(cx, headerY, cw, sHeaderHeight, sColumnRadius)
|
|
350
364
|
).attr("fill", headerFill);
|
|
365
|
+
if (outline) {
|
|
366
|
+
headerPath.attr("stroke", roleColor).attr("stroke-width", 1);
|
|
367
|
+
}
|
|
351
368
|
const cxText = roleX(i) + roleColW / 2;
|
|
352
369
|
colG.append("text").attr("class", "raci-column-label").attr("x", cxText).attr("y", headerY + sHeaderHeight / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", sRoleHeaderFont).attr("font-weight", 600).attr("fill", palette.text).text(
|
|
353
370
|
truncateText(
|
|
@@ -400,7 +417,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
|
|
|
400
417
|
roleColW,
|
|
401
418
|
parsed.variant,
|
|
402
419
|
surfaceBg,
|
|
403
|
-
|
|
420
|
+
fillMode,
|
|
404
421
|
chartCanShowSummaries,
|
|
405
422
|
sPhaseHeight,
|
|
406
423
|
sPhaseFont,
|
|
@@ -419,7 +436,7 @@ function renderRaci(container, parsed, palette, isDark, handlers, exportDims) {
|
|
|
419
436
|
roleColW,
|
|
420
437
|
palette,
|
|
421
438
|
surfaceBg,
|
|
422
|
-
|
|
439
|
+
fillMode,
|
|
423
440
|
taskDiagnostics,
|
|
424
441
|
hasAnyDiagnostic,
|
|
425
442
|
taskRowContent.get(row.task.id),
|
|
@@ -482,7 +499,7 @@ function setupColumnHover(svg) {
|
|
|
482
499
|
svg.on("mouseover", (event) => set(findRole(event.target)));
|
|
483
500
|
svg.on("mouseleave", () => set(null));
|
|
484
501
|
}
|
|
485
|
-
function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surfaceBg,
|
|
502
|
+
function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surfaceBg, fillMode, _onMarkerDragStart, sLegendChipGap, sLegendHeight, sNodeRadius, sNodeStrokeWidth, sLegendLetterFont, sLegendLabelFont) {
|
|
486
503
|
if (markers.length === 0) return;
|
|
487
504
|
const labels = MARKER_LABELS[variant];
|
|
488
505
|
const legendG = svg.append("g").attr("class", "raci-legend").attr("aria-label", `${variant.toUpperCase()} marker legend`);
|
|
@@ -492,12 +509,12 @@ function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surface
|
|
|
492
509
|
const labelText = labels[marker];
|
|
493
510
|
const chipG = legendG.append("g").attr("class", "raci-legend-chip").attr("data-marker", marker).style("cursor", "grab");
|
|
494
511
|
if (mode === "letters") {
|
|
495
|
-
const fill2 = solid ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
|
|
496
|
-
const stroke2 = solid ? mix(rawColor, surfaceBg, 70) : rawColor;
|
|
512
|
+
const fill2 = fillMode === "solid" ? rawColor : fillMode === "outline" ? surfaceBg : mix(rawColor, surfaceBg, TINT_PCT);
|
|
513
|
+
const stroke2 = fillMode === "solid" ? mix(rawColor, surfaceBg, 70) : rawColor;
|
|
497
514
|
chipG.append("rect").attr("x", cx).attr("y", y).attr("width", chipW).attr("height", sLegendHeight).attr("rx", sNodeRadius).attr("fill", fill2).attr("stroke", stroke2).attr("stroke-width", sNodeStrokeWidth);
|
|
498
515
|
chipG.append("text").attr("x", cx + chipW / 2).attr("y", y + sLegendHeight / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", sLegendLetterFont).attr("font-weight", 700).attr(
|
|
499
516
|
"fill",
|
|
500
|
-
solid ? contrastText(
|
|
517
|
+
fillMode === "solid" ? contrastText(
|
|
501
518
|
fill2,
|
|
502
519
|
palette.textOnFillLight,
|
|
503
520
|
palette.textOnFillDark
|
|
@@ -505,16 +522,32 @@ function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surface
|
|
|
505
522
|
).text(marker);
|
|
506
523
|
return;
|
|
507
524
|
}
|
|
508
|
-
|
|
509
|
-
|
|
525
|
+
let fill;
|
|
526
|
+
if (fillMode === "outline") {
|
|
527
|
+
const gradId = `raci-legend-grad-${marker}`;
|
|
528
|
+
let defs = svg.select("defs");
|
|
529
|
+
if (defs.empty()) defs = svg.append("defs");
|
|
530
|
+
if (defs.select(`#${gradId}`).empty()) {
|
|
531
|
+
const grad = defs.append("linearGradient").attr("id", gradId).attr("x1", "0%").attr("y1", "0%").attr("x2", "0%").attr("y2", "100%");
|
|
532
|
+
grad.append("stop").attr("offset", "0%").attr("stop-color", mix(rawColor, surfaceBg, 38));
|
|
533
|
+
grad.append("stop").attr("offset", "100%").attr("stop-color", mix(rawColor, surfaceBg, 8));
|
|
534
|
+
}
|
|
535
|
+
fill = `url(#${gradId})`;
|
|
536
|
+
} else {
|
|
537
|
+
fill = fillMode === "solid" ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
|
|
538
|
+
}
|
|
539
|
+
const stroke = fillMode === "outline" ? rawColor : mix(rawColor, surfaceBg, 70);
|
|
510
540
|
chipG.append("rect").attr("x", cx).attr("y", y).attr("width", chipW).attr("height", sLegendHeight).attr("rx", sNodeRadius).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", sNodeStrokeWidth);
|
|
511
541
|
const slabPad = 4;
|
|
512
542
|
const slabW = 24;
|
|
513
|
-
const slabFill = solid ? mix(rawColor, surfaceBg, 70) : mix(rawColor, surfaceBg, 55);
|
|
514
|
-
chipG.append("rect").attr("x", cx + slabPad).attr("y", y + slabPad).attr("width", slabW).attr("height", sLegendHeight - 2 * slabPad).attr("rx", 4).attr("fill", slabFill);
|
|
543
|
+
const slabFill = fillMode === "solid" ? mix(rawColor, surfaceBg, 70) : fillMode === "outline" ? surfaceBg : mix(rawColor, surfaceBg, 55);
|
|
544
|
+
const slabRect = chipG.append("rect").attr("x", cx + slabPad).attr("y", y + slabPad).attr("width", slabW).attr("height", sLegendHeight - 2 * slabPad).attr("rx", 4).attr("fill", slabFill);
|
|
545
|
+
if (fillMode === "outline") {
|
|
546
|
+
slabRect.attr("stroke", rawColor).attr("stroke-width", 1);
|
|
547
|
+
}
|
|
515
548
|
chipG.append("text").attr("x", cx + slabPad + slabW / 2).attr("y", y + sLegendHeight / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", sLegendLetterFont).attr("font-weight", 700).attr(
|
|
516
549
|
"fill",
|
|
517
|
-
solid ? contrastText(
|
|
550
|
+
fillMode === "solid" ? contrastText(
|
|
518
551
|
slabFill,
|
|
519
552
|
palette.textOnFillLight,
|
|
520
553
|
palette.textOnFillDark
|
|
@@ -532,10 +565,16 @@ function renderLegend(svg, markers, variant, x, y, mode, chipW, palette, surface
|
|
|
532
565
|
function renderRaciForExport(container, parsed, palette, isDark, exportDims) {
|
|
533
566
|
renderRaci(container, parsed, palette, isDark, {}, exportDims);
|
|
534
567
|
}
|
|
535
|
-
function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor, roles, roleX, roleColW, variant, surfaceBg,
|
|
568
|
+
function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor, roles, roleX, roleColW, variant, surfaceBg, fillMode, showSummary, sPhaseHeight, sPhaseFont, sColumnInset, sNodeRadius) {
|
|
536
569
|
const phaseG = svg.append("g").attr("class", "raci-phase").attr("data-section", `phase-${phase.id}`).attr("data-section-toggle", "").attr("data-line-number", String(phase.lineNumber)).attr("data-phase-id", phase.id).attr("data-collapsed", collapsed ? "1" : "0").style("cursor", "pointer");
|
|
537
|
-
const
|
|
538
|
-
phaseG.append("rect").attr("x", x).attr("y", y + 4).attr("width", width).attr("height", sPhaseHeight - 8).attr(
|
|
570
|
+
const phaseColor = phase.color ?? autoColor;
|
|
571
|
+
const phaseRect = phaseG.append("rect").attr("x", x).attr("y", y + 4).attr("width", width).attr("height", sPhaseHeight - 8).attr(
|
|
572
|
+
"fill",
|
|
573
|
+
fillMode === "outline" ? surfaceBg : mix(phaseColor, palette.bg, 30)
|
|
574
|
+
).attr("rx", 4);
|
|
575
|
+
if (fillMode === "outline") {
|
|
576
|
+
phaseRect.attr("stroke", phaseColor).attr("stroke-width", 1.25);
|
|
577
|
+
}
|
|
539
578
|
const chevX = x + 12;
|
|
540
579
|
const chevY = y + sPhaseHeight / 2;
|
|
541
580
|
phaseG.append("text").attr("x", chevX).attr("y", chevY).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-family", FONT_FAMILY).attr("font-size", 9).attr("fill", palette.text).attr("opacity", 0.6).text(collapsed ? "\u25B6" : "\u25BC");
|
|
@@ -568,13 +607,13 @@ function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor,
|
|
|
568
607
|
ordered.forEach((marker, i) => {
|
|
569
608
|
const cx = startX + i * (sliceW + SLICE_GAP);
|
|
570
609
|
const rawColor = markerColor(marker, palette);
|
|
571
|
-
const fill = solid ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
|
|
572
|
-
const stroke = solid ? mix(rawColor, surfaceBg, 70) : rawColor;
|
|
610
|
+
const fill = fillMode === "solid" ? rawColor : fillMode === "outline" ? surfaceBg : mix(rawColor, surfaceBg, TINT_PCT);
|
|
611
|
+
const stroke = fillMode === "solid" ? mix(rawColor, surfaceBg, 70) : rawColor;
|
|
573
612
|
const chipG = phaseG.append("g").attr("class", "raci-phase-summary");
|
|
574
613
|
chipG.append("rect").attr("x", cx).attr("y", summaryY).attr("width", sliceW).attr("height", SUMMARY_CHIP_H).attr("rx", sNodeRadius).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", 1.25);
|
|
575
614
|
chipG.append("text").attr("x", cx + sliceW / 2).attr("y", summaryY + SUMMARY_CHIP_H / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", SUMMARY_LETTER_FONT).attr("font-weight", 700).attr(
|
|
576
615
|
"fill",
|
|
577
|
-
solid ? contrastText(
|
|
616
|
+
fillMode === "solid" ? contrastText(
|
|
578
617
|
fill,
|
|
579
618
|
palette.textOnFillLight,
|
|
580
619
|
palette.textOnFillDark
|
|
@@ -585,7 +624,7 @@ function renderPhaseBar(svg, phase, x, y, width, palette, collapsed, autoColor,
|
|
|
585
624
|
}
|
|
586
625
|
}
|
|
587
626
|
var SLICE_GAP = 4;
|
|
588
|
-
function renderTaskRow(svg, task, parsed, x, y, labelW, roleX, roleColW, palette, surfaceBg,
|
|
627
|
+
function renderTaskRow(svg, task, parsed, x, y, labelW, roleX, roleColW, palette, surfaceBg, fillMode, taskDiagnostics, _hasAnyDiagnostic, rowContent, onClickLine, _onMarkerDragStart, sLabelFont, sDescFont, sCellPad, sRowHeight, sColumnInset, sNodeRadius, sNodeStrokeWidth, sMarkerFont, sLegendLabelFont, sStackTopGap, sViolationLineHeight) {
|
|
589
628
|
const rowG = svg.append("g").attr("class", "raci-task-row").attr("data-task-id", task.id).attr("data-line-number", String(task.lineNumber));
|
|
590
629
|
const labelX = x + 8;
|
|
591
630
|
const labelMaxW = labelW - 16;
|
|
@@ -664,7 +703,7 @@ function renderTaskRow(svg, task, parsed, x, y, labelW, roleX, roleColW, palette
|
|
|
664
703
|
const variantLabels = MARKER_LABELS[parsed.variant];
|
|
665
704
|
markers.forEach((m, i) => {
|
|
666
705
|
const rawColor = markerColor(m, palette);
|
|
667
|
-
const fill = solid ? rawColor : mix(rawColor, surfaceBg, TINT_PCT);
|
|
706
|
+
const fill = fillMode === "solid" ? rawColor : fillMode === "outline" ? surfaceBg : mix(rawColor, surfaceBg, TINT_PCT);
|
|
668
707
|
const stroke = rawColor;
|
|
669
708
|
const sliceX = cx + i * (sliceW + SLICE_GAP);
|
|
670
709
|
const sliceG = cellG.append("g").attr("class", "raci-marker-slice").attr("data-marker", m).style("cursor", "grab");
|
|
@@ -676,7 +715,7 @@ function renderTaskRow(svg, task, parsed, x, y, labelW, roleX, roleColW, palette
|
|
|
676
715
|
const textFont = showFullLabel ? sLegendLabelFont : sMarkerFont;
|
|
677
716
|
sliceG.append("text").attr("x", sliceX + sliceW / 2).attr("y", cy + ch / 2).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("font-size", textFont).attr("font-weight", MARKER_FONT_WEIGHT).attr(
|
|
678
717
|
"fill",
|
|
679
|
-
solid ? contrastText(
|
|
718
|
+
fillMode === "solid" ? contrastText(
|
|
680
719
|
fill,
|
|
681
720
|
palette.textOnFillLight,
|
|
682
721
|
palette.textOnFillDark
|
|
@@ -747,4 +786,4 @@ export {
|
|
|
747
786
|
renderRaci,
|
|
748
787
|
renderRaciForExport
|
|
749
788
|
};
|
|
750
|
-
//# sourceMappingURL=chunk-
|
|
789
|
+
//# sourceMappingURL=chunk-FQMUHRVC.js.map
|