suneditor 3.0.0-rc.5 → 3.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 (118) hide show
  1. package/README.md +3 -2
  2. package/dist/suneditor-contents.min.css +1 -1
  3. package/dist/suneditor.min.css +1 -1
  4. package/dist/suneditor.min.js +1 -1
  5. package/package.json +2 -3
  6. package/src/assets/design/color.css +14 -2
  7. package/src/assets/design/typography.css +5 -0
  8. package/src/assets/icons/defaultIcons.js +22 -4
  9. package/src/assets/suneditor-contents.css +1 -1
  10. package/src/assets/suneditor.css +312 -18
  11. package/src/core/config/eventManager.js +6 -9
  12. package/src/core/editor.js +1 -1
  13. package/src/core/event/actions/index.js +5 -0
  14. package/src/core/event/effects/keydown.registry.js +25 -0
  15. package/src/core/event/eventOrchestrator.js +69 -2
  16. package/src/core/event/handlers/handler_ww_mouse.js +1 -0
  17. package/src/core/event/rules/keydown.rule.backspace.js +9 -1
  18. package/src/core/kernel/coreKernel.js +4 -0
  19. package/src/core/kernel/store.js +2 -0
  20. package/src/core/logic/dom/html.js +110 -11
  21. package/src/core/logic/dom/offset.js +89 -35
  22. package/src/core/logic/dom/selection.js +46 -19
  23. package/src/core/logic/panel/finder.js +982 -0
  24. package/src/core/logic/panel/menu.js +8 -6
  25. package/src/core/logic/panel/toolbar.js +112 -19
  26. package/src/core/logic/panel/viewer.js +214 -43
  27. package/src/core/logic/shell/_commandExecutor.js +7 -1
  28. package/src/core/logic/shell/commandDispatcher.js +1 -1
  29. package/src/core/logic/shell/component.js +5 -7
  30. package/src/core/logic/shell/history.js +24 -0
  31. package/src/core/logic/shell/shortcuts.js +3 -3
  32. package/src/core/logic/shell/ui.js +25 -26
  33. package/src/core/schema/frameContext.js +15 -1
  34. package/src/core/schema/options.js +75 -16
  35. package/src/core/section/constructor.js +61 -20
  36. package/src/core/section/documentType.js +1 -1
  37. package/src/events.js +12 -0
  38. package/src/helper/clipboard.js +1 -1
  39. package/src/helper/dom/domUtils.js +5 -14
  40. package/src/helper/index.js +3 -0
  41. package/src/helper/markdown.js +876 -0
  42. package/src/langs/ckb.js +9 -0
  43. package/src/langs/cs.js +9 -0
  44. package/src/langs/da.js +9 -0
  45. package/src/langs/de.js +9 -0
  46. package/src/langs/en.js +9 -0
  47. package/src/langs/es.js +9 -0
  48. package/src/langs/fa.js +9 -0
  49. package/src/langs/fr.js +9 -0
  50. package/src/langs/he.js +9 -0
  51. package/src/langs/hu.js +9 -0
  52. package/src/langs/it.js +9 -0
  53. package/src/langs/ja.js +9 -0
  54. package/src/langs/km.js +9 -0
  55. package/src/langs/ko.js +9 -0
  56. package/src/langs/lv.js +9 -0
  57. package/src/langs/nl.js +9 -0
  58. package/src/langs/pl.js +9 -0
  59. package/src/langs/pt_br.js +9 -0
  60. package/src/langs/ro.js +9 -0
  61. package/src/langs/ru.js +9 -0
  62. package/src/langs/se.js +9 -0
  63. package/src/langs/tr.js +9 -0
  64. package/src/langs/uk.js +9 -0
  65. package/src/langs/ur.js +9 -0
  66. package/src/langs/zh_cn.js +9 -0
  67. package/src/modules/contract/Controller.js +50 -39
  68. package/src/modules/manager/ApiManager.js +27 -4
  69. package/src/modules/manager/FileManager.js +1 -1
  70. package/src/modules/ui/SelectMenu.js +22 -11
  71. package/src/plugins/command/codeBlock.js +324 -0
  72. package/src/plugins/command/exportPDF.js +15 -3
  73. package/src/plugins/dropdown/blockStyle.js +1 -1
  74. package/src/plugins/dropdown/paragraphStyle.js +1 -2
  75. package/src/plugins/dropdown/table/render/table.html.js +1 -1
  76. package/src/plugins/dropdown/table/services/table.grid.js +16 -8
  77. package/src/plugins/dropdown/table/services/table.style.js +5 -9
  78. package/src/plugins/index.js +3 -0
  79. package/src/plugins/input/fontSize.js +4 -2
  80. package/src/plugins/modal/audio.js +2 -1
  81. package/src/plugins/modal/image/index.js +2 -1
  82. package/src/plugins/modal/math.js +2 -1
  83. package/src/plugins/modal/video/index.js +2 -1
  84. package/src/themes/cobalt.css +13 -4
  85. package/src/themes/cream.css +11 -2
  86. package/src/themes/dark.css +13 -4
  87. package/src/themes/midnight.css +13 -4
  88. package/src/typedef.js +4 -4
  89. package/types/assets/icons/defaultIcons.d.ts +12 -1
  90. package/types/core/config/eventManager.d.ts +6 -8
  91. package/types/core/event/actions/index.d.ts +1 -0
  92. package/types/core/event/effects/keydown.registry.d.ts +2 -0
  93. package/types/core/event/eventOrchestrator.d.ts +2 -1
  94. package/types/core/kernel/coreKernel.d.ts +5 -0
  95. package/types/core/kernel/store.d.ts +5 -0
  96. package/types/core/logic/dom/offset.d.ts +16 -3
  97. package/types/core/logic/dom/selection.d.ts +3 -3
  98. package/types/core/logic/panel/finder.d.ts +83 -0
  99. package/types/core/logic/panel/toolbar.d.ts +14 -1
  100. package/types/core/logic/panel/viewer.d.ts +22 -2
  101. package/types/core/logic/shell/shortcuts.d.ts +1 -1
  102. package/types/core/schema/frameContext.d.ts +22 -0
  103. package/types/core/schema/options.d.ts +153 -31
  104. package/types/events.d.ts +11 -0
  105. package/types/helper/dom/domUtils.d.ts +2 -2
  106. package/types/helper/index.d.ts +5 -0
  107. package/types/helper/markdown.d.ts +27 -0
  108. package/types/langs/_Lang.d.ts +9 -0
  109. package/types/modules/contract/Controller.d.ts +8 -1
  110. package/types/modules/ui/SelectMenu.d.ts +12 -0
  111. package/types/plugins/command/codeBlock.d.ts +53 -0
  112. package/types/plugins/index.d.ts +3 -0
  113. package/types/plugins/input/fontSize.d.ts +6 -2
  114. package/types/plugins/modal/audio.d.ts +4 -2
  115. package/types/plugins/modal/image/index.d.ts +3 -1
  116. package/types/plugins/modal/math.d.ts +3 -1
  117. package/types/plugins/modal/video/index.d.ts +3 -1
  118. package/types/typedef.d.ts +5 -2
