@jackuait/blok 0.7.2 → 0.7.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 (238) hide show
  1. package/dist/blok.mjs +3 -3
  2. package/dist/chunks/{blok-3RuPZd3G.mjs → blok-Cv1zWiST.mjs} +2147 -2099
  3. package/dist/chunks/{constants-BkelccB1.mjs → constants-DWpV4hCh.mjs} +186 -58
  4. package/dist/chunks/{i18next-loader-qjweOJ-t.mjs → i18next-loader-D5HxE5ZQ.mjs} +1 -1
  5. package/dist/chunks/{lightweight-i18n-vbtPx5C4.mjs → lightweight-i18n-Safdy0ua.mjs} +0 -1
  6. package/dist/chunks/{messages-CjcSWeud.mjs → messages-1C3OS98e.mjs} +0 -1
  7. package/dist/chunks/{messages-3bOAVT3X2.mjs → messages-3ePgbbpx2.mjs} +0 -1
  8. package/dist/chunks/{messages-CG2xl0IV.mjs → messages-6EJxSImH.mjs} +0 -1
  9. package/dist/{messages-BjnJajTO2.mjs → chunks/messages-6z-ULVyk.mjs} +0 -1
  10. package/dist/{messages-B8jjwMLK.mjs → chunks/messages-BKtWlK39.mjs} +0 -1
  11. package/dist/chunks/{messages-CpnXbVOK2.mjs → messages-BM1Su_Uy2.mjs} +0 -1
  12. package/dist/{messages-DZo0x7Bd.mjs → chunks/messages-BUy3odZo.mjs} +0 -1
  13. package/dist/{messages-BflWzIcP2.mjs → chunks/messages-BZ45xBlV.mjs} +0 -1
  14. package/dist/chunks/{messages-Dr7yA3xM.mjs → messages-B_90PYaG.mjs} +0 -1
  15. package/dist/{messages-49ZJ_ISf.mjs → chunks/messages-B_nVGWdk.mjs} +0 -1
  16. package/dist/{messages-cOqXp22e.mjs → chunks/messages-BjkDJuqh.mjs} +0 -1
  17. package/dist/chunks/{messages-CvamFN6x.mjs → messages-BtNOlsMj.mjs} +0 -1
  18. package/dist/{messages-DmX52AQr.mjs → chunks/messages-C1iQkKu82.mjs} +0 -1
  19. package/dist/{messages-CaAdEXoh2.mjs → chunks/messages-C1lqY56F2.mjs} +0 -1
  20. package/dist/chunks/{messages-BoTtYEct2.mjs → messages-C232njMF2.mjs} +0 -1
  21. package/dist/chunks/{messages-DPe7kW6J.mjs → messages-C3AJz_i6.mjs} +0 -1
  22. package/dist/{messages-BEDVb3ZX.mjs → chunks/messages-C9XSSqS5.mjs} +0 -1
  23. package/dist/chunks/{messages-DriB5lEF.mjs → messages-CRxkRJRN.mjs} +0 -1
  24. package/dist/{messages-XwPD18Kk.mjs → chunks/messages-CVzvKl6U.mjs} +0 -1
  25. package/dist/chunks/{messages-B_Qcy8kr2.mjs → messages-Cb-x47kY2.mjs} +0 -1
  26. package/dist/{messages-DvTVsLOK2.mjs → chunks/messages-CejEH4FW2.mjs} +0 -1
  27. package/dist/{messages-CicggErN2.mjs → chunks/messages-CficsmSH2.mjs} +0 -1
  28. package/dist/chunks/{messages-CFr0Ha6p2.mjs → messages-ClOxDE0y2.mjs} +0 -1
  29. package/dist/chunks/{messages-BRrtoRdw2.mjs → messages-Cn5n0nHe2.mjs} +0 -1
  30. package/dist/{messages-DwPfgL_u.mjs → chunks/messages-CnzaTbel.mjs} +0 -1
  31. package/dist/chunks/{messages-CIGX0FfW.mjs → messages-Cq6wj6FG.mjs} +0 -1
  32. package/dist/chunks/{messages-Csq7JatN.mjs → messages-CteKp81J.mjs} +0 -1
  33. package/dist/{messages-Dr-YJYIK2.mjs → chunks/messages-CvLXClh9.mjs} +0 -1
  34. package/dist/chunks/{messages-43N0Vfg42.mjs → messages-CxTq0x772.mjs} +0 -1
  35. package/dist/chunks/{messages-DkSwQvmi2.mjs → messages-CzCqu58X2.mjs} +0 -1
  36. package/dist/{messages-CkVfziK_2.mjs → chunks/messages-D6SAC8Lc2.mjs} +0 -1
  37. package/dist/chunks/{messages-Doxcj7Qy.mjs → messages-D7aoKTPD.mjs} +0 -1
  38. package/dist/chunks/{messages-B0cg-ThO2.mjs → messages-D9nReG4C2.mjs} +0 -1
  39. package/dist/{messages-g58itYPI.mjs → chunks/messages-D9qyilS0.mjs} +0 -1
  40. package/dist/chunks/{messages-BQZtOYxr2.mjs → messages-DDRCk44J2.mjs} +0 -1
  41. package/dist/chunks/{messages-B87-89os.mjs → messages-DDr8J4FE.mjs} +0 -1
  42. package/dist/{messages-DzhR8Klk.mjs → chunks/messages-DJWRON2S.mjs} +0 -1
  43. package/dist/{messages-DBwaWI0X.mjs → chunks/messages-DK6pBwD2.mjs} +0 -1
  44. package/dist/chunks/{messages-BFiMCfDX2.mjs → messages-DNrK8lCg2.mjs} +0 -1
  45. package/dist/chunks/{messages-D7fI9Pj52.mjs → messages-DQ4VyVJf2.mjs} +0 -1
  46. package/dist/{messages-BHOI7R4K.mjs → chunks/messages-DacahKek.mjs} +0 -1
  47. package/dist/chunks/{messages-Bn6LwI4B.mjs → messages-DbS9Oibb.mjs} +0 -1
  48. package/dist/chunks/{messages-Dg6kSnxq.mjs → messages-DcPtg90i.mjs} +0 -1
  49. package/dist/{messages-BpA30dPf.mjs → chunks/messages-DfTU2I8J.mjs} +0 -1
  50. package/dist/{messages-BdA_xvxj.mjs → chunks/messages-Dhe8_mnQ.mjs} +0 -1
  51. package/dist/{messages-CCKZS2f4.mjs → chunks/messages-DjOY_EqX.mjs} +0 -1
  52. package/dist/chunks/{messages-DRYKKPk8.mjs → messages-DnPkoMz1.mjs} +0 -1
  53. package/dist/chunks/{messages-B_uTiuQ-.mjs → messages-DoDbCS02.mjs} +0 -1
  54. package/dist/chunks/{messages-CRMdL0jG.mjs → messages-DotEkUpQ.mjs} +0 -1
  55. package/dist/chunks/{messages-DV5c_ZRQ.mjs → messages-Dxrg70jo.mjs} +0 -1
  56. package/dist/chunks/{messages-CwRhVVui.mjs → messages-DziA-L3p.mjs} +0 -1
  57. package/dist/{messages-CkAWTSc4.mjs → chunks/messages-IJhiftj5.mjs} +0 -1
  58. package/dist/chunks/{messages-yuqArCc6.mjs → messages-JRavIeeW.mjs} +0 -1
  59. package/dist/{messages-CERs9LC9.mjs → chunks/messages-Ul43l29K2.mjs} +0 -1
  60. package/dist/chunks/{messages-BU_YdaAf.mjs → messages-Yk__PXZQ.mjs} +0 -1
  61. package/dist/{messages-BX2KVzJp2.mjs → chunks/messages-h474TGR72.mjs} +0 -1
  62. package/dist/chunks/{messages-M8noQ6Kp2.mjs → messages-hngFJrES2.mjs} +0 -1
  63. package/dist/chunks/{messages-D0v0Xa_i2.mjs → messages-kHTrX3wo2.mjs} +0 -1
  64. package/dist/chunks/{messages-DqGQvcXv2.mjs → messages-m6bLP64R2.mjs} +0 -1
  65. package/dist/chunks/{messages-ClDJuy8K2.mjs → messages-nE9Ko73n2.mjs} +0 -1
  66. package/dist/chunks/{messages-C0ZWDShx2.mjs → messages-ni0ahgYk2.mjs} +0 -1
  67. package/dist/chunks/{messages-B7LU-b6n2.mjs → messages-pKUiAqlX2.mjs} +0 -1
  68. package/dist/{messages-BSlQrYwp.mjs → chunks/messages-rJdSnvyi.mjs} +0 -1
  69. package/dist/{messages-BrPEPj382.mjs → chunks/messages-tBHnC2Rj2.mjs} +0 -1
  70. package/dist/chunks/{messages-Cimsel4e.mjs → messages-tg78NAmW.mjs} +0 -1
  71. package/dist/{messages-CCm71gq3.mjs → chunks/messages-uLIUXFmU.mjs} +0 -1
  72. package/dist/{messages-BfgHOkAy.mjs → chunks/messages-yJmwc3zD.mjs} +0 -1
  73. package/dist/chunks/{tools-rsbC2UUN.mjs → tools-CUIpIxxP.mjs} +645 -641
  74. package/dist/full.mjs +3 -3
  75. package/dist/locales.mjs +67 -68
  76. package/dist/{chunks/messages-BhZcNoIQ.mjs → messages--XEfVx572.mjs} +0 -1
  77. package/dist/{messages-BTNuOkhL.mjs → messages-3aRjZXpv.mjs} +0 -1
  78. package/dist/{chunks/messages-JyZvGvrN.mjs → messages-6G0Eia-2.mjs} +0 -1
  79. package/dist/{messages-C3tLCwJp2.mjs → messages-B2bHgIcC2.mjs} +0 -1
  80. package/dist/{messages-aNMLsF8T2.mjs → messages-B8M4YRFO2.mjs} +0 -1
  81. package/dist/{messages-Bt_9ptDu.mjs → messages-B9qltgXa.mjs} +0 -1
  82. package/dist/{messages-CLQvtc_8.mjs → messages-BBgyeB_N.mjs} +0 -1
  83. package/dist/{messages-BigRnQS92.mjs → messages-BENRci-_2.mjs} +0 -1
  84. package/dist/{chunks/messages-DihczS7L.mjs → messages-BOxe7ewT.mjs} +0 -1
  85. package/dist/{chunks/messages-CA-jms9R.mjs → messages-BP8ZuVaD.mjs} +0 -1
  86. package/dist/{messages-DYlxQEIv.mjs → messages-BQJzUYP-.mjs} +0 -1
  87. package/dist/{chunks/messages-Cn1AC0Qk.mjs → messages-BU9luYgO.mjs} +0 -1
  88. package/dist/{messages-CYLYnOV82.mjs → messages-BZgGD0zf2.mjs} +0 -1
  89. package/dist/{messages-MBBSKGjJ2.mjs → messages-BbLCMWln2.mjs} +0 -1
  90. package/dist/{chunks/messages-elZUbCrN.mjs → messages-BdJ1lCo_.mjs} +0 -1
  91. package/dist/{chunks/messages-D3JVx_CH2.mjs → messages-Be1CCcsp2.mjs} +0 -1
  92. package/dist/{messages-D5KmRsUV2.mjs → messages-BlnZ8CkJ2.mjs} +0 -1
  93. package/dist/{messages-DDGzypb4.mjs → messages-Bsz7Qgj_.mjs} +0 -1
  94. package/dist/{messages-DdUpYaJ1.mjs → messages-Bw-GC0m5.mjs} +0 -1
  95. package/dist/{chunks/messages-FB_MePlt.mjs → messages-BwdowdYD.mjs} +0 -1
  96. package/dist/{chunks/messages-kC92TJI72.mjs → messages-BxQ1gzJF2.mjs} +0 -1
  97. package/dist/{messages-C45IBZtA2.mjs → messages-BztXgybv2.mjs} +0 -1
  98. package/dist/{chunks/messages-M0HT-kBW.mjs → messages-C0gyqo4h2.mjs} +0 -1
  99. package/dist/{messages-DhdWq5oQ2.mjs → messages-C7R0m6oE2.mjs} +0 -1
  100. package/dist/{chunks/messages-CtufKbaD.mjs → messages-C8iAUPzI.mjs} +0 -1
  101. package/dist/{messages-BaGwIHPb2.mjs → messages-CAffVeAE2.mjs} +0 -1
  102. package/dist/{messages-vssmW7KO.mjs → messages-CB0RKGVM.mjs} +0 -1
  103. package/dist/{messages-CPx1R-PH.mjs → messages-CE305J0p.mjs} +0 -1
  104. package/dist/{chunks/messages-Byp0YFMg.mjs → messages-CEhkWwqI.mjs} +0 -1
  105. package/dist/{messages-D0i5Vdyy2.mjs → messages-CJYE0_hr2.mjs} +0 -1
  106. package/dist/{messages-CYFdbooL2.mjs → messages-COU4L-pL2.mjs} +0 -1
  107. package/dist/{messages-BRPH_a6a.mjs → messages-CRMZ79Xf.mjs} +0 -1
  108. package/dist/{messages-CA0hwajz.mjs → messages-CVBsztOg.mjs} +0 -1
  109. package/dist/{messages-YfjdnhUF.mjs → messages-C_4VGaBC.mjs} +0 -1
  110. package/dist/{chunks/messages-D4jR5Oc-.mjs → messages-C_RPN2GV.mjs} +0 -1
  111. package/dist/{messages-CsM2iz1H2.mjs → messages-CaJRIGUu2.mjs} +0 -1
  112. package/dist/{messages-BeJaje7e2.mjs → messages-Cb5JJ8C_2.mjs} +0 -1
  113. package/dist/{chunks/messages-KdvbGwLH.mjs → messages-Cgy54529.mjs} +0 -1
  114. package/dist/{chunks/messages-CRdl14uE.mjs → messages-CkmVEyEQ2.mjs} +0 -1
  115. package/dist/{chunks/messages-CzCezryo.mjs → messages-CzSLUJQt.mjs} +0 -1
  116. package/dist/{chunks/messages-BWbZYIs12.mjs → messages-D6Sr5cUE.mjs} +0 -1
  117. package/dist/{messages-C0cXOCHN2.mjs → messages-DAssrN5L2.mjs} +0 -1
  118. package/dist/{messages-CYZVFnaF.mjs → messages-DB9U3VIh.mjs} +0 -1
  119. package/dist/{messages-DxKIxLKw.mjs → messages-DCOKudVN.mjs} +0 -1
  120. package/dist/{chunks/messages-DLrmLkco2.mjs → messages-DGZQXeav2.mjs} +0 -1
  121. package/dist/{chunks/messages-CqsES1wk2.mjs → messages-DZbsds_k2.mjs} +0 -1
  122. package/dist/{messages-RNusm48G2.mjs → messages-DkkrjINb2.mjs} +0 -1
  123. package/dist/{messages-DQGzw4IC.mjs → messages-DlrZrm3s.mjs} +0 -1
  124. package/dist/{messages-D-12TeCM2.mjs → messages-DpY9s4Qi2.mjs} +0 -1
  125. package/dist/{chunks/messages-BrvAiuWT.mjs → messages-DrouoDgp.mjs} +0 -1
  126. package/dist/{messages-DWZyaZNA.mjs → messages-GrVSCmXW.mjs} +0 -1
  127. package/dist/{chunks/messages-BLxyso1L.mjs → messages-K7ROT6ea.mjs} +0 -1
  128. package/dist/{chunks/messages-B3StvafX.mjs → messages-Kye1BINC.mjs} +0 -1
  129. package/dist/{chunks/messages-BdWTM73p.mjs → messages-MaHxNgKA.mjs} +0 -1
  130. package/dist/{messages-2iHnlF0U.mjs → messages-TseLyyoU.mjs} +0 -1
  131. package/dist/{chunks/messages-iWMOMK822.mjs → messages-e-KHuxtY2.mjs} +0 -1
  132. package/dist/{messages-DgstU8GH.mjs → messages-eCyczLYY.mjs} +0 -1
  133. package/dist/{messages-BFT0F9pw.mjs → messages-gldjQk7M.mjs} +0 -1
  134. package/dist/{chunks/messages-v1HkA3kF2.mjs → messages-huTzItxA.mjs} +0 -1
  135. package/dist/{messages-BEEr6Vh82.mjs → messages-m1uf_AMy2.mjs} +0 -1
  136. package/dist/{messages-Dc1yFFBM.mjs → messages-mVFAkdcY.mjs} +0 -1
  137. package/dist/{chunks/messages-tfyq1JIh2.mjs → messages-oH0ADQ362.mjs} +0 -1
  138. package/dist/{chunks/messages-Cuk0QaLM.mjs → messages-pgqtPci-.mjs} +0 -1
  139. package/dist/{messages-DuubRyFf.mjs → messages-q7HzQPVt.mjs} +0 -1
  140. package/dist/{messages-vfkwiKQo.mjs → messages-ruU_e2LK.mjs} +0 -1
  141. package/dist/{chunks/messages-Dgfbmyf-.mjs → messages-voUPclMU.mjs} +0 -1
  142. package/dist/{chunks/messages-DGodJU2R.mjs → messages-wRvz0vQ3.mjs} +0 -1
  143. package/dist/react.mjs +2 -2
  144. package/dist/tools.mjs +2 -2
  145. package/package.json +1 -1
  146. package/src/blok.ts +0 -1
  147. package/src/components/constants/data-attributes.ts +2 -0
  148. package/src/components/core.ts +1 -1
  149. package/src/components/i18n/locales/am/messages.json +0 -1
  150. package/src/components/i18n/locales/ar/messages.json +0 -1
  151. package/src/components/i18n/locales/az/messages.json +0 -1
  152. package/src/components/i18n/locales/bg/messages.json +0 -1
  153. package/src/components/i18n/locales/bn/messages.json +0 -1
  154. package/src/components/i18n/locales/bs/messages.json +0 -1
  155. package/src/components/i18n/locales/cs/messages.json +0 -1
  156. package/src/components/i18n/locales/da/messages.json +0 -1
  157. package/src/components/i18n/locales/de/messages.json +0 -1
  158. package/src/components/i18n/locales/dv/messages.json +0 -1
  159. package/src/components/i18n/locales/el/messages.json +0 -1
  160. package/src/components/i18n/locales/en/messages.json +0 -1
  161. package/src/components/i18n/locales/es/messages.json +0 -1
  162. package/src/components/i18n/locales/et/messages.json +0 -1
  163. package/src/components/i18n/locales/fa/messages.json +0 -1
  164. package/src/components/i18n/locales/fi/messages.json +0 -1
  165. package/src/components/i18n/locales/fil/messages.json +0 -1
  166. package/src/components/i18n/locales/fr/messages.json +1 -2
  167. package/src/components/i18n/locales/gu/messages.json +0 -1
  168. package/src/components/i18n/locales/he/messages.json +0 -1
  169. package/src/components/i18n/locales/hi/messages.json +0 -1
  170. package/src/components/i18n/locales/hr/messages.json +0 -1
  171. package/src/components/i18n/locales/hu/messages.json +0 -1
  172. package/src/components/i18n/locales/hy/messages.json +0 -1
  173. package/src/components/i18n/locales/id/messages.json +0 -1
  174. package/src/components/i18n/locales/it/messages.json +0 -1
  175. package/src/components/i18n/locales/ja/messages.json +0 -1
  176. package/src/components/i18n/locales/ka/messages.json +0 -1
  177. package/src/components/i18n/locales/km/messages.json +0 -1
  178. package/src/components/i18n/locales/kn/messages.json +0 -1
  179. package/src/components/i18n/locales/ko/messages.json +0 -1
  180. package/src/components/i18n/locales/ku/messages.json +0 -1
  181. package/src/components/i18n/locales/lo/messages.json +0 -1
  182. package/src/components/i18n/locales/lt/messages.json +0 -1
  183. package/src/components/i18n/locales/lv/messages.json +0 -1
  184. package/src/components/i18n/locales/mk/messages.json +0 -1
  185. package/src/components/i18n/locales/ml/messages.json +0 -1
  186. package/src/components/i18n/locales/mn/messages.json +0 -1
  187. package/src/components/i18n/locales/mr/messages.json +0 -1
  188. package/src/components/i18n/locales/ms/messages.json +0 -1
  189. package/src/components/i18n/locales/my/messages.json +0 -1
  190. package/src/components/i18n/locales/ne/messages.json +0 -1
  191. package/src/components/i18n/locales/nl/messages.json +0 -1
  192. package/src/components/i18n/locales/no/messages.json +0 -1
  193. package/src/components/i18n/locales/pa/messages.json +0 -1
  194. package/src/components/i18n/locales/pl/messages.json +0 -1
  195. package/src/components/i18n/locales/ps/messages.json +0 -1
  196. package/src/components/i18n/locales/pt/messages.json +0 -1
  197. package/src/components/i18n/locales/ro/messages.json +0 -1
  198. package/src/components/i18n/locales/ru/messages.json +0 -1
  199. package/src/components/i18n/locales/sd/messages.json +0 -1
  200. package/src/components/i18n/locales/si/messages.json +0 -1
  201. package/src/components/i18n/locales/sk/messages.json +0 -1
  202. package/src/components/i18n/locales/sl/messages.json +0 -1
  203. package/src/components/i18n/locales/sq/messages.json +0 -1
  204. package/src/components/i18n/locales/sr/messages.json +0 -1
  205. package/src/components/i18n/locales/sv/messages.json +0 -1
  206. package/src/components/i18n/locales/sw/messages.json +0 -1
  207. package/src/components/i18n/locales/ta/messages.json +0 -1
  208. package/src/components/i18n/locales/te/messages.json +0 -1
  209. package/src/components/i18n/locales/th/messages.json +0 -1
  210. package/src/components/i18n/locales/tr/messages.json +0 -1
  211. package/src/components/i18n/locales/ug/messages.json +0 -1
  212. package/src/components/i18n/locales/uk/messages.json +0 -1
  213. package/src/components/i18n/locales/ur/messages.json +0 -1
  214. package/src/components/i18n/locales/vi/messages.json +0 -1
  215. package/src/components/i18n/locales/yi/messages.json +0 -1
  216. package/src/components/i18n/locales/zh/messages.json +0 -1
  217. package/src/components/icons/index.ts +0 -16
  218. package/src/components/modules/api/index.ts +1 -1
  219. package/src/components/modules/api/theme.ts +17 -0
  220. package/src/components/modules/index.ts +8 -6
  221. package/src/components/modules/themeManager.ts +160 -0
  222. package/src/components/modules/toolbar/blockSettings.ts +12 -0
  223. package/src/components/modules/toolbar/index.ts +27 -1
  224. package/src/components/ui/toolbox.ts +3 -1
  225. package/src/components/utils/data-model-transform.ts +149 -5
  226. package/src/components/utils/popover/popover-desktop.ts +329 -44
  227. package/src/styles/main.css +1 -1
  228. package/src/tools/toggle/index.ts +14 -0
  229. package/src/types-internal/blok-modules.d.ts +6 -4
  230. package/types/api/index.d.ts +2 -1
  231. package/types/api/theme.d.ts +29 -0
  232. package/types/configs/blok-config.d.ts +10 -20
  233. package/types/index.d.ts +8 -4
  234. package/types/utils/popover/popover.d.ts +7 -0
  235. package/src/components/block-tunes/block-tune-width.ts +0 -39
  236. package/src/components/modules/api/width.ts +0 -17
  237. package/src/components/modules/widthManager.ts +0 -69
  238. package/types/api/width.d.ts +0 -19
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "പുതിയ കോളം ചേർക്കാൻ ക്ലിക്ക് ചെയ്യുക",
59
59
  "tools.table.dragToAddRemoveColumns": "കോളങ്ങൾ ചേർക്കാനോ നീക്കാനോ വലിച്ചിടുക",
