@airxpay/sdk-ui 1.0.0

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.
@@ -0,0 +1,752 @@
1
+ "use strict";
2
+ // components/steps/OnboardingComplete.tsx
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const react_1 = __importStar(require("react"));
38
+ const react_native_1 = require("react-native");
39
+ const react_native_paper_1 = require("react-native-paper");
40
+ const expo_linear_gradient_1 = require("expo-linear-gradient");
41
+ const OnboardingComplete = ({ sellerData, mode, status, kycStatus, isBankDetailsCompleted, isKycCompleted, isBasicCompleted, onComplete, isWaitingForBackend, onBackendConfirmed, }) => {
42
+ const [backendConfirmed, setBackendConfirmed] = (0, react_1.useState)(false);
43
+ const fadeAnim = react_1.default.useRef(new react_native_1.Animated.Value(0)).current;
44
+ const scaleAnim = react_1.default.useRef(new react_native_1.Animated.Value(0.9)).current;
45
+ // Simulate backend confirmation (in real app, this would come from props/context)
46
+ (0, react_1.useEffect)(() => {
47
+ if (isWaitingForBackend) {
48
+ // This is where you'd listen for backend confirmation
49
+ // For now, we'll simulate it with a timeout
50
+ const timer = setTimeout(() => {
51
+ setBackendConfirmed(true);
52
+ onBackendConfirmed();
53
+ // Animate success state
54
+ react_native_1.Animated.parallel([
55
+ react_native_1.Animated.timing(fadeAnim, {
56
+ toValue: 1,
57
+ duration: 500,
58
+ useNativeDriver: true,
59
+ }),
60
+ react_native_1.Animated.spring(scaleAnim, {
61
+ toValue: 1,
62
+ friction: 8,
63
+ tension: 40,
64
+ useNativeDriver: true,
65
+ }),
66
+ ]).start();
67
+ }, 3000); // Simulate 3 second backend processing
68
+ return () => clearTimeout(timer);
69
+ }
70
+ }, [isWaitingForBackend]);
71
+ const getStatusColor = (status) => {
72
+ switch (status) {
73
+ case 'active':
74
+ return '#10B981';
75
+ case 'suspended':
76
+ return '#F59E0B';
77
+ case 'blocked':
78
+ return '#EF4444';
79
+ default:
80
+ return '#6B7280';
81
+ }
82
+ };
83
+ const getKYCStatusColor = (status) => {
84
+ switch (status) {
85
+ case 'verified':
86
+ return '#10B981';
87
+ case 'pending':
88
+ return '#F59E0B';
89
+ case 'rejected':
90
+ return '#EF4444';
91
+ default:
92
+ return '#6B7280';
93
+ }
94
+ };
95
+ const getStatusIcon = (status) => {
96
+ switch (status) {
97
+ case 'active':
98
+ return '✓';
99
+ case 'suspended':
100
+ return '⚠';
101
+ case 'blocked':
102
+ return '✗';
103
+ default:
104
+ return '•';
105
+ }
106
+ };
107
+ const isFullyActive = status === 'active' && kycStatus === 'verified' && isBankDetailsCompleted;
108
+ // Loading State
109
+ if (isWaitingForBackend && !backendConfirmed) {
110
+ return (<react_native_1.View style={styles.container}>
111
+ <expo_linear_gradient_1.LinearGradient colors={['#FFFFFF', '#F8F9FA']} style={styles.gradient}>
112
+ <react_native_1.View style={styles.loadingContainer}>
113
+ <react_native_1.Animated.View style={{ transform: [{ scale: scaleAnim }] }}>
114
+ <expo_linear_gradient_1.LinearGradient colors={['#0066CC', '#0099FF']} style={styles.loadingCircle} start={{ x: 0, y: 0 }} end={{ x: 1, y: 1 }}>
115
+ <react_native_paper_1.ActivityIndicator size="large" color="#FFFFFF"/>
116
+ </expo_linear_gradient_1.LinearGradient>
117
+ </react_native_1.Animated.View>
118
+
119
+ <react_native_1.Text style={styles.loadingTitle}>Creating Your Account</react_native_1.Text>
120
+ <react_native_1.Text style={styles.loadingSubtitle}>
121
+ Please wait while we set up your seller account...
122
+ </react_native_1.Text>
123
+
124
+ {/* Step Status Indicators */}
125
+ <react_native_paper_1.Surface style={styles.statusCard}>
126
+ <react_native_1.Text style={styles.statusTitle}>Progress Status</react_native_1.Text>
127
+
128
+ <react_native_1.View style={styles.statusItem}>
129
+ <react_native_1.View style={styles.statusLeft}>
130
+ <react_native_1.View style={[styles.statusDot, isBasicCompleted && styles.statusDotCompleted]}>
131
+ {isBasicCompleted && <react_native_1.Text style={styles.statusDotText}>✓</react_native_1.Text>}
132
+ </react_native_1.View>
133
+ <react_native_1.Text style={styles.statusText}>Basic Details</react_native_1.Text>
134
+ </react_native_1.View>
135
+ <react_native_1.Text style={[styles.statusValue, isBasicCompleted && styles.statusValueCompleted]}>
136
+ {isBasicCompleted ? 'Completed' : 'Pending'}
137
+ </react_native_1.Text>
138
+ </react_native_1.View>
139
+
140
+ <react_native_1.View style={styles.statusItem}>
141
+ <react_native_1.View style={styles.statusLeft}>
142
+ <react_native_1.View style={[styles.statusDot, isKycCompleted && styles.statusDotCompleted]}>
143
+ {isKycCompleted && <react_native_1.Text style={styles.statusDotText}>✓</react_native_1.Text>}
144
+ </react_native_1.View>
145
+ <react_native_1.Text style={styles.statusText}>KYC Verification</react_native_1.Text>
146
+ </react_native_1.View>
147
+ <react_native_1.Text style={[styles.statusValue, isKycCompleted && styles.statusValueCompleted]}>
148
+ {isKycCompleted ? 'Completed' : 'Pending'}
149
+ </react_native_1.Text>
150
+ </react_native_1.View>
151
+
152
+ <react_native_1.View style={styles.statusItem}>
153
+ <react_native_1.View style={styles.statusLeft}>
154
+ <react_native_1.View style={[styles.statusDot, isBankDetailsCompleted && styles.statusDotCompleted]}>
155
+ {isBankDetailsCompleted && <react_native_1.Text style={styles.statusDotText}>✓</react_native_1.Text>}
156
+ </react_native_1.View>
157
+ <react_native_1.Text style={styles.statusText}>Bank Details</react_native_1.Text>
158
+ </react_native_1.View>
159
+ <react_native_1.Text style={[styles.statusValue, isBankDetailsCompleted && styles.statusValueCompleted]}>
160
+ {isBankDetailsCompleted ? 'Completed' : 'Pending'}
161
+ </react_native_1.Text>
162
+ </react_native_1.View>
163
+
164
+ <react_native_1.View style={styles.processingIndicator}>
165
+ <react_native_paper_1.ActivityIndicator size="small" color="#0066CC"/>
166
+ <react_native_1.Text style={styles.processingText}>Processing...</react_native_1.Text>
167
+ </react_native_1.View>
168
+ </react_native_paper_1.Surface>
169
+ </react_native_1.View>
170
+ </expo_linear_gradient_1.LinearGradient>
171
+ </react_native_1.View>);
172
+ }
173
+ // Success State
174
+ return (<react_native_1.View style={styles.container}>
175
+ <expo_linear_gradient_1.LinearGradient colors={['#FFFFFF', '#F8F9FA']} style={styles.gradient}>
176
+ <react_native_1.ScrollView showsVerticalScrollIndicator={false} contentContainerStyle={styles.scrollContent}>
177
+ {/* Header Card */}
178
+ <react_native_1.Animated.View style={[
179
+ styles.headerCard,
180
+ {
181
+ opacity: fadeAnim,
182
+ transform: [{ scale: scaleAnim }]
183
+ }
184
+ ]}>
185
+ <react_native_paper_1.Surface style={styles.headerCardSurface}>
186
+ <react_native_1.View style={styles.headerIcon}>
187
+ <expo_linear_gradient_1.LinearGradient colors={isFullyActive ? ['#10B981', '#059669'] : ['#9CA3AF', '#6B7280']} style={styles.successIcon} start={{ x: 0, y: 0 }} end={{ x: 1, y: 1 }}>
188
+ <react_native_1.Text style={styles.successIconText}>✓</react_native_1.Text>
189
+ </expo_linear_gradient_1.LinearGradient>
190
+ </react_native_1.View>
191
+ <react_native_1.View style={styles.headerText}>
192
+ <react_native_1.Text style={styles.title}>Onboarding Complete!</react_native_1.Text>
193
+ <react_native_1.Text style={styles.subtitle}>
194
+ {isFullyActive
195
+ ? 'Your seller account is fully active'
196
+ : 'Your seller account has been created'}
197
+ </react_native_1.Text>
198
+ </react_native_1.View>
199
+ </react_native_paper_1.Surface>
200
+ </react_native_1.Animated.View>
201
+
202
+ {/* Progress Steps - All Completed */}
203
+ <react_native_paper_1.Surface style={styles.progressCard}>
204
+ <react_native_1.View style={styles.progressContainer}>
205
+ <react_native_1.View style={styles.progressStep}>
206
+ <react_native_1.View style={[styles.progressDot, styles.progressDotCompleted]}>
207
+ <react_native_paper_1.IconButton icon="check" size={10} iconColor="#FFFFFF"/>
208
+ </react_native_1.View>
209
+ <react_native_1.Text style={styles.progressTextCompleted}>Basic</react_native_1.Text>
210
+ </react_native_1.View>
211
+ <react_native_1.View style={styles.progressLine}/>
212
+ <react_native_1.View style={styles.progressStep}>
213
+ <react_native_1.View style={[styles.progressDot, isKycCompleted ? styles.progressDotCompleted : styles.progressDotPending]}>
214
+ {isKycCompleted ? (<react_native_paper_1.IconButton icon="check" size={10} iconColor="#FFFFFF"/>) : (<react_native_1.Text style={styles.progressDotText}>2</react_native_1.Text>)}
215
+ </react_native_1.View>
216
+ <react_native_1.Text style={isKycCompleted ? styles.progressTextCompleted : styles.progressTextPending}>
217
+ KYC
218
+ </react_native_1.Text>
219
+ </react_native_1.View>
220
+ <react_native_1.View style={styles.progressLine}/>
221
+ <react_native_1.View style={styles.progressStep}>
222
+ <react_native_1.View style={[styles.progressDot, isBankDetailsCompleted ? styles.progressDotCompleted : styles.progressDotPending]}>
223
+ {isBankDetailsCompleted ? (<react_native_paper_1.IconButton icon="check" size={10} iconColor="#FFFFFF"/>) : (<react_native_1.Text style={styles.progressDotText}>3</react_native_1.Text>)}
224
+ </react_native_1.View>
225
+ <react_native_1.Text style={isBankDetailsCompleted ? styles.progressTextCompleted : styles.progressTextPending}>
226
+ Bank
227
+ </react_native_1.Text>
228
+ </react_native_1.View>
229
+ </react_native_1.View>
230
+ </react_native_paper_1.Surface>
231
+
232
+ {/* Account Summary Card */}
233
+ <react_native_paper_1.Surface style={styles.summaryCard}>
234
+ <react_native_1.View style={styles.summaryHeader}>
235
+ <react_native_paper_1.IconButton icon="account-details" size={16} iconColor="#0066CC"/>
236
+ <react_native_1.Text style={styles.summaryTitle}>Account Summary</react_native_1.Text>
237
+ </react_native_1.View>
238
+
239
+ {/* Seller Info in Grid */}
240
+ <react_native_1.View style={styles.infoGrid}>
241
+ <react_native_1.View style={styles.infoItem}>
242
+ <react_native_1.Text style={styles.infoLabel}>Name</react_native_1.Text>
243
+ <react_native_1.Text style={styles.infoValue} numberOfLines={1}>
244
+ {sellerData.sellerName}
245
+ </react_native_1.Text>
246
+ </react_native_1.View>
247
+
248
+ {sellerData.businessName && (<react_native_1.View style={styles.infoItem}>
249
+ <react_native_1.Text style={styles.infoLabel}>Business</react_native_1.Text>
250
+ <react_native_1.Text style={styles.infoValue} numberOfLines={1}>
251
+ {sellerData.businessName}
252
+ </react_native_1.Text>
253
+ </react_native_1.View>)}
254
+
255
+ <react_native_1.View style={styles.infoItem}>
256
+ <react_native_1.Text style={styles.infoLabel}>Email</react_native_1.Text>
257
+ <react_native_1.Text style={styles.infoValue} numberOfLines={1}>
258
+ {sellerData.sellerEmail}
259
+ </react_native_1.Text>
260
+ </react_native_1.View>
261
+
262
+ {sellerData.sellerDID && (<react_native_1.View style={styles.infoItem}>
263
+ <react_native_1.Text style={styles.infoLabel}>Seller ID</react_native_1.Text>
264
+ <react_native_1.Text style={styles.infoValue} numberOfLines={1}>
265
+ {sellerData.sellerDID.slice(0, 8)}...
266
+ </react_native_1.Text>
267
+ </react_native_1.View>)}
268
+ </react_native_1.View>
269
+
270
+ <react_native_1.View style={styles.divider}/>
271
+
272
+ {/* Status Badges - Compact Grid */}
273
+ <react_native_1.View style={styles.badgesGrid}>
274
+ {/* Mode Badge */}
275
+ <react_native_1.View style={[
276
+ styles.badge,
277
+ mode === 'live' ? styles.liveBadge : styles.testBadge
278
+ ]}>
279
+ <react_native_1.Text style={[
280
+ styles.badgeText,
281
+ mode === 'live' ? styles.liveBadgeText : styles.testBadgeText
282
+ ]}>
283
+ {mode === 'live' ? '🔴 LIVE' : '🧪 TEST'}
284
+ </react_native_1.Text>
285
+ </react_native_1.View>
286
+
287
+ {/* KYC Status Badge */}
288
+ <react_native_1.View style={[styles.badge, { backgroundColor: getKYCStatusColor(kycStatus) + '20' }]}>
289
+ <react_native_1.Text style={[styles.badgeText, { color: getKYCStatusColor(kycStatus) }]}>
290
+ KYC: {kycStatus === 'verified' ? '✅' : kycStatus === 'pending' ? '⏳' : '❌'} {kycStatus}
291
+ </react_native_1.Text>
292
+ </react_native_1.View>
293
+
294
+ {/* Bank Status Badge */}
295
+ <react_native_1.View style={[
296
+ styles.badge,
297
+ isBankDetailsCompleted ? styles.bankCompletedBadge : styles.bankPendingBadge
298
+ ]}>
299
+ <react_native_1.Text style={[
300
+ styles.badgeText,
301
+ isBankDetailsCompleted ? styles.bankCompletedText : styles.bankPendingText
302
+ ]}>
303
+ {isBankDetailsCompleted ? '🏦 Added' : '⏳ Pending'}
304
+ </react_native_1.Text>
305
+ </react_native_1.View>
306
+
307
+ {/* Account Status Badge */}
308
+ <react_native_1.View style={[styles.badge, { backgroundColor: getStatusColor(status) + '20' }]}>
309
+ <react_native_1.Text style={[styles.badgeText, { color: getStatusColor(status) }]}>
310
+ {getStatusIcon(status)} {status}
311
+ </react_native_1.Text>
312
+ </react_native_1.View>
313
+ </react_native_1.View>
314
+
315
+ {/* Status Messages - Compact */}
316
+ {mode === 'test' && (<react_native_1.View style={styles.testModeMessage}>
317
+ <react_native_1.Text style={styles.testModeMessageText}>🧪 Test mode - No real transactions</react_native_1.Text>
318
+ </react_native_1.View>)}
319
+
320
+ {kycStatus === 'pending' && (<react_native_1.View style={styles.warningMessage}>
321
+ <react_native_1.Text style={styles.warningMessageText}>⏳ KYC verification in progress</react_native_1.Text>
322
+ </react_native_1.View>)}
323
+
324
+ {isFullyActive && (<react_native_1.View style={styles.successMessage}>
325
+ <react_native_1.Text style={styles.successMessageText}>✓ Fully active - Ready to accept payments</react_native_1.Text>
326
+ </react_native_1.View>)}
327
+ </react_native_paper_1.Surface>
328
+
329
+ {/* Next Steps - Compact */}
330
+ <react_native_paper_1.Surface style={styles.nextStepsCard}>
331
+ <react_native_1.View style={styles.nextStepsHeader}>
332
+ <react_native_paper_1.IconButton icon="format-list-checks" size={16} iconColor="#0066CC"/>
333
+ <react_native_1.Text style={styles.nextStepsTitle}>Next Steps</react_native_1.Text>
334
+ </react_native_1.View>
335
+
336
+ <react_native_1.View style={styles.stepsList}>
337
+ <react_native_1.View style={styles.stepItem}>
338
+ <react_native_1.View style={styles.stepNumber}>
339
+ <react_native_1.Text style={styles.stepNumberText}>1</react_native_1.Text>
340
+ </react_native_1.View>
341
+ <react_native_1.Text style={styles.stepText}>Add products</react_native_1.Text>
342
+ </react_native_1.View>
343
+
344
+ <react_native_1.View style={styles.stepItem}>
345
+ <react_native_1.View style={styles.stepNumber}>
346
+ <react_native_1.Text style={styles.stepNumberText}>2</react_native_1.Text>
347
+ </react_native_1.View>
348
+ <react_native_1.Text style={styles.stepText}>Payment settings</react_native_1.Text>
349
+ </react_native_1.View>
350
+
351
+ <react_native_1.View style={styles.stepItem}>
352
+ <react_native_1.View style={styles.stepNumber}>
353
+ <react_native_1.Text style={styles.stepNumberText}>3</react_native_1.Text>
354
+ </react_native_1.View>
355
+ <react_native_1.Text style={styles.stepText}>Start selling</react_native_1.Text>
356
+ </react_native_1.View>
357
+ </react_native_1.View>
358
+ </react_native_paper_1.Surface>
359
+
360
+ <react_native_1.Text style={styles.footerText}>
361
+ Update info anytime from dashboard
362
+ </react_native_1.Text>
363
+ </react_native_1.ScrollView>
364
+ </expo_linear_gradient_1.LinearGradient>
365
+ </react_native_1.View>);
366
+ };
367
+ const styles = react_native_1.StyleSheet.create({
368
+ container: {
369
+ flex: 1,
370
+ backgroundColor: '#FFFFFF',
371
+ },
372
+ gradient: {
373
+ flex: 1,
374
+ },
375
+ scrollContent: {
376
+ padding: 12,
377
+ },
378
+ loadingContainer: {
379
+ flex: 1,
380
+ justifyContent: 'center',
381
+ alignItems: 'center',
382
+ padding: 24,
383
+ minHeight: 400,
384
+ },
385
+ loadingCircle: {
386
+ width: 80,
387
+ height: 80,
388
+ borderRadius: 40,
389
+ justifyContent: 'center',
390
+ alignItems: 'center',
391
+ marginBottom: 24,
392
+ },
393
+ loadingTitle: {
394
+ fontSize: 20,
395
+ fontWeight: '700',
396
+ color: '#111827',
397
+ marginBottom: 8,
398
+ textAlign: 'center',
399
+ },
400
+ loadingSubtitle: {
401
+ fontSize: 14,
402
+ color: '#6B7280',
403
+ textAlign: 'center',
404
+ marginBottom: 32,
405
+ },
406
+ statusCard: {
407
+ backgroundColor: '#FFFFFF',
408
+ borderRadius: 16,
409
+ padding: 20,
410
+ width: '100%',
411
+ elevation: 2,
412
+ shadowColor: '#000',
413
+ shadowOffset: { width: 0, height: 2 },
414
+ shadowOpacity: 0.1,
415
+ shadowRadius: 4,
416
+ },
417
+ statusTitle: {
418
+ fontSize: 16,
419
+ fontWeight: '600',
420
+ color: '#111827',
421
+ marginBottom: 16,
422
+ },
423
+ statusItem: {
424
+ flexDirection: 'row',
425
+ justifyContent: 'space-between',
426
+ alignItems: 'center',
427
+ marginBottom: 12,
428
+ },
429
+ statusLeft: {
430
+ flexDirection: 'row',
431
+ alignItems: 'center',
432
+ },
433
+ statusDot: {
434
+ width: 20,
435
+ height: 20,
436
+ borderRadius: 10,
437
+ borderWidth: 2,
438
+ borderColor: '#D1D5DB',
439
+ marginRight: 12,
440
+ justifyContent: 'center',
441
+ alignItems: 'center',
442
+ },
443
+ statusDotCompleted: {
444
+ backgroundColor: '#10B981',
445
+ borderColor: '#10B981',
446
+ },
447
+ statusDotText: {
448
+ color: '#FFFFFF',
449
+ fontSize: 12,
450
+ fontWeight: 'bold',
451
+ },
452
+ statusText: {
453
+ fontSize: 14,
454
+ color: '#374151',
455
+ },
456
+ statusValue: {
457
+ fontSize: 12,
458
+ color: '#6B7280',
459
+ fontWeight: '500',
460
+ },
461
+ statusValueCompleted: {
462
+ color: '#10B981',
463
+ },
464
+ processingIndicator: {
465
+ flexDirection: 'row',
466
+ alignItems: 'center',
467
+ justifyContent: 'center',
468
+ marginTop: 20,
469
+ paddingTop: 16,
470
+ borderTopWidth: 1,
471
+ borderTopColor: '#E5E7EB',
472
+ },
473
+ processingText: {
474
+ marginLeft: 8,
475
+ fontSize: 14,
476
+ color: '#6B7280',
477
+ },
478
+ headerCard: {
479
+ marginBottom: 8,
480
+ },
481
+ headerCardSurface: {
482
+ flexDirection: 'row',
483
+ alignItems: 'center',
484
+ padding: 12,
485
+ backgroundColor: '#FFFFFF',
486
+ borderRadius: 16,
487
+ elevation: 2,
488
+ shadowColor: '#000',
489
+ shadowOffset: { width: 0, height: 2 },
490
+ shadowOpacity: 0.1,
491
+ shadowRadius: 4,
492
+ },
493
+ headerIcon: {
494
+ marginRight: 12,
495
+ },
496
+ successIcon: {
497
+ width: 40,
498
+ height: 40,
499
+ borderRadius: 20,
500
+ justifyContent: 'center',
501
+ alignItems: 'center',
502
+ },
503
+ successIconText: {
504
+ color: '#FFFFFF',
505
+ fontSize: 20,
506
+ fontWeight: 'bold',
507
+ },
508
+ headerText: {
509
+ flex: 1,
510
+ },
511
+ title: {
512
+ fontSize: 18,
513
+ fontWeight: '700',
514
+ color: '#111827',
515
+ },
516
+ subtitle: {
517
+ fontSize: 12,
518
+ color: '#6B7280',
519
+ marginTop: 2,
520
+ },
521
+ progressCard: {
522
+ backgroundColor: '#FFFFFF',
523
+ borderRadius: 16,
524
+ padding: 12,
525
+ marginBottom: 8,
526
+ elevation: 2,
527
+ shadowColor: '#000',
528
+ shadowOffset: { width: 0, height: 2 },
529
+ shadowOpacity: 0.1,
530
+ shadowRadius: 4,
531
+ },
532
+ progressContainer: {
533
+ flexDirection: 'row',
534
+ alignItems: 'center',
535
+ justifyContent: 'center',
536
+ },
537
+ progressStep: {
538
+ alignItems: 'center',
539
+ },
540
+ progressDot: {
541
+ width: 24,
542
+ height: 24,
543
+ borderRadius: 12,
544
+ justifyContent: 'center',
545
+ alignItems: 'center',
546
+ },
547
+ progressDotCompleted: {
548
+ backgroundColor: '#10B981',
549
+ },
550
+ progressDotPending: {
551
+ backgroundColor: '#E5E7EB',
552
+ },
553
+ progressDotText: {
554
+ fontSize: 12,
555
+ fontWeight: '600',
556
+ color: '#6B7280',
557
+ },
558
+ progressLine: {
559
+ width: 24,
560
+ height: 2,
561
+ backgroundColor: '#E5E7EB',
562
+ marginHorizontal: 4,
563
+ },
564
+ progressTextCompleted: {
565
+ fontSize: 10,
566
+ color: '#10B981',
567
+ marginTop: 4,
568
+ fontWeight: '500',
569
+ },
570
+ progressTextPending: {
571
+ fontSize: 10,
572
+ color: '#9CA3AF',
573
+ marginTop: 4,
574
+ fontWeight: '500',
575
+ },
576
+ summaryCard: {
577
+ backgroundColor: '#FFFFFF',
578
+ borderRadius: 16,
579
+ padding: 12,
580
+ marginBottom: 8,
581
+ elevation: 2,
582
+ shadowColor: '#000',
583
+ shadowOffset: { width: 0, height: 2 },
584
+ shadowOpacity: 0.1,
585
+ shadowRadius: 4,
586
+ },
587
+ summaryHeader: {
588
+ flexDirection: 'row',
589
+ alignItems: 'center',
590
+ marginBottom: 8,
591
+ },
592
+ summaryTitle: {
593
+ fontSize: 13,
594
+ fontWeight: '600',
595
+ color: '#111827',
596
+ },
597
+ infoGrid: {
598
+ flexDirection: 'row',
599
+ flexWrap: 'wrap',
600
+ marginBottom: 8,
601
+ },
602
+ infoItem: {
603
+ width: '50%',
604
+ marginBottom: 6,
605
+ paddingRight: 8,
606
+ },
607
+ infoLabel: {
608
+ fontSize: 10,
609
+ color: '#6B7280',
610
+ marginBottom: 2,
611
+ },
612
+ infoValue: {
613
+ fontSize: 11,
614
+ fontWeight: '500',
615
+ color: '#111827',
616
+ },
617
+ divider: {
618
+ height: 1,
619
+ backgroundColor: '#E5E7EB',
620
+ marginVertical: 8,
621
+ },
622
+ badgesGrid: {
623
+ flexDirection: 'row',
624
+ flexWrap: 'wrap',
625
+ gap: 4,
626
+ marginBottom: 8,
627
+ },
628
+ badge: {
629
+ paddingHorizontal: 8,
630
+ paddingVertical: 4,
631
+ borderRadius: 12,
632
+ marginRight: 4,
633
+ marginBottom: 4,
634
+ },
635
+ badgeText: {
636
+ fontSize: 9,
637
+ fontWeight: '500',
638
+ },
639
+ liveBadge: {
640
+ backgroundColor: '#FEE2E2',
641
+ },
642
+ liveBadgeText: {
643
+ color: '#DC2626',
644
+ },
645
+ testBadge: {
646
+ backgroundColor: '#FEF3C7',
647
+ },
648
+ testBadgeText: {
649
+ color: '#D97706',
650
+ },
651
+ bankCompletedBadge: {
652
+ backgroundColor: '#D1FAE5',
653
+ },
654
+ bankCompletedText: {
655
+ color: '#059669',
656
+ },
657
+ bankPendingBadge: {
658
+ backgroundColor: '#FEF3C7',
659
+ },
660
+ bankPendingText: {
661
+ color: '#D97706',
662
+ },
663
+ testModeMessage: {
664
+ padding: 6,
665
+ backgroundColor: '#FEF3C7',
666
+ borderRadius: 8,
667
+ marginTop: 4,
668
+ },
669
+ testModeMessageText: {
670
+ color: '#92400E',
671
+ fontSize: 10,
672
+ textAlign: 'center',
673
+ },
674
+ warningMessage: {
675
+ padding: 6,
676
+ backgroundColor: '#FEF3C7',
677
+ borderRadius: 8,
678
+ marginTop: 4,
679
+ },
680
+ warningMessageText: {
681
+ color: '#92400E',
682
+ fontSize: 10,
683
+ textAlign: 'center',
684
+ },
685
+ successMessage: {
686
+ padding: 6,
687
+ backgroundColor: '#D1FAE5',
688
+ borderRadius: 8,
689
+ marginTop: 4,
690
+ },
691
+ successMessageText: {
692
+ color: '#065F46',
693
+ fontSize: 10,
694
+ textAlign: 'center',
695
+ },
696
+ nextStepsCard: {
697
+ backgroundColor: '#FFFFFF',
698
+ borderRadius: 16,
699
+ padding: 12,
700
+ marginBottom: 12,
701
+ elevation: 2,
702
+ shadowColor: '#000',
703
+ shadowOffset: { width: 0, height: 2 },
704
+ shadowOpacity: 0.1,
705
+ shadowRadius: 4,
706
+ },
707
+ nextStepsHeader: {
708
+ flexDirection: 'row',
709
+ alignItems: 'center',
710
+ marginBottom: 8,
711
+ },
712
+ nextStepsTitle: {
713
+ fontSize: 13,
714
+ fontWeight: '600',
715
+ color: '#111827',
716
+ },
717
+ stepsList: {
718
+ flexDirection: 'row',
719
+ justifyContent: 'space-between',
720
+ },
721
+ stepItem: {
722
+ flex: 1,
723
+ alignItems: 'center',
724
+ paddingHorizontal: 2,
725
+ },
726
+ stepNumber: {
727
+ width: 20,
728
+ height: 20,
729
+ borderRadius: 10,
730
+ backgroundColor: '#0066CC',
731
+ justifyContent: 'center',
732
+ alignItems: 'center',
733
+ marginBottom: 4,
734
+ },
735
+ stepNumberText: {
736
+ color: '#FFFFFF',
737
+ fontSize: 10,
738
+ fontWeight: '600',
739
+ },
740
+ stepText: {
741
+ fontSize: 9,
742
+ color: '#374151',
743
+ textAlign: 'center',
744
+ },
745
+ footerText: {
746
+ fontSize: 9,
747
+ color: '#9CA3AF',
748
+ textAlign: 'center',
749
+ marginBottom: 16,
750
+ },
751
+ });
752
+ exports.default = OnboardingComplete;