suneditor 3.0.0-beta.2 → 3.0.0-beta.20

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 (177) hide show
  1. package/CONTRIBUTING.md +186 -184
  2. package/LICENSE +21 -21
  3. package/README.md +157 -180
  4. package/dist/suneditor.min.css +1 -1
  5. package/dist/suneditor.min.js +1 -1
  6. package/package.json +126 -123
  7. package/src/assets/design/color.css +131 -121
  8. package/src/assets/design/index.css +3 -3
  9. package/src/assets/design/size.css +37 -35
  10. package/src/assets/design/typography.css +37 -37
  11. package/src/assets/icons/defaultIcons.js +247 -232
  12. package/src/assets/suneditor-contents.css +779 -778
  13. package/src/assets/suneditor.css +43 -35
  14. package/src/core/base/eventHandlers/handler_toolbar.js +135 -135
  15. package/src/core/base/eventHandlers/handler_ww_clipboard.js +56 -56
  16. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +115 -113
  17. package/src/core/base/eventHandlers/handler_ww_key_input.js +1200 -1200
  18. package/src/core/base/eventHandlers/handler_ww_mouse.js +194 -194
  19. package/src/core/base/eventManager.js +1550 -1484
  20. package/src/core/base/history.js +355 -355
  21. package/src/core/class/char.js +163 -162
  22. package/src/core/class/component.js +856 -842
  23. package/src/core/class/format.js +3433 -3422
  24. package/src/core/class/html.js +1927 -1890
  25. package/src/core/class/menu.js +357 -346
  26. package/src/core/class/nodeTransform.js +424 -424
  27. package/src/core/class/offset.js +858 -891
  28. package/src/core/class/selection.js +710 -620
  29. package/src/core/class/shortcuts.js +98 -98
  30. package/src/core/class/toolbar.js +438 -430
  31. package/src/core/class/ui.js +424 -422
  32. package/src/core/class/viewer.js +750 -750
  33. package/src/core/editor.js +1810 -1708
  34. package/src/core/section/actives.js +268 -241
  35. package/src/core/section/constructor.js +1348 -1661
  36. package/src/core/section/context.js +102 -102
  37. package/src/core/section/documentType.js +582 -561
  38. package/src/core/section/options.js +367 -0
  39. package/src/core/util/instanceCheck.js +59 -0
  40. package/src/editorInjector/_classes.js +36 -36
  41. package/src/editorInjector/_core.js +92 -92
  42. package/src/editorInjector/index.js +75 -75
  43. package/src/events.js +634 -622
  44. package/src/helper/clipboard.js +59 -59
  45. package/src/helper/converter.js +586 -564
  46. package/src/helper/dom/domCheck.js +304 -304
  47. package/src/helper/dom/domQuery.js +677 -669
  48. package/src/helper/dom/domUtils.js +618 -557
  49. package/src/helper/dom/index.js +12 -12
  50. package/src/helper/env.js +249 -240
  51. package/src/helper/index.js +25 -25
  52. package/src/helper/keyCodeMap.js +183 -183
  53. package/src/helper/numbers.js +72 -72
  54. package/src/helper/unicode.js +47 -47
  55. package/src/langs/ckb.js +231 -231
  56. package/src/langs/cs.js +231 -231
  57. package/src/langs/da.js +231 -231
  58. package/src/langs/de.js +231 -231
  59. package/src/langs/en.js +230 -230
  60. package/src/langs/es.js +231 -231
  61. package/src/langs/fa.js +231 -231
  62. package/src/langs/fr.js +231 -231
  63. package/src/langs/he.js +231 -231
  64. package/src/langs/hu.js +230 -230
  65. package/src/langs/index.js +28 -28
  66. package/src/langs/it.js +231 -231
  67. package/src/langs/ja.js +230 -230
  68. package/src/langs/km.js +230 -230
  69. package/src/langs/ko.js +230 -230
  70. package/src/langs/lv.js +231 -231
  71. package/src/langs/nl.js +231 -231
  72. package/src/langs/pl.js +231 -231
  73. package/src/langs/pt_br.js +231 -231
  74. package/src/langs/ro.js +231 -231
  75. package/src/langs/ru.js +231 -231
  76. package/src/langs/se.js +231 -231
  77. package/src/langs/tr.js +231 -231
  78. package/src/langs/uk.js +231 -231
  79. package/src/langs/ur.js +231 -231
  80. package/src/langs/zh_cn.js +231 -231
  81. package/src/modules/ApiManager.js +191 -191
  82. package/src/modules/Browser.js +669 -667
  83. package/src/modules/ColorPicker.js +364 -362
  84. package/src/modules/Controller.js +474 -454
  85. package/src/modules/Figure.js +1620 -1617
  86. package/src/modules/FileManager.js +359 -359
  87. package/src/modules/HueSlider.js +577 -565
  88. package/src/modules/Modal.js +346 -346
  89. package/src/modules/ModalAnchorEditor.js +643 -643
  90. package/src/modules/SelectMenu.js +549 -549
  91. package/src/modules/_DragHandle.js +17 -17
  92. package/src/modules/index.js +14 -14
  93. package/src/plugins/browser/audioGallery.js +83 -83
  94. package/src/plugins/browser/fileBrowser.js +103 -103
  95. package/src/plugins/browser/fileGallery.js +83 -83
  96. package/src/plugins/browser/imageGallery.js +81 -81
  97. package/src/plugins/browser/videoGallery.js +103 -103
  98. package/src/plugins/command/blockquote.js +61 -60
  99. package/src/plugins/command/exportPDF.js +134 -134
  100. package/src/plugins/command/fileUpload.js +456 -456
  101. package/src/plugins/command/list_bulleted.js +149 -148
  102. package/src/plugins/command/list_numbered.js +152 -151
  103. package/src/plugins/dropdown/align.js +157 -155
  104. package/src/plugins/dropdown/backgroundColor.js +108 -104
  105. package/src/plugins/dropdown/font.js +141 -137
  106. package/src/plugins/dropdown/fontColor.js +109 -105
  107. package/src/plugins/dropdown/formatBlock.js +170 -178
  108. package/src/plugins/dropdown/hr.js +152 -152
  109. package/src/plugins/dropdown/layout.js +83 -83
  110. package/src/plugins/dropdown/lineHeight.js +131 -130
  111. package/src/plugins/dropdown/list.js +123 -122
  112. package/src/plugins/dropdown/paragraphStyle.js +138 -138
  113. package/src/plugins/dropdown/table.js +4110 -4000
  114. package/src/plugins/dropdown/template.js +83 -83
  115. package/src/plugins/dropdown/textStyle.js +149 -149
  116. package/src/plugins/field/mention.js +242 -242
  117. package/src/plugins/index.js +120 -120
  118. package/src/plugins/input/fontSize.js +414 -410
  119. package/src/plugins/input/pageNavigator.js +71 -70
  120. package/src/plugins/modal/audio.js +677 -677
  121. package/src/plugins/modal/drawing.js +537 -531
  122. package/src/plugins/modal/embed.js +886 -886
  123. package/src/plugins/modal/image.js +1377 -1376
  124. package/src/plugins/modal/link.js +248 -240
  125. package/src/plugins/modal/math.js +563 -563
  126. package/src/plugins/modal/video.js +1226 -1226
  127. package/src/plugins/popup/anchor.js +224 -222
  128. package/src/suneditor.js +114 -107
  129. package/src/themes/dark.css +132 -122
  130. package/src/typedef.js +132 -130
  131. package/types/assets/icons/defaultIcons.d.ts +8 -0
  132. package/types/core/base/eventManager.d.ts +29 -4
  133. package/types/core/class/char.d.ts +2 -1
  134. package/types/core/class/component.d.ts +1 -2
  135. package/types/core/class/format.d.ts +8 -1
  136. package/types/core/class/html.d.ts +8 -0
  137. package/types/core/class/menu.d.ts +8 -0
  138. package/types/core/class/offset.d.ts +24 -26
  139. package/types/core/class/selection.d.ts +2 -0
  140. package/types/core/class/toolbar.d.ts +6 -0
  141. package/types/core/class/ui.d.ts +1 -1
  142. package/types/core/editor.d.ts +34 -12
  143. package/types/core/section/constructor.d.ts +5 -638
  144. package/types/core/section/documentType.d.ts +12 -2
  145. package/types/core/section/options.d.ts +740 -0
  146. package/types/core/util/instanceCheck.d.ts +50 -0
  147. package/types/editorInjector/_core.d.ts +5 -5
  148. package/types/editorInjector/index.d.ts +2 -2
  149. package/types/events.d.ts +2 -0
  150. package/types/helper/converter.d.ts +9 -0
  151. package/types/helper/dom/domQuery.d.ts +5 -5
  152. package/types/helper/dom/domUtils.d.ts +8 -0
  153. package/types/helper/env.d.ts +6 -1
  154. package/types/helper/index.d.ts +4 -1
  155. package/types/index.d.ts +122 -120
  156. package/types/langs/_Lang.d.ts +194 -194
  157. package/types/modules/ColorPicker.d.ts +5 -1
  158. package/types/modules/Controller.d.ts +8 -4
  159. package/types/modules/Figure.d.ts +2 -1
  160. package/types/modules/HueSlider.d.ts +4 -1
  161. package/types/modules/SelectMenu.d.ts +1 -1
  162. package/types/plugins/command/blockquote.d.ts +1 -0
  163. package/types/plugins/command/list_bulleted.d.ts +1 -0
  164. package/types/plugins/command/list_numbered.d.ts +1 -0
  165. package/types/plugins/dropdown/align.d.ts +1 -0
  166. package/types/plugins/dropdown/backgroundColor.d.ts +1 -0
  167. package/types/plugins/dropdown/font.d.ts +1 -0
  168. package/types/plugins/dropdown/fontColor.d.ts +1 -0
  169. package/types/plugins/dropdown/formatBlock.d.ts +3 -2
  170. package/types/plugins/dropdown/lineHeight.d.ts +1 -0
  171. package/types/plugins/dropdown/list.d.ts +1 -0
  172. package/types/plugins/dropdown/table.d.ts +6 -0
  173. package/types/plugins/input/fontSize.d.ts +1 -0
  174. package/types/plugins/modal/drawing.d.ts +4 -0
  175. package/types/plugins/modal/link.d.ts +32 -15
  176. package/types/suneditor.d.ts +13 -9
  177. package/types/typedef.d.ts +8 -0