60
60
  "blockSettings.delete": "ഇല്ലാതാക്കുക",
61
- "blockSettings.toggleWidth": "വീതി മാറ്റുക",
62
61
  "a11y.dragHandle": "ബ്ലോക്ക് നീക്കാൻ വലിച്ചിടുക അല്ലെങ്കിൽ മെനുവിന് ക്ലിക്ക് ചെയ്യുക",
63
62
  "a11y.dragHandleRole": "വലിച്ചിടൽ ഹാൻഡിൽ",
64
63
  "a11y.dragStarted": "ബ്ലോക്ക് വലിച്ചിടുന്നു",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Шинэ багана нэмэхийн тулд дарна уу",
59
59
  "tools.table.dragToAddRemoveColumns": "Багана нэмэх эсвэл хасахын тулд чирнэ үү",
60
60
  "blockSettings.delete": "Устгах",
61
- "blockSettings.toggleWidth": "Өргөнийг солих",
62
61
  "a11y.dragHandle": "Блок зөөхийн тулд чирнэ үү эсвэл цэсийг нээхийн тулд дарна уу",
63
62
  "a11y.dragHandleRole": "чирэх бариул",
64
63
  "a11y.dragStarted": "Блок чирж байна",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "संकुचित शीर्षक 3",
38
38
  "tools.list.placeholder": "यादी",
