@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
package/dist/block.css
CHANGED
|
@@ -26,21 +26,25 @@
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
/* === Toolbar ===
|
|
29
|
-
* The diagram is the star: the toolbar is
|
|
30
|
-
* (
|
|
31
|
-
*
|
|
32
|
-
* the
|
|
29
|
+
* The diagram is the star: the toolbar is an overlay pinned to the diagram's
|
|
30
|
+
* top-right corner (position:absolute — it reserves no layout space, so the
|
|
31
|
+
* block is exactly as tall as the chart). It stays fully transparent until
|
|
32
|
+
* the block is hovered or focused, or the source panel is open. It is the
|
|
33
|
+
* <summary> of the source <details>, so toggling works without any JS.
|
|
33
34
|
* No text labels, no disclosure triangle — three wordless icon buttons. */
|
|
34
35
|
.dgmo-source-wrap {
|
|
35
36
|
margin: 0;
|
|
36
37
|
}
|
|
37
38
|
.dgmo-toolbar {
|
|
39
|
+
position: absolute;
|
|
40
|
+
top: 0.4em;
|
|
41
|
+
right: 0.4em;
|
|
42
|
+
z-index: 2;
|
|
38
43
|
display: flex;
|
|
39
44
|
align-items: center;
|
|
40
45
|
justify-content: flex-end;
|
|
41
46
|
gap: 0.25em;
|
|
42
|
-
|
|
43
|
-
padding: 0.15em 0;
|
|
47
|
+
padding: 0.15em;
|
|
44
48
|
opacity: 0;
|
|
45
49
|
transition: opacity 0.15s ease;
|
|
46
50
|
cursor: pointer;
|
|
@@ -143,6 +147,14 @@
|
|
|
143
147
|
overflow: auto;
|
|
144
148
|
border-radius: 0.5em;
|
|
145
149
|
box-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);
|
|
150
|
+
/* Opaque surface behind the enlarged diagram so a transparent embed doesn't
|
|
151
|
+
* show the page through it. The client overrides this inline with the block's
|
|
152
|
+
* own palette bg (data-dgmo-bg); this is the fallback for blocks that predate
|
|
153
|
+
* that attribute. */
|
|
154
|
+
background: #fff;
|
|
155
|
+
}
|
|
156
|
+
[data-theme="dark"] .dgmo-lightbox-svg {
|
|
157
|
+
background: #1e1e1e;
|
|
146
158
|
}
|
|
147
159
|
.dgmo-lightbox-svg > svg {
|
|
148
160
|
display: block;
|
|
@@ -177,9 +189,10 @@
|
|
|
177
189
|
* border so the code visibly belongs to the chart above it. The frame box
|
|
178
190
|
* (border + padding) is RESERVED at all times — with the border transparent
|
|
179
191
|
* while closed — so opening the panel only paints the border in. It never
|
|
180
|
-
* reflows the diagram
|
|
181
|
-
*
|
|
192
|
+
* reflows the diagram. position:relative anchors the overlay toolbar to
|
|
193
|
+
* this box. */
|
|
182
194
|
.dgmo:has(> .dgmo-source-wrap) {
|
|
195
|
+
position: relative;
|
|
183
196
|
border: 1px solid transparent;
|
|
184
197
|
border-radius: 0.6em;
|
|
185
198
|
padding: 0.75em 0.75em 0.5em;
|
|
@@ -222,6 +235,13 @@
|
|
|
222
235
|
font-size: 0.85em;
|
|
223
236
|
margin: 0.5em 0 0;
|
|
224
237
|
}
|
|
238
|
+
.dgmo-error-docs {
|
|
239
|
+
display: inline-block;
|
|
240
|
+
margin-top: 0.6em;
|
|
241
|
+
font-size: 0.9em;
|
|
242
|
+
font-weight: 600;
|
|
243
|
+
color: inherit;
|
|
244
|
+
}
|
|
225
245
|
|
|
226
246
|
/* === Source highlight roles ===
|
|
227
247
|
* Light values mirror LIGHT_ROLE_STYLES; dark overrides mirror
|
package/dist/block.js
CHANGED
|
@@ -1,92 +1,97 @@
|
|
|
1
1
|
import {
|
|
2
2
|
defaultEmbedBackground,
|
|
3
|
+
docsLink,
|
|
3
4
|
normalizeSvgForEmbed,
|
|
4
5
|
renderErrorCard
|
|
5
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GJFAMOGK.js";
|
|
6
7
|
import {
|
|
7
8
|
encodeDiagramUrl,
|
|
8
9
|
render
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-J7KJR3R6.js";
|
|
11
|
+
import "./chunk-7KINELPI.js";
|
|
11
12
|
import "./chunk-YRYKTYMQ.js";
|
|
12
13
|
import "./chunk-YYVTBZZC.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-AUIM2NVH.js";
|
|
15
|
+
import "./chunk-ZEF5M5MB.js";
|
|
16
|
+
import "./chunk-MUE65OTD.js";
|
|
17
|
+
import "./chunk-FT3ZYWET.js";
|
|
17
18
|
import {
|
|
18
19
|
monthIndex,
|
|
19
20
|
weekdayIndex
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-OQKP2X3D.js";
|
|
22
|
+
import "./chunk-FY5MSZAP.js";
|
|
23
|
+
import "./chunk-APKUAJ2L.js";
|
|
24
|
+
import "./chunk-PRI2OD4E.js";
|
|
25
|
+
import "./chunk-4IHAV6O7.js";
|
|
26
|
+
import "./chunk-Z5QVYKR7.js";
|
|
25
27
|
import "./chunk-BDXC7MDK.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-DYWQFQJP.js";
|
|
29
|
+
import "./chunk-VL2O2F3W.js";
|
|
30
|
+
import "./chunk-QBZYACOG.js";
|
|
31
|
+
import "./chunk-YAA6IID3.js";
|
|
30
32
|
import "./chunk-A4GOY3PE.js";
|
|
31
33
|
import "./chunk-6KFWC4CO.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-QOOUC2J5.js";
|
|
35
|
+
import "./chunk-WCT3NYCV.js";
|
|
36
|
+
import "./chunk-EMLPOL77.js";
|
|
37
|
+
import "./chunk-SMRFPVLQ.js";
|
|
38
|
+
import "./chunk-VILVLS7P.js";
|
|
39
|
+
import "./chunk-7BIZCTAX.js";
|
|
40
|
+
import "./chunk-XD6ZYURY.js";
|
|
41
|
+
import "./chunk-ICPJPQ5C.js";
|
|
42
|
+
import "./chunk-UNURMIQO.js";
|
|
43
|
+
import "./chunk-ZNWAYU6N.js";
|
|
44
|
+
import "./chunk-4UNQ6X24.js";
|
|
45
|
+
import "./chunk-NR5HCAUD.js";
|
|
46
|
+
import "./chunk-IM6PDDCE.js";
|
|
47
|
+
import "./chunk-QGATPIPX.js";
|
|
48
|
+
import "./chunk-5NGAO4QK.js";
|
|
47
49
|
import {
|
|
48
50
|
REGISTRY_COLON_KEY_TOKENS,
|
|
49
51
|
REGISTRY_CONTROL_TOKENS,
|
|
50
52
|
REGISTRY_DIRECTIVE_TOKENS,
|
|
51
53
|
REGISTRY_MODIFIER_TOKENS,
|
|
52
54
|
REGISTRY_STATUS_TOKENS
|
|
53
|
-
} from "./chunk-
|
|
54
|
-
import "./chunk-
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-
|
|
55
|
+
} from "./chunk-FQ7HTV52.js";
|
|
56
|
+
import "./chunk-5RP7JRVP.js";
|
|
57
|
+
import "./chunk-HQQNCY7W.js";
|
|
58
|
+
import "./chunk-RT7ACF77.js";
|
|
59
|
+
import "./chunk-LTXOLDUZ.js";
|
|
60
|
+
import "./chunk-75G3Q4DK.js";
|
|
59
61
|
import "./chunk-QQJUTGQH.js";
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-
|
|
62
|
-
import "./chunk-
|
|
63
|
-
import "./chunk-
|
|
64
|
-
import "./chunk-
|
|
65
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-AL672HNE.js";
|
|
63
|
+
import "./chunk-REJAIQ5S.js";
|
|
64
|
+
import "./chunk-NNS4E7CW.js";
|
|
65
|
+
import "./chunk-HBPDFCQY.js";
|
|
66
|
+
import "./chunk-K4EOKJA6.js";
|
|
67
|
+
import "./chunk-7L4UJOY6.js";
|
|
66
68
|
import "./chunk-USZW2HHU.js";
|
|
67
|
-
import "./chunk-
|
|
68
|
-
import "./chunk-
|
|
69
|
-
import
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
import "./chunk-J6QROYDA.js";
|
|
70
|
+
import "./chunk-R3YSD62R.js";
|
|
71
|
+
import {
|
|
72
|
+
scanMonthNameDates
|
|
73
|
+
} from "./chunk-DAOFNU6J.js";
|
|
74
|
+
import "./chunk-3YRPZ7ZZ.js";
|
|
75
|
+
import "./chunk-3QD7VP3U.js";
|
|
76
|
+
import "./chunk-BPY242XU.js";
|
|
72
77
|
import "./chunk-IYULMRBE.js";
|
|
73
78
|
import {
|
|
74
79
|
resolvePaletteOrFallback
|
|
75
80
|
} from "./chunk-R3XI2VC7.js";
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-WBM7ZNDI.js";
|
|
82
|
+
import "./chunk-QJMKPUYK.js";
|
|
78
83
|
import "./chunk-C3Z4DX3V.js";
|
|
79
|
-
import "./chunk-
|
|
80
|
-
import "./chunk-
|
|
84
|
+
import "./chunk-HHKO6SKY.js";
|
|
85
|
+
import "./chunk-6EJITS44.js";
|
|
81
86
|
import "./chunk-I46X5VUA.js";
|
|
82
|
-
import "./chunk-
|
|
87
|
+
import "./chunk-ROOE4R4Y.js";
|
|
83
88
|
import "./chunk-NXMESY4J.js";
|
|
84
|
-
import "./chunk-
|
|
85
|
-
import "./chunk-
|
|
89
|
+
import "./chunk-TPFKKXCB.js";
|
|
90
|
+
import "./chunk-ARGMQ3H4.js";
|
|
86
91
|
import "./chunk-FMDSF3OV.js";
|
|
87
92
|
import "./chunk-FFUN5D66.js";
|
|
88
93
|
import "./chunk-NOTA6TEI.js";
|
|
89
|
-
import "./chunk-
|
|
94
|
+
import "./chunk-BRENJ2BQ.js";
|
|
90
95
|
import "./chunk-TLVIHFRO.js";
|
|
91
96
|
import "./chunk-CXK4DZH3.js";
|
|
92
97
|
import "./chunk-5WRI5ZAA.js";
|
|
@@ -184,7 +189,7 @@ var parser = LRParser.deserialize({
|
|
|
184
189
|
maxTerm: 40,
|
|
185
190
|
skippedNodes: [0],
|
|
186
191
|
repeatNodeCount: 2,
|
|
187
|
-
tokenData: "
|
|
192
|
+
tokenData: ">l~RzOX#uXY#zYZ$VZp#upq#zqr#urs$[st#uux#uxy%eyz%lz{%s{|%z|}&R}!O&Y!O!P#u!P!Q&i!Q!['Y![!]1q!]!^#u!^!_1x!_!`2P!`!a2^!a!b2e!b!c#u!c!}2l!}#O5r#O#P#u#P#Q5w#Q#R#u#R#S2l#S#T#u#T#[2l#[#]6O#]#o2l#o#p#u#p#q>O#q#r#u#r#s>V#s;'S#u;'S;=`>f<%lO#u~#zOq~~$PQv~XY#zpq#z~$[Ow~~$aUq~OY$sZr$srs%Ys;'S$s;'S;=`%_<%lO$s~$vUOY$sZr$srs%Ys;'S$s;'S;=`%_<%lO$s~%_Oo~~%bP;=`<%l$s~%lOc~q~~%sOd~q~~%zOm~q~~&ROj~q~~&YOi~q~~&aPk~q~!`!a&d~&iOX~~&nPq~!P!Q&q~&vSV~OY&qZ;'S&q;'S;=`'S<%lO&q~'VP;=`<%l&q~'a_^~q~uv(`|}(e}!O)b!O!P*l!P!Q,]!Q![,v#R#S1]#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h+m#k#l+m#m#n+m~(eO]~~(hP!Q![(k~(nP!Q![(q~(tP!Q![(w~(|Q^~|}(e!O!P)S~)VP!Q![)Y~)_P^~!Q![)Y~)eP!Q![)h~)mQ[~}!O)s!Q![*d~)vP!Q![)y~)|P!Q![*P~*UP[~!Q![*X~*[P!Q![*_~*dO[~~*iP[~}!O)s~*oP!Q![*r~*wY^~uv(`!Q![*r#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h+m#k#l+m#m#n+m~+jP#W#X+m~+rPZ~!a!b+u~+zOZ~~,PQZ~!a!b+u#]#^,V~,YP#b#c+m~,`P!Q![,c~,hQ[~!P!Q)s!Q![,n~,sP[~!P!Q)s~,{_^~uv(`|}(e}!O)b!O!P*l!P!Q,]!Q![-z#R#S1]#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h+m#k#l+m#m#n+m~.P]^~uv(`|}(e!O!P*l!Q![.x#R#S1]#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h+m#k#l+m#m#n+m~.}]^~uv(`}!O/v!O!P*l!Q![0b#R#S1]#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h+m#k#l+m#m#n+m~/yP!Q![/|~0PP!Q![0S~0XP[~}!O0[~0_P!Q![*X~0g[^~uv(`!O!P*l!Q![0b#R#S1]#U#V+g#W#X+m#[#]+m#a#b+z#e#f+m#g#h+m#k#l+m#m#n+m~1`P!Q![1c~1hR^~!O!P)S!Q![1c#R#S1]~1xOh~q~~2POe~q~~2UPq~!_!`2X~2^O_~~2eOf~q~~2lOn~q~~2s_p~q~qr3rst3rvw3rwx3r{|3r}!O4v!O!P3r!P!Q3r!Q![3r!_!`3r!a!b3r!b!c3r!c!}3r#R#S3r#T#o3r~3w_p~qr3rst3rvw3rwx3r{|3r}!O4v!O!P3r!P!Q3r!Q![3r!_!`3r!a!b3r!b!c3r!c!}3r#R#S3r#T#o3r~4y]qr3rst3rvw3rwx3r{|3r!O!P3r!P!Q3r!_!`3r!a!b3r!b!c3r!c!}3r#R#S3r#T#o3r~5wOa~~6OOb~q~~6Vap~q~qr3rst3rvw3rwx3r{|3r}!O4v!O!P3r!P!Q3r!Q![3r!_!`3r!a!b3r!b!c3r!c!}3r#R#S3r#T#h3r#h#i7[#i#o3r~7aap~qr3rst3rvw3rwx3r{|3r}!O4v!O!P3r!P!Q3r!Q![3r!_!`3r!a!b3r!b!c3r!c!}3r#R#S3r#T#h3r#h#i8f#i#o3r~8kap~qr3rst3rvw3rwx3r{|3r}!O4v!O!P3r!P!Q3r!Q![3r!_!`3r!a!b3r!b!c3r!c!}3r#R#S3r#T#d3r#d#e9p#e#o3r~9ubp~qr3rst3rvw3rwx3r{|3r}!O4v!O!P3r!P!Q3r!Q![3r![!]:}!_!`3r!a!b3r!b!c3r!c!}3r#R#S3r#T#g3r#g#h<w#h#o3r~;QP!P!Q;T~;WP!P!Q;Z~;^YOX;|Zp;|qy;|z|;|}!`;|!a#P;|#Q#p;|#q;'S;|;'S;=`<q<%lO;|~<RY`~OX;|Zp;|qy;|z|;|}!`;|!a#P;|#Q#p;|#q;'S;|;'S;=`<q<%lO;|~<tP;=`<%l;|~<|`p~qr3rst3rvw3rwx3r{|3r}!O4v!O!P3r!P!Q3r!Q![3r![!]:}!_!`3r!a!b3r!b!c3r!c!}3r#R#S3r#T#o3r~>VOg~q~~>^Pl~q~!`!a>a~>fOY~~>iP;=`<%l#u",
|
|
188
193
|
tokenizers: [0],
|
|
189
194
|
topRules: { "Document": [0, 6] },
|
|
190
195
|
specialized: [{ term: 32, get: (value, stack) => specializeKeyword(value, stack) << 1, external: specializeKeyword }],
|
|
@@ -295,6 +300,7 @@ function highlightDgmo(source) {
|
|
|
295
300
|
applyLabelOverrides(tokens);
|
|
296
301
|
applyNoteContent(tokens);
|
|
297
302
|
applyRecurringLine(tokens);
|
|
303
|
+
applyMonthNameDates(tokens);
|
|
298
304
|
return tokens;
|
|
299
305
|
}
|
|
300
306
|
var ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
|
|
@@ -529,6 +535,40 @@ function applyRecurringLine(tokens) {
|
|
|
529
535
|
offset += lineText.length + 1;
|
|
530
536
|
}
|
|
531
537
|
}
|
|
538
|
+
var DATE_BEARING_CHARTS = /* @__PURE__ */ new Set([
|
|
539
|
+
"gantt",
|
|
540
|
+
"pert",
|
|
541
|
+
"countdown",
|
|
542
|
+
"timeline",
|
|
543
|
+
"event-line"
|
|
544
|
+
]);
|
|
545
|
+
function applyMonthNameDates(tokens) {
|
|
546
|
+
const fullText = tokens.map((t) => t.text).join("");
|
|
547
|
+
const lines = fullText.split("\n");
|
|
548
|
+
const firstContent = lines.find((l) => {
|
|
549
|
+
const t = l.trim();
|
|
550
|
+
return t.length > 0 && !t.startsWith("//");
|
|
551
|
+
});
|
|
552
|
+
const chartType = firstContent?.trim().split(/\s+/)[0]?.toLowerCase();
|
|
553
|
+
if (!chartType || !DATE_BEARING_CHARTS.has(chartType)) return;
|
|
554
|
+
let offset = 0;
|
|
555
|
+
for (const lineText of lines) {
|
|
556
|
+
for (const sp of scanMonthNameDates(lineText)) {
|
|
557
|
+
markDateSpan(tokens, offset + sp.start, offset + sp.end);
|
|
558
|
+
}
|
|
559
|
+
offset += lineText.length + 1;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
function markDateSpan(tokens, from, to) {
|
|
563
|
+
let pos = 0;
|
|
564
|
+
for (const token of tokens) {
|
|
565
|
+
const tokenEnd = pos + token.text.length;
|
|
566
|
+
if (tokenEnd > from && pos < to && token.text.trim().length > 0 && (token.role === "default" || token.role === "number")) {
|
|
567
|
+
token.role = "number";
|
|
568
|
+
}
|
|
569
|
+
pos = tokenEnd;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
532
572
|
var NOTE_HEAD_RE = /^note(\s|$)/i;
|
|
533
573
|
function applyNoteContent(tokens) {
|
|
534
574
|
const fullText = tokens.map((t) => t.text).join("");
|
|
@@ -611,21 +651,25 @@ var BLOCK_CSS = `
|
|
|
611
651
|
}
|
|
612
652
|
|
|
613
653
|
/* === Toolbar ===
|
|
614
|
-
* The diagram is the star: the toolbar is
|
|
615
|
-
*
|
|
616
|
-
*
|
|
617
|
-
* the
|
|
654
|
+
* The diagram is the star: the toolbar is an overlay pinned to the diagram's
|
|
655
|
+
* top-right corner (position:absolute \u2014 it reserves no layout space, so the
|
|
656
|
+
* block is exactly as tall as the chart). It stays fully transparent until
|
|
657
|
+
* the block is hovered or focused, or the source panel is open. It is the
|
|
658
|
+
* <summary> of the source <details>, so toggling works without any JS.
|
|
618
659
|
* No text labels, no disclosure triangle \u2014 three wordless icon buttons. */
|
|
619
660
|
.dgmo-source-wrap {
|
|
620
661
|
margin: 0;
|
|
621
662
|
}
|
|
622
663
|
.dgmo-toolbar {
|
|
664
|
+
position: absolute;
|
|
665
|
+
top: 0.4em;
|
|
666
|
+
right: 0.4em;
|
|
667
|
+
z-index: 2;
|
|
623
668
|
display: flex;
|
|
624
669
|
align-items: center;
|
|
625
670
|
justify-content: flex-end;
|
|
626
671
|
gap: 0.25em;
|
|
627
|
-
|
|
628
|
-
padding: 0.15em 0;
|
|
672
|
+
padding: 0.15em;
|
|
629
673
|
opacity: 0;
|
|
630
674
|
transition: opacity 0.15s ease;
|
|
631
675
|
cursor: pointer;
|
|
@@ -728,6 +772,14 @@ var BLOCK_CSS = `
|
|
|
728
772
|
overflow: auto;
|
|
729
773
|
border-radius: 0.5em;
|
|
730
774
|
box-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);
|
|
775
|
+
/* Opaque surface behind the enlarged diagram so a transparent embed doesn't
|
|
776
|
+
* show the page through it. The client overrides this inline with the block's
|
|
777
|
+
* own palette bg (data-dgmo-bg); this is the fallback for blocks that predate
|
|
778
|
+
* that attribute. */
|
|
779
|
+
background: #fff;
|
|
780
|
+
}
|
|
781
|
+
[data-theme="dark"] .dgmo-lightbox-svg {
|
|
782
|
+
background: #1e1e1e;
|
|
731
783
|
}
|
|
732
784
|
.dgmo-lightbox-svg > svg {
|
|
733
785
|
display: block;
|
|
@@ -762,9 +814,10 @@ var BLOCK_CSS = `
|
|
|
762
814
|
* border so the code visibly belongs to the chart above it. The frame box
|
|
763
815
|
* (border + padding) is RESERVED at all times \u2014 with the border transparent
|
|
764
816
|
* while closed \u2014 so opening the panel only paints the border in. It never
|
|
765
|
-
* reflows the diagram
|
|
766
|
-
*
|
|
817
|
+
* reflows the diagram. position:relative anchors the overlay toolbar to
|
|
818
|
+
* this box. */
|
|
767
819
|
.dgmo:has(> .dgmo-source-wrap) {
|
|
820
|
+
position: relative;
|
|
768
821
|
border: 1px solid transparent;
|
|
769
822
|
border-radius: 0.6em;
|
|
770
823
|
padding: 0.75em 0.75em 0.5em;
|
|
@@ -807,6 +860,13 @@ var BLOCK_CSS = `
|
|
|
807
860
|
font-size: 0.85em;
|
|
808
861
|
margin: 0.5em 0 0;
|
|
809
862
|
}
|
|
863
|
+
.dgmo-error-docs {
|
|
864
|
+
display: inline-block;
|
|
865
|
+
margin-top: 0.6em;
|
|
866
|
+
font-size: 0.9em;
|
|
867
|
+
font-weight: 600;
|
|
868
|
+
color: inherit;
|
|
869
|
+
}
|
|
810
870
|
|
|
811
871
|
/* === Source highlight roles ===
|
|
812
872
|
* Light values mirror LIGHT_ROLE_STYLES; dark overrides mirror
|
|
@@ -986,11 +1046,12 @@ async function renderDgmoBlock(source, options = {}) {
|
|
|
986
1046
|
renderTheme("dark")
|
|
987
1047
|
]);
|
|
988
1048
|
const background = opts.background === "auto" ? defaultEmbedBackground(chartType) : opts.background;
|
|
989
|
-
svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-light"))}">${normalizeSvgForEmbed(light, { background })}</div><div class="${escapeAttr(innerClasses(opts, "dgmo-dark"))}">${normalizeSvgForEmbed(dark, { background })}</div>`;
|
|
1049
|
+
svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-light"))}" data-dgmo-bg="${escapeAttr(palette.light.bg)}">${normalizeSvgForEmbed(light, { background })}</div><div class="${escapeAttr(innerClasses(opts, "dgmo-dark"))}" data-dgmo-bg="${escapeAttr(palette.dark.bg)}">${normalizeSvgForEmbed(dark, { background })}</div>`;
|
|
990
1050
|
} else {
|
|
991
1051
|
const svg = await renderTheme(opts.colorMode);
|
|
992
1052
|
const background = opts.background === "auto" ? defaultEmbedBackground(chartType) : opts.background;
|
|
993
|
-
|
|
1053
|
+
const paletteBg = palette[opts.colorMode === "dark" ? "dark" : "light"].bg;
|
|
1054
|
+
svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-svg"))}" data-dgmo-bg="${escapeAttr(paletteBg)}">${normalizeSvgForEmbed(svg, { background })}</div>`;
|
|
994
1055
|
}
|
|
995
1056
|
return { html: assembleBlock(trimmed, svgsHtml, opts), diagnostics };
|
|
996
1057
|
}
|
|
@@ -1002,7 +1063,8 @@ function errorBlockHtml(err, source, options = {}) {
|
|
|
1002
1063
|
const base = options.className ?? "dgmo";
|
|
1003
1064
|
const legacy = (options.legacyClassNames ?? []).join(" ");
|
|
1004
1065
|
const cls = legacy ? `${base} ${legacy} ${base}--error` : `${base} ${base}--error`;
|
|
1005
|
-
|
|
1066
|
+
const docs = docsLink(source);
|
|
1067
|
+
return `<div class="${escapeAttr(cls)}" role="alert"><strong>dgmo render error:</strong> ${escapeHtml(msg)}<pre>${escapeHtml(source)}</pre><a class="${escapeAttr(base)}-error-docs" href="${escapeAttr(docs.url)}" target="_blank" rel="noopener noreferrer">${escapeHtml(docs.label)}</a></div>`;
|
|
1006
1068
|
}
|
|
1007
1069
|
function wrapperClasses(opts, variant) {
|
|
1008
1070
|
const base = `${opts.className} ${opts.className}--${variant}`;
|
|
@@ -1018,7 +1080,7 @@ function assembleBlock(source, svgsHtml, opts) {
|
|
|
1018
1080
|
const showcase = opts.mode === "showcase";
|
|
1019
1081
|
const variant = showcase ? "showcase" : "diagram";
|
|
1020
1082
|
const ariaAttr = opts.title ? ` aria-label="${escapeAttr(opts.title)}"` : "";
|
|
1021
|
-
const sourceHtml =
|
|
1083
|
+
const sourceHtml = sourceDisclosure(source, opts);
|
|
1022
1084
|
return `<${Wrapper} class="${escapeAttr(wrapperClasses(opts, variant))}"${ariaAttr}>` + svgsHtml + sourceHtml + `</${Wrapper}>`;
|
|
1023
1085
|
}
|
|
1024
1086
|
var CODE_ICON = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m10 4.5 4 3.5-4 3.5"/><path d="m6 4.5-4 3.5 4 3.5"/></svg>`;
|
|
@@ -1026,8 +1088,7 @@ var COPY_ICON = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" str
|
|
|
1026
1088
|
var EXTERNAL_ICON = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9.5 2.5h4v4"/><path d="M13.5 2.5 7 9"/><path d="M12.5 9.5v3a1 1 0 0 1-1 1h-8a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1h3"/></svg>`;
|
|
1027
1089
|
var EXPAND_ICON = `<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M9.5 2.5h4v4"/><path d="M6.5 13.5h-4v-4"/><path d="M13.5 2.5 9 7"/><path d="M2.5 13.5 7 9"/></svg>`;
|
|
1028
1090
|
function sourceDisclosure(source, opts) {
|
|
1029
|
-
|
|
1030
|
-
const toggle = `<span class="dgmo-toggle" title="View DGMO source">${CODE_ICON}</span>`;
|
|
1091
|
+
const toggle = opts.showSource ? `<span class="dgmo-toggle" title="View DGMO source">${CODE_ICON}</span>` : "";
|
|
1031
1092
|
const expandButton = opts.showExpand ? `<button type="button" class="dgmo-toolbar-btn dgmo-expand" aria-label="View full screen" title="Expand">${EXPAND_ICON}</button>` : "";
|
|
1032
1093
|
const copyButton = opts.showCopy ? `<button type="button" class="dgmo-toolbar-btn dgmo-copy" aria-label="Copy DGMO source" title="Copy source" data-dgmo-source="${escapeAttr(source)}">${COPY_ICON}</button>` : "";
|
|
1033
1094
|
let openButton = "";
|
|
@@ -1037,8 +1098,13 @@ function sourceDisclosure(source, opts) {
|
|
|
1037
1098
|
openButton = `<a href="${escapeAttr(encoded.url)}" target="_blank" rel="noopener noreferrer" class="dgmo-toolbar-btn dgmo-open" aria-label="Open in online editor" title="Open in online editor">${EXTERNAL_ICON}</a>`;
|
|
1038
1099
|
}
|
|
1039
1100
|
}
|
|
1101
|
+
const buttons = `${toggle}${expandButton}${copyButton}${openButton}`;
|
|
1102
|
+
if (!buttons) return "";
|
|
1103
|
+
if (!opts.showSource) {
|
|
1104
|
+
return `<div class="dgmo-source-wrap"><div class="dgmo-toolbar">${buttons}</div></div>`;
|
|
1105
|
+
}
|
|
1040
1106
|
const sourceHtml = highlightedSource(source);
|
|
1041
|
-
return `<details class="dgmo-source-wrap"><summary class="dgmo-toolbar" aria-label="View DGMO source">${
|
|
1107
|
+
return `<details class="dgmo-source-wrap"><summary class="dgmo-toolbar" aria-label="View DGMO source">${buttons}</summary><div class="dgmo-source-inner">${sourceHtml}</div></details>`;
|
|
1042
1108
|
}
|
|
1043
1109
|
function highlightedSource(source) {
|
|
1044
1110
|
const tokens = highlightDgmo(source);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
D3_DATA_CHART_TYPES,
|
|
3
|
+
renderDataChartD3,
|
|
4
|
+
supportsD3DataChart
|
|
5
|
+
} from "./chunk-DYWQFQJP.js";
|
|
6
|
+
import "./chunk-VL2O2F3W.js";
|
|
7
|
+
import "./chunk-QBZYACOG.js";
|
|
8
|
+
import "./chunk-YAA6IID3.js";
|
|
9
|
+
import "./chunk-A4GOY3PE.js";
|
|
10
|
+
import "./chunk-6KFWC4CO.js";
|
|
11
|
+
import "./chunk-QOOUC2J5.js";
|
|
12
|
+
import "./chunk-WCT3NYCV.js";
|
|
13
|
+
import "./chunk-EMLPOL77.js";
|
|
14
|
+
import "./chunk-R3XI2VC7.js";
|
|
15
|
+
import "./chunk-WBM7ZNDI.js";
|
|
16
|
+
import "./chunk-HHKO6SKY.js";
|
|
17
|
+
import "./chunk-BRENJ2BQ.js";
|
|
18
|
+
import "./chunk-TLVIHFRO.js";
|
|
19
|
+
import "./chunk-CXK4DZH3.js";
|
|
20
|
+
import "./chunk-5WRI5ZAA.js";
|
|
21
|
+
export {
|
|
22
|
+
D3_DATA_CHART_TYPES,
|
|
23
|
+
renderDataChartD3,
|
|
24
|
+
supportsD3DataChart
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=charts-d3-MXEP6BNP.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compactNumber
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5BHJZH62.js";
|
|
4
4
|
import {
|
|
5
5
|
parseInlineMarkdown
|
|
6
6
|
} from "./chunk-3HDBAXF5.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
mix,
|
|
16
16
|
shapeFill,
|
|
17
17
|
themeBaseBg
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-WBM7ZNDI.js";
|
|
19
19
|
import {
|
|
20
20
|
resolveColor
|
|
21
21
|
} from "./chunk-TLVIHFRO.js";
|
|
@@ -47,7 +47,11 @@ function resolvePaint(parsed, palette, isDark, pctFrac) {
|
|
|
47
47
|
const base = parsed.color && resolveColor(parsed.color, palette) || parsed.color || autoColor || getSeriesColors(palette)[0];
|
|
48
48
|
return {
|
|
49
49
|
base,
|
|
50
|
-
fill:
|
|
50
|
+
// §1.9 fill family: tint (default) / solid / outline. In outline mode the
|
|
51
|
+
// progress region renders hollow (theme base bg) and the traffic-light /
|
|
52
|
+
// override color moves to the border — advancement still reads from the
|
|
53
|
+
// outlined region's extent against the gray track.
|
|
54
|
+
fill: shapeFill(palette, base, isDark, { mode: parsed.options.fillMode }),
|
|
51
55
|
track: mix(palette.border, themeBaseBg(palette, isDark), 45),
|
|
52
56
|
text: palette.text,
|
|
53
57
|
muted: mix(palette.text, themeBaseBg(palette, isDark), 55)
|
|
@@ -177,7 +181,7 @@ function renderBar(svg, parsed, metrics, paint) {
|
|
|
177
181
|
g.append("rect").attr("x", x).attr("y", y).attr("width", trackW).attr("height", trackH).attr("rx", r).attr("fill", paint.track);
|
|
178
182
|
const fillW = trackW * metrics.fillFrac;
|
|
179
183
|
if (fillW > 0.5) {
|
|
180
|
-
g.append("rect").attr("x", x).attr("y", y).attr("width", fillW).attr("height", trackH).attr("rx", r).attr("fill", paint.fill).attr("stroke", paint.base).attr("stroke-width", 2);
|
|
184
|
+
g.append("rect").attr("x", x).attr("y", y).attr("width", fillW).attr("height", trackH).attr("rx", r).attr("fill", paint.fill).attr("stroke", paint.base).attr("stroke-width", parsed.options.fillMode === "outline" ? 1.5 : 2);
|
|
181
185
|
}
|
|
182
186
|
if (!parsed.options.noValue) {
|
|
183
187
|
const valX = Math.max(x + fillW - 16, x + 52);
|
|
@@ -222,7 +226,7 @@ function renderThermometer(svg, parsed, metrics, paint) {
|
|
|
222
226
|
const yBase = bulbCy - Math.sqrt(mBulb * mBulb - mHalf * mHalf);
|
|
223
227
|
const yForFrac = (f) => yTop + (1 - f) * (yBase - yTop);
|
|
224
228
|
const fillTopY = clamp(yForFrac(metrics.fillFrac), yTop, yBase);
|
|
225
|
-
g.append("path").attr("d", bodyPath(fillTopY, mHalf, mBulb, false)).attr("fill", paint.fill).attr("stroke", paint.base).attr("stroke-width", 2).attr("stroke-linejoin", "round");
|
|
229
|
+
g.append("path").attr("d", bodyPath(fillTopY, mHalf, mBulb, false)).attr("fill", paint.fill).attr("stroke", paint.base).attr("stroke-width", parsed.options.fillMode === "outline" ? 1.5 : 2).attr("stroke-linejoin", "round");
|
|
226
230
|
if (parsed.hasTarget) {
|
|
227
231
|
const edgeX = cx + r;
|
|
228
232
|
const tickLabelX = edgeX + 14;
|
|
@@ -306,7 +310,13 @@ function renderGauge(svg, parsed, metrics, paint) {
|
|
|
306
310
|
}
|
|
307
311
|
g.append("path").attr("d", arcPath(cx, cy, r, 0, 1)).attr("fill", "none").attr("stroke", paint.track).attr("stroke-width", stroke).attr("stroke-linecap", "round");
|
|
308
312
|
if (metrics.fillFrac > 1e-3) {
|
|
309
|
-
|
|
313
|
+
const valueArc = arcPath(cx, cy, r, 0, metrics.fillFrac);
|
|
314
|
+
if (parsed.options.fillMode === "outline") {
|
|
315
|
+
g.append("path").attr("d", valueArc).attr("fill", "none").attr("stroke", paint.base).attr("stroke-width", stroke).attr("stroke-linecap", "round");
|
|
316
|
+
g.append("path").attr("d", valueArc).attr("fill", "none").attr("stroke", paint.fill).attr("stroke-width", stroke - 3).attr("stroke-linecap", "round");
|
|
317
|
+
} else {
|
|
318
|
+
g.append("path").attr("d", valueArc).attr("fill", "none").attr("stroke", paint.fill).attr("stroke-width", stroke).attr("stroke-linecap", "round");
|
|
319
|
+
}
|
|
310
320
|
}
|
|
311
321
|
const a = Math.PI - metrics.fillFrac * Math.PI;
|
|
312
322
|
const needleLen = r - stroke / 2 - 6;
|
|
@@ -351,4 +361,4 @@ export {
|
|
|
351
361
|
renderGoal,
|
|
352
362
|
renderGoalForExport
|
|
353
363
|
};
|
|
354
|
-
//# sourceMappingURL=chunk-
|
|
364
|
+
//# sourceMappingURL=chunk-3HF5YEFJ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
computeNodeText,
|
|
3
3
|
layoutMindmap
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-HWX6ZHF3.js";
|
|
5
5
|
import {
|
|
6
6
|
renderInlineText
|
|
7
7
|
} from "./chunk-3HDBAXF5.js";
|
|
@@ -19,10 +19,10 @@ import {
|
|
|
19
19
|
} from "./chunk-YYVTBZZC.js";
|
|
20
20
|
import {
|
|
21
21
|
renderIntegratedLegend
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-AUIM2NVH.js";
|
|
23
23
|
import {
|
|
24
24
|
getMaxLegendReservedHeight
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-YAA6IID3.js";
|
|
26
26
|
import {
|
|
27
27
|
TITLE_FONT_SIZE,
|
|
28
28
|
TITLE_FONT_WEIGHT
|
|
@@ -32,20 +32,23 @@ import {
|
|
|
32
32
|
} from "./chunk-6KFWC4CO.js";
|
|
33
33
|
import {
|
|
34
34
|
LEGEND_GROUP_GAP
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-QOOUC2J5.js";
|
|
36
36
|
import {
|
|
37
37
|
parseMindmap
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-AL672HNE.js";
|
|
39
39
|
import {
|
|
40
40
|
preprocessDescriptionLine
|
|
41
41
|
} from "./chunk-IYULMRBE.js";
|
|
42
42
|
import {
|
|
43
43
|
contrastText,
|
|
44
44
|
shapeFill
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-WBM7ZNDI.js";
|
|
46
46
|
import {
|
|
47
47
|
tagAttrKey
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-HHKO6SKY.js";
|
|
49
|
+
import {
|
|
50
|
+
fillModeFromOptions
|
|
51
|
+
} from "./chunk-BRENJ2BQ.js";
|
|
49
52
|
|
|
50
53
|
// src/mindmap/renderer.ts
|
|
51
54
|
import * as d3Selection from "d3-selection";
|
|
@@ -56,11 +59,9 @@ var LABEL_LINE_HEIGHT = 18;
|
|
|
56
59
|
var DESC_LINE_HEIGHT = 14;
|
|
57
60
|
var NODE_RADIUS = 6;
|
|
58
61
|
var ROOT_STROKE_WIDTH = 2.5;
|
|
59
|
-
function nodeFill(palette, isDark, nodeColor,
|
|
62
|
+
function nodeFill(palette, isDark, nodeColor, fillMode) {
|
|
60
63
|
const color = nodeColor ?? palette.primary;
|
|
61
|
-
return shapeFill(palette, color, isDark, {
|
|
62
|
-
...solid !== void 0 && { solid }
|
|
63
|
-
});
|
|
64
|
+
return shapeFill(palette, color, isDark, { mode: fillMode });
|
|
64
65
|
}
|
|
65
66
|
function nodeStroke(palette, nodeColor) {
|
|
66
67
|
return nodeColor ?? palette.primary;
|
|
@@ -258,7 +259,7 @@ function renderMindmap(container, parsed, layout, palette, isDark, onClickItem,
|
|
|
258
259
|
palette,
|
|
259
260
|
isDark,
|
|
260
261
|
effectiveColor,
|
|
261
|
-
parsed.options
|
|
262
|
+
fillModeFromOptions(parsed.options)
|
|
262
263
|
);
|
|
263
264
|
const stroke = nodeStroke(palette, effectiveColor);
|
|
264
265
|
const onFillText = contrastText(
|
|
@@ -388,4 +389,4 @@ export {
|
|
|
388
389
|
renderMindmap,
|
|
389
390
|
renderMindmapForExport
|
|
390
391
|
};
|
|
391
|
-
//# sourceMappingURL=chunk-
|
|
392
|
+
//# sourceMappingURL=chunk-3HGU63UY.js.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import {
|
|
2
|
+
mix
|
|
3
|
+
} from "./chunk-WBM7ZNDI.js";
|
|
4
|
+
import {
|
|
5
|
+
resolveColor
|
|
6
|
+
} from "./chunk-TLVIHFRO.js";
|
|
7
|
+
|
|
8
|
+
// src/clock/swatches.ts
|
|
9
|
+
function buildSwatches(palette, muted) {
|
|
10
|
+
const bg = palette.bg;
|
|
11
|
+
const day = resolveColor("orange", palette) ?? "#d98a1f";
|
|
12
|
+
const night = resolveColor("blue", palette) ?? "#4864b0";
|
|
13
|
+
const ok = resolveColor("green", palette) ?? "#3f9e59";
|
|
14
|
+
const soon = resolveColor("orange", palette) ?? "#c9761a";
|
|
15
|
+
return {
|
|
16
|
+
day,
|
|
17
|
+
night,
|
|
18
|
+
dayTint: mix(day, bg, 14),
|
|
19
|
+
nightTint: mix(night, bg, 14),
|
|
20
|
+
ok,
|
|
21
|
+
soon,
|
|
22
|
+
off: muted,
|
|
23
|
+
okSoft: mix(ok, bg, 14),
|
|
24
|
+
soonSoft: mix(soon, bg, 14),
|
|
25
|
+
offSoft: mix(muted, bg, 16),
|
|
26
|
+
// Sundown indicator: a yellow sun by day, a blue moon by night.
|
|
27
|
+
sunIcon: resolveColor("yellow", palette) ?? "#f4b400",
|
|
28
|
+
moonIcon: night
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
buildSwatches
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=chunk-3LK5DNED.js.map
|