suneditor 3.0.0-beta.9 → 3.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/README.md +65 -57
  2. package/dist/suneditor-contents.min.css +1 -0
  3. package/dist/suneditor.min.css +1 -1
  4. package/dist/suneditor.min.js +1 -1
  5. package/package.json +110 -61
  6. package/src/assets/design/color.css +36 -17
  7. package/src/assets/design/size.css +2 -0
  8. package/src/assets/icons/defaultIcons.js +17 -2
  9. package/src/assets/suneditor-contents.css +51 -16
  10. package/src/assets/suneditor.css +116 -43
  11. package/src/core/config/contextProvider.js +288 -0
  12. package/src/core/config/eventManager.js +188 -0
  13. package/src/core/config/instanceCheck.js +59 -0
  14. package/src/core/config/optionProvider.js +452 -0
  15. package/src/core/editor.js +166 -1637
  16. package/src/core/event/actions/index.js +229 -0
  17. package/src/core/event/effects/common.registry.js +74 -0
  18. package/src/core/event/effects/keydown.registry.js +573 -0
  19. package/src/core/event/effects/ruleHelpers.js +148 -0
  20. package/src/core/event/eventOrchestrator.js +944 -0
  21. package/src/core/event/executor.js +27 -0
  22. package/src/core/{base/eventHandlers → event/handlers}/handler_toolbar.js +27 -28
  23. package/src/core/{base/eventHandlers → event/handlers}/handler_ww_clipboard.js +10 -8
  24. package/src/core/{base/eventHandlers → event/handlers}/handler_ww_dragDrop.js +22 -23
  25. package/src/core/event/handlers/handler_ww_input.js +75 -0
  26. package/src/core/event/handlers/handler_ww_key.js +228 -0
  27. package/src/core/event/handlers/handler_ww_mouse.js +166 -0
  28. package/src/core/event/ports.js +211 -0
  29. package/src/core/event/reducers/keydown.reducer.js +97 -0
  30. package/src/core/event/rules/keydown.rule.arrow.js +63 -0
  31. package/src/core/event/rules/keydown.rule.backspace.js +208 -0
  32. package/src/core/event/rules/keydown.rule.delete.js +132 -0
  33. package/src/core/event/rules/keydown.rule.enter.js +150 -0
  34. package/src/core/event/rules/keydown.rule.tab.js +35 -0
  35. package/src/core/event/support/defaultLineManager.js +136 -0
  36. package/src/core/event/support/selectionState.js +204 -0
  37. package/src/core/kernel/coreKernel.js +320 -0
  38. package/src/core/kernel/kernelInjector.js +19 -0
  39. package/src/core/kernel/store.js +173 -0
  40. package/src/core/{class → logic/dom}/char.js +42 -45
  41. package/src/core/logic/dom/format.js +1075 -0
  42. package/src/core/{class → logic/dom}/html.js +743 -624
  43. package/src/core/logic/dom/inline.js +1847 -0
  44. package/src/core/logic/dom/listFormat.js +601 -0
  45. package/src/core/{class → logic/dom}/nodeTransform.js +92 -72
  46. package/src/core/{class → logic/dom}/offset.js +254 -317
  47. package/src/core/logic/dom/selection.js +754 -0
  48. package/src/core/logic/panel/menu.js +389 -0
  49. package/src/core/logic/panel/toolbar.js +449 -0
  50. package/src/core/logic/panel/viewer.js +761 -0
  51. package/src/core/logic/shell/_commandExecutor.js +380 -0
  52. package/src/core/logic/shell/commandDispatcher.js +241 -0
  53. package/src/core/logic/shell/component.js +970 -0
  54. package/src/core/logic/shell/focusManager.js +110 -0
  55. package/src/core/{base → logic/shell}/history.js +110 -60
  56. package/src/core/logic/shell/pluginManager.js +363 -0
  57. package/src/core/logic/shell/shortcuts.js +130 -0
  58. package/src/core/logic/shell/ui.js +904 -0
  59. package/src/core/schema/context.js +66 -0
  60. package/src/core/schema/frameContext.js +160 -0
  61. package/src/core/schema/options.js +628 -0
  62. package/src/core/section/constructor.js +194 -500
  63. package/src/core/section/documentType.js +297 -222
  64. package/src/events.js +808 -543
  65. package/src/helper/clipboard.js +27 -16
  66. package/src/helper/converter.js +100 -78
  67. package/src/helper/dom/domCheck.js +56 -30
  68. package/src/helper/dom/domQuery.js +159 -89
  69. package/src/helper/dom/domUtils.js +114 -49
  70. package/src/helper/dom/index.js +5 -1
  71. package/src/helper/env.js +26 -26
  72. package/src/helper/index.js +1 -1
  73. package/src/helper/keyCodeMap.js +25 -28
  74. package/src/helper/numbers.js +4 -8
  75. package/src/helper/unicode.js +4 -8
  76. package/src/hooks/base.js +307 -0
  77. package/src/hooks/params.js +130 -0
  78. package/src/interfaces/contracts.js +227 -0
  79. package/src/interfaces/index.js +7 -0
  80. package/src/interfaces/plugins.js +239 -0
  81. package/src/langs/ckb.js +4 -4
  82. package/src/langs/cs.js +4 -4
  83. package/src/langs/da.js +4 -4
  84. package/src/langs/de.js +4 -4
  85. package/src/langs/en.js +4 -4
  86. package/src/langs/es.js +4 -4
  87. package/src/langs/fa.js +4 -4
  88. package/src/langs/fr.js +4 -4
  89. package/src/langs/he.js +4 -4
  90. package/src/langs/hu.js +4 -4
  91. package/src/langs/it.js +4 -4
  92. package/src/langs/ja.js +4 -4
  93. package/src/langs/km.js +4 -4
  94. package/src/langs/ko.js +4 -4
  95. package/src/langs/lv.js +4 -4
  96. package/src/langs/nl.js +4 -4
  97. package/src/langs/pl.js +4 -4
  98. package/src/langs/pt_br.js +13 -13
  99. package/src/langs/ro.js +4 -4
  100. package/src/langs/ru.js +4 -4
  101. package/src/langs/se.js +4 -4
  102. package/src/langs/tr.js +4 -4
  103. package/src/langs/uk.js +4 -4
  104. package/src/langs/ur.js +4 -4
  105. package/src/langs/zh_cn.js +4 -4
  106. package/src/modules/{Browser.js → contract/Browser.js} +119 -128
  107. package/src/modules/{ColorPicker.js → contract/ColorPicker.js} +132 -142
  108. package/src/modules/contract/Controller.js +589 -0
  109. package/src/modules/{Figure.js → contract/Figure.js} +591 -411
  110. package/src/modules/{HueSlider.js → contract/HueSlider.js} +125 -86
  111. package/src/modules/contract/Modal.js +357 -0
  112. package/src/modules/contract/index.js +9 -0
  113. package/src/modules/manager/ApiManager.js +197 -0
  114. package/src/modules/{FileManager.js → manager/FileManager.js} +128 -160
  115. package/src/modules/manager/index.js +5 -0
  116. package/src/modules/{ModalAnchorEditor.js → ui/ModalAnchorEditor.js} +108 -138
  117. package/src/modules/{SelectMenu.js → ui/SelectMenu.js} +119 -120
  118. package/src/modules/{_DragHandle.js → ui/_DragHandle.js} +1 -1
  119. package/src/modules/ui/index.js +6 -0
  120. package/src/plugins/browser/audioGallery.js +23 -26
  121. package/src/plugins/browser/fileBrowser.js +25 -28
  122. package/src/plugins/browser/fileGallery.js +20 -23
  123. package/src/plugins/browser/imageGallery.js +24 -23
  124. package/src/plugins/browser/videoGallery.js +27 -29
  125. package/src/plugins/command/blockquote.js +11 -17
  126. package/src/plugins/command/exportPDF.js +26 -26
  127. package/src/plugins/command/fileUpload.js +138 -133
  128. package/src/plugins/command/list_bulleted.js +48 -44
  129. package/src/plugins/command/list_numbered.js +48 -44
  130. package/src/plugins/dropdown/align.js +64 -50
  131. package/src/plugins/dropdown/backgroundColor.js +34 -35
  132. package/src/plugins/dropdown/{formatBlock.js → blockStyle.js} +43 -37
  133. package/src/plugins/dropdown/font.js +50 -36
  134. package/src/plugins/dropdown/fontColor.js +34 -35
  135. package/src/plugins/dropdown/hr.js +55 -50
  136. package/src/plugins/dropdown/layout.js +20 -15
  137. package/src/plugins/dropdown/lineHeight.js +46 -30
  138. package/src/plugins/dropdown/list.js +32 -33
  139. package/src/plugins/dropdown/paragraphStyle.js +40 -34
  140. package/src/plugins/dropdown/table/index.js +915 -0
  141. package/src/plugins/dropdown/table/render/table.html.js +308 -0
  142. package/src/plugins/dropdown/table/render/table.menu.js +121 -0
  143. package/src/plugins/dropdown/table/services/table.cell.js +465 -0
  144. package/src/plugins/dropdown/table/services/table.clipboard.js +414 -0
  145. package/src/plugins/dropdown/table/services/table.grid.js +504 -0
  146. package/src/plugins/dropdown/table/services/table.resize.js +463 -0
  147. package/src/plugins/dropdown/table/services/table.selection.js +466 -0
  148. package/src/plugins/dropdown/table/services/table.style.js +844 -0
  149. package/src/plugins/dropdown/table/shared/table.constants.js +109 -0
  150. package/src/plugins/dropdown/table/shared/table.utils.js +219 -0
  151. package/src/plugins/dropdown/template.js +20 -15
  152. package/src/plugins/dropdown/textStyle.js +28 -22
  153. package/src/plugins/field/mention.js +54 -49
  154. package/src/plugins/index.js +5 -5
  155. package/src/plugins/input/fontSize.js +100 -97
  156. package/src/plugins/input/pageNavigator.js +13 -10
  157. package/src/plugins/modal/audio.js +208 -219
  158. package/src/plugins/modal/drawing.js +99 -104
  159. package/src/plugins/modal/embed.js +323 -312
  160. package/src/plugins/modal/image/index.js +942 -0
  161. package/src/plugins/modal/image/render/image.html.js +150 -0
  162. package/src/plugins/modal/image/services/image.size.js +198 -0
  163. package/src/plugins/modal/image/services/image.upload.js +216 -0
  164. package/src/plugins/modal/image/shared/image.constants.js +20 -0
  165. package/src/plugins/modal/link.js +74 -54
  166. package/src/plugins/modal/math.js +126 -119
  167. package/src/plugins/modal/video/index.js +858 -0
  168. package/src/plugins/modal/video/render/video.html.js +131 -0
  169. package/src/plugins/modal/video/services/video.size.js +281 -0
  170. package/src/plugins/modal/video/services/video.upload.js +92 -0
  171. package/src/plugins/popup/anchor.js +57 -49
  172. package/src/suneditor.js +73 -61
  173. package/src/themes/cobalt.css +155 -0
  174. package/src/themes/dark.css +143 -120
  175. package/src/typedef.js +214 -63
  176. package/types/assets/icons/defaultIcons.d.ts +8 -0
  177. package/types/assets/suneditor-contents.css.d.ts +1 -0
  178. package/types/assets/suneditor.css.d.ts +1 -0
  179. package/types/core/config/contextProvider.d.ts +148 -0
  180. package/types/core/config/eventManager.d.ts +68 -0
  181. package/types/core/config/instanceCheck.d.ts +33 -0
  182. package/types/core/config/optionProvider.d.ts +147 -0
  183. package/types/core/editor.d.ts +27 -586
  184. package/types/core/event/actions/index.d.ts +50 -0
  185. package/types/core/event/effects/common.registry.d.ts +56 -0
  186. package/types/core/event/effects/keydown.registry.d.ts +80 -0
  187. package/types/core/event/effects/ruleHelpers.d.ts +36 -0
  188. package/types/core/event/eventOrchestrator.d.ts +191 -0
  189. package/types/core/event/executor.d.ts +13 -0
  190. package/types/core/event/handlers/handler_toolbar.d.ts +38 -0
  191. package/types/core/event/handlers/handler_ww_clipboard.d.ts +36 -0
  192. package/types/core/event/handlers/handler_ww_dragDrop.d.ts +26 -0
  193. package/types/core/event/handlers/handler_ww_input.d.ts +38 -0
  194. package/types/core/event/handlers/handler_ww_key.d.ts +40 -0
  195. package/types/core/event/handlers/handler_ww_mouse.d.ts +47 -0
  196. package/types/core/event/ports.d.ts +256 -0
  197. package/types/core/event/reducers/keydown.reducer.d.ts +84 -0
  198. package/types/core/event/rules/keydown.rule.arrow.d.ts +19 -0
  199. package/types/core/event/rules/keydown.rule.backspace.d.ts +18 -0
  200. package/types/core/event/rules/keydown.rule.delete.d.ts +18 -0
  201. package/types/core/event/rules/keydown.rule.enter.d.ts +18 -0
  202. package/types/core/event/rules/keydown.rule.tab.d.ts +18 -0
  203. package/types/core/event/support/defaultLineManager.d.ts +22 -0
  204. package/types/core/event/support/selectionState.d.ts +29 -0
  205. package/types/core/kernel/coreKernel.d.ts +219 -0
  206. package/types/core/kernel/kernelInjector.d.ts +16 -0
  207. package/types/core/kernel/store.d.ts +170 -0
  208. package/types/core/logic/dom/char.d.ts +46 -0
  209. package/types/core/logic/dom/format.d.ts +234 -0
  210. package/types/core/logic/dom/html.d.ts +290 -0
  211. package/types/core/logic/dom/inline.d.ts +93 -0
  212. package/types/core/logic/dom/listFormat.d.ts +101 -0
  213. package/types/core/logic/dom/nodeTransform.d.ts +110 -0
  214. package/types/core/logic/dom/offset.d.ts +335 -0
  215. package/types/core/logic/dom/selection.d.ts +165 -0
  216. package/types/core/logic/panel/menu.d.ts +93 -0
  217. package/types/core/logic/panel/toolbar.d.ts +128 -0
  218. package/types/core/logic/panel/viewer.d.ts +89 -0
  219. package/types/core/logic/shell/_commandExecutor.d.ts +18 -0
  220. package/types/core/logic/shell/commandDispatcher.d.ts +65 -0
  221. package/types/core/logic/shell/component.d.ts +182 -0
  222. package/types/core/logic/shell/focusManager.d.ts +31 -0
  223. package/types/core/{base → logic/shell}/history.d.ts +13 -12
  224. package/types/core/logic/shell/pluginManager.d.ts +115 -0
  225. package/types/core/logic/shell/shortcuts.d.ts +131 -0
  226. package/types/core/logic/shell/ui.d.ts +261 -0
  227. package/types/core/schema/context.d.ts +104 -0
  228. package/types/core/schema/frameContext.d.ts +320 -0
  229. package/types/core/schema/options.d.ts +1241 -0
  230. package/types/core/section/constructor.d.ts +117 -652
  231. package/types/core/section/documentType.d.ts +43 -61
  232. package/types/events.d.ts +796 -65
  233. package/types/helper/clipboard.d.ts +5 -4
  234. package/types/helper/converter.d.ts +55 -43
  235. package/types/helper/dom/domCheck.d.ts +27 -19
  236. package/types/helper/dom/domQuery.d.ts +76 -57
  237. package/types/helper/dom/domUtils.d.ts +62 -39
  238. package/types/helper/dom/index.d.ts +87 -1
  239. package/types/helper/env.d.ts +16 -13
  240. package/types/helper/index.d.ts +8 -2
  241. package/types/helper/keyCodeMap.d.ts +24 -23
  242. package/types/helper/numbers.d.ts +4 -6
  243. package/types/helper/unicode.d.ts +4 -3
  244. package/types/hooks/base.d.ts +239 -0
  245. package/types/hooks/params.d.ts +65 -0
  246. package/types/index.d.ts +20 -117
  247. package/types/interfaces/contracts.d.ts +183 -0
  248. package/types/interfaces/index.d.ts +3 -0
  249. package/types/interfaces/plugins.d.ts +168 -0
  250. package/types/langs/_Lang.d.ts +2 -2
  251. package/types/langs/index.d.ts +2 -2
  252. package/types/modules/contract/Browser.d.ts +262 -0
  253. package/types/modules/contract/ColorPicker.d.ts +99 -0
  254. package/types/modules/contract/Controller.d.ts +204 -0
  255. package/types/modules/contract/Figure.d.ts +529 -0
  256. package/types/modules/{HueSlider.d.ts → contract/HueSlider.d.ts} +39 -28
  257. package/types/modules/contract/Modal.d.ts +62 -0
  258. package/types/modules/contract/index.d.ts +7 -0
  259. package/types/modules/manager/ApiManager.d.ts +106 -0
  260. package/types/modules/manager/FileManager.d.ts +124 -0
  261. package/types/modules/manager/index.d.ts +3 -0
  262. package/types/modules/ui/ModalAnchorEditor.d.ts +152 -0
  263. package/types/modules/ui/SelectMenu.d.ts +107 -0
  264. package/types/modules/{_DragHandle.d.ts → ui/_DragHandle.d.ts} +1 -0
  265. package/types/modules/ui/index.d.ts +4 -0
  266. package/types/plugins/browser/audioGallery.d.ts +33 -41
  267. package/types/plugins/browser/fileBrowser.d.ts +42 -50
  268. package/types/plugins/browser/fileGallery.d.ts +33 -41
  269. package/types/plugins/browser/imageGallery.d.ts +30 -37
  270. package/types/plugins/browser/videoGallery.d.ts +33 -41
  271. package/types/plugins/command/blockquote.d.ts +4 -21
  272. package/types/plugins/command/exportPDF.d.ts +23 -33
  273. package/types/plugins/command/fileUpload.d.ts +80 -100
  274. package/types/plugins/command/list_bulleted.d.ts +9 -35
  275. package/types/plugins/command/list_numbered.d.ts +9 -35
  276. package/types/plugins/dropdown/align.d.ts +23 -46
  277. package/types/plugins/dropdown/backgroundColor.d.ts +35 -53
  278. package/types/plugins/dropdown/blockStyle.d.ts +45 -0
  279. package/types/plugins/dropdown/font.d.ts +18 -41
  280. package/types/plugins/dropdown/fontColor.d.ts +35 -53
  281. package/types/plugins/dropdown/hr.d.ts +26 -52
  282. package/types/plugins/dropdown/layout.d.ts +19 -25
  283. package/types/plugins/dropdown/lineHeight.d.ts +21 -39
  284. package/types/plugins/dropdown/list.d.ts +6 -34
  285. package/types/plugins/dropdown/paragraphStyle.d.ts +34 -45
  286. package/types/plugins/dropdown/table/index.d.ts +158 -0
  287. package/types/plugins/dropdown/table/render/table.html.d.ts +71 -0
  288. package/types/plugins/dropdown/table/render/table.menu.d.ts +59 -0
  289. package/types/plugins/dropdown/table/services/table.cell.d.ts +76 -0
  290. package/types/plugins/dropdown/table/services/table.clipboard.d.ts +26 -0
  291. package/types/plugins/dropdown/table/services/table.grid.d.ts +77 -0
  292. package/types/plugins/dropdown/table/services/table.resize.d.ts +72 -0
  293. package/types/plugins/dropdown/table/services/table.selection.d.ts +59 -0
  294. package/types/plugins/dropdown/table/services/table.style.d.ts +162 -0
  295. package/types/plugins/dropdown/table/shared/table.constants.d.ts +134 -0
  296. package/types/plugins/dropdown/table/shared/table.utils.d.ts +91 -0
  297. package/types/plugins/dropdown/template.d.ts +19 -25
  298. package/types/plugins/dropdown/textStyle.d.ts +23 -30
  299. package/types/plugins/field/mention.d.ts +66 -72
  300. package/types/plugins/index.d.ts +41 -40
  301. package/types/plugins/input/fontSize.d.ts +57 -96
  302. package/types/plugins/input/pageNavigator.d.ts +5 -8
  303. package/types/plugins/modal/audio.d.ts +60 -153
  304. package/types/plugins/modal/drawing.d.ts +16 -118
  305. package/types/plugins/modal/embed.d.ts +46 -166
  306. package/types/plugins/modal/image/index.d.ts +281 -0
  307. package/types/plugins/modal/image/render/image.html.d.ts +45 -0
  308. package/types/plugins/modal/image/services/image.size.d.ts +55 -0
  309. package/types/plugins/modal/image/services/image.upload.d.ts +24 -0
  310. package/types/plugins/modal/image/shared/image.constants.d.ts +17 -0
  311. package/types/plugins/modal/link.d.ts +46 -66
  312. package/types/plugins/modal/math.d.ts +17 -86
  313. package/types/plugins/modal/{video.d.ts → video/index.d.ts} +89 -221
  314. package/types/plugins/modal/video/render/video.html.d.ts +37 -0
  315. package/types/plugins/modal/video/services/video.size.d.ts +74 -0
  316. package/types/plugins/modal/video/services/video.upload.d.ts +19 -0
  317. package/types/plugins/popup/anchor.d.ts +8 -38
  318. package/types/suneditor.d.ts +55 -24
  319. package/types/typedef.d.ts +344 -228
  320. package/CONTRIBUTING.md +0 -186
  321. package/src/core/base/eventHandlers/handler_ww_key_input.js +0 -1200
  322. package/src/core/base/eventHandlers/handler_ww_mouse.js +0 -194
  323. package/src/core/base/eventManager.js +0 -1523
  324. package/src/core/class/component.js +0 -856
  325. package/src/core/class/format.js +0 -3433
  326. package/src/core/class/menu.js +0 -346
  327. package/src/core/class/selection.js +0 -610
  328. package/src/core/class/shortcuts.js +0 -98
  329. package/src/core/class/toolbar.js +0 -431
  330. package/src/core/class/ui.js +0 -424
  331. package/src/core/class/viewer.js +0 -750
  332. package/src/core/section/actives.js +0 -266
  333. package/src/core/section/context.js +0 -102
  334. package/src/editorInjector/_classes.js +0 -36
  335. package/src/editorInjector/_core.js +0 -87
  336. package/src/editorInjector/index.js +0 -73
  337. package/src/modules/ApiManager.js +0 -191
  338. package/src/modules/Controller.js +0 -474
  339. package/src/modules/Modal.js +0 -346
  340. package/src/modules/index.js +0 -14
  341. package/src/plugins/dropdown/table.js +0 -4034
  342. package/src/plugins/modal/image.js +0 -1376
  343. package/src/plugins/modal/video.js +0 -1226
  344. package/types/core/base/eventHandlers/handler_toolbar.d.ts +0 -41
  345. package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +0 -40
  346. package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +0 -35
  347. package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +0 -45
  348. package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +0 -39
  349. package/types/core/base/eventManager.d.ts +0 -401
  350. package/types/core/class/char.d.ts +0 -61
  351. package/types/core/class/component.d.ts +0 -213
  352. package/types/core/class/format.d.ts +0 -623
  353. package/types/core/class/html.d.ts +0 -430
  354. package/types/core/class/menu.d.ts +0 -126
  355. package/types/core/class/nodeTransform.d.ts +0 -93
  356. package/types/core/class/offset.d.ts +0 -522
  357. package/types/core/class/selection.d.ts +0 -188
  358. package/types/core/class/shortcuts.d.ts +0 -142
  359. package/types/core/class/toolbar.d.ts +0 -189
  360. package/types/core/class/ui.d.ts +0 -164
  361. package/types/core/class/viewer.d.ts +0 -140
  362. package/types/core/section/actives.d.ts +0 -46
  363. package/types/core/section/context.d.ts +0 -45
  364. package/types/editorInjector/_classes.d.ts +0 -41
  365. package/types/editorInjector/_core.d.ts +0 -87
  366. package/types/editorInjector/index.d.ts +0 -69
  367. package/types/modules/ApiManager.d.ts +0 -125
  368. package/types/modules/Browser.d.ts +0 -326
  369. package/types/modules/ColorPicker.d.ts +0 -135
  370. package/types/modules/Controller.d.ts +0 -251
  371. package/types/modules/Figure.d.ts +0 -517
  372. package/types/modules/FileManager.d.ts +0 -202
  373. package/types/modules/Modal.d.ts +0 -111
  374. package/types/modules/ModalAnchorEditor.d.ts +0 -236
  375. package/types/modules/SelectMenu.d.ts +0 -194
  376. package/types/modules/index.d.ts +0 -26
  377. package/types/plugins/dropdown/formatBlock.d.ts +0 -55
  378. package/types/plugins/dropdown/table.d.ts +0 -627
  379. package/types/plugins/modal/image.d.ts +0 -451
  380. /package/{LICENSE → LICENSE.txt} +0 -0
