@jackuait/blok 0.11.1 → 0.12.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 (1220) hide show
  1. package/LICENSE +13 -1
  2. package/NOTICE +10 -0
  3. package/README.md +7 -1
  4. package/codemod/migrate-editorjs-to-blok.js +51 -1
  5. package/codemod/test.js +95 -0
  6. package/dist/blok.cjs +1 -1
  7. package/dist/blok.iife.js +31 -30
  8. package/dist/blok.mjs +2 -2
  9. package/dist/chunks/_basePickBy-CLCgPLk_.cjs +1 -0
  10. package/dist/chunks/_basePickBy-cIM18c5w.mjs +166 -0
  11. package/dist/chunks/_baseUniq-C3lUNj_l.mjs +682 -0
  12. package/dist/chunks/_baseUniq-Cm3XBb1f.cjs +1 -0
  13. package/dist/chunks/arc-BSr2jl4o.mjs +80 -0
  14. package/dist/chunks/arc-C-l7V0ww.cjs +1 -0
  15. package/dist/chunks/architecture-YZFGNWBL-C5uKTSqd.mjs +3 -0
  16. package/dist/chunks/architecture-YZFGNWBL-DopZbt9d.cjs +1 -0
  17. package/dist/chunks/architectureDiagram-Q4EWVU46-B3EkmUoA.cjs +36 -0
  18. package/dist/chunks/architectureDiagram-Q4EWVU46-DL5lPOq_.mjs +4066 -0
  19. package/dist/chunks/blockDiagram-DXYQGD6D-ChnytJiO.cjs +132 -0
  20. package/dist/chunks/blockDiagram-DXYQGD6D-DjFfRgP_.mjs +3074 -0
  21. package/dist/chunks/blok-Cxcy7G7v.mjs +13801 -0
  22. package/dist/chunks/blok-qY4LDF7A.cjs +17 -0
  23. package/dist/chunks/c4Diagram-AHTNJAMY-D9cwQ5dP.cjs +10 -0
  24. package/dist/chunks/c4Diagram-AHTNJAMY-DDydXzN1.mjs +2956 -0
  25. package/dist/chunks/channel-1VaVTmSI.mjs +5 -0
  26. package/dist/chunks/channel-DTKWBt5v.cjs +1 -0
  27. package/dist/chunks/chunk-2KRD3SAO-Dcv71dz8.cjs +1 -0
  28. package/dist/chunks/chunk-2KRD3SAO-DslQvmzC.mjs +20 -0
  29. package/dist/chunks/chunk-336JU56O-CUNPhOYK.mjs +49 -0
  30. package/dist/chunks/chunk-336JU56O-DsJvvQpB.cjs +1 -0
  31. package/dist/chunks/chunk-426QAEUC-Ciny2-Rz.mjs +13 -0
  32. package/dist/chunks/chunk-426QAEUC-DEYJ0OiL.cjs +1 -0
  33. package/dist/chunks/chunk-4BX2VUAB-D1dKBLiS.cjs +1 -0
  34. package/dist/chunks/chunk-4BX2VUAB-ljY9_i7D.mjs +19 -0
  35. package/dist/chunks/chunk-4TB4RGXK-C-eXrWWX.cjs +206 -0
  36. package/dist/chunks/chunk-4TB4RGXK-orLiGd4g.mjs +3250 -0
  37. package/dist/chunks/chunk-55IACEB6-BOy3ofgp.cjs +1 -0
  38. package/dist/chunks/chunk-55IACEB6-BPnDY27B.mjs +8 -0
  39. package/dist/chunks/chunk-5FUZZQ4R-D3UGwLBL.cjs +62 -0
  40. package/dist/chunks/chunk-5FUZZQ4R-D5gG1Dk4.mjs +3786 -0
  41. package/dist/chunks/chunk-5PVQY5BW-BCwqe25T.cjs +2 -0
  42. package/dist/chunks/chunk-5PVQY5BW-DVKx7m4a.mjs +1122 -0
  43. package/dist/chunks/chunk-67CJDMHE-BU_rrdV4.mjs +20 -0
  44. package/dist/chunks/chunk-67CJDMHE-VKwQfp25.cjs +1 -0
  45. package/dist/chunks/chunk-7N4EOEYR-BpM-QbmS.cjs +1 -0
  46. package/dist/chunks/chunk-7N4EOEYR-Cx6N1y9w.mjs +29 -0
  47. package/dist/chunks/chunk-AA7GKIK3-DCAy6uIg.mjs +24 -0
  48. package/dist/chunks/chunk-AA7GKIK3-RcaBhHiZ.cjs +1 -0
  49. package/dist/chunks/chunk-BSJP7CBP-BHijZ5f8.mjs +83 -0
  50. package/dist/chunks/chunk-BSJP7CBP-wiZ2ll8-.cjs +1 -0
  51. package/dist/chunks/chunk-CIAEETIT-0sn8TZoo.cjs +1 -0
  52. package/dist/chunks/chunk-CIAEETIT-BWpztfre.mjs +20 -0
  53. package/dist/chunks/chunk-EDXVE4YY-BJAhHZ3a.mjs +26 -0
  54. package/dist/chunks/chunk-EDXVE4YY-CXhcVSEI.cjs +1 -0
  55. package/dist/chunks/chunk-ENJZ2VHE-BgpbBBSF.cjs +10 -0
  56. package/dist/chunks/chunk-ENJZ2VHE-COIAdqL4.mjs +566 -0
  57. package/dist/chunks/chunk-FMBD7UC4-CUTvay8e.mjs +5 -0
  58. package/dist/chunks/chunk-FMBD7UC4-DCJ-fphu.cjs +15 -0
  59. package/dist/chunks/chunk-FOC6F5B3-3FOtyf3P.mjs +20 -0
  60. package/dist/chunks/chunk-FOC6F5B3-C2-FyqYn.cjs +1 -0
  61. package/dist/chunks/chunk-ICPOFSXX-BUWZvUuu.cjs +122 -0
  62. package/dist/chunks/chunk-ICPOFSXX-Dn5WbEeN.mjs +3290 -0
  63. package/dist/chunks/chunk-K5T4RW27-CX5gsk1T.cjs +94 -0
  64. package/dist/chunks/chunk-K5T4RW27-De7GqZCP.mjs +16372 -0
  65. package/dist/chunks/chunk-KGLVRYIC-Cwvjry7S.cjs +1 -0
  66. package/dist/chunks/chunk-KGLVRYIC-sDQUxLS7.mjs +20 -0
  67. package/dist/chunks/chunk-LIHQZDEY-BC8om0l2.cjs +1 -0
  68. package/dist/chunks/chunk-LIHQZDEY-BoY9X2Wj.mjs +55 -0
  69. package/dist/chunks/chunk-ORNJ4GCN-CYLjqcXc.mjs +25 -0
  70. package/dist/chunks/chunk-ORNJ4GCN-CoC7A1vn.cjs +1 -0
  71. package/dist/chunks/chunk-OYMX7WX6-Bbwq_g2w.mjs +2038 -0
  72. package/dist/chunks/chunk-OYMX7WX6-D3csU8-J.cjs +231 -0
  73. package/dist/chunks/chunk-QZHKN3VN-Bs3XaH0U.mjs +12 -0
  74. package/dist/chunks/chunk-QZHKN3VN-Db_x7kn8.cjs +1 -0
  75. package/dist/chunks/chunk-U2HBQHQK-CEwYxA8R.cjs +70 -0
  76. package/dist/chunks/chunk-U2HBQHQK-DLyzqElq.mjs +1875 -0
  77. package/dist/chunks/chunk-X2U36JSP-BY9JBwLQ.cjs +1 -0
  78. package/dist/chunks/chunk-X2U36JSP-UKGkP2m1.mjs +68 -0
  79. package/dist/chunks/chunk-XPW4576I-2i_ZgZLs.mjs +1146 -0
  80. package/dist/chunks/chunk-XPW4576I-Ym5mFsxv.cjs +32 -0
  81. package/dist/chunks/chunk-YZCP3GAM-C2GbOoUx.mjs +60 -0
  82. package/dist/chunks/chunk-YZCP3GAM-WMeXt5aH.cjs +1 -0
  83. package/dist/chunks/chunk-ZZ45TVLE-CeD1lNAB.cjs +1 -0
  84. package/dist/chunks/chunk-ZZ45TVLE-DyYus02Y.mjs +33 -0
  85. package/dist/chunks/classDiagram-6PBFFD2Q-DNHZ3qE5.mjs +30 -0
  86. package/dist/chunks/classDiagram-6PBFFD2Q-DWcC9USb.cjs +1 -0
  87. package/dist/chunks/classDiagram-v2-HSJHXN6E-BXKTiJNh.cjs +1 -0
  88. package/dist/chunks/classDiagram-v2-HSJHXN6E-GgfA5-jG.mjs +30 -0
  89. package/dist/chunks/clone-DeEumpiC.mjs +8 -0
  90. package/dist/chunks/clone-gX2HWen_.cjs +1 -0
  91. package/dist/chunks/constants-BYCpx4v_.cjs +457 -0
  92. package/dist/chunks/constants-Bhk7u_hm.mjs +3432 -0
  93. package/dist/chunks/cose-bilkent-S5V4N54A-BuQ-Gx1y.mjs +2246 -0
  94. package/dist/chunks/cose-bilkent-S5V4N54A-CdxjlgEx.cjs +1 -0
  95. package/dist/chunks/dagre-BVQ5RQE_.mjs +1483 -0
  96. package/dist/chunks/dagre-D9QEFKwC.cjs +1 -0
  97. package/dist/chunks/dagre-KV5264BT-BxQkkVxZ.mjs +298 -0
  98. package/dist/chunks/dagre-KV5264BT-Dz_FEBZU.cjs +4 -0
  99. package/dist/chunks/diagram-5BDNPKRD-Cf9AymAx.cjs +10 -0
  100. package/dist/chunks/diagram-5BDNPKRD-joiZwmh1.mjs +112 -0
  101. package/dist/chunks/diagram-G4DWMVQ6-3CAnipxw.cjs +24 -0
  102. package/dist/chunks/diagram-G4DWMVQ6-DrvbpYBX.mjs +546 -0
  103. package/dist/chunks/diagram-MMDJMWI5-B3CwY62T.mjs +234 -0
  104. package/dist/chunks/diagram-MMDJMWI5-DMrk0xwH.cjs +43 -0
  105. package/dist/chunks/diagram-TYMM5635-B3g66i1E.mjs +144 -0
  106. package/dist/chunks/diagram-TYMM5635-BAuYHtjV.cjs +24 -0
  107. package/dist/chunks/erDiagram-SMLLAGMA-4Ks-44BH.cjs +85 -0
  108. package/dist/chunks/erDiagram-SMLLAGMA-Bw6U_hHz.mjs +1712 -0
  109. package/dist/chunks/flowDiagram-DWJPFMVM-D2yMfIFs.mjs +4175 -0
  110. package/dist/chunks/flowDiagram-DWJPFMVM-O6dDtont.cjs +162 -0
  111. package/dist/chunks/ganttDiagram-T4ZO3ILL-D-ymktbJ.cjs +292 -0
  112. package/dist/chunks/ganttDiagram-T4ZO3ILL-SEs0Ez0p.mjs +3083 -0
  113. package/dist/chunks/gitGraph-7Q5UKJZL-BLhgGqhG.cjs +1 -0
  114. package/dist/chunks/gitGraph-7Q5UKJZL-DbRxS8Lo.mjs +3 -0
  115. package/dist/chunks/gitGraphDiagram-UUTBAWPF-BSuqMw-A.cjs +106 -0
  116. package/dist/chunks/gitGraphDiagram-UUTBAWPF-BpVIPN2N.mjs +792 -0
  117. package/dist/chunks/graphlib-C2L_nEcM.cjs +1 -0
  118. package/dist/chunks/graphlib-Cpp6Todw.mjs +225 -0
  119. package/dist/chunks/i18next-loader-BJAXtkt3.cjs +1 -0
  120. package/dist/chunks/i18next-loader-dnJtS6Nb.mjs +35 -0
  121. package/dist/chunks/info-OMHHGYJF-BRxQdcvB.mjs +3 -0
  122. package/dist/chunks/info-OMHHGYJF-Cb4wPKNP.cjs +1 -0
  123. package/dist/chunks/infoDiagram-42DDH7IO-BNAE_Dp2.cjs +2 -0
  124. package/dist/chunks/infoDiagram-42DDH7IO-JYmpv-Gn.mjs +29 -0
  125. package/dist/chunks/isEmpty-BYDpYNyM.cjs +1 -0
  126. package/dist/chunks/isEmpty-Bgy1eL0m.mjs +35 -0
  127. package/dist/chunks/ishikawaDiagram-UXIWVN3A-Ca_1igMn.cjs +70 -0
  128. package/dist/chunks/ishikawaDiagram-UXIWVN3A-ClkZz1Tc.mjs +719 -0
  129. package/dist/chunks/journeyDiagram-VCZTEJTY-BTzeo896.mjs +885 -0
  130. package/dist/chunks/journeyDiagram-VCZTEJTY-D69nfb5v.cjs +139 -0
  131. package/dist/chunks/kanban-definition-6JOO6SKY-BTSuFyjj.cjs +89 -0
  132. package/dist/chunks/kanban-definition-6JOO6SKY-C2Jk5rDA.mjs +980 -0
  133. package/dist/chunks/lightweight-i18n-T_Nc45AF.cjs +1 -0
  134. package/dist/chunks/lightweight-i18n-qpzXlOVm.mjs +344 -0
  135. package/dist/chunks/line-CjJKN63i.cjs +1 -0
  136. package/dist/chunks/line-zarcRAiW.mjs +34 -0
  137. package/dist/chunks/linear-CDUWrVHa.cjs +1 -0
  138. package/dist/chunks/linear-CXe29GGg.mjs +289 -0
  139. package/dist/chunks/mdast-util-math-BfFBcnFx.cjs +5 -0
  140. package/dist/chunks/mdast-util-math-CqPx3t0S.mjs +151 -0
  141. package/dist/chunks/mermaid-parser.core-BXANIhlc.mjs +57 -0
  142. package/dist/chunks/mermaid-parser.core-DMmP6uoD.cjs +3 -0
  143. package/dist/chunks/mermaid.core-A4e6ZJqs.mjs +977 -0
  144. package/dist/chunks/mermaid.core-C66G0J-z.cjs +10 -0
  145. package/dist/chunks/messages--BWLKiOP2.mjs +319 -0
  146. package/dist/chunks/messages--LI6Qp0h.mjs +319 -0
  147. package/dist/chunks/messages-4TiLLTpr2.cjs +1 -0
  148. package/dist/chunks/messages-7ul_s8GB2.mjs +319 -0
  149. package/dist/chunks/messages-8BZGqPD1.cjs +1 -0
  150. package/dist/chunks/messages-96ztlozp.cjs +1 -0
  151. package/dist/chunks/messages-B-_ZQLp5.mjs +319 -0
  152. package/dist/chunks/messages-B1YSYW3Y.cjs +1 -0
  153. package/dist/chunks/messages-B3E33lPt2.mjs +319 -0
  154. package/dist/chunks/messages-BABN8cuN.mjs +319 -0
  155. package/dist/chunks/messages-BDAXqxYw.cjs +1 -0
  156. package/dist/chunks/messages-BE0YZo6f.cjs +1 -0
  157. package/dist/chunks/messages-BIg9D7T52.cjs +1 -0
  158. package/dist/chunks/messages-BKtPvquH2.mjs +319 -0
  159. package/dist/chunks/messages-BMKq6Ps12.cjs +1 -0
  160. package/dist/chunks/messages-BMqvMau_2.mjs +319 -0
  161. package/dist/chunks/messages-BNmaVDtf.mjs +319 -0
  162. package/dist/chunks/messages-BRRMkfZY2.cjs +1 -0
  163. package/dist/chunks/messages-BUg0EGM6.cjs +1 -0
  164. package/dist/chunks/messages-BV88VXs-2.mjs +319 -0
  165. package/dist/chunks/messages-BVAjj_W_2.mjs +319 -0
  166. package/dist/chunks/messages-BWd6mmTm.mjs +319 -0
  167. package/dist/chunks/messages-BXce9Dbm.mjs +319 -0
  168. package/dist/chunks/messages-B_OU8dr_.mjs +319 -0
  169. package/dist/chunks/messages-B_VpqVFy.mjs +319 -0
  170. package/dist/chunks/messages-B_t9669l.mjs +319 -0
  171. package/dist/chunks/messages-Begh-7SQ.cjs +1 -0
  172. package/dist/chunks/messages-BfTeMiOT.cjs +1 -0
  173. package/dist/chunks/messages-BguYUD04.cjs +1 -0
  174. package/dist/chunks/messages-Bi5NKhkL.cjs +1 -0
  175. package/dist/chunks/messages-BliJJjNK2.cjs +1 -0
  176. package/dist/chunks/messages-BmSnovX9.cjs +1 -0
  177. package/dist/chunks/messages-BoZAdwRU2.mjs +319 -0
  178. package/dist/chunks/messages-Bp-PMdAJ.mjs +319 -0
  179. package/dist/chunks/messages-BphoNqXl2.mjs +319 -0
  180. package/dist/chunks/messages-Bs5HM4rw2.cjs +1 -0
  181. package/dist/chunks/messages-BtZSlvVR.cjs +1 -0
  182. package/dist/chunks/messages-Btg_N5Nj2.cjs +1 -0
  183. package/dist/chunks/messages-C67MLHmh.cjs +1 -0
  184. package/dist/chunks/messages-C6RXCX1D2.mjs +319 -0
  185. package/dist/chunks/messages-C6Zo4thu.mjs +319 -0
  186. package/dist/chunks/messages-C7QEUxQf2.cjs +1 -0
  187. package/dist/chunks/messages-CB-RDoMj2.cjs +1 -0
  188. package/dist/chunks/messages-CBOtPEE5.cjs +1 -0
  189. package/dist/chunks/messages-CBoKI_4k2.mjs +319 -0
  190. package/dist/chunks/messages-CCMMPgcH.mjs +319 -0
  191. package/dist/chunks/messages-CFvaU-9Q2.mjs +319 -0
  192. package/dist/chunks/messages-CHDxRwD8.mjs +319 -0
  193. package/dist/chunks/messages-CJWSRA8r.cjs +1 -0
  194. package/dist/chunks/messages-CJaj0WrV.mjs +319 -0
  195. package/dist/chunks/messages-CLnZAk7s.mjs +319 -0
  196. package/dist/chunks/messages-CNWWk9zU.cjs +1 -0
  197. package/dist/chunks/messages-CO4IPaU22.mjs +319 -0
  198. package/dist/chunks/messages-CQii-Hly.mjs +319 -0
  199. package/dist/chunks/messages-CSPoZeJd.cjs +1 -0
  200. package/dist/chunks/messages-CThWJOaj2.cjs +1 -0
  201. package/dist/chunks/messages-CWbag2W1.mjs +319 -0
  202. package/dist/chunks/messages-CWfPtitC.mjs +319 -0
  203. package/dist/chunks/messages-CYh8BT-U2.cjs +1 -0
  204. package/dist/chunks/messages-CZAwmrBN2.mjs +319 -0
  205. package/dist/chunks/messages-CcmzbJED2.mjs +319 -0
  206. package/dist/chunks/messages-Cdp2ao16.cjs +1 -0
  207. package/dist/chunks/messages-CeSGFPaX.mjs +319 -0
  208. package/dist/chunks/messages-CfmN_C_V2.cjs +1 -0
  209. package/dist/chunks/messages-CgTWiYXl.mjs +319 -0
  210. package/dist/chunks/messages-CiqFmj282.mjs +319 -0
  211. package/dist/chunks/messages-Cj1I1bdS.mjs +319 -0
  212. package/dist/chunks/messages-CktwPONk2.cjs +1 -0
  213. package/dist/chunks/messages-ClMbt_082.cjs +1 -0
  214. package/dist/chunks/messages-ClfpoVLB.cjs +1 -0
  215. package/dist/chunks/messages-CmcpUpmY2.cjs +1 -0
  216. package/dist/chunks/messages-CnNUiCOF2.cjs +1 -0
  217. package/dist/chunks/messages-Cq-tyBQ7.cjs +1 -0
  218. package/dist/chunks/messages-Cqs6tnMT.mjs +319 -0
  219. package/dist/chunks/messages-CrPQatEP.cjs +1 -0
  220. package/dist/chunks/messages-CtNhn2A72.cjs +1 -0
  221. package/dist/chunks/messages-Cw-JQsbB.cjs +1 -0
  222. package/dist/chunks/messages-CxLZNPP22.mjs +319 -0
  223. package/dist/chunks/messages-D2to7PFh.mjs +319 -0
  224. package/dist/chunks/messages-D7GNxw46.cjs +1 -0
  225. package/dist/chunks/messages-DDqbUQPS2.cjs +1 -0
  226. package/dist/chunks/messages-DIsfRggy.mjs +319 -0
  227. package/dist/chunks/messages-DLvqdeVe.mjs +319 -0
  228. package/dist/chunks/messages-DMukq8ei2.cjs +1 -0
  229. package/dist/chunks/messages-DOJ7TGKc.mjs +319 -0
  230. package/dist/chunks/messages-DPpKBEMV.mjs +319 -0
  231. package/dist/chunks/messages-DWDt4hEW.mjs +319 -0
  232. package/dist/chunks/messages-DYPc3t5L.cjs +1 -0
  233. package/dist/chunks/messages-DYRRi1JW.mjs +319 -0
  234. package/dist/chunks/messages-DYbP7_iL.cjs +1 -0
  235. package/dist/chunks/messages-D_gbD8W22.mjs +319 -0
  236. package/dist/chunks/messages-DaQ1XgNk.mjs +319 -0
  237. package/dist/chunks/messages-DjW1_-Ba2.mjs +319 -0
  238. package/dist/chunks/messages-Dop11yxi.mjs +319 -0
  239. package/dist/chunks/messages-DoyFY1Ye.mjs +319 -0
  240. package/dist/chunks/messages-DpjZ6YjX.cjs +1 -0
  241. package/dist/chunks/messages-DprfonW1.mjs +319 -0
  242. package/dist/chunks/messages-Dq8w46wu.cjs +1 -0
  243. package/dist/chunks/messages-DqbBTg1F2.mjs +319 -0
  244. package/dist/chunks/messages-DsGOj3A62.cjs +1 -0
  245. package/dist/chunks/messages-Dt6sbdaY.mjs +319 -0
  246. package/dist/chunks/messages-Dv3xqn-c.mjs +319 -0
  247. package/dist/chunks/messages-DwZCK3WR2.cjs +1 -0
  248. package/dist/chunks/messages-G-grLA6L2.cjs +1 -0
  249. package/dist/chunks/messages-HmyGBKiy2.cjs +1 -0
  250. package/dist/chunks/messages-IsKrH6md2.mjs +319 -0
  251. package/dist/chunks/messages-L1H9KlM8.cjs +1 -0
  252. package/dist/chunks/messages-OwCNaUA2.cjs +1 -0
  253. package/dist/chunks/messages-Q1fgq2tw.cjs +1 -0
  254. package/dist/chunks/messages-RLMDvD9N.mjs +319 -0
  255. package/dist/chunks/messages-SGrUP3jU2.mjs +319 -0
  256. package/dist/chunks/messages-TET2HqbJ.mjs +319 -0
  257. package/dist/chunks/messages-UR9AknuE.cjs +1 -0
  258. package/dist/chunks/messages-UXbrSqP4.mjs +319 -0
  259. package/dist/chunks/messages-UlQUIo4t.cjs +1 -0
  260. package/dist/chunks/messages-VO5bBaDw2.cjs +1 -0
  261. package/dist/chunks/messages-Vz-ouTEN.mjs +319 -0
  262. package/dist/chunks/messages-Z5hg0_Dz2.mjs +319 -0
  263. package/dist/chunks/messages-bBZDrpto2.mjs +319 -0
  264. package/dist/chunks/messages-ipwQdTtE.cjs +1 -0
  265. package/dist/chunks/messages-jXbN1DEs.mjs +319 -0
  266. package/dist/chunks/messages-kon7ablY2.cjs +1 -0
  267. package/dist/chunks/messages-oeTrLt0-.cjs +1 -0
  268. package/dist/chunks/messages-qga5_rrO.cjs +1 -0
  269. package/dist/chunks/messages-sEnNaZIo.cjs +1 -0
  270. package/dist/chunks/messages-szOBKu5g.cjs +1 -0
  271. package/dist/chunks/messages-tZ7nZ7qL.cjs +1 -0
  272. package/dist/chunks/messages-u_dR89Qy.mjs +319 -0
  273. package/dist/chunks/messages-wDo4f3f9.cjs +1 -0
  274. package/dist/chunks/messages-wxVdFEgz2.mjs +319 -0
  275. package/dist/chunks/messages-x3ljzuuQ2.cjs +1 -0
  276. package/dist/chunks/messages-x6wDbfws2.mjs +319 -0
  277. package/dist/chunks/messages-ygmjC_Dc.cjs +1 -0
  278. package/dist/chunks/messages-zPVJyoxM.cjs +1 -0
  279. package/dist/chunks/micromark-extension-math-Cm8w3ABm.cjs +1 -0
  280. package/dist/chunks/micromark-extension-math-cDSPzUWY.mjs +169 -0
  281. package/dist/chunks/mindmap-definition-QFDTVHPH-DLO594eM.cjs +96 -0
  282. package/dist/chunks/mindmap-definition-QFDTVHPH-QxqvL96A.mjs +1013 -0
  283. package/dist/chunks/notifier-CfO3Icvp.cjs +1 -0
  284. package/dist/chunks/notifier-DMdYq9FS.mjs +73 -0
  285. package/dist/chunks/ordinal-DgAmiD5I.mjs +65 -0
  286. package/dist/chunks/ordinal-mgpK7IL3.cjs +1 -0
  287. package/dist/chunks/packet-4T2RLAQJ-BQYK4Pey.cjs +1 -0
  288. package/dist/chunks/packet-4T2RLAQJ-BwgNXqij.mjs +3 -0
  289. package/dist/chunks/pie-ZZUOXDRM-BLh1-ocA.cjs +1 -0
  290. package/dist/chunks/pie-ZZUOXDRM-CrDtyZu4.mjs +3 -0
  291. package/dist/chunks/pieDiagram-DEJITSTG-CGduyUgA.mjs +179 -0
  292. package/dist/chunks/pieDiagram-DEJITSTG-Do5jGsL7.cjs +30 -0
  293. package/dist/chunks/prism-bash-OGjZLOVe.cjs +1 -0
  294. package/dist/chunks/prism-bash-oISNNULp.mjs +175 -0
  295. package/dist/chunks/prism-c-1g9CdJOp.cjs +1 -0
  296. package/dist/chunks/prism-c-MtM8JocP.mjs +54 -0
  297. package/dist/chunks/prism-cpp-CORR584T.cjs +1 -0
  298. package/dist/chunks/prism-cpp-DswQJFJz.mjs +63 -0
  299. package/dist/chunks/prism-csharp-BqZp_TTb.cjs +1 -0
  300. package/dist/chunks/prism-csharp-GIfQrsqe.mjs +236 -0
  301. package/dist/chunks/prism-css-BLyqeHZR.mjs +55 -0
  302. package/dist/chunks/prism-css-DmF38Kcs.cjs +1 -0
  303. package/dist/chunks/prism-dart-CFseeodJ.cjs +1 -0
  304. package/dist/chunks/prism-dart-DbCi1QVI.mjs +52 -0
  305. package/dist/chunks/prism-docker-BOsXo4aW.cjs +1 -0
  306. package/dist/chunks/prism-docker-CUCbqggk.mjs +75 -0
  307. package/dist/chunks/prism-go-DVHXGmKb.mjs +20 -0
  308. package/dist/chunks/prism-go-DsEyoP6D.cjs +1 -0
  309. package/dist/chunks/prism-graphql-DGEYZFbw.mjs +114 -0
  310. package/dist/chunks/prism-graphql-DqXh7GRP.cjs +1 -0
  311. package/dist/chunks/prism-java-CzQtfd6W.mjs +99 -0
  312. package/dist/chunks/prism-java-DQn4zrh0.cjs +1 -0
  313. package/dist/chunks/prism-javascript-CAkVOGaq.mjs +101 -0
  314. package/dist/chunks/prism-javascript-UQPp4ffL.cjs +1 -0
  315. package/dist/chunks/prism-json-B-63BF6R.cjs +1 -0
  316. package/dist/chunks/prism-json-BSGjg8pt.mjs +25 -0
  317. package/dist/chunks/prism-kotlin-D9r_epW6.mjs +64 -0
  318. package/dist/chunks/prism-kotlin-DmCIViWe.cjs +1 -0
  319. package/dist/chunks/prism-latex-Bcpg2uQr.cjs +1 -0
  320. package/dist/chunks/prism-latex-o70KNu9w.mjs +43 -0
  321. package/dist/chunks/prism-lua-7od8jpGg.mjs +17 -0
  322. package/dist/chunks/prism-lua-DyMxrgA_.cjs +1 -0
  323. package/dist/chunks/prism-markdown-BY8dZr_8.cjs +1 -0
  324. package/dist/chunks/prism-markdown-CI62y6qt.mjs +251 -0
  325. package/dist/chunks/prism-markup-DFqZi51m.mjs +116 -0
  326. package/dist/chunks/prism-markup-OdaHxDBn.cjs +1 -0
  327. package/dist/chunks/prism-markup-templating-Cnde-rJf.cjs +1 -0
  328. package/dist/chunks/prism-markup-templating-DTIDwO2f.mjs +39 -0
  329. package/dist/chunks/prism-php-BFUaOiLc.mjs +277 -0
  330. package/dist/chunks/prism-php-D8NgAYtH.cjs +1 -0
  331. package/dist/chunks/prism-python-CTRSlrPP.mjs +59 -0
  332. package/dist/chunks/prism-python-vAqxHcox.cjs +1 -0
  333. package/dist/chunks/prism-r-AA_ZuQPX.mjs +19 -0
  334. package/dist/chunks/prism-r-BsUW1w_m.cjs +1 -0
  335. package/dist/chunks/prism-ruby-BttDevO3.mjs +156 -0
  336. package/dist/chunks/prism-ruby-D7wGSPCx.cjs +1 -0
  337. package/dist/chunks/prism-rust-1wrW82hd.mjs +92 -0
  338. package/dist/chunks/prism-rust-C65Pn3Oc.cjs +1 -0
  339. package/dist/chunks/prism-scala-C26iL30s.mjs +43 -0
  340. package/dist/chunks/prism-scala-DuAsLUh6.cjs +1 -0
  341. package/dist/chunks/prism-sql-CSv-2hNx.mjs +29 -0
  342. package/dist/chunks/prism-sql-DHhl_Wd1.cjs +1 -0
  343. package/dist/chunks/prism-swift-2HH6IALG.cjs +1 -0
  344. package/dist/chunks/prism-swift-ik83oO-E.mjs +94 -0
  345. package/dist/chunks/prism-typescript-ChaS5gh3.mjs +38 -0
  346. package/dist/chunks/prism-typescript-Cuqi9QKv.cjs +1 -0
  347. package/dist/chunks/prism-yaml-BT2oArqa.cjs +1 -0
  348. package/dist/chunks/prism-yaml-YI3VZVAw.mjs +68 -0
  349. package/dist/chunks/quadrantDiagram-34T5L4WZ-BdwmsqYk.cjs +7 -0
  350. package/dist/chunks/quadrantDiagram-34T5L4WZ-BiqiWPbj.mjs +1960 -0
  351. package/dist/chunks/radar-PYXPWWZC-CYtB39az.mjs +3 -0
  352. package/dist/chunks/radar-PYXPWWZC-Drac9aGm.cjs +1 -0
  353. package/dist/chunks/requirementDiagram-MS252O5E-Cko4AhA2.mjs +2224 -0
  354. package/dist/chunks/requirementDiagram-MS252O5E-DBRLVWVl.cjs +84 -0
  355. package/dist/chunks/sankeyDiagram-XADWPNL6-BFWIr9AZ.mjs +909 -0
  356. package/dist/chunks/sankeyDiagram-XADWPNL6-Dq3Fi6gG.cjs +10 -0
  357. package/dist/chunks/sequenceDiagram-FGHM5R23-BKKZAG9O.cjs +157 -0
  358. package/dist/chunks/sequenceDiagram-FGHM5R23-DHFzzYeT.mjs +4181 -0
  359. package/dist/chunks/stateDiagram-FHFEXIEX-B1vJTyiJ.mjs +218 -0
  360. package/dist/chunks/stateDiagram-FHFEXIEX-DsHbgVAE.cjs +1 -0
  361. package/dist/chunks/stateDiagram-v2-QKLJ7IA2-DC206QSk.mjs +28 -0
  362. package/dist/chunks/stateDiagram-v2-QKLJ7IA2-DzkxV3pL.cjs +1 -0
  363. package/dist/chunks/timeline-definition-GMOUNBTQ-BlXvHIKp.mjs +1084 -0
  364. package/dist/chunks/timeline-definition-GMOUNBTQ-durCMWAX.cjs +120 -0
  365. package/dist/chunks/tools-Bc4e0xmz.mjs +13848 -0
  366. package/dist/chunks/tools-DaOdAh89.cjs +115 -0
  367. package/dist/chunks/treeView-SZITEDCU-BpLDxB8w.cjs +1 -0
  368. package/dist/chunks/treeView-SZITEDCU-DIbHFtMw.mjs +3 -0
  369. package/dist/chunks/treemap-W4RFUUIX-4t60SvLo.mjs +3 -0
  370. package/dist/chunks/treemap-W4RFUUIX-jpjSZokO.cjs +1 -0
  371. package/dist/chunks/vennDiagram-DHZGUBPP-BVxAvXiG.mjs +1876 -0
  372. package/dist/chunks/vennDiagram-DHZGUBPP-Dtpe6giP.cjs +34 -0
  373. package/dist/chunks/wardley-RL74JXVD-CBBTKC3H.cjs +1 -0
  374. package/dist/chunks/wardley-RL74JXVD-g5DNBeQ1.mjs +3 -0
  375. package/dist/chunks/wardleyDiagram-NUSXRM2D-BGORQqtQ.mjs +594 -0
  376. package/dist/chunks/wardleyDiagram-NUSXRM2D-ClsU-9PV.cjs +20 -0
  377. package/dist/chunks/xychartDiagram-5P7HB3ND-DplTzQI6.mjs +2017 -0
  378. package/dist/chunks/xychartDiagram-5P7HB3ND-EO18s7Fo.cjs +7 -0
  379. package/dist/full.cjs +1 -1
  380. package/dist/full.mjs +9 -9
  381. package/dist/locales.mjs +175 -68
  382. package/dist/markdown.cjs +2 -2
  383. package/dist/markdown.mjs +392 -384
  384. package/dist/messages-28LGzsNB.mjs +319 -0
  385. package/dist/messages-35X8GsGw2.mjs +319 -0
  386. package/dist/messages-5ygX-4B92.mjs +319 -0
  387. package/dist/messages-83AcZNii.mjs +319 -0
  388. package/dist/messages-B-OvX3Vz2.mjs +319 -0
  389. package/dist/messages-B56oJj_X2.mjs +319 -0
  390. package/dist/messages-B7peBJXJ2.mjs +319 -0
  391. package/dist/messages-BGwTNk0S2.mjs +319 -0
  392. package/dist/messages-BH-SS-wY.mjs +319 -0
  393. package/dist/messages-BPX8V6tu.mjs +319 -0
  394. package/dist/messages-BUp8P-0d.mjs +319 -0
  395. package/dist/messages-BX3WM02N2.mjs +319 -0
  396. package/dist/messages-BZrMZvRb2.mjs +319 -0
  397. package/dist/messages-B_0akf3T.mjs +319 -0
  398. package/dist/messages-BaE65Wtr.mjs +319 -0
  399. package/dist/messages-BdSGtvzM.mjs +319 -0
  400. package/dist/messages-BerXSWcD.mjs +319 -0
  401. package/dist/messages-BqKaz7yB2.mjs +319 -0
  402. package/dist/messages-BrqBJ6W_2.mjs +319 -0
  403. package/dist/messages-BvgGIpxE2.mjs +319 -0
  404. package/dist/messages-BxSe3rKx.mjs +319 -0
  405. package/dist/messages-ByD9AIJL2.mjs +319 -0
  406. package/dist/messages-CDJS_Tu2.mjs +319 -0
  407. package/dist/messages-CF9R29jb.mjs +319 -0
  408. package/dist/messages-CIbK29nM.mjs +319 -0
  409. package/dist/messages-CMD0tgb2.mjs +319 -0
  410. package/dist/messages-CMW0tO_d2.mjs +319 -0
  411. package/dist/messages-CMrYQJ5x2.mjs +319 -0
  412. package/dist/messages-CQZJnkss2.mjs +319 -0
  413. package/dist/messages-CRnolvNg.mjs +319 -0
  414. package/dist/messages-CS74u2hS2.mjs +319 -0
  415. package/dist/messages-CTxao0S32.mjs +319 -0
  416. package/dist/messages-CZl83L7T.mjs +319 -0
  417. package/dist/messages-C_kloJSr.mjs +319 -0
  418. package/dist/messages-Cfe_CPBW.mjs +319 -0
  419. package/dist/messages-Ch0oiQp5.mjs +319 -0
  420. package/dist/messages-Cigiz7tI.mjs +319 -0
  421. package/dist/messages-Cjac781Z.mjs +319 -0
  422. package/dist/messages-CqVFa1ZA.mjs +319 -0
  423. package/dist/messages-CwDgZL5-.mjs +319 -0
  424. package/dist/messages-Czd64cAx.mjs +319 -0
  425. package/dist/messages-CzxMz1wI.mjs +319 -0
  426. package/dist/messages-D2SkVxgV.mjs +319 -0
  427. package/dist/messages-D4ZsN52E2.mjs +319 -0
  428. package/dist/messages-DG0aBs1m2.mjs +319 -0
  429. package/dist/messages-DIkQAMxZ2.mjs +319 -0
  430. package/dist/messages-DJBc5_b_2.mjs +319 -0
  431. package/dist/messages-DN8oOcrS.mjs +319 -0
  432. package/dist/messages-DV5yhL0q.mjs +319 -0
  433. package/dist/messages-DVI1iDTn2.mjs +319 -0
  434. package/dist/messages-DVzrCNrY.mjs +319 -0
  435. package/dist/messages-DXwJOr-H2.mjs +319 -0
  436. package/dist/messages-D_edVQrv.mjs +319 -0
  437. package/dist/messages-DbODRieP.mjs +319 -0
  438. package/dist/messages-KMQrhAva.mjs +319 -0
  439. package/dist/messages-L4NsHX-g.mjs +319 -0
  440. package/dist/messages-PPuF4CRy.mjs +319 -0
  441. package/dist/messages-UTJEPSiL.mjs +319 -0
  442. package/dist/messages-Wa5EXypv2.mjs +319 -0
  443. package/dist/messages-Wfxn9jZh.mjs +319 -0
  444. package/dist/messages-XieI4326.mjs +319 -0
  445. package/dist/messages-ZASZzduy.mjs +319 -0
  446. package/dist/messages-Z_3X1FJJ2.mjs +319 -0
  447. package/dist/messages-huyV3ICu.mjs +319 -0
  448. package/dist/messages-rd6zBwaX2.mjs +319 -0
  449. package/dist/messages-sBpTj74Q.mjs +319 -0
  450. package/dist/messages-twD0eDdc.mjs +319 -0
  451. package/dist/react.cjs +1 -1
  452. package/dist/react.mjs +25 -26
  453. package/dist/tools.cjs +1 -1
  454. package/dist/tools.mjs +3 -3
  455. package/dist/vendor.LICENSE.txt +141 -899
  456. package/package.json +12 -6
  457. package/src/components/constants/data-attributes.ts +2 -0
  458. package/src/components/dom.ts +4 -2
  459. package/src/components/i18n/locales/am/messages.json +109 -1
  460. package/src/components/i18n/locales/ar/messages.json +109 -1
  461. package/src/components/i18n/locales/az/messages.json +109 -1
  462. package/src/components/i18n/locales/bg/messages.json +109 -1
  463. package/src/components/i18n/locales/bn/messages.json +109 -1
  464. package/src/components/i18n/locales/bs/messages.json +109 -1
  465. package/src/components/i18n/locales/cs/messages.json +109 -1
  466. package/src/components/i18n/locales/da/messages.json +109 -1
  467. package/src/components/i18n/locales/de/messages.json +110 -2
  468. package/src/components/i18n/locales/dv/messages.json +109 -1
  469. package/src/components/i18n/locales/el/messages.json +109 -1
  470. package/src/components/i18n/locales/en/messages.json +108 -1
  471. package/src/components/i18n/locales/es/messages.json +109 -1
  472. package/src/components/i18n/locales/et/messages.json +109 -1
  473. package/src/components/i18n/locales/fa/messages.json +109 -1
  474. package/src/components/i18n/locales/fi/messages.json +109 -1
  475. package/src/components/i18n/locales/fil/messages.json +109 -1
  476. package/src/components/i18n/locales/fr/messages.json +110 -2
  477. package/src/components/i18n/locales/gu/messages.json +109 -1
  478. package/src/components/i18n/locales/he/messages.json +109 -1
  479. package/src/components/i18n/locales/hi/messages.json +109 -1
  480. package/src/components/i18n/locales/hr/messages.json +109 -1
  481. package/src/components/i18n/locales/hu/messages.json +109 -1
  482. package/src/components/i18n/locales/hy/messages.json +109 -1
  483. package/src/components/i18n/locales/id/messages.json +109 -1
  484. package/src/components/i18n/locales/it/messages.json +109 -1
  485. package/src/components/i18n/locales/ja/messages.json +109 -1
  486. package/src/components/i18n/locales/ka/messages.json +109 -1
  487. package/src/components/i18n/locales/km/messages.json +109 -1
  488. package/src/components/i18n/locales/kn/messages.json +109 -1
  489. package/src/components/i18n/locales/ko/messages.json +109 -1
  490. package/src/components/i18n/locales/ku/messages.json +109 -1
  491. package/src/components/i18n/locales/lo/messages.json +109 -1
  492. package/src/components/i18n/locales/lt/messages.json +109 -1
  493. package/src/components/i18n/locales/lv/messages.json +109 -1
  494. package/src/components/i18n/locales/mk/messages.json +109 -1
  495. package/src/components/i18n/locales/ml/messages.json +109 -1
  496. package/src/components/i18n/locales/mn/messages.json +109 -1
  497. package/src/components/i18n/locales/mr/messages.json +109 -1
  498. package/src/components/i18n/locales/ms/messages.json +109 -1
  499. package/src/components/i18n/locales/my/messages.json +109 -1
  500. package/src/components/i18n/locales/ne/messages.json +109 -1
  501. package/src/components/i18n/locales/nl/messages.json +110 -2
  502. package/src/components/i18n/locales/no/messages.json +109 -1
  503. package/src/components/i18n/locales/pa/messages.json +109 -1
  504. package/src/components/i18n/locales/pl/messages.json +109 -1
  505. package/src/components/i18n/locales/ps/messages.json +109 -1
  506. package/src/components/i18n/locales/pt/messages.json +109 -1
  507. package/src/components/i18n/locales/ro/messages.json +109 -1
  508. package/src/components/i18n/locales/ru/messages.json +109 -1
  509. package/src/components/i18n/locales/sd/messages.json +109 -1
  510. package/src/components/i18n/locales/si/messages.json +109 -1
  511. package/src/components/i18n/locales/sk/messages.json +109 -1
  512. package/src/components/i18n/locales/sl/messages.json +109 -1
  513. package/src/components/i18n/locales/sq/messages.json +109 -1
  514. package/src/components/i18n/locales/sr/messages.json +109 -1
  515. package/src/components/i18n/locales/sv/messages.json +109 -1
  516. package/src/components/i18n/locales/sw/messages.json +109 -1
  517. package/src/components/i18n/locales/ta/messages.json +109 -1
  518. package/src/components/i18n/locales/te/messages.json +109 -1
  519. package/src/components/i18n/locales/th/messages.json +109 -1
  520. package/src/components/i18n/locales/tr/messages.json +109 -1
  521. package/src/components/i18n/locales/ug/messages.json +109 -1
  522. package/src/components/i18n/locales/uk/messages.json +109 -1
  523. package/src/components/i18n/locales/ur/messages.json +109 -1
  524. package/src/components/i18n/locales/vi/messages.json +109 -1
  525. package/src/components/i18n/locales/yi/messages.json +109 -1
  526. package/src/components/i18n/locales/zh/messages.json +109 -1
  527. package/src/components/icons/index.ts +59 -0
  528. package/src/components/inline-tools/inline-tool-code.ts +1 -1
  529. package/src/components/modules/api/toolbar.ts +6 -4
  530. package/src/components/modules/blockEvents/index.ts +9 -0
  531. package/src/components/modules/blockManager/operations.ts +14 -1
  532. package/src/components/modules/drag/DragController.ts +24 -3
  533. package/src/components/modules/paste/handlers/files-handler.ts +41 -4
  534. package/src/components/modules/paste/index.ts +5 -1
  535. package/src/components/modules/paste/tool-registry.ts +22 -12
  536. package/src/components/modules/toolbar/blockSettings.ts +14 -2
  537. package/src/components/modules/toolbar/index.ts +49 -16
  538. package/src/components/modules/toolbar/inline/selection-validator.ts +17 -0
  539. package/src/components/modules/toolbar/plus-button.ts +4 -2
  540. package/src/components/modules/toolbar/positioning.ts +27 -0
  541. package/src/components/modules/toolbar/settings-toggler.ts +16 -5
  542. package/src/components/modules/toolbar/tooltip.ts +59 -15
  543. package/src/components/modules/ui.ts +23 -8
  544. package/src/components/ui/toolbox.ts +92 -7
  545. package/src/components/utils/data-model-transform.ts +71 -1
  546. package/src/components/utils/popover/components/popover-item/popover-item-default/popover-item-default.const.ts +5 -4
  547. package/src/components/utils/popover/components/popover-item/popover-item-default/popover-item-default.ts +1 -0
  548. package/src/components/utils/popover/components/popover-item/popover-item-separator/popover-item-separator.const.ts +1 -1
  549. package/src/components/utils/popover/components/search-input/search-input.const.ts +3 -3
  550. package/src/components/utils/popover/popover-abstract.ts +137 -2
  551. package/src/components/utils/popover/popover-desktop.ts +260 -14
  552. package/src/components/utils/popover/popover-inline.ts +3 -2
  553. package/src/components/utils/popover/popover-nested-position.ts +132 -0
  554. package/src/components/utils/popover/popover-position.ts +46 -5
  555. package/src/components/utils/popover/popover.const.ts +6 -3
  556. package/src/components/utils/tooltip.ts +52 -8
  557. package/src/components/utils/top-layer.ts +137 -0
  558. package/src/playground/block-states-gallery.ts +123 -0
  559. package/src/playground/icon-gallery.ts +346 -0
  560. package/src/styles/checklist.css +70 -0
  561. package/src/styles/colors.css +666 -0
  562. package/src/styles/database.css +1176 -0
  563. package/src/styles/emoji-picker.css +58 -0
  564. package/src/styles/fonts.css +33 -0
  565. package/src/styles/image.css +1111 -0
  566. package/src/styles/isolation.css +204 -0
  567. package/src/styles/keyframes.css +62 -0
  568. package/src/styles/main.css +28 -2566
  569. package/src/styles/popover-animation.css +34 -0
  570. package/src/styles/preflight.css +283 -0
  571. package/src/styles/slash-search.css +52 -0
  572. package/src/styles/tables.css +154 -0
  573. package/src/styles/tokens.css +127 -0
  574. package/src/tools/callout/emoji-picker/index.ts +4 -2
  575. package/src/tools/code/code-keyboard.ts +70 -8
  576. package/src/tools/code/constants.ts +3 -9
  577. package/src/tools/code/dom-builder.ts +5 -1
  578. package/src/tools/code/index.ts +185 -25
  579. package/src/tools/code/language-detector.ts +47 -52
  580. package/src/tools/code/prism-applier.ts +183 -0
  581. package/src/tools/code/prism-loader.ts +197 -0
  582. package/src/tools/database/database-board-view.ts +3 -1
  583. package/src/tools/image/alt-popover.css +42 -0
  584. package/src/tools/image/alt-popover.ts +104 -0
  585. package/src/tools/image/constants.ts +25 -0
  586. package/src/tools/image/crop-editor.css +513 -0
  587. package/src/tools/image/crop-editor.ts +331 -0
  588. package/src/tools/image/crop-math.ts +117 -0
  589. package/src/tools/image/crop-modal.css +105 -0
  590. package/src/tools/image/crop-modal.ts +92 -0
  591. package/src/tools/image/empty-state.ts +407 -0
  592. package/src/tools/image/error-state.ts +69 -0
  593. package/src/tools/image/errors.ts +18 -0
  594. package/src/tools/image/i18n.ts +8 -0
  595. package/src/tools/image/index.ts +755 -0
  596. package/src/tools/image/resizer.ts +119 -0
  597. package/src/tools/image/spring.ts +16 -0
  598. package/src/tools/image/ui.ts +921 -0
  599. package/src/tools/image/uploader.ts +61 -0
  600. package/src/tools/image/uploading-state.ts +117 -0
  601. package/src/tools/index.ts +2 -0
  602. package/src/tools/toggle/constants.ts +3 -1
  603. package/src/types-internal/prismjs-components.d.ts +9 -0
  604. package/types/api/toolbar.d.ts +14 -1
  605. package/types/configs/blok-config.d.ts +24 -0
  606. package/types/tools/image.d.ts +72 -0
  607. package/types/utils/popover/popover.d.ts +27 -0
  608. package/dist/chunks/_basePickBy-6gOwWeg0.mjs +0 -166
  609. package/dist/chunks/_basePickBy-mUHvTE6c.cjs +0 -1
  610. package/dist/chunks/_baseUniq-BP5sM8qF.cjs +0 -1
  611. package/dist/chunks/_baseUniq-BcOWmEX6.mjs +0 -682
  612. package/dist/chunks/arc-kVpio4JL.mjs +0 -80
  613. package/dist/chunks/arc-lSzOinJz.cjs +0 -1
  614. package/dist/chunks/architecture-YZFGNWBL-BFcrDSEW.mjs +0 -3
  615. package/dist/chunks/architecture-YZFGNWBL-D91d5pcl.cjs +0 -1
  616. package/dist/chunks/architectureDiagram-Q4EWVU46-CN6p4Aji.mjs +0 -4066
  617. package/dist/chunks/architectureDiagram-Q4EWVU46-CyW5N5Ic.cjs +0 -36
  618. package/dist/chunks/blockDiagram-DXYQGD6D-BvZWa5Rv.mjs +0 -3074
  619. package/dist/chunks/blockDiagram-DXYQGD6D-DmhBCLgd.cjs +0 -132
  620. package/dist/chunks/blok-CNEP3LpI.cjs +0 -16
  621. package/dist/chunks/blok-DNvzyOYn.mjs +0 -13679
  622. package/dist/chunks/c-CQrSye6K.mjs +0 -5
  623. package/dist/chunks/c-DNJHkQXQ.cjs +0 -1
  624. package/dist/chunks/c4Diagram-AHTNJAMY-Cmc2PsEs.mjs +0 -2956
  625. package/dist/chunks/c4Diagram-AHTNJAMY-DU2IYTXY.cjs +0 -10
  626. package/dist/chunks/ccount-B7is2MU0.mjs +0 -10
  627. package/dist/chunks/ccount-DtzbJUOh.cjs +0 -1
  628. package/dist/chunks/channel-BTWFNzkv.mjs +0 -5
  629. package/dist/chunks/channel-BqhnS5zl.cjs +0 -1
  630. package/dist/chunks/chunk-2KRD3SAO-COfwt0om.cjs +0 -1
  631. package/dist/chunks/chunk-2KRD3SAO-DWLzBIZw.mjs +0 -20
  632. package/dist/chunks/chunk-336JU56O-CqWDeAp1.cjs +0 -1
  633. package/dist/chunks/chunk-336JU56O-DbaX7hyp.mjs +0 -49
  634. package/dist/chunks/chunk-426QAEUC-MjtXwzdI.cjs +0 -1
  635. package/dist/chunks/chunk-426QAEUC-pmH9mm_X.mjs +0 -13
  636. package/dist/chunks/chunk-4BX2VUAB-B1LZI9QZ.mjs +0 -19
  637. package/dist/chunks/chunk-4BX2VUAB-Zs4zJRk9.cjs +0 -1
  638. package/dist/chunks/chunk-4TB4RGXK-BC8qRYSD.mjs +0 -3250
  639. package/dist/chunks/chunk-4TB4RGXK-Bq0teBqe.cjs +0 -206
  640. package/dist/chunks/chunk-55IACEB6-CaLO8kWA.mjs +0 -8
  641. package/dist/chunks/chunk-55IACEB6-DyTTYuc2.cjs +0 -1
  642. package/dist/chunks/chunk-5FUZZQ4R-6rlcIGG-.cjs +0 -62
  643. package/dist/chunks/chunk-5FUZZQ4R-DAWdfx4J.mjs +0 -3786
  644. package/dist/chunks/chunk-5PVQY5BW-7Voh8aPS.mjs +0 -1122
  645. package/dist/chunks/chunk-5PVQY5BW-DmATt7Fz.cjs +0 -2
  646. package/dist/chunks/chunk-67CJDMHE-DSEGOn_f.mjs +0 -20
  647. package/dist/chunks/chunk-67CJDMHE-zWcmgvwZ.cjs +0 -1
  648. package/dist/chunks/chunk-7N4EOEYR-CAuNhdG9.cjs +0 -1
  649. package/dist/chunks/chunk-7N4EOEYR-CnSg1Hfu.mjs +0 -29
  650. package/dist/chunks/chunk-AA7GKIK3-BmatWFnp.mjs +0 -24
  651. package/dist/chunks/chunk-AA7GKIK3-YMbh5HEs.cjs +0 -1
  652. package/dist/chunks/chunk-BSJP7CBP-BtFfqv7R.mjs +0 -83
  653. package/dist/chunks/chunk-BSJP7CBP-CjkEoJDh.cjs +0 -1
  654. package/dist/chunks/chunk-CIAEETIT-BP9BiKe5.cjs +0 -1
  655. package/dist/chunks/chunk-CIAEETIT-nVgPUEW1.mjs +0 -20
  656. package/dist/chunks/chunk-EDXVE4YY-Bw1v2mUF.cjs +0 -1
  657. package/dist/chunks/chunk-EDXVE4YY-e7599cf4.mjs +0 -26
  658. package/dist/chunks/chunk-ENJZ2VHE-9fAN50L-.cjs +0 -10
  659. package/dist/chunks/chunk-ENJZ2VHE-DaMNdqfV.mjs +0 -566
  660. package/dist/chunks/chunk-FMBD7UC4-CH_SSwhS.cjs +0 -15
  661. package/dist/chunks/chunk-FMBD7UC4-xT5c0WSd.mjs +0 -5
  662. package/dist/chunks/chunk-FOC6F5B3-AxSG6qaj.mjs +0 -20
  663. package/dist/chunks/chunk-FOC6F5B3-ScFIigAO.cjs +0 -1
  664. package/dist/chunks/chunk-ICPOFSXX-DQ4NxQTM.cjs +0 -122
  665. package/dist/chunks/chunk-ICPOFSXX-DbL0YBQf.mjs +0 -3290
  666. package/dist/chunks/chunk-K5T4RW27-BdGvq1o8.cjs +0 -94
  667. package/dist/chunks/chunk-K5T4RW27-CYdwJMQV.mjs +0 -16372
  668. package/dist/chunks/chunk-KGLVRYIC-BwOmLwqF.mjs +0 -20
  669. package/dist/chunks/chunk-KGLVRYIC-uzPiXgAg.cjs +0 -1
  670. package/dist/chunks/chunk-LIHQZDEY-ChgbfPTz.cjs +0 -1
  671. package/dist/chunks/chunk-LIHQZDEY-Csx8-523.mjs +0 -55
  672. package/dist/chunks/chunk-ORNJ4GCN-CCDHRflI.mjs +0 -25
  673. package/dist/chunks/chunk-ORNJ4GCN-HF28XIop.cjs +0 -1
  674. package/dist/chunks/chunk-OYMX7WX6-BAoDgMPF.mjs +0 -2038
  675. package/dist/chunks/chunk-OYMX7WX6-CGUpemDb.cjs +0 -231
  676. package/dist/chunks/chunk-QZHKN3VN-D1myzhE_.mjs +0 -12
  677. package/dist/chunks/chunk-QZHKN3VN-d_ESXyai.cjs +0 -1
  678. package/dist/chunks/chunk-U2HBQHQK-BXyrI_xP.mjs +0 -1875
  679. package/dist/chunks/chunk-U2HBQHQK-D62A_XCV.cjs +0 -70
  680. package/dist/chunks/chunk-X2U36JSP-BEHpYlmW.cjs +0 -1
  681. package/dist/chunks/chunk-X2U36JSP-CXhWYelJ.mjs +0 -68
  682. package/dist/chunks/chunk-XPW4576I-BidQL50C.cjs +0 -32
  683. package/dist/chunks/chunk-XPW4576I-DOztVf6t.mjs +0 -1146
  684. package/dist/chunks/chunk-YZCP3GAM-DrkjtME-.mjs +0 -60
  685. package/dist/chunks/chunk-YZCP3GAM-DuLQPyT4.cjs +0 -1
  686. package/dist/chunks/chunk-ZZ45TVLE-CSFFLvxb.mjs +0 -33
  687. package/dist/chunks/chunk-ZZ45TVLE-CZOUDLGO.cjs +0 -1
  688. package/dist/chunks/classDiagram-6PBFFD2Q-Ci3S9iu3.mjs +0 -30
  689. package/dist/chunks/classDiagram-6PBFFD2Q-GDkPRBlp.cjs +0 -1
  690. package/dist/chunks/classDiagram-v2-HSJHXN6E-B4vt694Q.cjs +0 -1
  691. package/dist/chunks/classDiagram-v2-HSJHXN6E-BkaFKbgJ.mjs +0 -30
  692. package/dist/chunks/clone-WSLD7bVs.mjs +0 -8
  693. package/dist/chunks/clone-_XTzxdN3.cjs +0 -1
  694. package/dist/chunks/constants-DJjFgioo.cjs +0 -451
  695. package/dist/chunks/constants-DMsOCPcF.mjs +0 -3268
  696. package/dist/chunks/core-C8BHLAAO.cjs +0 -12
  697. package/dist/chunks/core-D2KrVz4a.mjs +0 -4501
  698. package/dist/chunks/cose-bilkent-S5V4N54A-BXBidSxC.mjs +0 -2246
  699. package/dist/chunks/cose-bilkent-S5V4N54A-RkR02HV4.cjs +0 -1
  700. package/dist/chunks/cpp-DVBevX-J.cjs +0 -1
  701. package/dist/chunks/cpp-DnMQuZPn.mjs +0 -16
  702. package/dist/chunks/csharp-ByiKf6DR.mjs +0 -3
  703. package/dist/chunks/csharp-CHUT4JOq.cjs +0 -1
  704. package/dist/chunks/css-BqsWMbBt.mjs +0 -3
  705. package/dist/chunks/css-QEheyxtB.cjs +0 -1
  706. package/dist/chunks/dagre-C7z2UZ4M.mjs +0 -1483
  707. package/dist/chunks/dagre-KV5264BT-B5pZgbkN.cjs +0 -4
  708. package/dist/chunks/dagre-KV5264BT-Ct6qUqKI.mjs +0 -298
  709. package/dist/chunks/dagre-VHP8Ngkv.cjs +0 -1
  710. package/dist/chunks/dart-aYsezAEv.mjs +0 -3
  711. package/dist/chunks/dart-jPH5d8ma.cjs +0 -1
  712. package/dist/chunks/diagram-5BDNPKRD-B9hNG7ht.mjs +0 -112
  713. package/dist/chunks/diagram-5BDNPKRD-C1llOHQP.cjs +0 -10
  714. package/dist/chunks/diagram-G4DWMVQ6-9_YOaVXe.mjs +0 -546
  715. package/dist/chunks/diagram-G4DWMVQ6-CLdEGHkn.cjs +0 -24
  716. package/dist/chunks/diagram-MMDJMWI5-CnbiCUM3.cjs +0 -43
  717. package/dist/chunks/diagram-MMDJMWI5-DmStUoNk.mjs +0 -234
  718. package/dist/chunks/diagram-TYMM5635-BtMB4AKf.cjs +0 -24
  719. package/dist/chunks/diagram-TYMM5635-DmrkkW85.mjs +0 -144
  720. package/dist/chunks/dockerfile-1GBIWF66.mjs +0 -3
  721. package/dist/chunks/dockerfile-B2jMQOes.cjs +0 -1
  722. package/dist/chunks/engine-javascript-CYa8VRAu.mjs +0 -2373
  723. package/dist/chunks/engine-javascript-HHRWd9yA.cjs +0 -141
  724. package/dist/chunks/erDiagram-SMLLAGMA-5vkZ5DwJ.mjs +0 -1712
  725. package/dist/chunks/erDiagram-SMLLAGMA-luvZB3lF.cjs +0 -85
  726. package/dist/chunks/flowDiagram-DWJPFMVM-BpYbAeYP.cjs +0 -162
  727. package/dist/chunks/flowDiagram-DWJPFMVM-CGTiQBd7.mjs +0 -4175
  728. package/dist/chunks/ganttDiagram-T4ZO3ILL-BNtXyM0I.mjs +0 -3083
  729. package/dist/chunks/ganttDiagram-T4ZO3ILL-BaWZufgI.cjs +0 -292
  730. package/dist/chunks/gitGraph-7Q5UKJZL-Ds_Z9h4o.cjs +0 -1
  731. package/dist/chunks/gitGraph-7Q5UKJZL-DxMmuJIv.mjs +0 -3
  732. package/dist/chunks/gitGraphDiagram-UUTBAWPF-CmQR-xZp.mjs +0 -792
  733. package/dist/chunks/gitGraphDiagram-UUTBAWPF-DjMU1Vyg.cjs +0 -106
  734. package/dist/chunks/go-4mRqLTld.mjs +0 -3
  735. package/dist/chunks/go-BX-cNLGO.cjs +0 -1
  736. package/dist/chunks/graphlib-BfwqhpXp.mjs +0 -225
  737. package/dist/chunks/graphlib-CYv_-0LK.cjs +0 -1
  738. package/dist/chunks/graphql-4Htarzhp.mjs +0 -11
  739. package/dist/chunks/graphql-BnxAS09v.cjs +0 -1
  740. package/dist/chunks/html-CAN0GHkJ.cjs +0 -1
  741. package/dist/chunks/html-DW39yhuS.mjs +0 -10
  742. package/dist/chunks/i18next-loader-CyDs2NKf.mjs +0 -35
  743. package/dist/chunks/i18next-loader-cGwOOjK3.cjs +0 -1
  744. package/dist/chunks/info-OMHHGYJF-ChWZqC0a.mjs +0 -3
  745. package/dist/chunks/info-OMHHGYJF-u0RRQ9Uo.cjs +0 -1
  746. package/dist/chunks/infoDiagram-42DDH7IO-BbV_tozh.mjs +0 -29
  747. package/dist/chunks/infoDiagram-42DDH7IO-DOYkYMWg.cjs +0 -2
  748. package/dist/chunks/isEmpty-BHdznGlG.cjs +0 -1
  749. package/dist/chunks/isEmpty-jlCmuYeg.mjs +0 -35
  750. package/dist/chunks/ishikawaDiagram-UXIWVN3A-CbqoivFu.cjs +0 -70
  751. package/dist/chunks/ishikawaDiagram-UXIWVN3A-DJBG3b-A.mjs +0 -719
  752. package/dist/chunks/java-DD_iwrM-.mjs +0 -5
  753. package/dist/chunks/java-O-rzZ2Bn.cjs +0 -1
  754. package/dist/chunks/javascript-CJBlE5PB.mjs +0 -3
  755. package/dist/chunks/javascript-z9G2vOAZ.cjs +0 -1
  756. package/dist/chunks/journeyDiagram-VCZTEJTY-B5Peb7wS.cjs +0 -139
  757. package/dist/chunks/journeyDiagram-VCZTEJTY-BdMsFn3r.mjs +0 -885
  758. package/dist/chunks/json-C_epQRuA.cjs +0 -1
  759. package/dist/chunks/json-yRGZVu2_.mjs +0 -3
  760. package/dist/chunks/kanban-definition-6JOO6SKY-CwmSo6Ve.cjs +0 -89
  761. package/dist/chunks/kanban-definition-6JOO6SKY-ncNaxcxH.mjs +0 -980
  762. package/dist/chunks/kotlin-BmkhKZGf.mjs +0 -3
  763. package/dist/chunks/kotlin-Dj7KFgV1.cjs +0 -1
  764. package/dist/chunks/latex-BeVX0E4Z.mjs +0 -5
  765. package/dist/chunks/latex-u7qVP95p.cjs +0 -1
  766. package/dist/chunks/lightweight-i18n-Bb_VS9v5.mjs +0 -237
  767. package/dist/chunks/lightweight-i18n-CGBjC2TJ.cjs +0 -1
  768. package/dist/chunks/line-B7XG48Uf.cjs +0 -1
  769. package/dist/chunks/line-CWJNfvdn.mjs +0 -34
  770. package/dist/chunks/linear-BU4OjSPS.mjs +0 -289
  771. package/dist/chunks/linear-D5j5Vgij.cjs +0 -1
  772. package/dist/chunks/lua-6ceNckPi.cjs +0 -1
  773. package/dist/chunks/lua-CPnWrc7C.mjs +0 -5
  774. package/dist/chunks/markdown-DSiOSAsn.mjs +0 -3
  775. package/dist/chunks/markdown-Vce1p-mO.cjs +0 -1
  776. package/dist/chunks/mdast-util-math-B9OHoBuN.cjs +0 -5
  777. package/dist/chunks/mdast-util-math-D42zbZda.mjs +0 -151
  778. package/dist/chunks/mermaid-C2y_3PIg.mjs +0 -3
  779. package/dist/chunks/mermaid-Cu5vPKfS.cjs +0 -1
  780. package/dist/chunks/mermaid-parser.core-BrZQFEht.cjs +0 -3
  781. package/dist/chunks/mermaid-parser.core-DBhkcRo7.mjs +0 -57
  782. package/dist/chunks/mermaid.core-GiTRPJLF.cjs +0 -10
  783. package/dist/chunks/mermaid.core-uSzF9nF1.mjs +0 -977
  784. package/dist/chunks/messages--CbdZY2w.cjs +0 -1
  785. package/dist/chunks/messages--c74ihtM.mjs +0 -212
  786. package/dist/chunks/messages-041mNyU42.mjs +0 -212
  787. package/dist/chunks/messages-1hpCmcb5.cjs +0 -1
  788. package/dist/chunks/messages-44SP7ajI.mjs +0 -212
  789. package/dist/chunks/messages-4_3WFJMy2.cjs +0 -1
  790. package/dist/chunks/messages-7NvouWKA2.mjs +0 -212
  791. package/dist/chunks/messages-ADxG1iWK2.cjs +0 -1
  792. package/dist/chunks/messages-AnuHiDPc2.mjs +0 -212
  793. package/dist/chunks/messages-B1V7UT9I.mjs +0 -212
  794. package/dist/chunks/messages-B2Q9NH4D.mjs +0 -212
  795. package/dist/chunks/messages-B3MONaxw2.cjs +0 -1
  796. package/dist/chunks/messages-B3tNgyxG2.cjs +0 -1
  797. package/dist/chunks/messages-B6j77WNV2.mjs +0 -212
  798. package/dist/chunks/messages-B91FdwB0.cjs +0 -1
  799. package/dist/chunks/messages-B9igXgiw.cjs +0 -1
  800. package/dist/chunks/messages-BB1xM_oB.cjs +0 -1
  801. package/dist/chunks/messages-BEV0lzGv2.mjs +0 -212
  802. package/dist/chunks/messages-BG749_88.mjs +0 -212
  803. package/dist/chunks/messages-BGZLiYrQ.cjs +0 -1
  804. package/dist/chunks/messages-BGpGj8nJ2.mjs +0 -212
  805. package/dist/chunks/messages-BK6gK3wu.cjs +0 -1
  806. package/dist/chunks/messages-BKmAFG9Z.cjs +0 -1
  807. package/dist/chunks/messages-BMVJq-1T.cjs +0 -1
  808. package/dist/chunks/messages-BMsqJNz0.cjs +0 -1
  809. package/dist/chunks/messages-BNYDShPm2.mjs +0 -212
  810. package/dist/chunks/messages-BSVhckNg.cjs +0 -1
  811. package/dist/chunks/messages-BUaHDggs.cjs +0 -1
  812. package/dist/chunks/messages-BUaJv5qS.cjs +0 -1
  813. package/dist/chunks/messages-BW--wNis.mjs +0 -212
  814. package/dist/chunks/messages-BXcSH14N.cjs +0 -1
  815. package/dist/chunks/messages-BYOYrUOu.cjs +0 -1
  816. package/dist/chunks/messages-BYSE1Iq2.cjs +0 -1
  817. package/dist/chunks/messages-B_Mqw9Dl2.mjs +0 -212
  818. package/dist/chunks/messages-Bb225KE6.cjs +0 -1
  819. package/dist/chunks/messages-BbYwT3FH2.mjs +0 -212
  820. package/dist/chunks/messages-Bda8jwos2.mjs +0 -212
  821. package/dist/chunks/messages-BdpFAZGZ.mjs +0 -212
  822. package/dist/chunks/messages-BiDR95AW.cjs +0 -1
  823. package/dist/chunks/messages-BkAoxm6t.cjs +0 -1
  824. package/dist/chunks/messages-BmNLNUz_.mjs +0 -212
  825. package/dist/chunks/messages-BnGtg6t4.mjs +0 -212
  826. package/dist/chunks/messages-BnXkEkD_.mjs +0 -212
  827. package/dist/chunks/messages-BpUasRQ3.cjs +0 -1
  828. package/dist/chunks/messages-BwtU06Ax.mjs +0 -212
  829. package/dist/chunks/messages-BxV8K7y42.cjs +0 -1
  830. package/dist/chunks/messages-Bxhns4Ui.cjs +0 -1
  831. package/dist/chunks/messages-ByRcwLIO.mjs +0 -212
  832. package/dist/chunks/messages-C0sxGmLV2.cjs +0 -1
  833. package/dist/chunks/messages-C5nqE8O42.cjs +0 -1
  834. package/dist/chunks/messages-C7il6l-S.cjs +0 -1
  835. package/dist/chunks/messages-CFyGEGXM2.cjs +0 -1
  836. package/dist/chunks/messages-CHBH3EQG.mjs +0 -212
  837. package/dist/chunks/messages-CIYU5iEj.mjs +0 -212
  838. package/dist/chunks/messages-CJGOmFxi.mjs +0 -212
  839. package/dist/chunks/messages-CN2yjHzW.cjs +0 -1
  840. package/dist/chunks/messages-CP7Ncgaf.mjs +0 -212
  841. package/dist/chunks/messages-CP8YKa4F.mjs +0 -212
  842. package/dist/chunks/messages-CTy_3-mw2.cjs +0 -1
  843. package/dist/chunks/messages-CUxaqK8t2.mjs +0 -212
  844. package/dist/chunks/messages-CXDk_Rlr2.mjs +0 -212
  845. package/dist/chunks/messages-CYZxR91M.mjs +0 -212
  846. package/dist/chunks/messages-C_ogasse2.cjs +0 -1
  847. package/dist/chunks/messages-CbFuceEb.cjs +0 -1
  848. package/dist/chunks/messages-CbbYb7cc.cjs +0 -1
  849. package/dist/chunks/messages-CfO5kKI72.cjs +0 -1
  850. package/dist/chunks/messages-Cgv5DuNV.cjs +0 -1
  851. package/dist/chunks/messages-Cjm7Nj1C.mjs +0 -212
  852. package/dist/chunks/messages-CjzZ6nxv.mjs +0 -212
  853. package/dist/chunks/messages-CkBrRFY02.cjs +0 -1
  854. package/dist/chunks/messages-CpVtcYqo.mjs +0 -212
  855. package/dist/chunks/messages-CpppvIiu.cjs +0 -1
  856. package/dist/chunks/messages-CumomgDd2.mjs +0 -212
  857. package/dist/chunks/messages-CvCb4dCy.mjs +0 -212
  858. package/dist/chunks/messages-D3DNj1jh.mjs +0 -212
  859. package/dist/chunks/messages-D7d2U-tx.mjs +0 -212
  860. package/dist/chunks/messages-D8-vyZ2V.cjs +0 -1
  861. package/dist/chunks/messages-DFWhnXF12.mjs +0 -212
  862. package/dist/chunks/messages-DIpVfyX-2.cjs +0 -1
  863. package/dist/chunks/messages-DJBeEI7G.cjs +0 -1
  864. package/dist/chunks/messages-DJr1x1i2.mjs +0 -212
  865. package/dist/chunks/messages-DN7PU5Un2.mjs +0 -212
  866. package/dist/chunks/messages-DR8nFHdw2.cjs +0 -1
  867. package/dist/chunks/messages-DT5Ux3el.cjs +0 -1
  868. package/dist/chunks/messages-DVh_Bwwq.mjs +0 -212
  869. package/dist/chunks/messages-DVwHxslb.mjs +0 -212
  870. package/dist/chunks/messages-DZ1Pfnl0.mjs +0 -212
  871. package/dist/chunks/messages-Da2SYMf52.cjs +0 -1
  872. package/dist/chunks/messages-DaaqkvOz2.cjs +0 -1
  873. package/dist/chunks/messages-DdiqfVCc.cjs +0 -1
  874. package/dist/chunks/messages-DfZe7SKZ.cjs +0 -1
  875. package/dist/chunks/messages-DkJ0bcqu.cjs +0 -1
  876. package/dist/chunks/messages-DkmG49t8.cjs +0 -1
  877. package/dist/chunks/messages-Do3QV7QW.mjs +0 -212
  878. package/dist/chunks/messages-Do4o9ckW.cjs +0 -1
  879. package/dist/chunks/messages-DrbTe09r.cjs +0 -1
  880. package/dist/chunks/messages-Drxwphbg2.mjs +0 -212
  881. package/dist/chunks/messages-DtgIZDlN.cjs +0 -1
  882. package/dist/chunks/messages-DtloGH1v2.mjs +0 -212
  883. package/dist/chunks/messages-Du0zg7UM.mjs +0 -212
  884. package/dist/chunks/messages-DuA_D23n.mjs +0 -212
  885. package/dist/chunks/messages-DwKRw3jP2.mjs +0 -212
  886. package/dist/chunks/messages-DxCaGN-Q2.cjs +0 -1
  887. package/dist/chunks/messages-DxpBJ5ZY.cjs +0 -1
  888. package/dist/chunks/messages-DyWu9_0D.cjs +0 -1
  889. package/dist/chunks/messages-DzAYvMm72.mjs +0 -212
  890. package/dist/chunks/messages-Dzmge-lj.mjs +0 -212
  891. package/dist/chunks/messages-ETNAE7WV.mjs +0 -212
  892. package/dist/chunks/messages-F4r6ruTX2.mjs +0 -212
  893. package/dist/chunks/messages-FNQdT9Da.mjs +0 -212
  894. package/dist/chunks/messages-FYGyC6zk2.mjs +0 -212
  895. package/dist/chunks/messages-Hg0BECWK.cjs +0 -1
  896. package/dist/chunks/messages-JlduXweH2.cjs +0 -1
  897. package/dist/chunks/messages-Km2PU_o7.cjs +0 -1
  898. package/dist/chunks/messages-MgJnGL9X2.cjs +0 -1
  899. package/dist/chunks/messages-PIoKW4js2.cjs +0 -1
  900. package/dist/chunks/messages-VEm9mp5H.cjs +0 -1
  901. package/dist/chunks/messages-WgwkG5PL2.cjs +0 -1
  902. package/dist/chunks/messages-X46KAUoI.cjs +0 -1
  903. package/dist/chunks/messages-ZS1Ro8ZB.mjs +0 -212
  904. package/dist/chunks/messages-ZZd1ckSO2.cjs +0 -1
  905. package/dist/chunks/messages-dyhHlgE9.mjs +0 -212
  906. package/dist/chunks/messages-fAEKtYXO.mjs +0 -212
  907. package/dist/chunks/messages-hhptyJO3.mjs +0 -212
  908. package/dist/chunks/messages-hk4dinYI.mjs +0 -212
  909. package/dist/chunks/messages-knSLxvI6.mjs +0 -212
  910. package/dist/chunks/messages-lORohDgW2.mjs +0 -212
  911. package/dist/chunks/messages-mvnz8DvU.mjs +0 -212
  912. package/dist/chunks/messages-pHWKsrcZ.mjs +0 -212
  913. package/dist/chunks/messages-q2McAyOz.mjs +0 -212
  914. package/dist/chunks/messages-r62SI44r.mjs +0 -212
  915. package/dist/chunks/messages-uFdMhLbJ.mjs +0 -212
  916. package/dist/chunks/messages-vRqPeNM_.cjs +0 -1
  917. package/dist/chunks/messages-vhq442qv.cjs +0 -1
  918. package/dist/chunks/micromark-extension-math-BXJknrtf.cjs +0 -1
  919. package/dist/chunks/micromark-extension-math-x3wvkKaN.mjs +0 -169
  920. package/dist/chunks/mindmap-definition-QFDTVHPH-6O8s-b35.cjs +0 -96
  921. package/dist/chunks/mindmap-definition-QFDTVHPH-BfOyKFtC.mjs +0 -1013
  922. package/dist/chunks/notifier-B-wErJJB.mjs +0 -73
  923. package/dist/chunks/notifier-CwnFVNdD.cjs +0 -1
  924. package/dist/chunks/objectWithoutProperties-BbzyiphF.cjs +0 -1
  925. package/dist/chunks/objectWithoutProperties-Dci1-l7D.mjs +0 -23
  926. package/dist/chunks/one-light-D2mpnHEP.cjs +0 -1
  927. package/dist/chunks/one-light-bqnXiA0I.mjs +0 -4
  928. package/dist/chunks/ordinal-CN3SDQau.mjs +0 -65
  929. package/dist/chunks/ordinal-DFFZs5-y.cjs +0 -1
  930. package/dist/chunks/packet-4T2RLAQJ-7DW35MGl.mjs +0 -3
  931. package/dist/chunks/packet-4T2RLAQJ-B5XvZd2W.cjs +0 -1
  932. package/dist/chunks/php-BMavm1CR.cjs +0 -1
  933. package/dist/chunks/php-Dejkjxb5.mjs +0 -18
  934. package/dist/chunks/pie-ZZUOXDRM-Dtuq0w2k.mjs +0 -3
  935. package/dist/chunks/pie-ZZUOXDRM-SOG0aDPa.cjs +0 -1
  936. package/dist/chunks/pieDiagram-DEJITSTG-B1sjciNi.mjs +0 -179
  937. package/dist/chunks/pieDiagram-DEJITSTG-BkEwYBz9.cjs +0 -30
  938. package/dist/chunks/python-Dcoit5Q5.cjs +0 -1
  939. package/dist/chunks/python-tdu-oDWx.mjs +0 -3
  940. package/dist/chunks/quadrantDiagram-34T5L4WZ-CV838wf-.mjs +0 -1960
  941. package/dist/chunks/quadrantDiagram-34T5L4WZ-RJme4lkz.cjs +0 -7
  942. package/dist/chunks/r-BdDCwgEs.cjs +0 -1
  943. package/dist/chunks/r-D8fCyoTl.mjs +0 -5
  944. package/dist/chunks/radar-PYXPWWZC-Bz4lwSbg.mjs +0 -3
  945. package/dist/chunks/radar-PYXPWWZC-Doch8Lt3.cjs +0 -1
  946. package/dist/chunks/requirementDiagram-MS252O5E-CA3LUAVZ.mjs +0 -2224
  947. package/dist/chunks/requirementDiagram-MS252O5E-CMqFsK_K.cjs +0 -84
  948. package/dist/chunks/ruby-DHm8_lqY.cjs +0 -1
  949. package/dist/chunks/ruby-Z7wCYjey.mjs +0 -33
  950. package/dist/chunks/rust-Cdm0j4IC.cjs +0 -1
  951. package/dist/chunks/rust-D5IQAarB.mjs +0 -3
  952. package/dist/chunks/sankeyDiagram-XADWPNL6-BPaUkDQv.cjs +0 -10
  953. package/dist/chunks/sankeyDiagram-XADWPNL6-Cw8wB2YO.mjs +0 -909
  954. package/dist/chunks/scala-CbcMYkuq.mjs +0 -3
  955. package/dist/chunks/scala-Tb1u_9W3.cjs +0 -1
  956. package/dist/chunks/sequenceDiagram-FGHM5R23-DbM-gyMR.cjs +0 -157
  957. package/dist/chunks/sequenceDiagram-FGHM5R23-pm0MaeXC.mjs +0 -4181
  958. package/dist/chunks/shellscript-CZefq5l_.mjs +0 -3
  959. package/dist/chunks/shellscript-D6KsENaG.cjs +0 -1
  960. package/dist/chunks/sql-BlpbD7FB.cjs +0 -1
  961. package/dist/chunks/sql-C4ibVEDs.mjs +0 -3
  962. package/dist/chunks/stateDiagram-FHFEXIEX-CEcLtV9Z.cjs +0 -1
  963. package/dist/chunks/stateDiagram-FHFEXIEX-CMcsvm0M.mjs +0 -218
  964. package/dist/chunks/stateDiagram-v2-QKLJ7IA2-C4nZGNBm.mjs +0 -28
  965. package/dist/chunks/stateDiagram-v2-QKLJ7IA2-aa692V81.cjs +0 -1
  966. package/dist/chunks/swift-Drpgj9J0.mjs +0 -3
  967. package/dist/chunks/swift-DubrdZus.cjs +0 -1
  968. package/dist/chunks/timeline-definition-GMOUNBTQ-DwHKPj3j.mjs +0 -1084
  969. package/dist/chunks/timeline-definition-GMOUNBTQ-ceXDJGg_.cjs +0 -120
  970. package/dist/chunks/tools-DPov06L-.mjs +0 -11458
  971. package/dist/chunks/tools-NAqHj-Cy.cjs +0 -9
  972. package/dist/chunks/treeView-SZITEDCU-BUuSm_Hn.cjs +0 -1
  973. package/dist/chunks/treeView-SZITEDCU-DPG9FJ6Q.mjs +0 -3
  974. package/dist/chunks/treemap-W4RFUUIX-BerKlw0i.cjs +0 -1
  975. package/dist/chunks/treemap-W4RFUUIX-N4tZJR1-.mjs +0 -3
  976. package/dist/chunks/typescript-BKtlqLze.cjs +0 -1
  977. package/dist/chunks/typescript-Bnpf4OG6.mjs +0 -5
  978. package/dist/chunks/vennDiagram-DHZGUBPP-BzOeMJe8.cjs +0 -34
  979. package/dist/chunks/vennDiagram-DHZGUBPP-Gfy0QWtB.mjs +0 -1876
  980. package/dist/chunks/vitesse-dark-BSL-cCXL.cjs +0 -1
  981. package/dist/chunks/vitesse-dark-dflHsflb.mjs +0 -4
  982. package/dist/chunks/wardley-RL74JXVD-BzKtPJ3g.cjs +0 -1
  983. package/dist/chunks/wardley-RL74JXVD-C7Hzc5y2.mjs +0 -3
  984. package/dist/chunks/wardleyDiagram-NUSXRM2D-ChZiL3a0.mjs +0 -594
  985. package/dist/chunks/wardleyDiagram-NUSXRM2D-qo6LFohO.cjs +0 -20
  986. package/dist/chunks/xml-C1PUeKuL.mjs +0 -5
  987. package/dist/chunks/xml-CwiH0x4E.cjs +0 -1
  988. package/dist/chunks/xychartDiagram-5P7HB3ND-CH1Z2Cbf.cjs +0 -7
  989. package/dist/chunks/xychartDiagram-5P7HB3ND-t_dhLiOA.mjs +0 -2017
  990. package/dist/chunks/yaml-CecI9urB.mjs +0 -3
  991. package/dist/chunks/yaml-CkVxfQ4c.cjs +0 -1
  992. package/dist/messages--zgIPYtb.mjs +0 -212
  993. package/dist/messages-4jULpVvw.mjs +0 -212
  994. package/dist/messages-AbwSlRf_.mjs +0 -212
  995. package/dist/messages-B-dl7Pwb2.mjs +0 -212
  996. package/dist/messages-B3rCRhb1.mjs +0 -212
  997. package/dist/messages-B73L8nKc2.mjs +0 -212
  998. package/dist/messages-BAjsD2Vm2.mjs +0 -212
  999. package/dist/messages-BBodSb5B2.mjs +0 -212
  1000. package/dist/messages-BTpn6H9x2.mjs +0 -212
  1001. package/dist/messages-BWb0GjTj2.mjs +0 -212
  1002. package/dist/messages-BbCgnri12.mjs +0 -212
  1003. package/dist/messages-Bfon_Y3q.mjs +0 -212
  1004. package/dist/messages-BhOtow9J2.mjs +0 -212
  1005. package/dist/messages-BoB7m0uu2.mjs +0 -212
  1006. package/dist/messages-BsOZPjeg.mjs +0 -212
  1007. package/dist/messages-BuzKUYPV.mjs +0 -212
  1008. package/dist/messages-BzOKMdMQ.mjs +0 -212
  1009. package/dist/messages-C2H3PeQW2.mjs +0 -212
  1010. package/dist/messages-C5KNzSTk.mjs +0 -212
  1011. package/dist/messages-CIDYjE6l.mjs +0 -212
  1012. package/dist/messages-CJmyF5ye.mjs +0 -212
  1013. package/dist/messages-CTwiYb2a2.mjs +0 -212
  1014. package/dist/messages-CUHoJaDO.mjs +0 -212
  1015. package/dist/messages-CVeuqUjQ2.mjs +0 -212
  1016. package/dist/messages-CW75b4sz.mjs +0 -212
  1017. package/dist/messages-CXd7YeWV.mjs +0 -212
  1018. package/dist/messages-CjlYkunD.mjs +0 -212
  1019. package/dist/messages-CrGx64yd.mjs +0 -212
  1020. package/dist/messages-Ct0jbgHd.mjs +0 -212
  1021. package/dist/messages-CtKrCYD1.mjs +0 -212
  1022. package/dist/messages-Cu2eLjfJ.mjs +0 -212
  1023. package/dist/messages-CvwQ-fK_2.mjs +0 -212
  1024. package/dist/messages-Cy6UYN9b.mjs +0 -212
  1025. package/dist/messages-D01vnfA9.mjs +0 -212
  1026. package/dist/messages-D0BAV45W.mjs +0 -212
  1027. package/dist/messages-D5LGpdga.mjs +0 -212
  1028. package/dist/messages-DATK4ftv.mjs +0 -212
  1029. package/dist/messages-DEl77Urv2.mjs +0 -212
  1030. package/dist/messages-DHNjM2nv2.mjs +0 -212
  1031. package/dist/messages-DMW8b_sO.mjs +0 -212
  1032. package/dist/messages-DNmgANKr.mjs +0 -212
  1033. package/dist/messages-DQaa3cEM.mjs +0 -212
  1034. package/dist/messages-DSlD4bV9.mjs +0 -212
  1035. package/dist/messages-DTzbkXFt.mjs +0 -212
  1036. package/dist/messages-DbZihxtV.mjs +0 -212
  1037. package/dist/messages-DeE8fyKQ.mjs +0 -212
  1038. package/dist/messages-Dg-TpO2S2.mjs +0 -212
  1039. package/dist/messages-DgP82LzF.mjs +0 -212
  1040. package/dist/messages-Dh3Vt7WC.mjs +0 -212
  1041. package/dist/messages-DiVVyZD22.mjs +0 -212
  1042. package/dist/messages-DpRnGjoe.mjs +0 -212
  1043. package/dist/messages-DqZmrFaa2.mjs +0 -212
  1044. package/dist/messages-Dra9Fz5Q.mjs +0 -212
  1045. package/dist/messages-DuPBRgEF2.mjs +0 -212
  1046. package/dist/messages-DuxEyAY-2.mjs +0 -212
  1047. package/dist/messages-FmJD6lHR2.mjs +0 -212
  1048. package/dist/messages-ONielGl92.mjs +0 -212
  1049. package/dist/messages-RzgUqCGb2.mjs +0 -212
  1050. package/dist/messages-U22AKGKs.mjs +0 -212
  1051. package/dist/messages-XufeeRfO.mjs +0 -212
  1052. package/dist/messages-fprUm7SO2.mjs +0 -212
  1053. package/dist/messages-gFNdz3Tn2.mjs +0 -212
  1054. package/dist/messages-h_n5GBm6.mjs +0 -212
  1055. package/dist/messages-oOogIpsL2.mjs +0 -212
  1056. package/dist/messages-otwg3KcK.mjs +0 -212
  1057. package/dist/messages-rDDoBMWb.mjs +0 -212
  1058. package/dist/messages-trQPxZIu.mjs +0 -212
  1059. package/src/tools/code/highlight-applier.ts +0 -229
  1060. package/src/tools/code/shiki-loader.ts +0 -135
  1061. /package/dist/chunks/{am-CyXvGFRE.cjs → am-CGgVs8Sg.cjs} +0 -0
  1062. /package/dist/chunks/{am-JTszxMum.mjs → am-TVbhxPdQ.mjs} +0 -0
  1063. /package/dist/chunks/{ar-CME8m7Ug.mjs → ar-ClSvzRAM.mjs} +0 -0
  1064. /package/dist/chunks/{ar-BbusVfTp.cjs → ar-nFMIw80i.cjs} +0 -0
  1065. /package/dist/chunks/{array-BMXfsgb2.cjs → array-B193TMZz.cjs} +0 -0
  1066. /package/dist/chunks/{array-B4E6ednJ.mjs → array-ChMzkF5S.mjs} +0 -0
  1067. /package/dist/chunks/{az-D7MMnw6r.cjs → az-Cb6l6ydx.cjs} +0 -0
  1068. /package/dist/chunks/{az-CU1BXEnK.mjs → az-Df0rChHp.mjs} +0 -0
  1069. /package/dist/chunks/{bg-C3H2Qh_2.cjs → bg-BdZUTRFn.cjs} +0 -0
  1070. /package/dist/chunks/{bg-C1QKbOOv.mjs → bg-DLJ0oZ8E.mjs} +0 -0
  1071. /package/dist/chunks/{bn-BGOycYTM.cjs → bn-CneGelWq.cjs} +0 -0
  1072. /package/dist/chunks/{bn-DbDE4DPn.mjs → bn-rM6ek4mO.mjs} +0 -0
  1073. /package/dist/chunks/{bs-5jPxlF97.mjs → bs-16ZwjsQl.mjs} +0 -0
  1074. /package/dist/chunks/{bs-C7amuK1D.cjs → bs-XAmTKQeJ.cjs} +0 -0
  1075. /package/dist/chunks/{cs-BEZB2qcc.mjs → cs-C-zvdtZ-.mjs} +0 -0
  1076. /package/dist/chunks/{cs-BUD3Muxp.cjs → cs-DKYguxBC.cjs} +0 -0
  1077. /package/dist/chunks/{cytoscape.esm-CWkCAUzT.mjs → cytoscape.esm-BsvVxiuI.mjs} +0 -0
  1078. /package/dist/chunks/{cytoscape.esm-CjWrb5SM.cjs → cytoscape.esm-gv01QJ5y.cjs} +0 -0
  1079. /package/dist/chunks/{da-DXZ2uOgL.mjs → da-D1HzIKpF.mjs} +0 -0
  1080. /package/dist/chunks/{da-CO2FYbLa.cjs → da-DiLbdYqu.cjs} +0 -0
  1081. /package/dist/chunks/{de-B8nkOjfD.cjs → de-ClyUjm_W.cjs} +0 -0
  1082. /package/dist/chunks/{de-D4FxC1Yq.mjs → de-Dpmwqjaw.mjs} +0 -0
  1083. /package/dist/chunks/{default-DPWNu2LM.mjs → default-D5Eal3bU.mjs} +0 -0
  1084. /package/dist/chunks/{default-DP8dtTxC.cjs → default-D9azvkQ_.cjs} +0 -0
  1085. /package/dist/chunks/{defaultLocale-BxWls4I1.cjs → defaultLocale-CSsowJXG.cjs} +0 -0
  1086. /package/dist/chunks/{defaultLocale-BYV2aVaI.mjs → defaultLocale-DiiR34KB.mjs} +0 -0
  1087. /package/dist/chunks/{dist-CKM-fjTE.mjs → dist-BFuUZzlT.mjs} +0 -0
  1088. /package/dist/chunks/{dist-CxdzFxpy.cjs → dist-DS4hv48u.cjs} +0 -0
  1089. /package/dist/chunks/{el-D2ILhp1-.cjs → el-CFVhJTIb.cjs} +0 -0
  1090. /package/dist/chunks/{el-DwIVDdku.mjs → el-DQ-dU1wp.mjs} +0 -0
  1091. /package/dist/chunks/{es-DXxnOS9P.cjs → es-BlajxX2r.cjs} +0 -0
  1092. /package/dist/chunks/{es-DlO4MePt.mjs → es-Dhzgzei6.mjs} +0 -0
  1093. /package/dist/chunks/{et-BBSbb8pL.mjs → et-CnhEwclb.mjs} +0 -0
  1094. /package/dist/chunks/{et-mT4xnDc7.cjs → et-ggACA1d9.cjs} +0 -0
  1095. /package/dist/chunks/{fa-DsJou-pw.mjs → fa-B4zSY96K.mjs} +0 -0
  1096. /package/dist/chunks/{fa-D9CUFSHX.cjs → fa-DuYd0CQw.cjs} +0 -0
  1097. /package/dist/chunks/{fi-CsMgo7Wk.mjs → fi-B525ro09.mjs} +0 -0
  1098. /package/dist/chunks/{fi-DpCqdl_1.cjs → fi-D3-4SL4-.cjs} +0 -0
  1099. /package/dist/chunks/{fil-BjeZREJI.cjs → fil-Cs84dmNe.cjs} +0 -0
  1100. /package/dist/chunks/{fil-Dlw8sEta.mjs → fil-DPB6Byn0.mjs} +0 -0
  1101. /package/dist/chunks/{fr-DYmwW1y1.cjs → fr-C8Z2PE7u.cjs} +0 -0
  1102. /package/dist/chunks/{fr-DeapG5NH.mjs → fr-CbMgtPHe.mjs} +0 -0
  1103. /package/dist/chunks/{gu-klAnA_ns.mjs → gu-BDs1p7Uo.mjs} +0 -0
  1104. /package/dist/chunks/{gu-4g6NA9h8.cjs → gu-CPQY3Iyq.cjs} +0 -0
  1105. /package/dist/chunks/{he-2H5DcbO0.cjs → he-BkMGwSM7.cjs} +0 -0
  1106. /package/dist/chunks/{he-9TdyXc1J.mjs → he-DWa_-C46.mjs} +0 -0
  1107. /package/dist/chunks/{hi-DVOss_Zp.mjs → hi-Buu8Rua9.mjs} +0 -0
  1108. /package/dist/chunks/{hi-Dvb4O5oj.cjs → hi-ClQSrRZz.cjs} +0 -0
  1109. /package/dist/chunks/{hr-CXo-QFLf.mjs → hr-WosECnFF.mjs} +0 -0
  1110. /package/dist/chunks/{hr-B4Y5vULZ.cjs → hr-wrh48ogh.cjs} +0 -0
  1111. /package/dist/chunks/{hu-D3Pi7CJx.cjs → hu-BSVMkfs2.cjs} +0 -0
  1112. /package/dist/chunks/{hu-B6uKq-NU.mjs → hu-CeBjtxCd.mjs} +0 -0
  1113. /package/dist/chunks/{hy-DZ74SDlC.cjs → hy-CwF59lJj.cjs} +0 -0
  1114. /package/dist/chunks/{hy-B7CWqbUW.mjs → hy-DwfBE3Yt.mjs} +0 -0
  1115. /package/dist/chunks/{i18next-CkovSPO7.cjs → i18next-C14J6E5L.cjs} +0 -0
  1116. /package/dist/chunks/{i18next-BFvS_Rnh.mjs → i18next-DjO-l2Ee.mjs} +0 -0
  1117. /package/dist/chunks/{id-C5d2QGEQ.mjs → id-CBV5ivYd.mjs} +0 -0
  1118. /package/dist/chunks/{id-WfjZeYKN.cjs → id-DN2KcAmG.cjs} +0 -0
  1119. /package/dist/chunks/{init-C3Dyaaly.mjs → init-C2Iht9jH.mjs} +0 -0
  1120. /package/dist/chunks/{init-BvlcnoG2.cjs → init-DMaknHdL.cjs} +0 -0
  1121. /package/dist/chunks/{isArrayLikeObject-CnaR8YJm.cjs → isArrayLikeObject-Bk7ImDHR.cjs} +0 -0
  1122. /package/dist/chunks/{isArrayLikeObject-B-1mfvNK.mjs → isArrayLikeObject-CyB7POJY.mjs} +0 -0
  1123. /package/dist/chunks/{it-hqsqt6f7.cjs → it-CSt1S7SQ.cjs} +0 -0
  1124. /package/dist/chunks/{it-BgPXC2_F.mjs → it-CU5gg8BZ.mjs} +0 -0
  1125. /package/dist/chunks/{ja-BwLgKsdH.cjs → ja-BbwATm6F.cjs} +0 -0
  1126. /package/dist/chunks/{ja-CQ7ujOz3.mjs → ja-khPKQhMG.mjs} +0 -0
  1127. /package/dist/chunks/{ka-xoKako16.cjs → ka-Cqnq4zZT.cjs} +0 -0
  1128. /package/dist/chunks/{ka-DAPmSm_-.mjs → ka-DN17rDOq.mjs} +0 -0
  1129. /package/dist/chunks/{katex-_C7fvrbX.cjs → katex-D_RH6O9V.cjs} +0 -0
  1130. /package/dist/chunks/{katex-Bbz34ZLq.mjs → katex-thO7aa9b.mjs} +0 -0
  1131. /package/dist/chunks/{km-BJ9H-RbD.mjs → km-BbS9HEwx.mjs} +0 -0
  1132. /package/dist/chunks/{km-D7Fl8wAA.cjs → km-COh3mhzp.cjs} +0 -0
  1133. /package/dist/chunks/{kn-CthdB8vH.mjs → kn-7TPoJJQt.mjs} +0 -0
  1134. /package/dist/chunks/{kn-Ckju1oeq.cjs → kn-CX062fVg.cjs} +0 -0
  1135. /package/dist/chunks/{ko-DbEA41LU.mjs → ko-CDI2MnWL.mjs} +0 -0
  1136. /package/dist/chunks/{ko-Dt1tQEjC.cjs → ko-gSw_U9kC.cjs} +0 -0
  1137. /package/dist/chunks/{ku-B_j9qSrv.mjs → ku-DONc_aap.mjs} +0 -0
  1138. /package/dist/chunks/{ku-_i2C5XD5.cjs → ku-DnvmAkID.cjs} +0 -0
  1139. /package/dist/chunks/{lo-DfEpgG9m.cjs → lo-BrwlEjmE.cjs} +0 -0
  1140. /package/dist/chunks/{lo-DSklR1Zs.mjs → lo-PtNU87QX.mjs} +0 -0
  1141. /package/dist/chunks/{lt-BwLILIED.cjs → lt-Bw969G31.cjs} +0 -0
  1142. /package/dist/chunks/{lt-C9aVbfRt.mjs → lt-CV9PgETS.mjs} +0 -0
  1143. /package/dist/chunks/{lv-DLwMSEc0.mjs → lv-CFPT5CoC.mjs} +0 -0
  1144. /package/dist/chunks/{lv-DdrYab3x.cjs → lv-DhwZOfiA.cjs} +0 -0
  1145. /package/dist/chunks/{micromark-factory-space-BnsBDplI.cjs → micromark-factory-space-CsUhZvC1.cjs} +0 -0
  1146. /package/dist/chunks/{micromark-factory-space-C6wz33de.mjs → micromark-factory-space-y4SDWQKm.mjs} +0 -0
  1147. /package/dist/chunks/{mk-D96bSjMK.mjs → mk-5waYEn6e.mjs} +0 -0
  1148. /package/dist/chunks/{mk-CsPHE4cO.cjs → mk-vuwbN_RA.cjs} +0 -0
  1149. /package/dist/chunks/{ml-CAsiw8BP.cjs → ml-DQZZm6v3.cjs} +0 -0
  1150. /package/dist/chunks/{ml-D1Ek94RG.mjs → ml-iK4LpGaW.mjs} +0 -0
  1151. /package/dist/chunks/{mn-Db6DwHPv.cjs → mn-Dz3r2r3T.cjs} +0 -0
  1152. /package/dist/chunks/{mn-CyNCFOYP.mjs → mn-nfQCBqsj.mjs} +0 -0
  1153. /package/dist/chunks/{mr-CaA3xXVf.mjs → mr-8ddBHqrW.mjs} +0 -0
  1154. /package/dist/chunks/{mr-BBAuoEIQ.cjs → mr-BDjve7Md.cjs} +0 -0
  1155. /package/dist/chunks/{ms-Cfv7BOEG.cjs → ms-2boGmWFn.cjs} +0 -0
  1156. /package/dist/chunks/{ms-IZU-A3Qk.mjs → ms-BRxHmUVO.mjs} +0 -0
  1157. /package/dist/chunks/{my-C-AQLGIp.mjs → my-Bq-MP3br.mjs} +0 -0
  1158. /package/dist/chunks/{my-DOLHceI8.cjs → my-BtRZdE5q.cjs} +0 -0
  1159. /package/dist/chunks/{native-DbFHGXp1.cjs → native-Bok_u8yD.cjs} +0 -0
  1160. /package/dist/chunks/{native-CarRLbbJ.mjs → native-DIGOFhyn.mjs} +0 -0
  1161. /package/dist/chunks/{ne-LaymXAjm.mjs → ne-B6JfM08W.mjs} +0 -0
  1162. /package/dist/chunks/{ne-B2gHspK_.cjs → ne-C9oc_I3v.cjs} +0 -0
  1163. /package/dist/chunks/{nl-C5ezxTkA.cjs → nl-CkIGPyM6.cjs} +0 -0
  1164. /package/dist/chunks/{nl-Dm1eVwTA.mjs → nl-NuO8CW66.mjs} +0 -0
  1165. /package/dist/chunks/{no-B2WicGhz.mjs → no-BtwrqS-b.mjs} +0 -0
  1166. /package/dist/chunks/{no-D4hjenPs.cjs → no-De7tM2WX.cjs} +0 -0
  1167. /package/dist/chunks/{pa-CemLebw7.cjs → pa-Bm15OLTz.cjs} +0 -0
  1168. /package/dist/chunks/{pa-ry61xHq9.mjs → pa-ClSxjHFF.mjs} +0 -0
  1169. /package/dist/chunks/{path-CLcQoP7n.cjs → path-CFQyJ4S5.cjs} +0 -0
  1170. /package/dist/chunks/{path-Crax6eds.mjs → path-iPyWZTLQ.mjs} +0 -0
  1171. /package/dist/chunks/{pl-DzCnx7eR.mjs → pl-C-aTCeRd.mjs} +0 -0
  1172. /package/dist/chunks/{pl-D_sFAkCs.cjs → pl-D80QrSlq.cjs} +0 -0
  1173. /package/dist/chunks/{ps-DKXG6JHY.mjs → ps-B8wPRrcC.mjs} +0 -0
  1174. /package/dist/chunks/{ps-ygHHO68A.cjs → ps-ySfeV5NE.cjs} +0 -0
  1175. /package/dist/chunks/{pt-e09B0rEd.mjs → pt-8tijWt3B.mjs} +0 -0
  1176. /package/dist/chunks/{pt-x_mmaTtD.cjs → pt-Bigoi5oj.cjs} +0 -0
  1177. /package/dist/chunks/{ro-HNnYR5pB.mjs → ro-BiUSkkwp.mjs} +0 -0
  1178. /package/dist/chunks/{ro-CLGSgHzJ.cjs → ro-Dvtjmd-W.cjs} +0 -0
  1179. /package/dist/chunks/{rough.esm-BaIXPgTh.cjs → rough.esm-DC-UFdM0.cjs} +0 -0
  1180. /package/dist/chunks/{rough.esm-CChKUjNP.mjs → rough.esm-buj-m5wB.mjs} +0 -0
  1181. /package/dist/chunks/{ru-LpaLXWmO.cjs → ru-dq73Ra3e.cjs} +0 -0
  1182. /package/dist/chunks/{ru-D_jTWgK8.mjs → ru-qkCthz2J.mjs} +0 -0
  1183. /package/dist/chunks/{sd-B5PS8K1I.cjs → sd-BhtQCaFq.cjs} +0 -0
  1184. /package/dist/chunks/{sd-B7bgXBin.mjs → sd-DfoXSEBK.mjs} +0 -0
  1185. /package/dist/chunks/{si-BjMoO5xu.cjs → si-CWG8h4tD.cjs} +0 -0
  1186. /package/dist/chunks/{si-aQCsTBIp.mjs → si-RPCp-GrG.mjs} +0 -0
  1187. /package/dist/chunks/{sk-pQPYnDDU.cjs → sk-Bkag9oKD.cjs} +0 -0
  1188. /package/dist/chunks/{sk-Bjrct9rr.mjs → sk-CVRHQjYN.mjs} +0 -0
  1189. /package/dist/chunks/{sl-B_yalM3h.cjs → sl-BhupPCcO.cjs} +0 -0
  1190. /package/dist/chunks/{sl-DvS57kCB.mjs → sl-Clf3YXji.mjs} +0 -0
  1191. /package/dist/chunks/{sq-gzZkHXFJ.cjs → sq-Bosym4Xb.cjs} +0 -0
  1192. /package/dist/chunks/{sq-BexoWiW2.mjs → sq-C-nwTgWs.mjs} +0 -0
  1193. /package/dist/chunks/{sr-CXir4bLq.mjs → sr-BiElo1CU.mjs} +0 -0
  1194. /package/dist/chunks/{sr-O4v1KJY1.cjs → sr-DFPGZJ0s.cjs} +0 -0
  1195. /package/dist/chunks/{src-d9yswOqA.cjs → src-al3Kn9PA.cjs} +0 -0
  1196. /package/dist/chunks/{src-yreeH1hr.mjs → src-gZQLeVvM.mjs} +0 -0
  1197. /package/dist/chunks/{sv-D0tEFwN7.cjs → sv-CiYmSxqX.cjs} +0 -0
  1198. /package/dist/chunks/{sv-B_Owhjrs.mjs → sv-DVztafBI.mjs} +0 -0
  1199. /package/dist/chunks/{sw-DE8oPVEt.cjs → sw-CMbHoINv.cjs} +0 -0
  1200. /package/dist/chunks/{sw-B4p84FCO.mjs → sw-CgJk20G2.mjs} +0 -0
  1201. /package/dist/chunks/{ta-BCVLtFMU.cjs → ta-BrC1o95Z.cjs} +0 -0
  1202. /package/dist/chunks/{ta-BU_-jQ33.mjs → ta-rqChn3y2.mjs} +0 -0
  1203. /package/dist/chunks/{te-BISdOeGS.cjs → te-DAKpWpi8.cjs} +0 -0
  1204. /package/dist/chunks/{te-5FGke4TK.mjs → te-LIsqeDyD.mjs} +0 -0
  1205. /package/dist/chunks/{th-DFyekAQ3.mjs → th-Bm6lDr_S.mjs} +0 -0
  1206. /package/dist/chunks/{th-CJXhSA-L.cjs → th-D0CG2M2k.cjs} +0 -0
  1207. /package/dist/chunks/{tr-BjTvmhJt.cjs → tr-Bw_nVU1b.cjs} +0 -0
  1208. /package/dist/chunks/{tr-C7Zj3lX4.mjs → tr-g8oLvvcP.mjs} +0 -0
  1209. /package/dist/chunks/{types-BNvlbr9u.mjs → types-DrdCPGbk.mjs} +0 -0
  1210. /package/dist/chunks/{types-BQX8SD8Q.cjs → types-GPfn5gE2.cjs} +0 -0
  1211. /package/dist/chunks/{ug-DsQjxbOa.cjs → ug-DvC-UnxD.cjs} +0 -0
  1212. /package/dist/chunks/{ug-DJwD0iui.mjs → ug-zVaKVoWE.mjs} +0 -0
  1213. /package/dist/chunks/{uk-BPzbNIjw.cjs → uk-Cx32rUi7.cjs} +0 -0
  1214. /package/dist/chunks/{uk-hkOj8kWN.mjs → uk-DGVBUwum.mjs} +0 -0
  1215. /package/dist/chunks/{ur-Cy5A8nFG.mjs → ur-7wbChoVl.mjs} +0 -0
  1216. /package/dist/chunks/{ur-Do8k1hR-.cjs → ur-BMh2seDu.cjs} +0 -0
  1217. /package/dist/chunks/{vi-CCTEx9XR.cjs → vi-4TUS0GSi.cjs} +0 -0
  1218. /package/dist/chunks/{vi-CEt0cTzQ.mjs → vi-CLg1e4-a.mjs} +0 -0
  1219. /package/dist/chunks/{zh-Ive4on8E.cjs → zh-DZtmJNDR.cjs} +0 -0
  1220. /package/dist/chunks/{zh-BwQjLCGO.mjs → zh-LvpOPMNT.mjs} +0 -0
