@jackuait/blok 0.4.2 → 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 (233) hide show
  1. package/README.md +7 -5
  2. package/codemod/README.md +32 -10
  3. package/codemod/migrate-editorjs-to-blok.js +92 -0
  4. package/codemod/test.js +98 -0
  5. package/dist/blok.mjs +2 -2
  6. package/dist/chunks/{blok-BjgH1REI.mjs → blok-D85C_iyk.mjs} +1863 -1736
  7. package/dist/chunks/{i18next-loader-DfiUa_gd.mjs → i18next-loader-exc8oN3J.mjs} +1 -1
  8. package/dist/chunks/{index-5m5JWNey.mjs → index-fqgWb6Ue.mjs} +1 -1
  9. package/dist/chunks/{inline-tool-convert-Bx5BVd8I.mjs → inline-tool-convert-CYkcoF1r.mjs} +201 -203
  10. package/dist/chunks/{messages-BFiUomgG.mjs → messages--yMo5vYp.mjs} +1 -1
  11. package/dist/chunks/{messages-2434tVOK.mjs → messages-82j7Sb1f.mjs} +1 -1
  12. package/dist/chunks/{messages-p9BZJaFV.mjs → messages-9-pnvSWZ.mjs} +1 -1
  13. package/dist/{messages-D5WeksbV.mjs → chunks/messages-B-b_IFZh.mjs} +1 -1
  14. package/dist/chunks/{messages-ez3w5NBn.mjs → messages-B5OIvtYB.mjs} +1 -1
  15. package/dist/{messages-FTOZNhRD.mjs → chunks/messages-B7zIiLTq.mjs} +1 -1
  16. package/dist/{messages-JF2fzCkK.mjs → chunks/messages-BCidD-VB.mjs} +1 -1
  17. package/dist/chunks/{messages-WYWIbQwo.mjs → messages-BWDnoNq0.mjs} +1 -1
  18. package/dist/chunks/{messages-BIPNHHAV.mjs → messages-BXsoyz5-.mjs} +1 -1
  19. package/dist/{messages-CXHt3eCC.mjs → chunks/messages-BYeiscyc.mjs} +1 -1
  20. package/dist/chunks/{messages-er-kd-VO.mjs → messages-BZ-Ia4tk.mjs} +1 -1
  21. package/dist/chunks/{messages-CmymP_Ar.mjs → messages-BaaIMBL8.mjs} +1 -1
  22. package/dist/chunks/{messages-Dd5iZN3c.mjs → messages-BgbVziWf.mjs} +1 -1
  23. package/dist/chunks/{messages-76-iJV9Q.mjs → messages-BgmPDL9Z.mjs} +1 -1
  24. package/dist/chunks/{messages-BextV3Qh.mjs → messages-Bi0X1QMU.mjs} +1 -1
  25. package/dist/chunks/{messages-QgYhPL-3.mjs → messages-BjZll4R7.mjs} +1 -1
  26. package/dist/{messages-D_FCyfW6.mjs → chunks/messages-BnmcUH66.mjs} +1 -1
  27. package/dist/chunks/{messages-DueVe0F1.mjs → messages-Bo9JrN9m.mjs} +1 -1
  28. package/dist/{messages-f3uXjegd.mjs → chunks/messages-BuKgyEeU.mjs} +1 -1
  29. package/dist/chunks/{messages-ohwI1UGv.mjs → messages-CJQt8nzO.mjs} +1 -1
  30. package/dist/chunks/{messages-D3vTzIpL.mjs → messages-CNRsIuSS.mjs} +1 -1
  31. package/dist/chunks/{messages-qWkXPggi.mjs → messages-CPdlHIEi.mjs} +1 -1
  32. package/dist/{messages-CbmsBrB0.mjs → chunks/messages-CTeYgNo1.mjs} +1 -1
  33. package/dist/{messages-BCm2eudQ.mjs → chunks/messages-CVvHbBlx.mjs} +1 -1
  34. package/dist/{messages-D3GrDwXh.mjs → chunks/messages-CbP4KoKV.mjs} +1 -1
  35. package/dist/chunks/{messages-Dg1OHftD.mjs → messages-CbepBt3K.mjs} +1 -1
  36. package/dist/{messages-BqWaOGMn.mjs → chunks/messages-CbtBGtJT.mjs} +1 -1
  37. package/dist/chunks/{messages-BqkL2_Ro.mjs → messages-CcYGSGRh.mjs} +1 -1
  38. package/dist/{messages-57uL5htT.mjs → chunks/messages-CjksZqgf.mjs} +1 -1
  39. package/dist/chunks/{messages-CFrKE-TN.mjs → messages-Cm4WhO4g.mjs} +1 -1
  40. package/dist/{messages-BiXe9G-O.mjs → chunks/messages-CoY-hJgp.mjs} +1 -1
  41. package/dist/chunks/{messages-qIQ4L4rw.mjs → messages-CpkO-V0C.mjs} +1 -1
  42. package/dist/{messages-DKha57ZU.mjs → chunks/messages-CwYueRo5.mjs} +1 -1
  43. package/dist/chunks/{messages-3DcCwXMF.mjs → messages-D-tDNAzW.mjs} +1 -1
  44. package/dist/{messages-DehM7135.mjs → chunks/messages-D2h_bTrn.mjs} +1 -1
  45. package/dist/chunks/{messages-IQxGfQIV.mjs → messages-D5J2Xlpx.mjs} +1 -1
  46. package/dist/chunks/{messages-Cm0LJLtB.mjs → messages-D8VsV_Ro.mjs} +1 -1
  47. package/dist/chunks/{messages-CHz8VlG-.mjs → messages-D8sk1mxH.mjs} +1 -1
  48. package/dist/chunks/{messages-MOGl7I5v.mjs → messages-D8tlQmPj.mjs} +1 -1
  49. package/dist/chunks/{messages-BiPSFlUG.mjs → messages-D9xzl8Wn.mjs} +1 -1
  50. package/dist/{messages-BoO8gsVD.mjs → chunks/messages-DG2QXu_f.mjs} +1 -1
  51. package/dist/{messages-DGaab4EP.mjs → chunks/messages-DHdkT1vy.mjs} +1 -1
  52. package/dist/{messages-4kMwVAKY.mjs → chunks/messages-DIbeBo-6.mjs} +1 -1
  53. package/dist/{messages-DVbPLd_0.mjs → chunks/messages-DR0sRlko.mjs} +1 -1
  54. package/dist/{messages-BX-DPa-z.mjs → chunks/messages-DRTt_xBc.mjs} +1 -1
  55. package/dist/{messages-CV7OM_qk.mjs → chunks/messages-DT43ZUKr.mjs} +1 -1
  56. package/dist/{messages-Di6Flq-b.mjs → chunks/messages-DT5djAjs.mjs} +1 -1
  57. package/dist/{messages-C6tbPLoj.mjs → chunks/messages-Df6LYOt5.mjs} +1 -1
  58. package/dist/chunks/{messages-BUlwu9mo.mjs → messages-DhdzbzrS.mjs} +1 -1
  59. package/dist/chunks/{messages-Ceo1KtFx.mjs → messages-DiyoZ_Oa.mjs} +1 -1
  60. package/dist/chunks/{messages-8p86Eyf2.mjs → messages-DkJ5aV3V.mjs} +1 -1
  61. package/dist/{messages-Dx3eFwI0.mjs → chunks/messages-DvwZEFTL.mjs} +1 -1
  62. package/dist/{messages-Bl5z_Igo.mjs → chunks/messages-Dw5GZ4YT.mjs} +1 -1
  63. package/dist/chunks/{messages-CLixzySl.mjs → messages-HSxl9MoN.mjs} +1 -1
  64. package/dist/chunks/{messages-DOaujgMW.mjs → messages-JztkG3tZ.mjs} +1 -1
  65. package/dist/{messages-BnsE97ku.mjs → chunks/messages-KLzTvDED.mjs} +1 -1
  66. package/dist/{messages-BBX0p0Pi.mjs → chunks/messages-TulYnz1f.mjs} +1 -1
  67. package/dist/chunks/{messages-D0ohMB5H.mjs → messages-Uexhy7C9.mjs} +1 -1
  68. package/dist/{messages-Dqhhex6e.mjs → chunks/messages-ctRNTfv5.mjs} +1 -1
  69. package/dist/chunks/{messages-CA6T3-gQ.mjs → messages-dIzxSHR2.mjs} +1 -1
  70. package/dist/chunks/{messages-bSf31LJi.mjs → messages-g7Njot5w.mjs} +1 -1
  71. package/dist/chunks/{messages-w5foGze_.mjs → messages-iNIhRBkQ.mjs} +1 -1
  72. package/dist/chunks/{messages-FOtiUoKl.mjs → messages-jmh1Gbfd.mjs} +1 -1
  73. package/dist/chunks/{messages-a6A_LgDv.mjs → messages-oO_lJ-_I.mjs} +1 -1
  74. package/dist/chunks/{messages-BvCkXKX-.mjs → messages-qFesO1Lu.mjs} +1 -1
  75. package/dist/{messages-diGozhTn.mjs → chunks/messages-sSYZ0Mz9.mjs} +1 -1
  76. package/dist/chunks/{messages-CFFPFdWP.mjs → messages-zs9AgeBF.mjs} +1 -1
  77. package/dist/full.mjs +2 -2
  78. package/dist/locales.mjs +68 -68
  79. package/dist/{messages-BFiUomgG.mjs → messages--yMo5vYp.mjs} +1 -1
  80. package/dist/{messages-2434tVOK.mjs → messages-82j7Sb1f.mjs} +1 -1
  81. package/dist/{messages-p9BZJaFV.mjs → messages-9-pnvSWZ.mjs} +1 -1
  82. package/dist/{chunks/messages-D5WeksbV.mjs → messages-B-b_IFZh.mjs} +1 -1
  83. package/dist/{messages-ez3w5NBn.mjs → messages-B5OIvtYB.mjs} +1 -1
  84. package/dist/{chunks/messages-FTOZNhRD.mjs → messages-B7zIiLTq.mjs} +1 -1
  85. package/dist/{chunks/messages-JF2fzCkK.mjs → messages-BCidD-VB.mjs} +1 -1
  86. package/dist/{messages-WYWIbQwo.mjs → messages-BWDnoNq0.mjs} +1 -1
  87. package/dist/{messages-BIPNHHAV.mjs → messages-BXsoyz5-.mjs} +1 -1
  88. package/dist/{chunks/messages-CXHt3eCC.mjs → messages-BYeiscyc.mjs} +1 -1
  89. package/dist/{messages-er-kd-VO.mjs → messages-BZ-Ia4tk.mjs} +1 -1
  90. package/dist/{messages-CmymP_Ar.mjs → messages-BaaIMBL8.mjs} +1 -1
  91. package/dist/{messages-Dd5iZN3c.mjs → messages-BgbVziWf.mjs} +1 -1
  92. package/dist/{messages-76-iJV9Q.mjs → messages-BgmPDL9Z.mjs} +1 -1
  93. package/dist/{messages-BextV3Qh.mjs → messages-Bi0X1QMU.mjs} +1 -1
  94. package/dist/{messages-QgYhPL-3.mjs → messages-BjZll4R7.mjs} +1 -1
  95. package/dist/{chunks/messages-D_FCyfW6.mjs → messages-BnmcUH66.mjs} +1 -1
  96. package/dist/{messages-DueVe0F1.mjs → messages-Bo9JrN9m.mjs} +1 -1
  97. package/dist/{chunks/messages-f3uXjegd.mjs → messages-BuKgyEeU.mjs} +1 -1
  98. package/dist/{messages-ohwI1UGv.mjs → messages-CJQt8nzO.mjs} +1 -1
  99. package/dist/{messages-D3vTzIpL.mjs → messages-CNRsIuSS.mjs} +1 -1
  100. package/dist/{messages-qWkXPggi.mjs → messages-CPdlHIEi.mjs} +1 -1
  101. package/dist/{chunks/messages-CbmsBrB0.mjs → messages-CTeYgNo1.mjs} +1 -1
  102. package/dist/{chunks/messages-BCm2eudQ.mjs → messages-CVvHbBlx.mjs} +1 -1
  103. package/dist/{chunks/messages-D3GrDwXh.mjs → messages-CbP4KoKV.mjs} +1 -1
  104. package/dist/{messages-Dg1OHftD.mjs → messages-CbepBt3K.mjs} +1 -1
  105. package/dist/{chunks/messages-BqWaOGMn.mjs → messages-CbtBGtJT.mjs} +1 -1
  106. package/dist/{messages-BqkL2_Ro.mjs → messages-CcYGSGRh.mjs} +1 -1
  107. package/dist/{chunks/messages-57uL5htT.mjs → messages-CjksZqgf.mjs} +1 -1
  108. package/dist/{messages-CFrKE-TN.mjs → messages-Cm4WhO4g.mjs} +1 -1
  109. package/dist/{chunks/messages-BiXe9G-O.mjs → messages-CoY-hJgp.mjs} +1 -1
  110. package/dist/{messages-qIQ4L4rw.mjs → messages-CpkO-V0C.mjs} +1 -1
  111. package/dist/{chunks/messages-DKha57ZU.mjs → messages-CwYueRo5.mjs} +1 -1
  112. package/dist/{messages-3DcCwXMF.mjs → messages-D-tDNAzW.mjs} +1 -1
  113. package/dist/{chunks/messages-DehM7135.mjs → messages-D2h_bTrn.mjs} +1 -1
  114. package/dist/{messages-IQxGfQIV.mjs → messages-D5J2Xlpx.mjs} +1 -1
  115. package/dist/{messages-Cm0LJLtB.mjs → messages-D8VsV_Ro.mjs} +1 -1
  116. package/dist/{messages-CHz8VlG-.mjs → messages-D8sk1mxH.mjs} +1 -1
  117. package/dist/{messages-MOGl7I5v.mjs → messages-D8tlQmPj.mjs} +1 -1
  118. package/dist/{messages-BiPSFlUG.mjs → messages-D9xzl8Wn.mjs} +1 -1
  119. package/dist/{chunks/messages-BoO8gsVD.mjs → messages-DG2QXu_f.mjs} +1 -1
  120. package/dist/{chunks/messages-DGaab4EP.mjs → messages-DHdkT1vy.mjs} +1 -1
  121. package/dist/{chunks/messages-4kMwVAKY.mjs → messages-DIbeBo-6.mjs} +1 -1
  122. package/dist/{chunks/messages-DVbPLd_0.mjs → messages-DR0sRlko.mjs} +1 -1
  123. package/dist/{chunks/messages-BX-DPa-z.mjs → messages-DRTt_xBc.mjs} +1 -1
  124. package/dist/{chunks/messages-CV7OM_qk.mjs → messages-DT43ZUKr.mjs} +1 -1
  125. package/dist/{chunks/messages-Di6Flq-b.mjs → messages-DT5djAjs.mjs} +1 -1
  126. package/dist/{chunks/messages-C6tbPLoj.mjs → messages-Df6LYOt5.mjs} +1 -1
  127. package/dist/{messages-BUlwu9mo.mjs → messages-DhdzbzrS.mjs} +1 -1
  128. package/dist/{messages-Ceo1KtFx.mjs → messages-DiyoZ_Oa.mjs} +1 -1
  129. package/dist/{messages-8p86Eyf2.mjs → messages-DkJ5aV3V.mjs} +1 -1
  130. package/dist/{chunks/messages-Dx3eFwI0.mjs → messages-DvwZEFTL.mjs} +1 -1
  131. package/dist/{chunks/messages-Bl5z_Igo.mjs → messages-Dw5GZ4YT.mjs} +1 -1
  132. package/dist/{messages-CLixzySl.mjs → messages-HSxl9MoN.mjs} +1 -1
  133. package/dist/{messages-DOaujgMW.mjs → messages-JztkG3tZ.mjs} +1 -1
  134. package/dist/{chunks/messages-BnsE97ku.mjs → messages-KLzTvDED.mjs} +1 -1
  135. package/dist/{chunks/messages-BBX0p0Pi.mjs → messages-TulYnz1f.mjs} +1 -1
  136. package/dist/{messages-D0ohMB5H.mjs → messages-Uexhy7C9.mjs} +1 -1
  137. package/dist/{chunks/messages-Dqhhex6e.mjs → messages-ctRNTfv5.mjs} +1 -1
  138. package/dist/{messages-CA6T3-gQ.mjs → messages-dIzxSHR2.mjs} +1 -1
  139. package/dist/{messages-bSf31LJi.mjs → messages-g7Njot5w.mjs} +1 -1
  140. package/dist/{messages-w5foGze_.mjs → messages-iNIhRBkQ.mjs} +1 -1
  141. package/dist/{messages-FOtiUoKl.mjs → messages-jmh1Gbfd.mjs} +1 -1
  142. package/dist/{messages-a6A_LgDv.mjs → messages-oO_lJ-_I.mjs} +1 -1
  143. package/dist/{messages-BvCkXKX-.mjs → messages-qFesO1Lu.mjs} +1 -1
  144. package/dist/{chunks/messages-diGozhTn.mjs → messages-sSYZ0Mz9.mjs} +1 -1
  145. package/dist/{messages-CFFPFdWP.mjs → messages-zs9AgeBF.mjs} +1 -1
  146. package/dist/tools.mjs +131 -90
  147. package/package.json +16 -3
  148. package/src/components/flipper.ts +17 -1
  149. package/src/components/i18n/locales/am/messages.json +1 -1
  150. package/src/components/i18n/locales/ar/messages.json +1 -1
  151. package/src/components/i18n/locales/az/messages.json +1 -1
  152. package/src/components/i18n/locales/bg/messages.json +1 -1
  153. package/src/components/i18n/locales/bn/messages.json +1 -1
  154. package/src/components/i18n/locales/bs/messages.json +1 -1
  155. package/src/components/i18n/locales/cs/messages.json +1 -1
  156. package/src/components/i18n/locales/da/messages.json +1 -1
  157. package/src/components/i18n/locales/de/messages.json +1 -1
  158. package/src/components/i18n/locales/dv/messages.json +1 -1
  159. package/src/components/i18n/locales/el/messages.json +1 -1
  160. package/src/components/i18n/locales/en/messages.json +1 -1
  161. package/src/components/i18n/locales/es/messages.json +1 -1
  162. package/src/components/i18n/locales/et/messages.json +1 -1
  163. package/src/components/i18n/locales/fa/messages.json +1 -1
  164. package/src/components/i18n/locales/fi/messages.json +1 -1
  165. package/src/components/i18n/locales/fil/messages.json +1 -1
  166. package/src/components/i18n/locales/fr/messages.json +1 -1
  167. package/src/components/i18n/locales/gu/messages.json +1 -1
  168. package/src/components/i18n/locales/he/messages.json +1 -1
  169. package/src/components/i18n/locales/hi/messages.json +1 -1
  170. package/src/components/i18n/locales/hr/messages.json +1 -1
  171. package/src/components/i18n/locales/hu/messages.json +1 -1
  172. package/src/components/i18n/locales/hy/messages.json +1 -1
  173. package/src/components/i18n/locales/id/messages.json +1 -1
  174. package/src/components/i18n/locales/it/messages.json +1 -1
  175. package/src/components/i18n/locales/ja/messages.json +1 -1
  176. package/src/components/i18n/locales/ka/messages.json +1 -1
  177. package/src/components/i18n/locales/km/messages.json +1 -1
  178. package/src/components/i18n/locales/kn/messages.json +1 -1
  179. package/src/components/i18n/locales/ko/messages.json +1 -1
  180. package/src/components/i18n/locales/ku/messages.json +1 -1
  181. package/src/components/i18n/locales/lo/messages.json +1 -1
  182. package/src/components/i18n/locales/lt/messages.json +1 -1
  183. package/src/components/i18n/locales/lv/messages.json +1 -1
  184. package/src/components/i18n/locales/mk/messages.json +1 -1
  185. package/src/components/i18n/locales/ml/messages.json +1 -1
  186. package/src/components/i18n/locales/mn/messages.json +1 -1
  187. package/src/components/i18n/locales/mr/messages.json +1 -1
  188. package/src/components/i18n/locales/ms/messages.json +1 -1
  189. package/src/components/i18n/locales/my/messages.json +1 -1
  190. package/src/components/i18n/locales/ne/messages.json +1 -1
  191. package/src/components/i18n/locales/nl/messages.json +1 -1
  192. package/src/components/i18n/locales/no/messages.json +1 -1
  193. package/src/components/i18n/locales/pa/messages.json +1 -1
  194. package/src/components/i18n/locales/pl/messages.json +1 -1
  195. package/src/components/i18n/locales/ps/messages.json +1 -1
  196. package/src/components/i18n/locales/pt/messages.json +1 -1
  197. package/src/components/i18n/locales/ro/messages.json +1 -1
  198. package/src/components/i18n/locales/ru/messages.json +1 -1
  199. package/src/components/i18n/locales/sd/messages.json +1 -1
  200. package/src/components/i18n/locales/si/messages.json +1 -1
  201. package/src/components/i18n/locales/sk/messages.json +1 -1
  202. package/src/components/i18n/locales/sl/messages.json +1 -1
  203. package/src/components/i18n/locales/sq/messages.json +1 -1
  204. package/src/components/i18n/locales/sr/messages.json +1 -1
  205. package/src/components/i18n/locales/sv/messages.json +1 -1
  206. package/src/components/i18n/locales/sw/messages.json +1 -1
  207. package/src/components/i18n/locales/ta/messages.json +1 -1
  208. package/src/components/i18n/locales/te/messages.json +1 -1
  209. package/src/components/i18n/locales/th/messages.json +1 -1
  210. package/src/components/i18n/locales/tr/messages.json +1 -1
  211. package/src/components/i18n/locales/ug/messages.json +1 -1
  212. package/src/components/i18n/locales/uk/messages.json +1 -1
  213. package/src/components/i18n/locales/ur/messages.json +1 -1
  214. package/src/components/i18n/locales/vi/messages.json +1 -1
  215. package/src/components/i18n/locales/yi/messages.json +1 -1
  216. package/src/components/i18n/locales/zh/messages.json +1 -1
  217. package/src/components/modules/api/i18n.ts +1 -0
  218. package/src/components/modules/dragManager.ts +71 -13
  219. package/src/components/modules/i18n.ts +6 -11
  220. package/src/components/modules/rectangleSelection.ts +62 -19
  221. package/src/components/modules/toolbar/index.ts +2 -2
  222. package/src/components/modules/tools.ts +39 -3
  223. package/src/components/modules/ui.ts +83 -18
  224. package/src/components/selection.ts +2 -12
  225. package/src/components/tools/base.ts +29 -2
  226. package/src/components/tools/block.ts +20 -3
  227. package/src/components/tools/factory.ts +50 -1
  228. package/src/components/utils/tooltip.ts +0 -14
  229. package/src/tools/header/index.ts +82 -0
  230. package/src/tools/index.ts +13 -6
  231. package/src/tools/list/index.ts +2 -2
  232. package/types/api/i18n.d.ts +8 -0
  233. package/types/tools/tool-settings.d.ts +62 -4
