@mci-ui/mci-ui 0.0.94 → 0.0.96

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 (45) hide show
  1. package/dist/assets/png/empty.png.js +4 -0
  2. package/dist/index.css +1 -1
  3. package/dist/index.js +54 -50
  4. package/dist/shared/lib/uploadLanguage.js +6 -3
  5. package/dist/shared/ui/MciModal/MciModal.js +1 -1
  6. package/dist/shared/ui/mciAccordion/MciAccordion.js +4 -4
  7. package/dist/shared/ui/mciButton/MciButton.js +12 -10
  8. package/dist/shared/ui/mciCheck/MciCheck.js +3 -3
  9. package/dist/shared/ui/mciCollapse/MciCollapse.js +1 -1
  10. package/dist/shared/ui/mciDrawer/MciDrawer.js +1 -1
  11. package/dist/shared/ui/mciEmpty/MciEmpty.js +41 -0
  12. package/dist/shared/ui/mciInput/MciInput.js +32 -32
  13. package/dist/shared/ui/mciPagination/MciPagination.js +32 -32
  14. package/dist/shared/ui/mciPhone/MciPhone.js +23 -23
  15. package/dist/shared/ui/mciPicker/MciPicker.js +2 -2
  16. package/dist/shared/ui/mciTable/MciTable.js +317 -165
  17. package/dist/shared/ui/mciTable/MciTableClamp2.js +5 -5
  18. package/dist/shared/ui/mciTabs/FilledTabs.js +103 -90
  19. package/dist/shared/ui/mciTabs/OutlinedTabs.js +28 -24
  20. package/dist/shared/ui/mciTabs/TabCountBadge.js +19 -0
  21. package/dist/shared/ui/mciTag/MciTag.js +17 -17
  22. package/dist/shared/ui/mciTextarea/MciTextarea.js +5 -5
  23. package/dist/shared/ui/mciTimePicker/MciTimePicker.js +205 -194
  24. package/dist/shared/ui/mciUpload/MciUpload.js +102 -352
  25. package/dist/shared/ui/mciUpload/MciUploadButton.js +143 -0
  26. package/dist/shared/ui/mciUpload/MciUploadFileList.js +167 -0
  27. package/dist/shared/ui/mciUpload/mci-upload.theme.js +103 -0
  28. package/dist/shared/ui/mciUpload/mci-upload.utils.js +90 -41
  29. package/dist/shared/ui/mciUpload/useMciUpload.js +183 -0
  30. package/dist/types/index.d.ts +4 -0
  31. package/dist/types/shared/lib/uploadLanguage.d.ts +2 -0
  32. package/dist/types/shared/types/ui/empty.types.d.ts +11 -0
  33. package/dist/types/shared/types/ui/index.d.ts +2 -1
  34. package/dist/types/shared/types/ui/tabs.types.d.ts +2 -0
  35. package/dist/types/shared/types/ui/time-picker.types.d.ts +2 -0
  36. package/dist/types/shared/types/ui/upload.types.d.ts +25 -1
  37. package/dist/types/shared/ui/mciEmpty/MciEmpty.d.ts +2 -0
  38. package/dist/types/shared/ui/mciTabs/FilledTabs.d.ts +1 -1
  39. package/dist/types/shared/ui/mciTabs/TabCountBadge.d.ts +5 -0
  40. package/dist/types/shared/ui/mciUpload/MciUploadButton.d.ts +4 -0
  41. package/dist/types/shared/ui/mciUpload/MciUploadFileList.d.ts +18 -0
  42. package/dist/types/shared/ui/mciUpload/mci-upload.theme.d.ts +101 -0
  43. package/dist/types/shared/ui/mciUpload/mci-upload.utils.d.ts +7 -0
  44. package/dist/types/shared/ui/mciUpload/useMciUpload.d.ts +131 -0
  45. package/package.json +1 -1
