@jackuait/blok 0.13.2 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/dist/blok.cjs +1 -1
  2. package/dist/blok.iife.js +30 -30
  3. package/dist/blok.mjs +2 -2
  4. package/dist/chunks/blok-Da-GaWJ8.cjs +17 -0
  5. package/dist/chunks/{blok-Du6vYONn.mjs → blok-PpFnlqXZ.mjs} +2722 -2322
  6. package/dist/chunks/constants-C-OQpSwB.cjs +457 -0
  7. package/dist/chunks/{constants-DUuYY64n.mjs → constants-DdfiMdC1.mjs} +390 -299
  8. package/dist/chunks/{i18next-loader-GIrBCFrC.mjs → i18next-loader-BEWWek8j.mjs} +1 -1
  9. package/dist/chunks/{i18next-loader-DC1uN-wc.cjs → i18next-loader-BRLYf-CW.cjs} +1 -1
  10. package/dist/chunks/{lightweight-i18n-DF9Pupws.mjs → lightweight-i18n-GbzxWVgl.mjs} +9 -0
  11. package/dist/chunks/lightweight-i18n-lNYVKCfj.cjs +1 -0
  12. package/dist/chunks/messages-085GG-gT.cjs +1 -0
  13. package/dist/{messages-3j4yi-DF.mjs → chunks/messages-46QopBh4.mjs} +9 -0
  14. package/dist/chunks/messages-5kQujjf1.cjs +1 -0
  15. package/dist/chunks/{messages-CTWXEx_o.mjs → messages-6r3Lrqpf.mjs} +9 -0
  16. package/dist/chunks/messages-8vjbwhvK.cjs +1 -0
  17. package/dist/chunks/messages-ACbZDExx.cjs +1 -0
  18. package/dist/chunks/messages-B05XREvI.cjs +1 -0
  19. package/dist/chunks/{messages-CQg2_vmm.mjs → messages-B0y97-C9.mjs} +9 -0
  20. package/dist/chunks/{messages-ZHNvKiIX.mjs → messages-B26pkAIj.mjs} +9 -0
  21. package/dist/chunks/messages-B2J7kDKI.cjs +1 -0
  22. package/dist/chunks/messages-B3jMjjFG.cjs +1 -0
  23. package/dist/chunks/messages-B4_c-uS0.cjs +1 -0
  24. package/dist/chunks/messages-B6zoVYEd.cjs +1 -0
  25. package/dist/chunks/{messages-DI9Ifrgt.mjs → messages-B73uch0z.mjs} +9 -0
  26. package/dist/chunks/{messages-AgmrT2Id.mjs → messages-B74xK8Ux.mjs} +9 -0
  27. package/dist/chunks/messages-B7efcz_S2.cjs +1 -0
  28. package/dist/chunks/{messages-sqdfYuVj2.mjs → messages-B9u3UJRu2.mjs} +9 -0
  29. package/dist/chunks/messages-BB9huoLU.cjs +1 -0
  30. package/dist/{messages-Cx7sqvx02.mjs → chunks/messages-BEzCtzW3.mjs} +9 -0
  31. package/dist/chunks/messages-BGQdk2zV2.cjs +1 -0
  32. package/dist/chunks/messages-BGmUrVtN2.cjs +1 -0
  33. package/dist/chunks/messages-BH-3FR4b2.cjs +1 -0
  34. package/dist/chunks/{messages-BZ4d5yNH.mjs → messages-BHqAQF6C.mjs} +9 -0
  35. package/dist/{messages-DzkZ434Z.mjs → chunks/messages-BI_-Ub99.mjs} +9 -0
  36. package/dist/chunks/messages-BNa6_BYq2.cjs +1 -0
  37. package/dist/chunks/{messages-BvupGuDw2.mjs → messages-BOMNOs8T2.mjs} +9 -0
  38. package/dist/chunks/{messages-fSeXd6-z.mjs → messages-BPYPnKHy.mjs} +9 -0
  39. package/dist/{messages-B3PWaMcw.mjs → chunks/messages-BQmUOeft.mjs} +9 -0
  40. package/dist/chunks/messages-BRfutnCs.cjs +1 -0
  41. package/dist/chunks/messages-BT_0dgL1.cjs +1 -0
  42. package/dist/chunks/{messages-BWGqOZ9J.mjs → messages-BWSXW4jk.mjs} +9 -0
  43. package/dist/chunks/messages-BWpKvkND2.cjs +1 -0
  44. package/dist/chunks/messages-BY6gCAsA2.cjs +1 -0
  45. package/dist/{messages-BDwU9rYR2.mjs → chunks/messages-BbfZo0kw2.mjs} +9 -0
  46. package/dist/{messages-gQ5PFa2t2.mjs → chunks/messages-BfqzgRP72.mjs} +9 -0
  47. package/dist/chunks/messages-Bk2Xs7_v.cjs +1 -0
  48. package/dist/{messages-CmN2OfuB.mjs → chunks/messages-BmkavfpK.mjs} +9 -0
  49. package/dist/chunks/{messages-B1k4DgVe.mjs → messages-BmzMikmq.mjs} +9 -0
  50. package/dist/chunks/messages-BniEGAW32.cjs +1 -0
  51. package/dist/chunks/{messages-BP77P9ER.mjs → messages-BplwYBhA.mjs} +9 -0
  52. package/dist/chunks/{messages-B1xgsCNQ.cjs → messages-BqJ-xe8R.cjs} +1 -1
  53. package/dist/chunks/messages-Bry43U_U.cjs +1 -0
  54. package/dist/{messages-DFfhoDWZ2.mjs → chunks/messages-BuzGjYKw.mjs} +9 -0
  55. package/dist/chunks/messages-ByT63R7v2.cjs +1 -0
  56. package/dist/{messages-C_gdsU952.mjs → chunks/messages-C0S7KViA2.mjs} +9 -0
  57. package/dist/chunks/{messages-DzY53I67.mjs → messages-C0Tt7Odx.mjs} +9 -0
  58. package/dist/{messages-B8Tq9Txy.mjs → chunks/messages-C3A1iLjY.mjs} +9 -0
  59. package/dist/chunks/{messages-B6You-RA.mjs → messages-C3gh1rpr.mjs} +9 -0
  60. package/dist/chunks/{messages-CXxz5HYQ.mjs → messages-C7JE4SUS.mjs} +9 -0
  61. package/dist/chunks/messages-C9IWDnCh2.cjs +1 -0
  62. package/dist/chunks/messages-CBc3S61g2.cjs +1 -0
  63. package/dist/chunks/{messages-DefZ3ihx.mjs → messages-CHpkDOiI.mjs} +9 -0
  64. package/dist/{messages-BcD7xtJA.mjs → chunks/messages-CImQCp-z2.mjs} +9 -0
  65. package/dist/chunks/messages-CJ--z80t2.cjs +1 -0
  66. package/dist/chunks/messages-CNH8YFuv.cjs +1 -0
  67. package/dist/chunks/{messages-bjSJwsXK2.mjs → messages-CQ2KWTbV2.mjs} +9 -0
  68. package/dist/{messages-C8RMjnBe.mjs → chunks/messages-CWAukiLC.mjs} +9 -0
  69. package/dist/{messages-B3oFjWq3.mjs → chunks/messages-C_BUhMkZ.mjs} +9 -0
  70. package/dist/chunks/{messages-BvuEffoe.mjs → messages-CcBT1o1B.mjs} +9 -0
  71. package/dist/chunks/messages-CdqejEof.cjs +1 -0
  72. package/dist/chunks/messages-Chdejshy2.cjs +1 -0
  73. package/dist/{messages-D-rvoUSJ.mjs → chunks/messages-CijMg_B_.mjs} +9 -0
  74. package/dist/{messages-JKXCsFKZ.mjs → chunks/messages-Ciz80Z2u2.mjs} +9 -0
  75. package/dist/{messages-Dq2WEsEu.mjs → chunks/messages-CjuGKMoT.mjs} +9 -0
  76. package/dist/chunks/{messages-BxKobpJ22.mjs → messages-ClOfUECP2.mjs} +9 -0
  77. package/dist/chunks/messages-CrF-Q_ML.cjs +1 -0
  78. package/dist/chunks/messages-Cww_rBCM.cjs +1 -0
  79. package/dist/chunks/messages-CxPVYl2H2.cjs +1 -0
  80. package/dist/chunks/{messages-BA2sVGrR2.mjs → messages-Cyiqo_dk2.mjs} +9 -0
  81. package/dist/{messages-D788KtGe.mjs → chunks/messages-D-u_SWhb.mjs} +9 -0
  82. package/dist/chunks/messages-D0H-D5FQ2.cjs +1 -0
  83. package/dist/chunks/messages-D195RH3A.cjs +1 -0
  84. package/dist/chunks/{messages-Dd4nzvLj2.mjs → messages-D5-DG-_u2.mjs} +9 -0
  85. package/dist/chunks/messages-D6kDQgDP2.cjs +1 -0
  86. package/dist/{messages-CAGQtm7T.mjs → chunks/messages-D8-hiQgf.mjs} +9 -0
  87. package/dist/{messages-ftPYsH6d2.mjs → chunks/messages-D8nb9CKr2.mjs} +9 -0
  88. package/dist/{messages-DPqFBtJR.mjs → chunks/messages-DAd5yWtH2.mjs} +9 -0
  89. package/dist/chunks/messages-DAdsFLpE.cjs +1 -0
  90. package/dist/chunks/messages-DCUsbiUQ.cjs +1 -0
  91. package/dist/{messages-AycxTjmw.mjs → chunks/messages-DCVZaAT9.mjs} +9 -0
  92. package/dist/chunks/messages-DHXttezt2.cjs +1 -0
  93. package/dist/chunks/messages-DIgxCixa.cjs +1 -0
  94. package/dist/chunks/messages-DJ0Wr-Bt2.cjs +1 -0
  95. package/dist/chunks/messages-DJBdlmxR.cjs +1 -0
  96. package/dist/chunks/{messages-5AxgjKgf2.mjs → messages-DJm-uLwr2.mjs} +9 -0
  97. package/dist/chunks/{messages-BVarbXYD2.mjs → messages-DKF4qWhw2.mjs} +9 -0
  98. package/dist/chunks/messages-DLAWSVlE.cjs +1 -0
  99. package/dist/{messages-Bj03XD-02.mjs → chunks/messages-DLI8m6z_2.mjs} +9 -0
  100. package/dist/{messages-CTzO11jz.mjs → chunks/messages-DNiWBVQr.mjs} +9 -0
  101. package/dist/chunks/messages-DNsgR3ZH.cjs +1 -0
  102. package/dist/{messages-CgaGkQi32.mjs → chunks/messages-DPI5-TrO2.mjs} +9 -0
  103. package/dist/chunks/{messages-CyCl8la6.mjs → messages-DQ1z_srP.mjs} +9 -0
  104. package/dist/chunks/{messages-C4bHKGnB2.mjs → messages-DSxYO-_j2.mjs} +9 -0
  105. package/dist/chunks/messages-DTrrEqf02.cjs +1 -0
  106. package/dist/chunks/{messages-D7YPlNAK.mjs → messages-DYLfoakZ.mjs} +9 -0
  107. package/dist/chunks/messages-DZCWq8nI2.cjs +1 -0
  108. package/dist/{messages-PQVh93mt.mjs → chunks/messages-D_JT9POv.mjs} +9 -0
  109. package/dist/chunks/{messages-Uc3Uc2862.mjs → messages-DaTniq4w2.mjs} +9 -0
  110. package/dist/{messages-DiL61awK.mjs → chunks/messages-De2tXe0o.mjs} +9 -0
  111. package/dist/chunks/{messages-l5xHQb_m.mjs → messages-DiwyN3uU.mjs} +9 -0
  112. package/dist/chunks/messages-DkQGwmom.cjs +1 -0
  113. package/dist/chunks/{messages-B6t1xShv.mjs → messages-Dl-C7Pdf.mjs} +9 -0
  114. package/dist/chunks/{messages-bSVgJ1cu.mjs → messages-DlDyYt5x.mjs} +9 -0
  115. package/dist/chunks/messages-Dmhwr_Ow2.cjs +1 -0
  116. package/dist/chunks/messages-DrQQ1Hky.cjs +1 -0
  117. package/dist/chunks/messages-DtQ_pCWn.cjs +1 -0
  118. package/dist/{messages-uy3FE24_2.mjs → chunks/messages-Du-inLpi2.mjs} +9 -0
  119. package/dist/{messages-DqXJJPx9.mjs → chunks/messages-Duu9LiF32.mjs} +9 -0
  120. package/dist/chunks/messages-DxCc14pu2.cjs +1 -0
  121. package/dist/chunks/{messages-DNqFlfOd.mjs → messages-Dz3cVqxu.mjs} +9 -0
  122. package/dist/chunks/messages-EJkYSgsP.cjs +1 -0
  123. package/dist/chunks/messages-F3QeKduK.cjs +1 -0
  124. package/dist/chunks/messages-HfCZ1oPV.cjs +1 -0
  125. package/dist/chunks/{messages-BVZONUH9.mjs → messages-Ji3WDjrp.mjs} +9 -0
  126. package/dist/chunks/messages-MTnjMh07.cjs +1 -0
  127. package/dist/{messages-DL7JAwpC.mjs → chunks/messages-NU3n_1t9.mjs} +9 -0
  128. package/dist/chunks/messages-NpCBoXqi.cjs +1 -0
  129. package/dist/chunks/messages-PMZIH3mH.cjs +1 -0
  130. package/dist/{messages-7fwJIrld2.mjs → chunks/messages-TFu4tdzc2.mjs} +9 -0
  131. package/dist/{messages-BSHFypGE2.mjs → chunks/messages-Ti4ZdnqM2.mjs} +9 -0
  132. package/dist/chunks/messages-UOTfsDv3.cjs +1 -0
  133. package/dist/chunks/messages-WDBEGpNu.cjs +1 -0
  134. package/dist/chunks/messages-Zg6PFQ87.cjs +1 -0
  135. package/dist/chunks/messages-bdVhFVzt2.cjs +1 -0
  136. package/dist/chunks/messages-dnnjc_oR2.cjs +1 -0
  137. package/dist/{messages-BmWP4vpV2.mjs → chunks/messages-fI_5bRwV2.mjs} +9 -0
  138. package/dist/{messages-CIjSE2_O2.mjs → chunks/messages-g80Luov_2.mjs} +9 -0
  139. package/dist/chunks/messages-hlzAtKI5.cjs +1 -0
  140. package/dist/chunks/messages-kuh4lSUE2.cjs +1 -0
  141. package/dist/chunks/messages-m20Eebmt2.cjs +1 -0
  142. package/dist/chunks/messages-o1__8Rul.cjs +1 -0
  143. package/dist/chunks/messages-pBYvH88_.cjs +1 -0
  144. package/dist/chunks/{messages-CMRjQYxi2.mjs → messages-u1hpTCvK2.mjs} +9 -0
  145. package/dist/chunks/{messages-BoCUgrkI.mjs → messages-vq5ZvFTF.mjs} +9 -0
  146. package/dist/chunks/tools-DeTgjuIK.cjs +116 -0
  147. package/dist/chunks/{tools-Tt-NXbRZ.mjs → tools-omGeunql.mjs} +1818 -1686
  148. package/dist/full.cjs +1 -1
  149. package/dist/full.mjs +8 -8
  150. package/dist/locales.mjs +76 -67
  151. package/dist/{chunks/messages-DHdoaaFq2.mjs → messages-2hSOMnir2.mjs} +9 -0
  152. package/dist/{chunks/messages-DlcI-0Sy.mjs → messages-3VCxXECx.mjs} +9 -0
  153. package/dist/{messages-CxX23Jsk2.mjs → messages-8xGEIh_m2.mjs} +9 -0
  154. package/dist/{chunks/messages-DmErSGPk2.mjs → messages-B-QcHnuI2.mjs} +9 -0
  155. package/dist/{messages-BKCuCTFM.mjs → messages-B8zoeMf9.mjs} +9 -0
  156. package/dist/{chunks/messages-BmdkDNYv.mjs → messages-B9CF0GcE.mjs} +9 -0
  157. package/dist/{messages-1ufJbdRv2.mjs → messages-B9W0pRCr2.mjs} +9 -0
  158. package/dist/{messages-DQik3_xv2.mjs → messages-BFM2ljkf2.mjs} +9 -0
  159. package/dist/{chunks/messages-BNxTGhHu.mjs → messages-BLm4FSbz2.mjs} +9 -0
  160. package/dist/{chunks/messages-GHsufIGi2.mjs → messages-BLpeYPKv2.mjs} +9 -0
  161. package/dist/{messages-D_WzyzUt.mjs → messages-BM73sjxy.mjs} +9 -0
  162. package/dist/{messages-CX8egsiA2.mjs → messages-BOpqKi6Y2.mjs} +9 -0
  163. package/dist/{chunks/messages-eyGOcbhV.mjs → messages-BUGdUeTK.mjs} +9 -0
  164. package/dist/{chunks/messages-DhZwMl9x2.mjs → messages-BZm7MzSJ2.mjs} +9 -0
  165. package/dist/{messages-C31VIrlL.mjs → messages-BtBhP1sv.mjs} +9 -0
  166. package/dist/{messages-D1Fjr4OK2.mjs → messages-BthFu3bN2.mjs} +9 -0
  167. package/dist/{chunks/messages-COMdnGQV2.mjs → messages-BurjwjCQ2.mjs} +9 -0
  168. package/dist/{messages-DTkd9ND8.mjs → messages-ByIHkus-.mjs} +9 -0
  169. package/dist/{messages-C9GFRcVj.mjs → messages-ByVKFMH3.mjs} +9 -0
  170. package/dist/{chunks/messages-B5CFhyI8.mjs → messages-C6FDRqcf.mjs} +9 -0
  171. package/dist/{chunks/messages-OSIAf0Wk2.mjs → messages-C9dJ_N542.mjs} +9 -0
  172. package/dist/{messages-CRR1VRO6.mjs → messages-CCw8aJgW.mjs} +9 -0
  173. package/dist/{chunks/messages-AtUsRyWK2.mjs → messages-CO3NEwf22.mjs} +9 -0
  174. package/dist/{chunks/messages-CcboYTP8.mjs → messages-CPB2xkpC.mjs} +9 -0
  175. package/dist/{messages-CITYhXUz.mjs → messages-CPDsEORY.mjs} +9 -0
  176. package/dist/{chunks/messages-B2zrJyAc2.mjs → messages-CYyPOGy7.mjs} +9 -0
  177. package/dist/{chunks/messages-C03LZxma.mjs → messages-CZAODRjY.mjs} +9 -0
  178. package/dist/{messages-Duk7VVeY.mjs → messages-C_rns7Ku.mjs} +9 -0
  179. package/dist/{chunks/messages-CdWXgq_r.mjs → messages-CaUUIQvU.mjs} +9 -0
  180. package/dist/{messages-Cp0fjsey.mjs → messages-Cc-A7Vip.mjs} +9 -0
  181. package/dist/{chunks/messages-B7KbtBAE.mjs → messages-Ccf81JsG.mjs} +9 -0
  182. package/dist/{chunks/messages-rEsI_fAk.mjs → messages-CerTDuSC.mjs} +9 -0
  183. package/dist/{messages-BkTBwYet.mjs → messages-CgmDwRRE.mjs} +9 -0
  184. package/dist/{chunks/messages-DsyO86r3.mjs → messages-Cn3PWtLp.mjs} +9 -0
  185. package/dist/{chunks/messages-CWTFEPbA2.mjs → messages-Cu1rTEkB.mjs} +9 -0
  186. package/dist/{messages-oIa8wahx.mjs → messages-CxEHfUNH.mjs} +9 -0
  187. package/dist/{messages-C_mN4lx0.mjs → messages-D1B41i8X.mjs} +9 -0
  188. package/dist/{messages-NVepzgE3.mjs → messages-D6954zcl.mjs} +9 -0
  189. package/dist/{messages-C2TRJroV2.mjs → messages-DBwWssfL2.mjs} +9 -0
  190. package/dist/{messages-Cdgz3urh.mjs → messages-DFHRMYke.mjs} +9 -0
  191. package/dist/{messages-DXCyNanc2.mjs → messages-DJVrq0Xa2.mjs} +9 -0
  192. package/dist/{chunks/messages-OYoN_rp1.mjs → messages-DMJz28kt.mjs} +9 -0
  193. package/dist/{chunks/messages-B_U10evN2.mjs → messages-DOnOpXFJ2.mjs} +9 -0
  194. package/dist/{messages-5USazVPA2.mjs → messages-DR1Tf-Kj2.mjs} +9 -0
  195. package/dist/{chunks/messages-C4sIqArW2.mjs → messages-DSUXwuzH2.mjs} +9 -0
  196. package/dist/{chunks/messages-DGHTTk1S2.mjs → messages-DTNO7tw1.mjs} +9 -0
  197. package/dist/{messages-Ddz6eH0-2.mjs → messages-DWBtyom42.mjs} +9 -0
  198. package/dist/{messages-DKsyrVp5.mjs → messages-DZQALZIU.mjs} +9 -0
  199. package/dist/{chunks/messages-V8K7-1l2.mjs → messages-D_i86vbQ.mjs} +9 -0
  200. package/dist/{chunks/messages-BmiN0JGP2.mjs → messages-Da1VKvvf2.mjs} +9 -0
  201. package/dist/{messages-D5qgCWmB2.mjs → messages-Ddimgqvp2.mjs} +9 -0
  202. package/dist/{chunks/messages-MPF8o3EP.mjs → messages-DdmXBLUC.mjs} +9 -0
  203. package/dist/{messages-D4U4wkYM.mjs → messages-Devcsnrv.mjs} +9 -0
  204. package/dist/{chunks/messages-DiGsu5XN.mjs → messages-DhS-j4Hp.mjs} +9 -0
  205. package/dist/{messages-BGzpwNrz.mjs → messages-DrRVvVPI.mjs} +9 -0
  206. package/dist/{chunks/messages-Z9mDYT3w.mjs → messages-Ds4gQbVR2.mjs} +9 -0
  207. package/dist/{chunks/messages-vQ5kblO8.mjs → messages-DxkB7LL6.mjs} +9 -0
  208. package/dist/{chunks/messages-LTkIIrSe2.mjs → messages-GgHHrLBU2.mjs} +9 -0
  209. package/dist/{messages-CntTlSE22.mjs → messages-IycPaZe22.mjs} +9 -0
  210. package/dist/{messages-BtDz-sw92.mjs → messages-ST8f_nDx2.mjs} +9 -0
  211. package/dist/{messages-CgVEHCQ-.mjs → messages-SV8lf6F0.mjs} +9 -0
  212. package/dist/{messages-Bt4TLGth.mjs → messages-lVrQmsky.mjs} +9 -0
  213. package/dist/{messages-rpO1POP02.mjs → messages-lcoIGSX82.mjs} +9 -0
  214. package/dist/{chunks/messages-BuYnNUtU2.mjs → messages-mqRVfUUq.mjs} +9 -0
  215. package/dist/{chunks/messages-C24IC_eR.mjs → messages-qWFvoPY1.mjs} +9 -0
  216. package/dist/{messages-CacRpQpm.mjs → messages-yte1QPX5.mjs} +9 -0
  217. package/dist/{messages-DNlrcG5Z.mjs → messages-zyiti_A8.mjs} +9 -0
  218. package/dist/react.cjs +1 -1
  219. package/dist/react.mjs +1 -1
  220. package/dist/tools.cjs +1 -1
  221. package/dist/tools.mjs +3 -3
  222. package/package.json +1 -1
  223. package/src/components/blocks.ts +30 -7
  224. package/src/components/i18n/locales/am/messages.json +9 -0
  225. package/src/components/i18n/locales/ar/messages.json +9 -0
  226. package/src/components/i18n/locales/az/messages.json +9 -0
  227. package/src/components/i18n/locales/bg/messages.json +9 -0
  228. package/src/components/i18n/locales/bn/messages.json +9 -0
  229. package/src/components/i18n/locales/bs/messages.json +9 -0
  230. package/src/components/i18n/locales/cs/messages.json +9 -0
  231. package/src/components/i18n/locales/da/messages.json +9 -0
  232. package/src/components/i18n/locales/de/messages.json +9 -0
  233. package/src/components/i18n/locales/dv/messages.json +9 -0
  234. package/src/components/i18n/locales/el/messages.json +9 -0
  235. package/src/components/i18n/locales/en/messages.json +9 -0
  236. package/src/components/i18n/locales/es/messages.json +9 -0
  237. package/src/components/i18n/locales/et/messages.json +9 -0
  238. package/src/components/i18n/locales/fa/messages.json +9 -0
  239. package/src/components/i18n/locales/fi/messages.json +9 -0
  240. package/src/components/i18n/locales/fil/messages.json +9 -0
  241. package/src/components/i18n/locales/fr/messages.json +9 -0
  242. package/src/components/i18n/locales/gu/messages.json +9 -0
  243. package/src/components/i18n/locales/he/messages.json +9 -0
  244. package/src/components/i18n/locales/hi/messages.json +9 -0
  245. package/src/components/i18n/locales/hr/messages.json +9 -0
  246. package/src/components/i18n/locales/hu/messages.json +9 -0
  247. package/src/components/i18n/locales/hy/messages.json +9 -0
  248. package/src/components/i18n/locales/id/messages.json +9 -0
  249. package/src/components/i18n/locales/it/messages.json +9 -0
  250. package/src/components/i18n/locales/ja/messages.json +9 -0
  251. package/src/components/i18n/locales/ka/messages.json +9 -0
  252. package/src/components/i18n/locales/km/messages.json +9 -0
  253. package/src/components/i18n/locales/kn/messages.json +9 -0
  254. package/src/components/i18n/locales/ko/messages.json +9 -0
  255. package/src/components/i18n/locales/ku/messages.json +9 -0
  256. package/src/components/i18n/locales/lo/messages.json +9 -0
  257. package/src/components/i18n/locales/lt/messages.json +9 -0
  258. package/src/components/i18n/locales/lv/messages.json +9 -0
  259. package/src/components/i18n/locales/mk/messages.json +9 -0
  260. package/src/components/i18n/locales/ml/messages.json +9 -0
  261. package/src/components/i18n/locales/mn/messages.json +9 -0
  262. package/src/components/i18n/locales/mr/messages.json +9 -0
  263. package/src/components/i18n/locales/ms/messages.json +9 -0
  264. package/src/components/i18n/locales/my/messages.json +9 -0
  265. package/src/components/i18n/locales/ne/messages.json +9 -0
  266. package/src/components/i18n/locales/nl/messages.json +9 -0
  267. package/src/components/i18n/locales/no/messages.json +9 -0
  268. package/src/components/i18n/locales/pa/messages.json +9 -0
  269. package/src/components/i18n/locales/pl/messages.json +9 -0
  270. package/src/components/i18n/locales/ps/messages.json +9 -0
  271. package/src/components/i18n/locales/pt/messages.json +9 -0
  272. package/src/components/i18n/locales/ro/messages.json +9 -0
  273. package/src/components/i18n/locales/ru/messages.json +9 -0
  274. package/src/components/i18n/locales/sd/messages.json +9 -0
  275. package/src/components/i18n/locales/si/messages.json +9 -0
  276. package/src/components/i18n/locales/sk/messages.json +9 -0
  277. package/src/components/i18n/locales/sl/messages.json +9 -0
  278. package/src/components/i18n/locales/sq/messages.json +9 -0
  279. package/src/components/i18n/locales/sr/messages.json +9 -0
  280. package/src/components/i18n/locales/sv/messages.json +9 -0
  281. package/src/components/i18n/locales/sw/messages.json +9 -0
  282. package/src/components/i18n/locales/ta/messages.json +9 -0
  283. package/src/components/i18n/locales/te/messages.json +9 -0
  284. package/src/components/i18n/locales/th/messages.json +9 -0
  285. package/src/components/i18n/locales/tr/messages.json +9 -0
  286. package/src/components/i18n/locales/ug/messages.json +9 -0
  287. package/src/components/i18n/locales/uk/messages.json +9 -0
  288. package/src/components/i18n/locales/ur/messages.json +9 -0
  289. package/src/components/i18n/locales/vi/messages.json +9 -0
  290. package/src/components/i18n/locales/yi/messages.json +9 -0
  291. package/src/components/i18n/locales/zh/messages.json +9 -0
  292. package/src/components/icons/index.ts +24 -0
  293. package/src/components/modules/blockEvents/composers/keyboardNavigation.ts +67 -6
  294. package/src/components/modules/blockManager/hierarchy.ts +150 -8
  295. package/src/components/modules/blockManager/operations.ts +207 -8
  296. package/src/components/modules/blockManager/yjs-sync.ts +36 -1
  297. package/src/components/modules/caret.ts +205 -31
  298. package/src/components/modules/drag/DragController.ts +219 -2
  299. package/src/components/modules/drag/a11y/DragA11y.ts +9 -1
  300. package/src/components/modules/drag/state/DragStateMachine.ts +1 -1
  301. package/src/components/modules/drag/target/DropTargetDetector.ts +513 -3
  302. package/src/components/modules/drag/utils/drag.constants.ts +9 -0
  303. package/src/components/modules/toolbar/blockSettings.ts +75 -5
  304. package/src/components/modules/toolbar/index.ts +12 -1
  305. package/src/components/modules/uiControllers/controllers/blockHover.ts +24 -2
  306. package/src/components/modules/uiControllers/controllers/selection.ts +50 -0
  307. package/src/components/utils/blocks.ts +21 -7
  308. package/src/styles/colors.css +3 -0
  309. package/src/styles/columns.css +105 -0
  310. package/src/styles/main.css +48 -3
  311. package/src/styles/popover-animation.css +8 -0
  312. package/src/tools/column/index.ts +189 -0
  313. package/src/tools/column/types.ts +26 -0
  314. package/src/tools/column-drop.ts +273 -0
  315. package/src/tools/column-list/index.ts +142 -0
  316. package/src/tools/column-list/types.ts +17 -0
  317. package/src/tools/columns-shared.ts +343 -0
  318. package/src/tools/divider/index.ts +1 -0
  319. package/src/tools/index.ts +4 -0
  320. package/src/tools/nested-blocks.ts +23 -2
  321. package/src/tools/table/table-restrictions.ts +1 -1
  322. package/types/tools/column-list.d.ts +15 -0
  323. package/types/tools/column.d.ts +13 -0
  324. package/types/tools-entry.d.ts +8 -0
  325. package/dist/chunks/blok-Xu27QC2G.cjs +0 -17
  326. package/dist/chunks/constants-DDTVRO2H.cjs +0 -457
  327. package/dist/chunks/lightweight-i18n-Bbl1cNYK.cjs +0 -1
  328. package/dist/chunks/messages-1qYt6EhZ2.cjs +0 -1
  329. package/dist/chunks/messages-2fxvN3Nb.cjs +0 -1
  330. package/dist/chunks/messages-B1Vs2HmR.cjs +0 -1
  331. package/dist/chunks/messages-B780gS332.cjs +0 -1
  332. package/dist/chunks/messages-B7T5Notn.cjs +0 -1
  333. package/dist/chunks/messages-BE9aZQ1Q.cjs +0 -1
  334. package/dist/chunks/messages-BIQpTYfm.cjs +0 -1
  335. package/dist/chunks/messages-BIRvUJ0t.cjs +0 -1
  336. package/dist/chunks/messages-BIodfkjv.cjs +0 -1
  337. package/dist/chunks/messages-BL-zBcuM.cjs +0 -1
  338. package/dist/chunks/messages-BQr0zpmu2.cjs +0 -1
  339. package/dist/chunks/messages-BTHi6rVW2.cjs +0 -1
  340. package/dist/chunks/messages-BZOAdcmO2.cjs +0 -1
  341. package/dist/chunks/messages-BbsGeVs_2.cjs +0 -1
  342. package/dist/chunks/messages-Bc1NYJVS.cjs +0 -1
  343. package/dist/chunks/messages-BdORNG8X.cjs +0 -1
  344. package/dist/chunks/messages-Bg2kheTv.cjs +0 -1
  345. package/dist/chunks/messages-Bj1eQtQw.cjs +0 -1
  346. package/dist/chunks/messages-BkJJCHNK.cjs +0 -1
  347. package/dist/chunks/messages-BkdGQfIX.cjs +0 -1
  348. package/dist/chunks/messages-BkgsB-cj2.cjs +0 -1
  349. package/dist/chunks/messages-Bn0vGFEP.cjs +0 -1
  350. package/dist/chunks/messages-BoIUXwWe.cjs +0 -1
  351. package/dist/chunks/messages-BpDEh8rW.cjs +0 -1
  352. package/dist/chunks/messages-BwknPZJ8.cjs +0 -1
  353. package/dist/chunks/messages-ByicRCge2.cjs +0 -1
  354. package/dist/chunks/messages-C2oBmyTn.cjs +0 -1
  355. package/dist/chunks/messages-C9wBMmxr2.cjs +0 -1
  356. package/dist/chunks/messages-CDK5-8vW.cjs +0 -1
  357. package/dist/chunks/messages-CKHbPcfh.cjs +0 -1
  358. package/dist/chunks/messages-CNFfwTfw.cjs +0 -1
  359. package/dist/chunks/messages-CNiuofck2.cjs +0 -1
  360. package/dist/chunks/messages-CWszAGkF.cjs +0 -1
  361. package/dist/chunks/messages-CWzQNagc2.cjs +0 -1
  362. package/dist/chunks/messages-CYf1gv722.cjs +0 -1
  363. package/dist/chunks/messages-CfcCwbQo.cjs +0 -1
  364. package/dist/chunks/messages-CkvqOnAR.cjs +0 -1
  365. package/dist/chunks/messages-Cnrug7nz2.cjs +0 -1
  366. package/dist/chunks/messages-Cr51zCHy.cjs +0 -1
  367. package/dist/chunks/messages-CsLvvl2F2.cjs +0 -1
  368. package/dist/chunks/messages-CuO-Rx4g.cjs +0 -1
  369. package/dist/chunks/messages-Cv4I3k1W2.cjs +0 -1
  370. package/dist/chunks/messages-CwHRv6g8.cjs +0 -1
  371. package/dist/chunks/messages-CzXnHfGb2.cjs +0 -1
  372. package/dist/chunks/messages-D2QxLx1a.cjs +0 -1
  373. package/dist/chunks/messages-D4LUPpX_.cjs +0 -1
  374. package/dist/chunks/messages-DJFL-bxd2.cjs +0 -1
  375. package/dist/chunks/messages-DLEeNpMi2.cjs +0 -1
  376. package/dist/chunks/messages-DTNU_cq0.cjs +0 -1
  377. package/dist/chunks/messages-DVKsYqpJ.cjs +0 -1
  378. package/dist/chunks/messages-DXlfz-nC.cjs +0 -1
  379. package/dist/chunks/messages-DbA_Zja3.cjs +0 -1
  380. package/dist/chunks/messages-Dc2TTEx_2.cjs +0 -1
  381. package/dist/chunks/messages-DeDMMmRC.cjs +0 -1
  382. package/dist/chunks/messages-DlQNXqzr.cjs +0 -1
  383. package/dist/chunks/messages-DqMqZLcn.cjs +0 -1
  384. package/dist/chunks/messages-DqqDuEE22.cjs +0 -1
  385. package/dist/chunks/messages-DzppdmWe.cjs +0 -1
  386. package/dist/chunks/messages-HzLF-BQL2.cjs +0 -1
  387. package/dist/chunks/messages-Jb9n97oP2.cjs +0 -1
  388. package/dist/chunks/messages-K_vSdSoF2.cjs +0 -1
  389. package/dist/chunks/messages-Nh7wrRdm.cjs +0 -1
  390. package/dist/chunks/messages-QHS-Ydg_.cjs +0 -1
  391. package/dist/chunks/messages-SpiG5vT-2.cjs +0 -1
  392. package/dist/chunks/messages-XFaJzdhP2.cjs +0 -1
  393. package/dist/chunks/messages-y03BGg692.cjs +0 -1
  394. package/dist/chunks/tools-DOuVjow8.cjs +0 -116
