@embarkai/ui-kit 0.6.10 → 0.6.12
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/iframe/index.html +1 -1
- package/dist/iframe/main.js +2 -2
- package/dist/index.cjs +1222 -552
- package/dist/index.d.cts +198 -1
- package/dist/index.d.ts +198 -1
- package/dist/index.js +1173 -493
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -333,7 +333,7 @@ var import_auth, UI_KIT_VERSION;
|
|
|
333
333
|
var init_sdk_version = __esm({
|
|
334
334
|
"src/internal/lib/sdk-version.ts"() {
|
|
335
335
|
import_auth = require("@embarkai/core/auth");
|
|
336
|
-
UI_KIT_VERSION = "0.6.
|
|
336
|
+
UI_KIT_VERSION = "0.6.12";
|
|
337
337
|
if (UI_KIT_VERSION) (0, import_auth.setSdkVersion)(UI_KIT_VERSION);
|
|
338
338
|
}
|
|
339
339
|
});
|
|
@@ -5589,7 +5589,7 @@ function Fallback() {
|
|
|
5589
5589
|
className: cn(
|
|
5590
5590
|
"embarkai-ui-scope",
|
|
5591
5591
|
"fixed top-0 left-0",
|
|
5592
|
-
"w-
|
|
5592
|
+
"w-[100dvw] h-[100dvh]",
|
|
5593
5593
|
"flex flex-col items-center justify-center"
|
|
5594
5594
|
),
|
|
5595
5595
|
children: [
|
|
@@ -5731,7 +5731,7 @@ var init_useLayoutDataStore = __esm({
|
|
|
5731
5731
|
init_constants();
|
|
5732
5732
|
PageKey = /* @__PURE__ */ ((PageKey2) => {
|
|
5733
5733
|
PageKey2["AUTH"] = "auth";
|
|
5734
|
-
PageKey2["
|
|
5734
|
+
PageKey2["USER_SECURITY_ACTIVITY"] = "user-security-activity";
|
|
5735
5735
|
PageKey2["LANGUAGES"] = "languages";
|
|
5736
5736
|
PageKey2["MAIN_MENU"] = "main-menu";
|
|
5737
5737
|
PageKey2["ACTIVITY_LOG"] = "activity-log";
|
|
@@ -10137,6 +10137,11 @@ function useAutoConnect() {
|
|
|
10137
10137
|
if (!hasHydrated) return;
|
|
10138
10138
|
if (autoConnectAttemptedRef.current) return;
|
|
10139
10139
|
setIsLoading(true);
|
|
10140
|
+
const startedAt = Date.now();
|
|
10141
|
+
const run = (attempt) => tryAutoConnect(attempt).catch((error) => {
|
|
10142
|
+
console.warn("[UI-KIT][AutoConnect] Auto-connect failed:", error);
|
|
10143
|
+
setIsLoading(false);
|
|
10144
|
+
});
|
|
10140
10145
|
const tryAutoConnect = async (attempt) => {
|
|
10141
10146
|
console.log("[AUTOCONNECT] attempt", attempt);
|
|
10142
10147
|
if (address || session) {
|
|
@@ -10154,9 +10159,11 @@ function useAutoConnect() {
|
|
|
10154
10159
|
} catch (iframeError) {
|
|
10155
10160
|
console.error("[UI-KIT][AutoConnect] Failed to initialize iframe:", iframeError);
|
|
10156
10161
|
setIsIframeReady(false);
|
|
10157
|
-
if (
|
|
10158
|
-
setTimeout(() =>
|
|
10162
|
+
if (Date.now() - startedAt < IFRAME_RETRY_DEADLINE_MS) {
|
|
10163
|
+
setTimeout(() => run(attempt + 1), 500);
|
|
10164
|
+
return;
|
|
10159
10165
|
}
|
|
10166
|
+
setIsLoading(false);
|
|
10160
10167
|
return;
|
|
10161
10168
|
}
|
|
10162
10169
|
const { ensureValidToken: ensureValidToken2, restoreDappSessionFromIframe: restoreDappSessionFromIframe2 } = await Promise.resolve().then(() => (init_auth(), auth_exports));
|
|
@@ -10248,11 +10255,11 @@ function useAutoConnect() {
|
|
|
10248
10255
|
}
|
|
10249
10256
|
};
|
|
10250
10257
|
autoConnectAttemptedRef.current = true;
|
|
10251
|
-
|
|
10258
|
+
run(0);
|
|
10252
10259
|
}, [hasHydrated]);
|
|
10253
10260
|
return null;
|
|
10254
10261
|
}
|
|
10255
|
-
var import_react11;
|
|
10262
|
+
var import_react11, IFRAME_RETRY_DEADLINE_MS;
|
|
10256
10263
|
var init_useAutoConnect = __esm({
|
|
10257
10264
|
"src/internal/hooks/useAutoConnect.ts"() {
|
|
10258
10265
|
init_ProviderContext();
|
|
@@ -10260,6 +10267,7 @@ var init_useAutoConnect = __esm({
|
|
|
10260
10267
|
import_react11 = require("react");
|
|
10261
10268
|
init_post_login_backup();
|
|
10262
10269
|
init_useLayoutDataStore();
|
|
10270
|
+
IFRAME_RETRY_DEADLINE_MS = 1e4;
|
|
10263
10271
|
}
|
|
10264
10272
|
});
|
|
10265
10273
|
|
|
@@ -10412,6 +10420,7 @@ var init_en = __esm({
|
|
|
10412
10420
|
passkey: "Passkey",
|
|
10413
10421
|
standard: "Standard",
|
|
10414
10422
|
advanced: "Advanced",
|
|
10423
|
+
extra: "Extra",
|
|
10415
10424
|
next: "Next",
|
|
10416
10425
|
prev: "Prev",
|
|
10417
10426
|
page: "Page",
|
|
@@ -10533,9 +10542,72 @@ var init_en = __esm({
|
|
|
10533
10542
|
loadFailed: "Could not load your activity. Check your connection and try again."
|
|
10534
10543
|
},
|
|
10535
10544
|
userActivityMenu: {
|
|
10536
|
-
title: "Activity",
|
|
10537
|
-
description: "
|
|
10545
|
+
title: "Security Activity",
|
|
10546
|
+
description: "Recent security activity",
|
|
10538
10547
|
noActivities: "No recent activity",
|
|
10548
|
+
loadError: "Could not load activity",
|
|
10549
|
+
filters: {
|
|
10550
|
+
title: "Trace your security activity",
|
|
10551
|
+
reset: "Reset",
|
|
10552
|
+
clear: "Clear",
|
|
10553
|
+
apply: "Apply",
|
|
10554
|
+
eventTypes: "Event types",
|
|
10555
|
+
eventTypesHint: "Nothing selected shows all events",
|
|
10556
|
+
period: "Period",
|
|
10557
|
+
from: "From",
|
|
10558
|
+
to: "To",
|
|
10559
|
+
noResults: "No activity matches the selected filters",
|
|
10560
|
+
groups: {
|
|
10561
|
+
auth: "Login",
|
|
10562
|
+
backup: "Backup",
|
|
10563
|
+
account: "Login methods",
|
|
10564
|
+
device: "Devices",
|
|
10565
|
+
wallet: "Wallet",
|
|
10566
|
+
policy: "Policy",
|
|
10567
|
+
kyc: "KYC"
|
|
10568
|
+
},
|
|
10569
|
+
periods: {
|
|
10570
|
+
all: "All time",
|
|
10571
|
+
last24h: "Last 24 hours",
|
|
10572
|
+
last7d: "Last 7 days",
|
|
10573
|
+
last30d: "Last 30 days",
|
|
10574
|
+
last90d: "Last 90 days",
|
|
10575
|
+
last365d: "Last year",
|
|
10576
|
+
custom: "Custom"
|
|
10577
|
+
},
|
|
10578
|
+
errors: {
|
|
10579
|
+
rangeOrder: "The start date must not be after the end date",
|
|
10580
|
+
rangeTooLong: "The period must not exceed 365 days"
|
|
10581
|
+
}
|
|
10582
|
+
},
|
|
10583
|
+
newAccount: "New account",
|
|
10584
|
+
events: {
|
|
10585
|
+
authLogin: "Signed in",
|
|
10586
|
+
authLoginFailed: "Failed sign-in attempt",
|
|
10587
|
+
accountProviderLinked: "Login method connected",
|
|
10588
|
+
accountProviderUnlinked: "Login method disconnected",
|
|
10589
|
+
devicePaired: "Device paired",
|
|
10590
|
+
deviceUnlinked: "Device removed",
|
|
10591
|
+
walletCreated: "Wallet created",
|
|
10592
|
+
walletSignLocked: "Wallet signing locked",
|
|
10593
|
+
policyChanged: "Policy changed",
|
|
10594
|
+
kycStatusChanged: "KYC status changed",
|
|
10595
|
+
backupCreated: "Backup created",
|
|
10596
|
+
backupRestored: "Backup restored",
|
|
10597
|
+
backupRewrapped: "Backup protection updated",
|
|
10598
|
+
backupDeleted: "Backup deleted",
|
|
10599
|
+
unknown: "Account activity"
|
|
10600
|
+
},
|
|
10601
|
+
details: {
|
|
10602
|
+
provider: "Provider",
|
|
10603
|
+
reason: "Reason",
|
|
10604
|
+
identity: "Account",
|
|
10605
|
+
deviceType: "Device type",
|
|
10606
|
+
policy: "Policy",
|
|
10607
|
+
action: "Action",
|
|
10608
|
+
status: "Status",
|
|
10609
|
+
method: "Method"
|
|
10610
|
+
},
|
|
10539
10611
|
onboarding: {
|
|
10540
10612
|
title: "Your recent activity",
|
|
10541
10613
|
description: "Activity log of your recent actions like login, profile connection/disconnection, backup operations etc."
|
|
@@ -10974,7 +11046,7 @@ var init_en = __esm({
|
|
|
10974
11046
|
},
|
|
10975
11047
|
title: "Account Backup",
|
|
10976
11048
|
backupStatus: "Current keyshare backup level (embarkAI vault)",
|
|
10977
|
-
exploreBackupMethods: "
|
|
11049
|
+
exploreBackupMethods: "Keyshare Backup options",
|
|
10978
11050
|
encryptionMethod: "Encryption Method",
|
|
10979
11051
|
encryptionMethodExplanation: "Select the encryption method for your backup. Use Passkey to have full control over your account security without relying on a password.",
|
|
10980
11052
|
passwordMsg: "Secure your account by strong PASSWORD",
|
|
@@ -11014,8 +11086,9 @@ var init_en = __esm({
|
|
|
11014
11086
|
advanced: "Advanced",
|
|
11015
11087
|
secured: "Secured"
|
|
11016
11088
|
},
|
|
11017
|
-
vault: "
|
|
11018
|
-
|
|
11089
|
+
vault: "Vault",
|
|
11090
|
+
advancedVault: "Advanced",
|
|
11091
|
+
securedVault: "Secured",
|
|
11019
11092
|
vaultExplanation: "Store a backup into embarkAI vault to ensure recoverability of your wallet.",
|
|
11020
11093
|
vaultMaxProtection: "Your embartkAI wallet is secured",
|
|
11021
11094
|
recoveryProviders: {
|
|
@@ -11134,6 +11207,7 @@ var init_ru = __esm({
|
|
|
11134
11207
|
passkey: "Passkey",
|
|
11135
11208
|
standard: "\u0421\u0442\u0430\u043D\u0434\u0430\u0440\u0442\u043D\u044B\u0439",
|
|
11136
11209
|
advanced: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439",
|
|
11210
|
+
extra: "\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E",
|
|
11137
11211
|
next: "\u0421\u043B\u0435\u0434",
|
|
11138
11212
|
prev: "\u041F\u0440\u0435\u0434",
|
|
11139
11213
|
page: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430",
|
|
@@ -11255,9 +11329,72 @@ var init_ru = __esm({
|
|
|
11255
11329
|
loadFailed: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C. \u041F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0441\u043E\u0435\u0434\u0438\u043D\u0435\u043D\u0438\u0435 \u0438 \u043F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0441\u043D\u043E\u0432\u0430."
|
|
11256
11330
|
},
|
|
11257
11331
|
userActivityMenu: {
|
|
11258
|
-
title: "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C",
|
|
11259
|
-
description: "\
|
|
11332
|
+
title: "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438",
|
|
11333
|
+
description: "\u041D\u0435\u0434\u0430\u0432\u043D\u044F\u044F \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438",
|
|
11260
11334
|
noActivities: "\u041D\u0435\u0442 \u043D\u0435\u0434\u0430\u0432\u043D\u0435\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438",
|
|
11335
|
+
loadError: "\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C",
|
|
11336
|
+
filters: {
|
|
11337
|
+
title: "\u041E\u0442\u0441\u043B\u0435\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438",
|
|
11338
|
+
reset: "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C",
|
|
11339
|
+
clear: "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C",
|
|
11340
|
+
apply: "\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C",
|
|
11341
|
+
eventTypes: "\u0422\u0438\u043F\u044B \u0441\u043E\u0431\u044B\u0442\u0438\u0439",
|
|
11342
|
+
eventTypesHint: "\u0415\u0441\u043B\u0438 \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E, \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u0432\u0441\u0435 \u0441\u043E\u0431\u044B\u0442\u0438\u044F",
|
|
11343
|
+
period: "\u041F\u0435\u0440\u0438\u043E\u0434",
|
|
11344
|
+
from: "\u0421",
|
|
11345
|
+
to: "\u041F\u043E",
|
|
11346
|
+
noResults: "\u041D\u0435\u0442 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438, \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0439 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u043C \u0444\u0438\u043B\u044C\u0442\u0440\u0430\u043C",
|
|
11347
|
+
groups: {
|
|
11348
|
+
auth: "\u0412\u0445\u043E\u0434",
|
|
11349
|
+
backup: "\u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F",
|
|
11350
|
+
account: "\u0421\u043F\u043E\u0441\u043E\u0431\u044B \u0432\u0445\u043E\u0434\u0430",
|
|
11351
|
+
device: "\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430",
|
|
11352
|
+
wallet: "\u041A\u043E\u0448\u0435\u043B\u0451\u043A",
|
|
11353
|
+
policy: "\u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430",
|
|
11354
|
+
kyc: "KYC"
|
|
11355
|
+
},
|
|
11356
|
+
periods: {
|
|
11357
|
+
all: "\u0417\u0430 \u0432\u0441\u0451 \u0432\u0440\u0435\u043C\u044F",
|
|
11358
|
+
last24h: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 24 \u0447\u0430\u0441\u0430",
|
|
11359
|
+
last7d: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 7 \u0434\u043D\u0435\u0439",
|
|
11360
|
+
last30d: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 30 \u0434\u043D\u0435\u0439",
|
|
11361
|
+
last90d: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0435 90 \u0434\u043D\u0435\u0439",
|
|
11362
|
+
last365d: "\u041F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u0433\u043E\u0434",
|
|
11363
|
+
custom: "\u0421\u0432\u043E\u0439 \u043F\u0435\u0440\u0438\u043E\u0434"
|
|
11364
|
+
},
|
|
11365
|
+
errors: {
|
|
11366
|
+
rangeOrder: "\u0414\u0430\u0442\u0430 \u043D\u0430\u0447\u0430\u043B\u0430 \u043D\u0435 \u0434\u043E\u043B\u0436\u043D\u0430 \u0431\u044B\u0442\u044C \u043F\u043E\u0437\u0436\u0435 \u0434\u0430\u0442\u044B \u043E\u043A\u043E\u043D\u0447\u0430\u043D\u0438\u044F",
|
|
11367
|
+
rangeTooLong: "\u041F\u0435\u0440\u0438\u043E\u0434 \u043D\u0435 \u0434\u043E\u043B\u0436\u0435\u043D \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0442\u044C 365 \u0434\u043D\u0435\u0439"
|
|
11368
|
+
}
|
|
11369
|
+
},
|
|
11370
|
+
newAccount: "\u041D\u043E\u0432\u044B\u0439 \u0430\u043A\u043A\u0430\u0443\u043D\u0442",
|
|
11371
|
+
events: {
|
|
11372
|
+
authLogin: "\u0412\u0445\u043E\u0434 \u0432\u044B\u043F\u043E\u043B\u043D\u0435\u043D",
|
|
11373
|
+
authLoginFailed: "\u041D\u0435\u0443\u0434\u0430\u0447\u043D\u0430\u044F \u043F\u043E\u043F\u044B\u0442\u043A\u0430 \u0432\u0445\u043E\u0434\u0430",
|
|
11374
|
+
accountProviderLinked: "\u0421\u043F\u043E\u0441\u043E\u0431 \u0432\u0445\u043E\u0434\u0430 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0451\u043D",
|
|
11375
|
+
accountProviderUnlinked: "\u0421\u043F\u043E\u0441\u043E\u0431 \u0432\u0445\u043E\u0434\u0430 \u043E\u0442\u043A\u043B\u044E\u0447\u0451\u043D",
|
|
11376
|
+
devicePaired: "\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u043F\u0440\u0438\u0432\u044F\u0437\u0430\u043D\u043E",
|
|
11377
|
+
deviceUnlinked: "\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0443\u0434\u0430\u043B\u0435\u043D\u043E",
|
|
11378
|
+
walletCreated: "\u041A\u043E\u0448\u0435\u043B\u0451\u043A \u0441\u043E\u0437\u0434\u0430\u043D",
|
|
11379
|
+
walletSignLocked: "\u041F\u043E\u0434\u043F\u0438\u0441\u044C \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430 \u0437\u0430\u0431\u043B\u043E\u043A\u0438\u0440\u043E\u0432\u0430\u043D\u0430",
|
|
11380
|
+
policyChanged: "\u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430 \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0430",
|
|
11381
|
+
kycStatusChanged: "\u0421\u0442\u0430\u0442\u0443\u0441 KYC \u0438\u0437\u043C\u0435\u043D\u0451\u043D",
|
|
11382
|
+
backupCreated: "\u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0430",
|
|
11383
|
+
backupRestored: "\u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0430",
|
|
11384
|
+
backupRewrapped: "\u0417\u0430\u0449\u0438\u0442\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u043E\u0439 \u043A\u043E\u043F\u0438\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430",
|
|
11385
|
+
backupDeleted: "\u0420\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F \u0443\u0434\u0430\u043B\u0435\u043D\u0430",
|
|
11386
|
+
unknown: "\u0410\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u044C \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430"
|
|
11387
|
+
},
|
|
11388
|
+
details: {
|
|
11389
|
+
provider: "\u041F\u0440\u043E\u0432\u0430\u0439\u0434\u0435\u0440",
|
|
11390
|
+
reason: "\u041F\u0440\u0438\u0447\u0438\u043D\u0430",
|
|
11391
|
+
identity: "\u0410\u043A\u043A\u0430\u0443\u043D\u0442",
|
|
11392
|
+
deviceType: "\u0422\u0438\u043F \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430",
|
|
11393
|
+
policy: "\u041F\u043E\u043B\u0438\u0442\u0438\u043A\u0430",
|
|
11394
|
+
action: "\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435",
|
|
11395
|
+
status: "\u0421\u0442\u0430\u0442\u0443\u0441",
|
|
11396
|
+
method: "\u041C\u0435\u0442\u043E\u0434"
|
|
11397
|
+
},
|
|
11261
11398
|
onboarding: {
|
|
11262
11399
|
title: "\u041C\u0435\u043D\u044E \u043D\u0435\u0434\u0430\u0432\u043D\u0435\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u043E\u0441\u0442\u0438",
|
|
11263
11400
|
description: "\u0416\u0443\u0440\u043D\u0430\u043B \u0432\u0430\u0448\u0438\u0445 \u043D\u0435\u0434\u0430\u0432\u043D\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439: \u0432\u0445\u043E\u0434, \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435/\u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0444\u0438\u043B\u044F, \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u043E\u0433\u043E \u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0438 \u0442. \u0434."
|
|
@@ -11696,7 +11833,7 @@ var init_ru = __esm({
|
|
|
11696
11833
|
},
|
|
11697
11834
|
title: "\u0411\u0435\u043A\u0430\u043F \u0410\u043A\u043A\u0430\u0443\u043D\u0442\u0430",
|
|
11698
11835
|
backupStatus: "\u0422\u0435\u043A\u0443\u0449\u0438\u0439 \u0443\u0440\u043E\u0432\u0435\u043D\u044C \u0431\u044D\u043A\u0430\u043F\u0430 Keyshare (\u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 embarkAI)",
|
|
11699
|
-
exploreBackupMethods: "\
|
|
11836
|
+
exploreBackupMethods: "\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B \u0431\u044D\u043A\u0430\u043F\u0430 Keyshare",
|
|
11700
11837
|
encryptionMethod: "\u041C\u0435\u0442\u043E\u0434 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F",
|
|
11701
11838
|
encryptionMethodExplanation: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043C\u0435\u0442\u043E\u0434 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F \u0431\u044D\u043A\u0430\u043F\u0430. \u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 Passkey, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u043B\u043D\u043E\u0441\u0442\u044C\u044E \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C \u0430\u043A\u043A\u0430\u0443\u043D\u0442\u0430 \u0431\u0435\u0437 \u043F\u0430\u0440\u043E\u043B\u044F.",
|
|
11702
11839
|
passwordMsg: "\u0417\u0430\u0449\u0438\u0442\u0438\u0442\u0435 \u0432\u0430\u0448 \u0430\u043A\u043A\u0430\u0443\u043D\u0442 \u043D\u0430\u0434\u0435\u0436\u043D\u044B\u043C \u041F\u0410\u0420\u041E\u041B\u0415\u041C",
|
|
@@ -11736,8 +11873,9 @@ var init_ru = __esm({
|
|
|
11736
11873
|
advanced: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439",
|
|
11737
11874
|
secured: "\u0417\u0430\u0449\u0438\u0449\u0451\u043D\u043D\u044B\u0439"
|
|
11738
11875
|
},
|
|
11739
|
-
vault: "\
|
|
11740
|
-
|
|
11876
|
+
vault: "\u0425\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435",
|
|
11877
|
+
advancedVault: "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u043D\u044B\u0439",
|
|
11878
|
+
securedVault: "\u0417\u0430\u0449\u0438\u0449\u0451\u043D\u043D\u044B\u0439",
|
|
11741
11879
|
vaultExplanation: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u0435 \u0431\u044D\u043A\u0430\u043F \u0432 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435 embarkAI, \u0447\u0442\u043E\u0431\u044B \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0438\u0442\u044C \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044C \u0432\u043E\u0441\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u0432\u0430\u0448\u0435\u0433\u043E \u043A\u043E\u0448\u0435\u043B\u044C\u043A\u0430.",
|
|
11742
11880
|
vaultMaxProtection: "\u0412\u0430\u0448 \u043A\u043E\u0448\u0435\u043B\u0451\u043A embarkAI \u0437\u0430\u0449\u0438\u0449\u0451\u043D",
|
|
11743
11881
|
recoveryProviders: {
|
|
@@ -11856,6 +11994,7 @@ var init_zh = __esm({
|
|
|
11856
11994
|
passkey: "\u5BC6\u7801\u5BC6\u94A5",
|
|
11857
11995
|
standard: "\u6807\u51C6",
|
|
11858
11996
|
advanced: "\u9AD8\u7EA7",
|
|
11997
|
+
extra: "\u66F4\u591A",
|
|
11859
11998
|
next: "\u4E0B\u4E00\u6B65",
|
|
11860
11999
|
prev: "\u4E0A\u4E00\u6B65",
|
|
11861
12000
|
page: "\u9875\u9762",
|
|
@@ -11977,9 +12116,72 @@ var init_zh = __esm({
|
|
|
11977
12116
|
loadFailed: "\u65E0\u6CD5\u52A0\u8F7D\u6D3B\u52A8\u8BB0\u5F55\u3002\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002"
|
|
11978
12117
|
},
|
|
11979
12118
|
userActivityMenu: {
|
|
11980
|
-
title: "\u6D3B\u52A8",
|
|
11981
|
-
description: "\
|
|
12119
|
+
title: "\u5B89\u5168\u6D3B\u52A8",
|
|
12120
|
+
description: "\u8FD1\u671F\u5B89\u5168\u6D3B\u52A8",
|
|
11982
12121
|
noActivities: "\u6682\u65E0\u6700\u8FD1\u6D3B\u52A8",
|
|
12122
|
+
loadError: "\u65E0\u6CD5\u52A0\u8F7D\u6D3B\u52A8",
|
|
12123
|
+
filters: {
|
|
12124
|
+
title: "\u8FFD\u8E2A\u60A8\u7684\u5B89\u5168\u6D3B\u52A8",
|
|
12125
|
+
reset: "\u91CD\u7F6E",
|
|
12126
|
+
clear: "\u6E05\u9664",
|
|
12127
|
+
apply: "\u5E94\u7528",
|
|
12128
|
+
eventTypes: "\u4E8B\u4EF6\u7C7B\u578B",
|
|
12129
|
+
eventTypesHint: "\u672A\u9009\u62E9\u4EFB\u4F55\u9879\u65F6\u663E\u793A\u6240\u6709\u4E8B\u4EF6",
|
|
12130
|
+
period: "\u65F6\u95F4\u8303\u56F4",
|
|
12131
|
+
from: "\u8D77\u59CB",
|
|
12132
|
+
to: "\u7ED3\u675F",
|
|
12133
|
+
noResults: "\u6CA1\u6709\u7B26\u5408\u6240\u9009\u7B5B\u9009\u6761\u4EF6\u7684\u6D3B\u52A8",
|
|
12134
|
+
groups: {
|
|
12135
|
+
auth: "\u767B\u5F55",
|
|
12136
|
+
backup: "\u5907\u4EFD",
|
|
12137
|
+
account: "\u767B\u5F55\u65B9\u5F0F",
|
|
12138
|
+
device: "\u8BBE\u5907",
|
|
12139
|
+
wallet: "\u94B1\u5305",
|
|
12140
|
+
policy: "\u7B56\u7565",
|
|
12141
|
+
kyc: "KYC"
|
|
12142
|
+
},
|
|
12143
|
+
periods: {
|
|
12144
|
+
all: "\u5168\u90E8\u65F6\u95F4",
|
|
12145
|
+
last24h: "\u8FC7\u53BB 24 \u5C0F\u65F6",
|
|
12146
|
+
last7d: "\u8FC7\u53BB 7 \u5929",
|
|
12147
|
+
last30d: "\u8FC7\u53BB 30 \u5929",
|
|
12148
|
+
last90d: "\u8FC7\u53BB 90 \u5929",
|
|
12149
|
+
last365d: "\u8FC7\u53BB\u4E00\u5E74",
|
|
12150
|
+
custom: "\u81EA\u5B9A\u4E49"
|
|
12151
|
+
},
|
|
12152
|
+
errors: {
|
|
12153
|
+
rangeOrder: "\u5F00\u59CB\u65E5\u671F\u4E0D\u80FD\u665A\u4E8E\u7ED3\u675F\u65E5\u671F",
|
|
12154
|
+
rangeTooLong: "\u65F6\u95F4\u8303\u56F4\u4E0D\u80FD\u8D85\u8FC7 365 \u5929"
|
|
12155
|
+
}
|
|
12156
|
+
},
|
|
12157
|
+
newAccount: "\u65B0\u8D26\u6237",
|
|
12158
|
+
events: {
|
|
12159
|
+
authLogin: "\u5DF2\u767B\u5F55",
|
|
12160
|
+
authLoginFailed: "\u767B\u5F55\u5C1D\u8BD5\u5931\u8D25",
|
|
12161
|
+
accountProviderLinked: "\u5DF2\u8FDE\u63A5\u767B\u5F55\u65B9\u5F0F",
|
|
12162
|
+
accountProviderUnlinked: "\u5DF2\u65AD\u5F00\u767B\u5F55\u65B9\u5F0F",
|
|
12163
|
+
devicePaired: "\u8BBE\u5907\u5DF2\u914D\u5BF9",
|
|
12164
|
+
deviceUnlinked: "\u8BBE\u5907\u5DF2\u79FB\u9664",
|
|
12165
|
+
walletCreated: "\u94B1\u5305\u5DF2\u521B\u5EFA",
|
|
12166
|
+
walletSignLocked: "\u94B1\u5305\u7B7E\u540D\u5DF2\u9501\u5B9A",
|
|
12167
|
+
policyChanged: "\u7B56\u7565\u5DF2\u66F4\u6539",
|
|
12168
|
+
kycStatusChanged: "KYC \u72B6\u6001\u5DF2\u66F4\u6539",
|
|
12169
|
+
backupCreated: "\u5907\u4EFD\u5DF2\u521B\u5EFA",
|
|
12170
|
+
backupRestored: "\u5907\u4EFD\u5DF2\u6062\u590D",
|
|
12171
|
+
backupRewrapped: "\u5907\u4EFD\u4FDD\u62A4\u5DF2\u66F4\u65B0",
|
|
12172
|
+
backupDeleted: "\u5907\u4EFD\u5DF2\u5220\u9664",
|
|
12173
|
+
unknown: "\u8D26\u6237\u6D3B\u52A8"
|
|
12174
|
+
},
|
|
12175
|
+
details: {
|
|
12176
|
+
provider: "\u63D0\u4F9B\u65B9",
|
|
12177
|
+
reason: "\u539F\u56E0",
|
|
12178
|
+
identity: "\u8D26\u6237",
|
|
12179
|
+
deviceType: "\u8BBE\u5907\u7C7B\u578B",
|
|
12180
|
+
policy: "\u7B56\u7565",
|
|
12181
|
+
action: "\u64CD\u4F5C",
|
|
12182
|
+
status: "\u72B6\u6001",
|
|
12183
|
+
method: "\u65B9\u5F0F"
|
|
12184
|
+
},
|
|
11983
12185
|
onboarding: {
|
|
11984
12186
|
title: "\u6700\u8FD1\u6D3B\u52A8\u83DC\u5355",
|
|
11985
12187
|
description: "\u60A8\u6700\u8FD1\u64CD\u4F5C\u7684\u6D3B\u52A8\u65E5\u5FD7\uFF0C\u5982\u767B\u5F55\u3001\u4E2A\u4EBA\u8D44\u6599\u8FDE\u63A5/\u65AD\u5F00\u3001\u5907\u4EFD\u64CD\u4F5C\u7B49\u3002"
|
|
@@ -12418,7 +12620,7 @@ var init_zh = __esm({
|
|
|
12418
12620
|
},
|
|
12419
12621
|
title: "\u8D26\u6237\u5907\u4EFD",
|
|
12420
12622
|
backupStatus: "embarkAI Vault \u4E2D\u5F53\u524D\u7684\u5BC6\u94A5\u5171\u4EAB\u5907\u4EFD\u7EA7\u522B",
|
|
12421
|
-
exploreBackupMethods: "\
|
|
12623
|
+
exploreBackupMethods: "\u5BC6\u94A5\u5171\u4EAB\u5907\u4EFD\u9009\u9879",
|
|
12422
12624
|
encryptionMethod: "\u52A0\u5BC6\u65B9\u5F0F",
|
|
12423
12625
|
encryptionMethodExplanation: "\u8BF7\u9009\u62E9\u5907\u4EFD\u7684\u52A0\u5BC6\u65B9\u5F0F\u3002\u4F7F\u7528 Passkey \u53EF\u5B8C\u5168\u638C\u63A7\u8D26\u6237\u5B89\u5168\uFF0C\u65E0\u9700\u4F9D\u8D56\u5BC6\u7801\u3002",
|
|
12424
12626
|
passwordMsg: "\u4F7F\u7528\u5F3A\u5BC6\u7801\u4FDD\u62A4\u60A8\u7684\u8D26\u6237\u3002",
|
|
@@ -12458,8 +12660,9 @@ var init_zh = __esm({
|
|
|
12458
12660
|
advanced: "\u9AD8\u7EA7",
|
|
12459
12661
|
secured: "\u5B89\u5168"
|
|
12460
12662
|
},
|
|
12461
|
-
vault: "Vault
|
|
12462
|
-
|
|
12663
|
+
vault: "Vault",
|
|
12664
|
+
advancedVault: "\u9AD8\u7EA7",
|
|
12665
|
+
securedVault: "\u5B89\u5168",
|
|
12463
12666
|
vaultExplanation: "\u5C06\u5907\u4EFD\u5B58\u50A8\u5230 embarkAI Vault\uFF0C\u4EE5\u786E\u4FDD\u60A8\u7684\u94B1\u5305\u53EF\u88AB\u6062\u590D\u3002",
|
|
12464
12667
|
vaultMaxProtection: "\u60A8\u7684 embarkAI \u94B1\u5305\u5DF2\u53D7\u5230\u4FDD\u62A4",
|
|
12465
12668
|
recoveryProviders: {
|
|
@@ -14154,7 +14357,7 @@ function Social(props) {
|
|
|
14154
14357
|
const isPasskey = !!config.current?.passkey?.enabled;
|
|
14155
14358
|
const isWallet = !!config.current?.wallet?.enabled && config.current?.wallet?.as === "social";
|
|
14156
14359
|
const PasskeyIcon = PROVIDERS_META.passkey.icon;
|
|
14157
|
-
const
|
|
14360
|
+
const WalletIcon2 = PROVIDERS_META.wallet.icon;
|
|
14158
14361
|
const walletButton = isWallet ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
14159
14362
|
Button,
|
|
14160
14363
|
{
|
|
@@ -14168,7 +14371,7 @@ function Social(props) {
|
|
|
14168
14371
|
},
|
|
14169
14372
|
disabled: isLoading,
|
|
14170
14373
|
title: t("passport:auth.wallet.label"),
|
|
14171
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
14374
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(WalletIcon2, { className: "w-5 h-5" })
|
|
14172
14375
|
}
|
|
14173
14376
|
) : null;
|
|
14174
14377
|
const passkeyButton = isPasskey ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
@@ -20723,7 +20926,7 @@ function ConnectExternalWalletMenu() {
|
|
|
20723
20926
|
(isLoadingWalletProviders ? [] : visibleConnectors).map((connector) => {
|
|
20724
20927
|
const isConnectingThis = isConnectingExternalWallet && //@ts-expect-error uid exists
|
|
20725
20928
|
pendingConnectVariables?.connector?.uid === connector.uid;
|
|
20726
|
-
const
|
|
20929
|
+
const WalletIcon2 = WALLET_ICONS[connector.id] || import_lucide_react33.Wallet2Icon;
|
|
20727
20930
|
return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
|
|
20728
20931
|
Button,
|
|
20729
20932
|
{
|
|
@@ -20763,7 +20966,7 @@ function ConnectExternalWalletMenu() {
|
|
|
20763
20966
|
}
|
|
20764
20967
|
},
|
|
20765
20968
|
children: [
|
|
20766
|
-
isConnectingThis ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "w-6 h-6 flex-none flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Loader, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
|
|
20969
|
+
isConnectingThis ? /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "w-6 h-6 flex-none flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Loader, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(WalletIcon2, { className: "w-6 h-6 flex-none" }),
|
|
20767
20970
|
/* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: connector.name })
|
|
20768
20971
|
]
|
|
20769
20972
|
},
|
|
@@ -21644,13 +21847,13 @@ function DeviceManageScreen() {
|
|
|
21644
21847
|
}, [screen]);
|
|
21645
21848
|
const handleBackup = (0, import_react55.useCallback)(async () => {
|
|
21646
21849
|
const guardian = guardianRef.current;
|
|
21647
|
-
const
|
|
21648
|
-
if (!guardian || !
|
|
21850
|
+
const iframe6 = getIframeManager();
|
|
21851
|
+
if (!guardian || !iframe6 || !userId) return;
|
|
21649
21852
|
setActionState({ action: "backup", substep: "working" });
|
|
21650
21853
|
setErrorMessage(null);
|
|
21651
21854
|
setWaitingConfirm(false);
|
|
21652
21855
|
try {
|
|
21653
|
-
await backupToGuardian(guardian, userId,
|
|
21856
|
+
await backupToGuardian(guardian, userId, iframe6, password);
|
|
21654
21857
|
setWaitingConfirm(false);
|
|
21655
21858
|
setStatusMessage("Keyshare backed up successfully!");
|
|
21656
21859
|
setActionState(null);
|
|
@@ -21668,15 +21871,15 @@ function DeviceManageScreen() {
|
|
|
21668
21871
|
}, [password, userId, refreshList]);
|
|
21669
21872
|
const handleOverwrite = (0, import_react55.useCallback)(async () => {
|
|
21670
21873
|
const guardian = guardianRef.current;
|
|
21671
|
-
const
|
|
21672
|
-
if (!guardian || !
|
|
21874
|
+
const iframe6 = getIframeManager();
|
|
21875
|
+
if (!guardian || !iframe6 || !userId) return;
|
|
21673
21876
|
setActionState({ action: "overwrite", substep: "working" });
|
|
21674
21877
|
setErrorMessage(null);
|
|
21675
21878
|
setWaitingConfirm(false);
|
|
21676
21879
|
try {
|
|
21677
21880
|
await deleteFromGuardian(guardian, userId);
|
|
21678
21881
|
setWaitingConfirm(false);
|
|
21679
|
-
await backupToGuardian(guardian, userId,
|
|
21882
|
+
await backupToGuardian(guardian, userId, iframe6, password);
|
|
21680
21883
|
setStatusMessage("Keyshare updated successfully!");
|
|
21681
21884
|
setActionState(null);
|
|
21682
21885
|
setPassword("");
|
|
@@ -21903,8 +22106,8 @@ function DeviceRestoreScreen() {
|
|
|
21903
22106
|
const [errorMessage, setErrorMessage] = (0, import_react56.useState)(null);
|
|
21904
22107
|
const handleRestore = (0, import_react56.useCallback)(async () => {
|
|
21905
22108
|
if (!password || !keyshareId || !userId) return;
|
|
21906
|
-
const
|
|
21907
|
-
if (!
|
|
22109
|
+
const iframe6 = getIframeManager();
|
|
22110
|
+
if (!iframe6) {
|
|
21908
22111
|
setErrorMessage("Iframe manager not initialized");
|
|
21909
22112
|
return;
|
|
21910
22113
|
}
|
|
@@ -21914,7 +22117,7 @@ function DeviceRestoreScreen() {
|
|
|
21914
22117
|
try {
|
|
21915
22118
|
const { guardian } = await connectGuardian(deviceId);
|
|
21916
22119
|
try {
|
|
21917
|
-
await restoreFromGuardian(guardian, keyshareId, userId,
|
|
22120
|
+
await restoreFromGuardian(guardian, keyshareId, userId, iframe6, password);
|
|
21918
22121
|
setStatusMessage("Keyshare restored successfully!");
|
|
21919
22122
|
setPassword("");
|
|
21920
22123
|
window.dispatchEvent(new CustomEvent("lumia-passport-backup-status-changed"));
|
|
@@ -22695,7 +22898,7 @@ var init_hooks = __esm({
|
|
|
22695
22898
|
|
|
22696
22899
|
// src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
|
|
22697
22900
|
function MethodSelector(props) {
|
|
22698
|
-
const { mode = "restore" } = props;
|
|
22901
|
+
const { mode = "restore", securityStatus = null } = props;
|
|
22699
22902
|
const { t } = useT();
|
|
22700
22903
|
const {
|
|
22701
22904
|
method: selectedRecoveryMethod,
|
|
@@ -22706,66 +22909,90 @@ function MethodSelector(props) {
|
|
|
22706
22909
|
setError,
|
|
22707
22910
|
setSuccess
|
|
22708
22911
|
} = useRestoreStore();
|
|
22709
|
-
const availableMethods = getBackupMethods(mode);
|
|
22710
22912
|
if (!!selectedRecoveryMethod) return null;
|
|
22913
|
+
const availableMethods = getBackupMethods(mode);
|
|
22914
|
+
const { activeLevel, isBackupManagedByUser } = getActiveLevel(securityStatus);
|
|
22711
22915
|
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(import_react62.Fragment, { children: [
|
|
22712
22916
|
mode === "restore" && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-xs text-(--ui-kit-fg-muted)", children: t("passport:restoreMenu.availableRestoreMethods") }),
|
|
22713
|
-
|
|
22714
|
-
"div",
|
|
22715
|
-
|
|
22716
|
-
"
|
|
22717
|
-
"
|
|
22718
|
-
|
|
22719
|
-
|
|
22720
|
-
|
|
22721
|
-
|
|
22722
|
-
"
|
|
22723
|
-
"w-full flex items-center gap-(--ui-kit-gap)",
|
|
22724
|
-
"p-(--ui-kit-pd) border border-(--ui-kit-bd)",
|
|
22725
|
-
"rounded-(--ui-kit-el-bdrs)",
|
|
22726
|
-
"bg-(--ui-kit-secondary)",
|
|
22917
|
+
availableMethods.map((methodGroup, methodGroupIdx) => /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(import_react62.Fragment, { children: [
|
|
22918
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsxs)("div", { className: "flex items-center gap-(--ui-kit-gap)", children: [
|
|
22919
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "flex-1 block h-px bg-(--ui-kit-bd)" }),
|
|
22920
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-[10px] uppercase text-(--ui-kit-fg-muted)", children: t(methodGroupIdx === 0 ? "passport:backupMenu.vault" : "passport:common.extra") }),
|
|
22921
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "flex-1 block h-px bg-(--ui-kit-bd)" })
|
|
22922
|
+
] }),
|
|
22923
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("div", { className: "w-full grid grid-cols-2 gap-(--ui-kit-gap)", children: methodGroup.map(({ method, label, Icon: Icon2, disabled, explanation }) => {
|
|
22924
|
+
const isActiveLevel = method === "server" && activeLevel === "advanced" || method === "securedServer" && activeLevel === "secured";
|
|
22925
|
+
return /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(
|
|
22926
|
+
"div",
|
|
22727
22927
|
{
|
|
22728
|
-
"
|
|
22729
|
-
"
|
|
22730
|
-
|
|
22731
|
-
|
|
22732
|
-
|
|
22733
|
-
|
|
22734
|
-
|
|
22735
|
-
|
|
22736
|
-
|
|
22737
|
-
|
|
22738
|
-
|
|
22739
|
-
|
|
22740
|
-
|
|
22741
|
-
|
|
22742
|
-
|
|
22743
|
-
|
|
22744
|
-
|
|
22745
|
-
|
|
22746
|
-
|
|
22747
|
-
|
|
22748
|
-
|
|
22749
|
-
|
|
22750
|
-
|
|
22751
|
-
|
|
22752
|
-
|
|
22753
|
-
|
|
22754
|
-
|
|
22755
|
-
|
|
22756
|
-
|
|
22757
|
-
|
|
22758
|
-
|
|
22759
|
-
|
|
22760
|
-
|
|
22761
|
-
|
|
22762
|
-
|
|
22928
|
+
"aria-disabled": disabled,
|
|
22929
|
+
"aria-label": t(label),
|
|
22930
|
+
role: "button",
|
|
22931
|
+
tabIndex: 0,
|
|
22932
|
+
className: cn2(
|
|
22933
|
+
"relative",
|
|
22934
|
+
"cursor-pointer",
|
|
22935
|
+
"w-full flex items-center gap-(--ui-kit-gap)",
|
|
22936
|
+
"p-(--ui-kit-pd) border border-(--ui-kit-bd)",
|
|
22937
|
+
"rounded-(--ui-kit-el-bdrs)",
|
|
22938
|
+
"bg-(--ui-kit-secondary)",
|
|
22939
|
+
{
|
|
22940
|
+
"hover:opacity-80 active:opacity-60 transition-opacity": !disabled,
|
|
22941
|
+
"opacity-60": disabled
|
|
22942
|
+
}
|
|
22943
|
+
),
|
|
22944
|
+
onClick: () => {
|
|
22945
|
+
if (disabled) return;
|
|
22946
|
+
setRestorePassword("");
|
|
22947
|
+
setRestoreFile(null);
|
|
22948
|
+
setShowPassword(false);
|
|
22949
|
+
setError(null);
|
|
22950
|
+
setSuccess(null);
|
|
22951
|
+
setMethod(method);
|
|
22952
|
+
},
|
|
22953
|
+
children: [
|
|
22954
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)(Icon2, { className: "w-4 h-4" }),
|
|
22955
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "text-sm font-bold", children: t(label) }),
|
|
22956
|
+
!disabled && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
22957
|
+
"div",
|
|
22958
|
+
{
|
|
22959
|
+
className: cn2(
|
|
22960
|
+
//
|
|
22961
|
+
"absolute top-1 right-1",
|
|
22962
|
+
"rounded-full bg-(--ui-kit-secondary)"
|
|
22963
|
+
),
|
|
22964
|
+
onClick: (e) => e.stopPropagation(),
|
|
22965
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
22966
|
+
Tooltip,
|
|
22967
|
+
{
|
|
22968
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime79.jsxs)(Highlight, { className: "border border-(--ui-kit-bd) flex flex-1 flex-col gap-(--ui-kit-gap)", children: [
|
|
22969
|
+
/* @__PURE__ */ (0, import_jsx_runtime79.jsx)("span", { className: "font-bold", children: t(label) }),
|
|
22970
|
+
!!explanation && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(
|
|
22971
|
+
import_react_i18next3.Trans,
|
|
22972
|
+
{
|
|
22973
|
+
i18nKey: explanation,
|
|
22974
|
+
components: { br: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("br", {}), b: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("b", { className: "inline" }), u: /* @__PURE__ */ (0, import_jsx_runtime79.jsx)("u", {}) }
|
|
22975
|
+
}
|
|
22976
|
+
)
|
|
22977
|
+
] }),
|
|
22978
|
+
children: isActiveLevel && /* @__PURE__ */ (0, import_jsx_runtime79.jsx)(PositiveIcon, { className: "w-4 h-4" })
|
|
22979
|
+
}
|
|
22980
|
+
)
|
|
22981
|
+
}
|
|
22982
|
+
)
|
|
22983
|
+
]
|
|
22984
|
+
},
|
|
22985
|
+
method + "_" + label
|
|
22986
|
+
);
|
|
22987
|
+
}) })
|
|
22988
|
+
] }, `method-group-${methodGroupIdx}`))
|
|
22763
22989
|
] });
|
|
22764
22990
|
}
|
|
22765
|
-
var import_lucide_react39, import_react62, import_react_i18next3, import_jsx_runtime79, getBackupMethods;
|
|
22991
|
+
var import_lucide_react39, import_react62, import_react_i18next3, import_jsx_runtime79, getBackupMethods, getActiveLevel;
|
|
22766
22992
|
var init_MethodSelector = __esm({
|
|
22767
22993
|
"src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx"() {
|
|
22768
22994
|
init_useT();
|
|
22995
|
+
init_icons();
|
|
22769
22996
|
init_utils();
|
|
22770
22997
|
import_lucide_react39 = require("lucide-react");
|
|
22771
22998
|
import_react62 = require("react");
|
|
@@ -22776,20 +23003,22 @@ var init_MethodSelector = __esm({
|
|
|
22776
23003
|
init_hooks();
|
|
22777
23004
|
import_jsx_runtime79 = require("react/jsx-runtime");
|
|
22778
23005
|
getBackupMethods = (mode) => {
|
|
22779
|
-
const
|
|
23006
|
+
const vaultMethods = [
|
|
22780
23007
|
{
|
|
22781
23008
|
method: "server",
|
|
22782
|
-
label: "passport:backupMenu.
|
|
23009
|
+
label: "passport:backupMenu.advancedVault",
|
|
22783
23010
|
explanation: "passport:backupMenu.vaultExplanation",
|
|
22784
|
-
Icon: import_lucide_react39.
|
|
23011
|
+
Icon: import_lucide_react39.ShieldPlusIcon,
|
|
22785
23012
|
disabled: true
|
|
22786
23013
|
},
|
|
22787
23014
|
{
|
|
22788
23015
|
method: "securedServer",
|
|
22789
23016
|
label: "passport:backupMenu.securedVault",
|
|
22790
23017
|
explanation: "passport:backupMenu.vaultExplanation",
|
|
22791
|
-
Icon: import_lucide_react39.
|
|
22792
|
-
}
|
|
23018
|
+
Icon: import_lucide_react39.ShieldUserIcon
|
|
23019
|
+
}
|
|
23020
|
+
];
|
|
23021
|
+
const extraMethods = [
|
|
22793
23022
|
{
|
|
22794
23023
|
method: "file",
|
|
22795
23024
|
label: "passport:backupMenu.file",
|
|
@@ -22805,14 +23034,19 @@ var init_MethodSelector = __esm({
|
|
|
22805
23034
|
}
|
|
22806
23035
|
];
|
|
22807
23036
|
if (isWebSerialAvailable()) {
|
|
22808
|
-
|
|
23037
|
+
extraMethods.push({
|
|
22809
23038
|
method: "guardian",
|
|
22810
23039
|
label: "passport:guardiansMenu.title",
|
|
22811
23040
|
explanation: "passport:guardiansMenu.guardiansExplanation",
|
|
22812
23041
|
Icon: import_lucide_react39.Cpu
|
|
22813
23042
|
});
|
|
22814
23043
|
}
|
|
22815
|
-
return
|
|
23044
|
+
return [vaultMethods, extraMethods];
|
|
23045
|
+
};
|
|
23046
|
+
getActiveLevel = (securityStatus) => {
|
|
23047
|
+
const isBackupManagedByUser = securityStatus?.encryptionMethod === "passkey" || securityStatus?.encryptionMethod === "password";
|
|
23048
|
+
if (isBackupManagedByUser) return { isBackupManagedByUser: true, activeLevel: "secured" };
|
|
23049
|
+
return { isBackupManagedByUser, activeLevel: securityStatus?.level || null };
|
|
22816
23050
|
};
|
|
22817
23051
|
}
|
|
22818
23052
|
});
|
|
@@ -23453,7 +23687,7 @@ function BackupProgress(props) {
|
|
|
23453
23687
|
const backupMethod = useRestoreStore((st) => st.method);
|
|
23454
23688
|
const [isBackupNoticeVisible, setIsBackupNoticeVisible] = (0, import_react65.useState)(false);
|
|
23455
23689
|
if (!!backupMethod) return null;
|
|
23456
|
-
const { activeLevel, isBackupManagedByUser } =
|
|
23690
|
+
const { activeLevel, isBackupManagedByUser } = getActiveLevel2(securityStatus);
|
|
23457
23691
|
const isMaxBackupSecurity = isBackupManagedByUser;
|
|
23458
23692
|
return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex flex-col gap-(--ui-kit-gap)", children: [
|
|
23459
23693
|
/* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex items-center gap-(--ui-kit-gap) justify-between", children: [
|
|
@@ -23541,7 +23775,7 @@ function BackupProgress(props) {
|
|
|
23541
23775
|
] })
|
|
23542
23776
|
] });
|
|
23543
23777
|
}
|
|
23544
|
-
var import_dayjs4, import_lucide_react43, import_react65, import_react_i18next5, import_jsx_runtime84,
|
|
23778
|
+
var import_dayjs4, import_lucide_react43, import_react65, import_react_i18next5, import_jsx_runtime84, getActiveLevel2;
|
|
23545
23779
|
var init_BackupProgress = __esm({
|
|
23546
23780
|
"src/internal/components/KeyshareRestoreMenu/components/BackupProgress.tsx"() {
|
|
23547
23781
|
init_useT();
|
|
@@ -23557,7 +23791,7 @@ var init_BackupProgress = __esm({
|
|
|
23557
23791
|
init_hooks();
|
|
23558
23792
|
init_NodeGraph();
|
|
23559
23793
|
import_jsx_runtime84 = require("react/jsx-runtime");
|
|
23560
|
-
|
|
23794
|
+
getActiveLevel2 = (securityStatus) => {
|
|
23561
23795
|
const isBackupManagedByUser = securityStatus?.encryptionMethod === "passkey" || securityStatus?.encryptionMethod === "password";
|
|
23562
23796
|
if (isBackupManagedByUser) return { isBackupManagedByUser: true, activeLevel: "secured" };
|
|
23563
23797
|
return { isBackupManagedByUser, activeLevel: securityStatus?.level || null };
|
|
@@ -24513,19 +24747,15 @@ var init_KeyshareRestoreMenu = __esm({
|
|
|
24513
24747
|
Button,
|
|
24514
24748
|
{
|
|
24515
24749
|
size: "small",
|
|
24516
|
-
variant: "
|
|
24750
|
+
variant: "secondary",
|
|
24517
24751
|
onClick: () => {
|
|
24518
24752
|
const { setError, setRestorePassword, setRestoreFile, setMethod } = useRestoreStore.getState();
|
|
24519
24753
|
if (!!error) setError(null);
|
|
24520
24754
|
setRestorePassword("");
|
|
24521
24755
|
setRestoreFile(null);
|
|
24522
|
-
|
|
24523
|
-
setMethod(null);
|
|
24524
|
-
} else {
|
|
24525
|
-
setMethod("securedServer");
|
|
24526
|
-
}
|
|
24756
|
+
setMethod(null);
|
|
24527
24757
|
},
|
|
24528
|
-
children: t("passport:common.
|
|
24758
|
+
children: t("passport:common.extra")
|
|
24529
24759
|
}
|
|
24530
24760
|
)
|
|
24531
24761
|
] }),
|
|
@@ -24735,15 +24965,18 @@ function KeyshareBackupMenu() {
|
|
|
24735
24965
|
)
|
|
24736
24966
|
] }),
|
|
24737
24967
|
!isBasicBackup && /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(import_jsx_runtime94.Fragment, { children: [
|
|
24738
|
-
isMethodSelectorVisible && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(MethodSelector, { mode: "backup" }),
|
|
24739
|
-
/* @__PURE__ */ (0, import_jsx_runtime94.
|
|
24968
|
+
isMethodSelectorVisible && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(MethodSelector, { mode: "backup", securityStatus }),
|
|
24969
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
|
|
24740
24970
|
Button,
|
|
24741
24971
|
{
|
|
24742
24972
|
variant: isMethodSelectorVisible ? "ghost" : "secondary",
|
|
24743
24973
|
size: "medium",
|
|
24744
24974
|
className: "w-full",
|
|
24745
24975
|
onClick: () => setIsMethodSelectorVisible((prev) => !prev),
|
|
24746
|
-
children:
|
|
24976
|
+
children: [
|
|
24977
|
+
isMethodSelectorVisible ? /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react52.ChevronUpIcon, { className: "h-4 w-4" }) : /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_lucide_react52.ListIcon, { className: "h-4 w-4" }),
|
|
24978
|
+
/* @__PURE__ */ (0, import_jsx_runtime94.jsx)("span", { children: isMethodSelectorVisible ? t("passport:common.hide") : t("passport:backupMenu.exploreBackupMethods") })
|
|
24979
|
+
]
|
|
24747
24980
|
}
|
|
24748
24981
|
)
|
|
24749
24982
|
] })
|
|
@@ -27498,8 +27731,8 @@ function parseOS(ua) {
|
|
|
27498
27731
|
if (ua.includes("iPhone") || ua.includes("iPad") || ua.includes("iOS")) return "iOS";
|
|
27499
27732
|
return null;
|
|
27500
27733
|
}
|
|
27501
|
-
function cleanStringArtifacts(
|
|
27502
|
-
return
|
|
27734
|
+
function cleanStringArtifacts(str2) {
|
|
27735
|
+
return str2.replace(/"/g, "").replace(/\"/g, "").replace(/unknown/g, "");
|
|
27503
27736
|
}
|
|
27504
27737
|
function LastBackup(props) {
|
|
27505
27738
|
const { backup, createdRecoveryStats, level } = props;
|
|
@@ -28537,8 +28770,7 @@ function SecurityMenuContent() {
|
|
|
28537
28770
|
}),
|
|
28538
28771
|
children: [
|
|
28539
28772
|
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)(import_lucide_react72.WaypointsIcon, { className: "h-4 w-4" }),
|
|
28540
|
-
t("passport:securityMenu.keyshareReshare.title")
|
|
28541
|
-
/* @__PURE__ */ (0, import_jsx_runtime114.jsx)("span", { className: "text-[10px]", children: t("passport:common.comingSoon") })
|
|
28773
|
+
t("passport:securityMenu.keyshareReshare.title")
|
|
28542
28774
|
]
|
|
28543
28775
|
}
|
|
28544
28776
|
),
|
|
@@ -33265,40 +33497,26 @@ function TransactionsGroup(props) {
|
|
|
33265
33497
|
"bg-[var(--ui-kit-secondary)] hover:opacity-80 active:opacity-60"
|
|
33266
33498
|
),
|
|
33267
33499
|
children: [
|
|
33268
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "flex items-center justify-between gap-
|
|
33500
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "flex items-center justify-between gap-(--ui-kit-gap)", children: [
|
|
33269
33501
|
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "flex items-center gap-1 flex-0 w-fit", children: [
|
|
33270
33502
|
parent.direction === "in" ? /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_lucide_react86.ChevronLeft, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_lucide_react86.ChevronRight, { className: "w-4 h-4" }),
|
|
33271
33503
|
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "text-[10px] uppercase", children: isIncoming ? t("passport:common.received") : t("passport:common.sent") }),
|
|
33272
33504
|
parent.status === "ok" ? /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(PositiveIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(NegativeIcon, {})
|
|
33273
33505
|
] }),
|
|
33274
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "block flex-
|
|
33506
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("span", { className: "block flex-1 font-mono text-[10px] text-right text-(--ui-kit-fg-muted) whitespace-nowrap", children: formatTimestamp2(group.timestampMs) })
|
|
33275
33507
|
] }),
|
|
33276
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.
|
|
33277
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("
|
|
33278
|
-
|
|
33279
|
-
|
|
33280
|
-
|
|
33281
|
-
assetSymbol
|
|
33282
|
-
] }),
|
|
33283
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("span", { className: "text-[10px] font-mono text-[var(--ui-kit-fg-muted)]", children: [
|
|
33284
|
-
isIncoming ? t("passport:common.from") : t("passport:common.to"),
|
|
33285
|
-
": ",
|
|
33286
|
-
parent.counterpartyName || formatAddress2(parent.counterparty)
|
|
33287
|
-
] })
|
|
33508
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: "flex items-end justify-between gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("div", { className: "flex flex-col gap-0", children: [
|
|
33509
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("span", { className: "font-bold", children: [
|
|
33510
|
+
formatValue2(parent.value, assetDecimals),
|
|
33511
|
+
" ",
|
|
33512
|
+
assetSymbol
|
|
33288
33513
|
] }),
|
|
33289
|
-
/* @__PURE__ */ (0, import_jsx_runtime133.
|
|
33290
|
-
|
|
33291
|
-
|
|
33292
|
-
|
|
33293
|
-
|
|
33294
|
-
|
|
33295
|
-
onClick: (e) => {
|
|
33296
|
-
e.stopPropagation();
|
|
33297
|
-
},
|
|
33298
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)(import_lucide_react86.Copy, { className: "w-4 h-4" })
|
|
33299
|
-
}
|
|
33300
|
-
) })
|
|
33301
|
-
] }),
|
|
33514
|
+
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)("span", { className: "text-[10px] font-mono text-[var(--ui-kit-fg-muted)]", children: [
|
|
33515
|
+
isIncoming ? t("passport:common.from") : t("passport:common.to"),
|
|
33516
|
+
": ",
|
|
33517
|
+
parent.counterpartyName || formatAddress2(parent.counterparty)
|
|
33518
|
+
] })
|
|
33519
|
+
] }) }),
|
|
33302
33520
|
internalsToRender.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(import_jsx_runtime133.Fragment, { children: [
|
|
33303
33521
|
/* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { className: "w-full flex items-center h-4", children: /* @__PURE__ */ (0, import_jsx_runtime133.jsx)("div", { style: { borderTop: "1px solid var(--ui-kit-bd)" }, className: "flex-1" }) }),
|
|
33304
33522
|
/* @__PURE__ */ (0, import_jsx_runtime133.jsxs)(
|
|
@@ -33543,7 +33761,7 @@ var init_constants10 = __esm({
|
|
|
33543
33761
|
init_icons();
|
|
33544
33762
|
NAV_BUTTONS = [
|
|
33545
33763
|
{ id: "transactions" /* TRANSACTIONS */, name: "passport:transactionsMenu.title", Icon: import_lucide_react88.ArrowLeftRight },
|
|
33546
|
-
{ id: "user-activity" /*
|
|
33764
|
+
{ id: "user-security-activity" /* USER_SECURITY_ACTIVITY */, name: "passport:userActivityMenu.title", Icon: import_lucide_react88.ActivityIcon },
|
|
33547
33765
|
{ id: "kyc" /* KYC */, name: "passport:kycMenu.title", Icon: kyc_default },
|
|
33548
33766
|
{ id: "nickname-settings" /* NICKNAME_SETTINGS */, name: "passport:nicknameMenu.title", Icon: import_lucide_react88.AtSign },
|
|
33549
33767
|
{ id: "manage-wallet" /* MANAGE_WALLET */, name: "passport:profilesMenu.title", Icon: import_lucide_react88.UsersRound },
|
|
@@ -33715,54 +33933,489 @@ var init_SettingsMenu2 = __esm({
|
|
|
33715
33933
|
}
|
|
33716
33934
|
});
|
|
33717
33935
|
|
|
33718
|
-
// src/internal/components/
|
|
33719
|
-
function
|
|
33936
|
+
// src/internal/components/UserSecurityActivityMenu/filters.ts
|
|
33937
|
+
function validateActivityFilters(filters) {
|
|
33938
|
+
const { period, customFrom, customTo } = filters;
|
|
33939
|
+
if (period !== "custom" || !customFrom) return null;
|
|
33940
|
+
const from = (0, import_dayjs10.default)(customFrom).startOf("day");
|
|
33941
|
+
const to = customTo ? (0, import_dayjs10.default)(customTo).endOf("day") : (0, import_dayjs10.default)();
|
|
33942
|
+
if (from.isAfter(to)) return "rangeOrder";
|
|
33943
|
+
if (to.diff(from, "day", true) > MAX_RANGE_DAYS) return "rangeTooLong";
|
|
33944
|
+
return null;
|
|
33945
|
+
}
|
|
33946
|
+
function countActiveActivityFilters(filters) {
|
|
33947
|
+
const { eventTypes, period, customFrom, customTo } = filters;
|
|
33948
|
+
const hasTypes = eventTypes.length > 0 && eventTypes.length < ALL_ACTIVITY_EVENT_TYPES.length;
|
|
33949
|
+
const hasPeriod = period === "custom" ? !!customFrom || !!customTo : period !== "all";
|
|
33950
|
+
return Number(hasTypes) + Number(hasPeriod);
|
|
33951
|
+
}
|
|
33952
|
+
function buildActivityPayload(filters, now = (0, import_dayjs10.default)()) {
|
|
33953
|
+
const { eventTypes, period, customFrom, customTo } = filters;
|
|
33954
|
+
const payload = {};
|
|
33955
|
+
if (eventTypes.length > 0 && eventTypes.length < ALL_ACTIVITY_EVENT_TYPES.length) {
|
|
33956
|
+
payload.event_type = [...eventTypes].sort();
|
|
33957
|
+
}
|
|
33958
|
+
const duration = PERIOD_DURATIONS[period];
|
|
33959
|
+
if (duration) {
|
|
33960
|
+
payload.from = now.subtract(duration[0], duration[1]).toISOString();
|
|
33961
|
+
} else if (period === "custom") {
|
|
33962
|
+
if (customFrom) payload.from = (0, import_dayjs10.default)(customFrom).startOf("day").toISOString();
|
|
33963
|
+
if (customTo) payload.to = (0, import_dayjs10.default)(customTo).endOf("day").toISOString();
|
|
33964
|
+
}
|
|
33965
|
+
return payload;
|
|
33966
|
+
}
|
|
33967
|
+
var import_dayjs10, ACTIVITY_EVENT_GROUPS, ALL_ACTIVITY_EVENT_TYPES, MAX_RANGE_DAYS, ACTIVITY_PERIODS, PERIOD_DURATIONS, DEFAULT_ACTIVITY_FILTERS;
|
|
33968
|
+
var init_filters = __esm({
|
|
33969
|
+
"src/internal/components/UserSecurityActivityMenu/filters.ts"() {
|
|
33970
|
+
import_dayjs10 = __toESM(require("dayjs"), 1);
|
|
33971
|
+
ACTIVITY_EVENT_GROUPS = [
|
|
33972
|
+
{ id: "auth", types: ["auth.login", "auth.login_failed"] },
|
|
33973
|
+
{ id: "backup", types: ["backup.created", "backup.restored", "backup.rewrapped", "backup.deleted"] },
|
|
33974
|
+
{ id: "account", types: ["account.provider_linked", "account.provider_unlinked"] },
|
|
33975
|
+
{ id: "device", types: ["device.paired", "device.unlinked"] },
|
|
33976
|
+
{ id: "wallet", types: ["wallet.created", "wallet.sign_locked"] },
|
|
33977
|
+
{ id: "policy", types: ["policy.changed"] },
|
|
33978
|
+
{ id: "kyc", types: ["kyc.status_changed"] }
|
|
33979
|
+
];
|
|
33980
|
+
ALL_ACTIVITY_EVENT_TYPES = ACTIVITY_EVENT_GROUPS.flatMap((group) => group.types);
|
|
33981
|
+
MAX_RANGE_DAYS = 365;
|
|
33982
|
+
ACTIVITY_PERIODS = [
|
|
33983
|
+
"all",
|
|
33984
|
+
"last24h",
|
|
33985
|
+
"last7d",
|
|
33986
|
+
"last30d",
|
|
33987
|
+
"last90d",
|
|
33988
|
+
"last365d",
|
|
33989
|
+
"custom"
|
|
33990
|
+
];
|
|
33991
|
+
PERIOD_DURATIONS = {
|
|
33992
|
+
last24h: [24, "hour"],
|
|
33993
|
+
last7d: [7, "day"],
|
|
33994
|
+
last30d: [30, "day"],
|
|
33995
|
+
last90d: [90, "day"],
|
|
33996
|
+
last365d: [365, "day"]
|
|
33997
|
+
};
|
|
33998
|
+
DEFAULT_ACTIVITY_FILTERS = {
|
|
33999
|
+
eventTypes: [],
|
|
34000
|
+
period: "all",
|
|
34001
|
+
customFrom: "",
|
|
34002
|
+
customTo: ""
|
|
34003
|
+
};
|
|
34004
|
+
}
|
|
34005
|
+
});
|
|
34006
|
+
|
|
34007
|
+
// src/internal/components/UserSecurityActivityMenu/utils.ts
|
|
34008
|
+
function getActivityTitleKey(eventType) {
|
|
34009
|
+
return `passport:userActivityMenu.events.${EVENT_TITLE_KEYS[eventType] ?? "unknown"}`;
|
|
34010
|
+
}
|
|
34011
|
+
function getActivityCardType(activity) {
|
|
34012
|
+
const { event_type, properties } = activity;
|
|
34013
|
+
if (event_type === "auth.login_failed") return "error";
|
|
34014
|
+
if (event_type === "wallet.sign_locked") return "warning";
|
|
34015
|
+
if (event_type === "kyc.status_changed") {
|
|
34016
|
+
if (properties.status === "verified") return "success";
|
|
34017
|
+
return "warning";
|
|
34018
|
+
}
|
|
34019
|
+
return "info";
|
|
34020
|
+
}
|
|
34021
|
+
function parseActivityTimestamp(timestamp) {
|
|
34022
|
+
return /* @__PURE__ */ new Date(`${timestamp.replace(" ", "T")}Z`);
|
|
34023
|
+
}
|
|
34024
|
+
function parseUserAgent(userAgent) {
|
|
34025
|
+
if (!userAgent) return "";
|
|
34026
|
+
const browser = /Edg\//.test(userAgent) && "Edge" || /OPR\//.test(userAgent) && "Opera" || /Firefox\//.test(userAgent) && "Firefox" || /Chrome\//.test(userAgent) && "Chrome" || /Safari\//.test(userAgent) && "Safari" || "";
|
|
34027
|
+
const os = /Windows/.test(userAgent) && "Windows" || /Android/.test(userAgent) && "Android" || /iPhone|iPad|iPod/.test(userAgent) && "iOS" || /Mac OS X/.test(userAgent) && "macOS" || /Linux/.test(userAgent) && "Linux" || "";
|
|
34028
|
+
return [browser, os].filter(Boolean).join(" \xB7 ");
|
|
34029
|
+
}
|
|
34030
|
+
function str(value) {
|
|
34031
|
+
return typeof value === "string" ? value : "";
|
|
34032
|
+
}
|
|
34033
|
+
function humanize(value) {
|
|
34034
|
+
return value.replace(/[_-]+/g, " ");
|
|
34035
|
+
}
|
|
34036
|
+
function getActivityDetails(activity) {
|
|
34037
|
+
const { event_type, properties, external_id } = activity;
|
|
34038
|
+
const details = [];
|
|
34039
|
+
const add = (labelKey, value) => {
|
|
34040
|
+
if (value) details.push({ labelKey, value });
|
|
34041
|
+
};
|
|
34042
|
+
switch (event_type) {
|
|
34043
|
+
case "auth.login":
|
|
34044
|
+
case "auth.login_failed":
|
|
34045
|
+
case "account.provider_linked":
|
|
34046
|
+
case "account.provider_unlinked":
|
|
34047
|
+
add("provider", str(properties.provider));
|
|
34048
|
+
add("reason", humanize(str(properties.reason)));
|
|
34049
|
+
add("identity", external_id);
|
|
34050
|
+
break;
|
|
34051
|
+
case "device.paired":
|
|
34052
|
+
case "device.unlinked":
|
|
34053
|
+
add("deviceType", str(properties.device_type));
|
|
34054
|
+
break;
|
|
34055
|
+
case "policy.changed":
|
|
34056
|
+
add("policy", str(properties.name));
|
|
34057
|
+
add("action", humanize(str(properties.action)));
|
|
34058
|
+
break;
|
|
34059
|
+
case "kyc.status_changed":
|
|
34060
|
+
add("status", humanize(str(properties.status)));
|
|
34061
|
+
break;
|
|
34062
|
+
case "backup.created":
|
|
34063
|
+
case "backup.restored":
|
|
34064
|
+
case "backup.rewrapped":
|
|
34065
|
+
case "backup.deleted":
|
|
34066
|
+
add("method", str(properties.method));
|
|
34067
|
+
break;
|
|
34068
|
+
default:
|
|
34069
|
+
add("identity", external_id);
|
|
34070
|
+
}
|
|
34071
|
+
return details;
|
|
34072
|
+
}
|
|
34073
|
+
var EVENT_TITLE_KEYS;
|
|
34074
|
+
var init_utils13 = __esm({
|
|
34075
|
+
"src/internal/components/UserSecurityActivityMenu/utils.ts"() {
|
|
34076
|
+
EVENT_TITLE_KEYS = {
|
|
34077
|
+
"auth.login": "authLogin",
|
|
34078
|
+
"auth.login_failed": "authLoginFailed",
|
|
34079
|
+
"account.provider_linked": "accountProviderLinked",
|
|
34080
|
+
"account.provider_unlinked": "accountProviderUnlinked",
|
|
34081
|
+
"device.paired": "devicePaired",
|
|
34082
|
+
"device.unlinked": "deviceUnlinked",
|
|
34083
|
+
"wallet.created": "walletCreated",
|
|
34084
|
+
"wallet.sign_locked": "walletSignLocked",
|
|
34085
|
+
"policy.changed": "policyChanged",
|
|
34086
|
+
"kyc.status_changed": "kycStatusChanged",
|
|
34087
|
+
"backup.created": "backupCreated",
|
|
34088
|
+
"backup.restored": "backupRestored",
|
|
34089
|
+
"backup.rewrapped": "backupRewrapped",
|
|
34090
|
+
"backup.deleted": "backupDeleted"
|
|
34091
|
+
};
|
|
34092
|
+
}
|
|
34093
|
+
});
|
|
34094
|
+
|
|
34095
|
+
// src/internal/components/UserSecurityActivityMenu/SecurityActivityFilter.tsx
|
|
34096
|
+
function Chip({ selected, onClick, children }) {
|
|
34097
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
34098
|
+
"button",
|
|
34099
|
+
{
|
|
34100
|
+
type: "button",
|
|
34101
|
+
"aria-pressed": selected,
|
|
34102
|
+
onClick,
|
|
34103
|
+
className: cn2(
|
|
34104
|
+
"h-6 px-2 rounded-full border text-[10px] font-semibold cursor-pointer select-none",
|
|
34105
|
+
"transition-opacity hover:opacity-80 active:opacity-60",
|
|
34106
|
+
selected ? "border-transparent bg-(--ui-kit-primary) text-(--ui-kit-fg-inverted)" : "border-(--ui-kit-bd) bg-transparent text-(--ui-kit-fg)"
|
|
34107
|
+
),
|
|
34108
|
+
children
|
|
34109
|
+
}
|
|
34110
|
+
);
|
|
34111
|
+
}
|
|
34112
|
+
function SecurityActivityFilter({ value, onChange }) {
|
|
34113
|
+
const { t } = useT();
|
|
34114
|
+
const [isOpen, setIsOpen] = (0, import_react108.useState)(false);
|
|
34115
|
+
const [draft, setDraft] = (0, import_react108.useState)(value);
|
|
34116
|
+
(0, import_react108.useEffect)(() => setDraft(value), [value]);
|
|
34117
|
+
const activeCount = countActiveActivityFilters(value);
|
|
34118
|
+
const error = validateActivityFilters(draft);
|
|
34119
|
+
const toggleType = (type) => setDraft((prev) => ({
|
|
34120
|
+
...prev,
|
|
34121
|
+
eventTypes: prev.eventTypes.includes(type) ? prev.eventTypes.filter((el) => el !== type) : [...prev.eventTypes, type]
|
|
34122
|
+
}));
|
|
34123
|
+
const toggleGroup = (types) => setDraft((prev) => {
|
|
34124
|
+
const isGroupSelected = types.every((type) => prev.eventTypes.includes(type));
|
|
34125
|
+
return {
|
|
34126
|
+
...prev,
|
|
34127
|
+
eventTypes: isGroupSelected ? prev.eventTypes.filter((type) => !types.includes(type)) : [.../* @__PURE__ */ new Set([...prev.eventTypes, ...types])]
|
|
34128
|
+
};
|
|
34129
|
+
});
|
|
34130
|
+
const setPeriod = (period) => setDraft((prev) => ({ ...prev, period }));
|
|
34131
|
+
const handleApply = () => {
|
|
34132
|
+
onChange(draft);
|
|
34133
|
+
setIsOpen(false);
|
|
34134
|
+
};
|
|
34135
|
+
const handleReset = () => {
|
|
34136
|
+
onChange(DEFAULT_ACTIVITY_FILTERS);
|
|
34137
|
+
setIsOpen(false);
|
|
34138
|
+
};
|
|
34139
|
+
return /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "w-full flex flex-col gap-(--ui-kit-gap)", children: [
|
|
34140
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "w-full flex items-center justify-between gap-(--ui-kit-gap)", children: [
|
|
34141
|
+
activeCount > 0 ? /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Button, { variant: "ghost", size: "medium", className: "text-xs", onClick: handleReset, children: t("passport:userActivityMenu.filters.reset") }) : /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-xs text-(--ui-kit-fg-muted)", children: t("passport:userActivityMenu.filters.title") }),
|
|
34142
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)(
|
|
34143
|
+
Button,
|
|
34144
|
+
{
|
|
34145
|
+
variant: "secondary",
|
|
34146
|
+
size: "medium",
|
|
34147
|
+
"aria-expanded": isOpen,
|
|
34148
|
+
className: "text-xs",
|
|
34149
|
+
onClick: () => setIsOpen((prev) => !prev),
|
|
34150
|
+
children: [
|
|
34151
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_lucide_react90.FilterIcon, { className: "h-4 w-4" }),
|
|
34152
|
+
activeCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Badge, { variant: "outline", children: activeCount }),
|
|
34153
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(import_lucide_react90.ChevronDownIcon, { className: cn2("h-4 w-4 transition-transform", isOpen && "rotate-180") })
|
|
34154
|
+
]
|
|
34155
|
+
}
|
|
34156
|
+
)
|
|
34157
|
+
] }),
|
|
34158
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "w-full flex flex-col gap-(--ui-kit-gap) rounded-(--ui-kit-el-bdrs) bg-(--ui-kit-secondary) p-(--ui-kit-pd)", children: [
|
|
34159
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex flex-col gap-(--ui-kit-gap)", children: [
|
|
34160
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-xs font-semibold", children: t("passport:userActivityMenu.filters.eventTypes") }),
|
|
34161
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-[10px] leading-4 text-(--ui-kit-fg-muted)", children: t("passport:userActivityMenu.filters.eventTypesHint") }),
|
|
34162
|
+
ACTIVITY_EVENT_GROUPS.map(({ id, types }) => /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex flex-col gap-1", children: [
|
|
34163
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
34164
|
+
Chip,
|
|
34165
|
+
{
|
|
34166
|
+
selected: types.every((type) => draft.eventTypes.includes(type)),
|
|
34167
|
+
onClick: () => toggleGroup(types),
|
|
34168
|
+
children: t(`passport:userActivityMenu.filters.groups.${id}`, id)
|
|
34169
|
+
}
|
|
34170
|
+
),
|
|
34171
|
+
types.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)("div", { className: "flex flex-wrap gap-1 pl-2", children: types.map((type) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Chip, { selected: draft.eventTypes.includes(type), onClick: () => toggleType(type), children: t(getActivityTitleKey(type), type) }, type)) })
|
|
34172
|
+
] }, id))
|
|
34173
|
+
] }),
|
|
34174
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex flex-col gap-(--ui-kit-gap)", children: [
|
|
34175
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("span", { className: "text-xs font-semibold", children: t("passport:userActivityMenu.filters.period") }),
|
|
34176
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)("div", { className: "flex flex-wrap gap-1", children: ACTIVITY_PERIODS.map((period) => /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Chip, { selected: draft.period === period, onClick: () => setPeriod(period), children: t(`passport:userActivityMenu.filters.periods.${period}`, period) }, period)) }),
|
|
34177
|
+
draft.period === "custom" && /* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex items-start gap-(--ui-kit-gap)", children: [
|
|
34178
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
34179
|
+
Input,
|
|
34180
|
+
{
|
|
34181
|
+
type: "date",
|
|
34182
|
+
"aria-label": t("passport:userActivityMenu.filters.from"),
|
|
34183
|
+
value: draft.customFrom,
|
|
34184
|
+
max: draft.customTo || void 0,
|
|
34185
|
+
onChange: (e) => setDraft((prev) => ({ ...prev, customFrom: e.target.value }))
|
|
34186
|
+
}
|
|
34187
|
+
),
|
|
34188
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
34189
|
+
Input,
|
|
34190
|
+
{
|
|
34191
|
+
type: "date",
|
|
34192
|
+
"aria-label": t("passport:userActivityMenu.filters.to"),
|
|
34193
|
+
value: draft.customTo,
|
|
34194
|
+
min: draft.customFrom || void 0,
|
|
34195
|
+
onChange: (e) => setDraft((prev) => ({ ...prev, customTo: e.target.value }))
|
|
34196
|
+
}
|
|
34197
|
+
)
|
|
34198
|
+
] }),
|
|
34199
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Highlight, { type: "error", children: t(`passport:userActivityMenu.filters.errors.${error}`, error) })
|
|
34200
|
+
] }),
|
|
34201
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsxs)("div", { className: "flex items-center justify-end gap-(--ui-kit-gap)", children: [
|
|
34202
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(
|
|
34203
|
+
Button,
|
|
34204
|
+
{
|
|
34205
|
+
variant: "ghost",
|
|
34206
|
+
size: "medium",
|
|
34207
|
+
className: "text-xs",
|
|
34208
|
+
onClick: () => setDraft(DEFAULT_ACTIVITY_FILTERS),
|
|
34209
|
+
children: t("passport:userActivityMenu.filters.clear")
|
|
34210
|
+
}
|
|
34211
|
+
),
|
|
34212
|
+
/* @__PURE__ */ (0, import_jsx_runtime137.jsx)(Button, { size: "medium", className: "text-xs", disabled: !!error, onClick: handleApply, children: t("passport:userActivityMenu.filters.apply") })
|
|
34213
|
+
] })
|
|
34214
|
+
] })
|
|
34215
|
+
] });
|
|
34216
|
+
}
|
|
34217
|
+
var import_lucide_react90, import_react108, import_jsx_runtime137;
|
|
34218
|
+
var init_SecurityActivityFilter = __esm({
|
|
34219
|
+
"src/internal/components/UserSecurityActivityMenu/SecurityActivityFilter.tsx"() {
|
|
34220
|
+
init_utils();
|
|
34221
|
+
init_i18n();
|
|
34222
|
+
import_lucide_react90 = require("lucide-react");
|
|
34223
|
+
import_react108 = require("react");
|
|
34224
|
+
init_badge();
|
|
34225
|
+
init_button();
|
|
34226
|
+
init_highlight();
|
|
34227
|
+
init_input();
|
|
34228
|
+
init_filters();
|
|
34229
|
+
init_utils13();
|
|
34230
|
+
import_jsx_runtime137 = require("react/jsx-runtime");
|
|
34231
|
+
}
|
|
34232
|
+
});
|
|
34233
|
+
|
|
34234
|
+
// src/internal/components/UserSecurityActivityMenu/UserSecurityActivityCard.tsx
|
|
34235
|
+
function getActivityIcon(eventType) {
|
|
34236
|
+
if (eventType === "wallet.sign_locked") return import_lucide_react91.LockKeyholeIcon;
|
|
34237
|
+
return EVENT_GROUP_ICONS[eventType.split(".")[0]] ?? import_lucide_react91.ActivityIcon;
|
|
34238
|
+
}
|
|
34239
|
+
function truncate(value) {
|
|
34240
|
+
switch (true) {
|
|
34241
|
+
case isEVMAddress(value):
|
|
34242
|
+
return `${value.slice(0, 6)}...${value.slice(-4)}`;
|
|
34243
|
+
default:
|
|
34244
|
+
return value;
|
|
34245
|
+
}
|
|
34246
|
+
}
|
|
34247
|
+
function UserSecurityActivityCard(props) {
|
|
34248
|
+
const { t } = useT();
|
|
34249
|
+
const { event_type, timestamp, country, user_agent, properties } = props;
|
|
34250
|
+
const details = getActivityDetails(props);
|
|
34251
|
+
const meta = [parseUserAgent(user_agent), country].filter(Boolean).join(" \xB7 ");
|
|
34252
|
+
const Icon2 = getActivityIcon(event_type);
|
|
34253
|
+
return /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)(Highlight, { type: getActivityCardType(props), className: "", children: [
|
|
34254
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsxs)("div", { className: "flex items-start justify-between gap-(--ui-kit-gap)", children: [
|
|
34255
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsxs)("div", { className: "flex items-center gap-(--ui-kit-gap)", children: [
|
|
34256
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Icon2, { className: "h-4 w-4 shrink-0" }),
|
|
34257
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)("span", { className: "text-sm leading-6 font-semibold", children: t(getActivityTitleKey(event_type), event_type) })
|
|
34258
|
+
] }),
|
|
34259
|
+
properties.new_user === true && /* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Badge, { variant: "success", children: t("passport:userActivityMenu.newAccount") })
|
|
34260
|
+
] }),
|
|
34261
|
+
details.map(({ labelKey, value }) => /* @__PURE__ */ (0, import_jsx_runtime138.jsxs)("div", { className: "flex items-start justify-between gap-(--ui-kit-gap) leading-5", children: [
|
|
34262
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)("span", { className: "text-(--ui-kit-fg-muted)", children: t(`passport:userActivityMenu.details.${labelKey}`, labelKey) }),
|
|
34263
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)("span", { className: "text-right break-all uppercase", children: truncate(value) })
|
|
34264
|
+
] }, labelKey)),
|
|
34265
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsxs)("div", { className: "flex items-center justify-between gap-(--ui-kit-gap) pt-1", children: [
|
|
34266
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Badge, { size: "default", variant: "outline", className: "text-(--ui-kit-fg-muted)!", children: meta }),
|
|
34267
|
+
/* @__PURE__ */ (0, import_jsx_runtime138.jsx)(Badge, { size: "default", variant: "outline", className: "text-(--ui-kit-fg-muted)!", children: (0, import_dayjs11.default)(parseActivityTimestamp(timestamp)).format("MMM D, YYYY HH:mm") })
|
|
34268
|
+
] })
|
|
34269
|
+
] });
|
|
34270
|
+
}
|
|
34271
|
+
var import_dayjs11, import_lucide_react91, import_jsx_runtime138, EVENT_GROUP_ICONS, isEVMAddress;
|
|
34272
|
+
var init_UserSecurityActivityCard = __esm({
|
|
34273
|
+
"src/internal/components/UserSecurityActivityMenu/UserSecurityActivityCard.tsx"() {
|
|
34274
|
+
init_i18n();
|
|
34275
|
+
import_dayjs11 = __toESM(require("dayjs"), 1);
|
|
34276
|
+
import_lucide_react91 = require("lucide-react");
|
|
34277
|
+
init_badge();
|
|
34278
|
+
init_highlight();
|
|
34279
|
+
init_utils13();
|
|
34280
|
+
import_jsx_runtime138 = require("react/jsx-runtime");
|
|
34281
|
+
EVENT_GROUP_ICONS = {
|
|
34282
|
+
auth: import_lucide_react91.LogInIcon,
|
|
34283
|
+
backup: import_lucide_react91.ShieldUserIcon,
|
|
34284
|
+
account: import_lucide_react91.LinkIcon,
|
|
34285
|
+
device: import_lucide_react91.SmartphoneIcon,
|
|
34286
|
+
wallet: import_lucide_react91.WalletIcon,
|
|
34287
|
+
policy: import_lucide_react91.ScrollTextIcon,
|
|
34288
|
+
kyc: import_lucide_react91.IdCardIcon
|
|
34289
|
+
};
|
|
34290
|
+
isEVMAddress = (address) => /^0x[a-fA-F0-9]{40}$/.test(address);
|
|
34291
|
+
}
|
|
34292
|
+
});
|
|
34293
|
+
|
|
34294
|
+
// src/internal/components/UserSecurityActivityMenu/api.ts
|
|
34295
|
+
function iframe5() {
|
|
34296
|
+
const accessToken = import_auth7.jwtTokenManager.getAccessToken();
|
|
34297
|
+
if (!accessToken) {
|
|
34298
|
+
throw new Error("Access token is not available");
|
|
34299
|
+
}
|
|
34300
|
+
const iframeManager2 = getIframeManager();
|
|
34301
|
+
if (!iframeManager2) {
|
|
34302
|
+
throw new Error("Iframe manager is not initialized");
|
|
34303
|
+
}
|
|
34304
|
+
return { iframeManager: iframeManager2, accessToken };
|
|
34305
|
+
}
|
|
34306
|
+
async function getUserSecurityActivity(payload) {
|
|
34307
|
+
const { iframeManager: iframeManager2, accessToken } = iframe5();
|
|
34308
|
+
return await iframeManager2.sendMessage("USER_ACTIVITY_LOG_SECURITY_GET", { payload, accessToken });
|
|
34309
|
+
}
|
|
34310
|
+
var init_api7 = __esm({
|
|
34311
|
+
"src/internal/components/UserSecurityActivityMenu/api.ts"() {
|
|
34312
|
+
init_auth();
|
|
34313
|
+
init_iframe_manager();
|
|
34314
|
+
}
|
|
34315
|
+
});
|
|
34316
|
+
|
|
34317
|
+
// src/internal/components/UserSecurityActivityMenu/useUserSecurityActivity.ts
|
|
34318
|
+
function useUserSecurityActivity(filters = {}) {
|
|
34319
|
+
const address = useSession((st) => st.address);
|
|
34320
|
+
return (0, import_react_query62.useInfiniteQuery)({
|
|
34321
|
+
enabled: !!address,
|
|
34322
|
+
retry: false,
|
|
34323
|
+
queryKey: [USER_SECURITY_ACTIVITY_QUERY_KEY, address, filters],
|
|
34324
|
+
initialPageParam: void 0,
|
|
34325
|
+
getNextPageParam: (lastPage) => lastPage.nextCursor ?? void 0,
|
|
34326
|
+
queryFn: async ({ pageParam }) => getUserSecurityActivity({
|
|
34327
|
+
...filters,
|
|
34328
|
+
cursor: pageParam,
|
|
34329
|
+
limit: USER_SECURITY_ACTIVITY_PAGE_SIZE
|
|
34330
|
+
})
|
|
34331
|
+
});
|
|
34332
|
+
}
|
|
34333
|
+
var import_react_query62, USER_SECURITY_ACTIVITY_QUERY_KEY, USER_SECURITY_ACTIVITY_PAGE_SIZE;
|
|
34334
|
+
var init_useUserSecurityActivity = __esm({
|
|
34335
|
+
"src/internal/components/UserSecurityActivityMenu/useUserSecurityActivity.ts"() {
|
|
34336
|
+
init_SessionContext();
|
|
34337
|
+
import_react_query62 = require("@tanstack/react-query");
|
|
34338
|
+
init_api7();
|
|
34339
|
+
USER_SECURITY_ACTIVITY_QUERY_KEY = "user-security-activity-query-key";
|
|
34340
|
+
USER_SECURITY_ACTIVITY_PAGE_SIZE = 10;
|
|
34341
|
+
}
|
|
34342
|
+
});
|
|
34343
|
+
|
|
34344
|
+
// src/internal/components/UserSecurityActivityMenu/UserSecurityActivityMenu.tsx
|
|
34345
|
+
function UserSecurityActivityMenu() {
|
|
33720
34346
|
const { t } = useT();
|
|
33721
34347
|
useOnboardingTourAvailable(true);
|
|
33722
|
-
const
|
|
33723
|
-
|
|
33724
|
-
|
|
33725
|
-
|
|
34348
|
+
const [filters, setFilters] = (0, import_react109.useState)(DEFAULT_ACTIVITY_FILTERS);
|
|
34349
|
+
const payload = (0, import_react109.useMemo)(() => buildActivityPayload(filters), [filters]);
|
|
34350
|
+
const hasActiveFilters = countActiveActivityFilters(filters) > 0;
|
|
34351
|
+
const { data, isLoading, isError, error, hasNextPage, isFetchingNextPage, fetchNextPage } = useUserSecurityActivity(payload);
|
|
34352
|
+
const activities = (0, import_react109.useMemo)(() => data?.pages.flatMap((page) => page.events) ?? [], [data]);
|
|
34353
|
+
const sentinelRef = (0, import_react109.useRef)(null);
|
|
34354
|
+
const canLoadMore = !!hasNextPage && !isFetchingNextPage && !isError;
|
|
34355
|
+
(0, import_react109.useEffect)(() => {
|
|
34356
|
+
const sentinel = sentinelRef.current;
|
|
34357
|
+
if (!sentinel || !canLoadMore) return;
|
|
34358
|
+
const observer = new IntersectionObserver(
|
|
34359
|
+
(entries) => {
|
|
34360
|
+
if (entries.some((entry) => entry.isIntersecting)) void fetchNextPage();
|
|
34361
|
+
},
|
|
34362
|
+
{ rootMargin: "100px" }
|
|
34363
|
+
);
|
|
34364
|
+
observer.observe(sentinel);
|
|
34365
|
+
return () => observer.disconnect();
|
|
34366
|
+
}, [canLoadMore, fetchNextPage, activities.length]);
|
|
34367
|
+
return /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-(--ui-kit-gap)", children: [
|
|
34368
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "w-full flex items-center gap-(--ui-kit-gap)", children: [
|
|
34369
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(
|
|
33726
34370
|
Button,
|
|
33727
34371
|
{
|
|
33728
34372
|
variant: "ghost",
|
|
33729
34373
|
size: "icon",
|
|
33730
34374
|
title: "Back",
|
|
33731
34375
|
onClick: () => useLayoutDataStore.getState().setPage("settings" /* SETTINGS */),
|
|
33732
|
-
children: /* @__PURE__ */ (0,
|
|
34376
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_lucide_react92.ArrowLeft, { className: "h-4 w-4" })
|
|
33733
34377
|
}
|
|
33734
34378
|
),
|
|
33735
|
-
/* @__PURE__ */ (0,
|
|
34379
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)("span", { className: "text-xl font-semibold", children: t("passport:userActivityMenu.title") })
|
|
33736
34380
|
] }),
|
|
33737
|
-
/* @__PURE__ */ (0,
|
|
33738
|
-
activities.length === 0 ? (
|
|
33739
|
-
|
|
33740
|
-
|
|
33741
|
-
|
|
34381
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)(SecurityActivityFilter, { value: filters, onChange: setFilters }),
|
|
34382
|
+
isLoading ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("div", { className: "w-full flex items-center justify-center p-(--ui-kit-pd)", children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_lucide_react92.LoaderIcon, { className: "h-4 w-4 animate-spin" }) }) : activities.length === 0 && isError ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Highlight, { type: "error", children: error?.message || t("passport:userActivityMenu.loadError") }) : activities.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Highlight, { className: "text-(--ui-kit-fg-muted)", children: t(
|
|
34383
|
+
hasActiveFilters ? "passport:userActivityMenu.filters.noResults" : "passport:userActivityMenu.noActivities"
|
|
34384
|
+
) }) : /* @__PURE__ */ (0, import_jsx_runtime139.jsxs)("div", { className: "w-full flex flex-col gap-(--ui-kit-gap)", children: [
|
|
34385
|
+
activities.map((activity) => /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(UserSecurityActivityCard, { ...activity }, activity.event_id)),
|
|
34386
|
+
isError && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(Highlight, { type: "error", children: error?.message || t("passport:userActivityMenu.loadError") }),
|
|
34387
|
+
isFetchingNextPage && /* @__PURE__ */ (0, import_jsx_runtime139.jsx)("div", { className: "w-full flex items-center justify-center p-(--ui-kit-pd)", children: /* @__PURE__ */ (0, import_jsx_runtime139.jsx)(import_lucide_react92.LoaderIcon, { className: "h-4 w-4 animate-spin" }) }),
|
|
34388
|
+
/* @__PURE__ */ (0, import_jsx_runtime139.jsx)("div", { ref: sentinelRef, "aria-hidden": true, className: "h-px w-full" })
|
|
34389
|
+
] })
|
|
33742
34390
|
] });
|
|
33743
34391
|
}
|
|
33744
|
-
var
|
|
33745
|
-
var
|
|
33746
|
-
"src/internal/components/
|
|
34392
|
+
var import_lucide_react92, import_react109, import_jsx_runtime139;
|
|
34393
|
+
var init_UserSecurityActivityMenu = __esm({
|
|
34394
|
+
"src/internal/components/UserSecurityActivityMenu/UserSecurityActivityMenu.tsx"() {
|
|
33747
34395
|
init_i18n();
|
|
33748
|
-
|
|
34396
|
+
import_lucide_react92 = require("lucide-react");
|
|
34397
|
+
import_react109 = require("react");
|
|
33749
34398
|
init_useLayoutDataStore();
|
|
33750
34399
|
init_Expandable2();
|
|
33751
34400
|
init_Onboarding();
|
|
33752
34401
|
init_button();
|
|
33753
34402
|
init_highlight();
|
|
33754
|
-
|
|
34403
|
+
init_filters();
|
|
34404
|
+
init_SecurityActivityFilter();
|
|
34405
|
+
init_UserSecurityActivityCard();
|
|
34406
|
+
init_useUserSecurityActivity();
|
|
34407
|
+
import_jsx_runtime139 = require("react/jsx-runtime");
|
|
33755
34408
|
}
|
|
33756
34409
|
});
|
|
33757
34410
|
|
|
33758
|
-
// src/internal/components/
|
|
33759
|
-
var
|
|
34411
|
+
// src/internal/components/UserSecurityActivityMenu/onboarding.setup.ts
|
|
34412
|
+
var USER_SECURITY_ACTIVITY_MENU_TOUR;
|
|
33760
34413
|
var init_onboarding_setup12 = __esm({
|
|
33761
|
-
"src/internal/components/
|
|
34414
|
+
"src/internal/components/UserSecurityActivityMenu/onboarding.setup.ts"() {
|
|
33762
34415
|
init_constants();
|
|
33763
|
-
|
|
34416
|
+
USER_SECURITY_ACTIVITY_MENU_TOUR = [
|
|
33764
34417
|
{
|
|
33765
|
-
elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"user-activity" /*
|
|
34418
|
+
elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"user-security-activity" /* USER_SECURITY_ACTIVITY */}`,
|
|
33766
34419
|
title: "passport:userActivityMenu.onboarding.title",
|
|
33767
34420
|
description: "passport:userActivityMenu.onboarding.description"
|
|
33768
34421
|
}
|
|
@@ -33770,10 +34423,10 @@ var init_onboarding_setup12 = __esm({
|
|
|
33770
34423
|
}
|
|
33771
34424
|
});
|
|
33772
34425
|
|
|
33773
|
-
// src/internal/components/
|
|
33774
|
-
var
|
|
33775
|
-
"src/internal/components/
|
|
33776
|
-
|
|
34426
|
+
// src/internal/components/UserSecurityActivityMenu/index.ts
|
|
34427
|
+
var init_UserSecurityActivityMenu2 = __esm({
|
|
34428
|
+
"src/internal/components/UserSecurityActivityMenu/index.ts"() {
|
|
34429
|
+
init_UserSecurityActivityMenu();
|
|
33777
34430
|
init_onboarding_setup12();
|
|
33778
34431
|
}
|
|
33779
34432
|
});
|
|
@@ -33803,7 +34456,7 @@ var init_PageMap = __esm({
|
|
|
33803
34456
|
init_SendMenu2();
|
|
33804
34457
|
init_SettingsMenu2();
|
|
33805
34458
|
init_TransactionsMenu2();
|
|
33806
|
-
|
|
34459
|
+
init_UserSecurityActivityMenu2();
|
|
33807
34460
|
PAGE_MAP = {
|
|
33808
34461
|
["auth" /* AUTH */]: {
|
|
33809
34462
|
key: "auth" /* AUTH */,
|
|
@@ -33811,11 +34464,11 @@ var init_PageMap = __esm({
|
|
|
33811
34464
|
description: "Authenticate to access your wallet",
|
|
33812
34465
|
component: AuthMenu
|
|
33813
34466
|
},
|
|
33814
|
-
["user-activity" /*
|
|
33815
|
-
key: "user-activity" /*
|
|
34467
|
+
["user-security-activity" /* USER_SECURITY_ACTIVITY */]: {
|
|
34468
|
+
key: "user-security-activity" /* USER_SECURITY_ACTIVITY */,
|
|
33816
34469
|
title: "User Activity",
|
|
33817
34470
|
description: "View your recent activity",
|
|
33818
|
-
component:
|
|
34471
|
+
component: UserSecurityActivityMenu
|
|
33819
34472
|
},
|
|
33820
34473
|
["languages" /* LANGUAGES */]: {
|
|
33821
34474
|
key: "languages" /* LANGUAGES */,
|
|
@@ -33962,12 +34615,12 @@ var init_PageMap = __esm({
|
|
|
33962
34615
|
// src/internal/hooks/usePageMapper.tsx
|
|
33963
34616
|
function usePageMapper() {
|
|
33964
34617
|
const page = useLayoutDataStore((st) => st.page);
|
|
33965
|
-
const closeTimeoutRef = (0,
|
|
33966
|
-
const cancelPendingClose = (0,
|
|
34618
|
+
const closeTimeoutRef = (0, import_react110.useRef)(null);
|
|
34619
|
+
const cancelPendingClose = (0, import_react110.useCallback)(() => {
|
|
33967
34620
|
if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current);
|
|
33968
34621
|
closeTimeoutRef.current = null;
|
|
33969
34622
|
}, []);
|
|
33970
|
-
const closeDialog = (0,
|
|
34623
|
+
const closeDialog = (0, import_react110.useCallback)(() => {
|
|
33971
34624
|
cancelPendingClose();
|
|
33972
34625
|
if (!useLayoutStore.getState().isDialogOpen) {
|
|
33973
34626
|
useLayoutStore.setState({ dialogContent: null, isDialogAnimating: false, isDialogForced: false });
|
|
@@ -33985,16 +34638,16 @@ function usePageMapper() {
|
|
|
33985
34638
|
});
|
|
33986
34639
|
}, CLEAR_DIALOG_TIMEOUT);
|
|
33987
34640
|
}, [cancelPendingClose]);
|
|
33988
|
-
const openDialog = (0,
|
|
34641
|
+
const openDialog = (0, import_react110.useCallback)((pageItem) => {
|
|
33989
34642
|
cancelPendingClose();
|
|
33990
34643
|
useLayoutStore.setState({
|
|
33991
|
-
dialogContent: /* @__PURE__ */ (0,
|
|
34644
|
+
dialogContent: /* @__PURE__ */ (0, import_jsx_runtime140.jsx)(pageItem.component, {}),
|
|
33992
34645
|
isDialogOpen: true,
|
|
33993
34646
|
isDialogAnimating: false
|
|
33994
34647
|
});
|
|
33995
34648
|
}, [cancelPendingClose]);
|
|
33996
|
-
(0,
|
|
33997
|
-
(0,
|
|
34649
|
+
(0, import_react110.useEffect)(() => cancelPendingClose, [cancelPendingClose]);
|
|
34650
|
+
(0, import_react110.useEffect)(() => {
|
|
33998
34651
|
if (page === null) return closeDialog();
|
|
33999
34652
|
const pageItem = PAGE_MAP[page];
|
|
34000
34653
|
if (!pageItem) {
|
|
@@ -34005,15 +34658,15 @@ function usePageMapper() {
|
|
|
34005
34658
|
openDialog(pageItem);
|
|
34006
34659
|
}, [page, closeDialog, openDialog]);
|
|
34007
34660
|
}
|
|
34008
|
-
var
|
|
34661
|
+
var import_react110, import_jsx_runtime140, CLEAR_DIALOG_TIMEOUT;
|
|
34009
34662
|
var init_usePageMapper = __esm({
|
|
34010
34663
|
"src/internal/hooks/usePageMapper.tsx"() {
|
|
34011
|
-
|
|
34664
|
+
import_react110 = require("react");
|
|
34012
34665
|
init_PageMap();
|
|
34013
34666
|
init_constants();
|
|
34014
34667
|
init_useLayoutDataStore();
|
|
34015
34668
|
init_useLayoutStore();
|
|
34016
|
-
|
|
34669
|
+
import_jsx_runtime140 = require("react/jsx-runtime");
|
|
34017
34670
|
CLEAR_DIALOG_TIMEOUT = MAIN_DIALOG_ANIMATION_SPEED + 5;
|
|
34018
34671
|
}
|
|
34019
34672
|
});
|
|
@@ -34029,7 +34682,7 @@ function useSettingsNotifications() {
|
|
|
34029
34682
|
const { data: keyshareReshare, isLoading: isKeyshareReshareLoading } = useKeyshareReshareCheck(address);
|
|
34030
34683
|
const { data: securityStatus, isLoading: isSecurityStatusLoading } = useSecurityStatus();
|
|
34031
34684
|
const { data: userProfile = null, isLoading: isUserProfileLoading } = useUserProfile();
|
|
34032
|
-
const { data: providers = [], isLoading: isProvidersLoading } = (0,
|
|
34685
|
+
const { data: providers = [], isLoading: isProvidersLoading } = (0, import_react_query63.useQuery)({
|
|
34033
34686
|
retry: false,
|
|
34034
34687
|
enabled: !!address,
|
|
34035
34688
|
queryKey: [PROVIDERS_QUERY_KEY, address],
|
|
@@ -34037,8 +34690,8 @@ function useSettingsNotifications() {
|
|
|
34037
34690
|
});
|
|
34038
34691
|
const isNotificationsLoading = isSessionLoading || //
|
|
34039
34692
|
isSecurityStatusLoading || isUserProfileLoading || isProvidersLoading || isKeyshareReshareLoading;
|
|
34040
|
-
(0,
|
|
34041
|
-
(0,
|
|
34693
|
+
(0, import_react111.useEffect)(() => useLayoutDataStore.setState({ isNotificationsLoading }), [isNotificationsLoading]);
|
|
34694
|
+
(0, import_react111.useEffect)(() => {
|
|
34042
34695
|
if (isNotificationsLoading || !keyshareReshare) return;
|
|
34043
34696
|
useLayoutDataStore.getState().setSettingsNotifications({
|
|
34044
34697
|
id: "keyshare-reshare-required",
|
|
@@ -34049,7 +34702,7 @@ function useSettingsNotifications() {
|
|
|
34049
34702
|
message: t("passport:securityMenu.keyshareReshare.notification")
|
|
34050
34703
|
});
|
|
34051
34704
|
}, [t, isNotificationsLoading, keyshareReshare]);
|
|
34052
|
-
(0,
|
|
34705
|
+
(0, import_react111.useEffect)(() => {
|
|
34053
34706
|
if (isNotificationsLoading || !backupWarning?.enabled || !securityStatus) return;
|
|
34054
34707
|
const isProtectedBackupMissing = !securityStatus?.level || securityStatus?.level === "basic";
|
|
34055
34708
|
useLayoutDataStore.getState().setSettingsNotifications({
|
|
@@ -34061,7 +34714,7 @@ function useSettingsNotifications() {
|
|
|
34061
34714
|
message: t("passport:securityMenu.securityLevel.basic.description")
|
|
34062
34715
|
});
|
|
34063
34716
|
}, [t, isNotificationsLoading, backupWarning, securityStatus]);
|
|
34064
|
-
(0,
|
|
34717
|
+
(0, import_react111.useEffect)(() => {
|
|
34065
34718
|
if (isNotificationsLoading || !isKYCconfigured || !kycNotCompletedWarning?.enabled) return;
|
|
34066
34719
|
const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
|
|
34067
34720
|
useLayoutDataStore.getState().setSettingsNotifications({
|
|
@@ -34074,7 +34727,7 @@ function useSettingsNotifications() {
|
|
|
34074
34727
|
});
|
|
34075
34728
|
}, [t, isNotificationsLoading, isKYCconfigured, kycNotCompletedWarning, userProfile]);
|
|
34076
34729
|
const hasEmail = providers.map((p) => p.provider).includes("email");
|
|
34077
|
-
(0,
|
|
34730
|
+
(0, import_react111.useEffect)(() => {
|
|
34078
34731
|
if (isNotificationsLoading || !emailNotConnectedWarning?.enabled) return;
|
|
34079
34732
|
useLayoutDataStore.getState().setSettingsNotifications({
|
|
34080
34733
|
id: "email-not-connected",
|
|
@@ -34086,14 +34739,14 @@ function useSettingsNotifications() {
|
|
|
34086
34739
|
});
|
|
34087
34740
|
}, [t, isNotificationsLoading, hasEmail]);
|
|
34088
34741
|
}
|
|
34089
|
-
var
|
|
34742
|
+
var import_react_query63, import_react111;
|
|
34090
34743
|
var init_useSettingsNotifications = __esm({
|
|
34091
34744
|
"src/internal/hooks/useSettingsNotifications.ts"() {
|
|
34092
34745
|
init_ProviderContext();
|
|
34093
34746
|
init_SessionContext();
|
|
34094
34747
|
init_i18n();
|
|
34095
|
-
|
|
34096
|
-
|
|
34748
|
+
import_react_query63 = require("@tanstack/react-query");
|
|
34749
|
+
import_react111 = require("react");
|
|
34097
34750
|
init_common();
|
|
34098
34751
|
init_ManageWalletMenu();
|
|
34099
34752
|
init_useKeyshareReshareCheck();
|
|
@@ -34104,42 +34757,42 @@ var init_useSettingsNotifications = __esm({
|
|
|
34104
34757
|
});
|
|
34105
34758
|
|
|
34106
34759
|
// src/internal/assets/embark-ai-dark.svg
|
|
34107
|
-
var React32,
|
|
34760
|
+
var React32, import_jsx_runtime141, SvgEmbarkAiDark, embark_ai_dark_default;
|
|
34108
34761
|
var init_embark_ai_dark = __esm({
|
|
34109
34762
|
"src/internal/assets/embark-ai-dark.svg"() {
|
|
34110
34763
|
React32 = __toESM(require("react"));
|
|
34111
|
-
|
|
34112
|
-
SvgEmbarkAiDark = (props) => /* @__PURE__ */ (0,
|
|
34113
|
-
/* @__PURE__ */ (0,
|
|
34114
|
-
/* @__PURE__ */ (0,
|
|
34115
|
-
/* @__PURE__ */ (0,
|
|
34116
|
-
/* @__PURE__ */ (0,
|
|
34117
|
-
/* @__PURE__ */ (0,
|
|
34118
|
-
/* @__PURE__ */ (0,
|
|
34119
|
-
/* @__PURE__ */ (0,
|
|
34120
|
-
/* @__PURE__ */ (0,
|
|
34121
|
-
/* @__PURE__ */ (0,
|
|
34122
|
-
/* @__PURE__ */ (0,
|
|
34123
|
-
/* @__PURE__ */ (0,
|
|
34124
|
-
/* @__PURE__ */ (0,
|
|
34764
|
+
import_jsx_runtime141 = require("react/jsx-runtime");
|
|
34765
|
+
SvgEmbarkAiDark = (props) => /* @__PURE__ */ (0, import_jsx_runtime141.jsxs)("svg", { width: 873, height: 152, viewBox: "0 0 873 152", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
|
|
34766
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)("g", { clipPath: "url(#clip0_753_38)", children: [
|
|
34767
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M245.901 51.1463C256.917 51.1463 265.796 54.985 272.537 62.6407C279.278 70.2963 282.288 80.0021 281.59 91.7582H220.901C221.359 98.2796 223.976 103.732 228.71 108.116C233.466 112.5 239.4 114.681 246.533 114.681C251.769 114.681 256.416 113.482 260.451 111.061C264.509 108.662 267.432 105.412 269.243 101.333H280.347C277.991 108.553 273.715 114.289 267.563 118.542C261.411 122.795 254.234 124.933 246.032 124.933C235.233 124.933 226.485 121.377 219.744 114.245C213.003 107.113 209.644 98.3887 209.644 88.0721C209.644 77.7556 213.069 69.0094 219.897 61.8555C226.725 54.7015 235.386 51.1245 245.901 51.1245V51.1463ZM262.197 67.1773C257.725 63.295 252.227 61.3538 245.661 61.3538C239.094 61.3538 233.575 63.3168 229.059 67.2646C224.544 71.1905 221.926 76.207 221.184 82.2704H270.29C269.374 76.1198 266.669 71.1033 262.197 67.1991V67.1773Z", fill: "#ffffff" }),
|
|
34768
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M379.584 51.2773C387.743 51.2773 394.157 53.9383 398.847 59.2383C403.537 64.5384 405.893 71.5178 405.893 80.1767V123.079H395.204V81.1364C395.204 75.1603 393.611 70.4055 390.448 66.8285C387.285 63.2733 382.944 61.4848 377.425 61.4848C371.905 61.4848 367.019 63.6659 363.288 68.0499C359.558 72.4121 357.704 77.9739 357.704 84.6698V123.057H347.014V81.1146C347.014 75.0512 345.422 70.231 342.258 66.6758C339.095 63.1206 334.798 61.3758 329.366 61.463C323.214 61.5503 318.349 64.1458 314.771 69.2059C311.215 74.266 309.427 80.0895 309.427 86.6764V123.057H298.803V52.9568H309.143V64.9091H309.427C311.695 60.8305 314.728 57.5371 318.524 55.0506C322.319 52.5424 326.704 51.2992 331.656 51.2992C337.066 51.2992 341.8 52.6514 345.814 55.3342C349.85 58.0169 352.861 61.7029 354.846 66.3705H355.129C357.398 61.8338 360.605 58.1914 364.772 55.4432C368.938 52.6951 373.869 51.321 379.562 51.321L379.584 51.2773Z", fill: "#ffffff" }),
|
|
34769
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M465.362 51.1464C475.68 51.0591 484.232 54.5053 491.016 61.5284C497.801 68.5297 501.182 77.3849 501.182 88.094C501.182 98.8031 497.823 107.506 491.082 114.551C484.341 121.596 475.767 125.063 465.362 124.976C459.384 124.889 454.039 123.558 449.284 120.985C444.528 118.411 440.732 114.965 437.853 110.603H437.569V123.1H426.945V20.6548H437.569V66.065H437.853C440.667 61.5284 444.463 57.9078 449.24 55.2032C454.018 52.4987 459.384 51.1464 465.362 51.1464ZM463.9 114.681C471.775 114.681 478.167 112.13 483.097 107.004C488.028 101.878 490.493 95.5751 490.493 88.094C490.493 80.6129 488.028 74.2659 483.097 69.0967C478.167 63.9276 471.775 61.3539 463.9 61.3539C456.025 61.3539 449.785 63.9276 444.899 69.0967C440.012 74.2659 437.569 80.5911 437.569 88.094C437.569 95.5969 440.012 101.9 444.899 107.004C449.785 112.108 456.112 114.681 463.9 114.681Z", fill: "#ffffff" }),
|
|
34770
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M577.993 65.52V52.9569H588.486V123.079H577.993V110.036H577.579C571.427 119.895 562.243 124.867 550.07 124.955C539.751 125.042 531.2 121.596 524.415 114.573C517.631 107.55 514.249 98.6943 514.249 87.9852C514.249 77.2761 517.609 68.4208 524.35 61.4632C531.091 54.5055 539.708 51.0594 550.223 51.1466C556.2 51.2339 561.545 52.5643 566.3 55.0944C571.056 57.6463 574.808 61.1142 577.579 65.52H577.993ZM551.684 114.682C559.363 114.682 565.668 112.086 570.598 106.873C575.528 101.661 577.993 95.3573 577.993 87.9634C577.993 80.5695 575.55 74.1571 570.663 69.0534C565.777 63.9496 559.45 61.3759 551.662 61.3759C543.874 61.3759 537.243 63.9278 532.312 69.0534C527.382 74.1789 524.917 80.4823 524.917 87.9634C524.917 95.4445 527.382 101.791 532.312 106.961C537.243 112.13 543.7 114.704 551.662 114.704L551.684 114.682Z", fill: "#ffffff" }),
|
|
34771
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M646.275 52.9565H658.644V63.6439H645.86C638.443 63.6439 632.575 65.9122 628.255 70.4925C623.936 75.051 621.755 81.4415 621.755 89.6861V123.079H611.131V52.9565H621.471V66.9155H621.885C625.921 57.6023 634.037 52.9565 646.253 52.9565H646.275Z", fill: "#ffffff" }),
|
|
34772
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M718.069 80.3075H718.898C724.221 80.3075 728.322 81.7034 731.223 84.4734C734.125 87.2434 735.564 91.3002 735.564 96.6221V123.079H724.875V98.0834C724.875 92.936 722.279 90.3842 717.087 90.3842H683.339V123.079H672.715V20.6548H683.339V80.3075H705.983L724.308 52.9567H736.11L718.047 80.3075H718.069Z", fill: "#ffffff" }),
|
|
34773
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M845.644 123.078H833.427L821.473 95.3787H774.526L762.724 123.078H750.508L792.175 27.8086H803.846L845.644 123.078ZM797.869 40.7206L779.108 84.8004H816.891L797.869 40.7206Z", fill: "#ffffff" }),
|
|
34774
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M862.114 123.078V27.8086H873.022V123.078H862.114Z", fill: "#ffffff" }),
|
|
34775
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M78.0984 35.29H157.811C157.811 15.8129 142.017 0 122.514 0H42.8014C42.8014 19.4771 58.5956 35.29 78.0984 35.29Z", fill: "url(#paint0_radial_753_38)" }),
|
|
34776
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M122.536 58.3442H43.434C43.434 38.8671 27.6398 23.0542 8.13706 23.0542H0V58.3442H42.8014C42.8014 77.8213 58.5956 93.6342 78.0984 93.6342H157.811C157.811 74.1571 142.017 58.3442 122.514 58.3442H122.536Z", fill: "url(#paint1_radial_753_38)" }),
|
|
34777
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("path", { d: "M122.536 116.71H43.4122C43.2159 97.4073 27.5089 81.8125 8.13706 81.8125H0V117.103H42.8232C43.0195 136.405 58.7265 152 78.0984 152H157.811C157.811 132.523 142.017 116.71 122.514 116.71H122.536Z", fill: "url(#paint2_radial_753_38)" })
|
|
34125
34778
|
] }),
|
|
34126
|
-
/* @__PURE__ */ (0,
|
|
34127
|
-
/* @__PURE__ */ (0,
|
|
34128
|
-
/* @__PURE__ */ (0,
|
|
34129
|
-
/* @__PURE__ */ (0,
|
|
34130
|
-
/* @__PURE__ */ (0,
|
|
34779
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)("defs", { children: [
|
|
34780
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)("radialGradient", { id: "paint0_radial_753_38", cx: 0, cy: 0, r: 1, gradientUnits: "userSpaceOnUse", gradientTransform: "translate(155.237 -5.71446) scale(164.617 164.585)", children: [
|
|
34781
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { stopColor: "#CCFFF8" }),
|
|
34782
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { offset: 0.36, stopColor: "#0DE4B3" }),
|
|
34783
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { offset: 1, stopColor: "#D13AFF" })
|
|
34131
34784
|
] }),
|
|
34132
|
-
/* @__PURE__ */ (0,
|
|
34133
|
-
/* @__PURE__ */ (0,
|
|
34134
|
-
/* @__PURE__ */ (0,
|
|
34135
|
-
/* @__PURE__ */ (0,
|
|
34785
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)("radialGradient", { id: "paint1_radial_753_38", cx: 0, cy: 0, r: 1, gradientUnits: "userSpaceOnUse", gradientTransform: "translate(145.158 -12.672) scale(185.429 185.392)", children: [
|
|
34786
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { stopColor: "#CCFFF8" }),
|
|
34787
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { offset: 0.36, stopColor: "#0DE4B3" }),
|
|
34788
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { offset: 1, stopColor: "#D13AFF" })
|
|
34136
34789
|
] }),
|
|
34137
|
-
/* @__PURE__ */ (0,
|
|
34138
|
-
/* @__PURE__ */ (0,
|
|
34139
|
-
/* @__PURE__ */ (0,
|
|
34140
|
-
/* @__PURE__ */ (0,
|
|
34790
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsxs)("radialGradient", { id: "paint2_radial_753_38", cx: 0, cy: 0, r: 1, gradientUnits: "userSpaceOnUse", gradientTransform: "translate(98.8446 35.3335) scale(138.221 138.194)", children: [
|
|
34791
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { stopColor: "#CCFFF8" }),
|
|
34792
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { offset: 0.36, stopColor: "#0DE4B3" }),
|
|
34793
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("stop", { offset: 1, stopColor: "#D13AFF" })
|
|
34141
34794
|
] }),
|
|
34142
|
-
/* @__PURE__ */ (0,
|
|
34795
|
+
/* @__PURE__ */ (0, import_jsx_runtime141.jsx)("clipPath", { id: "clip0_753_38", children: /* @__PURE__ */ (0, import_jsx_runtime141.jsx)("rect", { width: 873, height: 152, fill: "white" }) })
|
|
34143
34796
|
] })
|
|
34144
34797
|
] });
|
|
34145
34798
|
embark_ai_dark_default = SvgEmbarkAiDark;
|
|
@@ -34147,42 +34800,42 @@ var init_embark_ai_dark = __esm({
|
|
|
34147
34800
|
});
|
|
34148
34801
|
|
|
34149
34802
|
// src/internal/assets/embark-ai-light.svg
|
|
34150
|
-
var React33,
|
|
34803
|
+
var React33, import_jsx_runtime142, SvgEmbarkAiLight, embark_ai_light_default;
|
|
34151
34804
|
var init_embark_ai_light = __esm({
|
|
34152
34805
|
"src/internal/assets/embark-ai-light.svg"() {
|
|
34153
34806
|
React33 = __toESM(require("react"));
|
|
34154
|
-
|
|
34155
|
-
SvgEmbarkAiLight = (props) => /* @__PURE__ */ (0,
|
|
34156
|
-
/* @__PURE__ */ (0,
|
|
34157
|
-
/* @__PURE__ */ (0,
|
|
34158
|
-
/* @__PURE__ */ (0,
|
|
34159
|
-
/* @__PURE__ */ (0,
|
|
34160
|
-
/* @__PURE__ */ (0,
|
|
34161
|
-
/* @__PURE__ */ (0,
|
|
34162
|
-
/* @__PURE__ */ (0,
|
|
34163
|
-
/* @__PURE__ */ (0,
|
|
34164
|
-
/* @__PURE__ */ (0,
|
|
34165
|
-
/* @__PURE__ */ (0,
|
|
34166
|
-
/* @__PURE__ */ (0,
|
|
34167
|
-
/* @__PURE__ */ (0,
|
|
34807
|
+
import_jsx_runtime142 = require("react/jsx-runtime");
|
|
34808
|
+
SvgEmbarkAiLight = (props) => /* @__PURE__ */ (0, import_jsx_runtime142.jsxs)("svg", { width: 873, height: 152, viewBox: "0 0 873 152", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
|
|
34809
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsxs)("g", { clipPath: "url(#clip0_753_38)", children: [
|
|
34810
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M245.901 51.1463C256.917 51.1463 265.796 54.985 272.537 62.6407C279.278 70.2963 282.288 80.0021 281.59 91.7582H220.901C221.359 98.2796 223.976 103.732 228.71 108.116C233.466 112.5 239.4 114.681 246.533 114.681C251.769 114.681 256.416 113.482 260.451 111.061C264.509 108.662 267.432 105.412 269.243 101.333H280.347C277.991 108.553 273.715 114.289 267.563 118.542C261.411 122.795 254.234 124.933 246.032 124.933C235.233 124.933 226.485 121.377 219.744 114.245C213.003 107.113 209.644 98.3887 209.644 88.0721C209.644 77.7556 213.069 69.0094 219.897 61.8555C226.725 54.7015 235.386 51.1245 245.901 51.1245V51.1463ZM262.197 67.1773C257.725 63.295 252.227 61.3538 245.661 61.3538C239.094 61.3538 233.575 63.3168 229.059 67.2646C224.544 71.1905 221.926 76.207 221.184 82.2704H270.29C269.374 76.1198 266.669 71.1033 262.197 67.1991V67.1773Z", fill: "#2B2959" }),
|
|
34811
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M379.584 51.2773C387.743 51.2773 394.157 53.9383 398.847 59.2383C403.537 64.5384 405.893 71.5178 405.893 80.1767V123.079H395.204V81.1364C395.204 75.1603 393.611 70.4055 390.448 66.8285C387.285 63.2733 382.944 61.4848 377.425 61.4848C371.905 61.4848 367.019 63.6659 363.288 68.0499C359.558 72.4121 357.704 77.9739 357.704 84.6698V123.057H347.014V81.1146C347.014 75.0512 345.422 70.231 342.258 66.6758C339.095 63.1206 334.798 61.3758 329.366 61.463C323.214 61.5503 318.349 64.1458 314.771 69.2059C311.215 74.266 309.427 80.0895 309.427 86.6764V123.057H298.803V52.9568H309.143V64.9091H309.427C311.695 60.8305 314.728 57.5371 318.524 55.0506C322.319 52.5424 326.704 51.2992 331.656 51.2992C337.066 51.2992 341.8 52.6514 345.814 55.3342C349.85 58.0169 352.861 61.7029 354.846 66.3705H355.129C357.398 61.8338 360.605 58.1914 364.772 55.4432C368.938 52.6951 373.869 51.321 379.562 51.321L379.584 51.2773Z", fill: "#2B2959" }),
|
|
34812
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M465.362 51.1464C475.68 51.0591 484.232 54.5053 491.016 61.5284C497.801 68.5297 501.182 77.3849 501.182 88.094C501.182 98.8031 497.823 107.506 491.082 114.551C484.341 121.596 475.767 125.063 465.362 124.976C459.384 124.889 454.039 123.558 449.284 120.985C444.528 118.411 440.732 114.965 437.853 110.603H437.569V123.1H426.945V20.6548H437.569V66.065H437.853C440.667 61.5284 444.463 57.9078 449.24 55.2032C454.018 52.4987 459.384 51.1464 465.362 51.1464ZM463.9 114.681C471.775 114.681 478.167 112.13 483.097 107.004C488.028 101.878 490.493 95.5751 490.493 88.094C490.493 80.6129 488.028 74.2659 483.097 69.0967C478.167 63.9276 471.775 61.3539 463.9 61.3539C456.025 61.3539 449.785 63.9276 444.899 69.0967C440.012 74.2659 437.569 80.5911 437.569 88.094C437.569 95.5969 440.012 101.9 444.899 107.004C449.785 112.108 456.112 114.681 463.9 114.681Z", fill: "#2B2959" }),
|
|
34813
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M577.993 65.52V52.9569H588.486V123.079H577.993V110.036H577.579C571.427 119.895 562.243 124.867 550.07 124.955C539.751 125.042 531.2 121.596 524.415 114.573C517.631 107.55 514.249 98.6943 514.249 87.9852C514.249 77.2761 517.609 68.4208 524.35 61.4632C531.091 54.5055 539.708 51.0594 550.223 51.1466C556.2 51.2339 561.545 52.5643 566.3 55.0944C571.056 57.6463 574.808 61.1142 577.579 65.52H577.993ZM551.684 114.682C559.363 114.682 565.668 112.086 570.598 106.873C575.528 101.661 577.993 95.3573 577.993 87.9634C577.993 80.5695 575.55 74.1571 570.663 69.0534C565.777 63.9496 559.45 61.3759 551.662 61.3759C543.874 61.3759 537.243 63.9278 532.312 69.0534C527.382 74.1789 524.917 80.4823 524.917 87.9634C524.917 95.4445 527.382 101.791 532.312 106.961C537.243 112.13 543.7 114.704 551.662 114.704L551.684 114.682Z", fill: "#2B2959" }),
|
|
34814
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M646.275 52.9565H658.644V63.6439H645.86C638.443 63.6439 632.575 65.9122 628.255 70.4925C623.936 75.051 621.755 81.4415 621.755 89.6861V123.079H611.131V52.9565H621.471V66.9155H621.885C625.921 57.6023 634.037 52.9565 646.253 52.9565H646.275Z", fill: "#2B2959" }),
|
|
34815
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M718.069 80.3075H718.898C724.221 80.3075 728.322 81.7034 731.223 84.4734C734.125 87.2434 735.564 91.3002 735.564 96.6221V123.079H724.875V98.0834C724.875 92.936 722.279 90.3842 717.087 90.3842H683.339V123.079H672.715V20.6548H683.339V80.3075H705.983L724.308 52.9567H736.11L718.047 80.3075H718.069Z", fill: "#2B2959" }),
|
|
34816
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M845.644 123.078H833.427L821.473 95.3787H774.526L762.724 123.078H750.508L792.175 27.8086H803.846L845.644 123.078ZM797.869 40.7206L779.108 84.8004H816.891L797.869 40.7206Z", fill: "#2B2959" }),
|
|
34817
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M862.114 123.078V27.8086H873.022V123.078H862.114Z", fill: "#2B2959" }),
|
|
34818
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M78.0984 35.29H157.811C157.811 15.8129 142.017 0 122.514 0H42.8014C42.8014 19.4771 58.5956 35.29 78.0984 35.29Z", fill: "url(#paint0_radial_753_38)" }),
|
|
34819
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M122.536 58.3442H43.434C43.434 38.8671 27.6398 23.0542 8.13706 23.0542H0V58.3442H42.8014C42.8014 77.8213 58.5956 93.6342 78.0984 93.6342H157.811C157.811 74.1571 142.017 58.3442 122.514 58.3442H122.536Z", fill: "url(#paint1_radial_753_38)" }),
|
|
34820
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("path", { d: "M122.536 116.71H43.4122C43.2159 97.4073 27.5089 81.8125 8.13706 81.8125H0V117.103H42.8232C43.0195 136.405 58.7265 152 78.0984 152H157.811C157.811 132.523 142.017 116.71 122.514 116.71H122.536Z", fill: "url(#paint2_radial_753_38)" })
|
|
34168
34821
|
] }),
|
|
34169
|
-
/* @__PURE__ */ (0,
|
|
34170
|
-
/* @__PURE__ */ (0,
|
|
34171
|
-
/* @__PURE__ */ (0,
|
|
34172
|
-
/* @__PURE__ */ (0,
|
|
34173
|
-
/* @__PURE__ */ (0,
|
|
34822
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsxs)("defs", { children: [
|
|
34823
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsxs)("radialGradient", { id: "paint0_radial_753_38", cx: 0, cy: 0, r: 1, gradientUnits: "userSpaceOnUse", gradientTransform: "translate(155.237 -5.71446) scale(164.617 164.585)", children: [
|
|
34824
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { stopColor: "#CCFFF8" }),
|
|
34825
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { offset: 0.36, stopColor: "#0DE4B3" }),
|
|
34826
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { offset: 1, stopColor: "#D13AFF" })
|
|
34174
34827
|
] }),
|
|
34175
|
-
/* @__PURE__ */ (0,
|
|
34176
|
-
/* @__PURE__ */ (0,
|
|
34177
|
-
/* @__PURE__ */ (0,
|
|
34178
|
-
/* @__PURE__ */ (0,
|
|
34828
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsxs)("radialGradient", { id: "paint1_radial_753_38", cx: 0, cy: 0, r: 1, gradientUnits: "userSpaceOnUse", gradientTransform: "translate(145.158 -12.672) scale(185.429 185.392)", children: [
|
|
34829
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { stopColor: "#CCFFF8" }),
|
|
34830
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { offset: 0.36, stopColor: "#0DE4B3" }),
|
|
34831
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { offset: 1, stopColor: "#D13AFF" })
|
|
34179
34832
|
] }),
|
|
34180
|
-
/* @__PURE__ */ (0,
|
|
34181
|
-
/* @__PURE__ */ (0,
|
|
34182
|
-
/* @__PURE__ */ (0,
|
|
34183
|
-
/* @__PURE__ */ (0,
|
|
34833
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsxs)("radialGradient", { id: "paint2_radial_753_38", cx: 0, cy: 0, r: 1, gradientUnits: "userSpaceOnUse", gradientTransform: "translate(98.8446 35.3335) scale(138.221 138.194)", children: [
|
|
34834
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { stopColor: "#CCFFF8" }),
|
|
34835
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { offset: 0.36, stopColor: "#0DE4B3" }),
|
|
34836
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("stop", { offset: 1, stopColor: "#D13AFF" })
|
|
34184
34837
|
] }),
|
|
34185
|
-
/* @__PURE__ */ (0,
|
|
34838
|
+
/* @__PURE__ */ (0, import_jsx_runtime142.jsx)("clipPath", { id: "clip0_753_38", children: /* @__PURE__ */ (0, import_jsx_runtime142.jsx)("rect", { width: 873, height: 152, fill: "white" }) })
|
|
34186
34839
|
] })
|
|
34187
34840
|
] });
|
|
34188
34841
|
embark_ai_light_default = SvgEmbarkAiLight;
|
|
@@ -34195,7 +34848,7 @@ var init_package = __esm({
|
|
|
34195
34848
|
"package.json"() {
|
|
34196
34849
|
package_default = {
|
|
34197
34850
|
name: "@embarkai/ui-kit",
|
|
34198
|
-
version: "0.6.
|
|
34851
|
+
version: "0.6.12",
|
|
34199
34852
|
description: "React UI components and hooks for embarkAI authentication and Account Abstraction",
|
|
34200
34853
|
type: "module",
|
|
34201
34854
|
main: "./dist/index.cjs",
|
|
@@ -34300,7 +34953,7 @@ var init_package = __esm({
|
|
|
34300
34953
|
|
|
34301
34954
|
// src/internal/components/Footer/Footer.tsx
|
|
34302
34955
|
function Footer() {
|
|
34303
|
-
const qc = (0,
|
|
34956
|
+
const qc = (0, import_react_query64.useQueryClient)();
|
|
34304
34957
|
const { callbacksRef, config } = useProviderConfig();
|
|
34305
34958
|
const { t } = useT();
|
|
34306
34959
|
const address = useSession((st) => st.address);
|
|
@@ -34318,7 +34971,7 @@ function Footer() {
|
|
|
34318
34971
|
}
|
|
34319
34972
|
}
|
|
34320
34973
|
});
|
|
34321
|
-
const { mutate: disconnect, isPending: isDisconnecting } = (0,
|
|
34974
|
+
const { mutate: disconnect, isPending: isDisconnecting } = (0, import_react_query64.useMutation)({
|
|
34322
34975
|
mutationFn: async (disconnectAddress) => {
|
|
34323
34976
|
if (!disconnectAddress) throw new Error("No address to disconnect");
|
|
34324
34977
|
const { setError, setStatus, setIsLoading } = useSession.getState();
|
|
@@ -34354,16 +35007,16 @@ function Footer() {
|
|
|
34354
35007
|
useLayoutStore.getState().setIsDialogForced(false);
|
|
34355
35008
|
}
|
|
34356
35009
|
});
|
|
34357
|
-
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ (0,
|
|
35010
|
+
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || (() => /* @__PURE__ */ (0, import_jsx_runtime143.jsx)("div", { className: "flex-none w-4 h-4 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ (0, import_jsx_runtime143.jsx)("span", { className: "text-[var(--ui-kit-fg-inverted)] text-xs font-bold", children: chainConfig.name.charAt(0) }) }));
|
|
34358
35011
|
const EmbarkAiLogo = EMBARKAI_LOGOS[colorMode];
|
|
34359
|
-
return /* @__PURE__ */ (0,
|
|
35012
|
+
return /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
34360
35013
|
"div",
|
|
34361
35014
|
{
|
|
34362
35015
|
style: { borderTop: "1px solid var(--ui-kit-bd)" },
|
|
34363
35016
|
className: "relative w-full flex flex-col items-center p-[var(--ui-kit-pd)] pb-5",
|
|
34364
35017
|
children: [
|
|
34365
|
-
/* @__PURE__ */ (0,
|
|
34366
|
-
/* @__PURE__ */ (0,
|
|
35018
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)("div", { className: cn2("w-full flex justify-between", !!address ? "justify-between" : "justify-center"), children: [
|
|
35019
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
34367
35020
|
Button,
|
|
34368
35021
|
{
|
|
34369
35022
|
ref: (inst) => onboarder.registerElement(FOOTER_ONBOARDING_CHAIN_BUTTON, inst),
|
|
@@ -34379,12 +35032,12 @@ function Footer() {
|
|
|
34379
35032
|
useLayoutDataStore.getState().setPage("chain" /* CHAIN */);
|
|
34380
35033
|
},
|
|
34381
35034
|
children: [
|
|
34382
|
-
/* @__PURE__ */ (0,
|
|
34383
|
-
/* @__PURE__ */ (0,
|
|
35035
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(ChainIcon, { className: "flex-none w-6 h-6" }),
|
|
35036
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("span", { className: "text-xs font-bold", children: chainConfig.name || "embarkAI Wallet" })
|
|
34384
35037
|
]
|
|
34385
35038
|
}
|
|
34386
35039
|
),
|
|
34387
|
-
!!address ? /* @__PURE__ */ (0,
|
|
35040
|
+
!!address ? /* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
34388
35041
|
Button,
|
|
34389
35042
|
{
|
|
34390
35043
|
ref: (inst) => onboarder.registerElement(FOOTER_ONBOARDING_LOGOUT_BUTTON, inst),
|
|
@@ -34394,13 +35047,13 @@ function Footer() {
|
|
|
34394
35047
|
onClick: () => disconnect(address),
|
|
34395
35048
|
disabled: isDisconnecting || isDialogForced,
|
|
34396
35049
|
children: [
|
|
34397
|
-
/* @__PURE__ */ (0,
|
|
34398
|
-
isDisconnecting ? /* @__PURE__ */ (0,
|
|
35050
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("span", { children: t("passport:auth.logout") }),
|
|
35051
|
+
isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react93.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime143.jsx)(import_lucide_react93.LogOut, { className: "w-4 h-4" })
|
|
34399
35052
|
]
|
|
34400
35053
|
}
|
|
34401
35054
|
) : null
|
|
34402
35055
|
] }),
|
|
34403
|
-
/* @__PURE__ */ (0,
|
|
35056
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsxs)(
|
|
34404
35057
|
"div",
|
|
34405
35058
|
{
|
|
34406
35059
|
className: cn2(
|
|
@@ -34410,8 +35063,8 @@ function Footer() {
|
|
|
34410
35063
|
// 'text-[var(--ui-kit-fg-muted)]'
|
|
34411
35064
|
),
|
|
34412
35065
|
children: [
|
|
34413
|
-
/* @__PURE__ */ (0,
|
|
34414
|
-
/* @__PURE__ */ (0,
|
|
35066
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)(EmbarkAiLogo, { className: "h-2.5 w-auto" }),
|
|
35067
|
+
/* @__PURE__ */ (0, import_jsx_runtime143.jsx)("span", { className: "block font-mono text-[8px] leading-3 ", children: `${package_default.version}` })
|
|
34415
35068
|
]
|
|
34416
35069
|
}
|
|
34417
35070
|
)
|
|
@@ -34419,7 +35072,7 @@ function Footer() {
|
|
|
34419
35072
|
}
|
|
34420
35073
|
);
|
|
34421
35074
|
}
|
|
34422
|
-
var
|
|
35075
|
+
var import_react_query64, import_lucide_react93, import_jsx_runtime143, FOOTER_ONBOARDING_CHAIN_BUTTON, FOOTER_ONBOARDING_LOGOUT_BUTTON, EMBARKAI_LOGOS, FOOTER_TOUR;
|
|
34423
35076
|
var init_Footer = __esm({
|
|
34424
35077
|
"src/internal/components/Footer/Footer.tsx"() {
|
|
34425
35078
|
init_embark_ai_dark();
|
|
@@ -34430,8 +35083,8 @@ var init_Footer = __esm({
|
|
|
34430
35083
|
init_SessionContext();
|
|
34431
35084
|
init_i18n();
|
|
34432
35085
|
init_useSafeDisconnect();
|
|
34433
|
-
|
|
34434
|
-
|
|
35086
|
+
import_react_query64 = require("@tanstack/react-query");
|
|
35087
|
+
import_lucide_react93 = require("lucide-react");
|
|
34435
35088
|
init_auth();
|
|
34436
35089
|
init_base();
|
|
34437
35090
|
init_useLayoutDataStore();
|
|
@@ -34441,7 +35094,7 @@ var init_Footer = __esm({
|
|
|
34441
35094
|
init_constants5();
|
|
34442
35095
|
init_Onboarding();
|
|
34443
35096
|
init_button();
|
|
34444
|
-
|
|
35097
|
+
import_jsx_runtime143 = require("react/jsx-runtime");
|
|
34445
35098
|
FOOTER_ONBOARDING_CHAIN_BUTTON = "embark-footer-chain-button";
|
|
34446
35099
|
FOOTER_ONBOARDING_LOGOUT_BUTTON = "embark-footer-logout-button";
|
|
34447
35100
|
EMBARKAI_LOGOS = {
|
|
@@ -34488,7 +35141,7 @@ var init_onborading_setup = __esm({
|
|
|
34488
35141
|
init_SendMenu2();
|
|
34489
35142
|
init_SettingsMenu2();
|
|
34490
35143
|
init_TransactionsMenu2();
|
|
34491
|
-
|
|
35144
|
+
init_UserSecurityActivityMenu2();
|
|
34492
35145
|
EMBARKAI_HEADER_ONBOARDING_ID = "embark-header-user-section";
|
|
34493
35146
|
EMBARKAI_HEADER_TOUR_BUTTON_ID = "embark-header-tour-button-section";
|
|
34494
35147
|
ONBOARDING_TOURS = {
|
|
@@ -34506,7 +35159,7 @@ var init_onborading_setup = __esm({
|
|
|
34506
35159
|
...MAIN_MENU_TOUR,
|
|
34507
35160
|
...FOOTER_TOUR
|
|
34508
35161
|
],
|
|
34509
|
-
["user-activity" /*
|
|
35162
|
+
["user-security-activity" /* USER_SECURITY_ACTIVITY */]: () => USER_SECURITY_ACTIVITY_MENU_TOUR,
|
|
34510
35163
|
["settings" /* SETTINGS */]: () => SETTINGS_MENU_TOUR,
|
|
34511
35164
|
["buy" /* BUY */]: () => BUY_MENU_BINANCE_TOUR,
|
|
34512
35165
|
["send" /* SEND */]: () => {
|
|
@@ -34545,11 +35198,11 @@ function Header() {
|
|
|
34545
35198
|
const embarkPage = useLayoutDataStore((st) => st.page);
|
|
34546
35199
|
const isOnboardingTourAvailable = useOnboardingStore((st) => st.isTourAvailable);
|
|
34547
35200
|
const proMode = useProMode();
|
|
34548
|
-
const [proToast, setProToast] = (0,
|
|
34549
|
-
const [copied, setCopied] = (0,
|
|
34550
|
-
const clickCountRef = (0,
|
|
34551
|
-
const clickTimerRef = (0,
|
|
34552
|
-
const handleAvatarClick = (0,
|
|
35201
|
+
const [proToast, setProToast] = (0, import_react112.useState)(false);
|
|
35202
|
+
const [copied, setCopied] = (0, import_react112.useState)(false);
|
|
35203
|
+
const clickCountRef = (0, import_react112.useRef)(0);
|
|
35204
|
+
const clickTimerRef = (0, import_react112.useRef)(null);
|
|
35205
|
+
const handleAvatarClick = (0, import_react112.useCallback)(() => {
|
|
34553
35206
|
clickCountRef.current += 1;
|
|
34554
35207
|
if (clickTimerRef.current) {
|
|
34555
35208
|
clearTimeout(clickTimerRef.current);
|
|
@@ -34571,34 +35224,34 @@ function Header() {
|
|
|
34571
35224
|
const avatar = profile?.avatar || null;
|
|
34572
35225
|
const displayName = profile?.nicknameDisplay || profile?.displayName;
|
|
34573
35226
|
const ChainIcon = NETWORK_OPTIONS.find((net) => net.chainId === chainConfig.id)?.Icon || null;
|
|
34574
|
-
return /* @__PURE__ */ (0,
|
|
35227
|
+
return /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
|
|
34575
35228
|
"div",
|
|
34576
35229
|
{
|
|
34577
35230
|
ref: (inst) => onboarder.registerElement(EMBARKAI_HEADER_ONBOARDING_ID, inst),
|
|
34578
35231
|
style: { borderBottom: "1px solid var(--ui-kit-bd)" },
|
|
34579
35232
|
className: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)] pt-5",
|
|
34580
35233
|
children: [
|
|
34581
|
-
/* @__PURE__ */ (0,
|
|
34582
|
-
/* @__PURE__ */ (0,
|
|
35234
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsxs)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
35235
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
|
|
34583
35236
|
"div",
|
|
34584
35237
|
{
|
|
34585
35238
|
className: "relative flex-none w-12 h-12 flex items-center justify-center cursor-pointer select-none",
|
|
34586
35239
|
onClick: handleAvatarClick,
|
|
34587
35240
|
children: [
|
|
34588
|
-
proMode && /* @__PURE__ */ (0,
|
|
34589
|
-
avatar ? /* @__PURE__ */ (0,
|
|
35241
|
+
proMode && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("span", { className: "absolute -top-1 -right-1 text-[8px] font-bold px-1 rounded bg-[var(--ui-kit-primary)] text-[var(--ui-kit-fg-inverted)] leading-3", children: "PRO" }),
|
|
35242
|
+
avatar ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("img", { src: avatar, alt: displayName, className: "w-full h-full object-cover rounded-full" }) : /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(lumia_default2, { className: "w-12 h-12" })
|
|
34590
35243
|
]
|
|
34591
35244
|
}
|
|
34592
35245
|
),
|
|
34593
|
-
/* @__PURE__ */ (0,
|
|
35246
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(
|
|
34594
35247
|
"div",
|
|
34595
35248
|
{
|
|
34596
35249
|
style: { width: "calc(100% - 48px - var(--ui-kit-gap))" },
|
|
34597
35250
|
className: "flex-1 flex flex-col justify-center gap-1",
|
|
34598
35251
|
children: [
|
|
34599
|
-
isProfileLoading && /* @__PURE__ */ (0,
|
|
34600
|
-
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ (0,
|
|
34601
|
-
/* @__PURE__ */ (0,
|
|
35252
|
+
isProfileLoading && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react94.Loader, { className: "w-4 h-4 animate-spin" }),
|
|
35253
|
+
!!address && !isProfileLoading && !!profile && /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)(import_jsx_runtime144.Fragment, { children: [
|
|
35254
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
34602
35255
|
"span",
|
|
34603
35256
|
{
|
|
34604
35257
|
className: cn2(
|
|
@@ -34608,19 +35261,19 @@ function Header() {
|
|
|
34608
35261
|
children: displayName || config.current?.ui?.title || "embarkAI"
|
|
34609
35262
|
}
|
|
34610
35263
|
) }),
|
|
34611
|
-
/* @__PURE__ */ (0,
|
|
35264
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)(BalanceView, {})
|
|
34612
35265
|
] })
|
|
34613
35266
|
]
|
|
34614
35267
|
}
|
|
34615
35268
|
)
|
|
34616
35269
|
] }),
|
|
34617
|
-
!!address && /* @__PURE__ */ (0,
|
|
34618
|
-
/* @__PURE__ */ (0,
|
|
34619
|
-
!!ChainIcon ? /* @__PURE__ */ (0,
|
|
34620
|
-
/* @__PURE__ */ (0,
|
|
35270
|
+
!!address && /* @__PURE__ */ (0, import_jsx_runtime144.jsxs)("div", { className: "w-full flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
|
|
35271
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsxs)("div", { className: "flex items-center w-fit text-[10px] px-2 leading-6 text-[var(--ui-kit-fg)] gap-2", children: [
|
|
35272
|
+
!!ChainIcon ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(ChainIcon, { className: "flex-none w-6 h-6" }) : /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("div", { className: "flex-none w-6 h-6 rounded-full flex items-center justify-center bg-[var(--ui-kit-primary)]", children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("span", { className: "text-[var(--ui-kit-fg-inverted)] text-sm font-bold", children: chainConfig.name.charAt(0) }) }),
|
|
35273
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)("span", { className: cn2("transition-colors", copied && "text-[var(--ui-kit-bg-success)]"), children: formatAddress3(address) })
|
|
34621
35274
|
] }),
|
|
34622
|
-
/* @__PURE__ */ (0,
|
|
34623
|
-
/* @__PURE__ */ (0,
|
|
35275
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsxs)("div", { className: "w-fit flex items-center", children: [
|
|
35276
|
+
/* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
34624
35277
|
Button,
|
|
34625
35278
|
{
|
|
34626
35279
|
size: "small",
|
|
@@ -34631,10 +35284,10 @@ function Header() {
|
|
|
34631
35284
|
setCopied(true);
|
|
34632
35285
|
setTimeout(() => setCopied(false), 1500);
|
|
34633
35286
|
},
|
|
34634
|
-
children: copied ? /* @__PURE__ */ (0,
|
|
35287
|
+
children: copied ? /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(PositiveIcon, {}) : /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react94.Copy, { className: "w-4 h-4" })
|
|
34635
35288
|
}
|
|
34636
35289
|
),
|
|
34637
|
-
!!isOnboardingTourAvailable && ONBOARDING_TOURS[embarkPage] && /* @__PURE__ */ (0,
|
|
35290
|
+
!!isOnboardingTourAvailable && ONBOARDING_TOURS[embarkPage] && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(
|
|
34638
35291
|
Button,
|
|
34639
35292
|
{
|
|
34640
35293
|
ref: (inst) => onboarder.registerElement(EMBARKAI_HEADER_TOUR_BUTTON_ID, inst),
|
|
@@ -34642,25 +35295,25 @@ function Header() {
|
|
|
34642
35295
|
variant: "ghost",
|
|
34643
35296
|
className: "text-[10px] px-2",
|
|
34644
35297
|
onClick: () => onboarder.startTour(ONBOARDING_TOURS[embarkPage]({ config: config.current })),
|
|
34645
|
-
children: /* @__PURE__ */ (0,
|
|
35298
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime144.jsx)(import_lucide_react94.CircleQuestionMarkIcon, { className: "w-4 h-4" })
|
|
34646
35299
|
}
|
|
34647
35300
|
)
|
|
34648
35301
|
] })
|
|
34649
35302
|
] }),
|
|
34650
|
-
proToast && /* @__PURE__ */ (0,
|
|
35303
|
+
proToast && /* @__PURE__ */ (0, import_jsx_runtime144.jsx)("div", { className: "text-xs text-center text-[var(--ui-kit-primary)] font-medium animate-pulse", children: "Pro Mode activated" })
|
|
34651
35304
|
]
|
|
34652
35305
|
}
|
|
34653
35306
|
);
|
|
34654
35307
|
}
|
|
34655
|
-
var
|
|
35308
|
+
var import_lucide_react94, import_react112, import_jsx_runtime144;
|
|
34656
35309
|
var init_Header = __esm({
|
|
34657
35310
|
"src/internal/components/Header/Header.tsx"() {
|
|
34658
35311
|
init_lumia2();
|
|
34659
35312
|
init_networks3();
|
|
34660
35313
|
init_ProviderContext();
|
|
34661
35314
|
init_SessionContext();
|
|
34662
|
-
|
|
34663
|
-
|
|
35315
|
+
import_lucide_react94 = require("lucide-react");
|
|
35316
|
+
import_react112 = require("react");
|
|
34664
35317
|
init_icons();
|
|
34665
35318
|
init_useLayoutDataStore();
|
|
34666
35319
|
init_useUserProfile();
|
|
@@ -34670,7 +35323,7 @@ var init_Header = __esm({
|
|
|
34670
35323
|
init_Onboarding();
|
|
34671
35324
|
init_button();
|
|
34672
35325
|
init_onborading_setup();
|
|
34673
|
-
|
|
35326
|
+
import_jsx_runtime144 = require("react/jsx-runtime");
|
|
34674
35327
|
}
|
|
34675
35328
|
});
|
|
34676
35329
|
|
|
@@ -34693,7 +35346,7 @@ function useDecideContentStyles() {
|
|
|
34693
35346
|
style: (0, import_lodash_es16.merge)({}, mobileStyles)
|
|
34694
35347
|
};
|
|
34695
35348
|
}
|
|
34696
|
-
var DialogPrimitive, import_lodash_es16,
|
|
35349
|
+
var DialogPrimitive, import_lodash_es16, import_lucide_react95, import_react113, import_jsx_runtime145, Dialog, DialogPortal, DialogOverlay, CONTENT_BG_SETUP, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription;
|
|
34697
35350
|
var init_dialog = __esm({
|
|
34698
35351
|
"src/internal/components/ui/dialog.tsx"() {
|
|
34699
35352
|
init_utils();
|
|
@@ -34701,16 +35354,16 @@ var init_dialog = __esm({
|
|
|
34701
35354
|
init_i18n();
|
|
34702
35355
|
DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
|
|
34703
35356
|
import_lodash_es16 = require("lodash-es");
|
|
34704
|
-
|
|
34705
|
-
|
|
35357
|
+
import_lucide_react95 = require("lucide-react");
|
|
35358
|
+
import_react113 = require("react");
|
|
34706
35359
|
init_useLayoutDataStore();
|
|
34707
35360
|
init_useLayoutStore();
|
|
34708
35361
|
init_button();
|
|
34709
|
-
|
|
35362
|
+
import_jsx_runtime145 = require("react/jsx-runtime");
|
|
34710
35363
|
Dialog = DialogPrimitive.Root;
|
|
34711
35364
|
DialogPortal = DialogPrimitive.Portal;
|
|
34712
|
-
DialogOverlay = (0,
|
|
34713
|
-
({ className, closing, ...props }, ref) => /* @__PURE__ */ (0,
|
|
35365
|
+
DialogOverlay = (0, import_react113.forwardRef)(
|
|
35366
|
+
({ className, closing, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
34714
35367
|
DialogPrimitive.Overlay,
|
|
34715
35368
|
{
|
|
34716
35369
|
ref,
|
|
@@ -34731,7 +35384,7 @@ var init_dialog = __esm({
|
|
|
34731
35384
|
border: "1px solid var(--ui-kit-bd)",
|
|
34732
35385
|
boxShadow: "var(--ui-kit-shadow, 0px 4px 10px var(--ui-kit-shadow-c, rgba(0, 0, 0, 0.1)))"
|
|
34733
35386
|
};
|
|
34734
|
-
DialogContent = (0,
|
|
35387
|
+
DialogContent = (0, import_react113.forwardRef)(
|
|
34735
35388
|
({ className, children, colorMode, ...props }, ref) => {
|
|
34736
35389
|
const { t, i18n } = useT();
|
|
34737
35390
|
const isSessionLoading = useSession((st) => st.isLoading);
|
|
@@ -34742,7 +35395,7 @@ var init_dialog = __esm({
|
|
|
34742
35395
|
const { isMobileView, isClosing, style } = useDecideContentStyles();
|
|
34743
35396
|
const animationCnPrefix = isMobileView ? "animate-mobile-dialog" : "animate-dialog";
|
|
34744
35397
|
const dialogAnimationCn = isClosing ? `${animationCnPrefix}-out` : `${animationCnPrefix}-in`;
|
|
34745
|
-
return /* @__PURE__ */ (0,
|
|
35398
|
+
return /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(DialogPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
34746
35399
|
"div",
|
|
34747
35400
|
{
|
|
34748
35401
|
"data-purpose": "embarkai-ui-container",
|
|
@@ -34750,8 +35403,8 @@ var init_dialog = __esm({
|
|
|
34750
35403
|
"data-current-theme-mode": colorMode,
|
|
34751
35404
|
style: { ...style, outline: "none" },
|
|
34752
35405
|
children: [
|
|
34753
|
-
/* @__PURE__ */ (0,
|
|
34754
|
-
/* @__PURE__ */ (0,
|
|
35406
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(DialogOverlay, { closing: isClosing }),
|
|
35407
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
34755
35408
|
"div",
|
|
34756
35409
|
{
|
|
34757
35410
|
className: cn2(
|
|
@@ -34763,7 +35416,7 @@ var init_dialog = __esm({
|
|
|
34763
35416
|
// allows to embuff embark content menu via --ui-kit-content-maw
|
|
34764
35417
|
isMobileView ? "items-end w-dvw h-dvh" : "items-center w-[var(--ui-kit-content-maw,var(--ui-kit-maw))] mx-auto"
|
|
34765
35418
|
),
|
|
34766
|
-
children: /* @__PURE__ */ (0,
|
|
35419
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
34767
35420
|
DialogPrimitive.Content,
|
|
34768
35421
|
{
|
|
34769
35422
|
ref,
|
|
@@ -34780,7 +35433,7 @@ var init_dialog = __esm({
|
|
|
34780
35433
|
...props,
|
|
34781
35434
|
children: [
|
|
34782
35435
|
children,
|
|
34783
|
-
!isDialogForced && /* @__PURE__ */ (0,
|
|
35436
|
+
!isDialogForced && /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
34784
35437
|
"div",
|
|
34785
35438
|
{
|
|
34786
35439
|
className: cn2(
|
|
@@ -34788,7 +35441,7 @@ var init_dialog = __esm({
|
|
|
34788
35441
|
"absolute right-[var(--ui-kit-pd)] top-[var(--ui-kit-pd)]"
|
|
34789
35442
|
),
|
|
34790
35443
|
children: [
|
|
34791
|
-
!isSessionLoading && /* @__PURE__ */ (0,
|
|
35444
|
+
!isSessionLoading && /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
34792
35445
|
Button,
|
|
34793
35446
|
{
|
|
34794
35447
|
variant: "ghost",
|
|
@@ -34796,12 +35449,12 @@ var init_dialog = __esm({
|
|
|
34796
35449
|
className: "relative w-4 h-4",
|
|
34797
35450
|
onClick: () => setPage("languages" /* LANGUAGES */),
|
|
34798
35451
|
children: [
|
|
34799
|
-
/* @__PURE__ */ (0,
|
|
34800
|
-
/* @__PURE__ */ (0,
|
|
35452
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "sr-only", children: t("passport:common.language") }),
|
|
35453
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "w-4 h-4 leading-4 block text-[10px] font-bold", children: getLanguageIcon(i18n.resolvedLanguage) || i18n.resolvedLanguage?.toUpperCase() })
|
|
34801
35454
|
]
|
|
34802
35455
|
}
|
|
34803
35456
|
),
|
|
34804
|
-
isSettings && /* @__PURE__ */ (0,
|
|
35457
|
+
isSettings && /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(
|
|
34805
35458
|
Button,
|
|
34806
35459
|
{
|
|
34807
35460
|
variant: "ghost",
|
|
@@ -34809,10 +35462,10 @@ var init_dialog = __esm({
|
|
|
34809
35462
|
className: "relative w-4 h-4",
|
|
34810
35463
|
onClick: () => setPage("settings" /* SETTINGS */),
|
|
34811
35464
|
children: [
|
|
34812
|
-
/* @__PURE__ */ (0,
|
|
34813
|
-
/* @__PURE__ */ (0,
|
|
34814
|
-
!!settingsNotifications.length && /* @__PURE__ */ (0,
|
|
34815
|
-
/* @__PURE__ */ (0,
|
|
35465
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "sr-only", children: t("passport:common.settings") }),
|
|
35466
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_lucide_react95.SlidersHorizontal, { className: "w-4 h-4" }),
|
|
35467
|
+
!!settingsNotifications.length && /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(import_jsx_runtime145.Fragment, { children: [
|
|
35468
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
34816
35469
|
"div",
|
|
34817
35470
|
{
|
|
34818
35471
|
className: cn2(
|
|
@@ -34821,7 +35474,7 @@ var init_dialog = __esm({
|
|
|
34821
35474
|
)
|
|
34822
35475
|
}
|
|
34823
35476
|
),
|
|
34824
|
-
/* @__PURE__ */ (0,
|
|
35477
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
34825
35478
|
"div",
|
|
34826
35479
|
{
|
|
34827
35480
|
className: cn2(
|
|
@@ -34834,9 +35487,9 @@ var init_dialog = __esm({
|
|
|
34834
35487
|
]
|
|
34835
35488
|
}
|
|
34836
35489
|
),
|
|
34837
|
-
/* @__PURE__ */ (0,
|
|
34838
|
-
/* @__PURE__ */ (0,
|
|
34839
|
-
/* @__PURE__ */ (0,
|
|
35490
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime145.jsxs)(Button, { variant: "ghost", size: "icon", className: "w-4 h-4", children: [
|
|
35491
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)(import_lucide_react95.X, { className: "h-4 w-4" }),
|
|
35492
|
+
/* @__PURE__ */ (0, import_jsx_runtime145.jsx)("span", { className: "sr-only", children: t("passport:common.close") })
|
|
34840
35493
|
] }) })
|
|
34841
35494
|
]
|
|
34842
35495
|
}
|
|
@@ -34852,11 +35505,11 @@ var init_dialog = __esm({
|
|
|
34852
35505
|
}
|
|
34853
35506
|
);
|
|
34854
35507
|
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
34855
|
-
DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
35508
|
+
DialogHeader = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: cn2("flex flex-col space-y-1.5 text-center sm:text-left", className), ...props });
|
|
34856
35509
|
DialogHeader.displayName = "DialogHeader";
|
|
34857
|
-
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0,
|
|
35510
|
+
DialogFooter = ({ className, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime145.jsx)("div", { className: cn2("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className), ...props });
|
|
34858
35511
|
DialogFooter.displayName = "DialogFooter";
|
|
34859
|
-
DialogTitle = (0,
|
|
35512
|
+
DialogTitle = (0, import_react113.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(
|
|
34860
35513
|
DialogPrimitive.Title,
|
|
34861
35514
|
{
|
|
34862
35515
|
ref,
|
|
@@ -34865,17 +35518,17 @@ var init_dialog = __esm({
|
|
|
34865
35518
|
}
|
|
34866
35519
|
));
|
|
34867
35520
|
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
34868
|
-
DialogDescription = (0,
|
|
35521
|
+
DialogDescription = (0, import_react113.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime145.jsx)(DialogPrimitive.Description, { ref, className: cn2("text-sm text-muted-foreground", className), ...props }));
|
|
34869
35522
|
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
34870
35523
|
}
|
|
34871
35524
|
});
|
|
34872
35525
|
|
|
34873
35526
|
// src/internal/components/ui/visually-hidden.tsx
|
|
34874
|
-
var
|
|
35527
|
+
var import_jsx_runtime146, VisuallyHidden;
|
|
34875
35528
|
var init_visually_hidden = __esm({
|
|
34876
35529
|
"src/internal/components/ui/visually-hidden.tsx"() {
|
|
34877
|
-
|
|
34878
|
-
VisuallyHidden = ({ children }) => /* @__PURE__ */ (0,
|
|
35530
|
+
import_jsx_runtime146 = require("react/jsx-runtime");
|
|
35531
|
+
VisuallyHidden = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime146.jsx)("span", { className: "sr-only absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children });
|
|
34879
35532
|
}
|
|
34880
35533
|
});
|
|
34881
35534
|
|
|
@@ -34887,7 +35540,7 @@ function Dialog2() {
|
|
|
34887
35540
|
const { colorMode, maxScrollHeight, isDialogOpen, dialogContent, isDialogForced, isBackupRequired } = useLayoutStore();
|
|
34888
35541
|
const page = useLayoutDataStore((st) => st.page);
|
|
34889
35542
|
const transitionPageHeight = useLayoutDataStore((st) => st.transitionPageHeight);
|
|
34890
|
-
(0,
|
|
35543
|
+
(0, import_react115.useEffect)(() => useLayoutStore.setState({ isSettings: !!session }), [session]);
|
|
34891
35544
|
usePageMapper();
|
|
34892
35545
|
useAutoConnect();
|
|
34893
35546
|
useBackupStatusChanges();
|
|
@@ -34896,7 +35549,7 @@ function Dialog2() {
|
|
|
34896
35549
|
useListenIframeAuthEvents();
|
|
34897
35550
|
useAllowExternalModalsScroll(isDialogOpen);
|
|
34898
35551
|
const isHeaderHidden = !session || isBackupRequired;
|
|
34899
|
-
return /* @__PURE__ */ (0,
|
|
35552
|
+
return /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
34900
35553
|
Dialog,
|
|
34901
35554
|
{
|
|
34902
35555
|
open: isDialogOpen,
|
|
@@ -34908,25 +35561,25 @@ function Dialog2() {
|
|
|
34908
35561
|
setPage(null);
|
|
34909
35562
|
}
|
|
34910
35563
|
},
|
|
34911
|
-
children: /* @__PURE__ */ (0,
|
|
35564
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime147.jsxs)(
|
|
34912
35565
|
DialogContent,
|
|
34913
35566
|
{
|
|
34914
35567
|
ref: (inst) => onboarder.registerElement(EMBARKAI_DIALOG_ONBOARDING_ID, inst),
|
|
34915
35568
|
colorMode,
|
|
34916
35569
|
className,
|
|
34917
35570
|
children: [
|
|
34918
|
-
/* @__PURE__ */ (0,
|
|
34919
|
-
/* @__PURE__ */ (0,
|
|
34920
|
-
!isHeaderHidden && /* @__PURE__ */ (0,
|
|
34921
|
-
/* @__PURE__ */ (0,
|
|
34922
|
-
|
|
35571
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(DialogTitle, { children: "embarkAI" }) }),
|
|
35572
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(DialogDescription, { className: "sr-only", children: "embarkAI wallet" }),
|
|
35573
|
+
!isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(Header, {}),
|
|
35574
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(import_react114.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
35575
|
+
import_react114.motion.div,
|
|
34923
35576
|
{
|
|
34924
35577
|
style: { overflow: "hidden" },
|
|
34925
35578
|
initial: { opacity: 0, height: transitionPageHeight },
|
|
34926
35579
|
animate: { opacity: 1, height: "auto" },
|
|
34927
35580
|
exit: { opacity: 0, height: transitionPageHeight },
|
|
34928
35581
|
transition: Y_ANIMATION_SETUP,
|
|
34929
|
-
children: /* @__PURE__ */ (0,
|
|
35582
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime147.jsx)(
|
|
34930
35583
|
"div",
|
|
34931
35584
|
{
|
|
34932
35585
|
ref: (inst) => onboarder.registerElement(`${EMBARKAI_DIALOG_ONBOARDING_ID}-${page}`, inst),
|
|
@@ -34941,20 +35594,20 @@ function Dialog2() {
|
|
|
34941
35594
|
},
|
|
34942
35595
|
page || "empty"
|
|
34943
35596
|
) }),
|
|
34944
|
-
/* @__PURE__ */ (0,
|
|
35597
|
+
/* @__PURE__ */ (0, import_jsx_runtime147.jsx)(Footer, {})
|
|
34945
35598
|
]
|
|
34946
35599
|
}
|
|
34947
35600
|
)
|
|
34948
35601
|
}
|
|
34949
35602
|
);
|
|
34950
35603
|
}
|
|
34951
|
-
var
|
|
35604
|
+
var import_react114, import_react115, import_jsx_runtime147;
|
|
34952
35605
|
var init_Dialog = __esm({
|
|
34953
35606
|
"src/internal/components/Dialog/Dialog.tsx"() {
|
|
34954
35607
|
init_ProviderContext();
|
|
34955
35608
|
init_SessionContext();
|
|
34956
|
-
|
|
34957
|
-
|
|
35609
|
+
import_react114 = require("motion/react");
|
|
35610
|
+
import_react115 = require("react");
|
|
34958
35611
|
init_constants();
|
|
34959
35612
|
init_useAllowExternalModalsScroll();
|
|
34960
35613
|
init_useAutoConnect();
|
|
@@ -34970,7 +35623,7 @@ var init_Dialog = __esm({
|
|
|
34970
35623
|
init_Onboarding();
|
|
34971
35624
|
init_dialog();
|
|
34972
35625
|
init_visually_hidden();
|
|
34973
|
-
|
|
35626
|
+
import_jsx_runtime147 = require("react/jsx-runtime");
|
|
34974
35627
|
}
|
|
34975
35628
|
});
|
|
34976
35629
|
|
|
@@ -34989,12 +35642,12 @@ function DirectWalletHandler() {
|
|
|
34989
35642
|
const externalConnectorName = useExternalWalletStore((st) => st.connectorName);
|
|
34990
35643
|
const isExternalConnected = useExternalWalletStore((st) => st.isExternalConnected);
|
|
34991
35644
|
const { address, isConnected, chainId, connector } = (0, import_wagmi8.useConnection)();
|
|
34992
|
-
(0,
|
|
35645
|
+
(0, import_react116.useEffect)(() => {
|
|
34993
35646
|
const { setConfigMode, setActiveMode } = useExternalWalletStore.getState();
|
|
34994
35647
|
setConfigMode(walletMode);
|
|
34995
35648
|
if (walletMode !== "both") setActiveMode(walletMode);
|
|
34996
35649
|
}, [walletMode]);
|
|
34997
|
-
(0,
|
|
35650
|
+
(0, import_react116.useEffect)(() => {
|
|
34998
35651
|
if ((!!externalAddress || isExternalConnected) && !isConnected) {
|
|
34999
35652
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
35000
35653
|
return;
|
|
@@ -35016,10 +35669,10 @@ function DirectWalletHandler() {
|
|
|
35016
35669
|
]);
|
|
35017
35670
|
return null;
|
|
35018
35671
|
}
|
|
35019
|
-
var
|
|
35672
|
+
var import_react116, import_wagmi8;
|
|
35020
35673
|
var init_DirectWalletHandler = __esm({
|
|
35021
35674
|
"src/internal/components/DirectWalletHandler.tsx"() {
|
|
35022
|
-
|
|
35675
|
+
import_react116 = require("react");
|
|
35023
35676
|
import_wagmi8 = require("wagmi");
|
|
35024
35677
|
init_ProviderContext();
|
|
35025
35678
|
init_useExternalWalletStore();
|
|
@@ -35027,14 +35680,14 @@ var init_DirectWalletHandler = __esm({
|
|
|
35027
35680
|
});
|
|
35028
35681
|
|
|
35029
35682
|
// src/internal/components/TssManager.tsx
|
|
35030
|
-
var
|
|
35683
|
+
var import_react117, TssManagerWithRef;
|
|
35031
35684
|
var init_TssManager = __esm({
|
|
35032
35685
|
"src/internal/components/TssManager.tsx"() {
|
|
35033
35686
|
init_SessionContext();
|
|
35034
|
-
|
|
35687
|
+
import_react117 = __toESM(require("react"), 1);
|
|
35035
35688
|
init_auth();
|
|
35036
35689
|
init_clients();
|
|
35037
|
-
TssManagerWithRef =
|
|
35690
|
+
TssManagerWithRef = import_react117.default.forwardRef((props, ref) => {
|
|
35038
35691
|
const { mpcPin } = props;
|
|
35039
35692
|
const usePaymaster = useSession((st) => st.usePaymaster);
|
|
35040
35693
|
const publicClient = useSession((st) => st.publicClient);
|
|
@@ -35042,14 +35695,14 @@ var init_TssManager = __esm({
|
|
|
35042
35695
|
const setStatus = useSession((st) => st.setStatus);
|
|
35043
35696
|
const setSession = useSession((st) => st.setSession);
|
|
35044
35697
|
const setAddress = useSession((st) => st.setAddress);
|
|
35045
|
-
const onSessionCreated = (0,
|
|
35698
|
+
const onSessionCreated = (0, import_react117.useCallback)(
|
|
35046
35699
|
(session, address) => {
|
|
35047
35700
|
setSession(session);
|
|
35048
35701
|
setAddress(address);
|
|
35049
35702
|
},
|
|
35050
35703
|
[setSession, setAddress]
|
|
35051
35704
|
);
|
|
35052
|
-
const createSessionWithKeyshare =
|
|
35705
|
+
const createSessionWithKeyshare = import_react117.default.useCallback(
|
|
35053
35706
|
async (userId, hasServerKeyshare, isNewUser) => {
|
|
35054
35707
|
setStatus("checking key management setup...");
|
|
35055
35708
|
await ensureKeyshare(userId, hasServerKeyshare, setStatus, isNewUser);
|
|
@@ -35074,7 +35727,7 @@ var init_TssManager = __esm({
|
|
|
35074
35727
|
},
|
|
35075
35728
|
[setStatus, usePaymaster, activeChainId, publicClient, mpcPin]
|
|
35076
35729
|
);
|
|
35077
|
-
|
|
35730
|
+
import_react117.default.useImperativeHandle(ref, () => ({ createSessionWithKeyshare }), [createSessionWithKeyshare]);
|
|
35078
35731
|
return null;
|
|
35079
35732
|
});
|
|
35080
35733
|
}
|
|
@@ -35106,32 +35759,32 @@ function waitForStoreHydration() {
|
|
|
35106
35759
|
}
|
|
35107
35760
|
function SessionProvider({ children }) {
|
|
35108
35761
|
const config = useProviderConfig().config;
|
|
35109
|
-
return /* @__PURE__ */ (0,
|
|
35762
|
+
return /* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(import_react118.Fragment, {
|
|
35110
35763
|
/** dApp's router might have its own error boundaries setup via imported @embarkai/ui-kitErrorBoundary */
|
|
35111
35764
|
children: [
|
|
35112
35765
|
children,
|
|
35113
|
-
/* @__PURE__ */ (0,
|
|
35114
|
-
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */ (0,
|
|
35115
|
-
/* @__PURE__ */ (0,
|
|
35116
|
-
/* @__PURE__ */ (0,
|
|
35117
|
-
/* @__PURE__ */ (0,
|
|
35766
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsxs)(ErrorBoundary, { children: [
|
|
35767
|
+
config.current?.wallet?.enabled && (config.current?.wallet?.mode === "direct" || config.current?.wallet?.mode === "both") && /* @__PURE__ */ (0, import_jsx_runtime148.jsx)(DirectWalletHandler, {}),
|
|
35768
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(BalanceFeedProvider, {}),
|
|
35769
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(ChainSync, {}),
|
|
35770
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(
|
|
35118
35771
|
TssManagerWithRef,
|
|
35119
35772
|
{
|
|
35120
35773
|
mpcPin: void 0
|
|
35121
35774
|
}
|
|
35122
35775
|
),
|
|
35123
|
-
/* @__PURE__ */ (0,
|
|
35124
|
-
/* @__PURE__ */ (0,
|
|
35125
|
-
/* @__PURE__ */ (0,
|
|
35776
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(KeyshareReshareCheck, {}),
|
|
35777
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(Dialog2, {}),
|
|
35778
|
+
/* @__PURE__ */ (0, import_jsx_runtime148.jsx)(OnboardingOverlay, {})
|
|
35126
35779
|
] })
|
|
35127
35780
|
]
|
|
35128
35781
|
});
|
|
35129
35782
|
}
|
|
35130
|
-
var import_read25,
|
|
35783
|
+
var import_read25, import_react118, import_zustand20, import_middleware4, import_jsx_runtime148, useSession, requireActiveChainId;
|
|
35131
35784
|
var init_SessionContext = __esm({
|
|
35132
35785
|
"src/context/SessionContext.tsx"() {
|
|
35133
35786
|
import_read25 = require("@embarkai/core/read");
|
|
35134
|
-
|
|
35787
|
+
import_react118 = require("react");
|
|
35135
35788
|
import_zustand20 = require("zustand");
|
|
35136
35789
|
import_middleware4 = require("zustand/middleware");
|
|
35137
35790
|
init_ErrorBoundary2();
|
|
@@ -35143,7 +35796,7 @@ var init_SessionContext = __esm({
|
|
|
35143
35796
|
init_Onboarding();
|
|
35144
35797
|
init_TssManager();
|
|
35145
35798
|
init_ProviderContext();
|
|
35146
|
-
|
|
35799
|
+
import_jsx_runtime148 = require("react/jsx-runtime");
|
|
35147
35800
|
useSession = (0, import_zustand20.create)()(
|
|
35148
35801
|
(0, import_middleware4.persist)(
|
|
35149
35802
|
(set) => ({
|
|
@@ -35242,9 +35895,9 @@ __export(iframe_manager_exports, {
|
|
|
35242
35895
|
withSessionToken: () => withSessionToken
|
|
35243
35896
|
});
|
|
35244
35897
|
function legacyAccessTokenForIframe() {
|
|
35245
|
-
const kind =
|
|
35898
|
+
const kind = import_auth29.jwtTokenManager.getSessionKind();
|
|
35246
35899
|
if (!kind || kind === "dapp") return void 0;
|
|
35247
|
-
return
|
|
35900
|
+
return import_auth29.jwtTokenManager.getAccessToken() ?? void 0;
|
|
35248
35901
|
}
|
|
35249
35902
|
function withSessionToken(type, data) {
|
|
35250
35903
|
if (SESSION_FREE_MESSAGES.has(type)) return data;
|
|
@@ -35278,10 +35931,10 @@ function destroyIframeManager() {
|
|
|
35278
35931
|
iframeManagerInstance = null;
|
|
35279
35932
|
}
|
|
35280
35933
|
}
|
|
35281
|
-
var
|
|
35934
|
+
var import_auth29, IframeManager, iframeManagerInstance;
|
|
35282
35935
|
var init_iframe_manager = __esm({
|
|
35283
35936
|
"src/internal/lib/iframe-manager.ts"() {
|
|
35284
|
-
|
|
35937
|
+
import_auth29 = require("@embarkai/core/auth");
|
|
35285
35938
|
init_errors();
|
|
35286
35939
|
init_session_messages();
|
|
35287
35940
|
init_sdk_version();
|
|
@@ -35314,6 +35967,7 @@ var init_iframe_manager = __esm({
|
|
|
35314
35967
|
// 5 minutes (for user interactions like consent)
|
|
35315
35968
|
ENSURE_BACKUP_TIMEOUT = 15e3;
|
|
35316
35969
|
// silent backup, no user interaction
|
|
35970
|
+
READY_TIMEOUT = 15e3;
|
|
35317
35971
|
NONCE_EXPIRY = 3e5;
|
|
35318
35972
|
// 5 minutes
|
|
35319
35973
|
HEARTBEAT_INTERVAL = 5 * 60 * 1e3;
|
|
@@ -35393,9 +36047,13 @@ var init_iframe_manager = __esm({
|
|
|
35393
36047
|
this.messageListener = this.handleMessage.bind(this);
|
|
35394
36048
|
window.addEventListener("message", this.messageListener);
|
|
35395
36049
|
document.body.appendChild(this.iframe);
|
|
35396
|
-
|
|
35397
|
-
|
|
35398
|
-
|
|
36050
|
+
try {
|
|
36051
|
+
await this.withinReadyTimeout(this.readyPromise.then(() => this.authenticateSDK()));
|
|
36052
|
+
} catch (error) {
|
|
36053
|
+
this.destroy();
|
|
36054
|
+
throw error;
|
|
36055
|
+
}
|
|
36056
|
+
(0, import_auth29.setDappSessionRecovery)(async (userId) => {
|
|
35399
36057
|
const pair = await this.getDappTokens();
|
|
35400
36058
|
return pair && pair.userId === userId ? pair : null;
|
|
35401
36059
|
});
|
|
@@ -35410,6 +36068,18 @@ var init_iframe_manager = __esm({
|
|
|
35410
36068
|
setOnWalletReady(callback) {
|
|
35411
36069
|
this.onWalletReadyCallback = callback;
|
|
35412
36070
|
}
|
|
36071
|
+
withinReadyTimeout(handshake) {
|
|
36072
|
+
handshake.catch(() => {
|
|
36073
|
+
});
|
|
36074
|
+
let timer;
|
|
36075
|
+
const timeout = new Promise((_, reject) => {
|
|
36076
|
+
timer = setTimeout(
|
|
36077
|
+
() => reject(new Error(`Iframe did not become ready in ${this.READY_TIMEOUT} ms: ${this.iframeUrl}`)),
|
|
36078
|
+
this.READY_TIMEOUT
|
|
36079
|
+
);
|
|
36080
|
+
});
|
|
36081
|
+
return Promise.race([handshake, timeout]).finally(() => clearTimeout(timer));
|
|
36082
|
+
}
|
|
35413
36083
|
/**
|
|
35414
36084
|
* Authenticate SDK with iframe to establish secure channel
|
|
35415
36085
|
*/
|
|
@@ -36667,7 +37337,7 @@ var init_iframe_manager = __esm({
|
|
|
36667
37337
|
*/
|
|
36668
37338
|
destroy() {
|
|
36669
37339
|
this.log("[IframeManager] Destroying iframe...");
|
|
36670
|
-
(0,
|
|
37340
|
+
(0, import_auth29.setDappSessionRecovery)(null);
|
|
36671
37341
|
this.stopHeartbeat();
|
|
36672
37342
|
this.pendingRequests.forEach((pending) => {
|
|
36673
37343
|
pending.reject(new Error("Iframe manager destroyed"));
|
|
@@ -36716,7 +37386,7 @@ function notifyNoProjetctId(projectId) {
|
|
|
36716
37386
|
'\n\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\n\u2551 \u26A0\uFE0F embarkAI WARNING \u26A0\uFE0F \u2551\n\u2560\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2563\n\u2551 \u2551\n\u2551 projectId is NOT configured! \u2551\n\u2551 \u2551\n\u2551 Your integration will NOT work without a valid projectId. \u2551\n\u2551 Most features will be disabled and errors will occur. \u2551\n\u2551 \u2551\n\u2551 To fix this: \u2551\n\u2551 1. Get your projectId from: https://dashboard.embarkai.io/ \u2551\n\u2551 2. Add it to your Provider: \u2551\n\u2551 \u2551\n\u2551 <Provider projectId="your-project-id"> \u2551\n\u2551 {children} \u2551\n\u2551 </Provider> \u2551\n\u2551 \u2551\n\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D\n'
|
|
36717
37387
|
);
|
|
36718
37388
|
}
|
|
36719
|
-
var
|
|
37389
|
+
var init_utils14 = __esm({
|
|
36720
37390
|
"src/context/utils.ts"() {
|
|
36721
37391
|
}
|
|
36722
37392
|
});
|
|
@@ -36739,18 +37409,18 @@ function clearLegacyWagmiStorage() {
|
|
|
36739
37409
|
}
|
|
36740
37410
|
function Provider2(props) {
|
|
36741
37411
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
36742
|
-
const queryClient = (0,
|
|
36743
|
-
const callbacksRef = (0,
|
|
36744
|
-
(0,
|
|
36745
|
-
const config = (0,
|
|
37412
|
+
const queryClient = (0, import_react_query65.useQueryClient)();
|
|
37413
|
+
const callbacksRef = (0, import_react119.useRef)(callbacks);
|
|
37414
|
+
(0, import_react119.useEffect)(() => notifyNoProjetctId(projectId), [projectId]);
|
|
37415
|
+
const config = (0, import_react119.useRef)(
|
|
36746
37416
|
(() => {
|
|
36747
37417
|
const merged = (0, import_lodash_es17.merge)({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig);
|
|
36748
37418
|
merged.services = resolveServices(merged.services);
|
|
36749
37419
|
return merged;
|
|
36750
37420
|
})()
|
|
36751
37421
|
);
|
|
36752
|
-
const wagmiConfig3 = (0,
|
|
36753
|
-
const updateConfig = (0,
|
|
37422
|
+
const wagmiConfig3 = (0, import_react119.useRef)((0, import_core9.getWagmiConfig)(config.current?.wallet?.walletConnectId || null));
|
|
37423
|
+
const updateConfig = (0, import_react119.useCallback)((updates) => {
|
|
36754
37424
|
const prev = config.current;
|
|
36755
37425
|
const next = { ...prev };
|
|
36756
37426
|
if (updates.projectId !== void 0) next.projectId = updates.projectId;
|
|
@@ -36779,12 +37449,12 @@ function Provider2(props) {
|
|
|
36779
37449
|
if (updates.translations) next.translations = { ...next.translations, ...updates.translations };
|
|
36780
37450
|
config.current = next;
|
|
36781
37451
|
}, []);
|
|
36782
|
-
const updateCallbacks = (0,
|
|
37452
|
+
const updateCallbacks = (0, import_react119.useCallback)((updates) => {
|
|
36783
37453
|
const prev = callbacksRef.current;
|
|
36784
37454
|
const next = updates ? { ...prev, ...updates } : void 0;
|
|
36785
37455
|
callbacksRef.current = next;
|
|
36786
37456
|
}, []);
|
|
36787
|
-
(0,
|
|
37457
|
+
(0, import_react119.useEffect)(() => {
|
|
36788
37458
|
if (typeof window === "undefined" || !projectId) return;
|
|
36789
37459
|
const mergedConfig = (0, import_lodash_es17.merge)(DEFAULT_PROVIDER_CONFIG, initialConfig);
|
|
36790
37460
|
mergedConfig.services = resolveServices(mergedConfig.services);
|
|
@@ -36805,7 +37475,7 @@ function Provider2(props) {
|
|
|
36805
37475
|
useSession.getState().setActiveChainId(mergedConfig.network.chainId);
|
|
36806
37476
|
}
|
|
36807
37477
|
}, [projectId, initialConfig]);
|
|
36808
|
-
(0,
|
|
37478
|
+
(0, import_react119.useEffect)(() => {
|
|
36809
37479
|
if (typeof window === "undefined" || !projectId) return;
|
|
36810
37480
|
try {
|
|
36811
37481
|
(0, import_error_tracking4.initSdkErrorTracking)();
|
|
@@ -36834,7 +37504,7 @@ function Provider2(props) {
|
|
|
36834
37504
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
36835
37505
|
}
|
|
36836
37506
|
}, [projectId]);
|
|
36837
|
-
(0,
|
|
37507
|
+
(0, import_react119.useEffect)(() => {
|
|
36838
37508
|
if (!projectId) return;
|
|
36839
37509
|
try {
|
|
36840
37510
|
getIframeManager().setQueryClient(queryClient);
|
|
@@ -36843,7 +37513,7 @@ function Provider2(props) {
|
|
|
36843
37513
|
console.warn("[PROVIDER] No iframe manager available yet to set query client");
|
|
36844
37514
|
}
|
|
36845
37515
|
}, [queryClient, projectId]);
|
|
36846
|
-
const contextValue = (0,
|
|
37516
|
+
const contextValue = (0, import_react119.useMemo)(
|
|
36847
37517
|
() => ({
|
|
36848
37518
|
config,
|
|
36849
37519
|
updateConfig,
|
|
@@ -36854,25 +37524,25 @@ function Provider2(props) {
|
|
|
36854
37524
|
}),
|
|
36855
37525
|
[config, updateConfig, callbacks, updateCallbacks]
|
|
36856
37526
|
);
|
|
36857
|
-
return /* @__PURE__ */ (0,
|
|
37527
|
+
return /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(UIContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(import_wagmi9.WagmiProvider, { config: wagmiConfig3.current, children: /* @__PURE__ */ (0, import_jsx_runtime149.jsx)(SessionProvider, { children }) }) });
|
|
36858
37528
|
}
|
|
36859
|
-
var import_core9, import_error_tracking4,
|
|
37529
|
+
var import_core9, import_error_tracking4, import_react_query65, import_lodash_es17, import_react119, import_wagmi9, import_jsx_runtime149, UIContext, useProviderConfig;
|
|
36860
37530
|
var init_ProviderContext = __esm({
|
|
36861
37531
|
"src/context/ProviderContext.tsx"() {
|
|
36862
37532
|
import_core9 = require("@embarkai/core");
|
|
36863
37533
|
import_error_tracking4 = require("@embarkai/core/internal/error-tracking");
|
|
36864
|
-
|
|
37534
|
+
import_react_query65 = require("@tanstack/react-query");
|
|
36865
37535
|
import_lodash_es17 = require("lodash-es");
|
|
36866
|
-
|
|
37536
|
+
import_react119 = require("react");
|
|
36867
37537
|
import_wagmi9 = require("wagmi");
|
|
36868
37538
|
init_initial();
|
|
36869
37539
|
init_iframe_manager();
|
|
36870
37540
|
init_SessionContext();
|
|
36871
|
-
|
|
36872
|
-
|
|
36873
|
-
UIContext = (0,
|
|
37541
|
+
init_utils14();
|
|
37542
|
+
import_jsx_runtime149 = require("react/jsx-runtime");
|
|
37543
|
+
UIContext = (0, import_react119.createContext)(void 0);
|
|
36874
37544
|
useProviderConfig = () => {
|
|
36875
|
-
const ctx = (0,
|
|
37545
|
+
const ctx = (0, import_react119.useContext)(UIContext);
|
|
36876
37546
|
if (!ctx) throw new Error("useProviderConfig must be used within a Provider");
|
|
36877
37547
|
return ctx;
|
|
36878
37548
|
};
|
|
@@ -36986,7 +37656,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
36986
37656
|
|
|
36987
37657
|
// src/styles/built.css
|
|
36988
37658
|
var built_default = `/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
36989
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .collapse{visibility:collapse}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .sticky{position:sticky}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .top-\\(--ui-kit-pd\\){top:var(--ui-kit-pd)}.embarkai-ui-scope .top-0{top:0}.embarkai-ui-scope .top-1{top:.25rem}.embarkai-ui-scope .top-1\\.5{top:.375rem}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-2{top:.5rem}.embarkai-ui-scope .top-4{top:1rem}.embarkai-ui-scope .top-\\[var\\(--ui-kit-pd\\)\\]{top:var(--ui-kit-pd)}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .right-\\(--ui-kit-pd\\){right:var(--ui-kit-pd)}.embarkai-ui-scope .right-0{right:0}.embarkai-ui-scope .right-1{right:.25rem}.embarkai-ui-scope .right-2{right:.5rem}.embarkai-ui-scope .right-3{right:.75rem}.embarkai-ui-scope .right-4{right:1rem}.embarkai-ui-scope .right-\\[var\\(--ui-kit-pd\\)\\]{right:var(--ui-kit-pd)}.embarkai-ui-scope .right-full{right:100%}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\.5{left:.375rem}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.embarkai-ui-scope .z-1{z-index:1}.embarkai-ui-scope .z-10{z-index:10}.embarkai-ui-scope .z-12{z-index:12}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-100{z-index:100}.embarkai-ui-scope .z-9998{z-index:9998}.embarkai-ui-scope .z-9999{z-index:9999}.embarkai-ui-scope .float-right{float:right}.embarkai-ui-scope .container{width:100%}@media (min-width:40rem){.embarkai-ui-scope .container{max-width:40rem}}@media (min-width:48rem){.embarkai-ui-scope .container{max-width:48rem}}@media (min-width:64rem){.embarkai-ui-scope .container{max-width:64rem}}@media (min-width:80rem){.embarkai-ui-scope .container{max-width:80rem}}@media (min-width:96rem){.embarkai-ui-scope .container{max-width:96rem}}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-inline:-.25rem}.embarkai-ui-scope .mx-auto{margin-inline:auto}.embarkai-ui-scope .my-1{margin-block:.25rem}.embarkai-ui-scope .mt-0\\.5{margin-top:.125rem}.embarkai-ui-scope .mt-1{margin-top:.25rem}.embarkai-ui-scope .mt-2{margin-top:.5rem}.embarkai-ui-scope .mt-4{margin-top:1rem}.embarkai-ui-scope .mr-1{margin-right:.25rem}.embarkai-ui-scope .mb-1{margin-bottom:.25rem}.embarkai-ui-scope .mb-2{margin-bottom:.5rem}.embarkai-ui-scope .mb-3{margin-bottom:.75rem}.embarkai-ui-scope .mb-4{margin-bottom:1rem}.embarkai-ui-scope .ml-1{margin-left:.25rem}.embarkai-ui-scope .ml-2{margin-left:.5rem}.embarkai-ui-scope .ml-auto{margin-left:auto}.embarkai-ui-scope .block{display:block}.embarkai-ui-scope .contents{display:contents}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .size-4{width:1rem;height:1rem}.embarkai-ui-scope .size-8{width:2rem;height:2rem}.embarkai-ui-scope .size-auto{width:auto;height:auto}.embarkai-ui-scope .h-0{height:0}.embarkai-ui-scope .h-1{height:.25rem}.embarkai-ui-scope .h-2{height:.5rem}.embarkai-ui-scope .h-2\\.5{height:.625rem}.embarkai-ui-scope .h-3{height:.75rem}.embarkai-ui-scope .h-3\\.5{height:.875rem}.embarkai-ui-scope .h-4{height:1rem}.embarkai-ui-scope .h-5{height:1.25rem}.embarkai-ui-scope .h-6{height:1.5rem}.embarkai-ui-scope .h-7{height:1.75rem}.embarkai-ui-scope .h-8{height:2rem}.embarkai-ui-scope .h-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.embarkai-ui-scope .h-48{height:12rem}.embarkai-ui-scope .h-\\[48px\\]{height:48px}.embarkai-ui-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.embarkai-ui-scope .h-auto{height:auto}.embarkai-ui-scope .h-dvh{height:100dvh}.embarkai-ui-scope .h-fit{height:fit-content}.embarkai-ui-scope .h-full{height:100%}.embarkai-ui-scope .h-px{height:1px}.embarkai-ui-scope .max-h-96{max-height:24rem}.embarkai-ui-scope .max-h-\\[95dvh\\]{max-height:95dvh}.embarkai-ui-scope .max-h-\\[var\\(--radix-select-content-available-height\\)\\]{max-height:var(--radix-select-content-available-height)}.embarkai-ui-scope .min-h-10{min-height:2.5rem}.embarkai-ui-scope .min-h-12{min-height:3rem}.embarkai-ui-scope .w-0{width:0}.embarkai-ui-scope .w-1{width:.25rem}.embarkai-ui-scope .w-1\\/2{width:50%}.embarkai-ui-scope .w-2{width:.5rem}.embarkai-ui-scope .w-2\\.5{width:.625rem}.embarkai-ui-scope .w-3{width:.75rem}.embarkai-ui-scope .w-3\\.5{width:.875rem}.embarkai-ui-scope .w-4{width:1rem}.embarkai-ui-scope .w-5{width:1.25rem}.embarkai-ui-scope .w-6{width:1.5rem}.embarkai-ui-scope .w-7{width:1.75rem}.embarkai-ui-scope .w-8{width:2rem}.embarkai-ui-scope .w-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.embarkai-ui-scope .w-28{width:7rem}.embarkai-ui-scope .w-48{width:12rem}.embarkai-ui-scope .w-55{width:13.75rem}.embarkai-ui-scope .w-\\[30dvw\\]{width:30dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[60dvw\\]{width:60dvw}.embarkai-ui-scope .w-\\[var\\(--ui-kit-content-maw\\,var\\(--ui-kit-maw\\)\\)\\]{width:var(--ui-kit-content-maw,var(--ui-kit-maw))}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-auto{width:auto}.embarkai-ui-scope .w-dvw{width:100dvw}.embarkai-ui-scope .w-fit{width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-max{width:max-content}.embarkai-ui-scope .w-px{width:1px}.embarkai-ui-scope .max-w-7xl{max-width:80rem}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[420px\\]{max-width:420px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-8px\\)\\]{max-width:calc(50% - 8px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .min-w-0{min-width:0}.embarkai-ui-scope .min-w-10{min-width:2.5rem}.embarkai-ui-scope .min-w-16{min-width:4rem}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.embarkai-ui-scope .flex-0{flex:0}.embarkai-ui-scope .flex-1{flex:1}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink{flex-shrink:1}.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .origin-\\[var\\(--radix-select-content-transform-origin\\)\\]{transform-origin:var(--radix-select-content-transform-origin)}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:calc(calc(1 / 3 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .rotate-180{rotate:180deg}.embarkai-ui-scope .rotate-360{rotate:360deg}.embarkai-ui-scope .transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.embarkai-ui-scope .animate-glow-error{animation:2s infinite glow-error}.embarkai-ui-scope .animate-glow-warning{animation:2s infinite glow-warning}.embarkai-ui-scope .animate-ping{animation:1s cubic-bezier(0,0,.2,1) infinite ping}.embarkai-ui-scope .animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.embarkai-ui-scope .animate-spin{animation:1s linear infinite spin}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-not-allowed{cursor:not-allowed}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .resize{resize:both}.embarkai-ui-scope .scroll-my-1{scroll-margin-block:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.embarkai-ui-scope .flex-col{flex-direction:column}.embarkai-ui-scope .flex-col-reverse{flex-direction:column-reverse}.embarkai-ui-scope .flex-wrap{flex-wrap:wrap}.embarkai-ui-scope .place-content-center{place-content:center}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-start{align-items:flex-start}.embarkai-ui-scope .justify-between{justify-content:space-between}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .gap-\\(--ui-kit-gap\\){gap:var(--ui-kit-gap)}.embarkai-ui-scope .gap-\\(--ui-kt-gap\\){gap:var(--ui-kt-gap)}.embarkai-ui-scope .gap-0{gap:0}.embarkai-ui-scope .gap-1{gap:.25rem}.embarkai-ui-scope .gap-2{gap:.5rem}.embarkai-ui-scope .gap-3{gap:.75rem}.embarkai-ui-scope .gap-4{gap:1rem}.embarkai-ui-scope .gap-\\[10px\\]{gap:10px}.embarkai-ui-scope .gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}:where(.embarkai-ui-scope .space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.embarkai-ui-scope .space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.25rem * var(--tw-space-y-reverse));margin-block-end:calc(.25rem * calc(1 - var(--tw-space-y-reverse)))}:where(.embarkai-ui-scope .space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.embarkai-ui-scope .space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.embarkai-ui-scope .space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(.25rem * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(.25rem * 2) * calc(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\(--ui-kit-el-bdrs\\){border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[calc\\(var\\(--ui-kit-el-bdrs\\)_\\/_2\\)\\]{border-radius:calc(var(--ui-kit-el-bdrs) / 2)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-bdrs\\)\\]{border-radius:var(--ui-kit-bdrs)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-full{border-radius:3.40282e38px}.embarkai-ui-scope .rounded-lg{border-radius:.5rem}.embarkai-ui-scope .rounded-md{border-radius:.375rem}.embarkai-ui-scope .rounded-xl{border-radius:.75rem}.embarkai-ui-scope .border{border-style:var(--tw-border-style);border-width:1px}.embarkai-ui-scope .border-0{border-style:var(--tw-border-style);border-width:0}.embarkai-ui-scope .border-2{border-style:var(--tw-border-style);border-width:2px}.embarkai-ui-scope .border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.embarkai-ui-scope .border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.embarkai-ui-scope .border-dashed{--tw-border-style:dashed;border-style:dashed}.embarkai-ui-scope .border-\\(--ui-kit-bd\\){border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\(--ui-kit-fg-muted\\){border-color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bd\\)\\]{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-error\\)\\]{border-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-success\\)\\]{border-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-warning\\)\\]{border-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-error\\)\\]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-secondary\\)\\]{border-color:var(--ui-kit-secondary)}.embarkai-ui-scope .border-current{border-color:currentColor}.embarkai-ui-scope .border-transparent{border-color:#0000}.embarkai-ui-scope .border-t-transparent{border-top-color:#0000}.embarkai-ui-scope .bg-\\(--ui-kit-bg\\){background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\(--ui-kit-bg-success\\){background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\(--ui-kit-bg-warning\\){background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\(--ui-kit-secondary\\){background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{background-color:#f3ba2f}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg\\)\\]{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-error\\)\\]{background-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-info\\)\\]{background-color:var(--ui-kit-bg-info)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-secondary\\)\\]{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-success\\)\\]{background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-warning\\)\\]{background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-fg\\)\\]{background-color:var(--ui-kit-fg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-overlay\\)\\]{background-color:var(--ui-kit-overlay)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-primary\\)\\]{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary\\)\\]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-blue-100{background-color:oklch(93.2% .032 255.585)}.embarkai-ui-scope .bg-gray-100{background-color:oklch(96.7% .003 264.542)}.embarkai-ui-scope .bg-green-100{background-color:oklch(96.2% .044 156.743)}.embarkai-ui-scope .bg-red-100{background-color:oklch(93.6% .032 17.717)}.embarkai-ui-scope .bg-transparent{background-color:#0000}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{object-fit:contain}.embarkai-ui-scope .object-cover{object-fit:cover}.embarkai-ui-scope .p-\\(--ui-kit-pd\\){padding:var(--ui-kit-pd)}.embarkai-ui-scope .p-0{padding:0}.embarkai-ui-scope .p-1{padding:.25rem}.embarkai-ui-scope .p-2{padding:.5rem}.embarkai-ui-scope .p-2\\!{padding:.5rem!important}.embarkai-ui-scope .p-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.embarkai-ui-scope .p-\\[12px\\]{padding:12px}.embarkai-ui-scope .p-\\[var\\(--ui-kit-gap\\)\\]{padding:var(--ui-kit-gap)}.embarkai-ui-scope .p-\\[var\\(--ui-kit-pd\\)\\]{padding:var(--ui-kit-pd)}.embarkai-ui-scope .px-\\(--ui-kit-gap\\){padding-inline:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\(--ui-kit-pd\\){padding-inline:var(--ui-kit-pd)}.embarkai-ui-scope .px-0{padding-inline:0}.embarkai-ui-scope .px-1{padding-inline:.25rem}.embarkai-ui-scope .px-2{padding-inline:.5rem}.embarkai-ui-scope .px-3{padding-inline:.75rem}.embarkai-ui-scope .px-4{padding-inline:1rem}.embarkai-ui-scope .px-5{padding-inline:1.25rem}.embarkai-ui-scope .px-8{padding-inline:2rem}.embarkai-ui-scope .px-10{padding-inline:2.5rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-inline:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-inline:var(--ui-kit-pd)}.embarkai-ui-scope .py-\\(--ui-kit-pd\\){padding-block:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-block:0}.embarkai-ui-scope .py-1{padding-block:.25rem}.embarkai-ui-scope .py-1\\.5{padding-block:.375rem}.embarkai-ui-scope .py-2{padding-block:.5rem}.embarkai-ui-scope .py-3{padding-block:.75rem}.embarkai-ui-scope .py-4{padding-block:1rem}.embarkai-ui-scope .py-8{padding-block:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-block:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-block:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-block:var(--ui-kit-pd)}.embarkai-ui-scope .pt-3{padding-top:.75rem}.embarkai-ui-scope .pt-4{padding-top:1rem}.embarkai-ui-scope .pt-5{padding-top:1.25rem}.embarkai-ui-scope .pr-8{padding-right:2rem}.embarkai-ui-scope .pb-2{padding-bottom:.5rem}.embarkai-ui-scope .pb-5{padding-bottom:1.25rem}.embarkai-ui-scope .pb-6{padding-bottom:1.5rem}.embarkai-ui-scope .pb-\\[var\\(--ui-kit-pd\\)\\]{padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pl-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd)}.embarkai-ui-scope .text-center{text-align:center}.embarkai-ui-scope .text-left{text-align:left}.embarkai-ui-scope .text-right{text-align:right}.embarkai-ui-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.embarkai-ui-scope .font-mono\\!{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.embarkai-ui-scope .font-sans{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.embarkai-ui-scope .text-2xl{font-size:1.5rem;line-height:var(--tw-leading,calc(2 / 1.5))}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:var(--tw-leading,calc(1.75 / 1.125))}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:var(--tw-leading,calc(1.25 / .875))}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:var(--tw-leading,calc(1.75 / 1.25))}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:var(--tw-leading,calc(1 / .75))}.embarkai-ui-scope .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-\\[10px\\]{font-size:10px}.embarkai-ui-scope .text-\\[14px\\]{font-size:14px}.embarkai-ui-scope .text-\\[16px\\]{font-size:16px}.embarkai-ui-scope .leading-3{--tw-leading:calc(.25rem * 3);line-height:.75rem}.embarkai-ui-scope .leading-4{--tw-leading:calc(.25rem * 4);line-height:1rem}.embarkai-ui-scope .leading-5{--tw-leading:calc(.25rem * 5);line-height:1.25rem}.embarkai-ui-scope .leading-6{--tw-leading:calc(.25rem * 6);line-height:1.5rem}.embarkai-ui-scope .leading-7{--tw-leading:calc(.25rem * 7);line-height:1.75rem}.embarkai-ui-scope .leading-8{--tw-leading:calc(.25rem * 8);line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{--tw-leading:8px;line-height:8px}.embarkai-ui-scope .leading-none{--tw-leading:1;line-height:1}.embarkai-ui-scope .leading-tight{--tw-leading:1.25;line-height:1.25}.embarkai-ui-scope .font-bold{--tw-font-weight:700;font-weight:700}.embarkai-ui-scope .font-light{--tw-font-weight:300;font-weight:300}.embarkai-ui-scope .font-medium{--tw-font-weight:500;font-weight:500}.embarkai-ui-scope .font-normal{--tw-font-weight:400;font-weight:400}.embarkai-ui-scope .font-semibold{--tw-font-weight:600;font-weight:600}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{--tw-tracking:.3em;letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{--tw-tracking:-.025em;letter-spacing:-.025em}.embarkai-ui-scope .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .wrap-break-word{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .text-ellipsis{text-overflow:ellipsis}.embarkai-ui-scope .whitespace-nowrap{white-space:nowrap}.embarkai-ui-scope .whitespace-pre-line{white-space:pre-line}.embarkai-ui-scope .whitespace-pre-wrap{white-space:pre-wrap}.embarkai-ui-scope .text-\\(--ui-kit-bg-success\\){color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\(--ui-kit-bg-warning\\){color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\(--ui-kit-fg\\){color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\(--ui-kit-fg-muted\\){color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\(--ui-kit-success\\){color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-error\\)\\]{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-success\\)\\]{color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-warning\\)\\]{color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-error\\)\\]{color:var(--ui-kit-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg\\)\\]{color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-inverted\\)\\]{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-muted\\)\\]{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-info\\)\\]{color:var(--ui-kit-info)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-primary\\)\\]{color:var(--ui-kit-primary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-success\\)\\]{color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-text-secondary\\)\\]{color:var(--ui-kit-text-secondary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-warning\\)\\]{color:var(--ui-kit-warning)}.embarkai-ui-scope .text-black{color:#000}.embarkai-ui-scope .text-blue-600{color:oklch(54.6% .245 262.881)}.embarkai-ui-scope .text-blue-800{color:oklch(42.4% .199 265.638)}.embarkai-ui-scope .text-gray-400{color:oklch(70.7% .022 261.325)}.embarkai-ui-scope .text-gray-500{color:oklch(55.1% .027 264.364)}.embarkai-ui-scope .text-gray-600{color:oklch(44.6% .03 256.802)}.embarkai-ui-scope .text-green-500{color:oklch(72.3% .219 149.579)}.embarkai-ui-scope .text-green-600{color:oklch(62.7% .194 149.214)}.embarkai-ui-scope .text-green-800{color:oklch(44.8% .119 151.328)}.embarkai-ui-scope .text-red-600{color:oklch(57.7% .245 27.325)}.embarkai-ui-scope .text-red-800{color:oklch(44.4% .177 26.899)}.embarkai-ui-scope .text-sky-500{color:oklch(68.5% .169 237.323)}.embarkai-ui-scope .text-white{color:#fff}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .line-through{text-decoration-line:line-through}.embarkai-ui-scope .underline{text-decoration-line:underline}.embarkai-ui-scope .underline-offset-2{text-underline-offset:2px}.embarkai-ui-scope .underline-offset-4{text-underline-offset:4px}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-bd\\)\\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--ui-kit-bd));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-fg\\)\\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--ui-kit-fg));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .ring-\\(--ui-kit-bg-success\\)\\/50{--tw-ring-color:var(--ui-kit-bg-success)}@supports (color:color-mix(in lab, red, red)){.embarkai-ui-scope .ring-\\(--ui-kit-bg-success\\)\\/50{--tw-ring-color:color-mix(in oklab, var(--ui-kit-bg-success) 50%, transparent)}}.embarkai-ui-scope .ring-offset-0{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.embarkai-ui-scope .outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.embarkai-ui-scope .outline-hidden{outline-offset:2px;outline:2px solid #0000}}.embarkai-ui-scope .outline{outline-style:var(--tw-outline-style);outline-width:1px}.embarkai-ui-scope .filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.embarkai-ui-scope .backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.embarkai-ui-scope .transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .duration-125{--tw-duration:.125s;transition-duration:.125s}.embarkai-ui-scope .duration-200{--tw-duration:.2s;transition-duration:.2s}.embarkai-ui-scope .duration-375{--tw-duration:.375s;transition-duration:.375s}.embarkai-ui-scope .duration-500{--tw-duration:.5s;transition-duration:.5s}.embarkai-ui-scope .ease-in-out{--tw-ease:cubic-bezier(.4, 0, .2, 1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.embarkai-ui-scope .select-all{-webkit-user-select:all;user-select:all}.embarkai-ui-scope .select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.embarkai-ui-scope .group-hover\\:opacity-80:is(:where(.group):hover *){opacity:.8}.embarkai-ui-scope .group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.embarkai-ui-scope .file\\:mr-\\[var\\(--ui-kit-gap\\)\\]::file-selector-button{margin-right:var(--ui-kit-gap)}.embarkai-ui-scope .file\\:h-12::file-selector-button{height:3rem}.embarkai-ui-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.embarkai-ui-scope .file\\:rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]::file-selector-button{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-inline:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-\\[var\\(--ui-kit-fg-inverted\\)\\]::file-selector-button{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:border-\\[var\\(--ui-kit-bd\\)\\]:focus-within{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .focus-within\\:opacity-100:focus-within{opacity:1}@media (hover:hover){.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{background-color:#f0f6f8}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{background-color:#f3ba2f}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{background-color:oklch(98.5% .002 247.839)}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{color:oklch(44.6% .03 256.802)}.embarkai-ui-scope .hover\\:text-gray-700:hover{color:oklch(37.3% .034 259.733)}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .file\\:hover\\:opacity-90::file-selector-button:hover{opacity:.9}.embarkai-ui-scope .focus-within\\:hover\\:opacity-100:focus-within:hover{opacity:1}}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:#0000}.embarkai-ui-scope .focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.embarkai-ui-scope .focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.embarkai-ui-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.embarkai-ui-scope .focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.embarkai-ui-scope .focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{background-color:#f3ba2f}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80::file-selector-button:active{opacity:.8}.embarkai-ui-scope .disabled\\:cursor-default:disabled{cursor:default}.embarkai-ui-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.embarkai-ui-scope .disabled\\:opacity-50:disabled{opacity:.5}@media (hover:hover){.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:disabled:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:disabled:hover{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:disabled:hover{opacity:.5}}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:disabled:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:disabled:active{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:disabled:active{opacity:.5}.embarkai-ui-scope .aria-invalid\\:border-\\[var\\(--ui-kit-error\\)\\][aria-invalid=true]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .aria-invalid\\:ring-\\[var\\(--ui-kit-error\\)\\][aria-invalid=true]{--tw-ring-color:var(--ui-kit-error)}.embarkai-ui-scope .data-disabled\\:pointer-events-none[data-disabled]{pointer-events:none}.embarkai-ui-scope .data-disabled\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(.25rem * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(.25rem * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.embarkai-ui-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}:is(.embarkai-ui-scope .data-\\[slot\\=select-value\\]\\:\\*\\:line-clamp-1[data-slot=select-value]>*){-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.embarkai-ui-scope .data-\\[slot\\=select-value\\]\\:\\*\\:flex[data-slot=select-value]>*){display:flex}:is(.embarkai-ui-scope .data-\\[slot\\=select-value\\]\\:\\*\\:items-center[data-slot=select-value]>*){align-items:center}:is(.embarkai-ui-scope .data-\\[slot\\=select-value\\]\\:\\*\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--ui-kit-bd-intense\\)\\][data-state=checked]{border-color:var(--ui-kit-bd-intense)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--ui-kit-secondary\\)\\][data-state=checked]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--ui-kit-fg\\)\\][data-state=checked]{color:var(--ui-kit-fg)}@media (min-width:40rem){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}:where(.embarkai-ui-scope .sm\\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(.25rem * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(.25rem * 2) * calc(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:48rem){.embarkai-ui-scope .md\\:h-8{height:2rem}.embarkai-ui-scope .md\\:w-8{width:2rem}.embarkai-ui-scope .md\\:gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope .md\\:py-1{padding-block:.25rem}.embarkai-ui-scope .md\\:text-3xl{font-size:1.875rem;line-height:var(--tw-leading,calc(2.25 / 1.875))}}.embarkai-ui-scope .\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.embarkai-ui-scope .\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.embarkai-ui-scope .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}:is(.embarkai-ui-scope .last\\:\\[span\\]\\:\\*\\:flex:last-child:is(span)>*){display:flex}:is(.embarkai-ui-scope .last\\:\\[span\\]\\:\\*\\:items-center:last-child:is(span)>*){align-items:center}:is(.embarkai-ui-scope .\\*\\:\\[span\\]\\:last\\:gap-2>*):is(span):last-child{gap:.5rem}:root{--w3m-z-index:10001!important}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system, BlinkMacSystemFont, "Inter", system-ui, sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,#fffc);--ui-kit-bg:var(--embark-ui-bg,#fff);--ui-kit-fg:var(--embark-ui-fg,#000);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#fff);--ui-kit-fg-muted:var(--embark-ui-fg-muted,#0009);--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,transparent);--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,#f4f4f4);--ui-kit-success:var(--embark-ui-success,var(--ui-kit-fg));--ui-kit-bg-success:var(--embark-ui-bg-success,#0de4b3);--ui-kit-warning:var(--embark-ui-warning,var(--ui-kit-fg));--ui-kit-bg-warning:var(--embark-ui-bg-warning,#f0b100);--ui-kit-error:var(--embark-ui-error,var(--ui-kit-fg-inverted));--ui-kit-bg-error:var(--embark-ui-bg-error,#fb2c36)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,#000c);--ui-kit-bg:var(--embark-ui-bg,#040404);--ui-kit-fg:var(--embark-ui-fg,#fff);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#000);--ui-kit-fg-muted:var(--embark-ui-fg-muted,#fff9);--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-secondary:var(--embark-ui-secondary,#111);--ui-kit-bd:var(--embark-ui-bd,#343434);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#4a4a4a);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,transparent);--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,#111);--ui-kit-success:var(--embark-ui-success,var(--ui-kit-fg-inverted));--ui-kit-bg-success:var(--embark-ui-bg-success,#0de4b3);--ui-kit-warning:var(--embark-ui-warning,var(--ui-kit-fg-inverted));--ui-kit-bg-warning:var(--embark-ui-bg-warning,#f0b100);--ui-kit-error:var(--embark-ui-error,var(--ui-kit-fg));--ui-kit-bg-error:var(--embark-ui-bg-error,#fb2c36)}.embarkai-ui-scope,.embarkai-ui-scope *{box-sizing:border-box;font-family:var(--ui-kit-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}.embarkai-ui-scope p,.embarkai-ui-scope h1,.embarkai-ui-scope h2,.embarkai-ui-scope h3,.embarkai-ui-scope h4,.embarkai-ui-scope h5,.embarkai-ui-scope h6,.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{margin:0;font-family:var(--ui-kit-ff)!important}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{-webkit-appearance:none;-moz-appearance:none;border-style:solid;appearance:none!important;outline:none!important}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0px 4px 20px var(--ui-kit-shadow-c), inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s}.embarkai-ui-scope .account-connect-button:hover{transform:scale(1.02)}.embarkai-ui-scope .account-connect-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.embarkai-ui-scope .animate-mobile-dialog-in{animation:.375s lumia-mobile-dialog-fade-in}.embarkai-ui-scope .animate-mobile-dialog-out{animation:.375s forwards lumia-mobile-dialog-fade-out}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.embarkai-ui-scope .animate-dialog-in{animation:.375s lumia-dialog-fade-in}.embarkai-ui-scope .animate-dialog-out{animation:.375s forwards lumia-dialog-fade-out}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0px);max-height:var(--ui-kit-scrollbar-mah,300px);overflow:hidden auto}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;background-color:var(--ui-kit-bd);border-radius:2px;width:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{background-color:#0000;margin-top:10px;margin-bottom:10px}.embarkai-ui-scope .noScrollbars::-webkit-scrollbar{display:none}.embarkai-ui-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}@keyframes rotateShine{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}.embarkai-ui-scope .button-shine-outline{-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;width:100%;height:100%;padding:1px;position:absolute;top:0;left:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.embarkai-ui-scope .button-shine-outline-shiner{pointer-events:none;background:conic-gradient(from 0deg, transparent 0%, var(--ui-kit-fg) 8%, transparent 24%);width:500px;height:500px;animation:3s linear infinite rotateShine;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes glow-warning{0%,to{box-shadow:inset 0 0 16px var(--ui-kit-bg-warning)}50%{box-shadow:inset 0 0 4px var(--ui-kit-bg-warning)}}@keyframes glow-error{0%,to{box-shadow:inset 0 0 16px var(--ui-kit-bg-error)}50%{box-shadow:inset 0 0 4px var(--ui-kit-bg-error)}}`;
|
|
37659
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .collapse{visibility:collapse}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .sticky{position:sticky}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .top-\\(--ui-kit-pd\\){top:var(--ui-kit-pd)}.embarkai-ui-scope .top-0{top:0}.embarkai-ui-scope .top-1{top:.25rem}.embarkai-ui-scope .top-1\\.5{top:.375rem}.embarkai-ui-scope .top-1\\/2{top:50%}.embarkai-ui-scope .top-2{top:.5rem}.embarkai-ui-scope .top-4{top:1rem}.embarkai-ui-scope .top-\\[var\\(--ui-kit-pd\\)\\]{top:var(--ui-kit-pd)}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .right-\\(--ui-kit-pd\\){right:var(--ui-kit-pd)}.embarkai-ui-scope .right-0{right:0}.embarkai-ui-scope .right-1{right:.25rem}.embarkai-ui-scope .right-2{right:.5rem}.embarkai-ui-scope .right-3{right:.75rem}.embarkai-ui-scope .right-4{right:1rem}.embarkai-ui-scope .right-\\[var\\(--ui-kit-pd\\)\\]{right:var(--ui-kit-pd)}.embarkai-ui-scope .right-full{right:100%}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\.5{left:.375rem}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.embarkai-ui-scope .z-1{z-index:1}.embarkai-ui-scope .z-10{z-index:10}.embarkai-ui-scope .z-12{z-index:12}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-100{z-index:100}.embarkai-ui-scope .z-9998{z-index:9998}.embarkai-ui-scope .z-9999{z-index:9999}.embarkai-ui-scope .float-right{float:right}.embarkai-ui-scope .container{width:100%}@media (min-width:40rem){.embarkai-ui-scope .container{max-width:40rem}}@media (min-width:48rem){.embarkai-ui-scope .container{max-width:48rem}}@media (min-width:64rem){.embarkai-ui-scope .container{max-width:64rem}}@media (min-width:80rem){.embarkai-ui-scope .container{max-width:80rem}}@media (min-width:96rem){.embarkai-ui-scope .container{max-width:96rem}}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-inline:-.25rem}.embarkai-ui-scope .mx-auto{margin-inline:auto}.embarkai-ui-scope .my-1{margin-block:.25rem}.embarkai-ui-scope .mt-0\\.5{margin-top:.125rem}.embarkai-ui-scope .mt-1{margin-top:.25rem}.embarkai-ui-scope .mt-2{margin-top:.5rem}.embarkai-ui-scope .mt-4{margin-top:1rem}.embarkai-ui-scope .mr-1{margin-right:.25rem}.embarkai-ui-scope .mb-1{margin-bottom:.25rem}.embarkai-ui-scope .mb-2{margin-bottom:.5rem}.embarkai-ui-scope .mb-3{margin-bottom:.75rem}.embarkai-ui-scope .mb-4{margin-bottom:1rem}.embarkai-ui-scope .ml-1{margin-left:.25rem}.embarkai-ui-scope .ml-2{margin-left:.5rem}.embarkai-ui-scope .ml-auto{margin-left:auto}.embarkai-ui-scope .block{display:block}.embarkai-ui-scope .contents{display:contents}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .size-4{width:1rem;height:1rem}.embarkai-ui-scope .size-8{width:2rem;height:2rem}.embarkai-ui-scope .size-auto{width:auto;height:auto}.embarkai-ui-scope .h-0{height:0}.embarkai-ui-scope .h-1{height:.25rem}.embarkai-ui-scope .h-2{height:.5rem}.embarkai-ui-scope .h-2\\.5{height:.625rem}.embarkai-ui-scope .h-3{height:.75rem}.embarkai-ui-scope .h-3\\.5{height:.875rem}.embarkai-ui-scope .h-4{height:1rem}.embarkai-ui-scope .h-5{height:1.25rem}.embarkai-ui-scope .h-6{height:1.5rem}.embarkai-ui-scope .h-7{height:1.75rem}.embarkai-ui-scope .h-8{height:2rem}.embarkai-ui-scope .h-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.embarkai-ui-scope .h-48{height:12rem}.embarkai-ui-scope .h-\\[48px\\]{height:48px}.embarkai-ui-scope .h-\\[100dvh\\]{height:100dvh}.embarkai-ui-scope .h-\\[var\\(--radix-select-trigger-height\\)\\]{height:var(--radix-select-trigger-height)}.embarkai-ui-scope .h-auto{height:auto}.embarkai-ui-scope .h-dvh{height:100dvh}.embarkai-ui-scope .h-fit{height:fit-content}.embarkai-ui-scope .h-full{height:100%}.embarkai-ui-scope .h-px{height:1px}.embarkai-ui-scope .max-h-96{max-height:24rem}.embarkai-ui-scope .max-h-\\[95dvh\\]{max-height:95dvh}.embarkai-ui-scope .max-h-\\[var\\(--radix-select-content-available-height\\)\\]{max-height:var(--radix-select-content-available-height)}.embarkai-ui-scope .min-h-10{min-height:2.5rem}.embarkai-ui-scope .min-h-12{min-height:3rem}.embarkai-ui-scope .w-0{width:0}.embarkai-ui-scope .w-1{width:.25rem}.embarkai-ui-scope .w-1\\/2{width:50%}.embarkai-ui-scope .w-2{width:.5rem}.embarkai-ui-scope .w-2\\.5{width:.625rem}.embarkai-ui-scope .w-3{width:.75rem}.embarkai-ui-scope .w-3\\.5{width:.875rem}.embarkai-ui-scope .w-4{width:1rem}.embarkai-ui-scope .w-5{width:1.25rem}.embarkai-ui-scope .w-6{width:1.5rem}.embarkai-ui-scope .w-7{width:1.75rem}.embarkai-ui-scope .w-8{width:2rem}.embarkai-ui-scope .w-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.embarkai-ui-scope .w-28{width:7rem}.embarkai-ui-scope .w-48{width:12rem}.embarkai-ui-scope .w-55{width:13.75rem}.embarkai-ui-scope .w-\\[30dvw\\]{width:30dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[60dvw\\]{width:60dvw}.embarkai-ui-scope .w-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[var\\(--ui-kit-content-maw\\,var\\(--ui-kit-maw\\)\\)\\]{width:var(--ui-kit-content-maw,var(--ui-kit-maw))}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-auto{width:auto}.embarkai-ui-scope .w-dvw{width:100dvw}.embarkai-ui-scope .w-fit{width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-max{width:max-content}.embarkai-ui-scope .w-px{width:1px}.embarkai-ui-scope .max-w-7xl{max-width:80rem}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[420px\\]{max-width:420px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-8px\\)\\]{max-width:calc(50% - 8px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .min-w-0{min-width:0}.embarkai-ui-scope .min-w-10{min-width:2.5rem}.embarkai-ui-scope .min-w-16{min-width:4rem}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.embarkai-ui-scope .flex-0{flex:0}.embarkai-ui-scope .flex-1{flex:1}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink{flex-shrink:1}.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .origin-\\[var\\(--radix-select-content-transform-origin\\)\\]{transform-origin:var(--radix-select-content-transform-origin)}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:calc(calc(1 / 3 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .rotate-180{rotate:180deg}.embarkai-ui-scope .rotate-360{rotate:360deg}.embarkai-ui-scope .transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.embarkai-ui-scope .animate-glow-error{animation:2s infinite glow-error}.embarkai-ui-scope .animate-glow-warning{animation:2s infinite glow-warning}.embarkai-ui-scope .animate-ping{animation:1s cubic-bezier(0,0,.2,1) infinite ping}.embarkai-ui-scope .animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.embarkai-ui-scope .animate-spin{animation:1s linear infinite spin}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-not-allowed{cursor:not-allowed}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .resize{resize:both}.embarkai-ui-scope .scroll-my-1{scroll-margin-block:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.embarkai-ui-scope .flex-col{flex-direction:column}.embarkai-ui-scope .flex-col-reverse{flex-direction:column-reverse}.embarkai-ui-scope .flex-wrap{flex-wrap:wrap}.embarkai-ui-scope .place-content-center{place-content:center}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-start{align-items:flex-start}.embarkai-ui-scope .justify-between{justify-content:space-between}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .gap-\\(--ui-kit-gap\\){gap:var(--ui-kit-gap)}.embarkai-ui-scope .gap-\\(--ui-kt-gap\\){gap:var(--ui-kt-gap)}.embarkai-ui-scope .gap-0{gap:0}.embarkai-ui-scope .gap-1{gap:.25rem}.embarkai-ui-scope .gap-2{gap:.5rem}.embarkai-ui-scope .gap-3{gap:.75rem}.embarkai-ui-scope .gap-4{gap:1rem}.embarkai-ui-scope .gap-\\[10px\\]{gap:10px}.embarkai-ui-scope .gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}:where(.embarkai-ui-scope .space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.embarkai-ui-scope .space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(.25rem * var(--tw-space-y-reverse));margin-block-end:calc(.25rem * calc(1 - var(--tw-space-y-reverse)))}:where(.embarkai-ui-scope .space-y-1\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.embarkai-ui-scope .space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(.25rem * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(.25rem * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.embarkai-ui-scope .space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(.25rem * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(.25rem * 2) * calc(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\(--ui-kit-el-bdrs\\){border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[calc\\(var\\(--ui-kit-el-bdrs\\)_\\/_2\\)\\]{border-radius:calc(var(--ui-kit-el-bdrs) / 2)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-bdrs\\)\\]{border-radius:var(--ui-kit-bdrs)}.embarkai-ui-scope .rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .rounded-full{border-radius:3.40282e38px}.embarkai-ui-scope .rounded-lg{border-radius:.5rem}.embarkai-ui-scope .rounded-md{border-radius:.375rem}.embarkai-ui-scope .rounded-xl{border-radius:.75rem}.embarkai-ui-scope .border{border-style:var(--tw-border-style);border-width:1px}.embarkai-ui-scope .border-0{border-style:var(--tw-border-style);border-width:0}.embarkai-ui-scope .border-2{border-style:var(--tw-border-style);border-width:2px}.embarkai-ui-scope .border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.embarkai-ui-scope .border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.embarkai-ui-scope .border-dashed{--tw-border-style:dashed;border-style:dashed}.embarkai-ui-scope .border-\\(--ui-kit-bd\\){border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\(--ui-kit-fg-muted\\){border-color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bd\\)\\]{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-error\\)\\]{border-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-success\\)\\]{border-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-bg-warning\\)\\]{border-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-error\\)\\]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .border-\\[var\\(--ui-kit-secondary\\)\\]{border-color:var(--ui-kit-secondary)}.embarkai-ui-scope .border-current{border-color:currentColor}.embarkai-ui-scope .border-transparent{border-color:#0000}.embarkai-ui-scope .border-t-transparent{border-top-color:#0000}.embarkai-ui-scope .bg-\\(--ui-kit-bd\\){background-color:var(--ui-kit-bd)}.embarkai-ui-scope .bg-\\(--ui-kit-bg\\){background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\(--ui-kit-bg-success\\){background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\(--ui-kit-bg-warning\\){background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\(--ui-kit-primary\\){background-color:var(--ui-kit-primary)}.embarkai-ui-scope .bg-\\(--ui-kit-secondary\\){background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{background-color:#f3ba2f}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg\\)\\]{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-error\\)\\]{background-color:var(--ui-kit-bg-error)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-info\\)\\]{background-color:var(--ui-kit-bg-info)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-secondary\\)\\]{background-color:var(--ui-kit-bg-secondary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-success\\)\\]{background-color:var(--ui-kit-bg-success)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-bg-warning\\)\\]{background-color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-fg\\)\\]{background-color:var(--ui-kit-fg)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-overlay\\)\\]{background-color:var(--ui-kit-overlay)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-primary\\)\\]{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .bg-\\[var\\(--ui-kit-secondary\\)\\]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .bg-blue-100{background-color:oklch(93.2% .032 255.585)}.embarkai-ui-scope .bg-gray-100{background-color:oklch(96.7% .003 264.542)}.embarkai-ui-scope .bg-green-100{background-color:oklch(96.2% .044 156.743)}.embarkai-ui-scope .bg-red-100{background-color:oklch(93.6% .032 17.717)}.embarkai-ui-scope .bg-transparent{background-color:#0000}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{object-fit:contain}.embarkai-ui-scope .object-cover{object-fit:cover}.embarkai-ui-scope .p-\\(--ui-kit-pd\\){padding:var(--ui-kit-pd)}.embarkai-ui-scope .p-0{padding:0}.embarkai-ui-scope .p-1{padding:.25rem}.embarkai-ui-scope .p-2{padding:.5rem}.embarkai-ui-scope .p-2\\!{padding:.5rem!important}.embarkai-ui-scope .p-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.embarkai-ui-scope .p-\\[12px\\]{padding:12px}.embarkai-ui-scope .p-\\[var\\(--ui-kit-gap\\)\\]{padding:var(--ui-kit-gap)}.embarkai-ui-scope .p-\\[var\\(--ui-kit-pd\\)\\]{padding:var(--ui-kit-pd)}.embarkai-ui-scope .px-\\(--ui-kit-gap\\){padding-inline:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\(--ui-kit-pd\\){padding-inline:var(--ui-kit-pd)}.embarkai-ui-scope .px-0{padding-inline:0}.embarkai-ui-scope .px-1{padding-inline:.25rem}.embarkai-ui-scope .px-2{padding-inline:.5rem}.embarkai-ui-scope .px-3{padding-inline:.75rem}.embarkai-ui-scope .px-4{padding-inline:1rem}.embarkai-ui-scope .px-5{padding-inline:1.25rem}.embarkai-ui-scope .px-8{padding-inline:2rem}.embarkai-ui-scope .px-10{padding-inline:2.5rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-inline:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-inline:var(--ui-kit-pd)}.embarkai-ui-scope .py-\\(--ui-kit-pd\\){padding-block:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-block:0}.embarkai-ui-scope .py-1{padding-block:.25rem}.embarkai-ui-scope .py-1\\.5{padding-block:.375rem}.embarkai-ui-scope .py-2{padding-block:.5rem}.embarkai-ui-scope .py-3{padding-block:.75rem}.embarkai-ui-scope .py-4{padding-block:1rem}.embarkai-ui-scope .py-8{padding-block:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-block:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-block:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-block:var(--ui-kit-pd)}.embarkai-ui-scope .pt-1{padding-top:.25rem}.embarkai-ui-scope .pt-3{padding-top:.75rem}.embarkai-ui-scope .pt-4{padding-top:1rem}.embarkai-ui-scope .pt-5{padding-top:1.25rem}.embarkai-ui-scope .pr-8{padding-right:2rem}.embarkai-ui-scope .pb-2{padding-bottom:.5rem}.embarkai-ui-scope .pb-5{padding-bottom:1.25rem}.embarkai-ui-scope .pb-6{padding-bottom:1.5rem}.embarkai-ui-scope .pb-\\[var\\(--ui-kit-pd\\)\\]{padding-bottom:var(--ui-kit-pd)}.embarkai-ui-scope .pl-2{padding-left:.5rem}.embarkai-ui-scope .pl-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd)}.embarkai-ui-scope .text-center{text-align:center}.embarkai-ui-scope .text-left{text-align:left}.embarkai-ui-scope .text-right{text-align:right}.embarkai-ui-scope .font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.embarkai-ui-scope .font-mono\\!{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.embarkai-ui-scope .font-sans{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.embarkai-ui-scope .text-2xl{font-size:1.5rem;line-height:var(--tw-leading,calc(2 / 1.5))}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:var(--tw-leading,calc(1.75 / 1.125))}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:var(--tw-leading,calc(1.25 / .875))}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:var(--tw-leading,calc(1.75 / 1.25))}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:var(--tw-leading,calc(1 / .75))}.embarkai-ui-scope .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-\\[10px\\]{font-size:10px}.embarkai-ui-scope .text-\\[14px\\]{font-size:14px}.embarkai-ui-scope .text-\\[16px\\]{font-size:16px}.embarkai-ui-scope .leading-3{--tw-leading:calc(.25rem * 3);line-height:.75rem}.embarkai-ui-scope .leading-4{--tw-leading:calc(.25rem * 4);line-height:1rem}.embarkai-ui-scope .leading-5{--tw-leading:calc(.25rem * 5);line-height:1.25rem}.embarkai-ui-scope .leading-6{--tw-leading:calc(.25rem * 6);line-height:1.5rem}.embarkai-ui-scope .leading-7{--tw-leading:calc(.25rem * 7);line-height:1.75rem}.embarkai-ui-scope .leading-8{--tw-leading:calc(.25rem * 8);line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{--tw-leading:8px;line-height:8px}.embarkai-ui-scope .leading-none{--tw-leading:1;line-height:1}.embarkai-ui-scope .leading-tight{--tw-leading:1.25;line-height:1.25}.embarkai-ui-scope .font-bold{--tw-font-weight:700;font-weight:700}.embarkai-ui-scope .font-light{--tw-font-weight:300;font-weight:300}.embarkai-ui-scope .font-medium{--tw-font-weight:500;font-weight:500}.embarkai-ui-scope .font-normal{--tw-font-weight:400;font-weight:400}.embarkai-ui-scope .font-semibold{--tw-font-weight:600;font-weight:600}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{--tw-tracking:.3em;letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{--tw-tracking:-.025em;letter-spacing:-.025em}.embarkai-ui-scope .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .wrap-break-word{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .text-ellipsis{text-overflow:ellipsis}.embarkai-ui-scope .whitespace-nowrap{white-space:nowrap}.embarkai-ui-scope .whitespace-pre-line{white-space:pre-line}.embarkai-ui-scope .whitespace-pre-wrap{white-space:pre-wrap}.embarkai-ui-scope .text-\\(--ui-kit-bg-success\\){color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\(--ui-kit-bg-warning\\){color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\(--ui-kit-fg\\){color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\(--ui-kit-fg-inverted\\){color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .text-\\(--ui-kit-fg-muted\\){color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\(--ui-kit-fg-muted\\)\\!{color:var(--ui-kit-fg-muted)!important}.embarkai-ui-scope .text-\\(--ui-kit-success\\){color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-error\\)\\]{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-success\\)\\]{color:var(--ui-kit-bg-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-bg-warning\\)\\]{color:var(--ui-kit-bg-warning)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-error\\)\\]{color:var(--ui-kit-error)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg\\)\\]{color:var(--ui-kit-fg)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-inverted\\)\\]{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-fg-muted\\)\\]{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-info\\)\\]{color:var(--ui-kit-info)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-primary\\)\\]{color:var(--ui-kit-primary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-success\\)\\]{color:var(--ui-kit-success)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-text-secondary\\)\\]{color:var(--ui-kit-text-secondary)}.embarkai-ui-scope .text-\\[var\\(--ui-kit-warning\\)\\]{color:var(--ui-kit-warning)}.embarkai-ui-scope .text-black{color:#000}.embarkai-ui-scope .text-blue-600{color:oklch(54.6% .245 262.881)}.embarkai-ui-scope .text-blue-800{color:oklch(42.4% .199 265.638)}.embarkai-ui-scope .text-gray-400{color:oklch(70.7% .022 261.325)}.embarkai-ui-scope .text-gray-500{color:oklch(55.1% .027 264.364)}.embarkai-ui-scope .text-gray-600{color:oklch(44.6% .03 256.802)}.embarkai-ui-scope .text-green-500{color:oklch(72.3% .219 149.579)}.embarkai-ui-scope .text-green-600{color:oklch(62.7% .194 149.214)}.embarkai-ui-scope .text-green-800{color:oklch(44.8% .119 151.328)}.embarkai-ui-scope .text-red-600{color:oklch(57.7% .245 27.325)}.embarkai-ui-scope .text-red-800{color:oklch(44.4% .177 26.899)}.embarkai-ui-scope .text-sky-500{color:oklch(68.5% .169 237.323)}.embarkai-ui-scope .text-white{color:#fff}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .line-through{text-decoration-line:line-through}.embarkai-ui-scope .underline{text-decoration-line:underline}.embarkai-ui-scope .underline-offset-2{text-underline-offset:2px}.embarkai-ui-scope .underline-offset-4{text-underline-offset:4px}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-bd\\)\\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--ui-kit-bd));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-fg\\)\\]{--tw-shadow:inset 0 0 0 1px var(--tw-shadow-color,var(--ui-kit-fg));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .ring-0{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .ring-4{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .ring-\\(--ui-kit-bg-success\\)\\/50{--tw-ring-color:var(--ui-kit-bg-success)}@supports (color:color-mix(in lab, red, red)){.embarkai-ui-scope .ring-\\(--ui-kit-bg-success\\)\\/50{--tw-ring-color:color-mix(in oklab, var(--ui-kit-bg-success) 50%, transparent)}}.embarkai-ui-scope .ring-offset-0{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.embarkai-ui-scope .outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.embarkai-ui-scope .outline-hidden{outline-offset:2px;outline:2px solid #0000}}.embarkai-ui-scope .outline{outline-style:var(--tw-outline-style);outline-width:1px}.embarkai-ui-scope .filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.embarkai-ui-scope .backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.embarkai-ui-scope .transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .duration-125{--tw-duration:.125s;transition-duration:.125s}.embarkai-ui-scope .duration-200{--tw-duration:.2s;transition-duration:.2s}.embarkai-ui-scope .duration-375{--tw-duration:.375s;transition-duration:.375s}.embarkai-ui-scope .duration-500{--tw-duration:.5s;transition-duration:.5s}.embarkai-ui-scope .ease-in-out{--tw-ease:cubic-bezier(.4, 0, .2, 1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.embarkai-ui-scope .select-all{-webkit-user-select:all;user-select:all}.embarkai-ui-scope .select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.embarkai-ui-scope .group-hover\\:opacity-80:is(:where(.group):hover *){opacity:.8}.embarkai-ui-scope .group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.embarkai-ui-scope .file\\:mr-\\[var\\(--ui-kit-gap\\)\\]::file-selector-button{margin-right:var(--ui-kit-gap)}.embarkai-ui-scope .file\\:h-12::file-selector-button{height:3rem}.embarkai-ui-scope .file\\:cursor-pointer::file-selector-button{cursor:pointer}.embarkai-ui-scope .file\\:rounded-\\[var\\(--ui-kit-el-bdrs\\)\\]::file-selector-button{border-radius:var(--ui-kit-el-bdrs)}.embarkai-ui-scope .file\\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-inline:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-\\[var\\(--ui-kit-fg-inverted\\)\\]::file-selector-button{color:var(--ui-kit-fg-inverted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:border-\\[var\\(--ui-kit-bd\\)\\]:focus-within{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .focus-within\\:opacity-100:focus-within{opacity:1}@media (hover:hover){.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{background-color:#f0f6f8}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{background-color:#f3ba2f}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{background-color:oklch(98.5% .002 247.839)}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{color:oklch(44.6% .03 256.802)}.embarkai-ui-scope .hover\\:text-gray-700:hover{color:oklch(37.3% .034 259.733)}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .file\\:hover\\:opacity-90::file-selector-button:hover{opacity:.9}.embarkai-ui-scope .focus-within\\:hover\\:opacity-100:focus-within:hover{opacity:1}}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:#0000}.embarkai-ui-scope .focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.embarkai-ui-scope .focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.embarkai-ui-scope .focus-visible\\:ring-transparent:focus-visible{--tw-ring-color:transparent}.embarkai-ui-scope .focus-visible\\:ring-offset-0:focus-visible{--tw-ring-offset-width:0px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.embarkai-ui-scope .focus-visible\\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.embarkai-ui-scope .focus-visible\\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{background-color:#f3ba2f}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80::file-selector-button:active{opacity:.8}.embarkai-ui-scope .disabled\\:cursor-default:disabled{cursor:default}.embarkai-ui-scope .disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.embarkai-ui-scope .disabled\\:opacity-50:disabled{opacity:.5}@media (hover:hover){.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:disabled:hover{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:disabled:hover{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:disabled:hover{opacity:.5}}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:disabled:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:disabled:active{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:disabled:active{opacity:.5}.embarkai-ui-scope .aria-invalid\\:border-\\[var\\(--ui-kit-error\\)\\][aria-invalid=true]{border-color:var(--ui-kit-error)}.embarkai-ui-scope .aria-invalid\\:ring-\\[var\\(--ui-kit-error\\)\\][aria-invalid=true]{--tw-ring-color:var(--ui-kit-error)}.embarkai-ui-scope .data-disabled\\:pointer-events-none[data-disabled]{pointer-events:none}.embarkai-ui-scope .data-disabled\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:.25rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:calc(.25rem * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:.25rem;translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:calc(.25rem * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.embarkai-ui-scope .data-\\[size\\=default\\]\\:h-12[data-size=default]{height:3rem}.embarkai-ui-scope .data-\\[size\\=sm\\]\\:h-10[data-size=sm]{height:2.5rem}:is(.embarkai-ui-scope .data-\\[slot\\=select-value\\]\\:\\*\\:line-clamp-1[data-slot=select-value]>*){-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.embarkai-ui-scope .data-\\[slot\\=select-value\\]\\:\\*\\:flex[data-slot=select-value]>*){display:flex}:is(.embarkai-ui-scope .data-\\[slot\\=select-value\\]\\:\\*\\:items-center[data-slot=select-value]>*){align-items:center}:is(.embarkai-ui-scope .data-\\[slot\\=select-value\\]\\:\\*\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:border-\\[var\\(--ui-kit-bd-intense\\)\\][data-state=checked]{border-color:var(--ui-kit-bd-intense)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:bg-\\[var\\(--ui-kit-secondary\\)\\][data-state=checked]{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .data-\\[state\\=checked\\]\\:text-\\[var\\(--ui-kit-fg\\)\\][data-state=checked]{color:var(--ui-kit-fg)}@media (min-width:40rem){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}:where(.embarkai-ui-scope .sm\\:space-x-2>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(.25rem * 2) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(.25rem * 2) * calc(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:48rem){.embarkai-ui-scope .md\\:h-8{height:2rem}.embarkai-ui-scope .md\\:w-8{width:2rem}.embarkai-ui-scope .md\\:gap-\\[var\\(--ui-kit-gap\\)\\]{gap:var(--ui-kit-gap)}.embarkai-ui-scope .md\\:py-1{padding-block:.25rem}.embarkai-ui-scope .md\\:text-3xl{font-size:1.875rem;line-height:var(--tw-leading,calc(2.25 / 1.875))}}.embarkai-ui-scope .\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.embarkai-ui-scope .\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.embarkai-ui-scope .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}:is(.embarkai-ui-scope .last\\:\\[span\\]\\:\\*\\:flex:last-child:is(span)>*){display:flex}:is(.embarkai-ui-scope .last\\:\\[span\\]\\:\\*\\:items-center:last-child:is(span)>*){align-items:center}:is(.embarkai-ui-scope .\\*\\:\\[span\\]\\:last\\:gap-2>*):is(span):last-child{gap:.5rem}:root{--w3m-z-index:10001!important}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system, BlinkMacSystemFont, "Inter", system-ui, sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,#fffc);--ui-kit-bg:var(--embark-ui-bg,#fff);--ui-kit-fg:var(--embark-ui-fg,#000);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#fff);--ui-kit-fg-muted:var(--embark-ui-fg-muted,#0009);--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,transparent);--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,#f4f4f4);--ui-kit-success:var(--embark-ui-success,var(--ui-kit-fg));--ui-kit-bg-success:var(--embark-ui-bg-success,#0de4b3);--ui-kit-warning:var(--embark-ui-warning,var(--ui-kit-fg));--ui-kit-bg-warning:var(--embark-ui-bg-warning,#f0b100);--ui-kit-error:var(--embark-ui-error,var(--ui-kit-fg-inverted));--ui-kit-bg-error:var(--embark-ui-bg-error,#fb2c36)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,#000c);--ui-kit-bg:var(--embark-ui-bg,#040404);--ui-kit-fg:var(--embark-ui-fg,#fff);--ui-kit-fg-inverted:var(--embark-ui-fg-inverted,#000);--ui-kit-fg-muted:var(--embark-ui-fg-muted,#fff9);--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-secondary:var(--embark-ui-secondary,#111);--ui-kit-bd:var(--embark-ui-bd,#343434);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#4a4a4a);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,transparent);--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,#111);--ui-kit-success:var(--embark-ui-success,var(--ui-kit-fg-inverted));--ui-kit-bg-success:var(--embark-ui-bg-success,#0de4b3);--ui-kit-warning:var(--embark-ui-warning,var(--ui-kit-fg-inverted));--ui-kit-bg-warning:var(--embark-ui-bg-warning,#f0b100);--ui-kit-error:var(--embark-ui-error,var(--ui-kit-fg));--ui-kit-bg-error:var(--embark-ui-bg-error,#fb2c36)}.embarkai-ui-scope,.embarkai-ui-scope *{box-sizing:border-box;font-family:var(--ui-kit-ff);font-optical-sizing:auto;-webkit-tap-highlight-color:transparent;-moz-tap-highlight-color:transparent;-ms-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}.embarkai-ui-scope p,.embarkai-ui-scope h1,.embarkai-ui-scope h2,.embarkai-ui-scope h3,.embarkai-ui-scope h4,.embarkai-ui-scope h5,.embarkai-ui-scope h6,.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{margin:0;font-family:var(--ui-kit-ff)!important}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{-webkit-appearance:none;-moz-appearance:none;border-style:solid;appearance:none!important;outline:none!important}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0px 4px 20px var(--ui-kit-shadow-c), inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s}.embarkai-ui-scope .account-connect-button:hover{transform:scale(1.02)}.embarkai-ui-scope .account-connect-button:active{transform:scale(1)}@keyframes lumia-mobile-dialog-fade-in{0%{opacity:0;transform:translateY(64px)}to{opacity:1;transform:translateY(0)}}@keyframes lumia-mobile-dialog-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(64px)}}.embarkai-ui-scope .animate-mobile-dialog-in{animation:.375s lumia-mobile-dialog-fade-in}.embarkai-ui-scope .animate-mobile-dialog-out{animation:.375s forwards lumia-mobile-dialog-fade-out}@keyframes lumia-dialog-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lumia-dialog-fade-out{0%{opacity:1}to{opacity:0}}.embarkai-ui-scope .animate-dialog-in{animation:.375s lumia-dialog-fade-in}.embarkai-ui-scope .animate-dialog-out{animation:.375s forwards lumia-dialog-fade-out}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0px);max-height:var(--ui-kit-scrollbar-mah,300px);overflow:hidden auto}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;background-color:var(--ui-kit-bd);border-radius:2px;width:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{background-color:#0000;margin-top:10px;margin-bottom:10px}.embarkai-ui-scope .noScrollbars::-webkit-scrollbar{display:none}.embarkai-ui-scope div[data-radix-popper-content-wrapper]{z-index:10000!important}@keyframes rotateShine{0%{transform:translate(-50%,-50%)rotate(0)}to{transform:translate(-50%,-50%)rotate(360deg)}}.embarkai-ui-scope .button-shine-outline{-webkit-mask-composite:xor;-webkit-mask-source-type:auto,auto;width:100%;height:100%;padding:1px;position:absolute;top:0;left:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.embarkai-ui-scope .button-shine-outline-shiner{pointer-events:none;background:conic-gradient(from 0deg, transparent 0%, var(--ui-kit-fg) 8%, transparent 24%);width:500px;height:500px;animation:3s linear infinite rotateShine;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes glow-warning{0%,to{box-shadow:inset 0 0 16px var(--ui-kit-bg-warning)}50%{box-shadow:inset 0 0 4px var(--ui-kit-bg-warning)}}@keyframes glow-error{0%,to{box-shadow:inset 0 0 16px var(--ui-kit-bg-error)}50%{box-shadow:inset 0 0 4px var(--ui-kit-bg-error)}}`;
|
|
36990
37660
|
|
|
36991
37661
|
// src/index.ts
|
|
36992
37662
|
var import_core10 = require("@embarkai/core");
|
|
@@ -36995,8 +37665,8 @@ init_ErrorBoundary2();
|
|
|
36995
37665
|
|
|
36996
37666
|
// src/components/ConnectWalletButton.tsx
|
|
36997
37667
|
init_embarkAI2();
|
|
36998
|
-
var
|
|
36999
|
-
var
|
|
37668
|
+
var import_lucide_react96 = require("lucide-react");
|
|
37669
|
+
var import_react120 = require("react");
|
|
37000
37670
|
init_SessionContext();
|
|
37001
37671
|
init_BalanceView2();
|
|
37002
37672
|
init_button();
|
|
@@ -37006,7 +37676,7 @@ init_useLayoutStore();
|
|
|
37006
37676
|
init_useUserProfile();
|
|
37007
37677
|
init_pro_mode();
|
|
37008
37678
|
init_utils();
|
|
37009
|
-
var
|
|
37679
|
+
var import_jsx_runtime150 = require("react/jsx-runtime");
|
|
37010
37680
|
function getFormattedStatus(label, status, showStatus) {
|
|
37011
37681
|
const isStatus = showStatus && status && status !== "idle" && status !== "ready";
|
|
37012
37682
|
if (!isStatus) return label;
|
|
@@ -37015,14 +37685,14 @@ function getFormattedStatus(label, status, showStatus) {
|
|
|
37015
37685
|
function NotificationsIndicator() {
|
|
37016
37686
|
const settingsNotifications = useLayoutDataStore((st) => st.settingsNotifications);
|
|
37017
37687
|
const isNotificationsLoading = useLayoutDataStore((st) => st.isNotificationsLoading);
|
|
37018
|
-
const pieSlices = (0,
|
|
37688
|
+
const pieSlices = (0, import_react120.useMemo)(() => {
|
|
37019
37689
|
if (settingsNotifications?.length === 0) return [{ value: 1, color: "var(--ui-kit-bg-success)" }];
|
|
37020
37690
|
return settingsNotifications.map((notification, _, nArr) => ({
|
|
37021
37691
|
value: 1 / nArr.length,
|
|
37022
37692
|
color: notification.mandatory ? "var(--ui-kit-bg-error)" : "var(--ui-kit-bg-warning)"
|
|
37023
37693
|
}));
|
|
37024
37694
|
}, [settingsNotifications]);
|
|
37025
|
-
return /* @__PURE__ */ (0,
|
|
37695
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
37026
37696
|
"div",
|
|
37027
37697
|
{
|
|
37028
37698
|
className: "w-8 h-8 relative flex items-center justify-center",
|
|
@@ -37032,8 +37702,8 @@ function NotificationsIndicator() {
|
|
|
37032
37702
|
e.stopPropagation();
|
|
37033
37703
|
useLayoutDataStore.getState().setPage("settings" /* SETTINGS */);
|
|
37034
37704
|
},
|
|
37035
|
-
children: isNotificationsLoading ? /* @__PURE__ */ (0,
|
|
37036
|
-
settingsNotifications.length > 0 && /* @__PURE__ */ (0,
|
|
37705
|
+
children: isNotificationsLoading ? /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(import_lucide_react96.LoaderIcon, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(import_jsx_runtime150.Fragment, { children: [
|
|
37706
|
+
settingsNotifications.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
37037
37707
|
"div",
|
|
37038
37708
|
{
|
|
37039
37709
|
className: cn2(
|
|
@@ -37042,8 +37712,8 @@ function NotificationsIndicator() {
|
|
|
37042
37712
|
)
|
|
37043
37713
|
}
|
|
37044
37714
|
),
|
|
37045
|
-
/* @__PURE__ */ (0,
|
|
37046
|
-
/* @__PURE__ */ (0,
|
|
37715
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(PieChart, { className: "w-8 h-8 cursor-pointer", data: pieSlices }),
|
|
37716
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(
|
|
37047
37717
|
"div",
|
|
37048
37718
|
{
|
|
37049
37719
|
className: cn2(
|
|
@@ -37053,7 +37723,7 @@ function NotificationsIndicator() {
|
|
|
37053
37723
|
"flex items-center justify-center",
|
|
37054
37724
|
{ "bg-(--ui-kit-bg)": settingsNotifications.length > 0 }
|
|
37055
37725
|
),
|
|
37056
|
-
children: settingsNotifications.length > 0 ? /* @__PURE__ */ (0,
|
|
37726
|
+
children: settingsNotifications.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(import_lucide_react96.ShieldAlertIcon, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(import_lucide_react96.ShieldCheckIcon, { className: "w-4 h-4 text-(--ui-kit-success)" })
|
|
37057
37727
|
}
|
|
37058
37728
|
)
|
|
37059
37729
|
] })
|
|
@@ -37071,25 +37741,25 @@ function ConnectWalletButton(props) {
|
|
|
37071
37741
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
37072
37742
|
const { address, isLoading, isIframeReady, status, setUsePaymaster } = useSession();
|
|
37073
37743
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
37074
|
-
(0,
|
|
37744
|
+
(0, import_react120.useEffect)(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
37075
37745
|
const { data: profile, isLoading: isProfileLoading } = useUserProfile();
|
|
37076
37746
|
const proMode = useProMode();
|
|
37077
37747
|
const displayName = profile?.nicknameDisplay || profile?.displayName;
|
|
37078
37748
|
const isConnecting = connectButtonLabel !== label || isLoading;
|
|
37079
|
-
return /* @__PURE__ */ (0,
|
|
37749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { "data-current-theme-mode": colorMode, className: cn2("embarkai-ui-scope w-fit h-fit", className), children: !address ? (
|
|
37080
37750
|
/** external Buttons can be provided */
|
|
37081
|
-
/* @__PURE__ */ (0,
|
|
37751
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(import_jsx_runtime150.Fragment, { children: ConnectButton ? /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
37082
37752
|
ConnectButton,
|
|
37083
37753
|
{
|
|
37084
37754
|
type: "button",
|
|
37085
37755
|
disabled: isConnecting,
|
|
37086
37756
|
onClick: () => useLayoutDataStore.getState().setPage("auth" /* AUTH */),
|
|
37087
37757
|
children: [
|
|
37088
|
-
isConnecting ? /* @__PURE__ */ (0,
|
|
37758
|
+
isConnecting ? /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(import_lucide_react96.LoaderIcon, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(embarkAI_default2, { className: "w-6 h-6" }),
|
|
37089
37759
|
connectButtonLabel.toUpperCase()
|
|
37090
37760
|
]
|
|
37091
37761
|
}
|
|
37092
|
-
) : /* @__PURE__ */ (0,
|
|
37762
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
37093
37763
|
Button,
|
|
37094
37764
|
{
|
|
37095
37765
|
type: "button",
|
|
@@ -37106,12 +37776,12 @@ function ConnectWalletButton(props) {
|
|
|
37106
37776
|
"disabled:hover:bg-[var(--ui-kit-bg)] disabled:active:bg-[var(--ui-kit-bg)]"
|
|
37107
37777
|
),
|
|
37108
37778
|
children: [
|
|
37109
|
-
isConnecting ? /* @__PURE__ */ (0,
|
|
37779
|
+
isConnecting ? /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(import_lucide_react96.LoaderIcon, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(embarkAI_default2, { className: "w-6 h-6" }),
|
|
37110
37780
|
connectButtonLabel.toUpperCase()
|
|
37111
37781
|
]
|
|
37112
37782
|
}
|
|
37113
37783
|
) })
|
|
37114
|
-
) : /* @__PURE__ */ (0,
|
|
37784
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime150.jsxs)(
|
|
37115
37785
|
"button",
|
|
37116
37786
|
{
|
|
37117
37787
|
type: "button",
|
|
@@ -37124,15 +37794,15 @@ function ConnectWalletButton(props) {
|
|
|
37124
37794
|
"rounded-[var(--ui-kit-bdrs)] p-4 max-w-sm min-w-[256px]"
|
|
37125
37795
|
),
|
|
37126
37796
|
children: [
|
|
37127
|
-
/* @__PURE__ */ (0,
|
|
37128
|
-
proMode && /* @__PURE__ */ (0,
|
|
37129
|
-
isProfileLoading ? /* @__PURE__ */ (0,
|
|
37797
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "relative w-12 h-12 rounded-full bg-(--ui-kit-secondary) flex items-center justify-center shrink-0", children: [
|
|
37798
|
+
proMode && /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "absolute -top-1 -right-1 text-[8px] font-bold px-1 rounded bg-[var(--ui-kit-primary)] text-[var(--ui-kit-fg-inverted)] leading-3 z-10", children: "PRO" }),
|
|
37799
|
+
isProfileLoading ? /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(import_lucide_react96.LoaderIcon, { className: "w-4 h-4 animate-spin" }) : !!profile?.avatar ? /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("img", { src: profile.avatar, alt: "User avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ (0, import_jsx_runtime150.jsx)(embarkAI_default2, { className: "w-6 h-6" })
|
|
37130
37800
|
] }),
|
|
37131
|
-
/* @__PURE__ */ (0,
|
|
37132
|
-
/* @__PURE__ */ (0,
|
|
37133
|
-
/* @__PURE__ */ (0,
|
|
37801
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsxs)("div", { className: "text-left flex-1 min-w-0 text-[var(--ui-kit-fg)]", children: [
|
|
37802
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime150.jsx)("span", { className: "w-fit text-[14px] leading-4 truncate max-w-[144px] text-[var(--ui-kit-fg)]", children: displayName || "" }) }),
|
|
37803
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(BalanceView, {})
|
|
37134
37804
|
] }),
|
|
37135
|
-
/* @__PURE__ */ (0,
|
|
37805
|
+
/* @__PURE__ */ (0, import_jsx_runtime150.jsx)(NotificationsIndicator, {})
|
|
37136
37806
|
]
|
|
37137
37807
|
}
|
|
37138
37808
|
) });
|
|
@@ -37175,28 +37845,28 @@ init_useOpenPage();
|
|
|
37175
37845
|
init_useColorMode();
|
|
37176
37846
|
|
|
37177
37847
|
// src/components/ThemeToggle.tsx
|
|
37178
|
-
var
|
|
37848
|
+
var import_lucide_react97 = require("lucide-react");
|
|
37179
37849
|
init_useColorMode();
|
|
37180
37850
|
init_button();
|
|
37181
37851
|
init_utils();
|
|
37182
|
-
var
|
|
37852
|
+
var import_jsx_runtime151 = require("react/jsx-runtime");
|
|
37183
37853
|
function ThemeToggle(props) {
|
|
37184
37854
|
const { className, ...btnProps } = props;
|
|
37185
37855
|
const { colorMode, setColorMode } = useColorMode();
|
|
37186
|
-
return /* @__PURE__ */ (0,
|
|
37856
|
+
return /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
37187
37857
|
"div",
|
|
37188
37858
|
{
|
|
37189
37859
|
className: cn2("embarkai-ui-scope", className),
|
|
37190
37860
|
"data-current-theme-mode": colorMode,
|
|
37191
37861
|
style: { width: "fit-content", height: "fit-content" },
|
|
37192
|
-
children: /* @__PURE__ */ (0,
|
|
37862
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(
|
|
37193
37863
|
Button,
|
|
37194
37864
|
{
|
|
37195
37865
|
...btnProps,
|
|
37196
37866
|
variant: "ghost",
|
|
37197
37867
|
onClick: () => setColorMode(colorMode === "light" ? "dark" : "light"),
|
|
37198
37868
|
title: `Current theme: ${colorMode}. Click to switch.`,
|
|
37199
|
-
children: colorMode === "dark" ? /* @__PURE__ */ (0,
|
|
37869
|
+
children: colorMode === "dark" ? /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(import_lucide_react97.Sun, { className: "w-4 h-4" }) : /* @__PURE__ */ (0, import_jsx_runtime151.jsx)(import_lucide_react97.Moon, { className: "w-4 h-4" })
|
|
37200
37870
|
}
|
|
37201
37871
|
)
|
|
37202
37872
|
}
|
|
@@ -37208,18 +37878,18 @@ init_i18n();
|
|
|
37208
37878
|
init_button();
|
|
37209
37879
|
init_useLayoutDataStore();
|
|
37210
37880
|
init_utils();
|
|
37211
|
-
var
|
|
37881
|
+
var import_jsx_runtime152 = require("react/jsx-runtime");
|
|
37212
37882
|
function LangToggle(props) {
|
|
37213
37883
|
const { className, ...btnProps } = props;
|
|
37214
37884
|
const { i18n } = useT();
|
|
37215
37885
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
37216
|
-
return /* @__PURE__ */ (0,
|
|
37886
|
+
return /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
37217
37887
|
"div",
|
|
37218
37888
|
{
|
|
37219
37889
|
className: cn2("embarkai-ui-scope", className),
|
|
37220
37890
|
"data-mbark-language": i18n.resolvedLanguage || "en",
|
|
37221
37891
|
style: { width: "fit-content", height: "fit-content" },
|
|
37222
|
-
children: /* @__PURE__ */ (0,
|
|
37892
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime152.jsx)(
|
|
37223
37893
|
Button,
|
|
37224
37894
|
{
|
|
37225
37895
|
...btnProps,
|
|
@@ -37237,18 +37907,18 @@ function LangToggle(props) {
|
|
|
37237
37907
|
init_useLayoutDataStore();
|
|
37238
37908
|
|
|
37239
37909
|
// src/internal/components/UserOpStatus.tsx
|
|
37240
|
-
var
|
|
37910
|
+
var import_lucide_react99 = require("lucide-react");
|
|
37241
37911
|
var React36 = __toESM(require("react"), 1);
|
|
37242
37912
|
init_getUserOperationByHash();
|
|
37243
37913
|
init_getUserOperationReceipt();
|
|
37244
37914
|
init_cn();
|
|
37245
37915
|
|
|
37246
37916
|
// src/internal/components/Address.tsx
|
|
37247
|
-
var
|
|
37917
|
+
var import_lucide_react98 = require("lucide-react");
|
|
37248
37918
|
var React35 = __toESM(require("react"), 1);
|
|
37249
37919
|
init_cn();
|
|
37250
37920
|
init_button();
|
|
37251
|
-
var
|
|
37921
|
+
var import_jsx_runtime153 = require("react/jsx-runtime");
|
|
37252
37922
|
function toExplorerAddressUrl(address, chain) {
|
|
37253
37923
|
const base = chain?.blockExplorers?.default?.url;
|
|
37254
37924
|
if (!base) return null;
|
|
@@ -37262,7 +37932,7 @@ var Address = ({
|
|
|
37262
37932
|
address,
|
|
37263
37933
|
chain,
|
|
37264
37934
|
className,
|
|
37265
|
-
truncate = true,
|
|
37935
|
+
truncate: truncate2 = true,
|
|
37266
37936
|
showCopy = true,
|
|
37267
37937
|
showExplorer = true,
|
|
37268
37938
|
label
|
|
@@ -37270,11 +37940,11 @@ var Address = ({
|
|
|
37270
37940
|
const addr = address || "";
|
|
37271
37941
|
const explorer = toExplorerAddressUrl(addr, chain || void 0);
|
|
37272
37942
|
const [copied, setCopied] = React35.useState(false);
|
|
37273
|
-
if (!addr) return /* @__PURE__ */ (0,
|
|
37274
|
-
return /* @__PURE__ */ (0,
|
|
37275
|
-
label && /* @__PURE__ */ (0,
|
|
37276
|
-
/* @__PURE__ */ (0,
|
|
37277
|
-
showCopy && /* @__PURE__ */ (0,
|
|
37943
|
+
if (!addr) return /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: cn("text-muted-foreground", className), children: "\u2014" });
|
|
37944
|
+
return /* @__PURE__ */ (0, import_jsx_runtime153.jsxs)("div", { className: cn("flex items-center gap-2", className), style: { listStyle: "none" }, children: [
|
|
37945
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
37946
|
+
/* @__PURE__ */ (0, import_jsx_runtime153.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded select-all", children: truncate2 ? short(addr) : addr }),
|
|
37947
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
37278
37948
|
Button,
|
|
37279
37949
|
{
|
|
37280
37950
|
variant: "ghost",
|
|
@@ -37288,10 +37958,10 @@ var Address = ({
|
|
|
37288
37958
|
} catch {
|
|
37289
37959
|
}
|
|
37290
37960
|
},
|
|
37291
|
-
children: /* @__PURE__ */ (0,
|
|
37961
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(import_lucide_react98.Copy, { className: "h-4 w-4" })
|
|
37292
37962
|
}
|
|
37293
37963
|
),
|
|
37294
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
37964
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(
|
|
37295
37965
|
"a",
|
|
37296
37966
|
{
|
|
37297
37967
|
href: explorer,
|
|
@@ -37299,7 +37969,7 @@ var Address = ({
|
|
|
37299
37969
|
rel: "noreferrer noopener",
|
|
37300
37970
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
37301
37971
|
title: "Open in explorer",
|
|
37302
|
-
children: /* @__PURE__ */ (0,
|
|
37972
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime153.jsx)(import_lucide_react98.ExternalLink, { className: "h-4 w-4" })
|
|
37303
37973
|
}
|
|
37304
37974
|
)
|
|
37305
37975
|
] });
|
|
@@ -37308,7 +37978,7 @@ var Address = ({
|
|
|
37308
37978
|
// src/internal/components/UserOpStatus.tsx
|
|
37309
37979
|
init_badge();
|
|
37310
37980
|
init_button();
|
|
37311
|
-
var
|
|
37981
|
+
var import_jsx_runtime154 = require("react/jsx-runtime");
|
|
37312
37982
|
var UserOpStatus = ({
|
|
37313
37983
|
userOpHash,
|
|
37314
37984
|
chain,
|
|
@@ -37423,35 +38093,35 @@ var UserOpStatus = ({
|
|
|
37423
38093
|
const stateBadge = () => {
|
|
37424
38094
|
if (receipt) {
|
|
37425
38095
|
const ok = !!receipt.success;
|
|
37426
|
-
return /* @__PURE__ */ (0,
|
|
37427
|
-
ok ? /* @__PURE__ */ (0,
|
|
38096
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(Badge, { variant: ok ? "success" : "destructive", children: [
|
|
38097
|
+
ok ? /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.CheckCircle2, { className: "h-3 w-3" }) : /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.AlertCircle, { className: "h-3 w-3" }),
|
|
37428
38098
|
ok ? "Included" : "Failed"
|
|
37429
38099
|
] });
|
|
37430
38100
|
}
|
|
37431
38101
|
if (rejected) {
|
|
37432
|
-
return /* @__PURE__ */ (0,
|
|
37433
|
-
/* @__PURE__ */ (0,
|
|
38102
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(Badge, { variant: "destructive", children: [
|
|
38103
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.AlertCircle, { className: "h-3 w-3" }),
|
|
37434
38104
|
" Rejected by bundler"
|
|
37435
38105
|
] });
|
|
37436
38106
|
}
|
|
37437
38107
|
if (timedOut) {
|
|
37438
|
-
return /* @__PURE__ */ (0,
|
|
37439
|
-
/* @__PURE__ */ (0,
|
|
38108
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(Badge, { variant: "warning", children: [
|
|
38109
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.AlertCircle, { className: "h-3 w-3" }),
|
|
37440
38110
|
" Timeout - may be rejected"
|
|
37441
38111
|
] });
|
|
37442
38112
|
}
|
|
37443
38113
|
if (mempool) {
|
|
37444
|
-
return /* @__PURE__ */ (0,
|
|
37445
|
-
/* @__PURE__ */ (0,
|
|
38114
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(Badge, { variant: "outline", children: [
|
|
38115
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.Clock, { className: "h-3 w-3" }),
|
|
37446
38116
|
" Pending in bundler"
|
|
37447
38117
|
] });
|
|
37448
38118
|
}
|
|
37449
|
-
return /* @__PURE__ */ (0,
|
|
37450
|
-
/* @__PURE__ */ (0,
|
|
38119
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(Badge, { variant: "secondary", children: [
|
|
38120
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.Clock, { className: "h-3 w-3" }),
|
|
37451
38121
|
" Waiting"
|
|
37452
38122
|
] });
|
|
37453
38123
|
};
|
|
37454
|
-
return /* @__PURE__ */ (0,
|
|
38124
|
+
return /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(
|
|
37455
38125
|
"div",
|
|
37456
38126
|
{
|
|
37457
38127
|
className: cn(
|
|
@@ -37460,20 +38130,20 @@ var UserOpStatus = ({
|
|
|
37460
38130
|
),
|
|
37461
38131
|
style: { textAlign: "left", listStyle: "none" },
|
|
37462
38132
|
children: [
|
|
37463
|
-
/* @__PURE__ */ (0,
|
|
37464
|
-
/* @__PURE__ */ (0,
|
|
38133
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex items-center justify-between mb-3", children: [
|
|
38134
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
37465
38135
|
stateBadge(),
|
|
37466
|
-
/* @__PURE__ */ (0,
|
|
38136
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-xs text-muted-foreground", children: "This is a UserOperation hash (EIP-4337), not a L2 tx hash." })
|
|
37467
38137
|
] }),
|
|
37468
|
-
/* @__PURE__ */ (0,
|
|
37469
|
-
/* @__PURE__ */ (0,
|
|
37470
|
-
/* @__PURE__ */ (0,
|
|
38138
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)(Button, { variant: "ghost", size: "small", onClick: () => tick(), disabled: refreshing, className: "h-8", children: [
|
|
38139
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.RefreshCw, { className: cn("h-3.5 w-3.5 mr-1", refreshing && "animate-spin") }),
|
|
38140
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-xs", children: "Refresh" })
|
|
37471
38141
|
] })
|
|
37472
38142
|
] }),
|
|
37473
|
-
/* @__PURE__ */ (0,
|
|
37474
|
-
/* @__PURE__ */ (0,
|
|
37475
|
-
/* @__PURE__ */ (0,
|
|
37476
|
-
/* @__PURE__ */ (0,
|
|
38143
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [
|
|
38144
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "UO Hash" }),
|
|
38145
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: userOpHash }),
|
|
38146
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
37477
38147
|
Button,
|
|
37478
38148
|
{
|
|
37479
38149
|
variant: "ghost",
|
|
@@ -37485,14 +38155,14 @@ var UserOpStatus = ({
|
|
|
37485
38155
|
} catch {
|
|
37486
38156
|
}
|
|
37487
38157
|
},
|
|
37488
|
-
children: /* @__PURE__ */ (0,
|
|
38158
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.Copy, { className: "h-3.5 w-3.5" })
|
|
37489
38159
|
}
|
|
37490
38160
|
)
|
|
37491
38161
|
] }),
|
|
37492
|
-
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0,
|
|
37493
|
-
/* @__PURE__ */ (0,
|
|
37494
|
-
/* @__PURE__ */ (0,
|
|
37495
|
-
/* @__PURE__ */ (0,
|
|
38162
|
+
receipt && receipt.receipt?.transactionHash && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "flex items-center gap-2 mb-3", children: [
|
|
38163
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("span", { className: "text-sm font-medium min-w-16 shrink-0", children: "Tx Hash" }),
|
|
38164
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("code", { className: "text-xs font-mono flex-1 select-all", children: receipt.receipt.transactionHash }),
|
|
38165
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
37496
38166
|
Button,
|
|
37497
38167
|
{
|
|
37498
38168
|
variant: "ghost",
|
|
@@ -37504,10 +38174,10 @@ var UserOpStatus = ({
|
|
|
37504
38174
|
} catch {
|
|
37505
38175
|
}
|
|
37506
38176
|
},
|
|
37507
|
-
children: /* @__PURE__ */ (0,
|
|
38177
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.Copy, { className: "h-3.5 w-3.5" })
|
|
37508
38178
|
}
|
|
37509
38179
|
),
|
|
37510
|
-
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0,
|
|
38180
|
+
chain?.blockExplorers?.default?.url && /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(
|
|
37511
38181
|
"a",
|
|
37512
38182
|
{
|
|
37513
38183
|
href: `${chain.blockExplorers.default.url}/tx/${receipt.receipt.transactionHash}`,
|
|
@@ -37515,11 +38185,11 @@ var UserOpStatus = ({
|
|
|
37515
38185
|
rel: "noreferrer noopener",
|
|
37516
38186
|
className: "inline-flex items-center justify-center h-8 w-8 rounded-md hover:bg-accent text-foreground",
|
|
37517
38187
|
title: "Open in explorer",
|
|
37518
|
-
children: /* @__PURE__ */ (0,
|
|
38188
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.ExternalLink, { className: "h-3.5 w-3.5" })
|
|
37519
38189
|
}
|
|
37520
38190
|
)
|
|
37521
38191
|
] }),
|
|
37522
|
-
receipt && /* @__PURE__ */ (0,
|
|
38192
|
+
receipt && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "text-xs text-muted-foreground mb-3", children: [
|
|
37523
38193
|
"Block ",
|
|
37524
38194
|
parseInt(receipt.receipt?.blockNumber || "0x0", 16),
|
|
37525
38195
|
" \u2022 Gas Used",
|
|
@@ -37528,32 +38198,32 @@ var UserOpStatus = ({
|
|
|
37528
38198
|
" \u2022 Success ",
|
|
37529
38199
|
String(!!receipt.success)
|
|
37530
38200
|
] }),
|
|
37531
|
-
/* @__PURE__ */ (0,
|
|
38201
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)("div", { className: "text-xs text-muted-foreground", children: !receipt && !timedOut && !rejected && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("span", { className: "ml-2", children: [
|
|
37532
38202
|
"\u2022 Polling for ",
|
|
37533
38203
|
Math.round((Date.now() - startTimeRef.current) / 1e3),
|
|
37534
38204
|
"s"
|
|
37535
38205
|
] }) }),
|
|
37536
|
-
mempool && /* @__PURE__ */ (0,
|
|
37537
|
-
/* @__PURE__ */ (0,
|
|
38206
|
+
mempool && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "text-sm text-muted-foreground mt-2", style: { listStyle: "none" }, children: [
|
|
38207
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { children: [
|
|
37538
38208
|
"Seen by bundler at ",
|
|
37539
|
-
/* @__PURE__ */ (0,
|
|
38209
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(Address, { address: mempool.entryPoint, chain, showExplorer: true, truncate: false })
|
|
37540
38210
|
] }),
|
|
37541
|
-
/* @__PURE__ */ (0,
|
|
38211
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { children: [
|
|
37542
38212
|
"sender ",
|
|
37543
|
-
/* @__PURE__ */ (0,
|
|
38213
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(Address, { address: mempool.sender, chain, truncate: false })
|
|
37544
38214
|
] })
|
|
37545
38215
|
] }),
|
|
37546
|
-
error && /* @__PURE__ */ (0,
|
|
37547
|
-
/* @__PURE__ */ (0,
|
|
38216
|
+
error && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
38217
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.AlertCircle, { className: "h-4 w-4" }),
|
|
37548
38218
|
" ",
|
|
37549
38219
|
error
|
|
37550
38220
|
] }),
|
|
37551
|
-
rejected && /* @__PURE__ */ (0,
|
|
37552
|
-
/* @__PURE__ */ (0,
|
|
38221
|
+
rejected && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
38222
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.AlertCircle, { className: "h-4 w-4" }),
|
|
37553
38223
|
"UserOperation was dropped from bundler mempool. This usually means it was invalid or replaced."
|
|
37554
38224
|
] }),
|
|
37555
|
-
timedOut && /* @__PURE__ */ (0,
|
|
37556
|
-
/* @__PURE__ */ (0,
|
|
38225
|
+
timedOut && /* @__PURE__ */ (0, import_jsx_runtime154.jsxs)("div", { className: "text-sm text-destructive flex items-center gap-1 mt-4", children: [
|
|
38226
|
+
/* @__PURE__ */ (0, import_jsx_runtime154.jsx)(import_lucide_react99.AlertCircle, { className: "h-4 w-4" }),
|
|
37557
38227
|
"Stopped polling after ",
|
|
37558
38228
|
Math.round(maxPollTimeMs / 1e3),
|
|
37559
38229
|
"s. UserOperation may have been rejected by the bundler."
|
|
@@ -37564,11 +38234,11 @@ var UserOpStatus = ({
|
|
|
37564
38234
|
};
|
|
37565
38235
|
|
|
37566
38236
|
// src/internal/components/Hash.tsx
|
|
37567
|
-
var
|
|
38237
|
+
var import_lucide_react100 = require("lucide-react");
|
|
37568
38238
|
var React37 = __toESM(require("react"), 1);
|
|
37569
38239
|
init_cn();
|
|
37570
38240
|
init_button();
|
|
37571
|
-
var
|
|
38241
|
+
var import_jsx_runtime155 = require("react/jsx-runtime");
|
|
37572
38242
|
function toExplorerUrl(kind, value, chain) {
|
|
37573
38243
|
const base = chain?.blockExplorers?.default?.url;
|
|
37574
38244
|
if (!base) return null;
|
|
@@ -37583,7 +38253,7 @@ var Hash = ({
|
|
|
37583
38253
|
hash,
|
|
37584
38254
|
chain,
|
|
37585
38255
|
className,
|
|
37586
|
-
truncate = true,
|
|
38256
|
+
truncate: truncate2 = true,
|
|
37587
38257
|
showCopy = true,
|
|
37588
38258
|
showExplorer = true,
|
|
37589
38259
|
kind = "tx",
|
|
@@ -37592,11 +38262,11 @@ var Hash = ({
|
|
|
37592
38262
|
const value = hash || "";
|
|
37593
38263
|
const explorer = toExplorerUrl(kind, value, chain || void 0);
|
|
37594
38264
|
const [copied, setCopied] = React37.useState(false);
|
|
37595
|
-
if (!value) return /* @__PURE__ */ (0,
|
|
37596
|
-
return /* @__PURE__ */ (0,
|
|
37597
|
-
label && /* @__PURE__ */ (0,
|
|
37598
|
-
/* @__PURE__ */ (0,
|
|
37599
|
-
showCopy && /* @__PURE__ */ (0,
|
|
38265
|
+
if (!value) return /* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: cn("text-muted-foreground", className), children: "\u2014" });
|
|
38266
|
+
return /* @__PURE__ */ (0, import_jsx_runtime155.jsxs)("div", { className: cn("flex items-center gap-2", className), children: [
|
|
38267
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime155.jsx)("span", { className: "text-sm font-medium", children: label }),
|
|
38268
|
+
/* @__PURE__ */ (0, import_jsx_runtime155.jsx)("code", { className: "text-xs bg-background px-2 py-1 rounded break-all", children: truncate2 ? short2(value) : value }),
|
|
38269
|
+
showCopy && /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
37600
38270
|
Button,
|
|
37601
38271
|
{
|
|
37602
38272
|
variant: "ghost",
|
|
@@ -37610,10 +38280,10 @@ var Hash = ({
|
|
|
37610
38280
|
} catch {
|
|
37611
38281
|
}
|
|
37612
38282
|
},
|
|
37613
|
-
children: /* @__PURE__ */ (0,
|
|
38283
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(import_lucide_react100.Copy, { className: "h-4 w-4" })
|
|
37614
38284
|
}
|
|
37615
38285
|
),
|
|
37616
|
-
showExplorer && explorer && /* @__PURE__ */ (0,
|
|
38286
|
+
showExplorer && explorer && /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(
|
|
37617
38287
|
"a",
|
|
37618
38288
|
{
|
|
37619
38289
|
href: explorer,
|
|
@@ -37621,21 +38291,21 @@ var Hash = ({
|
|
|
37621
38291
|
rel: "noreferrer noopener",
|
|
37622
38292
|
className: "inline-flex items-center justify-center h-10 w-10 rounded-md hover:bg-accent text-foreground",
|
|
37623
38293
|
title: "Open in explorer",
|
|
37624
|
-
children: /* @__PURE__ */ (0,
|
|
38294
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime155.jsx)(import_lucide_react100.ExternalLink, { className: "h-4 w-4" })
|
|
37625
38295
|
}
|
|
37626
38296
|
)
|
|
37627
38297
|
] });
|
|
37628
38298
|
};
|
|
37629
38299
|
|
|
37630
38300
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
37631
|
-
var
|
|
38301
|
+
var import_react121 = require("react");
|
|
37632
38302
|
init_base();
|
|
37633
|
-
var
|
|
38303
|
+
var import_jsx_runtime156 = require("react/jsx-runtime");
|
|
37634
38304
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
37635
|
-
const [transactions, setTransactions] = (0,
|
|
37636
|
-
const [loading, setLoading] = (0,
|
|
37637
|
-
const [error, setError] = (0,
|
|
37638
|
-
(0,
|
|
38305
|
+
const [transactions, setTransactions] = (0, import_react121.useState)([]);
|
|
38306
|
+
const [loading, setLoading] = (0, import_react121.useState)(true);
|
|
38307
|
+
const [error, setError] = (0, import_react121.useState)(null);
|
|
38308
|
+
(0, import_react121.useEffect)(() => {
|
|
37639
38309
|
const fetchTransactions2 = async () => {
|
|
37640
38310
|
try {
|
|
37641
38311
|
setLoading(true);
|
|
@@ -37681,31 +38351,31 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
37681
38351
|
window.open(`${explorerUrl}/tx/${txHash}`, "_blank");
|
|
37682
38352
|
};
|
|
37683
38353
|
if (loading) {
|
|
37684
|
-
return /* @__PURE__ */ (0,
|
|
37685
|
-
/* @__PURE__ */ (0,
|
|
37686
|
-
/* @__PURE__ */ (0,
|
|
38354
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "p-4 text-center", children: [
|
|
38355
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "animate-spin inline-block w-6 h-6 border-2 border-current border-t-transparent rounded-full" }),
|
|
38356
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("p", { className: "mt-2 text-sm text-gray-600", children: "Loading transactions..." })
|
|
37687
38357
|
] });
|
|
37688
38358
|
}
|
|
37689
38359
|
if (error) {
|
|
37690
|
-
return /* @__PURE__ */ (0,
|
|
37691
|
-
/* @__PURE__ */ (0,
|
|
37692
|
-
/* @__PURE__ */ (0,
|
|
38360
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "p-4 text-center", children: [
|
|
38361
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("p", { className: "text-red-600 text-sm", children: error }),
|
|
38362
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("button", { onClick: () => window.location.reload(), className: "mt-2 text-blue-600 text-sm hover:underline", children: "Retry" })
|
|
37693
38363
|
] });
|
|
37694
38364
|
}
|
|
37695
38365
|
if (transactions.length === 0) {
|
|
37696
|
-
return /* @__PURE__ */ (0,
|
|
38366
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "p-4 text-center", children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("p", { className: "text-gray-600 text-sm", children: "No transactions found" }) });
|
|
37697
38367
|
}
|
|
37698
|
-
return /* @__PURE__ */ (0,
|
|
38368
|
+
return /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "max-h-96 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "space-y-2 p-2", children: transactions.map((tx) => /* @__PURE__ */ (0, import_jsx_runtime156.jsxs)(
|
|
37699
38369
|
"div",
|
|
37700
38370
|
{
|
|
37701
38371
|
className: "border rounded-lg p-3 hover:bg-gray-50 cursor-pointer transition-colors",
|
|
37702
38372
|
onClick: () => openTransaction(tx.hash),
|
|
37703
38373
|
children: [
|
|
37704
|
-
/* @__PURE__ */ (0,
|
|
37705
|
-
/* @__PURE__ */ (0,
|
|
37706
|
-
/* @__PURE__ */ (0,
|
|
37707
|
-
/* @__PURE__ */ (0,
|
|
37708
|
-
/* @__PURE__ */ (0,
|
|
38374
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "flex justify-between items-start mb-2", children: [
|
|
38375
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "flex-1", children: [
|
|
38376
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "flex items-center space-x-2 mb-1", children: [
|
|
38377
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-xs font-mono bg-gray-100 px-2 py-1 rounded", children: formatAddress4(tx.hash) }),
|
|
38378
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)(
|
|
37709
38379
|
"span",
|
|
37710
38380
|
{
|
|
37711
38381
|
className: `text-xs px-2 py-1 rounded ${tx.status === "ok" ? "bg-green-100 text-green-800" : "bg-red-100 text-red-800"}`,
|
|
@@ -37713,40 +38383,40 @@ var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
|
37713
38383
|
}
|
|
37714
38384
|
)
|
|
37715
38385
|
] }),
|
|
37716
|
-
/* @__PURE__ */ (0,
|
|
37717
|
-
/* @__PURE__ */ (0,
|
|
37718
|
-
/* @__PURE__ */ (0,
|
|
37719
|
-
/* @__PURE__ */ (0,
|
|
38386
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "text-sm space-y-1", children: [
|
|
38387
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { children: [
|
|
38388
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-gray-600", children: "From:" }),
|
|
38389
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
37720
38390
|
formatAddress4(tx.from.hash),
|
|
37721
|
-
tx.from.is_contract && /* @__PURE__ */ (0,
|
|
38391
|
+
tx.from.is_contract && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
37722
38392
|
] })
|
|
37723
38393
|
] }),
|
|
37724
|
-
/* @__PURE__ */ (0,
|
|
37725
|
-
/* @__PURE__ */ (0,
|
|
37726
|
-
/* @__PURE__ */ (0,
|
|
38394
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { children: [
|
|
38395
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-gray-600", children: "To:" }),
|
|
38396
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("span", { className: "font-mono ml-1", children: [
|
|
37727
38397
|
formatAddress4(tx.to.hash),
|
|
37728
|
-
tx.to.is_contract && /* @__PURE__ */ (0,
|
|
38398
|
+
tx.to.is_contract && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-xs text-blue-600 ml-1", children: "(Contract)" })
|
|
37729
38399
|
] })
|
|
37730
38400
|
] }),
|
|
37731
|
-
/* @__PURE__ */ (0,
|
|
37732
|
-
/* @__PURE__ */ (0,
|
|
37733
|
-
/* @__PURE__ */ (0,
|
|
38401
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { children: [
|
|
38402
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-gray-600", children: "Value:" }),
|
|
38403
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("span", { className: "font-semibold ml-1", children: [
|
|
37734
38404
|
formatValue3(tx.value),
|
|
37735
38405
|
" LUMIA"
|
|
37736
38406
|
] })
|
|
37737
38407
|
] })
|
|
37738
38408
|
] })
|
|
37739
38409
|
] }),
|
|
37740
|
-
/* @__PURE__ */ (0,
|
|
37741
|
-
/* @__PURE__ */ (0,
|
|
37742
|
-
/* @__PURE__ */ (0,
|
|
38410
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "text-right text-xs text-gray-500", children: [
|
|
38411
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { children: formatDate2(tx.timestamp) }),
|
|
38412
|
+
/* @__PURE__ */ (0, import_jsx_runtime156.jsxs)("div", { className: "mt-1", children: [
|
|
37743
38413
|
"Gas: ",
|
|
37744
38414
|
parseInt(tx.gas_used).toLocaleString()
|
|
37745
38415
|
] }),
|
|
37746
|
-
tx.method && /* @__PURE__ */ (0,
|
|
38416
|
+
tx.method && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "mt-1 text-blue-600", children: tx.method })
|
|
37747
38417
|
] })
|
|
37748
38418
|
] }),
|
|
37749
|
-
tx.transaction_types.length > 0 && /* @__PURE__ */ (0,
|
|
38419
|
+
tx.transaction_types.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("div", { className: "flex flex-wrap gap-1 mt-2", children: tx.transaction_types.map((type, idx) => /* @__PURE__ */ (0, import_jsx_runtime156.jsx)("span", { className: "text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full", children: type.replace("_", " ") }, idx)) })
|
|
37750
38420
|
]
|
|
37751
38421
|
},
|
|
37752
38422
|
tx.hash
|
|
@@ -37926,13 +38596,13 @@ function useUserOpStatus(options = {}) {
|
|
|
37926
38596
|
init_useErc3643Compliance();
|
|
37927
38597
|
|
|
37928
38598
|
// src/hooks/useWalletMode.ts
|
|
37929
|
-
var
|
|
38599
|
+
var import_react122 = require("react");
|
|
37930
38600
|
init_useExternalWalletStore();
|
|
37931
38601
|
function useWalletMode() {
|
|
37932
38602
|
const configMode = useExternalWalletStore((st) => st.configMode);
|
|
37933
38603
|
const activeMode = useExternalWalletStore((st) => st.activeMode);
|
|
37934
38604
|
const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
|
|
37935
|
-
const switchMode = (0,
|
|
38605
|
+
const switchMode = (0, import_react122.useCallback)(
|
|
37936
38606
|
(mode) => {
|
|
37937
38607
|
if (configMode !== "both") return;
|
|
37938
38608
|
setActiveMode(mode);
|
|
@@ -37950,7 +38620,7 @@ function useWalletMode() {
|
|
|
37950
38620
|
// src/hooks/useDirectWallet.ts
|
|
37951
38621
|
init_useOpenPage();
|
|
37952
38622
|
init_useSafeDisconnect();
|
|
37953
|
-
var
|
|
38623
|
+
var import_react123 = require("react");
|
|
37954
38624
|
init_useExternalWalletStore();
|
|
37955
38625
|
function useDirectWallet() {
|
|
37956
38626
|
const address = useExternalWalletStore((st) => st.externalAddress);
|
|
@@ -37959,10 +38629,10 @@ function useDirectWallet() {
|
|
|
37959
38629
|
const connectorName = useExternalWalletStore((st) => st.connectorName);
|
|
37960
38630
|
const { open: openEmbarkAI } = useOpenPage();
|
|
37961
38631
|
const { mutate: wagmiDisconnect } = useSafeDisconnect();
|
|
37962
|
-
const connect = (0,
|
|
38632
|
+
const connect = (0, import_react123.useCallback)((connectFlowType = "connect") => {
|
|
37963
38633
|
openEmbarkAI("connect-external-wallet" /* CONNECT_EXTERNAL_WALLET */, { connectFlowType });
|
|
37964
38634
|
}, []);
|
|
37965
|
-
const disconnect = (0,
|
|
38635
|
+
const disconnect = (0, import_react123.useCallback)(() => {
|
|
37966
38636
|
wagmiDisconnect();
|
|
37967
38637
|
useExternalWalletStore.getState().clearExternalWallet();
|
|
37968
38638
|
}, [wagmiDisconnect]);
|
|
@@ -37978,7 +38648,7 @@ function useDirectWallet() {
|
|
|
37978
38648
|
}
|
|
37979
38649
|
|
|
37980
38650
|
// src/hooks/useSendDirectTransaction.ts
|
|
37981
|
-
var
|
|
38651
|
+
var import_react124 = require("react");
|
|
37982
38652
|
var import_viem24 = require("viem");
|
|
37983
38653
|
var import_wagmi10 = require("wagmi");
|
|
37984
38654
|
|
|
@@ -38001,10 +38671,10 @@ function useSendDirectTransaction() {
|
|
|
38001
38671
|
const { connector } = (0, import_wagmi10.useConnection)();
|
|
38002
38672
|
const { sendTransactionAsync: sendWagmiTransactionAsync } = (0, import_wagmi10.useSendTransaction)();
|
|
38003
38673
|
const { switchChainAsync } = (0, import_wagmi10.useSwitchChain)();
|
|
38004
|
-
const [isPending, setIsPending] = (0,
|
|
38005
|
-
const [error, setError] = (0,
|
|
38006
|
-
const [txHash, setTxHash] = (0,
|
|
38007
|
-
const sendTransactionAsync = (0,
|
|
38674
|
+
const [isPending, setIsPending] = (0, import_react124.useState)(false);
|
|
38675
|
+
const [error, setError] = (0, import_react124.useState)(null);
|
|
38676
|
+
const [txHash, setTxHash] = (0, import_react124.useState)(null);
|
|
38677
|
+
const sendTransactionAsync = (0, import_react124.useCallback)(
|
|
38008
38678
|
async (params) => {
|
|
38009
38679
|
if (!isConnected || !connector) {
|
|
38010
38680
|
const message = "No external wallet connected";
|
|
@@ -38041,7 +38711,7 @@ function useSendDirectTransaction() {
|
|
|
38041
38711
|
},
|
|
38042
38712
|
[isConnected, connector, sendWagmiTransactionAsync, switchChainAsync]
|
|
38043
38713
|
);
|
|
38044
|
-
const sendTransaction = (0,
|
|
38714
|
+
const sendTransaction = (0, import_react124.useCallback)(
|
|
38045
38715
|
async (params) => {
|
|
38046
38716
|
try {
|
|
38047
38717
|
return await sendTransactionAsync(params);
|
|
@@ -38051,7 +38721,7 @@ function useSendDirectTransaction() {
|
|
|
38051
38721
|
},
|
|
38052
38722
|
[sendTransactionAsync]
|
|
38053
38723
|
);
|
|
38054
|
-
const reset = (0,
|
|
38724
|
+
const reset = (0, import_react124.useCallback)(() => {
|
|
38055
38725
|
setError(null);
|
|
38056
38726
|
setTxHash(null);
|
|
38057
38727
|
setIsPending(false);
|
|
@@ -38060,7 +38730,7 @@ function useSendDirectTransaction() {
|
|
|
38060
38730
|
}
|
|
38061
38731
|
|
|
38062
38732
|
// src/hooks/useTransferToLinkedWallet.ts
|
|
38063
|
-
var
|
|
38733
|
+
var import_react125 = require("react");
|
|
38064
38734
|
var import_viem25 = require("viem");
|
|
38065
38735
|
init_SessionContext();
|
|
38066
38736
|
init_account2();
|
|
@@ -38079,14 +38749,14 @@ var ERC20_TRANSFER_ABI2 = [
|
|
|
38079
38749
|
function useTransferToLinkedWallet() {
|
|
38080
38750
|
const session = useSession((st) => st.session);
|
|
38081
38751
|
const { profiles } = useLinkedProfiles();
|
|
38082
|
-
const [isPending, setIsPending] = (0,
|
|
38083
|
-
const [error, setError] = (0,
|
|
38084
|
-
const [userOpHash, setUserOpHash] = (0,
|
|
38085
|
-
const linkedWallets = (0,
|
|
38752
|
+
const [isPending, setIsPending] = (0, import_react125.useState)(false);
|
|
38753
|
+
const [error, setError] = (0, import_react125.useState)(null);
|
|
38754
|
+
const [userOpHash, setUserOpHash] = (0, import_react125.useState)(null);
|
|
38755
|
+
const linkedWallets = (0, import_react125.useMemo)(
|
|
38086
38756
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
38087
38757
|
[profiles]
|
|
38088
38758
|
);
|
|
38089
|
-
const transfer = (0,
|
|
38759
|
+
const transfer = (0, import_react125.useCallback)(
|
|
38090
38760
|
async (params) => {
|
|
38091
38761
|
if (!session) {
|
|
38092
38762
|
setError("No active session");
|
|
@@ -38137,7 +38807,7 @@ function useTransferToLinkedWallet() {
|
|
|
38137
38807
|
},
|
|
38138
38808
|
[session, linkedWallets]
|
|
38139
38809
|
);
|
|
38140
|
-
const reset = (0,
|
|
38810
|
+
const reset = (0, import_react125.useCallback)(() => {
|
|
38141
38811
|
setError(null);
|
|
38142
38812
|
setUserOpHash(null);
|
|
38143
38813
|
setIsPending(false);
|
|
@@ -38161,8 +38831,8 @@ function useNativeWalletSignature() {
|
|
|
38161
38831
|
|
|
38162
38832
|
// src/hooks/useLogout.ts
|
|
38163
38833
|
init_useSafeDisconnect();
|
|
38164
|
-
var
|
|
38165
|
-
var
|
|
38834
|
+
var import_auth30 = require("@embarkai/core/auth");
|
|
38835
|
+
var import_react126 = require("react");
|
|
38166
38836
|
init_ProviderContext();
|
|
38167
38837
|
init_auth();
|
|
38168
38838
|
init_SessionContext();
|
|
@@ -38181,13 +38851,13 @@ function useLogout() {
|
|
|
38181
38851
|
}
|
|
38182
38852
|
}
|
|
38183
38853
|
});
|
|
38184
|
-
const logout2 = (0,
|
|
38854
|
+
const logout2 = (0, import_react126.useCallback)(async () => {
|
|
38185
38855
|
const { setSession, setIsLoading, setAddress, setStatus, setError } = useSession.getState();
|
|
38186
38856
|
const prevAddress = address;
|
|
38187
38857
|
let userId = null;
|
|
38188
38858
|
setIsLoading(true);
|
|
38189
38859
|
try {
|
|
38190
|
-
userId =
|
|
38860
|
+
userId = import_auth30.jwtTokenManager.getUserId() || null;
|
|
38191
38861
|
} catch (error) {
|
|
38192
38862
|
console.warn("[useLogout] Could not get userId:", error);
|
|
38193
38863
|
}
|
|
@@ -38301,7 +38971,7 @@ function useTransactions() {
|
|
|
38301
38971
|
|
|
38302
38972
|
// src/modules/assets.ts
|
|
38303
38973
|
init_SessionContext();
|
|
38304
|
-
var
|
|
38974
|
+
var import_react127 = __toESM(require("react"), 1);
|
|
38305
38975
|
var import_viem27 = require("viem");
|
|
38306
38976
|
var import_wagmi13 = require("wagmi");
|
|
38307
38977
|
var COMMON_TOKENS = [
|
|
@@ -38456,7 +39126,7 @@ function useTokenBalance2(tokenAddress, userAddress) {
|
|
|
38456
39126
|
}
|
|
38457
39127
|
});
|
|
38458
39128
|
const { tokenInfo } = useTokenInfo(tokenAddress);
|
|
38459
|
-
const formattedBalance =
|
|
39129
|
+
const formattedBalance = import_react127.default.useMemo(() => {
|
|
38460
39130
|
if (!balance || !tokenInfo) return "0";
|
|
38461
39131
|
return (0, import_viem27.formatUnits)(balance, tokenInfo.decimals);
|
|
38462
39132
|
}, [balance, tokenInfo]);
|