@notectl/core 1.7.3 → 2.0.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 (1280) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -31
  3. package/custom-elements.json +350 -6
  4. package/dist/chunks/AttrRegistry-B2AGfTE0.mjs +2 -0
  5. package/dist/chunks/AttrRegistry-B2AGfTE0.mjs.map +1 -0
  6. package/dist/chunks/AttributedMarkCommands-BB7lzFct.mjs +2 -0
  7. package/dist/chunks/{AttributedMarkCommands-BtLea72z.mjs.map → AttributedMarkCommands-BB7lzFct.mjs.map} +1 -1
  8. package/dist/chunks/BlockTypePickerRegistry-DcSE6IXB.mjs +2 -0
  9. package/dist/chunks/BlockTypePickerRegistry-DcSE6IXB.mjs.map +1 -0
  10. package/dist/chunks/ColorGrid-CpkbKfXg.mjs +2 -0
  11. package/dist/chunks/ColorGrid-CpkbKfXg.mjs.map +1 -0
  12. package/dist/chunks/ColorPickerPopup-DRzFvt7o.mjs +2 -0
  13. package/dist/chunks/ColorPickerPopup-DRzFvt7o.mjs.map +1 -0
  14. package/dist/chunks/ColorValidation-DCSKq9B2.mjs +2 -0
  15. package/dist/chunks/{ColorValidation-CV4f1wu6.mjs.map → ColorValidation-DCSKq9B2.mjs.map} +1 -1
  16. package/dist/chunks/Commands-P9wS8qtN.mjs +2 -0
  17. package/dist/chunks/Commands-P9wS8qtN.mjs.map +1 -0
  18. package/dist/chunks/Decoration-D49mFXrH.mjs +2 -0
  19. package/dist/chunks/Decoration-D49mFXrH.mjs.map +1 -0
  20. package/dist/chunks/Document-BFYAonMF.mjs +2 -0
  21. package/dist/chunks/{Document-Brtw2jL1.mjs.map → Document-BFYAonMF.mjs.map} +1 -1
  22. package/dist/chunks/DocumentParser-DFcvVMGY.mjs +2 -0
  23. package/dist/chunks/DocumentParser-DFcvVMGY.mjs.map +1 -0
  24. package/dist/chunks/DomUtils-Cdz1eDKM.mjs +2 -0
  25. package/dist/chunks/DomUtils-Cdz1eDKM.mjs.map +1 -0
  26. package/dist/chunks/HTMLUtils-CCvQ5f83.mjs +2 -0
  27. package/dist/chunks/HTMLUtils-CCvQ5f83.mjs.map +1 -0
  28. package/dist/chunks/HeadingPlugin-DYy3IoT_.mjs +2 -0
  29. package/dist/chunks/HeadingPlugin-DYy3IoT_.mjs.map +1 -0
  30. package/dist/chunks/KeyboardNav-DsYhKKuV.mjs +2 -0
  31. package/dist/chunks/KeyboardNav-DsYhKKuV.mjs.map +1 -0
  32. package/dist/chunks/LocaleService-B6Z-wyAF.mjs +2 -0
  33. package/dist/chunks/LocaleService-B6Z-wyAF.mjs.map +1 -0
  34. package/dist/chunks/MarkCommands-B_erV7zz.mjs +2 -0
  35. package/dist/chunks/{MarkCommands-6RUJ4L3r.mjs.map → MarkCommands-B_erV7zz.mjs.map} +1 -1
  36. package/dist/chunks/NavigationQueries-ogQuObz7.mjs +2 -0
  37. package/dist/chunks/NavigationQueries-ogQuObz7.mjs.map +1 -0
  38. package/dist/chunks/NotectlEditor-4NFnXLyD.mjs +2 -0
  39. package/dist/chunks/NotectlEditor-4NFnXLyD.mjs.map +1 -0
  40. package/dist/chunks/Platform-CU6itXZo.mjs +2 -0
  41. package/dist/chunks/Platform-CU6itXZo.mjs.map +1 -0
  42. package/dist/chunks/Plugin-OzM8Oxm_.mjs +2 -0
  43. package/dist/chunks/Plugin-OzM8Oxm_.mjs.map +1 -0
  44. package/dist/chunks/PluginHelpers-DjZt0pQi.mjs +2 -0
  45. package/dist/chunks/PluginHelpers-DjZt0pQi.mjs.map +1 -0
  46. package/dist/chunks/PopupManager-BM8IT6M7.mjs +2 -0
  47. package/dist/chunks/PopupManager-BM8IT6M7.mjs.map +1 -0
  48. package/dist/chunks/PopupPositioning-DtvqMSop.mjs +2 -0
  49. package/dist/chunks/PopupPositioning-DtvqMSop.mjs.map +1 -0
  50. package/dist/chunks/PrintTypes-ehbL7ipA.mjs +2 -0
  51. package/dist/chunks/PrintTypes-ehbL7ipA.mjs.map +1 -0
  52. package/dist/chunks/RangeIterator-CNI6smOg.mjs +2 -0
  53. package/dist/chunks/{RangeIterator-Bh4Vl_6D.mjs.map → RangeIterator-CNI6smOg.mjs.map} +1 -1
  54. package/dist/chunks/Selection-6-W6Flxc.mjs +2 -0
  55. package/dist/chunks/{Selection-BRTab5hO.mjs.map → Selection-6-W6Flxc.mjs.map} +1 -1
  56. package/dist/chunks/SelectionTransactions-q71GEzgE.mjs +2 -0
  57. package/dist/chunks/SelectionTransactions-q71GEzgE.mjs.map +1 -0
  58. package/dist/chunks/ShortcutFormatting-BLKS0Gys.mjs +2 -0
  59. package/dist/chunks/ShortcutFormatting-BLKS0Gys.mjs.map +1 -0
  60. package/dist/chunks/StyleRuntime-BmsLoEa8.mjs +2 -0
  61. package/dist/chunks/{StyleRuntime-CP4NCwKT.mjs.map → StyleRuntime-BmsLoEa8.mjs.map} +1 -1
  62. package/dist/chunks/TextDirectionLocale-DB_aqrMg.mjs +2 -0
  63. package/dist/chunks/TextDirectionLocale-DB_aqrMg.mjs.map +1 -0
  64. package/dist/chunks/TypeBrands-Bp_Z_o5Y.mjs +2 -0
  65. package/dist/chunks/{TypeBrands-C09nE2qO.mjs.map → TypeBrands-Bp_Z_o5Y.mjs.map} +1 -1
  66. package/dist/chunks/ar-B93SPJT7.mjs +2 -0
  67. package/dist/chunks/ar-B93SPJT7.mjs.map +1 -0
  68. package/dist/chunks/ar-BAmGa08u.mjs +2 -0
  69. package/dist/chunks/ar-BAmGa08u.mjs.map +1 -0
  70. package/dist/chunks/ar-BYNFEVLc.mjs +2 -0
  71. package/dist/chunks/ar-BYNFEVLc.mjs.map +1 -0
  72. package/dist/chunks/ar-Bnc7y8BP.mjs +2 -0
  73. package/dist/chunks/ar-Bnc7y8BP.mjs.map +1 -0
  74. package/dist/chunks/ar-Bp3rDZky.mjs +2 -0
  75. package/dist/chunks/ar-Bp3rDZky.mjs.map +1 -0
  76. package/dist/chunks/ar-BtOQ7lro.mjs +2 -0
  77. package/dist/chunks/ar-BtOQ7lro.mjs.map +1 -0
  78. package/dist/chunks/ar-C5JEHhw9.mjs +2 -0
  79. package/dist/chunks/ar-C5JEHhw9.mjs.map +1 -0
  80. package/dist/chunks/ar-CL3QL0tw.mjs +2 -0
  81. package/dist/chunks/ar-CL3QL0tw.mjs.map +1 -0
  82. package/dist/chunks/ar-CYtG-XlN.mjs +2 -0
  83. package/dist/chunks/ar-CYtG-XlN.mjs.map +1 -0
  84. package/dist/chunks/ar-CzVj8p__.mjs +2 -0
  85. package/dist/chunks/ar-CzVj8p__.mjs.map +1 -0
  86. package/dist/chunks/ar-D7PS3e2g.mjs +2 -0
  87. package/dist/chunks/ar-D7PS3e2g.mjs.map +1 -0
  88. package/dist/chunks/ar-D8adM2Uy.mjs +2 -0
  89. package/dist/chunks/ar-D8adM2Uy.mjs.map +1 -0
  90. package/dist/chunks/ar-D9jyShaB.mjs +2 -0
  91. package/dist/chunks/ar-D9jyShaB.mjs.map +1 -0
  92. package/dist/chunks/ar-DR6OA3ZO.mjs +2 -0
  93. package/dist/chunks/ar-DR6OA3ZO.mjs.map +1 -0
  94. package/dist/chunks/ar-Deibepjm.mjs +2 -0
  95. package/dist/chunks/ar-Deibepjm.mjs.map +1 -0
  96. package/dist/chunks/ar-Dlb5riUN.mjs +2 -0
  97. package/dist/chunks/ar-Dlb5riUN.mjs.map +1 -0
  98. package/dist/chunks/ar-DmmxE2W7.mjs +2 -0
  99. package/dist/chunks/ar-DmmxE2W7.mjs.map +1 -0
  100. package/dist/chunks/ar-Ds6Z2Gzf.mjs +2 -0
  101. package/dist/chunks/ar-Ds6Z2Gzf.mjs.map +1 -0
  102. package/dist/chunks/ar-DtIHQ8nU.mjs +2 -0
  103. package/dist/chunks/ar-DtIHQ8nU.mjs.map +1 -0
  104. package/dist/chunks/ar-J8B-on-0.mjs +2 -0
  105. package/dist/chunks/ar-J8B-on-0.mjs.map +1 -0
  106. package/dist/chunks/ar-iU02mRe5.mjs +2 -0
  107. package/dist/chunks/ar-iU02mRe5.mjs.map +1 -0
  108. package/dist/chunks/ar-mSCYQYnL.mjs +2 -0
  109. package/dist/chunks/ar-mSCYQYnL.mjs.map +1 -0
  110. package/dist/chunks/color-picker-Byjl_xr9.mjs +2 -0
  111. package/dist/chunks/color-picker-Byjl_xr9.mjs.map +1 -0
  112. package/dist/chunks/de-8aCC5jBM.mjs +2 -0
  113. package/dist/chunks/de-8aCC5jBM.mjs.map +1 -0
  114. package/dist/chunks/de-B4y4ndUw.mjs +2 -0
  115. package/dist/chunks/de-B4y4ndUw.mjs.map +1 -0
  116. package/dist/chunks/de-B5fcZ0FQ.mjs +2 -0
  117. package/dist/chunks/de-B5fcZ0FQ.mjs.map +1 -0
  118. package/dist/chunks/de-BT9VmwoJ.mjs +2 -0
  119. package/dist/chunks/de-BT9VmwoJ.mjs.map +1 -0
  120. package/dist/chunks/de-BZWSyJTG.mjs +2 -0
  121. package/dist/chunks/de-BZWSyJTG.mjs.map +1 -0
  122. package/dist/chunks/de-CFD_Wgik.mjs +2 -0
  123. package/dist/chunks/de-CFD_Wgik.mjs.map +1 -0
  124. package/dist/chunks/de-CLYtb6kD.mjs +2 -0
  125. package/dist/chunks/de-CLYtb6kD.mjs.map +1 -0
  126. package/dist/chunks/de-CP5v-98M.mjs +2 -0
  127. package/dist/chunks/de-CP5v-98M.mjs.map +1 -0
  128. package/dist/chunks/de-CYJ6uWno.mjs +2 -0
  129. package/dist/chunks/de-CYJ6uWno.mjs.map +1 -0
  130. package/dist/chunks/de-ChcKkF7A.mjs +2 -0
  131. package/dist/chunks/de-ChcKkF7A.mjs.map +1 -0
  132. package/dist/chunks/de-CicoU066.mjs +2 -0
  133. package/dist/chunks/de-CicoU066.mjs.map +1 -0
  134. package/dist/chunks/de-CjLAdBt2.mjs +2 -0
  135. package/dist/chunks/de-CjLAdBt2.mjs.map +1 -0
  136. package/dist/chunks/de-CtFvAXwF.mjs +2 -0
  137. package/dist/chunks/de-CtFvAXwF.mjs.map +1 -0
  138. package/dist/chunks/de-D1OAXtxJ.mjs +2 -0
  139. package/dist/chunks/de-D1OAXtxJ.mjs.map +1 -0
  140. package/dist/chunks/de-DBbzCQrm.mjs +2 -0
  141. package/dist/chunks/de-DBbzCQrm.mjs.map +1 -0
  142. package/dist/chunks/de-DOLwx_M7.mjs +2 -0
  143. package/dist/chunks/de-DOLwx_M7.mjs.map +1 -0
  144. package/dist/chunks/de-De2miMxo.mjs +2 -0
  145. package/dist/chunks/de-De2miMxo.mjs.map +1 -0
  146. package/dist/chunks/de-OTfhhinm.mjs +2 -0
  147. package/dist/chunks/de-OTfhhinm.mjs.map +1 -0
  148. package/dist/chunks/de-PZ9-LlBp.mjs +2 -0
  149. package/dist/chunks/de-PZ9-LlBp.mjs.map +1 -0
  150. package/dist/chunks/de-UREymH-5.mjs +2 -0
  151. package/dist/chunks/de-UREymH-5.mjs.map +1 -0
  152. package/dist/chunks/de-chYdoK9q.mjs +2 -0
  153. package/dist/chunks/de-chYdoK9q.mjs.map +1 -0
  154. package/dist/chunks/de-xJh5C_pk.mjs +2 -0
  155. package/dist/chunks/de-xJh5C_pk.mjs.map +1 -0
  156. package/dist/chunks/es-B9UhsaEI.mjs +2 -0
  157. package/dist/chunks/es-B9UhsaEI.mjs.map +1 -0
  158. package/dist/chunks/es-BHGwPgrP.mjs +2 -0
  159. package/dist/chunks/es-BHGwPgrP.mjs.map +1 -0
  160. package/dist/chunks/es-BbGOZGS_.mjs +2 -0
  161. package/dist/chunks/es-BbGOZGS_.mjs.map +1 -0
  162. package/dist/chunks/es-BjPsub0k.mjs +2 -0
  163. package/dist/chunks/es-BjPsub0k.mjs.map +1 -0
  164. package/dist/chunks/es-Bk0bRDFE.mjs +2 -0
  165. package/dist/chunks/es-Bk0bRDFE.mjs.map +1 -0
  166. package/dist/chunks/es-BkS6DsrM.mjs +2 -0
  167. package/dist/chunks/es-BkS6DsrM.mjs.map +1 -0
  168. package/dist/chunks/es-BzEpr4Bk.mjs +2 -0
  169. package/dist/chunks/es-BzEpr4Bk.mjs.map +1 -0
  170. package/dist/chunks/es-C2lnWyA0.mjs +2 -0
  171. package/dist/chunks/es-C2lnWyA0.mjs.map +1 -0
  172. package/dist/chunks/es-C7e35Muh.mjs +2 -0
  173. package/dist/chunks/es-C7e35Muh.mjs.map +1 -0
  174. package/dist/chunks/es-CBk43isB.mjs +2 -0
  175. package/dist/chunks/es-CBk43isB.mjs.map +1 -0
  176. package/dist/chunks/es-CE8t9fuM.mjs +2 -0
  177. package/dist/chunks/es-CE8t9fuM.mjs.map +1 -0
  178. package/dist/chunks/es-CFjzqIbS.mjs +2 -0
  179. package/dist/chunks/es-CFjzqIbS.mjs.map +1 -0
  180. package/dist/chunks/es-Ce-AEYxc.mjs +2 -0
  181. package/dist/chunks/es-Ce-AEYxc.mjs.map +1 -0
  182. package/dist/chunks/es-Co4AJr8Y.mjs +2 -0
  183. package/dist/chunks/es-Co4AJr8Y.mjs.map +1 -0
  184. package/dist/chunks/es-Cu5_OA4X.mjs +2 -0
  185. package/dist/chunks/es-Cu5_OA4X.mjs.map +1 -0
  186. package/dist/chunks/es-Cud6JXHf.mjs +2 -0
  187. package/dist/chunks/es-Cud6JXHf.mjs.map +1 -0
  188. package/dist/chunks/es-D-II7LZC.mjs +2 -0
  189. package/dist/chunks/es-D-II7LZC.mjs.map +1 -0
  190. package/dist/chunks/es-DBBSeOaD.mjs +2 -0
  191. package/dist/chunks/es-DBBSeOaD.mjs.map +1 -0
  192. package/dist/chunks/es-DCwjeUUu.mjs +2 -0
  193. package/dist/chunks/es-DCwjeUUu.mjs.map +1 -0
  194. package/dist/chunks/es-DvgH3-WZ.mjs +2 -0
  195. package/dist/chunks/es-DvgH3-WZ.mjs.map +1 -0
  196. package/dist/chunks/es-MgguVgIs.mjs +2 -0
  197. package/dist/chunks/es-MgguVgIs.mjs.map +1 -0
  198. package/dist/chunks/es-yXjjcxgb.mjs +2 -0
  199. package/dist/chunks/es-yXjjcxgb.mjs.map +1 -0
  200. package/dist/chunks/fr-B-_yKIAY.mjs +2 -0
  201. package/dist/chunks/fr-B-_yKIAY.mjs.map +1 -0
  202. package/dist/chunks/fr-BGyF2ym0.mjs +2 -0
  203. package/dist/chunks/fr-BGyF2ym0.mjs.map +1 -0
  204. package/dist/chunks/fr-BoRJ3B2-.mjs +2 -0
  205. package/dist/chunks/fr-BoRJ3B2-.mjs.map +1 -0
  206. package/dist/chunks/fr-BrKk4SPg.mjs +2 -0
  207. package/dist/chunks/fr-BrKk4SPg.mjs.map +1 -0
  208. package/dist/chunks/fr-C-y09LKg.mjs +2 -0
  209. package/dist/chunks/fr-C-y09LKg.mjs.map +1 -0
  210. package/dist/chunks/fr-C1W7jyd6.mjs +2 -0
  211. package/dist/chunks/fr-C1W7jyd6.mjs.map +1 -0
  212. package/dist/chunks/fr-C8CtmWBj.mjs +2 -0
  213. package/dist/chunks/fr-C8CtmWBj.mjs.map +1 -0
  214. package/dist/chunks/fr-C9oiPW0k.mjs +2 -0
  215. package/dist/chunks/fr-C9oiPW0k.mjs.map +1 -0
  216. package/dist/chunks/fr-CEkk4UyZ.mjs +2 -0
  217. package/dist/chunks/fr-CEkk4UyZ.mjs.map +1 -0
  218. package/dist/chunks/fr-Ccaetiwi.mjs +2 -0
  219. package/dist/chunks/fr-Ccaetiwi.mjs.map +1 -0
  220. package/dist/chunks/fr-Ccku5KzA.mjs +2 -0
  221. package/dist/chunks/fr-Ccku5KzA.mjs.map +1 -0
  222. package/dist/chunks/fr-CfUg1FxU.mjs +2 -0
  223. package/dist/chunks/fr-CfUg1FxU.mjs.map +1 -0
  224. package/dist/chunks/fr-DDkBcjmO.mjs +2 -0
  225. package/dist/chunks/fr-DDkBcjmO.mjs.map +1 -0
  226. package/dist/chunks/fr-DNwLChcm.mjs +2 -0
  227. package/dist/chunks/fr-DNwLChcm.mjs.map +1 -0
  228. package/dist/chunks/fr-DvneSjCf.mjs +2 -0
  229. package/dist/chunks/fr-DvneSjCf.mjs.map +1 -0
  230. package/dist/chunks/fr-Dx4Qqimj.mjs +2 -0
  231. package/dist/chunks/fr-Dx4Qqimj.mjs.map +1 -0
  232. package/dist/chunks/fr-RHXmueoO.mjs +2 -0
  233. package/dist/chunks/fr-RHXmueoO.mjs.map +1 -0
  234. package/dist/chunks/fr-Wiobfk5s.mjs +2 -0
  235. package/dist/chunks/fr-Wiobfk5s.mjs.map +1 -0
  236. package/dist/chunks/fr-YMiDtWuG.mjs +2 -0
  237. package/dist/chunks/fr-YMiDtWuG.mjs.map +1 -0
  238. package/dist/chunks/fr-_Oxf0k66.mjs +2 -0
  239. package/dist/chunks/fr-_Oxf0k66.mjs.map +1 -0
  240. package/dist/chunks/fr-gurfH-7T.mjs +2 -0
  241. package/dist/chunks/fr-gurfH-7T.mjs.map +1 -0
  242. package/dist/chunks/fr-zP7EjxDL.mjs +2 -0
  243. package/dist/chunks/fr-zP7EjxDL.mjs.map +1 -0
  244. package/dist/chunks/hi-B2W8pFqK.mjs +2 -0
  245. package/dist/chunks/hi-B2W8pFqK.mjs.map +1 -0
  246. package/dist/chunks/hi-B2m69ZCq.mjs +2 -0
  247. package/dist/chunks/hi-B2m69ZCq.mjs.map +1 -0
  248. package/dist/chunks/hi-BMIt3y_-.mjs +2 -0
  249. package/dist/chunks/hi-BMIt3y_-.mjs.map +1 -0
  250. package/dist/chunks/hi-BmkfaZpg.mjs +2 -0
  251. package/dist/chunks/hi-BmkfaZpg.mjs.map +1 -0
  252. package/dist/chunks/hi-C-l_R2SO.mjs +2 -0
  253. package/dist/chunks/hi-C-l_R2SO.mjs.map +1 -0
  254. package/dist/chunks/hi-C1LhM-oY.mjs +2 -0
  255. package/dist/chunks/hi-C1LhM-oY.mjs.map +1 -0
  256. package/dist/chunks/hi-CGEbGI1l.mjs +2 -0
  257. package/dist/chunks/hi-CGEbGI1l.mjs.map +1 -0
  258. package/dist/chunks/hi-CPuhj7IA.mjs +2 -0
  259. package/dist/chunks/hi-CPuhj7IA.mjs.map +1 -0
  260. package/dist/chunks/hi-CT5WERqi.mjs +2 -0
  261. package/dist/chunks/hi-CT5WERqi.mjs.map +1 -0
  262. package/dist/chunks/hi-CbLPPQ0b.mjs +2 -0
  263. package/dist/chunks/hi-CbLPPQ0b.mjs.map +1 -0
  264. package/dist/chunks/hi-ClvEtEKe.mjs +2 -0
  265. package/dist/chunks/hi-ClvEtEKe.mjs.map +1 -0
  266. package/dist/chunks/hi-CpBWHmYH.mjs +2 -0
  267. package/dist/chunks/hi-CpBWHmYH.mjs.map +1 -0
  268. package/dist/chunks/hi-DAfl8nU_.mjs +2 -0
  269. package/dist/chunks/hi-DAfl8nU_.mjs.map +1 -0
  270. package/dist/chunks/hi-DVof3w0y.mjs +2 -0
  271. package/dist/chunks/hi-DVof3w0y.mjs.map +1 -0
  272. package/dist/chunks/hi-DtlvSQkD.mjs +2 -0
  273. package/dist/chunks/hi-DtlvSQkD.mjs.map +1 -0
  274. package/dist/chunks/hi-FH3CAJuR.mjs +2 -0
  275. package/dist/chunks/hi-FH3CAJuR.mjs.map +1 -0
  276. package/dist/chunks/hi-Ga9h9a_1.mjs +2 -0
  277. package/dist/chunks/hi-Ga9h9a_1.mjs.map +1 -0
  278. package/dist/chunks/hi-Zc17M1T-.mjs +2 -0
  279. package/dist/chunks/hi-Zc17M1T-.mjs.map +1 -0
  280. package/dist/chunks/hi-g7i0bmig.mjs +2 -0
  281. package/dist/chunks/hi-g7i0bmig.mjs.map +1 -0
  282. package/dist/chunks/hi-js2P6byR.mjs +2 -0
  283. package/dist/chunks/hi-js2P6byR.mjs.map +1 -0
  284. package/dist/chunks/hi-ntUsOspQ.mjs +2 -0
  285. package/dist/chunks/hi-ntUsOspQ.mjs.map +1 -0
  286. package/dist/chunks/hi-yxAcR3w6.mjs +2 -0
  287. package/dist/chunks/hi-yxAcR3w6.mjs.map +1 -0
  288. package/dist/chunks/index-C8xtb3SM.mjs +2 -0
  289. package/dist/chunks/index-C8xtb3SM.mjs.map +1 -0
  290. package/dist/chunks/index-DAoSt12h.mjs +2 -0
  291. package/dist/chunks/index-DAoSt12h.mjs.map +1 -0
  292. package/dist/chunks/pt--IiroJQw.mjs +2 -0
  293. package/dist/chunks/pt--IiroJQw.mjs.map +1 -0
  294. package/dist/chunks/pt-BF72W8M5.mjs +2 -0
  295. package/dist/chunks/pt-BF72W8M5.mjs.map +1 -0
  296. package/dist/chunks/pt-BX_t4luI.mjs +2 -0
  297. package/dist/chunks/pt-BX_t4luI.mjs.map +1 -0
  298. package/dist/chunks/pt-B_XJ2s9X.mjs +2 -0
  299. package/dist/chunks/pt-B_XJ2s9X.mjs.map +1 -0
  300. package/dist/chunks/pt-C-Vp7Rxj.mjs +2 -0
  301. package/dist/chunks/pt-C-Vp7Rxj.mjs.map +1 -0
  302. package/dist/chunks/pt-CD2aCZXf.mjs +2 -0
  303. package/dist/chunks/pt-CD2aCZXf.mjs.map +1 -0
  304. package/dist/chunks/pt-CFjzqIbS.mjs +2 -0
  305. package/dist/chunks/pt-CFjzqIbS.mjs.map +1 -0
  306. package/dist/chunks/pt-CHjmBegF.mjs +2 -0
  307. package/dist/chunks/pt-CHjmBegF.mjs.map +1 -0
  308. package/dist/chunks/pt-CQRzEocL.mjs +2 -0
  309. package/dist/chunks/pt-CQRzEocL.mjs.map +1 -0
  310. package/dist/chunks/pt-Cem2WxUk.mjs +2 -0
  311. package/dist/chunks/pt-Cem2WxUk.mjs.map +1 -0
  312. package/dist/chunks/pt-D6kdF3fH.mjs +2 -0
  313. package/dist/chunks/pt-D6kdF3fH.mjs.map +1 -0
  314. package/dist/chunks/pt-DJfJVeY8.mjs +2 -0
  315. package/dist/chunks/pt-DJfJVeY8.mjs.map +1 -0
  316. package/dist/chunks/pt-DfB-IaYi.mjs +2 -0
  317. package/dist/chunks/pt-DfB-IaYi.mjs.map +1 -0
  318. package/dist/chunks/pt-DlNdH9pu.mjs +2 -0
  319. package/dist/chunks/pt-DlNdH9pu.mjs.map +1 -0
  320. package/dist/chunks/pt-DrJ0-8Yo.mjs +2 -0
  321. package/dist/chunks/pt-DrJ0-8Yo.mjs.map +1 -0
  322. package/dist/chunks/pt-DsBJpgpe.mjs +2 -0
  323. package/dist/chunks/pt-DsBJpgpe.mjs.map +1 -0
  324. package/dist/chunks/pt-DwdSYJzC.mjs +2 -0
  325. package/dist/chunks/pt-DwdSYJzC.mjs.map +1 -0
  326. package/dist/chunks/pt-Dx9UkZ3j.mjs +2 -0
  327. package/dist/chunks/pt-Dx9UkZ3j.mjs.map +1 -0
  328. package/dist/chunks/pt-TuA3_GDM.mjs +2 -0
  329. package/dist/chunks/pt-TuA3_GDM.mjs.map +1 -0
  330. package/dist/chunks/pt-cN6r-f7f.mjs +2 -0
  331. package/dist/chunks/pt-cN6r-f7f.mjs.map +1 -0
  332. package/dist/chunks/pt-uNGpVM3D.mjs +2 -0
  333. package/dist/chunks/pt-uNGpVM3D.mjs.map +1 -0
  334. package/dist/chunks/pt-v1E9u-Jx.mjs +2 -0
  335. package/dist/chunks/pt-v1E9u-Jx.mjs.map +1 -0
  336. package/dist/chunks/ru-0h51zrqE.mjs +2 -0
  337. package/dist/chunks/ru-0h51zrqE.mjs.map +1 -0
  338. package/dist/chunks/ru-4S8w6UN_.mjs +2 -0
  339. package/dist/chunks/ru-4S8w6UN_.mjs.map +1 -0
  340. package/dist/chunks/ru-B0cRw90L.mjs +2 -0
  341. package/dist/chunks/ru-B0cRw90L.mjs.map +1 -0
  342. package/dist/chunks/ru-B3O7WXNM.mjs +2 -0
  343. package/dist/chunks/ru-B3O7WXNM.mjs.map +1 -0
  344. package/dist/chunks/ru-B6zVAzvI.mjs +2 -0
  345. package/dist/chunks/ru-B6zVAzvI.mjs.map +1 -0
  346. package/dist/chunks/ru-B8teJin_.mjs +2 -0
  347. package/dist/chunks/ru-B8teJin_.mjs.map +1 -0
  348. package/dist/chunks/ru-BCriPw-8.mjs +2 -0
  349. package/dist/chunks/ru-BCriPw-8.mjs.map +1 -0
  350. package/dist/chunks/ru-BNOU16E5.mjs +2 -0
  351. package/dist/chunks/ru-BNOU16E5.mjs.map +1 -0
  352. package/dist/chunks/ru-BO6BIS5W.mjs +2 -0
  353. package/dist/chunks/ru-BO6BIS5W.mjs.map +1 -0
  354. package/dist/chunks/ru-Bdy1lLuc.mjs +2 -0
  355. package/dist/chunks/ru-Bdy1lLuc.mjs.map +1 -0
  356. package/dist/chunks/ru-BgBctNVm.mjs +2 -0
  357. package/dist/chunks/ru-BgBctNVm.mjs.map +1 -0
  358. package/dist/chunks/ru-CNLx7T3O.mjs +2 -0
  359. package/dist/chunks/ru-CNLx7T3O.mjs.map +1 -0
  360. package/dist/chunks/ru-CVSCT776.mjs +2 -0
  361. package/dist/chunks/ru-CVSCT776.mjs.map +1 -0
  362. package/dist/chunks/ru-CZvkdGnf.mjs +2 -0
  363. package/dist/chunks/ru-CZvkdGnf.mjs.map +1 -0
  364. package/dist/chunks/ru-CegMPuML.mjs +2 -0
  365. package/dist/chunks/ru-CegMPuML.mjs.map +1 -0
  366. package/dist/chunks/ru-CiLrD2Nz.mjs +2 -0
  367. package/dist/chunks/ru-CiLrD2Nz.mjs.map +1 -0
  368. package/dist/chunks/ru-ClEM6OKY.mjs +2 -0
  369. package/dist/chunks/ru-ClEM6OKY.mjs.map +1 -0
  370. package/dist/chunks/ru-CrbxCeQf.mjs +2 -0
  371. package/dist/chunks/ru-CrbxCeQf.mjs.map +1 -0
  372. package/dist/chunks/ru-D3j2x2xu.mjs +2 -0
  373. package/dist/chunks/ru-D3j2x2xu.mjs.map +1 -0
  374. package/dist/chunks/ru-DdHqb4Mh.mjs +2 -0
  375. package/dist/chunks/ru-DdHqb4Mh.mjs.map +1 -0
  376. package/dist/chunks/ru-DjgNdOdJ.mjs +2 -0
  377. package/dist/chunks/ru-DjgNdOdJ.mjs.map +1 -0
  378. package/dist/chunks/ru-XKNCzkR2.mjs +2 -0
  379. package/dist/chunks/ru-XKNCzkR2.mjs.map +1 -0
  380. package/dist/chunks/zh--oNSMazK.mjs +2 -0
  381. package/dist/chunks/zh--oNSMazK.mjs.map +1 -0
  382. package/dist/chunks/zh-BfeWdPIz.mjs +2 -0
  383. package/dist/chunks/zh-BfeWdPIz.mjs.map +1 -0
  384. package/dist/chunks/zh-BnOxGKxF.mjs +2 -0
  385. package/dist/chunks/zh-BnOxGKxF.mjs.map +1 -0
  386. package/dist/chunks/zh-BqMtE-jN.mjs +2 -0
  387. package/dist/chunks/zh-BqMtE-jN.mjs.map +1 -0
  388. package/dist/chunks/zh-C3aI7A2o.mjs +2 -0
  389. package/dist/chunks/zh-C3aI7A2o.mjs.map +1 -0
  390. package/dist/chunks/zh-C6YALJZt.mjs +2 -0
  391. package/dist/chunks/zh-C6YALJZt.mjs.map +1 -0
  392. package/dist/chunks/zh-CWdTbUOP.mjs +2 -0
  393. package/dist/chunks/zh-CWdTbUOP.mjs.map +1 -0
  394. package/dist/chunks/zh-CY01pMD4.mjs +2 -0
  395. package/dist/chunks/zh-CY01pMD4.mjs.map +1 -0
  396. package/dist/chunks/zh-Cmt7n9FY.mjs +2 -0
  397. package/dist/chunks/zh-Cmt7n9FY.mjs.map +1 -0
  398. package/dist/chunks/zh-CpP2kee3.mjs +2 -0
  399. package/dist/chunks/zh-CpP2kee3.mjs.map +1 -0
  400. package/dist/chunks/zh-Cpbg4evx.mjs +2 -0
  401. package/dist/chunks/zh-Cpbg4evx.mjs.map +1 -0
  402. package/dist/chunks/zh-Cqb55JWa.mjs +2 -0
  403. package/dist/chunks/zh-Cqb55JWa.mjs.map +1 -0
  404. package/dist/chunks/zh-DCQZ6gss.mjs +2 -0
  405. package/dist/chunks/zh-DCQZ6gss.mjs.map +1 -0
  406. package/dist/chunks/zh-DG2CNTUU.mjs +2 -0
  407. package/dist/chunks/zh-DG2CNTUU.mjs.map +1 -0
  408. package/dist/chunks/zh-DTiTJbzz.mjs +2 -0
  409. package/dist/chunks/zh-DTiTJbzz.mjs.map +1 -0
  410. package/dist/chunks/zh-Da1z6qbB.mjs +2 -0
  411. package/dist/chunks/zh-Da1z6qbB.mjs.map +1 -0
  412. package/dist/chunks/zh-DlBt06Pr.mjs +2 -0
  413. package/dist/chunks/zh-DlBt06Pr.mjs.map +1 -0
  414. package/dist/chunks/zh-Dt-wVrNr.mjs +2 -0
  415. package/dist/chunks/zh-Dt-wVrNr.mjs.map +1 -0
  416. package/dist/chunks/zh-ND6vW2M-.mjs +2 -0
  417. package/dist/chunks/zh-ND6vW2M-.mjs.map +1 -0
  418. package/dist/chunks/zh-Yd3GNsa0.mjs +2 -0
  419. package/dist/chunks/zh-Yd3GNsa0.mjs.map +1 -0
  420. package/dist/chunks/zh-lhynyH6Q.mjs +2 -0
  421. package/dist/chunks/zh-lhynyH6Q.mjs.map +1 -0
  422. package/dist/chunks/zh-v9NmlEIN.mjs +2 -0
  423. package/dist/chunks/zh-v9NmlEIN.mjs.map +1 -0
  424. package/dist/commands/Commands.d.ts +9 -3
  425. package/dist/commands/Commands.d.ts.map +1 -1
  426. package/dist/commands/GapCursorCommands.d.ts.map +1 -1
  427. package/dist/commands/MovementCommands.d.ts +1 -4
  428. package/dist/commands/MovementCommands.d.ts.map +1 -1
  429. package/dist/commands/NodeSelectionCommands.d.ts +3 -1
  430. package/dist/commands/NodeSelectionCommands.d.ts.map +1 -1
  431. package/dist/commands/WordBoundary.d.ts +4 -9
  432. package/dist/commands/WordBoundary.d.ts.map +1 -1
  433. package/dist/editor/Announcer.d.ts +1 -2
  434. package/dist/editor/Announcer.d.ts.map +1 -1
  435. package/dist/{model → editor}/BuiltinSpecs.d.ts +1 -1
  436. package/dist/editor/BuiltinSpecs.d.ts.map +1 -0
  437. package/dist/editor/ContentSerializer.d.ts +24 -0
  438. package/dist/editor/ContentSerializer.d.ts.map +1 -0
  439. package/dist/editor/EditorConfigController.d.ts +38 -0
  440. package/dist/editor/EditorConfigController.d.ts.map +1 -0
  441. package/dist/editor/EditorDOM.d.ts +3 -4
  442. package/dist/editor/EditorDOM.d.ts.map +1 -1
  443. package/dist/editor/EditorEventEmitter.d.ts +30 -0
  444. package/dist/editor/EditorEventEmitter.d.ts.map +1 -0
  445. package/dist/editor/EditorLifecycleCoordinator.d.ts +24 -0
  446. package/dist/editor/EditorLifecycleCoordinator.d.ts.map +1 -0
  447. package/dist/editor/EditorLocale.d.ts +9 -0
  448. package/dist/editor/EditorLocale.d.ts.map +1 -0
  449. package/dist/editor/EditorStyleCoordinator.d.ts +9 -0
  450. package/dist/editor/EditorStyleCoordinator.d.ts.map +1 -0
  451. package/dist/editor/NotectlEditor.d.ts +20 -54
  452. package/dist/editor/NotectlEditor.d.ts.map +1 -1
  453. package/dist/editor/PaperLayoutController.d.ts +1 -1
  454. package/dist/editor/PaperLayoutController.d.ts.map +1 -1
  455. package/dist/editor/PluginBootstrapper.d.ts +18 -0
  456. package/dist/editor/PluginBootstrapper.d.ts.map +1 -0
  457. package/dist/editor/locales/ar.d.ts +4 -0
  458. package/dist/editor/locales/ar.d.ts.map +1 -0
  459. package/dist/editor/locales/de.d.ts +4 -0
  460. package/dist/editor/locales/de.d.ts.map +1 -0
  461. package/dist/editor/locales/es.d.ts +4 -0
  462. package/dist/editor/locales/es.d.ts.map +1 -0
  463. package/dist/editor/locales/fr.d.ts +4 -0
  464. package/dist/editor/locales/fr.d.ts.map +1 -0
  465. package/dist/editor/locales/hi.d.ts +4 -0
  466. package/dist/editor/locales/hi.d.ts.map +1 -0
  467. package/dist/editor/locales/pt.d.ts +4 -0
  468. package/dist/editor/locales/pt.d.ts.map +1 -0
  469. package/dist/editor/locales/ru.d.ts +4 -0
  470. package/dist/editor/locales/ru.d.ts.map +1 -0
  471. package/dist/editor/locales/zh.d.ts +4 -0
  472. package/dist/editor/locales/zh.d.ts.map +1 -0
  473. package/dist/editor/styles/base.d.ts +1 -1
  474. package/dist/editor/styles/base.d.ts.map +1 -1
  475. package/dist/editor/styles/code-block.d.ts +1 -1
  476. package/dist/editor/styles/code-block.d.ts.map +1 -1
  477. package/dist/editor/styles/font-select.d.ts +1 -1
  478. package/dist/editor/styles/font-select.d.ts.map +1 -1
  479. package/dist/editor/styles/font-size-select.d.ts +1 -1
  480. package/dist/editor/styles/font-size-select.d.ts.map +1 -1
  481. package/dist/editor/styles/heading-select.d.ts +1 -1
  482. package/dist/editor/styles/heading-select.d.ts.map +1 -1
  483. package/dist/editor/styles/image.d.ts +1 -1
  484. package/dist/editor/styles/image.d.ts.map +1 -1
  485. package/dist/editor/styles/list.d.ts +1 -1
  486. package/dist/editor/styles/list.d.ts.map +1 -1
  487. package/dist/editor/styles/table.d.ts +1 -1
  488. package/dist/editor/styles/table.d.ts.map +1 -1
  489. package/dist/editor/styles/toolbar.d.ts +1 -1
  490. package/dist/editor/styles/toolbar.d.ts.map +1 -1
  491. package/dist/fonts.mjs +1 -6
  492. package/dist/fonts.mjs.map +1 -1
  493. package/dist/full.d.ts +45 -0
  494. package/dist/full.d.ts.map +1 -0
  495. package/dist/full.mjs +2 -0
  496. package/dist/full.mjs.map +1 -0
  497. package/dist/html.d.ts +16 -0
  498. package/dist/html.d.ts.map +1 -0
  499. package/dist/html.mjs +2 -0
  500. package/dist/html.mjs.map +1 -0
  501. package/dist/i18n/Locale.d.ts +1 -0
  502. package/dist/i18n/Locale.d.ts.map +1 -1
  503. package/dist/i18n/index.d.ts +0 -1
  504. package/dist/i18n/index.d.ts.map +1 -1
  505. package/dist/index.d.ts +29 -93
  506. package/dist/index.d.ts.map +1 -1
  507. package/dist/input/BlockInsertion.d.ts +51 -0
  508. package/dist/input/BlockInsertion.d.ts.map +1 -0
  509. package/dist/input/ClipboardHandler.d.ts +22 -0
  510. package/dist/input/ClipboardHandler.d.ts.map +1 -1
  511. package/dist/input/CompositionTracker.d.ts +2 -1
  512. package/dist/input/CompositionTracker.d.ts.map +1 -1
  513. package/dist/{model → input}/HTMLParser.d.ts +3 -3
  514. package/dist/input/HTMLParser.d.ts.map +1 -0
  515. package/dist/input/InputHandler.d.ts +1 -1
  516. package/dist/input/InputHandler.d.ts.map +1 -1
  517. package/dist/input/InputManager.d.ts +35 -0
  518. package/dist/input/InputManager.d.ts.map +1 -0
  519. package/dist/input/InternalClipboard.d.ts +11 -1
  520. package/dist/input/InternalClipboard.d.ts.map +1 -1
  521. package/dist/input/KeyboardHandler.d.ts +12 -1
  522. package/dist/input/KeyboardHandler.d.ts.map +1 -1
  523. package/dist/input/PasteHandler.d.ts +21 -17
  524. package/dist/input/PasteHandler.d.ts.map +1 -1
  525. package/dist/model/AttrRegistry.d.ts +1 -1
  526. package/dist/model/AttrRegistry.d.ts.map +1 -1
  527. package/dist/model/BlockAlignment.d.ts +8 -0
  528. package/dist/model/BlockAlignment.d.ts.map +1 -0
  529. package/dist/model/BlockTypeLabels.d.ts +7 -0
  530. package/dist/model/BlockTypeLabels.d.ts.map +1 -0
  531. package/dist/model/CompositionState.d.ts +8 -0
  532. package/dist/model/CompositionState.d.ts.map +1 -0
  533. package/dist/{input → model}/FileHandlerRegistry.d.ts +1 -1
  534. package/dist/{input → model}/FileHandlerRegistry.d.ts.map +1 -1
  535. package/dist/model/HTMLUtils.d.ts +6 -0
  536. package/dist/model/HTMLUtils.d.ts.map +1 -1
  537. package/dist/{input → model}/InputRule.d.ts.map +1 -1
  538. package/dist/{input → model}/InputRuleRegistry.d.ts.map +1 -1
  539. package/dist/{input → model}/Keymap.d.ts.map +1 -1
  540. package/dist/{input → model}/KeymapRegistry.d.ts.map +1 -1
  541. package/dist/model/MarkSpec.d.ts +2 -2
  542. package/dist/model/MarkSpec.d.ts.map +1 -1
  543. package/dist/model/NodeSpec.d.ts +0 -3
  544. package/dist/model/NodeSpec.d.ts.map +1 -1
  545. package/dist/model/PaperSize.d.ts.map +1 -0
  546. package/dist/model/WordBoundary.d.ts +12 -0
  547. package/dist/model/WordBoundary.d.ts.map +1 -0
  548. package/dist/notectl-core.mjs +1 -3888
  549. package/dist/notectl-core.mjs.map +1 -1
  550. package/dist/notectl-core.umd.js +1 -9523
  551. package/dist/notectl-core.umd.js.map +1 -1
  552. package/dist/{view → platform}/Platform.d.ts +2 -0
  553. package/dist/platform/Platform.d.ts.map +1 -0
  554. package/dist/plugins/Plugin.d.ts +5 -5
  555. package/dist/plugins/Plugin.d.ts.map +1 -1
  556. package/dist/plugins/PluginManager.d.ts +3 -3
  557. package/dist/plugins/alignment/AlignmentLocale.d.ts +3 -10
  558. package/dist/plugins/alignment/AlignmentLocale.d.ts.map +1 -1
  559. package/dist/plugins/alignment/AlignmentPlugin.d.ts +3 -13
  560. package/dist/plugins/alignment/AlignmentPlugin.d.ts.map +1 -1
  561. package/dist/plugins/alignment/index.d.ts +3 -1
  562. package/dist/plugins/alignment/index.d.ts.map +1 -1
  563. package/dist/plugins/alignment/locales/ar.d.ts +4 -0
  564. package/dist/plugins/alignment/locales/ar.d.ts.map +1 -0
  565. package/dist/plugins/alignment/locales/de.d.ts +4 -0
  566. package/dist/plugins/alignment/locales/de.d.ts.map +1 -0
  567. package/dist/plugins/alignment/locales/es.d.ts +4 -0
  568. package/dist/plugins/alignment/locales/es.d.ts.map +1 -0
  569. package/dist/plugins/alignment/locales/fr.d.ts +4 -0
  570. package/dist/plugins/alignment/locales/fr.d.ts.map +1 -0
  571. package/dist/plugins/alignment/locales/hi.d.ts +4 -0
  572. package/dist/plugins/alignment/locales/hi.d.ts.map +1 -0
  573. package/dist/plugins/alignment/locales/pt.d.ts +4 -0
  574. package/dist/plugins/alignment/locales/pt.d.ts.map +1 -0
  575. package/dist/plugins/alignment/locales/ru.d.ts +4 -0
  576. package/dist/plugins/alignment/locales/ru.d.ts.map +1 -0
  577. package/dist/plugins/alignment/locales/zh.d.ts +4 -0
  578. package/dist/plugins/alignment/locales/zh.d.ts.map +1 -0
  579. package/dist/plugins/alignment.mjs +1 -5
  580. package/dist/plugins/alignment.mjs.map +1 -1
  581. package/dist/plugins/blockquote/BlockquoteKeyboardHandlers.d.ts +4 -0
  582. package/dist/plugins/blockquote/BlockquoteKeyboardHandlers.d.ts.map +1 -0
  583. package/dist/plugins/blockquote/BlockquoteLocale.d.ts +1 -8
  584. package/dist/plugins/blockquote/BlockquoteLocale.d.ts.map +1 -1
  585. package/dist/plugins/blockquote/BlockquotePlugin.d.ts +1 -3
  586. package/dist/plugins/blockquote/BlockquotePlugin.d.ts.map +1 -1
  587. package/dist/plugins/blockquote/BlockquoteStyles.d.ts +3 -0
  588. package/dist/plugins/blockquote/BlockquoteStyles.d.ts.map +1 -0
  589. package/dist/plugins/blockquote/index.d.ts +2 -0
  590. package/dist/plugins/blockquote/index.d.ts.map +1 -1
  591. package/dist/plugins/blockquote/locales/ar.d.ts +4 -0
  592. package/dist/plugins/blockquote/locales/ar.d.ts.map +1 -0
  593. package/dist/plugins/blockquote/locales/de.d.ts +4 -0
  594. package/dist/plugins/blockquote/locales/de.d.ts.map +1 -0
  595. package/dist/plugins/blockquote/locales/es.d.ts +4 -0
  596. package/dist/plugins/blockquote/locales/es.d.ts.map +1 -0
  597. package/dist/plugins/blockquote/locales/fr.d.ts +4 -0
  598. package/dist/plugins/blockquote/locales/fr.d.ts.map +1 -0
  599. package/dist/plugins/blockquote/locales/hi.d.ts +4 -0
  600. package/dist/plugins/blockquote/locales/hi.d.ts.map +1 -0
  601. package/dist/plugins/blockquote/locales/pt.d.ts +4 -0
  602. package/dist/plugins/blockquote/locales/pt.d.ts.map +1 -0
  603. package/dist/plugins/blockquote/locales/ru.d.ts +4 -0
  604. package/dist/plugins/blockquote/locales/ru.d.ts.map +1 -0
  605. package/dist/plugins/blockquote/locales/zh.d.ts +4 -0
  606. package/dist/plugins/blockquote/locales/zh.d.ts.map +1 -0
  607. package/dist/plugins/blockquote.mjs +1 -4
  608. package/dist/plugins/blockquote.mjs.map +1 -1
  609. package/dist/plugins/caret-navigation/CaretNavigationLocale.d.ts +21 -0
  610. package/dist/plugins/caret-navigation/CaretNavigationLocale.d.ts.map +1 -0
  611. package/dist/plugins/caret-navigation/CaretNavigationPlugin.d.ts +2 -1
  612. package/dist/plugins/caret-navigation/CaretNavigationPlugin.d.ts.map +1 -1
  613. package/dist/plugins/caret-navigation/index.d.ts +2 -0
  614. package/dist/plugins/caret-navigation/index.d.ts.map +1 -1
  615. package/dist/plugins/caret-navigation/locales/ar.d.ts +4 -0
  616. package/dist/plugins/caret-navigation/locales/ar.d.ts.map +1 -0
  617. package/dist/plugins/caret-navigation/locales/de.d.ts +4 -0
  618. package/dist/plugins/caret-navigation/locales/de.d.ts.map +1 -0
  619. package/dist/plugins/caret-navigation/locales/es.d.ts +4 -0
  620. package/dist/plugins/caret-navigation/locales/es.d.ts.map +1 -0
  621. package/dist/plugins/caret-navigation/locales/fr.d.ts +4 -0
  622. package/dist/plugins/caret-navigation/locales/fr.d.ts.map +1 -0
  623. package/dist/plugins/caret-navigation/locales/hi.d.ts +4 -0
  624. package/dist/plugins/caret-navigation/locales/hi.d.ts.map +1 -0
  625. package/dist/plugins/caret-navigation/locales/pt.d.ts +4 -0
  626. package/dist/plugins/caret-navigation/locales/pt.d.ts.map +1 -0
  627. package/dist/plugins/caret-navigation/locales/ru.d.ts +4 -0
  628. package/dist/plugins/caret-navigation/locales/ru.d.ts.map +1 -0
  629. package/dist/plugins/caret-navigation/locales/zh.d.ts +4 -0
  630. package/dist/plugins/caret-navigation/locales/zh.d.ts.map +1 -0
  631. package/dist/plugins/caret-navigation.mjs +1 -4
  632. package/dist/plugins/caret-navigation.mjs.map +1 -1
  633. package/dist/plugins/code-block/CodeBlockLocale.d.ts +5 -8
  634. package/dist/plugins/code-block/CodeBlockLocale.d.ts.map +1 -1
  635. package/dist/plugins/code-block/CodeBlockNodeView.d.ts +2 -1
  636. package/dist/plugins/code-block/CodeBlockNodeView.d.ts.map +1 -1
  637. package/dist/plugins/code-block/CodeBlockPlugin.d.ts +2 -2
  638. package/dist/plugins/code-block/CodeBlockPlugin.d.ts.map +1 -1
  639. package/dist/plugins/code-block/CodeBlockService.d.ts.map +1 -1
  640. package/dist/plugins/code-block/CodeBlockTypes.d.ts +0 -1
  641. package/dist/plugins/code-block/CodeBlockTypes.d.ts.map +1 -1
  642. package/dist/plugins/code-block/index.d.ts +2 -0
  643. package/dist/plugins/code-block/index.d.ts.map +1 -1
  644. package/dist/plugins/code-block/locales/ar.d.ts +4 -0
  645. package/dist/plugins/code-block/locales/ar.d.ts.map +1 -0
  646. package/dist/plugins/code-block/locales/de.d.ts +4 -0
  647. package/dist/plugins/code-block/locales/de.d.ts.map +1 -0
  648. package/dist/plugins/code-block/locales/es.d.ts +4 -0
  649. package/dist/plugins/code-block/locales/es.d.ts.map +1 -0
  650. package/dist/plugins/code-block/locales/fr.d.ts +4 -0
  651. package/dist/plugins/code-block/locales/fr.d.ts.map +1 -0
  652. package/dist/plugins/code-block/locales/hi.d.ts +4 -0
  653. package/dist/plugins/code-block/locales/hi.d.ts.map +1 -0
  654. package/dist/plugins/code-block/locales/pt.d.ts +4 -0
  655. package/dist/plugins/code-block/locales/pt.d.ts.map +1 -0
  656. package/dist/plugins/code-block/locales/ru.d.ts +4 -0
  657. package/dist/plugins/code-block/locales/ru.d.ts.map +1 -0
  658. package/dist/plugins/code-block/locales/zh.d.ts +4 -0
  659. package/dist/plugins/code-block/locales/zh.d.ts.map +1 -0
  660. package/dist/plugins/code-block.mjs +1 -5
  661. package/dist/plugins/code-block.mjs.map +1 -1
  662. package/dist/plugins/font/FontLocale.d.ts +1 -8
  663. package/dist/plugins/font/FontLocale.d.ts.map +1 -1
  664. package/dist/plugins/font/FontPlugin.d.ts +1 -3
  665. package/dist/plugins/font/FontPlugin.d.ts.map +1 -1
  666. package/dist/plugins/font/index.d.ts +2 -0
  667. package/dist/plugins/font/index.d.ts.map +1 -1
  668. package/dist/plugins/font/locales/ar.d.ts +4 -0
  669. package/dist/plugins/font/locales/ar.d.ts.map +1 -0
  670. package/dist/plugins/font/locales/de.d.ts +4 -0
  671. package/dist/plugins/font/locales/de.d.ts.map +1 -0
  672. package/dist/plugins/font/locales/es.d.ts +4 -0
  673. package/dist/plugins/font/locales/es.d.ts.map +1 -0
  674. package/dist/plugins/font/locales/fr.d.ts +4 -0
  675. package/dist/plugins/font/locales/fr.d.ts.map +1 -0
  676. package/dist/plugins/font/locales/hi.d.ts +4 -0
  677. package/dist/plugins/font/locales/hi.d.ts.map +1 -0
  678. package/dist/plugins/font/locales/pt.d.ts +4 -0
  679. package/dist/plugins/font/locales/pt.d.ts.map +1 -0
  680. package/dist/plugins/font/locales/ru.d.ts +4 -0
  681. package/dist/plugins/font/locales/ru.d.ts.map +1 -0
  682. package/dist/plugins/font/locales/zh.d.ts +4 -0
  683. package/dist/plugins/font/locales/zh.d.ts.map +1 -0
  684. package/dist/plugins/font-size/FontSizeLocale.d.ts +1 -8
  685. package/dist/plugins/font-size/FontSizeLocale.d.ts.map +1 -1
  686. package/dist/plugins/font-size/FontSizePlugin.d.ts +1 -3
  687. package/dist/plugins/font-size/FontSizePlugin.d.ts.map +1 -1
  688. package/dist/plugins/font-size/FontSizePopup.d.ts +1 -1
  689. package/dist/plugins/font-size/FontSizePopup.d.ts.map +1 -1
  690. package/dist/plugins/font-size/index.d.ts +2 -0
  691. package/dist/plugins/font-size/index.d.ts.map +1 -1
  692. package/dist/plugins/font-size/locales/ar.d.ts +4 -0
  693. package/dist/plugins/font-size/locales/ar.d.ts.map +1 -0
  694. package/dist/plugins/font-size/locales/de.d.ts +4 -0
  695. package/dist/plugins/font-size/locales/de.d.ts.map +1 -0
  696. package/dist/plugins/font-size/locales/es.d.ts +4 -0
  697. package/dist/plugins/font-size/locales/es.d.ts.map +1 -0
  698. package/dist/plugins/font-size/locales/fr.d.ts +4 -0
  699. package/dist/plugins/font-size/locales/fr.d.ts.map +1 -0
  700. package/dist/plugins/font-size/locales/hi.d.ts +4 -0
  701. package/dist/plugins/font-size/locales/hi.d.ts.map +1 -0
  702. package/dist/plugins/font-size/locales/pt.d.ts +4 -0
  703. package/dist/plugins/font-size/locales/pt.d.ts.map +1 -0
  704. package/dist/plugins/font-size/locales/ru.d.ts +4 -0
  705. package/dist/plugins/font-size/locales/ru.d.ts.map +1 -0
  706. package/dist/plugins/font-size/locales/zh.d.ts +4 -0
  707. package/dist/plugins/font-size/locales/zh.d.ts.map +1 -0
  708. package/dist/plugins/font-size.mjs +1 -4
  709. package/dist/plugins/font-size.mjs.map +1 -1
  710. package/dist/plugins/font.mjs +1 -4
  711. package/dist/plugins/font.mjs.map +1 -1
  712. package/dist/plugins/gap-cursor/GapCursorLocale.d.ts +7 -0
  713. package/dist/plugins/gap-cursor/GapCursorLocale.d.ts.map +1 -0
  714. package/dist/plugins/gap-cursor/GapCursorPlugin.d.ts +7 -3
  715. package/dist/plugins/gap-cursor/GapCursorPlugin.d.ts.map +1 -1
  716. package/dist/plugins/gap-cursor/locales/ar.d.ts +4 -0
  717. package/dist/plugins/gap-cursor/locales/ar.d.ts.map +1 -0
  718. package/dist/plugins/gap-cursor/locales/de.d.ts +4 -0
  719. package/dist/plugins/gap-cursor/locales/de.d.ts.map +1 -0
  720. package/dist/plugins/gap-cursor/locales/es.d.ts +4 -0
  721. package/dist/plugins/gap-cursor/locales/es.d.ts.map +1 -0
  722. package/dist/plugins/gap-cursor/locales/fr.d.ts +4 -0
  723. package/dist/plugins/gap-cursor/locales/fr.d.ts.map +1 -0
  724. package/dist/plugins/gap-cursor/locales/hi.d.ts +4 -0
  725. package/dist/plugins/gap-cursor/locales/hi.d.ts.map +1 -0
  726. package/dist/plugins/gap-cursor/locales/pt.d.ts +4 -0
  727. package/dist/plugins/gap-cursor/locales/pt.d.ts.map +1 -0
  728. package/dist/plugins/gap-cursor/locales/ru.d.ts +4 -0
  729. package/dist/plugins/gap-cursor/locales/ru.d.ts.map +1 -0
  730. package/dist/plugins/gap-cursor/locales/zh.d.ts +4 -0
  731. package/dist/plugins/gap-cursor/locales/zh.d.ts.map +1 -0
  732. package/dist/plugins/gap-cursor.mjs +1 -64
  733. package/dist/plugins/gap-cursor.mjs.map +1 -1
  734. package/dist/plugins/hard-break.mjs +1 -4
  735. package/dist/plugins/hard-break.mjs.map +1 -1
  736. package/dist/plugins/heading/HeadingBlockTypePicker.d.ts +1 -1
  737. package/dist/plugins/heading/HeadingBlockTypePicker.d.ts.map +1 -1
  738. package/dist/plugins/heading/HeadingLocale.d.ts +1 -8
  739. package/dist/plugins/heading/HeadingLocale.d.ts.map +1 -1
  740. package/dist/plugins/heading/HeadingPlugin.d.ts +2 -4
  741. package/dist/plugins/heading/HeadingPlugin.d.ts.map +1 -1
  742. package/dist/plugins/heading/index.d.ts +3 -0
  743. package/dist/plugins/heading/index.d.ts.map +1 -1
  744. package/dist/plugins/heading/locales/ar.d.ts +4 -0
  745. package/dist/plugins/heading/locales/ar.d.ts.map +1 -0
  746. package/dist/plugins/heading/locales/de.d.ts +4 -0
  747. package/dist/plugins/heading/locales/de.d.ts.map +1 -0
  748. package/dist/plugins/heading/locales/es.d.ts +4 -0
  749. package/dist/plugins/heading/locales/es.d.ts.map +1 -0
  750. package/dist/plugins/heading/locales/fr.d.ts +4 -0
  751. package/dist/plugins/heading/locales/fr.d.ts.map +1 -0
  752. package/dist/plugins/heading/locales/hi.d.ts +4 -0
  753. package/dist/plugins/heading/locales/hi.d.ts.map +1 -0
  754. package/dist/plugins/heading/locales/pt.d.ts +4 -0
  755. package/dist/plugins/heading/locales/pt.d.ts.map +1 -0
  756. package/dist/plugins/heading/locales/ru.d.ts +4 -0
  757. package/dist/plugins/heading/locales/ru.d.ts.map +1 -0
  758. package/dist/plugins/heading/locales/zh.d.ts +4 -0
  759. package/dist/plugins/heading/locales/zh.d.ts.map +1 -0
  760. package/dist/plugins/heading.mjs +1 -4
  761. package/dist/plugins/heading.mjs.map +1 -1
  762. package/dist/plugins/highlight/HighlightLocale.d.ts +1 -8
  763. package/dist/plugins/highlight/HighlightLocale.d.ts.map +1 -1
  764. package/dist/plugins/highlight/HighlightPlugin.d.ts +1 -3
  765. package/dist/plugins/highlight/HighlightPlugin.d.ts.map +1 -1
  766. package/dist/plugins/highlight/index.d.ts +2 -0
  767. package/dist/plugins/highlight/index.d.ts.map +1 -1
  768. package/dist/plugins/highlight/locales/ar.d.ts +4 -0
  769. package/dist/plugins/highlight/locales/ar.d.ts.map +1 -0
  770. package/dist/plugins/highlight/locales/de.d.ts +4 -0
  771. package/dist/plugins/highlight/locales/de.d.ts.map +1 -0
  772. package/dist/plugins/highlight/locales/es.d.ts +4 -0
  773. package/dist/plugins/highlight/locales/es.d.ts.map +1 -0
  774. package/dist/plugins/highlight/locales/fr.d.ts +4 -0
  775. package/dist/plugins/highlight/locales/fr.d.ts.map +1 -0
  776. package/dist/plugins/highlight/locales/hi.d.ts +4 -0
  777. package/dist/plugins/highlight/locales/hi.d.ts.map +1 -0
  778. package/dist/plugins/highlight/locales/pt.d.ts +4 -0
  779. package/dist/plugins/highlight/locales/pt.d.ts.map +1 -0
  780. package/dist/plugins/highlight/locales/ru.d.ts +4 -0
  781. package/dist/plugins/highlight/locales/ru.d.ts.map +1 -0
  782. package/dist/plugins/highlight/locales/zh.d.ts +4 -0
  783. package/dist/plugins/highlight/locales/zh.d.ts.map +1 -0
  784. package/dist/plugins/highlight.mjs +1 -4
  785. package/dist/plugins/highlight.mjs.map +1 -1
  786. package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts +1 -8
  787. package/dist/plugins/horizontal-rule/HorizontalRuleLocale.d.ts.map +1 -1
  788. package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts +1 -3
  789. package/dist/plugins/horizontal-rule/HorizontalRulePlugin.d.ts.map +1 -1
  790. package/dist/plugins/horizontal-rule/index.d.ts +2 -0
  791. package/dist/plugins/horizontal-rule/index.d.ts.map +1 -1
  792. package/dist/plugins/horizontal-rule/locales/ar.d.ts +4 -0
  793. package/dist/plugins/horizontal-rule/locales/ar.d.ts.map +1 -0
  794. package/dist/plugins/horizontal-rule/locales/de.d.ts +4 -0
  795. package/dist/plugins/horizontal-rule/locales/de.d.ts.map +1 -0
  796. package/dist/plugins/horizontal-rule/locales/es.d.ts +4 -0
  797. package/dist/plugins/horizontal-rule/locales/es.d.ts.map +1 -0
  798. package/dist/plugins/horizontal-rule/locales/fr.d.ts +4 -0
  799. package/dist/plugins/horizontal-rule/locales/fr.d.ts.map +1 -0
  800. package/dist/plugins/horizontal-rule/locales/hi.d.ts +4 -0
  801. package/dist/plugins/horizontal-rule/locales/hi.d.ts.map +1 -0
  802. package/dist/plugins/horizontal-rule/locales/pt.d.ts +4 -0
  803. package/dist/plugins/horizontal-rule/locales/pt.d.ts.map +1 -0
  804. package/dist/plugins/horizontal-rule/locales/ru.d.ts +4 -0
  805. package/dist/plugins/horizontal-rule/locales/ru.d.ts.map +1 -0
  806. package/dist/plugins/horizontal-rule/locales/zh.d.ts +4 -0
  807. package/dist/plugins/horizontal-rule/locales/zh.d.ts.map +1 -0
  808. package/dist/plugins/horizontal-rule.mjs +1 -4
  809. package/dist/plugins/horizontal-rule.mjs.map +1 -1
  810. package/dist/plugins/image/ImageLocale.d.ts +9 -8
  811. package/dist/plugins/image/ImageLocale.d.ts.map +1 -1
  812. package/dist/plugins/image/ImageNodeView.d.ts +8 -1
  813. package/dist/plugins/image/ImageNodeView.d.ts.map +1 -1
  814. package/dist/plugins/image/ImagePlugin.d.ts +2 -2
  815. package/dist/plugins/image/ImagePlugin.d.ts.map +1 -1
  816. package/dist/plugins/image/ImageUpload.d.ts +1 -2
  817. package/dist/plugins/image/ImageUpload.d.ts.map +1 -1
  818. package/dist/plugins/image/index.d.ts +2 -0
  819. package/dist/plugins/image/index.d.ts.map +1 -1
  820. package/dist/plugins/image/locales/ar.d.ts +4 -0
  821. package/dist/plugins/image/locales/ar.d.ts.map +1 -0
  822. package/dist/plugins/image/locales/de.d.ts +4 -0
  823. package/dist/plugins/image/locales/de.d.ts.map +1 -0
  824. package/dist/plugins/image/locales/es.d.ts +4 -0
  825. package/dist/plugins/image/locales/es.d.ts.map +1 -0
  826. package/dist/plugins/image/locales/fr.d.ts +4 -0
  827. package/dist/plugins/image/locales/fr.d.ts.map +1 -0
  828. package/dist/plugins/image/locales/hi.d.ts +4 -0
  829. package/dist/plugins/image/locales/hi.d.ts.map +1 -0
  830. package/dist/plugins/image/locales/pt.d.ts +4 -0
  831. package/dist/plugins/image/locales/pt.d.ts.map +1 -0
  832. package/dist/plugins/image/locales/ru.d.ts +4 -0
  833. package/dist/plugins/image/locales/ru.d.ts.map +1 -0
  834. package/dist/plugins/image/locales/zh.d.ts +4 -0
  835. package/dist/plugins/image/locales/zh.d.ts.map +1 -0
  836. package/dist/plugins/image.mjs +1 -6
  837. package/dist/plugins/image.mjs.map +1 -1
  838. package/dist/plugins/link/LinkLocale.d.ts +1 -8
  839. package/dist/plugins/link/LinkLocale.d.ts.map +1 -1
  840. package/dist/plugins/link/LinkPlugin.d.ts +1 -3
  841. package/dist/plugins/link/LinkPlugin.d.ts.map +1 -1
  842. package/dist/plugins/link/index.d.ts +2 -0
  843. package/dist/plugins/link/index.d.ts.map +1 -1
  844. package/dist/plugins/link/locales/ar.d.ts +4 -0
  845. package/dist/plugins/link/locales/ar.d.ts.map +1 -0
  846. package/dist/plugins/link/locales/de.d.ts +4 -0
  847. package/dist/plugins/link/locales/de.d.ts.map +1 -0
  848. package/dist/plugins/link/locales/es.d.ts +4 -0
  849. package/dist/plugins/link/locales/es.d.ts.map +1 -0
  850. package/dist/plugins/link/locales/fr.d.ts +4 -0
  851. package/dist/plugins/link/locales/fr.d.ts.map +1 -0
  852. package/dist/plugins/link/locales/hi.d.ts +4 -0
  853. package/dist/plugins/link/locales/hi.d.ts.map +1 -0
  854. package/dist/plugins/link/locales/pt.d.ts +4 -0
  855. package/dist/plugins/link/locales/pt.d.ts.map +1 -0
  856. package/dist/plugins/link/locales/ru.d.ts +4 -0
  857. package/dist/plugins/link/locales/ru.d.ts.map +1 -0
  858. package/dist/plugins/link/locales/zh.d.ts +4 -0
  859. package/dist/plugins/link/locales/zh.d.ts.map +1 -0
  860. package/dist/plugins/link.mjs +1 -4
  861. package/dist/plugins/link.mjs.map +1 -1
  862. package/dist/plugins/list/ListLocale.d.ts +1 -8
  863. package/dist/plugins/list/ListLocale.d.ts.map +1 -1
  864. package/dist/plugins/list/ListPlugin.d.ts +1 -3
  865. package/dist/plugins/list/ListPlugin.d.ts.map +1 -1
  866. package/dist/plugins/list/index.d.ts +2 -0
  867. package/dist/plugins/list/index.d.ts.map +1 -1
  868. package/dist/plugins/list/locales/ar.d.ts +4 -0
  869. package/dist/plugins/list/locales/ar.d.ts.map +1 -0
  870. package/dist/plugins/list/locales/de.d.ts +4 -0
  871. package/dist/plugins/list/locales/de.d.ts.map +1 -0
  872. package/dist/plugins/list/locales/es.d.ts +4 -0
  873. package/dist/plugins/list/locales/es.d.ts.map +1 -0
  874. package/dist/plugins/list/locales/fr.d.ts +4 -0
  875. package/dist/plugins/list/locales/fr.d.ts.map +1 -0
  876. package/dist/plugins/list/locales/hi.d.ts +4 -0
  877. package/dist/plugins/list/locales/hi.d.ts.map +1 -0
  878. package/dist/plugins/list/locales/pt.d.ts +4 -0
  879. package/dist/plugins/list/locales/pt.d.ts.map +1 -0
  880. package/dist/plugins/list/locales/ru.d.ts +4 -0
  881. package/dist/plugins/list/locales/ru.d.ts.map +1 -0
  882. package/dist/plugins/list/locales/zh.d.ts +4 -0
  883. package/dist/plugins/list/locales/zh.d.ts.map +1 -0
  884. package/dist/plugins/list.mjs +1 -4
  885. package/dist/plugins/list.mjs.map +1 -1
  886. package/dist/plugins/print/PrintLocale.d.ts +1 -8
  887. package/dist/plugins/print/PrintLocale.d.ts.map +1 -1
  888. package/dist/plugins/print/PrintPlugin.d.ts +1 -1
  889. package/dist/plugins/print/PrintPlugin.d.ts.map +1 -1
  890. package/dist/plugins/print/PrintServiceImpl.d.ts.map +1 -1
  891. package/dist/plugins/print/PrintStyleCollector.d.ts.map +1 -1
  892. package/dist/plugins/print/PrintTypes.d.ts +1 -1
  893. package/dist/plugins/print/PrintTypes.d.ts.map +1 -1
  894. package/dist/plugins/print/index.d.ts +5 -0
  895. package/dist/plugins/print/index.d.ts.map +1 -0
  896. package/dist/plugins/print/locales/ar.d.ts +4 -0
  897. package/dist/plugins/print/locales/ar.d.ts.map +1 -0
  898. package/dist/plugins/print/locales/de.d.ts +4 -0
  899. package/dist/plugins/print/locales/de.d.ts.map +1 -0
  900. package/dist/plugins/print/locales/es.d.ts +4 -0
  901. package/dist/plugins/print/locales/es.d.ts.map +1 -0
  902. package/dist/plugins/print/locales/fr.d.ts +4 -0
  903. package/dist/plugins/print/locales/fr.d.ts.map +1 -0
  904. package/dist/plugins/print/locales/hi.d.ts +4 -0
  905. package/dist/plugins/print/locales/hi.d.ts.map +1 -0
  906. package/dist/plugins/print/locales/pt.d.ts +4 -0
  907. package/dist/plugins/print/locales/pt.d.ts.map +1 -0
  908. package/dist/plugins/print/locales/ru.d.ts +4 -0
  909. package/dist/plugins/print/locales/ru.d.ts.map +1 -0
  910. package/dist/plugins/print/locales/zh.d.ts +4 -0
  911. package/dist/plugins/print/locales/zh.d.ts.map +1 -0
  912. package/dist/plugins/print.mjs +2 -0
  913. package/dist/plugins/print.mjs.map +1 -0
  914. package/dist/plugins/shared/ColorGrid.d.ts.map +1 -1
  915. package/dist/plugins/shared/KeyboardNav.d.ts +17 -0
  916. package/dist/plugins/shared/KeyboardNav.d.ts.map +1 -0
  917. package/dist/plugins/shared/PluginHelpers.d.ts +10 -0
  918. package/dist/plugins/shared/PluginHelpers.d.ts.map +1 -0
  919. package/dist/plugins/shared/PopupKeyboardPatterns.d.ts +1 -1
  920. package/dist/plugins/shared/PopupKeyboardPatterns.d.ts.map +1 -1
  921. package/dist/plugins/shared/PopupManager.d.ts +2 -0
  922. package/dist/plugins/shared/PopupManager.d.ts.map +1 -1
  923. package/dist/plugins/shared/PopupPositioning.d.ts +1 -0
  924. package/dist/plugins/shared/PopupPositioning.d.ts.map +1 -1
  925. package/dist/plugins/shared/ShortcutFormatting.d.ts +9 -0
  926. package/dist/plugins/shared/ShortcutFormatting.d.ts.map +1 -0
  927. package/dist/plugins/shared/index.d.ts +12 -0
  928. package/dist/plugins/shared/index.d.ts.map +1 -0
  929. package/dist/plugins/shared.mjs +2 -0
  930. package/dist/plugins/shared.mjs.map +1 -0
  931. package/dist/plugins/strikethrough/StrikethroughLocale.d.ts +1 -8
  932. package/dist/plugins/strikethrough/StrikethroughLocale.d.ts.map +1 -1
  933. package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts +1 -3
  934. package/dist/plugins/strikethrough/StrikethroughPlugin.d.ts.map +1 -1
  935. package/dist/plugins/strikethrough/index.d.ts +2 -0
  936. package/dist/plugins/strikethrough/index.d.ts.map +1 -1
  937. package/dist/plugins/strikethrough/locales/ar.d.ts +4 -0
  938. package/dist/plugins/strikethrough/locales/ar.d.ts.map +1 -0
  939. package/dist/plugins/strikethrough/locales/de.d.ts +4 -0
  940. package/dist/plugins/strikethrough/locales/de.d.ts.map +1 -0
  941. package/dist/plugins/strikethrough/locales/es.d.ts +4 -0
  942. package/dist/plugins/strikethrough/locales/es.d.ts.map +1 -0
  943. package/dist/plugins/strikethrough/locales/fr.d.ts +4 -0
  944. package/dist/plugins/strikethrough/locales/fr.d.ts.map +1 -0
  945. package/dist/plugins/strikethrough/locales/hi.d.ts +4 -0
  946. package/dist/plugins/strikethrough/locales/hi.d.ts.map +1 -0
  947. package/dist/plugins/strikethrough/locales/pt.d.ts +4 -0
  948. package/dist/plugins/strikethrough/locales/pt.d.ts.map +1 -0
  949. package/dist/plugins/strikethrough/locales/ru.d.ts +4 -0
  950. package/dist/plugins/strikethrough/locales/ru.d.ts.map +1 -0
  951. package/dist/plugins/strikethrough/locales/zh.d.ts +4 -0
  952. package/dist/plugins/strikethrough/locales/zh.d.ts.map +1 -0
  953. package/dist/plugins/strikethrough.mjs +1 -4
  954. package/dist/plugins/strikethrough.mjs.map +1 -1
  955. package/dist/plugins/super-sub/SuperSubLocale.d.ts +1 -8
  956. package/dist/plugins/super-sub/SuperSubLocale.d.ts.map +1 -1
  957. package/dist/plugins/super-sub/SuperSubPlugin.d.ts +1 -3
  958. package/dist/plugins/super-sub/SuperSubPlugin.d.ts.map +1 -1
  959. package/dist/plugins/super-sub/index.d.ts +2 -0
  960. package/dist/plugins/super-sub/index.d.ts.map +1 -1
  961. package/dist/plugins/super-sub/locales/ar.d.ts +4 -0
  962. package/dist/plugins/super-sub/locales/ar.d.ts.map +1 -0
  963. package/dist/plugins/super-sub/locales/de.d.ts +4 -0
  964. package/dist/plugins/super-sub/locales/de.d.ts.map +1 -0
  965. package/dist/plugins/super-sub/locales/es.d.ts +4 -0
  966. package/dist/plugins/super-sub/locales/es.d.ts.map +1 -0
  967. package/dist/plugins/super-sub/locales/fr.d.ts +4 -0
  968. package/dist/plugins/super-sub/locales/fr.d.ts.map +1 -0
  969. package/dist/plugins/super-sub/locales/hi.d.ts +4 -0
  970. package/dist/plugins/super-sub/locales/hi.d.ts.map +1 -0
  971. package/dist/plugins/super-sub/locales/pt.d.ts +4 -0
  972. package/dist/plugins/super-sub/locales/pt.d.ts.map +1 -0
  973. package/dist/plugins/super-sub/locales/ru.d.ts +4 -0
  974. package/dist/plugins/super-sub/locales/ru.d.ts.map +1 -0
  975. package/dist/plugins/super-sub/locales/zh.d.ts +4 -0
  976. package/dist/plugins/super-sub/locales/zh.d.ts.map +1 -0
  977. package/dist/plugins/super-sub.mjs +1 -4
  978. package/dist/plugins/super-sub.mjs.map +1 -1
  979. package/dist/plugins/table/TableCommands.d.ts +8 -8
  980. package/dist/plugins/table/TableCommands.d.ts.map +1 -1
  981. package/dist/plugins/table/TableContextMenu.d.ts.map +1 -1
  982. package/dist/plugins/table/TableControlsDOM.d.ts +4 -4
  983. package/dist/plugins/table/TableControlsDOM.d.ts.map +1 -1
  984. package/dist/plugins/table/TableLocale.d.ts +1 -8
  985. package/dist/plugins/table/TableLocale.d.ts.map +1 -1
  986. package/dist/plugins/table/TableNavigation.d.ts +1 -1
  987. package/dist/plugins/table/TableNavigation.d.ts.map +1 -1
  988. package/dist/plugins/table/TablePlugin.d.ts +3 -5
  989. package/dist/plugins/table/TablePlugin.d.ts.map +1 -1
  990. package/dist/plugins/table/TableSelection.d.ts +2 -0
  991. package/dist/plugins/table/TableSelection.d.ts.map +1 -1
  992. package/dist/plugins/table/index.d.ts +0 -5
  993. package/dist/plugins/table/index.d.ts.map +1 -1
  994. package/dist/plugins/table/locales/ar.d.ts +4 -0
  995. package/dist/plugins/table/locales/ar.d.ts.map +1 -0
  996. package/dist/plugins/table/locales/de.d.ts +4 -0
  997. package/dist/plugins/table/locales/de.d.ts.map +1 -0
  998. package/dist/plugins/table/locales/es.d.ts +4 -0
  999. package/dist/plugins/table/locales/es.d.ts.map +1 -0
  1000. package/dist/plugins/table/locales/fr.d.ts +4 -0
  1001. package/dist/plugins/table/locales/fr.d.ts.map +1 -0
  1002. package/dist/plugins/table/locales/hi.d.ts +4 -0
  1003. package/dist/plugins/table/locales/hi.d.ts.map +1 -0
  1004. package/dist/plugins/table/locales/pt.d.ts +4 -0
  1005. package/dist/plugins/table/locales/pt.d.ts.map +1 -0
  1006. package/dist/plugins/table/locales/ru.d.ts +4 -0
  1007. package/dist/plugins/table/locales/ru.d.ts.map +1 -0
  1008. package/dist/plugins/table/locales/zh.d.ts +4 -0
  1009. package/dist/plugins/table/locales/zh.d.ts.map +1 -0
  1010. package/dist/plugins/table.mjs +1 -20
  1011. package/dist/plugins/table.mjs.map +1 -1
  1012. package/dist/plugins/text-color/TextColorLocale.d.ts +1 -8
  1013. package/dist/plugins/text-color/TextColorLocale.d.ts.map +1 -1
  1014. package/dist/plugins/text-color/TextColorPlugin.d.ts +1 -3
  1015. package/dist/plugins/text-color/TextColorPlugin.d.ts.map +1 -1
  1016. package/dist/plugins/text-color/index.d.ts +2 -0
  1017. package/dist/plugins/text-color/index.d.ts.map +1 -1
  1018. package/dist/plugins/text-color/locales/ar.d.ts +4 -0
  1019. package/dist/plugins/text-color/locales/ar.d.ts.map +1 -0
  1020. package/dist/plugins/text-color/locales/de.d.ts +4 -0
  1021. package/dist/plugins/text-color/locales/de.d.ts.map +1 -0
  1022. package/dist/plugins/text-color/locales/es.d.ts +4 -0
  1023. package/dist/plugins/text-color/locales/es.d.ts.map +1 -0
  1024. package/dist/plugins/text-color/locales/fr.d.ts +4 -0
  1025. package/dist/plugins/text-color/locales/fr.d.ts.map +1 -0
  1026. package/dist/plugins/text-color/locales/hi.d.ts +4 -0
  1027. package/dist/plugins/text-color/locales/hi.d.ts.map +1 -0
  1028. package/dist/plugins/text-color/locales/pt.d.ts +4 -0
  1029. package/dist/plugins/text-color/locales/pt.d.ts.map +1 -0
  1030. package/dist/plugins/text-color/locales/ru.d.ts +4 -0
  1031. package/dist/plugins/text-color/locales/ru.d.ts.map +1 -0
  1032. package/dist/plugins/text-color/locales/zh.d.ts +4 -0
  1033. package/dist/plugins/text-color/locales/zh.d.ts.map +1 -0
  1034. package/dist/plugins/text-color.mjs +1 -4
  1035. package/dist/plugins/text-color.mjs.map +1 -1
  1036. package/dist/plugins/text-direction/DirectionDetection.d.ts +17 -0
  1037. package/dist/plugins/text-direction/DirectionDetection.d.ts.map +1 -0
  1038. package/dist/plugins/text-direction/ShiftDirectionHandler.d.ts +12 -0
  1039. package/dist/plugins/text-direction/ShiftDirectionHandler.d.ts.map +1 -0
  1040. package/dist/plugins/text-direction/TextDirectionCorePlugin.d.ts +35 -0
  1041. package/dist/plugins/text-direction/TextDirectionCorePlugin.d.ts.map +1 -0
  1042. package/dist/plugins/text-direction/TextDirectionLocale.d.ts +20 -0
  1043. package/dist/plugins/text-direction/TextDirectionLocale.d.ts.map +1 -0
  1044. package/dist/plugins/text-direction/TextDirectionMiddleware.d.ts +18 -0
  1045. package/dist/plugins/text-direction/TextDirectionMiddleware.d.ts.map +1 -0
  1046. package/dist/plugins/text-direction/TextDirectionPlugin.d.ts +59 -0
  1047. package/dist/plugins/text-direction/TextDirectionPlugin.d.ts.map +1 -0
  1048. package/dist/plugins/text-direction/index.d.ts +5 -0
  1049. package/dist/plugins/text-direction/index.d.ts.map +1 -0
  1050. package/dist/plugins/text-direction/locales/ar.d.ts +4 -0
  1051. package/dist/plugins/text-direction/locales/ar.d.ts.map +1 -0
  1052. package/dist/plugins/text-direction/locales/de.d.ts +4 -0
  1053. package/dist/plugins/text-direction/locales/de.d.ts.map +1 -0
  1054. package/dist/plugins/text-direction/locales/es.d.ts +4 -0
  1055. package/dist/plugins/text-direction/locales/es.d.ts.map +1 -0
  1056. package/dist/plugins/text-direction/locales/fr.d.ts +4 -0
  1057. package/dist/plugins/text-direction/locales/fr.d.ts.map +1 -0
  1058. package/dist/plugins/text-direction/locales/hi.d.ts +4 -0
  1059. package/dist/plugins/text-direction/locales/hi.d.ts.map +1 -0
  1060. package/dist/plugins/text-direction/locales/pt.d.ts +4 -0
  1061. package/dist/plugins/text-direction/locales/pt.d.ts.map +1 -0
  1062. package/dist/plugins/text-direction/locales/ru.d.ts +4 -0
  1063. package/dist/plugins/text-direction/locales/ru.d.ts.map +1 -0
  1064. package/dist/plugins/text-direction/locales/zh.d.ts +4 -0
  1065. package/dist/plugins/text-direction/locales/zh.d.ts.map +1 -0
  1066. package/dist/plugins/text-direction-advanced/index.d.ts +5 -0
  1067. package/dist/plugins/text-direction-advanced/index.d.ts.map +1 -0
  1068. package/dist/plugins/text-direction-advanced.mjs +2 -0
  1069. package/dist/plugins/text-direction-advanced.mjs.map +1 -0
  1070. package/dist/plugins/text-direction.mjs +2 -0
  1071. package/dist/plugins/text-direction.mjs.map +1 -0
  1072. package/dist/plugins/text-formatting/TextFormattingLocale.d.ts +1 -8
  1073. package/dist/plugins/text-formatting/TextFormattingLocale.d.ts.map +1 -1
  1074. package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts +1 -3
  1075. package/dist/plugins/text-formatting/TextFormattingPlugin.d.ts.map +1 -1
  1076. package/dist/plugins/text-formatting/index.d.ts +2 -0
  1077. package/dist/plugins/text-formatting/index.d.ts.map +1 -1
  1078. package/dist/plugins/text-formatting/locales/ar.d.ts +4 -0
  1079. package/dist/plugins/text-formatting/locales/ar.d.ts.map +1 -0
  1080. package/dist/plugins/text-formatting/locales/de.d.ts +4 -0
  1081. package/dist/plugins/text-formatting/locales/de.d.ts.map +1 -0
  1082. package/dist/plugins/text-formatting/locales/es.d.ts +4 -0
  1083. package/dist/plugins/text-formatting/locales/es.d.ts.map +1 -0
  1084. package/dist/plugins/text-formatting/locales/fr.d.ts +4 -0
  1085. package/dist/plugins/text-formatting/locales/fr.d.ts.map +1 -0
  1086. package/dist/plugins/text-formatting/locales/hi.d.ts +4 -0
  1087. package/dist/plugins/text-formatting/locales/hi.d.ts.map +1 -0
  1088. package/dist/plugins/text-formatting/locales/pt.d.ts +4 -0
  1089. package/dist/plugins/text-formatting/locales/pt.d.ts.map +1 -0
  1090. package/dist/plugins/text-formatting/locales/ru.d.ts +4 -0
  1091. package/dist/plugins/text-formatting/locales/ru.d.ts.map +1 -0
  1092. package/dist/plugins/text-formatting/locales/zh.d.ts +4 -0
  1093. package/dist/plugins/text-formatting/locales/zh.d.ts.map +1 -0
  1094. package/dist/plugins/text-formatting.mjs +1 -4
  1095. package/dist/plugins/text-formatting.mjs.map +1 -1
  1096. package/dist/plugins/toolbar/ToolbarItem.d.ts +2 -18
  1097. package/dist/plugins/toolbar/ToolbarItem.d.ts.map +1 -1
  1098. package/dist/plugins/toolbar/ToolbarKeyboardNav.d.ts +5 -11
  1099. package/dist/plugins/toolbar/ToolbarKeyboardNav.d.ts.map +1 -1
  1100. package/dist/plugins/toolbar/ToolbarLocale.d.ts +2 -8
  1101. package/dist/plugins/toolbar/ToolbarLocale.d.ts.map +1 -1
  1102. package/dist/plugins/toolbar/ToolbarOverflowController.d.ts.map +1 -1
  1103. package/dist/plugins/toolbar/ToolbarPlugin.d.ts +2 -2
  1104. package/dist/plugins/toolbar/ToolbarPlugin.d.ts.map +1 -1
  1105. package/dist/plugins/toolbar/ToolbarPopupController.d.ts +3 -1
  1106. package/dist/plugins/toolbar/ToolbarPopupController.d.ts.map +1 -1
  1107. package/dist/plugins/toolbar/ToolbarRenderers.d.ts +2 -1
  1108. package/dist/plugins/toolbar/ToolbarRenderers.d.ts.map +1 -1
  1109. package/dist/plugins/toolbar/index.d.ts +4 -1
  1110. package/dist/plugins/toolbar/index.d.ts.map +1 -1
  1111. package/dist/plugins/toolbar/locales/ar.d.ts +4 -0
  1112. package/dist/plugins/toolbar/locales/ar.d.ts.map +1 -0
  1113. package/dist/plugins/toolbar/locales/de.d.ts +4 -0
  1114. package/dist/plugins/toolbar/locales/de.d.ts.map +1 -0
  1115. package/dist/plugins/toolbar/locales/es.d.ts +4 -0
  1116. package/dist/plugins/toolbar/locales/es.d.ts.map +1 -0
  1117. package/dist/plugins/toolbar/locales/fr.d.ts +4 -0
  1118. package/dist/plugins/toolbar/locales/fr.d.ts.map +1 -0
  1119. package/dist/plugins/toolbar/locales/hi.d.ts +4 -0
  1120. package/dist/plugins/toolbar/locales/hi.d.ts.map +1 -0
  1121. package/dist/plugins/toolbar/locales/pt.d.ts +4 -0
  1122. package/dist/plugins/toolbar/locales/pt.d.ts.map +1 -0
  1123. package/dist/plugins/toolbar/locales/ru.d.ts +4 -0
  1124. package/dist/plugins/toolbar/locales/ru.d.ts.map +1 -0
  1125. package/dist/plugins/toolbar/locales/zh.d.ts +4 -0
  1126. package/dist/plugins/toolbar/locales/zh.d.ts.map +1 -0
  1127. package/dist/plugins/toolbar.mjs +1 -7
  1128. package/dist/plugins/toolbar.mjs.map +1 -1
  1129. package/dist/presets/FullPreset.d.ts +4 -1
  1130. package/dist/presets/FullPreset.d.ts.map +1 -1
  1131. package/dist/presets/MinimalPreset.d.ts +3 -0
  1132. package/dist/presets/MinimalPreset.d.ts.map +1 -1
  1133. package/dist/presets/PresetTypes.d.ts +2 -0
  1134. package/dist/presets/PresetTypes.d.ts.map +1 -1
  1135. package/dist/presets/full.d.ts +17 -0
  1136. package/dist/presets/full.d.ts.map +1 -0
  1137. package/dist/presets/full.mjs +2 -0
  1138. package/dist/presets/full.mjs.map +1 -0
  1139. package/dist/presets/minimal.d.ts +17 -0
  1140. package/dist/presets/minimal.d.ts.map +1 -0
  1141. package/dist/presets/minimal.mjs +2 -0
  1142. package/dist/presets/minimal.mjs.map +1 -0
  1143. package/dist/presets.d.ts +20 -0
  1144. package/dist/presets.d.ts.map +1 -0
  1145. package/dist/presets.mjs +2 -0
  1146. package/dist/presets.mjs.map +1 -0
  1147. package/dist/serialization/CSSClassCollector.d.ts.map +1 -0
  1148. package/dist/serialization/ContentHTMLTypes.d.ts.map +1 -0
  1149. package/dist/serialization/DocumentParser.d.ts.map +1 -0
  1150. package/dist/{editor → serialization}/DocumentSerializer.d.ts +2 -0
  1151. package/dist/serialization/DocumentSerializer.d.ts.map +1 -0
  1152. package/dist/{editor → serialization}/MarkSerializer.d.ts +3 -2
  1153. package/dist/serialization/MarkSerializer.d.ts.map +1 -0
  1154. package/dist/serialization/index.d.ts +12 -0
  1155. package/dist/serialization/index.d.ts.map +1 -0
  1156. package/dist/state/BlockBoundaryMovement.d.ts +7 -0
  1157. package/dist/state/BlockBoundaryMovement.d.ts.map +1 -0
  1158. package/dist/{model/NavigationUtils.d.ts → state/NavigationQueries.d.ts} +3 -3
  1159. package/dist/state/NavigationQueries.d.ts.map +1 -0
  1160. package/dist/test/PluginTestUtils.d.ts +0 -2
  1161. package/dist/test/PluginTestUtils.d.ts.map +1 -1
  1162. package/dist/test/TestUtils.d.ts +2 -2
  1163. package/dist/test/TestUtils.d.ts.map +1 -1
  1164. package/dist/view/BlockRendering.d.ts +10 -0
  1165. package/dist/view/BlockRendering.d.ts.map +1 -0
  1166. package/dist/view/BlockWrapperManagement.d.ts +27 -0
  1167. package/dist/view/BlockWrapperManagement.d.ts.map +1 -0
  1168. package/dist/view/CaretNavigation.d.ts +1 -8
  1169. package/dist/view/CaretNavigation.d.ts.map +1 -1
  1170. package/dist/view/CursorWrapper.d.ts.map +1 -1
  1171. package/dist/view/DecorationRendering.d.ts +17 -0
  1172. package/dist/view/DecorationRendering.d.ts.map +1 -0
  1173. package/dist/view/DomUtils.d.ts +4 -0
  1174. package/dist/view/DomUtils.d.ts.map +1 -0
  1175. package/dist/view/EditorView.d.ts +7 -10
  1176. package/dist/view/EditorView.d.ts.map +1 -1
  1177. package/dist/view/GapCursorNavigation.d.ts +12 -0
  1178. package/dist/view/GapCursorNavigation.d.ts.map +1 -0
  1179. package/dist/view/InlineRendering.d.ts +11 -0
  1180. package/dist/view/InlineRendering.d.ts.map +1 -0
  1181. package/dist/view/MarkRendering.d.ts +5 -0
  1182. package/dist/view/MarkRendering.d.ts.map +1 -1
  1183. package/dist/view/Reconciler.d.ts +2 -6
  1184. package/dist/view/Reconciler.d.ts.map +1 -1
  1185. package/dist/view/SelectionSync.d.ts +41 -2
  1186. package/dist/view/SelectionSync.d.ts.map +1 -1
  1187. package/dist/view/ViewMovementCommands.d.ts.map +1 -1
  1188. package/package.json +208 -8
  1189. package/dist/chunks/AttrRegistry-D9Jx_RVb.mjs +0 -16
  1190. package/dist/chunks/AttrRegistry-D9Jx_RVb.mjs.map +0 -1
  1191. package/dist/chunks/AttributedMarkCommands-BtLea72z.mjs +0 -80
  1192. package/dist/chunks/CaretNavigation-7JYpIKbs.mjs +0 -311
  1193. package/dist/chunks/CaretNavigation-7JYpIKbs.mjs.map +0 -1
  1194. package/dist/chunks/ColorGrid--lBQ7jCK.mjs +0 -81
  1195. package/dist/chunks/ColorGrid--lBQ7jCK.mjs.map +0 -1
  1196. package/dist/chunks/ColorPickerPopup-TpIRlXc8.mjs +0 -37
  1197. package/dist/chunks/ColorPickerPopup-TpIRlXc8.mjs.map +0 -1
  1198. package/dist/chunks/ColorValidation-CV4f1wu6.mjs +0 -39
  1199. package/dist/chunks/Document-Brtw2jL1.mjs +0 -190
  1200. package/dist/chunks/HTMLUtils-DTqQzcKR.mjs +0 -35
  1201. package/dist/chunks/HTMLUtils-DTqQzcKR.mjs.map +0 -1
  1202. package/dist/chunks/MarkCommands-6RUJ4L3r.mjs +0 -94
  1203. package/dist/chunks/NavigationUtils-Cspt2ZrK.mjs +0 -47
  1204. package/dist/chunks/NavigationUtils-Cspt2ZrK.mjs.map +0 -1
  1205. package/dist/chunks/NodeResolver-C2XYkeOi.mjs +0 -81
  1206. package/dist/chunks/NodeResolver-C2XYkeOi.mjs.map +0 -1
  1207. package/dist/chunks/NodeSpec-NZVvcCuH.mjs +0 -8
  1208. package/dist/chunks/NodeSpec-NZVvcCuH.mjs.map +0 -1
  1209. package/dist/chunks/Platform-S_xqIqcM.mjs +0 -26
  1210. package/dist/chunks/Platform-S_xqIqcM.mjs.map +0 -1
  1211. package/dist/chunks/PopupPositioning-CgjgAKjp.mjs +0 -34
  1212. package/dist/chunks/PopupPositioning-CgjgAKjp.mjs.map +0 -1
  1213. package/dist/chunks/RangeIterator-Bh4Vl_6D.mjs +0 -16
  1214. package/dist/chunks/Selection-BRTab5hO.mjs +0 -52
  1215. package/dist/chunks/StyleRuntime-CP4NCwKT.mjs +0 -235
  1216. package/dist/chunks/ToolbarItem-BpZggUGo.mjs +0 -8
  1217. package/dist/chunks/ToolbarItem-BpZggUGo.mjs.map +0 -1
  1218. package/dist/chunks/ToolbarKeyboardNav-DhpL8zNV.mjs +0 -46
  1219. package/dist/chunks/ToolbarKeyboardNav-DhpL8zNV.mjs.map +0 -1
  1220. package/dist/chunks/TypeBrands-C09nE2qO.mjs +0 -27
  1221. package/dist/chunks/index--7pBhSF4.mjs +0 -542
  1222. package/dist/chunks/index--7pBhSF4.mjs.map +0 -1
  1223. package/dist/chunks/index-BXCkjDax.mjs +0 -161
  1224. package/dist/chunks/index-BXCkjDax.mjs.map +0 -1
  1225. package/dist/chunks/index-BXtw5PNN.mjs +0 -39
  1226. package/dist/chunks/index-BXtw5PNN.mjs.map +0 -1
  1227. package/dist/chunks/index-BcDRT4K2.mjs +0 -1019
  1228. package/dist/chunks/index-BcDRT4K2.mjs.map +0 -1
  1229. package/dist/chunks/index-BjFBWBOC.mjs +0 -168
  1230. package/dist/chunks/index-BjFBWBOC.mjs.map +0 -1
  1231. package/dist/chunks/index-C1opJocO.mjs +0 -92
  1232. package/dist/chunks/index-C1opJocO.mjs.map +0 -1
  1233. package/dist/chunks/index-CCyqQ0Dz.mjs +0 -228
  1234. package/dist/chunks/index-CCyqQ0Dz.mjs.map +0 -1
  1235. package/dist/chunks/index-Cd3uJLP3.mjs +0 -73
  1236. package/dist/chunks/index-Cd3uJLP3.mjs.map +0 -1
  1237. package/dist/chunks/index-DSAuGP4n.mjs +0 -410
  1238. package/dist/chunks/index-DSAuGP4n.mjs.map +0 -1
  1239. package/dist/chunks/index-DtRfqsq5.mjs +0 -924
  1240. package/dist/chunks/index-DtRfqsq5.mjs.map +0 -1
  1241. package/dist/chunks/index-Dum8yE_t.mjs +0 -62
  1242. package/dist/chunks/index-Dum8yE_t.mjs.map +0 -1
  1243. package/dist/chunks/index-DxbQirny.mjs +0 -63
  1244. package/dist/chunks/index-DxbQirny.mjs.map +0 -1
  1245. package/dist/chunks/index-ErZ5_a1o.mjs +0 -296
  1246. package/dist/chunks/index-ErZ5_a1o.mjs.map +0 -1
  1247. package/dist/chunks/index-WpbK_s_H.mjs +0 -119
  1248. package/dist/chunks/index-WpbK_s_H.mjs.map +0 -1
  1249. package/dist/chunks/index-WrqH1wG8.mjs +0 -50
  1250. package/dist/chunks/index-WrqH1wG8.mjs.map +0 -1
  1251. package/dist/chunks/index-fsVJLutn.mjs +0 -118
  1252. package/dist/chunks/index-fsVJLutn.mjs.map +0 -1
  1253. package/dist/chunks/index-fx3KIap3.mjs +0 -50
  1254. package/dist/chunks/index-fx3KIap3.mjs.map +0 -1
  1255. package/dist/chunks/index-oOJo-ywB.mjs +0 -467
  1256. package/dist/chunks/index-oOJo-ywB.mjs.map +0 -1
  1257. package/dist/chunks/index-toj88jtL.mjs +0 -101
  1258. package/dist/chunks/index-toj88jtL.mjs.map +0 -1
  1259. package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs +0 -34
  1260. package/dist/chunks/resolvePluginLocale-B4w1OkPy.mjs.map +0 -1
  1261. package/dist/editor/CSSClassCollector.d.ts.map +0 -1
  1262. package/dist/editor/ContentHTMLTypes.d.ts.map +0 -1
  1263. package/dist/editor/DocumentParser.d.ts.map +0 -1
  1264. package/dist/editor/DocumentSerializer.d.ts.map +0 -1
  1265. package/dist/editor/MarkSerializer.d.ts.map +0 -1
  1266. package/dist/editor/PaperSize.d.ts.map +0 -1
  1267. package/dist/i18n/resolvePluginLocale.d.ts +0 -3
  1268. package/dist/i18n/resolvePluginLocale.d.ts.map +0 -1
  1269. package/dist/model/BuiltinSpecs.d.ts.map +0 -1
  1270. package/dist/model/HTMLParser.d.ts.map +0 -1
  1271. package/dist/model/NavigationUtils.d.ts.map +0 -1
  1272. package/dist/view/Platform.d.ts.map +0 -1
  1273. /package/dist/{input → model}/InputRule.d.ts +0 -0
  1274. /package/dist/{input → model}/InputRuleRegistry.d.ts +0 -0
  1275. /package/dist/{input → model}/Keymap.d.ts +0 -0
  1276. /package/dist/{input → model}/KeymapRegistry.d.ts +0 -0
  1277. /package/dist/{editor → model}/PaperSize.d.ts +0 -0
  1278. /package/dist/{editor → serialization}/CSSClassCollector.d.ts +0 -0
  1279. /package/dist/{editor → serialization}/ContentHTMLTypes.d.ts +0 -0
  1280. /package/dist/{editor → serialization}/DocumentParser.d.ts +0 -0
