@juspay/blend-design-system 0.0.21-beta → 0.0.21
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/dist/components/Accordion/types.d.ts +0 -1
- package/dist/components/KeyValuePair/types.d.ts +23 -0
- package/dist/components/KeyValuePair/utils.d.ts +23 -0
- package/dist/components/Stepper/HorizonatlLine.d.ts +6 -0
- package/dist/components/Stepper/HorizontalStepper.d.ts +4 -0
- package/dist/components/Stepper/Stepper.d.ts +3 -0
- package/dist/components/Stepper/StepperLine.d.ts +6 -0
- package/dist/components/Stepper/VerticalLine.d.ts +5 -0
- package/dist/components/Stepper/VerticalStepper.d.ts +3 -0
- package/dist/components/Stepper/index.d.ts +2 -0
- package/dist/components/Stepper/stepper.tokens.d.ts +67 -0
- package/dist/components/Stepper/types.d.ts +48 -0
- package/dist/components/Upload/Upload.d.ts +4 -0
- package/dist/components/Upload/components/DefaultState.d.ts +10 -0
- package/dist/components/Upload/components/ErrorState.d.ts +14 -0
- package/dist/components/Upload/components/FileListDisplay.d.ts +11 -0
- package/dist/components/Upload/components/MixedState.d.ts +13 -0
- package/dist/components/Upload/components/SuccessState.d.ts +14 -0
- package/dist/components/Upload/components/UploadingState.d.ts +13 -0
- package/dist/components/Upload/components/index.d.ts +6 -0
- package/dist/components/Upload/index.d.ts +2 -0
- package/dist/components/Upload/types.d.ts +56 -0
- package/dist/components/Upload/upload.tokens.d.ts +101 -0
- package/dist/components/Upload/utils.d.ts +114 -0
- package/dist/context/ThemeContext.d.ts +5 -1
- package/dist/context/useComponentToken.d.ts +3 -1
- package/dist/main.d.ts +2 -0
- package/dist/main.js +17779 -15140
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ export declare enum KeyValuePairSize {
|
|
|
7
7
|
MEDIUM = "md",
|
|
8
8
|
LARGE = "lg"
|
|
9
9
|
}
|
|
10
|
+
export type TextOverflowMode = 'truncate' | 'wrap' | 'wrap-clamp';
|
|
10
11
|
export type KeyValuePairPropTypes = {
|
|
11
12
|
keyString: string;
|
|
12
13
|
size?: KeyValuePairSize;
|
|
@@ -16,4 +17,26 @@ export type KeyValuePairPropTypes = {
|
|
|
16
17
|
valueRightSlot?: React.ReactNode;
|
|
17
18
|
keyValuePairState?: KeyValuePairStateType;
|
|
18
19
|
maxWidth?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Controls how text overflow is handled for both key and value
|
|
22
|
+
* - 'truncate': Single line with ellipsis (default, all browsers)
|
|
23
|
+
* - 'wrap': Allow natural text wrapping (all browsers)
|
|
24
|
+
* - 'wrap-clamp': Wrap with line limit and ellipsis (Chrome/Edge/Safari/Firefox 68+, graceful fallback for older browsers)
|
|
25
|
+
*
|
|
26
|
+
* Note: 'wrap-clamp' uses -webkit-line-clamp which is widely supported but non-standard.
|
|
27
|
+
* In unsupported browsers, text will wrap naturally without the line limit.
|
|
28
|
+
*
|
|
29
|
+
* @default 'truncate'
|
|
30
|
+
*/
|
|
31
|
+
textOverflow?: TextOverflowMode;
|
|
32
|
+
/**
|
|
33
|
+
* Maximum number of lines to display when textOverflow is 'wrap-clamp'
|
|
34
|
+
* @default 2
|
|
35
|
+
*/
|
|
36
|
+
maxLines?: number;
|
|
37
|
+
/**
|
|
38
|
+
* Show tooltip on hover when text is truncated
|
|
39
|
+
* @default true
|
|
40
|
+
*/
|
|
41
|
+
showTooltipOnTruncate?: boolean;
|
|
19
42
|
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { CSSObject } from 'styled-components';
|
|
2
|
+
import { TextOverflowMode, KeyValuePairStateType } from './types';
|
|
3
|
+
import { KeyValuePairTokensType } from './KeyValuePair.tokens';
|
|
4
|
+
/**
|
|
5
|
+
* Get text styles based on overflow mode
|
|
6
|
+
*/
|
|
7
|
+
export declare const getTextStyles: (textOverflow: TextOverflowMode, maxLines: number) => CSSObject;
|
|
8
|
+
/**
|
|
9
|
+
* Get PrimitiveText styles based on overflow mode
|
|
10
|
+
*/
|
|
11
|
+
export declare const getPrimitiveTextStyles: (textOverflow: TextOverflowMode) => CSSObject;
|
|
12
|
+
/**
|
|
13
|
+
* Get container styles based on text overflow mode and max width
|
|
14
|
+
*/
|
|
15
|
+
export declare const getContainerStyles: (textOverflow: TextOverflowMode, maxWidth: string) => CSSObject;
|
|
16
|
+
/**
|
|
17
|
+
* Get flex direction and gap based on layout state
|
|
18
|
+
*/
|
|
19
|
+
export declare const getLayoutStyles: (keyValuePairState: KeyValuePairStateType, keyValuePairTokens: KeyValuePairTokensType) => CSSObject;
|
|
20
|
+
/**
|
|
21
|
+
* Get slot container styles
|
|
22
|
+
*/
|
|
23
|
+
export declare const getSlotStyles: () => CSSObject;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { CSSObject } from 'styled-components';
|
|
2
|
+
import { FoundationTokenType } from '../../tokens/theme.token';
|
|
3
|
+
import { BreakpointType } from '../../breakpoints/breakPoints';
|
|
4
|
+
import { StepState } from './types';
|
|
5
|
+
export type StepperState = 'default' | 'hover' | 'focus' | 'disabled';
|
|
6
|
+
export type StepperTokensType = {
|
|
7
|
+
container: {
|
|
8
|
+
default: {
|
|
9
|
+
gap: CSSObject['gap'];
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
step: {
|
|
13
|
+
circle: {
|
|
14
|
+
[key in StepState]: {
|
|
15
|
+
[key in StepperState]: {
|
|
16
|
+
backgroundColor: CSSObject['backgroundColor'];
|
|
17
|
+
borderColor: CSSObject['borderColor'];
|
|
18
|
+
borderWidth: CSSObject['borderWidth'];
|
|
19
|
+
borderRadius: CSSObject['borderRadius'];
|
|
20
|
+
size: CSSObject['width'];
|
|
21
|
+
transition: CSSObject['transition'];
|
|
22
|
+
outline: CSSObject['outline'];
|
|
23
|
+
outlineOffset: CSSObject['outlineOffset'];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
icon: {
|
|
28
|
+
[key in StepState]: {
|
|
29
|
+
[key in StepperState]: {
|
|
30
|
+
color: CSSObject['color'];
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
connector: {
|
|
36
|
+
line: {
|
|
37
|
+
active: {
|
|
38
|
+
default: {
|
|
39
|
+
color: CSSObject['color'];
|
|
40
|
+
height: CSSObject['height'];
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
inactive: {
|
|
44
|
+
default: {
|
|
45
|
+
color: CSSObject['color'];
|
|
46
|
+
height: CSSObject['height'];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
title: {
|
|
52
|
+
text: {
|
|
53
|
+
[key in StepState]: {
|
|
54
|
+
[key in StepperState]: {
|
|
55
|
+
color: CSSObject['color'];
|
|
56
|
+
fontSize: CSSObject['fontSize'];
|
|
57
|
+
fontWeight: CSSObject['fontWeight'];
|
|
58
|
+
gap: CSSObject['gap'];
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
export type ResponsiveStepperTokens = {
|
|
65
|
+
[key in keyof BreakpointType]: StepperTokensType;
|
|
66
|
+
};
|
|
67
|
+
export declare const getStepperTokens: (foundationToken: FoundationTokenType) => ResponsiveStepperTokens;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export declare enum StepState {
|
|
3
|
+
COMPLETED = "completed",
|
|
4
|
+
CURRENT = "current",
|
|
5
|
+
PENDING = "pending",
|
|
6
|
+
DISABLED = "disabled",
|
|
7
|
+
SKIPPED = "skipped"
|
|
8
|
+
}
|
|
9
|
+
export declare enum StepperType {
|
|
10
|
+
HORIZONTAL = "horizontal",
|
|
11
|
+
VERTICAL = "vertical"
|
|
12
|
+
}
|
|
13
|
+
export type StepperProps = {
|
|
14
|
+
steps: Step[];
|
|
15
|
+
onStepClick?: (stepIndex: number) => void;
|
|
16
|
+
onSubstepClick?: (stepId: number, substepIndex: number) => void;
|
|
17
|
+
clickable?: boolean;
|
|
18
|
+
stepperType?: StepperType;
|
|
19
|
+
};
|
|
20
|
+
export type SubStep = {
|
|
21
|
+
id: number;
|
|
22
|
+
title: string;
|
|
23
|
+
status?: StepState;
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export type Step = {
|
|
27
|
+
id: number;
|
|
28
|
+
title: string;
|
|
29
|
+
status?: StepState;
|
|
30
|
+
disabled?: boolean;
|
|
31
|
+
description?: string;
|
|
32
|
+
icon?: ReactNode;
|
|
33
|
+
substeps?: SubStep[];
|
|
34
|
+
isExpandable?: boolean;
|
|
35
|
+
isExpanded?: boolean;
|
|
36
|
+
};
|
|
37
|
+
export type StepProps = {
|
|
38
|
+
step: Step;
|
|
39
|
+
stepIndex: number;
|
|
40
|
+
isCompleted: boolean;
|
|
41
|
+
isCurrent: boolean;
|
|
42
|
+
isLast: boolean;
|
|
43
|
+
isFirst: boolean;
|
|
44
|
+
onClick?: (stepIndex: number) => void;
|
|
45
|
+
onSubstepClick?: (stepIndex: number, substepIndex: number) => void;
|
|
46
|
+
clickable?: boolean;
|
|
47
|
+
currentSubsteps?: Record<string, number>;
|
|
48
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { UploadTokenType } from '../upload.tokens';
|
|
3
|
+
type DefaultStateProps = {
|
|
4
|
+
children?: React.ReactNode;
|
|
5
|
+
description?: string;
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
uploadTokens: UploadTokenType;
|
|
8
|
+
};
|
|
9
|
+
declare const DefaultState: React.FC<DefaultStateProps>;
|
|
10
|
+
export default DefaultState;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { UploadedFileWithStatus } from '../types';
|
|
3
|
+
import { UploadTokenType } from '../upload.tokens';
|
|
4
|
+
type ErrorStateProps = {
|
|
5
|
+
errorFiles: UploadedFileWithStatus[];
|
|
6
|
+
multiple: boolean;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
errorText?: string;
|
|
9
|
+
onFileRemove?: (fileId: string) => void;
|
|
10
|
+
uploadTokens: UploadTokenType;
|
|
11
|
+
maxFiles?: number;
|
|
12
|
+
};
|
|
13
|
+
declare const ErrorState: React.FC<ErrorStateProps>;
|
|
14
|
+
export default ErrorState;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { UploadedFileWithStatus } from '../types';
|
|
3
|
+
import { UploadTokenType } from '../upload.tokens';
|
|
4
|
+
type FileListDisplayProps = {
|
|
5
|
+
files: UploadedFileWithStatus[];
|
|
6
|
+
onFileRemove?: (fileId: string) => void;
|
|
7
|
+
uploadTokens: UploadTokenType;
|
|
8
|
+
maxFiles?: number;
|
|
9
|
+
};
|
|
10
|
+
declare const FileListDisplay: React.FC<FileListDisplayProps>;
|
|
11
|
+
export default FileListDisplay;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { UploadedFileWithStatus } from '../types';
|
|
3
|
+
import { UploadTokenType } from '../upload.tokens';
|
|
4
|
+
type MixedStateProps = {
|
|
5
|
+
successfulFiles: UploadedFileWithStatus[];
|
|
6
|
+
errorFiles: UploadedFileWithStatus[];
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
onFileRemove?: (fileId: string) => void;
|
|
9
|
+
uploadTokens: UploadTokenType;
|
|
10
|
+
maxFiles?: number;
|
|
11
|
+
};
|
|
12
|
+
declare const MixedState: React.FC<MixedStateProps>;
|
|
13
|
+
export default MixedState;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { UploadedFileWithStatus } from '../types';
|
|
3
|
+
import { UploadTokenType } from '../upload.tokens';
|
|
4
|
+
type SuccessStateProps = {
|
|
5
|
+
successfulFiles: UploadedFileWithStatus[];
|
|
6
|
+
multiple: boolean;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
onReplaceFile?: () => void;
|
|
9
|
+
onFileRemove?: (fileId: string) => void;
|
|
10
|
+
uploadTokens: UploadTokenType;
|
|
11
|
+
maxFiles?: number;
|
|
12
|
+
};
|
|
13
|
+
declare const SuccessState: React.FC<SuccessStateProps>;
|
|
14
|
+
export default SuccessState;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { UploadTokenType } from '../upload.tokens';
|
|
3
|
+
type UploadingStateProps = {
|
|
4
|
+
uploadingFile: {
|
|
5
|
+
file: File;
|
|
6
|
+
progress: number;
|
|
7
|
+
};
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
description?: string;
|
|
10
|
+
uploadTokens: UploadTokenType;
|
|
11
|
+
};
|
|
12
|
+
declare const UploadingState: React.FC<UploadingStateProps>;
|
|
13
|
+
export default UploadingState;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as FileListDisplay } from './FileListDisplay';
|
|
2
|
+
export { default as UploadingState } from './UploadingState';
|
|
3
|
+
export { default as SuccessState } from './SuccessState';
|
|
4
|
+
export { default as MixedState } from './MixedState';
|
|
5
|
+
export { default as ErrorState } from './ErrorState';
|
|
6
|
+
export { default as DefaultState } from './DefaultState';
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export declare enum UploadState {
|
|
3
|
+
IDLE = "idle",
|
|
4
|
+
UPLOADING = "uploading",
|
|
5
|
+
SUCCESS = "success",
|
|
6
|
+
ERROR = "error"
|
|
7
|
+
}
|
|
8
|
+
export type FileRejection = {
|
|
9
|
+
file: File;
|
|
10
|
+
errors: Array<{
|
|
11
|
+
code: string;
|
|
12
|
+
message: string;
|
|
13
|
+
}>;
|
|
14
|
+
};
|
|
15
|
+
export type UploadFile = {
|
|
16
|
+
file: File;
|
|
17
|
+
progress: number;
|
|
18
|
+
status: UploadState;
|
|
19
|
+
id: string;
|
|
20
|
+
error?: string;
|
|
21
|
+
};
|
|
22
|
+
export type UploadedFileWithStatus = {
|
|
23
|
+
file: File;
|
|
24
|
+
id: string;
|
|
25
|
+
status: 'success' | 'error';
|
|
26
|
+
error?: string;
|
|
27
|
+
};
|
|
28
|
+
export type UploadProps = {
|
|
29
|
+
multiple?: boolean;
|
|
30
|
+
accept?: string[];
|
|
31
|
+
maxSize?: number;
|
|
32
|
+
maxFiles?: number;
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
required?: boolean;
|
|
35
|
+
label?: string;
|
|
36
|
+
subLabel?: string;
|
|
37
|
+
helpIconHintText?: string;
|
|
38
|
+
children?: React.ReactNode;
|
|
39
|
+
description?: string;
|
|
40
|
+
className?: string;
|
|
41
|
+
errorText?: string;
|
|
42
|
+
state?: UploadState;
|
|
43
|
+
uploadingFiles?: UploadFile[];
|
|
44
|
+
uploadedFiles?: UploadedFileWithStatus[];
|
|
45
|
+
failedFiles?: UploadedFileWithStatus[];
|
|
46
|
+
enforceFileTypeConsistency?: boolean;
|
|
47
|
+
onDrop?: (acceptedFiles: File[], fileRejections: FileRejection[]) => void;
|
|
48
|
+
onDropAccepted?: (files: File[]) => void;
|
|
49
|
+
onDropRejected?: (fileRejections: FileRejection[]) => void;
|
|
50
|
+
onFileRemove?: (fileId: string) => void;
|
|
51
|
+
onReplaceFile?: () => void;
|
|
52
|
+
isDragActive?: boolean;
|
|
53
|
+
isDragAccept?: boolean;
|
|
54
|
+
isDragReject?: boolean;
|
|
55
|
+
validator?: (file: File) => FileRejection['errors'][0] | null;
|
|
56
|
+
} & Omit<React.HTMLAttributes<HTMLDivElement>, 'onDrop' | 'onDragOver' | 'onDragLeave'>;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { CSSObject } from 'styled-components';
|
|
2
|
+
import { FoundationTokenType } from '../../tokens/theme.token';
|
|
3
|
+
import { BreakpointType } from '../../breakpoints/breakPoints';
|
|
4
|
+
export type UploadState = 'idle' | 'uploading' | 'success' | 'error' | 'dragActive';
|
|
5
|
+
/**
|
|
6
|
+
* Upload Tokens following the pattern: [target].CSSProp.[state]
|
|
7
|
+
*
|
|
8
|
+
* Structure:
|
|
9
|
+
* - target: wrapper | label | container | slot | text | progressContainer | fileList
|
|
10
|
+
* - CSSProp: padding | border | backgroundColor | fontSize | fontWeight | color | gap | margin
|
|
11
|
+
* - state: idle | uploading | success | error | dragActive (upload states)
|
|
12
|
+
*
|
|
13
|
+
* Hierarchy:
|
|
14
|
+
* - Wrapper: Outermost container with base padding
|
|
15
|
+
* - Label: Label section with text styling and spacing
|
|
16
|
+
* - Container: Upload box with state-dependent styling (border, background)
|
|
17
|
+
* - Slot: Content area with icon/content spacing
|
|
18
|
+
* - Text: Text styling for titles, descriptions, filenames, errors
|
|
19
|
+
* - ProgressContainer: Progress bar section with spacing
|
|
20
|
+
* - FileList: File list display with spacing and layout
|
|
21
|
+
*/
|
|
22
|
+
export type UploadTokenType = {
|
|
23
|
+
header: {
|
|
24
|
+
label: {
|
|
25
|
+
text: {
|
|
26
|
+
fontSize: CSSObject['fontSize'];
|
|
27
|
+
fontWeight: CSSObject['fontWeight'];
|
|
28
|
+
color: CSSObject['color'];
|
|
29
|
+
};
|
|
30
|
+
marginBottom: CSSObject['marginBottom'];
|
|
31
|
+
gap: CSSObject['gap'];
|
|
32
|
+
};
|
|
33
|
+
required: {
|
|
34
|
+
text: {
|
|
35
|
+
color: CSSObject['color'];
|
|
36
|
+
};
|
|
37
|
+
gap: CSSObject['gap'];
|
|
38
|
+
};
|
|
39
|
+
subLabel: {
|
|
40
|
+
text: {
|
|
41
|
+
fontSize: CSSObject['fontSize'];
|
|
42
|
+
fontWeight: CSSObject['fontWeight'];
|
|
43
|
+
color: CSSObject['color'];
|
|
44
|
+
};
|
|
45
|
+
gap: CSSObject['gap'];
|
|
46
|
+
};
|
|
47
|
+
helpIcon: {
|
|
48
|
+
width: CSSObject['width'];
|
|
49
|
+
color: CSSObject['color'];
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
container: {
|
|
53
|
+
border: {
|
|
54
|
+
idle: CSSObject['border'];
|
|
55
|
+
uploading: CSSObject['border'];
|
|
56
|
+
success: CSSObject['border'];
|
|
57
|
+
error: CSSObject['border'];
|
|
58
|
+
dragActive: CSSObject['border'];
|
|
59
|
+
};
|
|
60
|
+
backgroundColor: {
|
|
61
|
+
idle: CSSObject['backgroundColor'];
|
|
62
|
+
uploading: CSSObject['backgroundColor'];
|
|
63
|
+
success: CSSObject['backgroundColor'];
|
|
64
|
+
error: CSSObject['backgroundColor'];
|
|
65
|
+
dragActive: CSSObject['backgroundColor'];
|
|
66
|
+
};
|
|
67
|
+
borderRadius: CSSObject['borderRadius'];
|
|
68
|
+
padding: CSSObject['padding'];
|
|
69
|
+
content: {
|
|
70
|
+
slot: {
|
|
71
|
+
width: CSSObject['width'];
|
|
72
|
+
gap: CSSObject['gap'];
|
|
73
|
+
};
|
|
74
|
+
text: {
|
|
75
|
+
title: {
|
|
76
|
+
color: CSSObject['color'];
|
|
77
|
+
fontSize: CSSObject['fontSize'];
|
|
78
|
+
fontWeight: CSSObject['fontWeight'];
|
|
79
|
+
};
|
|
80
|
+
subtitle: {
|
|
81
|
+
color: CSSObject['color'];
|
|
82
|
+
fontSize: CSSObject['fontSize'];
|
|
83
|
+
fontWeight: CSSObject['fontWeight'];
|
|
84
|
+
};
|
|
85
|
+
gap: CSSObject['gap'];
|
|
86
|
+
};
|
|
87
|
+
actionable: {
|
|
88
|
+
gap: CSSObject['gap'];
|
|
89
|
+
errorText: {
|
|
90
|
+
color: CSSObject['color'];
|
|
91
|
+
fontSize: CSSObject['fontSize'];
|
|
92
|
+
fontWeight: CSSObject['fontWeight'];
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
export type ResponsiveUploadTokens = {
|
|
99
|
+
[key in keyof BreakpointType]: UploadTokenType;
|
|
100
|
+
};
|
|
101
|
+
export declare const getUploadTokens: (foundationToken: FoundationTokenType) => ResponsiveUploadTokens;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { FileRejection, UploadFile, UploadedFileWithStatus, UploadState } from './types';
|
|
3
|
+
export declare const useUploadState: () => {
|
|
4
|
+
internalDragState: {
|
|
5
|
+
isDragActive: boolean;
|
|
6
|
+
isDragAccept: boolean;
|
|
7
|
+
isDragReject: boolean;
|
|
8
|
+
};
|
|
9
|
+
setInternalDragState: React.Dispatch<React.SetStateAction<{
|
|
10
|
+
isDragActive: boolean;
|
|
11
|
+
isDragAccept: boolean;
|
|
12
|
+
isDragReject: boolean;
|
|
13
|
+
}>>;
|
|
14
|
+
setDragCounter: React.Dispatch<React.SetStateAction<number>>;
|
|
15
|
+
};
|
|
16
|
+
export declare const getVisualState: (disabled: boolean, isDragReject: boolean, isDragAccept: boolean, isDragActive: boolean) => string;
|
|
17
|
+
export declare const validateFile: (accept: string[], maxSize?: number, validator?: (file: File) => FileRejection["errors"][0] | null) => (file: File) => FileRejection["errors"];
|
|
18
|
+
export declare const processFiles: (disabled: boolean, validateFileFn: (file: File) => FileRejection["errors"], onDrop?: (acceptedFiles: File[], rejectedFiles: FileRejection[]) => void, onDropAccepted?: (files: File[]) => void, onDropRejected?: (rejections: FileRejection[]) => void) => (files: FileList) => void;
|
|
19
|
+
export declare const updateDragState: (controlledIsDragActive?: boolean, validateFileFn?: (file: File) => FileRejection["errors"], setInternalDragState?: (state: {
|
|
20
|
+
isDragActive: boolean;
|
|
21
|
+
isDragAccept: boolean;
|
|
22
|
+
isDragReject: boolean;
|
|
23
|
+
}) => void) => (isDragActive: boolean, files?: File[]) => void;
|
|
24
|
+
export declare const createDragHandlers: (disabled: boolean, setDragCounter: (fn: (prev: number) => number) => void, updateDragStateFn: (isDragActive: boolean, files?: File[]) => void, processFilesFn: (files: FileList) => void) => {
|
|
25
|
+
handleDragEnter: (e: React.DragEvent) => void;
|
|
26
|
+
handleDragLeave: (e: React.DragEvent) => void;
|
|
27
|
+
handleDragOver: (e: React.DragEvent) => void;
|
|
28
|
+
handleDrop: (e: React.DragEvent) => void;
|
|
29
|
+
};
|
|
30
|
+
export declare const createClickHandler: (disabled: boolean, fileInputRef: React.RefObject<HTMLInputElement>) => () => void;
|
|
31
|
+
export declare const createFileInputChangeHandler: (processFilesFn: (files: FileList) => void) => (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
32
|
+
export declare const getUploadContent: (uploadingFiles: UploadFile[], uploadedFiles: {
|
|
33
|
+
id: string;
|
|
34
|
+
file: File;
|
|
35
|
+
status: "success" | "error";
|
|
36
|
+
error?: string;
|
|
37
|
+
}[], failedFiles: {
|
|
38
|
+
id: string;
|
|
39
|
+
file: File;
|
|
40
|
+
status: "success" | "error";
|
|
41
|
+
error?: string;
|
|
42
|
+
}[], state: UploadState, multiple?: boolean) => {
|
|
43
|
+
hasUploadingFiles: boolean;
|
|
44
|
+
uploadingFile: UploadFile | undefined;
|
|
45
|
+
successfulFiles: {
|
|
46
|
+
id: string;
|
|
47
|
+
file: File;
|
|
48
|
+
status: "success" | "error";
|
|
49
|
+
error?: string;
|
|
50
|
+
}[];
|
|
51
|
+
errorFiles: {
|
|
52
|
+
id: string;
|
|
53
|
+
file: File;
|
|
54
|
+
status: "success" | "error";
|
|
55
|
+
error?: string;
|
|
56
|
+
}[];
|
|
57
|
+
hasSuccessfulFiles: boolean;
|
|
58
|
+
hasErrorFiles: boolean;
|
|
59
|
+
isSuccess: boolean;
|
|
60
|
+
isError: boolean;
|
|
61
|
+
multiple: boolean;
|
|
62
|
+
};
|
|
63
|
+
export declare const getMainTitle: (isDragActive: boolean, isDragAccept: boolean) => string;
|
|
64
|
+
export declare const getUploadStateTitle: (state: UploadState, multiple: boolean, hasSuccessfulFiles: boolean, hasErrorFiles: boolean, fileName?: string) => string;
|
|
65
|
+
export declare const getUploadStateDescription: (state: UploadState, multiple: boolean, successfulFiles: {
|
|
66
|
+
id: string;
|
|
67
|
+
file: File;
|
|
68
|
+
status: string;
|
|
69
|
+
}[], errorFiles: {
|
|
70
|
+
id: string;
|
|
71
|
+
file: File;
|
|
72
|
+
status: string;
|
|
73
|
+
}[], userDescription?: string, fileName?: string) => string;
|
|
74
|
+
export declare const getVisualUploadState: (disabled: boolean, isDragReject: boolean, isDragAccept: boolean, isDragActive: boolean, state: UploadState) => string;
|
|
75
|
+
export declare const truncateFileList: (files: {
|
|
76
|
+
id: string;
|
|
77
|
+
file: File;
|
|
78
|
+
status: string;
|
|
79
|
+
}[]) => {
|
|
80
|
+
displayFiles: {
|
|
81
|
+
id: string;
|
|
82
|
+
file: File;
|
|
83
|
+
status: string;
|
|
84
|
+
}[];
|
|
85
|
+
truncatedCount: number;
|
|
86
|
+
};
|
|
87
|
+
export declare const createEnhancedValidator: (accept: string[], maxSize?: number, validator?: (file: File) => FileRejection["errors"][0] | null) => (file: File) => FileRejection["errors"];
|
|
88
|
+
export declare const createEnhancedProcessFiles: (uploadingFiles: UploadFile[], uploadedFiles: UploadedFileWithStatus[], failedFiles: UploadedFileWithStatus[]) => (files: File[]) => {
|
|
89
|
+
unique: File[];
|
|
90
|
+
duplicates: File[];
|
|
91
|
+
};
|
|
92
|
+
export declare const generateFileId: () => string;
|
|
93
|
+
export declare const createFileKey: (file: File) => string;
|
|
94
|
+
export declare const filterDuplicateFiles: (newFiles: File[], existingFiles: {
|
|
95
|
+
file: File;
|
|
96
|
+
}[]) => {
|
|
97
|
+
unique: File[];
|
|
98
|
+
duplicates: File[];
|
|
99
|
+
};
|
|
100
|
+
export declare const createDuplicateRejections: (files: File[]) => FileRejection[];
|
|
101
|
+
export declare const simulateFileUpload: (uploadFile: UploadFile, onProgressUpdate: (id: string, progress: number) => void, progressInterval?: number) => (() => void);
|
|
102
|
+
export declare const createEnhancedProcessFilesFn: (disabled: boolean, validateFileFn: (file: File) => FileRejection["errors"], checkDuplicatesFn: (files: File[]) => {
|
|
103
|
+
unique: File[];
|
|
104
|
+
duplicates: File[];
|
|
105
|
+
}, maxFiles?: number, onDrop?: (acceptedFiles: File[], rejectedFiles: FileRejection[]) => void, onDropAccepted?: (files: File[]) => void, onDropRejected?: (rejections: FileRejection[]) => void) => (files: FileList) => void;
|
|
106
|
+
export declare const createUploadManager: () => {
|
|
107
|
+
startUpload: (uploadFile: UploadFile, onProgress: (id: string, progress: number) => void, onComplete: (id: string) => void, progressInterval?: number) => (() => void);
|
|
108
|
+
cancelUpload: (uploadId: string) => void;
|
|
109
|
+
cancelAllUploads: () => void;
|
|
110
|
+
hasActiveUploads: () => boolean;
|
|
111
|
+
};
|
|
112
|
+
export declare const createComplexDropHandler: (multiple: boolean, maxFiles: number | undefined, disabled: boolean, uploadingFiles: UploadFile[], uploadedFiles: UploadedFileWithStatus[], failedFiles: UploadedFileWithStatus[], setInternalState: (state: UploadState) => void, setInternalUploadingFiles: React.Dispatch<React.SetStateAction<UploadFile[]>>, setInternalUploadedFiles: React.Dispatch<React.SetStateAction<UploadedFileWithStatus[]>>, setInternalFailedFiles: React.Dispatch<React.SetStateAction<UploadedFileWithStatus[]>>, uploadManager: ReturnType<typeof createUploadManager>) => (acceptedFiles: File[], rejectedFiles: FileRejection[]) => void;
|
|
113
|
+
export declare const createFileRemovalHandler: (setInternalUploadedFiles: React.Dispatch<React.SetStateAction<UploadedFileWithStatus[]>>, setInternalFailedFiles: React.Dispatch<React.SetStateAction<UploadedFileWithStatus[]>>, setInternalState: (state: UploadState) => void) => (fileId: string) => void;
|
|
114
|
+
export declare const createFileReplacementHandler: (setInternalState: (state: UploadState) => void, setInternalUploadedFiles: React.Dispatch<React.SetStateAction<UploadedFileWithStatus[]>>, setInternalFailedFiles: React.Dispatch<React.SetStateAction<UploadedFileWithStatus[]>>) => () => void;
|
|
@@ -34,10 +34,12 @@ import { ResponsiveTopbarTokens } from '../components/Topbar/topbar.tokens';
|
|
|
34
34
|
import { ResponsiveAvatarTokens } from '../components/Avatar/avatar.tokens';
|
|
35
35
|
import { ResponsiveAvatarGroupTokens } from '../components/AvatarGroup/avatarGroup.tokens';
|
|
36
36
|
import { ResponsiveSidebarTokens } from '../components/Sidebar/sidebar.tokens';
|
|
37
|
+
import { ResponsiveUploadTokens } from '../components/Upload/upload.tokens';
|
|
37
38
|
import { ResponsiveCodeBlockTokens } from '../components/CodeBlock/codeBlock.token';
|
|
38
39
|
import { ThemeType } from '../tokens';
|
|
39
|
-
import { BREAKPOINTS } from '../breakpoints/breakPoints';
|
|
40
40
|
import { ResponsiveSkeletonTokens } from '../components/Skeleton/skeleton.tokens';
|
|
41
|
+
import { BREAKPOINTS } from '../breakpoints/breakPoints';
|
|
42
|
+
import { ResponsiveStepperTokens } from '../components/Stepper/stepper.tokens';
|
|
41
43
|
export type ComponentTokenType = {
|
|
42
44
|
TAGS?: ResponsiveTagTokens;
|
|
43
45
|
SEARCH_INPUT?: ResponsiveSearchInputTokens;
|
|
@@ -69,6 +71,7 @@ export type ComponentTokenType = {
|
|
|
69
71
|
DRAWER?: ResponsiveDrawerTokens;
|
|
70
72
|
CHARTS?: ResponsiveChartTokens;
|
|
71
73
|
SNACKBAR?: ResponsiveSnackbarTokens;
|
|
74
|
+
STEPPER?: ResponsiveStepperTokens;
|
|
72
75
|
KEYVALUEPAIR?: ResponsiveKeyValuePairTokens;
|
|
73
76
|
CARD?: ResponsiveCardTokens;
|
|
74
77
|
SKELETON?: ResponsiveSkeletonTokens;
|
|
@@ -76,6 +79,7 @@ export type ComponentTokenType = {
|
|
|
76
79
|
AVATAR?: ResponsiveAvatarTokens;
|
|
77
80
|
AVATAR_GROUP?: ResponsiveAvatarGroupTokens;
|
|
78
81
|
SIDEBAR?: ResponsiveSidebarTokens;
|
|
82
|
+
UPLOAD?: ResponsiveUploadTokens;
|
|
79
83
|
CODE_BLOCK?: ResponsiveCodeBlockTokens;
|
|
80
84
|
};
|
|
81
85
|
type ThemeContextType = {
|
|
@@ -28,6 +28,7 @@ import { ResponsiveDrawerTokens } from '../components/Drawer/drawer.tokens';
|
|
|
28
28
|
import { ResponsiveSingleSelectTokens } from '../components/SingleSelect/singleSelect.tokens';
|
|
29
29
|
import { ResponsiveChartTokens } from '../components/Charts/chart.tokens';
|
|
30
30
|
import { ResponsiveSnackbarTokens } from '../components/Snackbar/snackbar.tokens';
|
|
31
|
+
import { ResponsiveStepperTokens } from '../components/Stepper/stepper.tokens';
|
|
31
32
|
import { ResponsiveKeyValuePairTokens } from '../components/KeyValuePair/KeyValuePair.tokens';
|
|
32
33
|
import { ResponsiveCardTokens } from '../components/Card/card.tokens';
|
|
33
34
|
import { ResponsiveSkeletonTokens } from '../components/Skeleton/skeleton.tokens';
|
|
@@ -36,5 +37,6 @@ import { ResponsiveAvatarTokens } from '../components/Avatar/avatar.tokens';
|
|
|
36
37
|
import { ResponsiveAvatarGroupTokens } from '../components/AvatarGroup/avatarGroup.tokens';
|
|
37
38
|
import { ResponsiveStatCardTokens } from '../components/StatCard/statcard.tokens';
|
|
38
39
|
import { ResponsiveSidebarTokens } from '../components/Sidebar/sidebar.tokens';
|
|
40
|
+
import { ResponsiveUploadTokens } from '../components/Upload/upload.tokens';
|
|
39
41
|
import { ResponsiveCodeBlockTokens } from '../components/CodeBlock/codeBlock.token';
|
|
40
|
-
export declare const useComponentToken: (component: keyof ComponentTokenType) => ResponsiveSearchInputTokens | ResponsiveTagTokens | ResponsiveTextAreaTokens | ResponsiveTextInputTokens | ResponsiveNumberInputTokens | ResponsiveAlertTokens | ResponsiveRadioTokens | ResponsiveOTPInputTokens | ResponsiveUnitInputTokens | ResponsiveMultiValueInputTokens | ResponsiveSwitchTokens | ResponsiveCheckboxTokens | ResponsiveTabsTokens | ResponsiveTooltipTokens | ResponsiveDropdownInputTokens | ResponsiveButtonTokens | ResponsiveModalTokens | ResponsiveBreadcrumbTokens | ResponsivePopoverTokens | ResponsiveMenuTokensType | ResponsiveMultiSelectTokens | ResponsiveSingleSelectTokens | ResponsiveTableTokens | ResponsiveCalendarTokens | ResponsiveAccordionTokens | ResponsiveStatCardTokens | ResponsiveProgressBarTokens | ResponsiveDrawerTokens | ResponsiveChartTokens | ResponsiveSnackbarTokens | ResponsiveKeyValuePairTokens | ResponsiveCardTokens | ResponsiveSkeletonTokens | ResponsiveTopbarTokens | ResponsiveAvatarTokens | ResponsiveAvatarGroupTokens | ResponsiveSidebarTokens | ResponsiveCodeBlockTokens;
|
|
42
|
+
export declare const useComponentToken: (component: keyof ComponentTokenType) => ResponsiveSearchInputTokens | ResponsiveTagTokens | ResponsiveTextAreaTokens | ResponsiveTextInputTokens | ResponsiveNumberInputTokens | ResponsiveAlertTokens | ResponsiveRadioTokens | ResponsiveOTPInputTokens | ResponsiveUnitInputTokens | ResponsiveMultiValueInputTokens | ResponsiveSwitchTokens | ResponsiveCheckboxTokens | ResponsiveTabsTokens | ResponsiveTooltipTokens | ResponsiveDropdownInputTokens | ResponsiveButtonTokens | ResponsiveModalTokens | ResponsiveBreadcrumbTokens | ResponsivePopoverTokens | ResponsiveMenuTokensType | ResponsiveMultiSelectTokens | ResponsiveSingleSelectTokens | ResponsiveTableTokens | ResponsiveCalendarTokens | ResponsiveAccordionTokens | ResponsiveStatCardTokens | ResponsiveProgressBarTokens | ResponsiveDrawerTokens | ResponsiveChartTokens | ResponsiveSnackbarTokens | ResponsiveStepperTokens | ResponsiveKeyValuePairTokens | ResponsiveCardTokens | ResponsiveSkeletonTokens | ResponsiveTopbarTokens | ResponsiveAvatarTokens | ResponsiveAvatarGroupTokens | ResponsiveSidebarTokens | ResponsiveUploadTokens | ResponsiveCodeBlockTokens;
|