@kwik-id/sdk-react 0.1.0-alpha.3
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 +311 -0
- package/dist/assets/animations/id_scan.json.d.ts +3250 -0
- package/dist/assets/animations/selfie.json.d.ts +3269 -0
- package/dist/assets/image-processor.worker-B6Di_lR_.js +1 -0
- package/dist/components/themed-photo-back-svg.d.ts +4 -0
- package/dist/components/themed-photo-back-svg.d.ts.map +1 -0
- package/dist/components/themed-welcome-svg.d.ts +4 -0
- package/dist/components/themed-welcome-svg.d.ts.map +1 -0
- package/dist/context/kwik-id-context.d.ts +125 -0
- package/dist/context/kwik-id-context.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +16 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/kwik-id-context.d.ts +53 -0
- package/dist/hooks/kwik-id-context.d.ts.map +1 -0
- package/dist/hooks/use-camera.d.ts +64 -0
- package/dist/hooks/use-camera.d.ts.map +1 -0
- package/dist/hooks/use-face-detection.d.ts +68 -0
- package/dist/hooks/use-face-detection.d.ts.map +1 -0
- package/dist/hooks/use-handoff.d.ts +19 -0
- package/dist/hooks/use-handoff.d.ts.map +1 -0
- package/dist/hooks/use-kwik-id.d.ts +27 -0
- package/dist/hooks/use-kwik-id.d.ts.map +1 -0
- package/dist/hooks/use-liveness.d.ts +73 -0
- package/dist/hooks/use-liveness.d.ts.map +1 -0
- package/dist/hooks/use-quality.d.ts +59 -0
- package/dist/hooks/use-quality.d.ts.map +1 -0
- package/dist/hooks/use-verification.d.ts +80 -0
- package/dist/hooks/use-verification.d.ts.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8383 -0
- package/dist/services/api.service.d.ts +136 -0
- package/dist/services/api.service.d.ts.map +1 -0
- package/dist/services/index.d.ts +2 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/utils/image-compression.d.ts +25 -0
- package/dist/utils/image-compression.d.ts.map +1 -0
- package/dist/utils/image-quality.d.ts +37 -0
- package/dist/utils/image-quality.d.ts.map +1 -0
- package/dist/utils/image-worker.d.ts +14 -0
- package/dist/utils/image-worker.d.ts.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/upload-manager.d.ts +69 -0
- package/dist/utils/upload-manager.d.ts.map +1 -0
- package/dist/views/consent-step.d.ts +9 -0
- package/dist/views/consent-step.d.ts.map +1 -0
- package/dist/views/document-upload-step.d.ts +10 -0
- package/dist/views/document-upload-step.d.ts.map +1 -0
- package/dist/views/handoff-choice-view.d.ts +7 -0
- package/dist/views/handoff-choice-view.d.ts.map +1 -0
- package/dist/views/handoff-qr-view.d.ts +10 -0
- package/dist/views/handoff-qr-view.d.ts.map +1 -0
- package/dist/views/kid-branding.d.ts +3 -0
- package/dist/views/kid-branding.d.ts.map +1 -0
- package/dist/views/kwik-id.d.ts +50 -0
- package/dist/views/kwik-id.d.ts.map +1 -0
- package/dist/views/kyc-form.d.ts +2 -0
- package/dist/views/kyc-form.d.ts.map +1 -0
- package/dist/views/kyc-modal-flow.d.ts +10 -0
- package/dist/views/kyc-modal-flow.d.ts.map +1 -0
- package/dist/views/kyc-substeps/camera-capture.d.ts +11 -0
- package/dist/views/kyc-substeps/camera-capture.d.ts.map +1 -0
- package/dist/views/kyc-substeps/document-type-selection.d.ts +8 -0
- package/dist/views/kyc-substeps/document-type-selection.d.ts.map +1 -0
- package/dist/views/kyc-substeps/intro-step.d.ts +6 -0
- package/dist/views/kyc-substeps/intro-step.d.ts.map +1 -0
- package/dist/views/kyc-substeps/photo-confirmation.d.ts +10 -0
- package/dist/views/kyc-substeps/photo-confirmation.d.ts.map +1 -0
- package/dist/views/kyc-substeps/prepare-id-back.d.ts +8 -0
- package/dist/views/kyc-substeps/prepare-id-back.d.ts.map +1 -0
- package/dist/views/kyc-substeps/prepare-id-front.d.ts +8 -0
- package/dist/views/kyc-substeps/prepare-id-front.d.ts.map +1 -0
- package/dist/views/kyc-substeps/prepare-selfie.d.ts +6 -0
- package/dist/views/kyc-substeps/prepare-selfie.d.ts.map +1 -0
- package/dist/views/kyc-substeps/selfie-confirmation.d.ts +8 -0
- package/dist/views/kyc-substeps/selfie-confirmation.d.ts.map +1 -0
- package/dist/views/selfie-step.d.ts +10 -0
- package/dist/views/selfie-step.d.ts.map +1 -0
- package/dist/views/step-indicator.d.ts +13 -0
- package/dist/views/step-indicator.d.ts.map +1 -0
- package/dist/views/verification-step.d.ts +13 -0
- package/dist/views/verification-step.d.ts.map +1 -0
- package/dist/workers/image-processor.worker.d.ts +19 -0
- package/dist/workers/image-processor.worker.d.ts.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @deprecated This service is deprecated and should not be used.
|
|
3
|
+
*
|
|
4
|
+
* SECURITY WARNING: This service uses API keys directly from the frontend,
|
|
5
|
+
* which is insecure. API keys should NEVER be exposed in client-side code.
|
|
6
|
+
*
|
|
7
|
+
* CORRECT APPROACH:
|
|
8
|
+
* 1. Your backend creates a session via POST /api/v1/sessions (server-to-server)
|
|
9
|
+
* 2. Your backend returns the clientSecret (session token) to the frontend
|
|
10
|
+
* 3. Use the KwikID component with the clientSecret:
|
|
11
|
+
*
|
|
12
|
+
* ```tsx
|
|
13
|
+
* import { KwikID } from '@kwik-id/sdk-react';
|
|
14
|
+
*
|
|
15
|
+
* <KwikID config={{
|
|
16
|
+
* appName: "My App",
|
|
17
|
+
* clientSecret: clientSecretFromBackend, // NOT an API key!
|
|
18
|
+
* onComplete: (data) => console.log(data),
|
|
19
|
+
* }} />
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* The SDK now uses @kwik-id/sdk-core internally which handles API calls securely
|
|
23
|
+
* using the session token.
|
|
24
|
+
*/
|
|
25
|
+
export interface SessionResponse {
|
|
26
|
+
sessionToken: string;
|
|
27
|
+
jobId: string;
|
|
28
|
+
expiresAt: string;
|
|
29
|
+
}
|
|
30
|
+
export interface UploadResponse {
|
|
31
|
+
key: string;
|
|
32
|
+
documentType: string;
|
|
33
|
+
size: number;
|
|
34
|
+
uploadedAt: string;
|
|
35
|
+
}
|
|
36
|
+
export interface JobStatusResponse {
|
|
37
|
+
id: string;
|
|
38
|
+
status: string;
|
|
39
|
+
documentFrontUploaded: boolean;
|
|
40
|
+
documentBackUploaded: boolean;
|
|
41
|
+
selfieUploaded: boolean;
|
|
42
|
+
canSubmit: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface VerificationResultResponse {
|
|
45
|
+
id: string;
|
|
46
|
+
status: "pending" | "uploaded" | "processing" | "verified" | "failed" | "rejected";
|
|
47
|
+
isComplete: boolean;
|
|
48
|
+
result: {
|
|
49
|
+
verified: boolean;
|
|
50
|
+
livenessScore: number | null;
|
|
51
|
+
documentScore: number | null;
|
|
52
|
+
faceMatchScore: number | null;
|
|
53
|
+
errorCode: string | null;
|
|
54
|
+
errorMessage: string | null;
|
|
55
|
+
} | null;
|
|
56
|
+
}
|
|
57
|
+
export interface KwikIdConfig {
|
|
58
|
+
apiKey: string;
|
|
59
|
+
baseUrl?: string;
|
|
60
|
+
referenceId?: string;
|
|
61
|
+
userName?: string;
|
|
62
|
+
userEmail?: string;
|
|
63
|
+
onSessionCreated?: (session: SessionResponse) => void;
|
|
64
|
+
onUploadProgress?: (type: string, progress: number) => void;
|
|
65
|
+
onError?: (error: Error) => void;
|
|
66
|
+
}
|
|
67
|
+
export declare class KwikIdApiService {
|
|
68
|
+
private config;
|
|
69
|
+
private sessionToken;
|
|
70
|
+
private jobId;
|
|
71
|
+
private baseUrl;
|
|
72
|
+
constructor(config: KwikIdConfig);
|
|
73
|
+
/**
|
|
74
|
+
* Initialize a new verification session
|
|
75
|
+
* Called at the start of the KYC flow
|
|
76
|
+
* Uses the gateway's SDK endpoint
|
|
77
|
+
*/
|
|
78
|
+
initSession(): Promise<SessionResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* Upload a document image
|
|
81
|
+
* Uses gateway's SDK upload endpoints
|
|
82
|
+
*/
|
|
83
|
+
uploadDocument(file: File, type: "front" | "back" | "selfie"): Promise<UploadResponse>;
|
|
84
|
+
/**
|
|
85
|
+
* Upload with progress tracking using XMLHttpRequest
|
|
86
|
+
* Uses gateway's SDK upload endpoints
|
|
87
|
+
*/
|
|
88
|
+
uploadDocumentWithProgress(file: File, type: "front" | "back" | "selfie"): Promise<UploadResponse>;
|
|
89
|
+
/**
|
|
90
|
+
* Get current job status
|
|
91
|
+
* Uses gateway's SDK status endpoint
|
|
92
|
+
*/
|
|
93
|
+
getJobStatus(): Promise<JobStatusResponse>;
|
|
94
|
+
/**
|
|
95
|
+
* Submit job for verification
|
|
96
|
+
* Uses gateway's SDK submit endpoint
|
|
97
|
+
*/
|
|
98
|
+
submitForVerification(documentType?: string): Promise<{
|
|
99
|
+
id: string;
|
|
100
|
+
status: string;
|
|
101
|
+
message: string;
|
|
102
|
+
}>;
|
|
103
|
+
/**
|
|
104
|
+
* Poll for verification result
|
|
105
|
+
* Uses gateway's SDK result endpoint
|
|
106
|
+
*/
|
|
107
|
+
getVerificationResult(): Promise<VerificationResultResponse>;
|
|
108
|
+
/**
|
|
109
|
+
* Poll for verification completion
|
|
110
|
+
* Returns when verification is complete or timeout
|
|
111
|
+
*/
|
|
112
|
+
waitForVerification(options?: {
|
|
113
|
+
timeout?: number;
|
|
114
|
+
pollInterval?: number;
|
|
115
|
+
}): Promise<VerificationResultResponse>;
|
|
116
|
+
/**
|
|
117
|
+
* Get the current session token
|
|
118
|
+
*/
|
|
119
|
+
getSessionToken(): string | null;
|
|
120
|
+
/**
|
|
121
|
+
* Get the current job ID
|
|
122
|
+
*/
|
|
123
|
+
getJobId(): string | null;
|
|
124
|
+
/**
|
|
125
|
+
* Check if session is initialized
|
|
126
|
+
*/
|
|
127
|
+
isInitialized(): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Reset the session
|
|
130
|
+
*/
|
|
131
|
+
reset(): void;
|
|
132
|
+
}
|
|
133
|
+
export declare function initializeApiService(config: KwikIdConfig): KwikIdApiService;
|
|
134
|
+
export declare function getApiService(): KwikIdApiService | null;
|
|
135
|
+
export declare function resetApiService(): void;
|
|
136
|
+
//# sourceMappingURL=api.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.service.d.ts","sourceRoot":"","sources":["../../src/services/api.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface CompressionOptions {
|
|
2
|
+
maxSizeKB?: number;
|
|
3
|
+
maxWidth?: number;
|
|
4
|
+
maxHeight?: number;
|
|
5
|
+
quality?: number;
|
|
6
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp";
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Compress an image file to meet size requirements
|
|
10
|
+
* Recursively reduces quality until size is acceptable
|
|
11
|
+
*/
|
|
12
|
+
export declare function compressImage(file: File | Blob, options?: CompressionOptions): Promise<File>;
|
|
13
|
+
/**
|
|
14
|
+
* Convert a data URL to a File object
|
|
15
|
+
*/
|
|
16
|
+
export declare function dataUrlToFile(dataUrl: string, filename: string): File;
|
|
17
|
+
/**
|
|
18
|
+
* Convert a File/Blob to a data URL
|
|
19
|
+
*/
|
|
20
|
+
export declare function fileToDataUrl(file: File | Blob): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Get file size in human-readable format
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatFileSize(bytes: number): string;
|
|
25
|
+
//# sourceMappingURL=image-compression.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-compression.d.ts","sourceRoot":"","sources":["../../src/utils/image-compression.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;CACxD;AAUD;;;GAGG;AACH,wBAAsB,aAAa,CAC/B,IAAI,EAAE,IAAI,GAAG,IAAI,EACjB,OAAO,GAAE,kBAAuB,GACjC,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAuBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAYrE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Image Quality Detection Utilities
|
|
3
|
+
* Checks luminance and blur before capture
|
|
4
|
+
*/
|
|
5
|
+
export interface QualityCheckResult {
|
|
6
|
+
score: number;
|
|
7
|
+
isAcceptable: boolean;
|
|
8
|
+
message?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ImageQualityResult {
|
|
11
|
+
luminance: QualityCheckResult;
|
|
12
|
+
blur: QualityCheckResult;
|
|
13
|
+
overall: QualityCheckResult;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Check image luminance (brightness)
|
|
17
|
+
* Uses the formula: L = 0.299*R + 0.587*G + 0.114*B
|
|
18
|
+
*/
|
|
19
|
+
export declare function checkLuminance(imageData: ImageData): QualityCheckResult;
|
|
20
|
+
/**
|
|
21
|
+
* Check image blur using Laplacian variance
|
|
22
|
+
* Converts to grayscale, applies Laplacian kernel, calculates variance
|
|
23
|
+
*/
|
|
24
|
+
export declare function checkBlur(imageData: ImageData): QualityCheckResult;
|
|
25
|
+
/**
|
|
26
|
+
* Perform comprehensive quality check on image
|
|
27
|
+
*/
|
|
28
|
+
export declare function analyzeImageQuality(imageData: ImageData): ImageQualityResult;
|
|
29
|
+
/**
|
|
30
|
+
* Get ImageData from a video element (for live preview quality check)
|
|
31
|
+
*/
|
|
32
|
+
export declare function getImageDataFromVideo(video: HTMLVideoElement, canvas?: HTMLCanvasElement): ImageData | null;
|
|
33
|
+
/**
|
|
34
|
+
* Get ImageData from a File/Blob
|
|
35
|
+
*/
|
|
36
|
+
export declare function getImageDataFromFile(file: File | Blob): Promise<ImageData | null>;
|
|
37
|
+
//# sourceMappingURL=image-quality.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-quality.d.ts","sourceRoot":"","sources":["../../src/utils/image-quality.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,kBAAkB,CAAC;CAC/B;AAOD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB,CAmCvE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB,CA0DlE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB,CAuB5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,gBAAgB,EACvB,MAAM,CAAC,EAAE,iBAAiB,GAC3B,SAAS,GAAG,IAAI,CAWlB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CA+BvF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CompressionOptions } from './image-compression';
|
|
2
|
+
import { ImageQualityResult } from './image-quality';
|
|
3
|
+
/**
|
|
4
|
+
* Run luminance + blur quality analysis on a downscaled pixel buffer
|
|
5
|
+
* without blocking the main thread.
|
|
6
|
+
*/
|
|
7
|
+
export declare function analyzeQualityOffThread(data: Uint8ClampedArray, width: number, height: number): Promise<ImageQualityResult>;
|
|
8
|
+
/**
|
|
9
|
+
* Compress an image file off the main thread using OffscreenCanvas.
|
|
10
|
+
* Falls back to Compressor.js on the main thread if OffscreenCanvas
|
|
11
|
+
* is unavailable (older browsers).
|
|
12
|
+
*/
|
|
13
|
+
export declare function compressOffThread(file: File, options?: CompressionOptions): Promise<File>;
|
|
14
|
+
//# sourceMappingURL=image-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-worker.d.ts","sourceRoot":"","sources":["../../src/utils/image-worker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AA8C1D;;;GAGG;AACH,wBAAsB,uBAAuB,CACzC,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAI7B;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACnC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,kBAAuB,GACjC,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { KwikIdApiService, UploadResponse } from '../services/api.service';
|
|
2
|
+
export interface QueuedUpload {
|
|
3
|
+
id: string;
|
|
4
|
+
file: File;
|
|
5
|
+
type: "front" | "back" | "selfie";
|
|
6
|
+
attempts: number;
|
|
7
|
+
status: "pending" | "uploading" | "completed" | "failed";
|
|
8
|
+
error?: string;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
}
|
|
11
|
+
export interface UploadManagerConfig {
|
|
12
|
+
maxRetries?: number;
|
|
13
|
+
retryDelay?: number;
|
|
14
|
+
onStatusChange?: (upload: QueuedUpload) => void;
|
|
15
|
+
onAllComplete?: () => void;
|
|
16
|
+
}
|
|
17
|
+
export declare class UploadManager {
|
|
18
|
+
private apiService;
|
|
19
|
+
private config;
|
|
20
|
+
private queue;
|
|
21
|
+
private isProcessing;
|
|
22
|
+
constructor(apiService: KwikIdApiService, config?: UploadManagerConfig);
|
|
23
|
+
/**
|
|
24
|
+
* Add a file to the upload queue
|
|
25
|
+
*/
|
|
26
|
+
queueUpload(file: File, type: "front" | "back" | "selfie"): Promise<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Upload a file immediately (blocking)
|
|
29
|
+
*/
|
|
30
|
+
uploadNow(file: File, type: "front" | "back" | "selfie"): Promise<UploadResponse>;
|
|
31
|
+
/**
|
|
32
|
+
* Process queued uploads
|
|
33
|
+
*/
|
|
34
|
+
private processQueue;
|
|
35
|
+
/**
|
|
36
|
+
* Get upload status by ID
|
|
37
|
+
*/
|
|
38
|
+
getUploadStatus(id: string): QueuedUpload | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Get all queued uploads
|
|
41
|
+
*/
|
|
42
|
+
getAllUploads(): QueuedUpload[];
|
|
43
|
+
/**
|
|
44
|
+
* Retry a failed upload
|
|
45
|
+
*/
|
|
46
|
+
retryUpload(id: string): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Clear completed uploads from queue
|
|
49
|
+
*/
|
|
50
|
+
clearCompleted(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Clear all uploads from queue
|
|
53
|
+
*/
|
|
54
|
+
clearAll(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Check if there are pending uploads
|
|
57
|
+
*/
|
|
58
|
+
hasPendingUploads(): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Check if all uploads are complete
|
|
61
|
+
*/
|
|
62
|
+
allUploadsComplete(): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Check if any uploads failed
|
|
65
|
+
*/
|
|
66
|
+
hasFailedUploads(): boolean;
|
|
67
|
+
private delay;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=upload-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-manager.d.ts","sourceRoot":"","sources":["../../src/utils/upload-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE3E,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAOD,qBAAa,aAAa;IACtB,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,KAAK,CAAwC;IACrD,OAAO,CAAC,YAAY,CAAS;gBAEjB,UAAU,EAAE,gBAAgB,EAAE,MAAM,GAAE,mBAAwB;IAU1E;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBjF;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBvF;;OAEG;YACW,YAAY;IAgD1B;;OAEG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD;;OAEG;IACH,aAAa,IAAI,YAAY,EAAE;IAI/B;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5C;;OAEG;IACH,cAAc,IAAI,IAAI;IAQtB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,iBAAiB,IAAI,OAAO;IAM5B;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAK7B;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B,OAAO,CAAC,KAAK;CAGhB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ConsentData } from '../../../types/src/index.ts';
|
|
2
|
+
interface ConsentStepProps {
|
|
3
|
+
data: ConsentData;
|
|
4
|
+
onUpdate: (data: ConsentData) => void;
|
|
5
|
+
onNext: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function ConsentStep({ data, onUpdate, onNext }: ConsentStepProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=consent-step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consent-step.d.ts","sourceRoot":"","sources":["../../src/views/consent-step.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,UAAU,gBAAgB;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,gBAAgB,2CAiMvE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DocumentData } from '../../../types/src/index.ts';
|
|
2
|
+
interface DocumentUploadStepProps {
|
|
3
|
+
data: DocumentData;
|
|
4
|
+
onUpdate: (data: DocumentData) => void;
|
|
5
|
+
onNext: () => void;
|
|
6
|
+
onBack: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function DocumentUploadStep({ data, onUpdate, onNext, onBack }: DocumentUploadStepProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=document-upload-step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-upload-step.d.ts","sourceRoot":"","sources":["../../src/views/document-upload-step.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C,UAAU,uBAAuB;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACvC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAWD,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,uBAAuB,2CAolB7F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface HandoffChoiceViewProps {
|
|
2
|
+
onContinueDesktop: () => void;
|
|
3
|
+
onSwitchToMobile: () => void;
|
|
4
|
+
}
|
|
5
|
+
export declare function HandoffChoiceView({ onContinueDesktop, onSwitchToMobile }: HandoffChoiceViewProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=handoff-choice-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoff-choice-view.d.ts","sourceRoot":"","sources":["../../src/views/handoff-choice-view.tsx"],"names":[],"mappings":"AASA,UAAU,sBAAsB;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,gBAAgB,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,wBAAgB,iBAAiB,CAAC,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,sBAAsB,2CA0DhG"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HandoffState } from '../../../sdk-core/src/index.ts';
|
|
2
|
+
interface HandoffQRViewProps {
|
|
3
|
+
handoffState: HandoffState;
|
|
4
|
+
onCancel: () => void;
|
|
5
|
+
onRetry: () => void;
|
|
6
|
+
onComplete: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function HandoffQRView({ handoffState, onCancel, onRetry, onComplete }: HandoffQRViewProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=handoff-qr-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handoff-qr-view.d.ts","sourceRoot":"","sources":["../../src/views/handoff-qr-view.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,UAAU,kBAAkB;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAqThG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kid-branding.d.ts","sourceRoot":"","sources":["../../src/views/kid-branding.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAI3B,eAAO,MAAM,cAAc,EAAE,EAyB5B,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { KwikIDConfig } from '../../../types/src/index.ts';
|
|
2
|
+
interface KwikIDProps {
|
|
3
|
+
config: KwikIDConfig;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* KwikID - Identity Verification SDK
|
|
7
|
+
*
|
|
8
|
+
* A drop-in identity verification solution powered by Kwik Nkap.
|
|
9
|
+
*
|
|
10
|
+
* The clientSecret should be obtained from your backend after creating
|
|
11
|
+
* a verification session via server-to-server API call.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { KwikID } from '@kwik-id/sdk-react';
|
|
16
|
+
*
|
|
17
|
+
* function App() {
|
|
18
|
+
* // clientSecret obtained from your backend
|
|
19
|
+
* const [clientSecret, setClientSecret] = useState<string | null>(null);
|
|
20
|
+
*
|
|
21
|
+
* useEffect(() => {
|
|
22
|
+
* // Your backend creates a session and returns the clientSecret
|
|
23
|
+
* fetch('/api/create-verification-session')
|
|
24
|
+
* .then(res => res.json())
|
|
25
|
+
* .then(data => setClientSecret(data.clientSecret));
|
|
26
|
+
* }, []);
|
|
27
|
+
*
|
|
28
|
+
* if (!clientSecret) return <div>Loading...</div>;
|
|
29
|
+
*
|
|
30
|
+
* return (
|
|
31
|
+
* <KwikID
|
|
32
|
+
* config={{
|
|
33
|
+
* appName: "My App",
|
|
34
|
+
* clientSecret: clientSecret,
|
|
35
|
+
* theme: {
|
|
36
|
+
* primary: "#2563EB",
|
|
37
|
+
* accent: "#FBBF24"
|
|
38
|
+
* },
|
|
39
|
+
* onComplete: (data) => {
|
|
40
|
+
* console.log('Verification complete', data);
|
|
41
|
+
* }
|
|
42
|
+
* }}
|
|
43
|
+
* />
|
|
44
|
+
* );
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare const KwikID: React.FC<KwikIDProps>;
|
|
49
|
+
export type { KwikIDConfig, KwikIDTheme } from '../../../types/src/index.ts';
|
|
50
|
+
//# sourceMappingURL=kwik-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kwik-id.d.ts","sourceRoot":"","sources":["../../src/views/kwik-id.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAK9C,UAAU,WAAW;IACjB,MAAM,EAAE,YAAY,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAsBxC,CAAC;AAGF,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kyc-form.d.ts","sourceRoot":"","sources":["../../src/views/kyc-form.tsx"],"names":[],"mappings":"AAQA,wBAAgB,OAAO,4CAiDtB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { KYCFormData } from '../../../types/src/index.ts';
|
|
2
|
+
export type SubStep = "consent" | "intro" | "handoff-choice" | "handoff-waiting" | "document-type" | "prepare-front" | "camera-front" | "confirm-front" | "prepare-back" | "camera-back" | "confirm-back" | "prepare-selfie" | "camera-selfie" | "confirm-selfie" | "processing" | "result";
|
|
3
|
+
interface KYCModalFlowProps {
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
onComplete: (data: KYCFormData) => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function KYCModalFlow({ isOpen, onClose, onComplete }: KYCModalFlowProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=kyc-modal-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kyc-modal-flow.d.ts","sourceRoot":"","sources":["../../src/views/kyc-modal-flow.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGH,WAAW,EAGd,MAAM,gBAAgB,CAAC;AAoBxB,MAAM,MAAM,OAAO,GACb,SAAS,GACT,OAAO,GACP,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,cAAc,GACd,eAAe,GACf,cAAc,GACd,aAAa,GACb,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,QAAQ,CAAC;AAEf,UAAU,iBAAiB;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,iBAAiB,2CA+mB9E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type CaptureType = "document-front" | "document-back" | "selfie";
|
|
2
|
+
type DocumentType = "passport" | "id_card" | "drivers_license" | "voters_card" | "";
|
|
3
|
+
interface CameraCaptureProps {
|
|
4
|
+
type: CaptureType;
|
|
5
|
+
documentType?: DocumentType;
|
|
6
|
+
onCapture: (file: File, preview: string) => void;
|
|
7
|
+
onCancel: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function CameraCapture({ type, onCapture, onCancel }: CameraCaptureProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=camera-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camera-capture.d.ts","sourceRoot":"","sources":["../../../src/views/kyc-substeps/camera-capture.tsx"],"names":[],"mappings":"AASA,KAAK,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,QAAQ,CAAC;AACjE,KAAK,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,aAAa,GAAG,EAAE,CAAC;AAEpF,UAAU,kBAAkB;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAcD,wBAAgB,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,kBAAkB,2CAsoB9E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type DocumentType = "passport" | "id_card" | "drivers_license" | "voters_card";
|
|
2
|
+
interface DocumentTypeSelectionProps {
|
|
3
|
+
selectedType: DocumentType;
|
|
4
|
+
onSelect: (type: DocumentType) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function DocumentTypeSelection({ selectedType, onSelect }: DocumentTypeSelectionProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=document-type-selection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-type-selection.d.ts","sourceRoot":"","sources":["../../../src/views/kyc-substeps/document-type-selection.tsx"],"names":[],"mappings":"AAGA,KAAK,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAE/E,UAAU,0BAA0B;IAChC,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;CAC1C;AA6BD,wBAAgB,qBAAqB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,0BAA0B,2CA6H3F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intro-step.d.ts","sourceRoot":"","sources":["../../../src/views/kyc-substeps/intro-step.tsx"],"names":[],"mappings":"AAMA,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,2CA6GnD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type PhotoType = "document-front" | "document-back" | "selfie";
|
|
2
|
+
interface PhotoConfirmationProps {
|
|
3
|
+
type: PhotoType;
|
|
4
|
+
preview: string;
|
|
5
|
+
onConfirm: () => void;
|
|
6
|
+
onRetake: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function PhotoConfirmation({ type, preview, onConfirm, onRetake }: PhotoConfirmationProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=photo-confirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"photo-confirmation.d.ts","sourceRoot":"","sources":["../../../src/views/kyc-substeps/photo-confirmation.tsx"],"names":[],"mappings":"AAIA,KAAK,SAAS,GAAG,gBAAgB,GAAG,eAAe,GAAG,QAAQ,CAAC;AAE/D,UAAU,sBAAsB;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAwBD,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CAwF/F"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type DocumentType = "passport" | "id_card" | "drivers_license" | "voters_card";
|
|
2
|
+
interface PrepareIDBackProps {
|
|
3
|
+
documentType: DocumentType;
|
|
4
|
+
onNext: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function PrepareIDBack({ documentType, onNext }: PrepareIDBackProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=prepare-id-back.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-id-back.d.ts","sourceRoot":"","sources":["../../../src/views/kyc-substeps/prepare-id-back.tsx"],"names":[],"mappings":"AAMA,KAAK,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAE/E,UAAU,kBAAkB;IACxB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAYD,wBAAgB,aAAa,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,kBAAkB,2CA8EzE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type DocumentType = "passport" | "id_card" | "drivers_license" | "voters_card";
|
|
2
|
+
interface PrepareIDFrontProps {
|
|
3
|
+
documentType: DocumentType;
|
|
4
|
+
onNext: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function PrepareIDFront({ documentType, onNext }: PrepareIDFrontProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=prepare-id-front.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-id-front.d.ts","sourceRoot":"","sources":["../../../src/views/kyc-substeps/prepare-id-front.tsx"],"names":[],"mappings":"AAOA,KAAK,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAE/E,UAAU,mBAAmB;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAYD,wBAAgB,cAAc,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,mBAAmB,2CAqG3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepare-selfie.d.ts","sourceRoot":"","sources":["../../../src/views/kyc-substeps/prepare-selfie.tsx"],"names":[],"mappings":"AAOA,UAAU,kBAAkB;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,EAAE,kBAAkB,2CAwG3D"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface SelfieConfirmationProps {
|
|
2
|
+
preview: string;
|
|
3
|
+
onConfirm: () => void;
|
|
4
|
+
onRetake: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function SelfieConfirmation({ preview, onConfirm, onRetake }: SelfieConfirmationProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=selfie-confirmation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfie-confirmation.d.ts","sourceRoot":"","sources":["../../../src/views/kyc-substeps/selfie-confirmation.tsx"],"names":[],"mappings":"AAIA,UAAU,uBAAuB;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,uBAAuB,2CAyG3F"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SelfieData } from '../../../types/src/index.ts';
|
|
2
|
+
interface SelfieStepProps {
|
|
3
|
+
data: SelfieData;
|
|
4
|
+
onUpdate: (data: SelfieData) => void;
|
|
5
|
+
onNext: () => void;
|
|
6
|
+
onBack: () => void;
|
|
7
|
+
}
|
|
8
|
+
export declare function SelfieStep({ data, onUpdate, onNext, onBack }: SelfieStepProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=selfie-step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selfie-step.d.ts","sourceRoot":"","sources":["../../src/views/selfie-step.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAa5C,UAAU,eAAe;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,eAAe,2CAynB7E"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface Step {
|
|
2
|
+
id: string;
|
|
3
|
+
label: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
interface StepIndicatorProps {
|
|
7
|
+
steps: Step[];
|
|
8
|
+
currentStep: number;
|
|
9
|
+
completedSteps: number[];
|
|
10
|
+
}
|
|
11
|
+
export declare function StepIndicator({ steps, currentStep, completedSteps }: StepIndicatorProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=step-indicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-indicator.d.ts","sourceRoot":"","sources":["../../src/views/step-indicator.tsx"],"names":[],"mappings":"AAGA,UAAU,IAAI;IACV,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,kBAAkB;IACxB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE,kBAAkB,2CA6HvF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { VerificationResult } from '../../../types/src/index.ts';
|
|
2
|
+
interface VerificationStepProps {
|
|
3
|
+
result: VerificationResult | null;
|
|
4
|
+
onRetry: () => void;
|
|
5
|
+
onComplete: () => void;
|
|
6
|
+
/** Upload progress 0-100 */
|
|
7
|
+
progress?: number;
|
|
8
|
+
/** Current upload stage description */
|
|
9
|
+
stage?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function VerificationStep({ result, onRetry, onComplete, progress, stage, }: VerificationStepProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=verification-step.d.ts.map
|