@@ -3,6 +3,8 @@ export interface UploadLanguage {
3
3
  clickToUpload: string;
4
4
  or: string;
5
5
  dropHereTitle: string;
6
+ /** Kompakt upload tugmasi matni */
7
+ uploadFile: string;
6
8
  fileRequirements: (multiple: boolean, maxFiles: number, maxSize: number, accept: string) => string;
7
9
  selectedFiles: string;
8
10
  clearAll: string;
@@ -0,0 +1,11 @@
1
+ import { ReactNode } from 'react';
2
+ export type MciEmptyLocale = 'uz' | 'ru';
3
+ export interface MciEmptyProps {
4
+ className?: string;
5
+ image?: ReactNode;
6
+ imageClassName?: string;
7
+ imageSrc?: string;
8
+ locale?: MciEmptyLocale;
9
+ title?: string;
10
+ description?: string;
11
+ }
@@ -4,6 +4,7 @@ export type { ButtonProps } from './button.types';
4
4
  export type { MciCheckProps } from './check.types';
5
5
  export type { CollapseProps } from './collapse.types';
6
6
  export type { DrawerProps } from './drawer.types';
7
+ export type { MciEmptyLocale, MciEmptyProps } from './empty.types';
7
8
  export type { InputProps } from './input.types';
8
9
  export type { MciDocumentInputProps } from './identity-input.types';
9
10
  export type { MciLoaderProps } from './loader.types';
@@ -19,4 +20,4 @@ export type { TextareaProps } from './textarea.types';
19
20
  export type { ToastType, ToastProps } from './toast.types';
20
21
  export type { ToggleProps } from './toggle.types';
21
22
  export type { TooltipProps } from './tooltip.types';
22
- export type { FileInfo, MciUploadProps } from './upload.types';
23
+ export type { FileInfo, MciUploadButtonProps, MciUploadFileValue, MciUploadProps } from './upload.types';
@@ -5,6 +5,7 @@ export type Tab = {
5
5
  icon?: ReactNode;
6
6
  content?: ReactNode;
7
7
  disabled?: boolean;
8
+ count?: number;
8
9
  };
9
10
  export type TabsVariant = 'filled' | 'outlined';
10
11
  export type TabsColor = 'blue' | 'yellow' | 'orange';
@@ -17,6 +18,7 @@ export type TabsProps = {
17
18
  position?: TabsPosition;
18
19
  darkMode?: boolean;
19
20
  className?: string;
21
+ width?: string | number;
20
22
  tabListClassName?: string;
21
23
  tabClassName?: string;
22
24
  contentClassName?: string;
@@ -2,10 +2,12 @@ export type MciTimePickerValue = string | null;
2
2
  export type MciTimePickerMode = 'time' | 'duration';
3
3
  export type MciTimePickerVariant = 'blue' | 'yellow' | 'orange';
4
4
  export type MciTimePickerLocale = 'uz' | 'ru' | 'en';
5
+ export type MciTimePickerDurationFormat = 'text' | 'dot';
5
6
  export interface MciTimePickerProps {
6
7
  value?: MciTimePickerValue;
7
8
  onChange?: (value: MciTimePickerValue) => void;
8
9
  mode?: MciTimePickerMode;
10
+ durationFormat?: MciTimePickerDurationFormat;
9
11
  variant?: MciTimePickerVariant;
10
12
  locale?: MciTimePickerLocale;
11
13
  placeholder?: string;
@@ -1,11 +1,23 @@
1
1
  import { UploadLocale } from '../../lib/uploadLanguage';
2
+ /** Form / API dan kelgan allaqachon yuklangan fayl */
3
+ export interface MciUploadFileValue {
4
+ id?: string;
5
+ name: string;
6
+ url: string;
7
+ size?: number;
8
+ }
2
9
  export interface FileInfo {
3
10
  id: string;
4
- file: File;
11
+ name: string;
12
+ size: number;
13
+ file?: File;
14
+ /** Serverdagi fayl URL (initial value) */
15
+ url?: string;
5
16
  preview?: string;
6
17
  progress: number;
7
18
  status: 'uploading' | 'success' | 'error';
8
19
  error?: string;
20
+ isRemote?: boolean;
9
21
  }
10
22
  export interface MciUploadProps {
11
23
  multiple?: boolean;
@@ -18,6 +30,11 @@ export interface MciUploadProps {
18
30
  error?: string;
19
31
  className?: string;
20
32
  onFilesChange?: (files: File[]) => void;
33
+ /** Boshlang'ich yoki serverdan kelgan fayllar (forma edit) */
34
+ defaultValue?: MciUploadFileValue | MciUploadFileValue[];
35
+ /** Controlled: mavjud yuklangan fayllar ro'yxati */
36
+ value?: MciUploadFileValue | MciUploadFileValue[];
37
+ onValueChange?: (files: MciUploadFileValue[]) => void;
21
38
  onUpload?: (files: FileInfo[]) => Promise<void>;
22
39
  showPreview?: boolean;
23
40
  locale?: UploadLocale;
@@ -26,3 +43,10 @@ export interface MciUploadProps {
26
43
  variant?: 'yellow' | 'blue' | 'orange';
27
44
  darkMode?: boolean;
28
45
  }
46
+ /** Kompakt «upload» tugmasi + fayl ro'yxati (drag-drop zonesiz) */
47
+ export interface MciUploadButtonProps extends MciUploadProps {
48
+ /** Tugma matni (default: locale bo'yicha uploadFile) */
49
+ buttonText?: string;
50
+ /** true bo'lsa tugma konteyner kengligini egallaydi */
51
+ fullWidth?: boolean;
52
+ }
@@ -0,0 +1,2 @@
1
+ import { MciEmptyProps } from '../../types/ui/empty.types';
2
+ export default function MciEmpty({ className, image, imageClassName, imageSrc, locale, title, description, }: MciEmptyProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { TabsProps } from '../../types/ui/tabs.types';
2
- export default function FilledTabs({ tabs, defaultTab, position, darkMode, className, tabListClassName, contentClassName, extra, onChange, }: TabsProps): import("react/jsx-runtime").JSX.Element;
2
+ export default function FilledTabs({ tabs, defaultTab, position, darkMode, className, width, tabListClassName, contentClassName, extra, onChange, }: TabsProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ type TabCountBadgeProps = {
2
+ count?: number;
3
+ };
4
+ export default function TabCountBadge({ count }: TabCountBadgeProps): import("react/jsx-runtime").JSX.Element | null;
5
+ export {};
@@ -0,0 +1,4 @@
1
+ import { default as React } from 'react';
2
+ import { MciUploadButtonProps } from '../../types/ui/upload.types';
3
+ declare const MciUploadButton: React.FC<MciUploadButtonProps>;
4
+ export default MciUploadButton;
@@ -0,0 +1,18 @@
1
+ import { UploadLanguage } from '../../lib/uploadLanguage';
2
+ import { FileInfo } from '../../types/ui/upload.types';
3
+ import { UploadThemeTokens } from './mci-upload.theme';
4
+ export interface MciUploadFileListProps {
5
+ files: FileInfo[];
6
+ theme: UploadThemeTokens;
7
+ t: UploadLanguage;
8
+ darkMode?: boolean;
9
+ showPreview?: boolean;
10
+ showFileTypeIcon?: boolean;
11
+ disabled?: boolean;
12
+ isUploading?: boolean;
13
+ onPreview: (fileInfo: FileInfo) => void;
14
+ onRemove: (id: string) => void;
15
+ onClearAll: () => void;
16
+ className?: string;
17
+ }
18
+ export declare function MciUploadFileList({ files, theme, t, darkMode, showPreview, showFileTypeIcon, disabled, isUploading, onPreview, onRemove, onClearAll, className, }: MciUploadFileListProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,101 @@
1
+ export declare const UPLOAD_THEME: {
2
+ readonly blue: {
3
+ readonly dropBorder: "border-blue-200 hover:border-blue-300";
4
+ readonly dropBg: "bg-blue-50/40 hover:bg-blue-50/60";
5
+ readonly dropActive: "border-blue-600 bg-blue-50";
6
+ readonly iconWrap: "text-blue-600";
7
+ readonly title: "text-blue-600";
8
+ readonly hint: "text-slate-500";
9
+ readonly progressFill: "bg-blue-600";
10
+ readonly fileIconImg: "bg-blue-50 text-blue-600";
11
+ readonly fileIconDoc: "bg-green-50 text-green-600";
12
+ readonly buttonIconBg: "bg-blue-50";
13
+ readonly buttonIcon: "text-slate-600";
14
+ readonly buttonText: "text-slate-600";
15
+ readonly buttonBorder: "border-slate-200 hover:border-slate-300";
16
+ readonly buttonBg: "bg-white";
17
+ };
18
+ readonly yellow: {
19
+ readonly dropBorder: "border-yellow-300 hover:border-yellow-400";
20
+ readonly dropBg: "bg-yellow-50/60 hover:bg-yellow-100/60";
21
+ readonly dropActive: "border-yellow-500 bg-yellow-100/80";
22
+ readonly iconWrap: "text-yellow-600";
23
+ readonly title: "text-yellow-700";
24
+ readonly hint: "text-slate-500";
25
+ readonly progressFill: "bg-yellow-500";
26
+ readonly fileIconImg: "bg-blue-50 text-blue-600";
27
+ readonly fileIconDoc: "bg-green-50 text-green-600";
28
+ readonly buttonIconBg: "bg-yellow-50";
29
+ readonly buttonIcon: "text-slate-600";
30
+ readonly buttonText: "text-slate-600";
31
+ readonly buttonBorder: "border-slate-200 hover:border-slate-300";
32
+ readonly buttonBg: "bg-white";
33
+ };
34
+ readonly orange: {
35
+ readonly dropBorder: "border-orange-200 hover:border-orange-300";
36
+ readonly dropBg: "bg-orange-50/40 hover:bg-orange-50/60";
37
+ readonly dropActive: "border-orange-600 bg-orange-50";
38
+ readonly iconWrap: "text-orange-600";
39
+ readonly title: "text-orange-600";
40
+ readonly hint: "text-slate-500";
41
+ readonly progressFill: "bg-orange-600";
42
+ readonly fileIconImg: "bg-orange-50 text-orange-600";
43
+ readonly fileIconDoc: "bg-green-50 text-green-600";
44
+ readonly buttonIconBg: "bg-slate-100";
45
+ readonly buttonIcon: "text-slate-600";
46
+ readonly buttonText: "text-slate-600";
47
+ readonly buttonBorder: "border-slate-200 hover:border-slate-300";
48
+ readonly buttonBg: "bg-white";
49
+ };
50
+ };
51
+ export declare const UPLOAD_THEME_DARK: {
52
+ readonly blue: {
53
+ readonly dropBorder: "border-blue-800 hover:border-blue-700";
54
+ readonly dropBg: "bg-blue-950/40 hover:bg-blue-950/60";
55
+ readonly dropActive: "border-blue-500 bg-blue-950/60";
56
+ readonly iconWrap: "text-blue-400";
57
+ readonly title: "text-blue-400";
58
+ readonly hint: "text-slate-400";
59
+ readonly progressFill: "bg-blue-500";
60
+ readonly fileIconImg: "bg-blue-950 text-blue-400";
61
+ readonly fileIconDoc: "bg-green-950 text-green-400";
62
+ readonly buttonIconBg: "bg-slate-800";
63
+ readonly buttonIcon: "text-slate-300";
64
+ readonly buttonText: "text-slate-300";
65
+ readonly buttonBorder: "border-neutral-700 hover:border-neutral-600";
66
+ readonly buttonBg: "bg-neutral-900";
67
+ };
68
+ readonly yellow: {
69
+ readonly dropBorder: "border-yellow-700 hover:border-yellow-600";
70
+ readonly dropBg: "bg-yellow-950/45 hover:bg-yellow-950/65";
71
+ readonly dropActive: "border-yellow-500 bg-yellow-950/70";
72
+ readonly iconWrap: "text-yellow-300";
73
+ readonly title: "text-yellow-300";
74
+ readonly hint: "text-slate-400";
75
+ readonly progressFill: "bg-yellow-400";
76
+ readonly fileIconImg: "bg-blue-950 text-blue-400";
77
+ readonly fileIconDoc: "bg-green-950 text-green-400";
78
+ readonly buttonIconBg: "bg-slate-800";
79
+ readonly buttonIcon: "text-slate-300";
80
+ readonly buttonText: "text-slate-300";
81
+ readonly buttonBorder: "border-neutral-700 hover:border-neutral-600";
82
+ readonly buttonBg: "bg-neutral-900";
83
+ };
84
+ readonly orange: {
85
+ readonly dropBorder: "border-orange-800 hover:border-orange-700";
86
+ readonly dropBg: "bg-orange-950/40 hover:bg-orange-950/60";
87
+ readonly dropActive: "border-orange-600 bg-orange-950/60";
88
+ readonly iconWrap: "text-orange-400";
89
+ readonly title: "text-orange-400";
90
+ readonly hint: "text-slate-400";
91
+ readonly progressFill: "bg-orange-600";
92
+ readonly fileIconImg: "bg-orange-950 text-orange-400";
93
+ readonly fileIconDoc: "bg-green-950 text-green-400";
94
+ readonly buttonIconBg: "bg-slate-800";
95
+ readonly buttonIcon: "text-slate-300";
96
+ readonly buttonText: "text-slate-300";
97
+ readonly buttonBorder: "border-neutral-700 hover:border-neutral-600";
98
+ readonly buttonBg: "bg-neutral-900";
99
+ };
100
+ };
101
+ export type UploadThemeTokens = (typeof UPLOAD_THEME)[keyof typeof UPLOAD_THEME] | (typeof UPLOAD_THEME_DARK)[keyof typeof UPLOAD_THEME_DARK];
@@ -1,3 +1,4 @@
1
+ import { FileInfo, MciUploadFileValue } from '../../types/ui/upload.types';
1
2
  export declare const SECURE_ALLOWED_EXTENSIONS: readonly ["pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "jpg", "jpeg", "png", "bmp", "tiff"];
2
3
  export declare const BLOCKED_EXTENSIONS: readonly ["zip", "rar", "7z", "tar", "gz", "bz2", "xz", "tgz", "tbz2", "txz", "iso", "cab", "arj", "lz", "lzh", "z", "exe", "bat", "cmd", "com", "msi", "scr", "pif", "js", "mjs", "cjs", "jse", "vbs", "vbe", "wsf", "wsh", "ps1", "psm1", "sh", "bash", "zsh", "ksh", "csh", "fish"];
3
4
  type FileTypeValidationResult = {
@@ -13,4 +14,10 @@ export declare function formatFileSize(bytes: number): string;
13
14
  export declare function validateFileSize(file: File, maxSizeMb: number): boolean;
14
15
  export declare function validateFileType(file: File, accept: string): FileTypeValidationResult;
15
16
  export declare function createPreview(file: File): Promise<string>;
17
+ export declare function isImageFileName(fileName: string): boolean;
18
+ export declare function getFileIconByName(fileName: string): import("react/jsx-runtime").JSX.Element;
19
+ export declare function normalizeUploadFileValues(value?: MciUploadFileValue | MciUploadFileValue[]): MciUploadFileValue[];
20
+ export declare function createFileInfoFromValue(value: MciUploadFileValue): FileInfo;
21
+ export declare function fileInfoToUploadValue(fileInfo: FileInfo): MciUploadFileValue;
22
+ export declare function createFileInfoFromFile(file: File, preview: string, status: FileInfo['status'], progress: number): FileInfo;
16
23
  export {};
@@ -0,0 +1,131 @@
1
+ import { DragEvent } from 'react';
2
+ import { UploadLocale } from '../../lib/uploadLanguage';
3
+ import { FileInfo, MciUploadFileValue } from '../../types/ui/upload.types';
4
+ export interface UseMciUploadOptions {
5
+ multiple?: boolean;
6
+ accept?: string;
7
+ maxSize?: number;
8
+ maxFiles?: number;
9
+ disabled?: boolean;
10
+ defaultValue?: MciUploadFileValue | MciUploadFileValue[];
11
+ value?: MciUploadFileValue | MciUploadFileValue[];
12
+ onFilesChange?: (files: File[]) => void;
13
+ onValueChange?: (files: MciUploadFileValue[]) => void;
14
+ onUpload?: (files: FileInfo[]) => Promise<void>;
15
+ locale?: UploadLocale;
16
+ variant?: 'yellow' | 'blue' | 'orange';
17
+ darkMode?: boolean;
18
+ customValidator?: (file: File) => string | null;
19
+ }
20
+ export declare function useMciUpload({ multiple, accept, maxSize, maxFiles, disabled, defaultValue, value, onFilesChange, onValueChange, onUpload, locale, variant, darkMode, customValidator, }: UseMciUploadOptions): {
21
+ files: FileInfo[];
22
+ isDragging: boolean;
23
+ isUploading: boolean;
24
+ fileInputRef: import('react').RefObject<HTMLInputElement | null>;
25
+ t: import('../../lib/uploadLanguage').UploadLanguage;
26
+ theme: {
27
+ readonly dropBorder: "border-blue-200 hover:border-blue-300";
28
+ readonly dropBg: "bg-blue-50/40 hover:bg-blue-50/60";
29
+ readonly dropActive: "border-blue-600 bg-blue-50";
30
+ readonly iconWrap: "text-blue-600";
31
+ readonly title: "text-blue-600";
32
+ readonly hint: "text-slate-500";
33
+ readonly progressFill: "bg-blue-600";
34
+ readonly fileIconImg: "bg-blue-50 text-blue-600";
35
+ readonly fileIconDoc: "bg-green-50 text-green-600";
36
+ readonly buttonIconBg: "bg-blue-50";
37
+ readonly buttonIcon: "text-slate-600";
38
+ readonly buttonText: "text-slate-600";
39
+ readonly buttonBorder: "border-slate-200 hover:border-slate-300";
40
+ readonly buttonBg: "bg-white";
41
+ } | {
42
+ readonly dropBorder: "border-yellow-300 hover:border-yellow-400";
43
+ readonly dropBg: "bg-yellow-50/60 hover:bg-yellow-100/60";
44
+ readonly dropActive: "border-yellow-500 bg-yellow-100/80";
45
+ readonly iconWrap: "text-yellow-600";
46
+ readonly title: "text-yellow-700";
47
+ readonly hint: "text-slate-500";
48
+ readonly progressFill: "bg-yellow-500";
49
+ readonly fileIconImg: "bg-blue-50 text-blue-600";
50
+ readonly fileIconDoc: "bg-green-50 text-green-600";
51
+ readonly buttonIconBg: "bg-yellow-50";
52
+ readonly buttonIcon: "text-slate-600";
53
+ readonly buttonText: "text-slate-600";
54
+ readonly buttonBorder: "border-slate-200 hover:border-slate-300";
55
+ readonly buttonBg: "bg-white";
56
+ } | {
57
+ readonly dropBorder: "border-orange-200 hover:border-orange-300";
58
+ readonly dropBg: "bg-orange-50/40 hover:bg-orange-50/60";
59
+ readonly dropActive: "border-orange-600 bg-orange-50";
60
+ readonly iconWrap: "text-orange-600";
61
+ readonly title: "text-orange-600";
62
+ readonly hint: "text-slate-500";
63
+ readonly progressFill: "bg-orange-600";
64
+ readonly fileIconImg: "bg-orange-50 text-orange-600";
65
+ readonly fileIconDoc: "bg-green-50 text-green-600";
66
+ readonly buttonIconBg: "bg-slate-100";
67
+ readonly buttonIcon: "text-slate-600";
68
+ readonly buttonText: "text-slate-600";
69
+ readonly buttonBorder: "border-slate-200 hover:border-slate-300";
70
+ readonly buttonBg: "bg-white";
71
+ } | {
72
+ readonly dropBorder: "border-blue-800 hover:border-blue-700";
73
+ readonly dropBg: "bg-blue-950/40 hover:bg-blue-950/60";
74
+ readonly dropActive: "border-blue-500 bg-blue-950/60";
75
+ readonly iconWrap: "text-blue-400";
76
+ readonly title: "text-blue-400";
77
+ readonly hint: "text-slate-400";
78
+ readonly progressFill: "bg-blue-500";
79
+ readonly fileIconImg: "bg-blue-950 text-blue-400";
80
+ readonly fileIconDoc: "bg-green-950 text-green-400";
81
+ readonly buttonIconBg: "bg-slate-800";
82
+ readonly buttonIcon: "text-slate-300";
83
+ readonly buttonText: "text-slate-300";
84
+ readonly buttonBorder: "border-neutral-700 hover:border-neutral-600";
85
+ readonly buttonBg: "bg-neutral-900";
86
+ } | {
87
+ readonly dropBorder: "border-yellow-700 hover:border-yellow-600";
88
+ readonly dropBg: "bg-yellow-950/45 hover:bg-yellow-950/65";
89
+ readonly dropActive: "border-yellow-500 bg-yellow-950/70";
90
+ readonly iconWrap: "text-yellow-300";
91
+ readonly title: "text-yellow-300";
92
+ readonly hint: "text-slate-400";
93
+ readonly progressFill: "bg-yellow-400";
94
+ readonly fileIconImg: "bg-blue-950 text-blue-400";
95
+ readonly fileIconDoc: "bg-green-950 text-green-400";
96
+ readonly buttonIconBg: "bg-slate-800";
97
+ readonly buttonIcon: "text-slate-300";
98
+ readonly buttonText: "text-slate-300";
99
+ readonly buttonBorder: "border-neutral-700 hover:border-neutral-600";
100
+ readonly buttonBg: "bg-neutral-900";
101
+ } | {
102
+ readonly dropBorder: "border-orange-800 hover:border-orange-700";
103
+ readonly dropBg: "bg-orange-950/40 hover:bg-orange-950/60";
104
+ readonly dropActive: "border-orange-600 bg-orange-950/60";
105
+ readonly iconWrap: "text-orange-400";
106
+ readonly title: "text-orange-400";
107
+ readonly hint: "text-slate-400";
108
+ readonly progressFill: "bg-orange-600";
109
+ readonly fileIconImg: "bg-orange-950 text-orange-400";
110
+ readonly fileIconDoc: "bg-green-950 text-green-400";
111
+ readonly buttonIconBg: "bg-slate-800";
112
+ readonly buttonIcon: "text-slate-300";
113
+ readonly buttonText: "text-slate-300";
114
+ readonly buttonBorder: "border-neutral-700 hover:border-neutral-600";
115
+ readonly buttonBg: "bg-neutral-900";
116
+ };
117
+ secureAccept: string;
118
+ allowedFormatsHint: string;
119
+ multiple: boolean;
120
+ maxFiles: number;
121
+ maxSize: number;
122
+ disabled: boolean;
123
+ handleDragOver: (e: DragEvent) => void;
124
+ handleDragLeave: (e: DragEvent) => void;
125
+ handleDrop: (e: DragEvent) => void;
126
+ handleFileInput: (e: React.ChangeEvent<HTMLInputElement>) => void;
127
+ handleRemoveFile: (id: string) => void;
128
+ handleClearAll: () => void;
129
+ handleUploadClick: () => void;
130
+ openPreview: (fileInfo: FileInfo) => void;
131
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mci-ui/mci-ui",
3
3
  "private": false,
4
- "version": "0.0.94",
4
+ "version": "0.0.96",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",