@jackuait/blok 0.4.3-beta.1 → 0.4.3-beta.10

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 (230) hide show
  1. package/README.md +7 -5
  2. package/dist/blok.mjs +2 -2
  3. package/dist/chunks/{blok-8ptWuVZC.mjs → blok-D85C_iyk.mjs} +1863 -1736
  4. package/dist/chunks/{i18next-loader-bLawSYRV.mjs → i18next-loader-exc8oN3J.mjs} +1 -1
  5. package/dist/chunks/{index-5nYtWZD2.mjs → index-fqgWb6Ue.mjs} +1 -1
  6. package/dist/chunks/{inline-tool-convert-CvMDAIzb.mjs → inline-tool-convert-CYkcoF1r.mjs} +201 -203
  7. package/dist/chunks/{messages-BFiUomgG.mjs → messages--yMo5vYp.mjs} +1 -1
  8. package/dist/chunks/{messages-2434tVOK.mjs → messages-82j7Sb1f.mjs} +1 -1
  9. package/dist/chunks/{messages-p9BZJaFV.mjs → messages-9-pnvSWZ.mjs} +1 -1
  10. package/dist/{messages-D5WeksbV.mjs → chunks/messages-B-b_IFZh.mjs} +1 -1
  11. package/dist/chunks/{messages-ez3w5NBn.mjs → messages-B5OIvtYB.mjs} +1 -1
  12. package/dist/{messages-FTOZNhRD.mjs → chunks/messages-B7zIiLTq.mjs} +1 -1
  13. package/dist/{messages-JF2fzCkK.mjs → chunks/messages-BCidD-VB.mjs} +1 -1
  14. package/dist/chunks/{messages-WYWIbQwo.mjs → messages-BWDnoNq0.mjs} +1 -1
  15. package/dist/chunks/{messages-BIPNHHAV.mjs → messages-BXsoyz5-.mjs} +1 -1
  16. package/dist/{messages-CXHt3eCC.mjs → chunks/messages-BYeiscyc.mjs} +1 -1
  17. package/dist/chunks/{messages-er-kd-VO.mjs → messages-BZ-Ia4tk.mjs} +1 -1
  18. package/dist/chunks/{messages-CmymP_Ar.mjs → messages-BaaIMBL8.mjs} +1 -1
  19. package/dist/chunks/{messages-Dd5iZN3c.mjs → messages-BgbVziWf.mjs} +1 -1
  20. package/dist/chunks/{messages-76-iJV9Q.mjs → messages-BgmPDL9Z.mjs} +1 -1
  21. package/dist/chunks/{messages-BextV3Qh.mjs → messages-Bi0X1QMU.mjs} +1 -1
  22. package/dist/chunks/{messages-QgYhPL-3.mjs → messages-BjZll4R7.mjs} +1 -1
  23. package/dist/{messages-D_FCyfW6.mjs → chunks/messages-BnmcUH66.mjs} +1 -1
  24. package/dist/chunks/{messages-DueVe0F1.mjs → messages-Bo9JrN9m.mjs} +1 -1
  25. package/dist/{messages-f3uXjegd.mjs → chunks/messages-BuKgyEeU.mjs} +1 -1
  26. package/dist/chunks/{messages-ohwI1UGv.mjs → messages-CJQt8nzO.mjs} +1 -1
  27. package/dist/chunks/{messages-D3vTzIpL.mjs → messages-CNRsIuSS.mjs} +1 -1
  28. package/dist/chunks/{messages-qWkXPggi.mjs → messages-CPdlHIEi.mjs} +1 -1
  29. package/dist/{messages-CbmsBrB0.mjs → chunks/messages-CTeYgNo1.mjs} +1 -1
  30. package/dist/{messages-BCm2eudQ.mjs → chunks/messages-CVvHbBlx.mjs} +1 -1
  31. package/dist/{messages-D3GrDwXh.mjs → chunks/messages-CbP4KoKV.mjs} +1 -1
  32. package/dist/chunks/{messages-Dg1OHftD.mjs → messages-CbepBt3K.mjs} +1 -1
  33. package/dist/{messages-BqWaOGMn.mjs → chunks/messages-CbtBGtJT.mjs} +1 -1
  34. package/dist/chunks/{messages-BqkL2_Ro.mjs → messages-CcYGSGRh.mjs} +1 -1
  35. package/dist/{messages-57uL5htT.mjs → chunks/messages-CjksZqgf.mjs} +1 -1
  36. package/dist/chunks/{messages-CFrKE-TN.mjs → messages-Cm4WhO4g.mjs} +1 -1
  37. package/dist/{messages-BiXe9G-O.mjs → chunks/messages-CoY-hJgp.mjs} +1 -1
  38. package/dist/chunks/{messages-qIQ4L4rw.mjs → messages-CpkO-V0C.mjs} +1 -1
  39. package/dist/{messages-DKha57ZU.mjs → chunks/messages-CwYueRo5.mjs} +1 -1
  40. package/dist/chunks/{messages-3DcCwXMF.mjs → messages-D-tDNAzW.mjs} +1 -1
  41. package/dist/{messages-DehM7135.mjs → chunks/messages-D2h_bTrn.mjs} +1 -1
  42. package/dist/chunks/{messages-IQxGfQIV.mjs → messages-D5J2Xlpx.mjs} +1 -1
  43. package/dist/chunks/{messages-Cm0LJLtB.mjs → messages-D8VsV_Ro.mjs} +1 -1
  44. package/dist/chunks/{messages-CHz8VlG-.mjs → messages-D8sk1mxH.mjs} +1 -1
  45. package/dist/chunks/{messages-MOGl7I5v.mjs → messages-D8tlQmPj.mjs} +1 -1
  46. package/dist/chunks/{messages-BiPSFlUG.mjs → messages-D9xzl8Wn.mjs} +1 -1
  47. package/dist/{messages-BoO8gsVD.mjs → chunks/messages-DG2QXu_f.mjs} +1 -1
  48. package/dist/{messages-DGaab4EP.mjs → chunks/messages-DHdkT1vy.mjs} +1 -1
  49. package/dist/{messages-4kMwVAKY.mjs → chunks/messages-DIbeBo-6.mjs} +1 -1
  50. package/dist/{messages-DVbPLd_0.mjs → chunks/messages-DR0sRlko.mjs} +1 -1
  51. package/dist/{messages-BX-DPa-z.mjs → chunks/messages-DRTt_xBc.mjs} +1 -1
  52. package/dist/{messages-CV7OM_qk.mjs → chunks/messages-DT43ZUKr.mjs} +1 -1
  53. package/dist/{messages-Di6Flq-b.mjs → chunks/messages-DT5djAjs.mjs} +1 -1
  54. package/dist/{messages-C6tbPLoj.mjs → chunks/messages-Df6LYOt5.mjs} +1 -1
  55. package/dist/chunks/{messages-BUlwu9mo.mjs → messages-DhdzbzrS.mjs} +1 -1
  56. package/dist/chunks/{messages-Ceo1KtFx.mjs → messages-DiyoZ_Oa.mjs} +1 -1
  57. package/dist/chunks/{messages-8p86Eyf2.mjs → messages-DkJ5aV3V.mjs} +1 -1
  58. package/dist/{messages-Dx3eFwI0.mjs → chunks/messages-DvwZEFTL.mjs} +1 -1
  59. package/dist/{messages-Bl5z_Igo.mjs → chunks/messages-Dw5GZ4YT.mjs} +1 -1
  60. package/dist/chunks/{messages-CLixzySl.mjs → messages-HSxl9MoN.mjs} +1 -1
  61. package/dist/chunks/{messages-DOaujgMW.mjs → messages-JztkG3tZ.mjs} +1 -1
  62. package/dist/{messages-BnsE97ku.mjs → chunks/messages-KLzTvDED.mjs} +1 -1
  63. package/dist/{messages-BBX0p0Pi.mjs → chunks/messages-TulYnz1f.mjs} +1 -1
  64. package/dist/chunks/{messages-D0ohMB5H.mjs → messages-Uexhy7C9.mjs} +1 -1
  65. package/dist/{messages-Dqhhex6e.mjs → chunks/messages-ctRNTfv5.mjs} +1 -1
  66. package/dist/chunks/{messages-CA6T3-gQ.mjs → messages-dIzxSHR2.mjs} +1 -1
  67. package/dist/chunks/{messages-bSf31LJi.mjs → messages-g7Njot5w.mjs} +1 -1
  68. package/dist/chunks/{messages-w5foGze_.mjs → messages-iNIhRBkQ.mjs} +1 -1
  69. package/dist/chunks/{messages-FOtiUoKl.mjs → messages-jmh1Gbfd.mjs} +1 -1
  70. package/dist/chunks/{messages-a6A_LgDv.mjs → messages-oO_lJ-_I.mjs} +1 -1
  71. package/dist/chunks/{messages-BvCkXKX-.mjs → messages-qFesO1Lu.mjs} +1 -1
  72. package/dist/{messages-diGozhTn.mjs → chunks/messages-sSYZ0Mz9.mjs} +1 -1
  73. package/dist/chunks/{messages-CFFPFdWP.mjs → messages-zs9AgeBF.mjs} +1 -1
  74. package/dist/full.mjs +2 -2
  75. package/dist/locales.mjs +68 -68
  76. package/dist/{messages-BFiUomgG.mjs → messages--yMo5vYp.mjs} +1 -1
  77. package/dist/{messages-2434tVOK.mjs → messages-82j7Sb1f.mjs} +1 -1
  78. package/dist/{messages-p9BZJaFV.mjs → messages-9-pnvSWZ.mjs} +1 -1
  79. package/dist/{chunks/messages-D5WeksbV.mjs → messages-B-b_IFZh.mjs} +1 -1
  80. package/dist/{messages-ez3w5NBn.mjs → messages-B5OIvtYB.mjs} +1 -1
  81. package/dist/{chunks/messages-FTOZNhRD.mjs → messages-B7zIiLTq.mjs} +1 -1
  82. package/dist/{chunks/messages-JF2fzCkK.mjs → messages-BCidD-VB.mjs} +1 -1
  83. package/dist/{messages-WYWIbQwo.mjs → messages-BWDnoNq0.mjs} +1 -1
  84. package/dist/{messages-BIPNHHAV.mjs → messages-BXsoyz5-.mjs} +1 -1
  85. package/dist/{chunks/messages-CXHt3eCC.mjs → messages-BYeiscyc.mjs} +1 -1
  86. package/dist/{messages-er-kd-VO.mjs → messages-BZ-Ia4tk.mjs} +1 -1
  87. package/dist/{messages-CmymP_Ar.mjs → messages-BaaIMBL8.mjs} +1 -1
  88. package/dist/{messages-Dd5iZN3c.mjs → messages-BgbVziWf.mjs} +1 -1
  89. package/dist/{messages-76-iJV9Q.mjs → messages-BgmPDL9Z.mjs} +1 -1
  90. package/dist/{messages-BextV3Qh.mjs → messages-Bi0X1QMU.mjs} +1 -1
  91. package/dist/{messages-QgYhPL-3.mjs → messages-BjZll4R7.mjs} +1 -1
  92. package/dist/{chunks/messages-D_FCyfW6.mjs → messages-BnmcUH66.mjs} +1 -1
  93. package/dist/{messages-DueVe0F1.mjs → messages-Bo9JrN9m.mjs} +1 -1
  94. package/dist/{chunks/messages-f3uXjegd.mjs → messages-BuKgyEeU.mjs} +1 -1
  95. package/dist/{messages-ohwI1UGv.mjs → messages-CJQt8nzO.mjs} +1 -1
  96. package/dist/{messages-D3vTzIpL.mjs → messages-CNRsIuSS.mjs} +1 -1
  97. package/dist/{messages-qWkXPggi.mjs → messages-CPdlHIEi.mjs} +1 -1
  98. package/dist/{chunks/messages-CbmsBrB0.mjs → messages-CTeYgNo1.mjs} +1 -1
  99. package/dist/{chunks/messages-BCm2eudQ.mjs → messages-CVvHbBlx.mjs} +1 -1
  100. package/dist/{chunks/messages-D3GrDwXh.mjs → messages-CbP4KoKV.mjs} +1 -1
  101. package/dist/{messages-Dg1OHftD.mjs → messages-CbepBt3K.mjs} +1 -1
  102. package/dist/{chunks/messages-BqWaOGMn.mjs → messages-CbtBGtJT.mjs} +1 -1
  103. package/dist/{messages-BqkL2_Ro.mjs → messages-CcYGSGRh.mjs} +1 -1
  104. package/dist/{chunks/messages-57uL5htT.mjs → messages-CjksZqgf.mjs} +1 -1
  105. package/dist/{messages-CFrKE-TN.mjs → messages-Cm4WhO4g.mjs} +1 -1
  106. package/dist/{chunks/messages-BiXe9G-O.mjs → messages-CoY-hJgp.mjs} +1 -1
  107. package/dist/{messages-qIQ4L4rw.mjs → messages-CpkO-V0C.mjs} +1 -1
  108. package/dist/{chunks/messages-DKha57ZU.mjs → messages-CwYueRo5.mjs} +1 -1
  109. package/dist/{messages-3DcCwXMF.mjs → messages-D-tDNAzW.mjs} +1 -1
  110. package/dist/{chunks/messages-DehM7135.mjs → messages-D2h_bTrn.mjs} +1 -1
  111. package/dist/{messages-IQxGfQIV.mjs → messages-D5J2Xlpx.mjs} +1 -1
  112. package/dist/{messages-Cm0LJLtB.mjs → messages-D8VsV_Ro.mjs} +1 -1
  113. package/dist/{messages-CHz8VlG-.mjs → messages-D8sk1mxH.mjs} +1 -1
  114. package/dist/{messages-MOGl7I5v.mjs → messages-D8tlQmPj.mjs} +1 -1
  115. package/dist/{messages-BiPSFlUG.mjs → messages-D9xzl8Wn.mjs} +1 -1
  116. package/dist/{chunks/messages-BoO8gsVD.mjs → messages-DG2QXu_f.mjs} +1 -1
  117. package/dist/{chunks/messages-DGaab4EP.mjs → messages-DHdkT1vy.mjs} +1 -1
  118. package/dist/{chunks/messages-4kMwVAKY.mjs → messages-DIbeBo-6.mjs} +1 -1
  119. package/dist/{chunks/messages-DVbPLd_0.mjs → messages-DR0sRlko.mjs} +1 -1
  120. package/dist/{chunks/messages-BX-DPa-z.mjs → messages-DRTt_xBc.mjs} +1 -1
  121. package/dist/{chunks/messages-CV7OM_qk.mjs → messages-DT43ZUKr.mjs} +1 -1
  122. package/dist/{chunks/messages-Di6Flq-b.mjs → messages-DT5djAjs.mjs} +1 -1
  123. package/dist/{chunks/messages-C6tbPLoj.mjs → messages-Df6LYOt5.mjs} +1 -1
  124. package/dist/{messages-BUlwu9mo.mjs → messages-DhdzbzrS.mjs} +1 -1
  125. package/dist/{messages-Ceo1KtFx.mjs → messages-DiyoZ_Oa.mjs} +1 -1
  126. package/dist/{messages-8p86Eyf2.mjs → messages-DkJ5aV3V.mjs} +1 -1
  127. package/dist/{chunks/messages-Dx3eFwI0.mjs → messages-DvwZEFTL.mjs} +1 -1
  128. package/dist/{chunks/messages-Bl5z_Igo.mjs → messages-Dw5GZ4YT.mjs} +1 -1
  129. package/dist/{messages-CLixzySl.mjs → messages-HSxl9MoN.mjs} +1 -1
  130. package/dist/{messages-DOaujgMW.mjs → messages-JztkG3tZ.mjs} +1 -1
  131. package/dist/{chunks/messages-BnsE97ku.mjs → messages-KLzTvDED.mjs} +1 -1
  132. package/dist/{chunks/messages-BBX0p0Pi.mjs → messages-TulYnz1f.mjs} +1 -1
  133. package/dist/{messages-D0ohMB5H.mjs → messages-Uexhy7C9.mjs} +1 -1
  134. package/dist/{chunks/messages-Dqhhex6e.mjs → messages-ctRNTfv5.mjs} +1 -1
  135. package/dist/{messages-CA6T3-gQ.mjs → messages-dIzxSHR2.mjs} +1 -1
  136. package/dist/{messages-bSf31LJi.mjs → messages-g7Njot5w.mjs} +1 -1
  137. package/dist/{messages-w5foGze_.mjs → messages-iNIhRBkQ.mjs} +1 -1
  138. package/dist/{messages-FOtiUoKl.mjs → messages-jmh1Gbfd.mjs} +1 -1
  139. package/dist/{messages-a6A_LgDv.mjs → messages-oO_lJ-_I.mjs} +1 -1
  140. package/dist/{messages-BvCkXKX-.mjs → messages-qFesO1Lu.mjs} +1 -1
  141. package/dist/{chunks/messages-diGozhTn.mjs → messages-sSYZ0Mz9.mjs} +1 -1
  142. package/dist/{messages-CFFPFdWP.mjs → messages-zs9AgeBF.mjs} +1 -1
  143. package/dist/tools.mjs +131 -90
  144. package/package.json +3 -3
  145. package/src/components/flipper.ts +17 -1
  146. package/src/components/i18n/locales/am/messages.json +1 -1
  147. package/src/components/i18n/locales/ar/messages.json +1 -1
  148. package/src/components/i18n/locales/az/messages.json +1 -1
  149. package/src/components/i18n/locales/bg/messages.json +1 -1
  150. package/src/components/i18n/locales/bn/messages.json +1 -1
  151. package/src/components/i18n/locales/bs/messages.json +1 -1
  152. package/src/components/i18n/locales/cs/messages.json +1 -1
  153. package/src/components/i18n/locales/da/messages.json +1 -1
  154. package/src/components/i18n/locales/de/messages.json +1 -1
  155. package/src/components/i18n/locales/dv/messages.json +1 -1
  156. package/src/components/i18n/locales/el/messages.json +1 -1
  157. package/src/components/i18n/locales/en/messages.json +1 -1
  158. package/src/components/i18n/locales/es/messages.json +1 -1
  159. package/src/components/i18n/locales/et/messages.json +1 -1
  160. package/src/components/i18n/locales/fa/messages.json +1 -1
  161. package/src/components/i18n/locales/fi/messages.json +1 -1
  162. package/src/components/i18n/locales/fil/messages.json +1 -1
  163. package/src/components/i18n/locales/fr/messages.json +1 -1
  164. package/src/components/i18n/locales/gu/messages.json +1 -1
  165. package/src/components/i18n/locales/he/messages.json +1 -1
  166. package/src/components/i18n/locales/hi/messages.json +1 -1
  167. package/src/components/i18n/locales/hr/messages.json +1 -1
  168. package/src/components/i18n/locales/hu/messages.json +1 -1
  169. package/src/components/i18n/locales/hy/messages.json +1 -1
  170. package/src/components/i18n/locales/id/messages.json +1 -1
  171. package/src/components/i18n/locales/it/messages.json +1 -1
  172. package/src/components/i18n/locales/ja/messages.json +1 -1
  173. package/src/components/i18n/locales/ka/messages.json +1 -1
  174. package/src/components/i18n/locales/km/messages.json +1 -1
  175. package/src/components/i18n/locales/kn/messages.json +1 -1
  176. package/src/components/i18n/locales/ko/messages.json +1 -1
  177. package/src/components/i18n/locales/ku/messages.json +1 -1
  178. package/src/components/i18n/locales/lo/messages.json +1 -1
  179. package/src/components/i18n/locales/lt/messages.json +1 -1
  180. package/src/components/i18n/locales/lv/messages.json +1 -1
  181. package/src/components/i18n/locales/mk/messages.json +1 -1
  182. package/src/components/i18n/locales/ml/messages.json +1 -1
  183. package/src/components/i18n/locales/mn/messages.json +1 -1
  184. package/src/components/i18n/locales/mr/messages.json +1 -1
  185. package/src/components/i18n/locales/ms/messages.json +1 -1
  186. package/src/components/i18n/locales/my/messages.json +1 -1
  187. package/src/components/i18n/locales/ne/messages.json +1 -1
  188. package/src/components/i18n/locales/nl/messages.json +1 -1
  189. package/src/components/i18n/locales/no/messages.json +1 -1
  190. package/src/components/i18n/locales/pa/messages.json +1 -1
  191. package/src/components/i18n/locales/pl/messages.json +1 -1
  192. package/src/components/i18n/locales/ps/messages.json +1 -1
  193. package/src/components/i18n/locales/pt/messages.json +1 -1
  194. package/src/components/i18n/locales/ro/messages.json +1 -1
  195. package/src/components/i18n/locales/ru/messages.json +1 -1
  196. package/src/components/i18n/locales/sd/messages.json +1 -1
  197. package/src/components/i18n/locales/si/messages.json +1 -1
  198. package/src/components/i18n/locales/sk/messages.json +1 -1
  199. package/src/components/i18n/locales/sl/messages.json +1 -1
  200. package/src/components/i18n/locales/sq/messages.json +1 -1
  201. package/src/components/i18n/locales/sr/messages.json +1 -1
  202. package/src/components/i18n/locales/sv/messages.json +1 -1
  203. package/src/components/i18n/locales/sw/messages.json +1 -1
  204. package/src/components/i18n/locales/ta/messages.json +1 -1
  205. package/src/components/i18n/locales/te/messages.json +1 -1
  206. package/src/components/i18n/locales/th/messages.json +1 -1
  207. package/src/components/i18n/locales/tr/messages.json +1 -1
  208. package/src/components/i18n/locales/ug/messages.json +1 -1
  209. package/src/components/i18n/locales/uk/messages.json +1 -1
  210. package/src/components/i18n/locales/ur/messages.json +1 -1
  211. package/src/components/i18n/locales/vi/messages.json +1 -1
  212. package/src/components/i18n/locales/yi/messages.json +1 -1
  213. package/src/components/i18n/locales/zh/messages.json +1 -1
  214. package/src/components/modules/api/i18n.ts +1 -0
  215. package/src/components/modules/dragManager.ts +71 -13
  216. package/src/components/modules/i18n.ts +6 -11
  217. package/src/components/modules/rectangleSelection.ts +62 -19
  218. package/src/components/modules/toolbar/index.ts +2 -2
  219. package/src/components/modules/tools.ts +39 -3
  220. package/src/components/modules/ui.ts +83 -18
  221. package/src/components/selection.ts +2 -12
  222. package/src/components/tools/base.ts +29 -2
  223. package/src/components/tools/block.ts +20 -3
  224. package/src/components/tools/factory.ts +50 -1
  225. package/src/components/utils/tooltip.ts +0 -14
  226. package/src/tools/header/index.ts +82 -0
  227. package/src/tools/index.ts +13 -6
  228. package/src/tools/list/index.ts +2 -2
  229. package/types/api/i18n.d.ts +8 -0
  230. package/types/tools/tool-settings.d.ts +62 -4
