@b3dotfun/sdk 0.0.35 → 0.0.36
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/dist/cjs/anyspend/react/components/AnySpend.js +5 -3
- package/dist/cjs/anyspend/react/components/AnyspendDepositHype.js +2 -2
- package/dist/cjs/anyspend/react/components/common/ConnectWalletPayment.d.ts +3 -1
- package/dist/cjs/anyspend/react/components/common/ConnectWalletPayment.js +5 -2
- package/dist/cjs/anyspend/react/components/common/CryptoPaySection.d.ts +16 -0
- package/dist/cjs/anyspend/react/components/common/CryptoPaySection.js +58 -0
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.d.ts +1 -0
- package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +22 -15
- package/dist/cjs/anyspend/react/components/common/OrderDetails.js +12 -4
- package/dist/cjs/anyspend/react/components/common/PaySection.d.ts +2 -6
- package/dist/cjs/anyspend/react/components/common/PaySection.js +10 -15
- package/dist/cjs/anyspend/react/components/index.d.ts +2 -2
- package/dist/cjs/anyspend/react/components/index.js +5 -5
- package/dist/cjs/global-account/bsmnt.d.ts +2 -0
- package/dist/cjs/global-account/bsmnt.js +42 -1
- package/dist/cjs/global-account/react/components/AvatarCreator/AvatarCreator.d.ts +6 -0
- package/dist/cjs/global-account/react/components/AvatarCreator/AvatarCreator.js +55 -0
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +6 -0
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +108 -0
- package/dist/cjs/global-account/react/components/B3DynamicModal.js +9 -1
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.d.ts +3 -1
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +21 -11
- package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.d.ts +3 -1
- package/dist/cjs/global-account/react/components/ManageAccount/BalanceContent.js +19 -5
- package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.d.ts +3 -1
- package/dist/cjs/global-account/react/components/ManageAccount/ManageAccount.js +6 -6
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3.js +2 -2
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +1 -13
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Privy.js +1 -3
- package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStep.js +0 -3
- package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStepCustom.js +0 -3
- package/dist/cjs/global-account/react/components/icons/AppleIcon.d.ts +9 -0
- package/dist/cjs/global-account/react/components/icons/AppleIcon.js +8 -0
- package/dist/cjs/global-account/react/components/icons/DiscordIcon.d.ts +9 -0
- package/dist/cjs/global-account/react/components/icons/DiscordIcon.js +8 -0
- package/dist/cjs/global-account/react/components/icons/FarcasterIcon.d.ts +9 -0
- package/dist/cjs/global-account/react/components/icons/FarcasterIcon.js +8 -0
- package/dist/cjs/global-account/react/components/icons/GoogleIcon.d.ts +8 -0
- package/dist/cjs/global-account/react/components/icons/GoogleIcon.js +8 -0
- package/dist/cjs/global-account/react/components/icons/XIcon.d.ts +9 -0
- package/dist/cjs/global-account/react/components/icons/XIcon.js +8 -0
- package/dist/cjs/global-account/react/hooks/useAccountWallet.js +3 -2
- package/dist/cjs/global-account/react/hooks/useAuthentication.d.ts +1 -2
- package/dist/cjs/global-account/react/hooks/useAuthentication.js +16 -15
- package/dist/cjs/global-account/react/hooks/useProfile.d.ts +1 -1
- package/dist/cjs/global-account/react/hooks/useRPMToken.d.ts +7 -0
- package/dist/cjs/global-account/react/hooks/useRPMToken.js +11 -0
- package/dist/cjs/global-account/react/stores/useAuthStore.d.ts +2 -4
- package/dist/cjs/global-account/react/stores/useAuthStore.js +2 -4
- package/dist/cjs/global-account/react/stores/useModalStore.d.ts +11 -1
- package/dist/cjs/global-account/react/utils/updateAvatar.d.ts +4 -0
- package/dist/cjs/global-account/react/utils/updateAvatar.js +54 -0
- package/dist/esm/anyspend/react/components/AnySpend.js +5 -3
- package/dist/esm/anyspend/react/components/AnyspendDepositHype.js +2 -2
- package/dist/esm/anyspend/react/components/common/ConnectWalletPayment.d.ts +3 -1
- package/dist/esm/anyspend/react/components/common/ConnectWalletPayment.js +5 -2
- package/dist/esm/anyspend/react/components/common/CryptoPaySection.d.ts +16 -0
- package/dist/esm/anyspend/react/components/common/CryptoPaySection.js +55 -0
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.d.ts +1 -0
- package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +22 -15
- package/dist/esm/anyspend/react/components/common/OrderDetails.js +12 -4
- package/dist/esm/anyspend/react/components/common/PaySection.d.ts +2 -6
- package/dist/esm/anyspend/react/components/common/PaySection.js +10 -15
- package/dist/esm/anyspend/react/components/index.d.ts +2 -2
- package/dist/esm/anyspend/react/components/index.js +2 -2
- package/dist/esm/global-account/bsmnt.d.ts +2 -0
- package/dist/esm/global-account/bsmnt.js +39 -0
- package/dist/esm/global-account/react/components/AvatarCreator/AvatarCreator.d.ts +6 -0
- package/dist/esm/global-account/react/components/AvatarCreator/AvatarCreator.js +52 -0
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +6 -0
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +102 -0
- package/dist/esm/global-account/react/components/B3DynamicModal.js +9 -1
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.d.ts +3 -1
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +22 -12
- package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.d.ts +3 -1
- package/dist/esm/global-account/react/components/ManageAccount/BalanceContent.js +20 -6
- package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.d.ts +3 -1
- package/dist/esm/global-account/react/components/ManageAccount/ManageAccount.js +6 -6
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3.js +2 -2
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +1 -13
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Privy.js +1 -3
- package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStep.js +0 -3
- package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStepCustom.js +0 -3
- package/dist/esm/global-account/react/components/icons/AppleIcon.d.ts +9 -0
- package/dist/esm/global-account/react/components/icons/AppleIcon.js +5 -0
- package/dist/esm/global-account/react/components/icons/DiscordIcon.d.ts +9 -0
- package/dist/esm/global-account/react/components/icons/DiscordIcon.js +5 -0
- package/dist/esm/global-account/react/components/icons/FarcasterIcon.d.ts +9 -0
- package/dist/esm/global-account/react/components/icons/FarcasterIcon.js +5 -0
- package/dist/esm/global-account/react/components/icons/GoogleIcon.d.ts +8 -0
- package/dist/esm/global-account/react/components/icons/GoogleIcon.js +5 -0
- package/dist/esm/global-account/react/components/icons/XIcon.d.ts +9 -0
- package/dist/esm/global-account/react/components/icons/XIcon.js +5 -0
- package/dist/esm/global-account/react/hooks/useAccountWallet.js +3 -2
- package/dist/esm/global-account/react/hooks/useAuthentication.d.ts +1 -2
- package/dist/esm/global-account/react/hooks/useAuthentication.js +16 -15
- package/dist/esm/global-account/react/hooks/useProfile.d.ts +1 -1
- package/dist/esm/global-account/react/hooks/useRPMToken.d.ts +7 -0
- package/dist/esm/global-account/react/hooks/useRPMToken.js +8 -0
- package/dist/esm/global-account/react/stores/useAuthStore.d.ts +2 -4
- package/dist/esm/global-account/react/stores/useAuthStore.js +2 -4
- package/dist/esm/global-account/react/stores/useModalStore.d.ts +11 -1
- package/dist/esm/global-account/react/utils/updateAvatar.d.ts +4 -0
- package/dist/esm/global-account/react/utils/updateAvatar.js +18 -0
- package/dist/styles/index.css +1 -1
- package/dist/types/anyspend/react/components/common/ConnectWalletPayment.d.ts +3 -1
- package/dist/types/anyspend/react/components/common/CryptoPaySection.d.ts +16 -0
- package/dist/types/anyspend/react/components/common/CryptoPaymentMethod.d.ts +1 -0
- package/dist/types/anyspend/react/components/common/PaySection.d.ts +2 -6
- package/dist/types/anyspend/react/components/index.d.ts +2 -2
- package/dist/types/global-account/bsmnt.d.ts +2 -0
- package/dist/types/global-account/react/components/AvatarCreator/AvatarCreator.d.ts +6 -0
- package/dist/types/global-account/react/components/AvatarEditor/AvatarEditor.d.ts +6 -0
- package/dist/types/global-account/react/components/LinkAccount/LinkAccount.d.ts +3 -1
- package/dist/types/global-account/react/components/ManageAccount/BalanceContent.d.ts +3 -1
- package/dist/types/global-account/react/components/ManageAccount/ManageAccount.d.ts +3 -1
- package/dist/types/global-account/react/components/icons/AppleIcon.d.ts +9 -0
- package/dist/types/global-account/react/components/icons/DiscordIcon.d.ts +9 -0
- package/dist/types/global-account/react/components/icons/FarcasterIcon.d.ts +9 -0
- package/dist/types/global-account/react/components/icons/GoogleIcon.d.ts +8 -0
- package/dist/types/global-account/react/components/icons/XIcon.d.ts +9 -0
- package/dist/types/global-account/react/hooks/useAuthentication.d.ts +1 -2
- package/dist/types/global-account/react/hooks/useProfile.d.ts +1 -1
- package/dist/types/global-account/react/hooks/useRPMToken.d.ts +7 -0
- package/dist/types/global-account/react/stores/useAuthStore.d.ts +2 -4
- package/dist/types/global-account/react/stores/useModalStore.d.ts +11 -1
- package/dist/types/global-account/react/utils/updateAvatar.d.ts +4 -0
- package/package.json +8 -7
- package/src/anyspend/react/components/AnySpend.tsx +7 -6
- package/src/anyspend/react/components/AnyspendDepositHype.tsx +2 -5
- package/src/anyspend/react/components/common/ConnectWalletPayment.tsx +6 -1
- package/src/anyspend/react/components/common/CryptoPaySection.tsx +153 -0
- package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +80 -43
- package/src/anyspend/react/components/common/OrderDetails.tsx +13 -4
- package/src/anyspend/react/components/common/PaySection.tsx +64 -140
- package/src/anyspend/react/components/index.ts +2 -2
- package/src/global-account/bsmnt.ts +47 -0
- package/src/global-account/react/components/AvatarCreator/AvatarCreator.tsx +90 -0
- package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +233 -0
- package/src/global-account/react/components/B3DynamicModal.tsx +27 -2
- package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +40 -18
- package/src/global-account/react/components/ManageAccount/BalanceContent.tsx +63 -35
- package/src/global-account/react/components/ManageAccount/ManageAccount.tsx +106 -78
- package/src/global-account/react/components/SignInWithB3/SignInWithB3.tsx +2 -2
- package/src/global-account/react/components/SignInWithB3/SignInWithB3Flow.tsx +1 -13
- package/src/global-account/react/components/SignInWithB3/SignInWithB3Privy.tsx +1 -3
- package/src/global-account/react/components/SignInWithB3/steps/LoginStep.tsx +0 -3
- package/src/global-account/react/components/SignInWithB3/steps/LoginStepCustom.tsx +0 -3
- package/src/global-account/react/components/icons/AppleIcon.tsx +33 -0
- package/src/global-account/react/components/icons/DiscordIcon.tsx +32 -0
- package/src/global-account/react/components/icons/FarcasterIcon.tsx +37 -0
- package/src/global-account/react/components/icons/GoogleIcon.tsx +40 -0
- package/src/global-account/react/components/icons/XIcon.tsx +28 -0
- package/src/global-account/react/hooks/useAccountWallet.tsx +3 -2
- package/src/global-account/react/hooks/useAuthentication.ts +18 -15
- package/src/global-account/react/hooks/useProfile.ts +1 -1
- package/src/global-account/react/hooks/useRPMToken.ts +17 -0
- package/src/global-account/react/stores/useAuthStore.ts +4 -8
- package/src/global-account/react/stores/useModalStore.ts +13 -1
- package/src/global-account/react/utils/updateAvatar.ts +21 -0
|
@@ -42,6 +42,8 @@ interface ManageAccountProps {
|
|
|
42
42
|
chain: Chain;
|
|
43
43
|
partnerId: string;
|
|
44
44
|
containerClassName?: string;
|
|
45
|
+
showSwap?: boolean;
|
|
46
|
+
showDeposit?: boolean;
|
|
45
47
|
}
|
|
46
48
|
|
|
47
49
|
export function ManageAccount({
|
|
@@ -50,6 +52,8 @@ export function ManageAccount({
|
|
|
50
52
|
onDeposit: _onDeposit,
|
|
51
53
|
chain,
|
|
52
54
|
partnerId,
|
|
55
|
+
showSwap,
|
|
56
|
+
showDeposit,
|
|
53
57
|
}: ManageAccountProps) {
|
|
54
58
|
const [revokingSignerId, setRevokingSignerId] = useState<string | null>(null);
|
|
55
59
|
const account = useActiveAccount();
|
|
@@ -89,7 +93,6 @@ export function ManageAccount({
|
|
|
89
93
|
setB3ModalOpen(false);
|
|
90
94
|
setLogoutLoading(false);
|
|
91
95
|
};
|
|
92
|
-
|
|
93
96
|
const AppsContent = () => (
|
|
94
97
|
<div className="space-y-4">
|
|
95
98
|
{signers?.map((signer: TWSignerWithMetadata) => (
|
|
@@ -234,53 +237,64 @@ export function ManageAccount({
|
|
|
234
237
|
};
|
|
235
238
|
|
|
236
239
|
return (
|
|
237
|
-
<div className="space-y-8">
|
|
240
|
+
<div className="linked-accounts-settings space-y-8">
|
|
238
241
|
{/* Linked Accounts Section */}
|
|
239
|
-
<div className="space-y-4">
|
|
240
|
-
<div className="flex items-center justify-between">
|
|
241
|
-
<h3 className="text-b3-grey font-neue-montreal-semibold text-xl">
|
|
242
|
+
<div className="linked-accounts-section space-y-4">
|
|
243
|
+
<div className="linked-accounts-header flex items-center justify-between">
|
|
244
|
+
<h3 className="text-b3-grey font-neue-montreal-semibold linked-accounts-settings-title text-xl">
|
|
245
|
+
Linked Accounts
|
|
246
|
+
</h3>
|
|
242
247
|
<Button
|
|
243
|
-
className="bg-b3-primary-wash hover:bg-b3-primary-wash/70 flex items-center gap-2 rounded-full px-4 py-2"
|
|
248
|
+
className="linked-accounts-settings-button linked-accounts-link-button bg-b3-primary-wash hover:bg-b3-primary-wash/70 flex items-center gap-2 rounded-full px-4 py-2"
|
|
244
249
|
onClick={handleOpenLinkModal}
|
|
245
250
|
disabled={isLinking}
|
|
246
251
|
>
|
|
247
252
|
{isLinking ? (
|
|
248
|
-
<Loader2 className="text-b3-primary-blue animate-spin" size={16} />
|
|
253
|
+
<Loader2 className="linked-accounts-link-loading text-b3-primary-blue animate-spin" size={16} />
|
|
249
254
|
) : (
|
|
250
|
-
<LinkIcon size={16} className="text-b3-primary-blue" />
|
|
255
|
+
<LinkIcon size={16} className="linked-accounts-link-icon text-b3-primary-blue" />
|
|
251
256
|
)}
|
|
252
|
-
<span className="text-b3-grey font-neue-montreal-semibold">
|
|
257
|
+
<span className="linked-accounts-link-text text-b3-grey font-neue-montreal-semibold">
|
|
253
258
|
{isLinking ? "Linking..." : "Link New Account"}
|
|
254
259
|
</span>
|
|
255
260
|
</Button>
|
|
256
261
|
</div>
|
|
257
262
|
|
|
258
263
|
{isLoadingProfiles ? (
|
|
259
|
-
<div className="flex justify-center py-8">
|
|
264
|
+
<div className="linked-accounts-loading flex justify-center py-8">
|
|
260
265
|
<Loader2 className="text-b3-grey animate-spin" />
|
|
261
266
|
</div>
|
|
262
267
|
) : profiles.length > 0 ? (
|
|
263
|
-
<div className="space-y-4">
|
|
268
|
+
<div className="linked-accounts-list space-y-4">
|
|
264
269
|
{profiles.map(profile => (
|
|
265
|
-
<div
|
|
266
|
-
|
|
270
|
+
<div
|
|
271
|
+
key={profile.title}
|
|
272
|
+
className="linked-account-item bg-b3-line flex items-center justify-between rounded-xl p-4"
|
|
273
|
+
>
|
|
274
|
+
<div className="linked-account-info flex items-center gap-3">
|
|
267
275
|
{profile.imageUrl ? (
|
|
268
|
-
<img
|
|
276
|
+
<img
|
|
277
|
+
src={profile.imageUrl}
|
|
278
|
+
alt={profile.title}
|
|
279
|
+
className="linked-account-avatar linked-account-avatar-image size-10 rounded-full"
|
|
280
|
+
/>
|
|
269
281
|
) : (
|
|
270
|
-
<div className="bg-b3-primary-wash flex h-10 w-10 items-center justify-center rounded-full">
|
|
271
|
-
<span className="text-b3-grey font-neue-montreal-semibold text-sm uppercase">
|
|
282
|
+
<div className="linked-account-avatar linked-account-avatar-placeholder bg-b3-primary-wash flex h-10 w-10 items-center justify-center rounded-full">
|
|
283
|
+
<span className="linked-account-initial text-b3-grey font-neue-montreal-semibold text-sm uppercase">
|
|
272
284
|
{profile.initial}
|
|
273
285
|
</span>
|
|
274
286
|
</div>
|
|
275
287
|
)}
|
|
276
|
-
<div>
|
|
277
|
-
<div className="flex items-center gap-2">
|
|
278
|
-
<span className="text-b3-grey font-neue-montreal-semibold">
|
|
279
|
-
|
|
288
|
+
<div className="linked-account-details">
|
|
289
|
+
<div className="linked-account-title-row flex items-center gap-2">
|
|
290
|
+
<span className="linked-account-title text-b3-grey font-neue-montreal-semibold">
|
|
291
|
+
{profile.title}
|
|
292
|
+
</span>
|
|
293
|
+
<span className="linked-account-type text-b3-foreground-muted font-neue-montreal-medium bg-b3-primary-wash rounded px-2 py-0.5 text-xs">
|
|
280
294
|
{profile.type.toUpperCase()}
|
|
281
295
|
</span>
|
|
282
296
|
</div>
|
|
283
|
-
<div className="text-b3-foreground-muted font-neue-montreal-medium text-sm">
|
|
297
|
+
<div className="linked-account-subtitle text-b3-foreground-muted font-neue-montreal-medium text-sm">
|
|
284
298
|
{profile.subtitle}
|
|
285
299
|
</div>
|
|
286
300
|
</div>
|
|
@@ -288,69 +302,79 @@ export function ManageAccount({
|
|
|
288
302
|
<Button
|
|
289
303
|
variant="ghost"
|
|
290
304
|
size="icon"
|
|
291
|
-
className="text-b3-grey hover:text-b3-negative"
|
|
305
|
+
className="linked-account-unlink-button text-b3-grey hover:text-b3-negative"
|
|
292
306
|
onClick={() => handleUnlink(profile)}
|
|
293
307
|
disabled={unlinkingAccountId === profile.title || isUnlinking}
|
|
294
308
|
>
|
|
295
309
|
{unlinkingAccountId === profile.title || isUnlinking ? (
|
|
296
|
-
<Loader2 className="animate-spin" />
|
|
310
|
+
<Loader2 className="linked-account-unlink-loading animate-spin" />
|
|
297
311
|
) : (
|
|
298
|
-
<UnlinkIcon size={16} />
|
|
312
|
+
<UnlinkIcon size={16} className="linked-account-unlink-icon" />
|
|
299
313
|
)}
|
|
300
314
|
</Button>
|
|
301
315
|
</div>
|
|
302
316
|
))}
|
|
303
317
|
</div>
|
|
304
318
|
) : (
|
|
305
|
-
<div className="text-b3-foreground-muted py-8 text-center">
|
|
319
|
+
<div className="linked-accounts-empty text-b3-foreground-muted py-8 text-center">
|
|
320
|
+
No linked accounts found
|
|
321
|
+
</div>
|
|
306
322
|
)}
|
|
307
323
|
</div>
|
|
308
324
|
|
|
309
325
|
{showReferralInfo && (
|
|
310
326
|
/* Referral Section */
|
|
311
|
-
<div className="space-y-4">
|
|
312
|
-
<h3 className="text-b3-grey font-neue-montreal-semibold text-xl">Referrals</h3>
|
|
327
|
+
<div className="referrals-section space-y-4">
|
|
328
|
+
<h3 className="referrals-title text-b3-grey font-neue-montreal-semibold text-xl">Referrals</h3>
|
|
313
329
|
|
|
314
330
|
{/* Referral Code */}
|
|
315
|
-
<div className="bg-b3-line rounded-xl p-4">
|
|
331
|
+
<div className="referral-code-container bg-b3-line rounded-xl p-4">
|
|
316
332
|
{isEditingCode && (
|
|
317
|
-
<div>
|
|
318
|
-
<div className="text-b3-grey font-neue-montreal-semibold">Your Referral Code</div>
|
|
319
|
-
<div className="text-b3-foreground-muted font-neue-montreal-medium text-sm">
|
|
333
|
+
<div className="referral-code-header-editing">
|
|
334
|
+
<div className="referral-code-title text-b3-grey font-neue-montreal-semibold">Your Referral Code</div>
|
|
335
|
+
<div className="referral-code-description text-b3-foreground-muted font-neue-montreal-medium text-sm">
|
|
320
336
|
Share this code with friends to earn rewards
|
|
321
337
|
</div>
|
|
322
338
|
</div>
|
|
323
339
|
)}
|
|
324
|
-
<div className="flex items-center justify-between">
|
|
340
|
+
<div className="referral-code-content flex items-center justify-between">
|
|
325
341
|
{!isEditingCode && (
|
|
326
|
-
<div>
|
|
327
|
-
<div className="text-b3-grey font-neue-montreal-semibold">
|
|
328
|
-
|
|
342
|
+
<div className="referral-code-header">
|
|
343
|
+
<div className="referral-code-title text-b3-grey font-neue-montreal-semibold">
|
|
344
|
+
Your Referral Code
|
|
345
|
+
</div>
|
|
346
|
+
<div className="referral-code-description text-b3-foreground-muted font-neue-montreal-medium text-sm">
|
|
329
347
|
Share this code with friends to earn rewards
|
|
330
348
|
</div>
|
|
331
349
|
</div>
|
|
332
350
|
)}
|
|
333
|
-
<div className="flex items-center gap-2">
|
|
351
|
+
<div className="referral-code-actions flex items-center gap-2">
|
|
334
352
|
{isEditingCode ? (
|
|
335
|
-
<div className="flex items-center gap-2">
|
|
353
|
+
<div className="referral-code-edit-form flex items-center gap-2">
|
|
336
354
|
<input
|
|
337
355
|
type="text"
|
|
338
356
|
value={newReferralCode}
|
|
339
357
|
onChange={e => setNewReferralCode(e.target.value)}
|
|
340
|
-
className="rounded-lg border border-gray-200 bg-white px-3 py-1.5 text-sm"
|
|
358
|
+
className="referral-code-input rounded-lg border border-gray-200 bg-white px-3 py-1.5 text-sm"
|
|
341
359
|
placeholder="Enter new code"
|
|
342
360
|
ref={referallCodeRef}
|
|
343
361
|
/>
|
|
344
362
|
<Button
|
|
345
363
|
size="sm"
|
|
364
|
+
className="referral-code-save-button"
|
|
346
365
|
onClick={handleUpdateReferralCode}
|
|
347
366
|
disabled={isUpdatingCode || !newReferralCode}
|
|
348
367
|
>
|
|
349
|
-
{isUpdatingCode ?
|
|
368
|
+
{isUpdatingCode ? (
|
|
369
|
+
<Loader2 className="referral-code-save-loading h-4 w-4 animate-spin" />
|
|
370
|
+
) : (
|
|
371
|
+
"Save"
|
|
372
|
+
)}
|
|
350
373
|
</Button>
|
|
351
374
|
<Button
|
|
352
375
|
size="sm"
|
|
353
376
|
variant="ghost"
|
|
377
|
+
className="referral-code-cancel-button"
|
|
354
378
|
onClick={() => {
|
|
355
379
|
setIsEditingCode(false);
|
|
356
380
|
setNewReferralCode("");
|
|
@@ -361,15 +385,21 @@ export function ManageAccount({
|
|
|
361
385
|
</div>
|
|
362
386
|
) : (
|
|
363
387
|
<>
|
|
364
|
-
<div className="rounded-lg border border-gray-200 bg-white px-3 py-1.5 text-sm">
|
|
388
|
+
<div className="referral-code-display rounded-lg border border-gray-200 bg-white px-3 py-1.5 text-sm">
|
|
365
389
|
{currentReferralCode}
|
|
366
390
|
</div>
|
|
367
|
-
<Button
|
|
368
|
-
|
|
391
|
+
<Button
|
|
392
|
+
size="icon"
|
|
393
|
+
variant="ghost"
|
|
394
|
+
className="referral-code-copy-button"
|
|
395
|
+
onClick={handleCopyCode}
|
|
396
|
+
>
|
|
397
|
+
<Copy className="referral-code-copy-icon h-4 w-4" />
|
|
369
398
|
</Button>
|
|
370
399
|
<Button
|
|
371
400
|
size="icon"
|
|
372
401
|
variant="ghost"
|
|
402
|
+
className="referral-code-edit-button"
|
|
373
403
|
onClick={() => {
|
|
374
404
|
setIsEditingCode(true);
|
|
375
405
|
setTimeout(() => {
|
|
@@ -377,7 +407,7 @@ export function ManageAccount({
|
|
|
377
407
|
}, 100);
|
|
378
408
|
}}
|
|
379
409
|
>
|
|
380
|
-
<Pencil className="h-4 w-4" />
|
|
410
|
+
<Pencil className="referral-code-edit-icon h-4 w-4" />
|
|
381
411
|
</Button>
|
|
382
412
|
</>
|
|
383
413
|
)}
|
|
@@ -386,67 +416,65 @@ export function ManageAccount({
|
|
|
386
416
|
</div>
|
|
387
417
|
|
|
388
418
|
{/* Referred Users */}
|
|
389
|
-
<div className="bg-b3-line rounded-xl p-4">
|
|
390
|
-
<div className="text-b3-grey font-neue-montreal-semibold mb-4">Referred Users</div>
|
|
419
|
+
<div className="referred-users-container bg-b3-line rounded-xl p-4">
|
|
420
|
+
<div className="referred-users-title text-b3-grey font-neue-montreal-semibold mb-4">Referred Users</div>
|
|
391
421
|
{isLoadingReferrals ? (
|
|
392
|
-
<div className="flex justify-center py-4">
|
|
422
|
+
<div className="referred-users-loading flex justify-center py-4">
|
|
393
423
|
<Loader2 className="h-6 w-6 animate-spin text-gray-400" />
|
|
394
424
|
</div>
|
|
395
425
|
) : referrals?.data?.length ? (
|
|
396
|
-
<div className="space-y-3">
|
|
426
|
+
<div className="referred-users-list space-y-3">
|
|
397
427
|
{referrals.data.map((referral: Referrals) => (
|
|
398
428
|
<div
|
|
399
429
|
key={String(referral._id)}
|
|
400
|
-
className="flex items-center justify-between rounded-lg bg-white p-3"
|
|
430
|
+
className="referred-user-item flex items-center justify-between rounded-lg bg-white p-3"
|
|
401
431
|
>
|
|
402
|
-
<div className="text-sm font-medium">{referral.referreeId}</div>
|
|
403
|
-
<div className="text-sm text-gray-500">
|
|
432
|
+
<div className="referred-user-id text-sm font-medium">{referral.referreeId}</div>
|
|
433
|
+
<div className="referred-user-date text-sm text-gray-500">
|
|
434
|
+
{new Date(referral.createdAt).toLocaleDateString()}
|
|
435
|
+
</div>
|
|
404
436
|
</div>
|
|
405
437
|
))}
|
|
406
438
|
</div>
|
|
407
439
|
) : (
|
|
408
|
-
<div className="py-4 text-center text-gray-500">No referred users yet</div>
|
|
440
|
+
<div className="referred-users-empty py-4 text-center text-gray-500">No referred users yet</div>
|
|
409
441
|
)}
|
|
410
442
|
</div>
|
|
411
443
|
</div>
|
|
412
444
|
)}
|
|
413
445
|
|
|
414
446
|
{/* Additional Settings Sections */}
|
|
415
|
-
<div className="space-y-4">
|
|
416
|
-
<h3 className="text-b3-grey font-neue-montreal-semibold text-xl">
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
447
|
+
<div className="account-preferences-section space-y-4">
|
|
448
|
+
<h3 className="account-preferences-title text-b3-grey font-neue-montreal-semibold text-xl">
|
|
449
|
+
Account Preferences
|
|
450
|
+
</h3>
|
|
451
|
+
<div className="account-preferences-container bg-b3-line rounded-xl p-4">
|
|
452
|
+
<div className="account-preference-item flex items-center justify-between">
|
|
453
|
+
<div className="account-preference-info">
|
|
454
|
+
<div className="account-preference-title text-b3-grey font-neue-montreal-semibold">Dark Mode</div>
|
|
455
|
+
<div className="account-preference-description text-b3-foreground-muted font-neue-montreal-medium text-sm">
|
|
422
456
|
Switch between light and dark theme
|
|
423
457
|
</div>
|
|
424
458
|
</div>
|
|
425
459
|
{/* Theme toggle placeholder - can be implemented later */}
|
|
426
|
-
<div className="bg-b3-primary-wash h-6 w-12 rounded-full"></div>
|
|
460
|
+
<div className="account-preference-toggle theme-toggle-placeholder bg-b3-primary-wash h-6 w-12 rounded-full"></div>
|
|
427
461
|
</div>
|
|
428
462
|
</div>
|
|
429
463
|
</div>
|
|
430
464
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
465
|
+
<button
|
|
466
|
+
className="logout-button logout-section border-b3-line hover:bg-b3-line relative flex w-full items-center justify-center rounded-2xl border p-4 transition-colors"
|
|
467
|
+
onClick={onLogoutEnhanced}
|
|
468
|
+
>
|
|
469
|
+
<span className="logout-text font-neue-montreal-semibold text-b3-grey">Sign out</span>
|
|
470
|
+
<div className="logout-icon-container absolute right-4">
|
|
471
|
+
{logoutLoading ? (
|
|
472
|
+
<Loader2 className="logout-loading animate-spin" size={16} />
|
|
473
|
+
) : (
|
|
474
|
+
<SignOutIcon size={16} className="logout-icon text-b3-grey" />
|
|
475
|
+
)}
|
|
442
476
|
</div>
|
|
443
|
-
|
|
444
|
-
className="text-b3-grey hover:text-b3-grey/80 hover:bg-b3-line border-b3-line flex size-12 items-center justify-center rounded-full border"
|
|
445
|
-
onClick={onLogoutEnhanced}
|
|
446
|
-
>
|
|
447
|
-
{logoutLoading ? <Loader2 className="animate-spin" /> : <SignOutIcon size={16} className="text-b3-grey" />}
|
|
448
|
-
</button>
|
|
449
|
-
</div>
|
|
477
|
+
</button>
|
|
450
478
|
</div>
|
|
451
479
|
);
|
|
452
480
|
};
|
|
@@ -521,7 +549,7 @@ export function ManageAccount({
|
|
|
521
549
|
</div>
|
|
522
550
|
|
|
523
551
|
<TabsContentPrimitive value="overview" className="px-4 pb-4 pt-2">
|
|
524
|
-
<BalanceContent onLogout={onLogout} partnerId={partnerId} />
|
|
552
|
+
<BalanceContent onLogout={onLogout} partnerId={partnerId} showDeposit={showDeposit} showSwap={showSwap} />
|
|
525
553
|
</TabsContentPrimitive>
|
|
526
554
|
|
|
527
555
|
<TabsContentPrimitive value="tokens" className="px-4 pb-4 pt-2">
|
|
@@ -21,7 +21,7 @@ export type SignInWithB3Props = Omit<SignInWithB3ModalProps, "type" | "showBackB
|
|
|
21
21
|
export function SignInWithB3(props: SignInWithB3Props) {
|
|
22
22
|
const { setB3ModalOpen, setB3ModalContentType, setEcoSystemAccountAddress } = useModalStore();
|
|
23
23
|
const { account } = useB3();
|
|
24
|
-
const {
|
|
24
|
+
const { isAuthenticating, isAuthenticated } = useAuthentication(props.partnerId, props.loginWithSiwe);
|
|
25
25
|
const isMobile = useIsMobile();
|
|
26
26
|
|
|
27
27
|
useEffect(() => {
|
|
@@ -43,7 +43,7 @@ export function SignInWithB3(props: SignInWithB3Props) {
|
|
|
43
43
|
return <ManageAccountButton {...props} />;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
if (
|
|
46
|
+
if (isAuthenticating) {
|
|
47
47
|
return (
|
|
48
48
|
<StyleRoot>
|
|
49
49
|
<Button disabled style={{ backgroundColor: "#3368ef" }} className="flex items-center gap-2 text-white">
|
|
@@ -41,7 +41,6 @@ export function SignInWithB3Flow({
|
|
|
41
41
|
const { setB3ModalContentType, setB3ModalOpen, isOpen } = useModalStore();
|
|
42
42
|
const account = useActiveAccount();
|
|
43
43
|
const setIsAuthenticating = useAuthStore(state => state.setIsAuthenticating);
|
|
44
|
-
const setIsAuthenticatingV2 = useAuthStore(state => state.setIsAuthenticatingV2);
|
|
45
44
|
const isAuthenticating = useAuthStore(state => state.isAuthenticating);
|
|
46
45
|
const isConnected = useAuthStore(state => state.isConnected);
|
|
47
46
|
const setIsConnected = useAuthStore(state => state.setIsConnected);
|
|
@@ -199,7 +198,6 @@ export function SignInWithB3Flow({
|
|
|
199
198
|
if (loginWithSiwe) {
|
|
200
199
|
debug("setIsAuthenticating:true:1");
|
|
201
200
|
setIsAuthenticating(true);
|
|
202
|
-
setIsAuthenticatingV2(true);
|
|
203
201
|
const userAuth = await authenticate(account, partnerId);
|
|
204
202
|
setUser(userAuth.user);
|
|
205
203
|
}
|
|
@@ -207,18 +205,8 @@ export function SignInWithB3Flow({
|
|
|
207
205
|
onLoginSuccess?.(account);
|
|
208
206
|
debug("setIsAuthenticating:false:1");
|
|
209
207
|
setIsAuthenticating(false);
|
|
210
|
-
setIsAuthenticatingV2(false);
|
|
211
208
|
},
|
|
212
|
-
[
|
|
213
|
-
loginWithSiwe,
|
|
214
|
-
onLoginSuccess,
|
|
215
|
-
setIsAuthenticating,
|
|
216
|
-
authenticate,
|
|
217
|
-
partnerId,
|
|
218
|
-
setUser,
|
|
219
|
-
setIsConnected,
|
|
220
|
-
setIsAuthenticatingV2,
|
|
221
|
-
],
|
|
209
|
+
[loginWithSiwe, onLoginSuccess, authenticate, partnerId, setUser, setIsConnected, setIsAuthenticating],
|
|
222
210
|
);
|
|
223
211
|
|
|
224
212
|
useEffect(() => {
|
|
@@ -21,7 +21,6 @@ interface SignInWithB3PrivyProps {
|
|
|
21
21
|
export function SignInWithB3Privy({ onSuccess, onError, partnerId, chain }: SignInWithB3PrivyProps) {
|
|
22
22
|
const { isLoading, connectTw, fullToken } = useHandleConnectWithPrivy(partnerId, chain, onSuccess);
|
|
23
23
|
const setIsAuthenticating = useAuthStore(state => state.setIsAuthenticating);
|
|
24
|
-
const setIsAuthenticatingV2 = useAuthStore(state => state.setIsAuthenticatingV2);
|
|
25
24
|
const setIsAuthenticated = useAuthStore(state => state.setIsAuthenticated);
|
|
26
25
|
const { logout } = useAuthentication(partnerId);
|
|
27
26
|
|
|
@@ -49,11 +48,10 @@ export function SignInWithB3Privy({ onSuccess, onError, partnerId, chain }: Sign
|
|
|
49
48
|
} finally {
|
|
50
49
|
debug("setIsAuthenticating:false:7");
|
|
51
50
|
setIsAuthenticating(false);
|
|
52
|
-
setIsAuthenticatingV2(false);
|
|
53
51
|
}
|
|
54
52
|
}
|
|
55
53
|
autoConnect();
|
|
56
|
-
}, [connectTw, onSuccess, onError,
|
|
54
|
+
}, [connectTw, onSuccess, onError, setIsAuthenticated, logout, setIsAuthenticating]);
|
|
57
55
|
|
|
58
56
|
// Currently we auto login, so we can show loading immediately and the onSuccess will proceed to the next modal
|
|
59
57
|
return (
|
|
@@ -63,7 +63,6 @@ export function LoginStep({ onSuccess, onError, partnerId, chain }: LoginStepPro
|
|
|
63
63
|
|
|
64
64
|
const { theme } = useB3();
|
|
65
65
|
const setIsAuthenticating = useAuthStore(state => state.setIsAuthenticating);
|
|
66
|
-
const setIsAuthenticatingV2 = useAuthStore(state => state.setIsAuthenticatingV2);
|
|
67
66
|
const setIsAuthenticated = useAuthStore(state => state.setIsAuthenticated);
|
|
68
67
|
const { logout } = useAuthentication(partnerId);
|
|
69
68
|
|
|
@@ -118,7 +117,6 @@ export function LoginStep({ onSuccess, onError, partnerId, chain }: LoginStepPro
|
|
|
118
117
|
onConnect={async wallet => {
|
|
119
118
|
try {
|
|
120
119
|
setIsAuthenticating(true);
|
|
121
|
-
setIsAuthenticatingV2(true);
|
|
122
120
|
debug("setIsAuthenticating:true:6");
|
|
123
121
|
|
|
124
122
|
const account = wallet.getAccount();
|
|
@@ -135,7 +133,6 @@ export function LoginStep({ onSuccess, onError, partnerId, chain }: LoginStepPro
|
|
|
135
133
|
} finally {
|
|
136
134
|
debug("setIsAuthenticating:false:6");
|
|
137
135
|
setIsAuthenticating(false);
|
|
138
|
-
setIsAuthenticatingV2(false);
|
|
139
136
|
}
|
|
140
137
|
}}
|
|
141
138
|
/>
|
|
@@ -40,7 +40,6 @@ export function LoginStepCustom({
|
|
|
40
40
|
const [showAllWallets, setShowAllWallets] = useState(false);
|
|
41
41
|
const { connect } = useConnect(partnerId, chain);
|
|
42
42
|
const setIsAuthenticating = useAuthStore(state => state.setIsAuthenticating);
|
|
43
|
-
const setIsAuthenticatingV2 = useAuthStore(state => state.setIsAuthenticatingV2);
|
|
44
43
|
const setIsAuthenticated = useAuthStore(state => state.setIsAuthenticated);
|
|
45
44
|
const { logout } = useAuthentication(partnerId);
|
|
46
45
|
const { connect: connectTW } = useConnectTW();
|
|
@@ -56,7 +55,6 @@ export function LoginStepCustom({
|
|
|
56
55
|
setIsLoading(true);
|
|
57
56
|
debug("setIsAuthenticating:true:3");
|
|
58
57
|
setIsAuthenticating(true);
|
|
59
|
-
setIsAuthenticatingV2(true);
|
|
60
58
|
const options = getConnectOptionsFromStrategy(strategy);
|
|
61
59
|
let connectResult: Wallet | null;
|
|
62
60
|
|
|
@@ -90,7 +88,6 @@ export function LoginStepCustom({
|
|
|
90
88
|
setIsLoading(false);
|
|
91
89
|
debug("setIsAuthenticating:false:3");
|
|
92
90
|
setIsAuthenticating(false);
|
|
93
|
-
setIsAuthenticatingV2(false);
|
|
94
91
|
}
|
|
95
92
|
};
|
|
96
93
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
export interface AppleIconProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: React.CSSProperties;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function AppleIcon({ className, size = 24, color = "currentColor", style }: AppleIconProps) {
|
|
11
|
+
return (
|
|
12
|
+
<svg
|
|
13
|
+
width={size}
|
|
14
|
+
height={size}
|
|
15
|
+
viewBox="0 0 41.5 51"
|
|
16
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
17
|
+
className={className}
|
|
18
|
+
style={style}
|
|
19
|
+
>
|
|
20
|
+
<g>
|
|
21
|
+
<path
|
|
22
|
+
fill={color}
|
|
23
|
+
d="M40.2,17.4c-3.4,2.1-5.5,5.7-5.5,9.7c0,4.5,2.7,8.6,6.8,10.3c-0.8,2.6-2,5-3.5,7.2c-2.2,3.1-4.5,6.3-7.9,6.3s-4.4-2-8.4-2
|
|
24
|
+
c-3.9,0-5.3,2.1-8.5,2.1s-5.4-2.9-7.9-6.5C2,39.5,0.1,33.7,0,27.6c0-9.9,6.4-15.2,12.8-15.2c3.4,0,6.2,2.2,8.3,2.2
|
|
25
|
+
c2,0,5.2-2.3,9-2.3C34.1,12.2,37.9,14.1,40.2,17.4z M28.3,8.1C30,6.1,30.9,3.6,31,1c0-0.3,0-0.7-0.1-1c-2.9,0.3-5.6,1.7-7.5,3.9
|
|
26
|
+
c-1.7,1.9-2.7,4.3-2.8,6.9c0,0.3,0,0.6,0.1,0.9c0.2,0,0.5,0.1,0.7,0.1C24.1,11.6,26.6,10.2,28.3,8.1z"
|
|
27
|
+
/>
|
|
28
|
+
</g>
|
|
29
|
+
</svg>
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export default AppleIcon;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
export interface DiscordIconProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: React.CSSProperties;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function DiscordIcon({ className, size = 24, color = "#5865F2", style }: DiscordIconProps) {
|
|
11
|
+
return (
|
|
12
|
+
<svg
|
|
13
|
+
width={size}
|
|
14
|
+
height={size}
|
|
15
|
+
viewBox="0 -28.5 256 256"
|
|
16
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
17
|
+
className={className}
|
|
18
|
+
style={style}
|
|
19
|
+
preserveAspectRatio="xMidYMid"
|
|
20
|
+
>
|
|
21
|
+
<g>
|
|
22
|
+
<path
|
|
23
|
+
d="M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z"
|
|
24
|
+
fill={color}
|
|
25
|
+
fillRule="nonzero"
|
|
26
|
+
/>
|
|
27
|
+
</g>
|
|
28
|
+
</svg>
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export default DiscordIcon;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
export interface FarcasterIconProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: React.CSSProperties;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function FarcasterIcon({ className, size = 24, color = "#855DCD", style }: FarcasterIconProps) {
|
|
11
|
+
return (
|
|
12
|
+
<svg
|
|
13
|
+
width={size}
|
|
14
|
+
height={size}
|
|
15
|
+
viewBox="0 0 1000 1000"
|
|
16
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
17
|
+
className={className}
|
|
18
|
+
style={style}
|
|
19
|
+
>
|
|
20
|
+
<rect width="1000" height="1000" rx="200" fill={color} />
|
|
21
|
+
<path
|
|
22
|
+
d="M257.778 155.556H742.222V844.444H671.111V528.889H670.414C662.554 441.677 589.258 373.333 500 373.333C410.742 373.333 337.446 441.677 329.586 528.889H328.889V844.444H257.778V155.556Z"
|
|
23
|
+
fill="white"
|
|
24
|
+
/>
|
|
25
|
+
<path
|
|
26
|
+
d="M128.889 253.333L157.778 351.111H182.222V746.667C169.949 746.667 160 756.616 160 768.889V795.556H155.556C143.283 795.556 133.333 805.505 133.333 817.778V844.444H382.222V817.778C382.222 805.505 372.273 795.556 360 795.556H355.556V768.889C355.556 756.616 345.606 746.667 333.333 746.667H306.667V253.333H128.889Z"
|
|
27
|
+
fill="white"
|
|
28
|
+
/>
|
|
29
|
+
<path
|
|
30
|
+
d="M675.556 746.667C663.283 746.667 653.333 756.616 653.333 768.889V795.556H648.889C636.616 795.556 626.667 805.505 626.667 817.778V844.444H875.556V817.778C875.556 805.505 865.606 795.556 853.333 795.556H848.889V768.889C848.889 756.616 838.94 746.667 826.667 746.667V351.111H851.111L880 253.333H702.222V746.667H675.556Z"
|
|
31
|
+
fill="white"
|
|
32
|
+
/>
|
|
33
|
+
</svg>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export default FarcasterIcon;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
export interface GoogleIconProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
size?: number;
|
|
6
|
+
style?: React.CSSProperties;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function GoogleIcon({ className, size = 24, style }: GoogleIconProps) {
|
|
10
|
+
return (
|
|
11
|
+
<svg
|
|
12
|
+
width={size}
|
|
13
|
+
height={size}
|
|
14
|
+
viewBox="0 0 48 48"
|
|
15
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
16
|
+
className={className}
|
|
17
|
+
style={style}
|
|
18
|
+
>
|
|
19
|
+
<path
|
|
20
|
+
fill="#EA4335"
|
|
21
|
+
d="M24 9.5c3.54 0 6.71 1.22 9.21 3.6l6.85-6.85C35.9 2.38 30.47 0 24 0 14.62 0 6.51 5.38 2.56 13.22l7.98 6.19C12.43 13.72 17.74 9.5 24 9.5z"
|
|
22
|
+
/>
|
|
23
|
+
<path
|
|
24
|
+
fill="#4285F4"
|
|
25
|
+
d="M46.98 24.55c0-1.57-.15-3.09-.38-4.55H24v9.02h12.94c-.58 2.96-2.26 5.48-4.78 7.18l7.73 6c4.51-4.18 7.09-10.36 7.09-17.65z"
|
|
26
|
+
/>
|
|
27
|
+
<path
|
|
28
|
+
fill="#FBBC05"
|
|
29
|
+
d="M10.53 28.59c-.48-1.45-.76-2.99-.76-4.59s.27-3.14.76-4.59l-7.98-6.19C.92 16.46 0 20.12 0 24c0 3.88.92 7.54 2.56 10.78l7.97-6.19z"
|
|
30
|
+
/>
|
|
31
|
+
<path
|
|
32
|
+
fill="#34A853"
|
|
33
|
+
d="M24 48c6.48 0 11.93-2.13 15.89-5.81l-7.73-6c-2.15 1.45-4.92 2.3-8.16 2.3-6.26 0-11.57-4.22-13.47-9.91l-7.98 6.19C6.51 42.62 14.62 48 24 48z"
|
|
34
|
+
/>
|
|
35
|
+
<path fill="none" d="M0 0h48v48H0z" />
|
|
36
|
+
</svg>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export default GoogleIcon;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
export interface XIconProps {
|
|
4
|
+
className?: string;
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: React.CSSProperties;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function XIcon({ className, size = 24, color = "currentColor", style }: XIconProps) {
|
|
11
|
+
return (
|
|
12
|
+
<svg
|
|
13
|
+
width={size}
|
|
14
|
+
height={size}
|
|
15
|
+
viewBox="0 0 300 300.251"
|
|
16
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
17
|
+
className={className}
|
|
18
|
+
style={style}
|
|
19
|
+
>
|
|
20
|
+
<path
|
|
21
|
+
d="M178.57 127.15 290.27 0h-26.46l-97.03 110.38L89.34 0H0l117.13 166.93L0 300.25h26.46l102.4-116.59 81.8 116.59h89.34M36.01 19.54H76.66l187.13 262.13h-40.66"
|
|
22
|
+
fill={color}
|
|
23
|
+
/>
|
|
24
|
+
</svg>
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export default XIcon;
|