@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.
Files changed (86) hide show
  1. package/README.md +311 -0
  2. package/dist/assets/animations/id_scan.json.d.ts +3250 -0
  3. package/dist/assets/animations/selfie.json.d.ts +3269 -0
  4. package/dist/assets/image-processor.worker-B6Di_lR_.js +1 -0
  5. package/dist/components/themed-photo-back-svg.d.ts +4 -0
  6. package/dist/components/themed-photo-back-svg.d.ts.map +1 -0
  7. package/dist/components/themed-welcome-svg.d.ts +4 -0
  8. package/dist/components/themed-welcome-svg.d.ts.map +1 -0
  9. package/dist/context/kwik-id-context.d.ts +125 -0
  10. package/dist/context/kwik-id-context.d.ts.map +1 -0
  11. package/dist/hooks/index.d.ts +16 -0
  12. package/dist/hooks/index.d.ts.map +1 -0
  13. package/dist/hooks/kwik-id-context.d.ts +53 -0
  14. package/dist/hooks/kwik-id-context.d.ts.map +1 -0
  15. package/dist/hooks/use-camera.d.ts +64 -0
  16. package/dist/hooks/use-camera.d.ts.map +1 -0
  17. package/dist/hooks/use-face-detection.d.ts +68 -0
  18. package/dist/hooks/use-face-detection.d.ts.map +1 -0
  19. package/dist/hooks/use-handoff.d.ts +19 -0
  20. package/dist/hooks/use-handoff.d.ts.map +1 -0
  21. package/dist/hooks/use-kwik-id.d.ts +27 -0
  22. package/dist/hooks/use-kwik-id.d.ts.map +1 -0
  23. package/dist/hooks/use-liveness.d.ts +73 -0
  24. package/dist/hooks/use-liveness.d.ts.map +1 -0
  25. package/dist/hooks/use-quality.d.ts +59 -0
  26. package/dist/hooks/use-quality.d.ts.map +1 -0
  27. package/dist/hooks/use-verification.d.ts +80 -0
  28. package/dist/hooks/use-verification.d.ts.map +1 -0
  29. package/dist/index.d.ts +39 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +8383 -0
  32. package/dist/services/api.service.d.ts +136 -0
  33. package/dist/services/api.service.d.ts.map +1 -0
  34. package/dist/services/index.d.ts +2 -0
  35. package/dist/services/index.d.ts.map +1 -0
  36. package/dist/utils/image-compression.d.ts +25 -0
  37. package/dist/utils/image-compression.d.ts.map +1 -0
  38. package/dist/utils/image-quality.d.ts +37 -0
  39. package/dist/utils/image-quality.d.ts.map +1 -0
  40. package/dist/utils/image-worker.d.ts +14 -0
  41. package/dist/utils/image-worker.d.ts.map +1 -0
  42. package/dist/utils/index.d.ts +4 -0
  43. package/dist/utils/index.d.ts.map +1 -0
  44. package/dist/utils/upload-manager.d.ts +69 -0
  45. package/dist/utils/upload-manager.d.ts.map +1 -0
  46. package/dist/views/consent-step.d.ts +9 -0
  47. package/dist/views/consent-step.d.ts.map +1 -0
  48. package/dist/views/document-upload-step.d.ts +10 -0
  49. package/dist/views/document-upload-step.d.ts.map +1 -0
  50. package/dist/views/handoff-choice-view.d.ts +7 -0
  51. package/dist/views/handoff-choice-view.d.ts.map +1 -0
  52. package/dist/views/handoff-qr-view.d.ts +10 -0
  53. package/dist/views/handoff-qr-view.d.ts.map +1 -0
  54. package/dist/views/kid-branding.d.ts +3 -0
  55. package/dist/views/kid-branding.d.ts.map +1 -0
  56. package/dist/views/kwik-id.d.ts +50 -0
  57. package/dist/views/kwik-id.d.ts.map +1 -0
  58. package/dist/views/kyc-form.d.ts +2 -0
  59. package/dist/views/kyc-form.d.ts.map +1 -0
  60. package/dist/views/kyc-modal-flow.d.ts +10 -0
  61. package/dist/views/kyc-modal-flow.d.ts.map +1 -0
  62. package/dist/views/kyc-substeps/camera-capture.d.ts +11 -0
  63. package/dist/views/kyc-substeps/camera-capture.d.ts.map +1 -0
  64. package/dist/views/kyc-substeps/document-type-selection.d.ts +8 -0
  65. package/dist/views/kyc-substeps/document-type-selection.d.ts.map +1 -0
  66. package/dist/views/kyc-substeps/intro-step.d.ts +6 -0
  67. package/dist/views/kyc-substeps/intro-step.d.ts.map +1 -0
  68. package/dist/views/kyc-substeps/photo-confirmation.d.ts +10 -0
  69. package/dist/views/kyc-substeps/photo-confirmation.d.ts.map +1 -0
  70. package/dist/views/kyc-substeps/prepare-id-back.d.ts +8 -0
  71. package/dist/views/kyc-substeps/prepare-id-back.d.ts.map +1 -0
  72. package/dist/views/kyc-substeps/prepare-id-front.d.ts +8 -0
  73. package/dist/views/kyc-substeps/prepare-id-front.d.ts.map +1 -0
  74. package/dist/views/kyc-substeps/prepare-selfie.d.ts +6 -0
  75. package/dist/views/kyc-substeps/prepare-selfie.d.ts.map +1 -0
  76. package/dist/views/kyc-substeps/selfie-confirmation.d.ts +8 -0
  77. package/dist/views/kyc-substeps/selfie-confirmation.d.ts.map +1 -0
  78. package/dist/views/selfie-step.d.ts +10 -0
  79. package/dist/views/selfie-step.d.ts.map +1 -0
  80. package/dist/views/step-indicator.d.ts +13 -0
  81. package/dist/views/step-indicator.d.ts.map +1 -0
  82. package/dist/views/verification-step.d.ts +13 -0
  83. package/dist/views/verification-step.d.ts.map +1 -0
  84. package/dist/workers/image-processor.worker.d.ts +19 -0
  85. package/dist/workers/image-processor.worker.d.ts.map +1 -0
  86. 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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,eAAe;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,0BAA0B;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC;IACnF,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE;QACJ,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC/B,GAAG,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,YAAY;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAED,qBAAa,gBAAgB;IACzB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,YAAY;IAMhC;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IA4B7C;;;OAGG;IACG,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC;IAyB5F;;;OAGG;IACG,0BAA0B,CAC5B,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAClC,OAAO,CAAC,cAAc,CAAC;IAwC1B;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAkBhD;;;OAGG;IACG,qBAAqB,CACvB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB3D;;;OAGG;IACG,qBAAqB,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAkBlE;;;OAGG;IACG,mBAAmB,CACrB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO,GAC1D,OAAO,CAAC,0BAA0B,CAAC;IAiBtC;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAIhC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAIhB;AAKD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAG3E;AAED,wBAAgB,aAAa,IAAI,gBAAgB,GAAG,IAAI,CAEvD;AAED,wBAAgB,eAAe,IAAI,IAAI,CAGtC"}
@@ -0,0 +1,2 @@
1
+ export * from './api.service';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,4 @@
1
+ export * from './image-quality';
2
+ export * from './image-compression';
3
+ export * from './upload-manager';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ import { FC } from 'react';
2
+ export declare const KwikIDBranding: FC;
3
+ //# sourceMappingURL=kid-branding.d.ts.map
@@ -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,2 @@
1
+ export declare function KYCForm(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=kyc-form.d.ts.map
@@ -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,6 @@
1
+ interface IntroStepProps {
2
+ onNext: () => void;
3
+ }
4
+ export declare function IntroStep({ onNext }: IntroStepProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=intro-step.d.ts.map
@@ -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,6 @@
1
+ interface PrepareSelfieProps {
2
+ onNext: () => void;
3
+ }
4
+ export declare function PrepareSelfie({ onNext }: PrepareSelfieProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=prepare-selfie.d.ts.map
@@ -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