texditor 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 (330) hide show
  1. package/LICENSE.md +9 -0
  2. package/README.md +232 -0
  3. package/dist/core/base/base-model.d.ts +160 -0
  4. package/dist/core/base/base-model.d.ts.map +1 -0
  5. package/dist/core/base/event-manager.d.ts +20 -0
  6. package/dist/core/base/event-manager.d.ts.map +1 -0
  7. package/dist/core/base/index.d.ts +3 -0
  8. package/dist/core/base/index.d.ts.map +1 -0
  9. package/dist/core/base.d.ts +2 -0
  10. package/dist/core/base.mjs +1 -0
  11. package/dist/core/block-manager.d.ts +91 -0
  12. package/dist/core/block-manager.d.ts.map +1 -0
  13. package/dist/core/commands.d.ts +73 -0
  14. package/dist/core/commands.d.ts.map +1 -0
  15. package/dist/core/config.d.ts +11 -0
  16. package/dist/core/config.d.ts.map +1 -0
  17. package/dist/core/events.d.ts +121 -0
  18. package/dist/core/events.d.ts.map +1 -0
  19. package/dist/core/extensions.d.ts +23 -0
  20. package/dist/core/extensions.d.ts.map +1 -0
  21. package/dist/core/history-manager.d.ts +76 -0
  22. package/dist/core/history-manager.d.ts.map +1 -0
  23. package/dist/core/i18n.d.ts +29 -0
  24. package/dist/core/i18n.d.ts.map +1 -0
  25. package/dist/core/models/action-model.d.ts +54 -0
  26. package/dist/core/models/action-model.d.ts.map +1 -0
  27. package/dist/core/models/block-model.d.ts +396 -0
  28. package/dist/core/models/block-model.d.ts.map +1 -0
  29. package/dist/core/models/extension-model.d.ts +25 -0
  30. package/dist/core/models/extension-model.d.ts.map +1 -0
  31. package/dist/core/models/file-action-model.d.ts +20 -0
  32. package/dist/core/models/file-action-model.d.ts.map +1 -0
  33. package/dist/core/models/index.d.ts +7 -0
  34. package/dist/core/models/index.d.ts.map +1 -0
  35. package/dist/core/models/tool-model.d.ts +69 -0
  36. package/dist/core/models/tool-model.d.ts.map +1 -0
  37. package/dist/core/models.d.ts +2 -0
  38. package/dist/core/models.mjs +6 -0
  39. package/dist/core/security/sanitizer.d.ts +65 -0
  40. package/dist/core/security/sanitizer.d.ts.map +1 -0
  41. package/dist/core/selection-api.d.ts +52 -0
  42. package/dist/core/selection-api.d.ts.map +1 -0
  43. package/dist/core/tools.d.ts +27 -0
  44. package/dist/core/tools.d.ts.map +1 -0
  45. package/dist/core/ui/slider.d.ts +50 -0
  46. package/dist/core/ui/slider.d.ts.map +1 -0
  47. package/dist/core/ui/toasts.d.ts +23 -0
  48. package/dist/core/ui/toasts.d.ts.map +1 -0
  49. package/dist/core/ui/virtual-selection.d.ts +171 -0
  50. package/dist/core/ui/virtual-selection.d.ts.map +1 -0
  51. package/dist/entities/actions/convert-action.d.ts +9 -0
  52. package/dist/entities/actions/convert-action.d.ts.map +1 -0
  53. package/dist/entities/actions/create-action.d.ts +8 -0
  54. package/dist/entities/actions/create-action.d.ts.map +1 -0
  55. package/dist/entities/actions/delete-action.d.ts +8 -0
  56. package/dist/entities/actions/delete-action.d.ts.map +1 -0
  57. package/dist/entities/actions/index.d.ts +7 -0
  58. package/dist/entities/actions/index.d.ts.map +1 -0
  59. package/dist/entities/actions/move-down-action.d.ts +9 -0
  60. package/dist/entities/actions/move-down-action.d.ts.map +1 -0
  61. package/dist/entities/actions/move-up-action.d.ts +9 -0
  62. package/dist/entities/actions/move-up-action.d.ts.map +1 -0
  63. package/dist/entities/actions.d.ts +2 -0
  64. package/dist/entities/actions.mjs +6 -0
  65. package/dist/entities/blocks/code/index.d.ts +48 -0
  66. package/dist/entities/blocks/code/index.d.ts.map +1 -0
  67. package/dist/entities/blocks/code/languages.d.ts +4 -0
  68. package/dist/entities/blocks/code/languages.d.ts.map +1 -0
  69. package/dist/entities/blocks/files/actions/DeleteFileAction.d.ts +7 -0
  70. package/dist/entities/blocks/files/actions/DeleteFileAction.d.ts.map +1 -0
  71. package/dist/entities/blocks/files/actions/DownloadFileAction.d.ts +12 -0
  72. package/dist/entities/blocks/files/actions/DownloadFileAction.d.ts.map +1 -0
  73. package/dist/entities/blocks/files/actions/EditFileAction.d.ts +32 -0
  74. package/dist/entities/blocks/files/actions/EditFileAction.d.ts.map +1 -0
  75. package/dist/entities/blocks/files/actions/MoveLeftFileAction.d.ts +8 -0
  76. package/dist/entities/blocks/files/actions/MoveLeftFileAction.d.ts.map +1 -0
  77. package/dist/entities/blocks/files/actions/MoveRightFileAction.d.ts +8 -0
  78. package/dist/entities/blocks/files/actions/MoveRightFileAction.d.ts.map +1 -0
  79. package/dist/entities/blocks/files/index.d.ts +185 -0
  80. package/dist/entities/blocks/files/index.d.ts.map +1 -0
  81. package/dist/entities/blocks/gallery/index.d.ts +60 -0
  82. package/dist/entities/blocks/gallery/index.d.ts.map +1 -0
  83. package/dist/entities/blocks/header/H1.d.ts +4 -0
  84. package/dist/entities/blocks/header/H1.d.ts.map +1 -0
  85. package/dist/entities/blocks/header/H2.d.ts +6 -0
  86. package/dist/entities/blocks/header/H2.d.ts.map +1 -0
  87. package/dist/entities/blocks/header/H3.d.ts +6 -0
  88. package/dist/entities/blocks/header/H3.d.ts.map +1 -0
  89. package/dist/entities/blocks/header/H4.d.ts +6 -0
  90. package/dist/entities/blocks/header/H4.d.ts.map +1 -0
  91. package/dist/entities/blocks/header/H5.d.ts +6 -0
  92. package/dist/entities/blocks/header/H5.d.ts.map +1 -0
  93. package/dist/entities/blocks/header/H6.d.ts +6 -0
  94. package/dist/entities/blocks/header/H6.d.ts.map +1 -0
  95. package/dist/entities/blocks/header/index.d.ts +6 -0
  96. package/dist/entities/blocks/header/index.d.ts.map +1 -0
  97. package/dist/entities/blocks/index.d.ts +14 -0
  98. package/dist/entities/blocks/index.d.ts.map +1 -0
  99. package/dist/entities/blocks/list/index.d.ts +6 -0
  100. package/dist/entities/blocks/list/index.d.ts.map +1 -0
  101. package/dist/entities/blocks/list/ol.d.ts +6 -0
  102. package/dist/entities/blocks/list/ol.d.ts.map +1 -0
  103. package/dist/entities/blocks/paragraph/index.d.ts +6 -0
  104. package/dist/entities/blocks/paragraph/index.d.ts.map +1 -0
  105. package/dist/entities/blocks.d.ts +2 -0
  106. package/dist/entities/blocks.mjs +13 -0
  107. package/dist/entities/extensions/delete-selected.d.ts +9 -0
  108. package/dist/entities/extensions/delete-selected.d.ts.map +1 -0
  109. package/dist/entities/extensions/index.d.ts +5 -0
  110. package/dist/entities/extensions/index.d.ts.map +1 -0
  111. package/dist/entities/extensions/redo.d.ts +8 -0
  112. package/dist/entities/extensions/redo.d.ts.map +1 -0
  113. package/dist/entities/extensions/undo.d.ts +8 -0
  114. package/dist/entities/extensions/undo.d.ts.map +1 -0
  115. package/dist/entities/extensions.d.ts +2 -0
  116. package/dist/entities/extensions.mjs +4 -0
  117. package/dist/entities/tools/bold.d.ts +6 -0
  118. package/dist/entities/tools/bold.d.ts.map +1 -0
  119. package/dist/entities/tools/clear-formatting.d.ts +7 -0
  120. package/dist/entities/tools/clear-formatting.d.ts.map +1 -0
  121. package/dist/entities/tools/index.d.ts +10 -0
  122. package/dist/entities/tools/index.d.ts.map +1 -0
  123. package/dist/entities/tools/inline-code.d.ts +6 -0
  124. package/dist/entities/tools/inline-code.d.ts.map +1 -0
  125. package/dist/entities/tools/italic.d.ts +6 -0
  126. package/dist/entities/tools/italic.d.ts.map +1 -0
  127. package/dist/entities/tools/link.d.ts +35 -0
  128. package/dist/entities/tools/link.d.ts.map +1 -0
  129. package/dist/entities/tools/marker.d.ts +6 -0
  130. package/dist/entities/tools/marker.d.ts.map +1 -0
  131. package/dist/entities/tools/subscript.d.ts +6 -0
  132. package/dist/entities/tools/subscript.d.ts.map +1 -0
  133. package/dist/entities/tools/superscript.d.ts +6 -0
  134. package/dist/entities/tools/superscript.d.ts.map +1 -0
  135. package/dist/entities/tools.d.ts +2 -0
  136. package/dist/entities/tools.mjs +9 -0
  137. package/dist/icons/index.d.ts +42 -0
  138. package/dist/icons/index.d.ts.map +1 -0
  139. package/dist/locales/en.d.ts +66 -0
  140. package/dist/locales/en.d.ts.map +1 -0
  141. package/dist/locales/index.d.ts +4 -0
  142. package/dist/locales/index.d.ts.map +1 -0
  143. package/dist/locales/ru.d.ts +66 -0
  144. package/dist/locales/ru.d.ts.map +1 -0
  145. package/dist/locales.d.ts +2 -0
  146. package/dist/locales.mjs +3 -0
  147. package/dist/main.d.ts +6 -0
  148. package/dist/node_modules/snappykit/dist/snappykit.mjs +440 -0
  149. package/dist/node_modules/sortum/dist/sortum.mjs +588 -0
  150. package/dist/src/core/base/base-model.mjs +184 -0
  151. package/dist/src/core/base/event-manager.mjs +31 -0
  152. package/dist/src/core/block-manager.mjs +499 -0
  153. package/dist/src/core/commands.mjs +311 -0
  154. package/dist/src/core/config.mjs +12 -0
  155. package/dist/src/core/events.mjs +369 -0
  156. package/dist/src/core/extensions.mjs +48 -0
  157. package/dist/src/core/history-manager.mjs +107 -0
  158. package/dist/src/core/i18n.mjs +25 -0
  159. package/dist/src/core/models/action-model.mjs +72 -0
  160. package/dist/src/core/models/block-model.mjs +619 -0
  161. package/dist/src/core/models/extension-model.mjs +28 -0
  162. package/dist/src/core/models/file-action-model.mjs +24 -0
  163. package/dist/src/core/models/tool-model.mjs +80 -0
  164. package/dist/src/core/security/sanitizer.mjs +130 -0
  165. package/dist/src/core/selection-api.mjs +202 -0
  166. package/dist/src/core/tools.mjs +88 -0
  167. package/dist/src/core/ui/slider.mjs +81 -0
  168. package/dist/src/core/ui/toasts.mjs +55 -0
  169. package/dist/src/core/ui/virtual-selection.mjs +205 -0
  170. package/dist/src/entities/actions/convert-action.mjs +43 -0
  171. package/dist/src/entities/actions/create-action.mjs +39 -0
  172. package/dist/src/entities/actions/delete-action.mjs +19 -0
  173. package/dist/src/entities/actions/move-down-action.mjs +22 -0
  174. package/dist/src/entities/actions/move-up-action.mjs +22 -0
  175. package/dist/src/entities/blocks/code/index.mjs +144 -0
  176. package/dist/src/entities/blocks/code/languages.mjs +54 -0
  177. package/dist/src/entities/blocks/files/actions/DeleteFileAction.mjs +21 -0
  178. package/dist/src/entities/blocks/files/actions/DownloadFileAction.mjs +44 -0
  179. package/dist/src/entities/blocks/files/actions/EditFileAction.mjs +111 -0
  180. package/dist/src/entities/blocks/files/actions/MoveLeftFileAction.mjs +24 -0
  181. package/dist/src/entities/blocks/files/actions/MoveRightFileAction.mjs +24 -0
  182. package/dist/src/entities/blocks/files/index.mjs +424 -0
  183. package/dist/src/entities/blocks/gallery/index.mjs +141 -0
  184. package/dist/src/entities/blocks/header/H1.mjs +5 -0
  185. package/dist/src/entities/blocks/header/H2.mjs +16 -0
  186. package/dist/src/entities/blocks/header/H3.mjs +16 -0
  187. package/dist/src/entities/blocks/header/H4.mjs +16 -0
  188. package/dist/src/entities/blocks/header/H5.mjs +16 -0
  189. package/dist/src/entities/blocks/header/H6.mjs +16 -0
  190. package/dist/src/entities/blocks/header/index.mjs +46 -0
  191. package/dist/src/entities/blocks/list/index.mjs +51 -0
  192. package/dist/src/entities/blocks/list/ol.mjs +16 -0
  193. package/dist/src/entities/blocks/paragraph/index.mjs +46 -0
  194. package/dist/src/entities/extensions/delete-selected.mjs +27 -0
  195. package/dist/src/entities/extensions/redo.mjs +22 -0
  196. package/dist/src/entities/extensions/undo.mjs +22 -0
  197. package/dist/src/entities/tools/bold.mjs +16 -0
  198. package/dist/src/entities/tools/clear-formatting.mjs +20 -0
  199. package/dist/src/entities/tools/inline-code.mjs +19 -0
  200. package/dist/src/entities/tools/italic.mjs +16 -0
  201. package/dist/src/entities/tools/link.mjs +89 -0
  202. package/dist/src/entities/tools/marker.mjs +17 -0
  203. package/dist/src/entities/tools/subscript.mjs +17 -0
  204. package/dist/src/entities/tools/superscript.mjs +18 -0
  205. package/dist/src/icons/index.mjs +4 -0
  206. package/dist/src/locales/en.mjs +68 -0
  207. package/dist/src/locales/ru.mjs +68 -0
  208. package/dist/src/store/currentStore.mjs +8 -0
  209. package/dist/src/store/mainStore.mjs +4 -0
  210. package/dist/src/utils/ajax.mjs +35 -0
  211. package/dist/src/utils/common.mjs +26 -0
  212. package/dist/src/utils/icon.mjs +12 -0
  213. package/dist/src/utils/sanitizer.mjs +20 -0
  214. package/dist/src/views/extensions.mjs +18 -0
  215. package/dist/src/views/main.mjs +19 -0
  216. package/dist/src/views/tools.mjs +9 -0
  217. package/dist/store/currentStore.d.ts +15 -0
  218. package/dist/store/currentStore.d.ts.map +1 -0
  219. package/dist/store/mainStore.d.ts +14 -0
  220. package/dist/store/mainStore.d.ts.map +1 -0
  221. package/dist/styles/animations.css +1 -0
  222. package/dist/styles/core/ui/selection.css +1 -0
  223. package/dist/styles/core/ui/slider.css +1 -0
  224. package/dist/styles/entities/blocks/code.css +1 -0
  225. package/dist/styles/entities/blocks/files.css +1 -0
  226. package/dist/styles/entities/blocks/gallery.css +1 -0
  227. package/dist/styles/entities/blocks/list.css +1 -0
  228. package/dist/styles/entities/blocks/paragraph.css +1 -0
  229. package/dist/styles/entities/tools/inline-code.css +1 -0
  230. package/dist/styles/entities/tools/link.css +1 -0
  231. package/dist/styles/texditor.css +1 -0
  232. package/dist/styles/theme.css +42 -0
  233. package/dist/texditor.d.ts +68 -0
  234. package/dist/texditor.d.ts.map +1 -0
  235. package/dist/texditor.mjs +138 -0
  236. package/dist/types/core/base/base-model.d.ts +212 -0
  237. package/dist/types/core/base/base-model.d.ts.map +1 -0
  238. package/dist/types/core/base/event-manager.d.ts +42 -0
  239. package/dist/types/core/base/event-manager.d.ts.map +1 -0
  240. package/dist/types/core/base/index.d.ts +3 -0
  241. package/dist/types/core/base/index.d.ts.map +1 -0
  242. package/dist/types/core/block-manager.d.ts +223 -0
  243. package/dist/types/core/block-manager.d.ts.map +1 -0
  244. package/dist/types/core/commands.d.ts +93 -0
  245. package/dist/types/core/commands.d.ts.map +1 -0
  246. package/dist/types/core/config.d.ts +86 -0
  247. package/dist/types/core/config.d.ts.map +1 -0
  248. package/dist/types/core/events.d.ts +58 -0
  249. package/dist/types/core/events.d.ts.map +1 -0
  250. package/dist/types/core/extensions.d.ts +19 -0
  251. package/dist/types/core/extensions.d.ts.map +1 -0
  252. package/dist/types/core/history-manager.d.ts +72 -0
  253. package/dist/types/core/history-manager.d.ts.map +1 -0
  254. package/dist/types/core/http/index.d.ts +2 -0
  255. package/dist/types/core/http/index.d.ts.map +1 -0
  256. package/dist/types/core/http/response.d.ts +6 -0
  257. package/dist/types/core/http/response.d.ts.map +1 -0
  258. package/dist/types/core/i18n.d.ts +40 -0
  259. package/dist/types/core/i18n.d.ts.map +1 -0
  260. package/dist/types/core/index.d.ts +15 -0
  261. package/dist/types/core/index.d.ts.map +1 -0
  262. package/dist/types/core/models/action-model.d.ts +46 -0
  263. package/dist/types/core/models/action-model.d.ts.map +1 -0
  264. package/dist/types/core/models/block-model.d.ts +404 -0
  265. package/dist/types/core/models/block-model.d.ts.map +1 -0
  266. package/dist/types/core/models/extension-model.d.ts +41 -0
  267. package/dist/types/core/models/extension-model.d.ts.map +1 -0
  268. package/dist/types/core/models/file-action-model.d.ts +36 -0
  269. package/dist/types/core/models/file-action-model.d.ts.map +1 -0
  270. package/dist/types/core/models/index.d.ts +7 -0
  271. package/dist/types/core/models/index.d.ts.map +1 -0
  272. package/dist/types/core/models/tool-model.d.ts +54 -0
  273. package/dist/types/core/models/tool-model.d.ts.map +1 -0
  274. package/dist/types/core/sanitizer.d.ts +27 -0
  275. package/dist/types/core/sanitizer.d.ts.map +1 -0
  276. package/dist/types/core/selection-api.d.ts +116 -0
  277. package/dist/types/core/selection-api.d.ts.map +1 -0
  278. package/dist/types/core/tools.d.ts +35 -0
  279. package/dist/types/core/tools.d.ts.map +1 -0
  280. package/dist/types/core/ui/index.d.ts +4 -0
  281. package/dist/types/core/ui/index.d.ts.map +1 -0
  282. package/dist/types/core/ui/slider.d.ts +45 -0
  283. package/dist/types/core/ui/slider.d.ts.map +1 -0
  284. package/dist/types/core/ui/toasts.d.ts +58 -0
  285. package/dist/types/core/ui/toasts.d.ts.map +1 -0
  286. package/dist/types/core/ui/virtual-selection.d.ts +83 -0
  287. package/dist/types/core/ui/virtual-selection.d.ts.map +1 -0
  288. package/dist/types/entities/blocks/code.d.ts +4 -0
  289. package/dist/types/entities/blocks/code.d.ts.map +1 -0
  290. package/dist/types/entities/blocks/files.d.ts +170 -0
  291. package/dist/types/entities/blocks/files.d.ts.map +1 -0
  292. package/dist/types/entities/blocks/gallery.d.ts +40 -0
  293. package/dist/types/entities/blocks/gallery.d.ts.map +1 -0
  294. package/dist/types/entities/blocks/header.d.ts +4 -0
  295. package/dist/types/entities/blocks/header.d.ts.map +1 -0
  296. package/dist/types/entities/blocks/index.d.ts +7 -0
  297. package/dist/types/entities/blocks/index.d.ts.map +1 -0
  298. package/dist/types/entities/blocks/list.d.ts +4 -0
  299. package/dist/types/entities/blocks/list.d.ts.map +1 -0
  300. package/dist/types/entities/blocks/paragraph.d.ts +4 -0
  301. package/dist/types/entities/blocks/paragraph.d.ts.map +1 -0
  302. package/dist/types/entities/index.d.ts +2 -0
  303. package/dist/types/entities/index.d.ts.map +1 -0
  304. package/dist/types/index.d.ts +5 -0
  305. package/dist/types/index.d.ts.map +1 -0
  306. package/dist/types/texditor.d.ts +66 -0
  307. package/dist/types/texditor.d.ts.map +1 -0
  308. package/dist/types/utils/ajax.d.ts +31 -0
  309. package/dist/types/utils/ajax.d.ts.map +1 -0
  310. package/dist/types/utils/icon.d.ts +10 -0
  311. package/dist/types/utils/icon.d.ts.map +1 -0
  312. package/dist/types/utils/index.d.ts +3 -0
  313. package/dist/types/utils/index.d.ts.map +1 -0
  314. package/dist/utils/ajax.d.ts +9 -0
  315. package/dist/utils/ajax.d.ts.map +1 -0
  316. package/dist/utils/common.d.ts +28 -0
  317. package/dist/utils/common.d.ts.map +1 -0
  318. package/dist/utils/icon.d.ts +12 -0
  319. package/dist/utils/icon.d.ts.map +1 -0
  320. package/dist/utils/index.d.ts +5 -0
  321. package/dist/utils/index.d.ts.map +1 -0
  322. package/dist/utils/sanitizer.d.ts +8 -0
  323. package/dist/utils/sanitizer.d.ts.map +1 -0
  324. package/dist/views/extensions.d.ts +3 -0
  325. package/dist/views/extensions.d.ts.map +1 -0
  326. package/dist/views/main.d.ts +3 -0
  327. package/dist/views/main.d.ts.map +1 -0
  328. package/dist/views/tools.d.ts +2 -0
  329. package/dist/views/tools.d.ts.map +1 -0
  330. package/package.json +75 -0
