ileaf-text-editor
Version:
A React-based rich text editor library with Quill.js, featuring PDF/DOCX export, print support, and extensive customization options
95 lines (79 loc) • 2.45 kB
TypeScript
import React from 'react';
// Component Props Interfaces
export interface TextEditorProps {
initialContent?: string;
logo?: string;
logoWidth?: string;
logoHeight?: string;
onChange?: (content: string) => void;
className?: string;
showExportMenu?: boolean;
showPreview?: boolean;
[key: string]: any;
}
export interface EditorPaneProps {
content: string;
onChange: (content: string) => void;
}
export interface PreviewPaneProps {
content: string;
}
export interface SplitViewProps {
content: string;
onChange: (content: string) => void;
previewRef: React.RefObject<HTMLDivElement>;
showPreview?: boolean;
}
export interface ExportMenuProps {
previewRef: React.RefObject<HTMLDivElement>;
logo: string;
logoWidth?: string;
logoHeight?: string;
// Header customization
headerBgColor?: string;
headerStyle?: React.CSSProperties;
// Main download button customization
downloadButtonBgColor?: string;
downloadButtonTextColor?: string;
downloadButtonStyle?: React.CSSProperties;
downloadButtonText?: string;
// Popup customization
popupBgColor?: string;
popupStyle?: React.CSSProperties;
// PDF button customization
pdfButtonBgColor?: string;
pdfButtonTextColor?: string;
pdfButtonStyle?: React.CSSProperties;
pdfButtonText?: string;
// DOC button customization
docButtonBgColor?: string;
docButtonTextColor?: string;
docButtonStyle?: React.CSSProperties;
docButtonText?: string;
// Print button customization
printButtonBgColor?: string;
printButtonTextColor?: string;
printButtonStyle?: React.CSSProperties;
printButtonText?: string;
// Input and label customization
inputBorderColor?: string;
inputStyle?: React.CSSProperties;
labelTextColor?: string;
labelStyle?: React.CSSProperties;
}
// Component Declarations
export declare const TextEditor: React.FC<TextEditorProps>;
export declare const EditorPane: React.FC<EditorPaneProps>;
export declare const PreviewPane: React.ForwardRefExoticComponent<PreviewPaneProps & React.RefAttributes<HTMLDivElement>>;
export declare const SplitView: React.FC<SplitViewProps>;
export declare const ExportMenu: React.FC<ExportMenuProps>;
// Utility Functions
export declare function exportToPdf(
element: HTMLElement,
paperSize?: string,
filename?: string
): Promise<void>;
export declare function exportToDocx(
element: HTMLElement,
filename?: string
): Promise<void>;