@juspay/blend-design-system 0.0.20 → 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.
Files changed (42) hide show
  1. package/dist/components/Accordion/types.d.ts +0 -1
  2. package/dist/components/Button/Button.d.ts +0 -2
  3. package/dist/components/Button/types.d.ts +1 -3
  4. package/dist/components/CodeBlock/CodeBlock.d.ts +3 -0
  5. package/dist/components/CodeBlock/codeBlock.token.d.ts +90 -0
  6. package/dist/components/CodeBlock/index.d.ts +2 -0
  7. package/dist/components/CodeBlock/types.d.ts +25 -0
  8. package/dist/components/CodeBlock/utils.d.ts +38 -0
  9. package/dist/components/DataTable/DataTableHeader/types.d.ts +1 -0
  10. package/dist/components/DataTable/types.d.ts +1 -0
  11. package/dist/components/Directory/types.d.ts +1 -0
  12. package/dist/components/Inputs/OTPInput/OTPInput.d.ts +1 -1
  13. package/dist/components/Inputs/OTPInput/types.d.ts +1 -0
  14. package/dist/components/KeyValuePair/types.d.ts +23 -0
  15. package/dist/components/KeyValuePair/utils.d.ts +23 -0
  16. package/dist/components/Snackbar/snackbar.tokens.d.ts +0 -1
  17. package/dist/components/Stepper/HorizonatlLine.d.ts +6 -0
  18. package/dist/components/Stepper/HorizontalStepper.d.ts +4 -0
  19. package/dist/components/Stepper/Stepper.d.ts +3 -0
  20. package/dist/components/Stepper/StepperLine.d.ts +6 -0
  21. package/dist/components/Stepper/VerticalLine.d.ts +5 -0
  22. package/dist/components/Stepper/VerticalStepper.d.ts +3 -0
  23. package/dist/components/Stepper/index.d.ts +2 -0
  24. package/dist/components/Stepper/stepper.tokens.d.ts +67 -0
  25. package/dist/components/Stepper/types.d.ts +48 -0
  26. package/dist/components/Upload/Upload.d.ts +4 -0
  27. package/dist/components/Upload/components/DefaultState.d.ts +10 -0
  28. package/dist/components/Upload/components/ErrorState.d.ts +14 -0
  29. package/dist/components/Upload/components/FileListDisplay.d.ts +11 -0
  30. package/dist/components/Upload/components/MixedState.d.ts +13 -0
  31. package/dist/components/Upload/components/SuccessState.d.ts +14 -0
  32. package/dist/components/Upload/components/UploadingState.d.ts +13 -0
  33. package/dist/components/Upload/components/index.d.ts +6 -0
  34. package/dist/components/Upload/index.d.ts +2 -0
  35. package/dist/components/Upload/types.d.ts +56 -0
  36. package/dist/components/Upload/upload.tokens.d.ts +101 -0
  37. package/dist/components/Upload/utils.d.ts +114 -0
  38. package/dist/context/ThemeContext.d.ts +7 -1
  39. package/dist/context/useComponentToken.d.ts +4 -1
  40. package/dist/main.d.ts +2 -0
  41. package/dist/main.js +18951 -16026
  42. package/package.json +1 -1
@@ -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,9 +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';
38
+ import { ResponsiveCodeBlockTokens } from '../components/CodeBlock/codeBlock.token';
37
39
  import { ThemeType } from '../tokens';
38
- import { BREAKPOINTS } from '../breakpoints/breakPoints';
39
40
  import { ResponsiveSkeletonTokens } from '../components/Skeleton/skeleton.tokens';
41
+ import { BREAKPOINTS } from '../breakpoints/breakPoints';
42
+ import { ResponsiveStepperTokens } from '../components/Stepper/stepper.tokens';
40
43
  export type ComponentTokenType = {
41
44
  TAGS?: ResponsiveTagTokens;
42
45
  SEARCH_INPUT?: ResponsiveSearchInputTokens;
@@ -68,6 +71,7 @@ export type ComponentTokenType = {
68
71
  DRAWER?: ResponsiveDrawerTokens;
69
72
  CHARTS?: ResponsiveChartTokens;
70
73
  SNACKBAR?: ResponsiveSnackbarTokens;
74
+ STEPPER?: ResponsiveStepperTokens;
71
75
  KEYVALUEPAIR?: ResponsiveKeyValuePairTokens;
72
76
  CARD?: ResponsiveCardTokens;
73
77
  SKELETON?: ResponsiveSkeletonTokens;
@@ -75,6 +79,8 @@ export type ComponentTokenType = {
75
79
  AVATAR?: ResponsiveAvatarTokens;
76
80
  AVATAR_GROUP?: ResponsiveAvatarGroupTokens;
77
81
  SIDEBAR?: ResponsiveSidebarTokens;
82
+ UPLOAD?: ResponsiveUploadTokens;
83
+ CODE_BLOCK?: ResponsiveCodeBlockTokens;
78
84
  };
79
85
  type ThemeContextType = {
80
86
  foundationTokens: ThemeType;
@@ -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,4 +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';
39
- 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;
40
+ import { ResponsiveUploadTokens } from '../components/Upload/upload.tokens';
41
+ import { ResponsiveCodeBlockTokens } from '../components/CodeBlock/codeBlock.token';
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;
package/dist/main.d.ts CHANGED
@@ -29,9 +29,11 @@ export * from './components/SingleSelect';
29
29
  export * from './components/Slider';
30
30
  export * from './components/ProgressBar';
31
31
  export * from './components/Drawer';
32
+ export * from './components/Stepper';
32
33
  export * from './components/Skeleton';
33
34
  export * from './components/KeyValuePair';
34
35
  export * from './components/VirtualList';
36
+ export * from './components/Upload';
35
37
  export * from './components/ButtonGroup';
36
38
  export * from './components/Button';
37
39
  export * from './context';