@@ -0,0 +1,66 @@
1
+ import { BlockManager, Config, Events, SelectionAPI, Tools, I18N, Commands, HistoryManager, Extensions, BlockSchema } from '.';
2
+ export interface TexditorRootElement extends HTMLElement {
3
+ texditor: Texditor;
4
+ }
5
+ /**
6
+ * Main Texditor editor interface
7
+ * Defines the public API and core component accessors for the editor instance
8
+ */
9
+ export interface Texditor {
10
+ /** Editor configuration object containing settings, plugins, and behaviors */
11
+ config: Config;
12
+ /** Manages all editor blocks (creation, deletion, manipulation, ordering) */
13
+ blockManager: BlockManager;
14
+ /** Handles text selection, cursor position, and range management operations */
15
+ selectionApi: SelectionAPI;
16
+ /** Event system for editor lifecycle and user action notifications and subscriptions */
17
+ events: Events;
18
+ /** Tool management system for additional editor functionalities and UI components */
19
+ tools: Tools;
20
+ /** Internationalization system providing multi-language support and translations */
21
+ i18n: I18N;
22
+ /** Command execution system for complex editor operations and batch manipulations */
23
+ commands: Commands;
24
+ /** Undo/redo history manager for state tracking, restoration, and time travel */
25
+ historyManager: HistoryManager;
26
+ /** Extension system for third-party plugins, custom features, and external integrations */
27
+ extensions: Extensions;
28
+ /**
29
+ * Gets the root element of the editor
30
+ * @returns Root element or null if not found
31
+ */
32
+ getRoot(): TexditorRootElement | null;
33
+ /**
34
+ * Returns the main content body element inside the editor root
35
+ * @returns The body HTMLElement or null if not found
36
+ */
37
+ getBody(): HTMLElement | null;
38
+ /**
39
+ * Checks if the editor is empty (no content)
40
+ * @returns True if editor is empty
41
+ */
42
+ isEmpty(): boolean;
43
+ /**
44
+ * Gets the current editor content
45
+ * @returns Array of block outputs
46
+ */
47
+ getContent(): BlockSchema[];
48
+ /**
49
+ * Saves the current editor state to a serializable format
50
+ * @returns Array of block output objects ready for storage or transmission
51
+ */
52
+ save(): BlockSchema[] | [];
53
+ /**
54
+ * Sets the editor content
55
+ * @param content - JSON string or array of block schemas
56
+ * @param index - Optional block index to set as active (default: 0)
57
+ * @param focusDelay - Focus delay in milliseconds (default: 0)
58
+ */
59
+ setContent(content: string | BlockSchema[], index?: number, focusDelay?: number): void;
60
+ /**
61
+ * Completely destroys the editor instance
62
+ * Cleans up all resources, event listeners, and DOM elements
63
+ */
64
+ destroy(): void;
65
+ }
66
+ //# sourceMappingURL=texditor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"texditor.d.ts","sourceRoot":"","sources":["../../src/types/texditor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,MAAM,EACN,MAAM,EACN,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,UAAU,EACV,WAAW,EACZ,MAAM,GAAG,CAAC;AAEX,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IAEf,6EAA6E;IAC7E,YAAY,EAAE,YAAY,CAAC;IAE3B,+EAA+E;IAC/E,YAAY,EAAE,YAAY,CAAC;IAE3B,wFAAwF;IACxF,MAAM,EAAE,MAAM,CAAC;IAEf,qFAAqF;IACrF,KAAK,EAAE,KAAK,CAAC;IAEb,oFAAoF;IACpF,IAAI,EAAE,IAAI,CAAC;IAEX,qFAAqF;IACrF,QAAQ,EAAE,QAAQ,CAAC;IAEnB,iFAAiF;IACjF,cAAc,EAAE,cAAc,CAAC;IAE/B,2FAA2F;IAC3F,UAAU,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,OAAO,IAAI,mBAAmB,GAAG,IAAI,CAAC;IAEtC;;;OAGG;IACH,OAAO,IAAI,WAAW,GAAG,IAAI,CAAC;IAE9B;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;;OAGG;IACH,UAAU,IAAI,WAAW,EAAE,CAAC;IAE5B;;;OAGG;IACH,IAAI,IAAI,WAAW,EAAE,GAAG,EAAE,CAAC;IAE3B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvF;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB"}
@@ -0,0 +1,31 @@
1
+ /** HTTP method types for AJAX requests */
2
+ export type AjaxMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
3
+ /** Supported data types for request body */
4
+ export type AjaxData = FormData | Record<string, unknown> | string;
5
+ /** Configuration options for AJAX request */
6
+ export interface AjaxOptions<TResponse = unknown, TData extends AjaxData = AjaxData, THeaders extends Record<string, string> = Record<string, string>> {
7
+ /** HTTP method (default: GET) */
8
+ method?: AjaxMethod;
9
+ /** Request body data */
10
+ data?: TData;
11
+ /** Custom HTTP headers */
12
+ headers?: THeaders;
13
+ /** Progress callback for upload tracking */
14
+ progress?: (percent: number, loaded: number, total: number) => void;
15
+ /** Success callback */
16
+ success?: (data: TResponse) => void;
17
+ /** Error callback */
18
+ error?: (error: Error) => void;
19
+ /** Request timeout in milliseconds (default: 30000) */
20
+ timeout?: number;
21
+ }
22
+ /** Complete AJAX configuration with URL */
23
+ export interface AjaxConfig<TResponse = unknown, TData extends AjaxData = AjaxData, THeaders extends Record<string, string> = Record<string, string>> {
24
+ /** Target URL for the request */
25
+ url: string;
26
+ /** Request options */
27
+ options?: AjaxOptions<TResponse, TData, THeaders>;
28
+ }
29
+ /** Response data type alias */
30
+ export type AjaxResponse<T = unknown> = T;
31
+ //# sourceMappingURL=ajax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ajax.d.ts","sourceRoot":"","sources":["../../../src/types/utils/ajax.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErE,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;AAEnE,6CAA6C;AAC7C,MAAM,WAAW,WAAW,CAC1B,SAAS,GAAG,OAAO,EACnB,KAAK,SAAS,QAAQ,GAAG,QAAQ,EACjC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEhE,iCAAiC;IACjC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,wBAAwB;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,0BAA0B;IAC1B,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,uBAAuB;IACvB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACpC,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,2CAA2C;AAC3C,MAAM,WAAW,UAAU,CACzB,SAAS,GAAG,OAAO,EACnB,KAAK,SAAS,QAAQ,GAAG,QAAQ,EACjC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAEhE,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;CACnD;AAED,+BAA+B;AAC/B,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface RenderIconOptions {
2
+ width?: number;
3
+ height?: number;
4
+ classes?: string;
5
+ }
6
+ export interface RenderIconObject {
7
+ raw?: string;
8
+ }
9
+ export type RenderIconContent = string | RenderIconObject;
10
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/types/utils/icon.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './ajax';
2
+ export * from './icon';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { AjaxOptions, AjaxResponse, AjaxData } from '../types';
2
+ /**
3
+ * Sends an AJAX request with support for FormData and plain data, including progress tracking
4
+ * @param url - Request URL
5
+ * @param options - Request configuration
6
+ * @returns Promise that resolves with the response data
7
+ */
8
+ export declare function ajax<TResponse = unknown, TData extends AjaxData = AjaxData, THeaders extends Record<string, string> = Record<string, string>>(url: string, options?: AjaxOptions<TResponse, TData, THeaders>): Promise<AjaxResponse<TResponse>>;
9
+ //# sourceMappingURL=ajax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ajax.d.ts","sourceRoot":"","sources":["../../src/utils/ajax.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,IAAI,CAClB,SAAS,GAAG,OAAO,EACnB,KAAK,SAAS,QAAQ,GAAG,QAAQ,EACjC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAW,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAM,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CA2FtG"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Detects the mobile operating system from user agent
3
+ * @returns Detected OS: 'android', 'ios', 'windows_phone', or 'other'
4
+ */
5
+ export declare function detectMobileOS(): 'android' | 'ios' | 'windows_phone' | 'other';
6
+ /**
7
+ * Gets the cursor or touch position coordinates
8
+ * @param event - Pointer or Touch event (optional)
9
+ * @returns Coordinates object with x and y, or null if not available
10
+ */
11
+ export declare function getCaretPosition(event?: PointerEvent | TouchEvent): {
12
+ x: number;
13
+ y: number;
14
+ } | null;
15
+ /**
16
+ * Gets the bounding rectangle of the current text selection
17
+ * @returns DOMRect of the selection, or null if no selection exists
18
+ */
19
+ export declare function getSelectionRect(): DOMRect | null;
20
+ /**
21
+ * Executes a class method if it exists on the given instance
22
+ * @param instance - The class instance containing the method to execute
23
+ * @param methodName - The name of the method to look up and execute
24
+ * @param args - An array of arguments to pass to the method (default: [])
25
+ * @returns The return value of the executed method, or null if the method doesn't exist or is not callable
26
+ */
27
+ export declare function executeMethodIfExists<T extends object, R = unknown, Args extends unknown[] = unknown[]>(instance: T, methodName: string, args?: Args): R | null;
28
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,cAAc,IAAI,SAAS,GAAG,KAAK,GAAG,eAAe,GAAG,OAAO,CAU9E;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAanG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,mBAM/B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,OAAO,EAAE,IAAI,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EACrG,QAAQ,EAAE,CAAC,EACX,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,IAA4B,GACjC,CAAC,GAAG,IAAI,CAQV"}
@@ -0,0 +1,12 @@
1
+ import { RenderIconContent, RenderIconOptions } from '../types';
2
+ /**
3
+ * Renders an SVG icon as an HTML string
4
+ * @param content - SVG path content as string or object with raw SVG string
5
+ * @param options - Optional configuration for icon rendering
6
+ * @param options.classes - Additional CSS classes to apply to the SVG element
7
+ * @param options.width - Width of the icon in pixels (default: 24)
8
+ * @param options.height - Height of the icon in pixels (default: 24)
9
+ * @returns Complete SVG element HTML string or empty string if content is invalid
10
+ */
11
+ export declare function renderIcon(content: RenderIconContent, options?: RenderIconOptions): string;
12
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/utils/icon.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM,CA2B1F"}
@@ -0,0 +1,5 @@
1
+ export * from './ajax';
2
+ export * from './common';
3
+ export * from './icon';
4
+ export * from './sanitizer';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Sanitizes JSON by removing or escaping control characters and Unicode formatting marks
3
+ *
4
+ * @param json - Input JSON as string or object
5
+ * @returns Sanitized JSON string or null if parsing fails
6
+ */
7
+ export declare function sanitizeJson(json: string | object): string | null;
8
+ //# sourceMappingURL=sanitizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizer.d.ts","sourceRoot":"","sources":["../../src/utils/sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CA+DjE"}
@@ -0,0 +1,3 @@
1
+ import { Texditor } from '../types';
2
+ export default function ExtensionsView(editor: Texditor): HTMLElement | Node;
3
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/views/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,CAwC3E"}
@@ -0,0 +1,3 @@
1
+ import { Texditor } from '../types';
2
+ export default function MainView(editor: Texditor): HTMLElement;
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/views/main.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAKxC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,MAAM,EAAE,QAAQ,GAAG,WAAW,CAiB9D"}
@@ -0,0 +1,2 @@
1
+ export default function ToolsView(): HTMLElement;
2
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/views/tools.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,SAAS,IAAI,WAAW,CAgB/C"}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "texditor",
3
+ "version": "2.0.0",
4
+ "description": "Texditor is a modern, block-based text editor written in TypeScript. It has a clean architecture and an extensible design that allows users to customize the content blocks",
5
+ "type": "module",
6
+ "main": "./dist/texditor.mjs",
7
+ "module": "./dist/texditor.mjs",
8
+ "types": "./dist/texditor.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/texditor.mjs",
12
+ "types": "./dist/texditor.d.ts"
13
+ },
14
+ "./core/base": {
15
+ "import": "./dist/core/base.mjs",
16
+ "types": "./dist/core/base.d.ts"
17
+ },
18
+ "./core/models": {
19
+ "import": "./dist/core/models.mjs",
20
+ "types": "./dist/core/models.d.ts"
21
+ },
22
+ "./entities/actions": {
23
+ "import": "./dist/entities/actions.mjs",
24
+ "types": "./dist/entities/actions.d.ts"
25
+ },
26
+ "./entities/blocks": {
27
+ "import": "./dist/entities/blocks.mjs",
28
+ "types": "./dist/entities/blocks.d.ts"
29
+ },
30
+ "./entities/tools": {
31
+ "import": "./dist/entities/tools.mjs",
32
+ "types": "./dist/entities/tools.d.ts"
33
+ },
34
+ "./locales": {
35
+ "import": "./dist/locales.mjs",
36
+ "types": "./dist/locales.d.ts"
37
+ },
38
+ "./entities/extensions": {
39
+ "import": "./dist/entities/extensions.mjs",
40
+ "types": "./dist/entities/extensions.d.ts"
41
+ },
42
+ "./styles/*.css": {
43
+ "default": "./dist/styles/*.css"
44
+ }
45
+ },
46
+ "scripts": {
47
+ "dev": "vite",
48
+ "build": "tsc && vite build",
49
+ "preview": "vite preview",
50
+ "lint": "eslint . --fix",
51
+ "format": "prettier --write .",
52
+ "prepublishOnly": "npm run build"
53
+ },
54
+ "devDependencies": {
55
+ "@eslint/js": "^10.0.1",
56
+ "@types/node": "^25.9.1",
57
+ "eslint": "^10.4.0",
58
+ "globals": "^17.6.0",
59
+ "prettier": "^3.8.3",
60
+ "typescript": "^6.0.3",
61
+ "typescript-eslint": "^8.60.0",
62
+ "vite": "^8.0.14",
63
+ "vite-plugin-dts": "^5.0.1"
64
+ },
65
+ "files": [
66
+ "dist"
67
+ ],
68
+ "engines": {
69
+ "node": ">=22"
70
+ },
71
+ "dependencies": {
72
+ "snappykit": "^1.0.11",
73
+ "sortum": "^1.0.6"
74
+ }
75
+ }