39
39
  "blockSettings.delete": "हटवा",
40
- "blockSettings.toggleWidth": "रुंदी बदला",
41
40
  "a11y.dragHandle": "ब्लॉक हलवण्यासाठी ओढा किंवा मेनूसाठी क्लिक करा",
42
41
  "a11y.dragHandleRole": "हलवण्याचे नियंत्रण",
43
42
  "a11y.dragStarted": "ब्लॉक हलवला जात आहे",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Klik untuk tambah lajur baharu",
59
59
  "tools.table.dragToAddRemoveColumns": "Seret untuk tambah atau buang lajur",
60
60
  "blockSettings.delete": "Padam",
61
- "blockSettings.toggleWidth": "Tukar lebar",
62
61
  "a11y.dragHandle": "Seret untuk alih blok atau klik untuk menu",
63
62
  "a11y.dragHandleRole": "pemegang seret",
64
63
  "a11y.dragStarted": "Menyeret blok",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "ကော်လံအသစ်ထည့်ရန် နှိပ်ပါ",
59
59
  "tools.table.dragToAddRemoveColumns": "ကော်လံထည့်ရန် သို့မဟုတ် ဖယ်ရန် ဆွဲယူပါ",
60
60
  "blockSettings.delete": "ဖျက်ရန်",
