@diagrammo/dgmo 0.48.2 → 0.50.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 +12 -3
- package/.github/copilot-instructions.md +12 -3
- package/.windsurfrules +12 -3
- package/SKILL.md +12 -3
- package/dist/advanced.d.ts +851 -1
- package/dist/advanced.js +601 -177
- package/dist/auto.css +63 -0
- package/dist/auto.js +220 -110
- package/dist/auto.mjs +45920 -33167
- package/dist/block.css +63 -0
- package/dist/block.d.ts +13 -5
- package/dist/block.js +239 -62
- package/dist/{charts-d3-QOZHKTCT.js → charts-d3-DKUD7MQE.js} +9 -8
- package/dist/{chunk-3MQQNXPD.js → chunk-2C56LEML.js} +3 -3
- package/dist/{chunk-L66GEFB6.js → chunk-2JJ2KNPI.js} +4 -4
- package/dist/{chunk-6SM5NJQH.js → chunk-2QYTMIRR.js} +4 -4
- package/dist/{chunk-RJE5JTVK.js → chunk-3G6TMNVF.js} +7 -7
- package/dist/{chunk-MO5YHHMQ.js → chunk-3LKM6FMW.js} +2 -2
- package/dist/{chunk-76OWZ3BA.js → chunk-3P2DKJCG.js} +2 -2
- package/dist/chunk-3TDRHT4J.js +1043 -0
- package/dist/chunk-3XPUDB7B.js +420 -0
- package/dist/{chunk-2LACINWN.js → chunk-3ZPC476N.js} +7 -7
- package/dist/{chunk-G2H74XJZ.js → chunk-4BMJQFNK.js} +8 -8
- package/dist/{chunk-THXCFRTU.js → chunk-4S723I74.js} +9 -9
- package/dist/{chunk-6NYWYNBI.js → chunk-4XK3FLFB.js} +3 -3
- package/dist/chunk-5JSWBPZZ.js +607 -0
- package/dist/{chunk-WCT3NYCV.js → chunk-5LWQH6QV.js} +1 -1
- package/dist/{chunk-7DTWEFUE.js → chunk-5Z736BSU.js} +8 -8
- package/dist/{chunk-ERLBPDGU.js → chunk-6BFZKBGD.js} +2 -2
- package/dist/{chunk-6HO5ZTXK.js → chunk-6IAA2QQ2.js} +2 -2
- package/dist/{chunk-H6PI3KJT.js → chunk-6IUAK7RZ.js} +2 -2
- package/dist/{chunk-RTLBSQ3G.js → chunk-6M5PJFQG.js} +3 -3
- package/dist/{chunk-Z5CGSFJB.js → chunk-6X4AKWLF.js} +4 -4
- package/dist/{chunk-OJR3MQYV.js → chunk-6ZT4U37Q.js} +291 -52
- package/dist/{chunk-5QXL4NYS.js → chunk-7G2ER4CY.js} +10 -5
- package/dist/chunk-7PQYTZMA.js +681 -0
- package/dist/{chunk-OURHMODR.js → chunk-7RB5Q6MB.js} +11 -11
- package/dist/{chunk-YAA6IID3.js → chunk-7UEMZREK.js} +2 -2
- package/dist/{chunk-AN2MOO5T.js → chunk-A3WQVFBS.js} +3 -3
- package/dist/{chunk-VOKGH627.js → chunk-AHGF2YYA.js} +13 -3
- package/dist/{chunk-CI2G3OEB.js → chunk-ASS5YYIZ.js} +12 -12
- package/dist/{chunk-TYS6CSS5.js → chunk-BCYVE3N5.js} +2 -2
- package/dist/chunk-BDXC7MDK.js +2395 -0
- package/dist/chunk-BTUTZMPT.js +482 -0
- package/dist/{chunk-YGJTDXVR.js → chunk-C4GQDB5L.js} +2 -2
- package/dist/{chunk-Y2ZE3MSG.js → chunk-C63UWAKM.js} +2 -2
- package/dist/{chunk-725LDASD.js → chunk-CLD2OKV7.js} +2 -2
- package/dist/{chunk-WBRZJOEC.js → chunk-CMCR5WBW.js} +3 -3
- package/dist/{chunk-IZMRON6C.js → chunk-CVV36CWI.js} +2 -2
- package/dist/chunk-DMJJ3CEQ.js +254 -0
- package/dist/{chunk-MZSBFAPJ.js → chunk-EJTKV7CY.js} +9 -9
- package/dist/{chunk-FITOLXSX.js → chunk-EOFPYPAU.js} +26 -2
- package/dist/{chunk-X5LCYCL5.js → chunk-ER5SCQWQ.js} +5 -5
- package/dist/{chunk-4OHACBGX.js → chunk-F2L5GCQ4.js} +2 -2
- package/dist/{chunk-FCIIHT24.js → chunk-F5UDBSJY.js} +7 -7
- package/dist/{chunk-3JLKYGBQ.js → chunk-F7BFXWNQ.js} +2 -2
- package/dist/{chunk-FANX6UJR.js → chunk-FAL7NOK3.js} +11 -11
- package/dist/{chunk-BUPDIHML.js → chunk-FB2WHOEQ.js} +4 -4
- package/dist/chunk-FL4IOQ37.js +379 -0
- package/dist/{chunk-LIOHW36Z.js → chunk-GBE54KY6.js} +6 -5
- package/dist/{chunk-RUNNI6VE.js → chunk-GL5UZ6NY.js} +3 -3
- package/dist/{chunk-4GRI7MEB.js → chunk-GPWHQ5FJ.js} +6 -6
- package/dist/chunk-GROQGHCT.js +960 -0
- package/dist/{chunk-SGZYXELT.js → chunk-H73FP42Q.js} +9 -6
- package/dist/{chunk-PBAHEPLQ.js → chunk-HGN652MU.js} +7 -6
- package/dist/{chunk-3SMGIJDD.js → chunk-HHXOONLX.js} +13 -1
- package/dist/{chunk-QOOUC2J5.js → chunk-HQCHYB5F.js} +2 -2
- package/dist/{chunk-AELOBFW5.js → chunk-I4IFRCUB.js} +3 -3
- package/dist/{chunk-GMR5MFHJ.js → chunk-I7F2A35O.js} +2 -2
- package/dist/{chunk-T2OE3YQB.js → chunk-IA3FJYWR.js} +3 -3
- package/dist/chunk-IAEC4KLA.js +492 -0
- package/dist/chunk-IVKC4GID.js +32 -0
- package/dist/{chunk-HSH73DP6.js → chunk-JFYIP7XU.js} +139 -39
- package/dist/{chunk-CKNVO24D.js → chunk-JZNMXEIV.js} +2 -2
- package/dist/chunk-KJXIHOVL.js +940 -0
- package/dist/chunk-L2ZTFHAY.js +331 -0
- package/dist/{chunk-B7JUCQUA.js → chunk-M5RXSRO2.js} +4 -4
- package/dist/{chunk-ULOEATBZ.js → chunk-NFFIKVNO.js} +106 -29
- package/dist/{chunk-PZMETGLY.js → chunk-NISQC5KW.js} +358 -122
- package/dist/chunk-O4VUFXIH.js +574 -0
- package/dist/{chunk-RVMRZAPB.js → chunk-O76UD6VJ.js} +3 -3
- package/dist/{chunk-JM4LEPY3.js → chunk-O7NUCTFU.js} +2 -2
- package/dist/{chunk-JED6ZDEE.js → chunk-O7WP4ZD4.js} +2 -2
- package/dist/{chunk-EVCVDTXE.js → chunk-OHQEMBLI.js} +3 -3
- package/dist/{chunk-ZBWMSD5N.js → chunk-ONA5KPV3.js} +4 -4
- package/dist/{chunk-Y3J7VR52.js → chunk-OTAL43EH.js} +34 -2
- package/dist/{chunk-WCSOJFU3.js → chunk-OTP5KVLO.js} +3 -3
- package/dist/{chunk-RYEGFMUO.js → chunk-PGEGPSCZ.js} +2 -2
- package/dist/{chunk-ZO27FGJS.js → chunk-PH5X4GIP.js} +2 -2
- package/dist/{chunk-ZJEL4H2R.js → chunk-PJUGRJHJ.js} +9 -9
- package/dist/{chunk-ZGR7ULFJ.js → chunk-PLZI6KPM.js} +26 -14
- package/dist/{chunk-3R5POCTZ.js → chunk-PMN3Q7RJ.js} +6 -6
- package/dist/{chunk-YGJZWZTY.js → chunk-PZFVK3IH.js} +2 -2
- package/dist/chunk-Q4V4XQWV.js +158 -0
- package/dist/chunk-QDFNCATJ.js +325 -0
- package/dist/{chunk-QEBUY5NY.js → chunk-QFQ35BTO.js} +4 -4
- package/dist/chunk-QQJUTGQH.js +135 -0
- package/dist/{chunk-PWIHZ6NJ.js → chunk-QUJGFNFN.js} +4 -4
- package/dist/{chunk-J5FIXQRT.js → chunk-R56LASIN.js} +4 -4
- package/dist/{chunk-SRTU6HMQ.js → chunk-RV26LTUU.js} +8 -8
- package/dist/chunk-RV6A2B5S.js +354 -0
- package/dist/{chunk-EB6FPQUP.js → chunk-S5GRONXL.js} +3 -3
- package/dist/{chunk-5MLYVTYM.js → chunk-SCHXJTZL.js} +2 -2
- package/dist/{chunk-T3UBLACL.js → chunk-SCQ5VPUF.js} +19 -5
- package/dist/{chunk-PBHE5UG6.js → chunk-SGFZZAUO.js} +46 -12
- package/dist/{chunk-BUVJFRPY.js → chunk-SU2VBK4L.js} +4 -4
- package/dist/{chunk-SML67VPV.js → chunk-T4BRO3Z6.js} +3 -3
- package/dist/{chunk-NURGB5Z4.js → chunk-TSA237IM.js} +2 -2
- package/dist/chunk-TWCLK2GA.js +273 -0
- package/dist/{chunk-IJZFN3HM.js → chunk-TWQUYVP3.js} +4 -4
- package/dist/{chunk-DKEPS5LH.js → chunk-U2HGPLZS.js} +36 -2
- package/dist/{chunk-B65G5DNL.js → chunk-URSQLCTR.js} +3 -3
- package/dist/{chunk-ILKORZ3H.js → chunk-UUS2GIJZ.js} +7 -7
- package/dist/{chunk-XAKEUMEJ.js → chunk-UXOSVCLJ.js} +4 -4
- package/dist/{chunk-QLCCJEJI.js → chunk-WCUHAQKB.js} +2 -2
- package/dist/{chunk-WVAJFAIA.js → chunk-WWN566I7.js} +257 -101
- package/dist/{chunk-IPWPWM6R.js → chunk-X2NMFTG3.js} +111 -10
- package/dist/{chunk-UWN33VNX.js → chunk-XCLHOZAM.js} +10 -10
- package/dist/{chunk-P235SVAH.js → chunk-XDXNDSKO.js} +2 -2
- package/dist/chunk-XHVV4NVW.js +51 -0
- package/dist/{chunk-33LCUH4H.js → chunk-XMVQ5F4M.js} +4 -4
- package/dist/{chunk-MITI6NOL.js → chunk-YA7D2N2O.js} +11 -11
- package/dist/{chunk-7JEGTRLD.js → chunk-YB3FW24O.js} +3 -3
- package/dist/chunk-YNRDWYZP.js +295 -0
- package/dist/{chunk-44CM72SQ.js → chunk-YZLMKW4T.js} +3 -3
- package/dist/chunk-Z6XJQ6KO.js +452 -0
- package/dist/cli.cjs +179 -133
- package/dist/clock.d.ts +10 -0
- package/dist/clock.js +235 -0
- package/dist/countdown.d.ts +12 -0
- package/dist/countdown.js +450 -0
- package/dist/dgmo-router-QOMFCOOV.js +84 -0
- package/dist/dimensions-P5FSX2QN.js +22 -0
- package/dist/editor.js +43 -2
- package/dist/element.js +220 -110
- package/dist/element.mjs +45920 -33167
- package/dist/{flowchart-parser-ZNSKIBVR.js → flowchart-parser-OE4WHLTF.js} +4 -4
- package/dist/{flowchart-renderer-SNDSII4D.js → flowchart-renderer-GPCSMTOR.js} +8 -8
- package/dist/highlight.d.ts +17 -1
- package/dist/highlight.js +163 -6
- package/dist/index.d.ts +5 -1
- package/dist/index.js +199 -233
- package/dist/{layout-HRBZPFCN.js → layout-34CLNICW.js} +5 -5
- package/dist/layout-46366KBT.js +10 -0
- package/dist/{layout-HWDSRX5E.js → layout-5BG6DFCU.js} +6 -6
- package/dist/layout-6RDJHS6E.js +9 -0
- package/dist/{layout-7QXCNOVS.js → layout-7H4H46CS.js} +3 -3
- package/dist/{layout-46N4JJYK.js → layout-7SKMFYHL.js} +5 -5
- package/dist/{layout-EE6GE46Y.js → layout-DC4TVXER.js} +5 -5
- package/dist/layout-FGQWRYYW.js +14 -0
- package/dist/{layout-S2QBYSK2.js → layout-NXG63LWH.js} +3 -3
- package/dist/{layout-N76NR4ZO.js → layout-PUQCB6AN.js} +7 -7
- package/dist/{layout-HYZPWAK5.js → layout-QNUQLEHU.js} +3 -3
- package/dist/{layout-UM5F4DJB.js → layout-T3OZU5QW.js} +5 -5
- package/dist/layout-TJIWF7EM.js +14 -0
- package/dist/layout-VYELEAW7.js +14 -0
- package/dist/{layout-5RA6QWR6.js → layout-WZHNDT2O.js} +6 -6
- package/dist/{layout-search-OYV77HHS.js → layout-search-QS44PI5R.js} +6 -6
- package/dist/{parser-6BTRLKRZ.js → parser-45DENHFZ.js} +4 -4
- package/dist/{parser-TFZFBVWN.js → parser-4AI5ZN5F.js} +3 -3
- package/dist/{parser-XDVELHRK.js → parser-4P36TUVD.js} +4 -4
- package/dist/{parser-ZSDPZYQP.js → parser-5AURY4A6.js} +4 -4
- package/dist/{parser-N5O4IHUN.js → parser-A2BEFMGK.js} +4 -4
- package/dist/parser-B5FVS7O6.js +11 -0
- package/dist/{parser-NGU3ETO6.js → parser-C2HF2C2E.js} +4 -4
- package/dist/parser-CSFUN3CT.js +14 -0
- package/dist/{parser-TRTHDFPP.js → parser-D3QT6GWN.js} +5 -5
- package/dist/parser-D5637H5H.js +15 -0
- package/dist/{parser-VQP2UJ6W.js → parser-DFFEDKHH.js} +3 -3
- package/dist/parser-DOKMZXVZ.js +13 -0
- package/dist/parser-FMPCVFRK.js +15 -0
- package/dist/{parser-Y6WTBU76.js → parser-HYRTF3DO.js} +3 -3
- package/dist/{parser-I6KXEYFK.js → parser-I2UIJKVQ.js} +4 -4
- package/dist/{parser-O5J4VBII.js → parser-IBWNAPY4.js} +3 -3
- package/dist/{parser-PQ3POX45.js → parser-KUQWRPIT.js} +4 -4
- package/dist/{parser-2MFP2H2E.js → parser-LWKKBNSA.js} +3 -3
- package/dist/{parser-OV7NOBW6.js → parser-O4QFCUW7.js} +5 -5
- package/dist/{parser-IXSZZQHY.js → parser-PGMQDD4G.js} +4 -4
- package/dist/{parser-3STE62GB.js → parser-Q4QKCIWQ.js} +4 -4
- package/dist/parser-QTOB4KFL.js +14 -0
- package/dist/{parser-2EWECDSA.js → parser-QYYM4QVW.js} +4 -4
- package/dist/{parser-4OGOBJJ4.js → parser-RZMQP7MM.js} +4 -4
- package/dist/parser-RZPVAQVX.js +11 -0
- package/dist/parser-SOUJOEYI.js +13 -0
- package/dist/{parser-4FL2CMDG.js → parser-UQE5OWZI.js} +5 -5
- package/dist/{parser-NRAI6O25.js → parser-WAV5JRPT.js} +4 -4
- package/dist/{parser-KNSQSKQO.js → parser-YLKYBRIT.js} +5 -5
- package/dist/{parser-XKRP7QKP.js → parser-YS7TOS2K.js} +3 -3
- package/dist/{parser-AQETEVRW.js → parser-ZSOWUBML.js} +5 -5
- package/dist/{parser-CFZD5IBL.js → parser-ZTBATMLX.js} +4 -4
- package/dist/{renderer-VACVQYML.js → renderer-35HSIDMZ.js} +8 -8
- package/dist/{renderer-5MYBMBYO.js → renderer-4ITCHBT7.js} +5 -5
- package/dist/{renderer-CLJHQPBJ.js → renderer-67NPCBIS.js} +11 -11
- package/dist/{renderer-5NDVNDAZ.js → renderer-6GHYK7DX.js} +9 -9
- package/dist/{renderer-Z7I3W2PP.js → renderer-6RNGHC5Z.js} +8 -8
- package/dist/renderer-72LGR2YF.js +14 -0
- package/dist/{renderer-KQB7UGDS.js → renderer-7RH2SI3B.js} +3 -3
- package/dist/renderer-7SWMIFMM.js +21 -0
- package/dist/renderer-BBCEFILK.js +24 -0
- package/dist/{renderer-JGBKUCZD.js → renderer-BSW7SRIZ.js} +4 -4
- package/dist/{renderer-BYCNMBF7.js → renderer-BY533UWU.js} +11 -11
- package/dist/{renderer-6W5462RB.js → renderer-BZSBPTZJ.js} +9 -9
- package/dist/{renderer-7MVLWWQD.js → renderer-CXUC4KAD.js} +9 -9
- package/dist/{renderer-QIWVHWZO.js → renderer-DAXMXIKD.js} +3 -3
- package/dist/renderer-FZUKFUNZ.js +23 -0
- package/dist/renderer-G2NLGNKF.js +17 -0
- package/dist/renderer-GO3FE3RA.js +24 -0
- package/dist/{renderer-ZGNTUWC4.js → renderer-HPGR6USK.js} +8 -8
- package/dist/{renderer-UV6MI64M.js → renderer-HVCU2C3Z.js} +3 -3
- package/dist/renderer-ICJN2SA2.js +24 -0
- package/dist/{renderer-AWWAF6XD.js → renderer-INEXO7B6.js} +10 -10
- package/dist/{renderer-YY2OSF6E.js → renderer-KDYCFRBX.js} +8 -8
- package/dist/renderer-KY4KQBTF.js +19 -0
- package/dist/{renderer-B2OMQIQG.js → renderer-LBN65V45.js} +13 -13
- package/dist/{renderer-N43WR5GV.js → renderer-MGBWOCXG.js} +10 -10
- package/dist/{renderer-PGX2TKVS.js → renderer-O4JKUGKO.js} +8 -8
- package/dist/{renderer-4JHRUBE6.js → renderer-OOGFODWP.js} +10 -10
- package/dist/{renderer-6EEZHMH4.js → renderer-Q6ZKPLS6.js} +9 -9
- package/dist/{renderer-RPOA5YPZ.js → renderer-SZQ326M5.js} +12 -12
- package/dist/{renderer-ZRNG54CW.js → renderer-TKG6LS4U.js} +11 -11
- package/dist/{renderer-W4M6QLIJ.js → renderer-TQMZGDAX.js} +13 -13
- package/dist/renderer-radial-JELMHQ24.js +21 -0
- package/dist/{resolver-NOAA7ID7.js → resolver-FHBCO3PL.js} +3 -3
- package/dist/{state-parser-Z2V23ATR.js → state-parser-3REXRK3R.js} +4 -4
- package/dist/{state-renderer-B4DQBM6M.js → state-renderer-XYLNRWXR.js} +8 -8
- package/docs/ai-integration.md +12 -3
- package/docs/language-reference.md +429 -24
- package/gallery/fixtures/body.dgmo +17 -0
- package/gallery/fixtures/bracket.dgmo +30 -0
- package/gallery/fixtures/clock.dgmo +8 -0
- package/gallery/fixtures/countdown.dgmo +3 -0
- package/gallery/fixtures/family.dgmo +23 -0
- package/gallery/fixtures/goal.dgmo +4 -0
- package/gallery/fixtures/sketch.dgmo +22 -0
- package/package.json +12 -4
- package/dist/chunk-ODZVHU3R.js +0 -153
- package/dist/dgmo-router-X35VLZLM.js +0 -73
- package/dist/dimensions-J3FHIMJ6.js +0 -22
- package/dist/layout-5T6RH5M6.js +0 -14
- package/dist/layout-G23F7LDH.js +0 -9
- package/dist/layout-OB3RI63S.js +0 -14
- package/dist/parser-JAL2HD4I.js +0 -13
- package/dist/renderer-SMIBCRVB.js +0 -24
- package/dist/renderer-radial-C32GPJQ7.js +0 -21
package/dist/block.css
CHANGED
|
@@ -109,6 +109,69 @@
|
|
|
109
109
|
opacity: 1;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
/* === Full-screen lightbox ===
|
|
113
|
+
* The expand button clones the visible diagram into a native <dialog> that
|
|
114
|
+
* the client shows with showModal(): top-layer, so it escapes any transformed
|
|
115
|
+
* or overflow-clipped ancestor (docs sidebars) and fills the whole viewport.
|
|
116
|
+
* Escape / backdrop-click / the close button dismiss it. The <dialog> itself
|
|
117
|
+
* fills the viewport with a transparent background (so a click landing on it
|
|
118
|
+
* — outside the centered card — reads as a backdrop dismiss); the dim comes
|
|
119
|
+
* from ::backdrop. */
|
|
120
|
+
.dgmo-lightbox {
|
|
121
|
+
width: 100vw;
|
|
122
|
+
height: 100vh;
|
|
123
|
+
max-width: 100vw;
|
|
124
|
+
max-height: 100vh;
|
|
125
|
+
margin: 0;
|
|
126
|
+
padding: 0;
|
|
127
|
+
border: 0;
|
|
128
|
+
background: transparent;
|
|
129
|
+
overflow: hidden;
|
|
130
|
+
}
|
|
131
|
+
.dgmo-lightbox[open] {
|
|
132
|
+
display: flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
justify-content: center;
|
|
135
|
+
}
|
|
136
|
+
.dgmo-lightbox::backdrop {
|
|
137
|
+
background: rgba(0, 0, 0, 0.72);
|
|
138
|
+
}
|
|
139
|
+
.dgmo-lightbox-svg {
|
|
140
|
+
width: 95vw;
|
|
141
|
+
max-width: 95vw;
|
|
142
|
+
max-height: 95vh;
|
|
143
|
+
overflow: auto;
|
|
144
|
+
border-radius: 0.5em;
|
|
145
|
+
box-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);
|
|
146
|
+
}
|
|
147
|
+
.dgmo-lightbox-svg > svg {
|
|
148
|
+
display: block;
|
|
149
|
+
width: 100%;
|
|
150
|
+
height: auto;
|
|
151
|
+
max-width: 100%;
|
|
152
|
+
}
|
|
153
|
+
.dgmo-lightbox-close {
|
|
154
|
+
position: fixed;
|
|
155
|
+
top: max(1rem, env(safe-area-inset-top));
|
|
156
|
+
right: max(1rem, env(safe-area-inset-right));
|
|
157
|
+
display: inline-flex;
|
|
158
|
+
align-items: center;
|
|
159
|
+
justify-content: center;
|
|
160
|
+
width: 2.4em;
|
|
161
|
+
height: 2.4em;
|
|
162
|
+
border: 0;
|
|
163
|
+
border-radius: 50%;
|
|
164
|
+
background: rgba(0, 0, 0, 0.5);
|
|
165
|
+
color: #fff;
|
|
166
|
+
font-size: 1.25rem;
|
|
167
|
+
line-height: 1;
|
|
168
|
+
cursor: pointer;
|
|
169
|
+
transition: background-color 0.15s ease;
|
|
170
|
+
}
|
|
171
|
+
.dgmo-lightbox-close:hover {
|
|
172
|
+
background: rgba(0, 0, 0, 0.75);
|
|
173
|
+
}
|
|
174
|
+
|
|
112
175
|
/* === Frame the whole block ===
|
|
113
176
|
* When the source panel is open, diagram + toolbar + code get one shared
|
|
114
177
|
* border so the code visibly belongs to the chart above it. The frame box
|
package/dist/block.d.ts
CHANGED
|
@@ -29,11 +29,13 @@ declare const BLOCK_CSS: string;
|
|
|
29
29
|
*
|
|
30
30
|
* Chrome contract (user-approved 2026-07-05): the diagram is the star. A slim
|
|
31
31
|
* icon toolbar sits in a reserved row below the SVG, invisible until the
|
|
32
|
-
* block is hovered/focused or the source is open.
|
|
33
|
-
* buttons — `</>` toggles the hidden source panel,
|
|
34
|
-
* disclosure triangle, no text labels. The toolbar
|
|
35
|
-
* native <details>, so show/hide works with zero
|
|
36
|
-
*
|
|
32
|
+
* block is hovered/focused or the source is open. Four wordless icon
|
|
33
|
+
* buttons — `</>` toggles the hidden source panel, expand (full-screen),
|
|
34
|
+
* copy, open-in-editor. No disclosure triangle, no text labels. The toolbar
|
|
35
|
+
* IS the <summary> of a native <details>, so show/hide works with zero
|
|
36
|
+
* JavaScript; copy and expand need a small delegated click handler
|
|
37
|
+
* (remark-dgmo's `bindDgmo` is the reference — expand's lightbox helper is
|
|
38
|
+
* mirrored across every client surface, same as copy).
|
|
37
39
|
*
|
|
38
40
|
* Markup vocabulary: `figure.dgmo` (`--diagram`/`--showcase`/`--error`),
|
|
39
41
|
* `.dgmo-light`/`.dgmo-dark` (dual color-mode) or `.dgmo-svg` (single),
|
|
@@ -64,6 +66,12 @@ interface DgmoBlockOptions {
|
|
|
64
66
|
showSource?: boolean;
|
|
65
67
|
/** Default: true in showcase mode, false in diagram mode. */
|
|
66
68
|
showCopy?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Show the expand (full-screen) toolbar button. Default: true in showcase
|
|
71
|
+
* mode, false in diagram mode. Needs the client lightbox handler to do
|
|
72
|
+
* anything (mirrored across surfaces); markup-only surfaces can omit it.
|
|
73
|
+
*/
|
|
74
|
+
showExpand?: boolean;
|
|
67
75
|
/** Default: true in showcase mode, false in diagram mode. */
|
|
68
76
|
showOpenInEditor?: boolean;
|
|
69
77
|
/** Base URL for the open-in-editor link. Default: online.diagrammo.app. */
|
package/dist/block.js
CHANGED
|
@@ -1,76 +1,91 @@
|
|
|
1
1
|
import {
|
|
2
|
-
normalizeSvgForEmbed
|
|
3
|
-
|
|
2
|
+
normalizeSvgForEmbed,
|
|
3
|
+
renderErrorCard
|
|
4
|
+
} from "./chunk-L2ZTFHAY.js";
|
|
4
5
|
import {
|
|
5
6
|
encodeDiagramUrl,
|
|
6
7
|
render
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-OJR3MQYV.js";
|
|
10
|
-
import "./chunk-UWN33VNX.js";
|
|
8
|
+
} from "./chunk-NISQC5KW.js";
|
|
9
|
+
import "./chunk-XCLHOZAM.js";
|
|
11
10
|
import "./chunk-YRYKTYMQ.js";
|
|
12
|
-
import "./chunk-U6EQI3U6.js";
|
|
13
|
-
import "./chunk-PWIHZ6NJ.js";
|
|
14
11
|
import "./chunk-YYVTBZZC.js";
|
|
15
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-QUJGFNFN.js";
|
|
13
|
+
import "./chunk-JFYIP7XU.js";
|
|
14
|
+
import "./chunk-Q4V4XQWV.js";
|
|
15
|
+
import "./chunk-BTUTZMPT.js";
|
|
16
|
+
import {
|
|
17
|
+
monthIndex,
|
|
18
|
+
weekdayIndex
|
|
19
|
+
} from "./chunk-YNRDWYZP.js";
|
|
20
|
+
import "./chunk-3XPUDB7B.js";
|
|
21
|
+
import "./chunk-FL4IOQ37.js";
|
|
22
|
+
import "./chunk-PGEGPSCZ.js";
|
|
23
|
+
import "./chunk-DMJJ3CEQ.js";
|
|
24
|
+
import "./chunk-BDXC7MDK.js";
|
|
25
|
+
import "./chunk-6ZT4U37Q.js";
|
|
26
|
+
import "./chunk-HGN652MU.js";
|
|
27
|
+
import "./chunk-U6EQI3U6.js";
|
|
28
|
+
import "./chunk-7UEMZREK.js";
|
|
16
29
|
import "./chunk-A4GOY3PE.js";
|
|
17
30
|
import "./chunk-6KFWC4CO.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-HQCHYB5F.js";
|
|
32
|
+
import "./chunk-5LWQH6QV.js";
|
|
33
|
+
import "./chunk-XDXNDSKO.js";
|
|
34
|
+
import "./chunk-OHQEMBLI.js";
|
|
35
|
+
import "./chunk-TSA237IM.js";
|
|
36
|
+
import "./chunk-6IAA2QQ2.js";
|
|
37
|
+
import "./chunk-YZLMKW4T.js";
|
|
38
|
+
import "./chunk-3P2DKJCG.js";
|
|
39
|
+
import "./chunk-3LKM6FMW.js";
|
|
40
|
+
import "./chunk-OTP5KVLO.js";
|
|
41
|
+
import "./chunk-YB3FW24O.js";
|
|
28
42
|
import "./chunk-NNAAJVBU.js";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-BUPDIHML.js";
|
|
43
|
+
import "./chunk-XMVQ5F4M.js";
|
|
44
|
+
import "./chunk-UXOSVCLJ.js";
|
|
45
|
+
import "./chunk-FB2WHOEQ.js";
|
|
33
46
|
import {
|
|
34
47
|
REGISTRY_COLON_KEY_TOKENS,
|
|
35
48
|
REGISTRY_CONTROL_TOKENS,
|
|
36
49
|
REGISTRY_DIRECTIVE_TOKENS,
|
|
37
50
|
REGISTRY_MODIFIER_TOKENS,
|
|
38
51
|
REGISTRY_STATUS_TOKENS
|
|
39
|
-
} from "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
52
|
+
} from "./chunk-U2HGPLZS.js";
|
|
53
|
+
import "./chunk-SU2VBK4L.js";
|
|
54
|
+
import "./chunk-5JSWBPZZ.js";
|
|
55
|
+
import "./chunk-XHVV4NVW.js";
|
|
56
|
+
import "./chunk-WWN566I7.js";
|
|
57
|
+
import "./chunk-O4VUFXIH.js";
|
|
58
|
+
import "./chunk-QQJUTGQH.js";
|
|
59
|
+
import "./chunk-S5GRONXL.js";
|
|
60
|
+
import "./chunk-2JJ2KNPI.js";
|
|
61
|
+
import "./chunk-O76UD6VJ.js";
|
|
62
|
+
import "./chunk-A3WQVFBS.js";
|
|
63
|
+
import "./chunk-6M5PJFQG.js";
|
|
49
64
|
import "./chunk-L3UHP6TD.js";
|
|
50
65
|
import "./chunk-USZW2HHU.js";
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
54
|
-
import "./chunk-
|
|
55
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-7G2ER4CY.js";
|
|
67
|
+
import "./chunk-I7F2A35O.js";
|
|
68
|
+
import "./chunk-6BFZKBGD.js";
|
|
69
|
+
import "./chunk-I4IFRCUB.js";
|
|
70
|
+
import "./chunk-URSQLCTR.js";
|
|
56
71
|
import "./chunk-IYULMRBE.js";
|
|
57
72
|
import {
|
|
58
73
|
resolvePaletteOrFallback
|
|
59
74
|
} from "./chunk-R3XI2VC7.js";
|
|
60
75
|
import "./chunk-P6T66CCZ.js";
|
|
61
|
-
import "./chunk-
|
|
76
|
+
import "./chunk-T4BRO3Z6.js";
|
|
62
77
|
import "./chunk-C3Z4DX3V.js";
|
|
63
|
-
import "./chunk-
|
|
64
|
-
import "./chunk-
|
|
78
|
+
import "./chunk-WCUHAQKB.js";
|
|
79
|
+
import "./chunk-GBE54KY6.js";
|
|
65
80
|
import "./chunk-I46X5VUA.js";
|
|
66
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-2C56LEML.js";
|
|
67
82
|
import "./chunk-NXMESY4J.js";
|
|
68
|
-
import "./chunk-
|
|
69
|
-
import "./chunk-
|
|
83
|
+
import "./chunk-GL5UZ6NY.js";
|
|
84
|
+
import "./chunk-SCHXJTZL.js";
|
|
70
85
|
import "./chunk-FMDSF3OV.js";
|
|
71
86
|
import "./chunk-FFUN5D66.js";
|
|
72
87
|
import "./chunk-NOTA6TEI.js";
|
|
73
|
-
import "./chunk-
|
|
88
|
+
import "./chunk-OTAL43EH.js";
|
|
74
89
|
import "./chunk-TLVIHFRO.js";
|
|
75
90
|
import "./chunk-CXK4DZH3.js";
|
|
76
91
|
import "./chunk-5WRI5ZAA.js";
|
|
@@ -93,10 +108,12 @@ var CHART_TYPES = /* @__PURE__ */ new Set([
|
|
|
93
108
|
"class",
|
|
94
109
|
"er",
|
|
95
110
|
"org",
|
|
111
|
+
"family",
|
|
96
112
|
"kanban",
|
|
97
113
|
"c4",
|
|
98
114
|
"state",
|
|
99
115
|
"sitemap",
|
|
116
|
+
"bracket",
|
|
100
117
|
"infra",
|
|
101
118
|
"gantt",
|
|
102
119
|
"pert",
|
|
@@ -111,6 +128,10 @@ var CHART_TYPES = /* @__PURE__ */ new Set([
|
|
|
111
128
|
"ring",
|
|
112
129
|
"treemap",
|
|
113
130
|
"block",
|
|
131
|
+
"goal",
|
|
132
|
+
"countdown",
|
|
133
|
+
"clock",
|
|
134
|
+
"sketch",
|
|
114
135
|
"raci",
|
|
115
136
|
"cycle",
|
|
116
137
|
// Data chart types
|
|
@@ -132,7 +153,8 @@ var CHART_TYPES = /* @__PURE__ */ new Set([
|
|
|
132
153
|
"event-line",
|
|
133
154
|
"venn",
|
|
134
155
|
"quadrant",
|
|
135
|
-
"map"
|
|
156
|
+
"map",
|
|
157
|
+
"body"
|
|
136
158
|
]);
|
|
137
159
|
var TAG_KEYWORD = "tag";
|
|
138
160
|
var DIRECTIVE_KEYWORDS = /* @__PURE__ */ new Set([...REGISTRY_DIRECTIVE_TOKENS]);
|
|
@@ -220,6 +242,14 @@ var OVERRIDE_IN_LABEL = /* @__PURE__ */ new Set([
|
|
|
220
242
|
"Duration",
|
|
221
243
|
"DateLiteral"
|
|
222
244
|
]);
|
|
245
|
+
var LABEL_WORD_NODES = /* @__PURE__ */ new Set([
|
|
246
|
+
"Identifier",
|
|
247
|
+
"ChartType",
|
|
248
|
+
"TagKeyword",
|
|
249
|
+
"DirectiveKeyword",
|
|
250
|
+
"ControlKeyword",
|
|
251
|
+
"ModifierKeyword"
|
|
252
|
+
]);
|
|
223
253
|
var KEYWORD_STARTS = /* @__PURE__ */ new Set([
|
|
224
254
|
"TagKeyword",
|
|
225
255
|
"DirectiveKeyword",
|
|
@@ -263,6 +293,7 @@ function highlightDgmo(source) {
|
|
|
263
293
|
applyAttributeKeys(tokens);
|
|
264
294
|
applyLabelOverrides(tokens);
|
|
265
295
|
applyNoteContent(tokens);
|
|
296
|
+
applyRecurringLine(tokens);
|
|
266
297
|
return tokens;
|
|
267
298
|
}
|
|
268
299
|
var ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
|
|
@@ -300,6 +331,9 @@ var ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
|
|
|
300
331
|
"value",
|
|
301
332
|
"label",
|
|
302
333
|
"style",
|
|
334
|
+
// Sketch (§31): shape morph + half-slot coordinate keys
|
|
335
|
+
"shape",
|
|
336
|
+
"at",
|
|
303
337
|
// Treemap + boxes-and-lines + map colour-by-value channel key
|
|
304
338
|
"heat",
|
|
305
339
|
// Infra node behavior + edge colon-keys (§4) come from the single-source
|
|
@@ -399,14 +433,14 @@ function applyLabelOverrides(tokens) {
|
|
|
399
433
|
}
|
|
400
434
|
const hasArrow = firstDashTildeIdx >= 0 && lastArrowIdx > firstDashTildeIdx;
|
|
401
435
|
if (!hasArrow) continue;
|
|
402
|
-
let
|
|
436
|
+
let labelHasWord = false;
|
|
403
437
|
for (let li = firstDashTildeIdx + 1; li < lastArrowIdx; li++) {
|
|
404
|
-
if (nonWs[li].nodeName
|
|
405
|
-
|
|
438
|
+
if (LABEL_WORD_NODES.has(nonWs[li].nodeName)) {
|
|
439
|
+
labelHasWord = true;
|
|
406
440
|
break;
|
|
407
441
|
}
|
|
408
442
|
}
|
|
409
|
-
if (!
|
|
443
|
+
if (!labelHasWord) continue;
|
|
410
444
|
for (let li = firstDashTildeIdx + 1; li < lastArrowIdx; li++) {
|
|
411
445
|
const ref = nonWs[li];
|
|
412
446
|
if (OVERRIDE_IN_LABEL.has(ref.nodeName)) {
|
|
@@ -418,6 +452,82 @@ function applyLabelOverrides(tokens) {
|
|
|
418
452
|
}
|
|
419
453
|
}
|
|
420
454
|
}
|
|
455
|
+
var RECUR_LEADERS = /* @__PURE__ */ new Set([
|
|
456
|
+
"every",
|
|
457
|
+
"on",
|
|
458
|
+
"at",
|
|
459
|
+
"from",
|
|
460
|
+
"on-day",
|
|
461
|
+
"since-label"
|
|
462
|
+
]);
|
|
463
|
+
var RECUR_CONNECTORS = /* @__PURE__ */ new Set(["on", "at", "from"]);
|
|
464
|
+
var RECUR_CADENCE_WORDS = /* @__PURE__ */ new Set([
|
|
465
|
+
"year",
|
|
466
|
+
"month",
|
|
467
|
+
"week",
|
|
468
|
+
"day",
|
|
469
|
+
"days",
|
|
470
|
+
"weeks",
|
|
471
|
+
"months"
|
|
472
|
+
]);
|
|
473
|
+
function isRecurOrdinal(token) {
|
|
474
|
+
return /^(?:\d+(?:st|nd|rd|th)|last)$/i.test(token);
|
|
475
|
+
}
|
|
476
|
+
function classifyRecurrenceLine(line) {
|
|
477
|
+
const spans = [];
|
|
478
|
+
const toks = [];
|
|
479
|
+
const re = /\S+/g;
|
|
480
|
+
let m;
|
|
481
|
+
while ((m = re.exec(line)) !== null) {
|
|
482
|
+
toks.push({ t: m[0], s: m.index, e: m.index + m[0].length });
|
|
483
|
+
}
|
|
484
|
+
if (toks.length === 0) return spans;
|
|
485
|
+
const lead = toks[0].t.toLowerCase();
|
|
486
|
+
if (!RECUR_LEADERS.has(lead)) return spans;
|
|
487
|
+
const everyLine = lead === "every";
|
|
488
|
+
let seenConnector = false;
|
|
489
|
+
for (let i = 0; i < toks.length; i++) {
|
|
490
|
+
const { t, s, e } = toks[i];
|
|
491
|
+
const low = t.toLowerCase();
|
|
492
|
+
if (i === 0) {
|
|
493
|
+
spans.push({ start: s, end: e, role: "keyword" });
|
|
494
|
+
continue;
|
|
495
|
+
}
|
|
496
|
+
if (RECUR_CONNECTORS.has(low)) {
|
|
497
|
+
spans.push({ start: s, end: e, role: "keyword" });
|
|
498
|
+
seenConnector = true;
|
|
499
|
+
continue;
|
|
500
|
+
}
|
|
501
|
+
if (everyLine && !seenConnector && RECUR_CADENCE_WORDS.has(low)) {
|
|
502
|
+
spans.push({ start: s, end: e, role: "keyword" });
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
if (isRecurOrdinal(low) || monthIndex(t) !== null || weekdayIndex(t) !== null) {
|
|
506
|
+
spans.push({ start: s, end: e, role: "modifier" });
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
return spans;
|
|
510
|
+
}
|
|
511
|
+
function applyRecurringLine(tokens) {
|
|
512
|
+
const fullText = tokens.map((t) => t.text).join("");
|
|
513
|
+
const lines = fullText.split("\n");
|
|
514
|
+
const firstContent = lines.find((l) => {
|
|
515
|
+
const t = l.trim();
|
|
516
|
+
return t.length > 0 && !t.startsWith("//");
|
|
517
|
+
});
|
|
518
|
+
if (firstContent?.trim().split(/\s+/)[0].toLowerCase() !== "countdown") {
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
let offset = 0;
|
|
522
|
+
for (const lineText of lines) {
|
|
523
|
+
if (!/^\s/.test(lineText)) {
|
|
524
|
+
for (const sp of classifyRecurrenceLine(lineText)) {
|
|
525
|
+
markTokensInRange(tokens, offset + sp.start, offset + sp.end, sp.role);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
offset += lineText.length + 1;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
421
531
|
var NOTE_HEAD_RE = /^note(\s|$)/i;
|
|
422
532
|
function applyNoteContent(tokens) {
|
|
423
533
|
const fullText = tokens.map((t) => t.text).join("");
|
|
@@ -583,6 +693,69 @@ var BLOCK_CSS = `
|
|
|
583
693
|
opacity: 1;
|
|
584
694
|
}
|
|
585
695
|
|
|
696
|
+
/* === Full-screen lightbox ===
|
|
697
|
+
* The expand button clones the visible diagram into a native <dialog> that
|
|
698
|
+
* the client shows with showModal(): top-layer, so it escapes any transformed
|
|
699
|
+
* or overflow-clipped ancestor (docs sidebars) and fills the whole viewport.
|
|
700
|
+
* Escape / backdrop-click / the close button dismiss it. The <dialog> itself
|
|
701
|
+
* fills the viewport with a transparent background (so a click landing on it
|
|
702
|
+
* \u2014 outside the centered card \u2014 reads as a backdrop dismiss); the dim comes
|
|
703
|
+
* from ::backdrop. */
|
|
704
|
+
.dgmo-lightbox {
|
|
705
|
+
width: 100vw;
|
|
706
|
+
height: 100vh;
|
|
707
|
+
max-width: 100vw;
|
|
708
|
+
max-height: 100vh;
|
|
709
|
+
margin: 0;
|
|
710
|
+
padding: 0;
|
|
711
|
+
border: 0;
|
|
712
|
+
background: transparent;
|
|
713
|
+
overflow: hidden;
|
|
714
|
+
}
|
|
715
|
+
.dgmo-lightbox[open] {
|
|
716
|
+
display: flex;
|
|
717
|
+
align-items: center;
|
|
718
|
+
justify-content: center;
|
|
719
|
+
}
|
|
720
|
+
.dgmo-lightbox::backdrop {
|
|
721
|
+
background: rgba(0, 0, 0, 0.72);
|
|
722
|
+
}
|
|
723
|
+
.dgmo-lightbox-svg {
|
|
724
|
+
width: 95vw;
|
|
725
|
+
max-width: 95vw;
|
|
726
|
+
max-height: 95vh;
|
|
727
|
+
overflow: auto;
|
|
728
|
+
border-radius: 0.5em;
|
|
729
|
+
box-shadow: 0 12px 48px rgba(0, 0, 0, 0.45);
|
|
730
|
+
}
|
|
731
|
+
.dgmo-lightbox-svg > svg {
|
|
732
|
+
display: block;
|
|
733
|
+
width: 100%;
|
|
734
|
+
height: auto;
|
|
735
|
+
max-width: 100%;
|
|
736
|
+
}
|
|
737
|
+
.dgmo-lightbox-close {
|
|
738
|
+
position: fixed;
|
|
739
|
+
top: max(1rem, env(safe-area-inset-top));
|
|
740
|
+
right: max(1rem, env(safe-area-inset-right));
|
|
741
|
+
display: inline-flex;
|
|
742
|
+
align-items: center;
|
|
743
|
+
justify-content: center;
|
|
744
|
+
width: 2.4em;
|
|
745
|
+
height: 2.4em;
|
|
746
|
+
border: 0;
|
|
747
|
+
border-radius: 50%;
|
|
748
|
+
background: rgba(0, 0, 0, 0.5);
|
|
749
|
+
color: #fff;
|
|
750
|
+
font-size: 1.25rem;
|
|
751
|
+
line-height: 1;
|
|
752
|
+
cursor: pointer;
|
|
753
|
+
transition: background-color 0.15s ease;
|
|
754
|
+
}
|
|
755
|
+
.dgmo-lightbox-close:hover {
|
|
756
|
+
background: rgba(0, 0, 0, 0.75);
|
|
757
|
+
}
|
|
758
|
+
|
|
586
759
|
/* === Frame the whole block ===
|
|
587
760
|
* When the source panel is open, diagram + toolbar + code get one shared
|
|
588
761
|
* border so the code visibly belongs to the chart above it. The frame box
|
|
@@ -781,6 +954,7 @@ function resolveBlockOptions(opts) {
|
|
|
781
954
|
colorMode: opts.colorMode ?? "auto",
|
|
782
955
|
showSource: opts.showSource ?? showcase,
|
|
783
956
|
showCopy: opts.showCopy ?? showcase,
|
|
957
|
+
showExpand: opts.showExpand ?? showcase,
|
|
784
958
|
showOpenInEditor: opts.showOpenInEditor ?? showcase,
|
|
785
959
|
editorBaseUrl: opts.editorBaseUrl ?? EDITOR_BASE_URL,
|
|
786
960
|
wrapper: opts.wrapper ?? "figure",
|
|
@@ -793,23 +967,24 @@ function resolveBlockOptions(opts) {
|
|
|
793
967
|
async function renderDgmoBlock(source, options = {}) {
|
|
794
968
|
const opts = resolveBlockOptions(options);
|
|
795
969
|
const trimmed = source.trim();
|
|
796
|
-
const
|
|
970
|
+
const palette = resolvePaletteOrFallback(opts.palette, opts.onWarn);
|
|
797
971
|
const diagnostics = [];
|
|
972
|
+
const renderTheme = async (theme) => {
|
|
973
|
+
const r = await render(trimmed, { palette: palette.id, theme });
|
|
974
|
+
diagnostics.push(...r.diagnostics);
|
|
975
|
+
const errors = r.diagnostics.filter((d) => d.severity === "error");
|
|
976
|
+
return errors.length ? renderErrorCard(errors, trimmed, palette, theme) : r.svg;
|
|
977
|
+
};
|
|
798
978
|
let svgsHtml;
|
|
799
979
|
if (opts.colorMode === "auto") {
|
|
800
980
|
const [light, dark] = await Promise.all([
|
|
801
|
-
|
|
802
|
-
|
|
981
|
+
renderTheme("light"),
|
|
982
|
+
renderTheme("dark")
|
|
803
983
|
]);
|
|
804
|
-
|
|
805
|
-
svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-light"))}">${normalizeSvgForEmbed(light.svg)}</div><div class="${escapeAttr(innerClasses(opts, "dgmo-dark"))}">${normalizeSvgForEmbed(dark.svg)}</div>`;
|
|
984
|
+
svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-light"))}">${normalizeSvgForEmbed(light)}</div><div class="${escapeAttr(innerClasses(opts, "dgmo-dark"))}">${normalizeSvgForEmbed(dark)}</div>`;
|
|
806
985
|
} else {
|
|
807
|
-
const
|
|
808
|
-
|
|
809
|
-
theme: opts.colorMode
|
|
810
|
-
});
|
|
811
|
-
diagnostics.push(...result.diagnostics);
|
|
812
|
-
svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-svg"))}">${normalizeSvgForEmbed(result.svg)}</div>`;
|
|
986
|
+
const svg = await renderTheme(opts.colorMode);
|
|
987
|
+
svgsHtml = `<div class="${escapeAttr(innerClasses(opts, "dgmo-svg"))}">${normalizeSvgForEmbed(svg)}</div>`;
|
|
813
988
|
}
|
|
814
989
|
return { html: assembleBlock(trimmed, svgsHtml, opts), diagnostics };
|
|
815
990
|
}
|
|
@@ -843,9 +1018,11 @@ function assembleBlock(source, svgsHtml, opts) {
|
|
|
843
1018
|
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>`;
|
|
844
1019
|
var COPY_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"><rect x="5.5" y="5.5" width="8" height="8" rx="1.5"/><path d="M10.5 5.5V3a1.5 1.5 0 0 0-1.5-1.5H3A1.5 1.5 0 0 0 1.5 3v6A1.5 1.5 0 0 0 3 10.5h2.5"/></svg>`;
|
|
845
1020
|
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>`;
|
|
1021
|
+
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>`;
|
|
846
1022
|
function sourceDisclosure(source, opts) {
|
|
847
1023
|
if (!opts.showSource) return "";
|
|
848
1024
|
const toggle = `<span class="dgmo-toggle" title="View DGMO source">${CODE_ICON}</span>`;
|
|
1025
|
+
const expandButton = opts.showExpand ? `<button type="button" class="dgmo-toolbar-btn dgmo-expand" aria-label="View full screen" title="Expand">${EXPAND_ICON}</button>` : "";
|
|
849
1026
|
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>` : "";
|
|
850
1027
|
let openButton = "";
|
|
851
1028
|
if (opts.showOpenInEditor) {
|
|
@@ -855,7 +1032,7 @@ function sourceDisclosure(source, opts) {
|
|
|
855
1032
|
}
|
|
856
1033
|
}
|
|
857
1034
|
const sourceHtml = highlightedSource(source);
|
|
858
|
-
return `<details class="dgmo-source-wrap"><summary class="dgmo-toolbar" aria-label="View DGMO source">${toggle}${copyButton}${openButton}</summary><div class="dgmo-source-inner">${sourceHtml}</div></details>`;
|
|
1035
|
+
return `<details class="dgmo-source-wrap"><summary class="dgmo-toolbar" aria-label="View DGMO source">${toggle}${expandButton}${copyButton}${openButton}</summary><div class="dgmo-source-inner">${sourceHtml}</div></details>`;
|
|
859
1036
|
}
|
|
860
1037
|
function highlightedSource(source) {
|
|
861
1038
|
const tokens = highlightDgmo(source);
|
|
@@ -2,18 +2,19 @@ import {
|
|
|
2
2
|
D3_DATA_CHART_TYPES,
|
|
3
3
|
renderDataChartD3,
|
|
4
4
|
supportsD3DataChart
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6ZT4U37Q.js";
|
|
6
|
+
import "./chunk-HGN652MU.js";
|
|
6
7
|
import "./chunk-U6EQI3U6.js";
|
|
7
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-7UEMZREK.js";
|
|
8
9
|
import "./chunk-A4GOY3PE.js";
|
|
9
10
|
import "./chunk-6KFWC4CO.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-HQCHYB5F.js";
|
|
12
|
+
import "./chunk-5LWQH6QV.js";
|
|
13
|
+
import "./chunk-XDXNDSKO.js";
|
|
13
14
|
import "./chunk-R3XI2VC7.js";
|
|
14
15
|
import "./chunk-P6T66CCZ.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-WCUHAQKB.js";
|
|
17
|
+
import "./chunk-OTAL43EH.js";
|
|
17
18
|
import "./chunk-TLVIHFRO.js";
|
|
18
19
|
import "./chunk-CXK4DZH3.js";
|
|
19
20
|
import "./chunk-5WRI5ZAA.js";
|
|
@@ -22,4 +23,4 @@ export {
|
|
|
22
23
|
renderDataChartD3,
|
|
23
24
|
supportsD3DataChart
|
|
24
25
|
};
|
|
25
|
-
//# sourceMappingURL=charts-d3-
|
|
26
|
+
//# sourceMappingURL=charts-d3-DKUD7MQE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
tryCollectNote
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SCHXJTZL.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveNotes
|
|
6
6
|
} from "./chunk-FMDSF3OV.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
measureIndent,
|
|
18
18
|
parseFirstLine,
|
|
19
19
|
tryParseSharedOption
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-OTAL43EH.js";
|
|
21
21
|
import {
|
|
22
22
|
resolveColorWithDiagnostic
|
|
23
23
|
} from "./chunk-TLVIHFRO.js";
|
|
@@ -412,4 +412,4 @@ export {
|
|
|
412
412
|
parseState,
|
|
413
413
|
looksLikeState
|
|
414
414
|
};
|
|
415
|
-
//# sourceMappingURL=chunk-
|
|
415
|
+
//# sourceMappingURL=chunk-2C56LEML.js.map
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
tagAttrKey,
|
|
7
7
|
validateTagGroupNames,
|
|
8
8
|
validateTagValues
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WCUHAQKB.js";
|
|
10
10
|
import {
|
|
11
11
|
tryCollectNote
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-SCHXJTZL.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveNotes
|
|
15
15
|
} from "./chunk-FMDSF3OV.js";
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
tryParseSharedOption,
|
|
33
33
|
warnUnknownMetaKeys,
|
|
34
34
|
withTagAliases
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-OTAL43EH.js";
|
|
36
36
|
import {
|
|
37
37
|
resolveColorWithDiagnostic
|
|
38
38
|
} from "./chunk-TLVIHFRO.js";
|
|
@@ -521,4 +521,4 @@ export {
|
|
|
521
521
|
looksLikeERDiagram,
|
|
522
522
|
extractSymbols
|
|
523
523
|
};
|
|
524
|
-
//# sourceMappingURL=chunk-
|
|
524
|
+
//# sourceMappingURL=chunk-2JJ2KNPI.js.map
|
|
@@ -11,15 +11,15 @@ import {
|
|
|
11
11
|
LEGEND_PILL_FONT_SIZE,
|
|
12
12
|
LEGEND_PILL_PAD,
|
|
13
13
|
measureLegendText
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HQCHYB5F.js";
|
|
15
15
|
import {
|
|
16
16
|
measureText
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-5LWQH6QV.js";
|
|
18
18
|
import {
|
|
19
19
|
injectDefaultTagMetadata,
|
|
20
20
|
resolveTagColor,
|
|
21
21
|
tagAttrKey
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-WCUHAQKB.js";
|
|
23
23
|
|
|
24
24
|
// src/sitemap/layout.ts
|
|
25
25
|
import dagre from "@dagrejs/dagre";
|
|
@@ -617,4 +617,4 @@ function layoutSitemap(parsed, hiddenCounts, activeTagGroup, hiddenAttributes, e
|
|
|
617
617
|
export {
|
|
618
618
|
layoutSitemap
|
|
619
619
|
};
|
|
620
|
-
//# sourceMappingURL=chunk-
|
|
620
|
+
//# sourceMappingURL=chunk-2QYTMIRR.js.map
|