ct-rich-text-editor 1.3.21 → 1.3.23

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 +3 -2
  3. package/dist/Provider/EditorProvider.d.ts +27 -26
  4. package/dist/Provider/LexicalProvider.d.ts +6 -5
  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 +2 -1
  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 +5211 -5194
  12. package/dist/{babel-d3085146.js → babel-d155920e.js} +3278 -3551
  13. package/dist/babel-d155920e.js.map +1 -0
  14. package/dist/components/AiPlugin/index.d.ts +6 -6
  15. package/dist/components/AlignMenu/AlignMenu.d.ts +9 -8
  16. package/dist/components/AlignMenu/AlignMenuDrop.d.ts +3 -2
  17. package/dist/components/AlignMenu/index.d.ts +1 -1
  18. package/dist/components/AutoExpandingDemo.d.ts +6 -5
  19. package/dist/components/BlockFormatMenu/BlockFormatMenu.d.ts +3 -2
  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 +9 -8
  23. package/dist/components/ChartInsertDialog.d.ts +8 -7
  24. package/dist/components/CodeActionMenuPlugin/components/CopyButton/index.d.ts +7 -6
  25. package/dist/components/CodeActionMenuPlugin/components/PrettierButton/index.d.ts +9 -8
  26. package/dist/components/CodeActionMenuPlugin/index.d.ts +5 -4
  27. package/dist/components/CodeActionMenuPlugin/utils.d.ts +1 -1
  28. package/dist/components/ColorPicker/ColorPicker.d.ts +3 -2
  29. package/dist/components/ColorPicker/index.d.ts +1 -1
  30. package/dist/components/CommentSidebar/CommentSidebar.d.ts +8 -7
  31. package/dist/components/CommentSidebar/index.d.ts +1 -1
  32. package/dist/components/CommentToggle/CommentToggle.d.ts +8 -7
  33. package/dist/components/CommentToggle/index.d.ts +1 -1
  34. package/dist/components/CommentView/CommentView.d.ts +9 -8
  35. package/dist/components/CommentView/index.d.ts +1 -1
  36. package/dist/components/ConfigurableEditorWithAuth.d.ts +13 -12
  37. package/dist/components/DatePicker/DatePickerWidget.d.ts +7 -6
  38. package/dist/components/EmojiPickerWidget/EmojiPickerWidget.d.ts +3 -2
  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 +5 -4
  43. package/dist/components/FileView/index.d.ts +9 -8
  44. package/dist/components/FontFamilySelect/FontFamilyMenu.d.ts +7 -6
  45. package/dist/components/FontSizePicker/FontSizeControl.d.ts +3 -2
  46. package/dist/components/FormatTextMenu/FormatTextMenu.d.ts +3 -2
  47. package/dist/components/FormatTextMenu/FormatTextMenuDrop.d.ts +3 -2
  48. package/dist/components/FormatTextMenu/index.d.ts +1 -1
  49. package/dist/components/HighlightColorPicker/HighlightColorPicker.d.ts +7 -6
  50. package/dist/components/HtmlViewDisplay.d.ts +3 -2
  51. package/dist/components/ImageComparisonDialog/index.d.ts +11 -10
  52. package/dist/components/ImageGenerationDialog/ImageGenerationManager.d.ts +11 -10
  53. package/dist/components/ImageGenerationDialog/index.d.ts +11 -10
  54. package/dist/components/ImageInsertTest.d.ts +3 -2
  55. package/dist/components/ImageView/ImageDialog/ImageUploadDialogBody.d.ts +9 -8
  56. package/dist/components/ImageView/ImageDialog/index.d.ts +6 -5
  57. package/dist/components/ImageView/ImageResizer.d.ts +16 -15
  58. package/dist/components/ImageView/index.d.ts +16 -15
  59. package/dist/components/InsertMenu/InsertMenu.d.ts +9 -8
  60. package/dist/components/InsertMenu/InsertMenuDrop.d.ts +9 -8
  61. package/dist/components/InsertMenu/index.d.ts +1 -1
  62. package/dist/components/LanguageSelectorDialog/index.d.ts +8 -7
  63. package/dist/components/NotePanelMenu/NotePanelMenu.d.ts +6 -5
  64. package/dist/components/NotePanelMenu/index.d.ts +1 -1
  65. package/dist/components/NotePanelView/NotePanelView.d.ts +9 -8
  66. package/dist/components/NotePanelView/index.d.ts +1 -1
  67. package/dist/components/Placeholder/Placeholder.d.ts +3 -2
  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 +6 -5
  72. package/dist/components/TableColorPicker/index.d.ts +8 -7
  73. package/dist/components/TableModal/TableModal.d.ts +10 -9
  74. package/dist/components/TextEnhanceDialog/index.d.ts +10 -9
  75. package/dist/components/ToneAdjustDialog/index.d.ts +8 -7
  76. package/dist/components/Toolbar/Toolbar.d.ts +3 -2
  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 +9 -8
  81. package/dist/components/ui/button.d.ts +11 -10
  82. package/dist/components/ui/calendar.d.ts +8 -7
  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 +22 -21
  98. package/dist/context/CommentContext.d.ts +43 -42
  99. package/dist/context/HtmlViewContext.d.ts +17 -16
  100. package/dist/context/ToolbarContext.d.ts +56 -55
  101. package/dist/editorConfig.d.ts +48 -48
  102. package/dist/{estree-164983f6.js → estree-b1fff53b.js} +1778 -1763
  103. package/dist/estree-b1fff53b.js.map +1 -0
  104. package/dist/hooks/useAutoExpandingHeight.d.ts +15 -15
  105. package/dist/hooks/useBlockFormat.d.ts +17 -16
  106. package/dist/hooks/useColorPicker.d.ts +6 -6
  107. package/dist/hooks/useCustomCommands.d.ts +3 -2
  108. package/dist/hooks/useDebounce.d.ts +1 -1
  109. package/dist/hooks/useEditorToolbar.d.ts +10 -9
  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-5586dbf6.js → html-f95ee5dc.js} +656 -701
  115. package/dist/html-f95ee5dc.js.map +1 -0
  116. package/dist/{html2pdf.bundle-0b180070.js → html2pdf.bundle-026397bd.js} +2 -2
  117. package/dist/html2pdf.bundle-026397bd.js.map +1 -0
  118. package/dist/{html2pdf.bundle.min-08b31c1f.js → html2pdf.bundle.min-49ff1939.js} +2 -2
  119. package/dist/html2pdf.bundle.min-49ff1939.js.map +1 -0
  120. package/dist/{index-68135c09.js → index-b8db2529.js} +2 -2
  121. package/dist/index-b8db2529.js.map +1 -0
  122. package/dist/{index-6360d552.js → index-b9ad2974.js} +469 -825
  123. package/dist/index-b9ad2974.js.map +1 -0
  124. package/dist/{index-8bcb5b47.js → index-cea164e5.js} +4 -4
  125. package/dist/index-cea164e5.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 +2 -1
  129. package/dist/main.d.ts +1 -0
  130. package/dist/{markdown-d513479b.js → markdown-1d9e6c3f.js} +1789 -1836
  131. package/dist/markdown-1d9e6c3f.js.map +1 -0
  132. package/dist/nodes/ChartNode.d.ts +41 -40
  133. package/dist/nodes/CommentNode.d.ts +34 -33
  134. package/dist/nodes/CommentedTextNode.d.ts +29 -28
  135. package/dist/nodes/EmbedNode.d.ts +26 -25
  136. package/dist/nodes/FileNode.d.ts +32 -31
  137. package/dist/nodes/ImageNode.d.ts +59 -58
  138. package/dist/nodes/MentionNode.d.ts +75 -74
  139. package/dist/nodes/NotePanelNode.d.ts +31 -30
  140. package/dist/pages/ConfigurableEditor/ConfigurableEditor.d.ts +25 -24
  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 +11 -10
  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 +3 -2
  152. package/dist/plugins/CombinedAutocompletGrammarPlugin.d.ts +21 -20
  153. package/dist/plugins/CommentBubblePlugin.d.ts +3 -2
  154. package/dist/plugins/CommentPlugin.d.ts +7 -6
  155. package/dist/plugins/CustomHorizontalRulePlugin/CustomHorizontalRuleNode.d.ts +29 -28
  156. package/dist/plugins/CustomHorizontalRulePlugin/CustomHorizontalRulePlugin.d.ts +3 -3
  157. package/dist/plugins/CustomHorizontalRulePlugin/HorizontalRuleCustomizationDialog.d.ts +7 -6
  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 +4 -3
  161. package/dist/plugins/EmbedPreviewPlugin/index.d.ts +6 -5
  162. package/dist/plugins/FilePlugin.d.ts +8 -7
  163. package/dist/plugins/FloatingEnhanceButton/index.d.ts +4 -3
  164. package/dist/plugins/FloatingLinkEditorPlugin/index.d.ts +6 -5
  165. package/dist/plugins/FloatingTextFormatToolbarPlugin/index.d.ts +26 -25
  166. package/dist/plugins/GrammarCheckPlugin.d.ts +2 -1
  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 +7 -6
  171. package/dist/plugins/LinkPlugin/index.d.ts +6 -5
  172. package/dist/plugins/LinkPreviewPlugin/index.d.ts +2 -2
  173. package/dist/plugins/LocalStoragePlugin.d.ts +7 -6
  174. package/dist/plugins/MentionsPlugin/index.d.ts +7 -6
  175. package/dist/plugins/NotePanelPlugin.d.ts +7 -6
  176. package/dist/plugins/RichTextPastePlugin/index.d.ts +15 -15
  177. package/dist/plugins/SignatureCanvasPlugin/SignatureCanvasDialog.d.ts +6 -5
  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 +6 -5
  182. package/dist/plugins/TableCellResizer/index.d.ts +2 -1
  183. package/dist/plugins/TableHoverActionsPlugin/index.d.ts +4 -4
  184. package/dist/plugins/TablePlugin.d.ts +3 -2
  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 +3 -2
  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 +3 -2
  191. package/dist/{postcss-f084f74d.js → postcss-c2592f3f.js} +1357 -1378
  192. package/dist/postcss-c2592f3f.js.map +1 -0
  193. package/dist/standalone-bcc7f37a.js +2649 -0
  194. package/dist/standalone-bcc7f37a.js.map +1 -0
  195. package/dist/styles/PlaygroundEditorTheme.d.ts +3 -2
  196. package/dist/types.d.ts +148 -147
  197. package/dist/typescript-48c10f50.js +13601 -0
  198. package/dist/typescript-48c10f50.js.map +1 -0
  199. package/dist/ui/ColorPicker.d.ts +14 -13
  200. package/dist/ui/Icons.d.ts +47 -47
  201. package/dist/ui/TextInput.d.ts +11 -10
  202. package/dist/utils/dateFormats.d.ts +33 -33
  203. package/dist/utils/debounce.d.ts +6 -5
  204. package/dist/utils/editorStyleConverter.d.ts +17 -16
  205. package/dist/utils/export.d.ts +2 -1
  206. package/dist/utils/getDOMRangeRect.d.ts +13 -13
  207. package/dist/utils/getSelectedNode.d.ts +3 -2
  208. package/dist/utils/helper.d.ts +3 -3
  209. package/dist/utils/index.d.ts +4 -3
  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-d3085146.js.map +0 -1
  216. package/dist/estree-164983f6.js.map +0 -1
  217. package/dist/html-5586dbf6.js.map +0 -1
  218. package/dist/html2pdf.bundle-0b180070.js.map +0 -1
  219. package/dist/html2pdf.bundle.min-08b31c1f.js.map +0 -1
  220. package/dist/index-6360d552.js.map +0 -1
  221. package/dist/index-68135c09.js.map +0 -1
  222. package/dist/index-8bcb5b47.js.map +0 -1
  223. package/dist/markdown-d513479b.js.map +0 -1
  224. package/dist/postcss-f084f74d.js.map +0 -1
  225. package/dist/standalone-5a8c6b7e.js +0 -2518
  226. package/dist/standalone-5a8c6b7e.js.map +0 -1
  227. package/dist/typescript-b1005db4.js +0 -13705
  228. package/dist/typescript-b1005db4.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
