@stwd/react 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +99 -0
  2. package/dist/components/ApprovalQueue.d.ts +6 -0
  3. package/dist/components/ApprovalQueue.d.ts.map +1 -0
  4. package/dist/components/ApprovalQueue.js +44 -0
  5. package/dist/components/ApprovalQueue.js.map +1 -0
  6. package/dist/components/PolicyControls.d.ts +6 -0
  7. package/dist/components/PolicyControls.d.ts.map +1 -0
  8. package/dist/components/PolicyControls.js +224 -0
  9. package/dist/components/PolicyControls.js.map +1 -0
  10. package/dist/components/SpendDashboard.d.ts +6 -0
  11. package/dist/components/SpendDashboard.d.ts.map +1 -0
  12. package/dist/components/SpendDashboard.js +52 -0
  13. package/dist/components/SpendDashboard.js.map +1 -0
  14. package/dist/components/TransactionHistory.d.ts +6 -0
  15. package/dist/components/TransactionHistory.d.ts.map +1 -0
  16. package/dist/components/TransactionHistory.js +34 -0
  17. package/dist/components/TransactionHistory.js.map +1 -0
  18. package/dist/components/WalletOverview.d.ts +6 -0
  19. package/dist/components/WalletOverview.d.ts.map +1 -0
  20. package/dist/components/WalletOverview.js +40 -0
  21. package/dist/components/WalletOverview.js.map +1 -0
  22. package/dist/hooks/useApprovals.d.ts +14 -0
  23. package/dist/hooks/useApprovals.d.ts.map +1 -0
  24. package/dist/hooks/useApprovals.js +75 -0
  25. package/dist/hooks/useApprovals.js.map +1 -0
  26. package/dist/hooks/usePolicies.d.ts +14 -0
  27. package/dist/hooks/usePolicies.d.ts.map +1 -0
  28. package/dist/hooks/usePolicies.js +75 -0
  29. package/dist/hooks/usePolicies.js.map +1 -0
  30. package/dist/hooks/useSpend.d.ts +11 -0
  31. package/dist/hooks/useSpend.d.ts.map +1 -0
  32. package/dist/hooks/useSpend.js +42 -0
  33. package/dist/hooks/useSpend.js.map +1 -0
  34. package/dist/hooks/useSteward.d.ts +6 -0
  35. package/dist/hooks/useSteward.d.ts.map +1 -0
  36. package/dist/hooks/useSteward.js +8 -0
  37. package/dist/hooks/useSteward.js.map +1 -0
  38. package/dist/hooks/useTransactions.d.ts +24 -0
  39. package/dist/hooks/useTransactions.d.ts.map +1 -0
  40. package/dist/hooks/useTransactions.js +78 -0
  41. package/dist/hooks/useTransactions.js.map +1 -0
  42. package/dist/hooks/useWallet.d.ts +16 -0
  43. package/dist/hooks/useWallet.d.ts.map +1 -0
  44. package/dist/hooks/useWallet.js +46 -0
  45. package/dist/hooks/useWallet.js.map +1 -0
  46. package/dist/index.d.ts +16 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +19 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/provider.d.ts +11 -0
  51. package/dist/provider.d.ts.map +1 -0
  52. package/dist/provider.js +81 -0
  53. package/dist/provider.js.map +1 -0
  54. package/dist/styles.css +796 -0
  55. package/dist/types.d.ts +223 -0
  56. package/dist/types.d.ts.map +1 -0
  57. package/dist/types.js +2 -0
  58. package/dist/types.js.map +1 -0
  59. package/dist/utils/format.d.ts +41 -0
  60. package/dist/utils/format.d.ts.map +1 -0
  61. package/dist/utils/format.js +138 -0
  62. package/dist/utils/format.js.map +1 -0
  63. package/dist/utils/theme.d.ts +5 -0
  64. package/dist/utils/theme.d.ts.map +1 -0
  65. package/dist/utils/theme.js +35 -0
  66. package/dist/utils/theme.js.map +1 -0
  67. package/package.json +54 -0
