@lite-code/aui-react 0.0.1

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.
Files changed (83) hide show
  1. package/README.md +76 -0
  2. package/dist/alert/index.d.ts +14 -0
  3. package/dist/avatar/index.d.ts +28 -0
  4. package/dist/badge/index.d.ts +18 -0
  5. package/dist/breadcrumb/index.d.ts +18 -0
  6. package/dist/button/index.d.ts +11 -0
  7. package/dist/card/index.d.ts +25 -0
  8. package/dist/carousel/index.d.ts +17 -0
  9. package/dist/cascader/index.d.ts +25 -0
  10. package/dist/checkbox/index.d.ts +33 -0
  11. package/dist/collapse/index.d.ts +19 -0
  12. package/dist/datepicker/index.d.ts +26 -0
  13. package/dist/descriptions/index.d.ts +25 -0
  14. package/dist/drawer/index.d.ts +16 -0
  15. package/dist/dropdown/index.d.ts +29 -0
  16. package/dist/empty/index.d.ts +11 -0
  17. package/dist/form/context.d.ts +3 -0
  18. package/dist/form/index.d.ts +39 -0
  19. package/dist/form/item.d.ts +87 -0
  20. package/dist/form/list.d.ts +8 -0
  21. package/dist/form/store.d.ts +49 -0
  22. package/dist/form/types.d.ts +47 -0
  23. package/dist/grid/index.d.ts +35 -0
  24. package/dist/icon/index.d.ts +9 -0
  25. package/dist/image-compressor/engine.d.ts +55 -0
  26. package/dist/image-compressor/index.d.ts +5 -0
  27. package/dist/image-compressor/types.d.ts +44 -0
  28. package/dist/image-compressor/use-image-compressor.d.ts +21 -0
  29. package/dist/index.cjs.js +2 -0
  30. package/dist/index.cjs.js.map +1 -0
  31. package/dist/index.d.ts +93 -0
  32. package/dist/index.esm.js +2 -0
  33. package/dist/index.esm.js.map +1 -0
  34. package/dist/input/index.d.ts +12 -0
  35. package/dist/input-number/index.d.ts +23 -0
  36. package/dist/layer/index.d.ts +18 -0
  37. package/dist/menu/index.d.ts +24 -0
  38. package/dist/message/index.d.ts +18 -0
  39. package/dist/modal/index.d.ts +42 -0
  40. package/dist/pagination/index.d.ts +19 -0
  41. package/dist/popover/index.d.ts +18 -0
  42. package/dist/popover/util.d.ts +28 -0
  43. package/dist/progress/index.d.ts +17 -0
  44. package/dist/radio/index.d.ts +32 -0
  45. package/dist/rate/index.d.ts +20 -0
  46. package/dist/select/index.d.ts +23 -0
  47. package/dist/slider/index.d.ts +19 -0
  48. package/dist/space/index.d.ts +11 -0
  49. package/dist/spin/index.d.ts +12 -0
  50. package/dist/steps/index.d.ts +25 -0
  51. package/dist/switch/index.d.ts +18 -0
  52. package/dist/table/checkbox.d.ts +14 -0
  53. package/dist/table/empty.d.ts +5 -0
  54. package/dist/table/index.d.ts +2 -0
  55. package/dist/table/row-operation-cell.d.ts +9 -0
  56. package/dist/table/table.d.ts +3 -0
  57. package/dist/table/toolbar.d.ts +12 -0
  58. package/dist/table/types.d.ts +84 -0
  59. package/dist/table/utils.d.ts +19 -0
  60. package/dist/tabs/index.d.ts +22 -0
  61. package/dist/textarea/index.d.ts +10 -0
  62. package/dist/theme/theme-provider.d.ts +21 -0
  63. package/dist/timepicker/index.d.ts +12 -0
  64. package/dist/timepicker/scroll-column.d.ts +13 -0
  65. package/dist/timepicker/types.d.ts +43 -0
  66. package/dist/timepicker/utils.d.ts +13 -0
  67. package/dist/tooltip/index.d.ts +19 -0
  68. package/dist/tree/index.d.ts +29 -0
  69. package/dist/tree-select/index.d.ts +21 -0
  70. package/dist/upload/file-item.d.ts +10 -0
  71. package/dist/upload/index.d.ts +12 -0
  72. package/dist/upload/types.d.ts +58 -0
  73. package/dist/upload/use-upload.d.ts +6 -0
  74. package/dist/upload/utils.d.ts +5 -0
  75. package/dist/upload-manager/index.d.ts +10 -0
  76. package/dist/upload-manager/manager-item.d.ts +10 -0
  77. package/dist/upload-manager/preview-modal.d.ts +10 -0
  78. package/dist/upload-manager/types.d.ts +80 -0
  79. package/dist/upload-manager/use-upload-manager.d.ts +19 -0
  80. package/env.d.ts +2 -0
  81. package/package.json +47 -0
  82. package/rollup.config.js +36 -0
  83. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import "./grid.css";
