claritykit-svelte
Version:
A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility
57 lines • 1.66 kB
TypeScript
import { Node } from '@tiptap/core';
export interface FileAttachmentOptions {
HTMLAttributes: Record<string, any>;
allowPreview: boolean;
allowDownload: boolean;
maxPreviewSize: number;
previewableTypes: string[];
onFileClick?: (fileId: string, action: 'preview' | 'download') => void;
onFileDelete?: (fileId: string) => void;
getFileMetadata?: (fileId: string) => Promise<FileMetadata>;
}
export interface FileMetadata {
id: string;
name: string;
size: number;
type: string;
url: string;
downloadUrl?: string;
previewUrl?: string;
thumbnail?: string;
uploadedAt: string;
uploadedBy: {
id: string;
name: string;
avatar?: string;
};
metadata?: {
pages?: number;
dimensions?: {
width: number;
height: number;
};
duration?: number;
encoding?: string;
};
}
declare module '@tiptap/core' {
interface Commands<ReturnType> {
fileAttachment: {
/**
* Insert a file attachment
*/
insertFileAttachment: (file: FileMetadata) => ReturnType;
/**
* Update file metadata
*/
updateFileMetadata: (fileId: string, metadata: Partial<FileMetadata>) => ReturnType;
/**
* Remove file attachment
*/
removeFileAttachment: (fileId: string) => ReturnType;
};
}
}
export declare const FileAttachmentExtension: Node<FileAttachmentOptions, any>;
export default FileAttachmentExtension;
//# sourceMappingURL=FileAttachmentExtension.d.ts.map