@turinhub/atomix-common-ui 0.2.2 → 0.3.0

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.
package/README.md CHANGED
@@ -104,6 +104,7 @@ import { dataTableUI } from '@/lib/ui-adapter';
104
104
  - **TablePagination** - 分页组件
105
105
  - **ThemeSwitcher** - 主题切换组件(完整版,支持下拉菜单)
106
106
  - **ThemeSwitcherContent** - 主题切换内容组件(轻量版,可嵌入)
107
+ - **FileUpload** - 标准文件上传界面(支持拖拽、校验、进度、失败重试,可接入 Tale SDK 上传流程)
107
108
  - **SimplePDFReader** - 轻量级 PDF 阅读器组件
108
109
  - **PDFReader** - 功能完整的 PDF 阅读器组件(包含侧边栏导航、页面旋转等高级功能)
109
110
  - **PDFSidebar** - PDF 侧边栏导航组件(缩略图和书签)
@@ -173,6 +174,9 @@ import type {
173
174
  ThemeSwitcherContentProps,
174
175
  ThemeSwitcherContentUIComponents,
175
176
  ThemeOption,
177
+ FileUploadProps,
178
+ FileUploadUIComponents,
179
+ FileUploadItem,
176
180
  SimplePDFReaderProps,
177
181
  SimplePDFReaderUIComponents,
178
182
  PDFReaderProps,
@@ -0,0 +1,61 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { ButtonComponent, CardComponent, UIComponent } from '../types/component-types';
3
+ export type FileUploadStatus = 'ready' | 'uploading' | 'success' | 'error';
4
+ export interface FileUploadItem<TResult = unknown> {
5
+ id: string;
6
+ file: File;
7
+ name: string;
8
+ size: number;
9
+ type: string;
10
+ status: FileUploadStatus;
11
+ progress: number;
12
+ error?: string;
13
+ result?: TResult;
14
+ }
15
+ export interface FileUploadHelpers {
16
+ setProgress: (progress: number) => void;
17
+ }
18
+ export interface FileUploadUIComponents {
19
+ Card: CardComponent;
20
+ CardHeader?: UIComponent<HTMLAttributes<HTMLDivElement>>;
21
+ CardTitle?: UIComponent<HTMLAttributes<HTMLDivElement>>;
22
+ CardDescription?: UIComponent<HTMLAttributes<HTMLDivElement>>;
23
+ CardContent: UIComponent<HTMLAttributes<HTMLDivElement>>;
24
+ CardFooter?: UIComponent<HTMLAttributes<HTMLDivElement>>;
25
+ Button: ButtonComponent;
26
+ }
27
+ export interface FileUploadProps<TResult = unknown> {
28
+ components?: FileUploadUIComponents;
29
+ title?: ReactNode;
30
+ description?: ReactNode;
31
+ helperText?: ReactNode;
32
+ accept?: string;
33
+ multiple?: boolean;
34
+ maxFiles?: number;
35
+ maxSize?: number;
36
+ disabled?: boolean;
37
+ autoUpload?: boolean;
38
+ showUploadButton?: boolean;
39
+ showResetButton?: boolean;
40
+ selectLabel?: string;
41
+ uploadLabel?: string;
42
+ retryLabel?: string;
43
+ resetLabel?: string;
44
+ emptyLabel?: ReactNode;
45
+ dropzoneLabel?: ReactNode;
46
+ dropzoneDescription?: ReactNode;
47
+ uploadingText?: string;
48
+ successText?: string;
49
+ errorText?: string;
50
+ className?: string;
51
+ dropzoneClassName?: string;
52
+ listClassName?: string;
53
+ formatFileSize?: (size: number) => string;
54
+ validateFile?: (file: File, currentItems: FileUploadItem<TResult>[]) => string | undefined;
55
+ onFilesChange?: (items: FileUploadItem<TResult>[]) => void;
56
+ onUpload?: (item: FileUploadItem<TResult>, helpers: FileUploadHelpers) => Promise<TResult> | TResult;
57
+ onUploadComplete?: (item: FileUploadItem<TResult>) => void;
58
+ onUploadError?: (item: FileUploadItem<TResult>, error: unknown) => void;
59
+ }
60
+ export declare function FileUpload<TResult = unknown>({ components, title, description, helperText, accept, multiple, maxFiles, maxSize, disabled, autoUpload, showUploadButton, showResetButton, selectLabel, uploadLabel, retryLabel, resetLabel, emptyLabel, dropzoneLabel, dropzoneDescription, uploadingText, successText, errorText, className, dropzoneClassName, listClassName, formatFileSize, validateFile, onFilesChange, onUpload, onUploadComplete, onUploadError, }: FileUploadProps<TResult>): import("react/jsx-runtime").JSX.Element;
61
+ //# sourceMappingURL=FileUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.d.ts","sourceRoot":"","sources":["../../src/components/FileUpload.tsx"],"names":[],"mappings":"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"}