eddyter 1.3.74 → 1.3.76

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 (39) hide show
  1. package/dist/api/config/endpoints.d.ts +1 -0
  2. package/dist/assets/style.css +1 -1
  3. package/dist/components/EddyterLogo/EddyterLogo.d.ts +2 -1
  4. package/dist/components/HtmlCodeEditor.d.ts +9 -0
  5. package/dist/components/Placeholder/styles.d.ts +2 -0
  6. package/dist/components/Toast/EditorToast.d.ts +2 -0
  7. package/dist/components/ui/button.d.ts +1 -1
  8. package/dist/config/env.d.ts +8 -0
  9. package/dist/constants.d.ts +2 -1
  10. package/dist/generateDocxThumbnail-BbSs-3CJ.js +5876 -0
  11. package/dist/generatePdfThumbnail-U8R2yu3J.js +53 -0
  12. package/dist/generateXlsxThumbnail-BUwuqsXR.js +21707 -0
  13. package/dist/hooks/useBlockFormat.d.ts +1 -0
  14. package/dist/hooks/useFeedbackEligibility.d.ts +2 -2
  15. package/dist/hooks/usePdfPreview.d.ts +6 -0
  16. package/dist/html2canvas.esm-C2wu93Kq.js +4867 -0
  17. package/dist/{html2pdf.bundle.min-IddXSdmD.js → html2pdf.bundle.min-Css6bHHm.js} +1 -1
  18. package/dist/{index-DXkAwL6K.js → index-CCVZobcV.js} +1 -1
  19. package/dist/index-CVEa0GRe.js +131 -0
  20. package/dist/{index-DeaVZP-3.js → index-DTkM3xiE.js} +1 -1
  21. package/dist/{index-CnJbZHIU.js → index-DjD3NbU0.js} +13839 -13261
  22. package/dist/index.js +1 -1
  23. package/dist/lib/toast.d.ts +39 -0
  24. package/dist/nodes/EmbedNode.d.ts +7 -2
  25. package/dist/nodes/FileNode.d.ts +3 -0
  26. package/dist/nodes/GeneratingImageNode.d.ts +30 -0
  27. package/dist/store/tableFullWidthStore.d.ts +6 -0
  28. package/dist/types.d.ts +2 -0
  29. package/dist/ui/Icons.d.ts +2 -1
  30. package/dist/utils/editorStyleConverter.d.ts +3 -1
  31. package/dist/utils/generateDocxThumbnail.d.ts +5 -0
  32. package/dist/utils/generatePdfThumbnail.d.ts +1 -0
  33. package/dist/utils/generateXlsxThumbnail.d.ts +5 -0
  34. package/dist/utils/helper.d.ts +2 -0
  35. package/dist/utils/htmlFormat.d.ts +5 -0
  36. package/dist/utils/index.d.ts +4 -4
  37. package/package.json +6 -12
  38. package/dist/html2pdf.bundle-Bqwrc-rt.js +0 -33980
  39. package/dist/index-CUha-eOU.js +0 -83
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { y as a, z as r, G as t, H as s, I as o, J as d, K as v, M as u, N as f, O as n, P as l, Q as w } from "./index-CnJbZHIU.js";
1
+ import { G as a, H as r, I as t, J as s, K as o, M as d, N as v, O as u, P as f, Q as n, R as l, U as w } from "./index-DjD3NbU0.js";
2
2
  export {
3
3
  a as ConfigurableEditor,
4
4
  r as ConfigurableEditorWithAuth,
@@ -0,0 +1,39 @@
1
+ export type ToastType = "success" | "error" | "warning" | "loading" | "info";
2
+ export interface ToastAction {
3
+ label: string;
4
+ onClick: () => void;
5
+ }
6
+ export interface ToastOptions {
7
+ id?: string | number;
8
+ description?: string;
9
+ duration?: number;
10
+ action?: ToastAction;
11
+ cancel?: ToastAction;
12
+ }
13
+ export interface ToastData {
14
+ id: string | number;
15
+ type: ToastType;
16
+ message: string;
17
+ description?: string;
18
+ duration?: number;
19
+ action?: ToastAction;
20
+ cancel?: ToastAction;
21
+ createdAt: number;
22
+ }
23
+ type ToastEventType = "add" | "update" | "dismiss" | "dismiss-all";
24
+ interface ToastEvent {
25
+ type: ToastEventType;
26
+ toast?: ToastData;
27
+ id?: string | number;
28
+ }
29
+ type ToastListener = (event: ToastEvent) => void;
30
+ export declare const toast: {
31
+ success: (message: string, options?: ToastOptions) => string | number;
32
+ error: (message: string, options?: ToastOptions) => string | number;
33
+ warning: (message: string, options?: ToastOptions) => string | number;
34
+ loading: (message: string, options?: ToastOptions) => string | number;
35
+ info: (message: string, options?: ToastOptions) => string | number;
36
+ dismiss: (id?: string | number | null) => void;
37
+ };
38
+ export declare function subscribe(listener: ToastListener): () => void;
39
+ export {};
@@ -5,13 +5,16 @@ import { DecoratorNode, DOMExportOutput, NodeKey } from '../../node_modules/lexi
5
5
  */
6
6
  export type DisplayType = "url" | "card" | "embed";
7
7
  export type Alignment = "left" | "center" | "right";
8
+ /** Text wrap: none = block only; left/right = text can flow beside the card (like image) */
9
+ export type EmbedPosition = "none" | "left" | "right";
8
10
  export declare class EmbedNode extends DecoratorNode<JSX.Element> {
9
11
  __url: string;
10
12
  __displayType: DisplayType;
11
13
  __alignment: Alignment;
14
+ __position: EmbedPosition;
12
15
  __width: number;
13
16
  __height: number;
14
- constructor(url: string, displayType?: DisplayType, alignment?: Alignment, width?: number, height?: number, key?: NodeKey);
17
+ constructor(url: string, displayType?: DisplayType, alignment?: Alignment, width?: number, height?: number, position?: EmbedPosition, key?: NodeKey);
15
18
  static getType(): string;
16
19
  static clone(node: EmbedNode): EmbedNode;
17
20
  createDOM(): HTMLElement;
@@ -24,9 +27,11 @@ export declare class EmbedNode extends DecoratorNode<JSX.Element> {
24
27
  getAlignment(): Alignment;
25
28
  setDisplayType(displayType: DisplayType): void;
26
29
  setAlignment(alignment: Alignment): void;
30
+ getPosition(): EmbedPosition;
31
+ setPosition(position: EmbedPosition): void;
27
32
  getWidth(): number;
28
33
  getHeight(): number;
29
34
  setDimensions(width: number, height: number): void;
30
35
  decorate(): JSX.Element;
31
36
  }
32
- export declare function $createEmbedNode(url: string, displayType?: DisplayType, alignment?: Alignment, width?: number, height?: number): EmbedNode;
37
+ export declare function $createEmbedNode(url: string, displayType?: DisplayType, alignment?: Alignment, width?: number, height?: number, position?: EmbedPosition): EmbedNode;
@@ -14,6 +14,8 @@ export declare class FileNode extends DecoratorNode<JSX.Element> {
14
14
  __src: string;
15
15
  __fileName: string;
16
16
  __fileSize?: number;
17
+ /** Optional first-page thumbnail (e.g. PDF); used in exportDOM for preview */
18
+ __previewDataUrl?: string;
17
19
  static getType(): string;
18
20
  static clone(node: FileNode): FileNode;
19
21
  static importJSON(serializedNode: SerializedFileNode): FileNode;
@@ -27,6 +29,7 @@ export declare class FileNode extends DecoratorNode<JSX.Element> {
27
29
  getSrc(): string;
28
30
  getFileName(): string;
29
31
  getFileSize(): number | undefined;
32
+ setPreviewDataUrl(url: string): void;
30
33
  decorate(): JSX.Element;
31
34
  }
32
35
  export declare function $createFileNode({ src, fileName, fileSize, key, }: FilePayload): FileNode;
@@ -0,0 +1,30 @@
1
+ import { DecoratorNode, DOMConversionMap, DOMExportOutput, EditorConfig, LexicalNode, NodeKey, SerializedLexicalNode, Spread } from '../../node_modules/lexical';
2
+ export interface GeneratingImagePayload {
3
+ placeholderId: string;
4
+ prompt?: string;
5
+ key?: NodeKey;
6
+ }
7
+ export type SerializedGeneratingImageNode = Spread<{
8
+ placeholderId: string;
9
+ prompt?: string;
10
+ }, SerializedLexicalNode>;
11
+ export declare class GeneratingImageNode extends DecoratorNode<JSX.Element> {
12
+ __placeholderId: string;
13
+ __prompt: string;
14
+ __error?: string;
15
+ static getType(): string;
16
+ static clone(node: GeneratingImageNode): GeneratingImageNode;
17
+ static importJSON(serializedNode: SerializedGeneratingImageNode): GeneratingImageNode;
18
+ static importDOM(): DOMConversionMap | null;
19
+ exportDOM(): DOMExportOutput;
20
+ constructor(placeholderId: string, prompt?: string, error?: string, key?: NodeKey);
21
+ exportJSON(): SerializedGeneratingImageNode;
22
+ createDOM(config: EditorConfig): HTMLElement;
23
+ updateDOM(): false;
24
+ getPlaceholderId(): string;
25
+ getPrompt(): string;
26
+ setError(error: string): void;
27
+ decorate(): JSX.Element;
28
+ }
29
+ export declare function $createGeneratingImageNode({ placeholderId, prompt, key, }: GeneratingImagePayload): GeneratingImageNode;
30
+ export declare function $isGeneratingImageNode(node: LexicalNode | null | undefined): node is GeneratingImageNode;
@@ -0,0 +1,6 @@
1
+ import { NodeKey } from '../../node_modules/lexical';
2
+ export declare function getFullWidth(key: NodeKey): boolean;
3
+ export declare function setFullWidth(key: NodeKey, value: boolean): void;
4
+ export declare function setFromInitialContent(tableIndexToFullWidth: boolean[]): void;
5
+ export declare function consumePendingInitialTableFullWidth(): boolean[] | null;
6
+ export declare function hasPendingInitialTableFullWidth(): boolean;
package/dist/types.d.ts CHANGED
@@ -56,6 +56,7 @@ export interface ToolbarProps {
56
56
  enableFeatureSuggestion?: boolean;
57
57
  enableBugReport?: boolean;
58
58
  enablePreview?: boolean;
59
+ enableHtmlCanvas?: boolean;
59
60
  fonts?: string[];
60
61
  editor: LexicalEditor;
61
62
  activeEditor: LexicalEditor;
@@ -158,6 +159,7 @@ export interface EditorConfigTypes {
158
159
  enableBugReport?: boolean;
159
160
  enableDragHandle?: boolean;
160
161
  enablePreview?: boolean;
162
+ enableHtmlCanvas?: boolean;
161
163
  };
162
164
  enableFloatingMenu: boolean;
163
165
  htmlViewOption: boolean;
@@ -82,4 +82,5 @@ declare const WrapTextLeftIcon: () => import("react/jsx-runtime").JSX.Element;
82
82
  declare const WrapTextRightIcon: () => import("react/jsx-runtime").JSX.Element;
83
83
  declare const BugIcon: () => import("react/jsx-runtime").JSX.Element;
84
84
  declare const LockIcon: () => import("react/jsx-runtime").JSX.Element;
85
- export { AddCommentIcon, AddImageIcon, AdjustToneIcon, AIChatIcon, AIIcon, AlignBottomIcon, AlignCenterIcon, AlignJustifyIcon, AlignLeftIcon, AlignMiddleIcon, AlignRightIcon, AlignTopIcon, BoldIcon, BugIcon, BulletListIcon, ChartBarIcon, CheckBoxIcon, CheckIcon, ChevronDownIcon, CodeIcon, CompleteSentenceIcon, DisableIcon, EmojifyIcon, FaceSmileIcon, FileIcon, FixGrammarIcon, GenerateImageIcon, Heading1Icon, Heading2Icon, Heading3Icon, Heading4Icon, Heading5Icon, Heading6Icon, HorizontalRuleIcon, HtmlViewIcon, ImageIcon, ItalicIcon, LinkIcon, LockIcon, MagicoonIcon, MakeLongerIcon, MakeShorterIcon, MenuAltIcon, MessageEditIcon, MicrophoneIcon, NoteIcon, NumberListIcon, PauseCircleIcon, ParagraphIcon, PenLineIcon, PerspectiveIcon, PlayCircleIcon, PlusIcon, QuoteIcon, RecordingIcon, RedoIcon, SearchTextIcon, SearchTextIcon2, SendIcon, SignatureIcon, SimplifyIcon, SparkleIcon, StopCircleIcon, StrikethroughIcon, SubscriptIcon, SuperscriptIcon, TodoIcon, TranslateIcon, TypeCapitalizeIcon, TypeLowercaseIcon, TypeUppercaseIcon, UnderlineIcon, UndoIcon, UploadIcon, TableIcon, HighlighterIcon, LightbulbIcon, ClearFormattingIcon, CrossIcon, DownloadIcon, TrashIcon, ExternalLinkIcon, WrapTextLeftIcon, WrapTextRightIcon };
85
+ declare const AiSparkle: () => import("react/jsx-runtime").JSX.Element;
86
+ export { AddCommentIcon, AddImageIcon, AdjustToneIcon, AIChatIcon, AIIcon, AlignBottomIcon, AlignCenterIcon, AlignJustifyIcon, AlignLeftIcon, AlignMiddleIcon, AlignRightIcon, AlignTopIcon, BoldIcon, BugIcon, BulletListIcon, ChartBarIcon, CheckBoxIcon, CheckIcon, ChevronDownIcon, CodeIcon, CompleteSentenceIcon, DisableIcon, EmojifyIcon, FaceSmileIcon, FileIcon, FixGrammarIcon, GenerateImageIcon, Heading1Icon, Heading2Icon, Heading3Icon, Heading4Icon, Heading5Icon, Heading6Icon, HorizontalRuleIcon, HtmlViewIcon, ImageIcon, ItalicIcon, LinkIcon, LockIcon, MagicoonIcon, MakeLongerIcon, MakeShorterIcon, MenuAltIcon, MessageEditIcon, MicrophoneIcon, NoteIcon, NumberListIcon, PauseCircleIcon, ParagraphIcon, PenLineIcon, PerspectiveIcon, PlayCircleIcon, PlusIcon, QuoteIcon, RecordingIcon, RedoIcon, SearchTextIcon, SearchTextIcon2, SendIcon, SignatureIcon, SimplifyIcon, SparkleIcon, StopCircleIcon, StrikethroughIcon, SubscriptIcon, SuperscriptIcon, TodoIcon, TranslateIcon, TypeCapitalizeIcon, TypeLowercaseIcon, TypeUppercaseIcon, UnderlineIcon, UndoIcon, UploadIcon, TableIcon, HighlighterIcon, LightbulbIcon, ClearFormattingIcon, CrossIcon, DownloadIcon, TrashIcon, ExternalLinkIcon, WrapTextLeftIcon, WrapTextRightIcon, AiSparkle };
@@ -1,10 +1,12 @@
1
- import { LexicalEditor } from '../../node_modules/lexical';
1
+ import { NodeKey, LexicalEditor } from '../../node_modules/lexical';
2
2
  /**
3
3
  * ==========================================
4
4
  * Main Export Hooks & Functions
5
5
  * ==========================================
6
6
  */
7
7
  export declare function useExportWithStriping(): () => string;
8
+ /** Collect table node keys in document order (for export and initial content fullWidth). */
9
+ export declare function getTableKeysInDocumentOrder(editor: LexicalEditor): NodeKey[];
8
10
  export declare function exportEditorWithInlineStyle(editor: LexicalEditor): string;
9
11
  /**
10
12
  * Processes initial HTML content for loading into the editor.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Renders the first page of a DOCX, captures it, then crops to the top portion
3
+ * so the thumbnail shows the start of the document (not the whole doc).
4
+ */
5
+ export declare function generateDocxThumbnail(docxUrl: string): Promise<string>;
@@ -0,0 +1 @@
1
+ export declare function generatePdfThumbnail(pdfUrl: string): Promise<string>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Renders the first sheet of an XLSX file as a small table, captures it with html2canvas,
3
+ * and returns a PNG data URL for use as a thumbnail.
4
+ */
5
+ export declare function generateXlsxThumbnail(xlsxUrl: string): Promise<string>;
@@ -1,3 +1,5 @@
1
1
  export declare const AI_ACTION_COMMAND: import('../../node_modules/lexical').LexicalCommand<{
2
2
  type: string;
3
3
  }>;
4
+ /** Dispatched to request immediate HTML export (e.g. after table full-width toggle) so preview updates without waiting for debounce. */
5
+ export declare const REQUEST_IMMEDIATE_EXPORT_COMMAND: import('../../node_modules/lexical').LexicalCommand<void>;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Simple HTML formatter for the code view: breaks tags onto separate lines
3
+ * so minified/single-line HTML is readable. Safe to run on any HTML string.
4
+ */
5
+ export declare function formatHtmlForCodeView(html: string): string;
@@ -1,5 +1,5 @@
1
- import { SxProps, Theme } from '@mui/material';
1
+ import { default as React } from 'react';
2
2
  import { IMenuButtonStyle } from '../types';
3
- export declare const getMenuButtonStyle: ({ open, isMdViewport, }: IMenuButtonStyle) => SxProps;
4
- export declare const getActiveBtnStyle: (isActive: boolean) => SxProps<Theme>;
5
- export declare const getColorPickerPaperStyle: () => SxProps;
3
+ export declare const getMenuButtonStyle: ({ open, isMdViewport, }: IMenuButtonStyle) => React.CSSProperties;
4
+ export declare const getActiveBtnStyle: (isActive: boolean) => React.CSSProperties;
5
+ export declare const getColorPickerPaperStyle: () => React.CSSProperties;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "eddyter",
3
3
  "private": false,
4
- "version": "1.3.74",
4
+ "version": "1.3.76",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@9.0.0",
7
7
  "keywords": [
@@ -58,10 +58,6 @@
58
58
  "prepublishOnly": "pnpm build"
59
59
  },
60
60
  "dependencies": {
61
- "@aws-sdk/client-s3": "^3.744.0",
62
- "@aws-sdk/s3-request-presigner": "^3.744.0",
63
- "@emotion/react": "^11.10.6",
64
- "@emotion/styled": "^11.10.6",
65
61
  "@lexical/clipboard": "^0.24.0",
66
62
  "@lexical/code": "^0.24.0",
67
63
  "@lexical/dragon": "^0.24.0",
@@ -76,9 +72,6 @@
76
72
  "@lexical/table": "^0.24.0",
77
73
  "@lexical/text": "^0.24.0",
78
74
  "@lexical/utils": "^0.24.0",
79
- "@mui/icons-material": "^5.11.9",
80
- "@mui/material": "^5.11.9",
81
- "@mui/styles": "^5.11.9",
82
75
  "@radix-ui/react-avatar": "^1.1.3",
83
76
  "@radix-ui/react-checkbox": "^1.1.4",
84
77
  "@radix-ui/react-dialog": "^1.1.6",
@@ -93,14 +86,16 @@
93
86
  "@types/react-signature-canvas": "^1.0.7",
94
87
  "axios": "^1.8.1",
95
88
  "class-variance-authority": "^0.7.1",
96
- "classnames": "^2.3.2",
97
89
  "clsx": "^2.1.1",
90
+ "docx-preview": "^0.3.0",
91
+ "html2canvas": "^1.4.1",
98
92
  "emoji-picker-react": "^4.12.0",
99
- "framer-motion": "^12.5.0",
100
93
  "html2pdf.js": "^0.14.0",
101
94
  "lexical": "^0.24.0",
102
95
  "lexical-ai-plugin": "0.0.2-alpha",
103
96
  "lodash-es": "^4.17.21",
97
+ "pdfjs-dist": "^3.11.174",
98
+ "xlsx": "^0.18.5",
104
99
  "lucide-react": "^0.344.0",
105
100
  "marked": "^17.0.1",
106
101
  "prettier": "^3.5.1",
@@ -108,7 +103,6 @@
108
103
  "react-router-dom": "^7.2.0",
109
104
  "react-signature-canvas": "^1.1.0-alpha.1",
110
105
  "sass": "^1.57.1",
111
- "sonner": "^2.0.3",
112
106
  "tailwind-merge": "^3.0.2",
113
107
  "tailwindcss": "3",
114
108
  "tailwindcss-animate": "^1.0.7"
@@ -150,4 +144,4 @@
150
144
  "eslint --fix"
151
145
  ]
152
146
  }
153
- }
147
+ }