@diagrammo/dgmo 0.94.0 → 0.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/README.md +1 -1
  2. package/dist/advanced.d.ts +97 -570
  3. package/dist/advanced.js +176 -352
  4. package/dist/block.d.ts +6 -0
  5. package/dist/block.js +59 -57
  6. package/dist/{calculator-BNH3GSJE.js → calculator-GIB7POFX.js} +2 -2
  7. package/dist/{chart-meta-BbjsRY7o.d.ts → chart-meta-uImk4eTn.d.ts} +1 -1
  8. package/dist/chart-meta.d.ts +2 -2
  9. package/dist/chart-meta.js +16 -16
  10. package/dist/{chart-types-Cppnp31G.d.ts → chart-types-CBVYiLqy.d.ts} +1 -5
  11. package/dist/{charts-d3-SZV2SFTM.js → charts-d3-IRP5VANE.js} +5 -5
  12. package/dist/{chunk-MLY5ALOV.js → chunk-2BYFNZVM.js} +2 -2
  13. package/dist/{chunk-OSSTOSXU.js → chunk-2M3K6GD2.js} +3 -6
  14. package/dist/{chunk-CDM6XMOT.js → chunk-34JOHSVE.js} +2 -2
  15. package/dist/chunk-35A3J4Z5.js +14 -0
  16. package/dist/{chunk-HI6R27YA.js → chunk-3W73ZP6W.js} +9 -4
  17. package/dist/{chunk-IHN6WDEY.js → chunk-4B45SNZH.js} +5 -5
  18. package/dist/{chunk-AULZD45V.js → chunk-5ARANBIE.js} +2 -2
  19. package/dist/{chunk-DDIOWNHS.js → chunk-5BG4OSWJ.js} +6 -6
  20. package/dist/{chunk-6JCTW74W.js → chunk-5G4DOOX2.js} +1 -1
  21. package/dist/{chunk-JT2BG7LM.js → chunk-5GU6C5WB.js} +3 -3
  22. package/dist/{chunk-EBIDNRSR.js → chunk-5H7SA5ZD.js} +1 -1
  23. package/dist/{chunk-CN4RDJDV.js → chunk-5LG526X7.js} +1 -1
  24. package/dist/{chunk-VDY2GR6U.js → chunk-67N26CER.js} +2 -2
  25. package/dist/{chunk-G3HZ4PGE.js → chunk-67RKJEKF.js} +6 -6
  26. package/dist/{chunk-D3K4U3ZM.js → chunk-6K2W3FH7.js} +8 -5
  27. package/dist/{chunk-C6G36F5S.js → chunk-7UWVHNPM.js} +4 -4
  28. package/dist/{chunk-FWVE373X.js → chunk-AQRSEQZV.js} +1 -1
  29. package/dist/{chunk-BQO24BDM.js → chunk-AUXUNV73.js} +1 -1
  30. package/dist/{chunk-3PP746YM.js → chunk-B2YVZ3QU.js} +1 -1
  31. package/dist/{chunk-QPQWY5RU.js → chunk-B5CEV7IR.js} +3 -3
  32. package/dist/{chunk-J7Q4AB23.js → chunk-B7BSRVNC.js} +2 -2
  33. package/dist/{chunk-IXHWS2HI.js → chunk-BD4O4D2A.js} +2 -2
  34. package/dist/{chunk-4TEPDQHJ.js → chunk-BUVLLK3D.js} +7 -7
  35. package/dist/{chunk-B25IWGDH.js → chunk-CD7VQCDL.js} +8 -8
  36. package/dist/{chunk-I37S3EZE.js → chunk-CP73WWLN.js} +371 -286
  37. package/dist/{chunk-GI5R5B3S.js → chunk-D7DGLJ7N.js} +2 -2
  38. package/dist/{chunk-3TWBMU7K.js → chunk-DKCVAQU3.js} +9 -9
  39. package/dist/{chunk-KBDMEOLI.js → chunk-DPNSDCR3.js} +1 -1
  40. package/dist/{chunk-BRGRIZQB.js → chunk-DWMQ24JR.js} +2 -2
  41. package/dist/{chunk-4XYZJTFO.js → chunk-EM5SA7NC.js} +11 -3
  42. package/dist/{chunk-AM42TLSZ.js → chunk-EMGNCG5C.js} +1 -1
  43. package/dist/{chunk-3KVUFHUJ.js → chunk-EPB3UEMD.js} +2 -2
  44. package/dist/{chunk-NXU4N5WT.js → chunk-EZ6BI5LL.js} +1 -1
  45. package/dist/{chunk-2ZW4NBYX.js → chunk-FBK32S4D.js} +1 -1
  46. package/dist/{chunk-2I4UQG7W.js → chunk-FHX373L5.js} +1 -1
  47. package/dist/{chunk-AQQUJEDN.js → chunk-FKJWZWNU.js} +1 -1
  48. package/dist/{chunk-TIIZIAGS.js → chunk-FUYEXLAN.js} +6 -13
  49. package/dist/{chunk-TASRGDYP.js → chunk-GEHK4UD5.js} +3 -3
  50. package/dist/{chunk-ZD3QCNB7.js → chunk-GLL237AP.js} +2 -2
  51. package/dist/{chunk-PGSGJLUR.js → chunk-GM2SLMQW.js} +2 -2
  52. package/dist/{chunk-NOQB4KMV.js → chunk-H7JVKUA5.js} +5 -5
  53. package/dist/{chunk-DNM3XZCK.js → chunk-H7RQG4PH.js} +2 -2
  54. package/dist/{chunk-7SXV7NUS.js → chunk-HH3DHNQA.js} +2 -2
  55. package/dist/{chunk-GWQRTA5W.js → chunk-HZX4QZGR.js} +1 -1
  56. package/dist/{chunk-KBEWVCK3.js → chunk-I2I2FKAK.js} +1 -1
  57. package/dist/{chunk-2HSHWPTO.js → chunk-I3ZRIMR7.js} +10 -10
  58. package/dist/{chunk-7IOZ6JE4.js → chunk-IKXQ6NVR.js} +7 -7
  59. package/dist/{chunk-XJQ6Z3FO.js → chunk-IQZSKWE5.js} +3 -3
  60. package/dist/{chunk-3GUEYQGL.js → chunk-ITDF3MWD.js} +3 -3
  61. package/dist/{chunk-JXGSTBW6.js → chunk-IU7XKZA6.js} +2 -2
  62. package/dist/{chunk-RITTLIDJ.js → chunk-IZFJZCF6.js} +4 -4
  63. package/dist/{chunk-DRQSB72S.js → chunk-JBAFAKGX.js} +7 -7
  64. package/dist/{chunk-VSAKEMDD.js → chunk-JCC3B2GS.js} +8 -2
  65. package/dist/{chunk-66JTY4AN.js → chunk-JRN2CRXJ.js} +1 -1
  66. package/dist/{chunk-2FDQEQID.js → chunk-K2SFH3GJ.js} +2 -2
  67. package/dist/{chunk-NM5V5EKY.js → chunk-K2WXMXI2.js} +1 -1
  68. package/dist/{chunk-XKCRKD2B.js → chunk-KDWEOT54.js} +24 -12
  69. package/dist/{chunk-PVWIBKV2.js → chunk-KQAPFIYF.js} +2 -2
  70. package/dist/{chunk-4SACN2C5.js → chunk-LGUFJ7Y2.js} +1 -1
  71. package/dist/{chunk-AYUSD4Z6.js → chunk-LRHPBWOY.js} +5 -5
  72. package/dist/{chunk-DLJJOCIT.js → chunk-M4ZUIW3J.js} +3 -3
  73. package/dist/{chunk-CIHHTS5B.js → chunk-MAYTYF5S.js} +3 -3
  74. package/dist/{chunk-5ZUZZDW5.js → chunk-MVUNMJKO.js} +46 -52
  75. package/dist/{chunk-KBHT5XEY.js → chunk-MYHR3PMH.js} +194 -35
  76. package/dist/{chunk-NBAAIRFP.js → chunk-NI4L6HEU.js} +4 -1
  77. package/dist/{chunk-A2A2I4Z4.js → chunk-O2HNVNKO.js} +2 -2
  78. package/dist/{chunk-2XMTZ5JR.js → chunk-OAZ6BIIB.js} +3 -3
  79. package/dist/{chunk-IZHGT5HD.js → chunk-OO4GUE4E.js} +3 -3
  80. package/dist/{chunk-KSZB7TIY.js → chunk-OYGJZA24.js} +8 -8
  81. package/dist/{chunk-H6BT45SN.js → chunk-P2GNNEMN.js} +1 -1
  82. package/dist/{chunk-5HAYT43L.js → chunk-P3PSLC2K.js} +22 -6
  83. package/dist/{chunk-HHVIE45A.js → chunk-P6LKX3IQ.js} +4 -4
  84. package/dist/{chunk-NMS5XSLX.js → chunk-PGD6CNWO.js} +1 -1
  85. package/dist/{chunk-NVZ7R4EK.js → chunk-PWZEJNO6.js} +3 -3
  86. package/dist/{chunk-NPDVWFAQ.js → chunk-QEU6VM4O.js} +1 -1
  87. package/dist/{chunk-UIEKW4SG.js → chunk-R5L5E3TC.js} +0 -1
  88. package/dist/{chunk-2WQ3YZMN.js → chunk-RGFVHYDP.js} +2 -2
  89. package/dist/{chunk-YQMIKX54.js → chunk-RIK6WUMO.js} +62 -29
  90. package/dist/{chunk-BH2SF4TT.js → chunk-RTRORHSP.js} +1 -1
  91. package/dist/{chunk-4SP6OUO7.js → chunk-RVOSA4RR.js} +845 -193
  92. package/dist/{chunk-LKZCUFOW.js → chunk-SCYVGPLI.js} +2 -2
  93. package/dist/{chunk-XIUGSUE4.js → chunk-SIABEREK.js} +6 -2
  94. package/dist/{chunk-P7TRFL4P.js → chunk-SQBCNEJB.js} +4 -1
  95. package/dist/{chunk-3ZP3QC47.js → chunk-THTYCJGF.js} +2 -2
  96. package/dist/{chunk-4EX4OKGZ.js → chunk-TIPNNOZC.js} +5 -5
  97. package/dist/{chunk-UZ7EZW3B.js → chunk-TO53KK2P.js} +6 -1
  98. package/dist/{chunk-2MS623GW.js → chunk-TPCP2UOI.js} +3 -3
  99. package/dist/{chunk-Y3SIQN4J.js → chunk-TUOZ6AXC.js} +2 -2
  100. package/dist/{chunk-KRPLP5LP.js → chunk-U6N547QA.js} +1 -1
  101. package/dist/{chunk-RESEJSCV.js → chunk-VJ7NLYFE.js} +2 -2
  102. package/dist/{chunk-UXNA2H2V.js → chunk-VLI6AWS3.js} +2 -2
  103. package/dist/{chunk-TDAGJJPZ.js → chunk-VNAPEZX2.js} +1 -1
  104. package/dist/{chunk-EBVVMUAA.js → chunk-VVTCUIPN.js} +1 -1
  105. package/dist/{chunk-FVTYJUXR.js → chunk-W5MMPPGX.js} +2 -2
  106. package/dist/{chunk-BQMHJ6OW.js → chunk-WGNP5ND2.js} +20 -12
  107. package/dist/{chunk-5OTA2PUH.js → chunk-WLGOIMTI.js} +2 -2
  108. package/dist/{chunk-IGJEKO2P.js → chunk-WTPS73RM.js} +4 -4
  109. package/dist/{chunk-R6EGUTIV.js → chunk-YFIUABSF.js} +2 -2
  110. package/dist/{chunk-7PJBJ2DU.js → chunk-YSGOXZBB.js} +1 -1
  111. package/dist/{chunk-ZECJ7Q6C.js → chunk-YVIPJGFG.js} +2 -2
  112. package/dist/{chunk-5KKZXA44.js → chunk-ZBOIYC2G.js} +4 -2
  113. package/dist/{chunk-RBVFNUAL.js → chunk-ZOKD5F7M.js} +2 -2
  114. package/dist/{collapse-BSPH3BFM.js → collapse-6X5S2S3G.js} +2 -1
  115. package/dist/completion-registry.js +6 -37
  116. package/dist/copy-image.d.ts +34 -0
  117. package/dist/copy-image.js +96 -0
  118. package/dist/countdown.js +1 -1
  119. package/dist/dgmo-router-EPBQKQW2.js +100 -0
  120. package/dist/{dimensions-DS6FWLRY.js → dimensions-DBCRBZIU.js} +4 -4
  121. package/dist/editor.js +2 -7
  122. package/dist/{flowchart-parser-NZXASOZG.js → flowchart-parser-SM5LHF2D.js} +4 -4
  123. package/dist/{flowchart-renderer-PTCRIANF.js → flowchart-renderer-PPS2GTTD.js} +10 -10
  124. package/dist/highlight.js +3 -8
  125. package/dist/index.d.ts +42 -6
  126. package/dist/index.js +62 -57
  127. package/dist/{layout-MXHR3P35.js → layout-3J72UULM.js} +3 -3
  128. package/dist/{layout-U3AH6M7J.js → layout-AF4KA5B2.js} +4 -4
  129. package/dist/{layout-IT4ZTV6C.js → layout-FCFUVCRI.js} +7 -7
  130. package/dist/{layout-KV27UW25.js → layout-H2KP5A6M.js} +1 -1
  131. package/dist/{layout-ND26WVX2.js → layout-IXQNVRBE.js} +3 -3
  132. package/dist/{layout-ISSBWBH7.js → layout-KELSNWBD.js} +7 -7
  133. package/dist/{layout-JTIRCKAW.js → layout-LNVIH45F.js} +3 -3
  134. package/dist/{layout-VC3MXRB4.js → layout-MPSH3YWE.js} +7 -7
  135. package/dist/{layout-HFBK5UEG.js → layout-PPIVGJXD.js} +2 -2
  136. package/dist/{layout-RH3N46HP.js → layout-R6G4MEO3.js} +4 -3
  137. package/dist/{layout-search-BBX2BMEF.js → layout-search-C2TYUH4L.js} +5 -5
  138. package/dist/{parser-BT4NI6JY.js → parser-2AXU2MHJ.js} +3 -3
  139. package/dist/{parser-3QIFY5IN.js → parser-4BOP77CD.js} +2 -2
  140. package/dist/{parser-TAYRTCPR.js → parser-4GHAYZKZ.js} +5 -5
  141. package/dist/{parser-LTRQASGB.js → parser-5HQPPVHJ.js} +3 -3
  142. package/dist/{parser-EAQPZX2B.js → parser-5RUD4A3X.js} +3 -3
  143. package/dist/{parser-BJ7RJNUM.js → parser-6WURFLOB.js} +3 -3
  144. package/dist/{parser-R3LPEQIT.js → parser-722KLLAQ.js} +4 -4
  145. package/dist/{parser-KMKVFET2.js → parser-B7SCN7FG.js} +2 -2
  146. package/dist/{parser-TUAEX6ML.js → parser-BNRX35NT.js} +3 -3
  147. package/dist/{parser-NL73FSFI.js → parser-BPYHIG24.js} +3 -3
  148. package/dist/{parser-3LT3ZUUC.js → parser-CRJYLOHA.js} +2 -2
  149. package/dist/{parser-NUU3DVW4.js → parser-DGLKH4NT.js} +2 -2
  150. package/dist/{parser-5UZV32ZI.js → parser-DRUGM3R6.js} +2 -2
  151. package/dist/{parser-KLCSFQ3J.js → parser-DWV2CYBS.js} +3 -3
  152. package/dist/{parser-2IKPQVKX.js → parser-F3JJNIFC.js} +3 -3
  153. package/dist/{parser-EFF22GYO.js → parser-F75WNYMK.js} +3 -3
  154. package/dist/{parser-RTWPFKXG.js → parser-GBQY3WOZ.js} +3 -3
  155. package/dist/{parser-F7NDRPMA.js → parser-GM5B2EPW.js} +3 -3
  156. package/dist/{parser-K2DI26SC.js → parser-H6HT2WFQ.js} +2 -2
  157. package/dist/{parser-PEZ7RN43.js → parser-HM6FEX5K.js} +3 -3
  158. package/dist/{parser-YG625J5H.js → parser-L7SI3PW4.js} +4 -4
  159. package/dist/{parser-GMQJISZ6.js → parser-LUJX7AXO.js} +2 -2
  160. package/dist/{parser-A3AN76RQ.js → parser-MWINQNQW.js} +3 -3
  161. package/dist/{parser-KJPPUN4D.js → parser-OHBBDCG4.js} +2 -2
  162. package/dist/{parser-4RFY7D52.js → parser-QWTECQEC.js} +5 -5
  163. package/dist/{parser-4TBSWULQ.js → parser-TTGZYLYD.js} +3 -3
  164. package/dist/{parser-6TDWUKM5.js → parser-UHKROC7Z.js} +3 -3
  165. package/dist/{parser-H5OODY5N.js → parser-W6NX3AIV.js} +3 -3
  166. package/dist/{parser-GDLKUBTO.js → parser-WIKXZP4X.js} +2 -2
  167. package/dist/{parser-4Y6PODW6.js → parser-XEJP37GQ.js} +3 -3
  168. package/dist/{parser-RCIEKN7Y.js → parser-Y7QXD2UR.js} +2 -2
  169. package/dist/{parser-7QKQ4P4P.js → parser-ZV756RMP.js} +5 -5
  170. package/dist/{parser-KKF6Y5MM.js → parser-ZWWQZ4XZ.js} +4 -3
  171. package/dist/{redraw-AHW7EUUF.js → redraw-BZ4GI6IC.js} +6 -4
  172. package/dist/{redraw-STZ4WJAI.js → redraw-LEOXS7C6.js} +3 -3
  173. package/dist/{renderer-J3GPDK73.js → renderer-2MCV75JQ.js} +12 -12
  174. package/dist/{renderer-TINHO2IO.js → renderer-2V2XY2V7.js} +4 -4
  175. package/dist/{renderer-PHLCYVSN.js → renderer-5AEDVLAA.js} +8 -7
  176. package/dist/{renderer-W4MUMXJE.js → renderer-5GP7YUS4.js} +3 -3
  177. package/dist/{renderer-FMTLSOCX.js → renderer-66NCRXSC.js} +6 -6
  178. package/dist/{renderer-AM7P4LN7.js → renderer-6HU44IGJ.js} +4 -4
  179. package/dist/{renderer-JJ4QW3SK.js → renderer-7C76HP5W.js} +6 -6
  180. package/dist/{renderer-O6RP52CQ.js → renderer-7RAMBMTH.js} +6 -6
  181. package/dist/{renderer-M5DUMITP.js → renderer-BYLQ37T2.js} +8 -8
  182. package/dist/{renderer-7OGGV327.js → renderer-CVCCW7UT.js} +4 -4
  183. package/dist/{renderer-QTPWRRJ7.js → renderer-D6EH5UQ6.js} +6 -6
  184. package/dist/renderer-E3334XLT.js +84 -0
  185. package/dist/{renderer-IXBOT6DU.js → renderer-F7YGMEGQ.js} +2 -2
  186. package/dist/{renderer-XCLARXCK.js → renderer-GKY55M4Z.js} +5 -5
  187. package/dist/{renderer-KJ3V5BYP.js → renderer-LFZKG2GR.js} +5 -5
  188. package/dist/{renderer-2LYX6NHN.js → renderer-LJPUCG3U.js} +5 -5
  189. package/dist/{renderer-DAZWHNLI.js → renderer-MGF2NNGG.js} +3 -3
  190. package/dist/{renderer-HX6ICPDX.js → renderer-MVBAQP3M.js} +4 -4
  191. package/dist/{renderer-XOWDERU2.js → renderer-MZIWP55B.js} +5 -5
  192. package/dist/{renderer-MWZC7TMD.js → renderer-N6PM5CSG.js} +7 -7
  193. package/dist/{renderer-ISQJ2ELA.js → renderer-N75E3UVY.js} +5 -5
  194. package/dist/{renderer-53B523PM.js → renderer-ONENGXFQ.js} +7 -7
  195. package/dist/{renderer-RUSQJFFC.js → renderer-PEJF6R2I.js} +2 -2
  196. package/dist/{renderer-36446HSH.js → renderer-QZJZIAT3.js} +2 -2
  197. package/dist/{renderer-UTEEJDGB.js → renderer-SYRH3B62.js} +6 -6
  198. package/dist/{renderer-LNP23NSM.js → renderer-TS5NHOQD.js} +6 -6
  199. package/dist/{renderer-J7ZSTJUE.js → renderer-VNJOZPSH.js} +7 -7
  200. package/dist/{renderer-OUDHH5MV.js → renderer-VNUDN6F5.js} +12 -12
  201. package/dist/{renderer-JYHA6R2D.js → renderer-VUXAAGUG.js} +5 -5
  202. package/dist/{renderer-BXD5KVSR.js → renderer-YJVQT7QG.js} +6 -6
  203. package/dist/{renderer-radial-WFUX3Z3C.js → renderer-radial-4R7AKETK.js} +5 -5
  204. package/dist/{state-parser-KPVW5CRI.js → state-parser-EQBBEKHR.js} +5 -5
  205. package/dist/{state-renderer-ZVEI265C.js → state-renderer-SOGZ2CNN.js} +12 -12
  206. package/dist/{themes-DzIH3Hjv.d.ts → themes-CbJL3w8L.d.ts} +1 -1
  207. package/docs/ai-integration.md +5 -6
  208. package/docs/language-reference.md +69 -105
  209. package/gallery/fixtures/whiteboard.dgmo +1 -0
  210. package/package.json +5 -1
  211. package/dist/chunk-6BQSDF77.js +0 -734
  212. package/dist/chunk-NWSPPGIE.js +0 -60
  213. package/dist/chunk-VBMRZCMQ.js +0 -1465
  214. package/dist/chunk-WZBZXZ6T.js +0 -636
  215. package/dist/dgmo-router-E5O7RJSW.js +0 -101
  216. package/dist/layout-D4L44NRG.js +0 -11
  217. package/dist/parser-YHDGKPZI.js +0 -14
  218. package/dist/renderer-4SE7R22T.js +0 -85
  219. package/dist/renderer-WPN2SXGT.js +0 -29
  220. package/gallery/fixtures/sketch.dgmo +0 -22
