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

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 (228) hide show
  1. package/README.md +5 -7
  2. package/dist/blok.mjs +2 -2
  3. package/dist/chunks/{blok-D85C_iyk.mjs → blok-BmV2xHX0.mjs} +1726 -1849
  4. package/dist/chunks/{i18next-loader-exc8oN3J.mjs → i18next-loader-DpRv9zC6.mjs} +1 -1
  5. package/dist/chunks/{index-fqgWb6Ue.mjs → index-CIEBlnPd.mjs} +1 -1
  6. package/dist/chunks/{inline-tool-convert-CYkcoF1r.mjs → inline-tool-convert-BTalcg_7.mjs} +8 -8
  7. package/dist/{messages-82j7Sb1f.mjs → chunks/messages-2434tVOK.mjs} +1 -1
  8. package/dist/chunks/{messages-D-tDNAzW.mjs → messages-3DcCwXMF.mjs} +1 -1
  9. package/dist/{messages-DIbeBo-6.mjs → chunks/messages-4kMwVAKY.mjs} +1 -1
  10. package/dist/{messages-CjksZqgf.mjs → chunks/messages-57uL5htT.mjs} +1 -1
  11. package/dist/chunks/{messages-BgmPDL9Z.mjs → messages-76-iJV9Q.mjs} +1 -1
  12. package/dist/{messages-DkJ5aV3V.mjs → chunks/messages-8p86Eyf2.mjs} +1 -1
  13. package/dist/chunks/{messages-TulYnz1f.mjs → messages-BBX0p0Pi.mjs} +1 -1
  14. package/dist/chunks/{messages-CVvHbBlx.mjs → messages-BCm2eudQ.mjs} +1 -1
  15. package/dist/chunks/{messages--yMo5vYp.mjs → messages-BFiUomgG.mjs} +1 -1
  16. package/dist/chunks/{messages-BXsoyz5-.mjs → messages-BIPNHHAV.mjs} +1 -1
  17. package/dist/chunks/{messages-DhdzbzrS.mjs → messages-BUlwu9mo.mjs} +1 -1
  18. package/dist/chunks/{messages-DRTt_xBc.mjs → messages-BX-DPa-z.mjs} +1 -1
  19. package/dist/chunks/{messages-Bi0X1QMU.mjs → messages-BextV3Qh.mjs} +1 -1
  20. package/dist/{messages-D9xzl8Wn.mjs → chunks/messages-BiPSFlUG.mjs} +1 -1
  21. package/dist/chunks/{messages-CoY-hJgp.mjs → messages-BiXe9G-O.mjs} +1 -1
  22. package/dist/{messages-Dw5GZ4YT.mjs → chunks/messages-Bl5z_Igo.mjs} +1 -1
  23. package/dist/{messages-KLzTvDED.mjs → chunks/messages-BnsE97ku.mjs} +1 -1
  24. package/dist/chunks/{messages-DG2QXu_f.mjs → messages-BoO8gsVD.mjs} +1 -1
  25. package/dist/{messages-CbtBGtJT.mjs → chunks/messages-BqWaOGMn.mjs} +1 -1
  26. package/dist/chunks/{messages-CcYGSGRh.mjs → messages-BqkL2_Ro.mjs} +1 -1
  27. package/dist/{messages-qFesO1Lu.mjs → chunks/messages-BvCkXKX-.mjs} +1 -1
  28. package/dist/{messages-Df6LYOt5.mjs → chunks/messages-C6tbPLoj.mjs} +1 -1
  29. package/dist/chunks/{messages-dIzxSHR2.mjs → messages-CA6T3-gQ.mjs} +1 -1
  30. package/dist/{messages-zs9AgeBF.mjs → chunks/messages-CFFPFdWP.mjs} +1 -1
  31. package/dist/{messages-Cm4WhO4g.mjs → chunks/messages-CFrKE-TN.mjs} +1 -1
  32. package/dist/chunks/{messages-D8sk1mxH.mjs → messages-CHz8VlG-.mjs} +1 -1
  33. package/dist/chunks/{messages-HSxl9MoN.mjs → messages-CLixzySl.mjs} +1 -1
  34. package/dist/{messages-DT43ZUKr.mjs → chunks/messages-CV7OM_qk.mjs} +1 -1
  35. package/dist/chunks/{messages-BYeiscyc.mjs → messages-CXHt3eCC.mjs} +1 -1
  36. package/dist/chunks/{messages-CTeYgNo1.mjs → messages-CbmsBrB0.mjs} +1 -1
  37. package/dist/chunks/{messages-DiyoZ_Oa.mjs → messages-Ceo1KtFx.mjs} +1 -1
  38. package/dist/{messages-D8VsV_Ro.mjs → chunks/messages-Cm0LJLtB.mjs} +1 -1
  39. package/dist/chunks/{messages-BaaIMBL8.mjs → messages-CmymP_Ar.mjs} +1 -1
  40. package/dist/chunks/{messages-Uexhy7C9.mjs → messages-D0ohMB5H.mjs} +1 -1
  41. package/dist/{messages-CbP4KoKV.mjs → chunks/messages-D3GrDwXh.mjs} +1 -1
  42. package/dist/{messages-CNRsIuSS.mjs → chunks/messages-D3vTzIpL.mjs} +1 -1
  43. package/dist/{messages-B-b_IFZh.mjs → chunks/messages-D5WeksbV.mjs} +1 -1
  44. package/dist/chunks/{messages-DHdkT1vy.mjs → messages-DGaab4EP.mjs} +1 -1
  45. package/dist/{messages-CwYueRo5.mjs → chunks/messages-DKha57ZU.mjs} +1 -1
  46. package/dist/chunks/{messages-JztkG3tZ.mjs → messages-DOaujgMW.mjs} +1 -1
  47. package/dist/chunks/{messages-DR0sRlko.mjs → messages-DVbPLd_0.mjs} +1 -1
  48. package/dist/chunks/{messages-BnmcUH66.mjs → messages-D_FCyfW6.mjs} +1 -1
  49. package/dist/chunks/{messages-BgbVziWf.mjs → messages-Dd5iZN3c.mjs} +1 -1
  50. package/dist/{messages-D2h_bTrn.mjs → chunks/messages-DehM7135.mjs} +1 -1
  51. package/dist/chunks/{messages-CbepBt3K.mjs → messages-Dg1OHftD.mjs} +1 -1
  52. package/dist/{messages-DT5djAjs.mjs → chunks/messages-Di6Flq-b.mjs} +1 -1
  53. package/dist/chunks/{messages-ctRNTfv5.mjs → messages-Dqhhex6e.mjs} +1 -1
  54. package/dist/chunks/{messages-Bo9JrN9m.mjs → messages-DueVe0F1.mjs} +1 -1
  55. package/dist/chunks/{messages-DvwZEFTL.mjs → messages-Dx3eFwI0.mjs} +1 -1
  56. package/dist/chunks/{messages-jmh1Gbfd.mjs → messages-FOtiUoKl.mjs} +1 -1
  57. package/dist/{messages-B7zIiLTq.mjs → chunks/messages-FTOZNhRD.mjs} +1 -1
  58. package/dist/chunks/{messages-D5J2Xlpx.mjs → messages-IQxGfQIV.mjs} +1 -1
  59. package/dist/chunks/{messages-BCidD-VB.mjs → messages-JF2fzCkK.mjs} +1 -1
  60. package/dist/chunks/{messages-D8tlQmPj.mjs → messages-MOGl7I5v.mjs} +1 -1
  61. package/dist/chunks/{messages-BjZll4R7.mjs → messages-QgYhPL-3.mjs} +1 -1
  62. package/dist/{messages-BWDnoNq0.mjs → chunks/messages-WYWIbQwo.mjs} +1 -1
  63. package/dist/chunks/{messages-oO_lJ-_I.mjs → messages-a6A_LgDv.mjs} +1 -1
  64. package/dist/chunks/{messages-g7Njot5w.mjs → messages-bSf31LJi.mjs} +1 -1
  65. package/dist/chunks/{messages-sSYZ0Mz9.mjs → messages-diGozhTn.mjs} +1 -1
  66. package/dist/chunks/{messages-BZ-Ia4tk.mjs → messages-er-kd-VO.mjs} +1 -1
  67. package/dist/chunks/{messages-B5OIvtYB.mjs → messages-ez3w5NBn.mjs} +1 -1
  68. package/dist/chunks/{messages-BuKgyEeU.mjs → messages-f3uXjegd.mjs} +1 -1
  69. package/dist/{messages-CJQt8nzO.mjs → chunks/messages-ohwI1UGv.mjs} +1 -1
  70. package/dist/{messages-9-pnvSWZ.mjs → chunks/messages-p9BZJaFV.mjs} +1 -1
  71. package/dist/{messages-CpkO-V0C.mjs → chunks/messages-qIQ4L4rw.mjs} +1 -1
  72. package/dist/{messages-CPdlHIEi.mjs → chunks/messages-qWkXPggi.mjs} +1 -1
  73. package/dist/chunks/{messages-iNIhRBkQ.mjs → messages-w5foGze_.mjs} +1 -1
  74. package/dist/full.mjs +2 -2
  75. package/dist/locales.mjs +68 -68
  76. package/dist/{chunks/messages-82j7Sb1f.mjs → messages-2434tVOK.mjs} +1 -1
  77. package/dist/{messages-D-tDNAzW.mjs → messages-3DcCwXMF.mjs} +1 -1
  78. package/dist/{chunks/messages-DIbeBo-6.mjs → messages-4kMwVAKY.mjs} +1 -1
  79. package/dist/{chunks/messages-CjksZqgf.mjs → messages-57uL5htT.mjs} +1 -1
  80. package/dist/{messages-BgmPDL9Z.mjs → messages-76-iJV9Q.mjs} +1 -1
  81. package/dist/{chunks/messages-DkJ5aV3V.mjs → messages-8p86Eyf2.mjs} +1 -1
  82. package/dist/{messages-TulYnz1f.mjs → messages-BBX0p0Pi.mjs} +1 -1
  83. package/dist/{messages-CVvHbBlx.mjs → messages-BCm2eudQ.mjs} +1 -1
  84. package/dist/{messages--yMo5vYp.mjs → messages-BFiUomgG.mjs} +1 -1
  85. package/dist/{messages-BXsoyz5-.mjs → messages-BIPNHHAV.mjs} +1 -1
  86. package/dist/{messages-DhdzbzrS.mjs → messages-BUlwu9mo.mjs} +1 -1
  87. package/dist/{messages-DRTt_xBc.mjs → messages-BX-DPa-z.mjs} +1 -1
  88. package/dist/{messages-Bi0X1QMU.mjs → messages-BextV3Qh.mjs} +1 -1
  89. package/dist/{chunks/messages-D9xzl8Wn.mjs → messages-BiPSFlUG.mjs} +1 -1
  90. package/dist/{messages-CoY-hJgp.mjs → messages-BiXe9G-O.mjs} +1 -1
  91. package/dist/{chunks/messages-Dw5GZ4YT.mjs → messages-Bl5z_Igo.mjs} +1 -1
  92. package/dist/{chunks/messages-KLzTvDED.mjs → messages-BnsE97ku.mjs} +1 -1
  93. package/dist/{messages-DG2QXu_f.mjs → messages-BoO8gsVD.mjs} +1 -1
  94. package/dist/{chunks/messages-CbtBGtJT.mjs → messages-BqWaOGMn.mjs} +1 -1
  95. package/dist/{messages-CcYGSGRh.mjs → messages-BqkL2_Ro.mjs} +1 -1
  96. package/dist/{chunks/messages-qFesO1Lu.mjs → messages-BvCkXKX-.mjs} +1 -1
  97. package/dist/{chunks/messages-Df6LYOt5.mjs → messages-C6tbPLoj.mjs} +1 -1
  98. package/dist/{messages-dIzxSHR2.mjs → messages-CA6T3-gQ.mjs} +1 -1
  99. package/dist/{chunks/messages-zs9AgeBF.mjs → messages-CFFPFdWP.mjs} +1 -1
  100. package/dist/{chunks/messages-Cm4WhO4g.mjs → messages-CFrKE-TN.mjs} +1 -1
  101. package/dist/{messages-D8sk1mxH.mjs → messages-CHz8VlG-.mjs} +1 -1
  102. package/dist/{messages-HSxl9MoN.mjs → messages-CLixzySl.mjs} +1 -1
  103. package/dist/{chunks/messages-DT43ZUKr.mjs → messages-CV7OM_qk.mjs} +1 -1
  104. package/dist/{messages-BYeiscyc.mjs → messages-CXHt3eCC.mjs} +1 -1
  105. package/dist/{messages-CTeYgNo1.mjs → messages-CbmsBrB0.mjs} +1 -1
  106. package/dist/{messages-DiyoZ_Oa.mjs → messages-Ceo1KtFx.mjs} +1 -1
  107. package/dist/{chunks/messages-D8VsV_Ro.mjs → messages-Cm0LJLtB.mjs} +1 -1
  108. package/dist/{messages-BaaIMBL8.mjs → messages-CmymP_Ar.mjs} +1 -1
  109. package/dist/{messages-Uexhy7C9.mjs → messages-D0ohMB5H.mjs} +1 -1
  110. package/dist/{chunks/messages-CbP4KoKV.mjs → messages-D3GrDwXh.mjs} +1 -1
  111. package/dist/{chunks/messages-CNRsIuSS.mjs → messages-D3vTzIpL.mjs} +1 -1
  112. package/dist/{chunks/messages-B-b_IFZh.mjs → messages-D5WeksbV.mjs} +1 -1
  113. package/dist/{messages-DHdkT1vy.mjs → messages-DGaab4EP.mjs} +1 -1
  114. package/dist/{chunks/messages-CwYueRo5.mjs → messages-DKha57ZU.mjs} +1 -1
  115. package/dist/{messages-JztkG3tZ.mjs → messages-DOaujgMW.mjs} +1 -1
  116. package/dist/{messages-DR0sRlko.mjs → messages-DVbPLd_0.mjs} +1 -1
  117. package/dist/{messages-BnmcUH66.mjs → messages-D_FCyfW6.mjs} +1 -1
  118. package/dist/{messages-BgbVziWf.mjs → messages-Dd5iZN3c.mjs} +1 -1
  119. package/dist/{chunks/messages-D2h_bTrn.mjs → messages-DehM7135.mjs} +1 -1
  120. package/dist/{messages-CbepBt3K.mjs → messages-Dg1OHftD.mjs} +1 -1
  121. package/dist/{chunks/messages-DT5djAjs.mjs → messages-Di6Flq-b.mjs} +1 -1
  122. package/dist/{messages-ctRNTfv5.mjs → messages-Dqhhex6e.mjs} +1 -1
  123. package/dist/{messages-Bo9JrN9m.mjs → messages-DueVe0F1.mjs} +1 -1
  124. package/dist/{messages-DvwZEFTL.mjs → messages-Dx3eFwI0.mjs} +1 -1
  125. package/dist/{messages-jmh1Gbfd.mjs → messages-FOtiUoKl.mjs} +1 -1
  126. package/dist/{chunks/messages-B7zIiLTq.mjs → messages-FTOZNhRD.mjs} +1 -1
  127. package/dist/{messages-D5J2Xlpx.mjs → messages-IQxGfQIV.mjs} +1 -1
  128. package/dist/{messages-BCidD-VB.mjs → messages-JF2fzCkK.mjs} +1 -1
  129. package/dist/{messages-D8tlQmPj.mjs → messages-MOGl7I5v.mjs} +1 -1
  130. package/dist/{messages-BjZll4R7.mjs → messages-QgYhPL-3.mjs} +1 -1
  131. package/dist/{chunks/messages-BWDnoNq0.mjs → messages-WYWIbQwo.mjs} +1 -1
  132. package/dist/{messages-oO_lJ-_I.mjs → messages-a6A_LgDv.mjs} +1 -1
  133. package/dist/{messages-g7Njot5w.mjs → messages-bSf31LJi.mjs} +1 -1
  134. package/dist/{messages-sSYZ0Mz9.mjs → messages-diGozhTn.mjs} +1 -1
  135. package/dist/{messages-BZ-Ia4tk.mjs → messages-er-kd-VO.mjs} +1 -1
  136. package/dist/{messages-B5OIvtYB.mjs → messages-ez3w5NBn.mjs} +1 -1
  137. package/dist/{messages-BuKgyEeU.mjs → messages-f3uXjegd.mjs} +1 -1
  138. package/dist/{chunks/messages-CJQt8nzO.mjs → messages-ohwI1UGv.mjs} +1 -1
  139. package/dist/{chunks/messages-9-pnvSWZ.mjs → messages-p9BZJaFV.mjs} +1 -1
  140. package/dist/{chunks/messages-CpkO-V0C.mjs → messages-qIQ4L4rw.mjs} +1 -1
  141. package/dist/{chunks/messages-CPdlHIEi.mjs → messages-qWkXPggi.mjs} +1 -1
  142. package/dist/{messages-iNIhRBkQ.mjs → messages-w5foGze_.mjs} +1 -1
  143. package/dist/tools.mjs +90 -131
  144. package/package.json +3 -3
  145. package/src/components/i18n/locales/am/messages.json +1 -1
  146. package/src/components/i18n/locales/ar/messages.json +1 -1
  147. package/src/components/i18n/locales/az/messages.json +1 -1
  148. package/src/components/i18n/locales/bg/messages.json +1 -1
  149. package/src/components/i18n/locales/bn/messages.json +1 -1
  150. package/src/components/i18n/locales/bs/messages.json +1 -1
  151. package/src/components/i18n/locales/cs/messages.json +1 -1
  152. package/src/components/i18n/locales/da/messages.json +1 -1
  153. package/src/components/i18n/locales/de/messages.json +1 -1
  154. package/src/components/i18n/locales/dv/messages.json +1 -1
  155. package/src/components/i18n/locales/el/messages.json +1 -1
  156. package/src/components/i18n/locales/en/messages.json +1 -1
  157. package/src/components/i18n/locales/es/messages.json +1 -1
  158. package/src/components/i18n/locales/et/messages.json +1 -1
  159. package/src/components/i18n/locales/fa/messages.json +1 -1
  160. package/src/components/i18n/locales/fi/messages.json +1 -1
  161. package/src/components/i18n/locales/fil/messages.json +1 -1
  162. package/src/components/i18n/locales/fr/messages.json +1 -1
  163. package/src/components/i18n/locales/gu/messages.json +1 -1
  164. package/src/components/i18n/locales/he/messages.json +1 -1
  165. package/src/components/i18n/locales/hi/messages.json +1 -1
  166. package/src/components/i18n/locales/hr/messages.json +1 -1
  167. package/src/components/i18n/locales/hu/messages.json +1 -1
  168. package/src/components/i18n/locales/hy/messages.json +1 -1
  169. package/src/components/i18n/locales/id/messages.json +1 -1
  170. package/src/components/i18n/locales/it/messages.json +1 -1
  171. package/src/components/i18n/locales/ja/messages.json +1 -1
  172. package/src/components/i18n/locales/ka/messages.json +1 -1
  173. package/src/components/i18n/locales/km/messages.json +1 -1
  174. package/src/components/i18n/locales/kn/messages.json +1 -1
  175. package/src/components/i18n/locales/ko/messages.json +1 -1
  176. package/src/components/i18n/locales/ku/messages.json +1 -1
  177. package/src/components/i18n/locales/lo/messages.json +1 -1
  178. package/src/components/i18n/locales/lt/messages.json +1 -1
  179. package/src/components/i18n/locales/lv/messages.json +1 -1
  180. package/src/components/i18n/locales/mk/messages.json +1 -1
  181. package/src/components/i18n/locales/ml/messages.json +1 -1
  182. package/src/components/i18n/locales/mn/messages.json +1 -1
  183. package/src/components/i18n/locales/mr/messages.json +1 -1
  184. package/src/components/i18n/locales/ms/messages.json +1 -1
  185. package/src/components/i18n/locales/my/messages.json +1 -1
  186. package/src/components/i18n/locales/ne/messages.json +1 -1
  187. package/src/components/i18n/locales/nl/messages.json +1 -1
  188. package/src/components/i18n/locales/no/messages.json +1 -1
  189. package/src/components/i18n/locales/pa/messages.json +1 -1
  190. package/src/components/i18n/locales/pl/messages.json +1 -1
  191. package/src/components/i18n/locales/ps/messages.json +1 -1
  192. package/src/components/i18n/locales/pt/messages.json +1 -1
  193. package/src/components/i18n/locales/ro/messages.json +1 -1
  194. package/src/components/i18n/locales/ru/messages.json +1 -1
  195. package/src/components/i18n/locales/sd/messages.json +1 -1
  196. package/src/components/i18n/locales/si/messages.json +1 -1
  197. package/src/components/i18n/locales/sk/messages.json +1 -1
  198. package/src/components/i18n/locales/sl/messages.json +1 -1
  199. package/src/components/i18n/locales/sq/messages.json +1 -1
  200. package/src/components/i18n/locales/sr/messages.json +1 -1
  201. package/src/components/i18n/locales/sv/messages.json +1 -1
  202. package/src/components/i18n/locales/sw/messages.json +1 -1
  203. package/src/components/i18n/locales/ta/messages.json +1 -1
  204. package/src/components/i18n/locales/te/messages.json +1 -1
  205. package/src/components/i18n/locales/th/messages.json +1 -1
  206. package/src/components/i18n/locales/tr/messages.json +1 -1
  207. package/src/components/i18n/locales/ug/messages.json +1 -1
  208. package/src/components/i18n/locales/uk/messages.json +1 -1
  209. package/src/components/i18n/locales/ur/messages.json +1 -1
  210. package/src/components/i18n/locales/vi/messages.json +1 -1
  211. package/src/components/i18n/locales/yi/messages.json +1 -1
  212. package/src/components/i18n/locales/zh/messages.json +1 -1
  213. package/src/components/modules/api/i18n.ts +0 -1
  214. package/src/components/modules/dragManager.ts +13 -71
  215. package/src/components/modules/i18n.ts +11 -6
  216. package/src/components/modules/rectangleSelection.ts +19 -62
  217. package/src/components/modules/toolbar/index.ts +2 -2
  218. package/src/components/modules/tools.ts +3 -39
  219. package/src/components/modules/ui.ts +18 -83
  220. package/src/components/tools/base.ts +2 -29
  221. package/src/components/tools/block.ts +3 -20
  222. package/src/components/tools/factory.ts +1 -50
  223. package/src/tools/header/index.ts +0 -82
  224. package/src/tools/index.ts +6 -13
  225. package/src/tools/list/index.ts +2 -2
  226. package/src/types-internal/nanoid.d.ts +14 -0
  227. package/types/api/i18n.d.ts +0 -8
  228. package/types/tools/tool-settings.d.ts +4 -62
