ct-rich-text-editor 1.3.23 → 1.3.24

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 (228) hide show
  1. package/README.md +233 -233
  2. package/dist/App.d.ts +2 -3
  3. package/dist/Provider/EditorProvider.d.ts +26 -27
  4. package/dist/Provider/LexicalProvider.d.ts +5 -6
  5. package/dist/api/ai/index.d.ts +31 -31
  6. package/dist/api/auth.d.ts +108 -108
  7. package/dist/api/config/axios.d.ts +1 -2
  8. package/dist/api/config/endpoints.d.ts +18 -18
  9. package/dist/api/featureSuggestion.d.ts +23 -23
  10. package/dist/api/transcript/index.d.ts +1 -1
  11. package/dist/assets/style.css +5205 -5192
  12. package/dist/{babel-d155920e.js → babel-d3085146.js} +3565 -3292
  13. package/dist/babel-d3085146.js.map +1 -0
  14. package/dist/components/AiPlugin/index.d.ts +6 -6
  15. package/dist/components/AlignMenu/AlignMenu.d.ts +8 -9
  16. package/dist/components/AlignMenu/AlignMenuDrop.d.ts +2 -3
  17. package/dist/components/AlignMenu/index.d.ts +1 -1
  18. package/dist/components/AutoExpandingDemo.d.ts +5 -6
  19. package/dist/components/BlockFormatMenu/BlockFormatMenu.d.ts +2 -3
  20. package/dist/components/BlockFormatMenu/constants.d.ts +14 -14
  21. package/dist/components/BlockFormatMenu/index.d.ts +1 -1
  22. package/dist/components/ChartEditDialog.d.ts +8 -9
  23. package/dist/components/ChartInsertDialog.d.ts +7 -8
  24. package/dist/components/CodeActionMenuPlugin/components/CopyButton/index.d.ts +6 -7
  25. package/dist/components/CodeActionMenuPlugin/components/PrettierButton/index.d.ts +8 -9
  26. package/dist/components/CodeActionMenuPlugin/index.d.ts +4 -5
  27. package/dist/components/CodeActionMenuPlugin/utils.d.ts +1 -1
  28. package/dist/components/ColorPicker/ColorPicker.d.ts +2 -3
  29. package/dist/components/ColorPicker/index.d.ts +1 -1
  30. package/dist/components/CommentSidebar/CommentSidebar.d.ts +7 -8
  31. package/dist/components/CommentSidebar/index.d.ts +1 -1
  32. package/dist/components/CommentToggle/CommentToggle.d.ts +7 -8
  33. package/dist/components/CommentToggle/index.d.ts +1 -1
  34. package/dist/components/CommentView/CommentView.d.ts +8 -9
  35. package/dist/components/CommentView/index.d.ts +1 -1
  36. package/dist/components/ConfigurableEditorWithAuth.d.ts +12 -13
  37. package/dist/components/DatePicker/DatePickerWidget.d.ts +6 -7
  38. package/dist/components/EmojiPickerWidget/EmojiPickerWidget.d.ts +2 -3
  39. package/dist/components/EmojiPickerWidget/index.d.ts +1 -1
  40. package/dist/components/FeatureSuggestionDialog/index.d.ts +6 -6
  41. package/dist/components/FileUpload/InsertFileDialog.d.ts +7 -7
  42. package/dist/components/FileUpload/InsertFileUploadedDialogBody.d.ts +4 -5
  43. package/dist/components/FileView/index.d.ts +8 -9
  44. package/dist/components/FontFamilySelect/FontFamilyMenu.d.ts +6 -7
  45. package/dist/components/FontSizePicker/FontSizeControl.d.ts +2 -3
  46. package/dist/components/FormatTextMenu/FormatTextMenu.d.ts +2 -3
  47. package/dist/components/FormatTextMenu/FormatTextMenuDrop.d.ts +2 -3
  48. package/dist/components/FormatTextMenu/index.d.ts +1 -1
  49. package/dist/components/HighlightColorPicker/HighlightColorPicker.d.ts +6 -7
  50. package/dist/components/HtmlViewDisplay.d.ts +2 -3
  51. package/dist/components/ImageComparisonDialog/index.d.ts +10 -11
  52. package/dist/components/ImageGenerationDialog/ImageGenerationManager.d.ts +10 -11
  53. package/dist/components/ImageGenerationDialog/index.d.ts +10 -11
  54. package/dist/components/ImageInsertTest.d.ts +2 -3
  55. package/dist/components/ImageView/ImageDialog/ImageUploadDialogBody.d.ts +8 -9
  56. package/dist/components/ImageView/ImageDialog/index.d.ts +5 -6
  57. package/dist/components/ImageView/ImageResizer.d.ts +15 -16
  58. package/dist/components/ImageView/index.d.ts +15 -16
  59. package/dist/components/InsertMenu/InsertMenu.d.ts +8 -9
  60. package/dist/components/InsertMenu/InsertMenuDrop.d.ts +8 -9
  61. package/dist/components/InsertMenu/index.d.ts +1 -1
  62. package/dist/components/LanguageSelectorDialog/index.d.ts +7 -8
  63. package/dist/components/NotePanelMenu/NotePanelMenu.d.ts +5 -6
  64. package/dist/components/NotePanelMenu/index.d.ts +1 -1
  65. package/dist/components/NotePanelView/NotePanelView.d.ts +8 -9
  66. package/dist/components/NotePanelView/index.d.ts +1 -1
  67. package/dist/components/Placeholder/Placeholder.d.ts +2 -3
  68. package/dist/components/Placeholder/index.d.ts +1 -1
  69. package/dist/components/Placeholder/styles.d.ts +1 -1
  70. package/dist/components/ScopedEditor.d.ts +8 -8
  71. package/dist/components/SignatureCaption/index.d.ts +5 -6
  72. package/dist/components/TableColorPicker/index.d.ts +7 -8
  73. package/dist/components/TableModal/TableModal.d.ts +9 -10
  74. package/dist/components/TextEnhanceDialog/index.d.ts +9 -10
  75. package/dist/components/ToneAdjustDialog/index.d.ts +7 -8
  76. package/dist/components/Toolbar/Toolbar.d.ts +2 -3
  77. package/dist/components/Toolbar/index.d.ts +1 -1
  78. package/dist/components/Toolbar/styles.d.ts +6 -6
  79. package/dist/components/ui/avatar.d.ts +6 -6
  80. package/dist/components/ui/badge.d.ts +8 -9
  81. package/dist/components/ui/button.d.ts +10 -11
  82. package/dist/components/ui/calendar.d.ts +7 -8
  83. package/dist/components/ui/card.d.ts +8 -8
  84. package/dist/components/ui/checkbox.d.ts +4 -4
  85. package/dist/components/ui/dialog.d.ts +19 -19
  86. package/dist/components/ui/dropdown-menu.d.ts +27 -27
  87. package/dist/components/ui/input.d.ts +3 -3
  88. package/dist/components/ui/label.d.ts +4 -4
  89. package/dist/components/ui/popover.d.ts +7 -7
  90. package/dist/components/ui/select.d.ts +13 -13
  91. package/dist/components/ui/separator.d.ts +4 -4
  92. package/dist/components/ui/sheet.d.ts +24 -24
  93. package/dist/components/ui/skeleton.d.ts +3 -3
  94. package/dist/components/ui/tabs.d.ts +7 -7
  95. package/dist/components/ui/textarea.d.ts +3 -3
  96. package/dist/components/ui/tooltip.d.ts +7 -7
  97. package/dist/constants.d.ts +21 -22
  98. package/dist/context/CommentContext.d.ts +42 -43
  99. package/dist/context/HtmlViewContext.d.ts +16 -17
  100. package/dist/context/ToolbarContext.d.ts +55 -56
  101. package/dist/editorConfig.d.ts +48 -48
  102. package/dist/{estree-b1fff53b.js → estree-164983f6.js} +1763 -1778
  103. package/dist/estree-164983f6.js.map +1 -0
  104. package/dist/hooks/useAutoExpandingHeight.d.ts +15 -15
  105. package/dist/hooks/useBlockFormat.d.ts +16 -17
  106. package/dist/hooks/useColorPicker.d.ts +6 -6
  107. package/dist/hooks/useCustomCommands.d.ts +2 -3
  108. package/dist/hooks/useDebounce.d.ts +1 -1
  109. package/dist/hooks/useEditorToolbar.d.ts +9 -10
  110. package/dist/hooks/useInsertMenu.d.ts +9 -9
  111. package/dist/hooks/useModal.d.ts +5 -5
  112. package/dist/hooks/useS3Uploader.d.ts +11 -11
  113. package/dist/hooks/useVoiceToText.d.ts +15 -15
  114. package/dist/{html-f95ee5dc.js → html-5586dbf6.js} +701 -656
  115. package/dist/html-5586dbf6.js.map +1 -0
  116. package/dist/{html2pdf.bundle-026397bd.js → html2pdf.bundle-33b132a6.js} +2 -2
  117. package/dist/html2pdf.bundle-33b132a6.js.map +1 -0
  118. package/dist/{html2pdf.bundle.min-49ff1939.js → html2pdf.bundle.min-f3fd0aa5.js} +2 -2
  119. package/dist/html2pdf.bundle.min-f3fd0aa5.js.map +1 -0
  120. package/dist/{index-b8db2529.js → index-b535466a.js} +2 -2
  121. package/dist/index-b535466a.js.map +1 -0
  122. package/dist/{index-b9ad2974.js → index-daaf2abc.js} +799 -350
  123. package/dist/index-daaf2abc.js.map +1 -0
  124. package/dist/{index-cea164e5.js → index-fbad5b49.js} +246 -204
  125. package/dist/index-fbad5b49.js.map +1 -0
  126. package/dist/index.d.ts +8 -8
  127. package/dist/index.js +1 -1
  128. package/dist/lib/utils.d.ts +1 -2
  129. package/dist/main.d.ts +0 -1
  130. package/dist/{markdown-1d9e6c3f.js → markdown-d513479b.js} +1836 -1789
  131. package/dist/markdown-d513479b.js.map +1 -0
  132. package/dist/nodes/ChartNode.d.ts +40 -41
  133. package/dist/nodes/CommentNode.d.ts +33 -34
  134. package/dist/nodes/CommentedTextNode.d.ts +28 -29
  135. package/dist/nodes/EmbedNode.d.ts +25 -26
  136. package/dist/nodes/FileNode.d.ts +31 -32
  137. package/dist/nodes/ImageNode.d.ts +58 -59
  138. package/dist/nodes/MentionNode.d.ts +74 -75
  139. package/dist/nodes/NotePanelNode.d.ts +30 -31
  140. package/dist/pages/ConfigurableEditor/ConfigurableEditor.d.ts +24 -25
  141. package/dist/pages/ConfigurableEditor/index.d.ts +2 -2
  142. package/dist/pages/NotFound.d.ts +2 -2
  143. package/dist/pages/RichTextEditor.d.ts +6 -6
  144. package/dist/pages/TextareaEditor.d.ts +6 -6
  145. package/dist/pages/styles.d.ts +5 -5
  146. package/dist/plugins/AIChatPlugin.d.ts +10 -11
  147. package/dist/plugins/AndroidKeyboardFixPlugin.d.ts +16 -16
  148. package/dist/plugins/AutocompletePlugin.d.ts +22 -22
  149. package/dist/plugins/CodeBlockNormalizerPlugin.d.ts +8 -8
  150. package/dist/plugins/CodeBlockSelectAllPlugin.d.ts +8 -8
  151. package/dist/plugins/CodeHighlightPlugin.d.ts +2 -3
  152. package/dist/plugins/CombinedAutocompletGrammarPlugin.d.ts +20 -21
  153. package/dist/plugins/CommentBubblePlugin.d.ts +2 -3
  154. package/dist/plugins/CommentPlugin.d.ts +6 -7
  155. package/dist/plugins/CustomHorizontalRulePlugin/CustomHorizontalRuleNode.d.ts +28 -29
  156. package/dist/plugins/CustomHorizontalRulePlugin/CustomHorizontalRulePlugin.d.ts +3 -3
  157. package/dist/plugins/CustomHorizontalRulePlugin/HorizontalRuleCustomizationDialog.d.ts +6 -7
  158. package/dist/plugins/CustomHorizontalRulePlugin/index.d.ts +3 -3
  159. package/dist/plugins/DragDropPastePlugin/index.d.ts +8 -8
  160. package/dist/plugins/EmbedPreviewPlugin/FloatingEmbedMenuPlugin.d.ts +3 -4
  161. package/dist/plugins/EmbedPreviewPlugin/index.d.ts +5 -6
  162. package/dist/plugins/FilePlugin.d.ts +7 -8
  163. package/dist/plugins/FloatingEnhanceButton/index.d.ts +3 -4
  164. package/dist/plugins/FloatingLinkEditorPlugin/index.d.ts +5 -6
  165. package/dist/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +25 -26
  166. package/dist/plugins/GrammarCheckPlugin.d.ts +1 -2
  167. package/dist/plugins/HtmlCodeViewPlugin/index.d.ts +2 -2
  168. package/dist/plugins/HtmlImportPlugin.d.ts +5 -5
  169. package/dist/plugins/HtmlSyncPlugin.d.ts +3 -3
  170. package/dist/plugins/ImagePlugin.d.ts +6 -7
  171. package/dist/plugins/LinkPlugin/index.d.ts +5 -6
  172. package/dist/plugins/LinkPreviewPlugin/index.d.ts +2 -2
  173. package/dist/plugins/LocalStoragePlugin.d.ts +6 -7
  174. package/dist/plugins/MentionsPlugin/index.d.ts +6 -7
  175. package/dist/plugins/NotePanelPlugin.d.ts +6 -7
  176. package/dist/plugins/RichTextPastePlugin/index.d.ts +15 -15
  177. package/dist/plugins/SignatureCanvasPlugin/SignatureCanvasDialog.d.ts +5 -6
  178. package/dist/plugins/SignatureCanvasPlugin/SignatureCanvasPlugin.d.ts +9 -9
  179. package/dist/plugins/SignatureCanvasPlugin/index.d.ts +2 -2
  180. package/dist/plugins/SlashCommandPlugin/index.d.ts +2 -2
  181. package/dist/plugins/TableActionMenuPlugin/index.d.ts +5 -6
  182. package/dist/plugins/TableCellResizer/index.d.ts +1 -2
  183. package/dist/plugins/TableHoverActionsPlugin/index.d.ts +4 -4
  184. package/dist/plugins/TablePlugin.d.ts +2 -3
  185. package/dist/plugins/Tableimageautoresizeplugin.d.ts +1 -1
  186. package/dist/plugins/TextEnhancePlugin.d.ts +6 -6
  187. package/dist/plugins/TreeViewPlugin.d.ts +2 -3
  188. package/dist/plugins/UsageTrackingPlugin.d.ts +15 -15
  189. package/dist/plugins/VoiceTranscriptPlugin.d.ts +21 -21
  190. package/dist/plugins/WordCountPlugin.d.ts +2 -3
  191. package/dist/{postcss-c2592f3f.js → postcss-f084f74d.js} +1378 -1357
  192. package/dist/postcss-f084f74d.js.map +1 -0
  193. package/dist/standalone-5a8c6b7e.js +2518 -0
  194. package/dist/standalone-5a8c6b7e.js.map +1 -0
  195. package/dist/styles/PlaygroundEditorTheme.d.ts +2 -3
  196. package/dist/types.d.ts +147 -148
  197. package/dist/typescript-b1005db4.js +13705 -0
  198. package/dist/typescript-b1005db4.js.map +1 -0
  199. package/dist/ui/ColorPicker.d.ts +13 -14
  200. package/dist/ui/Icons.d.ts +47 -47
  201. package/dist/ui/TextInput.d.ts +10 -11
  202. package/dist/utils/dateFormats.d.ts +33 -33
  203. package/dist/utils/debounce.d.ts +5 -6
  204. package/dist/utils/editorStyleConverter.d.ts +16 -17
  205. package/dist/utils/export.d.ts +1 -2
  206. package/dist/utils/getDOMRangeRect.d.ts +13 -13
  207. package/dist/utils/getSelectedNode.d.ts +2 -3
  208. package/dist/utils/helper.d.ts +3 -3
  209. package/dist/utils/index.d.ts +3 -4
  210. package/dist/utils/invarient.d.ts +1 -1
  211. package/dist/utils/setFloatingElemPosition.d.ts +8 -8
  212. package/dist/utils/setFloatingElemPositionForLinkEditor.d.ts +1 -1
  213. package/dist/utils/url.d.ts +9 -9
  214. package/package.json +127 -127
  215. package/dist/babel-d155920e.js.map +0 -1
  216. package/dist/estree-b1fff53b.js.map +0 -1
  217. package/dist/html-f95ee5dc.js.map +0 -1
  218. package/dist/html2pdf.bundle-026397bd.js.map +0 -1
  219. package/dist/html2pdf.bundle.min-49ff1939.js.map +0 -1
  220. package/dist/index-b8db2529.js.map +0 -1
  221. package/dist/index-b9ad2974.js.map +0 -1
  222. package/dist/index-cea164e5.js.map +0 -1
  223. package/dist/markdown-1d9e6c3f.js.map +0 -1
  224. package/dist/postcss-c2592f3f.js.map +0 -1
  225. package/dist/standalone-bcc7f37a.js +0 -2649
  226. package/dist/standalone-bcc7f37a.js.map +0 -1
  227. package/dist/typescript-48c10f50.js +0 -13601
  228. package/dist/typescript-48c10f50.js.map +0 -1