@@ -4,6 +4,7 @@ import { DATA_ATTR } from '../../constants';
4
4
  import { announce } from '../../utils/announcer';
5
5
  import { hide as hideTooltip } from '../../utils/tooltip';
6
6
 
7
+ import { addColumnToList, wrapInNewColumnList } from '../../../tools/column-drop';
7
8
  import { DragA11y } from './a11y/DragA11y';
8
9
  import { DragOperations } from './operations/DragOperations';
9
10
  import { DragPreview } from './preview/DragPreview';
@@ -362,6 +363,7 @@ export class DragController extends Module {
362
363
  if (currentState.type === 'dragging' && currentState.targetBlock) {
363
364
  currentState.targetBlock.holder.removeAttribute('data-drop-indicator');
364
365
  currentState.targetBlock.holder.style.removeProperty('--drop-indicator-depth');
366
+ this.clearContentIndicatorOffsets(currentState.targetBlock);
365
367
  }
366
368
 
367
369
  // Find element under cursor (temporarily hide preview)
@@ -390,7 +392,7 @@ export class DragController extends Module {
390
392
  }
391
393
 
392
394
  // Update state with new target
393
- this.stateMachine.updateTarget(dropTarget.block, dropTarget.edge);
395
+ this.stateMachine.updateTarget(dropTarget.block, dropTarget.edge, dropTarget.parentId);
394
396
  // Spring-load closed toggles: auto-expand after 500ms hover
395
397
  this.springLoader.update(dropTarget.block);
396
398
 
@@ -398,12 +400,135 @@ export class DragController extends Module {
398
400
  dropTarget.block.holder.setAttribute('data-drop-indicator', dropTarget.edge);
399
401
  dropTarget.block.holder.style.setProperty('--drop-indicator-depth', String(dropTarget.depth));
400
402
 
403
+ // Confine the indicator to the visible content box. The holder spans the
404
+ // full editor width (gutters included), so without these offsets the
405
+ // top/bottom reorder line stretches across the whole screen and the side
406
+ // bars land out in the margins. Applies to every edge.
407
+ this.applyContentIndicatorOffsets(dropTarget.block);
408
+
409
+ // For a column side-drop, stretch the vertical indicator bar to the full
410
+ // height of the column row, not just the single target block.
411
+ this.applySideIndicatorHeight(dropTarget.block, dropTarget.edge);
412
+
413
+ // ...and center it on the gutter between the columns, so the line clearly
414
+ // marks an insertion BETWEEN them rather than at one column's edge.
415
+ this.centerSideIndicatorInGutter(dropTarget.block, dropTarget.edge);
416
+
401
417
  // Announce drop position change to screen readers
402
418
  if (this.a11y) {
403
419
  this.a11y.announceDropPosition(dropTarget.block, dropTarget.edge);
404
420
  }
405
421
  }
406
422
 
423
+ /**
424
+ * Sets the `--drop-indicator-side-left/right` custom properties on a block's
425
+ * holder so the drop indicator (top/bottom line and left/right side bars) is
426
+ * confined to the visible content box instead of the full-width holder. Falls
427
+ * back to no offset when the standard content wrapper is absent.
428
+ *
429
+ * @param block - The drop target block
430
+ */
431
+ private applyContentIndicatorOffsets(block: Block): void {
432
+ const content = block.holder.querySelector('[data-blok-element-content]');
433
+
434
+ if (!(content instanceof HTMLElement)) {
435
+ return;
436
+ }
437
+
438
+ const holderRect = block.holder.getBoundingClientRect();
439
+ const contentRect = content.getBoundingClientRect();
440
+
441
+ block.holder.style.setProperty('--drop-indicator-side-left', `${contentRect.left - holderRect.left}px`);
442
+ block.holder.style.setProperty('--drop-indicator-side-right', `${holderRect.right - contentRect.right}px`);
443
+ }
444
+
445
+ /**
446
+ * For a left/right (column) drop whose target sits inside a column_list,
447
+ * stretch the vertical indicator bar to the full height of the column row by
448
+ * setting `--drop-indicator-side-top/bottom` to the row container's top/bottom
449
+ * offset relative to the block holder (negative, so the bar grows past the
450
+ * single block). No-op for top/bottom edges or targets outside a column.
451
+ *
452
+ * @param block - The drop target block
453
+ * @param edge - The resolved drop edge
454
+ */
455
+ private applySideIndicatorHeight(block: Block, edge: 'top' | 'bottom' | 'left' | 'right'): void {
456
+ if (edge !== 'left' && edge !== 'right') {
457
+ return;
458
+ }
459
+
460
+ const columns = block.holder.closest('[data-blok-columns]');
461
+
462
+ if (!(columns instanceof HTMLElement)) {
463
+ return;
464
+ }
465
+
466
+ const holderRect = block.holder.getBoundingClientRect();
467
+ const columnsRect = columns.getBoundingClientRect();
468
+
469
+ block.holder.style.setProperty('--drop-indicator-side-top', `${columnsRect.top - holderRect.top}px`);
470
+ block.holder.style.setProperty('--drop-indicator-side-bottom', `${holderRect.bottom - columnsRect.bottom}px`);
471
+ }
472
+
473
+ /**
474
+ * Centers a column side-drop indicator on the gutter (the resize separator)
475
+ * between the two columns it divides, instead of sitting on the target column's
476
+ * content edge. The indicator marks an insertion BETWEEN columns, so the bar
477
+ * belongs in the gutter — overrides `--drop-indicator-side-left/right` to the
478
+ * separator's horizontal center. No-op when the edge isn't horizontal or there
479
+ * is no adjacent separator (an outer edge of the first/last column).
480
+ *
481
+ * @param block - The drop target block
482
+ * @param edge - The resolved drop edge
483
+ */
484
+ private centerSideIndicatorInGutter(block: Block, edge: 'top' | 'bottom' | 'left' | 'right'): void {
485
+ if (edge !== 'left' && edge !== 'right') {
486
+ return;
487
+ }
488
+
489
+ const columnWrapper = block.holder.closest('[data-blok-column]');
490
+ const columnHolder = columnWrapper instanceof HTMLElement
491
+ ? columnWrapper.closest('[data-blok-element]')
492
+ : null;
493
+
494
+ if (!(columnHolder instanceof HTMLElement)) {
495
+ return;
496
+ }
497
+
498
+ const separator = edge === 'left'
499
+ ? columnHolder.previousElementSibling
500
+ : columnHolder.nextElementSibling;
501
+
502
+ if (!(separator instanceof HTMLElement) || !separator.hasAttribute('data-blok-column-resizer')) {
503
+ return;
504
+ }
505
+
506
+ const holderRect = block.holder.getBoundingClientRect();
507
+ const separatorRect = separator.getBoundingClientRect();
508
+ const separatorCenter = separatorRect.left + separatorRect.width / 2;
509
+ // The bar is 3px wide; offset by half so its center lands on the separator.
510
+ const halfBar = 1.5;
511
+
512
+ if (edge === 'left') {
513
+ block.holder.style.setProperty('--drop-indicator-side-left', `${separatorCenter - holderRect.left - halfBar}px`);
514
+ } else {
515
+ block.holder.style.setProperty('--drop-indicator-side-right', `${holderRect.right - separatorCenter - halfBar}px`);
516
+ }
517
+ }
518
+
519
+ /**
520
+ * Removes the side-drop offset custom properties set by
521
+ * {@link applyContentIndicatorOffsets} and {@link applySideIndicatorHeight}.
522
+ *
523
+ * @param block - The block to clear
524
+ */
525
+ private clearContentIndicatorOffsets(block: Block): void {
526
+ block.holder.style.removeProperty('--drop-indicator-side-left');
527
+ block.holder.style.removeProperty('--drop-indicator-side-right');
528
+ block.holder.style.removeProperty('--drop-indicator-side-top');
529
+ block.holder.style.removeProperty('--drop-indicator-side-bottom');
530
+ }
531
+
407
532
  private onMouseUp(e: MouseEvent): void {
408
533
  const state = this.stateMachine.getState();
409
534
  const sourceBlock = this.stateMachine.getSourceBlock();
@@ -414,7 +539,11 @@ export class DragController extends Module {
414
539
  return;
415
540
  }
416
541
 
417
- const { targetBlock, targetEdge } = state as { targetBlock: Block | null; targetEdge: 'top' | 'bottom' | null };
542
+ const { targetBlock, targetEdge, targetParentId } = state as {
543
+ targetBlock: Block | null;
544
+ targetEdge: 'top' | 'bottom' | 'left' | 'right' | null;
545
+ targetParentId: string | null;
546
+ };
418
547
 
419
548
  if (!targetBlock || !targetEdge) {
420
549
  this.cleanup();
@@ -428,6 +557,14 @@ export class DragController extends Module {
428
557
  return;
429
558
  }
430
559
 
560
+ // Horizontal drops route to the column-drop helper (wired by integration),
561
+ // never to moveBlocks — its signature stays 'top' | 'bottom'.
562
+ if (targetEdge === 'left' || targetEdge === 'right') {
563
+ this.handleColumnDrop(sourceBlock, sourceBlocks, targetBlock, targetEdge, targetParentId);
564
+ this.cleanup(false, e.altKey);
565
+ return;
566
+ }
567
+
431
568
  if (e.altKey) {
432
569
  void this.handleDuplicate(sourceBlocks, targetBlock, targetEdge);
433
570
  } else {
@@ -437,6 +574,85 @@ export class DragController extends Module {
437
574
  this.cleanup(false, e.altKey);
438
575
  }
439
576
 
577
+ /**
578
+ * Handles a horizontal (side) drop near a block's left/right edge.
579
+ *
580
+ * @param sourceBlock - The primary block being dragged
581
+ * @param sourceBlocks - All blocks being dragged
582
+ * @param targetBlock - The block whose side was targeted
583
+ * @param edge - Which side of the target the drop occurred on
584
+ * @param targetParentId - The enclosing column id, or null if the target is at root
585
+ */
586
+ private handleColumnDrop(
587
+ sourceBlock: Block,
588
+ sourceBlocks: Block[],
589
+ targetBlock: Block,
590
+ edge: 'left' | 'right',
591
+ targetParentId: string | null
592
+ ): void {
593
+ const api = this.Blok.API.methods;
594
+
595
+ // Sources are the dragged blocks in document order; never the target.
596
+ const dragged = (sourceBlocks.length > 0 ? sourceBlocks : [sourceBlock])
597
+ .filter(block => block.id !== targetBlock.id);
598
+ const draggedIds = new Set(dragged.map(block => block.id));
599
+
600
+ // Drop only the TOP-LEVEL dragged blocks into the new/added column. A
601
+ // container's descendants are included in sourceBlocks (e.g. a callout
602
+ // carries its child paragraph), but they must ride along with their parent —
603
+ // reparenting them directly into the column would steal them out of their
604
+ // container, stranding the grandchild under the column instead of the
605
+ // callout. Mirrors the previewBlocks filter and handleDropImpl's
606
+ // parentIsBeingMoved skip.
607
+ const sourceIds = dragged
608
+ .filter(block => block.parentId === null || !draggedIds.has(block.parentId))
609
+ .map(block => block.id);
610
+
611
+ if (sourceIds.length === 0) {
612
+ return;
613
+ }
614
+
615
+ // Snapshot the sources' current parent columns before the move. When a source
616
+ // is the LAST block of its column, moving it into the new column empties that
617
+ // source column — and unlike the vertical-drop path (handleDropImpl re-renders
618
+ // affected parents), this side-drop reparents via raw setBlockParent and never
619
+ // touches the emptied source. Re-seed those columns afterwards so they never
620
+ // become dead, uninteractable empty boxes.
621
+ const sourceParentIds = new Set(
622
+ sourceIds
623
+ .map(id => this.Blok.BlockManager.getBlockById(id)?.parentId)
624
+ .filter((parentId): parentId is string => parentId !== null && parentId !== undefined)
625
+ );
626
+
627
+ // targetParentId is the enclosing column when the target already lives in a
628
+ // column_list (→ add a sibling column), or null for a top-level target
629
+ // (→ wrap target + sources into a brand new column_list).
630
+ if (targetParentId !== null) {
631
+ addColumnToList(api, targetParentId, sourceIds, edge);
632
+ } else {
633
+ wrapInNewColumnList(api, targetBlock.id, sourceIds, edge);
634
+ }
635
+
636
+ this.reseedEmptiedColumns(sourceParentIds);
637
+ }
638
+
639
+ /**
640
+ * Re-seed any column among `columnIds` that a move left childless. A column is
641
+ * pure layout that always hosts at least one block; an empty one is a dead box
642
+ * the user can't click into. Firing the column's rendered() hook re-runs its
643
+ * empty-column seed, inserting a fresh empty paragraph — the same recovery the
644
+ * vertical-drop path gets for free when it re-renders affected parents.
645
+ */
646
+ private reseedEmptiedColumns(columnIds: Set<string>): void {
647
+ for (const columnId of columnIds) {
648
+ const column = this.Blok.BlockManager.getBlockById(columnId);
649
+
650
+ if (column !== undefined && column.name === 'column' && column.contentIds.length === 0) {
651
+ column.call('rendered');
652
+ }
653
+ }
654
+ }
655
+
440
656
  private handleDrop(
441
657
  sourceBlock: Block,
442
658
  sourceBlocks: Block[],
@@ -821,6 +1037,7 @@ export class DragController extends Module {
821
1037
  if ((state.type === 'dragging' || state.type === 'dropped') && state.targetBlock) {
822
1038
  state.targetBlock.holder.removeAttribute('data-drop-indicator');
823
1039
  state.targetBlock.holder.style.removeProperty('--drop-indicator-depth');
1040
+ this.clearContentIndicatorOffsets(state.targetBlock);
824
1041
  }
825
1042
 
826
1043
  this.springLoader.cancel();
@@ -43,7 +43,15 @@ export class DragA11y {
43
43
  * @param targetBlock - Current drop target block
44
44
  * @param targetEdge - Edge of target ('top' or 'bottom')
45
45
  */
46
- announceDropPosition(targetBlock: Block, targetEdge: 'top' | 'bottom'): void {
46
+ announceDropPosition(targetBlock: Block, targetEdge: 'top' | 'bottom' | 'left' | 'right'): void {
47
+ // Horizontal (column-creating) drops do not reorder by index, so the
48
+ // position announcement does not apply. A dedicated phrasing needs new
49
+ // i18n keys across all 68 locales; that string round is deferred together
50
+ // with the rest of the columns a11y work, so skip the announcement here.
51
+ if (targetEdge === 'left' || targetEdge === 'right') {
52
+ return;
53
+ }
54
+
47
55
  const targetIndex = this.blockManager.getBlockIndex(targetBlock);
48
56
  const dropIndex = targetEdge === 'top' ? targetIndex : targetIndex + 1;
49
57
 
@@ -18,7 +18,7 @@ export type DragStateType =
18
18
  /**
19
19
  * Drop edge position
20
20
  */
21
- export type DropEdge = 'top' | 'bottom';
21
+ export type DropEdge = 'top' | 'bottom' | 'left' | 'right';
22
22
 
23
23
  /**
24
24
  * Drag state data for each state