3
3
  import { $getNodeByKey } from "lexical";
4
- import { a as createLucideIcon, D as Download, T as Trash2, $ as $isFileNode } from "./index-6360d552.js";
4
+ import { a as createLucideIcon, D as Download, T as Trash2, $ as $isFileNode } from "./index-b9ad2974.js";
5
5
  import "react";
6
6
  import "axios";
7
7
  import "@emotion/styled";
@@ -202,4 +202,4 @@ const FileView = ({ src, fileName, fileSize, nodeKey }) => {
202
202
  export {
203
203
  FileView as default
204
204
  };
205
- //# sourceMappingURL=index-68135c09.js.map
205
+ //# sourceMappingURL=index-b8db2529.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-b8db2529.js","sources":["../../../node_modules/.pnpm/lucide-react@0.344.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file-archive.js","../../../node_modules/.pnpm/lucide-react@0.344.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file-text.js","../../../node_modules/.pnpm/lucide-react@0.344.0_react@18.3.1/node_modules/lucide-react/dist/esm/icons/file.js","../src/components/FileView/index.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.344.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileArchive = createLucideIcon(\"FileArchive\", [\n [\"path\", { d: \"M16 22h2a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v18\", key: \"1oywqq\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"circle\", { cx: \"10\", cy: \"20\", r: \"2\", key: \"1xzdoj\" }],\n [\"path\", { d: \"M10 7V6\", key: \"dljcrl\" }],\n [\"path\", { d: \"M10 12v-1\", key: \"v7bkov\" }],\n [\"path\", { d: \"M10 18v-2\", key: \"1cjy8d\" }]\n]);\n\nexport { FileArchive as default };\n//# sourceMappingURL=file-archive.js.map\n","/**\n * @license lucide-react v0.344.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst FileText = createLucideIcon(\"FileText\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }],\n [\"path\", { d: \"M10 9H8\", key: \"b1mrlr\" }],\n [\"path\", { d: \"M16 13H8\", key: \"t4e002\" }],\n [\"path\", { d: \"M16 17H8\", key: \"z1uh3a\" }]\n]);\n\nexport { FileText as default };\n//# sourceMappingURL=file-text.js.map\n","/**\n * @license lucide-react v0.344.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst File = createLucideIcon(\"File\", [\n [\"path\", { d: \"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z\", key: \"1rqfz7\" }],\n [\"path\", { d: \"M14 2v4a2 2 0 0 0 2 2h4\", key: \"tnqrlb\" }]\n]);\n\nexport { File as default };\n//# sourceMappingURL=file.js.map\n","import { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\r\nimport { $getNodeByKey } from \"lexical\";\r\nimport { Download, File as FileIcon, FileArchive, FileText, Trash2 } from \"lucide-react\";\r\nimport React from \"react\";\r\nimport { $isFileNode } from \"src/nodes/FileNode\";\r\n\r\ninterface FileViewProps {\r\n src: string;\r\n fileName: string;\r\n fileSize?: number;\r\n nodeKey: string;\r\n}\r\n\r\n// Helper to format file size\r\nconst formatFileSize = (bytes?: number): string => {\r\n if (!bytes) return \"\";\r\n if (bytes < 1024) return `${bytes} B`;\r\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`;\r\n if (bytes < 1024 * 1024 * 1024) return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\r\n return `${(bytes / (1024 * 1024 * 1024)).toFixed(1)} GB`;\r\n};\r\n\r\n// Helper to get file extension\r\nconst getFileExtension = (fileName: string): string => {\r\n const parts = fileName.split(\".\");\r\n return parts.length > 1 ? parts[parts.length - 1].toLowerCase() : \"\";\r\n};\r\n\r\n// Helper to get icon based on file type\r\nconst getFileIcon = (fileName: string) => {\r\n const ext = getFileExtension(fileName);\r\n\r\n if ([\"pdf\", \"doc\", \"docx\", \"txt\", \"odt\"].includes(ext)) {\r\n return <FileText className=\"cteditor-w-8 cteditor-h-8 cteditor-text-blue-500\" />;\r\n }\r\n if ([\"zip\", \"rar\", \"7z\", \"tar\", \"gz\"].includes(ext)) {\r\n return <FileArchive className=\"cteditor-w-8 cteditor-h-8 cteditor-text-orange-500\" />;\r\n }\r\n return <FileIcon className=\"cteditor-w-8 cteditor-h-8 cteditor-text-gray-500\" />;\r\n};\r\n\r\nconst FileView: React.FC<FileViewProps> = ({ src, fileName, fileSize, nodeKey }) => {\r\n const [editor] = useLexicalComposerContext();\r\n\r\n // Validate props to prevent errors\r\n if (!src || !fileName) {\r\n console.error('FileView: Missing required props', { src, fileName, fileSize, nodeKey });\r\n return (\r\n <div className=\"cteditor-inline-flex cteditor-items-center cteditor-gap-3 cteditor-px-4 cteditor-py-3 cteditor-my-2 cteditor-border cteditor-border-destructive cteditor-rounded-lg cteditor-bg-destructive/10\">\r\n <div className=\"cteditor-text-sm cteditor-text-destructive\">\r\n Error loading file\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n const handleDownload = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n try {\r\n // Check if it's a data URL (base64)\r\n if (src.startsWith('data:')) {\r\n // Convert data URL to blob for proper download\r\n const arr = src.split(',');\r\n const mimeMatch = arr[0].match(/:(.*?);/);\r\n const mime = mimeMatch ? mimeMatch[1] : 'application/octet-stream';\r\n const bstr = atob(arr[1]);\r\n let n = bstr.length;\r\n const u8arr = new Uint8Array(n);\r\n\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n\r\n const blob = new Blob([u8arr], { type: mime });\r\n const blobUrl = URL.createObjectURL(blob);\r\n\r\n const link = document.createElement(\"a\");\r\n link.href = blobUrl;\r\n link.download = fileName;\r\n link.style.display = \"none\";\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n\r\n // Clean up the blob URL after a delay\r\n setTimeout(() => URL.revokeObjectURL(blobUrl), 100);\r\n } else {\r\n // Regular URL - just download directly\r\n const link = document.createElement(\"a\");\r\n link.href = src;\r\n link.download = fileName;\r\n link.style.display = \"none\";\r\n link.target = \"_blank\";\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n } catch (error) {\r\n console.error(\"Error downloading file:\", error);\r\n // Fallback: try to open in new tab\r\n window.open(src, '_blank');\r\n }\r\n };\r\n\r\n const handleDeleteFile = (e: React.MouseEvent) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n editor.update(() => {\r\n const node = $getNodeByKey(nodeKey);\r\n if ($isFileNode(node)) {\r\n node.remove();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <div\r\n className=\"cteditor-inline-flex cteditor-items-center cteditor-gap-3 cteditor-py-1 cteditor-px-2 cteditor-my-2 cteditor-border cteditor-border-border cteditor-rounded-lg cteditor-bg-background hover:cteditor-bg-accent/50 cteditor-transition-colors cteditor-cursor-pointer cteditor-max-w-md\"\r\n onClick={handleDownload}\r\n role=\"button\"\r\n tabIndex={0}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n handleDownload(e as any);\r\n }\r\n }}\r\n >\r\n {/* File Icon */}\r\n <div className=\"cteditor-flex-shrink-0 *:cteditor-size-5\">\r\n {getFileIcon(fileName)}\r\n </div>\r\n\r\n {/* File Info */}\r\n <div className=\"cteditor-flex-1 cteditor-min-w-0\">\r\n <div className=\"cteditor-font-medium cteditor-text-xs cteditor-text-foreground cteditor-truncate\">\r\n {fileName}\r\n </div>\r\n {fileSize && (\r\n <div className=\"cteditor-text-xs cteditor-text-muted-foreground\">\r\n {formatFileSize(fileSize)}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Action Buttons - Download and Delete */}\r\n <div className=\"cteditor-flex cteditor-gap-1 cteditor-flex-shrink-0\">\r\n <button\r\n onClick={handleDownload}\r\n className=\"cteditor-p-1 cteditor-rounded-md hover:cteditor-bg-accent cteditor-transition-colors\"\r\n aria-label=\"Download file\"\r\n title=\"Download file\"\r\n >\r\n <Download className=\"cteditor-w-4 cteditor-h-4 cteditor-text-muted-foreground\" />\r\n </button>\r\n <button\r\n onClick={handleDeleteFile}\r\n className=\"cteditor-p-1 cteditor-rounded-md hover:cteditor-bg-destructive hover:cteditor-text-destructive-foreground cteditor-transition-colors\"\r\n aria-label=\"Delete file\"\r\n title=\"Delete file\"\r\n >\r\n <Trash2 className=\"cteditor-w-4 cteditor-h-4 cteditor-text-muted-foreground\" />\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default FileView;\r\n"],"names":["FileIcon"],"mappings":"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","x_google_ignoreList":[0,1,2]}