@jackuait/blok 0.11.1 → 0.12.1

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