package/README.md CHANGED
@@ -45,11 +45,11 @@ import { Header, Paragraph, List, Bold, Italic, Link } from '@jackuait/blok/tool
45
45
  const editor = new Blok({
46
46
  holder: 'editor',
47
47
  tools: {
48
- header: Header,
49
- paragraph: { class: Paragraph, inlineToolbar: true },
50
- list: { class: List, inlineToolbar: true },
51
- },
52
- inlineTools: {
48
+ // Block tools - inlineToolbar is enabled by default
49
+ paragraph: Paragraph,
50
+ header: { class: Header, placeholder: 'Enter a heading' },
51
+ list: List,
52
+ // Inline tools
53
53
  bold: Bold,
54
54
  italic: Italic,
55
55
  link: Link,
@@ -60,6 +60,8 @@ const editor = new Blok({
60
60
  const data = await editor.save();
61
61
  ```
62
62
 
63
+ Tool configuration is flat—no need for nested `config: {}`. Blok automatically extracts known settings (`class`, `inlineToolbar`, `shortcut`, etc.) and passes the rest to the tool.
64
+
63
65
  ### Entry Points
64
66
 
65
67
  | Entry Point | Description |
package/codemod/README.md CHANGED
@@ -34,16 +34,30 @@ npx migrate-from-editorjs ./src --dry-run
34
34
 
35
35
  ### Import Transformations
36
36
 
37
+ **EditorJS → Blok:**
37
38
  ```diff
38
39
  - import EditorJS from '@editorjs/editorjs';
39
- + import Blok from '@jackuait/blok';
40
+ + import { Blok } from '@jackuait/blok';
41
+
42
+ - import EditorJS, { EditorConfig } from '@editorjs/editorjs';
43
+ + import { Blok, BlokConfig } from '@jackuait/blok';
40
44
 
41
45
  - import Header from '@editorjs/header';
42
46
  - import Paragraph from '@editorjs/paragraph';
43
47
  - import List from '@editorjs/list';
44
- + // Header is now bundled with Blok: use Blok.Header
45
- + // Paragraph is now bundled with Blok: use Blok.Paragraph
46
- + // List is now bundled with Blok: use Blok.List
48
+ + import { Header, Paragraph, List } from '@jackuait/blok/tools';
49
+ ```
50
+
51
+ **Blok default imports → named imports** (Blok only exports named exports):
52
+ ```diff
53
+ - import Blok from '@jackuait/blok';
54
+ + import { Blok } from '@jackuait/blok';
55
+
56
+ - import Editor from '@jackuait/blok';
57
+ + import { Blok as Editor } from '@jackuait/blok';
58
+
59
+ - import Blok, { BlokConfig } from '@jackuait/blok';
60
+ + import { Blok, BlokConfig } from '@jackuait/blok';
47
61
  ```
48
62
 
49
63
  ### Type Transformations
@@ -98,17 +112,25 @@ npx migrate-from-editorjs ./src --dry-run
98
112
 
99
113
  ### Tool Configuration Transformations
100
114
 
115
+ Old Blok static property references are converted to direct imports:
101
116
  ```diff
102
117
  tools: {
103
- - header: Header,
104
- - paragraph: Paragraph,
105
- - list: List,
106
- + header: Blok.Header,
107
- + paragraph: Blok.Paragraph,
108
- + list: Blok.List,
118
+ - header: Blok.Header,
119
+ - paragraph: Blok.Paragraph,
120
+ - list: Blok.List,
121
+ + header: Header,
122
+ + paragraph: Paragraph,
123
+ + list: List,
109
124
  }
110
125
  ```
111
126
 
127
+ Combined Blok imports are split into core and tools:
128
+ ```diff
129
+ - import { Blok, Header, Paragraph, List } from '@jackuait/blok';
130
+ + import { Blok } from '@jackuait/blok';
131
+ + import { Header, Paragraph, List } from '@jackuait/blok/tools';
132
+ ```
133
+
112
134
  ### package.json Updates
113
135
 
114
136
  ```diff
@@ -388,6 +388,98 @@ function removeI18nMessages(content) {
388
388
 
389
389
  // Import transformations
390
390
  const IMPORT_TRANSFORMS = [
391
+ // ============================================================================
392
+ // Blok default import → named import transformations
393
+ // These handle cases where users incorrectly use default imports with Blok
394
+ // (Blok only exports named exports, not a default export)
395
+ // ============================================================================
396
+
397
+ // Combined default + named imports from @jackuait/blok: import Blok, { BlokConfig } from '@jackuait/blok'
398
+ // → import { Blok, BlokConfig } from '@jackuait/blok'
399
+ // IMPORTANT: Must come before regular default import patterns to avoid partial matching
400
+ {
401
+ pattern: /import\s+Blok\s*,\s*\{\s*([^}]+?)\s*\}\s*from\s+['"]@jackuait\/blok['"]/g,
402
+ replacement: "import { Blok, $1 } from '@jackuait/blok'",
403
+ note: 'Converted combined default + named import to named import',
404
+ },
405
+ // Aliased combined: import Editor, { BlokConfig } from '@jackuait/blok'
406
+ {
407
+ pattern: /import\s+(\w+)\s*,\s*\{\s*([^}]+?)\s*\}\s*from\s+['"]@jackuait\/blok['"]/g,
408
+ replacement: "import { Blok as $1, $2 } from '@jackuait/blok'",
409
+ note: 'Converted aliased combined default + named import to named import',
410
+ },
411
+ // Default import: import Blok from '@jackuait/blok' → import { Blok } from '@jackuait/blok'
412
+ {
413
+ pattern: /import\s+Blok\s+from\s+['"]@jackuait\/blok['"]/g,
414
+ replacement: "import { Blok } from '@jackuait/blok'",
415
+ note: 'Converted default import to named import',
416
+ },
417
+ // Aliased default import: import Editor from '@jackuait/blok' → import { Blok as Editor } from '@jackuait/blok'
418
+ // Must check it's not followed by /tools or /types to avoid matching subpath imports
419
+ {
420
+ pattern: /import\s+(\w+)\s+from\s+['"]@jackuait\/blok['"](?!\/)/g,
421
+ replacement: "import { Blok as $1 } from '@jackuait/blok'",
422
+ note: 'Converted aliased default import to named import',
423
+ },
424
+ // Type-only default import: import type Blok from '@jackuait/blok'
425
+ {
426
+ pattern: /import\s+type\s+Blok\s+from\s+['"]@jackuait\/blok['"]/g,
427
+ replacement: "import type { Blok } from '@jackuait/blok'",
428
+ note: 'Converted type-only default import to named import',
429
+ },
430
+ // Type-only aliased default import: import type Editor from '@jackuait/blok'
431
+ {
432
+ pattern: /import\s+type\s+(\w+)\s+from\s+['"]@jackuait\/blok['"](?!\/)/g,
433
+ replacement: "import type { Blok as $1 } from '@jackuait/blok'",
434
+ note: 'Converted type-only aliased default import to named import',
435
+ },
436
+ // Namespace import: import * as Blok from '@jackuait/blok' → import { Blok } from '@jackuait/blok'
437
+ {
438
+ pattern: /import\s+\*\s+as\s+Blok\s+from\s+['"]@jackuait\/blok['"]/g,
439
+ replacement: "import { Blok } from '@jackuait/blok'",
440
+ note: 'Converted namespace import to named import',
441
+ },
442
+ // Aliased namespace import: import * as Editor from '@jackuait/blok'
443
+ {
444
+ pattern: /import\s+\*\s+as\s+(\w+)\s+from\s+['"]@jackuait\/blok['"](?!\/)/g,
445
+ replacement: "import { Blok as $1 } from '@jackuait/blok'",
446
+ note: 'Converted namespace import to named import with alias',
447
+ },
448
+ // Dynamic import with destructuring: const { default: Editor } = await import('@jackuait/blok')
449
+ {
450
+ pattern: /\{\s*default\s*:\s*(\w+)\s*\}\s*=\s*await\s+import\s*\(\s*['"]@jackuait\/blok['"]\s*\)/g,
451
+ replacement: "{ Blok: $1 } = await import('@jackuait/blok')",
452
+ note: 'Converted destructured dynamic import',
453
+ },
454
+ // Re-export default as named: export { default as Editor } from '@jackuait/blok'
455
+ {
456
+ pattern: /export\s+\{\s*default\s+as\s+(\w+)\s*\}\s*from\s+['"]@jackuait\/blok['"]/g,
457
+ replacement: "export { Blok as $1 } from '@jackuait/blok'",
458
+ note: 'Converted default re-export to named export',
459
+ },
460
+ // Re-export default: export { default } from '@jackuait/blok'
461
+ {
462
+ pattern: /export\s+\{\s*default\s*\}\s*from\s+['"]@jackuait\/blok['"]/g,
463
+ replacement: "export { Blok } from '@jackuait/blok'",
464
+ note: 'Converted default re-export',
465
+ },
466
+ // Require with .default access: require('@jackuait/blok').default
467
+ {
468
+ pattern: /require\s*\(\s*['"]@jackuait\/blok['"]\s*\)\.default/g,
469
+ replacement: "require('@jackuait/blok').Blok",
470
+ note: 'Converted require().default to require().Blok',
471
+ },
472
+ // Destructured require with default: const { default: Editor } = require('@jackuait/blok')
473
+ {
474
+ pattern: /const\s+\{\s*default\s*:\s*(\w+)\s*\}\s*=\s*require\s*\(\s*['"]@jackuait\/blok['"]\s*\)/g,
475
+ replacement: "const { Blok: $1 } = require('@jackuait/blok')",
476
+ note: 'Converted destructured default require to named require',
477
+ },
478
+
479
+ // ============================================================================
480
+ // EditorJS → Blok transformations
481
+ // ============================================================================
482
+
391
483
  // EditorJS subpath imports (e.g., @editorjs/editorjs/types -> @jackuait/blok/types)
392
484
  {
393
485
  pattern: /from\s+['"]@editorjs\/editorjs\/([^'"]+)['"]/g,
package/codemod/test.js CHANGED
@@ -956,6 +956,104 @@ test('removeI18nMessages does not change content without i18n', () => {
956
956
  assertEqual(result, input, 'Content should be unchanged');
957
957
  });
958
958
 
959
+ // ============================================================================
960
+ // Blok Default Import → Named Import Tests
961
+ // ============================================================================
962
+
963
+ console.log('\n🔄 Blok Default Import → Named Import Transformations\n');
964
+
965
+ test('transforms Blok default import to named import', () => {
966
+ const input = `import Blok from '@jackuait/blok';`;
967
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
968
+ assertEqual(result, `import { Blok } from '@jackuait/blok';`);
969
+ });
970
+
971
+ test('transforms aliased Blok default import to named import with alias', () => {
972
+ const input = `import Editor from '@jackuait/blok';`;
973
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
974
+ assertEqual(result, `import { Blok as Editor } from '@jackuait/blok';`);
975
+ });
976
+
977
+ test('transforms combined Blok default + named import', () => {
978
+ const input = `import Blok, { BlokConfig } from '@jackuait/blok';`;
979
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
980
+ assertEqual(result, `import { Blok, BlokConfig } from '@jackuait/blok';`);
981
+ });
982
+
983
+ test('transforms aliased combined Blok default + named import', () => {
984
+ const input = `import Editor, { BlokConfig } from '@jackuait/blok';`;
985
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
986
+ assertEqual(result, `import { Blok as Editor, BlokConfig } from '@jackuait/blok';`);
987
+ });
988
+
989
+ test('transforms type-only Blok default import', () => {
990
+ const input = `import type Blok from '@jackuait/blok';`;
991
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
992
+ assertEqual(result, `import type { Blok } from '@jackuait/blok';`);
993
+ });
994
+
995
+ test('transforms type-only aliased Blok default import', () => {
996
+ const input = `import type Editor from '@jackuait/blok';`;
997
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
998
+ assertEqual(result, `import type { Blok as Editor } from '@jackuait/blok';`);
999
+ });
1000
+
1001
+ test('transforms namespace import from @jackuait/blok', () => {
1002
+ const input = `import * as Blok from '@jackuait/blok';`;
1003
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1004
+ assertEqual(result, `import { Blok } from '@jackuait/blok';`);
1005
+ });
1006
+
1007
+ test('transforms aliased namespace import from @jackuait/blok', () => {
1008
+ const input = `import * as Editor from '@jackuait/blok';`;
1009
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1010
+ assertEqual(result, `import { Blok as Editor } from '@jackuait/blok';`);
1011
+ });
1012
+
1013
+ test('transforms destructured dynamic import from @jackuait/blok', () => {
1014
+ const input = `const { default: Editor } = await import('@jackuait/blok');`;
1015
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1016
+ assertEqual(result, `const { Blok: Editor } = await import('@jackuait/blok');`);
1017
+ });
1018
+
1019
+ test('transforms require().default from @jackuait/blok', () => {
1020
+ const input = `const Blok = require('@jackuait/blok').default;`;
1021
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1022
+ assertEqual(result, `const Blok = require('@jackuait/blok').Blok;`);
1023
+ });
1024
+
1025
+ test('transforms destructured require default from @jackuait/blok', () => {
1026
+ const input = `const { default: Editor } = require('@jackuait/blok');`;
1027
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1028
+ assertEqual(result, `const { Blok: Editor } = require('@jackuait/blok');`);
1029
+ });
1030
+
1031
+ test('transforms re-export default as named from @jackuait/blok', () => {
1032
+ const input = `export { default as Editor } from '@jackuait/blok';`;
1033
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1034
+ assertEqual(result, `export { Blok as Editor } from '@jackuait/blok';`);
1035
+ });
1036
+
1037
+ test('transforms re-export default from @jackuait/blok', () => {
1038
+ const input = `export { default } from '@jackuait/blok';`;
1039
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1040
+ assertEqual(result, `export { Blok } from '@jackuait/blok';`);
1041
+ });
1042
+
1043
+ test('does not transform subpath imports from @jackuait/blok/tools', () => {
1044
+ const input = `import Header from '@jackuait/blok/tools';`;
1045
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1046
+ // Should not match because of the /tools path
1047
+ assertEqual(result, input);
1048
+ });
1049
+
1050
+ test('does not transform named imports from @jackuait/blok', () => {
1051
+ const input = `import { Blok, BlokConfig } from '@jackuait/blok';`;
1052
+ const { result } = applyTransforms(input, IMPORT_TRANSFORMS);
1053
+ // Named imports should not be transformed by the default import transforms
1054
+ assertEqual(result, input);
1055
+ });
1056
+
959
1057
  // ============================================================================
960
1058
  // Modular Import Tests (Strategy 5)
961
1059
  // ============================================================================
package/dist/blok.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { B as s, v as a } from "./chunks/blok-BjgH1REI.mjs";
2
- import { D as A } from "./chunks/inline-tool-convert-Bx5BVd8I.mjs";
1
+ import { B as s, v as a } from "./chunks/blok-D85C_iyk.mjs";
2
+ import { D as A } from "./chunks/inline-tool-convert-CYkcoF1r.mjs";
3
3
  export {
4
4
  s as Blok,
5
5
  A as DATA_ATTR,