@@ -16,7 +16,6 @@ import type {
16
16
  BlockToolData,
17
17
  PasteEvent,
18
18
  ToolboxConfig,
19
- ToolboxConfigEntry,
20
19
  ConversionConfig,
21
20
  SanitizerConfig,
22
21
  PasteConfig,
@@ -61,11 +60,6 @@ export interface HeaderConfig {
61
60
  defaultLevel?: number;
62
61
  /** Level-specific overrides keyed by level number (1-6) */
63
62
  levelOverrides?: Record<number, HeaderLevelConfig>;
64
- /**
65
- * @internal Injected by BlockToolAdapter - merged toolbox entries.
66
- * When present, renderSettings() will use these entries instead of the default levels.
67
- */
68
- _toolboxEntries?: ToolboxConfigEntry[];
69
63
  }
70
64
 
71
65
  /**
@@ -201,28 +195,6 @@ export class Header implements BlockTool {
201
195
  * @returns MenuConfig array
202
196
  */
203
197
  public renderSettings(): MenuConfig {
204
- const toolboxEntries = this._settings._toolboxEntries;
205
-
206
- /**
207
- * If user provided custom toolbox entries, use them to build settings menu.
208
- * This ensures block settings match the toolbox configuration.
209
- * Entries without explicit level data will default to the configured defaultLevel.
210
- *
211
- * Only fall back to levels config when _toolboxEntries is not provided or empty,
212
- * or when using the default single "Heading" toolbox entry (detected by having
213
- * exactly one entry with no level data and no custom title or the default "Heading" title).
214
- */
215
- const isDefaultToolboxEntry = toolboxEntries?.length === 1 &&
216
- toolboxEntries[0].data === undefined &&
217
- (toolboxEntries[0].title === undefined || toolboxEntries[0].title === 'Heading');
218
-
219
- if (toolboxEntries !== undefined && toolboxEntries.length > 0 && !isDefaultToolboxEntry) {
220
- return this.buildSettingsFromToolboxEntries(toolboxEntries);
221
- }
222
-
223
- /**
224
- * Fall back to existing behavior using levels config
225
- */
226
198
  return this.levels.map(level => {
227
199
  const translated = this.api.i18n.t(level.nameKey);
228
200
  const title = translated !== level.nameKey ? translated : level.name;
@@ -240,60 +212,6 @@ export class Header implements BlockTool {
240
212
  });
241
213
  }
242
214
 
243
- /**
244
- * Build settings menu items from toolbox entries.
245
- * This allows users to customize which levels appear in block settings
246
- * by configuring the toolbox.
247
- *
248
- * @param entries - Merged toolbox entries from user config
249
- * @returns MenuConfig array
250
- */
251
- private buildSettingsFromToolboxEntries(entries: ToolboxConfigEntry[]): MenuConfig {
252
- return entries.map(entry => {
253
- const entryData = entry.data as { level?: number } | undefined;
254
- const level = entryData?.level ?? this.defaultLevel.number;
255
- const defaultLevel = Header.DEFAULT_LEVELS.find(l => l.number === level);
256
- const fallbackTitle = defaultLevel?.name ?? `Heading ${level}`;
257
-
258
- const title = this.resolveToolboxEntryTitle(entry, fallbackTitle);
259
- const icon = entry.icon ?? defaultLevel?.icon ?? IconHeading;
260
-
261
- return {
262
- icon,
263
- title,
264
- onActivate: (): void => this.setLevel(level),
265
- closeOnActivate: true,
266
- isActive: this.currentLevel.number === level,
267
- dataset: {
268
- 'blok-header-level': String(level),
269
- },
270
- };
271
- });
272
- }
273
-
274
- /**
275
- * Resolves the title for a toolbox entry.
276
- * Priority: custom title > i18n key translation > fallback
277
- *
278
- * @param entry - Toolbox entry
279
- * @param fallback - Fallback title if no custom title or translation found
280
- * @returns Resolved title string
281
- */
282
- private resolveToolboxEntryTitle(entry: ToolboxConfigEntry, fallback: string): string {
283
- if (entry.title !== undefined) {
284
- return entry.title;
285
- }
286
-
287
- if (entry.titleKey === undefined) {
288
- return fallback;
289
- }
290
-
291
- const namespacedKey = `toolNames.${entry.titleKey}`;
292
- const translated = this.api.i18n.t(namespacedKey);
293
-
294
- return translated !== namespacedKey ? translated : fallback;
295
- }
296
-
297
215
  /**
298
216
  * Callback for Block's settings buttons
299
217
  *
@@ -6,16 +6,10 @@
6
6
  * // Import specific tools
7
7
  * import { Paragraph, Header, List, Bold, Italic, Link } from '@jackuait/blok/tools';
8
8
  *
9
- * // Use in Blok configuration (flat config style)
9
+ * // Use in Blok configuration
10
10
  * new Blok({
11
- * tools: {
12
- * paragraph: Paragraph,
13
- * header: { class: Header, levels: [1, 2, 3] },
14
- * list: List,
15
- * bold: Bold,
16
- * italic: Italic,
17
- * link: Link,
18
- * }
11
+ * tools: { paragraph: Paragraph, header: Header, list: List },
12
+ * inlineTools: { bold: Bold, italic: Italic, link: Link }
19
13
  * });
20
14
  */
21
15
 
@@ -31,11 +25,10 @@ export { LinkInlineTool as Link } from '../components/inline-tools/inline-tool-l
31
25
  export { ConvertInlineTool as Convert } from '../components/inline-tools/inline-tool-convert';
32
26
 
33
27
  // Default tools configuration for convenience
34
- // Note: inlineToolbar defaults to true, so it doesn't need to be specified
35
28
  export const defaultBlockTools = {
36
- paragraph: { preserveBlank: true },
37
- header: {},
38
- list: {},
29
+ paragraph: { inlineToolbar: true, config: { preserveBlank: true } },
30
+ header: { inlineToolbar: true },
31
+ list: { inlineToolbar: true },
39
32
  } as const;
40
33
 
41
34
  export const defaultInlineTools = {
@@ -226,10 +226,10 @@ export class ListItem implements BlockTool {
226
226
  return this._settings.itemSize;
227
227
  }
228
228
 
229
- private static readonly PLACEHOLDER_KEY = 'tools.list.placeholder';
229
+ private static readonly DEFAULT_PLACEHOLDER = 'List';
230
230
 
231
231
  private get placeholder(): string {
232
- return this.api.i18n.t(ListItem.PLACEHOLDER_KEY);
232
+ return this.api.i18n.t(ListItem.DEFAULT_PLACEHOLDER);
233
233
  }
234
234
 
235
235
  private applyItemStyles(element: HTMLElement): void {
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Type declarations for nanoid module
3
+ * This is needed because nanoid is a devDependency but is imported in source code
4
+ * The actual nanoid code is bundled into the dist, but consumers compiling
5
+ * against the source files need type declarations
6
+ */
7
+ declare module 'nanoid' {
8
+ /**
9
+ * Generate a secure random unique ID
10
+ * @param size - Size of the ID. Default is 21
11
+ * @returns Random unique ID string
12
+ */
13
+ export function nanoid(size?: number): string;
14
+ }
@@ -10,12 +10,4 @@ export interface I18n {
10
10
  * @returns Translated string, or the key itself if translation is missing
11
11
  */
12
12
  t(dictKey: string): string;
13
-
14
- /**
15
- * Check if a translation exists for the given key.
16
- *
17
- * @param dictKey - Full translation key to check
18
- * @returns True if translation exists, false otherwise
19
- */
20
- has(dictKey: string): boolean;
21
13
  }
@@ -1,12 +1,6 @@
1
1
  import { ToolConfig } from './tool-config';
2
2
  import { ToolConstructable, BlockToolData, MenuConfig, MenuConfigItem } from './index';
3
3
 
4
- /**
5
- * Permissive type for tool class - accepts any constructor.
6
- * Runtime validation ensures the tool has required methods.
7
- */
8
- export type ToolClass = new (...args: any[]) => any;
9
-
10
4
  /**
11
5
  * Tool may specify its toolbox configuration
12
6
  * It may include several entries as well
@@ -55,9 +49,9 @@ export interface ToolboxConfigEntry {
55
49
  export interface ExternalToolSettings<Config extends object = any> {
56
50
 
57
51
  /**
58
- * Tool's class - accepts any constructor, validated at runtime
52
+ * Tool's class
59
53
  */
60
- class: ToolConstructable | ToolClass;
54
+ class: ToolConstructable;
61
55
 
62
56
  /**
63
57
  * User configuration object that will be passed to the Tool's constructor
@@ -94,58 +88,6 @@ export interface ExternalToolSettings<Config extends object = any> {
94
88
  export type InternalToolSettings<Config extends object = any> = Omit<ExternalToolSettings<Config>, 'class'> & Partial<Pick<ExternalToolSettings<Config>, 'class'>>;
95
89
 
96
90
  /**
97
- * Keys that Blok extracts from tool settings (not passed to tool constructor)
98
- */
99
- export type BlokToolSettingsKeys = 'class' | 'inlineToolbar' | 'tunes' | 'shortcut' | 'toolbox' | 'config';
100
-
101
- /**
102
- * Flat tool settings - tool-specific options at top level.
103
- * Blok extracts known keys and passes the rest as `config` to the tool.
104
- */
105
- export interface FlatToolSettings<Config extends object = any> {
106
- /**
107
- * Tool's class
108
- */
109
- class: ToolConstructable | ToolClass;
110
-
111
- /**
112
- * Is need to show Inline Toolbar.
113
- * Defaults to true for block tools.
114
- */
115
- inlineToolbar?: boolean | string[];
116
-
117
- /**
118
- * BlockTunes for Tool
119
- */
120
- tunes?: boolean | string[];
121
-
122
- /**
123
- * Define shortcut that will render Tool
124
- */
125
- shortcut?: string;
126
-
127
- /**
128
- * Tool's Toolbox settings
129
- */
130
- toolbox?: ToolboxConfig | false;
131
-
132
- /**
133
- * Legacy nested config - merged with top-level tool options
134
- * @deprecated Use flat config instead
135
- */
136
- config?: ToolConfig<Config>;
137
-
138
- /**
139
- * Tool-specific options (placeholder, levels, etc.)
140
- * These are passed to the tool constructor as `config`
141
- */
142
- [key: string]: unknown;
143
- }
144
-
145
- /**
146
- * Union of all tool settings formats
91
+ * Union of external and internal Tools settings
147
92
  */
148
- export type ToolSettings<Config extends object = any> =
149
- | InternalToolSettings<Config>
150
- | ExternalToolSettings<Config>
151
- | FlatToolSettings<Config>;
93
+ export type ToolSettings<Config extends object = any> = InternalToolSettings<Config> | ExternalToolSettings<Config>;