@@ -1,7 +1,3 @@
1
- /**
2
- * @fileoverview keyCode helper
3
- */
4
-
5
1
  const _arrow = 'ArrowLeft|ArrowUp|ArrowRight|ArrowDown';
6
2
  const _fN = 'F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12';
7
3
  // const DIR_KEYCODE = /^(3[7-9]|40)$/;
@@ -19,7 +15,7 @@ const NON_RESPONSE_CODE = `ControlLeft|ControlRight|AltLeft|AltRight|Pause|CapsL
19
15
 
20
16
  /** ------------------------------------------------------- [meta] ------------------------------------------------------- */
21
17
  /**
22
- * @description Shift check
18
+ * @description `Shift` check
23
19
  * @param {KeyboardEvent} e Event object
24
20
  * @returns {boolean}
25
21
  */
@@ -28,7 +24,7 @@ export function isShift(e) {
28
24
  }
29
25
 
30
26
  /**
31
- * @description [Ctrl|Meta] check
27
+ * @description [`Ctrl`|`Meta`] check
32
28
  * @param {KeyboardEvent} e Event object
33
29
  * @returns {boolean}
34
30
  */
@@ -39,7 +35,7 @@ export function isCtrl(e) {
39
35
  }
40
36
 
41
37
  /**
42
- * @description Alt check
38
+ * @description `Alt` check
43
39
  * @param {KeyboardEvent} e Event object
44
40
  * @returns {boolean}
45
41
  */
@@ -48,17 +44,18 @@ export function isAlt(e) {
48
44
  }
49
45
 
50
46
  /**
51
- * @description event.isComposing check
52
- * @param {KeyboardEvent} e Event object
47
+ * @description Check if the event is related to IME composition (in-progress or commit).
48
+ * @param {KeyboardEvent|InputEvent} e Event object
53
49
  * @returns {boolean}
54
50
  */
55
51
  export function isComposing(e) {
56
- return e.isComposing || e.keyCode === 229;
52
+ // @ts-ignore
53
+ return e.isComposing || e.key === 'Process' || e.keyCode === 229;
57
54
  }
58
55
 
59
56
  /**
60
- * @description Backspace key check
61
- * @param {string} code Event.code
57
+ * @description `Backspace` key check
58
+ * @param {string} code `Event.code`
62
59
  * @returns {boolean}
63
60
  */
64
61
  export function isBackspace(code) {
@@ -67,8 +64,8 @@ export function isBackspace(code) {
67
64
  }
68
65
 
69
66
  /**
70
- * @description Tab key check
71
- * @param {string} code Event.code
67
+ * @description `Tab` key check
68
+ * @param {string} code `Event.code`
72
69
  * @returns {boolean}
73
70
  */
74
71
  export function isTab(code) {
@@ -77,8 +74,8 @@ export function isTab(code) {
77
74
  }
78
75
 
79
76
  /**
80
- * @description Enter key check
81
- * @param {string} code Event.code
77
+ * @description `Enter` key check
78
+ * @param {string} code `Event.code`
82
79
  * @returns {boolean}
83
80
  */
84
81
  export function isEnter(code) {
@@ -87,8 +84,8 @@ export function isEnter(code) {
87
84
  }
88
85
 
89
86
  /**
90
- * @description ESC key check
91
- * @param {string} code Event.code
87
+ * @description `ESC` key check
88
+ * @param {string} code `Event.code`
92
89
  * @returns {boolean}
93
90
  */
94
91
  export function isEsc(code) {
@@ -97,8 +94,8 @@ export function isEsc(code) {
97
94
  }
98
95
 
99
96
  /**
100
- * @description Space key check
101
- * @param {string} code Event.code
97
+ * @description `Space` key check
98
+ * @param {string} code `Event.code`
102
99
  * @returns {boolean}
103
100
  */
104
101
  export function isSpace(code) {
@@ -110,7 +107,7 @@ export function isSpace(code) {
110
107
 
111
108
  /**
112
109
  * @description Direction key check
113
- * @param {string} code Event.code
110
+ * @param {string} code `Event.code`
114
111
  * @returns {boolean}
115
112
  */
116
113
  export function isDirectionKey(code) {
@@ -118,8 +115,8 @@ export function isDirectionKey(code) {
118
115
  }
119
116
 
120
117
  /**
121
- * @description [delete, backspace] key check
122
- * @param {string} code Event.code
118
+ * @description [`delete`, `backspace`] key check
119
+ * @param {string} code `Event.code`
123
120
  * @returns {boolean}
124
121
  */
125
122
  export function isRemoveKey(code) {
@@ -128,7 +125,7 @@ export function isRemoveKey(code) {
128
125
 
129
126
  /**
130
127
  * @description Non-text key check
131
- * @param {string} code Event.code
128
+ * @param {string} code `Event.code`
132
129
  * @returns {boolean}
133
130
  */
134
131
  export function isNonTextKey(code) {
@@ -137,7 +134,7 @@ export function isNonTextKey(code) {
137
134
 
138
135
  /**
139
136
  * @description Check if the given key is relevant for history push
140
- * @param {string} code - Event.code
137
+ * @param {string} code - `Event.code`
141
138
  * @returns {boolean}
142
139
  */
143
140
  export function isHistoryRelevantKey(code) {
@@ -146,7 +143,7 @@ export function isHistoryRelevantKey(code) {
146
143
 
147
144
  /**
148
145
  * @description Document type observer key check
149
- * @param {string} code Event.code
146
+ * @param {string} code `Event.code`
150
147
  * @returns {boolean}
151
148
  */
152
149
  export function isDocumentTypeObserverKey(code) {
@@ -155,7 +152,7 @@ export function isDocumentTypeObserverKey(code) {
155
152
 
156
153
  /**
157
154
  * @description Non-response key check
158
- * @param {string} code Event.code
155
+ * @param {string} code `Event.code`
159
156
  * @returns {boolean}
160
157
  */
161
158
  export function isNonResponseKey(code) {
@@ -177,7 +174,7 @@ const keyCodeMap = {
177
174
  isNonTextKey,
178
175
  isHistoryRelevantKey,
179
176
  isDocumentTypeObserverKey,
180
- isNonResponseKey
177
+ isNonResponseKey,
181
178
  };
182
179
 
183
180
  export default keyCodeMap;
@@ -1,7 +1,3 @@
1
- /**
2
- * @fileoverview Number-related helper functions
3
- */
4
-
5
1
  /**
6
2
  * @description Checks for numeric (with decimal point).
7
3
  * @param {*} text Text string or number
@@ -14,7 +10,7 @@ export function is(text) {
14
10
  /**
15
11
  * @description Get a number.
16
12
  * @param {string|number} value Text string or number
17
- * @param {number} [maxDec=0] Maximum number of decimal places (-1 : Infinity)
13
+ * @param {number} [maxDec=0] Maximum number of decimal places (`-1` : `Infinity`)
18
14
  * @returns {number}
19
15
  */
20
16
  export function get(value, maxDec = 0) {
@@ -28,8 +24,8 @@ export function get(value, maxDec = 0) {
28
24
  }
29
25
 
30
26
  /**
31
- * @description It compares the start and end indexes of 'a' and 'b' and returns the number of overlapping indexes in the range.
32
- * - e.g.) 1, 5, 4, 6 => '2' (4,5)
27
+ * @description It compares the start and end indexes of `a` and `b` and returns the number of overlapping indexes in the range.
28
+ * - e.g.) 1, 5, 4, 6 => `2` (4,5)
33
29
  * @param {number} aStart Start index of 'a'
34
30
  * @param {number} aEnd End index of 'a'
35
31
  * @param {number} bStart Start index of 'b'
@@ -66,7 +62,7 @@ const numbers = {
66
62
  get,
67
63
  getOverlapRangeAtIndex,
68
64
  isEven,
69
- isOdd
65
+ isOdd,
70
66
  };
71
67
 
72
68
  export default numbers;
@@ -1,23 +1,19 @@
1
- /**
2
- * @fileoverview Unicode helper functions
3
- */
4
-
5
1
  const zwsp = 8203;
6
2
 
7
3
  /**
8
- * @description Unicode Character 'ZERO WIDTH SPACE' (\u200B)
4
+ * @description Unicode Character `ZERO WIDTH SPACE` (`\u200B`)
9
5
  * @type {string}
10
6
  */
11
7
  export const zeroWidthSpace = String.fromCharCode(zwsp);
12
8
 
13
9
  /**
14
- * @description Regular expression to find 'zero width space' (/\u200B/g)
10
+ * @description Regular expression to find `zero width space` (`/\u200B/g`)
15
11
  * @type {RegExp}
16
12
  */
17
13
  export const zeroWidthRegExp = new RegExp(String.fromCharCode(zwsp), 'g');
18
14
 
19
15
  /**
20
- * @description Regular expression to find only 'zero width space' (/\u200B/g)
16
+ * @description Regular expression to find only `zero width space` (`/\u200B/g`)
21
17
  * @type {RegExp}
22
18
  */
23
19
  export const onlyZeroWidthRegExp = new RegExp('^' + String.fromCharCode(zwsp) + '+$');
@@ -41,7 +37,7 @@ const unicode = {
41
37
  zeroWidthSpace,
42
38
  zeroWidthRegExp,
43
39
  onlyZeroWidthRegExp,
44
- escapeStringRegexp
40
+ escapeStringRegexp,
45
41
  };
46
42
 
47
43
  export default unicode;
@@ -0,0 +1,307 @@
1
+ /**
2
+ * @fileoverview Editor interface definitions for SunEditor.
3
+ * These types define callback methods that Editor core calls on plugin instances.
4
+ */
5
+
6
+ // ================================================================
7
+ // EDITOR METHOD TYPES - Methods called by Editor core on plugins
8
+ // ================================================================
9
+
10
+ export const Event = {
11
+ /**
12
+ * Executes the method that is called whenever the cursor position changes.
13
+ * @description Executes the method that is called whenever the cursor position changes.
14
+ * @param {?HTMLElement} element - Node element where the cursor is currently located
15
+ * @param {?HTMLElement} target - The plugin's toolbar button element
16
+ * @returns {boolean|void} - Whether the plugin is active
17
+ * - If it returns `undefined`, it will no longer be called in this scope.
18
+ */
19
+ Active(element, target) {},
20
+
21
+ /**
22
+ * Executes the event function of `focus`.
23
+ * @param {SunEditor.HookParams.FocusBlur} params - Event parameters
24
+ * @returns {void}
25
+ */
26
+ OnFocus(params) {},
27
+
28
+ /**
29
+ * Executes the event function of `blur`.
30
+ * @param {SunEditor.HookParams.FocusBlur} params - Event parameters
31
+ * @returns {void}
32
+ */
33
+ OnBlur(params) {},
34
+
35
+ /**
36
+ * Executes the event function of `mousemove`.
37
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
38
+ * @returns {void}
39
+ */
40
+ OnMouseMove(params) {},
41
+
42
+ /**
43
+ * Executes the event function of `scroll`.
44
+ * @param {SunEditor.HookParams.Scroll} params - Event parameters
45
+ * @returns {void}
46
+ */
47
+ OnScroll(params) {},
48
+
49
+ // ====== Sync / Async Event Methods ======
50
+
51
+ // ------- Interruptible events (returning boolean stops event processing) ---
52
+
53
+ /**
54
+ * Executes the event function of `keydown` (sync).
55
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
56
+ * @param {SunEditor.HookParams.KeyEvent} params - Key event information
57
+ * @returns {void|boolean} - Return `false` to prevent the editor's `keydown` processing (shortcuts, actions)
58
+ */
59
+ OnKeyDown(params) {},
60
+
61
+ /**
62
+ * Executes the event function of `keydown` (async).
63
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
64
+ * @param {SunEditor.HookParams.KeyEvent} params - Key event information
65
+ * @returns {Promise<void|boolean>} - Return `false` to prevent the editor's `keydown` processing (shortcuts, actions)
66
+ */
67
+ async OnKeyDownAsync(params) {
68
+ return;
69
+ },
70
+
71
+ /**
72
+ * Executes the event function of `keyup` (sync).
73
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
74
+ * @param {SunEditor.HookParams.KeyEvent} params - Key event information
75
+ * @returns {void|boolean} - Return `false` to prevent adding to history
76
+ */
77
+ OnKeyUp(params) {},
78
+
79
+ /**
80
+ * Executes the event function of `keyup` (async).
81
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
82
+ * @param {SunEditor.HookParams.KeyEvent} params - Key event information
83
+ * @returns {Promise<void|boolean>} - Return `false` to prevent adding to history
84
+ */
85
+ async OnKeyUpAsync(params) {
86
+ return;
87
+ },
88
+
89
+ /**
90
+ * Executes the event function of `mousedown` (sync).
91
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
92
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
93
+ * @returns {void|boolean} - Return `false` to prevent the editor's `mousedown` processing
94
+ */
95
+ OnMouseDown(params) {},
96
+
97
+ /**
98
+ * Executes the event function of `mousedown` (async).
99
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
100
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
101
+ * @returns {Promise<void|boolean>} - Return `false` to prevent the editor's `mousedown` processing
102
+ */
103
+ async OnMouseDownAsync(params) {
104
+ return;
105
+ },
106
+
107
+ /**
108
+ * Executes the event function of `click` (sync).
109
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
110
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
111
+ * @returns {void|boolean} - Return `false` to prevent the editor's `click` processing (component selection)
112
+ */
113
+ OnClick(params) {},
114
+
115
+ /**
116
+ * Executes the event function of `click` (async).
117
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
118
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
119
+ * @returns {Promise<void|boolean>} - Return `false` to prevent the editor's `click` processing (component selection)
120
+ */
121
+ async OnClickAsync(params) {
122
+ return;
123
+ },
124
+
125
+ /**
126
+ * Executes the event function of `paste` (sync).
127
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
128
+ * Returning `false` will stop event propagation and cancel the paste.
129
+ * @param {SunEditor.HookParams.Paste} params - Paste event information
130
+ * @returns {void|boolean}
131
+ */
132
+ OnPaste(params) {},
133
+
134
+ /**
135
+ * Executes the event function of `paste` (async).
136
+ * Called sequentially on all plugins. Returning a boolean stops the loop.
137
+ * Returning `false` will stop event propagation and cancel the paste.
138
+ * @param {SunEditor.HookParams.Paste} params - Paste event information
139
+ * @returns {Promise<void|boolean>}
140
+ */
141
+ async OnPasteAsync(params) {
142
+ return;
143
+ },
144
+
145
+ // ------- Observation events (non-interruptible) ------
146
+
147
+ /**
148
+ * Executes the event function of `beforeinput` (sync).
149
+ * Called after validation but before the input is processed.
150
+ * @param {SunEditor.HookParams.InputWithData} params - Event parameters
151
+ * @returns {void}
152
+ */
153
+ OnBeforeInput(params) {},
154
+
155
+ /**
156
+ * Executes the event function of `beforeinput` (async).
157
+ * Called after validation but before the input is processed.
158
+ * @param {SunEditor.HookParams.InputWithData} params - Event parameters
159
+ * @returns {Promise<void>}
160
+ */
161
+ async OnBeforeInputAsync(params) {
162
+ return;
163
+ },
164
+
165
+ /**
166
+ * Executes the event function of `input` (sync).
167
+ * Called after the input has been processed.
168
+ * @param {SunEditor.HookParams.InputWithData} params - Event parameters
169
+ * @returns {void}
170
+ */
171
+ OnInput(params) {},
172
+
173
+ /**
174
+ * Executes the event function of `input` (async).
175
+ * Called after the input has been processed.
176
+ * @param {SunEditor.HookParams.InputWithData} params - Event parameters
177
+ * @returns {Promise<void>}
178
+ */
179
+ async OnInputAsync(params) {
180
+ return;
181
+ },
182
+
183
+ /**
184
+ * Executes the event function of `mouseup` (sync).
185
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
186
+ * @returns {void}
187
+ */
188
+ OnMouseUp(params) {},
189
+
190
+ /**
191
+ * Executes the event function of `mouseup` (async).
192
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
193
+ * @returns {Promise<void>}
194
+ */
195
+ async OnMouseUpAsync(params) {
196
+ return;
197
+ },
198
+
199
+ /**
200
+ * Executes the event function of `mouseleave` (sync).
201
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
202
+ * @returns {void}
203
+ */
204
+ OnMouseLeave(params) {},
205
+
206
+ /**
207
+ * Executes the event function of `mouseleave` (async).
208
+ * @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
209
+ * @returns {Promise<void>}
210
+ */
211
+ async OnMouseLeaveAsync(params) {
212
+ return;
213
+ },
214
+
215
+ /**
216
+ * Executes when files are pasted or dropped into the editor (sync).
217
+ * This event is called for each file. The paste/drop process is automatically stopped after processing all files.
218
+ * @param {SunEditor.HookParams.FilePasteDrop} params - File paste/drop event information
219
+ * @returns {void}
220
+ */
221
+ OnFilePasteAndDrop(params) {},
222
+
223
+ /**
224
+ * Executes when files are pasted or dropped into the editor (async).
225
+ * This event is called for each file. The paste/drop process is automatically stopped after processing all files.
226
+ * @param {SunEditor.HookParams.FilePasteDrop} params - File paste/drop event information
227
+ * @returns {Promise<void>}
228
+ */
229
+ async OnFilePasteAndDropAsync(params) {
230
+ return;
231
+ },
232
+ };
233
+
234
+ export const Component = {
235
+ /**
236
+ * Executes the method that is called when a component of a plugin is selected.
237
+ * @param {HTMLElement} target - Target component element
238
+ * @returns {void|boolean} - If return `true`, Special components that are not wrapping as `figure`
239
+ */
240
+ Select(target) {},
241
+
242
+ /**
243
+ * Called when a container is deselected.
244
+ * @param {HTMLElement} target Target element
245
+ * @returns {void}
246
+ */
247
+ Deselect(target) {},
248
+
249
+ /**
250
+ * Executes the method that is called when a component is being edited.
251
+ * @param {HTMLElement} target - Target element
252
+ * @returns {void}
253
+ */
254
+ Edit(target) {},
255
+
256
+ /**
257
+ * Method to delete a component of a plugin, called by the `FileManager`, `Controller` module.
258
+ * @param {HTMLElement} target - Target element
259
+ * @returns {Promise<void>}
260
+ */
261
+ async Destroy(target) {
262
+ return;
263
+ },
264
+
265
+ /**
266
+ * Executes the method that is called when a component copy is requested.
267
+ * @param {SunEditor.HookParams.CopyComponent} params - Copy component event information
268
+ * @returns {boolean | void} - If return `false`, the copy will be canceled
269
+ */
270
+ Copy(params) {},
271
+ };
272
+
273
+ export const Core = {
274
+ /**
275
+ * This method is used to validate and preserve the format of the component within the editor.
276
+ * - It ensures that the structure and attributes of the element are maintained and secure.
277
+ * - The method checks if the element is already wrapped in a valid container and updates its attributes if necessary.
278
+ * - If the element isn't properly contained, a new container is created to retain the format.
279
+ * @returns {{query: string, method: (element: HTMLElement) => void}} The format retention object containing the query and method to process the element.
280
+ * - query: The selector query to identify the relevant elements.
281
+ * - method: The function to execute on the element to validate and preserve its format.
282
+ */
283
+ RetainFormat() {
284
+ return { query: '', method: () => {} };
285
+ },
286
+
287
+ /**
288
+ * Executes methods called by shortcut keys.
289
+ * @param {SunEditor.HookParams.Shortcut} params - Information of the `shortcut` plugin
290
+ * @returns {void}
291
+ */
292
+ Shortcut(params) {},
293
+
294
+ /**
295
+ * Executes the method called when the rtl, ltr mode changes. (`editor.ui.setDir`)
296
+ * @param {string} dir - Direction (`rtl` or `ltr`)
297
+ * @returns {void}
298
+ */
299
+ SetDir(dir) {},
300
+
301
+ /**
302
+ * Executes when the editor or plugin is initialized.
303
+ * Called during editor initialization and when `resetOptions` is called.
304
+ * @returns {void}
305
+ */
306
+ Init() {},
307
+ };
@@ -0,0 +1,130 @@
1
+ /**
2
+ * @fileoverview Common parameter types used across SunEditor plugins and callbacks.
3
+ * These types define the structure of parameters passed to various plugin methods.
4
+ */
5
+
6
+ // ================================================================
7
+ // PARAMS - Common parameter types
8
+ // ================================================================
9
+
10
+ /**
11
+ * @typedef {{
12
+ * file: File,
13
+ * event: ClipboardEvent | DragEvent,
14
+ * frameContext: SunEditor.FrameContext
15
+ * }} FilePasteDrop
16
+ * @description Parameters for file paste/drop events
17
+ */
18
+
19
+ /**
20
+ * @typedef {{
21
+ * frameContext: SunEditor.FrameContext,
22
+ * event: FocusEvent
23
+ * }} FocusBlurEvent
24
+ * @description Parameters for focus and blur events
25
+ */
26
+
27
+ /**
28
+ * @typedef {{
29
+ * frameContext: SunEditor.FrameContext,
30
+ * event: Event
31
+ * }} ScrollEvent
32
+ * @description Parameters for scroll events
33
+ */
34
+
35
+ /**
36
+ * @typedef {{
37
+ * frameContext: SunEditor.FrameContext,
38
+ * event: InputEvent,
39
+ * data: string
40
+ * }} InputEventWithData
41
+ * @description Parameters for beforeinput and input events
42
+ */
43
+
44
+ /**
45
+ * @typedef {{
46
+ * frameContext: SunEditor.FrameContext,
47
+ * event: ClipboardEvent,
48
+ * data: string,
49
+ * doc: Document
50
+ * }} Paste
51
+ * @description Parameters for paste events
52
+ */
53
+
54
+ /**
55
+ * @typedef {{
56
+ * frameContext: SunEditor.FrameContext,
57
+ * event: MouseEvent
58
+ * }} Mouse
59
+ * @description Parameters for mouse events
60
+ */
61
+
62
+ /**
63
+ * @typedef {{
64
+ * frameContext: SunEditor.FrameContext,
65
+ * event: KeyboardEvent
66
+ * }} Keyboard
67
+ * @description Parameters for keyboard events
68
+ */
69
+
70
+ /**
71
+ * @typedef {{
72
+ * target: HTMLElement,
73
+ * event: KeyboardEvent
74
+ * }} ToolbarInputKeyDown
75
+ * @description Parameters for toolbar input keydown events
76
+ */
77
+
78
+ /**
79
+ * @typedef {{
80
+ * target: HTMLElement,
81
+ * value: string,
82
+ * event: FocusEvent | MouseEvent
83
+ * }} ToolbarInputChange
84
+ * @description Parameters for toolbar input change events (triggered by blur or other input click)
85
+ */
86
+
87
+ /**
88
+ * @typedef {{
89
+ * event: ClipboardEvent,
90
+ * cloneContainer: HTMLElement,
91
+ * info: SunEditor.ComponentInfo
92
+ * }} CopyComponent
93
+ * @description Parameters for component copy events
94
+ */
95
+
96
+ // ================================================================
97
+ // PLUGIN EVENT PARAMS - Plugin hook event parameter types
98
+ // ================================================================
99
+
100
+ /**
101
+ * @typedef {{
102
+ * frameContext: SunEditor.FrameContext,
103
+ * event: MouseEvent
104
+ * }} MouseEventInfo
105
+ * @description Parameters for plugin mouse event hooks
106
+ */
107
+
108
+ /**
109
+ * @typedef {{
110
+ * frameContext: SunEditor.FrameContext,
111
+ * event: KeyboardEvent,
112
+ * range: Range,
113
+ * line: HTMLElement
114
+ * }} KeyEventInfo
115
+ * @description Parameters for plugin keyboard event hooks
116
+ */
117
+
118
+ /**
119
+ * @typedef {{
120
+ * range: Range,
121
+ * line: HTMLElement,
122
+ * info: import('../core/logic/shell/shortcuts').ShortcutInfo,
123
+ * event: KeyboardEvent,
124
+ * keyCode: string,
125
+ * $: SunEditor.Deps
126
+ * }} ShortcutInfo
127
+ * @description Information of the `shortcut` plugin hook
128
+ */
129
+
130
+ export {};