@varity-labs/ui-kit 2.0.0-alpha.1 → 2.0.0-beta.10
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 +1 -1
- package/README.md +227 -203
- package/dist/components/Analytics/DataTable.js +1 -1
- package/dist/components/Analytics/DataTable.js.map +1 -1
- package/dist/components/Analytics/EnhancedKPICard.d.ts +21 -0
- package/dist/components/Analytics/EnhancedKPICard.d.ts.map +1 -0
- package/dist/components/Analytics/EnhancedKPICard.js +135 -0
- package/dist/components/Analytics/EnhancedKPICard.js.map +1 -0
- package/dist/components/Analytics/Sparkline.d.ts +44 -0
- package/dist/components/Analytics/Sparkline.d.ts.map +1 -0
- package/dist/components/Analytics/Sparkline.js +90 -0
- package/dist/components/Analytics/Sparkline.js.map +1 -0
- package/dist/components/Analytics/index.d.ts +2 -0
- package/dist/components/Analytics/index.d.ts.map +1 -1
- package/dist/components/Analytics/index.js +2 -0
- package/dist/components/Analytics/index.js.map +1 -1
- package/dist/components/Dashboard/DashboardFooter.d.ts.map +1 -1
- package/dist/components/Dashboard/DashboardFooter.js +22 -6
- package/dist/components/Dashboard/DashboardFooter.js.map +1 -1
- package/dist/components/Dashboard/DashboardHeader.d.ts +10 -0
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +1 -1
- package/dist/components/Dashboard/DashboardHeader.js +191 -58
- package/dist/components/Dashboard/DashboardHeader.js.map +1 -1
- package/dist/components/Dashboard/DashboardLayout.d.ts +13 -3
- package/dist/components/Dashboard/DashboardLayout.d.ts.map +1 -1
- package/dist/components/Dashboard/DashboardLayout.js +9 -4
- package/dist/components/Dashboard/DashboardLayout.js.map +1 -1
- package/dist/components/Dashboard/DashboardSidebar.d.ts.map +1 -1
- package/dist/components/Dashboard/DashboardSidebar.js +41 -12
- package/dist/components/Dashboard/DashboardSidebar.js.map +1 -1
- package/dist/components/Dashboard/EmptyState.js +5 -5
- package/dist/components/Dashboard/EmptyState.js.map +1 -1
- package/dist/components/Dashboard/KPICard.js +5 -5
- package/dist/components/Dashboard/KPICard.js.map +1 -1
- package/dist/components/Display/Avatar.d.ts +21 -0
- package/dist/components/Display/Avatar.d.ts.map +1 -0
- package/dist/components/Display/Avatar.js +71 -0
- package/dist/components/Display/Avatar.js.map +1 -0
- package/dist/components/Display/Badge.d.ts +22 -0
- package/dist/components/Display/Badge.d.ts.map +1 -0
- package/dist/components/Display/Badge.js +60 -0
- package/dist/components/Display/Badge.js.map +1 -0
- package/dist/components/Display/ProgressBar.d.ts +12 -0
- package/dist/components/Display/ProgressBar.d.ts.map +1 -0
- package/dist/components/Display/ProgressBar.js +33 -0
- package/dist/components/Display/ProgressBar.js.map +1 -0
- package/dist/components/Display/index.d.ts +9 -0
- package/dist/components/Display/index.d.ts.map +1 -0
- package/dist/components/Display/index.js +9 -0
- package/dist/components/Display/index.js.map +1 -0
- package/dist/components/Feedback/Skeleton.d.ts +10 -0
- package/dist/components/Feedback/Skeleton.d.ts.map +1 -0
- package/dist/components/Feedback/Skeleton.js +25 -0
- package/dist/components/Feedback/Skeleton.js.map +1 -0
- package/dist/components/Feedback/Toast.d.ts +18 -0
- package/dist/components/Feedback/Toast.d.ts.map +1 -0
- package/dist/components/Feedback/Toast.js +38 -0
- package/dist/components/Feedback/Toast.js.map +1 -0
- package/dist/components/Feedback/ToastProvider.d.ts +11 -0
- package/dist/components/Feedback/ToastProvider.d.ts.map +1 -0
- package/dist/components/Feedback/ToastProvider.js +36 -0
- package/dist/components/Feedback/ToastProvider.js.map +1 -0
- package/dist/components/Feedback/index.d.ts +11 -0
- package/dist/components/Feedback/index.d.ts.map +1 -0
- package/dist/components/Feedback/index.js +9 -0
- package/dist/components/Feedback/index.js.map +1 -0
- package/dist/components/Feedback/useToast.d.ts +3 -0
- package/dist/components/Feedback/useToast.d.ts.map +1 -0
- package/dist/components/Feedback/useToast.js +10 -0
- package/dist/components/Feedback/useToast.js.map +1 -0
- package/dist/components/Form/Button.d.ts +12 -0
- package/dist/components/Form/Button.d.ts.map +1 -0
- package/dist/components/Form/Button.js +22 -0
- package/dist/components/Form/Button.js.map +1 -0
- package/dist/components/Form/Checkbox.d.ts +13 -0
- package/dist/components/Form/Checkbox.d.ts.map +1 -0
- package/dist/components/Form/Checkbox.js +36 -0
- package/dist/components/Form/Checkbox.js.map +1 -0
- package/dist/components/Form/Input.d.ts +9 -0
- package/dist/components/Form/Input.d.ts.map +1 -0
- package/dist/components/Form/Input.js +16 -0
- package/dist/components/Form/Input.js.map +1 -0
- package/dist/components/Form/RadioGroup.d.ts +20 -0
- package/dist/components/Form/RadioGroup.d.ts.map +1 -0
- package/dist/components/Form/RadioGroup.js +43 -0
- package/dist/components/Form/RadioGroup.js.map +1 -0
- package/dist/components/Form/Select.d.ts +12 -0
- package/dist/components/Form/Select.d.ts.map +1 -0
- package/dist/components/Form/Select.js +13 -0
- package/dist/components/Form/Select.js.map +1 -0
- package/dist/components/Form/Textarea.d.ts +8 -0
- package/dist/components/Form/Textarea.d.ts.map +1 -0
- package/dist/components/Form/Textarea.js +13 -0
- package/dist/components/Form/Textarea.js.map +1 -0
- package/dist/components/Form/Toggle.d.ts +12 -0
- package/dist/components/Form/Toggle.d.ts.map +1 -0
- package/dist/components/Form/Toggle.js +48 -0
- package/dist/components/Form/Toggle.js.map +1 -0
- package/dist/components/Form/index.d.ts +13 -0
- package/dist/components/Form/index.d.ts.map +1 -0
- package/dist/components/Form/index.js +13 -0
- package/dist/components/Form/index.js.map +1 -0
- package/dist/components/InAppWallet/InAppWalletProvider.d.ts +4 -4
- package/dist/components/InAppWallet/InAppWalletProvider.d.ts.map +1 -1
- package/dist/components/InAppWallet/InAppWalletProvider.js +15 -28
- package/dist/components/InAppWallet/InAppWalletProvider.js.map +1 -1
- package/dist/components/Navigation/Breadcrumb.d.ts +15 -0
- package/dist/components/Navigation/Breadcrumb.d.ts.map +1 -0
- package/dist/components/Navigation/Breadcrumb.js +28 -0
- package/dist/components/Navigation/Breadcrumb.js.map +1 -0
- package/dist/components/Navigation/CommandPalette.d.ts +26 -0
- package/dist/components/Navigation/CommandPalette.d.ts.map +1 -0
- package/dist/components/Navigation/CommandPalette.js +172 -0
- package/dist/components/Navigation/CommandPalette.js.map +1 -0
- package/dist/components/Navigation/index.d.ts +8 -0
- package/dist/components/Navigation/index.d.ts.map +1 -0
- package/dist/components/Navigation/index.js +8 -0
- package/dist/components/Navigation/index.js.map +1 -0
- package/dist/components/Onramp/BuyUSDCButton.d.ts +9 -7
- package/dist/components/Onramp/BuyUSDCButton.d.ts.map +1 -1
- package/dist/components/Onramp/BuyUSDCButton.js +37 -47
- package/dist/components/Onramp/BuyUSDCButton.js.map +1 -1
- package/dist/components/Onramp/OnrampWidget.d.ts +7 -6
- package/dist/components/Onramp/OnrampWidget.d.ts.map +1 -1
- package/dist/components/Onramp/OnrampWidget.js +58 -37
- package/dist/components/Onramp/OnrampWidget.js.map +1 -1
- package/dist/components/Onramp/index.d.ts +3 -5
- package/dist/components/Onramp/index.d.ts.map +1 -1
- package/dist/components/Onramp/index.js +3 -5
- package/dist/components/Onramp/index.js.map +1 -1
- package/dist/components/Overlay/ConfirmDialog.d.ts +14 -0
- package/dist/components/Overlay/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/Overlay/ConfirmDialog.js +11 -0
- package/dist/components/Overlay/ConfirmDialog.js.map +1 -0
- package/dist/components/Overlay/Dialog.d.ts +11 -0
- package/dist/components/Overlay/Dialog.d.ts.map +1 -0
- package/dist/components/Overlay/Dialog.js +69 -0
- package/dist/components/Overlay/Dialog.js.map +1 -0
- package/dist/components/Overlay/DropdownMenu.d.ts +17 -0
- package/dist/components/Overlay/DropdownMenu.d.ts.map +1 -0
- package/dist/components/Overlay/DropdownMenu.js +123 -0
- package/dist/components/Overlay/DropdownMenu.js.map +1 -0
- package/dist/components/Overlay/index.d.ts +9 -0
- package/dist/components/Overlay/index.d.ts.map +1 -0
- package/dist/components/Overlay/index.js +9 -0
- package/dist/components/Overlay/index.js.map +1 -0
- package/dist/components/PaymentWidget/PaymentGate.d.ts +30 -0
- package/dist/components/PaymentWidget/PaymentGate.d.ts.map +1 -0
- package/dist/components/PaymentWidget/PaymentGate.js +54 -0
- package/dist/components/PaymentWidget/PaymentGate.js.map +1 -0
- package/dist/components/PaymentWidget/PaymentWidget.d.ts +40 -0
- package/dist/components/PaymentWidget/PaymentWidget.d.ts.map +1 -0
- package/dist/components/PaymentWidget/PaymentWidget.js +195 -0
- package/dist/components/PaymentWidget/PaymentWidget.js.map +1 -0
- package/dist/components/PaymentWidget/index.d.ts +30 -0
- package/dist/components/PaymentWidget/index.d.ts.map +1 -0
- package/dist/components/PaymentWidget/index.js +32 -0
- package/dist/components/PaymentWidget/index.js.map +1 -0
- package/dist/components/PaymentWidget/types.d.ts +200 -0
- package/dist/components/PaymentWidget/types.d.ts.map +1 -0
- package/dist/components/PaymentWidget/types.js +84 -0
- package/dist/components/PaymentWidget/types.js.map +1 -0
- package/dist/components/PaymentWidget/useSeamlessPayment.d.ts +51 -0
- package/dist/components/PaymentWidget/useSeamlessPayment.d.ts.map +1 -0
- package/dist/components/PaymentWidget/useSeamlessPayment.js +167 -0
- package/dist/components/PaymentWidget/useSeamlessPayment.js.map +1 -0
- package/dist/components/PaymentWidget/useVarityPayment.d.ts +20 -0
- package/dist/components/PaymentWidget/useVarityPayment.d.ts.map +1 -0
- package/dist/components/PaymentWidget/useVarityPayment.js +164 -0
- package/dist/components/PaymentWidget/useVarityPayment.js.map +1 -0
- package/dist/components/Payments/CheckoutModal.d.ts.map +1 -1
- package/dist/components/Payments/CheckoutModal.js +16 -5
- package/dist/components/Payments/CheckoutModal.js.map +1 -1
- package/dist/components/Payments/constants.js +1 -1
- package/dist/components/Payments/constants.js.map +1 -1
- package/dist/components/Privy/InitTimeoutScreen.d.ts.map +1 -1
- package/dist/components/Privy/InitTimeoutScreen.js +1 -1
- package/dist/components/Privy/InitTimeoutScreen.js.map +1 -1
- package/dist/components/Privy/InitializingScreen.d.ts +3 -3
- package/dist/components/Privy/InitializingScreen.d.ts.map +1 -1
- package/dist/components/Privy/InitializingScreen.js +6 -6
- package/dist/components/Privy/InitializingScreen.js.map +1 -1
- package/dist/components/index.d.ts +5 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +20 -4
- package/dist/components/index.js.map +1 -1
- package/dist/config/chains.d.ts +5 -5
- package/dist/config/chains.d.ts.map +1 -1
- package/dist/config/chains.js +8 -8
- package/dist/config/chains.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -11
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +54 -11
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +24 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +180 -43
- package/dist/index.js.map +1 -1
- package/dist/providers/PrivyProvider.js +1 -1
- package/dist/providers/PrivyProvider.js.map +1 -1
- package/dist/providers/PrivyStack.d.ts +31 -73
- package/dist/providers/PrivyStack.d.ts.map +1 -1
- package/dist/providers/PrivyStack.js +32 -160
- package/dist/providers/PrivyStack.js.map +1 -1
- package/dist/providers/VarityDashboardProvider.d.ts +7 -10
- package/dist/providers/VarityDashboardProvider.d.ts.map +1 -1
- package/dist/providers/VarityDashboardProvider.js +12 -15
- package/dist/providers/VarityDashboardProvider.js.map +1 -1
- package/dist/providers/WalletSyncProvider.d.ts +17 -24
- package/dist/providers/WalletSyncProvider.d.ts.map +1 -1
- package/dist/providers/WalletSyncProvider.js +16 -27
- package/dist/providers/WalletSyncProvider.js.map +1 -1
- package/dist/providers/ZeroDevProvider.d.ts +69 -0
- package/dist/providers/ZeroDevProvider.d.ts.map +1 -0
- package/dist/providers/ZeroDevProvider.js +208 -0
- package/dist/providers/ZeroDevProvider.js.map +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/wallets/SimpleSmartWallet.js +1 -1
- package/dist/wallets/SimpleSmartWallet.js.map +1 -1
- package/dist/wallets/SmartWalletProvider.js +1 -1
- package/dist/wallets/SmartWalletProvider.js.map +1 -1
- package/dist/wallets/config.d.ts +31 -8
- package/dist/wallets/config.d.ts.map +1 -1
- package/dist/wallets/config.js +33 -10
- package/dist/wallets/config.js.map +1 -1
- package/dist/wallets/index.d.ts +1 -1
- package/dist/wallets/index.d.ts.map +1 -1
- package/dist/wallets/index.js +1 -1
- package/dist/wallets/index.js.map +1 -1
- package/package.json +34 -26
- package/dist/core/VarityClient.d.ts +0 -76
- package/dist/core/VarityClient.d.ts.map +0 -1
- package/dist/core/VarityClient.js +0 -99
- package/dist/core/VarityClient.js.map +0 -1
- package/dist/core/config.d.ts +0 -136
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -156
- package/dist/core/config.js.map +0 -1
- package/dist/hooks/useAnalytics.d.ts +0 -94
- package/dist/hooks/useAnalytics.d.ts.map +0 -1
- package/dist/hooks/useAnalytics.js +0 -116
- package/dist/hooks/useAnalytics.js.map +0 -1
- package/dist/hooks/useAuth.d.ts +0 -71
- package/dist/hooks/useAuth.d.ts.map +0 -1
- package/dist/hooks/useAuth.js +0 -198
- package/dist/hooks/useAuth.js.map +0 -1
- package/dist/hooks/useDashboard.d.ts +0 -110
- package/dist/hooks/useDashboard.d.ts.map +0 -1
- package/dist/hooks/useDashboard.js +0 -201
- package/dist/hooks/useDashboard.js.map +0 -1
- package/dist/hooks/useVarityAPI.d.ts +0 -88
- package/dist/hooks/useVarityAPI.d.ts.map +0 -1
- package/dist/hooks/useVarityAPI.js +0 -138
- package/dist/hooks/useVarityAPI.js.map +0 -1
- package/dist/hooks/useWalletAuth.d.ts +0 -108
- package/dist/hooks/useWalletAuth.d.ts.map +0 -1
- package/dist/hooks/useWalletAuth.js +0 -415
- package/dist/hooks/useWalletAuth.js.map +0 -1
- package/dist/modules/cache/index.d.ts +0 -2
- package/dist/modules/cache/index.d.ts.map +0 -1
- package/dist/modules/cache/index.js +0 -2
- package/dist/modules/cache/index.js.map +0 -1
- package/dist/types/api-extensions.d.ts +0 -92
- package/dist/types/api-extensions.d.ts.map +0 -1
- package/dist/types/api-extensions.js +0 -7
- package/dist/types/api-extensions.js.map +0 -1
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import React, { useState, useEffect, useRef, useCallback } from 'react';
|
|
3
|
+
import { Search, FolderKanban, ListTodo, Users, LayoutDashboard, Settings, ArrowRight, } from 'lucide-react';
|
|
4
|
+
// Icon map for runtime rendering
|
|
5
|
+
const ICON_MAP = {
|
|
6
|
+
LayoutDashboard,
|
|
7
|
+
FolderKanban,
|
|
8
|
+
ListTodo,
|
|
9
|
+
Users,
|
|
10
|
+
Settings,
|
|
11
|
+
};
|
|
12
|
+
// Helper to render icon from string identifier
|
|
13
|
+
function getIcon(iconName, className = 'h-4 w-4') {
|
|
14
|
+
const Icon = ICON_MAP[iconName];
|
|
15
|
+
return React.createElement(Icon, { className: className });
|
|
16
|
+
}
|
|
17
|
+
const NAV_ITEMS = [
|
|
18
|
+
{ id: 'nav-dashboard', label: 'Dashboard', category: 'navigation', icon: 'LayoutDashboard', path: '/dashboard' },
|
|
19
|
+
{ id: 'nav-projects', label: 'Projects', category: 'navigation', icon: 'FolderKanban', path: '/dashboard/projects' },
|
|
20
|
+
{ id: 'nav-tasks', label: 'Tasks', category: 'navigation', icon: 'ListTodo', path: '/dashboard/tasks' },
|
|
21
|
+
{ id: 'nav-team', label: 'Team', category: 'navigation', icon: 'Users', path: '/dashboard/team' },
|
|
22
|
+
{ id: 'nav-settings', label: 'Settings', category: 'navigation', icon: 'Settings', path: '/dashboard/settings' },
|
|
23
|
+
];
|
|
24
|
+
const CATEGORY_LABELS = {
|
|
25
|
+
navigation: 'Navigation',
|
|
26
|
+
project: 'Projects',
|
|
27
|
+
task: 'Tasks',
|
|
28
|
+
team: 'Team',
|
|
29
|
+
};
|
|
30
|
+
export function CommandPalette({ open, onClose, onNavigate, projects = [], tasks = [], team = [] }) {
|
|
31
|
+
const inputRef = useRef(null);
|
|
32
|
+
const [query, setQuery] = useState('');
|
|
33
|
+
const [activeIndex, setActiveIndex] = useState(0);
|
|
34
|
+
const getResults = useCallback(() => {
|
|
35
|
+
const q = query.toLowerCase().trim();
|
|
36
|
+
if (!q)
|
|
37
|
+
return NAV_ITEMS;
|
|
38
|
+
const results = [];
|
|
39
|
+
// Navigation matches
|
|
40
|
+
NAV_ITEMS.forEach((item) => {
|
|
41
|
+
if (item.label.toLowerCase().includes(q)) {
|
|
42
|
+
results.push(item);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
// Project matches (top 3)
|
|
46
|
+
projects
|
|
47
|
+
.filter((p) => p.name.toLowerCase().includes(q) || p.description?.toLowerCase().includes(q))
|
|
48
|
+
.slice(0, 3)
|
|
49
|
+
.forEach((p) => {
|
|
50
|
+
results.push({
|
|
51
|
+
id: `project-${p.id}`,
|
|
52
|
+
label: p.name,
|
|
53
|
+
description: p.status,
|
|
54
|
+
category: 'project',
|
|
55
|
+
icon: 'FolderKanban',
|
|
56
|
+
path: '/dashboard/projects',
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
// Task matches (top 3)
|
|
60
|
+
tasks
|
|
61
|
+
.filter((t) => t.title.toLowerCase().includes(q) || t.description?.toLowerCase().includes(q))
|
|
62
|
+
.slice(0, 3)
|
|
63
|
+
.forEach((t) => {
|
|
64
|
+
results.push({
|
|
65
|
+
id: `task-${t.id}`,
|
|
66
|
+
label: t.title,
|
|
67
|
+
description: t.status,
|
|
68
|
+
category: 'task',
|
|
69
|
+
icon: 'ListTodo',
|
|
70
|
+
path: '/dashboard/tasks',
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
// Team matches (top 3)
|
|
74
|
+
team
|
|
75
|
+
.filter((m) => m.name.toLowerCase().includes(q) || m.email.toLowerCase().includes(q))
|
|
76
|
+
.slice(0, 3)
|
|
77
|
+
.forEach((m) => {
|
|
78
|
+
results.push({
|
|
79
|
+
id: `team-${m.id}`,
|
|
80
|
+
label: m.name,
|
|
81
|
+
description: m.email,
|
|
82
|
+
category: 'team',
|
|
83
|
+
icon: 'Users',
|
|
84
|
+
path: '/dashboard/team',
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
return results;
|
|
88
|
+
}, [query, projects, tasks, team]);
|
|
89
|
+
const results = getResults();
|
|
90
|
+
// Group results by category
|
|
91
|
+
const grouped = results.reduce((acc, result) => {
|
|
92
|
+
if (!acc[result.category])
|
|
93
|
+
acc[result.category] = [];
|
|
94
|
+
acc[result.category].push(result);
|
|
95
|
+
return acc;
|
|
96
|
+
}, {});
|
|
97
|
+
// Reset on open
|
|
98
|
+
useEffect(() => {
|
|
99
|
+
if (open) {
|
|
100
|
+
setQuery('');
|
|
101
|
+
setActiveIndex(0);
|
|
102
|
+
setTimeout(() => inputRef.current?.focus(), 0);
|
|
103
|
+
}
|
|
104
|
+
}, [open]);
|
|
105
|
+
// Clamp active index when results change
|
|
106
|
+
useEffect(() => {
|
|
107
|
+
if (activeIndex >= results.length) {
|
|
108
|
+
setActiveIndex(Math.max(0, results.length - 1));
|
|
109
|
+
}
|
|
110
|
+
}, [results.length, activeIndex]);
|
|
111
|
+
function selectResult(result) {
|
|
112
|
+
onClose();
|
|
113
|
+
onNavigate(result.path);
|
|
114
|
+
}
|
|
115
|
+
function handleKeyDown(e) {
|
|
116
|
+
if (e.key === 'ArrowDown') {
|
|
117
|
+
e.preventDefault();
|
|
118
|
+
setActiveIndex((i) => Math.min(i + 1, results.length - 1));
|
|
119
|
+
}
|
|
120
|
+
else if (e.key === 'ArrowUp') {
|
|
121
|
+
e.preventDefault();
|
|
122
|
+
setActiveIndex((i) => Math.max(i - 1, 0));
|
|
123
|
+
}
|
|
124
|
+
else if (e.key === 'Enter' && results[activeIndex]) {
|
|
125
|
+
e.preventDefault();
|
|
126
|
+
selectResult(results[activeIndex]);
|
|
127
|
+
}
|
|
128
|
+
else if (e.key === 'Escape') {
|
|
129
|
+
onClose();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (!open)
|
|
133
|
+
return null;
|
|
134
|
+
let flatIndex = 0;
|
|
135
|
+
return (React.createElement("div", { className: "fixed inset-0 z-[70] flex items-start justify-center pt-[15vh]" },
|
|
136
|
+
React.createElement("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-sm", onClick: onClose }),
|
|
137
|
+
React.createElement("div", { className: "relative w-full max-w-lg rounded-xl border border-gray-200 bg-white shadow-2xl" },
|
|
138
|
+
React.createElement("div", { className: "flex items-center gap-3 border-b border-gray-100 px-4 py-3" },
|
|
139
|
+
React.createElement(Search, { className: "h-5 w-5 shrink-0 text-gray-400" }),
|
|
140
|
+
React.createElement("input", { ref: inputRef, type: "text", value: query, onChange: (e) => {
|
|
141
|
+
setQuery(e.target.value);
|
|
142
|
+
setActiveIndex(0);
|
|
143
|
+
}, onKeyDown: handleKeyDown, placeholder: "Search projects, tasks, team members...", className: "flex-1 bg-transparent text-sm text-gray-900 outline-none placeholder:text-gray-400" }),
|
|
144
|
+
React.createElement("kbd", { className: "hidden rounded border border-gray-200 bg-gray-50 px-1.5 py-0.5 text-xs text-gray-400 sm:inline-block" }, "ESC")),
|
|
145
|
+
React.createElement("div", { className: "max-h-72 overflow-y-auto p-2" }, results.length === 0 ? (React.createElement("div", { className: "px-3 py-8 text-center text-sm text-gray-500" },
|
|
146
|
+
"No results found for \u201C",
|
|
147
|
+
query,
|
|
148
|
+
"\u201D")) : (Object.entries(grouped).map(([category, items]) => (React.createElement("div", { key: category },
|
|
149
|
+
React.createElement("div", { className: "px-3 pb-1 pt-2 text-xs font-semibold uppercase tracking-wider text-gray-400" }, CATEGORY_LABELS[category] || category),
|
|
150
|
+
items.map((result) => {
|
|
151
|
+
const idx = flatIndex++;
|
|
152
|
+
const isActive = idx === activeIndex;
|
|
153
|
+
return (React.createElement("button", { key: result.id, onClick: () => selectResult(result), onMouseEnter: () => setActiveIndex(idx), className: `flex w-full items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors ${isActive
|
|
154
|
+
? 'bg-primary-50 text-primary-700'
|
|
155
|
+
: 'text-gray-700 hover:bg-gray-50'}` },
|
|
156
|
+
React.createElement("span", { className: isActive ? 'text-primary-500' : 'text-gray-400' }, getIcon(result.icon)),
|
|
157
|
+
React.createElement("span", { className: "flex-1 truncate text-left font-medium" }, result.label),
|
|
158
|
+
result.description && (React.createElement("span", { className: "truncate text-xs text-gray-400" }, result.description)),
|
|
159
|
+
isActive && React.createElement(ArrowRight, { className: "h-3 w-3 shrink-0 text-primary-400" })));
|
|
160
|
+
})))))),
|
|
161
|
+
React.createElement("div", { className: "flex items-center gap-4 border-t border-gray-100 px-4 py-2 text-xs text-gray-400" },
|
|
162
|
+
React.createElement("span", { className: "flex items-center gap-1" },
|
|
163
|
+
React.createElement("kbd", { className: "rounded border border-gray-200 bg-gray-50 px-1 py-0.5" }, "\u2191\u2193"),
|
|
164
|
+
"navigate"),
|
|
165
|
+
React.createElement("span", { className: "flex items-center gap-1" },
|
|
166
|
+
React.createElement("kbd", { className: "rounded border border-gray-200 bg-gray-50 px-1 py-0.5" }, "\u21B5"),
|
|
167
|
+
"select"),
|
|
168
|
+
React.createElement("span", { className: "flex items-center gap-1" },
|
|
169
|
+
React.createElement("kbd", { className: "rounded border border-gray-200 bg-gray-50 px-1 py-0.5" }, "esc"),
|
|
170
|
+
"close")))));
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=CommandPalette.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandPalette.js","sourceRoot":"","sources":["../../../src/components/Navigation/CommandPalette.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Navigation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Navigation/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* BuyUSDCButton -
|
|
2
|
+
* BuyUSDCButton - Add funds via credit card
|
|
3
3
|
*
|
|
4
|
-
* Opens
|
|
5
|
-
* Supports credit card, debit card, Apple Pay, Google Pay
|
|
4
|
+
* Opens a seamless credit card payment modal.
|
|
5
|
+
* Supports credit card, debit card, Apple Pay, Google Pay.
|
|
6
|
+
* No crypto terminology visible to end users.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* ```tsx
|
|
9
10
|
* <BuyUSDCButton
|
|
10
11
|
* walletAddress="0x..."
|
|
11
12
|
* amount={100}
|
|
12
|
-
* onSuccess={(
|
|
13
|
+
* onSuccess={() => console.log('Funding initiated')}
|
|
13
14
|
* />
|
|
14
15
|
* ```
|
|
15
16
|
*/
|
|
@@ -17,11 +18,12 @@ import React from 'react';
|
|
|
17
18
|
export interface BuyUSDCButtonProps {
|
|
18
19
|
walletAddress: string;
|
|
19
20
|
amount?: number;
|
|
20
|
-
onSuccess?: (
|
|
21
|
+
onSuccess?: () => void;
|
|
21
22
|
onError?: (error: Error) => void;
|
|
22
23
|
buttonText?: string;
|
|
23
24
|
className?: string;
|
|
24
|
-
clientId
|
|
25
|
+
/** @deprecated clientId is no longer needed — Privy uses the app-level config */
|
|
26
|
+
clientId?: string;
|
|
25
27
|
}
|
|
26
|
-
export declare function BuyUSDCButton({ walletAddress, amount, onSuccess
|
|
28
|
+
export declare function BuyUSDCButton({ walletAddress, amount, onSuccess, onError, buttonText, className, }: BuyUSDCButtonProps): React.JSX.Element;
|
|
27
29
|
//# sourceMappingURL=BuyUSDCButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuyUSDCButton.d.ts","sourceRoot":"","sources":["../../../src/components/Onramp/BuyUSDCButton.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BuyUSDCButton.d.ts","sourceRoot":"","sources":["../../../src/components/Onramp/BuyUSDCButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,EAC5B,aAAa,EACb,MAAY,EACZ,SAAS,EACT,OAAO,EACP,UAAwB,EACxB,SAAS,GACV,EAAE,kBAAkB,qBAqDpB"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* BuyUSDCButton -
|
|
2
|
+
* BuyUSDCButton - Add funds via credit card
|
|
3
3
|
*
|
|
4
|
-
* Opens
|
|
5
|
-
* Supports credit card, debit card, Apple Pay, Google Pay
|
|
4
|
+
* Opens a seamless credit card payment modal.
|
|
5
|
+
* Supports credit card, debit card, Apple Pay, Google Pay.
|
|
6
|
+
* No crypto terminology visible to end users.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* ```tsx
|
|
9
10
|
* <BuyUSDCButton
|
|
10
11
|
* walletAddress="0x..."
|
|
11
12
|
* amount={100}
|
|
12
|
-
* onSuccess={(
|
|
13
|
+
* onSuccess={() => console.log('Funding initiated')}
|
|
13
14
|
* />
|
|
14
15
|
* ```
|
|
15
16
|
*/
|
|
16
|
-
import React, { useState } from 'react';
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
const client = React.useMemo(() => createThirdwebClient({ clientId }), [clientId]);
|
|
17
|
+
import React, { useState, useCallback } from 'react';
|
|
18
|
+
import { useFundWallet } from '@privy-io/react-auth';
|
|
19
|
+
import { arbitrum } from 'viem/chains';
|
|
20
|
+
export function BuyUSDCButton({ walletAddress, amount = 100, onSuccess, onError, buttonText = 'Add Funds', className, }) {
|
|
21
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
22
|
+
const { fundWallet } = useFundWallet();
|
|
23
23
|
const defaultClassName = `
|
|
24
24
|
px-6 py-3
|
|
25
25
|
bg-gradient-to-r from-blue-600 to-indigo-600
|
|
@@ -30,41 +30,31 @@ export function BuyUSDCButton({ walletAddress, amount = 100, onSuccess: _onSucce
|
|
|
30
30
|
flex items-center justify-center gap-2
|
|
31
31
|
shadow-lg hover:shadow-xl
|
|
32
32
|
`;
|
|
33
|
-
const handleClick = () => {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
},
|
|
60
|
-
metadata: {
|
|
61
|
-
name: 'Buy USDC on Varity L3',
|
|
62
|
-
},
|
|
63
|
-
} }))));
|
|
64
|
-
}
|
|
65
|
-
return (React.createElement("button", { onClick: handleClick, disabled: !walletAddress, className: className || defaultClassName },
|
|
66
|
-
React.createElement("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
|
|
67
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" })),
|
|
68
|
-
buttonText));
|
|
33
|
+
const handleClick = useCallback(async () => {
|
|
34
|
+
if (!walletAddress)
|
|
35
|
+
return;
|
|
36
|
+
setIsLoading(true);
|
|
37
|
+
try {
|
|
38
|
+
await fundWallet(walletAddress, {
|
|
39
|
+
chain: arbitrum,
|
|
40
|
+
asset: 'USDC',
|
|
41
|
+
amount: amount.toString(),
|
|
42
|
+
});
|
|
43
|
+
onSuccess?.();
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
const error = err instanceof Error ? err : new Error('Funding failed');
|
|
47
|
+
onError?.(error);
|
|
48
|
+
}
|
|
49
|
+
finally {
|
|
50
|
+
setIsLoading(false);
|
|
51
|
+
}
|
|
52
|
+
}, [walletAddress, amount, fundWallet, onSuccess, onError]);
|
|
53
|
+
return (React.createElement("button", { onClick: handleClick, disabled: !walletAddress || isLoading, className: className || defaultClassName },
|
|
54
|
+
isLoading ? (React.createElement("svg", { className: "w-5 h-5 animate-spin", fill: "none", viewBox: "0 0 24 24" },
|
|
55
|
+
React.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
56
|
+
React.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" }))) : (React.createElement("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
|
|
57
|
+
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" }))),
|
|
58
|
+
isLoading ? 'Opening...' : buttonText));
|
|
69
59
|
}
|
|
70
60
|
//# sourceMappingURL=BuyUSDCButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuyUSDCButton.js","sourceRoot":"","sources":["../../../src/components/Onramp/BuyUSDCButton.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"BuyUSDCButton.js","sourceRoot":"","sources":["../../../src/components/Onramp/BuyUSDCButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAavC,MAAM,UAAU,aAAa,CAAC,EAC5B,aAAa,EACb,MAAM,GAAG,GAAG,EACZ,SAAS,EACT,OAAO,EACP,UAAU,GAAG,WAAW,EACxB,SAAS,GACU;IACnB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,EAAE,CAAC;IAEvC,MAAM,gBAAgB,GAAG;;;;;;;;;GASxB,CAAC;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACzC,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,aAAa,EAAE;gBAC9B,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;aAC1B,CAAC,CAAC;YACH,SAAS,EAAE,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACvE,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAE5D,OAAO,CACL,gCACE,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,aAAa,IAAI,SAAS,EACrC,SAAS,EAAE,SAAS,IAAI,gBAAgB;QAEvC,SAAS,CAAC,CAAC,CAAC,CACX,6BAAK,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW;YACnE,gCAAQ,SAAS,EAAC,YAAY,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,GAAG;YAC9F,8BAAM,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,cAAc,EAAC,CAAC,EAAC,6CAA6C,GAAG,CAC/F,CACP,CAAC,CAAC,CAAC,CACF,6BAAK,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW;YAC5E,8BAAM,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,EAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAC,wFAAwF,GAAG,CAC5J,CACP;QACA,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAC/B,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OnrampWidget -
|
|
2
|
+
* OnrampWidget - Add funds to your account
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Seamless credit card payment widget for adding funds.
|
|
5
|
+
* Users see a familiar checkout experience — no crypto terminology.
|
|
6
|
+
* Supports credit card, debit card, Apple Pay, Google Pay.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* ```tsx
|
|
9
10
|
* <OnrampWidget
|
|
10
11
|
* walletAddress="0x..."
|
|
11
|
-
* clientId="your-client-id"
|
|
12
12
|
* defaultAmount={100}
|
|
13
13
|
* onComplete={(status) => console.log('Purchase:', status)}
|
|
14
14
|
* />
|
|
@@ -25,7 +25,8 @@ export interface Purchase {
|
|
|
25
25
|
}
|
|
26
26
|
export interface OnrampWidgetProps {
|
|
27
27
|
walletAddress: string;
|
|
28
|
-
clientId
|
|
28
|
+
/** @deprecated clientId is no longer needed — Privy uses the app-level config */
|
|
29
|
+
clientId?: string;
|
|
29
30
|
defaultAmount?: number;
|
|
30
31
|
minAmount?: number;
|
|
31
32
|
maxAmount?: number;
|
|
@@ -34,5 +35,5 @@ export interface OnrampWidgetProps {
|
|
|
34
35
|
showHistory?: boolean;
|
|
35
36
|
theme?: 'light' | 'dark';
|
|
36
37
|
}
|
|
37
|
-
export declare function OnrampWidget({ walletAddress
|
|
38
|
+
export declare function OnrampWidget({ walletAddress, defaultAmount, onComplete, onError, showHistory, theme }: OnrampWidgetProps): React.JSX.Element;
|
|
38
39
|
//# sourceMappingURL=OnrampWidget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnrampWidget.d.ts","sourceRoot":"","sources":["../../../src/components/Onramp/OnrampWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"OnrampWidget.d.ts","sourceRoot":"","sources":["../../../src/components/Onramp/OnrampWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC1D,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC1B;AAED,wBAAgB,YAAY,CAAC,EAC3B,aAAa,EACb,aAAmB,EACnB,UAAU,EACV,OAAO,EACP,WAAkB,EAClB,KAAe,EAChB,EAAE,iBAAiB,qBA4LnB"}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OnrampWidget -
|
|
2
|
+
* OnrampWidget - Add funds to your account
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Seamless credit card payment widget for adding funds.
|
|
5
|
+
* Users see a familiar checkout experience — no crypto terminology.
|
|
6
|
+
* Supports credit card, debit card, Apple Pay, Google Pay.
|
|
6
7
|
*
|
|
7
8
|
* @example
|
|
8
9
|
* ```tsx
|
|
9
10
|
* <OnrampWidget
|
|
10
11
|
* walletAddress="0x..."
|
|
11
|
-
* clientId="your-client-id"
|
|
12
12
|
* defaultAmount={100}
|
|
13
13
|
* onComplete={(status) => console.log('Purchase:', status)}
|
|
14
14
|
* />
|
|
15
15
|
* ```
|
|
16
16
|
*/
|
|
17
|
-
import React, { useState } from 'react';
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
export function OnrampWidget({ walletAddress: _walletAddress, clientId, defaultAmount = 100, minAmount = 10, maxAmount = 10000, onComplete, onError, showHistory = true, theme = 'light' }) {
|
|
17
|
+
import React, { useState, useCallback } from 'react';
|
|
18
|
+
import { useFundWallet } from '@privy-io/react-auth';
|
|
19
|
+
import { arbitrum } from 'viem/chains';
|
|
20
|
+
export function OnrampWidget({ walletAddress, defaultAmount = 100, onComplete, onError, showHistory = true, theme = 'light' }) {
|
|
22
21
|
const [purchases, setPurchases] = useState([]);
|
|
23
|
-
const [
|
|
24
|
-
const
|
|
22
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
23
|
+
const { fundWallet } = useFundWallet();
|
|
25
24
|
const formatDate = (date) => {
|
|
26
25
|
return new Intl.DateTimeFormat('en-US', {
|
|
27
26
|
month: 'short',
|
|
@@ -44,12 +43,44 @@ export function OnrampWidget({ walletAddress: _walletAddress, clientId, defaultA
|
|
|
44
43
|
return 'text-gray-600 bg-gray-100';
|
|
45
44
|
}
|
|
46
45
|
};
|
|
46
|
+
const handleBuy = useCallback(async () => {
|
|
47
|
+
if (!walletAddress)
|
|
48
|
+
return;
|
|
49
|
+
const purchase = {
|
|
50
|
+
id: crypto.randomUUID(),
|
|
51
|
+
amount: defaultAmount,
|
|
52
|
+
currency: 'USDC',
|
|
53
|
+
status: 'pending',
|
|
54
|
+
timestamp: new Date(),
|
|
55
|
+
};
|
|
56
|
+
setIsLoading(true);
|
|
57
|
+
setPurchases(prev => [purchase, ...prev]);
|
|
58
|
+
try {
|
|
59
|
+
await fundWallet(walletAddress, {
|
|
60
|
+
chain: arbitrum,
|
|
61
|
+
asset: 'USDC',
|
|
62
|
+
amount: defaultAmount.toString(),
|
|
63
|
+
});
|
|
64
|
+
const completedPurchase = { ...purchase, status: 'completed' };
|
|
65
|
+
setPurchases(prev => prev.map(p => p.id === purchase.id ? completedPurchase : p));
|
|
66
|
+
onComplete?.(completedPurchase);
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
const failedPurchase = { ...purchase, status: 'failed' };
|
|
70
|
+
setPurchases(prev => prev.map(p => p.id === purchase.id ? failedPurchase : p));
|
|
71
|
+
const error = err instanceof Error ? err : new Error('Funding failed');
|
|
72
|
+
onError?.(error);
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
setIsLoading(false);
|
|
76
|
+
}
|
|
77
|
+
}, [walletAddress, defaultAmount, fundWallet, onComplete, onError]);
|
|
47
78
|
return (React.createElement("div", { className: "space-y-6" },
|
|
48
79
|
React.createElement("div", { className: `rounded-2xl overflow-hidden ${theme === 'dark' ? 'bg-gray-900' : 'bg-white'}` },
|
|
49
80
|
React.createElement("div", { className: "p-6 space-y-4" },
|
|
50
81
|
React.createElement("div", { className: "flex items-center justify-between" },
|
|
51
|
-
React.createElement("h3", { className: `text-xl font-bold ${theme === 'dark' ? 'text-white' : 'text-gray-900'}` }, "
|
|
52
|
-
React.createElement("div", { className: `px-3 py-1 rounded-full text-xs font-medium ${theme === 'dark' ? 'bg-gray-800 text-gray-300' : 'bg-gray-100 text-gray-600'}` }, "
|
|
82
|
+
React.createElement("h3", { className: `text-xl font-bold ${theme === 'dark' ? 'text-white' : 'text-gray-900'}` }, "Add Funds"),
|
|
83
|
+
React.createElement("div", { className: `px-3 py-1 rounded-full text-xs font-medium ${theme === 'dark' ? 'bg-gray-800 text-gray-300' : 'bg-gray-100 text-gray-600'}` }, "Secure Checkout")),
|
|
53
84
|
React.createElement("div", { className: `p-4 rounded-xl ${theme === 'dark' ? 'bg-gray-800' : 'bg-gradient-to-br from-blue-50 to-indigo-50'}` },
|
|
54
85
|
React.createElement("div", { className: "flex items-center gap-3" },
|
|
55
86
|
React.createElement("svg", { className: "w-8 h-8 text-blue-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
|
|
@@ -57,27 +88,18 @@ export function OnrampWidget({ walletAddress: _walletAddress, clientId, defaultA
|
|
|
57
88
|
React.createElement("div", null,
|
|
58
89
|
React.createElement("p", { className: `font-semibold ${theme === 'dark' ? 'text-white' : 'text-gray-900'}` }, "Supported Payment Methods"),
|
|
59
90
|
React.createElement("p", { className: `text-sm ${theme === 'dark' ? 'text-gray-400' : 'text-gray-600'}` }, "Credit/Debit Card \u2022 Apple Pay \u2022 Google Pay")))),
|
|
60
|
-
React.createElement(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
amount: true,
|
|
73
|
-
token: false,
|
|
74
|
-
chain: false,
|
|
75
|
-
},
|
|
76
|
-
},
|
|
77
|
-
metadata: {
|
|
78
|
-
name: 'Buy USDC on Varity L3',
|
|
79
|
-
},
|
|
80
|
-
} }))),
|
|
91
|
+
React.createElement("button", { onClick: handleBuy, disabled: !walletAddress || isLoading, className: `w-full px-6 py-3 rounded-lg font-semibold transition-all duration-200 flex items-center justify-center gap-2 ${theme === 'dark'
|
|
92
|
+
? 'bg-blue-600 hover:bg-blue-700 text-white disabled:bg-gray-700 disabled:text-gray-500'
|
|
93
|
+
: 'bg-gradient-to-r from-blue-600 to-indigo-600 hover:from-blue-700 hover:to-indigo-700 text-white disabled:opacity-50'} disabled:cursor-not-allowed` }, isLoading ? (React.createElement(React.Fragment, null,
|
|
94
|
+
React.createElement("svg", { className: "w-5 h-5 animate-spin", fill: "none", viewBox: "0 0 24 24" },
|
|
95
|
+
React.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
|
|
96
|
+
React.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z" })),
|
|
97
|
+
"Opening...")) : (React.createElement(React.Fragment, null,
|
|
98
|
+
React.createElement("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
|
|
99
|
+
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" })),
|
|
100
|
+
"Add $",
|
|
101
|
+
defaultAmount,
|
|
102
|
+
" USD"))))),
|
|
81
103
|
showHistory && purchases.length > 0 && (React.createElement("div", { className: `rounded-2xl p-6 ${theme === 'dark' ? 'bg-gray-900' : 'bg-white'}` },
|
|
82
104
|
React.createElement("h4", { className: `font-semibold mb-4 ${theme === 'dark' ? 'text-white' : 'text-gray-900'}` }, "Recent Purchases"),
|
|
83
105
|
React.createElement("div", { className: "space-y-3" }, purchases.map((purchase) => (React.createElement("div", { key: purchase.id, className: `p-4 rounded-xl border ${theme === 'dark' ? 'border-gray-800 bg-gray-800/50' : 'border-gray-200 bg-gray-50'}` },
|
|
@@ -87,11 +109,10 @@ export function OnrampWidget({ walletAddress: _walletAddress, clientId, defaultA
|
|
|
87
109
|
React.createElement("p", { className: `font-medium ${theme === 'dark' ? 'text-white' : 'text-gray-900'}` },
|
|
88
110
|
"$",
|
|
89
111
|
purchase.amount,
|
|
90
|
-
" ",
|
|
91
|
-
purchase.currency),
|
|
112
|
+
" USD"),
|
|
92
113
|
React.createElement("span", { className: `px-2 py-0.5 rounded-full text-xs font-medium ${getStatusColor(purchase.status)}` }, purchase.status)),
|
|
93
114
|
React.createElement("p", { className: `text-sm ${theme === 'dark' ? 'text-gray-400' : 'text-gray-500'}` }, formatDate(purchase.timestamp))),
|
|
94
|
-
purchase.txHash && (React.createElement("a", { href: `https://
|
|
115
|
+
purchase.txHash && (React.createElement("a", { href: `https://arbiscan.io/tx/${purchase.txHash}`, title: "View receipt", target: "_blank", rel: "noopener noreferrer", className: "text-blue-600 hover:text-blue-700" },
|
|
95
116
|
React.createElement("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24" },
|
|
96
117
|
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" }))))))))))),
|
|
97
118
|
React.createElement("div", { className: `p-4 rounded-xl ${theme === 'dark' ? 'bg-gray-800' : 'bg-blue-50'}` },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnrampWidget.js","sourceRoot":"","sources":["../../../src/components/Onramp/OnrampWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"OnrampWidget.js","sourceRoot":"","sources":["../../../src/components/Onramp/OnrampWidget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Payment Components Export
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* - Credit/Debit card
|
|
4
|
+
* Seamless credit card payments for adding funds.
|
|
5
|
+
* - Credit/Debit card
|
|
6
6
|
* - Apple Pay & Google Pay
|
|
7
|
-
* - KYC verification handling
|
|
8
|
-
* - Transaction status tracking
|
|
9
7
|
*/
|
|
10
8
|
export { BuyUSDCButton } from './BuyUSDCButton';
|
|
11
9
|
export { OnrampWidget } from './OnrampWidget';
|