61
- "blockSettings.toggleWidth": "အကျယ်ပြောင်းရန်",
62
61
  "a11y.dragHandle": "ဘလောက်ရွှေ့ရန် ဆွဲယူပါ သို့မဟုတ် မီနူးအတွက် နှိပ်ပါ",
63
62
  "a11y.dragHandleRole": "ဆွဲယူကိုင်တံ",
64
63
  "a11y.dragStarted": "ဘလောက်ကို ဆွဲယူနေသည်",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "मोड्ने शीर्षक ३",
38
38
  "tools.list.placeholder": "सूची",
39
39
  "blockSettings.delete": "मेटाउनुहोस्",
40
- "blockSettings.toggleWidth": "चौडाइ बदल्नुहोस्",
41
40
  "a11y.dragHandle": "ब्लक सार्न तान्नुहोस् वा मेनुको लागि क्लिक गर्नुहोस्",
42
41
  "a11y.dragHandleRole": "तान्ने नियन्त्रण",
43
42
  "a11y.dragStarted": "ब्लक तान्दै",
@@ -42,7 +42,6 @@
42
42
  "tools.toggle.ariaLabelCollapse": "Inklappen",
43
43
  "tools.toggle.ariaLabelExpand": "Uitklappen",
44
44
  "blockSettings.delete": "Verwijderen",