@@ -1,92 +0,0 @@
1
- import { r as t } from "./resolvePluginLocale-B4w1OkPy.mjs";
2
- import { m as s } from "./TypeBrands-C09nE2qO.mjs";
3
- import { f as i } from "./ToolbarItem-BpZggUGo.mjs";
4
- import { e, b as r } from "./MarkCommands-6RUJ4L3r.mjs";
5
- const o = { superscriptLabel: "Superscript", superscriptTooltip: (t2) => `Superscript (${t2})`, subscriptLabel: "Subscript", subscriptTooltip: (t2) => `Subscript (${t2})` }, p = { en: o, de: { superscriptLabel: "Hochgestellt", superscriptTooltip: (t2) => `Hochgestellt (${t2})`, subscriptLabel: "Tiefgestellt", subscriptTooltip: (t2) => `Tiefgestellt (${t2})` }, es: { superscriptLabel: "Superíndice", superscriptTooltip: (t2) => `Superíndice (${t2})`, subscriptLabel: "Subíndice", subscriptTooltip: (t2) => `Subíndice (${t2})` }, fr: { superscriptLabel: "Exposant", superscriptTooltip: (t2) => `Exposant (${t2})`, subscriptLabel: "Indice", subscriptTooltip: (t2) => `Indice (${t2})` }, zh: { superscriptLabel: "上标", superscriptTooltip: (t2) => `上标 (${t2})`, subscriptLabel: "下标", subscriptTooltip: (t2) => `下标 (${t2})` }, ru: { superscriptLabel: "Надстрочный", superscriptTooltip: (t2) => `Надстрочный (${t2})`, subscriptLabel: "Подстрочный", subscriptTooltip: (t2) => `Подстрочный (${t2})` }, ar: { superscriptLabel: "مرتفع", superscriptTooltip: (t2) => `مرتفع (${t2})`, subscriptLabel: "منخفض", subscriptTooltip: (t2) => `منخفض (${t2})` }, hi: { superscriptLabel: "सुपरस्क्रिप्ट", superscriptTooltip: (t2) => `सुपरस्क्रिप्ट (${t2})`, subscriptLabel: "सबस्क्रिप्ट", subscriptTooltip: (t2) => `सबस्क्रिप्ट (${t2})` } }, c = { superscript: true, subscript: true }, a = [{ type: "superscript", opposite: "subscript", configKey: "superscript", rank: 4, tag: "sup", label: "Superscript", icon: ['<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">', '<path d="M16 7.41L11.41 12 16 16.59 14.59 18l-6-6 6-6z"', ' fill="none"/>', '<path d="M9.64 7.64c.23-.5.36-1.05.36-1.64', " 0-2.21-1.79-4-4-4H2v14h4.36c2.34 0 4.24-1.9", " 4.24-4.24 0-1.6-.89-2.99-2.2-3.71zM4.5 4.5H6c.83", " 0 1.5.67 1.5 1.5S6.83 7.5 6 7.5H4.5v-3zm2 9H4.5v-3H6.5c.83", ' 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z" fill="none"/>', '<path d="M15.97 3.84c0-.47.19-.91.53-1.21.34-.31.8-.49', " 1.3-.49.5 0 .95.18 1.28.48.32.3.5.7.51 1.15h1.59c-.02", "-.96-.43-1.83-1.13-2.42C19.36.77 18.45.44 17.5.44c-.88", " 0-1.74.28-2.39.8-.67.53-1.06 1.28-1.06 2.1 0 .76.34", " 1.47.93 1.97.59.49 1.41.84 2.32 1.15.7.24 1.26.5 1.62.8.35.3.53.64.53", " 1.02 0 .48-.2.93-.55 1.24-.36.3-.84.48-1.37.48-.55 0-1.04-.2-1.39-.54", "-.34-.33-.53-.8-.53-1.32h-1.58c.01 1.02.43 1.95 1.16 2.57.72.62 1.67.96", " 2.67.96.92 0 1.81-.3 2.46-.84.67-.56 1.04-1.33 1.04-2.18 0-.81-.36-1.56", "-.99-2.08-.62-.51-1.48-.88-2.43-1.2-.67-.23-1.2-.47-1.52-.75-.32-.27-.46", '-.59-.46-.94z"/>', '<path d="M5.88 20h2.66l3.4-5.42L15.3 20h2.67l-4.73-7.38', ' 4.37-6.62h-2.6l-3.07 4.98L8.92 6h-2.6l4.26 6.58z"/>', "</svg>"].join(""), keyBinding: "Mod-.", toolbarPriority: 50, toHTMLString: (t2) => `<sup>${t2}</sup>`, parseHTML: [{ tag: "sup" }], sanitize: { tags: ["sup"] } }, { type: "subscript", opposite: "superscript", configKey: "subscript", rank: 4, tag: "sub", label: "Subscript", icon: ['<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">', '<path d="M15.97 16.84c0-.47.19-.91.53-1.21.34-.31.8-.49', " 1.3-.49.5 0 .95.18 1.28.48.32.3.5.7.51 1.15h1.59c-.02", "-.96-.43-1.83-1.13-2.42-.7-.58-1.61-.91-2.56-.91-.88", " 0-1.74.28-2.39.8-.67.53-1.06 1.28-1.06 2.1 0 .76.34", " 1.47.93 1.97.59.49 1.41.84 2.32 1.15.7.24 1.26.5 1.62.8.35.3.53.64.53", " 1.02 0 .48-.2.93-.55 1.24-.36.3-.84.48-1.37.48-.55 0-1.04-.2-1.39-.54", "-.34-.33-.53-.8-.53-1.32h-1.58c.01 1.02.43 1.95 1.16 2.57.72.62 1.67.96", " 2.67.96.92 0 1.81-.3 2.46-.84.67-.56 1.04-1.33 1.04-2.18 0-.81-.36-1.56", "-.99-2.08-.62-.51-1.48-.88-2.43-1.2-.67-.23-1.2-.47-1.52-.75-.32-.27-.46", '-.59-.46-.94z"/>', '<path d="M5.88 18h2.66l3.4-5.42L15.3 18h2.67l-4.73-7.38', ' 4.37-6.62h-2.6l-3.07 4.98L8.92 4h-2.6l4.26 6.58z"/>', "</svg>"].join(""), keyBinding: "Mod-,", toolbarPriority: 51, toHTMLString: (t2) => `<sub>${t2}</sub>`, parseHTML: [{ tag: "sub" }], sanitize: { tags: ["sub"] } }];
6
- class l {
7
- id = "super-sub";
8
- name = "Superscript & Subscript";
9
- priority = 23;
10
- config;
11
- locale;
12
- constructor(t2) {
13
- this.config = { ...c, ...t2 };
14
- }
15
- init(s2) {
16
- this.locale = t(p, s2, this.config.locale);
17
- const i2 = a.filter((t2) => this.config[t2.configKey]), e2 = i2.filter((t2) => this.isToolbarVisible(t2.configKey)).at(-1);
18
- for (const t2 of i2) {
19
- const i3 = !!this.config.separatorAfter && t2 === e2;
20
- this.registerMark(s2, t2, i3);
21
- }
22
- this.registerKeymaps(s2, i2), this.registerExclusivityMiddleware(s2, i2), this.registerDisabledToolbarItems(s2);
23
- }
24
- registerMark(t2, o2, p2) {
25
- const c2 = n(o2.type), a2 = this.isToolbarVisible(o2.configKey);
26
- if (t2.registerMarkSpec({ type: o2.type, rank: o2.rank, toDOM: () => document.createElement(o2.tag), toHTMLString: (t3, s2) => o2.toHTMLString(s2), parseHTML: o2.parseHTML, sanitize: o2.sanitize }), t2.registerCommand(c2, () => {
27
- const i2 = e(t2.getState(), s(o2.type));
28
- return !!i2 && (t2.dispatch(i2), true);
29
- }), a2) {
30
- const e2 = "superscript" === o2.type ? this.locale.superscriptLabel : this.locale.subscriptLabel, a3 = "superscript" === o2.type ? this.locale.superscriptTooltip(i(o2.keyBinding)) : this.locale.subscriptTooltip(i(o2.keyBinding));
31
- t2.registerToolbarItem({ id: o2.type, group: "format", icon: o2.icon, label: e2, tooltip: a3, command: c2, priority: o2.toolbarPriority, separatorAfter: p2, isActive: (t3) => r(t3, s(o2.type)) });
32
- }
33
- }
34
- registerKeymaps(t2, s2) {
35
- const i2 = {};
36
- for (const e2 of s2) {
37
- const s3 = n(e2.type);
38
- i2[e2.keyBinding] = () => t2.executeCommand(s3);
39
- }
40
- Object.keys(i2).length > 0 && t2.registerKeymap(i2);
41
- }
42
- registerExclusivityMiddleware(t2, i2) {
43
- i2.some((t3) => "superscript" === t3.type) && i2.some((t3) => "subscript" === t3.type) && t2.registerMiddleware((t3, i3, e2) => {
44
- let r2 = false;
45
- const o2 = [];
46
- for (const i4 of t3.steps) {
47
- if ("addMark" !== i4.type) {
48
- o2.push(i4);
49
- continue;
50
- }
51
- const t4 = i4.mark.type, e3 = a.find((s2) => s2.type === t4);
52
- if (!e3) {
53
- o2.push(i4);
54
- continue;
55
- }
56
- r2 = true;
57
- const p3 = { type: "removeMark", blockId: i4.blockId, from: i4.from, to: i4.to, mark: { type: s(e3.opposite) }, ...i4.path ? { path: i4.path } : {} };
58
- o2.push(p3, i4);
59
- }
60
- let p2 = t3.storedMarksAfter;
61
- if (p2) {
62
- const t4 = p2.some((t5) => "superscript" === t5.type), s2 = p2.some((t5) => "subscript" === t5.type);
63
- if (t4 && s2) {
64
- const t5 = p2.findLastIndex((t6) => "superscript" === t6.type) > p2.findLastIndex((t6) => "subscript" === t6.type) ? "subscript" : "superscript";
65
- p2 = p2.filter((s3) => s3.type !== t5), r2 = true;
66
- }
67
- }
68
- e2(r2 ? { ...t3, steps: o2, storedMarksAfter: p2 } : t3);
69
- }, { name: "super-sub:exclusivity" });
70
- }
71
- registerDisabledToolbarItems(t2) {
72
- if (this.config.toolbar) for (const s2 of a) {
73
- const i2 = this.config[s2.configKey], e2 = this.config.toolbar[s2.configKey] ?? true;
74
- if (!i2 && e2) {
75
- const i3 = "superscript" === s2.type ? this.locale.superscriptLabel : this.locale.subscriptLabel;
76
- t2.registerToolbarItem({ id: s2.type, group: "format", icon: s2.icon, label: i3, command: n(s2.type), priority: s2.toolbarPriority, isEnabled: () => false });
77
- }
78
- }
79
- }
80
- isToolbarVisible(t2) {
81
- return !this.config.toolbar || (this.config.toolbar[t2] ?? true);
82
- }
83
- }
84
- function n(t2) {
85
- return `toggle${t2.charAt(0).toUpperCase()}${t2.slice(1)}`;
86
- }
87
- export {
88
- l as S,
89
- p as a,
90
- o as b
91
- };
92
- //# sourceMappingURL=index-C1opJocO.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-C1opJocO.mjs","sources":["../../src/plugins/super-sub/SuperSubLocale.ts","../../src/plugins/super-sub/SuperSubPlugin.ts"],"sourcesContent":["/**\n * Locale interface and default English locale for the SuperSubPlugin.\n */\n\n// --- Locale Interface ---\n\nexport interface SuperSubLocale {\n\treadonly superscriptLabel: string;\n\treadonly superscriptTooltip: (shortcut: string) => string;\n\treadonly subscriptLabel: string;\n\treadonly subscriptTooltip: (shortcut: string) => string;\n}\n\n// --- Default English Locale ---\n\nexport const SUPER_SUB_LOCALE_EN: SuperSubLocale = {\n\tsuperscriptLabel: 'Superscript',\n\tsuperscriptTooltip: (shortcut: string) => `Superscript (${shortcut})`,\n\tsubscriptLabel: 'Subscript',\n\tsubscriptTooltip: (shortcut: string) => `Subscript (${shortcut})`,\n};\n\n// --- German Locale ---\n\nexport const SUPER_SUB_LOCALE_DE: SuperSubLocale = {\n\tsuperscriptLabel: 'Hochgestellt',\n\tsuperscriptTooltip: (shortcut: string) => `Hochgestellt (${shortcut})`,\n\tsubscriptLabel: 'Tiefgestellt',\n\tsubscriptTooltip: (shortcut: string) => `Tiefgestellt (${shortcut})`,\n};\n\n// --- Spanish Locale ---\n\nexport const SUPER_SUB_LOCALE_ES: SuperSubLocale = {\n\tsuperscriptLabel: 'Superíndice',\n\tsuperscriptTooltip: (shortcut: string) => `Superíndice (${shortcut})`,\n\tsubscriptLabel: 'Subíndice',\n\tsubscriptTooltip: (shortcut: string) => `Subíndice (${shortcut})`,\n};\n\n// --- French Locale ---\n\nexport const SUPER_SUB_LOCALE_FR: SuperSubLocale = {\n\tsuperscriptLabel: 'Exposant',\n\tsuperscriptTooltip: (shortcut: string) => `Exposant (${shortcut})`,\n\tsubscriptLabel: 'Indice',\n\tsubscriptTooltip: (shortcut: string) => `Indice (${shortcut})`,\n};\n\n// --- Chinese (Simplified) Locale ---\n\nexport const SUPER_SUB_LOCALE_ZH: SuperSubLocale = {\n\tsuperscriptLabel: '上标',\n\tsuperscriptTooltip: (shortcut: string) => `上标 (${shortcut})`,\n\tsubscriptLabel: '下标',\n\tsubscriptTooltip: (shortcut: string) => `下标 (${shortcut})`,\n};\n\n// --- Russian Locale ---\n\nexport const SUPER_SUB_LOCALE_RU: SuperSubLocale = {\n\tsuperscriptLabel: 'Надстрочный',\n\tsuperscriptTooltip: (shortcut: string) => `Надстрочный (${shortcut})`,\n\tsubscriptLabel: 'Подстрочный',\n\tsubscriptTooltip: (shortcut: string) => `Подстрочный (${shortcut})`,\n};\n\n// --- Arabic Locale ---\n\nexport const SUPER_SUB_LOCALE_AR: SuperSubLocale = {\n\tsuperscriptLabel: 'مرتفع',\n\tsuperscriptTooltip: (shortcut: string) => `مرتفع (${shortcut})`,\n\tsubscriptLabel: 'منخفض',\n\tsubscriptTooltip: (shortcut: string) => `منخفض (${shortcut})`,\n};\n\n// --- Hindi Locale ---\n\nexport const SUPER_SUB_LOCALE_HI: SuperSubLocale = {\n\tsuperscriptLabel: 'सुपरस्क्रिप्ट',\n\tsuperscriptTooltip: (shortcut: string) => `सुपरस्क्रिप्ट (${shortcut})`,\n\tsubscriptLabel: 'सबस्क्रिप्ट',\n\tsubscriptTooltip: (shortcut: string) => `सबस्क्रिप्ट (${shortcut})`,\n};\n\n// --- Locale Map ---\n\nexport const SUPER_SUB_LOCALES: Record<string, SuperSubLocale> = {\n\ten: SUPER_SUB_LOCALE_EN,\n\tde: SUPER_SUB_LOCALE_DE,\n\tes: SUPER_SUB_LOCALE_ES,\n\tfr: SUPER_SUB_LOCALE_FR,\n\tzh: SUPER_SUB_LOCALE_ZH,\n\tru: SUPER_SUB_LOCALE_RU,\n\tar: SUPER_SUB_LOCALE_AR,\n\thi: SUPER_SUB_LOCALE_HI,\n};\n","/**\n * SuperSubPlugin: registers superscript and subscript inline marks with\n * MarkSpecs, toggle commands, keyboard shortcuts, toolbar buttons, and\n * a middleware that enforces mutual exclusivity between the two marks.\n *\n * Data-driven — each mark type is defined declaratively and all\n * registrations are derived from the same definition table.\n */\n\nimport { isMarkActive, toggleMark } from '../../commands/Commands.js';\nimport { resolvePluginLocale } from '../../i18n/resolvePluginLocale.js';\nimport type { Mark } from '../../model/Document.js';\nimport type { ParseRule } from '../../model/ParseRule.js';\nimport type { SanitizeConfig } from '../../model/SanitizeConfig.js';\nimport { markType as mkType } from '../../model/TypeBrands.js';\nimport type { RemoveMarkStep, Step } from '../../state/Transaction.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { formatShortcut } from '../toolbar/ToolbarItem.js';\nimport { SUPER_SUB_LOCALES, type SuperSubLocale } from './SuperSubLocale.js';\n\n// --- Attribute Registry Augmentation ---\n\ndeclare module '../../model/AttrRegistry.js' {\n\tinterface MarkAttrRegistry {\n\t\tsuperscript: Record<string, never>;\n\t\tsubscript: Record<string, never>;\n\t}\n}\n\n// --- Configuration ---\n\n/** Controls toolbar button visibility per mark. */\nexport interface SuperSubToolbarConfig {\n\treadonly superscript?: boolean;\n\treadonly subscript?: boolean;\n}\n\n/** Controls which marks are enabled and which toolbar buttons are shown. */\nexport interface SuperSubConfig {\n\treadonly superscript: boolean;\n\treadonly subscript: boolean;\n\treadonly toolbar?: SuperSubToolbarConfig;\n\t/** When true, a separator is rendered after the last toolbar item. */\n\treadonly separatorAfter?: boolean;\n\treadonly locale?: SuperSubLocale;\n}\n\nconst DEFAULT_CONFIG: SuperSubConfig = {\n\tsuperscript: true,\n\tsubscript: true,\n};\n\n// --- Mark Definitions ---\n\ninterface MarkDefinition {\n\treadonly type: 'superscript' | 'subscript';\n\treadonly opposite: 'superscript' | 'subscript';\n\treadonly configKey: keyof Omit<SuperSubConfig, 'toolbar' | 'separatorAfter' | 'locale'>;\n\treadonly rank: number;\n\treadonly tag: string;\n\treadonly label: string;\n\treadonly icon: string;\n\treadonly keyBinding: string;\n\treadonly toolbarPriority: number;\n\treadonly toHTMLString: (content: string) => string;\n\treadonly parseHTML: readonly ParseRule[];\n\treadonly sanitize: SanitizeConfig;\n}\n\nconst SUPERSCRIPT_ICON: string = [\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">',\n\t'<path d=\"M16 7.41L11.41 12 16 16.59 14.59 18l-6-6 6-6z\"',\n\t' fill=\"none\"/>',\n\t'<path d=\"M9.64 7.64c.23-.5.36-1.05.36-1.64',\n\t' 0-2.21-1.79-4-4-4H2v14h4.36c2.34 0 4.24-1.9',\n\t' 4.24-4.24 0-1.6-.89-2.99-2.2-3.71zM4.5 4.5H6c.83',\n\t' 0 1.5.67 1.5 1.5S6.83 7.5 6 7.5H4.5v-3zm2 9H4.5v-3H6.5c.83',\n\t' 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\" fill=\"none\"/>',\n\t'<path d=\"M15.97 3.84c0-.47.19-.91.53-1.21.34-.31.8-.49',\n\t' 1.3-.49.5 0 .95.18 1.28.48.32.3.5.7.51 1.15h1.59c-.02',\n\t'-.96-.43-1.83-1.13-2.42C19.36.77 18.45.44 17.5.44c-.88',\n\t' 0-1.74.28-2.39.8-.67.53-1.06 1.28-1.06 2.1 0 .76.34',\n\t' 1.47.93 1.97.59.49 1.41.84 2.32 1.15.7.24 1.26.5 1.62.8.35.3.53.64.53',\n\t' 1.02 0 .48-.2.93-.55 1.24-.36.3-.84.48-1.37.48-.55 0-1.04-.2-1.39-.54',\n\t'-.34-.33-.53-.8-.53-1.32h-1.58c.01 1.02.43 1.95 1.16 2.57.72.62 1.67.96',\n\t' 2.67.96.92 0 1.81-.3 2.46-.84.67-.56 1.04-1.33 1.04-2.18 0-.81-.36-1.56',\n\t'-.99-2.08-.62-.51-1.48-.88-2.43-1.2-.67-.23-1.2-.47-1.52-.75-.32-.27-.46',\n\t'-.59-.46-.94z\"/>',\n\t'<path d=\"M5.88 20h2.66l3.4-5.42L15.3 20h2.67l-4.73-7.38',\n\t' 4.37-6.62h-2.6l-3.07 4.98L8.92 6h-2.6l4.26 6.58z\"/>',\n\t'</svg>',\n].join('');\n\nconst SUBSCRIPT_ICON: string = [\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">',\n\t'<path d=\"M15.97 16.84c0-.47.19-.91.53-1.21.34-.31.8-.49',\n\t' 1.3-.49.5 0 .95.18 1.28.48.32.3.5.7.51 1.15h1.59c-.02',\n\t'-.96-.43-1.83-1.13-2.42-.7-.58-1.61-.91-2.56-.91-.88',\n\t' 0-1.74.28-2.39.8-.67.53-1.06 1.28-1.06 2.1 0 .76.34',\n\t' 1.47.93 1.97.59.49 1.41.84 2.32 1.15.7.24 1.26.5 1.62.8.35.3.53.64.53',\n\t' 1.02 0 .48-.2.93-.55 1.24-.36.3-.84.48-1.37.48-.55 0-1.04-.2-1.39-.54',\n\t'-.34-.33-.53-.8-.53-1.32h-1.58c.01 1.02.43 1.95 1.16 2.57.72.62 1.67.96',\n\t' 2.67.96.92 0 1.81-.3 2.46-.84.67-.56 1.04-1.33 1.04-2.18 0-.81-.36-1.56',\n\t'-.99-2.08-.62-.51-1.48-.88-2.43-1.2-.67-.23-1.2-.47-1.52-.75-.32-.27-.46',\n\t'-.59-.46-.94z\"/>',\n\t'<path d=\"M5.88 18h2.66l3.4-5.42L15.3 18h2.67l-4.73-7.38',\n\t' 4.37-6.62h-2.6l-3.07 4.98L8.92 4h-2.6l4.26 6.58z\"/>',\n\t'</svg>',\n].join('');\n\nconst MARK_DEFINITIONS: readonly MarkDefinition[] = [\n\t{\n\t\ttype: 'superscript',\n\t\topposite: 'subscript',\n\t\tconfigKey: 'superscript',\n\t\trank: 4,\n\t\ttag: 'sup',\n\t\tlabel: 'Superscript',\n\t\ticon: SUPERSCRIPT_ICON,\n\t\tkeyBinding: 'Mod-.',\n\t\ttoolbarPriority: 50,\n\t\ttoHTMLString: (content) => `<sup>${content}</sup>`,\n\t\tparseHTML: [{ tag: 'sup' }],\n\t\tsanitize: { tags: ['sup'] },\n\t},\n\t{\n\t\ttype: 'subscript',\n\t\topposite: 'superscript',\n\t\tconfigKey: 'subscript',\n\t\trank: 4,\n\t\ttag: 'sub',\n\t\tlabel: 'Subscript',\n\t\ticon: SUBSCRIPT_ICON,\n\t\tkeyBinding: 'Mod-,',\n\t\ttoolbarPriority: 51,\n\t\ttoHTMLString: (content) => `<sub>${content}</sub>`,\n\t\tparseHTML: [{ tag: 'sub' }],\n\t\tsanitize: { tags: ['sub'] },\n\t},\n];\n\n// --- Plugin ---\n\nexport class SuperSubPlugin implements Plugin {\n\treadonly id = 'super-sub';\n\treadonly name = 'Superscript & Subscript';\n\treadonly priority = 23;\n\n\tprivate readonly config: SuperSubConfig;\n\tprivate locale!: SuperSubLocale;\n\n\tconstructor(config?: Partial<SuperSubConfig>) {\n\t\tthis.config = { ...DEFAULT_CONFIG, ...config };\n\t}\n\n\tinit(context: PluginContext): void {\n\t\tthis.locale = resolvePluginLocale(SUPER_SUB_LOCALES, context, this.config.locale);\n\n\t\tconst enabledMarks: MarkDefinition[] = MARK_DEFINITIONS.filter(\n\t\t\t(def) => this.config[def.configKey],\n\t\t);\n\n\t\tconst visibleToolbarMarks: MarkDefinition[] = enabledMarks.filter((def) =>\n\t\t\tthis.isToolbarVisible(def.configKey),\n\t\t);\n\t\tconst lastVisibleMark: MarkDefinition | undefined = visibleToolbarMarks.at(-1);\n\n\t\tfor (const def of enabledMarks) {\n\t\t\tconst isSeparatorTarget: boolean = !!this.config.separatorAfter && def === lastVisibleMark;\n\t\t\tthis.registerMark(context, def, isSeparatorTarget);\n\t\t}\n\n\t\tthis.registerKeymaps(context, enabledMarks);\n\t\tthis.registerExclusivityMiddleware(context, enabledMarks);\n\t\tthis.registerDisabledToolbarItems(context);\n\t}\n\n\tprivate registerMark(context: PluginContext, def: MarkDefinition, separatorAfter: boolean): void {\n\t\tconst commandName: string = toCommandName(def.type);\n\t\tconst toolbarVisible: boolean = this.isToolbarVisible(def.configKey);\n\n\t\tcontext.registerMarkSpec({\n\t\t\ttype: def.type,\n\t\t\trank: def.rank,\n\t\t\ttoDOM() {\n\t\t\t\treturn document.createElement(def.tag);\n\t\t\t},\n\t\t\ttoHTMLString: (_mark, content) => def.toHTMLString(content),\n\t\t\tparseHTML: def.parseHTML,\n\t\t\tsanitize: def.sanitize,\n\t\t});\n\n\t\tcontext.registerCommand(commandName, () => {\n\t\t\tconst tr = toggleMark(context.getState(), mkType(def.type));\n\t\t\tif (tr) {\n\t\t\t\tcontext.dispatch(tr);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\n\t\tif (toolbarVisible) {\n\t\t\tconst label: string =\n\t\t\t\tdef.type === 'superscript' ? this.locale.superscriptLabel : this.locale.subscriptLabel;\n\t\t\tconst tooltip: string =\n\t\t\t\tdef.type === 'superscript'\n\t\t\t\t\t? this.locale.superscriptTooltip(formatShortcut(def.keyBinding))\n\t\t\t\t\t: this.locale.subscriptTooltip(formatShortcut(def.keyBinding));\n\t\t\tcontext.registerToolbarItem({\n\t\t\t\tid: def.type,\n\t\t\t\tgroup: 'format',\n\t\t\t\ticon: def.icon,\n\t\t\t\tlabel,\n\t\t\t\ttooltip,\n\t\t\t\tcommand: commandName,\n\t\t\t\tpriority: def.toolbarPriority,\n\t\t\t\tseparatorAfter,\n\t\t\t\tisActive: (state) => isMarkActive(state, mkType(def.type)),\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate registerKeymaps(context: PluginContext, marks: readonly MarkDefinition[]): void {\n\t\tconst keymap: Record<string, () => boolean> = {};\n\t\tfor (const def of marks) {\n\t\t\tconst commandName: string = toCommandName(def.type);\n\t\t\tkeymap[def.keyBinding] = () => context.executeCommand(commandName);\n\t\t}\n\t\tif (Object.keys(keymap).length > 0) {\n\t\t\tcontext.registerKeymap(keymap);\n\t\t}\n\t}\n\n\t/**\n\t * Ensures superscript and subscript are mutually exclusive.\n\t * When an addMark step for one type is found, a removeMark step\n\t * for the opposite type is injected. For stored marks, the opposite\n\t * mark is filtered out.\n\t */\n\tprivate registerExclusivityMiddleware(\n\t\tcontext: PluginContext,\n\t\tenabledMarks: readonly MarkDefinition[],\n\t): void {\n\t\tconst bothEnabled: boolean =\n\t\t\tenabledMarks.some((d) => d.type === 'superscript') &&\n\t\t\tenabledMarks.some((d) => d.type === 'subscript');\n\n\t\tif (!bothEnabled) return;\n\n\t\tcontext.registerMiddleware(\n\t\t\t(tr, _state, next) => {\n\t\t\t\tlet patched = false;\n\n\t\t\t\t// Handle addMark steps: inject removeMark for the opposite type\n\t\t\t\tconst patchedSteps: Step[] = [];\n\t\t\t\tfor (const step of tr.steps) {\n\t\t\t\t\tif (step.type !== 'addMark') {\n\t\t\t\t\t\tpatchedSteps.push(step);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst markName: string = step.mark.type;\n\t\t\t\t\tconst def: MarkDefinition | undefined = MARK_DEFINITIONS.find((d) => d.type === markName);\n\t\t\t\t\tif (!def) {\n\t\t\t\t\t\tpatchedSteps.push(step);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tpatched = true;\n\t\t\t\t\tconst removeStep: RemoveMarkStep = {\n\t\t\t\t\t\ttype: 'removeMark',\n\t\t\t\t\t\tblockId: step.blockId,\n\t\t\t\t\t\tfrom: step.from,\n\t\t\t\t\t\tto: step.to,\n\t\t\t\t\t\tmark: { type: mkType(def.opposite) },\n\t\t\t\t\t\t...(step.path ? { path: step.path } : {}),\n\t\t\t\t\t};\n\t\t\t\t\tpatchedSteps.push(removeStep, step);\n\t\t\t\t}\n\n\t\t\t\t// Handle stored marks: remove the opposite mark\n\t\t\t\tlet storedMarksAfter: readonly Mark[] | null = tr.storedMarksAfter;\n\t\t\t\tif (storedMarksAfter) {\n\t\t\t\t\tconst hasSup: boolean = storedMarksAfter.some((m) => m.type === 'superscript');\n\t\t\t\t\tconst hasSub: boolean = storedMarksAfter.some((m) => m.type === 'subscript');\n\n\t\t\t\t\tif (hasSup && hasSub) {\n\t\t\t\t\t\t// Keep the one that was most recently added (last in array)\n\t\t\t\t\t\tconst lastSupIdx: number = storedMarksAfter.findLastIndex(\n\t\t\t\t\t\t\t(m) => m.type === 'superscript',\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst lastSubIdx: number = storedMarksAfter.findLastIndex(\n\t\t\t\t\t\t\t(m) => m.type === 'subscript',\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst removeType: string = lastSupIdx > lastSubIdx ? 'subscript' : 'superscript';\n\n\t\t\t\t\t\tstoredMarksAfter = storedMarksAfter.filter((m) => m.type !== removeType);\n\t\t\t\t\t\tpatched = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnext(patched ? { ...tr, steps: patchedSteps, storedMarksAfter } : tr);\n\t\t\t},\n\t\t\t{ name: 'super-sub:exclusivity' },\n\t\t);\n\t}\n\n\t/**\n\t * Registers disabled toolbar buttons for marks whose feature is disabled\n\t * but whose toolbar button is explicitly requested.\n\t */\n\tprivate registerDisabledToolbarItems(context: PluginContext): void {\n\t\tif (!this.config.toolbar) return;\n\n\t\tfor (const def of MARK_DEFINITIONS) {\n\t\t\tconst featureEnabled: boolean = this.config[def.configKey];\n\t\t\tconst toolbarVisible: boolean = this.config.toolbar[def.configKey] ?? true;\n\n\t\t\tif (!featureEnabled && toolbarVisible) {\n\t\t\t\tconst label: string =\n\t\t\t\t\tdef.type === 'superscript' ? this.locale.superscriptLabel : this.locale.subscriptLabel;\n\t\t\t\tcontext.registerToolbarItem({\n\t\t\t\t\tid: def.type,\n\t\t\t\t\tgroup: 'format',\n\t\t\t\t\ticon: def.icon,\n\t\t\t\t\tlabel,\n\t\t\t\t\tcommand: toCommandName(def.type),\n\t\t\t\t\tpriority: def.toolbarPriority,\n\t\t\t\t\tisEnabled: () => false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate isToolbarVisible(\n\t\tconfigKey: keyof Omit<SuperSubConfig, 'toolbar' | 'separatorAfter' | 'locale'>,\n\t): boolean {\n\t\tif (!this.config.toolbar) return true;\n\t\treturn this.config.toolbar[configKey] ?? true;\n\t}\n}\n\n/** Converts a mark type to its toggle command name (e.g. 'superscript' → 'toggleSuperscript'). */\nfunction toCommandName(markType: string): string {\n\treturn `toggle${markType.charAt(0).toUpperCase()}${markType.slice(1)}`;\n}\n"],"names":["SUPER_SUB_LOCALE_EN","superscriptLabel","superscriptTooltip","shortcut","subscriptLabel","subscriptTooltip","SUPER_SUB_LOCALES","en","de","es","fr","zh","ru","ar","hi","DEFAULT_CONFIG","superscript","subscript","MARK_DEFINITIONS","type","opposite","configKey","rank","tag","label","icon","join","keyBinding","toolbarPriority","toHTMLString","content","parseHTML","sanitize","tags","SuperSubPlugin","id","name","priority","config","locale","this","context","resolvePluginLocale","enabledMarks","filter","def","lastVisibleMark","isToolbarVisible","at","isSeparatorTarget","separatorAfter","registerMark","registerKeymaps","registerExclusivityMiddleware","registerDisabledToolbarItems","commandName","toCommandName","toolbarVisible","registerMarkSpec","toDOM","document","createElement","_mark","registerCommand","tr","toggleMark","getState","mkType","dispatch","tooltip","formatShortcut","registerToolbarItem","group","command","isActive","state","isMarkActive","marks","keymap","executeCommand","Object","keys","length","registerKeymap","some","d","registerMiddleware","_state","next","patched","patchedSteps","step","steps","push","markName","mark","find","removeStep","blockId","from","to","path","storedMarksAfter","hasSup","m","hasSub","removeType","findLastIndex","toolbar","featureEnabled","isEnabled","markType","charAt","toUpperCase","slice"],"mappings":";;;;AAeO,MAAMA,IAAsC,EAClDC,kBAAkB,eAClBC,oBAAqBC,CAAAA,OAAqB,gBAAgBA,EAAAA,KAC1DC,gBAAgB,aAChBC,kBAAmBF,CAAAA,OAAqB,cAAcA,SAoE1CG,IAAoD,EAChEC,IAAIP,GACJQ,IAjEkD,EAClDP,kBAAkB,gBAClBC,oBAAqBC,CAAAA,OAAqB,iBAAiBA,OAC3DC,gBAAgB,gBAChBC,kBAAmBF,CAAAA,OAAqB,iBAAiBA,SA8DzDM,IAzDkD,EAClDR,kBAAkB,eAClBC,oBAAqBC,CAAAA,OAAqB,gBAAgBA,OAC1DC,gBAAgB,aAChBC,kBAAmBF,CAAAA,OAAqB,cAAcA,SAsDtDO,IAjDkD,EAClDT,kBAAkB,YAClBC,oBAAqBC,CAAAA,OAAqB,aAAaA,EAAAA,KACvDC,gBAAgB,UAChBC,kBAAmBF,CAAAA,OAAqB,WAAWA,SA8CnDQ,IAzCkD,EAClDV,kBAAkB,MAClBC,oBAAqBC,CAAAA,OAAqB,OAAOA,EAAAA,KACjDC,gBAAgB,MAChBC,kBAAmBF,CAAAA,OAAqB,OAAOA,EAAAA,IAAAA,GAsC/CS,IAjCkD,EAClDX,kBAAkB,eAClBC,oBAAqBC,CAAAA,OAAqB,gBAAgBA,EAAAA,KAC1DC,gBAAgB,eAChBC,kBAAmBF,CAAAA,OAAqB,gBAAgBA,EAAAA,IAAAA,GA8BxDU,IAzBkD,EAClDZ,kBAAkB,SAClBC,oBAAqBC,CAAAA,OAAqB,UAAUA,EAAAA,KACpDC,gBAAgB,SAChBC,kBAAmBF,CAAAA,OAAqB,UAAUA,EAAAA,IAAAA,GAsBlDW,IAjBkD,EAClDb,kBAAkB,iBAClBC,oBAAqBC,CAAAA,OAAqB,kBAAkBA,EAAAA,KAC5DC,gBAAgB,eAChBC,kBAAmBF,CAAAA,OAAqB,gBAAgBA,EAAAA,IAAAA,EAAAA,GCnCnDY,IAAiC,EACtCC,aAAAA,MACAC,WAAAA,KAAW,GA6DNC,IAA8C,CACnD,EACCC,MAAM,eACNC,UAAU,aACVC,WAAW,eACXC,MAAM,GACNC,KAAK,OACLC,OAAO,eACPC,MAjD+B,CAChC,gEACA,2DACA,kBACA,8CACA,gDACA,qDACA,+DACA,sDACA,0DACA,0DACA,0DACA,wDACA,0EACA,0EACA,2EACA,4EACA,4EACA,oBACA,2DACA,wDACA,UACCC,KAAK,EAAA,GA4BLC,YAAY,SACZC,iBAAiB,IACjBC,cAAeC,CAAAA,OAAY,QAAQA,EAAAA,UACnCC,WAAW,CAAC,EAAER,KAAK,MAAA,CAAA,GACnBS,UAAU,EAAEC,MAAM,CAAC,YAEpB,EACCd,MAAM,aACNC,UAAU,eACVC,WAAW,aACXC,MAAM,GACNC,KAAK,OACLC,OAAO,aACPC,MAvC6B,CAC9B,gEACA,2DACA,0DACA,wDACA,wDACA,0EACA,0EACA,2EACA,4EACA,4EACA,oBACA,2DACA,wDACA,QAAA,EACCC,KAAK,KAyBLC,YAAY,SACZC,iBAAiB,IACjBC,cAAeC,CAAAA,OAAY,QAAQA,YACnCC,WAAW,CAAC,EAAER,KAAK,MAAA,CAAA,GACnBS,UAAU,EAAEC,MAAM,CAAC,KAAA,EAAA,EAAA,CAAA;AAMd,MAAMC;EACHC,KAAK;AAAA,EACLC,OAAO;AAAA,EACPC,WAAW;AAAA,EAEHC;AAAAA,EACTC;AAAAA,EAER,YAAYD;AACXE,SAAKF,SAAS,KAAKvB,GAAAA,GAAmBuB,GAAAA;AAAAA,EACvC;AAAA,EAEA,KAAKG;AACJD,SAAKD,SAASG,EAAoBpC,GAAmBmC,IAASD,KAAKF,OAAOC,MAAAA;AAE1E,UAAMI,KAAiCzB,EAAiB0B,OACtDC,CAAAA,OAAQL,KAAKF,OAAOO,GAAIxB,aAMpByB,KAHwCH,GAAaC,OAAQC,CAAAA,OAClEL,KAAKO,iBAAiBF,GAAIxB,SAAAA,CAAAA,EAE6C2B;AAExE,eAAWH,MAAOF,IAAc;AAC/B,YAAMM,KAAAA,CAAAA,CAA+BT,KAAKF,OAAOY,kBAAkBL,OAAQC;AAC3EN,WAAKW,aAAaV,IAASI,IAAKI,EAAAA;AAAAA,IACjC;AAEAT,SAAKY,gBAAgBX,IAASE,KAC9BH,KAAKa,8BAA8BZ,IAASE,EAAAA,GAC5CH,KAAKc,6BAA6Bb,EAAAA;AAAAA,EACnC;AAAA,EAEQ,aAAaA,IAAwBI,IAAqBK,IAAAA;AACjE,UAAMK,KAAsBC,EAAcX,GAAI1B,IAAAA,GACxCsC,KAA0BjB,KAAKO,iBAAiBF,GAAIxB;AAsB1D,QApBAoB,GAAQiB,iBAAiB,EACxBvC,MAAM0B,GAAI1B,MACVG,MAAMuB,GAAIvB,MACVqC,OAAA,MACQC,SAASC,cAAchB,GAAItB,GAAAA,GAEnCM,cAAc,CAACiC,IAAOhC,OAAYe,GAAIhB,aAAaC,KACnDC,WAAWc,GAAId,WACfC,UAAUa,GAAIb,aAGfS,GAAQsB,gBAAgBR,IAAa,MAAA;AACpC,YAAMS,KAAKC,EAAWxB,GAAQyB,SAAAA,GAAYC,EAAOtB,GAAI1B,IAAAA,CAAAA;AACrD,aAAA,CAAA,CAAI6C,OACHvB,GAAQ2B,SAASJ,EAAAA,GAAAA;AAAAA,IACV,CAAA,GAKLP,IAAgB;AACnB,YAAMjC,KACQ,kBAAbqB,GAAI1B,OAAyBqB,KAAKD,OAAOtC,mBAAmBuC,KAAKD,OAAOnC,gBACnEiE,KACQ,kBAAbxB,GAAI1B,OACDqB,KAAKD,OAAOrC,mBAAmBoE,EAAezB,GAAIlB,UAAAA,CAAAA,IAClDa,KAAKD,OAAOlC,iBAAiBiE,EAAezB,GAAIlB,UAAAA,CAAAA;AACpDc,MAAAA,GAAQ8B,oBAAoB,EAC3BpC,IAAIU,GAAI1B,MACRqD,OAAO,UACP/C,MAAMoB,GAAIpB,MACVD,WACA6C,SAAAA,IACAI,SAASlB,IACTlB,UAAUQ,GAAIjB,iBACdsB,gBAAAA,IACAwB,UAAWC,CAAAA,OAAUC,EAAaD,IAAOR,EAAOtB,GAAI1B;IAEtD;AAAA,EACD;AAAA,EAEQ,gBAAgBsB,IAAwBoC;AAC/C,UAAMC,KAAwC,CAAA;AAC9C,eAAWjC,MAAOgC,IAAO;AACxB,YAAMtB,KAAsBC,EAAcX,GAAI1B,IAAAA;AAC9C2D,MAAAA,GAAOjC,GAAIlB,cAAc,MAAMc,GAAQsC,eAAexB,EAAAA;AAAAA,IACvD;AACIyB,WAAOC,KAAKH,EAAAA,EAAQI,SAAS,KAChCzC,GAAQ0C,eAAeL,EAAAA;AAAAA,EAEzB;AAAA,EAQQ,8BACPrC,IACAE;AAGCA,IAAAA,GAAayC,KAAMC,CAAAA,OAAiB,kBAAXA,GAAElE,IAAAA,KAC3BwB,GAAayC,KAAMC,CAAAA,OAAiB,gBAAXA,GAAElE,IAAAA,KAI5BsB,GAAQ6C,mBACP,CAACtB,IAAIuB,IAAQC,OAAAA;AACZ,UAAIC;AAGJ,YAAMC,KAAuB,CAAA;AAC7B,iBAAWC,MAAQ3B,GAAG4B,OAAO;AAC5B,YAAkB,cAAdD,GAAKxE,MAAoB;AAC5BuE,UAAAA,GAAaG,KAAKF,EAAAA;AAClB;AAAA,QACD;AAEA,cAAMG,KAAmBH,GAAKI,KAAK5E,MAC7B0B,KAAkC3B,EAAiB8E,KAAMX,CAAAA,OAAMA,GAAElE,SAAS2E,EAAAA;AAChF,YAAA,CAAKjD,IAAK;AACT6C,UAAAA,GAAaG,KAAKF,EAAAA;AAClB;AAAA,QACD;AAEAF,QAAAA,KAAAA;AACA,cAAMQ,KAA6B,EAClC9E,MAAM,cACN+E,SAASP,GAAKO,SACdC,MAAMR,GAAKQ,MACXC,IAAIT,GAAKS,IACTL,MAAM,EAAE5E,MAAMgD,EAAOtB,GAAIzB,QAAAA,EAAAA,GAAAA,GACrBuE,GAAKU,OAAO,EAAEA,MAAMV,GAAKU,SAAS,CAAA,EAAA;AAEvCX,QAAAA,GAAaG,KAAKI,IAAYN,EAAAA;AAAAA,MAC/B;AAGA,UAAIW,KAA2CtC,GAAGsC;AAClD,UAAIA,IAAkB;AACrB,cAAMC,KAAkBD,GAAiBlB,KAAMoB,CAAAA,OAAiB,kBAAXA,GAAErF,IAAAA,GACjDsF,KAAkBH,GAAiBlB,KAAMoB,CAAAA,OAAiB,gBAAXA,GAAErF,IAAAA;AAEvD,YAAIoF,MAAUE,IAAQ;AAErB,gBAMMC,KANqBJ,GAAiBK,cAC1CH,CAAAA,OAAiB,kBAAXA,GAAErF,IAAAA,IAEiBmF,GAAiBK,cAC1CH,CAAAA,OAAiB,gBAAXA,GAAErF,IAAAA,IAE2C,cAAc;AAEnEmF,UAAAA,KAAmBA,GAAiB1D,OAAQ4D,CAAAA,OAAMA,GAAErF,SAASuF,EAAAA,GAC7DjB;QACD;AAAA,MACD;AAEAD,MAAAA,GAAKC,KAAU,KAAKzB,IAAI4B,OAAOF,IAAcY,kBAAAA,GAAAA,IAAqBtC,EAAAA;AAAAA,IAAAA,GAEnE,EAAE5B,MAAM,wBAAA,CAAA;AAAA,EAEV;AAAA,EAMQ,6BAA6BK,IAAAA;AACpC,QAAKD,KAAKF,OAAOsE,QAEjB,YAAW/D,MAAO3B,GAAkB;AACnC,YAAM2F,KAA0BrE,KAAKF,OAAOO,GAAIxB,SAAAA,GAC1CoC,KAA0BjB,KAAKF,OAAOsE,QAAQ/D,GAAIxB,SAAAA,KAAAA;AAExD,UAAA,CAAKwF,MAAkBpD,IAAgB;AACtC,cAAMjC,KACQ,kBAAbqB,GAAI1B,OAAyBqB,KAAKD,OAAOtC,mBAAmBuC,KAAKD,OAAOnC;AACzEqC,QAAAA,GAAQ8B,oBAAoB,EAC3BpC,IAAIU,GAAI1B,MACRqD,OAAO,UACP/C,MAAMoB,GAAIpB,MACVD,OAAAA,IACAiD,SAASjB,EAAcX,GAAI1B,IAAAA,GAC3BkB,UAAUQ,GAAIjB,iBACdkF,WAAW,MAAA,MAAM,CAAA;AAAA,MAEnB;AAAA,IACD;AAAA,EACD;AAAA,EAEQ,iBACPzF,IAAAA;AAEA,YAAKmB,KAAKF,OAAOsE,YACVpE,KAAKF,OAAOsE,QAAQvF,EAAAA,KAAAA;AAAAA,EAC5B;AAAA;AAID,SAASmC,EAAcuD,IAAAA;AACtB,SAAO,SAASA,GAASC,OAAO,GAAGC,YAAAA,CAAAA,GAAgBF,GAASG,MAAM,CAAA,CAAA;AACnE;"}
@@ -1,228 +0,0 @@
1
- import { r as t } from "./resolvePluginLocale-B4w1OkPy.mjs";
2
- import { a as e } from "./AttrRegistry-D9Jx_RVb.mjs";
3
- import { m as n, u as i } from "./Document-Brtw2jL1.mjs";
4
- import { c as s } from "./NodeSpec-NZVvcCuH.mjs";
5
- import { i as c, a as r, b as l, d as o } from "./Selection-BRTab5hO.mjs";
6
- import { n as a, b as d } from "./TypeBrands-C09nE2qO.mjs";
7
- import { a as h } from "./StyleRuntime-CP4NCwKT.mjs";
8
- const u = { bulletList: "Bullet List", numberedList: "Numbered List", checklist: "Checklist" }, p = { en: u, de: { bulletList: "Aufzählung", numberedList: "Nummerierte Liste", checklist: "Checkliste" }, es: { bulletList: "Lista con viñetas", numberedList: "Lista numerada", checklist: "Lista de verificación" }, fr: { bulletList: "Liste à puces", numberedList: "Liste numérotée", checklist: "Liste de contrôle" }, zh: { bulletList: "无序列表", numberedList: "有序列表", checklist: "清单" }, ru: { bulletList: "Маркированный список", numberedList: "Нумерованный список", checklist: "Чек-лист" }, ar: { bulletList: "قائمة نقطية", numberedList: "قائمة مرقمة", checklist: "قائمة تحقق" }, hi: { bulletList: "बुलेट सूची", numberedList: "क्रमांकित सूची", checklist: "चेकलिस्ट" } }, m = { types: ["bullet", "ordered", "checklist"], maxIndent: 4 }, g = [{ type: "bullet", label: "Bullet List", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z"/></svg>', inputPattern: /^[-*] $/, inputPrefix: "- " }, { type: "ordered", label: "Numbered List", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z"/></svg>', inputPattern: /^\d+\. $/, inputPrefix: "1. " }, { type: "checklist", label: "Checklist", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M22 7h-9v2h9V7zm0 8h-9v2h9v-2zM5.54 11L2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 11zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 19z"/></svg>', inputPattern: /^\[[ x]] $/, inputPrefix: "[ ] " }];
9
- class k {
10
- id = "list";
11
- name = "List";
12
- priority = 35;
13
- config;
14
- locale;
15
- context = null;
16
- checkboxClickHandler = null;
17
- constructor(t2) {
18
- this.config = { ...m, ...t2 };
19
- }
20
- init(e2) {
21
- this.context = e2, this.locale = t(p, e2, this.config.locale), e2.registerStyleSheet(`
22
- /* List Wrappers — suppress native markers, we use ::before pseudo-elements */
23
- .notectl-list {
24
- list-style: none;
25
- margin: 0;
26
- padding: 0;
27
- }
28
-
29
- /* Ordered List — each <ol> wrapper resets the counter */
30
- .notectl-list--ordered {
31
- counter-reset: notectl-ordered;
32
- }
33
-
34
- /* List Items */
35
- .notectl-list-item {
36
- margin: 0;
37
- padding: 2px 0 2px 24px;
38
- min-height: 1.6em;
39
- position: relative;
40
- }
41
-
42
- .notectl-list-item::before {
43
- position: absolute;
44
- left: 0;
45
- display: inline-block;
46
- width: 24px;
47
- text-align: center;
48
- }
49
-
50
- /* Bullet List */
51
- .notectl-list-item--bullet::before {
52
- content: '\\2022';
53
- color: var(--notectl-fg);
54
- }
55
-
56
- /* Ordered List — counter increment per item */
57
- .notectl-list-item--ordered {
58
- counter-increment: notectl-ordered;
59
- }
60
-
61
- .notectl-list-item--ordered::before {
62
- content: counter(notectl-ordered) '.';
63
- color: var(--notectl-fg);
64
- font-size: 14px;
65
- }
66
-
67
- /* Checklist */
68
- .notectl-list-item--checklist::before {
69
- content: '\\2610';
70
- font-size: 16px;
71
- color: var(--notectl-fg-muted);
72
- cursor: pointer;
73
- }
74
-
75
- .notectl-list-item--checklist[data-checked="true"]::before {
76
- content: '\\2611';
77
- color: var(--notectl-success);
78
- }
79
-
80
- .notectl-list-item--checklist[data-checked="true"] {
81
- color: var(--notectl-fg-muted);
82
- text-decoration: line-through;
83
- }
84
- `), this.registerNodeSpec(e2), this.registerCommands(e2), this.registerKeymaps(e2), this.registerInputRules(e2), this.registerToolbarItems(e2), this.registerCheckboxClickHandler(e2);
85
- }
86
- destroy() {
87
- this.checkboxClickHandler && this.context && this.context.getContainer().removeEventListener("mousedown", this.checkboxClickHandler), this.checkboxClickHandler = null, this.context = null;
88
- }
89
- registerNodeSpec(t2) {
90
- t2.registerNodeSpec({ type: "list_item", group: "block", content: { allow: ["text"] }, attrs: { listType: { default: "bullet" }, indent: { default: 0 }, checked: { default: false } }, toDOM(t3) {
91
- const e2 = t3.attrs?.listType ?? "bullet", n2 = t3.attrs?.indent ?? 0, i2 = t3.attrs?.checked ?? false, c2 = s("li", t3.id);
92
- return c2.setAttribute("role", "listitem"), c2.setAttribute("data-list-type", e2), c2.setAttribute("data-indent", String(n2)), c2.className = `notectl-list-item notectl-list-item--${e2}`, n2 > 0 && h(c2, "marginLeft", 24 * n2 + "px"), "checklist" === e2 && (c2.setAttribute("data-checked", String(i2)), c2.setAttribute("aria-checked", String(i2))), c2.setAttribute("aria-level", String(n2 + 1)), c2;
93
- }, wrapper(t3) {
94
- const e2 = t3.attrs?.listType ?? "bullet";
95
- return { tag: "ordered" === e2 ? "ol" : "ul", key: `list-${e2}`, className: `notectl-list notectl-list--${e2}`, attrs: { role: "list" } };
96
- }, toHTML(t3, e2) {
97
- const n2 = t3.attrs?.listType ?? "bullet", i2 = t3.attrs?.checked ?? false;
98
- if ("checklist" === n2) {
99
- const t4 = i2 ? " checked" : "";
100
- return `<li role="checkbox" aria-checked="${String(i2)}"><input type="checkbox" disabled${t4}>${e2 || "<br>"}</li>`;
101
- }
102
- return `<li>${e2 || "<br>"}</li>`;
103
- }, parseHTML: [{ tag: "li" }], sanitize: { tags: ["ul", "ol", "li", "input"], attrs: ["type", "disabled", "checked", "role", "aria-checked"] } });
104
- }
105
- registerCommands(t2) {
106
- const e2 = this.getEnabledTypes();
107
- for (const n2 of e2) t2.registerCommand(`toggleList:${n2.type}`, () => this.toggleList(t2, n2.type));
108
- t2.registerCommand("indentListItem", () => this.indent(t2)), t2.registerCommand("outdentListItem", () => this.outdent(t2)), this.config.types.includes("checklist") && t2.registerCommand("toggleChecklistItem", () => this.toggleChecked(t2), { readonlyAllowed: true });
109
- }
110
- registerKeymaps(t2) {
111
- t2.registerKeymap({ Enter: () => this.handleEnter(t2), Backspace: () => this.handleBackspace(t2), Tab: () => this.indent(t2), "Shift-Tab": () => this.outdent(t2) });
112
- }
113
- registerInputRules(t2) {
114
- const e2 = this.getEnabledTypes();
115
- for (const n2 of e2) t2.registerInputRule({ pattern: n2.inputPattern, handler: (t3, e3, i2, s2) => {
116
- const d2 = t3.selection;
117
- if (c(d2) || r(d2)) return null;
118
- if (!l(d2)) return null;
119
- const h2 = t3.getBlock(d2.anchor.blockId);
120
- if (!h2 || "paragraph" !== h2.type) return null;
121
- const u2 = e3[0] ?? "", p2 = u2.length, m2 = { listType: n2.type, indent: 0 };
122
- return "checklist" === n2.type && (m2.checked = u2.includes("[x]")), t3.transaction("input").deleteTextAt(d2.anchor.blockId, i2, i2 + p2).setBlockType(d2.anchor.blockId, a("list_item"), m2).setSelection(o(d2.anchor.blockId, 0)).build();
123
- } });
124
- }
125
- getListLabel(t2) {
126
- return { bullet: this.locale.bulletList, ordered: this.locale.numberedList, checklist: this.locale.checklist }[t2];
127
- }
128
- registerToolbarItems(t2) {
129
- const e2 = this.getEnabledTypes(), n2 = e2.at(-1);
130
- for (const i2 of e2) t2.registerToolbarItem({ id: `list-${i2.type}`, group: "block", icon: i2.icon, label: this.getListLabel(i2.type), command: `toggleList:${i2.type}`, priority: "bullet" === i2.type ? 70 : "ordered" === i2.type ? 71 : 72, separatorAfter: this.config.separatorAfter && i2 === n2, isActive: (t3) => this.isListActive(t3, i2.type) });
131
- }
132
- toggleList(t2, n2) {
133
- const i2 = t2.getState(), s2 = i2.selection;
134
- if (c(s2) || r(s2)) return false;
135
- const l2 = i2.getBlock(s2.anchor.blockId);
136
- if (!l2) return false;
137
- if ("list_item" === l2.type && l2.attrs?.listType === n2) {
138
- const e2 = i2.transaction("command").setBlockType(s2.anchor.blockId, a("paragraph")).setSelection(s2).build();
139
- return t2.dispatch(e2), true;
140
- }
141
- const o2 = { listType: n2, indent: e(l2, "list_item") ? l2.attrs.indent : 0 };
142
- "checklist" === n2 && (o2.checked = false);
143
- const d2 = i2.transaction("command").setBlockType(s2.anchor.blockId, a("list_item"), o2).setSelection(s2).build();
144
- return t2.dispatch(d2), true;
145
- }
146
- indent(t2) {
147
- const n2 = t2.getState();
148
- if (c(n2.selection) || r(n2.selection)) return false;
149
- const i2 = n2.getBlock(n2.selection.anchor.blockId);
150
- return !(!i2 || !e(i2, "list_item")) && !(i2.attrs.indent >= this.config.maxIndent) && this.setIndent(t2, n2, i2.attrs.indent + 1);
151
- }
152
- outdent(t2) {
153
- const n2 = t2.getState();
154
- if (c(n2.selection) || r(n2.selection)) return false;
155
- const i2 = n2.getBlock(n2.selection.anchor.blockId);
156
- return !(!i2 || !e(i2, "list_item")) && !(i2.attrs.indent <= 0) && this.setIndent(t2, n2, i2.attrs.indent - 1);
157
- }
158
- setIndent(t2, e2, n2) {
159
- const i2 = e2.selection;
160
- if (c(i2) || r(i2)) return false;
161
- const s2 = e2.getBlock(i2.anchor.blockId);
162
- if (!s2) return false;
163
- const l2 = { ...s2.attrs, indent: n2 }, o2 = e2.transaction("command").setBlockType(i2.anchor.blockId, a("list_item"), l2).setSelection(i2).build();
164
- return t2.dispatch(o2), true;
165
- }
166
- toggleChecked(t2, e2) {
167
- if (t2.isReadOnly() && !this.config.interactiveCheckboxes) return false;
168
- const n2 = t2.getState(), i2 = e2 ?? (c(n2.selection) || r(n2.selection) ? null : n2.selection.anchor.blockId);
169
- if (!i2) return false;
170
- const s2 = n2.getBlock(i2);
171
- if (!s2 || "list_item" !== s2.type || "checklist" !== s2.attrs?.listType) return false;
172
- const l2 = !s2.attrs?.checked, o2 = { ...s2.attrs, checked: l2 }, d2 = n2.transaction("command").setBlockType(i2, a("list_item"), o2).setSelection(n2.selection).build();
173
- return t2.dispatch(d2), true;
174
- }
175
- handleBackspace(t2) {
176
- const e2 = t2.getState(), n2 = e2.selection;
177
- if (c(n2) || r(n2)) return false;
178
- if (!l(n2)) return false;
179
- const i2 = e2.getBlock(n2.anchor.blockId);
180
- if (!i2 || "list_item" !== i2.type) return false;
181
- if (0 !== n2.anchor.offset) return false;
182
- const s2 = e2.transaction("input").setBlockType(n2.anchor.blockId, a("paragraph")).setSelection(n2).build();
183
- return t2.dispatch(s2), true;
184
- }
185
- handleEnter(t2) {
186
- const s2 = t2.getState(), d2 = s2.selection;
187
- if (c(d2) || r(d2)) return false;
188
- if (!l(d2)) return false;
189
- const h2 = s2.getBlock(d2.anchor.blockId);
190
- if (!h2 || "list_item" !== h2.type) return false;
191
- if ("" === n(h2)) {
192
- const e2 = s2.transaction("input").setBlockType(d2.anchor.blockId, a("paragraph")).setSelection(d2).build();
193
- return t2.dispatch(e2), true;
194
- }
195
- const u2 = i(), p2 = { listType: e(h2, "list_item") ? h2.attrs.listType : "bullet", indent: e(h2, "list_item") ? h2.attrs.indent : 0 };
196
- "checklist" === p2.listType && (p2.checked = false);
197
- const m2 = s2.transaction("input").splitBlock(d2.anchor.blockId, d2.anchor.offset, u2).setBlockType(u2, a("list_item"), p2).setSelection(o(u2, 0)).build();
198
- return t2.dispatch(m2), true;
199
- }
200
- registerCheckboxClickHandler(t2) {
201
- this.config.types.includes("checklist") && (this.checkboxClickHandler = (e2) => {
202
- if (t2.isReadOnly() && !this.config.interactiveCheckboxes) return;
203
- const n2 = e2.target;
204
- if (!(n2 instanceof HTMLElement)) return;
205
- const i2 = n2.closest(".notectl-list-item--checklist");
206
- if (!i2) return;
207
- const s2 = i2.getBoundingClientRect();
208
- if (e2.clientX - s2.left >= 24) return;
209
- e2.preventDefault();
210
- const c2 = i2.getAttribute("data-block-id");
211
- c2 && this.toggleChecked(t2, d(c2));
212
- }, t2.getContainer().addEventListener("mousedown", this.checkboxClickHandler));
213
- }
214
- isListActive(t2, e2) {
215
- if (c(t2.selection) || r(t2.selection)) return false;
216
- const n2 = t2.getBlock(t2.selection.anchor.blockId);
217
- return "list_item" === n2?.type && n2.attrs?.listType === e2;
218
- }
219
- getEnabledTypes() {
220
- return g.filter((t2) => this.config.types.includes(t2.type));
221
- }
222
- }
223
- export {
224
- k as L,
225
- p as a,
226
- u as b
227
- };
228
- //# sourceMappingURL=index-CCyqQ0Dz.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-CCyqQ0Dz.mjs","sources":["../../src/editor/styles/list.ts","../../src/plugins/list/ListLocale.ts","../../src/plugins/list/ListPlugin.ts"],"sourcesContent":["/** Width of the list marker / checkbox area in pixels. */\nexport const LIST_MARKER_WIDTH = 24;\n\n/** List styles — bullet, ordered, checklist items. */\nexport const LIST_CSS = `\n/* List Wrappers — suppress native markers, we use ::before pseudo-elements */\n.notectl-list {\n\tlist-style: none;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n/* Ordered List — each <ol> wrapper resets the counter */\n.notectl-list--ordered {\n\tcounter-reset: notectl-ordered;\n}\n\n/* List Items */\n.notectl-list-item {\n\tmargin: 0;\n\tpadding: 2px 0 2px ${LIST_MARKER_WIDTH}px;\n\tmin-height: 1.6em;\n\tposition: relative;\n}\n\n.notectl-list-item::before {\n\tposition: absolute;\n\tleft: 0;\n\tdisplay: inline-block;\n\twidth: ${LIST_MARKER_WIDTH}px;\n\ttext-align: center;\n}\n\n/* Bullet List */\n.notectl-list-item--bullet::before {\n\tcontent: '\\\\2022';\n\tcolor: var(--notectl-fg);\n}\n\n/* Ordered List — counter increment per item */\n.notectl-list-item--ordered {\n\tcounter-increment: notectl-ordered;\n}\n\n.notectl-list-item--ordered::before {\n\tcontent: counter(notectl-ordered) '.';\n\tcolor: var(--notectl-fg);\n\tfont-size: 14px;\n}\n\n/* Checklist */\n.notectl-list-item--checklist::before {\n\tcontent: '\\\\2610';\n\tfont-size: 16px;\n\tcolor: var(--notectl-fg-muted);\n\tcursor: pointer;\n}\n\n.notectl-list-item--checklist[data-checked=\"true\"]::before {\n\tcontent: '\\\\2611';\n\tcolor: var(--notectl-success);\n}\n\n.notectl-list-item--checklist[data-checked=\"true\"] {\n\tcolor: var(--notectl-fg-muted);\n\ttext-decoration: line-through;\n}\n`;\n","/**\n * Locale interface and default English locale for the ListPlugin.\n */\n\n// --- Locale Interface ---\n\nexport interface ListLocale {\n\treadonly bulletList: string;\n\treadonly numberedList: string;\n\treadonly checklist: string;\n}\n\n// --- Default English Locale ---\n\nexport const LIST_LOCALE_EN: ListLocale = {\n\tbulletList: 'Bullet List',\n\tnumberedList: 'Numbered List',\n\tchecklist: 'Checklist',\n};\n\n// --- German Locale ---\n\nexport const LIST_LOCALE_DE: ListLocale = {\n\tbulletList: 'Aufzählung',\n\tnumberedList: 'Nummerierte Liste',\n\tchecklist: 'Checkliste',\n};\n\n// --- Spanish Locale ---\n\nexport const LIST_LOCALE_ES: ListLocale = {\n\tbulletList: 'Lista con viñetas',\n\tnumberedList: 'Lista numerada',\n\tchecklist: 'Lista de verificación',\n};\n\n// --- French Locale ---\n\nexport const LIST_LOCALE_FR: ListLocale = {\n\tbulletList: 'Liste à puces',\n\tnumberedList: 'Liste numérotée',\n\tchecklist: 'Liste de contrôle',\n};\n\n// --- Chinese (Simplified) Locale ---\n\nexport const LIST_LOCALE_ZH: ListLocale = {\n\tbulletList: '无序列表',\n\tnumberedList: '有序列表',\n\tchecklist: '清单',\n};\n\n// --- Russian Locale ---\n\nexport const LIST_LOCALE_RU: ListLocale = {\n\tbulletList: 'Маркированный список',\n\tnumberedList: 'Нумерованный список',\n\tchecklist: 'Чек-лист',\n};\n\n// --- Arabic Locale ---\n\nexport const LIST_LOCALE_AR: ListLocale = {\n\tbulletList: 'قائمة نقطية',\n\tnumberedList: 'قائمة مرقمة',\n\tchecklist: 'قائمة تحقق',\n};\n\n// --- Hindi Locale ---\n\nexport const LIST_LOCALE_HI: ListLocale = {\n\tbulletList: 'बुलेट सूची',\n\tnumberedList: 'क्रमांकित सूची',\n\tchecklist: 'चेकलिस्ट',\n};\n\n// --- Locale Map ---\n\nexport const LIST_LOCALES: Record<string, ListLocale> = {\n\ten: LIST_LOCALE_EN,\n\tde: LIST_LOCALE_DE,\n\tes: LIST_LOCALE_ES,\n\tfr: LIST_LOCALE_FR,\n\tzh: LIST_LOCALE_ZH,\n\tru: LIST_LOCALE_RU,\n\tar: LIST_LOCALE_AR,\n\thi: LIST_LOCALE_HI,\n};\n","/**\n * ListPlugin: registers ordered, unordered, and checklist block types\n * with NodeSpecs, toggle commands, indent/outdent (Tab/Shift-Tab),\n * input rules, and toolbar buttons.\n *\n * List items are modeled as flat blocks with a `listType` and `indent` attribute,\n * allowing simple nesting representation without deep tree structures.\n */\n\nimport { LIST_CSS, LIST_MARKER_WIDTH } from '../../editor/styles/list.js';\nimport { resolvePluginLocale } from '../../i18n/resolvePluginLocale.js';\nimport { isNodeOfType } from '../../model/AttrRegistry.js';\nimport { generateBlockId, getBlockText } from '../../model/Document.js';\nimport { createBlockElement } from '../../model/NodeSpec.js';\nimport {\n\tcreateCollapsedSelection,\n\tisCollapsed,\n\tisGapCursor,\n\tisNodeSelection,\n} from '../../model/Selection.js';\nimport { type BlockId, blockId, nodeType } from '../../model/TypeBrands.js';\nimport type { EditorState } from '../../state/EditorState.js';\nimport { setStyleProperty } from '../../style/StyleRuntime.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { LIST_LOCALES, type ListLocale } from './ListLocale.js';\n\n// --- Attribute Registry Augmentation ---\n\nexport type ListType = 'bullet' | 'ordered' | 'checklist';\n\ndeclare module '../../model/AttrRegistry.js' {\n\tinterface NodeAttrRegistry {\n\t\tlist_item: { listType: ListType; indent: number; checked: boolean };\n\t}\n}\n\n// --- Configuration ---\n\nexport interface ListConfig {\n\t/** Which list types to enable. Defaults to all. */\n\treadonly types: readonly ListType[];\n\t/** Maximum indent depth. Defaults to 4. */\n\treadonly maxIndent: number;\n\t/** When true, a separator is rendered after the last list toolbar item. */\n\treadonly separatorAfter?: boolean;\n\t/**\n\t * When true, checklist checkboxes remain interactive even in read-only mode.\n\t * Defaults to false (checkboxes are fully read-only).\n\t */\n\treadonly interactiveCheckboxes?: boolean;\n\treadonly locale?: ListLocale;\n}\n\nconst DEFAULT_CONFIG: ListConfig = {\n\ttypes: ['bullet', 'ordered', 'checklist'],\n\tmaxIndent: 4,\n};\n\n// --- List Type Metadata ---\n\ninterface ListTypeDefinition {\n\treadonly type: ListType;\n\treadonly label: string;\n\treadonly icon: string;\n\treadonly inputPattern: RegExp;\n\treadonly inputPrefix: string;\n}\n\nconst BULLET_LIST_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z\"/></svg>';\nconst NUMBERED_LIST_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z\"/></svg>';\nconst CHECKLIST_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M22 7h-9v2h9V7zm0 8h-9v2h9v-2zM5.54 11L2 7.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 11zm0 8L2 15.46l1.41-1.41 2.12 2.12 4.24-4.24 1.41 1.41L5.54 19z\"/></svg>';\n\nconst LIST_TYPE_DEFINITIONS: readonly ListTypeDefinition[] = [\n\t{\n\t\ttype: 'bullet',\n\t\tlabel: 'Bullet List',\n\t\ticon: BULLET_LIST_ICON,\n\t\tinputPattern: /^[-*] $/,\n\t\tinputPrefix: '- ',\n\t},\n\t{\n\t\ttype: 'ordered',\n\t\tlabel: 'Numbered List',\n\t\ticon: NUMBERED_LIST_ICON,\n\t\tinputPattern: /^\\d+\\. $/,\n\t\tinputPrefix: '1. ',\n\t},\n\t{\n\t\ttype: 'checklist',\n\t\tlabel: 'Checklist',\n\t\ticon: CHECKLIST_ICON,\n\t\tinputPattern: /^\\[[ x]] $/,\n\t\tinputPrefix: '[ ] ',\n\t},\n];\n\n// --- Plugin ---\n\nexport class ListPlugin implements Plugin {\n\treadonly id = 'list';\n\treadonly name = 'List';\n\treadonly priority = 35;\n\n\tprivate readonly config: ListConfig;\n\tprivate locale!: ListLocale;\n\tprivate context: PluginContext | null = null;\n\tprivate checkboxClickHandler: ((e: MouseEvent) => void) | null = null;\n\n\tconstructor(config?: Partial<ListConfig>) {\n\t\tthis.config = { ...DEFAULT_CONFIG, ...config };\n\t}\n\n\tinit(context: PluginContext): void {\n\t\tthis.context = context;\n\t\tthis.locale = resolvePluginLocale(LIST_LOCALES, context, this.config.locale);\n\t\tcontext.registerStyleSheet(LIST_CSS);\n\t\tthis.registerNodeSpec(context);\n\t\tthis.registerCommands(context);\n\t\tthis.registerKeymaps(context);\n\t\tthis.registerInputRules(context);\n\t\tthis.registerToolbarItems(context);\n\t\tthis.registerCheckboxClickHandler(context);\n\t}\n\n\tdestroy(): void {\n\t\tif (this.checkboxClickHandler && this.context) {\n\t\t\tconst container: HTMLElement = this.context.getContainer();\n\t\t\tcontainer.removeEventListener('mousedown', this.checkboxClickHandler);\n\t\t}\n\t\tthis.checkboxClickHandler = null;\n\t\tthis.context = null;\n\t}\n\n\tprivate registerNodeSpec(context: PluginContext): void {\n\t\tcontext.registerNodeSpec({\n\t\t\ttype: 'list_item',\n\t\t\tgroup: 'block',\n\t\t\tcontent: { allow: ['text'] },\n\t\t\tattrs: {\n\t\t\t\tlistType: { default: 'bullet' },\n\t\t\t\tindent: { default: 0 },\n\t\t\t\tchecked: { default: false },\n\t\t\t},\n\t\t\ttoDOM(node) {\n\t\t\t\tconst listType = node.attrs?.listType ?? 'bullet';\n\t\t\t\tconst indent = node.attrs?.indent ?? 0;\n\t\t\t\tconst checked = node.attrs?.checked ?? false;\n\n\t\t\t\tconst li = createBlockElement('li', node.id);\n\t\t\t\tli.setAttribute('role', 'listitem');\n\t\t\t\tli.setAttribute('data-list-type', listType);\n\t\t\t\tli.setAttribute('data-indent', String(indent));\n\t\t\t\tli.className = `notectl-list-item notectl-list-item--${listType}`;\n\n\t\t\t\tif (indent > 0) {\n\t\t\t\t\tsetStyleProperty(li, 'marginLeft', `${indent * LIST_MARKER_WIDTH}px`);\n\t\t\t\t}\n\n\t\t\t\tif (listType === 'checklist') {\n\t\t\t\t\tli.setAttribute('data-checked', String(checked));\n\t\t\t\t\tli.setAttribute('aria-checked', String(checked));\n\t\t\t\t}\n\t\t\t\tli.setAttribute('aria-level', String(indent + 1));\n\n\t\t\t\treturn li;\n\t\t\t},\n\t\t\twrapper(node) {\n\t\t\t\tconst listType = node.attrs?.listType ?? 'bullet';\n\t\t\t\tconst tag = listType === 'ordered' ? 'ol' : 'ul';\n\t\t\t\treturn {\n\t\t\t\t\ttag,\n\t\t\t\t\tkey: `list-${listType}`,\n\t\t\t\t\tclassName: `notectl-list notectl-list--${listType}`,\n\t\t\t\t\tattrs: { role: 'list' },\n\t\t\t\t};\n\t\t\t},\n\t\t\ttoHTML(node, content) {\n\t\t\t\tconst listType: string = (node.attrs?.listType as string) ?? 'bullet';\n\t\t\t\tconst checked: boolean = (node.attrs?.checked as boolean) ?? false;\n\n\t\t\t\tif (listType === 'checklist') {\n\t\t\t\t\tconst checkedAttr: string = checked ? ' checked' : '';\n\t\t\t\t\tconst ariaChecked: string = String(checked);\n\t\t\t\t\treturn (\n\t\t\t\t\t\t`<li role=\"checkbox\" aria-checked=\"${ariaChecked}\">` +\n\t\t\t\t\t\t`<input type=\"checkbox\" disabled${checkedAttr}>` +\n\t\t\t\t\t\t`${content || '<br>'}</li>`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn `<li>${content || '<br>'}</li>`;\n\t\t\t},\n\t\t\tparseHTML: [{ tag: 'li' }],\n\t\t\tsanitize: {\n\t\t\t\ttags: ['ul', 'ol', 'li', 'input'],\n\t\t\t\tattrs: ['type', 'disabled', 'checked', 'role', 'aria-checked'],\n\t\t\t},\n\t\t});\n\t}\n\n\tprivate registerCommands(context: PluginContext): void {\n\t\tconst enabledTypes = this.getEnabledTypes();\n\n\t\tfor (const def of enabledTypes) {\n\t\t\tcontext.registerCommand(`toggleList:${def.type}`, () => {\n\t\t\t\treturn this.toggleList(context, def.type);\n\t\t\t});\n\t\t}\n\n\t\tcontext.registerCommand('indentListItem', () => {\n\t\t\treturn this.indent(context);\n\t\t});\n\n\t\tcontext.registerCommand('outdentListItem', () => {\n\t\t\treturn this.outdent(context);\n\t\t});\n\n\t\tif (this.config.types.includes('checklist')) {\n\t\t\tcontext.registerCommand('toggleChecklistItem', () => this.toggleChecked(context), {\n\t\t\t\treadonlyAllowed: true,\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate registerKeymaps(context: PluginContext): void {\n\t\tcontext.registerKeymap({\n\t\t\tEnter: () => this.handleEnter(context),\n\t\t\tBackspace: () => this.handleBackspace(context),\n\t\t\tTab: () => this.indent(context),\n\t\t\t'Shift-Tab': () => this.outdent(context),\n\t\t});\n\t}\n\n\tprivate registerInputRules(context: PluginContext): void {\n\t\tconst enabledTypes = this.getEnabledTypes();\n\n\t\tfor (const def of enabledTypes) {\n\t\t\tcontext.registerInputRule({\n\t\t\t\tpattern: def.inputPattern,\n\t\t\t\thandler: (state, match, start, _end) => {\n\t\t\t\t\tconst sel = state.selection;\n\t\t\t\t\tif (isNodeSelection(sel) || isGapCursor(sel)) return null;\n\t\t\t\t\tif (!isCollapsed(sel)) return null;\n\n\t\t\t\t\tconst block = state.getBlock(sel.anchor.blockId);\n\t\t\t\t\tif (!block || block.type !== 'paragraph') return null;\n\n\t\t\t\t\tconst matchStr = match[0] ?? '';\n\t\t\t\t\tconst matchLen = matchStr.length;\n\t\t\t\t\tconst attrs: Record<string, string | number | boolean> = {\n\t\t\t\t\t\tlistType: def.type,\n\t\t\t\t\t\tindent: 0,\n\t\t\t\t\t};\n\t\t\t\t\tif (def.type === 'checklist') {\n\t\t\t\t\t\tattrs.checked = matchStr.includes('[x]');\n\t\t\t\t\t}\n\n\t\t\t\t\treturn state\n\t\t\t\t\t\t.transaction('input')\n\t\t\t\t\t\t.deleteTextAt(sel.anchor.blockId, start, start + matchLen)\n\t\t\t\t\t\t.setBlockType(sel.anchor.blockId, nodeType('list_item'), attrs)\n\t\t\t\t\t\t.setSelection(createCollapsedSelection(sel.anchor.blockId, 0))\n\t\t\t\t\t\t.build();\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate getListLabel(type: ListType): string {\n\t\tconst labels: Record<ListType, string> = {\n\t\t\tbullet: this.locale.bulletList,\n\t\t\tordered: this.locale.numberedList,\n\t\t\tchecklist: this.locale.checklist,\n\t\t};\n\t\treturn labels[type];\n\t}\n\n\tprivate registerToolbarItems(context: PluginContext): void {\n\t\tconst enabledTypes = this.getEnabledTypes();\n\t\tconst lastType = enabledTypes.at(-1);\n\n\t\tfor (const def of enabledTypes) {\n\t\t\tcontext.registerToolbarItem({\n\t\t\t\tid: `list-${def.type}`,\n\t\t\t\tgroup: 'block',\n\t\t\t\ticon: def.icon,\n\t\t\t\tlabel: this.getListLabel(def.type),\n\t\t\t\tcommand: `toggleList:${def.type}`,\n\t\t\t\tpriority: def.type === 'bullet' ? 70 : def.type === 'ordered' ? 71 : 72,\n\t\t\t\tseparatorAfter: this.config.separatorAfter && def === lastType,\n\t\t\t\tisActive: (state) => this.isListActive(state, def.type),\n\t\t\t});\n\t\t}\n\t}\n\n\t// --- Command Implementations ---\n\n\tprivate toggleList(context: PluginContext, listType: ListType): boolean {\n\t\tconst state = context.getState();\n\t\tconst sel = state.selection;\n\t\tif (isNodeSelection(sel) || isGapCursor(sel)) return false;\n\t\tconst block = state.getBlock(sel.anchor.blockId);\n\t\tif (!block) return false;\n\n\t\t// If already this list type, convert back to paragraph\n\t\tif (block.type === 'list_item' && block.attrs?.listType === listType) {\n\t\t\tconst tr = state\n\t\t\t\t.transaction('command')\n\t\t\t\t.setBlockType(sel.anchor.blockId, nodeType('paragraph'))\n\t\t\t\t.setSelection(sel)\n\t\t\t\t.build();\n\t\t\tcontext.dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\n\t\t// Convert to list item\n\t\tconst attrs: Record<string, string | number | boolean> = {\n\t\t\tlistType,\n\t\t\tindent: isNodeOfType(block, 'list_item') ? block.attrs.indent : 0,\n\t\t};\n\t\tif (listType === 'checklist') {\n\t\t\tattrs.checked = false;\n\t\t}\n\n\t\tconst tr = state\n\t\t\t.transaction('command')\n\t\t\t.setBlockType(sel.anchor.blockId, nodeType('list_item'), attrs)\n\t\t\t.setSelection(sel)\n\t\t\t.build();\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\tprivate indent(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tif (isNodeSelection(state.selection) || isGapCursor(state.selection)) return false;\n\t\tconst block = state.getBlock(state.selection.anchor.blockId);\n\t\tif (!block || !isNodeOfType(block, 'list_item')) return false;\n\n\t\tif (block.attrs.indent >= this.config.maxIndent) return false;\n\n\t\treturn this.setIndent(context, state, block.attrs.indent + 1);\n\t}\n\n\tprivate outdent(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tif (isNodeSelection(state.selection) || isGapCursor(state.selection)) return false;\n\t\tconst block = state.getBlock(state.selection.anchor.blockId);\n\t\tif (!block || !isNodeOfType(block, 'list_item')) return false;\n\n\t\tif (block.attrs.indent <= 0) return false;\n\n\t\treturn this.setIndent(context, state, block.attrs.indent - 1);\n\t}\n\n\tprivate setIndent(context: PluginContext, state: EditorState, indent: number): boolean {\n\t\tconst sel = state.selection;\n\t\tif (isNodeSelection(sel) || isGapCursor(sel)) return false;\n\t\tconst block = state.getBlock(sel.anchor.blockId);\n\t\tif (!block) return false;\n\n\t\tconst attrs = { ...block.attrs, indent } as Record<string, string | number | boolean>;\n\n\t\tconst tr = state\n\t\t\t.transaction('command')\n\t\t\t.setBlockType(sel.anchor.blockId, nodeType('list_item'), attrs)\n\t\t\t.setSelection(sel)\n\t\t\t.build();\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\tprivate toggleChecked(context: PluginContext, targetId?: BlockId): boolean {\n\t\tif (context.isReadOnly() && !this.config.interactiveCheckboxes) return false;\n\n\t\tconst state = context.getState();\n\t\tconst bid: BlockId | null =\n\t\t\ttargetId ??\n\t\t\t(isNodeSelection(state.selection) || isGapCursor(state.selection)\n\t\t\t\t? null\n\t\t\t\t: state.selection.anchor.blockId);\n\t\tif (!bid) return false;\n\n\t\tconst block = state.getBlock(bid);\n\t\tif (!block || block.type !== 'list_item' || block.attrs?.listType !== 'checklist') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst checked: boolean = !block.attrs?.checked;\n\t\tconst attrs = { ...block.attrs, checked } as Record<string, string | number | boolean>;\n\n\t\tconst tr = state\n\t\t\t.transaction('command')\n\t\t\t.setBlockType(bid, nodeType('list_item'), attrs)\n\t\t\t.setSelection(state.selection)\n\t\t\t.build();\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\t/**\n\t * Handles Backspace at the start of a list item.\n\t * Converts the list item back to a paragraph, preserving text.\n\t */\n\tprivate handleBackspace(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tconst sel = state.selection;\n\t\tif (isNodeSelection(sel) || isGapCursor(sel)) return false;\n\t\tif (!isCollapsed(sel)) return false;\n\n\t\tconst block = state.getBlock(sel.anchor.blockId);\n\t\tif (!block || block.type !== 'list_item') return false;\n\t\tif (sel.anchor.offset !== 0) return false;\n\n\t\tconst tr = state\n\t\t\t.transaction('input')\n\t\t\t.setBlockType(sel.anchor.blockId, nodeType('paragraph'))\n\t\t\t.setSelection(sel)\n\t\t\t.build();\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\t/**\n\t * Handles Enter inside a list item.\n\t * Empty item → exit list (convert to paragraph).\n\t * Non-empty item → split and create a new list item with the same type.\n\t */\n\tprivate handleEnter(context: PluginContext): boolean {\n\t\tconst state = context.getState();\n\t\tconst sel = state.selection;\n\t\tif (isNodeSelection(sel) || isGapCursor(sel)) return false;\n\t\tif (!isCollapsed(sel)) return false;\n\n\t\tconst block = state.getBlock(sel.anchor.blockId);\n\t\tif (!block || block.type !== 'list_item') return false;\n\n\t\tconst text = getBlockText(block);\n\n\t\tif (text === '') {\n\t\t\t// Empty list item → convert to paragraph (exit list)\n\t\t\tconst tr = state\n\t\t\t\t.transaction('input')\n\t\t\t\t.setBlockType(sel.anchor.blockId, nodeType('paragraph'))\n\t\t\t\t.setSelection(sel)\n\t\t\t\t.build();\n\t\t\tcontext.dispatch(tr);\n\t\t\treturn true;\n\t\t}\n\n\t\t// Non-empty → split block and set new block to same list type\n\t\tconst newBlockId = generateBlockId();\n\t\tconst attrs: Record<string, string | number | boolean> = {\n\t\t\tlistType: isNodeOfType(block, 'list_item') ? block.attrs.listType : 'bullet',\n\t\t\tindent: isNodeOfType(block, 'list_item') ? block.attrs.indent : 0,\n\t\t};\n\t\tif (attrs.listType === 'checklist') {\n\t\t\tattrs.checked = false;\n\t\t}\n\n\t\tconst tr = state\n\t\t\t.transaction('input')\n\t\t\t.splitBlock(sel.anchor.blockId, sel.anchor.offset, newBlockId)\n\t\t\t.setBlockType(newBlockId, nodeType('list_item'), attrs)\n\t\t\t.setSelection(createCollapsedSelection(newBlockId, 0))\n\t\t\t.build();\n\t\tcontext.dispatch(tr);\n\t\treturn true;\n\t}\n\n\t// --- Checkbox Click Handling ---\n\n\tprivate registerCheckboxClickHandler(context: PluginContext): void {\n\t\tif (!this.config.types.includes('checklist')) return;\n\n\t\tthis.checkboxClickHandler = (e: MouseEvent) => {\n\t\t\tif (context.isReadOnly() && !this.config.interactiveCheckboxes) return;\n\n\t\t\tconst target: EventTarget | null = e.target;\n\t\t\tif (!(target instanceof HTMLElement)) return;\n\n\t\t\tconst li: HTMLElement | null = target.closest('.notectl-list-item--checklist');\n\t\t\tif (!li) return;\n\n\t\t\tconst rect: DOMRect = li.getBoundingClientRect();\n\t\t\tif (e.clientX - rect.left >= LIST_MARKER_WIDTH) return;\n\n\t\t\te.preventDefault();\n\n\t\t\tconst bid: string | null = li.getAttribute('data-block-id');\n\t\t\tif (!bid) return;\n\n\t\t\tthis.toggleChecked(context, blockId(bid));\n\t\t};\n\n\t\tconst container: HTMLElement = context.getContainer();\n\t\tcontainer.addEventListener('mousedown', this.checkboxClickHandler);\n\t}\n\n\t// --- Helpers ---\n\n\tprivate isListActive(state: EditorState, listType: ListType): boolean {\n\t\tif (isNodeSelection(state.selection) || isGapCursor(state.selection)) return false;\n\t\tconst block = state.getBlock(state.selection.anchor.blockId);\n\t\treturn block?.type === 'list_item' && block.attrs?.listType === listType;\n\t}\n\n\tprivate getEnabledTypes(): readonly ListTypeDefinition[] {\n\t\treturn LIST_TYPE_DEFINITIONS.filter((def) => this.config.types.includes(def.type));\n\t}\n}\n"],"names":["LIST_LOCALE_EN","bulletList","numberedList","checklist","LIST_LOCALES","en","de","es","fr","zh","ru","ar","hi","DEFAULT_CONFIG","types","maxIndent","LIST_TYPE_DEFINITIONS","type","label","icon","inputPattern","inputPrefix","ListPlugin","id","name","priority","config","locale","context","checkboxClickHandler","this","resolvePluginLocale","registerStyleSheet","registerNodeSpec","registerCommands","registerKeymaps","registerInputRules","registerToolbarItems","registerCheckboxClickHandler","getContainer","removeEventListener","group","content","allow","attrs","listType","default","indent","checked","node","li","createBlockElement","setAttribute","String","className","setStyleProperty","tag","key","role","checkedAttr","parseHTML","sanitize","tags","enabledTypes","getEnabledTypes","def","registerCommand","toggleList","outdent","includes","toggleChecked","readonlyAllowed","registerKeymap","Enter","handleEnter","Backspace","handleBackspace","Tab","registerInputRule","pattern","handler","state","match","start","_end","sel","selection","isNodeSelection","isGapCursor","isCollapsed","block","getBlock","anchor","blockId","matchStr","matchLen","length","transaction","deleteTextAt","setBlockType","nodeType","setSelection","createCollapsedSelection","build","bullet","ordered","lastType","at","registerToolbarItem","getListLabel","command","separatorAfter","isActive","isListActive","getState","tr","dispatch","isNodeOfType","setIndent","targetId","isReadOnly","interactiveCheckboxes","bid","offset","getBlockText","newBlockId","generateBlockId","splitBlock","e","target","HTMLElement","closest","rect","getBoundingClientRect","clientX","left","preventDefault","getAttribute","addEventListener","filter"],"mappings":"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"}
@@ -1,73 +0,0 @@
1
- import { r as e } from "./resolvePluginLocale-B4w1OkPy.mjs";
2
- import { m as t } from "./TypeBrands-C09nE2qO.mjs";
3
- import { f as i } from "./ToolbarItem-BpZggUGo.mjs";
4
- import { e as a, b as r } from "./MarkCommands-6RUJ4L3r.mjs";
5
- const o = { boldLabel: "Bold", italicLabel: "Italic", underlineLabel: "Underline" }, n = { en: o, de: { boldLabel: "Fett", italicLabel: "Kursiv", underlineLabel: "Unterstrichen" }, es: { boldLabel: "Negrita", italicLabel: "Cursiva", underlineLabel: "Subrayado" }, fr: { boldLabel: "Gras", italicLabel: "Italique", underlineLabel: "Souligné" }, zh: { boldLabel: "粗体", italicLabel: "斜体", underlineLabel: "下划线" }, ru: { boldLabel: "Жирный", italicLabel: "Курсив", underlineLabel: "Подчёркнутый" }, ar: { boldLabel: "غامق", italicLabel: "مائل", underlineLabel: "تحته خط" }, hi: { boldLabel: "बोल्ड", italicLabel: "इटैलिक", underlineLabel: "अंडरलाइन" } }, s = { bold: true, italic: true, underline: true }, l = [{ type: "bold", configKey: "bold", rank: 0, tag: "strong", label: "Bold", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z"/></svg>', keyBinding: "Mod-B", toHTMLString: (e2) => `<strong>${e2}</strong>`, parseHTML: [{ tag: "strong" }, { tag: "b", getAttrs: (e2) => {
6
- const t2 = e2.style.fontWeight;
7
- return "normal" !== t2 && "400" !== t2 && {};
8
- } }, { tag: "span", getAttrs: (e2) => {
9
- const t2 = e2.style.fontWeight;
10
- if (!t2) return false;
11
- if ("bold" === t2) return {};
12
- const i2 = Number.parseInt(t2, 10);
13
- return !Number.isNaN(i2) && i2 >= 700 && {};
14
- } }], sanitize: { tags: ["strong", "b"] } }, { type: "italic", configKey: "italic", rank: 1, tag: "em", label: "Italic", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z"/></svg>', keyBinding: "Mod-I", toHTMLString: (e2) => `<em>${e2}</em>`, parseHTML: [{ tag: "em" }, { tag: "i" }, { tag: "span", getAttrs: (e2) => "italic" === e2.style.fontStyle && {} }], sanitize: { tags: ["em", "i"] } }, { type: "underline", configKey: "underline", rank: 2, tag: "u", label: "Underline", icon: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z"/></svg>', keyBinding: "Mod-U", toHTMLString: (e2) => `<u>${e2}</u>`, parseHTML: [{ tag: "u" }, { tag: "span", getAttrs: (e2) => !!e2.style.textDecoration.includes("underline") && {} }], sanitize: { tags: ["u"] } }];
15
- class g {
16
- id = "text-formatting";
17
- name = "Text Formatting";
18
- priority = 20;
19
- config;
20
- locale;
21
- constructor(e2) {
22
- this.config = { ...s, ...e2 };
23
- }
24
- init(t2) {
25
- this.locale = e(n, t2, this.config.locale);
26
- const i2 = l.filter((e2) => this.config[e2.configKey]), a2 = i2.filter((e2) => this.isToolbarVisible(e2.configKey)).at(-1);
27
- for (const e2 of i2) {
28
- const i3 = this.config.separatorAfter && e2 === a2;
29
- this.registerMark(t2, e2, i3);
30
- }
31
- this.registerKeymaps(t2, i2), this.registerDisabledToolbarItems(t2);
32
- }
33
- registerMark(e2, o2, n2) {
34
- const s2 = c(o2.type), l2 = this.isToolbarVisible(o2.configKey);
35
- if (e2.registerMarkSpec({ type: o2.type, rank: o2.rank, toDOM: () => document.createElement(o2.tag), toHTMLString: (e3, t2) => o2.toHTMLString(t2), parseHTML: o2.parseHTML, sanitize: o2.sanitize }), e2.registerCommand(s2, () => {
36
- const i2 = a(e2.getState(), t(o2.type));
37
- return !!i2 && (e2.dispatch(i2), true);
38
- }), l2) {
39
- const a2 = this.getMarkLabel(o2.type);
40
- e2.registerToolbarItem({ id: o2.type, group: "format", icon: o2.icon, label: a2, tooltip: `${a2} (${i(o2.keyBinding)})`, command: s2, priority: 10 * o2.rank + 10, separatorAfter: n2, isActive: (e3) => r(e3, t(o2.type)) });
41
- }
42
- }
43
- registerKeymaps(e2, t2) {
44
- const i2 = {};
45
- for (const a2 of t2) {
46
- const t3 = c(a2.type);
47
- i2[a2.keyBinding] = () => e2.executeCommand(t3);
48
- }
49
- Object.keys(i2).length > 0 && e2.registerKeymap(i2);
50
- }
51
- registerDisabledToolbarItems(e2) {
52
- if (this.config.toolbar) for (const t2 of l) {
53
- const i2 = this.config[t2.configKey], a2 = this.config.toolbar[t2.configKey] ?? true;
54
- !i2 && a2 && e2.registerToolbarItem({ id: t2.type, group: "format", icon: t2.icon, label: this.getMarkLabel(t2.type), command: c(t2.type), priority: 10 * t2.rank + 10, isEnabled: () => false });
55
- }
56
- }
57
- getMarkLabel(e2) {
58
- const t2 = `${e2}Label`;
59
- return this.locale[t2];
60
- }
61
- isToolbarVisible(e2) {
62
- return !this.config.toolbar || (this.config.toolbar[e2] ?? true);
63
- }
64
- }
65
- function c(e2) {
66
- return `toggle${e2.charAt(0).toUpperCase()}${e2.slice(1)}`;
67
- }
68
- export {
69
- g as T,
70
- n as a,
71
- o as b
72
- };
73
- //# sourceMappingURL=index-Cd3uJLP3.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-Cd3uJLP3.mjs","sources":["../../src/plugins/text-formatting/TextFormattingLocale.ts","../../src/plugins/text-formatting/TextFormattingPlugin.ts"],"sourcesContent":["/**\n * Locale interface and default English locale for the TextFormattingPlugin.\n */\n\n// --- Locale Interface ---\n\nexport interface TextFormattingLocale {\n\treadonly boldLabel: string;\n\treadonly italicLabel: string;\n\treadonly underlineLabel: string;\n}\n\n// --- Default English Locale ---\n\nexport const TEXT_FORMATTING_LOCALE_EN: TextFormattingLocale = {\n\tboldLabel: 'Bold',\n\titalicLabel: 'Italic',\n\tunderlineLabel: 'Underline',\n};\n\n// --- German Locale ---\n\nexport const TEXT_FORMATTING_LOCALE_DE: TextFormattingLocale = {\n\tboldLabel: 'Fett',\n\titalicLabel: 'Kursiv',\n\tunderlineLabel: 'Unterstrichen',\n};\n\n// --- Spanish Locale ---\n\nexport const TEXT_FORMATTING_LOCALE_ES: TextFormattingLocale = {\n\tboldLabel: 'Negrita',\n\titalicLabel: 'Cursiva',\n\tunderlineLabel: 'Subrayado',\n};\n\n// --- French Locale ---\n\nexport const TEXT_FORMATTING_LOCALE_FR: TextFormattingLocale = {\n\tboldLabel: 'Gras',\n\titalicLabel: 'Italique',\n\tunderlineLabel: 'Souligné',\n};\n\n// --- Chinese (Simplified) Locale ---\n\nexport const TEXT_FORMATTING_LOCALE_ZH: TextFormattingLocale = {\n\tboldLabel: '粗体',\n\titalicLabel: '斜体',\n\tunderlineLabel: '下划线',\n};\n\n// --- Russian Locale ---\n\nexport const TEXT_FORMATTING_LOCALE_RU: TextFormattingLocale = {\n\tboldLabel: 'Жирный',\n\titalicLabel: 'Курсив',\n\tunderlineLabel: 'Подчёркнутый',\n};\n\n// --- Arabic Locale ---\n\nexport const TEXT_FORMATTING_LOCALE_AR: TextFormattingLocale = {\n\tboldLabel: 'غامق',\n\titalicLabel: 'مائل',\n\tunderlineLabel: 'تحته خط',\n};\n\n// --- Hindi Locale ---\n\nexport const TEXT_FORMATTING_LOCALE_HI: TextFormattingLocale = {\n\tboldLabel: 'बोल्ड',\n\titalicLabel: 'इटैलिक',\n\tunderlineLabel: 'अंडरलाइन',\n};\n\n// --- Locale Map ---\n\nexport const TEXT_FORMATTING_LOCALES: Record<string, TextFormattingLocale> = {\n\ten: TEXT_FORMATTING_LOCALE_EN,\n\tde: TEXT_FORMATTING_LOCALE_DE,\n\tes: TEXT_FORMATTING_LOCALE_ES,\n\tfr: TEXT_FORMATTING_LOCALE_FR,\n\tzh: TEXT_FORMATTING_LOCALE_ZH,\n\tru: TEXT_FORMATTING_LOCALE_RU,\n\tar: TEXT_FORMATTING_LOCALE_AR,\n\thi: TEXT_FORMATTING_LOCALE_HI,\n};\n","/**\n * TextFormattingPlugin: registers inline marks (bold, italic, underline)\n * with their MarkSpecs, toggle commands, keyboard shortcuts, and toolbar items.\n *\n * This plugin is data-driven — each mark type is defined declaratively and\n * all registrations (MarkSpec, command, keymap, toolbar item) are derived\n * from the same definition.\n *\n * Supports two separate config dimensions:\n * - Feature config (bold/italic/underline): controls whether the mark is\n * registered in the schema. When disabled, the keyboard shortcut does nothing.\n * - Toolbar config: controls whether the toolbar button is visible.\n * When a feature is disabled but toolbar is enabled, the button renders as disabled.\n */\n\nimport { isMarkActive, toggleMark } from '../../commands/Commands.js';\nimport { resolvePluginLocale } from '../../i18n/resolvePluginLocale.js';\nimport type { ParseRule } from '../../model/ParseRule.js';\nimport type { SanitizeConfig } from '../../model/SanitizeConfig.js';\nimport { markType as mkType } from '../../model/TypeBrands.js';\nimport type { Plugin, PluginContext } from '../Plugin.js';\nimport { formatShortcut } from '../toolbar/ToolbarItem.js';\nimport { TEXT_FORMATTING_LOCALES, type TextFormattingLocale } from './TextFormattingLocale.js';\n\n// --- Configuration ---\n\n/** Controls toolbar button visibility per mark. */\nexport interface TextFormattingToolbarConfig {\n\treadonly bold?: boolean;\n\treadonly italic?: boolean;\n\treadonly underline?: boolean;\n}\n\n/** Controls which inline marks are enabled and which toolbar buttons are shown. */\nexport interface TextFormattingConfig {\n\treadonly bold: boolean;\n\treadonly italic: boolean;\n\treadonly underline: boolean;\n\treadonly toolbar?: TextFormattingToolbarConfig;\n\t/** When true, a separator is rendered after the last text-formatting toolbar item. */\n\treadonly separatorAfter?: boolean;\n\treadonly locale?: TextFormattingLocale;\n}\n\nconst DEFAULT_CONFIG: TextFormattingConfig = {\n\tbold: true,\n\titalic: true,\n\tunderline: true,\n};\n\n// --- Mark Definitions ---\n\ninterface MarkDefinition {\n\treadonly type: string;\n\treadonly configKey: keyof Omit<TextFormattingConfig, 'toolbar' | 'separatorAfter' | 'locale'>;\n\treadonly rank: number;\n\treadonly tag: string;\n\treadonly label: string;\n\treadonly icon: string;\n\treadonly keyBinding: string;\n\treadonly toHTMLString: (content: string) => string;\n\treadonly parseHTML: readonly ParseRule[];\n\treadonly sanitize: SanitizeConfig;\n}\n\nconst BOLD_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\"/></svg>';\nconst ITALIC_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z\"/></svg>';\nconst UNDERLINE_ICON =\n\t'<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\"/></svg>';\n\nconst MARK_DEFINITIONS: readonly MarkDefinition[] = [\n\t{\n\t\ttype: 'bold',\n\t\tconfigKey: 'bold',\n\t\trank: 0,\n\t\ttag: 'strong',\n\t\tlabel: 'Bold',\n\t\ticon: BOLD_ICON,\n\t\tkeyBinding: 'Mod-B',\n\t\ttoHTMLString: (content) => `<strong>${content}</strong>`,\n\t\tparseHTML: [\n\t\t\t{ tag: 'strong' },\n\t\t\t{\n\t\t\t\ttag: 'b',\n\t\t\t\tgetAttrs: (el: HTMLElement) => {\n\t\t\t\t\tconst fw: string = el.style.fontWeight;\n\t\t\t\t\treturn fw === 'normal' || fw === '400' ? false : {};\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttag: 'span',\n\t\t\t\tgetAttrs: (el: HTMLElement) => {\n\t\t\t\t\tconst fw: string = el.style.fontWeight;\n\t\t\t\t\tif (!fw) return false;\n\t\t\t\t\tif (fw === 'bold') return {};\n\t\t\t\t\tconst numeric: number = Number.parseInt(fw, 10);\n\t\t\t\t\treturn !Number.isNaN(numeric) && numeric >= 700 ? {} : false;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tsanitize: { tags: ['strong', 'b'] },\n\t},\n\t{\n\t\ttype: 'italic',\n\t\tconfigKey: 'italic',\n\t\trank: 1,\n\t\ttag: 'em',\n\t\tlabel: 'Italic',\n\t\ticon: ITALIC_ICON,\n\t\tkeyBinding: 'Mod-I',\n\t\ttoHTMLString: (content) => `<em>${content}</em>`,\n\t\tparseHTML: [\n\t\t\t{ tag: 'em' },\n\t\t\t{ tag: 'i' },\n\t\t\t{\n\t\t\t\ttag: 'span',\n\t\t\t\tgetAttrs: (el: HTMLElement) => {\n\t\t\t\t\treturn el.style.fontStyle === 'italic' ? {} : false;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tsanitize: { tags: ['em', 'i'] },\n\t},\n\t{\n\t\ttype: 'underline',\n\t\tconfigKey: 'underline',\n\t\trank: 2,\n\t\ttag: 'u',\n\t\tlabel: 'Underline',\n\t\ticon: UNDERLINE_ICON,\n\t\tkeyBinding: 'Mod-U',\n\t\ttoHTMLString: (content) => `<u>${content}</u>`,\n\t\tparseHTML: [\n\t\t\t{ tag: 'u' },\n\t\t\t{\n\t\t\t\ttag: 'span',\n\t\t\t\tgetAttrs: (el: HTMLElement) => {\n\t\t\t\t\treturn el.style.textDecoration.includes('underline') ? {} : false;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tsanitize: { tags: ['u'] },\n\t},\n];\n\n// --- Plugin ---\n\nexport class TextFormattingPlugin implements Plugin {\n\treadonly id = 'text-formatting';\n\treadonly name = 'Text Formatting';\n\treadonly priority = 20;\n\n\tprivate readonly config: TextFormattingConfig;\n\tprivate locale!: TextFormattingLocale;\n\n\tconstructor(config?: Partial<TextFormattingConfig>) {\n\t\tthis.config = { ...DEFAULT_CONFIG, ...config };\n\t}\n\n\tinit(context: PluginContext): void {\n\t\tthis.locale = resolvePluginLocale(TEXT_FORMATTING_LOCALES, context, this.config.locale);\n\n\t\tconst enabledMarks = MARK_DEFINITIONS.filter((def) => this.config[def.configKey]);\n\n\t\t// Determine which marks will have visible toolbar items\n\t\tconst visibleToolbarMarks = enabledMarks.filter((def) => this.isToolbarVisible(def.configKey));\n\t\tconst lastVisibleMark = visibleToolbarMarks.at(-1);\n\n\t\tfor (const def of enabledMarks) {\n\t\t\tconst isSeparatorTarget = this.config.separatorAfter && def === lastVisibleMark;\n\t\t\tthis.registerMark(context, def, isSeparatorTarget);\n\t\t}\n\n\t\tthis.registerKeymaps(context, enabledMarks);\n\n\t\t// Register disabled placeholder buttons for marks that are disabled\n\t\t// as features but explicitly requested in the toolbar config\n\t\tthis.registerDisabledToolbarItems(context);\n\t}\n\n\tprivate registerMark(\n\t\tcontext: PluginContext,\n\t\tdef: MarkDefinition,\n\t\tseparatorAfter?: boolean,\n\t): void {\n\t\tconst commandName = toCommandName(def.type);\n\t\tconst toolbarVisible = this.isToolbarVisible(def.configKey);\n\n\t\tcontext.registerMarkSpec({\n\t\t\ttype: def.type,\n\t\t\trank: def.rank,\n\t\t\ttoDOM() {\n\t\t\t\treturn document.createElement(def.tag);\n\t\t\t},\n\t\t\ttoHTMLString: (_mark, content) => def.toHTMLString(content),\n\t\t\tparseHTML: def.parseHTML,\n\t\t\tsanitize: def.sanitize,\n\t\t});\n\n\t\tcontext.registerCommand(commandName, () => {\n\t\t\tconst tr = toggleMark(context.getState(), mkType(def.type));\n\t\t\tif (tr) {\n\t\t\t\tcontext.dispatch(tr);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn false;\n\t\t});\n\n\t\tif (toolbarVisible) {\n\t\t\tconst label: string = this.getMarkLabel(def.type);\n\t\t\tcontext.registerToolbarItem({\n\t\t\t\tid: def.type,\n\t\t\t\tgroup: 'format',\n\t\t\t\ticon: def.icon,\n\t\t\t\tlabel,\n\t\t\t\ttooltip: `${label} (${formatShortcut(def.keyBinding)})`,\n\t\t\t\tcommand: commandName,\n\t\t\t\tpriority: def.rank * 10 + 10,\n\t\t\t\tseparatorAfter,\n\t\t\t\tisActive: (state) => isMarkActive(state, mkType(def.type)),\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate registerKeymaps(context: PluginContext, marks: readonly MarkDefinition[]): void {\n\t\tconst keymap: Record<string, () => boolean> = {};\n\t\tfor (const def of marks) {\n\t\t\tconst commandName = toCommandName(def.type);\n\t\t\tkeymap[def.keyBinding] = () => context.executeCommand(commandName);\n\t\t}\n\t\tif (Object.keys(keymap).length > 0) {\n\t\t\tcontext.registerKeymap(keymap);\n\t\t}\n\t}\n\n\t/**\n\t * Registers disabled toolbar buttons for marks whose feature is disabled\n\t * but whose toolbar button is explicitly requested.\n\t */\n\tprivate registerDisabledToolbarItems(context: PluginContext): void {\n\t\tif (!this.config.toolbar) return;\n\n\t\tfor (const def of MARK_DEFINITIONS) {\n\t\t\tconst featureEnabled = this.config[def.configKey];\n\t\t\tconst toolbarVisible = this.config.toolbar[def.configKey] ?? true;\n\n\t\t\tif (!featureEnabled && toolbarVisible) {\n\t\t\t\tcontext.registerToolbarItem({\n\t\t\t\t\tid: def.type,\n\t\t\t\t\tgroup: 'format',\n\t\t\t\t\ticon: def.icon,\n\t\t\t\t\tlabel: this.getMarkLabel(def.type),\n\t\t\t\t\tcommand: toCommandName(def.type),\n\t\t\t\t\tpriority: def.rank * 10 + 10,\n\t\t\t\t\tisEnabled: () => false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getMarkLabel(type: string): string {\n\t\tconst key = `${type}Label` as keyof TextFormattingLocale;\n\t\treturn this.locale[key] as string;\n\t}\n\n\t/** Checks if a toolbar button should be visible for a given mark. */\n\tprivate isToolbarVisible(\n\t\tconfigKey: keyof Omit<TextFormattingConfig, 'toolbar' | 'separatorAfter' | 'locale'>,\n\t): boolean {\n\t\tif (!this.config.toolbar) return true;\n\t\treturn this.config.toolbar[configKey] ?? true;\n\t}\n}\n\n/** Converts a mark type to its toggle command name (e.g. 'bold' → 'toggleBold'). */\nfunction toCommandName(markType: string): string {\n\treturn `toggle${markType.charAt(0).toUpperCase()}${markType.slice(1)}`;\n}\n"],"names":["TEXT_FORMATTING_LOCALE_EN","boldLabel","italicLabel","underlineLabel","TEXT_FORMATTING_LOCALES","en","de","es","fr","zh","ru","ar","hi","DEFAULT_CONFIG","bold","italic","underline","MARK_DEFINITIONS","type","configKey","rank","tag","label","icon","keyBinding","toHTMLString","content","parseHTML","getAttrs","el","fw","style","fontWeight","numeric","Number","parseInt","isNaN","sanitize","tags","fontStyle","textDecoration","includes","TextFormattingPlugin","id","name","priority","config","locale","this","context","resolvePluginLocale","enabledMarks","filter","def","lastVisibleMark","isToolbarVisible","at","isSeparatorTarget","separatorAfter","registerMark","registerKeymaps","registerDisabledToolbarItems","commandName","toCommandName","toolbarVisible","registerMarkSpec","toDOM","document","createElement","_mark","registerCommand","tr","toggleMark","getState","mkType","dispatch","getMarkLabel","registerToolbarItem","group","tooltip","formatShortcut","command","isActive","state","isMarkActive","marks","keymap","executeCommand","Object","keys","length","registerKeymap","toolbar","featureEnabled","isEnabled","key","markType","charAt","toUpperCase","slice"],"mappings":"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"}