package/README.md CHANGED
@@ -1,180 +1,157 @@
1
- <p align="center">
2
- <a href="https://suneditor.com" target="_blank">
3
- <img src="https://suneditor-files.s3.ap-northeast-2.amazonaws.com/docs/se3_logo_title_flat.svg" alt="SunEditor" width="280" />
4
- </a>
5
- </p>
6
-
7
- <p align="center"><em>A lightweight and powerful WYSIWYG editor built with vanilla JavaScript</em></p>
8
-
9
- <p align="center">
10
- <a href="https://github.com/JiHong88/SunEditor/blob/master/LICENSE" title="MIT License"><img src="https://img.shields.io/github/license/jihong88/suneditor.svg?style=flat-square" alt="GitHub License"></a>
11
- <a href="https://www.npmjs.com/package/suneditor" title="npm release"><img src="https://img.shields.io/npm/v/suneditor.svg?style=flat-square" alt="npm"></a>
12
- <a href="https://www.npmjs.com/package/suneditor" title="npm month downloads"><img src="https://img.shields.io/npm/dm/suneditor.svg?logo=npm&style=flat-square" alt="npm weekly downloads"></a>
13
- <a href="https://www.jsdelivr.com/package/npm/suneditor" title="jsDelivr CDN month downloads"><img src="https://img.shields.io/jsdelivr/npm/hm/suneditor?label=CDN&style=flat-square" alt="jsDelivr CDN" /></a>
14
- </p>
15
-
16
- #
17
-
18
- SunEditor supports all modern browsers without dependencies or polyfills.
19
-
20
- ## 🌟 Why SunEditor?
21
-
22
- SunEditor is a lightweight, fast, and extensible WYSIWYG editor written in pure JavaScript.
23
- It's easy to integrate, highly customizable, and built for modern web applications.
24
-
25
- ### Key Features
26
-
27
- - ⚡ **No dependencies** — Optimized for speed and simplicity
28
- - 🧩 **Modular architecture** — Enable only the plugins you need
29
- - 📱 **Responsive UI** — Works smoothly on all modern devices
30
- - 🔌 **Framework-friendly** — Easy to use with React, Vue, Svelte, etc.
31
- - 💼 **Feature-rich plugin ecosystem**, including:
32
- - 🏷 @Mentions with autocomplete
33
- - 🎨 Advanced table editing & custom layouts
34
- - 🧮 Math (LaTeX), drawing, and code block support
35
- - 📂 Built-in media galleries (image, video, audio, file)
36
- - 📄 PDF export, templates, and embedded content (audio/video/iframe)
37
-
38
- 🌤 **[Explore all plugins](https://suneditor.com/plugins)**
39
-
40
- ⭐ **Contributions welcome!** Please refer to [Contribution Guidelines](/CONTRIBUTING.md) and check out our [open tasks](https://github.com/jihong88/suneditor/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). ⭐
41
-
42
- ---
43
-
44
- ## 🌍 Browser Support
45
-
46
- | Browser | Since | Version ≥ |
47
- | ----------------------------------------------------------------------------------------------------------------------------------- | -------- | --------- |
48
- | ![Chrome](https://img.shields.io/badge/-Chrome-4285F4?logo=GoogleChrome&logoColor=white&style=flat-square) | Feb 2020 | 80 |
49
- | ![Firefox](https://img.shields.io/badge/-Firefox-FF7139?logo=FirefoxBrowser&logoColor=white&style=flat-square) | Mar 2020 | 74 |
50
- | ![Safari](https://img.shields.io/badge/-Safari-0D96F6?logo=Safari&logoColor=white&style=flat-square) | Mar 2020 | 13.1 |
51
- | ![Edge](https://img.shields.io/badge/-Edge-0078D7?logo=MicrosoftEdge&logoColor=white&style=flat-square) | Jan 2020 | 80 |
52
- | ![Opera](https://img.shields.io/badge/-Opera-FF1B2D?logo=Opera&logoColor=white&style=flat-square) | Feb 2020 | 67 |
53
- | ![iOS Safari](https://img.shields.io/badge/-iOS%20Safari-000000?logo=apple&logoColor=white&style=flat-square) | Mar 2020 | 13.4 |
54
- | ![Android WebView](https://img.shields.io/badge/-Android%20WebView-3DDC84?logo=android&logoColor=white&style=flat-square) | Feb 2020 | 80 |
55
- | ![Samsung Internet](https://img.shields.io/badge/-Samsung%20Internet-1428A0?logo=samsunginternet&logoColor=white&style=flat-square) | Apr 2020 | 11.1 |
56
-
57
- ❌ Not Supported : IE, Legacy Edge
58
-
59
- ---
60
-
61
- ## 📦 Legacy Version (v2-legacy)
62
-
63
- > **SunEditor v3 is the latest version.**
64
- > This section refers to the **previous stable version, SunEditor v2**.
65
-
66
- The `v2-legacy` branch is no longer actively maintained,
67
- but still available for compatibility with older projects.
68
-
69
- 👉 [`v2-legacy` branch](https://github.com/JiHong88/SunEditor/tree/v2-legacy)
70
-
71
- ---
72
-
73
- ## 🚀 Install & Quick Start
74
-
75
- > 💡 **Want to see it in action?**
76
- > Check out the 🌤 [**Live Demo**](https://suneditor.com) 🌤 with full options and examples.
77
-
78
- ### NPM
79
-
80
- ```bash
81
- npm install suneditor --save
82
- ```
83
-
84
- ```js
85
- import 'suneditor/dist/suneditor.min.css';
86
- import suneditor from 'suneditor';
87
-
88
- // HTML: <div id="editor"></div> or <textarea id="editor"></textarea>
89
- suneditor.create(document.querySelector('#editor'), {
90
- buttonList: [
91
- ['undo', 'redo'],
92
- '|',
93
- ['bold', 'underline', 'italic', 'strike', '|', 'subscript', 'superscript'],
94
- '|',
95
- ['removeFormat'],
96
- '|',
97
- ['outdent', 'indent'],
98
- '|',
99
- ['fullScreen', 'showBlocks', 'codeView'],
100
- '|',
101
- ['preview', 'print', 'copy']
102
- ],
103
- height: 'auto'
104
- });
105
- ```
106
-
107
- ### CDN ([jsDelivr](https://www.jsdelivr.com/package/npm/suneditor))
108
-
109
- ```html
110
- <script src="https://cdn.jsdelivr.net/npm/suneditor@latest/dist/suneditor.min.js"></script>
111
- <link href="https://cdn.jsdelivr.net/npm/suneditor@latest/dist/suneditor.min.css" rel="stylesheet" />
112
- <!-- Optional language (default is English): e.g., Korean (ko) -->
113
- <!-- <script src="https://cdn.jsdelivr.net/npm/suneditor@latest/src/langs/ko.js"></script> -->
114
-
115
- <div id="editor"></div>
116
- <!-- or <textarea id="editor"></textarea> -->
117
-
118
- <script>
119
- SUNEDITOR.create(document.querySelector('#editor'), {
120
- buttonList: [
121
- ['undo', 'redo'],
122
- '|',
123
- ['bold', 'underline', 'italic', 'strike', '|', 'subscript', 'superscript'],
124
- '|',
125
- ['removeFormat'],
126
- '|',
127
- ['outdent', 'indent'],
128
- '|',
129
- ['fullScreen', 'showBlocks', 'codeView'],
130
- '|',
131
- ['preview', 'print', 'copy']
132
- ],
133
- height: 'auto'
134
- });
135
- </script>
136
- ```
137
-
138
- ---
139
-
140
- ## 🔧 Framework Integration
141
-
142
- You can use the official wrappers for easier integration:
143
-
144
- React – [suneditor-react](https://github.com/JiHong88/suneditor-react)\
145
- Vue – [suneditor-vue](https://github.com/JiHong88/suneditor-vue)
146
-
147
- ---
148
-
149
- ## 📦 Plugins
150
-
151
- SunEditor supports a plugin-based architecture.\
152
- You can enable only the plugins you need or even create your own custom ones.
153
-
154
- ```js
155
- suneditor.create('#editor', {
156
- plugins: ['font', 'image', 'video'],
157
- image: {
158
- uploadUrl: 'https://upload.image'
159
- }
160
- });
161
- ```
162
-
163
- 📘 [Learn how to build your own plugin →](https://suneditor.com/plugins)
164
-
165
- 🤖 Want to build plugins? Get real-time help from [SunEditor Devs AI](https://chatgpt.com/g/g-JViNPCrkD-suneditor-devs).\
166
- See [Contribution Guide](./CONTRIBUTING.md#ai-plugin-helper) for tips and examples.
167
-
168
- ---
169
-
170
- ## ✨ Contributors
171
-
172
- <a href="https://github.com/jihong88/suneditor/graphs/contributors">
173
- <img src="https://contrib.rocks/image?repo=jihong88/suneditor" alt="contributors"/>
174
- </a>
175
-
176
- ---
177
-
178
- ## 📄 License
179
-
180
- SunEditor is an open-source project available under the [MIT License](./LICENSE).
1
+ <p align="center">
2
+ <a href="https://suneditor.com" target="_blank">
3
+ <img src="https://suneditor-files.s3.ap-northeast-2.amazonaws.com/docs/se3_logo_title_flat.svg?v=1" alt="SunEditor" width="280" />
4
+ </a>
5
+ </p>
6
+
7
+ <p align="center"><em>A lightweight and powerful WYSIWYG editor built with vanilla JavaScript</em></p>
8
+
9
+ <p align="center">
10
+ <a href="https://github.com/JiHong88/SunEditor/blob/master/LICENSE" title="MIT License"><img src="https://img.shields.io/github/license/jihong88/suneditor.svg?style=flat-square" alt="GitHub License"></a>
11
+ <a href="https://www.npmjs.com/package/suneditor" title="npm release"><img src="https://img.shields.io/npm/v/suneditor.svg?style=flat-square" alt="npm"></a>
12
+ <a href="https://www.npmjs.com/package/suneditor" title="npm month downloads"><img src="https://img.shields.io/npm/dm/suneditor.svg?logo=npm&style=flat-square" alt="npm weekly downloads"></a>
13
+ <a href="https://www.jsdelivr.com/package/npm/suneditor" title="jsDelivr CDN month downloads"><img src="https://img.shields.io/jsdelivr/npm/hm/suneditor?label=CDN&style=flat-square" alt="jsDelivr CDN" /></a>
14
+ </p>
15
+
16
+ #
17
+
18
+ SunEditor supports all modern browsers without dependencies or polyfills.
19
+
20
+ ## 🌟 Why SunEditor?
21
+
22
+ SunEditor is a lightweight, fast, and extensible WYSIWYG editor written in pure JavaScript.
23
+ It's easy to integrate, highly customizable, and built for modern web applications.
24
+
25
+ ### Key Features
26
+
27
+ - ⚡ **No dependencies** — Optimized for speed and simplicity
28
+ - 🧩 **Modular architecture** — Enable only the plugins you need
29
+ - 📱 **Responsive UI** — Works smoothly on all modern devices
30
+ - 🔌 **Framework-friendly** — Easy to use with React, Vue, Svelte, etc.
31
+ - 💼 **Feature-rich plugin ecosystem**, including:
32
+ - 🏷 @Mentions with autocomplete
33
+ - 🎨 Advanced table editing & custom layouts
34
+ - 🧮 Math (LaTeX), drawing, and code block support
35
+ - 📂 Built-in media galleries (image, video, audio, file)
36
+ - 📄 PDF export, templates, and embedded content (audio/video/iframe)
37
+
38
+ 🌤 **[Explore all plugins](https://suneditor.com/plugins)**
39
+
40
+ ⭐ **Contributions welcome!** Please refer to [Contribution Guidelines](/CONTRIBUTING.md) and check out our [open tasks](https://github.com/jihong88/suneditor/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). ⭐
41
+
42
+ ---
43
+
44
+ ## 🌍 Browser Support
45
+
46
+ | Browser | Since | Version ≥ |
47
+ | ----------------------------------------------------------------------------------------------------------------------------------- | -------- | --------- |
48
+ | ![Chrome](https://img.shields.io/badge/-Chrome-4285F4?logo=GoogleChrome&logoColor=white&style=flat-square) | Feb 2020 | 80 |
49
+ | ![Firefox](https://img.shields.io/badge/-Firefox-FF7139?logo=FirefoxBrowser&logoColor=white&style=flat-square) | Jul 2021 | 90 |
50
+ | ![Safari](https://img.shields.io/badge/-Safari-0D96F6?logo=Safari&logoColor=white&style=flat-square) | Apr 2021 | 14.1 |
51
+ | ![Edge](https://img.shields.io/badge/-Edge-0078D7?logo=MicrosoftEdge&logoColor=white&style=flat-square) | Jan 2020 | 80 |
52
+ | ![Opera](https://img.shields.io/badge/-Opera-FF1B2D?logo=Opera&logoColor=white&style=flat-square) | Feb 2020 | 67 |
53
+ | ![iOS Safari](https://img.shields.io/badge/-iOS%20Safari-000000?logo=apple&logoColor=white&style=flat-square) | Apr 2021 | 14.5 |
54
+ | ![Android WebView](https://img.shields.io/badge/-Android%20WebView-3DDC84?logo=android&logoColor=white&style=flat-square) | Feb 2020 | 80 |
55
+ | ![Samsung Internet](https://img.shields.io/badge/-Samsung%20Internet-1428A0?logo=samsunginternet&logoColor=white&style=flat-square) | Apr 2020 | 13.0 |
56
+
57
+ ❌ Not Supported : IE, Legacy Edge
58
+
59
+ > SunEditor is designed for modern browsers released since 2020.\
60
+ > This includes support for ES2020+ features like optional chaining (?.), nullish coalescing (??), and private class fields (#field).
61
+
62
+ ---
63
+
64
+ ## 📦 Legacy Version (v2-legacy)
65
+
66
+ > **SunEditor v3 is the latest version.**
67
+ > This section refers to the **previous stable version, SunEditor v2**.
68
+
69
+ The `v2-legacy` branch is no longer actively maintained,
70
+ but still available for compatibility with older projects.
71
+
72
+ 👉 [`v2-legacy` branch](https://github.com/JiHong88/SunEditor/tree/v2-legacy)
73
+
74
+ ---
75
+
76
+ ## 🚀 Install & Quick Start
77
+
78
+ > 💡 **Want to see it in action?**
79
+ > Check out the 🌤 [**Live Demo**](https://suneditor.com) 🌤 with full options and examples.
80
+
81
+ ### NPM
82
+
83
+ ```bash
84
+ npm install suneditor --save
85
+ ```
86
+
87
+ ```js
88
+ import 'suneditor/dist/suneditor.min.css';
89
+ import suneditor from 'suneditor';
90
+
91
+ // HTML: <div id="editor"></div> or <textarea id="editor"></textarea>
92
+ suneditor.create(document.querySelector('#editor'), {
93
+ // options
94
+ });
95
+ ```
96
+
97
+ ### CDN ([jsDelivr](https://www.jsdelivr.com/package/npm/suneditor))
98
+
99
+ ```html
100
+ <script src="https://cdn.jsdelivr.net/npm/suneditor@latest/dist/suneditor.min.js"></script>
101
+ <link href="https://cdn.jsdelivr.net/npm/suneditor@latest/dist/suneditor.min.css" rel="stylesheet" />
102
+ <!-- Optional language (default is English): e.g., Korean (ko) -->
103
+ <!-- <script src="https://cdn.jsdelivr.net/npm/suneditor@latest/src/langs/ko.js"></script> -->
104
+
105
+ <div id="editor"></div>
106
+ <!-- or <textarea id="editor"></textarea> -->
107
+
108
+ <script>
109
+ SUNEDITOR.create(document.querySelector('#editor'), {
110
+ // options
111
+ });
112
+ </script>
113
+ ```
114
+
115
+ ---
116
+
117
+ ## 🔧 Framework Integration
118
+
119
+ You can use the official wrappers for easier integration:
120
+
121
+ React – [suneditor-react](https://github.com/JiHong88/suneditor-react)\
122
+ Vue – [suneditor-vue](https://github.com/JiHong88/suneditor-vue)
123
+
124
+ ---
125
+
126
+ ## 📦 Plugins
127
+
128
+ SunEditor supports a plugin-based architecture.\
129
+ You can enable only the plugins you need or even create your own custom ones.
130
+
131
+ ```js
132
+ suneditor.create('#editor', {
133
+ plugins: ['font', 'image', 'video'],
134
+ image: {
135
+ uploadUrl: 'https://upload.image'
136
+ }
137
+ });
138
+ ```
139
+
140
+ 📘 [Learn how to build your own plugin →](https://suneditor.com/plugins)
141
+
142
+ 🤖 Want to build plugins? Get real-time help from [SunEditor Devs AI](https://chatgpt.com/g/g-JViNPCrkD-suneditor-devs).\
143
+ See [Contribution Guide](./CONTRIBUTING.md#ai-plugin-helper) for tips and examples.
144
+
145
+ ---
146
+
147
+ ## ✨ Contributors
148
+
149
+ <a href="https://github.com/jihong88/suneditor/graphs/contributors">
150
+ <img src="https://contrib.rocks/image?repo=jihong88/suneditor" alt="contributors"/>
151
+ </a>
152
+
153
+ ---
154
+
155
+ ## 📄 License
156
+
157
+ SunEditor is an open-source project available under the [MIT License](./LICENSE).