@@ -0,0 +1,223 @@
1
+ import type { StewardClient, PolicyRule, PolicyType, TxStatus, TxRecord, AgentIdentity, AgentBalance, ChainFamily, PolicyResult } from "@stwd/sdk";
2
+ export type PolicyExposure = "visible" | "hidden" | "enforced";
3
+ export type PolicyExposureConfig = Record<PolicyType, PolicyExposure>;
4
+ export interface EnforcedPolicyOverride {
5
+ type: PolicyType;
6
+ config: Record<string, unknown>;
7
+ allowTightening?: boolean;
8
+ }
9
+ export interface CustomizableField {
10
+ path: string;
11
+ label: string;
12
+ description: string;
13
+ type: "currency" | "number" | "toggle" | "address-list" | "chain-select";
14
+ default: unknown;
15
+ min?: unknown;
16
+ max?: unknown;
17
+ }
18
+ export interface PolicyTemplate {
19
+ id: string;
20
+ name: string;
21
+ description: string;
22
+ icon: string;
23
+ policies: PolicyRule[];
24
+ customizableFields: CustomizableField[];
25
+ }
26
+ export interface SecretRoutePreset {
27
+ id: string;
28
+ name: string;
29
+ hostPattern: string;
30
+ pathPattern: string;
31
+ injectAs: "header" | "query" | "bearer";
32
+ injectKey: string;
33
+ injectFormat: string;
34
+ provisioning: "platform" | "user";
35
+ platformSecretId?: string;
36
+ }
37
+ export interface ApprovalNotificationChannel {
38
+ type: "webhook" | "email" | "in-app";
39
+ config: Record<string, string>;
40
+ }
41
+ export interface ApproverConfig {
42
+ mode: "owner" | "tenant-admin" | "list";
43
+ allowedApprovers?: string[];
44
+ }
45
+ export interface ApprovalConfig {
46
+ notificationChannels: ApprovalNotificationChannel[];
47
+ autoExpireSeconds: number;
48
+ approvers: ApproverConfig;
49
+ approvalWebhookUrl?: string;
50
+ webhookCallbackEnabled: boolean;
51
+ }
52
+ export interface TenantTheme {
53
+ primaryColor: string;
54
+ accentColor: string;
55
+ backgroundColor: string;
56
+ surfaceColor: string;
57
+ textColor: string;
58
+ mutedColor: string;
59
+ successColor: string;
60
+ errorColor: string;
61
+ warningColor: string;
62
+ borderRadius: number;
63
+ fontFamily?: string;
64
+ colorScheme: "light" | "dark" | "system";
65
+ }
66
+ export interface TenantFeatureFlags {
67
+ showFundingQR: boolean;
68
+ showTransactionHistory: boolean;
69
+ showSpendDashboard: boolean;
70
+ showPolicyControls: boolean;
71
+ showApprovalQueue: boolean;
72
+ showSecretManager: boolean;
73
+ enableSolana: boolean;
74
+ showChainSelector: boolean;
75
+ allowAddressExport: boolean;
76
+ }
77
+ export interface TenantControlPlaneConfig {
78
+ tenantId: string;
79
+ displayName: string;
80
+ exposedPolicies: PolicyExposureConfig;
81
+ policyTemplates: PolicyTemplate[];
82
+ secretRoutePresets: SecretRoutePreset[];
83
+ approvalConfig: ApprovalConfig;
84
+ theme?: TenantTheme;
85
+ features: TenantFeatureFlags;
86
+ }
87
+ export interface AgentDashboardResponse {
88
+ agent: AgentIdentity;
89
+ balances: {
90
+ evm?: {
91
+ native: string;
92
+ nativeFormatted: string;
93
+ chainId: number;
94
+ symbol: string;
95
+ };
96
+ solana?: {
97
+ native: string;
98
+ nativeFormatted: string;
99
+ chainId: number;
100
+ symbol: string;
101
+ };
102
+ };
103
+ spend: {
104
+ today: string;
105
+ thisWeek: string;
106
+ thisMonth: string;
107
+ todayFormatted: string;
108
+ thisWeekFormatted: string;
109
+ thisMonthFormatted: string;
110
+ };
111
+ policies: PolicyRule[];
112
+ pendingApprovals: number;
113
+ recentTransactions: TxRecord[];
114
+ }
115
+ export interface PaginatedTransactionsResponse {
116
+ transactions: TxRecord[];
117
+ pagination: {
118
+ page: number;
119
+ pageSize: number;
120
+ total: number;
121
+ totalPages: number;
122
+ };
123
+ }
124
+ export interface SpendStats {
125
+ range: "24h" | "7d" | "30d" | "all";
126
+ totalSpent: string;
127
+ totalSpentFormatted: string;
128
+ txCount: number;
129
+ avgTxValue: string;
130
+ avgTxValueFormatted: string;
131
+ largestTx: {
132
+ value: string;
133
+ txHash: string;
134
+ timestamp: string;
135
+ };
136
+ daily: Array<{
137
+ date: string;
138
+ spent: string;
139
+ spentFormatted: string;
140
+ txCount: number;
141
+ }>;
142
+ topDestinations: Array<{
143
+ address: string;
144
+ totalSent: string;
145
+ txCount: number;
146
+ }>;
147
+ budgetUsage?: {
148
+ dailyLimit: string;
149
+ dailyUsed: string;
150
+ dailyPercent: number;
151
+ weeklyLimit: string;
152
+ weeklyUsed: string;
153
+ weeklyPercent: number;
154
+ };
155
+ }
156
+ export interface ApprovalQueueEntry {
157
+ id: string;
158
+ agentId: string;
159
+ txId: string;
160
+ status: "pending" | "approved" | "rejected";
161
+ to: string;
162
+ value: string;
163
+ chainId: number;
164
+ policyResults: PolicyResult[];
165
+ createdAt: string;
166
+ resolvedAt?: string;
167
+ resolvedBy?: string;
168
+ }
169
+ export interface StewardProviderProps {
170
+ client: StewardClient;
171
+ agentId: string;
172
+ features?: Partial<TenantFeatureFlags>;
173
+ theme?: Partial<TenantTheme>;
174
+ pollInterval?: number;
175
+ children: React.ReactNode;
176
+ }
177
+ export interface StewardContextValue {
178
+ client: StewardClient;
179
+ agentId: string;
180
+ features: TenantFeatureFlags;
181
+ theme: TenantTheme;
182
+ tenantConfig: TenantControlPlaneConfig | null;
183
+ isLoading: boolean;
184
+ pollInterval: number;
185
+ }
186
+ export interface WalletOverviewProps {
187
+ chains?: ChainFamily[];
188
+ showQR?: boolean;
189
+ showCopy?: boolean;
190
+ className?: string;
191
+ onCopyAddress?: (address: string, chain: ChainFamily) => void;
192
+ }
193
+ export interface TransactionHistoryProps {
194
+ pageSize?: number;
195
+ statusFilter?: TxStatus[];
196
+ chainFilter?: number[];
197
+ showPolicyDetails?: boolean;
198
+ renderTransaction?: (tx: TxRecord) => React.ReactNode;
199
+ onTransactionClick?: (tx: TxRecord) => void;
200
+ className?: string;
201
+ }
202
+ export interface PolicyControlsProps {
203
+ showTemplates?: boolean;
204
+ onSave?: (policies: PolicyRule[]) => void;
205
+ readOnly?: boolean;
206
+ labels?: Partial<Record<PolicyType, string>>;
207
+ className?: string;
208
+ }
209
+ export interface ApprovalQueueProps {
210
+ refreshInterval?: number;
211
+ onResolve?: (txId: string, action: "approved" | "rejected") => void;
212
+ showPolicyReason?: boolean;
213
+ className?: string;
214
+ }
215
+ export interface SpendDashboardProps {
216
+ range?: "24h" | "7d" | "30d" | "all";
217
+ showBudgetUsage?: boolean;
218
+ showChart?: boolean;
219
+ showTopDestinations?: boolean;
220
+ className?: string;
221
+ }
222
+ export type { StewardClient, PolicyRule, PolicyType, TxStatus, TxRecord, AgentIdentity, AgentBalance, ChainFamily, PolicyResult };
223
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Truncate an address for display: 0x1234...5678
3
+ */
4
+ export declare function truncateAddress(address: string, chars?: number): string;
5
+ /**
6
+ * Format wei string to ETH with specified decimals.
7
+ */
8
+ export declare function formatWei(wei: string, decimals?: number): string;
9
+ /**
10
+ * Format a wei string for currency display with symbol.
11
+ */
12
+ export declare function formatBalance(wei: string, symbol?: string, decimals?: number): string;
13
+ /**
14
+ * Format a Date or ISO string to a human-readable timestamp.
15
+ */
16
+ export declare function formatTimestamp(date: Date | string): string;
17
+ /**
18
+ * Format a relative time string (e.g., "2 min ago").
19
+ */
20
+ export declare function formatRelativeTime(date: Date | string): string;
21
+ /**
22
+ * Copy text to clipboard. Returns true on success.
23
+ */
24
+ export declare function copyToClipboard(text: string): Promise<boolean>;
25
+ /**
26
+ * Get a block explorer URL for a transaction hash.
27
+ */
28
+ export declare function getExplorerTxUrl(txHash: string, chainId: number): string;
29
+ /**
30
+ * Get a block explorer URL for an address.
31
+ */
32
+ export declare function getExplorerAddressUrl(address: string, chainId: number): string;
33
+ /**
34
+ * Get status badge color class.
35
+ */
36
+ export declare function getStatusColor(status: string): string;
37
+ /**
38
+ * Calculate percentage, clamped to 0-100.
39
+ */
40
+ export declare function calcPercent(used: string, limit: string): number;
41
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAGlE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,CAS3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAQ,EAAE,QAAQ,SAAI,GAAG,MAAM,CAE/E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAc9D;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAYxE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAY9E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAcrD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAO/D"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * Truncate an address for display: 0x1234...5678
3
+ */
4
+ export function truncateAddress(address, chars = 4) {
5
+ if (address.length <= chars * 2 + 2)
6
+ return address;
7
+ return `${address.slice(0, chars + 2)}...${address.slice(-chars)}`;
8
+ }
9
+ /**
10
+ * Format wei string to ETH with specified decimals.
11
+ */
12
+ export function formatWei(wei, decimals = 4) {
13
+ if (!wei || wei === "0")
14
+ return "0";
15
+ const num = BigInt(wei);
16
+ const divisor = BigInt(10 ** 18);
17
+ const whole = num / divisor;
18
+ const fraction = num % divisor;
19
+ const fractionStr = fraction.toString().padStart(18, "0").slice(0, decimals);
20
+ if (decimals === 0)
21
+ return whole.toString();
22
+ return `${whole}.${fractionStr}`;
23
+ }
24
+ /**
25
+ * Format a wei string for currency display with symbol.
26
+ */
27
+ export function formatBalance(wei, symbol = "ETH", decimals = 4) {
28
+ return `${formatWei(wei, decimals)} ${symbol}`;
29
+ }
30
+ /**
31
+ * Format a Date or ISO string to a human-readable timestamp.
32
+ */
33
+ export function formatTimestamp(date) {
34
+ const d = typeof date === "string" ? new Date(date) : date;
35
+ return d.toLocaleString(undefined, {
36
+ month: "short",
37
+ day: "numeric",
38
+ hour: "2-digit",
39
+ minute: "2-digit",
40
+ });
41
+ }
42
+ /**
43
+ * Format a relative time string (e.g., "2 min ago").
44
+ */
45
+ export function formatRelativeTime(date) {
46
+ const d = typeof date === "string" ? new Date(date) : date;
47
+ const now = Date.now();
48
+ const diffMs = now - d.getTime();
49
+ const diffSec = Math.floor(diffMs / 1000);
50
+ const diffMin = Math.floor(diffSec / 60);
51
+ const diffHr = Math.floor(diffMin / 60);
52
+ const diffDay = Math.floor(diffHr / 24);
53
+ if (diffSec < 60)
54
+ return "just now";
55
+ if (diffMin < 60)
56
+ return `${diffMin}m ago`;
57
+ if (diffHr < 24)
58
+ return `${diffHr}h ago`;
59
+ if (diffDay < 30)
60
+ return `${diffDay}d ago`;
61
+ return formatTimestamp(d);
62
+ }
63
+ /**
64
+ * Copy text to clipboard. Returns true on success.
65
+ */
66
+ export async function copyToClipboard(text) {
67
+ try {
68
+ await navigator.clipboard.writeText(text);
69
+ return true;
70
+ }
71
+ catch {
72
+ return false;
73
+ }
74
+ }
75
+ /**
76
+ * Get a block explorer URL for a transaction hash.
77
+ */
78
+ export function getExplorerTxUrl(txHash, chainId) {
79
+ const explorers = {
80
+ 1: "https://etherscan.io",
81
+ 56: "https://bscscan.com",
82
+ 97: "https://testnet.bscscan.com",
83
+ 137: "https://polygonscan.com",
84
+ 8453: "https://basescan.org",
85
+ 42161: "https://arbiscan.io",
86
+ 84532: "https://sepolia.basescan.org",
87
+ };
88
+ const base = explorers[chainId] || `https://etherscan.io`;
89
+ return `${base}/tx/${txHash}`;
90
+ }
91
+ /**
92
+ * Get a block explorer URL for an address.
93
+ */
94
+ export function getExplorerAddressUrl(address, chainId) {
95
+ const explorers = {
96
+ 1: "https://etherscan.io",
97
+ 56: "https://bscscan.com",
98
+ 97: "https://testnet.bscscan.com",
99
+ 137: "https://polygonscan.com",
100
+ 8453: "https://basescan.org",
101
+ 42161: "https://arbiscan.io",
102
+ 84532: "https://sepolia.basescan.org",
103
+ };
104
+ const base = explorers[chainId] || `https://etherscan.io`;
105
+ return `${base}/address/${address}`;
106
+ }
107
+ /**
108
+ * Get status badge color class.
109
+ */
110
+ export function getStatusColor(status) {
111
+ switch (status) {
112
+ case "confirmed":
113
+ case "approved":
114
+ return "stwd-badge-success";
115
+ case "failed":
116
+ case "rejected":
117
+ return "stwd-badge-error";
118
+ case "pending":
119
+ case "broadcast":
120
+ return "stwd-badge-warning";
121
+ default:
122
+ return "stwd-badge-muted";
123
+ }
124
+ }
125
+ /**
126
+ * Calculate percentage, clamped to 0-100.
127
+ */
128
+ export function calcPercent(used, limit) {
129
+ if (!limit || limit === "0")
130
+ return 0;
131
+ const u = BigInt(used);
132
+ const l = BigInt(limit);
133
+ if (l === BigInt(0))
134
+ return 0;
135
+ const pct = Number((u * BigInt(100)) / l);
136
+ return Math.min(100, Math.max(0, pct));
137
+ }
138
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/utils/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { TenantTheme } from "../types.js";
2
+ export declare const DEFAULT_THEME: TenantTheme;
3
+ export declare function themeToCSS(theme: TenantTheme): Record<string, string>;
4
+ export declare function mergeTheme(base: TenantTheme, overrides?: Partial<TenantTheme>): TenantTheme;
5
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/utils/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,aAAa,EAAE,WAa3B,CAAC;AAEF,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcrE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAG3F"}
@@ -0,0 +1,35 @@
1
+ export const DEFAULT_THEME = {
2
+ primaryColor: "#8B5CF6",
3
+ accentColor: "#A78BFA",
4
+ backgroundColor: "#0F0F0F",
5
+ surfaceColor: "#1A1A2E",
6
+ textColor: "#FAFAFA",
7
+ mutedColor: "#6B7280",
8
+ successColor: "#10B981",
9
+ errorColor: "#EF4444",
10
+ warningColor: "#F59E0B",
11
+ borderRadius: 12,
12
+ fontFamily: "Inter, system-ui, sans-serif",
13
+ colorScheme: "dark",
14
+ };
15
+ export function themeToCSS(theme) {
16
+ return {
17
+ "--stwd-primary": theme.primaryColor,
18
+ "--stwd-accent": theme.accentColor,
19
+ "--stwd-bg": theme.backgroundColor,
20
+ "--stwd-surface": theme.surfaceColor,
21
+ "--stwd-text": theme.textColor,
22
+ "--stwd-muted": theme.mutedColor,
23
+ "--stwd-success": theme.successColor,
24
+ "--stwd-error": theme.errorColor,
25
+ "--stwd-warning": theme.warningColor,
26
+ "--stwd-radius": `${theme.borderRadius}px`,
27
+ "--stwd-font": theme.fontFamily || "Inter, system-ui, sans-serif",
28
+ };
29
+ }
30
+ export function mergeTheme(base, overrides) {
31
+ if (!overrides)
32
+ return base;
33
+ return { ...base, ...overrides };
34
+ }
35
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/utils/theme.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,YAAY,EAAE,SAAS;IACvB,WAAW,EAAE,SAAS;IACtB,eAAe,EAAE,SAAS;IAC1B,YAAY,EAAE,SAAS;IACvB,SAAS,EAAE,SAAS;IACpB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,UAAU,EAAE,SAAS;IACrB,YAAY,EAAE,SAAS;IACvB,YAAY,EAAE,EAAE;IAChB,UAAU,EAAE,8BAA8B;IAC1C,WAAW,EAAE,MAAM;CACpB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,OAAO;QACL,gBAAgB,EAAE,KAAK,CAAC,YAAY;QACpC,eAAe,EAAE,KAAK,CAAC,WAAW;QAClC,WAAW,EAAE,KAAK,CAAC,eAAe;QAClC,gBAAgB,EAAE,KAAK,CAAC,YAAY;QACpC,aAAa,EAAE,KAAK,CAAC,SAAS;QAC9B,cAAc,EAAE,KAAK,CAAC,UAAU;QAChC,gBAAgB,EAAE,KAAK,CAAC,YAAY;QACpC,cAAc,EAAE,KAAK,CAAC,UAAU;QAChC,gBAAgB,EAAE,KAAK,CAAC,YAAY;QACpC,eAAe,EAAE,GAAG,KAAK,CAAC,YAAY,IAAI;QAC1C,aAAa,EAAE,KAAK,CAAC,UAAU,IAAI,8BAA8B;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAiB,EAAE,SAAgC;IAC5E,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AACnC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@stwd/react",
3
+ "version": "0.1.0",
4
+ "description": "Embeddable React components for Steward agent wallet management",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./styles.css": "./dist/styles.css"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "README.md"
18
+ ],
19
+ "scripts": {
20
+ "build": "tsc && cp src/styles.css dist/styles.css",
21
+ "dev": "tsc --watch"
22
+ },
23
+ "peerDependencies": {
24
+ "react": ">=18.0.0",
25
+ "react-dom": ">=18.0.0",
26
+ "@stwd/sdk": ">=0.4.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/react": "^18.0.0",
30
+ "@types/react-dom": "^18.0.0",
31
+ "react": "^18.0.0",
32
+ "react-dom": "^18.0.0",
33
+ "typescript": "^5.8.0"
34
+ },
35
+ "keywords": [
36
+ "steward",
37
+ "agent",
38
+ "wallet",
39
+ "react",
40
+ "components",
41
+ "web3",
42
+ "policy"
43
+ ],
44
+ "author": "Steward-Fi",
45
+ "license": "MIT",
46
+ "homepage": "https://steward.fi",
47
+ "repository": {
48
+ "type": "git",
49
+ "url": "https://github.com/Steward-Fi/steward"
50
+ },
51
+ "publishConfig": {
52
+ "access": "public"
53
+ }
54
+ }