UNPKG

@llamaindex/ui

Version:

A comprehensive UI component library built with React, TypeScript, and Tailwind CSS for LlamaIndex applications

78 lines (75 loc) 2.48 kB
import { ReactNode } from 'react'; import { F as FileType } from './file-utils-CUHxYCcA.mjs'; interface BaseFileUploadProps { allowedFileTypes?: FileType[]; maxFileSizeBytes?: number; } interface FileDropzoneProps extends BaseFileUploadProps { multiple?: boolean; selectedFiles?: File[]; onFilesSelected: (files: File[]) => void; onRemoveFile?: (file: File) => void; className?: string; emptyTitle?: string; emptyDescription?: string; listFooter?: ReactNode; footer?: ReactNode; showRemoveButton?: boolean; disabled?: boolean; } interface FileUploadData { file: File; fileId: string; url?: string; } interface UploadResult { success: boolean; data: FileUploadData | null; error: Error | null; } interface UseFileUploadOptions { onProgress?: (file: File, progress: number) => void; onUploadStart?: (file: File) => void; onUploadComplete?: (file: File) => void; onUploadError?: (file: File, error: string) => void; } interface UploadFromUrlOptions { name?: string; proxyUrl?: string; requestHeaders?: Record<string, string>; } interface UseFileUploadReturn { isUploading: boolean; uploadFile: (file: File) => Promise<UploadResult>; uploadFromUrl: (url: string, options?: UploadFromUrlOptions) => Promise<UploadResult>; uploadAndReturn: (file: File) => Promise<UploadResult>; } interface InputField { key: string; label: string; placeholder?: string; required?: boolean; validation?: (value: string) => string | null; } interface FileUploadProps extends BaseFileUploadProps { className?: string; heading: string; content: File | string | null; onContentChange: (content: File | string | null) => void; allowFileRemoval?: boolean; showHeader?: boolean; uploadDescription?: string; fileUrlPlaceholder?: string; disableWhenHasSelection?: boolean; footer?: ReactNode; } interface FileUploaderProps extends BaseFileUploadProps { title?: string; description?: string; inputFields?: InputField[]; multiple?: boolean; onSuccess: (data: FileUploadData[], fieldValues: Record<string, string>) => Promise<void>; trigger?: ReactNode; isProcessing?: boolean; } export type { FileDropzoneProps as F, InputField as I, UploadResult as U, FileUploadData as a, UseFileUploadOptions as b, UploadFromUrlOptions as c, UseFileUploadReturn as d, FileUploadProps as e, FileUploaderProps as f };