45
- "blockSettings.toggleWidth": "Breedte wisselen",
46
45
  "a11y.dragHandle": "Sleep om te verplaatsen of klik voor menu",
47
46
  "a11y.dragHandleRole": "sleepgreep",
48
47
  "a11y.dragStarted": "Blok wordt versleept",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Klikk for å legge til en ny kolonne",
59
59
  "tools.table.dragToAddRemoveColumns": "Dra for å legge til eller fjerne kolonner",
60
60
  "blockSettings.delete": "Slett",
61
- "blockSettings.toggleWidth": "Veksle bredde",
62
61
  "a11y.dragHandle": "Dra for å flytte blokk eller klikk for meny",
63
62
  "a11y.dragHandleRole": "drahåndtak",
64
63
  "a11y.dragStarted": "Drar blokk",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "ਟੌਗਲ ਸਿਰਲੇਖ 3",
38
38
  "tools.list.placeholder": "ਸੂਚੀ",
39
39
  "blockSettings.delete": "ਮਿਟਾਓ",
40
- "blockSettings.toggleWidth": "ਚੌੜਾਈ ਬਦਲੋ",
41
40
  "a11y.dragHandle": "ਬਲਾਕ ਹਿਲਾਉਣ ਲਈ ਖਿੱਚੋ ਜਾਂ ਮੀਨੂ ਲਈ ਕਲਿੱਕ ਕਰੋ",
42
41
  "a11y.dragHandleRole": "ਖਿੱਚਣ ਵਾਲਾ ਹੈਂਡਲ",
43
42
  "a11y.dragStarted": "ਬਲਾਕ ਖਿੱਚਿਆ ਜਾ ਰਿਹਾ ਹੈ",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Kliknij, aby dodać nową kolumnę",
59
59
  "tools.table.dragToAddRemoveColumns": "Przeciągnij, aby dodać lub usunąć kolumny",
60
60
  "blockSettings.delete": "Usuń",
61
- "blockSettings.toggleWidth": "Przełącz szerokość",
62
61
  "a11y.dragHandle": "Przeciągnij, aby przenieść lub kliknij, aby otworzyć menu",
63
62
  "a11y.dragHandleRole": "uchwyt przeciągania",
64
63
  "a11y.dragStarted": "Przeciąganie bloku",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "د نوي کالم اضافه کولو لپاره کلیک وکړئ",
59
59
  "tools.table.dragToAddRemoveColumns": "د کالمونو اضافه یا لرې کولو لپاره کش کړئ",
60
60
  "blockSettings.delete": "ړنګول",
61
- "blockSettings.toggleWidth": "سوروالی بدل کړئ",
62
61
  "a11y.dragHandle": "د لیږدولو لپاره کش کړئ یا د مینو لپاره کلیک وکړئ",
63
62
  "a11y.dragHandleRole": "د کشولو لاستی",
64
63
  "a11y.dragStarted": "بلاک کشول کیږي",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Clique para adicionar uma nova coluna",
59
59
  "tools.table.dragToAddRemoveColumns": "Arraste para adicionar ou remover colunas",
60
60
  "blockSettings.delete": "Excluir",
61
- "blockSettings.toggleWidth": "Alternar largura",
62
61
  "a11y.dragHandle": "Arraste para mover ou clique para abrir o menu",
63
62
  "a11y.dragHandleRole": "controle de arrastar",
64
63
  "a11y.dragStarted": "Arrastando bloco",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "Titlu reductibil 3",
38
38
  "tools.list.placeholder": "Listă",
39
39
  "blockSettings.delete": "Șterge",
40
- "blockSettings.toggleWidth": "Comută lățimea",
41
40
  "a11y.dragHandle": "Trageți pentru a muta sau clic pentru meniu",
42
41
  "a11y.dragHandleRole": "mâner de tragere",
43
42
  "a11y.dragStarted": "Mutare bloc",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Нажмите, чтобы добавить столбец",
59
59
  "tools.table.dragToAddRemoveColumns": "Тяните, чтобы добавить или удалить столбцы",
60
60
  "blockSettings.delete": "Удалить",
61
- "blockSettings.toggleWidth": "Переключить ширину",
62
61
  "a11y.dragHandle": "Перетащите или нажмите для меню",
63
62
  "a11y.dragHandleRole": "управление блоком",
64
63
  "a11y.dragStarted": "Перетаскивание блока",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "نئون ڪالم شامل ڪرڻ لاءِ ڪلڪ ڪريو",
59
59
  "tools.table.dragToAddRemoveColumns": "ڪالم شامل يا ختم ڪرڻ لاءِ ڇڪيو",
60
60
  "blockSettings.delete": "ختم ڪريو",
61
- "blockSettings.toggleWidth": "ويڪرائي تبديل ڪريو",
62
61
  "a11y.dragHandle": "بلاڪ منتقل ڪرڻ لاءِ ڇڪيو يا مينيو لاءِ ڪلڪ ڪريو",
63
62
  "a11y.dragHandleRole": "ڇڪڻ جو هينڊل",
64
63
  "a11y.dragStarted": "بلاڪ ڇڪجي رھيو آھي",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "හැකිලෙන ශීර්ෂය 3",
38
38
  "tools.list.placeholder": "ලැයිස්තුව",
39
39
  "blockSettings.delete": "මකන්න",
40
- "blockSettings.toggleWidth": "පළල මාරු කරන්න",
41
40
  "a11y.dragHandle": "කොටස ගෙනයාමට අදින්න හෝ මෙනුව සඳහා තේරන්න",