@@ -27,6 +27,7 @@ export type ImagePluginOptions = {
27
27
  createFileInput?: boolean;
28
28
  /**
29
29
  * - Whether to create a URL input element for image insertion.
30
+ * - Defaults to `true`. Always `true` when `createFileInput` is `false`.
30
31
  */
31
32
  createUrlInput?: boolean;
32
33
  /**
@@ -112,7 +113,8 @@ export type ImageState = {
112
113
  * @property {string} [defaultHeight="auto"] - The default height of the image. If a number is provided, `"px"` will be appended.
113
114
  * @property {boolean} [percentageOnlySize=false] - Whether to allow only percentage-based sizing.
114
115
  * @property {boolean} [createFileInput=true] - Whether to create a file input element for image uploads.
115
- * @property {boolean} [createUrlInput=true] - Whether to create a URL input element for image insertion.
116
+ * @property {boolean} [createUrlInput] - Whether to create a URL input element for image insertion.
117
+ * - Defaults to `true`. Always `true` when `createFileInput` is `false`.
116
118
  * @property {string} [uploadUrl] - The URL endpoint for image file uploads.
117
119
  * @property {Object<string, string>} [uploadHeaders] - Additional headers to include in the file upload request.
118
120
  * ```js
@@ -49,7 +49,8 @@ export type MathPluginOptions = {
49
49
  * @property {?(...args: *) => *} [onPaste] - A callback function to handle paste events in the math input area.
50
50
  * @property {Object} [formSize={}] - An object specifying the dimensions for the math modal.
51
51
  * @property {string} [formSize.width="460px"] - The default width of the math modal.
52
- * @property {string} [formSize.height="14em"] - The default height of the math modal.
52
+ * @property {string} [formSize.height] - The default height of the math modal.
53
+ * - Defaults to `"14em"`. When `autoHeight` is `true`, defaults to `formSize.minHeight`.
53
54
  * @property {string} [formSize.maxWidth] - The maximum width of the math modal.
54
55
  * @property {string} [formSize.maxHeight] - The maximum height of the math modal.
55
56
  * @property {string} [formSize.minWidth="400px"] - The minimum width of the math modal.
@@ -84,6 +85,7 @@ declare class Math_ extends PluginModal {
84
85
  width: string;
85
86
  /**
86
87
  * - The default height of the math modal.
88
+ * - Defaults to `"14em"`. When `autoHeight` is `true`, defaults to `formSize.minHeight`.
87
89
  */
88
90
  height: string;
89
91
  /**
@@ -27,6 +27,7 @@ export type VideoPluginOptions = {
27
27
  createFileInput?: boolean;
28
28
  /**
29
29
  * - Whether to create a URL input element for video embedding.
30
+ * - Defaults to `true`. Always `true` when `createFileInput` is `false`.
30
31
  */
31
32
  createUrlInput?: boolean;
32
33
  /**
@@ -151,7 +152,8 @@ export type VideoState = {
151
152
  * @property {string} [defaultHeight] - The default height of the video element. If a number is provided, `"px"` will be appended.
152
153
  * @property {boolean} [percentageOnlySize=false] - Whether to allow only percentage-based sizing.
153
154
  * @property {boolean} [createFileInput=false] - Whether to create a file input element for video uploads.
154
- * @property {boolean} [createUrlInput=true] - Whether to create a URL input element for video embedding.
155
+ * @property {boolean} [createUrlInput] - Whether to create a URL input element for video embedding.
156
+ * - Defaults to `true`. Always `true` when `createFileInput` is `false`.
155
157
  * @property {string} [uploadUrl] - The URL endpoint for video file uploads.
156
158
  * @property {Object<string, string>} [uploadHeaders] - Additional headers to include in the video upload request.
157
159
  * @property {number} [uploadSizeLimit] - The total upload size limit for videos in bytes.
@@ -179,7 +179,7 @@ declare global {
179
179
  /**
180
180
  * Event listener
181
181
  */
182
- listener: EventListenerOrEventListenerObject;
182
+ listener: any;
183
183
  /**
184
184
  * Event useCapture option
185
185
  */
@@ -196,7 +196,7 @@ declare global {
196
196
  /**
197
197
  * Event listener
198
198
  */
199
- listener: (...args: any) => any;
199
+ listener: any;
200
200
  /**
201
201
  * Use event capture
202
202
  */
@@ -279,6 +279,7 @@ declare global {
279
279
  | 'fullScreen'
280
280
  | 'showBlocks'
281
281
  | 'codeView'
282
+ | 'markdownView'
282
283
  | 'undo'
283
284
  | 'redo'
284
285
  | 'preview'
@@ -287,6 +288,7 @@ declare global {
287
288
  | 'dir'
288
289
  | 'dir_ltr'
289
290
  | 'dir_rtl'
291
+ | 'finder'
290
292
  | 'save'
291
293
  | 'newDocument'
292
294
  | 'selectAll'
@@ -299,6 +301,7 @@ declare global {
299
301
  */
300
302
  type ButtonPlugin =
301
303
  | 'blockquote'
304
+ | 'codeBlock'
302
305
  | 'exportPDF'
303
306
  | 'fileUpload'
304
307
  | 'list_bulleted'