3
+ type Breakpoint = "xs" | "sm" | "md" | "lg" | "xl" | "xxl";
4
+ type ColSize = number | {
5
+ span?: number;
6
+ offset?: number;
7
+ order?: number;
8
+ };
9
+ export interface RowProps {
10
+ gutter?: number | [number, number] | Partial<Record<Breakpoint, number>>;
11
+ justify?: "start" | "end" | "center" | "space-around" | "space-between" | "space-evenly";
12
+ align?: "top" | "middle" | "bottom" | "stretch";
13
+ wrap?: boolean;
14
+ children?: React.ReactNode;
15
+ className?: string;
16
+ style?: React.CSSProperties;
17
+ }
18
+ export interface ColProps {
19
+ span?: number;
20
+ offset?: number;
21
+ order?: number;
22
+ flex?: string | number;
23
+ xs?: ColSize;
24
+ sm?: ColSize;
25
+ md?: ColSize;
26
+ lg?: ColSize;
27
+ xl?: ColSize;
28
+ xxl?: ColSize;
29
+ children?: React.ReactNode;
30
+ className?: string;
31
+ style?: React.CSSProperties;
32
+ }
33
+ export declare function Row({ gutter, justify, align, wrap, children, className, style, }: RowProps): import("react/jsx-runtime").JSX.Element;
34
+ export declare function Col({ span, offset, order, flex, xs, sm, md, lg, xl, xxl, children, className, style, }: ColProps): import("react/jsx-runtime").JSX.Element;
35
+ export {};
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export type IconName = "x-circle" | "eye" | "eye-off" | "check" | "chevron-down" | "chevron-right" | "chevron-left" | "chevron-up" | "x" | "calendar" | "warn" | "spin" | "circle-check" | "circle-x" | "circle-warn" | "circle-info" | "circle-loading" | "empty-data" | "spinner" | "plus" | "refresh" | "upload" | "cloud-upload" | "file" | "file-image" | "trash" | "clock";
3
+ export interface IconProps {
4
+ name: IconName;
5
+ size?: number | string;
6
+ className?: string;
7
+ style?: React.CSSProperties;
8
+ }
9
+ export declare function Icon({ name, size, className, style }: IconProps): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * 图片压缩核心引擎
3
+ * - 现代格式优先:AVIF → WebP → PNG/JPEG
4
+ * - 阶梯缩放:逐步 50% 消除锯齿
5
+ * - 二分质量搜索:精准命中目标体积
6
+ */
7
+ export declare function resolveOutputFormat(hasAlpha: boolean, prefer: CompressFormat): string;
8
+ export declare function detectAlpha(imageData: ImageData): boolean;
9
+ export declare function calcScaledSize(srcW: number, srcH: number, maxW: number, maxH: number): {
10
+ width: number;
11
+ height: number;
12
+ };
13
+ export declare function drawToCanvas(source: HTMLImageElement | ImageBitmap, targetW: number, targetH: number): HTMLCanvasElement;
14
+ export declare function canvasToBlob(canvas: HTMLCanvasElement, mimeType: string, quality: number): Promise<Blob>;
15
+ export declare function binarySearchQuality(canvas: HTMLCanvasElement, mimeType: string, targetSize: number, minQ: number, maxQ: number, step: number, onIteration?: (q: number) => void): Promise<Blob>;
16
+ export declare function loadImage(source: File | Blob | string): Promise<HTMLImageElement>;
17
+ export declare function blobToDataURL(blob: Blob): Promise<string>;
18
+ export type CompressFormat = "auto" | "webp" | "avif" | "jpeg" | "png";
19
+ export interface CompressOptions {
20
+ /** 最大宽度(px),0 = 不限 */
21
+ maxWidth?: number;
22
+ /** 最大高度(px),0 = 不限 */
23
+ maxHeight?: number;
24
+ /** 初始质量 0~1 */
25
+ quality?: number;
26
+ /** 目标文件大小上限(bytes),0 = 不限 */
27
+ targetSize?: number;
28
+ /** 二分法收敛精度 */
29
+ qualityStep?: number;
30
+ /** 最低质量兜底 */
31
+ minQuality?: number;
32
+ /** 格式偏好 */
33
+ format?: CompressFormat;
34
+ /** 是否保留透明通道 */
35
+ preserveAlpha?: boolean;
36
+ }
37
+ export interface CompressResult {
38
+ blob: Blob;
39
+ dataURL: string;
40
+ format: string;
41
+ quality: number;
42
+ originalSize: number;
43
+ compressedSize: number;
44
+ /** 体积比,越低越好 */
45
+ ratio: number;
46
+ originalDimensions: {
47
+ width: number;
48
+ height: number;
49
+ };
50
+ outputDimensions: {
51
+ width: number;
52
+ height: number;
53
+ };
54
+ }
55
+ export declare function compressImage(input: File | Blob | string, options?: CompressOptions): Promise<CompressResult>;
@@ -0,0 +1,5 @@
1
+ import type { ImageCompressorProps } from "./types";
2
+ import "./image-compressor.css";
3
+ export { useImageCompressor } from "./use-image-compressor";
4
+ export type { ImageCompressorProps, CompressFile, CompressResult, CompressOptions, CompressFormat, ImageCompressorStatus, } from "./types";
5
+ export declare function ImageCompressor(props: ImageCompressorProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,44 @@
1
+ import type React from "react";
2
+ import type { CompressFormat, CompressOptions, CompressResult } from "./engine";
3
+ export type { CompressFormat, CompressOptions, CompressResult };
4
+ export type ImageCompressorStatus = "idle" | "compressing" | "done" | "error";
5
+ export interface CompressFile {
6
+ /** 唯一 ID */
7
+ uid: string;
8
+ /** 原始 File 对象 */
9
+ originFile: File;
10
+ /** 压缩状态 */
11
+ status: ImageCompressorStatus;
12
+ /** 压缩结果(done 时有值) */
13
+ result?: CompressResult;
14
+ /** 错误信息(error 时有值) */
15
+ error?: string;
16
+ }
17
+ export interface ImageCompressorProps {
18
+ /** 自动压缩(文件选中后立即开始,默认 false,需手动点击) */
19
+ autoCompress?: boolean;
20
+ /** 最大同时处理数(默认 3) */
21
+ concurrency?: number;
22
+ /** 最多选择文件数 */
23
+ maxCount?: number;
24
+ /** 是否允许多选(默认 true) */
25
+ multiple?: boolean;
26
+ /** 接受的文件类型,默认 image/* */
27
+ accept?: string;
28
+ /** 压缩选项 */
29
+ compressOptions?: CompressOptions;
30
+ /** 文件变更回调(含状态) */
31
+ onChange?: (files: CompressFile[]) => void;
32
+ /** 全部压缩完成回调 */
33
+ onComplete?: (files: CompressFile[]) => void;
34
+ /** 单文件压缩完成 */
35
+ onFileComplete?: (file: CompressFile) => void;
36
+ /** 是否显示操作栏(默认 true) */
37
+ showActions?: boolean;
38
+ /** 是否显示结果统计(默认 true) */
39
+ showStats?: boolean;
40
+ /** 自定义下载文件名生成 */
41
+ getOutputFilename?: (file: CompressFile) => string;
42
+ className?: string;
43
+ style?: React.CSSProperties;
44
+ }
@@ -0,0 +1,21 @@
1
+ import type { CompressFile, ImageCompressorProps } from "./types";
2
+ export declare function useImageCompressor(props: ImageCompressorProps): {
3
+ files: CompressFile[];
4
+ compressing: boolean;
5
+ stats: {
6
+ total: number;
7
+ idle: number;
8
+ doing: number;
9
+ done: number;
10
+ error: number;
11
+ savedBytes: number;
12
+ savedRatio: number;
13
+ };
14
+ handleFiles: (rawFiles: File[]) => void;
15
+ compress: () => void;
16
+ compressAll: () => void;
17
+ removeFile: (uid: string) => void;
18
+ clearAll: () => void;
19
+ downloadFile: (item: CompressFile) => void;
20
+ downloadAll: () => void;
21
+ };