@varity-labs/ui-kit 2.0.0-alpha.1
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/LICENSE +31 -0
- package/README.md +248 -0
- package/dist/components/AI/ChatbotWidget.d.ts +53 -0
- package/dist/components/AI/ChatbotWidget.d.ts.map +1 -0
- package/dist/components/AI/ChatbotWidget.js +126 -0
- package/dist/components/AI/ChatbotWidget.js.map +1 -0
- package/dist/components/AI/InputBar.d.ts +25 -0
- package/dist/components/AI/InputBar.d.ts.map +1 -0
- package/dist/components/AI/InputBar.js +126 -0
- package/dist/components/AI/InputBar.js.map +1 -0
- package/dist/components/AI/MessageBubble.d.ts +37 -0
- package/dist/components/AI/MessageBubble.d.ts.map +1 -0
- package/dist/components/AI/MessageBubble.js +124 -0
- package/dist/components/AI/MessageBubble.js.map +1 -0
- package/dist/components/AI/index.d.ts +12 -0
- package/dist/components/AI/index.d.ts.map +1 -0
- package/dist/components/AI/index.js +9 -0
- package/dist/components/AI/index.js.map +1 -0
- package/dist/components/Analytics/AnalyticsCard.d.ts +48 -0
- package/dist/components/Analytics/AnalyticsCard.d.ts.map +1 -0
- package/dist/components/Analytics/AnalyticsCard.js +156 -0
- package/dist/components/Analytics/AnalyticsCard.js.map +1 -0
- package/dist/components/Analytics/ChartContainer.d.ts +53 -0
- package/dist/components/Analytics/ChartContainer.d.ts.map +1 -0
- package/dist/components/Analytics/ChartContainer.js +128 -0
- package/dist/components/Analytics/ChartContainer.js.map +1 -0
- package/dist/components/Analytics/DataTable.d.ts +62 -0
- package/dist/components/Analytics/DataTable.d.ts.map +1 -0
- package/dist/components/Analytics/DataTable.js +165 -0
- package/dist/components/Analytics/DataTable.js.map +1 -0
- package/dist/components/Analytics/MetricDisplay.d.ts +42 -0
- package/dist/components/Analytics/MetricDisplay.d.ts.map +1 -0
- package/dist/components/Analytics/MetricDisplay.js +110 -0
- package/dist/components/Analytics/MetricDisplay.js.map +1 -0
- package/dist/components/Analytics/index.d.ts +14 -0
- package/dist/components/Analytics/index.d.ts.map +1 -0
- package/dist/components/Analytics/index.js +10 -0
- package/dist/components/Analytics/index.js.map +1 -0
- package/dist/components/Branding/Attribution.d.ts +39 -0
- package/dist/components/Branding/Attribution.d.ts.map +1 -0
- package/dist/components/Branding/Attribution.js +124 -0
- package/dist/components/Branding/Attribution.js.map +1 -0
- package/dist/components/Branding/Logo.d.ts +39 -0
- package/dist/components/Branding/Logo.d.ts.map +1 -0
- package/dist/components/Branding/Logo.js +67 -0
- package/dist/components/Branding/Logo.js.map +1 -0
- package/dist/components/Branding/ThemeProvider.d.ts +85 -0
- package/dist/components/Branding/ThemeProvider.d.ts.map +1 -0
- package/dist/components/Branding/ThemeProvider.js +186 -0
- package/dist/components/Branding/ThemeProvider.js.map +1 -0
- package/dist/components/Branding/index.d.ts +12 -0
- package/dist/components/Branding/index.d.ts.map +1 -0
- package/dist/components/Branding/index.js +9 -0
- package/dist/components/Branding/index.js.map +1 -0
- package/dist/components/Dashboard/DashboardFooter.d.ts +30 -0
- package/dist/components/Dashboard/DashboardFooter.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardFooter.js +68 -0
- package/dist/components/Dashboard/DashboardFooter.js.map +1 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts +24 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardHeader.js +87 -0
- package/dist/components/Dashboard/DashboardHeader.js.map +1 -0
- package/dist/components/Dashboard/DashboardLayout.d.ts +71 -0
- package/dist/components/Dashboard/DashboardLayout.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardLayout.js +52 -0
- package/dist/components/Dashboard/DashboardLayout.js.map +1 -0
- package/dist/components/Dashboard/DashboardSidebar.d.ts +26 -0
- package/dist/components/Dashboard/DashboardSidebar.d.ts.map +1 -0
- package/dist/components/Dashboard/DashboardSidebar.js +146 -0
- package/dist/components/Dashboard/DashboardSidebar.js.map +1 -0
- package/dist/components/Dashboard/EmptyState.d.ts +84 -0
- package/dist/components/Dashboard/EmptyState.d.ts.map +1 -0
- package/dist/components/Dashboard/EmptyState.js +99 -0
- package/dist/components/Dashboard/EmptyState.js.map +1 -0
- package/dist/components/Dashboard/KPICard.d.ts +58 -0
- package/dist/components/Dashboard/KPICard.d.ts.map +1 -0
- package/dist/components/Dashboard/KPICard.js +82 -0
- package/dist/components/Dashboard/KPICard.js.map +1 -0
- package/dist/components/Dashboard/LoadingSkeleton.d.ts +58 -0
- package/dist/components/Dashboard/LoadingSkeleton.d.ts.map +1 -0
- package/dist/components/Dashboard/LoadingSkeleton.js +105 -0
- package/dist/components/Dashboard/LoadingSkeleton.js.map +1 -0
- package/dist/components/Dashboard/StatusBadge.d.ts +57 -0
- package/dist/components/Dashboard/StatusBadge.d.ts.map +1 -0
- package/dist/components/Dashboard/StatusBadge.js +149 -0
- package/dist/components/Dashboard/StatusBadge.js.map +1 -0
- package/dist/components/Dashboard/index.d.ts +19 -0
- package/dist/components/Dashboard/index.d.ts.map +1 -0
- package/dist/components/Dashboard/index.js +18 -0
- package/dist/components/Dashboard/index.js.map +1 -0
- package/dist/components/InAppWallet/EmailLoginButton.d.ts +27 -0
- package/dist/components/InAppWallet/EmailLoginButton.d.ts.map +1 -0
- package/dist/components/InAppWallet/EmailLoginButton.js +84 -0
- package/dist/components/InAppWallet/EmailLoginButton.js.map +1 -0
- package/dist/components/InAppWallet/InAppWalletProvider.d.ts +54 -0
- package/dist/components/InAppWallet/InAppWalletProvider.d.ts.map +1 -0
- package/dist/components/InAppWallet/InAppWalletProvider.js +238 -0
- package/dist/components/InAppWallet/InAppWalletProvider.js.map +1 -0
- package/dist/components/InAppWallet/OnboardingFlow.d.ts +25 -0
- package/dist/components/InAppWallet/OnboardingFlow.d.ts.map +1 -0
- package/dist/components/InAppWallet/OnboardingFlow.js +159 -0
- package/dist/components/InAppWallet/OnboardingFlow.js.map +1 -0
- package/dist/components/InAppWallet/SocialLoginButtons.d.ts +28 -0
- package/dist/components/InAppWallet/SocialLoginButtons.d.ts.map +1 -0
- package/dist/components/InAppWallet/SocialLoginButtons.js +128 -0
- package/dist/components/InAppWallet/SocialLoginButtons.js.map +1 -0
- package/dist/components/InAppWallet/index.d.ts +15 -0
- package/dist/components/InAppWallet/index.d.ts.map +1 -0
- package/dist/components/InAppWallet/index.js +14 -0
- package/dist/components/InAppWallet/index.js.map +1 -0
- package/dist/components/Onramp/BuyUSDCButton.d.ts +27 -0
- package/dist/components/Onramp/BuyUSDCButton.d.ts.map +1 -0
- package/dist/components/Onramp/BuyUSDCButton.js +70 -0
- package/dist/components/Onramp/BuyUSDCButton.js.map +1 -0
- package/dist/components/Onramp/OnrampWidget.d.ts +38 -0
- package/dist/components/Onramp/OnrampWidget.d.ts.map +1 -0
- package/dist/components/Onramp/OnrampWidget.js +105 -0
- package/dist/components/Onramp/OnrampWidget.js.map +1 -0
- package/dist/components/Onramp/index.d.ts +14 -0
- package/dist/components/Onramp/index.d.ts.map +1 -0
- package/dist/components/Onramp/index.js +12 -0
- package/dist/components/Onramp/index.js.map +1 -0
- package/dist/components/Payments/CheckoutModal.d.ts +19 -0
- package/dist/components/Payments/CheckoutModal.d.ts.map +1 -0
- package/dist/components/Payments/CheckoutModal.js +183 -0
- package/dist/components/Payments/CheckoutModal.js.map +1 -0
- package/dist/components/Payments/SubscriptionWidget.d.ts +17 -0
- package/dist/components/Payments/SubscriptionWidget.d.ts.map +1 -0
- package/dist/components/Payments/SubscriptionWidget.js +89 -0
- package/dist/components/Payments/SubscriptionWidget.js.map +1 -0
- package/dist/components/Payments/constants.d.ts +59 -0
- package/dist/components/Payments/constants.d.ts.map +1 -0
- package/dist/components/Payments/constants.js +145 -0
- package/dist/components/Payments/constants.js.map +1 -0
- package/dist/components/Payments/index.d.ts +10 -0
- package/dist/components/Payments/index.d.ts.map +1 -0
- package/dist/components/Payments/index.js +12 -0
- package/dist/components/Payments/index.js.map +1 -0
- package/dist/components/Payments/types.d.ts +119 -0
- package/dist/components/Payments/types.d.ts.map +1 -0
- package/dist/components/Payments/types.js +27 -0
- package/dist/components/Payments/types.js.map +1 -0
- package/dist/components/Payments/usePayments.d.ts +33 -0
- package/dist/components/Payments/usePayments.d.ts.map +1 -0
- package/dist/components/Payments/usePayments.js +249 -0
- package/dist/components/Payments/usePayments.js.map +1 -0
- package/dist/components/Privy/InitTimeoutScreen.d.ts +62 -0
- package/dist/components/Privy/InitTimeoutScreen.d.ts.map +1 -0
- package/dist/components/Privy/InitTimeoutScreen.js +64 -0
- package/dist/components/Privy/InitTimeoutScreen.js.map +1 -0
- package/dist/components/Privy/InitializingScreen.d.ts +56 -0
- package/dist/components/Privy/InitializingScreen.d.ts.map +1 -0
- package/dist/components/Privy/InitializingScreen.js +60 -0
- package/dist/components/Privy/InitializingScreen.js.map +1 -0
- package/dist/components/Privy/PrivyLoginButton.d.ts +27 -0
- package/dist/components/Privy/PrivyLoginButton.d.ts.map +1 -0
- package/dist/components/Privy/PrivyLoginButton.js +48 -0
- package/dist/components/Privy/PrivyLoginButton.js.map +1 -0
- package/dist/components/Privy/PrivyProtectedRoute.d.ts +22 -0
- package/dist/components/Privy/PrivyProtectedRoute.d.ts.map +1 -0
- package/dist/components/Privy/PrivyProtectedRoute.js +46 -0
- package/dist/components/Privy/PrivyProtectedRoute.js.map +1 -0
- package/dist/components/Privy/PrivyReadyGate.d.ts +69 -0
- package/dist/components/Privy/PrivyReadyGate.d.ts.map +1 -0
- package/dist/components/Privy/PrivyReadyGate.js +83 -0
- package/dist/components/Privy/PrivyReadyGate.js.map +1 -0
- package/dist/components/Privy/PrivyUserProfile.d.ts +25 -0
- package/dist/components/Privy/PrivyUserProfile.d.ts.map +1 -0
- package/dist/components/Privy/PrivyUserProfile.js +98 -0
- package/dist/components/Privy/PrivyUserProfile.js.map +1 -0
- package/dist/components/Privy/index.d.ts +21 -0
- package/dist/components/Privy/index.d.ts.map +1 -0
- package/dist/components/Privy/index.js +16 -0
- package/dist/components/Privy/index.js.map +1 -0
- package/dist/components/SIWE/AuthStatus.d.ts +15 -0
- package/dist/components/SIWE/AuthStatus.d.ts.map +1 -0
- package/dist/components/SIWE/AuthStatus.js +47 -0
- package/dist/components/SIWE/AuthStatus.js.map +1 -0
- package/dist/components/SIWE/ProtectedRoute.d.ts +17 -0
- package/dist/components/SIWE/ProtectedRoute.d.ts.map +1 -0
- package/dist/components/SIWE/ProtectedRoute.js +52 -0
- package/dist/components/SIWE/ProtectedRoute.js.map +1 -0
- package/dist/components/SIWE/SIWEButton.d.ts +22 -0
- package/dist/components/SIWE/SIWEButton.d.ts.map +1 -0
- package/dist/components/SIWE/SIWEButton.js +106 -0
- package/dist/components/SIWE/SIWEButton.js.map +1 -0
- package/dist/components/SIWE/SIWEModal.d.ts +19 -0
- package/dist/components/SIWE/SIWEModal.d.ts.map +1 -0
- package/dist/components/SIWE/SIWEModal.js +75 -0
- package/dist/components/SIWE/SIWEModal.js.map +1 -0
- package/dist/components/SIWE/SIWEProvider.d.ts +38 -0
- package/dist/components/SIWE/SIWEProvider.d.ts.map +1 -0
- package/dist/components/SIWE/SIWEProvider.js +227 -0
- package/dist/components/SIWE/SIWEProvider.js.map +1 -0
- package/dist/components/SIWE/index.d.ts +15 -0
- package/dist/components/SIWE/index.d.ts.map +1 -0
- package/dist/components/SIWE/index.js +10 -0
- package/dist/components/SIWE/index.js.map +1 -0
- package/dist/components/index.d.ts +11 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +16 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/templates/Finance/FinanceDashboard.d.ts +15 -0
- package/dist/components/templates/Finance/FinanceDashboard.d.ts.map +1 -0
- package/dist/components/templates/Finance/FinanceDashboard.js +112 -0
- package/dist/components/templates/Finance/FinanceDashboard.js.map +1 -0
- package/dist/components/templates/Healthcare/HealthcareDashboard.d.ts +15 -0
- package/dist/components/templates/Healthcare/HealthcareDashboard.d.ts.map +1 -0
- package/dist/components/templates/Healthcare/HealthcareDashboard.js +121 -0
- package/dist/components/templates/Healthcare/HealthcareDashboard.js.map +1 -0
- package/dist/components/templates/ISO/ISODashboard.d.ts +15 -0
- package/dist/components/templates/ISO/ISODashboard.d.ts.map +1 -0
- package/dist/components/templates/ISO/ISODashboard.js +184 -0
- package/dist/components/templates/ISO/ISODashboard.js.map +1 -0
- package/dist/components/templates/Retail/RetailDashboard.d.ts +15 -0
- package/dist/components/templates/Retail/RetailDashboard.d.ts.map +1 -0
- package/dist/components/templates/Retail/RetailDashboard.js +151 -0
- package/dist/components/templates/Retail/RetailDashboard.js.map +1 -0
- package/dist/components/templates/index.d.ts +14 -0
- package/dist/components/templates/index.d.ts.map +1 -0
- package/dist/components/templates/index.js +14 -0
- package/dist/components/templates/index.js.map +1 -0
- package/dist/config/chains.d.ts +23 -0
- package/dist/config/chains.d.ts.map +1 -0
- package/dist/config/chains.js +55 -0
- package/dist/config/chains.js.map +1 -0
- package/dist/core/VarityClient.d.ts +76 -0
- package/dist/core/VarityClient.d.ts.map +1 -0
- package/dist/core/VarityClient.js +99 -0
- package/dist/core/VarityClient.js.map +1 -0
- package/dist/core/config.d.ts +136 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +156 -0
- package/dist/core/config.js.map +1 -0
- package/dist/hooks/index.d.ts +17 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +18 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAnalytics.d.ts +94 -0
- package/dist/hooks/useAnalytics.d.ts.map +1 -0
- package/dist/hooks/useAnalytics.js +116 -0
- package/dist/hooks/useAnalytics.js.map +1 -0
- package/dist/hooks/useAuth.d.ts +71 -0
- package/dist/hooks/useAuth.d.ts.map +1 -0
- package/dist/hooks/useAuth.js +198 -0
- package/dist/hooks/useAuth.js.map +1 -0
- package/dist/hooks/useDashboard.d.ts +110 -0
- package/dist/hooks/useDashboard.d.ts.map +1 -0
- package/dist/hooks/useDashboard.js +201 -0
- package/dist/hooks/useDashboard.js.map +1 -0
- package/dist/hooks/useVarityAPI.d.ts +88 -0
- package/dist/hooks/useVarityAPI.d.ts.map +1 -0
- package/dist/hooks/useVarityAPI.js +138 -0
- package/dist/hooks/useVarityAPI.js.map +1 -0
- package/dist/hooks/useWalletAuth.d.ts +108 -0
- package/dist/hooks/useWalletAuth.d.ts.map +1 -0
- package/dist/hooks/useWalletAuth.js +415 -0
- package/dist/hooks/useWalletAuth.js.map +1 -0
- package/dist/hooks/web3/index.d.ts +5 -0
- package/dist/hooks/web3/index.d.ts.map +1 -0
- package/dist/hooks/web3/index.js +6 -0
- package/dist/hooks/web3/index.js.map +1 -0
- package/dist/hooks/web3/useAddressValidation.d.ts +37 -0
- package/dist/hooks/web3/useAddressValidation.d.ts.map +1 -0
- package/dist/hooks/web3/useAddressValidation.js +59 -0
- package/dist/hooks/web3/useAddressValidation.js.map +1 -0
- package/dist/hooks/web3/useBlockExplorer.d.ts +37 -0
- package/dist/hooks/web3/useBlockExplorer.d.ts.map +1 -0
- package/dist/hooks/web3/useBlockExplorer.js +59 -0
- package/dist/hooks/web3/useBlockExplorer.js.map +1 -0
- package/dist/hooks/web3/useUSDCFormat.d.ts +34 -0
- package/dist/hooks/web3/useUSDCFormat.d.ts.map +1 -0
- package/dist/hooks/web3/useUSDCFormat.js +43 -0
- package/dist/hooks/web3/useUSDCFormat.js.map +1 -0
- package/dist/hooks/web3/useVarityWallet.d.ts +48 -0
- package/dist/hooks/web3/useVarityWallet.d.ts.map +1 -0
- package/dist/hooks/web3/useVarityWallet.js +70 -0
- package/dist/hooks/web3/useVarityWallet.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +68 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/analytics/AnalyticsClient.d.ts +72 -0
- package/dist/modules/analytics/AnalyticsClient.d.ts.map +1 -0
- package/dist/modules/analytics/AnalyticsClient.js +56 -0
- package/dist/modules/analytics/AnalyticsClient.js.map +1 -0
- package/dist/modules/analytics/index.d.ts +2 -0
- package/dist/modules/analytics/index.d.ts.map +1 -0
- package/dist/modules/analytics/index.js +2 -0
- package/dist/modules/analytics/index.js.map +1 -0
- package/dist/modules/auth/AuthClient.d.ts +41 -0
- package/dist/modules/auth/AuthClient.d.ts.map +1 -0
- package/dist/modules/auth/AuthClient.js +36 -0
- package/dist/modules/auth/AuthClient.js.map +1 -0
- package/dist/modules/auth/index.d.ts +2 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +2 -0
- package/dist/modules/auth/index.js.map +1 -0
- package/dist/modules/cache/CacheClient.d.ts +48 -0
- package/dist/modules/cache/CacheClient.d.ts.map +1 -0
- package/dist/modules/cache/CacheClient.js +59 -0
- package/dist/modules/cache/CacheClient.js.map +1 -0
- package/dist/modules/cache/index.d.ts +2 -0
- package/dist/modules/cache/index.d.ts.map +1 -0
- package/dist/modules/cache/index.js +2 -0
- package/dist/modules/cache/index.js.map +1 -0
- package/dist/modules/compute/ComputeClient.d.ts +54 -0
- package/dist/modules/compute/ComputeClient.d.ts.map +1 -0
- package/dist/modules/compute/ComputeClient.js +39 -0
- package/dist/modules/compute/ComputeClient.js.map +1 -0
- package/dist/modules/compute/index.d.ts +2 -0
- package/dist/modules/compute/index.d.ts.map +1 -0
- package/dist/modules/compute/index.js +2 -0
- package/dist/modules/compute/index.js.map +1 -0
- package/dist/modules/export/ExportClient.d.ts +56 -0
- package/dist/modules/export/ExportClient.d.ts.map +1 -0
- package/dist/modules/export/ExportClient.js +42 -0
- package/dist/modules/export/ExportClient.js.map +1 -0
- package/dist/modules/export/index.d.ts +2 -0
- package/dist/modules/export/index.d.ts.map +1 -0
- package/dist/modules/export/index.js +2 -0
- package/dist/modules/export/index.js.map +1 -0
- package/dist/modules/forecasting/ForecastingClient.d.ts +112 -0
- package/dist/modules/forecasting/ForecastingClient.d.ts.map +1 -0
- package/dist/modules/forecasting/ForecastingClient.js +48 -0
- package/dist/modules/forecasting/ForecastingClient.js.map +1 -0
- package/dist/modules/forecasting/index.d.ts +2 -0
- package/dist/modules/forecasting/index.d.ts.map +1 -0
- package/dist/modules/forecasting/index.js +2 -0
- package/dist/modules/forecasting/index.js.map +1 -0
- package/dist/modules/monitoring/MonitoringClient.d.ts +67 -0
- package/dist/modules/monitoring/MonitoringClient.d.ts.map +1 -0
- package/dist/modules/monitoring/MonitoringClient.js +48 -0
- package/dist/modules/monitoring/MonitoringClient.js.map +1 -0
- package/dist/modules/monitoring/index.d.ts +2 -0
- package/dist/modules/monitoring/index.d.ts.map +1 -0
- package/dist/modules/monitoring/index.js +2 -0
- package/dist/modules/monitoring/index.js.map +1 -0
- package/dist/modules/notifications/NotificationsClient.d.ts +68 -0
- package/dist/modules/notifications/NotificationsClient.d.ts.map +1 -0
- package/dist/modules/notifications/NotificationsClient.js +50 -0
- package/dist/modules/notifications/NotificationsClient.js.map +1 -0
- package/dist/modules/notifications/index.d.ts +2 -0
- package/dist/modules/notifications/index.d.ts.map +1 -0
- package/dist/modules/notifications/index.js +2 -0
- package/dist/modules/notifications/index.js.map +1 -0
- package/dist/modules/oracle/OracleClient.d.ts +48 -0
- package/dist/modules/oracle/OracleClient.d.ts.map +1 -0
- package/dist/modules/oracle/OracleClient.js +34 -0
- package/dist/modules/oracle/OracleClient.js.map +1 -0
- package/dist/modules/oracle/index.d.ts +2 -0
- package/dist/modules/oracle/index.d.ts.map +1 -0
- package/dist/modules/oracle/index.js +2 -0
- package/dist/modules/oracle/index.js.map +1 -0
- package/dist/modules/storage/StorageClient.d.ts +44 -0
- package/dist/modules/storage/StorageClient.d.ts.map +1 -0
- package/dist/modules/storage/StorageClient.js +43 -0
- package/dist/modules/storage/StorageClient.js.map +1 -0
- package/dist/modules/storage/index.d.ts +2 -0
- package/dist/modules/storage/index.d.ts.map +1 -0
- package/dist/modules/storage/index.js +2 -0
- package/dist/modules/storage/index.js.map +1 -0
- package/dist/modules/templates/TemplateDeploymentClient.d.ts +208 -0
- package/dist/modules/templates/TemplateDeploymentClient.d.ts.map +1 -0
- package/dist/modules/templates/TemplateDeploymentClient.js +101 -0
- package/dist/modules/templates/TemplateDeploymentClient.js.map +1 -0
- package/dist/modules/templates/index.d.ts +8 -0
- package/dist/modules/templates/index.d.ts.map +1 -0
- package/dist/modules/templates/index.js +7 -0
- package/dist/modules/templates/index.js.map +1 -0
- package/dist/modules/webhooks/WebhooksClient.d.ts +85 -0
- package/dist/modules/webhooks/WebhooksClient.d.ts.map +1 -0
- package/dist/modules/webhooks/WebhooksClient.js +68 -0
- package/dist/modules/webhooks/WebhooksClient.js.map +1 -0
- package/dist/modules/webhooks/index.d.ts +2 -0
- package/dist/modules/webhooks/index.d.ts.map +1 -0
- package/dist/modules/webhooks/index.js +2 -0
- package/dist/modules/webhooks/index.js.map +1 -0
- package/dist/modules/zk/ZKClient.d.ts +67 -0
- package/dist/modules/zk/ZKClient.d.ts.map +1 -0
- package/dist/modules/zk/ZKClient.js +36 -0
- package/dist/modules/zk/ZKClient.js.map +1 -0
- package/dist/modules/zk/index.d.ts +2 -0
- package/dist/modules/zk/index.d.ts.map +1 -0
- package/dist/modules/zk/index.js +2 -0
- package/dist/modules/zk/index.js.map +1 -0
- package/dist/providers/ChainContext.d.ts +65 -0
- package/dist/providers/ChainContext.d.ts.map +1 -0
- package/dist/providers/ChainContext.js +92 -0
- package/dist/providers/ChainContext.js.map +1 -0
- package/dist/providers/PrivyProvider.d.ts +42 -0
- package/dist/providers/PrivyProvider.d.ts.map +1 -0
- package/dist/providers/PrivyProvider.js +131 -0
- package/dist/providers/PrivyProvider.js.map +1 -0
- package/dist/providers/PrivyStack.d.ts +165 -0
- package/dist/providers/PrivyStack.d.ts.map +1 -0
- package/dist/providers/PrivyStack.js +295 -0
- package/dist/providers/PrivyStack.js.map +1 -0
- package/dist/providers/VarityDashboardProvider.d.ts +90 -0
- package/dist/providers/VarityDashboardProvider.d.ts.map +1 -0
- package/dist/providers/VarityDashboardProvider.js +242 -0
- package/dist/providers/VarityDashboardProvider.js.map +1 -0
- package/dist/providers/VarityProvider.d.ts +32 -0
- package/dist/providers/VarityProvider.d.ts.map +1 -0
- package/dist/providers/VarityProvider.js +56 -0
- package/dist/providers/VarityProvider.js.map +1 -0
- package/dist/providers/WalletContext.d.ts +68 -0
- package/dist/providers/WalletContext.d.ts.map +1 -0
- package/dist/providers/WalletContext.js +98 -0
- package/dist/providers/WalletContext.js.map +1 -0
- package/dist/providers/WalletSyncProvider.d.ts +84 -0
- package/dist/providers/WalletSyncProvider.d.ts.map +1 -0
- package/dist/providers/WalletSyncProvider.js +132 -0
- package/dist/providers/WalletSyncProvider.js.map +1 -0
- package/dist/providers/index.d.ts +47 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +51 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/tests/mocks/httpClient.mock.d.ts +62 -0
- package/dist/tests/mocks/httpClient.mock.d.ts.map +1 -0
- package/dist/tests/mocks/httpClient.mock.js +108 -0
- package/dist/tests/mocks/httpClient.mock.js.map +1 -0
- package/dist/tests/setup.d.ts +6 -0
- package/dist/tests/setup.d.ts.map +1 -0
- package/dist/tests/setup.js +51 -0
- package/dist/tests/setup.js.map +1 -0
- package/dist/types/api-extensions.d.ts +92 -0
- package/dist/types/api-extensions.d.ts.map +1 -0
- package/dist/types/api-extensions.js +7 -0
- package/dist/types/api-extensions.js.map +1 -0
- package/dist/utils/http.d.ts +51 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +104 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/wallets/SimpleSmartWallet.d.ts +68 -0
- package/dist/wallets/SimpleSmartWallet.d.ts.map +1 -0
- package/dist/wallets/SimpleSmartWallet.js +74 -0
- package/dist/wallets/SimpleSmartWallet.js.map +1 -0
- package/dist/wallets/SmartWalletProvider.d.ts +217 -0
- package/dist/wallets/SmartWalletProvider.d.ts.map +1 -0
- package/dist/wallets/SmartWalletProvider.js +366 -0
- package/dist/wallets/SmartWalletProvider.js.map +1 -0
- package/dist/wallets/config.d.ts +199 -0
- package/dist/wallets/config.d.ts.map +1 -0
- package/dist/wallets/config.js +183 -0
- package/dist/wallets/config.js.map +1 -0
- package/dist/wallets/index.d.ts +9 -0
- package/dist/wallets/index.d.ts.map +1 -0
- package/dist/wallets/index.js +9 -0
- package/dist/wallets/index.js.map +1 -0
- package/dist/web3/AddressDisplay/AddressDisplay.d.ts +33 -0
- package/dist/web3/AddressDisplay/AddressDisplay.d.ts.map +1 -0
- package/dist/web3/AddressDisplay/AddressDisplay.js +42 -0
- package/dist/web3/AddressDisplay/AddressDisplay.js.map +1 -0
- package/dist/web3/AddressInput/AddressInput.d.ts +36 -0
- package/dist/web3/AddressInput/AddressInput.d.ts.map +1 -0
- package/dist/web3/AddressInput/AddressInput.js +54 -0
- package/dist/web3/AddressInput/AddressInput.js.map +1 -0
- package/dist/web3/AmountInput/AmountInput.d.ts +41 -0
- package/dist/web3/AmountInput/AmountInput.d.ts.map +1 -0
- package/dist/web3/AmountInput/AmountInput.js +74 -0
- package/dist/web3/AmountInput/AmountInput.js.map +1 -0
- package/dist/web3/BalanceDisplay/BalanceDisplay.d.ts +30 -0
- package/dist/web3/BalanceDisplay/BalanceDisplay.d.ts.map +1 -0
- package/dist/web3/BalanceDisplay/BalanceDisplay.js +35 -0
- package/dist/web3/BalanceDisplay/BalanceDisplay.js.map +1 -0
- package/dist/web3/BlockExplorerLink/BlockExplorerLink.d.ts +41 -0
- package/dist/web3/BlockExplorerLink/BlockExplorerLink.d.ts.map +1 -0
- package/dist/web3/BlockExplorerLink/BlockExplorerLink.js +46 -0
- package/dist/web3/BlockExplorerLink/BlockExplorerLink.js.map +1 -0
- package/dist/web3/ConnectWallet/ConnectWallet.d.ts +35 -0
- package/dist/web3/ConnectWallet/ConnectWallet.d.ts.map +1 -0
- package/dist/web3/ConnectWallet/ConnectWallet.js +58 -0
- package/dist/web3/ConnectWallet/ConnectWallet.js.map +1 -0
- package/dist/web3/DisconnectButton/DisconnectButton.d.ts +30 -0
- package/dist/web3/DisconnectButton/DisconnectButton.d.ts.map +1 -0
- package/dist/web3/DisconnectButton/DisconnectButton.js +48 -0
- package/dist/web3/DisconnectButton/DisconnectButton.js.map +1 -0
- package/dist/web3/WalletBalance/WalletBalance.d.ts +27 -0
- package/dist/web3/WalletBalance/WalletBalance.d.ts.map +1 -0
- package/dist/web3/WalletBalance/WalletBalance.js +49 -0
- package/dist/web3/WalletBalance/WalletBalance.js.map +1 -0
- package/dist/web3/WalletDropdown/WalletDropdown.d.ts +29 -0
- package/dist/web3/WalletDropdown/WalletDropdown.d.ts.map +1 -0
- package/dist/web3/WalletDropdown/WalletDropdown.js +93 -0
- package/dist/web3/WalletDropdown/WalletDropdown.js.map +1 -0
- package/dist/web3/WalletInfo/WalletInfo.d.ts +31 -0
- package/dist/web3/WalletInfo/WalletInfo.d.ts.map +1 -0
- package/dist/web3/WalletInfo/WalletInfo.js +41 -0
- package/dist/web3/WalletInfo/WalletInfo.js.map +1 -0
- package/dist/web3/index.d.ts +11 -0
- package/dist/web3/index.d.ts.map +1 -0
- package/dist/web3/index.js +14 -0
- package/dist/web3/index.js.map +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import React, { useState, useEffect } from 'react';
|
|
2
|
+
import { PrivyProvider } from '@privy-io/react-auth';
|
|
3
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
4
|
+
import { ThirdwebProvider } from 'thirdweb/react';
|
|
5
|
+
import { PrivyReadyGate } from '../components/Privy/PrivyReadyGate';
|
|
6
|
+
import { WalletSyncProvider } from './WalletSyncProvider';
|
|
7
|
+
import { resolveCredentials, VARITY_DEV_CREDENTIALS, resolveCredentialsWithProxy } from '@varity-labs/sdk';
|
|
8
|
+
/**
|
|
9
|
+
* Create React Query client (memoized singleton)
|
|
10
|
+
*/
|
|
11
|
+
const queryClient = new QueryClient({
|
|
12
|
+
defaultOptions: {
|
|
13
|
+
queries: {
|
|
14
|
+
staleTime: 1000 * 60 * 5, // 5 minutes
|
|
15
|
+
retry: 1,
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Convert thirdweb Chain to Privy Chain format
|
|
21
|
+
*/
|
|
22
|
+
function toPrivyChain(chain) {
|
|
23
|
+
// Ensure nativeCurrency properties are never undefined
|
|
24
|
+
const nativeCurrency = {
|
|
25
|
+
name: chain.nativeCurrency?.name ?? 'Ether',
|
|
26
|
+
symbol: chain.nativeCurrency?.symbol ?? 'ETH',
|
|
27
|
+
decimals: chain.nativeCurrency?.decimals ?? 18,
|
|
28
|
+
};
|
|
29
|
+
// Convert blockExplorers array to Privy format (object with default key)
|
|
30
|
+
let blockExplorers;
|
|
31
|
+
if (chain.blockExplorers && Array.isArray(chain.blockExplorers) && chain.blockExplorers.length > 0) {
|
|
32
|
+
const explorer = chain.blockExplorers[0];
|
|
33
|
+
blockExplorers = {
|
|
34
|
+
default: {
|
|
35
|
+
name: explorer.name,
|
|
36
|
+
url: explorer.url,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
id: chain.id,
|
|
42
|
+
name: chain.name || `Chain ${chain.id}`,
|
|
43
|
+
network: `chain-${chain.id}`,
|
|
44
|
+
nativeCurrency,
|
|
45
|
+
rpcUrls: {
|
|
46
|
+
default: { http: [chain.rpc] },
|
|
47
|
+
public: { http: [chain.rpc] },
|
|
48
|
+
},
|
|
49
|
+
blockExplorers,
|
|
50
|
+
testnet: chain.testnet,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* PrivyStack - All-in-one provider for Privy + thirdweb + Varity L3
|
|
55
|
+
*
|
|
56
|
+
* This component combines all necessary providers in the correct order:
|
|
57
|
+
* 1. QueryClientProvider - For React Query (required by Privy)
|
|
58
|
+
* 2. PrivyProvider - Authentication (email, social, wallet)
|
|
59
|
+
* 3. PrivyReadyGate - Prevents blank screen during initialization
|
|
60
|
+
* 4. ThirdwebProvider - Wallet management and contracts
|
|
61
|
+
* 5. WalletSyncProvider - Syncs Privy embedded wallets with thirdweb
|
|
62
|
+
*
|
|
63
|
+
* **Security**: By default, uses Varity Credential Proxy for server-side credential storage.
|
|
64
|
+
* Real credentials NEVER reach client bundles.
|
|
65
|
+
*
|
|
66
|
+
* **Key Features**:
|
|
67
|
+
* - Secure server-side credentials (via credential proxy)
|
|
68
|
+
* - No blank screen during initialization (PrivyReadyGate)
|
|
69
|
+
* - Seamless wallet sync between Privy and thirdweb
|
|
70
|
+
* - Support for email/social login (embedded wallets)
|
|
71
|
+
* - Support for external wallets (MetaMask, WalletConnect, etc.)
|
|
72
|
+
* - Optimized for Varity L3 by default
|
|
73
|
+
*
|
|
74
|
+
* **Stack Order** (critical - do not change):
|
|
75
|
+
* ```
|
|
76
|
+
* QueryClientProvider # React Query for data fetching
|
|
77
|
+
* └─ PrivyProvider # Authentication layer
|
|
78
|
+
* └─ PrivyReadyGate # Loading state management
|
|
79
|
+
* └─ ThirdwebProvider # Blockchain operations
|
|
80
|
+
* └─ WalletSyncProvider # Wallet synchronization
|
|
81
|
+
* └─ YourApp # Your application
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* @example Zero-config setup (secure proxy credentials)
|
|
85
|
+
* ```tsx
|
|
86
|
+
* import { PrivyStack } from '@varity-labs/ui-kit';
|
|
87
|
+
*
|
|
88
|
+
* function App() {
|
|
89
|
+
* return (
|
|
90
|
+
* <PrivyStack>
|
|
91
|
+
* <YourApp />
|
|
92
|
+
* </PrivyStack>
|
|
93
|
+
* );
|
|
94
|
+
* }
|
|
95
|
+
* ```
|
|
96
|
+
*
|
|
97
|
+
* @example Production with credential proxy (RECOMMENDED)
|
|
98
|
+
* ```tsx
|
|
99
|
+
* import { PrivyStack } from '@varity-labs/ui-kit';
|
|
100
|
+
*
|
|
101
|
+
* function App() {
|
|
102
|
+
* return (
|
|
103
|
+
* <PrivyStack useCredentialProxy={true}>
|
|
104
|
+
* <YourApp />
|
|
105
|
+
* </PrivyStack>
|
|
106
|
+
* );
|
|
107
|
+
* }
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* @example Custom credentials (without proxy)
|
|
111
|
+
* ```tsx
|
|
112
|
+
* import { PrivyStack } from '@varity-labs/ui-kit';
|
|
113
|
+
*
|
|
114
|
+
* function App() {
|
|
115
|
+
* return (
|
|
116
|
+
* <PrivyStack
|
|
117
|
+
* useCredentialProxy={false}
|
|
118
|
+
* appId={process.env.PRIVY_APP_ID}
|
|
119
|
+
* thirdwebClientId={process.env.THIRDWEB_CLIENT_ID}
|
|
120
|
+
* >
|
|
121
|
+
* <YourApp />
|
|
122
|
+
* </PrivyStack>
|
|
123
|
+
* );
|
|
124
|
+
* }
|
|
125
|
+
* ```
|
|
126
|
+
*
|
|
127
|
+
* @example With custom chains and appearance
|
|
128
|
+
* ```tsx
|
|
129
|
+
* import { PrivyStack } from '@varity-labs/ui-kit';
|
|
130
|
+
* import { varityL3Testnet, arbitrumSepolia } from '@varity-labs/sdk';
|
|
131
|
+
*
|
|
132
|
+
* function App() {
|
|
133
|
+
* return (
|
|
134
|
+
* <PrivyStack
|
|
135
|
+
* chains={[varityL3Testnet, arbitrumSepolia]}
|
|
136
|
+
* loginMethods={['email', 'google', 'wallet']}
|
|
137
|
+
* appearance={{
|
|
138
|
+
* theme: 'light',
|
|
139
|
+
* accentColor: '#2563EB',
|
|
140
|
+
* logo: '/logo.png'
|
|
141
|
+
* }}
|
|
142
|
+
* onAddressChange={(address) => {
|
|
143
|
+
* console.log('Wallet connected:', address);
|
|
144
|
+
* }}
|
|
145
|
+
* >
|
|
146
|
+
* <YourApp />
|
|
147
|
+
* </PrivyStack>
|
|
148
|
+
* );
|
|
149
|
+
* }
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
export function PrivyStack({ appId, thirdwebClientId, useCredentialProxy = true, credentialProxyUrl, chains, children, loginMethods = ['email', 'google', 'wallet'], appearance = {
|
|
153
|
+
theme: 'light',
|
|
154
|
+
accentColor: '#2563EB',
|
|
155
|
+
}, onAddressChange, }) {
|
|
156
|
+
// State for async credential loading
|
|
157
|
+
const [credentials, setCredentials] = useState(null);
|
|
158
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
159
|
+
const [error, setError] = useState(null);
|
|
160
|
+
// Load credentials on mount
|
|
161
|
+
useEffect(() => {
|
|
162
|
+
async function loadCredentials() {
|
|
163
|
+
try {
|
|
164
|
+
setIsLoading(true);
|
|
165
|
+
setError(null);
|
|
166
|
+
let resolvedCredentials;
|
|
167
|
+
if (useCredentialProxy) {
|
|
168
|
+
// Use credential proxy (RECOMMENDED)
|
|
169
|
+
resolvedCredentials = await resolveCredentialsWithProxy(appId, thirdwebClientId, {
|
|
170
|
+
proxyUrl: credentialProxyUrl,
|
|
171
|
+
debug: process.env.NODE_ENV === 'development',
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
// Use manual credentials or fallback to dev credentials
|
|
176
|
+
// Pass usingProxy=true to suppress warnings (proxy handles messaging)
|
|
177
|
+
resolvedCredentials = resolveCredentials(appId || VARITY_DEV_CREDENTIALS.privy.appId, thirdwebClientId || VARITY_DEV_CREDENTIALS.thirdweb.clientId, true // Using Varity-managed credentials
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
setCredentials(resolvedCredentials);
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to load credentials';
|
|
184
|
+
setError(errorMessage);
|
|
185
|
+
console.error('Failed to load credentials:', err);
|
|
186
|
+
}
|
|
187
|
+
finally {
|
|
188
|
+
setIsLoading(false);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
loadCredentials();
|
|
192
|
+
}, [appId, thirdwebClientId, useCredentialProxy, credentialProxyUrl]);
|
|
193
|
+
// Show loading state
|
|
194
|
+
if (isLoading) {
|
|
195
|
+
return (React.createElement("div", { style: {
|
|
196
|
+
display: 'flex',
|
|
197
|
+
justifyContent: 'center',
|
|
198
|
+
alignItems: 'center',
|
|
199
|
+
height: '100vh',
|
|
200
|
+
fontFamily: 'system-ui, -apple-system, sans-serif',
|
|
201
|
+
} },
|
|
202
|
+
React.createElement("div", { style: { textAlign: 'center' } },
|
|
203
|
+
React.createElement("div", { style: {
|
|
204
|
+
width: '48px',
|
|
205
|
+
height: '48px',
|
|
206
|
+
border: '4px solid #f3f3f3',
|
|
207
|
+
borderTop: '4px solid #2563EB',
|
|
208
|
+
borderRadius: '50%',
|
|
209
|
+
animation: 'spin 1s linear infinite',
|
|
210
|
+
margin: '0 auto 16px',
|
|
211
|
+
} }),
|
|
212
|
+
React.createElement("p", { style: { color: '#666' } }, "Initializing authentication...")),
|
|
213
|
+
React.createElement("style", null, `
|
|
214
|
+
@keyframes spin {
|
|
215
|
+
0% { transform: rotate(0deg); }
|
|
216
|
+
100% { transform: rotate(360deg); }
|
|
217
|
+
}
|
|
218
|
+
`)));
|
|
219
|
+
}
|
|
220
|
+
// Show error state
|
|
221
|
+
if (error || !credentials) {
|
|
222
|
+
return (React.createElement("div", { style: {
|
|
223
|
+
display: 'flex',
|
|
224
|
+
justifyContent: 'center',
|
|
225
|
+
alignItems: 'center',
|
|
226
|
+
height: '100vh',
|
|
227
|
+
fontFamily: 'system-ui, -apple-system, sans-serif',
|
|
228
|
+
padding: '24px',
|
|
229
|
+
} },
|
|
230
|
+
React.createElement("div", { style: {
|
|
231
|
+
maxWidth: '600px',
|
|
232
|
+
padding: '32px',
|
|
233
|
+
backgroundColor: '#FEE2E2',
|
|
234
|
+
border: '1px solid #EF4444',
|
|
235
|
+
borderRadius: '8px',
|
|
236
|
+
} },
|
|
237
|
+
React.createElement("h2", { style: { margin: '0 0 16px', color: '#991B1B' } }, "Failed to Load Credentials"),
|
|
238
|
+
React.createElement("p", { style: { margin: '0 0 16px', color: '#7F1D1D' } }, error || 'Unknown error occurred while loading credentials'),
|
|
239
|
+
React.createElement("p", { style: { margin: '0', color: '#7F1D1D', fontSize: '14px' } }, "Please check:"),
|
|
240
|
+
React.createElement("ul", { style: { margin: '8px 0 0', color: '#7F1D1D', fontSize: '14px' } },
|
|
241
|
+
React.createElement("li", null, "Credential proxy is deployed and accessible"),
|
|
242
|
+
React.createElement("li", null, "Manual credentials are provided if proxy is disabled"),
|
|
243
|
+
React.createElement("li", null, "Network connectivity is working")))));
|
|
244
|
+
}
|
|
245
|
+
// Use Varity L3 Testnet as default chain if none provided
|
|
246
|
+
const supportedChains = React.useMemo(() => {
|
|
247
|
+
if (chains && chains.length > 0) {
|
|
248
|
+
return chains.map(toPrivyChain);
|
|
249
|
+
}
|
|
250
|
+
// Default to Varity L3 Testnet
|
|
251
|
+
return [
|
|
252
|
+
{
|
|
253
|
+
id: 33529,
|
|
254
|
+
name: 'Varity L3 Testnet',
|
|
255
|
+
network: 'varity-testnet',
|
|
256
|
+
nativeCurrency: {
|
|
257
|
+
name: 'USDC',
|
|
258
|
+
symbol: 'USDC',
|
|
259
|
+
decimals: 6,
|
|
260
|
+
},
|
|
261
|
+
rpcUrls: {
|
|
262
|
+
default: {
|
|
263
|
+
http: ['https://rpc-varity-testnet-rroe52pwjp.t.conduit.xyz'],
|
|
264
|
+
},
|
|
265
|
+
public: {
|
|
266
|
+
http: ['https://rpc-varity-testnet-rroe52pwjp.t.conduit.xyz'],
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
blockExplorers: {
|
|
270
|
+
default: {
|
|
271
|
+
name: 'Varity Explorer',
|
|
272
|
+
url: 'https://explorer-varity-testnet-rroe52pwjp.t.conduit.xyz',
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
testnet: true,
|
|
276
|
+
},
|
|
277
|
+
];
|
|
278
|
+
}, [chains]);
|
|
279
|
+
return (React.createElement(QueryClientProvider, { client: queryClient },
|
|
280
|
+
React.createElement(PrivyProvider, { appId: credentials.privy.appId, config: {
|
|
281
|
+
loginMethods,
|
|
282
|
+
appearance: {
|
|
283
|
+
theme: appearance.theme || 'light',
|
|
284
|
+
accentColor: (appearance.accentColor || '#2563EB'),
|
|
285
|
+
logo: appearance.logo,
|
|
286
|
+
},
|
|
287
|
+
supportedChains,
|
|
288
|
+
defaultChain: supportedChains[0],
|
|
289
|
+
} },
|
|
290
|
+
React.createElement(PrivyReadyGate, null,
|
|
291
|
+
React.createElement(ThirdwebProvider, null,
|
|
292
|
+
React.createElement(WalletSyncProvider, { onAddressChange: onAddressChange }, children))))));
|
|
293
|
+
}
|
|
294
|
+
export default PrivyStack;
|
|
295
|
+
//# sourceMappingURL=PrivyStack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PrivyStack.js","sourceRoot":"","sources":["../../src/providers/PrivyStack.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { useWalletSync, WalletSyncState } from './WalletSyncProvider';
|
|
3
|
+
export interface VarityDashboardProviderProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
/**
|
|
6
|
+
* Privy App ID (from Privy Dashboard)
|
|
7
|
+
* Can also be set via NEXT_PUBLIC_PRIVY_APP_ID environment variable
|
|
8
|
+
*/
|
|
9
|
+
privyAppId?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Thirdweb Client ID (from thirdweb Dashboard)
|
|
12
|
+
* Can also be set via NEXT_PUBLIC_THIRDWEB_CLIENT_ID environment variable
|
|
13
|
+
*/
|
|
14
|
+
thirdwebClientId?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Appearance configuration
|
|
17
|
+
*/
|
|
18
|
+
appearance?: {
|
|
19
|
+
theme?: 'light' | 'dark';
|
|
20
|
+
accentColor?: `#${string}`;
|
|
21
|
+
logo?: string;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Login methods to enable
|
|
25
|
+
* @default ['email', 'google', 'wallet']
|
|
26
|
+
*/
|
|
27
|
+
loginMethods?: ('email' | 'google' | 'twitter' | 'discord' | 'github' | 'wallet' | 'sms')[];
|
|
28
|
+
/**
|
|
29
|
+
* Initialization timeout in milliseconds
|
|
30
|
+
* @default 10000
|
|
31
|
+
*/
|
|
32
|
+
initTimeout?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Callback when wallet address changes
|
|
35
|
+
*/
|
|
36
|
+
onAddressChange?: (address: string | null) => void;
|
|
37
|
+
/**
|
|
38
|
+
* Callback when wallet sync state changes
|
|
39
|
+
*/
|
|
40
|
+
onWalletSyncChange?: (state: WalletSyncState) => void;
|
|
41
|
+
/**
|
|
42
|
+
* Custom error boundary component
|
|
43
|
+
*/
|
|
44
|
+
errorBoundary?: React.ComponentType<{
|
|
45
|
+
children: React.ReactNode;
|
|
46
|
+
}>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* VarityDashboardProvider - Complete provider setup for Varity L3 dashboards
|
|
50
|
+
*
|
|
51
|
+
* Combines:
|
|
52
|
+
* - Privy (authentication: email, social, wallet)
|
|
53
|
+
* - Thirdweb (wallet management, contracts)
|
|
54
|
+
* - WalletSync (unified wallet state)
|
|
55
|
+
* - React Query (data fetching)
|
|
56
|
+
* - Wagmi (Ethereum interactions)
|
|
57
|
+
*
|
|
58
|
+
* Features:
|
|
59
|
+
* - Embedded wallets for non-crypto users
|
|
60
|
+
* - Gasless transactions support (when configured)
|
|
61
|
+
* - NFT-based licensing support
|
|
62
|
+
* - Cross-chain functionality
|
|
63
|
+
* - Loading states and error handling
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```tsx
|
|
67
|
+
* import { VarityDashboardProvider } from '@varity-labs/ui-kit';
|
|
68
|
+
*
|
|
69
|
+
* function App() {
|
|
70
|
+
* return (
|
|
71
|
+
* <VarityDashboardProvider
|
|
72
|
+
* privyAppId="your-privy-app-id"
|
|
73
|
+
* thirdwebClientId="your-thirdweb-client-id"
|
|
74
|
+
* appearance={{
|
|
75
|
+
* theme: 'light',
|
|
76
|
+
* accentColor: '#2563EB',
|
|
77
|
+
* logo: '/logo.png'
|
|
78
|
+
* }}
|
|
79
|
+
* >
|
|
80
|
+
* <YourDashboard />
|
|
81
|
+
* </VarityDashboardProvider>
|
|
82
|
+
* );
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
export declare function VarityDashboardProvider({ children, privyAppId, thirdwebClientId, appearance, loginMethods, initTimeout, onAddressChange, onWalletSyncChange, errorBoundary: ErrorBoundary, }: VarityDashboardProviderProps): React.JSX.Element;
|
|
87
|
+
export { useWalletSync };
|
|
88
|
+
export type { WalletSyncState };
|
|
89
|
+
export default VarityDashboardProvider;
|
|
90
|
+
//# sourceMappingURL=VarityDashboardProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VarityDashboardProvider.d.ts","sourceRoot":"","sources":["../../src/providers/VarityDashboardProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAuB,SAAS,EAAW,MAAM,OAAO,CAAC;AASvE,OAAO,EAAsB,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAwM1F,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;QACzB,WAAW,CAAC,EAAE,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;IAC5F;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACnD;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD;;OAEG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;CACpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,UAGC,EACD,YAA4C,EAC5C,WAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,aAAa,EAAE,aAAa,GAC7B,EAAE,4BAA4B,qBAgF9B;AAGD,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,eAAe,EAAE,CAAC;AAEhC,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import React, { useState, useEffect, useMemo } from 'react';
|
|
3
|
+
import { PrivyProvider, usePrivy } from '@privy-io/react-auth';
|
|
4
|
+
import { WagmiProvider } from '@privy-io/wagmi';
|
|
5
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
6
|
+
import { ThirdwebProvider } from 'thirdweb/react';
|
|
7
|
+
import { createThirdwebClient } from 'thirdweb';
|
|
8
|
+
import { http } from 'viem';
|
|
9
|
+
import { arbitrumSepolia, arbitrum } from 'viem/chains';
|
|
10
|
+
import { createConfig } from 'wagmi';
|
|
11
|
+
import { WalletSyncProvider, useWalletSync } from './WalletSyncProvider';
|
|
12
|
+
/**
|
|
13
|
+
* Varity L3 Chain Configuration (Arbitrum Orbit Testnet)
|
|
14
|
+
* CRITICAL: Uses correct RPC URL for Conduit deployment
|
|
15
|
+
*/
|
|
16
|
+
const varityL3Testnet = {
|
|
17
|
+
id: 33529,
|
|
18
|
+
name: 'Varity L3 Testnet',
|
|
19
|
+
network: 'varity-testnet',
|
|
20
|
+
nativeCurrency: {
|
|
21
|
+
decimals: 6, // USDC has 6 decimals - NOT 18!
|
|
22
|
+
name: 'USDC',
|
|
23
|
+
symbol: 'USDC',
|
|
24
|
+
},
|
|
25
|
+
rpcUrls: {
|
|
26
|
+
default: {
|
|
27
|
+
http: ['https://rpc-varity-testnet-rroe52pwjp.t.conduit.xyz'],
|
|
28
|
+
},
|
|
29
|
+
public: {
|
|
30
|
+
http: ['https://rpc-varity-testnet-rroe52pwjp.t.conduit.xyz'],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
blockExplorers: {
|
|
34
|
+
default: {
|
|
35
|
+
name: 'Varity Explorer',
|
|
36
|
+
url: 'https://explorer-varity-testnet-rroe52pwjp.t.conduit.xyz',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
testnet: true,
|
|
40
|
+
};
|
|
41
|
+
// Create Wagmi config for Privy
|
|
42
|
+
const wagmiConfig = createConfig({
|
|
43
|
+
chains: [varityL3Testnet, arbitrumSepolia, arbitrum],
|
|
44
|
+
transports: {
|
|
45
|
+
[varityL3Testnet.id]: http(),
|
|
46
|
+
[arbitrumSepolia.id]: http(),
|
|
47
|
+
[arbitrum.id]: http(),
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
// Create React Query client
|
|
51
|
+
const queryClient = new QueryClient();
|
|
52
|
+
/**
|
|
53
|
+
* InitializingScreen - Shows while Privy and thirdweb providers initialize
|
|
54
|
+
*/
|
|
55
|
+
function InitializingScreen({ logo }) {
|
|
56
|
+
return (React.createElement("div", { className: "min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 flex items-center justify-center p-4" },
|
|
57
|
+
React.createElement("div", { className: "bg-white rounded-lg shadow-xl p-8 max-w-md text-center" },
|
|
58
|
+
React.createElement("div", { className: "flex justify-center mb-4" },
|
|
59
|
+
React.createElement("div", { className: "relative" },
|
|
60
|
+
React.createElement("div", { className: "animate-spin rounded-full h-16 w-16 border-b-4 border-blue-600" }),
|
|
61
|
+
logo && (React.createElement("img", { src: logo, alt: "Logo", className: "absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 w-8 h-8" })))),
|
|
62
|
+
React.createElement("h1", { className: "text-2xl font-bold text-gray-900 mb-2" }, "Initializing Dashboard..."),
|
|
63
|
+
React.createElement("p", { className: "text-gray-600 mb-4" }, "Setting up Web3 providers and authentication."),
|
|
64
|
+
React.createElement("div", { className: "text-sm text-gray-500 space-y-1" },
|
|
65
|
+
React.createElement("p", { className: "flex items-center justify-center gap-2" },
|
|
66
|
+
React.createElement("span", { className: "w-4 h-4 text-green-500" }, "\u2713"),
|
|
67
|
+
"Loading authentication"),
|
|
68
|
+
React.createElement("p", { className: "flex items-center justify-center gap-2" },
|
|
69
|
+
React.createElement("span", { className: "w-4 h-4 text-green-500" }, "\u2713"),
|
|
70
|
+
"Connecting to Varity L3"),
|
|
71
|
+
React.createElement("p", { className: "flex items-center justify-center gap-2" },
|
|
72
|
+
React.createElement("span", { className: "w-4 h-4 text-green-500" }, "\u2713"),
|
|
73
|
+
"Preparing wallet connection")))));
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* InitTimeoutScreen - Shows if initialization takes too long
|
|
77
|
+
*/
|
|
78
|
+
function InitTimeoutScreen({ onRetry }) {
|
|
79
|
+
return (React.createElement("div", { className: "min-h-screen bg-gray-50 flex items-center justify-center p-4" },
|
|
80
|
+
React.createElement("div", { className: "bg-white rounded-lg shadow-lg p-8 max-w-md" },
|
|
81
|
+
React.createElement("div", { className: "w-16 h-16 bg-yellow-100 rounded-full flex items-center justify-center mx-auto mb-4" },
|
|
82
|
+
React.createElement("span", { className: "text-2xl" }, "\u23F1")),
|
|
83
|
+
React.createElement("h1", { className: "text-2xl font-bold text-gray-900 mb-2" }, "Taking Longer Than Expected"),
|
|
84
|
+
React.createElement("p", { className: "text-gray-600 mb-4" }, "The Web3 providers are taking longer than usual to initialize."),
|
|
85
|
+
React.createElement("ul", { className: "text-sm text-gray-700 space-y-2 mb-4" },
|
|
86
|
+
React.createElement("li", { className: "flex items-start gap-2" },
|
|
87
|
+
React.createElement("span", { className: "text-yellow-600 mt-0.5" }, "\u2022"),
|
|
88
|
+
React.createElement("span", null, "Check your internet connection")),
|
|
89
|
+
React.createElement("li", { className: "flex items-start gap-2" },
|
|
90
|
+
React.createElement("span", { className: "text-yellow-600 mt-0.5" }, "\u2022"),
|
|
91
|
+
React.createElement("span", null, "Services may be experiencing delays"))),
|
|
92
|
+
React.createElement("div", { className: "flex gap-2" },
|
|
93
|
+
React.createElement("button", { onClick: onRetry, className: "flex-1 bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition-colors" }, "Retry"),
|
|
94
|
+
React.createElement("button", { onClick: () => window.location.reload(), className: "flex-1 bg-gray-200 text-gray-700 px-4 py-2 rounded-lg hover:bg-gray-300 transition-colors" }, "Refresh Page")))));
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* ConfigErrorScreen - Shows when required env vars are missing
|
|
98
|
+
*/
|
|
99
|
+
function ConfigErrorScreen({ error }) {
|
|
100
|
+
return (React.createElement("div", { className: "min-h-screen bg-gray-50 flex items-center justify-center p-4" },
|
|
101
|
+
React.createElement("div", { className: "bg-white rounded-lg shadow-lg p-8 max-w-md" },
|
|
102
|
+
React.createElement("div", { className: "w-16 h-16 bg-red-100 rounded-full flex items-center justify-center mx-auto mb-4" },
|
|
103
|
+
React.createElement("span", { className: "text-2xl" }, "\u26A0")),
|
|
104
|
+
React.createElement("h1", { className: "text-2xl font-bold text-gray-900 mb-2" }, "Configuration Error"),
|
|
105
|
+
React.createElement("p", { className: "text-gray-600 mb-4" },
|
|
106
|
+
"Missing required configuration: ",
|
|
107
|
+
React.createElement("strong", null, error)),
|
|
108
|
+
React.createElement("ul", { className: "text-sm text-gray-700 space-y-2 mb-4" },
|
|
109
|
+
React.createElement("li", null, "\u2022 Check your .env.local file"),
|
|
110
|
+
React.createElement("li", null, "\u2022 Ensure all environment variables are set"),
|
|
111
|
+
React.createElement("li", null, "\u2022 Restart the development server")),
|
|
112
|
+
React.createElement("button", { onClick: () => window.location.reload(), className: "w-full bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition-colors" }, "Retry"))));
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* PrivyReadyGate - Waits for Privy to be ready before rendering children
|
|
116
|
+
*/
|
|
117
|
+
function PrivyReadyGate({ children, logo, initTimeout = 10000, }) {
|
|
118
|
+
const { ready } = usePrivy();
|
|
119
|
+
const [showTimeoutScreen, setShowTimeoutScreen] = useState(false);
|
|
120
|
+
useEffect(() => {
|
|
121
|
+
const timeout = setTimeout(() => {
|
|
122
|
+
if (!ready) {
|
|
123
|
+
setShowTimeoutScreen(true);
|
|
124
|
+
}
|
|
125
|
+
}, initTimeout);
|
|
126
|
+
return () => clearTimeout(timeout);
|
|
127
|
+
}, [ready, initTimeout]);
|
|
128
|
+
if (ready) {
|
|
129
|
+
return React.createElement(React.Fragment, null, children);
|
|
130
|
+
}
|
|
131
|
+
if (showTimeoutScreen) {
|
|
132
|
+
return (React.createElement(InitTimeoutScreen, { onRetry: () => setShowTimeoutScreen(false) }));
|
|
133
|
+
}
|
|
134
|
+
return React.createElement(InitializingScreen, { logo: logo });
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* VarityDashboardProvider - Complete provider setup for Varity L3 dashboards
|
|
138
|
+
*
|
|
139
|
+
* Combines:
|
|
140
|
+
* - Privy (authentication: email, social, wallet)
|
|
141
|
+
* - Thirdweb (wallet management, contracts)
|
|
142
|
+
* - WalletSync (unified wallet state)
|
|
143
|
+
* - React Query (data fetching)
|
|
144
|
+
* - Wagmi (Ethereum interactions)
|
|
145
|
+
*
|
|
146
|
+
* Features:
|
|
147
|
+
* - Embedded wallets for non-crypto users
|
|
148
|
+
* - Gasless transactions support (when configured)
|
|
149
|
+
* - NFT-based licensing support
|
|
150
|
+
* - Cross-chain functionality
|
|
151
|
+
* - Loading states and error handling
|
|
152
|
+
*
|
|
153
|
+
* @example
|
|
154
|
+
* ```tsx
|
|
155
|
+
* import { VarityDashboardProvider } from '@varity-labs/ui-kit';
|
|
156
|
+
*
|
|
157
|
+
* function App() {
|
|
158
|
+
* return (
|
|
159
|
+
* <VarityDashboardProvider
|
|
160
|
+
* privyAppId="your-privy-app-id"
|
|
161
|
+
* thirdwebClientId="your-thirdweb-client-id"
|
|
162
|
+
* appearance={{
|
|
163
|
+
* theme: 'light',
|
|
164
|
+
* accentColor: '#2563EB',
|
|
165
|
+
* logo: '/logo.png'
|
|
166
|
+
* }}
|
|
167
|
+
* >
|
|
168
|
+
* <YourDashboard />
|
|
169
|
+
* </VarityDashboardProvider>
|
|
170
|
+
* );
|
|
171
|
+
* }
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
export function VarityDashboardProvider({ children, privyAppId, thirdwebClientId, appearance = {
|
|
175
|
+
theme: 'light',
|
|
176
|
+
accentColor: '#2563EB',
|
|
177
|
+
}, loginMethods = ['email', 'google', 'wallet'], initTimeout = 10000, onAddressChange, onWalletSyncChange, errorBoundary: ErrorBoundary, }) {
|
|
178
|
+
// Get config from props or environment variables
|
|
179
|
+
const appId = privyAppId || process.env.NEXT_PUBLIC_PRIVY_APP_ID;
|
|
180
|
+
const clientId = thirdwebClientId || process.env.NEXT_PUBLIC_THIRDWEB_CLIENT_ID;
|
|
181
|
+
// Validate required config
|
|
182
|
+
const [configError, setConfigError] = useState(null);
|
|
183
|
+
useEffect(() => {
|
|
184
|
+
if (!appId) {
|
|
185
|
+
setConfigError('Privy App ID is required (pass privyAppId prop or set NEXT_PUBLIC_PRIVY_APP_ID)');
|
|
186
|
+
}
|
|
187
|
+
else if (!clientId) {
|
|
188
|
+
setConfigError('Thirdweb Client ID is required (pass thirdwebClientId prop or set NEXT_PUBLIC_THIRDWEB_CLIENT_ID)');
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
setConfigError(null);
|
|
192
|
+
}
|
|
193
|
+
}, [appId, clientId]);
|
|
194
|
+
// Create thirdweb client
|
|
195
|
+
const thirdwebClient = useMemo(() => {
|
|
196
|
+
if (!clientId)
|
|
197
|
+
return null;
|
|
198
|
+
try {
|
|
199
|
+
return createThirdwebClient({ clientId });
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
console.error('Failed to create thirdweb client:', error);
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
}, [clientId]);
|
|
206
|
+
// Show config error
|
|
207
|
+
if (configError) {
|
|
208
|
+
return React.createElement(ConfigErrorScreen, { error: configError });
|
|
209
|
+
}
|
|
210
|
+
// Show thirdweb error
|
|
211
|
+
if (!thirdwebClient) {
|
|
212
|
+
return React.createElement(ConfigErrorScreen, { error: "Failed to initialize thirdweb client" });
|
|
213
|
+
}
|
|
214
|
+
const content = (React.createElement(PrivyProvider, { appId: appId, config: {
|
|
215
|
+
loginMethods,
|
|
216
|
+
appearance: {
|
|
217
|
+
theme: appearance.theme,
|
|
218
|
+
accentColor: appearance.accentColor,
|
|
219
|
+
logo: appearance.logo,
|
|
220
|
+
showWalletLoginFirst: false,
|
|
221
|
+
},
|
|
222
|
+
embeddedWallets: {
|
|
223
|
+
createOnLogin: 'users-without-wallets',
|
|
224
|
+
},
|
|
225
|
+
defaultChain: varityL3Testnet,
|
|
226
|
+
supportedChains: [varityL3Testnet, arbitrumSepolia, arbitrum],
|
|
227
|
+
} },
|
|
228
|
+
React.createElement(QueryClientProvider, { client: queryClient },
|
|
229
|
+
React.createElement(WagmiProvider, { config: wagmiConfig },
|
|
230
|
+
React.createElement(PrivyReadyGate, { logo: appearance.logo, initTimeout: initTimeout },
|
|
231
|
+
React.createElement(ThirdwebProvider, null,
|
|
232
|
+
React.createElement(WalletSyncProvider, { onAddressChange: onAddressChange, onSyncStateChange: onWalletSyncChange }, children)))))));
|
|
233
|
+
// Wrap with error boundary if provided
|
|
234
|
+
if (ErrorBoundary) {
|
|
235
|
+
return React.createElement(ErrorBoundary, null, content);
|
|
236
|
+
}
|
|
237
|
+
return content;
|
|
238
|
+
}
|
|
239
|
+
// Re-export hooks for convenience
|
|
240
|
+
export { useWalletSync };
|
|
241
|
+
export default VarityDashboardProvider;
|
|
242
|
+
//# sourceMappingURL=VarityDashboardProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VarityDashboardProvider.js","sourceRoot":"","sources":["../../src/providers/VarityDashboardProvider.tsx"],"names":[],"mappings":"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"}
|