package/README.md CHANGED
@@ -1,233 +1,233 @@
1
- # CT Rich Text Editor
2
-
3
- A configurable rich text editor component with API key authentication.
4
-
5
- ## Installation
6
-
7
- ```bash
8
- npm install ct-rich-text-editor
9
- # or
10
- yarn add ct-rich-text-editor
11
- ```
12
-
13
- ## Features
14
-
15
- - Rich text editor with extensive formatting options
16
- - API key authentication
17
- - Configurable UI components (toolbar, floating menu)
18
- - HTML view option
19
- - Support for tables, images, links, and more
20
- - AI chat integration (for premium plans)
21
- - Environment-based API configuration
22
-
23
- ## Usage
24
-
25
- ### Important: Importing Styles
26
- To ensure proper styling of the editor components including tables, you must import the package's CSS:
27
-
28
- ```jsx
29
- // Import the styles in your application
30
- import 'ct-rich-text-editor/style.css';
31
- ```
32
-
33
- ### Basic Setup
34
-
35
- ```jsx
36
- import React from 'react';
37
- import {
38
- ConfigurableEditorWithAuth,
39
- EditorProvider,
40
- defaultEditorConfig
41
- } from 'ct-rich-text-editor';
42
- // Import required styles
43
- import 'ct-rich-text-editor/style.css';
44
-
45
- function App() {
46
- const apiKey = 'your-api-key'; // Replace with your actual API key
47
-
48
- // Current logged-in user for comments
49
- const currentUser = {
50
- id: 'user-123',
51
- name: 'John Doe',
52
- email: 'john@example.com',
53
- avatar: 'https://example.com/avatar.jpg' // optional
54
- };
55
-
56
- const handleContentChange = (html) => {
57
- console.log('Editor HTML content:', html);
58
- // Handle the HTML content (save to state, send to server, etc.)
59
- };
60
-
61
- return (
62
- <EditorProvider
63
- defaultFontFamilies={defaultEditorConfig.defaultFontFamilies}
64
- currentUser={currentUser}
65
- >
66
- <ConfigurableEditorWithAuth
67
- apiKey={apiKey}
68
- onChange={handleContentChange}
69
- initialContent="<p>Welcome to the editor!</p>"
70
- mentionUserList={["Alice", "Bob", "Charlie"]}
71
- onAuthSuccess={() => console.log('Authentication successful')}
72
- onAuthError={(error) => console.error('Authentication error:', error)}
73
- />
74
- </EditorProvider>
75
- );
76
- }
77
- ```
78
-
79
- ## API Reference
80
-
81
- ### EditorProvider
82
-
83
- Provides authentication and configuration context for the editor.
84
-
85
- #### Props
86
-
87
- - `children`: React nodes to render
88
- - `defaultFontFamilies`: Array of font names (optional)
89
- - `currentUser`: Current logged-in user for comments (optional) - Object with `id`, `name`, `email`, and optional `avatar`
90
-
91
- ### ConfigurableEditorWithAuth
92
-
93
- The main editor component with authentication.
94
-
95
- #### Props
96
-
97
- - `apiKey`: Your API key for authentication (required)
98
- - `initialContent`: Initial HTML content for the editor (optional) - string
99
- - `onChange`: Callback function when editor content changes (optional) - receives HTML string
100
- - `defaultFontFamilies`: Array of font names for the font selector (optional)
101
- - `mentionUserList`: Array of usernames for mention functionality (optional) - Array of strings like `["Alice", "Bob", "Charlie"]`
102
- - `onAuthSuccess`: Callback function when authentication is successful (optional)
103
- - `onAuthError`: Callback function when authentication fails (optional)
104
- - `customVerifyKey`: Custom function to verify API key (optional)
105
-
106
- ## Examples
107
-
108
- ### Basic Editor with Authentication
109
-
110
- ```jsx
111
- import React from 'react';
112
- import { ConfigurableEditorWithAuth, EditorProvider } from 'ct-rich-text-editor';
113
- import 'ct-rich-text-editor/style.css';
114
-
115
- function App() {
116
- return (
117
- <EditorProvider>
118
- <ConfigurableEditorWithAuth
119
- apiKey="your-api-key"
120
- onAuthSuccess={() => console.log('Authenticated')}
121
- onAuthError={(error) => console.error(error)}
122
- />
123
- </EditorProvider>
124
- );
125
- }
126
- ```
127
-
128
- ### Editor with Content Handling
129
-
130
- ```jsx
131
- import React, { useState } from 'react';
132
- import { ConfigurableEditorWithAuth, EditorProvider } from 'ct-rich-text-editor';
133
- import 'ct-rich-text-editor/style.css';
134
-
135
- function App() {
136
- const [editorContent, setEditorContent] = useState('');
137
-
138
- // Current user (typically from your auth system)
139
- const currentUser = {
140
- id: 'user-456',
141
- name: 'Jane Smith',
142
- email: 'jane@example.com'
143
- };
144
-
145
- const handleContentChange = (html) => {
146
- setEditorContent(html);
147
- console.log('Current content:', html);
148
- // You can also save to localStorage, send to API, etc.
149
- };
150
-
151
- const handleSave = () => {
152
- // Save the HTML content to your backend or localStorage
153
- localStorage.setItem('saved-content', editorContent);
154
- console.log('Content saved!');
155
- };
156
-
157
- const loadSavedContent = () => {
158
- const saved = '<p>Start writing your content here...</p>';
159
- return saved;
160
- };
161
-
162
- return (
163
- <div>
164
- <EditorProvider currentUser={currentUser}>
165
- <ConfigurableEditorWithAuth
166
- apiKey="your-api-key"
167
- initialContent={loadSavedContent()}
168
- onChange={handleContentChange}
169
- defaultFontFamilies={['Arial', 'Helvetica', 'Times New Roman']}
170
- mentionUserList={['Alice', 'Bob', 'Charlie']}
171
- onAuthSuccess={() => console.log('Ready to edit!')}
172
- onAuthError={(error) => console.error('Auth failed:', error)}
173
- />
174
- </EditorProvider>
175
-
176
- <button onClick={handleSave} style={{ marginTop: '10px', padding: '10px' }}>
177
- Save Content
178
- </button>
179
-
180
- <div style={{ marginTop: '20px', padding: '10px', background: '#f5f5f5' }}>
181
- <h3>Current HTML Content:</h3>
182
- <pre>{editorContent}</pre>
183
- </div>
184
- </div>
185
- );
186
- }
187
- ```
188
-
189
- ### Custom API Key Verification
190
-
191
- ```jsx
192
- import React from 'react';
193
- import { ConfigurableEditorWithAuth, EditorProvider } from 'ct-rich-text-editor';
194
- import 'ct-rich-text-editor/style.css';
195
-
196
- function App() {
197
- const customVerifyKey = async (apiKey) => {
198
- try {
199
- const response = await fetch('/api/verify-key', {
200
- method: 'POST',
201
- headers: { 'Content-Type': 'application/json' },
202
- body: JSON.stringify({ apiKey })
203
- });
204
-
205
- const data = await response.json();
206
-
207
- return {
208
- success: data.valid,
209
- message: data.message || 'API key verified'
210
- };
211
- } catch (error) {
212
- return {
213
- success: false,
214
- message: 'Failed to verify API key'
215
- };
216
- }
217
- };
218
-
219
- return (
220
- <EditorProvider>
221
- <ConfigurableEditorWithAuth
222
- apiKey="your-api-key"
223
- customVerifyKey={customVerifyKey}
224
- onChange={(html) => console.log('Content changed:', html)}
225
- />
226
- </EditorProvider>
227
- );
228
- }
229
- ```
230
-
231
- ## License
232
-
233
- This project is licensed under the MIT License - see the LICENSE file for details.
1
+ # CT Rich Text Editor
2
+
3
+ A configurable rich text editor component with API key authentication.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install ct-rich-text-editor
9
+ # or
10
+ yarn add ct-rich-text-editor
11
+ ```
12
+
13
+ ## Features
14
+
15
+ - Rich text editor with extensive formatting options
16
+ - API key authentication
17
+ - Configurable UI components (toolbar, floating menu)
18
+ - HTML view option
19
+ - Support for tables, images, links, and more
20
+ - AI chat integration (for premium plans)
21
+ - Environment-based API configuration
22
+
23
+ ## Usage
24
+
25
+ ### Important: Importing Styles
26
+ To ensure proper styling of the editor components including tables, you must import the package's CSS:
27
+
28
+ ```jsx
29
+ // Import the styles in your application
30
+ import 'ct-rich-text-editor/style.css';
31
+ ```
32
+
33
+ ### Basic Setup
34
+
35
+ ```jsx
36
+ import React from 'react';
37
+ import {
38
+ ConfigurableEditorWithAuth,
39
+ EditorProvider,
40
+ defaultEditorConfig
41
+ } from 'ct-rich-text-editor';
42
+ // Import required styles
43
+ import 'ct-rich-text-editor/style.css';
44
+
45
+ function App() {
46
+ const apiKey = 'your-api-key'; // Replace with your actual API key
47
+
48
+ // Current logged-in user for comments
49
+ const currentUser = {
50
+ id: 'user-123',
51
+ name: 'John Doe',
52
+ email: 'john@example.com',
53
+ avatar: 'https://example.com/avatar.jpg' // optional
54
+ };
55
+
56
+ const handleContentChange = (html) => {
57
+ console.log('Editor HTML content:', html);
58
+ // Handle the HTML content (save to state, send to server, etc.)
59
+ };
60
+
61
+ return (
62
+ <EditorProvider
63
+ defaultFontFamilies={defaultEditorConfig.defaultFontFamilies}
64
+ currentUser={currentUser}
65
+ >
66
+ <ConfigurableEditorWithAuth
67
+ apiKey={apiKey}
68
+ onChange={handleContentChange}
69
+ initialContent="<p>Welcome to the editor!</p>"
70
+ mentionUserList={["Alice", "Bob", "Charlie"]}
71
+ onAuthSuccess={() => console.log('Authentication successful')}
72
+ onAuthError={(error) => console.error('Authentication error:', error)}
73
+ />
74
+ </EditorProvider>
75
+ );
76
+ }
77
+ ```
78
+
79
+ ## API Reference
80
+
81
+ ### EditorProvider
82
+
83
+ Provides authentication and configuration context for the editor.
84
+
85
+ #### Props
86
+
87
+ - `children`: React nodes to render
88
+ - `defaultFontFamilies`: Array of font names (optional)
89
+ - `currentUser`: Current logged-in user for comments (optional) - Object with `id`, `name`, `email`, and optional `avatar`
90
+
91
+ ### ConfigurableEditorWithAuth
92
+
93
+ The main editor component with authentication.
94
+
95
+ #### Props
96
+
97
+ - `apiKey`: Your API key for authentication (required)
98
+ - `initialContent`: Initial HTML content for the editor (optional) - string
99
+ - `onChange`: Callback function when editor content changes (optional) - receives HTML string
100
+ - `defaultFontFamilies`: Array of font names for the font selector (optional)
101
+ - `mentionUserList`: Array of usernames for mention functionality (optional) - Array of strings like `["Alice", "Bob", "Charlie"]`
102
+ - `onAuthSuccess`: Callback function when authentication is successful (optional)
103
+ - `onAuthError`: Callback function when authentication fails (optional)
104
+ - `customVerifyKey`: Custom function to verify API key (optional)
105
+
106
+ ## Examples
107
+
108
+ ### Basic Editor with Authentication
109
+
110
+ ```jsx
111
+ import React from 'react';
112
+ import { ConfigurableEditorWithAuth, EditorProvider } from 'ct-rich-text-editor';
113
+ import 'ct-rich-text-editor/style.css';
114
+
115
+ function App() {
116
+ return (
117
+ <EditorProvider>
118
+ <ConfigurableEditorWithAuth
119
+ apiKey="your-api-key"
120
+ onAuthSuccess={() => console.log('Authenticated')}
121
+ onAuthError={(error) => console.error(error)}
122
+ />
123
+ </EditorProvider>
124
+ );
125
+ }
126
+ ```
127
+
128
+ ### Editor with Content Handling
129
+
130
+ ```jsx
131
+ import React, { useState } from 'react';
132
+ import { ConfigurableEditorWithAuth, EditorProvider } from 'ct-rich-text-editor';
133
+ import 'ct-rich-text-editor/style.css';
134
+
135
+ function App() {
136
+ const [editorContent, setEditorContent] = useState('');
137
+
138
+ // Current user (typically from your auth system)
139
+ const currentUser = {
140
+ id: 'user-456',
141
+ name: 'Jane Smith',
142
+ email: 'jane@example.com'
143
+ };
144
+
145
+ const handleContentChange = (html) => {
146
+ setEditorContent(html);
147
+ console.log('Current content:', html);
148
+ // You can also save to localStorage, send to API, etc.
149
+ };
150
+
151
+ const handleSave = () => {
152
+ // Save the HTML content to your backend or localStorage
153
+ localStorage.setItem('saved-content', editorContent);
154
+ console.log('Content saved!');
155
+ };
156
+
157
+ const loadSavedContent = () => {
158
+ const saved = '<p>Start writing your content here...</p>';
159
+ return saved;
160
+ };
161
+
162
+ return (
163
+ <div>
164
+ <EditorProvider currentUser={currentUser}>
165
+ <ConfigurableEditorWithAuth
166
+ apiKey="your-api-key"
167
+ initialContent={loadSavedContent()}
168
+ onChange={handleContentChange}
169
+ defaultFontFamilies={['Arial', 'Helvetica', 'Times New Roman']}
170
+ mentionUserList={['Alice', 'Bob', 'Charlie']}
171
+ onAuthSuccess={() => console.log('Ready to edit!')}
172
+ onAuthError={(error) => console.error('Auth failed:', error)}
173
+ />
174
+ </EditorProvider>
175
+
176
+ <button onClick={handleSave} style={{ marginTop: '10px', padding: '10px' }}>
177
+ Save Content
178
+ </button>
179
+
180
+ <div style={{ marginTop: '20px', padding: '10px', background: '#f5f5f5' }}>
181
+ <h3>Current HTML Content:</h3>
182
+ <pre>{editorContent}</pre>
183
+ </div>
184
+ </div>
185
+ );
186
+ }
187
+ ```
188
+
189
+ ### Custom API Key Verification
190
+
191
+ ```jsx
192
+ import React from 'react';
193
+ import { ConfigurableEditorWithAuth, EditorProvider } from 'ct-rich-text-editor';
194
+ import 'ct-rich-text-editor/style.css';
195
+
196
+ function App() {
197
+ const customVerifyKey = async (apiKey) => {
198
+ try {
199
+ const response = await fetch('/api/verify-key', {
200
+ method: 'POST',
201
+ headers: { 'Content-Type': 'application/json' },
202
+ body: JSON.stringify({ apiKey })
203
+ });
204
+
205
+ const data = await response.json();
206
+
207
+ return {
208
+ success: data.valid,
209
+ message: data.message || 'API key verified'
210
+ };
211
+ } catch (error) {
212
+ return {
213
+ success: false,
214
+ message: 'Failed to verify API key'
215
+ };
216
+ }
217
+ };
218
+
219
+ return (
220
+ <EditorProvider>
221
+ <ConfigurableEditorWithAuth
222
+ apiKey="your-api-key"
223
+ customVerifyKey={customVerifyKey}
224
+ onChange={(html) => console.log('Content changed:', html)}
225
+ />
226
+ </EditorProvider>
227
+ );
228
+ }
229
+ ```
230
+
231
+ ## License
232
+
233
+ This project is licensed under the MIT License - see the LICENSE file for details.
package/dist/App.d.ts CHANGED
@@ -1,4 +1,3 @@
1
1
  import { FC } from 'react';
2
-
3
- declare const App: FC;
4
- export default App;
2
+ declare const App: FC;
3
+ export default App;
@@ -1,28 +1,27 @@
1
1
  import { EditorConfigTypes } from '../types';
2
-
3
- export interface CurrentUser {
4
- id: string;
5
- name: string;
6
- email?: string;
7
- avatar?: string;
8
- }
9
- interface EditorContextType {
10
- isAuthenticated: boolean;
11
- isLoading: boolean;
12
- error: string | null;
13
- editorConfig: EditorConfigTypes | null;
14
- projectName: string | null;
15
- isPaidPlan: boolean;
16
- apiKey: string | null;
17
- currentUser: CurrentUser | null;
18
- verifyKey: (apiKey: string) => Promise<void>;
19
- }
20
- export declare const useEditor: () => EditorContextType;
21
- interface EditorProviderProps {
22
- children: React.ReactNode;
23
- defaultFontFamilies?: string[];
24
- mentionUserList?: string[];
25
- currentUser?: CurrentUser;
26
- }
27
- export declare const EditorProvider: React.FC<EditorProviderProps>;
28
- export {};
2
+ export interface CurrentUser {
3
+ id: string;
4
+ name: string;
5
+ email?: string;
6
+ avatar?: string;
7
+ }
8
+ interface EditorContextType {
9
+ isAuthenticated: boolean;
10
+ isLoading: boolean;
11
+ error: string | null;
12
+ editorConfig: EditorConfigTypes | null;
13
+ projectName: string | null;
14
+ isPaidPlan: boolean;
15
+ apiKey: string | null;
16
+ currentUser: CurrentUser | null;
17
+ verifyKey: (apiKey: string) => Promise<void>;
18
+ }
19
+ export declare const useEditor: () => EditorContextType;
20
+ interface EditorProviderProps {
21
+ children: React.ReactNode;
22
+ defaultFontFamilies?: string[];
23
+ mentionUserList?: string[];
24
+ currentUser?: CurrentUser;
25
+ }
26
+ export declare const EditorProvider: React.FC<EditorProviderProps>;
27
+ export {};
@@ -1,7 +1,6 @@
1
1
  import { ReactNode } from 'react';
2
-
3
- interface LexicalProviderProps {
4
- children: ReactNode;
5
- }
6
- declare const LexicalProvider: ({ children }: LexicalProviderProps) => import("react/jsx-runtime").JSX.Element;
7
- export default LexicalProvider;
2
+ interface LexicalProviderProps {
3
+ children: ReactNode;
4
+ }
5
+ declare const LexicalProvider: ({ children }: LexicalProviderProps) => import("react/jsx-runtime").JSX.Element;
6
+ export default LexicalProvider;
@@ -1,31 +1,31 @@
1
- type AiStreamType = {
2
- content: string;
3
- onMessage: (message: string) => void;
4
- };
5
- export declare const AiStream: ({ content, onMessage }: AiStreamType) => Promise<void>;
6
- export declare const AiJsonResponse: ({ content }: {
7
- content: string;
8
- }) => Promise<any>;
9
- export declare const AiImageResponse: ({ content }: {
10
- content: string;
11
- }) => Promise<any>;
12
- export declare const AiEditorAction: ({ content, provider, apiKey, }: {
13
- content: string;
14
- provider?: string | undefined;
15
- apiKey?: string | undefined;
16
- }) => Promise<any>;
17
- export declare const AiTextEnhance: ({ content, apiKey }: {
18
- content: string;
19
- apiKey?: string | undefined;
20
- }) => Promise<any>;
21
- export declare const GetCreditsInfo: ({ apiKey }: {
22
- apiKey?: string | undefined;
23
- }) => Promise<any>;
24
- export declare const GetUserInfo: ({ apiKey }: {
25
- apiKey?: string | undefined;
26
- }) => Promise<any>;
27
- export declare const AiTextTransform: ({ content, apiKey }: {
28
- content: string;
29
- apiKey?: string | undefined;
30
- }) => Promise<any>;
31
- export {};
1
+ type AiStreamType = {
2
+ content: string;
3
+ onMessage: (message: string) => void;
4
+ };
5
+ export declare const AiStream: ({ content, onMessage }: AiStreamType) => Promise<void>;
6
+ export declare const AiJsonResponse: ({ content }: {
7
+ content: string;
8
+ }) => Promise<any>;
9
+ export declare const AiImageResponse: ({ content }: {
10
+ content: string;
11
+ }) => Promise<any>;
12
+ export declare const AiEditorAction: ({ content, provider, apiKey, }: {
13
+ content: string;
14
+ provider?: string | undefined;
15
+ apiKey?: string | undefined;
16
+ }) => Promise<any>;
17
+ export declare const AiTextEnhance: ({ content, apiKey }: {
18
+ content: string;
19
+ apiKey?: string | undefined;
20
+ }) => Promise<any>;
21
+ export declare const GetCreditsInfo: ({ apiKey }: {
22
+ apiKey?: string | undefined;
23
+ }) => Promise<any>;
24
+ export declare const GetUserInfo: ({ apiKey }: {
25
+ apiKey?: string | undefined;
26
+ }) => Promise<any>;
27
+ export declare const AiTextTransform: ({ content, apiKey }: {
28
+ content: string;
29
+ apiKey?: string | undefined;
30
+ }) => Promise<any>;
31
+ export {};