aura-glass
Version:
A comprehensive glassmorphism design system for React applications with 142+ production-ready components
97 lines • 2.05 kB
TypeScript
import React from "react";
export interface ChatAttachment {
id: string;
file: File;
type: "image" | "video" | "audio" | "file";
preview?: string;
size: number;
}
export interface GlassChatInputProps {
/**
* Placeholder text
*/
placeholder?: string;
/**
* Enable file attachments
*/
enableAttachments?: boolean;
/**
* Enable voice messages
*/
enableVoice?: boolean;
/**
* Enable emoji picker
*/
enableEmoji?: boolean;
/**
* Enable rich text formatting
*/
enableFormatting?: boolean;
/**
* Enable mentions
*/
enableMentions?: boolean;
/**
* Maximum character count
*/
maxLength?: number;
/**
* Maximum file size in bytes
*/
maxFileSize?: number;
/**
* Accepted file types
*/
acceptedFileTypes?: string;
/**
* Show character count
*/
showCharCount?: boolean;
/**
* Auto-resize textarea
*/
autoResize?: boolean;
/**
* Disabled state
*/
disabled?: boolean;
/**
* Loading state
*/
loading?: boolean;
/**
* Send message handler
*/
onSendMessage?: (content: string, attachments?: ChatAttachment[]) => void;
/**
* Typing handler
*/
onTyping?: (isTyping: boolean) => void;
/**
* Attachment handler
*/
onAttachmentAdd?: (attachment: ChatAttachment) => void;
/**
* Attachment remove handler
*/
onAttachmentRemove?: (attachmentId: string) => void;
/**
* Voice recording handler
*/
onVoiceRecording?: (blob: Blob) => void;
/**
* Custom className
*/
className?: string;
/**
* Custom data-testid for testing
*/
"data-testid"?: string;
}
/**
* GlassChatInput component
* A rich chat input with attachments, voice recording, and formatting
*/
export declare const GlassChatInput: React.FC<GlassChatInputProps>;
export default GlassChatInput;
//# sourceMappingURL=GlassChatInput.d.ts.map