@@ -0,0 +1,921 @@
1
+ import type { ImageAlignment, ImageCrop, ImageData, ImageSize } from '../../../types/tools/image';
2
+ import { onHover as tooltipOnHover, hide as tooltipHide } from '../../components/utils/tooltip';
3
+ import type { I18nInstance } from '../../components/utils/tools';
4
+ import {
5
+ IconCaption,
6
+ IconCollapseFullscreen,
7
+ IconCrop,
8
+ IconDownload,
9
+ IconExpandFullscreen,
10
+ IconImageAlignCenter,
11
+ IconImageAlignLeft,
12
+ IconImageAlignRight,
13
+ IconLinkCopy,
14
+ IconMoreHorizontal,
15
+ IconReplaceImage,
16
+ IconZoomIn,
17
+ IconZoomOut,
18
+ } from '../../components/icons';
19
+ import { applyRubberBand } from './spring';
20
+ import { tr } from './i18n';
21
+
22
+ const ALIGNMENT_TO_TEXT_ALIGN: Record<ImageAlignment, string> = {
23
+ left: 'left',
24
+ center: 'center',
25
+ right: 'right',
26
+ };
27
+
28
+ const ALIGNMENT_ICON: Record<ImageAlignment, string> = {
29
+ left: IconImageAlignLeft,
30
+ center: IconImageAlignCenter,
31
+ right: IconImageAlignRight,
32
+ };
33
+
34
+ function bindIntrinsicAspect(img: HTMLImageElement, wrapper: HTMLElement, w: number, h: number): void {
35
+ const target = wrapper;
36
+ const apply = (): void => {
37
+ const nw = img.naturalWidth;
38
+ const nh = img.naturalHeight;
39
+ if (nw > 0 && nh > 0) {
40
+ target.style.aspectRatio = `${w * nw} / ${h * nh}`;
41
+ }
42
+ };
43
+ if (img.complete) apply();
44
+ else img.addEventListener('load', apply, { once: true });
45
+ }
46
+
47
+ function alignmentLabel(i18n: I18nInstance | undefined, value: ImageAlignment): string {
48
+ switch (value) {
49
+ case 'left': return tr(i18n, 'tools.image.alignmentLeftAria');
50
+ case 'center': return tr(i18n, 'tools.image.alignmentCenterAria');
51
+ case 'right': return tr(i18n, 'tools.image.alignmentRightAria');
52
+ }
53
+ }
54
+
55
+ export function renderImage(
56
+ data: Partial<ImageData> & { url: string }
57
+ ): HTMLElement {
58
+ const alignment = data.alignment ?? 'center';
59
+ const figure = document.createElement('figure');
60
+ figure.className = 'blok-image-inner';
61
+ figure.setAttribute('data-role', 'image-figure');
62
+ figure.style.margin = '0';
63
+ figure.style.textAlign = ALIGNMENT_TO_TEXT_ALIGN[alignment];
64
+ figure.style.position = 'relative';
65
+ if (data.width !== undefined) {
66
+ figure.style.width = `${data.width}%`;
67
+ }
68
+
69
+ const img = document.createElement('img');
70
+ img.setAttribute('src', data.url);
71
+ img.setAttribute('alt', data.alt ?? '');
72
+ img.draggable = false;
73
+
74
+ if (data.crop) {
75
+ const { x, y, w, h, shape } = data.crop;
76
+ const wrapper = document.createElement('div');
77
+ wrapper.className = 'blok-image-crop';
78
+ wrapper.setAttribute('data-role', 'image-crop');
79
+ wrapper.style.overflow = 'hidden';
80
+ wrapper.style.position = 'relative';
81
+ // Fallback until natural dims resolve — matches crop-region aspect only for square sources.
82
+ wrapper.style.aspectRatio = `${w} / ${h}`;
83
+ wrapper.style.width = '100%';
84
+ if (shape) wrapper.setAttribute('data-shape', shape);
85
+ if (shape === 'circle' || shape === 'ellipse') {
86
+ wrapper.style.borderRadius = '50%';
87
+ }
88
+ img.style.display = 'block';
89
+ // Opt out of the editor's global `img { max-width: 100% }` preflight so
90
+ // the (100/w)*100% width below can actually scale the source past the wrapper.
91
+ img.style.maxWidth = 'none';
92
+ img.style.width = `${(100 / w) * 100}%`;
93
+ // Height is intentionally unset so the img keeps its natural aspect inside the wrapper.
94
+ // transform % resolves against the element's own box, so -x%/-y% shift the
95
+ // img by x% of its width and y% of its height. margin-top % would instead
96
+ // resolve against the container's WIDTH, skewing vertically for non-square crops.
97
+ img.style.transform = `translate(-${x}%, -${y}%)`;
98
+ // Crop is in percent of intrinsic pixels; the cropped region's pixel aspect is
99
+ // (w*NW)/(h*NH), not w/h. Refine the wrapper's aspect once intrinsic dims are
100
+ // known so non-square sources aren't squashed into a crop-aspect box.
101
+ bindIntrinsicAspect(img, wrapper, w, h);
102
+ wrapper.appendChild(img);
103
+ figure.appendChild(wrapper);
104
+ } else {
105
+ figure.appendChild(img);
106
+ }
107
+
108
+ return figure;
109
+ }
110
+
111
+ export interface CaptionOptions {
112
+ value: string;
113
+ placeholder: string;
114
+ readOnly: boolean;
115
+ }
116
+
117
+ export function renderCaption(opts: CaptionOptions): HTMLElement {
118
+ const el = document.createElement('div');
119
+ el.className = 'blok-image-caption';
120
+ el.setAttribute('role', 'textbox');
121
+ el.setAttribute('contenteditable', opts.readOnly ? 'false' : 'true');
122
+ el.setAttribute('data-placeholder', opts.placeholder);
123
+ el.textContent = opts.value;
124
+ el.style.outline = 'none';
125
+ el.style.textAlign = 'left';
126
+ return el;
127
+ }
128
+
129
+ export interface CaptionRowOptions {
130
+ caption: CaptionOptions;
131
+ onAlt?: () => void;
132
+ hasAlt?: boolean;
133
+ i18n?: I18nInstance;
134
+ }
135
+
136
+ export function renderCaptionRow(opts: CaptionRowOptions): HTMLElement {
137
+ const row = document.createElement('div');
138
+ row.className = 'blok-image-caption-row';
139
+ row.appendChild(renderCaption(opts.caption));
140
+
141
+ if (opts.onAlt) {
142
+ const altLabel = tr(opts.i18n, 'tools.image.altEdit');
143
+ const btn = document.createElement('button');
144
+ btn.type = 'button';
145
+ btn.className = 'blok-image-caption-row__alt';
146
+ btn.setAttribute('data-action', 'alt-edit');
147
+ btn.setAttribute('aria-label', altLabel);
148
+ btn.setAttribute('title', altLabel);
149
+ btn.setAttribute('aria-pressed', opts.hasAlt ? 'true' : 'false');
150
+ btn.textContent = tr(opts.i18n, 'tools.image.altButton');
151
+ btn.addEventListener('click', (event) => {
152
+ event.stopPropagation();
153
+ opts.onAlt?.();
154
+ });
155
+ row.appendChild(btn);
156
+ }
157
+
158
+ return row;
159
+ }
160
+
161
+ export interface LightboxOptions {
162
+ url: string;
163
+ alt?: string;
164
+ fileName?: string;
165
+ /**
166
+ * Non-destructive crop applied inline. When present, the lightbox mirrors
167
+ * the same cropped view (wrapper + transformed inner img) so the preview
168
+ * matches what the user sees in the editor.
169
+ */
170
+ crop?: ImageCrop;
171
+ /**
172
+ * Source element (the inline thumbnail) used for the FLIP open/close morph.
173
+ * When omitted, the dialog cross-fades without a spatial transition.
174
+ */
175
+ origin?: HTMLElement;
176
+ i18n?: I18nInstance;
177
+ }
178
+
179
+ const OPEN_DURATION = 360;
180
+ const CLOSE_DURATION = 280;
181
+ // Smooth ease-out-expo on open; symmetric material curve on close.
182
+ const OPEN_EASING = 'cubic-bezier(0.22, 1, 0.36, 1)';
183
+ const CLOSE_EASING = 'cubic-bezier(0.4, 0, 0.2, 1)';
184
+
185
+ interface FlipTransform {
186
+ tx: number;
187
+ ty: number;
188
+ sx: number;
189
+ sy: number;
190
+ }
191
+
192
+ function flipTransform(srcRect: DOMRect, destRect: DOMRect): FlipTransform {
193
+ const sx = destRect.width > 0 ? srcRect.width / destRect.width : 1;
194
+ const sy = destRect.height > 0 ? srcRect.height / destRect.height : 1;
195
+ const srcCx = srcRect.left + srcRect.width / 2;
196
+ const srcCy = srcRect.top + srcRect.height / 2;
197
+ const destCx = destRect.left + destRect.width / 2;
198
+ const destCy = destRect.top + destRect.height / 2;
199
+ return { tx: srcCx - destCx, ty: srcCy - destCy, sx, sy };
200
+ }
201
+
202
+ function toTransform(t: FlipTransform): string {
203
+ return `translate(${t.tx}px, ${t.ty}px) scale(${t.sx}, ${t.sy})`;
204
+ }
205
+
206
+ function canAnimate(el: Element): el is Element & { animate: HTMLElement['animate'] } {
207
+ return typeof (el as HTMLElement).animate === 'function';
208
+ }
209
+
210
+ const ZOOM_MIN = 0.25;
211
+ const ZOOM_MAX = 4;
212
+ const ZOOM_STEP = 0.25;
213
+ // 100-pixel wheel tick multiplies zoom by (1 + ZOOM_STEP); small trackpad pinch deltas stay smooth.
214
+ const WHEEL_ZOOM_COEF = Math.log(1 + ZOOM_STEP) / 100;
215
+
216
+ export function openLightbox(opts: LightboxOptions): () => void {
217
+ const previousFocus = document.activeElement instanceof HTMLElement ? document.activeElement : null;
218
+
219
+ const dialog = document.createElement('div');
220
+ dialog.setAttribute('role', 'dialog');
221
+ dialog.setAttribute('aria-modal', 'true');
222
+ dialog.setAttribute('aria-label', tr(opts.i18n, 'tools.image.preview'));
223
+ dialog.className = 'blok-image-lightbox';
224
+
225
+ const backdrop = document.createElement('div');
226
+ backdrop.className = 'blok-image-lightbox__backdrop';
227
+ backdrop.setAttribute('aria-hidden', 'true');
228
+ dialog.appendChild(backdrop);
229
+
230
+ const img = document.createElement('img');
231
+ img.setAttribute('src', opts.url);
232
+ img.setAttribute('alt', opts.alt ?? '');
233
+ img.draggable = false;
234
+
235
+ // displayEl is the element that receives zoom/pan/FLIP transforms. When a crop
236
+ // is active, the img already carries the `translate(-x%, -y%)` crop transform,
237
+ // so we mount it inside a wrapper and animate the wrapper instead. Without a
238
+ // crop, the img itself is the display element and keeps the legacy behavior.
239
+ const displayEl: HTMLElement = (() => {
240
+ const crop = opts.crop;
241
+ if (!crop) {
242
+ img.className = 'blok-image-lightbox__image';
243
+ return img;
244
+ }
245
+ const { x, y, w, h, shape } = crop;
246
+ const wrapper = document.createElement('div');
247
+ wrapper.className = 'blok-image-lightbox__image blok-image-lightbox__crop';
248
+ wrapper.setAttribute('data-role', 'lightbox-crop');
249
+ wrapper.style.overflow = 'hidden';
250
+ wrapper.style.aspectRatio = `${w} / ${h}`;
251
+ if (shape) wrapper.setAttribute('data-shape', shape);
252
+ if (shape === 'circle' || shape === 'ellipse') {
253
+ wrapper.style.borderRadius = '50%';
254
+ }
255
+ img.style.display = 'block';
256
+ img.style.maxWidth = 'none';
257
+ img.style.width = `${(100 / w) * 100}%`;
258
+ img.style.transform = `translate(-${x}%, -${y}%)`;
259
+ bindIntrinsicAspect(img, wrapper, w, h);
260
+ wrapper.appendChild(img);
261
+ return wrapper;
262
+ })();
263
+
264
+ const zoomState = { value: 1 };
265
+ const panState = { x: 0, y: 0 };
266
+
267
+ const applyTransform = (): void => {
268
+ displayEl.style.transform = `translate(${panState.x}px, ${panState.y}px) scale(${zoomState.value})`;
269
+ };
270
+
271
+ function panBounds(): { maxX: number; maxY: number; width: number; height: number } {
272
+ const rect = displayEl.getBoundingClientRect();
273
+ return { maxX: rect.width / 2, maxY: rect.height / 2, width: rect.width, height: rect.height };
274
+ }
275
+
276
+ function clampPan(p: { x: number; y: number }): { x: number; y: number } {
277
+ const { maxX, maxY } = panBounds();
278
+ return {
279
+ x: Math.max(-maxX, Math.min(maxX, p.x)),
280
+ y: Math.max(-maxY, Math.min(maxY, p.y)),
281
+ };
282
+ }
283
+
284
+ function rubberBandPan(p: { x: number; y: number }): { x: number; y: number } {
285
+ const { maxX, maxY, width, height } = panBounds();
286
+ return {
287
+ x: applyRubberBand(p.x, maxX, width),
288
+ y: applyRubberBand(p.y, maxY, height),
289
+ };
290
+ }
291
+
292
+ const setZoom = (next: number, options: { preservePan?: boolean } = {}): void => {
293
+ zoomState.value = Math.min(ZOOM_MAX, Math.max(ZOOM_MIN, next));
294
+ if (options.preservePan) {
295
+ const clamped = clampPan(panState);
296
+ panState.x = clamped.x;
297
+ panState.y = clamped.y;
298
+ } else {
299
+ panState.x = 0;
300
+ panState.y = 0;
301
+ }
302
+ applyTransform();
303
+ syncResetLabel();
304
+ };
305
+
306
+ applyTransform();
307
+
308
+ const toolbar = renderLightboxToolbar({
309
+ i18n: opts.i18n,
310
+ getZoom: () => zoomState.value,
311
+ setZoom,
312
+ onDownload: () => {
313
+ const a = document.createElement('a');
314
+ a.href = opts.url;
315
+ a.download = opts.fileName ?? '';
316
+ a.target = '_blank';
317
+ a.rel = 'noopener';
318
+ document.body.appendChild(a);
319
+ a.click();
320
+ a.remove();
321
+ },
322
+ onCopyUrl: () => {
323
+ const clip = (navigator as Navigator & { clipboard?: { writeText(text: string): Promise<void> } }).clipboard;
324
+ void clip?.writeText(opts.url);
325
+ },
326
+ onCollapse: () => close(),
327
+ });
328
+ const syncResetLabel = (): void => {
329
+ const reset = toolbar.querySelector<HTMLButtonElement>('[data-action="zoom-reset"]');
330
+ if (reset) reset.textContent = `${Math.round(zoomState.value * 100)}%`;
331
+ };
332
+
333
+ dialog.appendChild(displayEl);
334
+ dialog.appendChild(toolbar);
335
+ document.body.appendChild(dialog);
336
+
337
+ const animState: { img: Animation | null; backdrop: Animation | null; toolbar: Animation | null; closing: boolean } = {
338
+ img: null,
339
+ backdrop: null,
340
+ toolbar: null,
341
+ closing: false,
342
+ };
343
+ const origin = opts.origin && opts.origin.isConnected ? opts.origin : null;
344
+ const originPrevOpacity = origin ? origin.style.opacity : '';
345
+
346
+ const cancelRunning = (): void => {
347
+ animState.img?.cancel();
348
+ animState.backdrop?.cancel();
349
+ animState.toolbar?.cancel();
350
+ animState.img = null;
351
+ animState.backdrop = null;
352
+ animState.toolbar = null;
353
+ };
354
+
355
+ const slideToolbar = (
356
+ from: { opacity: number; y: number },
357
+ to: { opacity: number; y: number },
358
+ timing: KeyframeAnimationOptions
359
+ ): Animation | null => {
360
+ if (!canAnimate(toolbar)) return null;
361
+ return toolbar.animate(
362
+ [
363
+ { opacity: from.opacity, transform: `translate(-50%, ${from.y}px)` },
364
+ { opacity: to.opacity, transform: `translate(-50%, ${to.y}px)` },
365
+ ],
366
+ timing
367
+ );
368
+ };
369
+
370
+ const playOpen = (): void => {
371
+ if (origin && canAnimate(displayEl)) {
372
+ const srcRect = origin.getBoundingClientRect();
373
+ const destRect = displayEl.getBoundingClientRect();
374
+ if (srcRect.width > 0 && srcRect.height > 0 && destRect.width > 0 && destRect.height > 0) {
375
+ const from = toTransform(flipTransform(srcRect, destRect));
376
+ origin.style.opacity = '0';
377
+ animState.img = displayEl.animate(
378
+ [{ transform: from }, { transform: 'translate(0px, 0px) scale(1)' }],
379
+ { duration: OPEN_DURATION, easing: OPEN_EASING, fill: 'backwards' }
380
+ );
381
+ }
382
+ }
383
+ if (canAnimate(backdrop)) {
384
+ animState.backdrop = backdrop.animate(
385
+ [{ opacity: 0 }, { opacity: 1 }],
386
+ { duration: 260, easing: 'linear', fill: 'backwards' }
387
+ );
388
+ }
389
+ animState.toolbar = slideToolbar(
390
+ { opacity: 0, y: 12 },
391
+ { opacity: 1, y: 0 },
392
+ { duration: 320, delay: 140, easing: OPEN_EASING, fill: 'both' }
393
+ );
394
+ };
395
+
396
+ const finalize = (): void => {
397
+ document.removeEventListener('keydown', onKey);
398
+ dialog.remove();
399
+ if (origin) origin.style.opacity = originPrevOpacity;
400
+ previousFocus?.focus?.();
401
+ };
402
+
403
+ const closeFadeOnly = (): void => {
404
+ if (!canAnimate(backdrop)) {
405
+ finalize();
406
+ return;
407
+ }
408
+ const a = backdrop.animate([{ opacity: 1 }, { opacity: 0 }], { duration: 180, easing: 'linear', fill: 'forwards' });
409
+ a.onfinish = finalize;
410
+ a.oncancel = finalize;
411
+ slideToolbar({ opacity: 1, y: 0 }, { opacity: 0, y: 12 }, { duration: 180, easing: CLOSE_EASING, fill: 'forwards' });
412
+ };
413
+
414
+ const closeWithFlip = (originEl: HTMLElement): void => {
415
+ const srcRect = originEl.getBoundingClientRect();
416
+ if (srcRect.width === 0 || srcRect.height === 0) {
417
+ finalize();
418
+ return;
419
+ }
420
+ // Suppress the spring transition on .blok-image-lightbox__image so the
421
+ // identity measurement and final-state commit below don't trigger a CSS
422
+ // tween underneath the WAAPI animation.
423
+ displayEl.style.transition = 'none';
424
+ // Capture the currently-displayed transform (may include user zoom/pan) so
425
+ // the reverse-FLIP starts from where the image visually is right now.
426
+ const current = displayEl.style.transform || 'translate(0px, 0px) scale(1)';
427
+ // Measure the identity rect (transform=none) so we can map dest→source.
428
+ displayEl.style.transform = 'none';
429
+ const identRect = displayEl.getBoundingClientRect();
430
+ displayEl.style.transform = current;
431
+ const to = toTransform(flipTransform(srcRect, identRect));
432
+ // Lock the final visible state on the inline style so there is no snap
433
+ // back to identity after WAAPI releases its hold.
434
+ displayEl.style.transform = to;
435
+ const anim = displayEl.animate(
436
+ [{ transform: current }, { transform: to }],
437
+ { duration: CLOSE_DURATION, easing: CLOSE_EASING, fill: 'forwards' }
438
+ );
439
+ anim.onfinish = finalize;
440
+ anim.oncancel = finalize;
441
+
442
+ if (canAnimate(backdrop)) {
443
+ backdrop.animate([{ opacity: 1 }, { opacity: 0 }], { duration: CLOSE_DURATION, easing: 'linear', fill: 'forwards' });
444
+ }
445
+ slideToolbar({ opacity: 1, y: 0 }, { opacity: 0, y: 12 }, { duration: 200, easing: CLOSE_EASING, fill: 'forwards' });
446
+ };
447
+
448
+ const close = (): void => {
449
+ if (animState.closing) return;
450
+ animState.closing = true;
451
+ cancelRunning();
452
+ if (origin && canAnimate(displayEl)) closeWithFlip(origin);
453
+ else closeFadeOnly();
454
+ };
455
+
456
+ playOpen();
457
+
458
+ const onKey = (event: KeyboardEvent): void => {
459
+ if (event.key === 'Escape' || event.key === ' ') {
460
+ event.preventDefault();
461
+ close();
462
+ return;
463
+ }
464
+ if (event.key === '+' || event.key === '=') {
465
+ event.preventDefault();
466
+ setZoom(zoomState.value + ZOOM_STEP);
467
+ return;
468
+ }
469
+ if (event.key === '-') {
470
+ event.preventDefault();
471
+ setZoom(zoomState.value - ZOOM_STEP);
472
+ return;
473
+ }
474
+ };
475
+
476
+ const DRAG_THRESHOLD = 3;
477
+ const dragState = {
478
+ pointerDown: false,
479
+ dragging: false,
480
+ startX: 0,
481
+ startY: 0,
482
+ originX: 0,
483
+ originY: 0,
484
+ };
485
+
486
+ dialog.addEventListener('pointerdown', (event: PointerEvent) => {
487
+ if (event.target instanceof Node && toolbar.contains(event.target)) return;
488
+ dragState.pointerDown = true;
489
+ dragState.dragging = false;
490
+ dragState.startX = event.clientX;
491
+ dragState.startY = event.clientY;
492
+ dragState.originX = panState.x;
493
+ dragState.originY = panState.y;
494
+ dialog.setPointerCapture(event.pointerId);
495
+ });
496
+
497
+ dialog.addEventListener('pointermove', (event: PointerEvent) => {
498
+ if (!dragState.pointerDown) return;
499
+ const dx = event.clientX - dragState.startX;
500
+ const dy = event.clientY - dragState.startY;
501
+ if (!dragState.dragging && Math.hypot(dx, dy) > DRAG_THRESHOLD) {
502
+ dragState.dragging = true;
503
+ dialog.classList.add('is-dragging');
504
+ }
505
+ if (!dragState.dragging) return;
506
+ const next = rubberBandPan({ x: dragState.originX + dx, y: dragState.originY + dy });
507
+ panState.x = next.x;
508
+ panState.y = next.y;
509
+ applyTransform();
510
+ });
511
+
512
+ const endDrag = (): void => {
513
+ if (!dragState.pointerDown) return;
514
+ dragState.pointerDown = false;
515
+ dialog.classList.remove('is-dragging');
516
+ if (dragState.dragging) {
517
+ dragState.dragging = false;
518
+ // Removing is-dragging re-enables the CSS transform transition; clamping now
519
+ // triggers the spring animation from the rubber-banded position back to bounds.
520
+ const settled = clampPan(panState);
521
+ panState.x = settled.x;
522
+ panState.y = settled.y;
523
+ applyTransform();
524
+ const swallow = (e: MouseEvent): void => {
525
+ if (e.target instanceof Node && toolbar.contains(e.target)) return;
526
+ e.stopPropagation();
527
+ dialog.removeEventListener('click', swallow, true);
528
+ };
529
+ dialog.addEventListener('click', swallow, true);
530
+ }
531
+ };
532
+
533
+ dialog.addEventListener('pointerup', endDrag);
534
+ dialog.addEventListener('pointercancel', endDrag);
535
+
536
+ const wheelIdle: { timer: ReturnType<typeof setTimeout> | null } = { timer: null };
537
+ dialog.addEventListener('wheel', (event: WheelEvent) => {
538
+ event.preventDefault();
539
+ const factor = Math.exp(-event.deltaY * WHEEL_ZOOM_COEF);
540
+ const prevZoom = zoomState.value;
541
+ const nextZoom = Math.min(ZOOM_MAX, Math.max(ZOOM_MIN, prevZoom * factor));
542
+ const k = nextZoom / prevZoom;
543
+ // Anchor the zoom around the cursor: keep the image pixel under the cursor fixed on screen.
544
+ const rect = dialog.getBoundingClientRect();
545
+ const dx = event.clientX - (rect.left + rect.width / 2);
546
+ const dy = event.clientY - (rect.top + rect.height / 2);
547
+ panState.x = dx * (1 - k) + panState.x * k;
548
+ panState.y = dy * (1 - k) + panState.y * k;
549
+ // Skip the 420ms spring transition for each wheel tick — it makes continuous
550
+ // scroll/pinch zoom feel laggy. Button zoom keeps the bounce.
551
+ dialog.classList.add('is-wheel-zooming');
552
+ if (wheelIdle.timer !== null) clearTimeout(wheelIdle.timer);
553
+ wheelIdle.timer = setTimeout(() => {
554
+ dialog.classList.remove('is-wheel-zooming');
555
+ wheelIdle.timer = null;
556
+ }, 120);
557
+ setZoom(nextZoom, { preservePan: true });
558
+ }, { passive: false });
559
+
560
+ dialog.addEventListener('click', (event) => {
561
+ if (event.target instanceof Node && toolbar.contains(event.target)) return;
562
+ close();
563
+ });
564
+ document.addEventListener('keydown', onKey);
565
+ dialog.focus();
566
+
567
+ return close;
568
+ }
569
+
570
+ interface LightboxToolbarOptions {
571
+ i18n?: I18nInstance;
572
+ getZoom(): number;
573
+ setZoom(next: number): void;
574
+ onDownload(): void;
575
+ onCopyUrl(): void;
576
+ onCollapse(): void;
577
+ }
578
+
579
+ function renderLightboxToolbar(opts: LightboxToolbarOptions): HTMLElement {
580
+ const bar = document.createElement('div');
581
+ bar.setAttribute('data-role', 'lightbox-toolbar');
582
+ bar.setAttribute('role', 'toolbar');
583
+ bar.setAttribute('aria-label', tr(opts.i18n, 'tools.image.previewControls'));
584
+ bar.className = 'blok-image-lightbox__bar';
585
+ bar.addEventListener('click', (event) => event.stopPropagation());
586
+
587
+ const iconMinus = IconZoomOut;
588
+ const iconPlus = IconZoomIn;
589
+ const iconDownload = IconDownload;
590
+ const iconCopy = IconLinkCopy;
591
+ const iconCollapse = IconCollapseFullscreen;
592
+
593
+ appendLightboxButton(bar, {
594
+ action: 'zoom-out',
595
+ label: tr(opts.i18n, 'tools.image.zoomOut'),
596
+ shortcut: '−',
597
+ html: iconMinus,
598
+ onClick: () => opts.setZoom(opts.getZoom() - ZOOM_STEP),
599
+ });
600
+ appendLightboxButton(bar, {
601
+ action: 'zoom-reset',
602
+ label: tr(opts.i18n, 'tools.image.resetZoom'),
603
+ html: '100%',
604
+ onClick: () => opts.setZoom(1),
605
+ extraClass: 'blok-image-lightbox__zoom-label',
606
+ });
607
+ appendLightboxButton(bar, {
608
+ action: 'zoom-in',
609
+ label: tr(opts.i18n, 'tools.image.zoomIn'),
610
+ shortcut: '+',
611
+ html: iconPlus,
612
+ onClick: () => opts.setZoom(opts.getZoom() + ZOOM_STEP),
613
+ });
614
+
615
+ appendLightboxDivider(bar);
616
+
617
+ appendLightboxButton(bar, {
618
+ action: 'lightbox-download',
619
+ label: tr(opts.i18n, 'tools.image.download'),
620
+ html: iconDownload,
621
+ onClick: opts.onDownload,
622
+ });
623
+ appendLightboxButton(bar, {
624
+ action: 'lightbox-copy-url',
625
+ label: tr(opts.i18n, 'tools.image.copyUrl'),
626
+ html: iconCopy,
627
+ onClick: opts.onCopyUrl,
628
+ });
629
+ appendLightboxButton(bar, {
630
+ action: 'lightbox-collapse',
631
+ label: tr(opts.i18n, 'tools.image.exitFullscreen'),
632
+ shortcut: 'Esc',
633
+ html: iconCollapse,
634
+ onClick: opts.onCollapse,
635
+ });
636
+
637
+ return bar;
638
+ }
639
+
640
+ function appendLightboxDivider(parent: HTMLElement): void {
641
+ const d = document.createElement('div');
642
+ d.className = 'blok-image-lightbox__divider';
643
+ d.setAttribute('aria-hidden', 'true');
644
+ parent.appendChild(d);
645
+ }
646
+
647
+ interface LightboxButtonSpec {
648
+ action: string;
649
+ label: string;
650
+ shortcut?: string;
651
+ html: string;
652
+ onClick(): void;
653
+ extraClass?: string;
654
+ }
655
+
656
+ function buildLightboxTooltipContent(label: string, shortcut?: string): HTMLElement | string {
657
+ if (shortcut === undefined) return label;
658
+ const root = document.createElement('span');
659
+ root.className = 'blok-image-lightbox-tooltip';
660
+ root.append(document.createTextNode(label));
661
+ const kbd = document.createElement('span');
662
+ kbd.className = 'blok-image-lightbox-tooltip__shortcut';
663
+ kbd.textContent = shortcut;
664
+ root.appendChild(kbd);
665
+ return root;
666
+ }
667
+
668
+ function appendLightboxButton(parent: HTMLElement, spec: LightboxButtonSpec): void {
669
+ const btn = document.createElement('button');
670
+ btn.type = 'button';
671
+ btn.setAttribute('data-action', spec.action);
672
+ btn.setAttribute('aria-label', spec.label);
673
+ btn.className = spec.extraClass
674
+ ? `blok-image-lightbox__btn ${spec.extraClass}`
675
+ : 'blok-image-lightbox__btn';
676
+ btn.innerHTML = spec.html;
677
+ tooltipOnHover(btn, buildLightboxTooltipContent(spec.label, spec.shortcut), { placement: 'top' });
678
+ btn.addEventListener('click', (event) => {
679
+ event.stopPropagation();
680
+ tooltipHide();
681
+ spec.onClick();
682
+ });
683
+ parent.appendChild(btn);
684
+ }
685
+
686
+ export interface OverlayState {
687
+ alignment: ImageAlignment;
688
+ captionVisible: boolean;
689
+ size: ImageSize;
690
+ }
691
+
692
+ /**
693
+ * Below this figure width the overlay collapses to just the "..." button.
694
+ * The expanded toolbar is ~240px; collapse only when the image is too narrow
695
+ * to comfortably fit the full row (roughly sm-size territory).
696
+ */
697
+ export const OVERLAY_COMPACT_THRESHOLD = 230;
698
+
699
+ export function updateOverlayCompact(
700
+ overlay: HTMLElement,
701
+ width: number,
702
+ threshold: number = OVERLAY_COMPACT_THRESHOLD
703
+ ): void {
704
+ if (width > 0 && width < threshold) {
705
+ overlay.setAttribute('data-compact', 'true');
706
+ } else {
707
+ overlay.removeAttribute('data-compact');
708
+ }
709
+ }
710
+
711
+ export interface OverlayOptions {
712
+ state: OverlayState;
713
+ onAlign(next: ImageAlignment): void;
714
+ onSize(next: ImageSize): void;
715
+ onReplace(): void;
716
+ onDelete(): void;
717
+ onDownload(): void;
718
+ onFullscreen(): void;
719
+ onCopyUrl(): void;
720
+ onToggleCaption(): void;
721
+ onCrop(): void;
722
+ i18n?: I18nInstance;
723
+ }
724
+
725
+ /**
726
+ * Data-action naming stays stable for test & user-code targeting.
727
+ * Additional visual-only elements carry their own class names.
728
+ */
729
+ export function renderOverlay(opts: OverlayOptions): HTMLElement {
730
+ const root = document.createElement('div');
731
+ root.setAttribute('data-role', 'image-overlay');
732
+ root.className = 'blok-image-toolbar';
733
+
734
+ appendAlignmentControl(root, opts);
735
+
736
+ appendDivider(root);
737
+
738
+ appendSimpleButton(root, {
739
+ action: 'caption-toggle',
740
+ label: tr(opts.i18n, 'tools.image.toggleCaption'),
741
+ pressed: opts.state.captionVisible,
742
+ icon: IconCaption,
743
+ onClick: opts.onToggleCaption,
744
+ });
745
+ appendSimpleButton(root, {
746
+ action: 'replace',
747
+ label: tr(opts.i18n, 'tools.image.replace'),
748
+ icon: IconReplaceImage,
749
+ onClick: opts.onReplace,
750
+ });
751
+ appendSimpleButton(root, {
752
+ action: 'crop',
753
+ label: tr(opts.i18n, 'tools.image.crop'),
754
+ icon: IconCrop,
755
+ onClick: opts.onCrop,
756
+ });
757
+ appendSimpleButton(root, {
758
+ action: 'fullscreen',
759
+ label: tr(opts.i18n, 'tools.image.viewFullscreen'),
760
+ icon: IconExpandFullscreen,
761
+ onClick: opts.onFullscreen,
762
+ });
763
+ appendSimpleButton(root, {
764
+ action: 'download',
765
+ label: tr(opts.i18n, 'tools.image.downloadOriginal'),
766
+ icon: IconDownload,
767
+ onClick: opts.onDownload,
768
+ });
769
+
770
+ appendDivider(root);
771
+
772
+ const moreLabel = tr(opts.i18n, 'tools.image.moreOptions');
773
+ const more = document.createElement('button');
774
+ more.type = 'button';
775
+ more.setAttribute('data-action', 'more');
776
+ more.setAttribute('aria-label', moreLabel);
777
+ more.setAttribute('aria-haspopup', 'menu');
778
+ more.innerHTML = IconMoreHorizontal;
779
+ tooltipOnHover(more, moreLabel);
780
+ root.appendChild(more);
781
+
782
+ // Delete is reachable from the popover; expose an invisible legacy button for consumers/tests.
783
+ const deleteAlias = document.createElement('button');
784
+ deleteAlias.type = 'button';
785
+ deleteAlias.setAttribute('data-action', 'delete');
786
+ deleteAlias.setAttribute('aria-label', tr(opts.i18n, 'blockSettings.delete'));
787
+ deleteAlias.className = 'blok-image-toolbar__alias is-danger';
788
+ deleteAlias.style.display = 'none';
789
+ deleteAlias.addEventListener('click', (event) => {
790
+ event.stopPropagation();
791
+ opts.onDelete();
792
+ });
793
+ root.appendChild(deleteAlias);
794
+
795
+ return root;
796
+ }
797
+
798
+ function appendAlignmentControl(root: HTMLElement, opts: OverlayOptions): void {
799
+ const wrapper = document.createElement('div');
800
+ wrapper.className = 'blok-image-toolbar__align';
801
+ wrapper.style.position = 'relative';
802
+
803
+ const current = opts.state.alignment;
804
+ const alignmentText = tr(opts.i18n, 'tools.image.alignment');
805
+
806
+ const trigger = document.createElement('button');
807
+ trigger.type = 'button';
808
+ trigger.setAttribute('data-action', 'align-trigger');
809
+ trigger.setAttribute('data-current', current);
810
+ trigger.setAttribute('aria-label', alignmentText);
811
+ trigger.setAttribute('aria-haspopup', 'true');
812
+ trigger.setAttribute('aria-expanded', 'false');
813
+ trigger.innerHTML = ALIGNMENT_ICON[current];
814
+ tooltipOnHover(trigger, alignmentText);
815
+ wrapper.appendChild(trigger);
816
+
817
+ const popover = document.createElement('div');
818
+ popover.setAttribute('data-role', 'align-popover');
819
+ popover.setAttribute('role', 'group');
820
+ popover.setAttribute('aria-label', alignmentText);
821
+ popover.className = 'blok-image-toolbar__align-popover';
822
+ popover.hidden = true;
823
+
824
+ for (const value of ['left', 'center', 'right'] as ImageAlignment[]) {
825
+ const label = alignmentLabel(opts.i18n, value);
826
+ const option = document.createElement('button');
827
+ option.type = 'button';
828
+ option.setAttribute('data-action', `align-${value}`);
829
+ option.setAttribute('aria-label', label);
830
+ option.setAttribute('aria-pressed', current === value ? 'true' : 'false');
831
+ option.innerHTML = ALIGNMENT_ICON[value];
832
+ tooltipOnHover(option, label);
833
+ option.addEventListener('click', (event) => {
834
+ event.stopPropagation();
835
+ tooltipHide();
836
+ closePopover();
837
+ opts.onAlign(value);
838
+ });
839
+ popover.appendChild(option);
840
+ }
841
+
842
+ wrapper.appendChild(popover);
843
+ root.appendChild(wrapper);
844
+
845
+ const onKeyDown = (event: KeyboardEvent): void => {
846
+ if (event.key === 'Escape' && !popover.hidden) {
847
+ event.stopPropagation();
848
+ closePopover();
849
+ }
850
+ };
851
+
852
+ const onOutside = (event: MouseEvent): void => {
853
+ if (popover.hidden) return;
854
+ const target = event.target as Node | null;
855
+ if (target && wrapper.contains(target)) return;
856
+ closePopover();
857
+ };
858
+
859
+ const imageRoot = (): HTMLElement | null => wrapper.closest<HTMLElement>('[data-blok-tool="image"]');
860
+
861
+ const openPopover = (): void => {
862
+ if (!popover.hidden) return;
863
+ popover.hidden = false;
864
+ popover.setAttribute('data-blok-popover-opened', 'true');
865
+ imageRoot()?.setAttribute('data-align-open', 'true');
866
+ trigger.setAttribute('aria-expanded', 'true');
867
+ tooltipHide();
868
+ document.addEventListener('keydown', onKeyDown);
869
+ document.addEventListener('mousedown', onOutside);
870
+ };
871
+
872
+ function closePopover(): void {
873
+ if (popover.hidden) return;
874
+ popover.hidden = true;
875
+ popover.removeAttribute('data-blok-popover-opened');
876
+ imageRoot()?.removeAttribute('data-align-open');
877
+ trigger.setAttribute('aria-expanded', 'false');
878
+ document.removeEventListener('keydown', onKeyDown);
879
+ document.removeEventListener('mousedown', onOutside);
880
+ }
881
+
882
+ trigger.addEventListener('click', (event) => {
883
+ event.stopPropagation();
884
+ if (popover.hidden) openPopover();
885
+ else closePopover();
886
+ });
887
+ }
888
+
889
+ function appendDivider(parent: HTMLElement): void {
890
+ const d = document.createElement('div');
891
+ d.className = 'blok-image-toolbar__divider';
892
+ d.setAttribute('aria-hidden', 'true');
893
+ parent.appendChild(d);
894
+ }
895
+
896
+ interface SimpleButtonSpec {
897
+ action: string;
898
+ label: string;
899
+ icon: string;
900
+ onClick(): void;
901
+ pressed?: boolean;
902
+ }
903
+
904
+ function appendSimpleButton(parent: HTMLElement, spec: SimpleButtonSpec): void {
905
+ const btn = document.createElement('button');
906
+ btn.type = 'button';
907
+ btn.setAttribute('aria-label', spec.label);
908
+ btn.setAttribute('data-action', spec.action);
909
+ if (spec.pressed !== undefined) {
910
+ btn.setAttribute('aria-pressed', spec.pressed ? 'true' : 'false');
911
+ }
912
+ btn.innerHTML = spec.icon;
913
+ tooltipOnHover(btn, spec.label);
914
+ btn.addEventListener('click', (event) => {
915
+ event.stopPropagation();
916
+ tooltipHide();
917
+ spec.onClick();
918
+ });
919
+ parent.appendChild(btn);
920
+ }
921
+