42
41
  "a11y.dragHandleRole": "ඇදීමේ හසුරුව",
43
42
  "a11y.dragStarted": "කොටස ඇදගෙන යමින්",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "Prepínací nadpis 3",
38
38
  "tools.list.placeholder": "Zoznam",
39
39
  "blockSettings.delete": "Odstrániť",
40
- "blockSettings.toggleWidth": "Prepnúť šírku",
41
40
  "a11y.dragHandle": "Potiahnutím presuniete blok alebo kliknutím otvoríte ponuku",
42
41
  "a11y.dragHandleRole": "úchyt na presun",
43
42
  "a11y.dragStarted": "Presúva sa blok",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Kliknite za dodajanje novega stolpca",
59
59
  "tools.table.dragToAddRemoveColumns": "Povlecite za dodajanje ali odstranjevanje stolpcev",
60
60
  "blockSettings.delete": "Izbriši",
61
- "blockSettings.toggleWidth": "Preklopi širino",
62
61
  "a11y.dragHandle": "Povlecite za premik bloka ali kliknite za meni",
63
62
  "a11y.dragHandleRole": "ročaj za vlečenje",
64
63
  "a11y.dragStarted": "Vlečenje bloka",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Kliko për të shtuar një kolonë të re",
59
59
  "tools.table.dragToAddRemoveColumns": "Tërhiq për të shtuar ose hequr kolona",
60
60
  "blockSettings.delete": "Fshi",
61
- "blockSettings.toggleWidth": "Ndrysho gjerësinë",
62
61
  "a11y.dragHandle": "Tërhiq për të lëvizur bllokun ose kliko për menynë",
63
62
  "a11y.dragHandleRole": "doreza e tërheqjes",
64
63
  "a11y.dragStarted": "Duke tërhequr bllokun",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Кликните за додавање нове колоне",
59
59
  "tools.table.dragToAddRemoveColumns": "Превуците за додавање или уклањање колона",
60
60
  "blockSettings.delete": "Обриши",
61
- "blockSettings.toggleWidth": "Промени ширину",
62
61
  "a11y.dragHandle": "Превуците за премештање блока или кликните за мени",
63
62
  "a11y.dragHandleRole": "ручка за превлачење",
64
63
  "a11y.dragStarted": "Превлачење блока",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Klicka för att lägga till en kolumn",
59
59
  "tools.table.dragToAddRemoveColumns": "Dra för att lägga till eller ta bort kolumner",
60
60
  "blockSettings.delete": "Ta bort",
61
- "blockSettings.toggleWidth": "Växla bredd",
62
61
  "a11y.dragHandle": "Dra för att flytta eller klicka för meny",
63
62
  "a11y.dragHandleRole": "draghandtag",
64
63
  "a11y.dragStarted": "Drar block",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Bofya ili kuongeza safu wima mpya",
59
59
  "tools.table.dragToAddRemoveColumns": "Buruta ili kuongeza au kuondoa safu wima",
60
60
  "blockSettings.delete": "Futa",
61
- "blockSettings.toggleWidth": "Badilisha upana",
62
61
  "a11y.dragHandle": "Buruta ili kusogeza kizuizi au bofya kwa menyu",
63
62
  "a11y.dragHandleRole": "kishikio cha kuburuta",
64
63
  "a11y.dragStarted": "Inaburuta kizuizi",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "புதிய நெடுவரிசை சேர்க்க கிளிக் செய்யவும்",
59
59
  "tools.table.dragToAddRemoveColumns": "நெடுவரிசைகளைச் சேர்க்க அல்லது நீக்க இழுக்கவும்",
60
60
  "blockSettings.delete": "நீக்கு",
61
- "blockSettings.toggleWidth": "அகலத்தை மாற்று",
62
61
  "a11y.dragHandle": "தொகுதியை நகர்த்த இழுக்கவும் அல்லது பட்டியலுக்கு தட்டவும்",
63
62
  "a11y.dragHandleRole": "இழுக்கும் கைப்பிடி",
64
63
  "a11y.dragStarted": "தொகுதியை இழுக்கிறது",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "మడత శీర్షిక 3",
38
38
  "tools.list.placeholder": "జాబితా",
39
39
  "blockSettings.delete": "తొలగించు",
40
- "blockSettings.toggleWidth": "వెడల్పు మార్చు",
41
40
  "a11y.dragHandle": "విభాగం తరలించడానికి లాగండి లేదా మెనూ కోసం నొక్కండి",
42
41
  "a11y.dragHandleRole": "లాగు హ్యాండిల్",
43
42
  "a11y.dragStarted": "విభాగం తరలుతోంది",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "หัวข้อพับได้ 3",
38
38
  "tools.list.placeholder": "รายการ",
39
39
  "blockSettings.delete": "ลบ",
40
- "blockSettings.toggleWidth": "สลับความกว้าง",
41
40
  "a11y.dragHandle": "ลากเพื่อย้ายบล็อก หรือคลิกเพื่อเปิดเมนู",
42
41
  "a11y.dragHandleRole": "ที่จับสำหรับลาก",
43
42
  "a11y.dragStarted": "กำลังลากบล็อก",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "Açılır başlık 3",
38
38
  "tools.list.placeholder": "Liste",
39
39
  "blockSettings.delete": "Sil",
40
- "blockSettings.toggleWidth": "Genişliği değiştir",
41
40
  "a11y.dragHandle": "Taşımak için sürükle veya menü için tıkla",
42
41
  "a11y.dragHandleRole": "sürükleme tutamacı",
43
42
  "a11y.dragStarted": "Blok sürükleniyor",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "يېڭى ئىستون قوشۇش ئۈچۈن چېكىڭ",
59
59
  "tools.table.dragToAddRemoveColumns": "ئىستون قوشۇش ياكى ئۆچۈرۈش ئۈچۈن سۆرەڭ",
60
60
  "blockSettings.delete": "ئۆچۈرۈش",
61
- "blockSettings.toggleWidth": "كەڭلىكنى ئالماشتۇرۇش",
62
61
  "a11y.dragHandle": "بۆلەكنى يۆتكەش ئۈچۈن سۆرەڭ ياكى تىزىملىك ئۈچۈن چېكىڭ",
63
62
  "a11y.dragHandleRole": "سۆرەش تۇتقۇچى",
64
63
  "a11y.dragStarted": "بۆلەك سۆرىلىۋاتىدۇ",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "Згортний заголовок 3",
38
38
  "tools.list.placeholder": "Список",
39
39
  "blockSettings.delete": "Видалити",
40
- "blockSettings.toggleWidth": "Переключити ширину",
41
40
  "a11y.dragHandle": "Перетягніть або натисніть для меню",
42
41
  "a11y.dragHandleRole": "елемент керування блоком",