package/dist/tools.mjs CHANGED
@@ -1,17 +1,17 @@
1
- var nt = Object.defineProperty, rt = Object.defineProperties;
2
- var st = Object.getOwnPropertyDescriptors;
3
- var K = Object.getOwnPropertySymbols;
4
- var ot = Object.prototype.hasOwnProperty, it = Object.prototype.propertyIsEnumerable;
5
- var U = (f, t, e) => t in f ? nt(f, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : f[t] = e, w = (f, t) => {
1
+ var rt = Object.defineProperty, st = Object.defineProperties;
2
+ var ot = Object.getOwnPropertyDescriptors;
3
+ var q = Object.getOwnPropertySymbols;
4
+ var it = Object.prototype.hasOwnProperty, at = Object.prototype.propertyIsEnumerable;
5
+ var U = (f, t, e) => t in f ? rt(f, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : f[t] = e, w = (f, t) => {
6
6
  for (var e in t || (t = {}))
7
- ot.call(t, e) && U(f, e, t[e]);
8
- if (K)
9
- for (var e of K(t))
10
- it.call(t, e) && U(f, e, t[e]);
7
+ it.call(t, e) && U(f, e, t[e]);
8
+ if (q)
9
+ for (var e of q(t))
10
+ at.call(t, e) && U(f, e, t[e]);
11
11
  return f;
12
- }, P = (f, t) => rt(f, st(t));
13
- import { t as L, D as g, a9 as et, aa as at, ab as lt, ac as ct, ad as dt, ae as ut, af as ht, ag as ft, ah as pt, ai as G, aj as j, ak as $, f as A, al as gt, am as mt, S as H, P as Et, an as Tt, l as Ct, J as At } from "./chunks/inline-tool-convert-CvMDAIzb.mjs";
14
- import { a0 as Ot } from "./chunks/inline-tool-convert-CvMDAIzb.mjs";
12
+ }, P = (f, t) => st(f, ot(t));
13
+ import { t as L, D as g, a9 as nt, aa as lt, ab as G, ac as ct, ad as dt, ae as ut, af as ht, ag as ft, ah as pt, ai as j, aj as $, ak as X, f as A, al as gt, am as mt, S as H, P as Et, an as Tt, l as Ct, J as At } from "./chunks/inline-tool-convert-CYkcoF1r.mjs";
14
+ import { a0 as Ot } from "./chunks/inline-tool-convert-CYkcoF1r.mjs";
15
15
  const W = [
16
16
  "empty:before:pointer-events-none",
17
17
  "empty:before:text-gray-text",
@@ -41,7 +41,7 @@ const W = [
41
41
  e.selectNodeContents(f), e.collapse(!0), t.removeAllRanges(), t.addRange(e);
42
42
  }, Nt = (f) => {
43
43
  bt(f) && St(f);
44
- }, z = (f, t, e = "data-placeholder") => {
44
+ }, V = (f, t, e = "data-placeholder") => {
45
45
  f.setAttribute(e, t != null ? t : "");
46
46
  const n = () => Nt(f);
47
47
  f.addEventListener("focus", n), f.addEventListener("input", n);
@@ -101,7 +101,7 @@ const W = [
101
101
  yt
102
102
  ), t.setAttribute(g.tool, "paragraph"), t.contentEditable = "false";
103
103
  const e = this.buildInlineStyles();
104
- return Object.keys(e).length > 0 && Object.assign(t.style, e), this._data.text && (t.innerHTML = this._data.text), this.readOnly ? t.setAttribute("data-blok-placeholder-active", this.api.i18n.t(this._placeholder)) : (t.contentEditable = "true", t.addEventListener("keyup", this.onKeyUp), z(t, this.api.i18n.t(this._placeholder), "data-blok-placeholder-active")), t;
104
+ return Object.keys(e).length > 0 && Object.assign(t.style, e), this._data.text && (t.innerHTML = this._data.text), this.readOnly ? t.setAttribute("data-blok-placeholder-active", this.api.i18n.t(this._placeholder)) : (t.contentEditable = "true", t.addEventListener("keyup", this.onKeyUp), V(t, this.api.i18n.t(this._placeholder), "data-blok-placeholder-active")), t;
105
105
  }
106
106
  /**
107
107
  * Return Tool's view
@@ -142,7 +142,7 @@ const W = [
142
142
  */
143
143
  save(t) {
144
144
  return {
145
- text: et(t.innerHTML)
145
+ text: nt(t.innerHTML)
146
146
  };
147
147
  }
148
148
  /**
@@ -212,7 +212,7 @@ const W = [
212
212
  */
213
213
  static get toolbox() {
214
214
  return {
215
- icon: at,
215
+ icon: lt,
216
216
  title: "Text",
217
217
  titleKey: "text"
218
218
  };
@@ -226,8 +226,8 @@ M.WRAPPER_CLASSES = [
226
226
  "[&>p:first-of-type]:mt-0",
227
227
  "[&>p:last-of-type]:mb-0"
228
228
  ];
229
- let X = M;
230
- const I = class I {
229
+ let Y = M;
230
+ const x = class x {
231
231
  /**
232
232
  * Render plugin's main Element and fill it with saved data
233
233
  *
@@ -288,20 +288,61 @@ const I = class I {
288
288
  * @returns MenuConfig array
289
289
  */
290
290
  renderSettings() {
291
- return this.levels.map((t) => {
292
- const e = this.api.i18n.t(t.nameKey), n = e !== t.nameKey ? e : t.name;
291
+ const t = this._settings._toolboxEntries, e = (t == null ? void 0 : t.length) === 1 && t[0].data === void 0 && (t[0].title === void 0 || t[0].title === "Heading");
292
+ return t !== void 0 && t.length > 0 && !e ? this.buildSettingsFromToolboxEntries(t) : this.levels.map((n) => {
293
+ const r = this.api.i18n.t(n.nameKey), s = r !== n.nameKey ? r : n.name;
293
294
  return {
294
- icon: t.icon,
295
- title: n,
296
- onActivate: () => this.setLevel(t.number),
295
+ icon: n.icon,
296
+ title: s,
297
+ onActivate: () => this.setLevel(n.number),
298
+ closeOnActivate: !0,
299
+ isActive: this.currentLevel.number === n.number,
300
+ dataset: {
301
+ "blok-header-level": String(n.number)
302
+ }
303
+ };
304
+ });
305
+ }
306
+ /**
307
+ * Build settings menu items from toolbox entries.
308
+ * This allows users to customize which levels appear in block settings
309
+ * by configuring the toolbox.
310
+ *
311
+ * @param entries - Merged toolbox entries from user config
312
+ * @returns MenuConfig array
313
+ */
314
+ buildSettingsFromToolboxEntries(t) {
315
+ return t.map((e) => {
316
+ var d, c, h, p;
317
+ const n = e.data, r = (d = n == null ? void 0 : n.level) != null ? d : this.defaultLevel.number, s = x.DEFAULT_LEVELS.find((m) => m.number === r), o = (c = s == null ? void 0 : s.name) != null ? c : `Heading ${r}`, a = this.resolveToolboxEntryTitle(e, o);
318
+ return {
319
+ icon: (p = (h = e.icon) != null ? h : s == null ? void 0 : s.icon) != null ? p : G,
320
+ title: a,
321
+ onActivate: () => this.setLevel(r),
297
322
  closeOnActivate: !0,
298
- isActive: this.currentLevel.number === t.number,
323
+ isActive: this.currentLevel.number === r,
299
324
  dataset: {
300
- "blok-header-level": String(t.number)
325
+ "blok-header-level": String(r)
301
326
  }
302
327
  };
303
328
  });
304
329
  }
330
+ /**
331
+ * Resolves the title for a toolbox entry.
332
+ * Priority: custom title > i18n key translation > fallback
333
+ *
334
+ * @param entry - Toolbox entry
335
+ * @param fallback - Fallback title if no custom title or translation found
336
+ * @returns Resolved title string
337
+ */
338
+ resolveToolboxEntryTitle(t, e) {
339
+ if (t.title !== void 0)
340
+ return t.title;
341
+ if (t.titleKey === void 0)
342
+ return e;
343
+ const n = `toolNames.${t.titleKey}`, r = this.api.i18n.t(n);
344
+ return r !== n ? r : e;
345
+ }
305
346
  /**
306
347
  * Callback for Block's settings buttons
307
348
  *
@@ -402,9 +443,9 @@ const I = class I {
402
443
  */
403
444
  getTag() {
404
445
  const t = document.createElement(this.currentLevel.tag);
405
- t.innerHTML = this._data.text || "", t.className = L(I.BASE_STYLES, this.currentLevel.styles, W);
446
+ t.innerHTML = this._data.text || "", t.className = L(x.BASE_STYLES, this.currentLevel.styles, W);
406
447
  const { inlineStyles: e } = this.currentLevel;
407
- return e && Object.assign(t.style, e), t.setAttribute(g.tool, "header"), t.contentEditable = this.readOnly ? "false" : "true", this.readOnly ? t.setAttribute("data-placeholder", this.api.i18n.t(this._settings.placeholder || "")) : z(t, this.api.i18n.t(this._settings.placeholder || "")), t;
448
+ return e && Object.assign(t.style, e), t.setAttribute(g.tool, "header"), t.contentEditable = this.readOnly ? "false" : "true", this.readOnly ? t.setAttribute("data-placeholder", this.api.i18n.t(this._settings.placeholder || "")) : V(t, this.api.i18n.t(this._settings.placeholder || "")), t;
408
449
  }
409
450
  /**
410
451
  * Get current level
@@ -432,7 +473,7 @@ const I = class I {
432
473
  * @returns Level array
433
474
  */
434
475
  get levels() {
435
- const t = this._settings.levelOverrides || {}, e = I.DEFAULT_LEVELS.map((n) => {
476
+ const t = this._settings.levelOverrides || {}, e = x.DEFAULT_LEVELS.map((n) => {
436
477
  var o;
437
478
  const r = t[n.number] || {}, s = {};
438
479
  return r.size && (s.fontSize = r.size), r.marginTop && (s.marginTop = r.marginTop), r.marginBottom && (s.marginBottom = r.marginBottom), {
@@ -490,21 +531,21 @@ const I = class I {
490
531
  */
491
532
  static get toolbox() {
492
533
  return {
493
- icon: pt,
534
+ icon: G,
494
535
  title: "Heading",
495
536
  titleKey: "heading"
496
537
  };
497
538
  }
498
539
  };
499
- I.BASE_STYLES = "py-[3px] px-[2px] m-0 !leading-[1.3] outline-none [&_p]:!p-0 [&_p]:!m-0 [&_div]:!p-0 [&_div]:!m-0", I.DEFAULT_LEVELS = [
500
- { number: 1, tag: "H1", nameKey: "tools.header.heading1", name: "Heading 1", icon: lt, styles: "text-4xl font-bold mt-8 mb-1" },
501
- { number: 2, tag: "H2", nameKey: "tools.header.heading2", name: "Heading 2", icon: ct, styles: "text-3xl font-semibold mt-6 mb-px" },
502
- { number: 3, tag: "H3", nameKey: "tools.header.heading3", name: "Heading 3", icon: dt, styles: "text-2xl font-semibold mt-4 mb-px" },
503
- { number: 4, tag: "H4", nameKey: "tools.header.heading4", name: "Heading 4", icon: ut, styles: "text-xl font-semibold mt-3 mb-px" },
504
- { number: 5, tag: "H5", nameKey: "tools.header.heading5", name: "Heading 5", icon: ht, styles: "text-base font-semibold mt-3 mb-px" },
505
- { number: 6, tag: "H6", nameKey: "tools.header.heading6", name: "Heading 6", icon: ft, styles: "text-sm font-semibold mt-3 mb-px" }
540
+ x.BASE_STYLES = "py-[3px] px-[2px] m-0 !leading-[1.3] outline-none [&_p]:!p-0 [&_p]:!m-0 [&_div]:!p-0 [&_div]:!m-0", x.DEFAULT_LEVELS = [
541
+ { number: 1, tag: "H1", nameKey: "tools.header.heading1", name: "Heading 1", icon: ct, styles: "text-4xl font-bold mt-8 mb-1" },
542
+ { number: 2, tag: "H2", nameKey: "tools.header.heading2", name: "Heading 2", icon: dt, styles: "text-3xl font-semibold mt-6 mb-px" },
543
+ { number: 3, tag: "H3", nameKey: "tools.header.heading3", name: "Heading 3", icon: ut, styles: "text-2xl font-semibold mt-4 mb-px" },
544
+ { number: 4, tag: "H4", nameKey: "tools.header.heading4", name: "Heading 4", icon: ht, styles: "text-xl font-semibold mt-3 mb-px" },
545
+ { number: 5, tag: "H5", nameKey: "tools.header.heading5", name: "Heading 5", icon: ft, styles: "text-base font-semibold mt-3 mb-px" },
546
+ { number: 6, tag: "H6", nameKey: "tools.header.heading6", name: "Heading 6", icon: pt, styles: "text-sm font-semibold mt-3 mb-px" }
506
547
  ];
507
- let Y = I;
548
+ let J = x;
508
549
  const u = class u {
509
550
  constructor({ data: t, config: e, api: n, readOnly: r, block: s }) {
510
551
  this._element = null, this.handleBlockChanged = (o) => {
@@ -544,14 +585,14 @@ const u = class u {
544
585
  return this._settings.itemSize;
545
586
  }
546
587
  get placeholder() {
547
- return this.api.i18n.t(u.DEFAULT_PLACEHOLDER);
588
+ return this.api.i18n.t(u.PLACEHOLDER_KEY);
548
589
  }
549
590
  applyItemStyles(t) {
550
591
  const e = t.style;
551
592
  this.itemColor && (e.color = this.itemColor), this.itemSize && (e.fontSize = this.itemSize);
552
593
  }
553
594
  setupItemPlaceholder(t) {
554
- this.readOnly || z(t, this.placeholder);
595
+ this.readOnly || V(t, this.placeholder);
555
596
  }
556
597
  render() {
557
598
  return this._element = this.createItemElement(), this._element;
@@ -1260,7 +1301,7 @@ const u = class u {
1260
1301
  save() {
1261
1302
  if (!this._element) return this._data;
1262
1303
  const t = this.getContentElement(), n = {
1263
- text: t ? et(t.innerHTML) : this._data.text,
1304
+ text: t ? nt(t.innerHTML) : this._data.text,
1264
1305
  style: this._data.style,
1265
1306
  checked: this._data.checked
1266
1307
  };
@@ -1375,21 +1416,21 @@ const u = class u {
1375
1416
  static get toolbox() {
1376
1417
  return [
1377
1418
  {
1378
- icon: G,
1419
+ icon: j,
1379
1420
  title: "Bulleted list",
1380
1421
  titleKey: "bulletedList",
1381
1422
  data: { style: "unordered" },
1382
1423
  name: "bulleted-list"
1383
1424
  },
1384
1425
  {
1385
- icon: j,
1426
+ icon: $,
1386
1427
  title: "Numbered list",
1387
1428
  titleKey: "numberedList",
1388
1429
  data: { style: "ordered" },
1389
1430
  name: "numbered-list"
1390
1431
  },
1391
1432
  {
1392
- icon: $,
1433
+ icon: X,
1393
1434
  title: "To-do list",
1394
1435
  titleKey: "todoList",
1395
1436
  data: { style: "checklist" },
@@ -1399,11 +1440,11 @@ const u = class u {
1399
1440
  }
1400
1441
  };
1401
1442
  u.BASE_STYLES = "outline-none", u.ITEM_STYLES = "outline-none py-0.5 pl-0.5 leading-[1.6em]", u.CHECKLIST_ITEM_STYLES = "flex items-start py-0.5 pl-0.5", u.CHECKBOX_STYLES = "mt-1 w-4 mr-2 h-4 cursor-pointer accent-current", u.STYLE_CONFIGS = [
1402
- { style: "unordered", name: "bulletedList", icon: G },
1403
- { style: "ordered", name: "numberedList", icon: j },
1404
- { style: "checklist", name: "todoList", icon: $ }
1405
- ], u.pendingMarkerUpdate = !1, u.DEFAULT_PLACEHOLDER = "List", u.INDENT_PER_LEVEL = 24, u.TOOL_NAME = "list";
1406
- let J = u;
1443
+ { style: "unordered", name: "bulletedList", icon: j },
1444
+ { style: "ordered", name: "numberedList", icon: $ },
1445
+ { style: "checklist", name: "todoList", icon: X }
1446
+ ], u.pendingMarkerUpdate = !1, u.PLACEHOLDER_KEY = "tools.list.placeholder", u.INDENT_PER_LEVEL = 24, u.TOOL_NAME = "list";
1447
+ let Z = u;
1407
1448
  const i = class i {
1408
1449
  /**
1409
1450
  * Sanitizer Rule
@@ -1470,16 +1511,16 @@ const i = class i {
1470
1511
  }
1471
1512
  const p = (n = l.textContent) != null ? n : "";
1472
1513
  p.length > 1 && p.startsWith("​") && (l.textContent = p.slice(1));
1473
- const T = window.getSelection();
1474
- i.ensureCaretAtBoundary(T, l), i.scheduleBoundaryCaretAdjustment(l);
1475
- const y = (r = l.textContent) != null ? r : "", m = y.replace(/\u200B/g, ""), C = m.match(/^\s+/), E = /\S/.test(m), N = y.startsWith("​");
1476
- C && (o.hasLeadingSpace = !0, o.leadingWhitespace = C[0]), E && (o.hasTypedContent = !0);
1477
- const B = /^\s/.test(m), x = o.hasTypedContent && !N && ((s = d.textContent) != null ? s : "").length <= c, v = o.hasLeadingSpace && o.hasTypedContent && !B;
1478
- if (x && v) {
1514
+ const m = window.getSelection();
1515
+ i.ensureCaretAtBoundary(m, l), i.scheduleBoundaryCaretAdjustment(l);
1516
+ const y = (r = l.textContent) != null ? r : "", E = y.replace(/\u200B/g, ""), C = E.match(/^\s+/), T = /\S/.test(E), N = y.startsWith("​");
1517
+ C && (o.hasLeadingSpace = !0, o.leadingWhitespace = C[0]), T && (o.hasTypedContent = !0);
1518
+ const B = /^\s/.test(E), v = o.hasTypedContent && !N && ((s = d.textContent) != null ? s : "").length <= c, R = o.hasLeadingSpace && o.hasTypedContent && !B;
1519
+ if (v && R) {
1479
1520
  const b = y.replace(/^[\u200B\s]+/, ""), S = o.leadingWhitespace || " ";
1480
- l.textContent = `${S}${b}`, i.ensureCaretAtBoundary(T, l);
1521
+ l.textContent = `${S}${b}`, i.ensureCaretAtBoundary(m, l);
1481
1522
  }
1482
- x && i.collapsedExitRecords.delete(o);
1523
+ v && i.collapsedExitRecords.delete(o);
1483
1524
  }
1484
1525
  }
1485
1526
  /**
@@ -2038,27 +2079,27 @@ const i = class i {
2038
2079
  return;
2039
2080
  const s = `strong[${i.DATA_ATTR_COLLAPSED_ACTIVE}="true"]`;
2040
2081
  r.querySelectorAll(s).forEach((l) => {
2041
- var k, R, F, V, q;
2082
+ var k, I, F, z, K;
2042
2083
  const d = l.getAttribute(i.DATA_ATTR_PREV_LENGTH), c = l.previousSibling;
2043
2084
  if (!d || !c || c.nodeType !== Node.TEXT_NODE)
2044
2085
  return;
2045
2086
  const h = Number(d);
2046
2087
  if (!Number.isFinite(h))
2047
2088
  return;
2048
- const p = c, T = (k = p.textContent) != null ? k : "";
2049
- if (T.length <= h)
2089
+ const p = c, m = (k = p.textContent) != null ? k : "";
2090
+ if (m.length <= h)
2050
2091
  return;
2051
- const y = T.slice(0, h), m = T.slice(h);
2092
+ const y = m.slice(0, h), E = m.slice(h);
2052
2093
  p.textContent = y;
2053
- const C = m.match(/^[\u00A0\s]+/);
2054
- if (C && !l.hasAttribute(i.DATA_ATTR_LEADING_WHITESPACE) && l.setAttribute(i.DATA_ATTR_LEADING_WHITESPACE, C[0]), m.length === 0)
2094
+ const C = E.match(/^[\u00A0\s]+/);
2095
+ if (C && !l.hasAttribute(i.DATA_ATTR_LEADING_WHITESPACE) && l.setAttribute(i.DATA_ATTR_LEADING_WHITESPACE, C[0]), E.length === 0)
2055
2096
  return;
2056
- const E = (R = l.textContent) != null ? R : "", N = E + m, B = (F = l.getAttribute(i.DATA_ATTR_LEADING_WHITESPACE)) != null ? F : "", v = B.length > 0 && E.length === 0 && !N.startsWith(B) ? B + N : N, b = document.createTextNode(v);
2097
+ const T = (I = l.textContent) != null ? I : "", N = T + E, B = (F = l.getAttribute(i.DATA_ATTR_LEADING_WHITESPACE)) != null ? F : "", R = B.length > 0 && T.length === 0 && !N.startsWith(B) ? B + N : N, b = document.createTextNode(R);
2057
2098
  for (; l.firstChild; )
2058
2099
  l.removeChild(l.firstChild);
2059
2100
  if (l.appendChild(b), !(t != null && t.isCollapsed) || !i.isNodeWithin(t.focusNode, p))
2060
2101
  return;
2061
- const S = document.createRange(), _ = (q = (V = b.textContent) == null ? void 0 : V.length) != null ? q : 0;
2102
+ const S = document.createRange(), _ = (K = (z = b.textContent) == null ? void 0 : z.length) != null ? K : 0;
2062
2103
  S.setStart(b, _), S.collapse(!0), t.removeAllRanges(), t.addRange(S);
2063
2104
  });
2064
2105
  }
@@ -2268,23 +2309,23 @@ const i = class i {
2268
2309
  if (!r)
2269
2310
  return;
2270
2311
  r.querySelectorAll(`strong[${i.DATA_ATTR_COLLAPSED_LENGTH}]`).forEach((a) => {
2271
- var x, v, b, S, _;
2312
+ var v, R, b, S, _;
2272
2313
  const l = a, d = l.getAttribute(i.DATA_ATTR_COLLAPSED_LENGTH);
2273
2314
  if (!d)
2274
2315
  return;
2275
- const c = Number(d), h = (x = l.textContent) != null ? x : "";
2316
+ const c = Number(d), h = (v = l.textContent) != null ? v : "";
2276
2317
  if (!Number.isFinite(c))
2277
2318
  return;
2278
- const p = h.length > c, T = p ? i.splitCollapsedBoldText(l, c, h) : null, y = l.getAttribute(i.DATA_ATTR_PREV_LENGTH), m = y ? Number(y) : NaN, C = l.previousSibling, E = (C == null ? void 0 : C.nodeType) === Node.TEXT_NODE ? C : null, N = (v = E == null ? void 0 : E.textContent) != null ? v : "", B = !!(y && Number.isFinite(m) && E && N.length > m);
2279
- if (B && E) {
2280
- const k = N.slice(0, m), R = N.slice(m);
2281
- E.textContent = k;
2282
- const F = document.createTextNode(R);
2319
+ const p = h.length > c, m = p ? i.splitCollapsedBoldText(l, c, h) : null, y = l.getAttribute(i.DATA_ATTR_PREV_LENGTH), E = y ? Number(y) : NaN, C = l.previousSibling, T = (C == null ? void 0 : C.nodeType) === Node.TEXT_NODE ? C : null, N = (R = T == null ? void 0 : T.textContent) != null ? R : "", B = !!(y && Number.isFinite(E) && T && N.length > E);
2320
+ if (B && T) {
2321
+ const k = N.slice(0, E), I = N.slice(E);
2322
+ T.textContent = k;
2323
+ const F = document.createTextNode(I);
2283
2324
  (b = l.parentNode) == null || b.insertBefore(F, l.nextSibling);
2284
2325
  }
2285
- if (B && l.removeAttribute(i.DATA_ATTR_PREV_LENGTH), t != null && t.isCollapsed && T && i.isNodeWithin(t.focusNode, l)) {
2286
- const k = document.createRange(), R = (_ = (S = T.textContent) == null ? void 0 : S.length) != null ? _ : 0;
2287
- k.setStart(T, R), k.collapse(!0), t.removeAllRanges(), t.addRange(k);
2326
+ if (B && l.removeAttribute(i.DATA_ATTR_PREV_LENGTH), t != null && t.isCollapsed && m && i.isNodeWithin(t.focusNode, l)) {
2327
+ const k = document.createRange(), I = (_ = (S = m.textContent) == null ? void 0 : S.length) != null ? _ : 0;
2328
+ k.setStart(m, I), k.collapse(!0), t.removeAllRanges(), t.addRange(k);
2288
2329
  }
2289
2330
  p && l.removeAttribute(i.DATA_ATTR_COLLAPSED_LENGTH);
2290
2331
  });
@@ -2399,19 +2440,19 @@ const i = class i {
2399
2440
  * @param parent - Parent node that hosts the bold element
2400
2441
  */
2401
2442
  static exitCollapsedBoldWithContent(t, e, n) {
2402
- var p, T, y, m, C, E;
2403
- e.setAttribute(i.DATA_ATTR_COLLAPSED_LENGTH, ((T = (p = e.textContent) == null ? void 0 : p.length) != null ? T : 0).toString()), e.removeAttribute(i.DATA_ATTR_PREV_LENGTH), e.removeAttribute(i.DATA_ATTR_COLLAPSED_ACTIVE), e.removeAttribute(i.DATA_ATTR_LEADING_WHITESPACE);
2443
+ var p, m, y, E, C, T;
2444
+ e.setAttribute(i.DATA_ATTR_COLLAPSED_LENGTH, ((m = (p = e.textContent) == null ? void 0 : p.length) != null ? m : 0).toString()), e.removeAttribute(i.DATA_ATTR_PREV_LENGTH), e.removeAttribute(i.DATA_ATTR_COLLAPSED_ACTIVE), e.removeAttribute(i.DATA_ATTR_LEADING_WHITESPACE);
2404
2445
  const r = e.nextSibling, s = !r || r.nodeType !== Node.TEXT_NODE, o = s ? document.createTextNode("​") : null;
2405
2446
  o && n.insertBefore(o, r);
2406
2447
  const a = o != null ? o : r;
2407
2448
  !s && ((y = a.textContent) != null ? y : "").length === 0 && (a.textContent = "​");
2408
- const l = document.createRange(), c = ((m = a.textContent) != null ? m : "").startsWith("​") ? 1 : 0;
2449
+ const l = document.createRange(), c = ((E = a.textContent) != null ? E : "").startsWith("​") ? 1 : 0;
2409
2450
  l.setStart(a, c), l.collapse(!0), t.removeAllRanges(), t.addRange(l);
2410
2451
  const h = i.ensureStrongElement(e);
2411
2452
  return i.collapsedExitRecords.add({
2412
2453
  boundary: a,
2413
2454
  boldElement: h,
2414
- allowedLength: (E = (C = h.textContent) == null ? void 0 : C.length) != null ? E : 0,
2455
+ allowedLength: (T = (C = h.textContent) == null ? void 0 : C.length) != null ? T : 0,
2415
2456
  hasLeadingSpace: !1,
2416
2457
  hasTypedContent: !1,
2417
2458
  leadingWhitespace: ""
@@ -2549,7 +2590,7 @@ const i = class i {
2549
2590
  }
2550
2591
  };
2551
2592
  i.isInline = !0, i.title = "Bold", i.titleKey = "bold", i.shortcutListenerRegistered = !1, i.selectionListenerRegistered = !1, i.inputListenerRegistered = !1, i.beforeInputListenerRegistered = !1, i.globalListenersInitialized = i.initializeGlobalListeners(), i.collapsedExitRecords = /* @__PURE__ */ new Set(), i.markerSequence = 0, i.isProcessingMutation = !1, i.DATA_ATTR_COLLAPSED_LENGTH = "data-blok-bold-collapsed-length", i.DATA_ATTR_COLLAPSED_ACTIVE = "data-blok-bold-collapsed-active", i.DATA_ATTR_PREV_LENGTH = "data-blok-bold-prev-length", i.DATA_ATTR_LEADING_WHITESPACE = "data-blok-bold-leading-ws", i.instances = /* @__PURE__ */ new Set(), i.pendingBoundaryCaretAdjustments = /* @__PURE__ */ new WeakSet(), i.shortcut = "CMD+B";
2552
- let Z = i;
2593
+ let Q = i;
2553
2594
  const O = class O {
2554
2595
  /**
2555
2596
  * Sanitizer Rule
@@ -2822,7 +2863,7 @@ const O = class O {
2822
2863
  }
2823
2864
  };
2824
2865
  O.isInline = !0, O.title = "Italic", O.titleKey = "italic", O.shortcut = "CMD+I";
2825
- let Q = O;
2866
+ let tt = O;
2826
2867
  const D = class D {
2827
2868
  /**
2828
2869
  * @param api - Blok API
@@ -3050,24 +3091,24 @@ const D = class D {
3050
3091
  }
3051
3092
  };
3052
3093
  D.isInline = !0, D.title = "Link", D.titleKey = "link", D.shortcut = "CMD+K";
3053
- let tt = D;
3094
+ let et = D;
3054
3095
  const xt = {
3055
- paragraph: { inlineToolbar: !0, config: { preserveBlank: !0 } },
3056
- header: { inlineToolbar: !0 },
3057
- list: { inlineToolbar: !0 }
3096
+ paragraph: { preserveBlank: !0 },
3097
+ header: {},
3098
+ list: {}
3058
3099
  }, vt = {
3059
3100
  bold: {},
3060
3101
  italic: {},
3061
3102
  link: {}
3062
3103
  };
3063
3104
  export {
3064
- Z as Bold,
3105
+ Q as Bold,
3065
3106
  Ot as Convert,
3066
- Y as Header,
3067
- Q as Italic,
3068
- tt as Link,
3069
- J as List,
3070
- X as Paragraph,
3107
+ J as Header,
3108
+ tt as Italic,
3109
+ et as Link,
3110
+ Z as List,
3111
+ Y as Paragraph,
3071
3112
  xt as defaultBlockTools,
3072
3113
  vt as defaultInlineTools
3073
3114
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jackuait/blok",
3
- "version": "0.4.3-beta.1",
3
+ "version": "0.4.3-beta.10",
4
4
  "description": "Blok — headless, highly extensible rich text editor built for developers who need to implement a block-based editing experience (similar to Notion) without building it from scratch",
5
5
  "module": "dist/blok.mjs",
6
6
  "types": "./types/index.d.ts",
@@ -146,7 +146,6 @@
146
146
  "husky": "^9.1.7",
147
147
  "jscpd": "4.0.5",
148
148
  "jsdom": "27.2.0",
149
- "nanoid": "5.1.6",
150
149
  "playwright": "1.57.0",
151
150
  "postcss": "8.5.6",
152
151
  "rollup-plugin-license": "3.6.0",
@@ -162,6 +161,7 @@
162
161
  "yaml": "2.8.1"
163
162
  },
164
163
  "dependencies": {
165
- "i18next": "^25.7.3"
164
+ "i18next": "^25.7.3",
165
+ "nanoid": "^5.1.6"
166
166
  }
167
167
  }
@@ -447,12 +447,28 @@ export class Flipper {
447
447
  }
448
448
  }
449
449
 
450
+ /**
451
+ * Scrolls the given element into view using the best available method
452
+ * @param element - element to scroll into view
453
+ */
454
+ private scrollElementIntoView(element: HTMLElement): void {
455
+ const el = element as HTMLElement & { scrollIntoViewIfNeeded?: (centerIfNeeded?: boolean) => void };
456
+
457
+ if (typeof el.scrollIntoViewIfNeeded === 'function') {
458
+ el.scrollIntoViewIfNeeded();
459
+
460
+ return;
461
+ }
462
+
463
+ el.scrollIntoView({ block: 'nearest' });
464
+ }
465
+
450
466
  /**
451
467
  * Fired after flipping in any direction
452
468
  */
453
469
  private flipCallback(): void {
454
470
  if (this.iterator?.currentItem) {
455
- this.iterator.currentItem.scrollIntoViewIfNeeded?.();
471
+ this.scrollElementIntoView(this.iterator.currentItem);
456
472
  }
457
473
 
458
474
  this.flipCallbacks.forEach(cb => cb());
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "ርዕስ 4",
26
26
  "tools.header.heading5": "ርዕስ 5",
27
27
  "tools.header.heading6": "ርዕስ 6",
28
- "tools.list.list": "ዝርዝር",
28
+ "tools.list.placeholder": "ዝርዝር",
29
29
  "blockSettings.delete": "ሰርዝ",
30
30
  "a11y.dragHandle": "ብሎኩን ለማንቀሳቀስ ይጎትቱ ወይም ለምናሌ ጠቅ ያድርጉ",
31
31
  "a11y.dragHandleRole": "መጎተቻ",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "عنوان 4",
26
26
  "tools.header.heading5": "عنوان 5",
27
27
  "tools.header.heading6": "عنوان 6",
28
- "tools.list.list": "قائمة",
28
+ "tools.list.placeholder": "قائمة",
29
29
  "blockSettings.delete": "حذف",
30
30
  "a11y.dragHandle": "اسحب لتحريك الكتلة أو انقر للقائمة",
31
31
  "a11y.dragHandleRole": "مقبض السحب",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Başlıq 4",
26
26
  "tools.header.heading5": "Başlıq 5",
27
27
  "tools.header.heading6": "Başlıq 6",
28
- "tools.list.list": "Siyahı",
28
+ "tools.list.placeholder": "Siyahı",
29
29
  "blockSettings.delete": "Sil",
30
30
  "a11y.dragHandle": "Köçürmək üçün dartın və ya menyu üçün klikləyin",
31
31
  "a11y.dragHandleRole": "dartma tutacağı",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Заглавие 4",
26
26
  "tools.header.heading5": "Заглавие 5",
27
27
  "tools.header.heading6": "Заглавие 6",
28
- "tools.list.list": "Списък",
28
+ "tools.list.placeholder": "Списък",
29
29
  "blockSettings.delete": "Изтриване",
30
30
  "a11y.dragHandle": "Плъзнете за преместване на блок или щракнете за меню",
31
31
  "a11y.dragHandleRole": "манипулатор за плъзгане",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "শিরোনাম 4",
26
26
  "tools.header.heading5": "শিরোনাম 5",
27
27
  "tools.header.heading6": "শিরোনাম 6",
28
- "tools.list.list": "তালিকা",
28
+ "tools.list.placeholder": "তালিকা",
29
29
  "blockSettings.delete": "মুছুন",
30
30
  "a11y.dragHandle": "ব্লক সরাতে টানুন বা মেনুর জন্য ক্লিক করুন",
31
31
  "a11y.dragHandleRole": "টানার হ্যান্ডেল",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Naslov 4",
26
26
  "tools.header.heading5": "Naslov 5",
27
27
  "tools.header.heading6": "Naslov 6",
28
- "tools.list.list": "Lista",
28
+ "tools.list.placeholder": "Lista",
29
29
  "blockSettings.delete": "Obriši",
30
30
  "a11y.dragHandle": "Prevucite za premještanje bloka ili kliknite za meni",
31
31
  "a11y.dragHandleRole": "ručka za povlačenje",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Nadpis 4",
26
26
  "tools.header.heading5": "Nadpis 5",
27
27
  "tools.header.heading6": "Nadpis 6",
28
- "tools.list.list": "Seznam",
28
+ "tools.list.placeholder": "Seznam",
29
29
  "blockSettings.delete": "Smazat",
30
30
  "a11y.dragHandle": "Přetáhněte pro přesunutí nebo klikněte pro nabídku",
31
31
  "a11y.dragHandleRole": "úchyt pro přetažení",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Overskrift 4",
26
26
  "tools.header.heading5": "Overskrift 5",
27
27
  "tools.header.heading6": "Overskrift 6",
28
- "tools.list.list": "Liste",
28
+ "tools.list.placeholder": "Liste",
29
29
  "blockSettings.delete": "Slet",
30
30
  "a11y.dragHandle": "Træk for at flytte blok eller klik for menu",
31
31
  "a11y.dragHandleRole": "trækhåndtag",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Überschrift 4",
26
26
  "tools.header.heading5": "Überschrift 5",
27
27
  "tools.header.heading6": "Überschrift 6",
28
- "tools.list.list": "Liste",
28
+ "tools.list.placeholder": "Liste",
29
29
  "blockSettings.delete": "Löschen",
30
30
  "a11y.dragHandle": "Ziehen zum Verschieben oder klicken für Menü",
31
31
  "a11y.dragHandleRole": "Ziehgriff",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "ސުރުޚީ 4",
26
26
  "tools.header.heading5": "ސުރުޚީ 5",
27
27
  "tools.header.heading6": "ސުރުޚީ 6",
28
- "tools.list.list": "ލިސްޓް",
28
+ "tools.list.placeholder": "ލިސްޓް",
29
29
  "blockSettings.delete": "ފޮހެލާ",
30
30
  "a11y.dragHandle": "ބްލޮކް ބަދަލުކުރަން ދަމާލާ ނުވަތަ މެނޫއަށް ކްލިކް ކުރޭ",
31
31
  "a11y.dragHandleRole": "ދެމުމުގެ ހެންޑަލް",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Επικεφαλίδα 4",
26
26
  "tools.header.heading5": "Επικεφαλίδα 5",
27
27
  "tools.header.heading6": "Επικεφαλίδα 6",
28
- "tools.list.list": "Λίστα",
28
+ "tools.list.placeholder": "Λίστα",
29
29
  "blockSettings.delete": "Διαγραφή",
30
30
  "a11y.dragHandle": "Σύρετε για μετακίνηση ή κλικ για μενού",
31
31
  "a11y.dragHandleRole": "λαβή μετακίνησης",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Heading 4",
26
26
  "tools.header.heading5": "Heading 5",
27
27
  "tools.header.heading6": "Heading 6",
28
- "tools.list.list": "List",
28
+ "tools.list.placeholder": "List",
29
29
  "blockSettings.delete": "Delete",
30
30
  "a11y.dragHandle": "Drag to move block or click for menu",
31
31
  "a11y.dragHandleRole": "drag handle",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Encabezado 4",
26
26
  "tools.header.heading5": "Encabezado 5",
27
27
  "tools.header.heading6": "Encabezado 6",
28
- "tools.list.list": "Lista",
28
+ "tools.list.placeholder": "Lista",
29
29
  "blockSettings.delete": "Eliminar",
30
30
  "a11y.dragHandle": "Arrastra para mover o haz clic para el menú",
31
31
  "a11y.dragHandleRole": "control de arrastre",
@@ -25,7 +25,7 @@
25
25
  "tools.header.heading4": "Pealkiri 4",
26
26
  "tools.header.heading5": "Pealkiri 5",
27
27
  "tools.header.heading6": "Pealkiri 6",
28
- "tools.list.list": "Loend",
28
+ "tools.list.placeholder": "Loend",
29
29
  "blockSettings.delete": "Kustuta",
30
30
  "a11y.dragHandle": "Lohista ploki teisaldamiseks või klõpsa menüü jaoks",
31
31
  "a11y.dragHandleRole": "lohistamiskäepide",