@@ -0,0 +1,96 @@
1
+ // src/embed/copy-image.ts
2
+ var SVG_NS = "http://www.w3.org/2000/svg";
3
+ var COPY_IMAGE_SCALE = 2;
4
+ function canCopyDiagramImage(view = typeof window === "undefined" ? null : window) {
5
+ return !!view && typeof view.navigator?.clipboard?.write === "function" && typeof view.ClipboardItem !== "undefined";
6
+ }
7
+ function copyDiagramImage(fromButton) {
8
+ const view = fromButton.ownerDocument.defaultView;
9
+ if (!view || !canCopyDiagramImage(view)) return Promise.resolve(false);
10
+ const found = visibleSvg(fromButton);
11
+ if (!found) return Promise.resolve(false);
12
+ try {
13
+ const Item = view.ClipboardItem;
14
+ return view.navigator.clipboard.write([
15
+ new Item({
16
+ "image/png": svgToPngBlob(found.svg, found.background)
17
+ })
18
+ ]).then(
19
+ () => true,
20
+ () => false
21
+ );
22
+ } catch {
23
+ return Promise.resolve(false);
24
+ }
25
+ }
26
+ function visibleSvg(fromButton) {
27
+ const block = fromButton.closest(".dgmo");
28
+ if (!block) return null;
29
+ const view = block.ownerDocument.defaultView ?? window;
30
+ const wrappers = block.querySelectorAll(
31
+ ".dgmo-light, .dgmo-dark, .dgmo-svg"
32
+ );
33
+ for (const w of Array.from(wrappers)) {
34
+ if (view.getComputedStyle(w).display === "none") continue;
35
+ const svg2 = w.querySelector("svg");
36
+ if (svg2) {
37
+ return { svg: svg2, background: w.dataset["dgmoBg"] ?? pageBackground(w) };
38
+ }
39
+ }
40
+ const svg = block.querySelector("svg");
41
+ return svg ? { svg, background: pageBackground(block) } : null;
42
+ }
43
+ function pageBackground(from) {
44
+ const view = from.ownerDocument.defaultView ?? window;
45
+ for (let el = from; el; el = el.parentElement) {
46
+ const bg = view.getComputedStyle(el).backgroundColor;
47
+ if (bg && bg !== "transparent" && !/^rgba\(.*,\s*0\)$/.test(bg)) return bg;
48
+ }
49
+ return void 0;
50
+ }
51
+ function intrinsicSize(svg) {
52
+ const vb = svg.viewBox?.baseVal;
53
+ if (vb && vb.width > 0 && vb.height > 0) {
54
+ return { width: vb.width, height: vb.height };
55
+ }
56
+ const rect = svg.getBoundingClientRect();
57
+ return { width: rect.width, height: rect.height };
58
+ }
59
+ async function svgToPngBlob(svg, background) {
60
+ const { width, height } = intrinsicSize(svg);
61
+ if (!(width > 0 && height > 0)) throw new Error("diagram has no size");
62
+ const clone = svg.cloneNode(true);
63
+ clone.setAttribute("xmlns", SVG_NS);
64
+ clone.setAttribute("width", String(width));
65
+ clone.setAttribute("height", String(height));
66
+ for (const prop of ["width", "height", "max-width", "aspect-ratio"]) {
67
+ clone.style.removeProperty(prop);
68
+ }
69
+ const xml = new XMLSerializer().serializeToString(clone);
70
+ const img = new Image();
71
+ await new Promise((resolve, reject) => {
72
+ img.onload = () => resolve();
73
+ img.onerror = () => reject(new Error("diagram SVG failed to load"));
74
+ img.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(xml)}`;
75
+ });
76
+ const canvas = document.createElement("canvas");
77
+ canvas.width = Math.round(width * COPY_IMAGE_SCALE);
78
+ canvas.height = Math.round(height * COPY_IMAGE_SCALE);
79
+ const ctx = canvas.getContext("2d");
80
+ if (!ctx) throw new Error("no 2d canvas context");
81
+ if (background) {
82
+ ctx.fillStyle = background;
83
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
84
+ }
85
+ ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
86
+ return new Promise((resolve, reject) => {
87
+ canvas.toBlob(
88
+ (blob) => blob ? resolve(blob) : reject(new Error("toBlob failed")),
89
+ "image/png"
90
+ );
91
+ });
92
+ }
93
+ export {
94
+ canCopyDiagramImage,
95
+ copyDiagramImage
96
+ };
package/dist/countdown.js CHANGED
@@ -217,7 +217,7 @@ function redrawIfStale(node, svg, now2, resolvedMs, tz) {
217
217
  }
218
218
  if (!svg.hasAttribute("data-dgmo-countdown-redraw")) return;
219
219
  redrawing.add(svg);
220
- void import("./redraw-AHW7EUUF.js").then((m) => {
220
+ void import("./redraw-BZ4GI6IC.js").then((m) => {
221
221
  m.redrawCountdown(svg, resolvedMs);
222
222
  redrawing.delete(svg);
223
223
  }).catch(() => {
@@ -0,0 +1,100 @@
1
+ import {
2
+ CHART_TYPE_DESCRIPTIONS,
3
+ chartTypeParsers,
4
+ getAllChartTypes,
5
+ getRenderCategory,
6
+ isExtendedChartType,
7
+ knownChartTypeIds,
8
+ parseDgmo
9
+ } from "./chunk-MVUNMJKO.js";
10
+ import "./chunk-P2GNNEMN.js";
11
+ import "./chunk-K2WXMXI2.js";
12
+ import "./chunk-EPB3UEMD.js";
13
+ import "./chunk-EOYPX6SF.js";
14
+ import "./chunk-FBK32S4D.js";
15
+ import "./chunk-5ARANBIE.js";
16
+ import "./chunk-P3PSLC2K.js";
17
+ import "./chunk-SQBCNEJB.js";
18
+ import "./chunk-B7BSRVNC.js";
19
+ import "./chunk-SIABEREK.js";
20
+ import "./chunk-35A3J4Z5.js";
21
+ import "./chunk-VVTCUIPN.js";
22
+ import "./chunk-B2YVZ3QU.js";
23
+ import "./chunk-SCYVGPLI.js";
24
+ import "./chunk-VLI6AWS3.js";
25
+ import "./chunk-GM2SLMQW.js";
26
+ import "./chunk-YSGOXZBB.js";
27
+ import "./chunk-ITDF3MWD.js";
28
+ import "./chunk-AUXUNV73.js";
29
+ import "./chunk-YFIUABSF.js";
30
+ import "./chunk-QQJUTGQH.js";
31
+ import "./chunk-2CW5ZTNH.js";
32
+ import "./chunk-KQAPFIYF.js";
33
+ import "./chunk-EZ6BI5LL.js";
34
+ import "./chunk-A2RUBBVT.js";
35
+ import "./chunk-I2I2FKAK.js";
36
+ import "./chunk-URRAWU5D.js";
37
+ import "./chunk-3DPOIW3W.js";
38
+ import "./chunk-QEU6VM4O.js";
39
+ import "./chunk-RGFVHYDP.js";
40
+ import "./chunk-BD4O4D2A.js";
41
+ import "./chunk-DWMQ24JR.js";
42
+ import "./chunk-XSVWUOUZ.js";
43
+ import "./chunk-IU7XKZA6.js";
44
+ import "./chunk-H7AXCRO7.js";
45
+ import "./chunk-OAZ6BIIB.js";
46
+ import {
47
+ looksLikeC4,
48
+ looksLikeGantt,
49
+ parseDgmoChartType
50
+ } from "./chunk-I3ZRIMR7.js";
51
+ import "./chunk-U6N547QA.js";
52
+ import "./chunk-DPNSDCR3.js";
53
+ import "./chunk-JCC3B2GS.js";
54
+ import "./chunk-WLGOIMTI.js";
55
+ import "./chunk-YVIPJGFG.js";
56
+ import "./chunk-34JOHSVE.js";
57
+ import "./chunk-2SKMEL7V.js";
58
+ import "./chunk-H7RQG4PH.js";
59
+ import "./chunk-TIVMAITN.js";
60
+ import "./chunk-TPCP2UOI.js";
61
+ import "./chunk-NXMESY4J.js";
62
+ import "./chunk-EQW6HOP4.js";
63
+ import "./chunk-MKSTL6DR.js";
64
+ import "./chunk-CYTFO2LF.js";
65
+ import "./chunk-MAYTYF5S.js";
66
+ import "./chunk-C3Z4DX3V.js";
67
+ import "./chunk-IYULMRBE.js";
68
+ import "./chunk-M4ZUIW3J.js";
69
+ import "./chunk-GXCDD6NG.js";
70
+ import "./chunk-FMAVHTYB.js";
71
+ import "./chunk-N7VMGZCU.js";
72
+ import "./chunk-HH3DHNQA.js";
73
+ import "./chunk-NOTA6TEI.js";
74
+ import "./chunk-67N26CER.js";
75
+ import "./chunk-7WEYXYLC.js";
76
+ import "./chunk-QKPOIJBT.js";
77
+ import "./chunk-ICLB27PZ.js";
78
+ import "./chunk-D7DGLJ7N.js";
79
+ import "./chunk-4WW3SGMH.js";
80
+ import "./chunk-3UR4F7FE.js";
81
+ import "./chunk-LGUFJ7Y2.js";
82
+ import "./chunk-FUYEXLAN.js";
83
+ import "./chunk-Z6QFHH4D.js";
84
+ import "./chunk-KAO7JL4I.js";
85
+ import "./chunk-6GXLAKUH.js";
86
+ import "./chunk-3J7O3CU6.js";
87
+ import "./chunk-BYU54C3S.js";
88
+ import "./chunk-YLJ4XMA6.js";
89
+ export {
90
+ CHART_TYPE_DESCRIPTIONS,
91
+ chartTypeParsers,
92
+ getAllChartTypes,
93
+ getRenderCategory,
94
+ isExtendedChartType,
95
+ knownChartTypeIds,
96
+ looksLikeC4,
97
+ looksLikeGantt,
98
+ parseDgmo,
99
+ parseDgmoChartType
100
+ };
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  mapContentAspect,
3
3
  mapExportDimensions
4
- } from "./chunk-2I4UQG7W.js";
5
- import "./chunk-AM42TLSZ.js";
4
+ } from "./chunk-FHX373L5.js";
5
+ import "./chunk-EMGNCG5C.js";
6
6
  import "./chunk-AXLF3KRE.js";
7
7
  import "./chunk-KMU65FYM.js";
8
8
  import "./chunk-VLC6WNRD.js";
9
9
  import "./chunk-JILEYZ2V.js";
10
- import "./chunk-4SACN2C5.js";
11
- import "./chunk-TIIZIAGS.js";
10
+ import "./chunk-LGUFJ7Y2.js";
11
+ import "./chunk-FUYEXLAN.js";
12
12
  import "./chunk-UOCWYLYT.js";
13
13
  import "./chunk-KAO7JL4I.js";
14
14
  import "./chunk-6GXLAKUH.js";
package/dist/editor.js CHANGED
@@ -338,7 +338,7 @@ var DIRECTIVES_REGISTRY = [
338
338
  { token: "mobile", category: "control" },
339
339
  // Whiteboard element leaders (§39). `image` is shared with wireframe above
340
340
  // and `text` stays an ER modifier; `database` / `queue` are left plain
341
- // because sketch and sequence use them as values, not line leaders.
341
+ // because sequence uses them as values, not line leaders.
342
342
  { token: "rectangle", category: "control" },
343
343
  { token: "ellipse", category: "control" },
344
344
  { token: "arrow", category: "control" },
@@ -553,14 +553,9 @@ var chartTypesData = [
553
553
  id: "block",
554
554
  description: "Block diagram: an author-controlled grid of rectangular blocks with nested, collapsible containers \u2014 system/hardware/architecture layouts where the 2-D arrangement is the meaning"
555
555
  },
556
- {
557
- id: "sketch",
558
- description: "GUI-first constrained canvas: uniformly-sized shapes placed freely on a snap grid, arrows between them, meaning through tags \u2014 the markup is generated by the canvas editor",
559
- beta: true
560
- },
561
556
  {
562
557
  id: "whiteboard",
563
- description: "Free-form whiteboard on an infinite canvas: rectangles, ellipses, databases, queues, free arrows, text, pasted images and freehand ink at pixel positions \u2014 drawn in the canvas; AI writes shapes, arrows and text, never ink",
558
+ description: "Free-form whiteboard on an infinite canvas: rectangles, ellipses, databases, queues, files, free arrows, text, pasted images and freehand ink at pixel positions \u2014 drawn in the canvas; AI writes shapes, arrows and text, never ink",
564
559
  beta: true
565
560
  },
566
561
  {
@@ -2,17 +2,17 @@ import {
2
2
  extractSymbols,
3
3
  looksLikeFlowchart,
4
4
  parseFlowchart
5
- } from "./chunk-DNM3XZCK.js";
5
+ } from "./chunk-H7RQG4PH.js";
6
6
  import "./chunk-TIVMAITN.js";
7
7
  import "./chunk-NXMESY4J.js";
8
8
  import "./chunk-N7VMGZCU.js";
9
- import "./chunk-7SXV7NUS.js";
9
+ import "./chunk-HH3DHNQA.js";
10
10
  import "./chunk-NOTA6TEI.js";
11
- import "./chunk-VDY2GR6U.js";
11
+ import "./chunk-67N26CER.js";
12
12
  import "./chunk-7WEYXYLC.js";
13
13
  import "./chunk-QKPOIJBT.js";
14
14
  import "./chunk-ICLB27PZ.js";
15
- import "./chunk-TIIZIAGS.js";
15
+ import "./chunk-FUYEXLAN.js";
16
16
  import "./chunk-KAO7JL4I.js";
17
17
  import "./chunk-6GXLAKUH.js";
18
18
  import "./chunk-3J7O3CU6.js";
@@ -1,33 +1,33 @@
1
1
  import {
2
2
  renderFlowchart,
3
3
  renderFlowchartForExport
4
- } from "./chunk-AYUSD4Z6.js";
4
+ } from "./chunk-LRHPBWOY.js";
5
5
  import "./chunk-26EVL454.js";
6
- import "./chunk-JT2BG7LM.js";
7
- import "./chunk-TDAGJJPZ.js";
6
+ import "./chunk-5GU6C5WB.js";
7
+ import "./chunk-VNAPEZX2.js";
8
8
  import "./chunk-XBJJP2HN.js";
9
- import "./chunk-6JCTW74W.js";
9
+ import "./chunk-5G4DOOX2.js";
10
10
  import "./chunk-VGAMBOOC.js";
11
- import "./chunk-3ZP3QC47.js";
11
+ import "./chunk-THTYCJGF.js";
12
12
  import "./chunk-WTTIODDV.js";
13
13
  import "./chunk-IN7XI6NO.js";
14
14
  import "./chunk-EPDBWATV.js";
15
15
  import "./chunk-CYRB2JTN.js";
16
16
  import "./chunk-24YPR5EH.js";
17
- import "./chunk-UIEKW4SG.js";
17
+ import "./chunk-R5L5E3TC.js";
18
18
  import "./chunk-VLC6WNRD.js";
19
19
  import "./chunk-XCKNFFKM.js";
20
- import "./chunk-DNM3XZCK.js";
20
+ import "./chunk-H7RQG4PH.js";
21
21
  import "./chunk-TIVMAITN.js";
22
22
  import "./chunk-NXMESY4J.js";
23
23
  import "./chunk-N7VMGZCU.js";
24
- import "./chunk-7SXV7NUS.js";
24
+ import "./chunk-HH3DHNQA.js";
25
25
  import "./chunk-NOTA6TEI.js";
26
- import "./chunk-VDY2GR6U.js";
26
+ import "./chunk-67N26CER.js";
27
27
  import "./chunk-7WEYXYLC.js";
28
28
  import "./chunk-QKPOIJBT.js";
29
29
  import "./chunk-ICLB27PZ.js";
30
- import "./chunk-TIIZIAGS.js";
30
+ import "./chunk-FUYEXLAN.js";
31
31
  import "./chunk-UOCWYLYT.js";
32
32
  import "./chunk-KAO7JL4I.js";
33
33
  import "./chunk-6GXLAKUH.js";
package/dist/highlight.js CHANGED
@@ -335,7 +335,7 @@ var DIRECTIVES_REGISTRY = [
335
335
  { token: "mobile", category: "control" },
336
336
  // Whiteboard element leaders (§39). `image` is shared with wireframe above
337
337
  // and `text` stays an ER modifier; `database` / `queue` are left plain
338
- // because sketch and sequence use them as values, not line leaders.
338
+ // because sequence uses them as values, not line leaders.
339
339
  { token: "rectangle", category: "control" },
340
340
  { token: "ellipse", category: "control" },
341
341
  { token: "arrow", category: "control" },
@@ -550,14 +550,9 @@ var chartTypesData = [
550
550
  id: "block",
551
551
  description: "Block diagram: an author-controlled grid of rectangular blocks with nested, collapsible containers \u2014 system/hardware/architecture layouts where the 2-D arrangement is the meaning"
552
552
  },
553
- {
554
- id: "sketch",
555
- description: "GUI-first constrained canvas: uniformly-sized shapes placed freely on a snap grid, arrows between them, meaning through tags \u2014 the markup is generated by the canvas editor",
556
- beta: true
557
- },
558
553
  {
559
554
  id: "whiteboard",
560
- description: "Free-form whiteboard on an infinite canvas: rectangles, ellipses, databases, queues, free arrows, text, pasted images and freehand ink at pixel positions \u2014 drawn in the canvas; AI writes shapes, arrows and text, never ink",
555
+ description: "Free-form whiteboard on an infinite canvas: rectangles, ellipses, databases, queues, files, free arrows, text, pasted images and freehand ink at pixel positions \u2014 drawn in the canvas; AI writes shapes, arrows and text, never ink",
561
556
  beta: true
562
557
  },
563
558
  {
@@ -950,7 +945,7 @@ var ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
950
945
  "value",
951
946
  "label",
952
947
  "style",
953
- // Sketch (§31): shape morph + half-slot coordinate keys
948
+ // Shape morph + coordinate keys (`at:` is whiteboard's position)
954
949
  "shape",
955
950
  "at",
956
951
  // Treemap + boxes-and-lines + map colour-by-value channel key
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { P as PaletteConfig, C as CompactViewState } from './chart-types-Cppnp31G.js';
2
- export { a as ChartTypeId, b as ChartTypeMeta, c as PaletteColors, d as chartTypes, g as getPalette, r as resolvePaletteOrFallback } from './chart-types-Cppnp31G.js';
3
- import { T as Theme } from './themes-DzIH3Hjv.js';
4
- export { E as EncodeInkOptions, I as INK_DEFAULT_TOLERANCE, a as INK_PRESSURE_LEVELS, b as InkDecodeResult, c as InkPoint, M as MapCompletionOptions, d as MapLocationMatch, e as MapPlaceCompletion, f as MapRegionCompletion, g as completeMapPlaces, h as completeMapRegions, i as decodeInk, j as encodeInk, p as palettes, s as searchMapLocations, t as themes, k as validate } from './themes-DzIH3Hjv.js';
1
+ import { P as PaletteConfig, C as CompactViewState } from './chart-types-CBVYiLqy.js';
2
+ export { a as ChartTypeId, b as ChartTypeMeta, c as PaletteColors, d as chartTypes, g as getPalette, r as resolvePaletteOrFallback } from './chart-types-CBVYiLqy.js';
3
+ import { T as Theme } from './themes-CbJL3w8L.js';
4
+ export { E as EncodeInkOptions, I as INK_DEFAULT_TOLERANCE, a as INK_PRESSURE_LEVELS, b as InkDecodeResult, c as InkPoint, M as MapCompletionOptions, d as MapLocationMatch, e as MapPlaceCompletion, f as MapRegionCompletion, g as completeMapPlaces, h as completeMapRegions, i as decodeInk, j as encodeInk, p as palettes, s as searchMapLocations, t as themes, k as validate } from './themes-CbJL3w8L.js';
5
5
  import { M as MapDataSource } from './export-context-Ceh3wr0E.js';
6
6
  export { G as Gazetteer, a as GazetteerEntry, b as MapData, R as RegionName, c as RegionNames } from './export-context-Ceh3wr0E.js';
7
7
  import { a as DiagnosticSpec, D as DgmoError } from './tag-groups-DydewK3D.js';
@@ -64,6 +64,42 @@ declare function getEmbedSvgViewBox(svg: string): {
64
64
  height: number;
65
65
  } | null;
66
66
 
67
+ /** Air left around the measured content, in px — a little more than the embed's 16. */
68
+ declare const EXPORT_FIT_PAD = 24;
69
+ interface Box {
70
+ x0: number;
71
+ y0: number;
72
+ x1: number;
73
+ y1: number;
74
+ }
75
+ interface ContentMeasurement {
76
+ /** Union of everything drawn, in root user space; null when nothing was. */
77
+ box: Box | null;
78
+ /** False when some drawn element could not be placed — do not trim. */
79
+ complete: boolean;
80
+ }
81
+ /**
82
+ * Measure what an SVG draws, in root user space, composing every transform.
83
+ * `complete` is false when something drawn could not be placed.
84
+ */
85
+ declare function measureSvgContent(svg: string): ContentMeasurement;
86
+ interface FitSvgToContentOptions {
87
+ /** The width the caller asked the renderer for, if any. */
88
+ width?: number;
89
+ /** The height the caller asked the renderer for, if any. */
90
+ height?: number;
91
+ }
92
+ /**
93
+ * Shrink an exported SVG's frame to what it draws plus EXPORT_FIT_PAD, under
94
+ * the trust rule at the top of this file. Returns the input unchanged when
95
+ * the measurement is incomplete or the trim would be too small to matter.
96
+ *
97
+ * A caller that asked for a size gets it: when the renderer drew onto the
98
+ * requested canvas, the fitted frame is scaled back up to that width (and/or
99
+ * height, whichever binds first) — fit first, then the requested scale.
100
+ */
101
+ declare function fitSvgToContent(svg: string, opts?: FitSvgToContentOptions): string;
102
+
67
103
  interface MountD3Opts {
68
104
  theme?: 'light' | 'dark' | 'transparent';
69
105
  palette?: string;
@@ -295,5 +331,5 @@ interface DecodedDiagramUrl {
295
331
  */
296
332
  declare function decodeDiagramUrl(url: string): DecodedDiagramUrl | null;
297
333
 
298
- export { CompactViewState, D3_DATA_CHART_TYPES, DgmoError, DiagnosticSpec, MapDataSource, PaletteConfig, Theme, attachDataChartInteractions, decodeDiagramUrl, defaultEmbedBackground, encodeDiagramUrl, getDiagnosticSpec, getEmbedSvgViewBox, listDiagnosticCodes, mountD3DataChart, normalizeSvgForEmbed, render, sanitizeSvgInPlace, supportsD3DataChart };
299
- export type { DataChartInteractionOpts, DecodedDiagramUrl, EncodeDiagramUrlOptions, MountD3Opts, MountedD3Chart, NormalizeSvgForEmbedOptions, RenderOptions, RenderResult };
334
+ export { CompactViewState, D3_DATA_CHART_TYPES, DgmoError, DiagnosticSpec, EXPORT_FIT_PAD, MapDataSource, PaletteConfig, Theme, attachDataChartInteractions, decodeDiagramUrl, defaultEmbedBackground, encodeDiagramUrl, fitSvgToContent, getDiagnosticSpec, getEmbedSvgViewBox, listDiagnosticCodes, measureSvgContent, mountD3DataChart, normalizeSvgForEmbed, render, sanitizeSvgInPlace, supportsD3DataChart };
335
+ export type { ContentMeasurement, DataChartInteractionOpts, DecodedDiagramUrl, EncodeDiagramUrlOptions, FitSvgToContentOptions, MountD3Opts, MountedD3Chart, NormalizeSvgForEmbedOptions, RenderOptions, RenderResult };
package/dist/index.js CHANGED
@@ -1,8 +1,3 @@
1
- import {
2
- defaultEmbedBackground,
3
- getEmbedSvgViewBox,
4
- normalizeSvgForEmbed
5
- } from "./chunk-D3K4U3ZM.js";
6
1
  import {
7
2
  completeMapPlaces,
8
3
  completeMapRegions,
@@ -10,94 +5,101 @@ import {
10
5
  themes
11
6
  } from "./chunk-SQAG3UXH.js";
12
7
  import {
8
+ EXPORT_FIT_PAD,
9
+ fitSvgToContent,
10
+ measureSvgContent,
13
11
  render
14
- } from "./chunk-4SP6OUO7.js";
12
+ } from "./chunk-RVOSA4RR.js";
15
13
  import {
16
14
  D3_DATA_CHART_TYPES,
17
15
  renderDataChartD3,
18
16
  supportsD3DataChart
19
- } from "./chunk-YQMIKX54.js";
17
+ } from "./chunk-RIK6WUMO.js";
18
+ import {
19
+ defaultEmbedBackground,
20
+ getEmbedSvgViewBox,
21
+ normalizeSvgForEmbed
22
+ } from "./chunk-6K2W3FH7.js";
20
23
  import {
21
24
  renderErrorCard
22
- } from "./chunk-2FDQEQID.js";
25
+ } from "./chunk-K2SFH3GJ.js";
23
26
  import {
24
27
  getDiagnosticSpec,
25
28
  listDiagnosticCodes,
26
29
  parseDgmo
27
- } from "./chunk-5ZUZZDW5.js";
28
- import "./chunk-H6BT45SN.js";
29
- import "./chunk-3PP746YM.js";
30
- import "./chunk-NM5V5EKY.js";
31
- import "./chunk-3KVUFHUJ.js";
30
+ } from "./chunk-MVUNMJKO.js";
31
+ import "./chunk-P2GNNEMN.js";
32
+ import "./chunk-K2WXMXI2.js";
33
+ import "./chunk-EPB3UEMD.js";
32
34
  import "./chunk-EOYPX6SF.js";
33
35
  import "./chunk-KMU65FYM.js";
34
- import "./chunk-2ZW4NBYX.js";
35
- import "./chunk-AULZD45V.js";
36
- import "./chunk-WZBZXZ6T.js";
37
- import "./chunk-NWSPPGIE.js";
36
+ import "./chunk-FBK32S4D.js";
37
+ import "./chunk-5ARANBIE.js";
38
38
  import {
39
39
  INK_DEFAULT_TOLERANCE,
40
40
  INK_PRESSURE_LEVELS,
41
41
  decodeInk,
42
42
  encodeInk
43
- } from "./chunk-5HAYT43L.js";
44
- import "./chunk-P7TRFL4P.js";
45
- import "./chunk-J7Q4AB23.js";
46
- import "./chunk-XIUGSUE4.js";
47
- import "./chunk-EBVVMUAA.js";
48
- import "./chunk-LKZCUFOW.js";
49
- import "./chunk-UXNA2H2V.js";
50
- import "./chunk-PGSGJLUR.js";
51
- import "./chunk-7PJBJ2DU.js";
43
+ } from "./chunk-P3PSLC2K.js";
44
+ import "./chunk-SQBCNEJB.js";
45
+ import "./chunk-B7BSRVNC.js";
46
+ import "./chunk-SIABEREK.js";
47
+ import "./chunk-35A3J4Z5.js";
48
+ import "./chunk-VVTCUIPN.js";
49
+ import "./chunk-B2YVZ3QU.js";
50
+ import "./chunk-SCYVGPLI.js";
51
+ import "./chunk-VLI6AWS3.js";
52
+ import "./chunk-GM2SLMQW.js";
53
+ import "./chunk-YSGOXZBB.js";
52
54
  import "./chunk-EPDBWATV.js";
53
- import "./chunk-3GUEYQGL.js";
54
- import "./chunk-TASRGDYP.js";
55
+ import "./chunk-ITDF3MWD.js";
56
+ import "./chunk-GEHK4UD5.js";
55
57
  import "./chunk-6XLMTAEX.js";
56
58
  import "./chunk-NERQSSYD.js";
57
- import "./chunk-BQO24BDM.js";
58
- import "./chunk-R6EGUTIV.js";
59
+ import "./chunk-AUXUNV73.js";
60
+ import "./chunk-YFIUABSF.js";
59
61
  import "./chunk-QQJUTGQH.js";
60
62
  import "./chunk-2CW5ZTNH.js";
61
- import "./chunk-PVWIBKV2.js";
63
+ import "./chunk-KQAPFIYF.js";
62
64
  import "./chunk-TOHTKLKE.js";
63
- import "./chunk-NXU4N5WT.js";
65
+ import "./chunk-EZ6BI5LL.js";
64
66
  import "./chunk-A2RUBBVT.js";
65
- import "./chunk-KBEWVCK3.js";
67
+ import "./chunk-I2I2FKAK.js";
66
68
  import "./chunk-URRAWU5D.js";
67
69
  import "./chunk-3DPOIW3W.js";
68
- import "./chunk-NPDVWFAQ.js";
69
- import "./chunk-2WQ3YZMN.js";
70
+ import "./chunk-QEU6VM4O.js";
71
+ import "./chunk-RGFVHYDP.js";
70
72
  import "./chunk-ZI6WC24V.js";
71
73
  import "./chunk-CYRB2JTN.js";
72
- import "./chunk-IXHWS2HI.js";
73
- import "./chunk-BRGRIZQB.js";
74
+ import "./chunk-BD4O4D2A.js";
75
+ import "./chunk-DWMQ24JR.js";
74
76
  import "./chunk-XSVWUOUZ.js";
75
- import "./chunk-JXGSTBW6.js";
77
+ import "./chunk-IU7XKZA6.js";
76
78
  import "./chunk-H7AXCRO7.js";
77
- import "./chunk-2XMTZ5JR.js";
79
+ import "./chunk-OAZ6BIIB.js";
78
80
  import "./chunk-24YPR5EH.js";
79
- import "./chunk-UIEKW4SG.js";
81
+ import "./chunk-R5L5E3TC.js";
80
82
  import "./chunk-VLC6WNRD.js";
81
83
  import {
82
84
  GRID_DASH
83
85
  } from "./chunk-XCKNFFKM.js";
84
- import "./chunk-NMS5XSLX.js";
86
+ import "./chunk-PGD6CNWO.js";
85
87
  import "./chunk-JILEYZ2V.js";
86
88
  import {
87
89
  decodeDiagramUrl,
88
90
  encodeDiagramUrl
89
91
  } from "./chunk-6OSGENN5.js";
90
- import "./chunk-2HSHWPTO.js";
91
- import "./chunk-KRPLP5LP.js";
92
- import "./chunk-KBDMEOLI.js";
93
- import "./chunk-VSAKEMDD.js";
94
- import "./chunk-5OTA2PUH.js";
95
- import "./chunk-ZECJ7Q6C.js";
96
- import "./chunk-CDM6XMOT.js";
92
+ import "./chunk-I3ZRIMR7.js";
93
+ import "./chunk-U6N547QA.js";
94
+ import "./chunk-DPNSDCR3.js";
95
+ import "./chunk-JCC3B2GS.js";
96
+ import "./chunk-WLGOIMTI.js";
97
+ import "./chunk-YVIPJGFG.js";
98
+ import "./chunk-34JOHSVE.js";
97
99
  import "./chunk-2SKMEL7V.js";
98
- import "./chunk-DNM3XZCK.js";
100
+ import "./chunk-H7RQG4PH.js";
99
101
  import "./chunk-TIVMAITN.js";
100
- import "./chunk-2MS623GW.js";
102
+ import "./chunk-TPCP2UOI.js";
101
103
  import "./chunk-NXMESY4J.js";
102
104
  import "./chunk-EQW6HOP4.js";
103
105
  import "./chunk-MKSTL6DR.js";
@@ -105,10 +107,10 @@ import {
105
107
  choosePalette,
106
108
  extractPaletteDirective
107
109
  } from "./chunk-CYTFO2LF.js";
108
- import "./chunk-CIHHTS5B.js";
110
+ import "./chunk-MAYTYF5S.js";
109
111
  import "./chunk-C3Z4DX3V.js";
110
112
  import "./chunk-IYULMRBE.js";
111
- import "./chunk-DLJJOCIT.js";
113
+ import "./chunk-M4ZUIW3J.js";
112
114
  import {
113
115
  palettes
114
116
  } from "./chunk-GXCDD6NG.js";
@@ -117,21 +119,21 @@ import {
117
119
  resolvePaletteOrFallback
118
120
  } from "./chunk-FMAVHTYB.js";
119
121
  import "./chunk-N7VMGZCU.js";
120
- import "./chunk-7SXV7NUS.js";
122
+ import "./chunk-HH3DHNQA.js";
121
123
  import "./chunk-NOTA6TEI.js";
122
- import "./chunk-VDY2GR6U.js";
124
+ import "./chunk-67N26CER.js";
123
125
  import "./chunk-7WEYXYLC.js";
124
126
  import {
125
127
  safeHref
126
128
  } from "./chunk-QKPOIJBT.js";
127
129
  import "./chunk-ICLB27PZ.js";
128
- import "./chunk-GI5R5B3S.js";
130
+ import "./chunk-D7DGLJ7N.js";
129
131
  import "./chunk-4WW3SGMH.js";
130
132
  import "./chunk-3UR4F7FE.js";
131
- import "./chunk-4SACN2C5.js";
133
+ import "./chunk-LGUFJ7Y2.js";
132
134
  import {
133
135
  chartTypes
134
- } from "./chunk-TIIZIAGS.js";
136
+ } from "./chunk-FUYEXLAN.js";
135
137
  import "./chunk-Z6QFHH4D.js";
136
138
  import "./chunk-UOCWYLYT.js";
137
139
  import "./chunk-KAO7JL4I.js";
@@ -829,6 +831,7 @@ function decodeDiagramUrl2(url) {
829
831
  }
830
832
  export {
831
833
  D3_DATA_CHART_TYPES,
834
+ EXPORT_FIT_PAD,
832
835
  INK_DEFAULT_TOLERANCE,
833
836
  INK_PRESSURE_LEVELS,
834
837
  attachDataChartInteractions,
@@ -841,11 +844,13 @@ export {
841
844
  emit,
842
845
  encodeDiagramUrl2 as encodeDiagramUrl,
843
846
  encodeInk,
847
+ fitSvgToContent,
844
848
  formatDgmoError,
845
849
  getDiagnosticSpec,
846
850
  getEmbedSvgViewBox,
847
851
  getPalette,
848
852
  listDiagnosticCodes,
853
+ measureSvgContent,
849
854
  mountD3DataChart,
850
855
  normalizeSvgForEmbed,
851
856
  palettes,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  layoutOrg
3
- } from "./chunk-A2A2I4Z4.js";
3
+ } from "./chunk-O2HNVNKO.js";
4
4
  import "./chunk-XCKNFFKM.js";
5
- import "./chunk-4SACN2C5.js";
6
- import "./chunk-TIIZIAGS.js";
5
+ import "./chunk-LGUFJ7Y2.js";
6
+ import "./chunk-FUYEXLAN.js";
7
7
  import "./chunk-UOCWYLYT.js";
8
8
  import "./chunk-KAO7JL4I.js";
9
9
  import "./chunk-6GXLAKUH.js";