43
42
  "a11y.dragStarted": "Переміщення блока",
@@ -37,7 +37,6 @@
37
37
  "tools.header.toggleHeading3": "ٹوگل عنوان 3",
38
38
  "tools.list.placeholder": "فہرست",
39
39
  "blockSettings.delete": "حذف کریں",
40
- "blockSettings.toggleWidth": "چوڑائی تبدیل کریں",
41
40
  "a11y.dragHandle": "بلاک منتقل کرنے کے لیے گھسیٹیں یا مینو کے لیے کلک کریں",
42
41
  "a11y.dragHandleRole": "گھسیٹنے کا ہینڈل",
43
42
  "a11y.dragStarted": "بلاک گھسیٹا جا رہا ہے",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "Nhấp để thêm cột mới",
59
59
  "tools.table.dragToAddRemoveColumns": "Kéo để thêm hoặc xóa cột",
60
60
  "blockSettings.delete": "Xóa",
61
- "blockSettings.toggleWidth": "Chuyển đổi độ rộng",
62
61
  "a11y.dragHandle": "Kéo để di chuyển khối hoặc nhấp để mở menu",
63
62
  "a11y.dragHandleRole": "tay nắm kéo",
64
63
  "a11y.dragStarted": "Đang kéo khối",
@@ -58,7 +58,6 @@
58
58
  "tools.table.clickToAddColumn": "קליק צו צולייגן אַ נײַע שפּאַלט",
59
59
  "tools.table.dragToAddRemoveColumns": "שלעפּ צו צולייגן אָדער אויסמעקן שפּאַלטן",
60
60
  "blockSettings.delete": "אויסמעקן",
61
- "blockSettings.toggleWidth": "בייטן ברייט",
62
61
  "a11y.dragHandle": "שלעפּ צו באַוועגן בלאָק אָדער קליק פֿאַר מעניו",
63
62
  "a11y.dragHandleRole": "שלעפּ האַנטל",
64
63
  "a11y.dragStarted": "שלעפּט בלאָק",
@@ -42,7 +42,6 @@
42
42
  "tools.toggle.ariaLabelCollapse": "折叠",
43
43
  "tools.toggle.ariaLabelExpand": "展开",
44
44
  "blockSettings.delete": "删除",
45
- "blockSettings.toggleWidth": "切换宽度",
46
45
  "a11y.dragHandle": "拖动移动或点击打开菜单",
47
46
  "a11y.dragHandleRole": "拖动控件",
48
47
  "a11y.dragStarted": "正在拖动内容块",
@@ -378,22 +378,6 @@ export const IconToggleH2 = `
378
378
  </svg>
379
379
  `;
380
380
 
381
- // Width Narrow icon (content-width block)
382
- export const IconWidthNarrow = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
383
- <rect x="3" y="3" width="14" height="14" rx="2"/>
384
- <line x1="5" y1="8" x2="15" y2="8"/>
385
- <line x1="5" y1="11" x2="15" y2="11"/>
386
- <line x1="5" y1="14" x2="11" y2="14"/>
387
- </svg>`;
388
-
389
- // Width Full icon (full-width block)
390
- export const IconWidthFull = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
391
- <rect x="1" y="3" width="18" height="14" rx="2"/>
392
- <line x1="3" y1="8" x2="17" y2="8"/>
393
- <line x1="3" y1="11" x2="17" y2="11"/>
394
- <line x1="3" y1="14" x2="17" y2="14"/>
395
- </svg>`;
396
-
397
381
  // Toggle Heading 3 icon (H3 with toggle arrow)
