@mantle-rwa/react 0.1.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.
Files changed (66) hide show
  1. package/dist/cjs/components/InvestorDashboard/index.js +156 -0
  2. package/dist/cjs/components/InvestorDashboard/index.js.map +1 -0
  3. package/dist/cjs/components/KYCFlow/index.js +231 -0
  4. package/dist/cjs/components/KYCFlow/index.js.map +1 -0
  5. package/dist/cjs/components/TokenMintForm/index.js +286 -0
  6. package/dist/cjs/components/TokenMintForm/index.js.map +1 -0
  7. package/dist/cjs/components/YieldCalculator/index.js +245 -0
  8. package/dist/cjs/components/YieldCalculator/index.js.map +1 -0
  9. package/dist/cjs/components/index.js +15 -0
  10. package/dist/cjs/components/index.js.map +1 -0
  11. package/dist/cjs/hooks/index.js +9 -0
  12. package/dist/cjs/hooks/index.js.map +1 -0
  13. package/dist/cjs/hooks/useRWA.js +54 -0
  14. package/dist/cjs/hooks/useRWA.js.map +1 -0
  15. package/dist/cjs/index.js +20 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/types/index.js +10 -0
  18. package/dist/cjs/types/index.js.map +1 -0
  19. package/dist/esm/components/InvestorDashboard/index.js +153 -0
  20. package/dist/esm/components/InvestorDashboard/index.js.map +1 -0
  21. package/dist/esm/components/KYCFlow/index.js +228 -0
  22. package/dist/esm/components/KYCFlow/index.js.map +1 -0
  23. package/dist/esm/components/TokenMintForm/index.js +279 -0
  24. package/dist/esm/components/TokenMintForm/index.js.map +1 -0
  25. package/dist/esm/components/YieldCalculator/index.js +236 -0
  26. package/dist/esm/components/YieldCalculator/index.js.map +1 -0
  27. package/dist/esm/components/index.js +8 -0
  28. package/dist/esm/components/index.js.map +1 -0
  29. package/dist/esm/hooks/index.js +5 -0
  30. package/dist/esm/hooks/index.js.map +1 -0
  31. package/dist/esm/hooks/useRWA.js +51 -0
  32. package/dist/esm/hooks/useRWA.js.map +1 -0
  33. package/dist/esm/index.js +12 -0
  34. package/dist/esm/index.js.map +1 -0
  35. package/dist/esm/types/index.js +6 -0
  36. package/dist/esm/types/index.js.map +1 -0
  37. package/dist/styles.css +1 -0
  38. package/dist/types/components/InvestorDashboard/index.d.ts +25 -0
  39. package/dist/types/components/InvestorDashboard/index.d.ts.map +1 -0
  40. package/dist/types/components/KYCFlow/index.d.ts +25 -0
  41. package/dist/types/components/KYCFlow/index.d.ts.map +1 -0
  42. package/dist/types/components/TokenMintForm/index.d.ts +60 -0
  43. package/dist/types/components/TokenMintForm/index.d.ts.map +1 -0
  44. package/dist/types/components/YieldCalculator/index.d.ts +59 -0
  45. package/dist/types/components/YieldCalculator/index.d.ts.map +1 -0
  46. package/dist/types/components/index.d.ts +8 -0
  47. package/dist/types/components/index.d.ts.map +1 -0
  48. package/dist/types/hooks/index.d.ts +5 -0
  49. package/dist/types/hooks/index.d.ts.map +1 -0
  50. package/dist/types/hooks/useRWA.d.ts +22 -0
  51. package/dist/types/hooks/useRWA.d.ts.map +1 -0
  52. package/dist/types/index.d.ts +11 -0
  53. package/dist/types/index.d.ts.map +1 -0
  54. package/dist/types/types/index.d.ts +177 -0
  55. package/dist/types/types/index.d.ts.map +1 -0
  56. package/package.json +66 -0
  57. package/src/components/InvestorDashboard/index.tsx +359 -0
  58. package/src/components/KYCFlow/index.tsx +434 -0
  59. package/src/components/TokenMintForm/index.tsx +590 -0
  60. package/src/components/YieldCalculator/index.tsx +541 -0
  61. package/src/components/index.ts +8 -0
  62. package/src/hooks/index.ts +5 -0
  63. package/src/hooks/useRWA.ts +70 -0
  64. package/src/index.ts +32 -0
  65. package/src/styles/index.css +197 -0
  66. package/src/types/index.ts +193 -0
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvestorDashboard = InvestorDashboard;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * InvestorDashboard Component
7
+ * Displays investor portfolio, yield history, and compliance status
8
+ *
9
+ * @see Requirements 11.1, 11.2, 11.3, 11.4, 11.5
10
+ */
11
+ const react_1 = require("react");
12
+ const useRWA_1 = require("../../hooks/useRWA");
13
+ /**
14
+ * Accreditation tier labels
15
+ */
16
+ const TIER_LABELS = {
17
+ 0: 'None',
18
+ 1: 'Retail',
19
+ 2: 'Accredited',
20
+ 3: 'Institutional',
21
+ };
22
+ /**
23
+ * Format a bigint balance to a human-readable string
24
+ */
25
+ function formatBalance(value, decimals = 18) {
26
+ const divisor = BigInt(10 ** decimals);
27
+ const integerPart = value / divisor;
28
+ const fractionalPart = value % divisor;
29
+ const fractionalStr = fractionalPart.toString().padStart(decimals, '0').slice(0, 2);
30
+ return `${integerPart.toLocaleString()}.${fractionalStr}`;
31
+ }
32
+ /**
33
+ * Format a date to a localized string
34
+ */
35
+ function formatDate(date) {
36
+ return date.toLocaleDateString(undefined, {
37
+ year: 'numeric',
38
+ month: 'short',
39
+ day: 'numeric',
40
+ });
41
+ }
42
+ /**
43
+ * InvestorDashboard component for displaying investor portfolio
44
+ * Shows token balance, yield history, and compliance status
45
+ *
46
+ * @example
47
+ * ```tsx
48
+ * <InvestorDashboard
49
+ * tokenAddress="0x..."
50
+ * yieldDistributorAddress="0x..."
51
+ * kycRegistryAddress="0x..."
52
+ * onClaimYield={(id) => console.log('Claiming:', id)}
53
+ * />
54
+ * ```
55
+ */
56
+ function InvestorDashboard({ tokenAddress, yieldDistributorAddress, kycRegistryAddress, theme = 'light', onClaimYield, showPortfolioValue = true, priceOracle: _priceOracle, // Reserved for future price oracle integration
57
+ }) {
58
+ const { address, isConnected } = (0, useRWA_1.useRWA)();
59
+ const [balance, setBalance] = (0, react_1.useState)(BigInt(0));
60
+ const [yieldHistory, setYieldHistory] = (0, react_1.useState)([]);
61
+ const [pendingYield, setPendingYield] = (0, react_1.useState)(BigInt(0));
62
+ const [pendingDistributionId, setPendingDistributionId] = (0, react_1.useState)(null);
63
+ const [isKYCVerified, setIsKYCVerified] = (0, react_1.useState)(false);
64
+ const [accreditationTier, setAccreditationTier] = (0, react_1.useState)(0);
65
+ const [kycExpiry, setKycExpiry] = (0, react_1.useState)(null);
66
+ const [isLoading, setIsLoading] = (0, react_1.useState)(true);
67
+ const [isClaiming, setIsClaiming] = (0, react_1.useState)(false);
68
+ const [error, setError] = (0, react_1.useState)(null);
69
+ const [portfolioValue, setPortfolioValue] = (0, react_1.useState)(BigInt(0));
70
+ const isDark = theme === 'dark';
71
+ // Fetch dashboard data
72
+ (0, react_1.useEffect)(() => {
73
+ const fetchData = async () => {
74
+ if (!isConnected || !address) {
75
+ setIsLoading(false);
76
+ return;
77
+ }
78
+ setError(null);
79
+ try {
80
+ // In production, these would be actual contract calls via SDK
81
+ // For now, simulating data fetch with realistic mock data
82
+ await new Promise((resolve) => setTimeout(resolve, 500));
83
+ // Simulate token balance (1000 tokens with 18 decimals)
84
+ const mockBalance = BigInt(1000) * BigInt(10 ** 18);
85
+ setBalance(mockBalance);
86
+ // Simulate yield history
87
+ const mockYieldHistory = [
88
+ {
89
+ distributionId: 1,
90
+ amount: BigInt(50) * BigInt(10 ** 6), // 50 USDC
91
+ paymentToken: 'USDC',
92
+ claimedAt: new Date(Date.now() - 30 * 24 * 60 * 60 * 1000),
93
+ },
94
+ {
95
+ distributionId: 2,
96
+ amount: BigInt(75) * BigInt(10 ** 6), // 75 USDC
97
+ paymentToken: 'USDC',
98
+ claimedAt: new Date(Date.now() - 60 * 24 * 60 * 60 * 1000),
99
+ },
100
+ ];
101
+ setYieldHistory(mockYieldHistory);
102
+ // Simulate pending yield (25 USDC)
103
+ setPendingYield(BigInt(25) * BigInt(10 ** 6));
104
+ setPendingDistributionId(3);
105
+ // Simulate KYC status
106
+ setIsKYCVerified(true);
107
+ setAccreditationTier(2); // Accredited
108
+ setKycExpiry(new Date(Date.now() + 365 * 24 * 60 * 60 * 1000)); // 1 year from now
109
+ // Simulate portfolio value (assuming $1 per token)
110
+ setPortfolioValue(mockBalance);
111
+ }
112
+ catch (err) {
113
+ console.error('Failed to fetch dashboard data:', err);
114
+ setError('Failed to load dashboard data. Please try again.');
115
+ }
116
+ finally {
117
+ setIsLoading(false);
118
+ }
119
+ };
120
+ fetchData();
121
+ }, [address, isConnected, tokenAddress, yieldDistributorAddress, kycRegistryAddress]);
122
+ // Handle claim yield
123
+ const handleClaimYield = (0, react_1.useCallback)(async (distributionId) => {
124
+ if (isClaiming)
125
+ return;
126
+ setIsClaiming(true);
127
+ setError(null);
128
+ try {
129
+ // Call the onClaimYield callback
130
+ onClaimYield?.(distributionId);
131
+ // In production, this would wait for transaction confirmation
132
+ await new Promise((resolve) => setTimeout(resolve, 1000));
133
+ // Update state after successful claim
134
+ setPendingYield(BigInt(0));
135
+ setPendingDistributionId(null);
136
+ }
137
+ catch (err) {
138
+ console.error('Failed to claim yield:', err);
139
+ setError('Failed to claim yield. Please try again.');
140
+ }
141
+ finally {
142
+ setIsClaiming(false);
143
+ }
144
+ }, [isClaiming, onClaimYield]);
145
+ // Render wallet not connected state
146
+ if (!isConnected) {
147
+ return ((0, jsx_runtime_1.jsx)("div", { className: `rwa-card ${isDark ? 'dark' : ''}`, "data-testid": "investor-dashboard", "data-theme": theme, children: (0, jsx_runtime_1.jsx)("p", { className: "text-center text-gray-600 dark:text-gray-400", children: "Please connect your wallet to view your dashboard." }) }));
148
+ }
149
+ // Render loading state
150
+ if (isLoading) {
151
+ return ((0, jsx_runtime_1.jsx)("div", { className: `rwa-card ${isDark ? 'dark' : ''}`, "data-testid": "investor-dashboard", "data-theme": theme, "aria-busy": "true", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-center py-8", children: [(0, jsx_runtime_1.jsx)("div", { className: "animate-spin rounded-full h-8 w-8 border-b-2 border-mantle-600" }), (0, jsx_runtime_1.jsx)("span", { className: "ml-3 text-gray-600 dark:text-gray-400", children: "Loading dashboard..." })] }) }));
152
+ }
153
+ return ((0, jsx_runtime_1.jsxs)("div", { className: `rwa-card ${isDark ? 'dark' : ''}`, "data-testid": "investor-dashboard", "data-theme": theme, children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-lg font-semibold mb-6 text-gray-900 dark:text-white", children: "Investor Dashboard" }), error && ((0, jsx_runtime_1.jsx)("div", { className: "mb-4 p-3 bg-red-50 dark:bg-red-900/20 text-red-700 dark:text-red-300 rounded-md border border-red-200 dark:border-red-800", role: "alert", "data-testid": "dashboard-error", children: error })), showPortfolioValue && ((0, jsx_runtime_1.jsxs)("section", { className: "mb-6", "aria-labelledby": "portfolio-heading", "data-testid": "portfolio-section", children: [(0, jsx_runtime_1.jsx)("h3", { id: "portfolio-heading", className: "text-sm font-medium text-gray-500 dark:text-gray-400 mb-2", children: "Portfolio Overview" }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-1 sm:grid-cols-3 gap-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "p-4 bg-gray-50 dark:bg-gray-700 rounded-lg", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Token Balance" }), (0, jsx_runtime_1.jsx)("p", { className: "text-2xl font-bold text-gray-900 dark:text-white", "data-testid": "token-balance", children: formatBalance(balance) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "p-4 bg-gray-50 dark:bg-gray-700 rounded-lg", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Portfolio Value" }), (0, jsx_runtime_1.jsxs)("p", { className: "text-2xl font-bold text-gray-900 dark:text-white", "data-testid": "portfolio-value", children: ["$", formatBalance(portfolioValue)] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "p-4 bg-gray-50 dark:bg-gray-700 rounded-lg", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-sm text-gray-500 dark:text-gray-400", children: "Pending Yield" }), (0, jsx_runtime_1.jsxs)("p", { className: "text-2xl font-bold text-mantle-600", "data-testid": "pending-yield", children: ["$", formatBalance(pendingYield, 6)] })] })] })] })), (0, jsx_runtime_1.jsxs)("section", { className: "mb-6", "aria-labelledby": "compliance-heading", "data-testid": "compliance-section", children: [(0, jsx_runtime_1.jsx)("h3", { id: "compliance-heading", className: "text-sm font-medium text-gray-500 dark:text-gray-400 mb-2", children: "Compliance Status" }), (0, jsx_runtime_1.jsx)("div", { className: "p-4 bg-gray-50 dark:bg-gray-700 rounded-lg", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-wrap items-center gap-4", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)("span", { className: `w-3 h-3 rounded-full mr-2 ${isKYCVerified ? 'bg-green-500' : 'bg-red-500'}`, "aria-hidden": "true" }), (0, jsx_runtime_1.jsxs)("span", { className: "text-sm text-gray-700 dark:text-gray-300", "data-testid": "kyc-status", children: ["KYC: ", isKYCVerified ? 'Verified' : 'Not Verified'] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "text-sm text-gray-700 dark:text-gray-300", children: ["Tier:", ' ', (0, jsx_runtime_1.jsx)("span", { className: "font-medium", "data-testid": "accreditation-tier", children: TIER_LABELS[accreditationTier] || 'Unknown' })] }), kycExpiry && ((0, jsx_runtime_1.jsxs)("div", { className: "text-sm text-gray-500 dark:text-gray-400", "data-testid": "kyc-expiry", children: ["Expires: ", formatDate(kycExpiry)] }))] }) })] }), (0, jsx_runtime_1.jsxs)("section", { className: "mb-6", "aria-labelledby": "yield-history-heading", "data-testid": "yield-history-section", children: [(0, jsx_runtime_1.jsx)("h3", { id: "yield-history-heading", className: "text-sm font-medium text-gray-500 dark:text-gray-400 mb-2", children: "Yield History" }), yieldHistory.length > 0 ? ((0, jsx_runtime_1.jsx)("ul", { className: "space-y-2", "data-testid": "yield-history-list", children: yieldHistory.map((entry) => ((0, jsx_runtime_1.jsxs)("li", { className: "flex justify-between items-center p-3 bg-gray-50 dark:bg-gray-700 rounded-lg", "data-testid": `yield-entry-${entry.distributionId}`, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("p", { className: "text-sm font-medium text-gray-900 dark:text-white", children: ["Distribution #", entry.distributionId] }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-gray-500 dark:text-gray-400", children: formatDate(entry.claimedAt) })] }), (0, jsx_runtime_1.jsxs)("p", { className: "font-medium text-gray-900 dark:text-white", children: [formatBalance(entry.amount, 6), " ", entry.paymentToken] })] }, entry.distributionId))) })) : ((0, jsx_runtime_1.jsx)("p", { className: "text-sm text-gray-500 dark:text-gray-400 p-4 bg-gray-50 dark:bg-gray-700 rounded-lg", "data-testid": "no-yield-history", children: "No yield history yet." }))] }), pendingYield > BigInt(0) && pendingDistributionId !== null && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: "rwa-button-primary w-full", onClick: () => handleClaimYield(pendingDistributionId), disabled: isClaiming, "aria-busy": isClaiming, "data-testid": "claim-yield-btn", children: isClaiming ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "animate-spin inline-block w-4 h-4 border-2 border-white border-t-transparent rounded-full mr-2" }), "Claiming..."] })) : (`Claim Pending Yield ($${formatBalance(pendingYield, 6)})`) }))] }));
154
+ }
155
+ exports.default = InvestorDashboard;
156
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/InvestorDashboard/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KYCFlow = KYCFlow;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ /**
6
+ * KYCFlow Component
7
+ * Multi-step KYC verification flow with provider integration
8
+ *
9
+ * @see Requirements 10.1, 10.2, 10.3, 10.4, 10.5
10
+ */
11
+ const react_1 = require("react");
12
+ const PROVIDER_CONFIGS = {
13
+ persona: {
14
+ name: 'persona',
15
+ displayName: 'Persona',
16
+ logo: '🔐',
17
+ description: 'Identity verification powered by Persona',
18
+ },
19
+ synaps: {
20
+ name: 'synaps',
21
+ displayName: 'Synaps',
22
+ logo: '🛡️',
23
+ description: 'KYC verification powered by Synaps',
24
+ },
25
+ jumio: {
26
+ name: 'jumio',
27
+ displayName: 'Jumio',
28
+ logo: '✓',
29
+ description: 'Identity verification powered by Jumio',
30
+ },
31
+ };
32
+ const FIELD_LABELS = {
33
+ identity: {
34
+ label: 'Identity Verification',
35
+ description: 'Verify your identity with a government-issued ID',
36
+ },
37
+ accreditation: {
38
+ label: 'Accreditation Status',
39
+ description: 'Confirm your investor accreditation status',
40
+ },
41
+ address: {
42
+ label: 'Address Verification',
43
+ description: 'Verify your residential address',
44
+ },
45
+ tax: {
46
+ label: 'Tax Information',
47
+ description: 'Provide tax identification information',
48
+ },
49
+ };
50
+ /**
51
+ * KYCFlow component for investor verification
52
+ * Supports Persona, Synaps, and Jumio providers
53
+ *
54
+ * @example
55
+ * ```tsx
56
+ * <KYCFlow
57
+ * provider="persona"
58
+ * requiredFields={['identity', 'accreditation']}
59
+ * onComplete={(result) => console.log('KYC complete:', result)}
60
+ * theme="light"
61
+ * />
62
+ * ```
63
+ */
64
+ function KYCFlow({ provider, onComplete, onError, requiredFields, theme = 'light', customStyles, registryAddress, autoUpdateRegistry = false, }) {
65
+ const [currentStepIndex, setCurrentStepIndex] = (0, react_1.useState)(0);
66
+ const [isLoading, setIsLoading] = (0, react_1.useState)(false);
67
+ const [error, setError] = (0, react_1.useState)(null);
68
+ const [sessionId, setSessionId] = (0, react_1.useState)(null);
69
+ const [verificationStarted, setVerificationStarted] = (0, react_1.useState)(false);
70
+ const isDark = theme === 'dark';
71
+ const providerConfig = PROVIDER_CONFIGS[provider];
72
+ // Initialize steps based on required fields
73
+ const [steps, setSteps] = (0, react_1.useState)(() => requiredFields.map((field) => ({
74
+ id: field,
75
+ label: FIELD_LABELS[field].label,
76
+ description: FIELD_LABELS[field].description,
77
+ status: 'pending',
78
+ })));
79
+ // Reset steps when requiredFields change
80
+ (0, react_1.useEffect)(() => {
81
+ setSteps(requiredFields.map((field) => ({
82
+ id: field,
83
+ label: FIELD_LABELS[field].label,
84
+ description: FIELD_LABELS[field].description,
85
+ status: 'pending',
86
+ })));
87
+ setCurrentStepIndex(0);
88
+ setVerificationStarted(false);
89
+ setSessionId(null);
90
+ setError(null);
91
+ }, [requiredFields]);
92
+ const currentStep = steps[currentStepIndex];
93
+ const isLastStep = currentStepIndex === steps.length - 1;
94
+ const allStepsCompleted = steps.every((step) => step.status === 'completed');
95
+ // Update step status
96
+ const updateStepStatus = (0, react_1.useCallback)((stepIndex, status) => {
97
+ setSteps((prev) => prev.map((step, idx) => (idx === stepIndex ? { ...step, status } : step)));
98
+ }, []);
99
+ // Start verification flow
100
+ const handleStartVerification = (0, react_1.useCallback)(async () => {
101
+ setIsLoading(true);
102
+ setError(null);
103
+ setVerificationStarted(true);
104
+ try {
105
+ // Generate session ID for this verification flow
106
+ const newSessionId = `${provider}-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
107
+ setSessionId(newSessionId);
108
+ // Mark first step as in progress
109
+ updateStepStatus(0, 'in_progress');
110
+ // Simulate provider initialization
111
+ await new Promise((resolve) => setTimeout(resolve, 500));
112
+ }
113
+ catch (err) {
114
+ const errorMessage = err instanceof Error ? err.message : 'Failed to start verification';
115
+ setError(errorMessage);
116
+ onError?.(err instanceof Error ? err : new Error(errorMessage));
117
+ setVerificationStarted(false);
118
+ }
119
+ finally {
120
+ setIsLoading(false);
121
+ }
122
+ }, [provider, onError, updateStepStatus]);
123
+ // Complete current step and move to next
124
+ const handleCompleteStep = (0, react_1.useCallback)(async () => {
125
+ setIsLoading(true);
126
+ setError(null);
127
+ try {
128
+ // Simulate step completion
129
+ await new Promise((resolve) => setTimeout(resolve, 800));
130
+ // Mark current step as completed
131
+ updateStepStatus(currentStepIndex, 'completed');
132
+ if (!isLastStep) {
133
+ // Move to next step
134
+ const nextIndex = currentStepIndex + 1;
135
+ setCurrentStepIndex(nextIndex);
136
+ updateStepStatus(nextIndex, 'in_progress');
137
+ }
138
+ }
139
+ catch (err) {
140
+ const errorMessage = err instanceof Error ? err.message : 'Step verification failed';
141
+ setError(errorMessage);
142
+ updateStepStatus(currentStepIndex, 'failed');
143
+ onError?.(err instanceof Error ? err : new Error(errorMessage));
144
+ }
145
+ finally {
146
+ setIsLoading(false);
147
+ }
148
+ }, [currentStepIndex, isLastStep, onError, updateStepStatus]);
149
+ // Complete entire verification flow
150
+ const handleCompleteVerification = (0, react_1.useCallback)(async () => {
151
+ setIsLoading(true);
152
+ setError(null);
153
+ try {
154
+ // Complete the last step first
155
+ await new Promise((resolve) => setTimeout(resolve, 500));
156
+ updateStepStatus(currentStepIndex, 'completed');
157
+ // Determine tier based on accreditation field
158
+ const hasAccreditation = requiredFields.includes('accreditation');
159
+ const tier = hasAccreditation ? 2 : 1; // Accredited (2) or Retail (1)
160
+ // Generate identity hash
161
+ const identityHash = '0x' + Array.from({ length: 64 }, () => Math.floor(Math.random() * 16).toString(16)).join('');
162
+ const result = {
163
+ verified: true,
164
+ tier,
165
+ identityHash,
166
+ sessionId: sessionId || `${provider}-${Date.now()}`,
167
+ };
168
+ // Auto-update registry if configured
169
+ if (autoUpdateRegistry && registryAddress) {
170
+ // In production, this would call the SDK to update the on-chain registry
171
+ await new Promise((resolve) => setTimeout(resolve, 500));
172
+ }
173
+ onComplete(result);
174
+ }
175
+ catch (err) {
176
+ const errorMessage = err instanceof Error ? err.message : 'Verification completion failed';
177
+ setError(errorMessage);
178
+ updateStepStatus(currentStepIndex, 'failed');
179
+ onError?.(err instanceof Error ? err : new Error(errorMessage));
180
+ }
181
+ finally {
182
+ setIsLoading(false);
183
+ }
184
+ }, [
185
+ currentStepIndex,
186
+ requiredFields,
187
+ sessionId,
188
+ provider,
189
+ autoUpdateRegistry,
190
+ registryAddress,
191
+ onComplete,
192
+ onError,
193
+ updateStepStatus,
194
+ ]);
195
+ // Retry failed step
196
+ const handleRetry = (0, react_1.useCallback)(() => {
197
+ setError(null);
198
+ updateStepStatus(currentStepIndex, 'in_progress');
199
+ }, [currentStepIndex, updateStepStatus]);
200
+ // Style classes
201
+ const containerClass = (0, react_1.useMemo)(() => customStyles?.container ?? `rwa-kyc-flow ${isDark ? 'dark' : ''}`, [customStyles?.container, isDark]);
202
+ const headerClass = (0, react_1.useMemo)(() => customStyles?.header ?? 'rwa-kyc-header', [customStyles?.header]);
203
+ const buttonClass = (0, react_1.useMemo)(() => customStyles?.button ?? 'rwa-button-primary', [customStyles?.button]);
204
+ // Render step indicator
205
+ const renderStepIndicator = () => ((0, jsx_runtime_1.jsx)("div", { className: "rwa-kyc-steps", role: "list", "aria-label": "Verification steps", children: steps.map((step, index) => ((0, jsx_runtime_1.jsxs)("div", { className: `rwa-kyc-step ${step.status}`, role: "listitem", "aria-current": index === currentStepIndex ? 'step' : undefined, children: [(0, jsx_runtime_1.jsx)("div", { className: "rwa-kyc-step-indicator", children: step.status === 'completed' ? ((0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: "\u2713" })) : step.status === 'failed' ? ((0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: "\u2717" })) : ((0, jsx_runtime_1.jsx)("span", { "aria-hidden": "true", children: index + 1 })) }), (0, jsx_runtime_1.jsxs)("div", { className: "rwa-kyc-step-content", children: [(0, jsx_runtime_1.jsx)("span", { className: "rwa-kyc-step-label", children: step.label }), index === currentStepIndex && verificationStarted && ((0, jsx_runtime_1.jsx)("span", { className: "rwa-kyc-step-description", children: step.description }))] })] }, step.id))) }));
206
+ // Render provider info
207
+ const renderProviderInfo = () => ((0, jsx_runtime_1.jsxs)("div", { className: "rwa-kyc-provider", "data-testid": "kyc-provider-info", children: [(0, jsx_runtime_1.jsx)("span", { className: "rwa-kyc-provider-logo", "aria-hidden": "true", children: providerConfig.logo }), (0, jsx_runtime_1.jsxs)("div", { className: "rwa-kyc-provider-details", children: [(0, jsx_runtime_1.jsx)("span", { className: "rwa-kyc-provider-name", children: providerConfig.displayName }), (0, jsx_runtime_1.jsx)("span", { className: "rwa-kyc-provider-description", children: providerConfig.description })] })] }));
208
+ // Render action buttons
209
+ const renderActions = () => {
210
+ if (!verificationStarted) {
211
+ return ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: handleStartVerification, disabled: isLoading, "aria-busy": isLoading, "data-testid": "start-verification-btn", children: isLoading ? 'Starting...' : 'Start Verification' }));
212
+ }
213
+ if (currentStep?.status === 'failed') {
214
+ return ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: handleRetry, disabled: isLoading, "data-testid": "retry-btn", children: "Retry Step" }));
215
+ }
216
+ if (allStepsCompleted) {
217
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "rwa-kyc-success", role: "status", children: [(0, jsx_runtime_1.jsx)("span", { className: "rwa-kyc-success-icon", "aria-hidden": "true", children: "\u2713" }), (0, jsx_runtime_1.jsx)("span", { children: "Verification Complete" })] }));
218
+ }
219
+ if (isLastStep) {
220
+ return ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: handleCompleteVerification, disabled: isLoading, "aria-busy": isLoading, "data-testid": "complete-verification-btn", children: isLoading ? 'Completing...' : 'Complete Verification' }));
221
+ }
222
+ return ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: handleCompleteStep, disabled: isLoading, "aria-busy": isLoading, "data-testid": "next-step-btn", children: isLoading ? 'Verifying...' : 'Continue' }));
223
+ };
224
+ return ((0, jsx_runtime_1.jsxs)("div", { className: containerClass, "data-testid": "kyc-flow", "data-provider": provider, "data-theme": theme, role: "form", "aria-label": "KYC Verification Flow", children: [(0, jsx_runtime_1.jsx)("h2", { className: headerClass, children: allStepsCompleted
225
+ ? 'Verification Complete'
226
+ : verificationStarted
227
+ ? `Step ${currentStepIndex + 1} of ${steps.length}: ${currentStep?.label}`
228
+ : 'Identity Verification' }), error && ((0, jsx_runtime_1.jsxs)("div", { className: "rwa-kyc-error", role: "alert", "aria-live": "polite", "data-testid": "kyc-error", children: [(0, jsx_runtime_1.jsx)("span", { className: "rwa-kyc-error-icon", "aria-hidden": "true", children: "\u26A0" }), (0, jsx_runtime_1.jsx)("span", { children: error })] })), renderProviderInfo(), renderStepIndicator(), (0, jsx_runtime_1.jsx)("div", { className: "rwa-kyc-actions", children: renderActions() }), sessionId && ((0, jsx_runtime_1.jsx)("div", { className: "rwa-kyc-session", "data-testid": "session-info", children: (0, jsx_runtime_1.jsxs)("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: ["Session: ", sessionId.slice(0, 20), "..."] }) }))] }));
229
+ }
230
+ exports.default = KYCFlow;
231
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/KYCFlow/index.tsx"],"names":[],"mappings":"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"}