398
382
  export const IconToggleH3 = `
399
383
  <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -34,7 +34,7 @@ export class API extends Module {
34
34
  i18n: this.Blok.I18nAPI.methods,
35
35
  readOnly: this.Blok.ReadOnlyAPI.methods,
36
36
  ui: this.Blok.UiAPI.methods,
37
- width: this.Blok.WidthAPI.methods,
37
+ theme: this.Blok.ThemeAPI.methods,
38
38
  rectangleSelection: this.Blok.RectangleSelection,
39
39
  };
40
40
  }
@@ -0,0 +1,17 @@
1
+ import type { Theme } from '../../../../types/api';
2
+ import { Module } from '../../__module';
3
+
4
+ /**
5
+ * API module for theme mode control.
6
+ */
7
+ export class ThemeAPI extends Module {
8
+ public get methods(): Theme {
9
+ const themeManager = this.Blok.ThemeManager;
10
+
11
+ return {
12
+ get: () => themeManager.getMode(),
13
+ set: (mode) => themeManager.setMode(mode),
14
+ getResolved: () => themeManager.getResolved(),
15
+ };
16
+ }
17
+ }
@@ -16,7 +16,8 @@ import { ToolbarAPI } from './api/toolbar';
16
16
  import { ToolsAPI } from './api/tools';
17
17
  import { TooltipAPI } from './api/tooltip';
18
18
  import { UiAPI } from './api/ui';
19
- import { WidthAPI } from './api/width';
19
+
20
+ import { ThemeAPI } from './api/theme';
20
21
  import { BlockEvents } from './blockEvents';
21
22
  import { BlockManager } from './blockManager';
22
23
  import { BlockSelection } from './blockSelection';
@@ -35,7 +36,8 @@ import { Toolbar } from './toolbar/index';
35
36
  import { InlineToolbar } from './toolbar/inline';
36
37
  import { Tools } from './tools';
37
38
  import { UI } from './ui';
38
- import { WidthManager } from './widthManager';
39
+
40
+ import { ThemeManager } from './themeManager';
39
41
  import { YjsManager } from './yjs';
40
42
 
41
43
  /**
@@ -62,7 +64,7 @@ export {
62
64
  ToolbarAPI,
63
65
  TooltipAPI,
64
66
  UiAPI,
65
- WidthAPI,
67
+ ThemeAPI,
66
68
 
67
69
  // Toolbar Modules
68
70
  BlockSettings,
@@ -85,7 +87,7 @@ export {
85
87
  Saver,
86
88
  Tools,
87
89
  UI,
88
- WidthManager,
90
+ ThemeManager,
89
91
  YjsManager,
90
92
  };
91
93
 
@@ -112,7 +114,7 @@ export const Modules = {
112
114
  ToolbarAPI,
113
115
  TooltipAPI,
114
116
  UiAPI,
115
- WidthAPI,
117
+ ThemeAPI,
116
118
 
117
119
  // Toolbar Modules
118
120
  BlockSettings,
@@ -135,6 +137,6 @@ export const Modules = {
135
137
  Saver,
136
138
  Tools,
137
139
  UI,
138
- WidthManager,
140
+ ThemeManager,
139
141
  YjsManager,
140
142
  };
@@ -0,0 +1,160 @@
1
+ import type { ResolvedTheme, ThemeMode } from '../../../types/api/theme';
2
+ import { Module } from '../__module';
3
+
4
+ const DARK_MQ = '(prefers-color-scheme: dark)';
5
+ const ATTR = 'data-blok-theme';
6
+
7
+ /**
8
+ * Module-level counter of active ThemeManager instances.
9
+ * Prevents premature attribute cleanup when multiple Blok instances coexist.
10
+ */
11
+ const state = { activeInstances: 0 };
12
+
13
+ /**
14
+ * Reset the instance counter. Exported for testing only.
15
+ */
16
+ export function resetActiveInstances(): void {
17
+ state.activeInstances = 0;
18
+ }
19
+
20
+ /**
21
+ * Manages the editor color theme.
22
+ *
23
+ * Sets `data-blok-theme` on `document.documentElement` to control
24
+ * CSS custom property values for light/dark appearance.
25
+ */
26
+ export class ThemeManager extends Module {
27
+ private mode: ThemeMode = 'auto';
28
+ private resolved: ResolvedTheme = 'light';
29
+ private mediaQuery: MediaQueryList | null = null;
30
+ private readonly onMediaChange = (e: MediaQueryListEvent): void => {
31
+ const newResolved: ResolvedTheme = e.matches ? 'dark' : 'light';
32
+
33
+ if (newResolved !== this.resolved) {
34
+ this.resolved = newResolved;
35
+ this.fireCallback();
36
+ }
37
+ };
38
+
39
+ /**
40
+ * Called by Core after all modules are constructed and wired.
41
+ */
42
+ public prepare(): void {
43
+ state.activeInstances++;
44
+ this.mode = this.config.theme ?? 'auto';
45
+ this.applyAttribute();
46
+ this.resolved = this.deriveResolved();
47
+
48
+ if (this.mode === 'auto') {
49
+ this.addMediaListener();
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Returns the current theme mode.
55
+ */
56
+ public getMode(): ThemeMode {
57
+ return this.mode;
58
+ }
59
+
60
+ /**
61
+ * Returns the resolved theme, evaluating OS preference if in auto mode.
62
+ */
63
+ public getResolved(): ResolvedTheme {
64
+ return this.resolved;
65
+ }
66
+
67
+ /**
68
+ * Sets the theme mode at runtime.
69
+ */
70
+ public setMode(mode: ThemeMode): void {
71
+ const prevResolved = this.resolved;
72
+
73
+ if (this.mode === 'auto') {
74
+ this.removeMediaListener();
75
+ }
76
+
77
+ this.mode = mode;
78
+ this.applyAttribute();
79
+ this.resolved = this.deriveResolved();
80
+
81
+ if (this.mode === 'auto') {
82
+ this.addMediaListener();
83
+ }
84
+
85
+ if (this.resolved !== prevResolved) {
86
+ this.fireCallback();
87
+ }
88
+ }
89
+
90
+ /**
91
+ * Cleanup: remove listener and conditionally remove attribute.
92
+ */
93
+ public destroy(): void {
94
+ this.removeMediaListener();
95
+ state.activeInstances--;
96
+
97
+ if (state.activeInstances <= 0) {
98
+ state.activeInstances = 0;
99
+ this.removeAttribute();
100
+ }
101
+ }
102
+
103
+ // ─── Private ───────────────────────────────────────────────────────────────
104
+
105
+ private applyAttribute(): void {
106
+ if (typeof document === 'undefined') {
107
+ return;
108
+ }
109
+
110
+ if (this.mode === 'auto') {
111
+ this.removeAttribute();
112
+ } else {
113
+ document.documentElement.setAttribute(ATTR, this.mode);
114
+ }
115
+ }
116
+
117
+ private removeAttribute(): void {
118
+ if (typeof document === 'undefined') {
119
+ return;
120
+ }
121
+
122
+ document.documentElement.removeAttribute(ATTR);
123
+ }
124
+
125
+ private deriveResolved(): ResolvedTheme {
126
+ if (this.mode !== 'auto') {
127
+ return this.mode;
128
+ }
129
+
130
+ if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {
131
+ return 'light';
132
+ }
133
+
134
+ return window.matchMedia(DARK_MQ).matches ? 'dark' : 'light';
135
+ }
136
+
137
+ private addMediaListener(): void {
138
+ if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {
139
+ return;
140
+ }
141
+
142
+ this.mediaQuery = window.matchMedia(DARK_MQ);
143
+ this.mediaQuery.addEventListener('change', this.onMediaChange);
144
+ }
145
+
146
+ private removeMediaListener(): void {
147
+ if (this.mediaQuery) {
148
+ this.mediaQuery.removeEventListener('change', this.onMediaChange);
149
+ this.mediaQuery = null;
150
+ }
151
+ }
152
+
153
+ private fireCallback(): void {
154
+ const callback = this.config.onThemeChange;
155
+
156
+ if (typeof callback === 'function') {
157
+ callback(this.resolved);
158
+ }
159
+ }
160
+ }
@@ -197,6 +197,7 @@ export class BlockSettings extends Module<BlockSettingsNodes> {
197
197
  search: this.Blok.I18n.t('popover.search'),
198
198
  },
199
199
  autoFocusFirstItem: false,
200
+ minWidth: '250px',
200
201
  };
201
202
 
202
203
  if (PopoverClass === PopoverDesktop) {
@@ -333,10 +334,20 @@ export class BlockSettings extends Module<BlockSettingsNodes> {
333
334
  }
334
335
 
335
336
  tool.toolbox.forEach((toolboxItem) => {
337
+ // Resolve English title for multilingual search
338
+ const titleKey = toolboxItem.titleKey;
339
+ const resolvedTitleKey = titleKey?.includes('.') ? titleKey : `toolNames.${titleKey}`;
340
+ const englishTitleKey = titleKey ? resolvedTitleKey : undefined;
341
+ const englishTitle = englishTitleKey
342
+ ? this.Blok.I18n.getEnglishTranslation(englishTitleKey)
343
+ : toolboxItem.title;
344
+
336
345
  result.push({
337
346
  icon: toolboxItem.icon,
338
347
  title: translateToolTitle(this.Blok.I18n, toolboxItem, tool.name),
339
348
  name: toolboxItem.name ?? tool.name,
349
+ englishTitle,
350
+ searchTerms: toolboxItem.searchTerms,
340
351
  closeOnActivate: true,
341
352
  onActivate: async () => {
342
353
  const { Caret, Toolbar } = this.Blok;
@@ -385,6 +396,7 @@ export class BlockSettings extends Module<BlockSettingsNodes> {
385
396
  title: this.Blok.I18n.t('popover.convertTo'),
386
397
  children: {
387
398
  items: convertToItems,
399
+ width: '200px',
388
400
  },
389
401
  });
390
402
  items.push({