@embarkai/ui-kit 0.4.76 → 0.4.78
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 +1 -1
- package/dist/index.cjs +451 -437
- package/dist/index.d.cts +16 -3
- package/dist/index.d.ts +16 -3
- package/dist/index.js +340 -326
- package/dist/styles.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -75,7 +75,7 @@ __export(initial_exports, {
|
|
|
75
75
|
getIframeUrl: () => getIframeUrl,
|
|
76
76
|
getServiceUrls: () => getServiceUrls
|
|
77
77
|
});
|
|
78
|
-
import {
|
|
78
|
+
import { LUMIA_MAINNET } from "@embarkai/core/read";
|
|
79
79
|
function getServiceUrls() {
|
|
80
80
|
const config = DEFAULT_PROVIDER_CONFIG;
|
|
81
81
|
const globalOverride = typeof window !== "undefined" && window.__EMBARK_SERVICES__ || {};
|
|
@@ -158,13 +158,14 @@ var init_initial = __esm({
|
|
|
158
158
|
authOrder: ["email", "social", "wallet"]
|
|
159
159
|
},
|
|
160
160
|
network: {
|
|
161
|
-
name:
|
|
162
|
-
symbol:
|
|
163
|
-
chainId:
|
|
164
|
-
rpcUrl:
|
|
165
|
-
explorerUrl:
|
|
166
|
-
testnet:
|
|
167
|
-
forceChain: false
|
|
161
|
+
name: LUMIA_MAINNET.name,
|
|
162
|
+
symbol: LUMIA_MAINNET.nativeCurrency.symbol,
|
|
163
|
+
chainId: LUMIA_MAINNET.id,
|
|
164
|
+
rpcUrl: LUMIA_MAINNET.rpcUrls[0],
|
|
165
|
+
explorerUrl: LUMIA_MAINNET.blockExplorerUrl,
|
|
166
|
+
testnet: false,
|
|
167
|
+
forceChain: false,
|
|
168
|
+
autoswitch: false
|
|
168
169
|
},
|
|
169
170
|
services: {
|
|
170
171
|
tssUrl: "",
|
|
@@ -1372,7 +1373,7 @@ function ChainSync() {
|
|
|
1372
1373
|
}, [address, activeChainId]);
|
|
1373
1374
|
useEffect2(() => {
|
|
1374
1375
|
if (!address || !activeChainId) return;
|
|
1375
|
-
const shouldSwitchRequest = !config.current?.network?.forceChain && activeChainId !== config.current?.network?.chainId;
|
|
1376
|
+
const shouldSwitchRequest = !config.current?.network?.forceChain && !!config.current?.network?.autoswitch && activeChainId !== config.current?.network?.chainId;
|
|
1376
1377
|
async function showSwitchChainRequest() {
|
|
1377
1378
|
const stats = await getShareRecoveryStats();
|
|
1378
1379
|
const hasRecoveryData = !!stats && (!!stats.created || stats.devices && stats.devices.length > 0);
|
|
@@ -5835,7 +5836,7 @@ var init_en = __esm({
|
|
|
5835
5836
|
},
|
|
5836
5837
|
nicknameMenu: {
|
|
5837
5838
|
title: "Nickname",
|
|
5838
|
-
yourNickname: "Your
|
|
5839
|
+
yourNickname: "Your nickname",
|
|
5839
5840
|
cooldownMessage: "You can change your nickname again on {{canChangeAt}} ({{days}} days remained)",
|
|
5840
5841
|
lastChanged: "Last changed",
|
|
5841
5842
|
timesChanged: "Times changed",
|
|
@@ -5857,7 +5858,8 @@ var init_en = __esm({
|
|
|
5857
5858
|
alreadyYourNickname: "This is already your nickname",
|
|
5858
5859
|
checkingAvailability: "Checking availability...",
|
|
5859
5860
|
nicknameAvailable: "Nickname is available",
|
|
5860
|
-
nicknameNotAvailable: "This nickname is not available"
|
|
5861
|
+
nicknameNotAvailable: "This nickname is not available",
|
|
5862
|
+
nicknameChanged: "Nickname has been changed"
|
|
5861
5863
|
},
|
|
5862
5864
|
initialUser: {
|
|
5863
5865
|
welcome: "Your nickname is set as {{nickname}}",
|
|
@@ -6400,7 +6402,8 @@ var init_ru = __esm({
|
|
|
6400
6402
|
alreadyYourNickname: "\u042D\u0442\u043E \u0443\u0436\u0435 \u0432\u0430\u0448 \u043D\u0438\u043A\u043D\u0435\u0439\u043C",
|
|
6401
6403
|
checkingAvailability: "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0441\u0442\u0438...",
|
|
6402
6404
|
nicknameAvailable: "\u041D\u0438\u043A\u043D\u0435\u0439\u043C \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D",
|
|
6403
|
-
nicknameNotAvailable: "\u042D\u0442\u043E\u0442 \u043D\u0438\u043A\u043D\u0435\u0439\u043C \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D"
|
|
6405
|
+
nicknameNotAvailable: "\u042D\u0442\u043E\u0442 \u043D\u0438\u043A\u043D\u0435\u0439\u043C \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D",
|
|
6406
|
+
nicknameChanged: "\u041D\u0438\u043A\u043D\u0435\u0439\u043C \u0431\u044B\u043B \u0438\u0437\u043C\u0435\u043D\u0435\u043D"
|
|
6404
6407
|
},
|
|
6405
6408
|
initialUser: {
|
|
6406
6409
|
welcome: "\u0412\u0430\u0448 \u043D\u0438\u043A\u043D\u0435\u0439\u043C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D \u043A\u0430\u043A {{nickname}}",
|
|
@@ -6943,7 +6946,8 @@ var init_zh = __esm({
|
|
|
6943
6946
|
alreadyYourNickname: "\u6B64\u6635\u79F0\u5DF2\u662F\u60A8\u7684\u6635\u79F0",
|
|
6944
6947
|
checkingAvailability: "\u6B63\u5728\u68C0\u67E5\u53EF\u7528\u6027...",
|
|
6945
6948
|
nicknameAvailable: "\u6635\u79F0\u53EF\u7528",
|
|
6946
|
-
nicknameNotAvailable: "\u6B64\u6635\u79F0\u4E0D\u53EF\u7528"
|
|
6949
|
+
nicknameNotAvailable: "\u6B64\u6635\u79F0\u4E0D\u53EF\u7528",
|
|
6950
|
+
nicknameChanged: "\u6635\u79F0\u5DF2\u66F4\u6539"
|
|
6947
6951
|
},
|
|
6948
6952
|
initialUser: {
|
|
6949
6953
|
welcome: "\u60A8\u7684\u6635\u79F0\u5DF2\u8BBE\u7F6E\u4E3A {{nickname}}",
|
|
@@ -9094,7 +9098,7 @@ var init_onboarder = __esm({
|
|
|
9094
9098
|
const elementRef = this.elements.get(elId)?.deref();
|
|
9095
9099
|
if (!elementRef) return;
|
|
9096
9100
|
const { x, y, width, height } = elementRef.getBoundingClientRect();
|
|
9097
|
-
elementRef.scrollIntoView({ behavior: "smooth", block: "
|
|
9101
|
+
elementRef.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "nearest" });
|
|
9098
9102
|
useOnboardingStore.getState().setElRect({ x, y, width, height });
|
|
9099
9103
|
}, 200);
|
|
9100
9104
|
});
|
|
@@ -9112,7 +9116,7 @@ var init_onboarder = __esm({
|
|
|
9112
9116
|
elRectData = elementRef.getBoundingClientRect();
|
|
9113
9117
|
} else {
|
|
9114
9118
|
elRectData = element.getBoundingClientRect();
|
|
9115
|
-
element.scrollIntoView({ behavior: "smooth", block: "
|
|
9119
|
+
element.scrollIntoView({ behavior: "smooth", block: "nearest", inline: "nearest" });
|
|
9116
9120
|
}
|
|
9117
9121
|
useOnboardingStore.getState().setElRect(elRectData);
|
|
9118
9122
|
}
|
|
@@ -9175,76 +9179,42 @@ var init_onboarder = __esm({
|
|
|
9175
9179
|
if (!this.tour) return null;
|
|
9176
9180
|
return this.tour[this.tourPointer];
|
|
9177
9181
|
}
|
|
9178
|
-
|
|
9179
|
-
|
|
9180
|
-
}
|
|
9182
|
+
// getCurrentTargetElement(): HTMLElement | null {
|
|
9183
|
+
// return this.elements.get(this.tour[this.tourPointer]?.elId)?.deref() || null
|
|
9184
|
+
// }
|
|
9181
9185
|
};
|
|
9182
9186
|
onboarder = new Onboarder();
|
|
9183
9187
|
}
|
|
9184
9188
|
});
|
|
9185
9189
|
|
|
9186
9190
|
// src/internal/components/Onboarding/OnboardingOverlay.tsx
|
|
9187
|
-
import { ChevronRightIcon, LoaderIcon } from "lucide-react";
|
|
9188
|
-
import { useEffect as useEffect12, useState as useState5 } from "react";
|
|
9191
|
+
import { ChevronRightIcon, LoaderIcon, XIcon } from "lucide-react";
|
|
9192
|
+
import { useEffect as useEffect12, useMemo as useMemo2, useState as useState5 } from "react";
|
|
9189
9193
|
import { createPortal } from "react-dom";
|
|
9190
9194
|
import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
9191
9195
|
function getTooltipXPos(params) {
|
|
9192
|
-
const { x, width, isMobileView
|
|
9193
|
-
const
|
|
9194
|
-
const
|
|
9195
|
-
const
|
|
9196
|
-
const
|
|
9197
|
-
const
|
|
9198
|
-
|
|
9199
|
-
|
|
9200
|
-
if (
|
|
9201
|
-
|
|
9202
|
-
isOverflowX: true,
|
|
9203
|
-
width: ttWidth,
|
|
9204
|
-
x: x - (ttEndX - window.innerWidth) - 2 * expandValue
|
|
9205
|
-
// unstick tooltip from window right edge
|
|
9206
|
-
};
|
|
9207
|
-
}
|
|
9208
|
-
if (isTTOverflowsFrame) {
|
|
9209
|
-
const calcedX = x - ttShiftX - ttWidth / 2 + frameWidth / 2;
|
|
9210
|
-
return {
|
|
9211
|
-
isOverflowX: true,
|
|
9212
|
-
width: ttWidth,
|
|
9213
|
-
x: calcedX < expandValue ? expandValue : calcedX
|
|
9214
|
-
};
|
|
9215
|
-
}
|
|
9216
|
-
return {
|
|
9217
|
-
isOverflowX: isTTOverflowsFrame || isTTOverflowsWindow,
|
|
9218
|
-
width: ttWidth,
|
|
9219
|
-
x: x - ttShiftX
|
|
9220
|
-
};
|
|
9196
|
+
const { x, width, isMobileView } = params;
|
|
9197
|
+
const frameWidth = isMobileView ? width : width + 2 * EXPAND;
|
|
9198
|
+
const ttWidth = isMobileView ? window.innerWidth - 2 * EXPAND : Math.max(frameWidth, TOOLTIP_MIN_WIDTH);
|
|
9199
|
+
const ttCenterPosX = x + width / 2;
|
|
9200
|
+
const ttExpectedStartX = ttCenterPosX - ttWidth / 2;
|
|
9201
|
+
const ttExpectedEndX = ttCenterPosX + ttWidth / 2;
|
|
9202
|
+
let ttTargetStartX = ttExpectedStartX;
|
|
9203
|
+
if (ttExpectedStartX < EXPAND) ttTargetStartX = EXPAND;
|
|
9204
|
+
if (ttExpectedEndX > window.innerWidth - EXPAND) ttTargetStartX = window.innerWidth - EXPAND - ttWidth;
|
|
9205
|
+
return { width: ttWidth, x: ttTargetStartX };
|
|
9221
9206
|
}
|
|
9222
9207
|
function getTooltipYPos(params) {
|
|
9223
|
-
const { y, height, isMobileView
|
|
9224
|
-
|
|
9225
|
-
const
|
|
9208
|
+
const { y, height, isMobileView } = params;
|
|
9209
|
+
const topPosY = y - EXPAND * 2 - TOP_POS_OFFSET;
|
|
9210
|
+
const targetBottomY = y + height + EXPAND * 2;
|
|
9211
|
+
const bottomPosY = Math.min(targetBottomY, window.innerHeight - EXPAND - TOP_POS_OFFSET);
|
|
9226
9212
|
const isTopPos = isMobileView && topPosY >= EXPAND;
|
|
9227
|
-
return {
|
|
9228
|
-
isTopPos,
|
|
9229
|
-
isOverflowY: topPosY < EXPAND,
|
|
9230
|
-
y: isTopPos ? topPosY : bottomPosY
|
|
9231
|
-
// topPosY >= EXPAND - unstick tooltip from window top edge
|
|
9232
|
-
};
|
|
9213
|
+
return { isTopPos, y: isTopPos ? topPosY : bottomPosY };
|
|
9233
9214
|
}
|
|
9234
9215
|
function OnboardingOverlay() {
|
|
9235
9216
|
const { t } = useT();
|
|
9236
9217
|
const page = useLayoutDataStore((st) => st.page);
|
|
9237
|
-
const isOnboarding = useLayoutDataStore((st) => st.isOnboarding);
|
|
9238
|
-
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
9239
|
-
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
9240
|
-
const { elRect, mountIntoNode } = useOnboardingStore();
|
|
9241
|
-
const {
|
|
9242
|
-
actions: tourStepActions = [],
|
|
9243
|
-
waitSecs = null,
|
|
9244
|
-
title,
|
|
9245
|
-
description,
|
|
9246
|
-
forced = false
|
|
9247
|
-
} = onboarder.getCurrentStep() || {};
|
|
9248
9218
|
useEffect12(() => {
|
|
9249
9219
|
setTimeout(() => {
|
|
9250
9220
|
if (!page) {
|
|
@@ -9259,17 +9229,28 @@ function OnboardingOverlay() {
|
|
|
9259
9229
|
useOnboardingStore.getState().setMountIntoNode(embarkUIContainer);
|
|
9260
9230
|
}, 0);
|
|
9261
9231
|
}, [page]);
|
|
9232
|
+
const isOnboarding = useLayoutDataStore((st) => st.isOnboarding);
|
|
9233
|
+
const isMobileView = useLayoutStore((st) => st.isMobileView);
|
|
9234
|
+
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
9235
|
+
const { elRect, mountIntoNode } = useOnboardingStore();
|
|
9262
9236
|
const [continueCountdown, setContinueCountdown] = useState5(null);
|
|
9263
|
-
const
|
|
9264
|
-
|
|
9265
|
-
|
|
9266
|
-
|
|
9267
|
-
|
|
9268
|
-
|
|
9269
|
-
|
|
9270
|
-
|
|
9271
|
-
|
|
9272
|
-
|
|
9237
|
+
const {
|
|
9238
|
+
actions: tourStepActions = [],
|
|
9239
|
+
waitSecs = null,
|
|
9240
|
+
title,
|
|
9241
|
+
description,
|
|
9242
|
+
forced = false
|
|
9243
|
+
} = onboarder.getCurrentStep() || {};
|
|
9244
|
+
const position = useMemo2(() => {
|
|
9245
|
+
const posParams = {
|
|
9246
|
+
x: elRect.x,
|
|
9247
|
+
y: elRect.y,
|
|
9248
|
+
width: elRect.width,
|
|
9249
|
+
height: elRect.height,
|
|
9250
|
+
isMobileView
|
|
9251
|
+
};
|
|
9252
|
+
return { ...getTooltipXPos(posParams), ...getTooltipYPos(posParams) };
|
|
9253
|
+
}, [elRect, isMobileView]);
|
|
9273
9254
|
useEffect12(() => {
|
|
9274
9255
|
if (!waitSecs) return;
|
|
9275
9256
|
setContinueCountdown(waitSecs);
|
|
@@ -9296,6 +9277,7 @@ function OnboardingOverlay() {
|
|
|
9296
9277
|
style: { zIndex: isOnboarding ? 1e4 : -9999 },
|
|
9297
9278
|
className: cn(
|
|
9298
9279
|
"embarkai-ui-scope",
|
|
9280
|
+
// with data-current-theme-mode will provide full embark cssv set
|
|
9299
9281
|
"overflow-hidden pointer-events-auto",
|
|
9300
9282
|
"fixed left-0 top-0",
|
|
9301
9283
|
isOnboarding ? "w-[100dvw] h-[100dvh]" : "w-0 h-0"
|
|
@@ -9321,10 +9303,10 @@ function OnboardingOverlay() {
|
|
|
9321
9303
|
fill: "black",
|
|
9322
9304
|
style: {
|
|
9323
9305
|
transition: "x 0.3s ease, y 0.3s ease, width 0.3s ease, height 0.3s ease",
|
|
9324
|
-
x: elRect.x -
|
|
9325
|
-
y: elRect.y -
|
|
9326
|
-
width: elRect.width +
|
|
9327
|
-
height: elRect.height +
|
|
9306
|
+
x: elRect.x - EXPAND,
|
|
9307
|
+
y: elRect.y - EXPAND,
|
|
9308
|
+
width: elRect.width + EXPAND * 2,
|
|
9309
|
+
height: elRect.height + EXPAND * 2
|
|
9328
9310
|
}
|
|
9329
9311
|
}
|
|
9330
9312
|
)
|
|
@@ -9343,14 +9325,14 @@ function OnboardingOverlay() {
|
|
|
9343
9325
|
"overflow-hidden"
|
|
9344
9326
|
),
|
|
9345
9327
|
style: {
|
|
9346
|
-
willChange: "top, left, width, height
|
|
9328
|
+
willChange: "top, left, width, height",
|
|
9347
9329
|
width: isOnboarding ? position.width : 0,
|
|
9348
9330
|
height: isOnboarding ? "auto" : 0,
|
|
9349
9331
|
top: isOnboarding ? position.y : window.innerHeight / 2,
|
|
9350
9332
|
left: isOnboarding ? position.x : window.innerWidth / 2,
|
|
9351
9333
|
transition: "top 0.3s ease, left 0.3s ease, width 0.3s ease",
|
|
9352
9334
|
transform: position.isTopPos ? `translateY(calc(-100% + ${TOP_POS_OFFSET}px))` : "translateY(0)",
|
|
9353
|
-
borderRadius:
|
|
9335
|
+
borderRadius: "var(--ui-kit-bdrs)"
|
|
9354
9336
|
},
|
|
9355
9337
|
children: [
|
|
9356
9338
|
/* @__PURE__ */ jsx21("p", { className: "font-bold", children: t(title) }),
|
|
@@ -9360,16 +9342,12 @@ function OnboardingOverlay() {
|
|
|
9360
9342
|
{
|
|
9361
9343
|
size: "small",
|
|
9362
9344
|
variant: "ghost",
|
|
9345
|
+
className: "absolute top-1 right-1 text-[var(--ui-kit-success)]",
|
|
9363
9346
|
onClick: () => {
|
|
9364
9347
|
setContinueCountdown(null);
|
|
9365
9348
|
onboarder.endTour();
|
|
9366
9349
|
},
|
|
9367
|
-
className:
|
|
9368
|
-
"text-[var(--ui-kit-success)]",
|
|
9369
|
-
"absolute top-2 right-2 text-[10px]"
|
|
9370
|
-
// colorMode === 'dark' ? 'text-[var(--ui-kit-fg-inverted)]' : 'text-[var(--ui-kit-fg)]'
|
|
9371
|
-
),
|
|
9372
|
-
children: t("passport:common.hide")
|
|
9350
|
+
children: /* @__PURE__ */ jsx21(XIcon, { className: "h-3 w-3" })
|
|
9373
9351
|
}
|
|
9374
9352
|
),
|
|
9375
9353
|
!!tourStepActions?.length ? /* @__PURE__ */ jsx21("div", { className: "flex grid grid-cols-2 gap-[var(--ui-kit-gap)]", children: tourStepActions.map(({ caption, onClick }, index) => /* @__PURE__ */ jsxs17(
|
|
@@ -9425,7 +9403,7 @@ var init_OnboardingOverlay = __esm({
|
|
|
9425
9403
|
init_button();
|
|
9426
9404
|
init_onboarder();
|
|
9427
9405
|
init_useOnboardingStore();
|
|
9428
|
-
EXPAND =
|
|
9406
|
+
EXPAND = 8;
|
|
9429
9407
|
TOOLTIP_MIN_WIDTH = 320;
|
|
9430
9408
|
TOP_POS_OFFSET = 112;
|
|
9431
9409
|
}
|
|
@@ -10044,7 +10022,7 @@ var init_useBuyMenuStore = __esm({
|
|
|
10044
10022
|
// src/internal/components/BuyMenu/components/CryptoSelector.tsx
|
|
10045
10023
|
import { debounce as debounce2, toPairs } from "lodash-es";
|
|
10046
10024
|
import { InfoIcon, PointerIcon, SearchIcon } from "lucide-react";
|
|
10047
|
-
import { useCallback as useCallback10, useMemo as
|
|
10025
|
+
import { useCallback as useCallback10, useMemo as useMemo3, useState as useState7 } from "react";
|
|
10048
10026
|
import { jsx as jsx34, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
10049
10027
|
function CryptoItem(props) {
|
|
10050
10028
|
const { symbol, network } = props;
|
|
@@ -10091,7 +10069,7 @@ function CryptoSelector(props) {
|
|
|
10091
10069
|
}, 1e3),
|
|
10092
10070
|
[]
|
|
10093
10071
|
);
|
|
10094
|
-
const filteredCoins =
|
|
10072
|
+
const filteredCoins = useMemo3(() => {
|
|
10095
10073
|
const sorted = [...coins].sort((a, b) => {
|
|
10096
10074
|
const aIdx = POPULAR_CRYPTOS.indexOf(a.symbol.toUpperCase());
|
|
10097
10075
|
const bIdx = POPULAR_CRYPTOS.indexOf(b.symbol.toUpperCase());
|
|
@@ -10269,7 +10247,7 @@ var init_ResolvedFiatIcon = __esm({
|
|
|
10269
10247
|
// src/internal/components/BuyMenu/components/FiatSelector.tsx
|
|
10270
10248
|
import { debounce as debounce3 } from "lodash-es";
|
|
10271
10249
|
import { PointerIcon as PointerIcon2, SearchIcon as SearchIcon2 } from "lucide-react";
|
|
10272
|
-
import { useCallback as useCallback11, useMemo as
|
|
10250
|
+
import { useCallback as useCallback11, useMemo as useMemo4, useState as useState8 } from "react";
|
|
10273
10251
|
import { Fragment as Fragment9, jsx as jsx36, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
10274
10252
|
function getCurrencyName(ticker, locale = "en") {
|
|
10275
10253
|
try {
|
|
@@ -10316,7 +10294,7 @@ function FiatSelector(props) {
|
|
|
10316
10294
|
}, 1e3),
|
|
10317
10295
|
[]
|
|
10318
10296
|
);
|
|
10319
|
-
const filteredFiats =
|
|
10297
|
+
const filteredFiats = useMemo4(() => {
|
|
10320
10298
|
const sorted = [...fiats].sort((a, b) => {
|
|
10321
10299
|
const aIdx = POPULAR_FIATS.indexOf(a.ticker.toUpperCase());
|
|
10322
10300
|
const bIdx = POPULAR_FIATS.indexOf(b.ticker.toUpperCase());
|
|
@@ -11002,7 +10980,7 @@ import { useInfiniteQuery } from "@tanstack/react-query";
|
|
|
11002
10980
|
import dayjs from "dayjs";
|
|
11003
10981
|
import { debounce as debounce4 } from "lodash-es";
|
|
11004
10982
|
import { DownloadIcon, ExternalLinkIcon, LoaderIcon as LoaderIcon3 } from "lucide-react";
|
|
11005
|
-
import { useCallback as useCallback12, useEffect as useEffect15, useMemo as
|
|
10983
|
+
import { useCallback as useCallback12, useEffect as useEffect15, useMemo as useMemo5 } from "react";
|
|
11006
10984
|
import { jsx as jsx40, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
11007
10985
|
function getStatusVariant(status) {
|
|
11008
10986
|
switch (status) {
|
|
@@ -11133,7 +11111,7 @@ function BinanceTxHistory() {
|
|
|
11133
11111
|
txStatuses: SHOW_STATUSES
|
|
11134
11112
|
})
|
|
11135
11113
|
});
|
|
11136
|
-
const txList =
|
|
11114
|
+
const txList = useMemo5(
|
|
11137
11115
|
() => historyData?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
11138
11116
|
[historyData]
|
|
11139
11117
|
);
|
|
@@ -12837,7 +12815,7 @@ import { PAYMASTER_CACHE_TTL_MS } from "@embarkai/core";
|
|
|
12837
12815
|
import { getChainConfig as getChainConfig8, SUPPORTED_MAINNETS as SUPPORTED_MAINNETS2 } from "@embarkai/core/read";
|
|
12838
12816
|
import { useQuery as useQuery5 } from "@tanstack/react-query";
|
|
12839
12817
|
import { ArrowLeft as ArrowLeft4 } from "lucide-react";
|
|
12840
|
-
import { useMemo as
|
|
12818
|
+
import { useMemo as useMemo6, useState as useState10 } from "react";
|
|
12841
12819
|
import { jsx as jsx54, jsxs as jsxs48 } from "react/jsx-runtime";
|
|
12842
12820
|
function ChainsMenu() {
|
|
12843
12821
|
const { t } = useT();
|
|
@@ -12847,7 +12825,7 @@ function ChainsMenu() {
|
|
|
12847
12825
|
const [isTestnets, setIsTestnets] = useState10(false);
|
|
12848
12826
|
const [nextChainId, setNextChainId] = useState10(null);
|
|
12849
12827
|
useOnboardingTourAvailable(true);
|
|
12850
|
-
const visibleNetworks =
|
|
12828
|
+
const visibleNetworks = useMemo6(() => {
|
|
12851
12829
|
return NETWORK_OPTIONS.filter(
|
|
12852
12830
|
(option) => option.isActive && (isTestnets ? true : SUPPORTED_MAINNETS2.includes(option.chainId))
|
|
12853
12831
|
);
|
|
@@ -15216,7 +15194,7 @@ var init_hooks = __esm({
|
|
|
15216
15194
|
|
|
15217
15195
|
// src/internal/components/KeyshareRestoreMenu/components/MethodSelector.tsx
|
|
15218
15196
|
import { Cloud, Cpu as Cpu3, FileDown, FileUp } from "lucide-react";
|
|
15219
|
-
import { Fragment as Fragment17, useMemo as
|
|
15197
|
+
import { Fragment as Fragment17, useMemo as useMemo7 } from "react";
|
|
15220
15198
|
import { jsx as jsx60, jsxs as jsxs54 } from "react/jsx-runtime";
|
|
15221
15199
|
function MethodSelector(props) {
|
|
15222
15200
|
const { mode = "restore", serverRecoveryStatus } = props;
|
|
@@ -15230,7 +15208,7 @@ function MethodSelector(props) {
|
|
|
15230
15208
|
setError,
|
|
15231
15209
|
setSuccess
|
|
15232
15210
|
} = useRestoreStore();
|
|
15233
|
-
const recoveryRenderMethods =
|
|
15211
|
+
const recoveryRenderMethods = useMemo7(() => {
|
|
15234
15212
|
const methodsWithBackupData = getRecoveryRenderMethods(mode).map((mt) => {
|
|
15235
15213
|
let data = null;
|
|
15236
15214
|
switch (true) {
|
|
@@ -15302,7 +15280,7 @@ var init_MethodSelector = __esm({
|
|
|
15302
15280
|
});
|
|
15303
15281
|
|
|
15304
15282
|
// src/internal/components/KeyshareRestoreMenu/onboarding.setup.ts
|
|
15305
|
-
var KEYSHARE_BACKUP_MENU_TOUR;
|
|
15283
|
+
var KEYSHARE_BACKUP_MENU_TOUR, KEYSHARE_BACKUP_MENU_TOUR_NO_PASSKEY;
|
|
15306
15284
|
var init_onboarding_setup3 = __esm({
|
|
15307
15285
|
"src/internal/components/KeyshareRestoreMenu/onboarding.setup.ts"() {
|
|
15308
15286
|
init_hooks();
|
|
@@ -15362,6 +15340,43 @@ var init_onboarding_setup3 = __esm({
|
|
|
15362
15340
|
description: "passport:backupMenu.onboarding.backupAdvanced.description"
|
|
15363
15341
|
}
|
|
15364
15342
|
];
|
|
15343
|
+
KEYSHARE_BACKUP_MENU_TOUR_NO_PASSKEY = [
|
|
15344
|
+
{
|
|
15345
|
+
elId: "embarkai-keyshare-backup-menu-onboarding" /* backupMenu */,
|
|
15346
|
+
title: "passport:backupMenu.onboarding.backupMenu.title",
|
|
15347
|
+
description: "passport:backupMenu.onboarding.backupMenu.description",
|
|
15348
|
+
onNext: () => {
|
|
15349
|
+
const { setSuccess, setError, setRestorePassword, setRestoreFile, setShowPassword, setUsePasskey, setMethod } = useRestoreStore.getState();
|
|
15350
|
+
setSuccess(null);
|
|
15351
|
+
setError(null);
|
|
15352
|
+
setRestoreFile(null);
|
|
15353
|
+
setRestorePassword("<your-strong-password>");
|
|
15354
|
+
setShowPassword(true);
|
|
15355
|
+
setUsePasskey(false);
|
|
15356
|
+
setMethod("server");
|
|
15357
|
+
}
|
|
15358
|
+
},
|
|
15359
|
+
{
|
|
15360
|
+
elId: "embarkai-keyshare-backup-menu-onboarding" /* backupMenu */,
|
|
15361
|
+
title: "passport:backupMenu.onboarding.backupEncryptionPassword.title",
|
|
15362
|
+
description: "passport:backupMenu.onboarding.backupEncryptionPassword.description",
|
|
15363
|
+
onNext: () => {
|
|
15364
|
+
const { setRestorePassword, setShowPassword } = useRestoreStore.getState();
|
|
15365
|
+
setRestorePassword("");
|
|
15366
|
+
setShowPassword(false);
|
|
15367
|
+
}
|
|
15368
|
+
},
|
|
15369
|
+
{
|
|
15370
|
+
elId: "embarkai-keyshare-backup-status-onboarding" /* backupStatus */,
|
|
15371
|
+
title: "passport:backupMenu.onboarding.backupStatus.title",
|
|
15372
|
+
description: "passport:backupMenu.onboarding.backupStatus.description"
|
|
15373
|
+
},
|
|
15374
|
+
{
|
|
15375
|
+
elId: "embarkai-keyshare-backup-advanced-onboarding" /* backupAdvanced */,
|
|
15376
|
+
title: "passport:backupMenu.onboarding.backupAdvanced.title",
|
|
15377
|
+
description: "passport:backupMenu.onboarding.backupAdvanced.description"
|
|
15378
|
+
}
|
|
15379
|
+
];
|
|
15365
15380
|
}
|
|
15366
15381
|
});
|
|
15367
15382
|
|
|
@@ -18038,7 +18053,7 @@ var init_ProviderCard = __esm({
|
|
|
18038
18053
|
// src/internal/components/ManageWalletMenu/ManageWallet.tsx
|
|
18039
18054
|
import { fromPairs } from "lodash-es";
|
|
18040
18055
|
import { AlertTriangle as AlertTriangle4, ArrowLeft as ArrowLeft14, Loader as Loader13 } from "lucide-react";
|
|
18041
|
-
import { useMemo as
|
|
18056
|
+
import { useMemo as useMemo8 } from "react";
|
|
18042
18057
|
import { Fragment as Fragment28, jsx as jsx79, jsxs as jsxs73 } from "react/jsx-runtime";
|
|
18043
18058
|
function getProviderName(provider) {
|
|
18044
18059
|
return PROVIDERS_META[provider].name || provider;
|
|
@@ -18080,7 +18095,7 @@ function ManageWalletMenu() {
|
|
|
18080
18095
|
} = useManageWalletStore();
|
|
18081
18096
|
const configuredProviders = getConfiguredProviders(config.current);
|
|
18082
18097
|
const { data: providers = [], isLoading: isProvidersLoading, error: providersError } = useProvidersList();
|
|
18083
|
-
const renderProviders =
|
|
18098
|
+
const renderProviders = useMemo8(() => {
|
|
18084
18099
|
const normalizeProviderName = (name) => {
|
|
18085
18100
|
if (name === "x") return "twitter";
|
|
18086
18101
|
return name;
|
|
@@ -18444,14 +18459,22 @@ var useNicknameStore;
|
|
|
18444
18459
|
var init_useNicknameStore = __esm({
|
|
18445
18460
|
"src/internal/components/NicknameMenu/useNicknameStore.ts"() {
|
|
18446
18461
|
useNicknameStore = create10((set) => ({
|
|
18447
|
-
renderKey: "",
|
|
18462
|
+
renderKey: "nickname-menu-render-key",
|
|
18448
18463
|
setRenderKey: (renderKey) => set({ renderKey }),
|
|
18449
18464
|
nicknameValue: "",
|
|
18450
18465
|
setNicknameValue: (nicknameValue) => set({ nicknameValue }),
|
|
18451
18466
|
availability: null,
|
|
18452
18467
|
setAvailability: (availability) => set({ availability }),
|
|
18468
|
+
success: null,
|
|
18469
|
+
setSuccess: (success) => set({ success }),
|
|
18453
18470
|
error: null,
|
|
18454
|
-
setError: (error) => set({ error })
|
|
18471
|
+
setError: (error) => set({ error }),
|
|
18472
|
+
reset: () => set({
|
|
18473
|
+
renderKey: "nickname-menu-render-key",
|
|
18474
|
+
nicknameValue: "",
|
|
18475
|
+
availability: null,
|
|
18476
|
+
error: null
|
|
18477
|
+
})
|
|
18455
18478
|
}));
|
|
18456
18479
|
}
|
|
18457
18480
|
});
|
|
@@ -18513,7 +18536,7 @@ var init_useNicknameAvailability = __esm({
|
|
|
18513
18536
|
|
|
18514
18537
|
// src/internal/components/NicknameMenu/NicknameEditForm.tsx
|
|
18515
18538
|
import { useMutation as useMutation17, useQueryClient as useQueryClient18 } from "@tanstack/react-query";
|
|
18516
|
-
import { AtSignIcon,
|
|
18539
|
+
import { AtSignIcon, CopyIcon, LoaderIcon as LoaderIcon8, SaveIcon } from "lucide-react";
|
|
18517
18540
|
import { useCallback as useCallback22, useState as useState20 } from "react";
|
|
18518
18541
|
import { Fragment as Fragment29, jsx as jsx81, jsxs as jsxs75 } from "react/jsx-runtime";
|
|
18519
18542
|
function NicknameEditForm(props) {
|
|
@@ -18528,14 +18551,7 @@ function NicknameEditForm(props) {
|
|
|
18528
18551
|
const nicknameAvailability = useNicknameStore((st) => st.availability);
|
|
18529
18552
|
const { isCheckingAvailability } = useNicknameAvailability(nicknameInfo ? nicknameInfo.handle : "");
|
|
18530
18553
|
const [isNicknameCopied, setIsNicknameCopied] = useState20(false);
|
|
18531
|
-
const {
|
|
18532
|
-
mutate: changeNickname2,
|
|
18533
|
-
isError: isNicknameChangeError,
|
|
18534
|
-
isPending: isNicknameChanging,
|
|
18535
|
-
isSuccess: isNicknameChangeSuccess,
|
|
18536
|
-
// error: nicknameChangeError,
|
|
18537
|
-
reset
|
|
18538
|
-
} = useMutation17({
|
|
18554
|
+
const { mutate: changeNickname2, isPending: isNicknameChanging } = useMutation17({
|
|
18539
18555
|
mutationFn: (handle) => changeNickname(handle),
|
|
18540
18556
|
onSuccess: () => {
|
|
18541
18557
|
qc.invalidateQueries({ queryKey: [QUERY_KEYS.nicknameInfo] });
|
|
@@ -18543,7 +18559,15 @@ function NicknameEditForm(props) {
|
|
|
18543
18559
|
callbacksRef.current?.onAccountUpdate?.({
|
|
18544
18560
|
providers: qc.getQueryData([PROVIDERS_QUERY_KEY, address])
|
|
18545
18561
|
});
|
|
18546
|
-
if (!!isInitialUser)
|
|
18562
|
+
if (!!isInitialUser) {
|
|
18563
|
+
setTimeout(() => useLayoutDataStore.getState().setPage(null), 1500);
|
|
18564
|
+
}
|
|
18565
|
+
useNicknameStore.getState().setSuccess(t("passport:nicknameMenu.availability.nicknameChanged"));
|
|
18566
|
+
useNicknameStore.getState().setRenderKey(`nickname-has-been-changed-${Date.now()}`);
|
|
18567
|
+
setTimeout(() => {
|
|
18568
|
+
useNicknameStore.getState().setSuccess(null);
|
|
18569
|
+
useNicknameStore.getState().setRenderKey(`nickname-has-been-changed-${Date.now()}`);
|
|
18570
|
+
}, 1500);
|
|
18547
18571
|
},
|
|
18548
18572
|
onError: (error) => {
|
|
18549
18573
|
const changeNicknameError = error;
|
|
@@ -18559,17 +18583,16 @@ function NicknameEditForm(props) {
|
|
|
18559
18583
|
const handleNicknameInputChange = useCallback22(
|
|
18560
18584
|
(e) => {
|
|
18561
18585
|
const { error, setError, setNicknameValue } = useNicknameStore.getState();
|
|
18562
|
-
const
|
|
18563
|
-
setNicknameValue(
|
|
18564
|
-
if (error &&
|
|
18565
|
-
if (
|
|
18566
|
-
|
|
18567
|
-
const validation = validateNickname(value);
|
|
18586
|
+
const nextInputValue = e.target.value;
|
|
18587
|
+
setNicknameValue(nextInputValue);
|
|
18588
|
+
if (error && nextInputValue.length >= 3) setError(null);
|
|
18589
|
+
if (nextInputValue?.length < 1) return;
|
|
18590
|
+
const validation = validateNickname(nextInputValue);
|
|
18568
18591
|
if (!validation.valid && validation.error) {
|
|
18569
18592
|
setError(getNicknameErrorMessage(validation.error, { t }));
|
|
18570
18593
|
}
|
|
18571
18594
|
},
|
|
18572
|
-
[
|
|
18595
|
+
[t]
|
|
18573
18596
|
);
|
|
18574
18597
|
const handleSubmit = useCallback22(
|
|
18575
18598
|
(e) => {
|
|
@@ -18596,34 +18619,43 @@ function NicknameEditForm(props) {
|
|
|
18596
18619
|
const normalizedInputValue = normalizeNickname(nicknameValue);
|
|
18597
18620
|
const isSameAsCurrentNickname = normalizedInputValue === currentNickname.toLowerCase();
|
|
18598
18621
|
const isSubmitDisabled = !canChange || nicknameValue.length === 0 || isSameAsCurrentNickname || !!nicknameError || isNicknameChanging || isCheckingAvailability || !nicknameAvailability?.available;
|
|
18599
|
-
const isNicknameAvailalable = !isCheckingAvailability && !isNicknameChanging &&
|
|
18622
|
+
const isNicknameAvailalable = !isCheckingAvailability && !isNicknameChanging && nicknameAvailability?.available;
|
|
18600
18623
|
return /* @__PURE__ */ jsxs75(Fragment29, { children: [
|
|
18601
|
-
canChange ? /* @__PURE__ */
|
|
18602
|
-
/* @__PURE__ */
|
|
18603
|
-
|
|
18604
|
-
{
|
|
18605
|
-
|
|
18606
|
-
|
|
18607
|
-
|
|
18608
|
-
|
|
18609
|
-
|
|
18610
|
-
|
|
18611
|
-
|
|
18612
|
-
|
|
18613
|
-
|
|
18614
|
-
|
|
18615
|
-
|
|
18616
|
-
|
|
18617
|
-
|
|
18618
|
-
|
|
18619
|
-
|
|
18620
|
-
|
|
18621
|
-
|
|
18622
|
-
|
|
18623
|
-
|
|
18624
|
-
|
|
18625
|
-
|
|
18626
|
-
|
|
18624
|
+
canChange ? /* @__PURE__ */ jsxs75(Fragment29, { children: [
|
|
18625
|
+
/* @__PURE__ */ jsxs75("span", { className: "text-[10px] leading-4 text-[var(--ui-kit-fg-muted)]", children: [
|
|
18626
|
+
t("passport:nicknameMenu.yourNickname"),
|
|
18627
|
+
currentNickname !== nicknameValue && /* @__PURE__ */ jsxs75("strong", { className: "text-[var(--ui-kit-fg)]", children: [
|
|
18628
|
+
": ",
|
|
18629
|
+
currentNickname
|
|
18630
|
+
] })
|
|
18631
|
+
] }),
|
|
18632
|
+
/* @__PURE__ */ jsx81("form", { onSubmit: handleSubmit, className: "w-full", children: /* @__PURE__ */ jsxs75("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
|
|
18633
|
+
/* @__PURE__ */ jsx81(
|
|
18634
|
+
Input,
|
|
18635
|
+
{
|
|
18636
|
+
Icon: AtSignIcon,
|
|
18637
|
+
value: nicknameValue,
|
|
18638
|
+
onChange: handleNicknameInputChange,
|
|
18639
|
+
placeholder: t("passport:nicknameMenu.placeholder"),
|
|
18640
|
+
disabled: isNicknameChanging,
|
|
18641
|
+
className: "flex-1"
|
|
18642
|
+
}
|
|
18643
|
+
),
|
|
18644
|
+
/* @__PURE__ */ jsx81(
|
|
18645
|
+
Button,
|
|
18646
|
+
{
|
|
18647
|
+
type: "submit",
|
|
18648
|
+
size: "large",
|
|
18649
|
+
disabled: isSubmitDisabled,
|
|
18650
|
+
title: isNicknameAvailalable ? t("passport:nicknameMenu.availability.nicknameAvailable") : "",
|
|
18651
|
+
className: cn("w-12", {
|
|
18652
|
+
"bg-[var(--ui-kit-bg-success)] text-[var(--ui-kit-success)]": isNicknameAvailalable
|
|
18653
|
+
}),
|
|
18654
|
+
children: isCheckingAvailability || isNicknameChanging ? /* @__PURE__ */ jsx81(LoaderIcon8, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ jsx81(SaveIcon, { className: "w-4 h-4" })
|
|
18655
|
+
}
|
|
18656
|
+
)
|
|
18657
|
+
] }) })
|
|
18658
|
+
] }) : /* @__PURE__ */ jsxs75("div", { className: "w-full flex items-center justify-between px-[var(--ui-kit-pd)] h-12 bg-[var(--ui-kit-secondary)] rounded-[var(--ui-kit-el-bdrs)]", children: [
|
|
18627
18659
|
/* @__PURE__ */ jsxs75(
|
|
18628
18660
|
"span",
|
|
18629
18661
|
{
|
|
@@ -18691,7 +18723,8 @@ var init_onboarding_setup6 = __esm({
|
|
|
18691
18723
|
// src/internal/components/NicknameMenu/NicknameMenu.tsx
|
|
18692
18724
|
import { useQuery as useQuery13 } from "@tanstack/react-query";
|
|
18693
18725
|
import dayjs4 from "dayjs";
|
|
18694
|
-
import { ArrowLeft as ArrowLeft15,
|
|
18726
|
+
import { ArrowLeft as ArrowLeft15, Loader as Loader15 } from "lucide-react";
|
|
18727
|
+
import { useEffect as useEffect35 } from "react";
|
|
18695
18728
|
import { jsx as jsx82, jsxs as jsxs76 } from "react/jsx-runtime";
|
|
18696
18729
|
function NicknameMenu() {
|
|
18697
18730
|
const { isInitialUser } = usePageParams().current;
|
|
@@ -18700,6 +18733,7 @@ function NicknameMenu() {
|
|
|
18700
18733
|
const address = useSession((st) => st.address);
|
|
18701
18734
|
const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
|
|
18702
18735
|
const nicknameRenderKey = useNicknameStore((st) => st.renderKey);
|
|
18736
|
+
const nicknameSuccess = useNicknameStore((st) => st.success);
|
|
18703
18737
|
const nicknameError = useNicknameStore((st) => st.error);
|
|
18704
18738
|
const {
|
|
18705
18739
|
data: nicknameInfo,
|
|
@@ -18709,9 +18743,10 @@ function NicknameMenu() {
|
|
|
18709
18743
|
retry: 1,
|
|
18710
18744
|
enabled: !!address,
|
|
18711
18745
|
queryKey: [QUERY_KEYS.nicknameInfo, address],
|
|
18712
|
-
queryFn: getNicknameInfo
|
|
18746
|
+
queryFn: async () => await getNicknameInfo()
|
|
18713
18747
|
});
|
|
18714
18748
|
const resolvedError = nicknameError || nicknameInfoError?.message || null;
|
|
18749
|
+
useEffect35(() => () => useNicknameStore.getState().reset(), []);
|
|
18715
18750
|
return /* @__PURE__ */ jsx82(
|
|
18716
18751
|
"div",
|
|
18717
18752
|
{
|
|
@@ -18735,16 +18770,12 @@ function NicknameMenu() {
|
|
|
18735
18770
|
isNicknameInfoLoading && /* @__PURE__ */ jsx82(Loader15, { className: "w-4 h-4 animate-spin" })
|
|
18736
18771
|
] })
|
|
18737
18772
|
] }),
|
|
18738
|
-
/* @__PURE__ */ jsx82("span", { className: "text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:nicknameMenu.yourNickname") }),
|
|
18739
18773
|
/* @__PURE__ */ jsx82(NicknameEditForm, { nicknameInfo, isInitialUser }),
|
|
18740
|
-
!nicknameInfo?.canChange && nicknameInfo?.cooldownEndsAt && /* @__PURE__ */
|
|
18741
|
-
|
|
18742
|
-
|
|
18743
|
-
|
|
18744
|
-
|
|
18745
|
-
}) })
|
|
18746
|
-
] }),
|
|
18747
|
-
!!nicknameInfo && /* @__PURE__ */ jsxs76("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between text-[10px]", children: [
|
|
18774
|
+
!nicknameInfo?.canChange && nicknameInfo?.cooldownEndsAt && /* @__PURE__ */ jsx82(Highlight, { type: "info", children: t("passport:nicknameMenu.cooldownMessage", {
|
|
18775
|
+
canChangeAt: dayjs4(nicknameInfo.cooldownEndsAt).format("MMM D, YYYY"),
|
|
18776
|
+
days: String(getDaysRemaining(nicknameInfo.cooldownEndsAt))
|
|
18777
|
+
}) }),
|
|
18778
|
+
!nicknameSuccess && !!nicknameInfo && /* @__PURE__ */ jsxs76("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between text-[10px]", children: [
|
|
18748
18779
|
/* @__PURE__ */ jsxs76("span", { children: [
|
|
18749
18780
|
/* @__PURE__ */ jsx82("span", { className: "text-[var(--ui-kit-fg-muted)]", children: nicknameInfo.changedAt ? t("passport:nicknameMenu.lastChanged") : t("passport:common.created") }),
|
|
18750
18781
|
/* @__PURE__ */ jsx82("span", { children: ": " }),
|
|
@@ -18756,6 +18787,7 @@ function NicknameMenu() {
|
|
|
18756
18787
|
/* @__PURE__ */ jsx82("strong", { className: "text-[var(--ui-kit-fg)]", children: nicknameInfo.changeCount })
|
|
18757
18788
|
] })
|
|
18758
18789
|
] }),
|
|
18790
|
+
!!nicknameSuccess && /* @__PURE__ */ jsx82(Highlight, { type: "success", children: nicknameSuccess }),
|
|
18759
18791
|
isInitialUser && /* @__PURE__ */ jsxs76(Highlight, { type: "success", children: [
|
|
18760
18792
|
/* @__PURE__ */ jsx82("p", {
|
|
18761
18793
|
//@ts-expect-error i18n typings
|
|
@@ -18816,7 +18848,7 @@ var init_NicknameMenu2 = __esm({
|
|
|
18816
18848
|
|
|
18817
18849
|
// src/internal/hooks/useResolvedPublicClient.ts
|
|
18818
18850
|
import { createPublicClientForChain as createPublicClientForChain5, getChainConfig as getChainConfig9 } from "@embarkai/core/read";
|
|
18819
|
-
import { useMemo as
|
|
18851
|
+
import { useMemo as useMemo9 } from "react";
|
|
18820
18852
|
function getCachedPublicClient(chainId) {
|
|
18821
18853
|
const cachedClient = publicClientByChainId.get(chainId);
|
|
18822
18854
|
if (cachedClient) return cachedClient;
|
|
@@ -18830,11 +18862,11 @@ function useResolvedPublicClient(chainId, logScope = "useResolvedPublicClient")
|
|
|
18830
18862
|
const activeChainConfig = useSession((st) => st.chainConfig);
|
|
18831
18863
|
const resolvedChainId = chainId ?? activeChainId;
|
|
18832
18864
|
const shouldUseActiveClient = !chainId || chainId === activeChainId;
|
|
18833
|
-
const chainConfig =
|
|
18865
|
+
const chainConfig = useMemo9(() => {
|
|
18834
18866
|
if (shouldUseActiveClient) return activeChainConfig;
|
|
18835
18867
|
return getChainConfig9(chainId);
|
|
18836
18868
|
}, [activeChainConfig, chainId, shouldUseActiveClient]);
|
|
18837
|
-
const publicClient =
|
|
18869
|
+
const publicClient = useMemo9(() => {
|
|
18838
18870
|
if (shouldUseActiveClient) return activePublicClient;
|
|
18839
18871
|
if (!chainId) return activePublicClient;
|
|
18840
18872
|
try {
|
|
@@ -18915,12 +18947,12 @@ var init_useNativeBalance = __esm({
|
|
|
18915
18947
|
|
|
18916
18948
|
// src/internal/hooks/useBlockscoutAssets/useWatchTokens.ts
|
|
18917
18949
|
import { useQuery as useQuery15 } from "@tanstack/react-query";
|
|
18918
|
-
import { useMemo as
|
|
18950
|
+
import { useMemo as useMemo10 } from "react";
|
|
18919
18951
|
import { erc20Abi as erc20Abi2, formatUnits as formatUnits3 } from "viem";
|
|
18920
18952
|
function useWatchTokens(options) {
|
|
18921
18953
|
const { address, chainId, enabled, publicClient } = options;
|
|
18922
18954
|
const { config } = useProviderConfig();
|
|
18923
|
-
const watchTokens =
|
|
18955
|
+
const watchTokens = useMemo10(() => {
|
|
18924
18956
|
const allWatchTokens = config.current.watchTokens;
|
|
18925
18957
|
const tokensForChain = chainId ? allWatchTokens?.[chainId] || [] : [];
|
|
18926
18958
|
return tokensForChain;
|
|
@@ -19129,7 +19161,7 @@ var init_utils8 = __esm({
|
|
|
19129
19161
|
// src/internal/hooks/useBlockscoutAssets/useBlockscoutAssets.ts
|
|
19130
19162
|
import { createBlockscoutClient as createBlockscoutClient2, nonBlockscoutClient } from "@embarkai/core";
|
|
19131
19163
|
import { useQuery as useQuery16, useQueryClient as useQueryClient19 } from "@tanstack/react-query";
|
|
19132
|
-
import { useCallback as useCallback23, useMemo as
|
|
19164
|
+
import { useCallback as useCallback23, useMemo as useMemo11, useRef as useRef15 } from "react";
|
|
19133
19165
|
function useBlockscoutAssets(options) {
|
|
19134
19166
|
const { address, chainId, enabled = true, detectSecurityTokens = true } = options;
|
|
19135
19167
|
const qc = useQueryClient19();
|
|
@@ -19140,7 +19172,7 @@ function useBlockscoutAssets(options) {
|
|
|
19140
19172
|
tokenBalancesQueryKey: customTokenBalancesQueryKey
|
|
19141
19173
|
} = useProviderConfig().config?.current?.portfolio || {};
|
|
19142
19174
|
const blockscoutApiUrl = getBlockscoutApiUrl(chainConfig);
|
|
19143
|
-
const blockscoutClient =
|
|
19175
|
+
const blockscoutClient = useMemo11(
|
|
19144
19176
|
() => blockscoutApiUrl ? createBlockscoutClient2({ baseUrl: blockscoutApiUrl }) : null,
|
|
19145
19177
|
[blockscoutApiUrl]
|
|
19146
19178
|
);
|
|
@@ -19216,7 +19248,7 @@ function useBlockscoutAssets(options) {
|
|
|
19216
19248
|
queryKey: [BLOCKSCOUT_QUERY_KEY, "nfts", resolvedChainId, blockscoutApiUrl, address],
|
|
19217
19249
|
queryFn: () => blockscoutClient.getNfts(address)
|
|
19218
19250
|
});
|
|
19219
|
-
const erc20TokenAddresses =
|
|
19251
|
+
const erc20TokenAddresses = useMemo11(() => {
|
|
19220
19252
|
if (!blockscoutItems) return [];
|
|
19221
19253
|
return blockscoutItems.filter((tb) => tb.token.type === "ERC-20").map((tb) => tb.token.address_hash);
|
|
19222
19254
|
}, [blockscoutItems]);
|
|
@@ -19261,7 +19293,7 @@ function useBlockscoutAssets(options) {
|
|
|
19261
19293
|
// 1 minute
|
|
19262
19294
|
// gcTime: BLOCKSCOUT_QUERY_GC_TIME,
|
|
19263
19295
|
});
|
|
19264
|
-
const assets =
|
|
19296
|
+
const assets = useMemo11(() => {
|
|
19265
19297
|
const result = [];
|
|
19266
19298
|
const addedAddresses = /* @__PURE__ */ new Set();
|
|
19267
19299
|
if (nativeBalanceData) {
|
|
@@ -19355,7 +19387,7 @@ function useBlockscoutAssets(options) {
|
|
|
19355
19387
|
watchTokenAssets,
|
|
19356
19388
|
chainConfig
|
|
19357
19389
|
]);
|
|
19358
|
-
const nativeBalance =
|
|
19390
|
+
const nativeBalance = useMemo11(() => {
|
|
19359
19391
|
if (!nativeBalanceData) return null;
|
|
19360
19392
|
return {
|
|
19361
19393
|
value: nativeBalanceData.value,
|
|
@@ -19363,7 +19395,7 @@ function useBlockscoutAssets(options) {
|
|
|
19363
19395
|
symbol: nativeBalanceData.symbol
|
|
19364
19396
|
};
|
|
19365
19397
|
}, [nativeBalanceData]);
|
|
19366
|
-
const error =
|
|
19398
|
+
const error = useMemo11(() => {
|
|
19367
19399
|
if (!blockscoutError) return null;
|
|
19368
19400
|
return createError(blockscoutError);
|
|
19369
19401
|
}, [blockscoutError]);
|
|
@@ -19873,9 +19905,9 @@ var init_onboarding_setup7 = __esm({
|
|
|
19873
19905
|
});
|
|
19874
19906
|
|
|
19875
19907
|
// src/internal/components/ReceiveMenu/ReceiveMenu.tsx
|
|
19876
|
-
import { ArrowLeft as ArrowLeft17, CheckCircle2 as CheckCircle23, Copy as Copy2, Info as
|
|
19908
|
+
import { ArrowLeft as ArrowLeft17, CheckCircle2 as CheckCircle23, Copy as Copy2, Info as Info4, Loader as Loader17, Shield } from "lucide-react";
|
|
19877
19909
|
import QRCode from "qrcode";
|
|
19878
|
-
import { useCallback as useCallback25, useEffect as
|
|
19910
|
+
import { useCallback as useCallback25, useEffect as useEffect36, useMemo as useMemo12, useState as useState21 } from "react";
|
|
19879
19911
|
import { Fragment as Fragment31, jsx as jsx86, jsxs as jsxs80 } from "react/jsx-runtime";
|
|
19880
19912
|
function ReceiveMenu() {
|
|
19881
19913
|
const session = useSession((st) => st.session);
|
|
@@ -19890,7 +19922,7 @@ function ReceiveMenu() {
|
|
|
19890
19922
|
const [copied, setCopied] = useState21(false);
|
|
19891
19923
|
const [fingerprintCopied, setFingerprintCopied] = useState21(false);
|
|
19892
19924
|
useOnboardingTourAvailable(true);
|
|
19893
|
-
const fingerprint =
|
|
19925
|
+
const fingerprint = useMemo12(() => {
|
|
19894
19926
|
if (!session?.ownerAddress) return null;
|
|
19895
19927
|
try {
|
|
19896
19928
|
return generateFingerprint(session.ownerAddress);
|
|
@@ -19898,7 +19930,7 @@ function ReceiveMenu() {
|
|
|
19898
19930
|
return null;
|
|
19899
19931
|
}
|
|
19900
19932
|
}, [session?.ownerAddress]);
|
|
19901
|
-
|
|
19933
|
+
useEffect36(() => {
|
|
19902
19934
|
if (open && address) {
|
|
19903
19935
|
QRCode.toDataURL(address, {
|
|
19904
19936
|
width: 200,
|
|
@@ -19955,7 +19987,7 @@ function ReceiveMenu() {
|
|
|
19955
19987
|
/* @__PURE__ */ jsx86("span", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: t("passport:common.fingerprint") }),
|
|
19956
19988
|
/* @__PURE__ */ jsx86("span", { className: "font-mono text-sm font-semibold text-[var(--ui-kit-fg)]", children: fingerprint }),
|
|
19957
19989
|
/* @__PURE__ */ jsxs80("div", { className: "relative group", children: [
|
|
19958
|
-
/* @__PURE__ */ jsx86(
|
|
19990
|
+
/* @__PURE__ */ jsx86(Info4, { className: "w-3.5 h-3.5 text-[var(--ui-kit-fg-muted)] cursor-help" }),
|
|
19959
19991
|
/* @__PURE__ */ jsx86("div", { className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 text-xs bg-[var(--ui-kit-bg)] text-[var(--ui-kit-fg)] rounded shadow-lg opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap pointer-events-none z-10", children: "Share this to verify your identity" })
|
|
19960
19992
|
] }),
|
|
19961
19993
|
/* @__PURE__ */ jsx86(
|
|
@@ -20006,18 +20038,21 @@ var init_ReceiveMenu2 = __esm({
|
|
|
20006
20038
|
});
|
|
20007
20039
|
|
|
20008
20040
|
// src/internal/components/SecurityMenu/onboarding.setup.ts
|
|
20009
|
-
var
|
|
20041
|
+
var SECURITY_MENU_TOUR;
|
|
20010
20042
|
var init_onboarding_setup8 = __esm({
|
|
20011
20043
|
"src/internal/components/SecurityMenu/onboarding.setup.ts"() {
|
|
20012
|
-
|
|
20013
|
-
CONNECTED_APPS_TOUR = [
|
|
20044
|
+
SECURITY_MENU_TOUR = [
|
|
20014
20045
|
{
|
|
20015
|
-
elId: "embarkai-security-menu-
|
|
20016
|
-
title: "passport:securityMenu.onboarding.
|
|
20017
|
-
description: "passport:securityMenu.onboarding.
|
|
20018
|
-
}
|
|
20019
|
-
|
|
20020
|
-
|
|
20046
|
+
elId: "embarkai-security-menu-onboarding" /* securityMenu */,
|
|
20047
|
+
title: "passport:securityMenu.onboarding.securityMenu.title",
|
|
20048
|
+
description: "passport:securityMenu.onboarding.securityMenu.description"
|
|
20049
|
+
},
|
|
20050
|
+
/** KEYSHARE */
|
|
20051
|
+
{
|
|
20052
|
+
elId: "embarkai-security-menu-keyshare-onboarding" /* keyshare */,
|
|
20053
|
+
title: "passport:securityMenu.onboarding.keyshare.title",
|
|
20054
|
+
description: "passport:securityMenu.onboarding.keyshare.description"
|
|
20055
|
+
},
|
|
20021
20056
|
{
|
|
20022
20057
|
elId: "embarkai-security-menu-keyshare-onboarding" /* keyshare */,
|
|
20023
20058
|
title: "passport:securityMenu.onboarding.keyshare.details.concept.title",
|
|
@@ -20043,39 +20078,11 @@ var init_onboarding_setup8 = __esm({
|
|
|
20043
20078
|
title: "passport:securityMenu.onboarding.keyshareExistingVaultBkp.title",
|
|
20044
20079
|
description: "passport:securityMenu.onboarding.keyshareExistingVaultBkp.description"
|
|
20045
20080
|
},
|
|
20046
|
-
...CONNECTED_APPS_TOUR
|
|
20047
|
-
];
|
|
20048
|
-
SECURITY_MENU_TOUR = [
|
|
20049
|
-
{
|
|
20050
|
-
elId: "embarkai-security-menu-onboarding" /* securityMenu */,
|
|
20051
|
-
title: "passport:securityMenu.onboarding.securityMenu.title",
|
|
20052
|
-
description: "passport:securityMenu.onboarding.securityMenu.description"
|
|
20053
|
-
},
|
|
20054
|
-
/** KEYSHARE */
|
|
20055
20081
|
{
|
|
20056
|
-
elId: "embarkai-security-menu-
|
|
20057
|
-
title: "passport:securityMenu.onboarding.
|
|
20058
|
-
description: "passport:securityMenu.onboarding.
|
|
20059
|
-
|
|
20060
|
-
{
|
|
20061
|
-
caption: "passport:securityMenu.onboarding.keyshare.detailsButton",
|
|
20062
|
-
onClick: () => {
|
|
20063
|
-
onboarder.endTour();
|
|
20064
|
-
setTimeout(() => onboarder.startTour(KEYSHARE_TOUR), 220);
|
|
20065
|
-
}
|
|
20066
|
-
},
|
|
20067
|
-
{
|
|
20068
|
-
caption: "passport:common.continue",
|
|
20069
|
-
onClick: () => onboarder.next()
|
|
20070
|
-
}
|
|
20071
|
-
]
|
|
20072
|
-
},
|
|
20073
|
-
{
|
|
20074
|
-
elId: "embarkai-security-menu-keyshare-existing-backup-onboarding" /* keyshareExistingVaultBkp */,
|
|
20075
|
-
title: "passport:securityMenu.onboarding.keyshareExistingVaultBkp.title",
|
|
20076
|
-
description: "passport:securityMenu.onboarding.keyshareExistingVaultBkp.description"
|
|
20077
|
-
},
|
|
20078
|
-
...CONNECTED_APPS_TOUR
|
|
20082
|
+
elId: "embarkai-security-menu-connected-apps-onboarding" /* connectedApps */,
|
|
20083
|
+
title: "passport:securityMenu.onboarding.connectedApps.title",
|
|
20084
|
+
description: "passport:securityMenu.onboarding.connectedApps.description"
|
|
20085
|
+
}
|
|
20079
20086
|
];
|
|
20080
20087
|
}
|
|
20081
20088
|
});
|
|
@@ -20136,7 +20143,7 @@ var init_useConnectedApps = __esm({
|
|
|
20136
20143
|
// src/internal/components/SecurityMenu/ConnectedApps/ConnectedApps.tsx
|
|
20137
20144
|
import dayjs5 from "dayjs";
|
|
20138
20145
|
import { AppWindowMac, ExternalLinkIcon as ExternalLinkIcon2, InfoIcon as InfoIcon4, LoaderIcon as LoaderIcon10, ShieldBanIcon, ShieldCheckIcon } from "lucide-react";
|
|
20139
|
-
import { useEffect as
|
|
20146
|
+
import { useEffect as useEffect37 } from "react";
|
|
20140
20147
|
import { Fragment as Fragment32, jsx as jsx87, jsxs as jsxs81 } from "react/jsx-runtime";
|
|
20141
20148
|
function Application(props) {
|
|
20142
20149
|
const {
|
|
@@ -20236,7 +20243,7 @@ function Application(props) {
|
|
|
20236
20243
|
function ConnectedApps() {
|
|
20237
20244
|
const { t } = useT();
|
|
20238
20245
|
const { data: connectedApps = [], isLoading: isConnectedAppsLoading } = useConnectedApps();
|
|
20239
|
-
|
|
20246
|
+
useEffect37(() => {
|
|
20240
20247
|
if (!connectedApps.length || isConnectedAppsLoading) return;
|
|
20241
20248
|
useSecurityStore.getState().setRenderKey(`connected-apps-loaded-${Date.now()}`);
|
|
20242
20249
|
}, [connectedApps, isConnectedAppsLoading]);
|
|
@@ -20527,14 +20534,14 @@ var init_useKeyshareRecoveryStats = __esm({
|
|
|
20527
20534
|
|
|
20528
20535
|
// src/internal/components/SecurityMenu/Keyshare/Keyshare.tsx
|
|
20529
20536
|
import { Cloud as Cloud3, DatabaseBackupIcon, Laptop, LoaderIcon as LoaderIcon11, Server as Server2 } from "lucide-react";
|
|
20530
|
-
import { useEffect as
|
|
20537
|
+
import { useEffect as useEffect38 } from "react";
|
|
20531
20538
|
import { Fragment as Fragment34, jsx as jsx91, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
20532
20539
|
function Keyshare() {
|
|
20533
20540
|
const userId = useSession((st) => st?.session?.mpcUserId);
|
|
20534
20541
|
const { t } = useT();
|
|
20535
20542
|
const serverHasKeyshare = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
20536
20543
|
const { data: recoveryData, isLoading: isRecoveryLoading } = useKeyshareRecoveryStats();
|
|
20537
|
-
|
|
20544
|
+
useEffect38(() => {
|
|
20538
20545
|
if (!recoveryData?.keyshareInfo || isRecoveryLoading) return;
|
|
20539
20546
|
useSecurityStore.getState().setRenderKey(`keyshare-loaded-${Date.now()}`);
|
|
20540
20547
|
}, [recoveryData, isRecoveryLoading]);
|
|
@@ -20970,7 +20977,7 @@ var init_useBridgeStore = __esm({
|
|
|
20970
20977
|
// src/internal/components/SendMenu/hyperbridge/components/SenderSelector.tsx
|
|
20971
20978
|
import { useConnectModal } from "@rainbow-me/rainbowkit";
|
|
20972
20979
|
import { useMutation as useMutation19 } from "@tanstack/react-query";
|
|
20973
|
-
import { useEffect as
|
|
20980
|
+
import { useEffect as useEffect39, useRef as useRef16, useState as useState22 } from "react";
|
|
20974
20981
|
import { useSignMessage } from "wagmi";
|
|
20975
20982
|
import { jsx as jsx93, jsxs as jsxs87 } from "react/jsx-runtime";
|
|
20976
20983
|
function SenderSelector(props) {
|
|
@@ -20986,7 +20993,7 @@ function SenderSelector(props) {
|
|
|
20986
20993
|
const bridgeSender = useBridgeStore((st) => st.bridgeSender);
|
|
20987
20994
|
const bridgeSenders = useBridgeStore((st) => st.bridgeSenders);
|
|
20988
20995
|
const [walletMessage, setWalletMessage] = useState22(null);
|
|
20989
|
-
|
|
20996
|
+
useEffect39(() => {
|
|
20990
20997
|
useFlowSelectorStore.getState().setRenderKey(`sender-selected-${Date.now()}`);
|
|
20991
20998
|
}, [walletMessage]);
|
|
20992
20999
|
const { mutate: loginDirectWallet, isPending: isDirectWalletLoggingIn } = useMutation19({
|
|
@@ -21042,7 +21049,7 @@ function SenderSelector(props) {
|
|
|
21042
21049
|
setWalletMessage(error instanceof Error ? error.message : "Wallet login failed. Please try again.");
|
|
21043
21050
|
}
|
|
21044
21051
|
});
|
|
21045
|
-
|
|
21052
|
+
useEffect39(() => {
|
|
21046
21053
|
const pendingProfile = pendingWalletRef.current;
|
|
21047
21054
|
if (!pendingProfile || !directWalletIsConnected || !directWalletAddress) return;
|
|
21048
21055
|
if (directWalletAddress.toLowerCase() !== pendingProfile.externalId?.toLowerCase()) return;
|
|
@@ -21231,12 +21238,12 @@ var init_wallets = __esm({
|
|
|
21231
21238
|
});
|
|
21232
21239
|
|
|
21233
21240
|
// src/internal/components/SendMenu/hyperbridge/hooks/useAvailableSenders.ts
|
|
21234
|
-
import { useEffect as
|
|
21241
|
+
import { useEffect as useEffect40, useRef as useRef17 } from "react";
|
|
21235
21242
|
function useAvailableSenders() {
|
|
21236
21243
|
const address = useSession((st) => st.address);
|
|
21237
21244
|
const { profiles } = useLinkedProfiles();
|
|
21238
21245
|
const lastCalcedSenders = useRef17([]);
|
|
21239
|
-
|
|
21246
|
+
useEffect40(() => {
|
|
21240
21247
|
const sendersAccumulator = [
|
|
21241
21248
|
{
|
|
21242
21249
|
type: "embarkai-wallet",
|
|
@@ -21589,9 +21596,10 @@ function getAssetBalance(asset) {
|
|
|
21589
21596
|
return Number(formatUnits7(BigInt(asset.balance || "0"), asset.decimals || 18));
|
|
21590
21597
|
}
|
|
21591
21598
|
function isOririnChainEmbarkSupported(originChain) {
|
|
21592
|
-
const
|
|
21593
|
-
|
|
21594
|
-
|
|
21599
|
+
const originChainID = CHAINS_UI_META[originChain]?.chainID;
|
|
21600
|
+
if (!originChainID) return false;
|
|
21601
|
+
const supportedChainIDS = [...SUPPORTED_CHAINS2].map(([chainId]) => chainId);
|
|
21602
|
+
return supportedChainIDS.includes(originChainID) && useSession.getState().activeChainId === originChainID;
|
|
21595
21603
|
}
|
|
21596
21604
|
var init_utils9 = __esm({
|
|
21597
21605
|
"src/internal/components/SendMenu/hyperbridge/utils.ts"() {
|
|
@@ -21603,7 +21611,7 @@ var init_utils9 = __esm({
|
|
|
21603
21611
|
// src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneHistory.ts
|
|
21604
21612
|
import { useInfiniteQuery as useInfiniteQuery3 } from "@tanstack/react-query";
|
|
21605
21613
|
import { debounce as debounce7 } from "lodash-es";
|
|
21606
|
-
import { useCallback as useCallback26, useEffect as
|
|
21614
|
+
import { useCallback as useCallback26, useEffect as useEffect41, useMemo as useMemo13 } from "react";
|
|
21607
21615
|
function useHyperlaneHistory() {
|
|
21608
21616
|
const address = useSession((st) => st.address);
|
|
21609
21617
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -21619,7 +21627,7 @@ function useHyperlaneHistory() {
|
|
|
21619
21627
|
queryFn: async ({ pageParam }) => await getHyperlaneBridgeHistory({ page: pageParam, pageSize: TX_HISTORY_PAGE_SIZE })
|
|
21620
21628
|
});
|
|
21621
21629
|
const { data: txHistoryData, isLoading: isBridgeTxHistoryLoading } = query;
|
|
21622
|
-
const txList =
|
|
21630
|
+
const txList = useMemo13(
|
|
21623
21631
|
() => txHistoryData?.pages?.map((p) => p.data).flat(Infinity) || [],
|
|
21624
21632
|
[txHistoryData]
|
|
21625
21633
|
);
|
|
@@ -21629,7 +21637,7 @@ function useHyperlaneHistory() {
|
|
|
21629
21637
|
}, 250),
|
|
21630
21638
|
[]
|
|
21631
21639
|
);
|
|
21632
|
-
|
|
21640
|
+
useEffect41(() => {
|
|
21633
21641
|
if (isBridgeTxHistoryLoading || txList.length === 0) return;
|
|
21634
21642
|
updateExpandable();
|
|
21635
21643
|
}, [isBridgeTxHistoryLoading, txList]);
|
|
@@ -21869,7 +21877,7 @@ var init_useBridge = __esm({
|
|
|
21869
21877
|
|
|
21870
21878
|
// src/internal/components/SendMenu/hyperbridge/hooks/useHyperlaneRoutes.ts
|
|
21871
21879
|
import { useQuery as useQuery20 } from "@tanstack/react-query";
|
|
21872
|
-
import { useEffect as
|
|
21880
|
+
import { useEffect as useEffect42 } from "react";
|
|
21873
21881
|
function useHyperlaneRoutes() {
|
|
21874
21882
|
const address = useSession((st) => st.address);
|
|
21875
21883
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -21883,13 +21891,9 @@ function useHyperlaneRoutes() {
|
|
|
21883
21891
|
retry: false,
|
|
21884
21892
|
enabled: !!address && page === "send" /* SEND */ && flow === "bridge",
|
|
21885
21893
|
queryKey: [HYPERLANE_WARP_ROUTES_QUERY_KEY, address],
|
|
21886
|
-
queryFn: async () =>
|
|
21887
|
-
const warpRoutes = await getHyperlaneWarpRoutes();
|
|
21888
|
-
useFlowSelectorStore.getState().setRenderKey(`hyperlane-bridge-warp-routes-loaded-${Date.now()}`);
|
|
21889
|
-
return warpRoutes;
|
|
21890
|
-
}
|
|
21894
|
+
queryFn: async () => await getHyperlaneWarpRoutes()
|
|
21891
21895
|
});
|
|
21892
|
-
|
|
21896
|
+
useEffect42(() => {
|
|
21893
21897
|
if (!errorWarpRoutes) return;
|
|
21894
21898
|
useFlowSelectorStore.getState().setError(errorWarpRoutes.message);
|
|
21895
21899
|
const { resetSelections, setRecipient, setOriginChain, setDestinationChain } = useBridgeStore.getState();
|
|
@@ -21898,22 +21902,32 @@ function useHyperlaneRoutes() {
|
|
|
21898
21902
|
setOriginChain(null);
|
|
21899
21903
|
setDestinationChain(null);
|
|
21900
21904
|
}, [errorWarpRoutes]);
|
|
21901
|
-
|
|
21905
|
+
useEffect42(() => {
|
|
21902
21906
|
if (!!hyperRoute || !hyperlaneWarpRoutes.length) return;
|
|
21903
|
-
|
|
21904
|
-
if (!
|
|
21907
|
+
let targetHyperRouteToSelect = hyperlaneWarpRoutes.find((route) => route.routeId === hyperRoute);
|
|
21908
|
+
if (!targetHyperRouteToSelect) {
|
|
21909
|
+
targetHyperRouteToSelect = hyperlaneWarpRoutes.find(
|
|
21910
|
+
(el) => el.symbol === (useSession.getState().chainConfig?.nativeCurrency?.symbol || "USDT")
|
|
21911
|
+
);
|
|
21912
|
+
}
|
|
21913
|
+
if (!targetHyperRouteToSelect) {
|
|
21914
|
+
useFlowSelectorStore.getState().setRenderKey(`no-hyperlane-bridge-warp-routes-loaded-${Date.now()}`);
|
|
21915
|
+
return;
|
|
21916
|
+
}
|
|
21905
21917
|
let originChainIndex = 0;
|
|
21906
21918
|
let destinationChainIndex = 1;
|
|
21907
|
-
|
|
21908
|
-
|
|
21919
|
+
const { bridgeSender, setOriginChain, setDestinationChain, setHyperRoute } = useBridgeStore.getState();
|
|
21920
|
+
if (bridgeSender === "embarkai-wallet") {
|
|
21921
|
+
const foundIdx = targetHyperRouteToSelect.chainPair?.findIndex((chain) => isOririnChainEmbarkSupported(chain.chainName)) || -1;
|
|
21909
21922
|
if (foundIdx !== -1) {
|
|
21910
21923
|
originChainIndex = foundIdx;
|
|
21911
21924
|
destinationChainIndex = foundIdx === 0 ? 1 : 0;
|
|
21912
21925
|
}
|
|
21913
21926
|
}
|
|
21914
|
-
|
|
21915
|
-
|
|
21916
|
-
|
|
21927
|
+
setOriginChain(targetHyperRouteToSelect.chainPair[originChainIndex].chainName);
|
|
21928
|
+
setDestinationChain(targetHyperRouteToSelect.chainPair[destinationChainIndex].chainName);
|
|
21929
|
+
setHyperRoute(targetHyperRouteToSelect.routeId);
|
|
21930
|
+
useFlowSelectorStore.getState().setRenderKey(`hyperlane-bridge-warp-routes-loaded-${Date.now()}`);
|
|
21917
21931
|
}, [hyperRoute, hyperlaneWarpRoutes]);
|
|
21918
21932
|
return { hyperlaneWarpRoutes, isLoadingWarpRoutes };
|
|
21919
21933
|
}
|
|
@@ -21931,13 +21945,13 @@ var init_useHyperlaneRoutes = __esm({
|
|
|
21931
21945
|
});
|
|
21932
21946
|
|
|
21933
21947
|
// src/internal/components/SendMenu/hyperbridge/hooks/useMenuTitle.ts
|
|
21934
|
-
import { useEffect as
|
|
21948
|
+
import { useEffect as useEffect43 } from "react";
|
|
21935
21949
|
function useMenuTitle(warpRoutes) {
|
|
21936
21950
|
const { t } = useT();
|
|
21937
21951
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
21938
21952
|
const hyperRoute = useBridgeStore((st) => st.hyperRoute);
|
|
21939
21953
|
const hyperRouteMeta = warpRoutes?.length ? warpRoutes.find((route) => route.routeId === hyperRoute) : null;
|
|
21940
|
-
|
|
21954
|
+
useEffect43(() => {
|
|
21941
21955
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
21942
21956
|
switch (true) {
|
|
21943
21957
|
case bridgeStep === "sender-selector":
|
|
@@ -22138,7 +22152,7 @@ var init_ResolveChainIcon = __esm({
|
|
|
22138
22152
|
// src/internal/components/SendMenu/hyperbridge/hooks/useBridgeBalance.ts
|
|
22139
22153
|
import { CHAINS_BROWSERS_TRANSPORTS as CHAINS_BROWSERS_TRANSPORTS2 } from "@embarkai/core";
|
|
22140
22154
|
import { useQuery as useQuery21, useQueryClient as useQueryClient23 } from "@tanstack/react-query";
|
|
22141
|
-
import { useCallback as useCallback28, useEffect as
|
|
22155
|
+
import { useCallback as useCallback28, useEffect as useEffect44 } from "react";
|
|
22142
22156
|
import { createPublicClient as createPublicClient2, erc20Abi as erc20Abi3, formatUnits as formatUnits8, http as http3 } from "viem";
|
|
22143
22157
|
import { useSwitchChain as useSwitchChain2 } from "wagmi";
|
|
22144
22158
|
function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
@@ -22244,7 +22258,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
22244
22258
|
},
|
|
22245
22259
|
[refreshBalances, qc]
|
|
22246
22260
|
);
|
|
22247
|
-
|
|
22261
|
+
useEffect44(() => {
|
|
22248
22262
|
if (!bridgeSender || !originChain) return;
|
|
22249
22263
|
switch (bridgeSender) {
|
|
22250
22264
|
case "embarkai-wallet":
|
|
@@ -22268,7 +22282,7 @@ function useBridgeBalance(hyperlaneWarpRoutes) {
|
|
|
22268
22282
|
break;
|
|
22269
22283
|
}
|
|
22270
22284
|
}, [bridgeSender, originChain, directWalletChainId, switchChainAsync]);
|
|
22271
|
-
const embarkBalance = CHAINS_UI_META[originChain]
|
|
22285
|
+
const embarkBalance = !!embarkTokenBalanace && CHAINS_UI_META[originChain]?.chainID === activeChainId ? getAssetBalance(embarkTokenBalanace) : 0;
|
|
22272
22286
|
const externalWalletBalance = isSelectedTokenNative ? formatUnits8(externalNativeBalanceData?.value || BigInt(0), externalNativeBalanceData?.decimals || 18) : formatUnits8(externalBalanceData?.value || BigInt(0), externalBalanceData?.decimals || 18);
|
|
22273
22287
|
return {
|
|
22274
22288
|
routeTokenBalance: isEmbarkSender ? embarkBalance : externalWalletBalance,
|
|
@@ -22293,7 +22307,7 @@ var init_useBridgeBalance = __esm({
|
|
|
22293
22307
|
});
|
|
22294
22308
|
|
|
22295
22309
|
// src/internal/components/SendMenu/hyperbridge/steps/SelectStep.tsx
|
|
22296
|
-
import { ArrowLeftRightIcon, ArrowRightLeftIcon, LoaderIcon as LoaderIcon12, Wallet2Icon as Wallet2Icon2, XIcon } from "lucide-react";
|
|
22310
|
+
import { ArrowLeftRightIcon, ArrowRightLeftIcon, LoaderIcon as LoaderIcon12, Wallet2Icon as Wallet2Icon2, XIcon as XIcon2 } from "lucide-react";
|
|
22297
22311
|
import { Fragment as Fragment36 } from "react";
|
|
22298
22312
|
import { Fragment as Fragment37, jsx as jsx97, jsxs as jsxs90 } from "react/jsx-runtime";
|
|
22299
22313
|
function SelectStep(props) {
|
|
@@ -22522,7 +22536,7 @@ function SelectStep(props) {
|
|
|
22522
22536
|
e.stopPropagation();
|
|
22523
22537
|
useBridgeStore.getState().setRecipient(null);
|
|
22524
22538
|
},
|
|
22525
|
-
children: /* @__PURE__ */ jsx97(
|
|
22539
|
+
children: /* @__PURE__ */ jsx97(XIcon2, { className: "w-4 h-4" })
|
|
22526
22540
|
}
|
|
22527
22541
|
)
|
|
22528
22542
|
}
|
|
@@ -22568,7 +22582,7 @@ var init_SelectStep = __esm({
|
|
|
22568
22582
|
|
|
22569
22583
|
// src/internal/components/ui/checkbox.tsx
|
|
22570
22584
|
import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
|
|
22571
|
-
import { CheckIcon as
|
|
22585
|
+
import { CheckIcon as CheckIcon2 } from "lucide-react";
|
|
22572
22586
|
import { jsx as jsx98 } from "react/jsx-runtime";
|
|
22573
22587
|
function Checkbox({ className, ...props }) {
|
|
22574
22588
|
return /* @__PURE__ */ jsx98(
|
|
@@ -22586,7 +22600,7 @@ function Checkbox({ className, ...props }) {
|
|
|
22586
22600
|
className
|
|
22587
22601
|
),
|
|
22588
22602
|
...props,
|
|
22589
|
-
children: /* @__PURE__ */ jsx98(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "grid place-content-center transition-none", children: /* @__PURE__ */ jsx98(
|
|
22603
|
+
children: /* @__PURE__ */ jsx98(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "grid place-content-center transition-none", children: /* @__PURE__ */ jsx98(CheckIcon2, { className: "w-4 h-4 text-[var(--ui-kit-fg)]" }) })
|
|
22590
22604
|
}
|
|
22591
22605
|
);
|
|
22592
22606
|
}
|
|
@@ -23095,13 +23109,13 @@ var init_HistoryStep = __esm({
|
|
|
23095
23109
|
|
|
23096
23110
|
// src/internal/components/SendMenu/hyperbridge/steps/SelectAssetRoute.tsx
|
|
23097
23111
|
import { ArrowLeftRightIcon as ArrowLeftRightIcon2 } from "lucide-react";
|
|
23098
|
-
import { useMemo as
|
|
23112
|
+
import { useMemo as useMemo14 } from "react";
|
|
23099
23113
|
import { jsx as jsx102, jsxs as jsxs94 } from "react/jsx-runtime";
|
|
23100
23114
|
function SelectAssetRoute(props) {
|
|
23101
23115
|
const { hyperlaneWarpRoutes } = props;
|
|
23102
23116
|
const { t } = useT();
|
|
23103
23117
|
const selectedAssetSymbol = useBridgeStore((st) => st.bridgeAssetSymbol);
|
|
23104
|
-
const tokenList =
|
|
23118
|
+
const tokenList = useMemo14(() => {
|
|
23105
23119
|
const tokens = hyperlaneWarpRoutes.map((route) => route.symbol);
|
|
23106
23120
|
const uniqueTokens = Array.from(new Set(tokens));
|
|
23107
23121
|
return uniqueTokens.map((symbol) => ({
|
|
@@ -23205,7 +23219,7 @@ var init_steps = __esm({
|
|
|
23205
23219
|
});
|
|
23206
23220
|
|
|
23207
23221
|
// src/internal/components/SendMenu/hyperbridge/HyperlaneBridge.tsx
|
|
23208
|
-
import { useEffect as
|
|
23222
|
+
import { useEffect as useEffect45 } from "react";
|
|
23209
23223
|
import { jsx as jsx103, jsxs as jsxs95 } from "react/jsx-runtime";
|
|
23210
23224
|
function HyperlaneBridge() {
|
|
23211
23225
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
@@ -23213,7 +23227,7 @@ function HyperlaneBridge() {
|
|
|
23213
23227
|
const { hyperlaneWarpRoutes, isLoadingWarpRoutes } = useHyperlaneRoutes();
|
|
23214
23228
|
const { directWalletProfile } = useAvailableSenders();
|
|
23215
23229
|
useMenuTitle(hyperlaneWarpRoutes);
|
|
23216
|
-
|
|
23230
|
+
useEffect45(() => {
|
|
23217
23231
|
return () => {
|
|
23218
23232
|
useBridgeStore.getState().resetSelections();
|
|
23219
23233
|
};
|
|
@@ -23368,7 +23382,7 @@ var init_useErc3643Compliance = __esm({
|
|
|
23368
23382
|
|
|
23369
23383
|
// src/hooks/useNicknameResolve.ts
|
|
23370
23384
|
import { useQuery as useQuery22 } from "@tanstack/react-query";
|
|
23371
|
-
import { useEffect as
|
|
23385
|
+
import { useEffect as useEffect46, useMemo as useMemo15, useState as useState24 } from "react";
|
|
23372
23386
|
function looksLikeNickname(input) {
|
|
23373
23387
|
if (!input) return false;
|
|
23374
23388
|
if (input.startsWith("0x")) return false;
|
|
@@ -23382,7 +23396,7 @@ function useNicknameResolve(input, options) {
|
|
|
23382
23396
|
const [isDebouncing, setIsDebouncing] = useState24(false);
|
|
23383
23397
|
const normalized = normalizeNickname(input);
|
|
23384
23398
|
const isNicknameInput = looksLikeNickname(input) && normalized.length >= 3;
|
|
23385
|
-
|
|
23399
|
+
useEffect46(() => {
|
|
23386
23400
|
if (!isNicknameInput || !enabled) {
|
|
23387
23401
|
setDebouncedInput("");
|
|
23388
23402
|
setIsDebouncing(false);
|
|
@@ -23408,7 +23422,7 @@ function useNicknameResolve(input, options) {
|
|
|
23408
23422
|
const isNotFound = query.isError && query.error?.code === "NICKNAME_NOT_FOUND";
|
|
23409
23423
|
const isWalletNotSetup = !!query.data && query.data.resolvedTarget === null;
|
|
23410
23424
|
const isFrozen = query.data?.isFrozen ?? false;
|
|
23411
|
-
const fingerprintVerification =
|
|
23425
|
+
const fingerprintVerification = useMemo15(() => {
|
|
23412
23426
|
if (!query.data?.owner || !query.data?.fingerprint) {
|
|
23413
23427
|
return null;
|
|
23414
23428
|
}
|
|
@@ -23842,7 +23856,7 @@ var init_AssetList = __esm({
|
|
|
23842
23856
|
|
|
23843
23857
|
// src/internal/components/SendMenu/send/components/NicknameData.tsx
|
|
23844
23858
|
import { AtSign, CheckCircle2 as CheckCircle24, ShieldAlert, ShieldCheck as ShieldCheck2 } from "lucide-react";
|
|
23845
|
-
import { useEffect as
|
|
23859
|
+
import { useEffect as useEffect47 } from "react";
|
|
23846
23860
|
import { jsx as jsx108, jsxs as jsxs99 } from "react/jsx-runtime";
|
|
23847
23861
|
function NicknameData(props) {
|
|
23848
23862
|
const { resolvedNicknameData, isNicknameInput } = props;
|
|
@@ -23855,11 +23869,11 @@ function NicknameData(props) {
|
|
|
23855
23869
|
isWalletNotSetup,
|
|
23856
23870
|
isFrozen
|
|
23857
23871
|
} = resolvedNicknameData;
|
|
23858
|
-
|
|
23872
|
+
useEffect47(() => {
|
|
23859
23873
|
if (!resolvedNicknameData?.data?.fingerprint || !isNicknameInput) return;
|
|
23860
23874
|
useFlowSelectorStore.getState().setRenderKey(`nickname-resolved-${Date.now()}`);
|
|
23861
23875
|
}, [resolvedNicknameData, isNicknameInput]);
|
|
23862
|
-
|
|
23876
|
+
useEffect47(() => {
|
|
23863
23877
|
if (isResolving) return;
|
|
23864
23878
|
let errMessage = null;
|
|
23865
23879
|
switch (true) {
|
|
@@ -24429,7 +24443,7 @@ var init_sendSteps = __esm({
|
|
|
24429
24443
|
|
|
24430
24444
|
// src/internal/components/SendMenu/send/SendMenu.tsx
|
|
24431
24445
|
import { CheckCircle2 as CheckCircle26, Loader as Loader27 } from "lucide-react";
|
|
24432
|
-
import { useEffect as
|
|
24446
|
+
import { useEffect as useEffect48, useMemo as useMemo16 } from "react";
|
|
24433
24447
|
import { parseUnits as parseUnits2 } from "viem";
|
|
24434
24448
|
import { Fragment as Fragment41, jsx as jsx111, jsxs as jsxs102 } from "react/jsx-runtime";
|
|
24435
24449
|
function SendMenu() {
|
|
@@ -24450,16 +24464,16 @@ function SendMenu() {
|
|
|
24450
24464
|
userOpHash,
|
|
24451
24465
|
reset
|
|
24452
24466
|
} = useSendTransaction();
|
|
24453
|
-
|
|
24467
|
+
useEffect48(() => {
|
|
24454
24468
|
useFlowSelectorStore.getState().setIsUiLocked(isAssetsLoading || isTransactionPending);
|
|
24455
24469
|
}, [isAssetsLoading, isTransactionPending]);
|
|
24456
|
-
|
|
24470
|
+
useEffect48(() => {
|
|
24457
24471
|
useFlowSelectorStore.getState().setError(sendTransactionError || null);
|
|
24458
24472
|
}, [sendTransactionError]);
|
|
24459
24473
|
const { txStep, recipient, amount, selectedAsset, setSelectedAsset } = useSendStore();
|
|
24460
24474
|
const isNft = isNftAsset3(selectedAsset);
|
|
24461
24475
|
const isSecurity = isSecurityToken2(selectedAsset);
|
|
24462
|
-
|
|
24476
|
+
useEffect48(() => {
|
|
24463
24477
|
const shouldDefaultAsset = assets.length > 0 && !selectedAsset;
|
|
24464
24478
|
if (!shouldDefaultAsset) return;
|
|
24465
24479
|
const chainNativeCurrency = useSession.getState().chainConfig?.nativeCurrency;
|
|
@@ -24469,7 +24483,7 @@ function SendMenu() {
|
|
|
24469
24483
|
if (isBalance(erc20)) return setSelectedAsset(erc20);
|
|
24470
24484
|
setSelectedAsset(assets[0]);
|
|
24471
24485
|
}, [assets, selectedAsset]);
|
|
24472
|
-
|
|
24486
|
+
useEffect48(
|
|
24473
24487
|
() => () => {
|
|
24474
24488
|
useSendStore.getState().reset();
|
|
24475
24489
|
reset();
|
|
@@ -24479,7 +24493,7 @@ function SendMenu() {
|
|
|
24479
24493
|
const isNicknameInput = looksLikeNickname(recipient);
|
|
24480
24494
|
const resolvedNicknameData = useNicknameResolve(recipient, { enabled: isNicknameInput, chainId: activeChainId });
|
|
24481
24495
|
const effectiveAddress = isNicknameInput ? resolvedNicknameData?.resolvedAddress : recipient;
|
|
24482
|
-
const complianceAmount =
|
|
24496
|
+
const complianceAmount = useMemo16(() => {
|
|
24483
24497
|
if (!isSecurity || !amount || !selectedAsset) return void 0;
|
|
24484
24498
|
try {
|
|
24485
24499
|
return parseUnits2(amount, selectedAsset.decimals || 18);
|
|
@@ -24494,7 +24508,7 @@ function SendMenu() {
|
|
|
24494
24508
|
enabled: isSecurity && !!effectiveAddress && !!complianceAmount,
|
|
24495
24509
|
chainId: activeChainId
|
|
24496
24510
|
});
|
|
24497
|
-
|
|
24511
|
+
useEffect48(() => {
|
|
24498
24512
|
const updateMenuTitle = useFlowSelectorStore.getState().setMenuTitle;
|
|
24499
24513
|
switch (true) {
|
|
24500
24514
|
case txStep === "select-asset":
|
|
@@ -24593,9 +24607,9 @@ var init_send = __esm({
|
|
|
24593
24607
|
|
|
24594
24608
|
// src/internal/components/SendMenu/useSendMenuParams.ts
|
|
24595
24609
|
import { keys as keys2 } from "lodash-es";
|
|
24596
|
-
import { useEffect as
|
|
24610
|
+
import { useEffect as useEffect49 } from "react";
|
|
24597
24611
|
function useSendMenuParams() {
|
|
24598
|
-
|
|
24612
|
+
useEffect49(() => {
|
|
24599
24613
|
const { pageParams, setPageParams } = useLayoutDataStore.getState();
|
|
24600
24614
|
if (!pageParams || !keys2(pageParams).length) return;
|
|
24601
24615
|
console.log("[SEND PARAMS]", pageParams);
|
|
@@ -24643,7 +24657,7 @@ var init_useSendMenuParams = __esm({
|
|
|
24643
24657
|
|
|
24644
24658
|
// src/internal/components/SendMenu/SendFlowSelector.tsx
|
|
24645
24659
|
import { ArrowLeft as ArrowLeft19, ArrowRightIcon as ArrowRightIcon2, ArrowRightLeftIcon as ArrowRightLeftIcon2, InfoIcon as InfoIcon6 } from "lucide-react";
|
|
24646
|
-
import { useEffect as
|
|
24660
|
+
import { useEffect as useEffect50 } from "react";
|
|
24647
24661
|
import { jsx as jsx112, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
24648
24662
|
function SelectorFlowButtons() {
|
|
24649
24663
|
const { t } = useT();
|
|
@@ -24706,7 +24720,7 @@ function SendFlowSelector() {
|
|
|
24706
24720
|
const sendStep = useSendStore((st) => st.txStep);
|
|
24707
24721
|
const bridgeStep = useBridgeStore((st) => st.bridgeStep);
|
|
24708
24722
|
useOnboardingTourAvailable(sendStep === "input" && bridgeStep === "select");
|
|
24709
|
-
|
|
24723
|
+
useEffect50(
|
|
24710
24724
|
() => () => {
|
|
24711
24725
|
useFlowSelectorStore.getState().setError(null);
|
|
24712
24726
|
},
|
|
@@ -24902,7 +24916,7 @@ var init_onboarding_setup10 = __esm({
|
|
|
24902
24916
|
// src/internal/components/SettingsMenu/SettingsMenu.tsx
|
|
24903
24917
|
import { useQuery as useQuery24 } from "@tanstack/react-query";
|
|
24904
24918
|
import { ArrowLeft as ArrowLeft20, HardDrive as HardDrive3 } from "lucide-react";
|
|
24905
|
-
import { useEffect as
|
|
24919
|
+
import { useEffect as useEffect51 } from "react";
|
|
24906
24920
|
import { jsx as jsx113, jsxs as jsxs104 } from "react/jsx-runtime";
|
|
24907
24921
|
function useSettingsButtons() {
|
|
24908
24922
|
const config = useProviderConfig().config;
|
|
@@ -24921,7 +24935,7 @@ function useSettingsButtons() {
|
|
|
24921
24935
|
if (proMode) {
|
|
24922
24936
|
settingsButtons.push({ id: "devices" /* DEVICES */, name: "passport:guardiansMenu.title", Icon: HardDrive3 });
|
|
24923
24937
|
}
|
|
24924
|
-
|
|
24938
|
+
useEffect51(() => {
|
|
24925
24939
|
const cssvEl = document.querySelector(".embarkai-ui-scope");
|
|
24926
24940
|
if (!cssvEl || !window?.getComputedStyle) {
|
|
24927
24941
|
return;
|
|
@@ -26144,7 +26158,7 @@ var init_PageMap = __esm({
|
|
|
26144
26158
|
});
|
|
26145
26159
|
|
|
26146
26160
|
// src/internal/hooks/usePageMapper.tsx
|
|
26147
|
-
import { useCallback as useCallback31, useEffect as
|
|
26161
|
+
import { useCallback as useCallback31, useEffect as useEffect52 } from "react";
|
|
26148
26162
|
import { jsx as jsx117 } from "react/jsx-runtime";
|
|
26149
26163
|
function usePageMapper() {
|
|
26150
26164
|
const page = useLayoutDataStore((st) => st.page);
|
|
@@ -26177,7 +26191,7 @@ function usePageMapper() {
|
|
|
26177
26191
|
},
|
|
26178
26192
|
[setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
|
|
26179
26193
|
);
|
|
26180
|
-
|
|
26194
|
+
useEffect52(() => {
|
|
26181
26195
|
if (page === null) return closeDialog();
|
|
26182
26196
|
const pageItem = PAGE_MAP[page];
|
|
26183
26197
|
if (!pageItem) {
|
|
@@ -26200,20 +26214,20 @@ var init_usePageMapper = __esm({
|
|
|
26200
26214
|
});
|
|
26201
26215
|
|
|
26202
26216
|
// src/internal/hooks/useSettingsNotifications.ts
|
|
26203
|
-
import { useEffect as
|
|
26217
|
+
import { useEffect as useEffect53 } from "react";
|
|
26204
26218
|
function useSettingsNotifications() {
|
|
26205
26219
|
const setSettingsNotifications = useLayoutDataStore((st) => st.setSettingsNotifications);
|
|
26206
26220
|
const providers = jwtTokenManager2.getProviders();
|
|
26207
26221
|
const hasEmail = providers.includes("email");
|
|
26208
26222
|
const { data: userProfile = null } = useUserProfile();
|
|
26209
|
-
|
|
26223
|
+
useEffect53(() => {
|
|
26210
26224
|
const isKYCVerified = userProfile?.kycDetails?.kycStatus === "verified";
|
|
26211
26225
|
setSettingsNotifications({
|
|
26212
26226
|
...COMPLETE_KYC_PROGRESS,
|
|
26213
26227
|
status: isKYCVerified ? "resolved" : "active"
|
|
26214
26228
|
});
|
|
26215
26229
|
}, [userProfile, setSettingsNotifications]);
|
|
26216
|
-
|
|
26230
|
+
useEffect53(() => {
|
|
26217
26231
|
setSettingsNotifications({
|
|
26218
26232
|
...EMAIL_NOT_CONNECTED_NOTIFICATION,
|
|
26219
26233
|
status: hasEmail ? "resolved" : "active"
|
|
@@ -26245,7 +26259,7 @@ var init_package = __esm({
|
|
|
26245
26259
|
"package.json"() {
|
|
26246
26260
|
package_default = {
|
|
26247
26261
|
name: "@embarkai/ui-kit",
|
|
26248
|
-
version: "0.4.
|
|
26262
|
+
version: "0.4.78",
|
|
26249
26263
|
description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
|
|
26250
26264
|
type: "module",
|
|
26251
26265
|
main: "./dist/index.cjs",
|
|
@@ -26556,7 +26570,7 @@ var init_onborading_setup = __esm({
|
|
|
26556
26570
|
},
|
|
26557
26571
|
["receive" /* RECEIVE */]: () => RECEIVE_MENU_TOUR,
|
|
26558
26572
|
["security" /* SECURITY */]: () => SECURITY_MENU_TOUR,
|
|
26559
|
-
["keysare-backup" /* KEYSARE_BACKUP */]: () => KEYSHARE_BACKUP_MENU_TOUR,
|
|
26573
|
+
["keysare-backup" /* KEYSARE_BACKUP */]: ({ config }) => config?.passkey?.enabled ? KEYSHARE_BACKUP_MENU_TOUR : KEYSHARE_BACKUP_MENU_TOUR_NO_PASSKEY,
|
|
26560
26574
|
["transactions" /* TRANSACTIONS */]: () => TRANSACTIONS_MENU_TOUR,
|
|
26561
26575
|
["nickname-settings" /* NICKNAME_SETTINGS */]: () => NICKNAME_MENU_TOUR,
|
|
26562
26576
|
["manage-wallet" /* MANAGE_WALLET */]: () => MANAGE_WALLET_MENU_TOUR,
|
|
@@ -26679,7 +26693,7 @@ function Header() {
|
|
|
26679
26693
|
size: "small",
|
|
26680
26694
|
variant: "ghost",
|
|
26681
26695
|
className: "text-[10px] px-2",
|
|
26682
|
-
onClick: () => onboarder.startTour(ONBOARDING_TOURS[embarkPage]()),
|
|
26696
|
+
onClick: () => onboarder.startTour(ONBOARDING_TOURS[embarkPage]({ config: config.current })),
|
|
26683
26697
|
children: /* @__PURE__ */ jsx119(CircleQuestionMarkIcon2, { className: "w-4 h-4" })
|
|
26684
26698
|
}
|
|
26685
26699
|
)
|
|
@@ -26904,7 +26918,7 @@ var init_visually_hidden = __esm({
|
|
|
26904
26918
|
|
|
26905
26919
|
// src/internal/components/Dialog/Dialog.tsx
|
|
26906
26920
|
import { AnimatePresence, motion } from "framer-motion";
|
|
26907
|
-
import { useEffect as
|
|
26921
|
+
import { useEffect as useEffect54 } from "react";
|
|
26908
26922
|
import { jsx as jsx122, jsxs as jsxs111 } from "react/jsx-runtime";
|
|
26909
26923
|
function Dialog2() {
|
|
26910
26924
|
const config = useProviderConfig().config;
|
|
@@ -26916,7 +26930,7 @@ function Dialog2() {
|
|
|
26916
26930
|
const isWalletLinking = useLayoutDataStore((st) => st.isWalletLinking);
|
|
26917
26931
|
const setPage = useLayoutDataStore((st) => st.setPage);
|
|
26918
26932
|
const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
|
|
26919
|
-
|
|
26933
|
+
useEffect54(() => setIsSettings(!!session), [session, setIsSettings]);
|
|
26920
26934
|
usePageMapper();
|
|
26921
26935
|
useAutoConnect();
|
|
26922
26936
|
useBackupStatusChanges();
|
|
@@ -26993,7 +27007,7 @@ var init_Dialog2 = __esm({
|
|
|
26993
27007
|
});
|
|
26994
27008
|
|
|
26995
27009
|
// src/internal/components/DirectWalletHandler.tsx
|
|
26996
|
-
import { useEffect as
|
|
27010
|
+
import { useEffect as useEffect55 } from "react";
|
|
26997
27011
|
import { useAccount } from "wagmi";
|
|
26998
27012
|
function DirectWalletHandler() {
|
|
26999
27013
|
const walletMode = useProviderConfig().config.current?.wallet?.mode || "linked";
|
|
@@ -27005,13 +27019,13 @@ function DirectWalletHandler() {
|
|
|
27005
27019
|
const setExternalChainId = useExternalWalletStore((st) => st.setExternalChainId);
|
|
27006
27020
|
const setConfigMode = useExternalWalletStore((st) => st.setConfigMode);
|
|
27007
27021
|
const setActiveMode = useExternalWalletStore((st) => st.setActiveMode);
|
|
27008
|
-
|
|
27022
|
+
useEffect55(() => {
|
|
27009
27023
|
setConfigMode(walletMode);
|
|
27010
27024
|
if (walletMode !== "both") {
|
|
27011
27025
|
setActiveMode(walletMode);
|
|
27012
27026
|
}
|
|
27013
27027
|
}, [walletMode, setConfigMode, setActiveMode]);
|
|
27014
|
-
|
|
27028
|
+
useEffect55(() => {
|
|
27015
27029
|
if (isConnected && address && !isExternalConnected && connector && chain?.id) {
|
|
27016
27030
|
setExternalWallet({
|
|
27017
27031
|
address,
|
|
@@ -27020,17 +27034,17 @@ function DirectWalletHandler() {
|
|
|
27020
27034
|
});
|
|
27021
27035
|
}
|
|
27022
27036
|
}, [isConnected, address, isExternalConnected, connector, chain?.id, setExternalWallet]);
|
|
27023
|
-
|
|
27037
|
+
useEffect55(() => {
|
|
27024
27038
|
if (isExternalConnected && !isConnected) {
|
|
27025
27039
|
clearExternalWallet();
|
|
27026
27040
|
}
|
|
27027
27041
|
}, [isConnected, isExternalConnected, clearExternalWallet]);
|
|
27028
|
-
|
|
27042
|
+
useEffect55(() => {
|
|
27029
27043
|
if (isExternalConnected && isConnected && chain?.id) {
|
|
27030
27044
|
setExternalChainId(chain.id);
|
|
27031
27045
|
}
|
|
27032
27046
|
}, [chain?.id, isConnected, isExternalConnected, setExternalChainId]);
|
|
27033
|
-
|
|
27047
|
+
useEffect55(() => {
|
|
27034
27048
|
if (isExternalConnected && isConnected && address && address !== externalAddress && connector && chain?.id) {
|
|
27035
27049
|
setExternalWallet({
|
|
27036
27050
|
address,
|
|
@@ -27105,7 +27119,7 @@ var init_TssManager = __esm({
|
|
|
27105
27119
|
// src/internal/components/WalletConnectHandler.tsx
|
|
27106
27120
|
import { useConnectModal as useConnectModal2 } from "@rainbow-me/rainbowkit";
|
|
27107
27121
|
import { useMutation as useMutation23, useQueryClient as useQueryClient27 } from "@tanstack/react-query";
|
|
27108
|
-
import React28, { useCallback as useCallback34, useEffect as
|
|
27122
|
+
import React28, { useCallback as useCallback34, useEffect as useEffect56 } from "react";
|
|
27109
27123
|
import { useAccount as useAccount2, useDisconnect as useDisconnect4, useSignMessage as useSignMessage2 } from "wagmi";
|
|
27110
27124
|
function WalletConnectHandler() {
|
|
27111
27125
|
const qc = useQueryClient27();
|
|
@@ -27160,7 +27174,7 @@ function WalletConnectHandler() {
|
|
|
27160
27174
|
const [hasStartedLinking, setHasStartedLinking] = React28.useState(false);
|
|
27161
27175
|
const [modalWasOpened, setModalWasOpened] = React28.useState(false);
|
|
27162
27176
|
const [pendingModalOpen, setPendingModalOpen] = React28.useState(false);
|
|
27163
|
-
|
|
27177
|
+
useEffect56(() => {
|
|
27164
27178
|
if (isWalletLinking && !hasStartedLinking) {
|
|
27165
27179
|
console.log("[WalletConnectHandler] Starting wallet link flow:", {
|
|
27166
27180
|
isConnected,
|
|
@@ -27198,18 +27212,18 @@ function WalletConnectHandler() {
|
|
|
27198
27212
|
setProviderType,
|
|
27199
27213
|
walletMode
|
|
27200
27214
|
]);
|
|
27201
|
-
|
|
27215
|
+
useEffect56(() => {
|
|
27202
27216
|
if (pendingModalOpen && !isConnected && openConnectModal) {
|
|
27203
27217
|
setPendingModalOpen(false);
|
|
27204
27218
|
openConnectModal();
|
|
27205
27219
|
}
|
|
27206
27220
|
}, [pendingModalOpen, isConnected, openConnectModal]);
|
|
27207
|
-
|
|
27221
|
+
useEffect56(() => {
|
|
27208
27222
|
if (connectModalOpen && hasStartedLinking) {
|
|
27209
27223
|
setModalWasOpened(true);
|
|
27210
27224
|
}
|
|
27211
27225
|
}, [connectModalOpen, hasStartedLinking]);
|
|
27212
|
-
|
|
27226
|
+
useEffect56(() => {
|
|
27213
27227
|
if (modalWasOpened && !connectModalOpen && !isConnected && isWalletLinking) {
|
|
27214
27228
|
console.log("[WalletConnectHandler] Modal closed without connecting");
|
|
27215
27229
|
onLinkingComplete(false);
|
|
@@ -27217,7 +27231,7 @@ function WalletConnectHandler() {
|
|
|
27217
27231
|
setModalWasOpened(false);
|
|
27218
27232
|
}
|
|
27219
27233
|
}, [connectModalOpen, modalWasOpened, isConnected, isWalletLinking]);
|
|
27220
|
-
|
|
27234
|
+
useEffect56(() => {
|
|
27221
27235
|
if (isWalletLinking) {
|
|
27222
27236
|
const timeout = setTimeout(() => {
|
|
27223
27237
|
console.warn("[WalletConnectHandler] Wallet linking timed out, resetting state");
|
|
@@ -27337,7 +27351,7 @@ function WalletConnectHandler() {
|
|
|
27337
27351
|
setPage(passportWalletAddress ? "manage-wallet" /* MANAGE_WALLET */ : "auth" /* AUTH */);
|
|
27338
27352
|
}
|
|
27339
27353
|
});
|
|
27340
|
-
|
|
27354
|
+
useEffect56(() => {
|
|
27341
27355
|
if (!!chain?.id && isConnected && walletAddress && isWalletLinking && hasStartedLinking && modalWasOpened && !pendingModalOpen) {
|
|
27342
27356
|
console.log("[WalletConnectHandler] handleWalletSign triggered");
|
|
27343
27357
|
if (!passportWalletAddress) {
|
|
@@ -27347,7 +27361,7 @@ function WalletConnectHandler() {
|
|
|
27347
27361
|
handleWalletSign({ chainId: chain.id, signingWalletAddress: walletAddress });
|
|
27348
27362
|
}
|
|
27349
27363
|
}, [chain, isConnected, walletAddress, isWalletLinking, hasStartedLinking, modalWasOpened, pendingModalOpen]);
|
|
27350
|
-
|
|
27364
|
+
useEffect56(() => {
|
|
27351
27365
|
if (isConnected && !chain?.id && isWalletLinking && hasStartedLinking && !connectModalOpen && !isWalletSigning) {
|
|
27352
27366
|
const timeout = setTimeout(() => {
|
|
27353
27367
|
console.warn("[WalletConnectHandler] Wallet connected but chain info missing, resetting");
|
|
@@ -27386,9 +27400,9 @@ var init_WalletConnectHandler = __esm({
|
|
|
27386
27400
|
import {
|
|
27387
27401
|
createBundlerClientForChain,
|
|
27388
27402
|
createPublicClientForChain as createPublicClientForChain6,
|
|
27389
|
-
DEFAULT_CHAIN_ID as DEFAULT_CHAIN_ID2,
|
|
27390
27403
|
getChainConfig as getChainConfig12,
|
|
27391
|
-
getViemChain as getViemChain2
|
|
27404
|
+
getViemChain as getViemChain2,
|
|
27405
|
+
LUMIA_MAINNET_CHAIN_ID as LUMIA_MAINNET_CHAIN_ID5
|
|
27392
27406
|
} from "@embarkai/core/read";
|
|
27393
27407
|
import { Fragment as Fragment44 } from "react";
|
|
27394
27408
|
import { create as create16 } from "zustand";
|
|
@@ -27498,7 +27512,7 @@ var init_SessionContext = __esm({
|
|
|
27498
27512
|
// Set default chainId after hydration if not persisted
|
|
27499
27513
|
onRehydrateStorage: () => (state) => {
|
|
27500
27514
|
if (!state) return;
|
|
27501
|
-
const hydartedChain = getChainParams(getChainConfig12(state.activeChainId ||
|
|
27515
|
+
const hydartedChain = getChainParams(getChainConfig12(state.activeChainId || LUMIA_MAINNET_CHAIN_ID5));
|
|
27502
27516
|
state.activeChainId = hydartedChain.activeChainId;
|
|
27503
27517
|
state.publicClient = hydartedChain.publicClient;
|
|
27504
27518
|
state.bundlerClient = hydartedChain.bundlerClient;
|
|
@@ -30126,14 +30140,14 @@ var init_rainbowkit = __esm({
|
|
|
30126
30140
|
|
|
30127
30141
|
// src/context/RainbowKitContext.tsx
|
|
30128
30142
|
import { darkTheme, lightTheme, RainbowKitProvider as NativeRainbowKitProvider } from "@rainbow-me/rainbowkit";
|
|
30129
|
-
import { useMemo as
|
|
30143
|
+
import { useMemo as useMemo17 } from "react";
|
|
30130
30144
|
import { WagmiProvider } from "wagmi";
|
|
30131
30145
|
import "@rainbow-me/rainbowkit/styles.css";
|
|
30132
30146
|
import { Fragment as Fragment45, jsx as jsx124 } from "react/jsx-runtime";
|
|
30133
30147
|
function RainbowKitProvider({ children }) {
|
|
30134
30148
|
const config = useProviderConfig().config;
|
|
30135
30149
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
30136
|
-
const rainbowConfig =
|
|
30150
|
+
const rainbowConfig = useMemo17(
|
|
30137
30151
|
() => createRainbowConfig({
|
|
30138
30152
|
projectId: config.current?.wallet?.walletConnectProjectId,
|
|
30139
30153
|
allowedWallets: config.current?.wallet?.allowedWallets,
|
|
@@ -30147,7 +30161,7 @@ function RainbowKitProvider({ children }) {
|
|
|
30147
30161
|
config.current?.wallet?.walletConnectProjectId
|
|
30148
30162
|
]
|
|
30149
30163
|
);
|
|
30150
|
-
const customTheme =
|
|
30164
|
+
const customTheme = useMemo17(() => {
|
|
30151
30165
|
if (!config.current?.wallet?.enabled) return {};
|
|
30152
30166
|
return colorMode === "dark" ? {
|
|
30153
30167
|
...darkTheme(),
|
|
@@ -30207,8 +30221,8 @@ import {
|
|
|
30207
30221
|
createContext,
|
|
30208
30222
|
useCallback as useCallback35,
|
|
30209
30223
|
useContext,
|
|
30210
|
-
useEffect as
|
|
30211
|
-
useMemo as
|
|
30224
|
+
useEffect as useEffect57,
|
|
30225
|
+
useMemo as useMemo18,
|
|
30212
30226
|
useRef as useRef20
|
|
30213
30227
|
} from "react";
|
|
30214
30228
|
import { jsx as jsx126 } from "react/jsx-runtime";
|
|
@@ -30230,7 +30244,7 @@ function clearLegacyWagmiStorage() {
|
|
|
30230
30244
|
function Provider(props) {
|
|
30231
30245
|
const { children, projectId, initialConfig = {}, callbacks } = props;
|
|
30232
30246
|
const callbacksRef = useRef20(callbacks);
|
|
30233
|
-
|
|
30247
|
+
useEffect57(() => notifyNoProjetctId(projectId), [projectId]);
|
|
30234
30248
|
const config = useRef20(merge3({}, DEFAULT_PROVIDER_CONFIG, { projectId }, initialConfig));
|
|
30235
30249
|
const updateConfig = useCallback35((updates) => {
|
|
30236
30250
|
const prev = config.current;
|
|
@@ -30271,7 +30285,7 @@ function Provider(props) {
|
|
|
30271
30285
|
const next = updates ? { ...prev, ...updates } : void 0;
|
|
30272
30286
|
callbacksRef.current = next;
|
|
30273
30287
|
}, []);
|
|
30274
|
-
|
|
30288
|
+
useEffect57(() => {
|
|
30275
30289
|
if (typeof window === "undefined" || !projectId) return;
|
|
30276
30290
|
const mergedConfig = merge3(DEFAULT_PROVIDER_CONFIG, initialConfig);
|
|
30277
30291
|
updateConfig(mergedConfig);
|
|
@@ -30287,11 +30301,11 @@ function Provider(props) {
|
|
|
30287
30301
|
} catch {
|
|
30288
30302
|
}
|
|
30289
30303
|
const activeChainId = useSession.getState().activeChainId;
|
|
30290
|
-
if (!!mergedConfig.network.forceChain && mergedConfig.network.chainId !== activeChainId) {
|
|
30304
|
+
if ((!!mergedConfig.network.autoswitch || !!mergedConfig.network.forceChain) && mergedConfig.network.chainId !== activeChainId) {
|
|
30291
30305
|
useSession.getState().setActiveChainId(mergedConfig.network.chainId);
|
|
30292
30306
|
}
|
|
30293
30307
|
}, [projectId, initialConfig]);
|
|
30294
|
-
|
|
30308
|
+
useEffect57(() => {
|
|
30295
30309
|
if (typeof window === "undefined" || !projectId) return;
|
|
30296
30310
|
try {
|
|
30297
30311
|
initSdkErrorTracking();
|
|
@@ -30320,7 +30334,7 @@ function Provider(props) {
|
|
|
30320
30334
|
console.error("[PROVIDER] Error setting up iframe manager:", error);
|
|
30321
30335
|
}
|
|
30322
30336
|
}, [projectId]);
|
|
30323
|
-
const contextValue =
|
|
30337
|
+
const contextValue = useMemo18(
|
|
30324
30338
|
() => ({
|
|
30325
30339
|
config,
|
|
30326
30340
|
updateConfig,
|
|
@@ -30360,7 +30374,7 @@ var init_ProviderContext = __esm({
|
|
|
30360
30374
|
});
|
|
30361
30375
|
|
|
30362
30376
|
// src/styles/built.css
|
|
30363
|
-
var built_default = `.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.embarkai-ui-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .bottom-full{bottom:100%}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.embarkai-ui-scope .right-0{right:0}.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 .top-0{top:0}.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 .z-10{z-index:10}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-\\[9998\\]{z-index:9998}.embarkai-ui-scope .z-\\[9999\\]{z-index:9999}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.embarkai-ui-scope .mx-auto{margin-left:auto;margin-right:auto}.embarkai-ui-scope .my-1{margin-top:.25rem;margin-bottom:.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 .mr-1{margin-right:.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 .block{display:block}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .table{display:table}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .aspect-square{aspect-ratio:1/1}.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-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.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-48{height:12rem}.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-\\[100dvh\\]{height:100dvh}.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-fit{height:-moz-fit-content;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 .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-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.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-48{width:12rem}.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-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-fit{width:-moz-fit-content;width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-px{width:1px}.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-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.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-\\[256px\\]{max-width:256px}.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 .flex-1{flex:1 1 0%}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink-0,.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.embarkai-ui-scope .-translate-x-1\\/2,.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap)*-1)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.embarkai-ui-scope .-translate-y-1\\/2,.embarkai-ui-scope .-translate-y-1\\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:-33.333333%}.embarkai-ui-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--ui-kit-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--ui-kit-bg-warning)}}.embarkai-ui-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse{50%{opacity:.5}}.embarkai-ui-scope .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.embarkai-ui-scope .animate-spin{animation:spin 1s linear infinite}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-help{cursor:help}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.embarkai-ui-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.embarkai-ui-scope .resize{resize:both}.embarkai-ui-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.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 .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-8{grid-template-columns:repeat(8,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-start{align-items:flex-start}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-between{justify-content:space-between}.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)}.embarkai-ui-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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 .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .break-words{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.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:9999px}.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-width:1px}.embarkai-ui-scope .border-0{border-width:0}.embarkai-ui-scope .border-2{border-width:2px}.embarkai-ui-scope .border-b{border-bottom-width:1px}.embarkai-ui-scope .border-t{border-top-width:1px}.embarkai-ui-scope .border-dashed{border-style:dashed}.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:transparent}.embarkai-ui-scope .border-t-transparent{border-top-color:transparent}.embarkai-ui-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f0f6f8\\]{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.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-\\[var\\(--ui-kit-secondary-h\\)\\]{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-transparent{background-color:transparent}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{-o-object-fit:contain;object-fit:contain}.embarkai-ui-scope .object-cover{-o-object-fit:cover;object-fit:cover}.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-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-5{padding:1.25rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[12px\\]{padding:12px}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.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-0{padding-left:0;padding-right:0}.embarkai-ui-scope .px-1{padding-left:.25rem;padding-right:.25rem}.embarkai-ui-scope .px-2{padding-left:.5rem;padding-right:.5rem}.embarkai-ui-scope .px-3{padding-left:.75rem;padding-right:.75rem}.embarkai-ui-scope .px-4{padding-left:1rem;padding-right:1rem}.embarkai-ui-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.embarkai-ui-scope .px-8{padding-left:2rem;padding-right:2rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-left:var(--ui-kit-gap);padding-right:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-top:0;padding-bottom:0}.embarkai-ui-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.embarkai-ui-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.embarkai-ui-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.embarkai-ui-scope .py-4{padding-top:1rem;padding-bottom:1rem}.embarkai-ui-scope .py-8{padding-top:2rem;padding-bottom:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-top:var(--ui-kit-gap);padding-bottom:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-top:var(--ui-kit-pd);padding-bottom:var(--ui-kit-pd)}.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 .pr-8{padding-right:2rem}.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 .text-left{text-align:left}.embarkai-ui-scope .text-center{text-align:center}.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-sans{font-family:ui-sans-serif,system-ui,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:2rem}.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 .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:1rem}.embarkai-ui-scope .font-bold{font-weight:700}.embarkai-ui-scope .font-medium{font-weight:500}.embarkai-ui-scope .font-normal{font-weight:400}.embarkai-ui-scope .font-semibold{font-weight:600}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .leading-3{line-height:.75rem}.embarkai-ui-scope .leading-4{line-height:1rem}.embarkai-ui-scope .leading-5{line-height:1.25rem}.embarkai-ui-scope .leading-6{line-height:1.5rem}.embarkai-ui-scope .leading-7{line-height:1.75rem}.embarkai-ui-scope .leading-8{line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{line-height:8px}.embarkai-ui-scope .leading-none{line-height:1}.embarkai-ui-scope .leading-tight{line-height:1.25}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{letter-spacing:-.025em}.embarkai-ui-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.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{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.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 .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.embarkai-ui-scope .shadow,.embarkai-ui-scope .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .blur{--tw-blur:blur(8px)}.embarkai-ui-scope .blur,.embarkai-ui-scope .grayscale{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 .grayscale{--tw-grayscale:grayscale(100%)}.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 .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .duration-200{transition-duration:.2s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.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,hsla(0,0%,100%,.8));--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,rgba(0,0,0,.6));--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-primary-h:var(--embark-ui-primary-h,rgba(0,0,0,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,rgba(0,0,0,.6));--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-secondary-h:var(--embark-ui-secondary-h,hsla(0,0%,89%,.8));--ui-kit-secondary-a:var(--embark-ui-secondary-a,hsla(0,0%,89%,.6));--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,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,rgba(0,0,0,.8));--ui-kit-bg:var(--embark-ui-bg,#1a1a1a);--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,hsla(0,0%,100%,.6));--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-primary-h:var(--embark-ui-primary-h,hsla(0,0%,100%,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,hsla(0,0%,100%,.6));--ui-kit-secondary:var(--embark-ui-secondary,#2a2a2a);--ui-kit-secondary-h:var(--embark-ui-secondary-h,rgba(42,42,42,.6));--ui-kit-secondary-a:var(--embark-ui-secondary-a,rgba(42,42,42,.4));--ui-kit-bd:var(--embark-ui-bd,#3a3a3a);--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,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope,.embarkai-ui-scope *{margin:0;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}.embarkai-ui-scope button,.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 input,.embarkai-ui-scope p,.embarkai-ui-scope select,.embarkai-ui-scope textarea{font-family:var(--ui-kit-ff)!important;margin:0}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0 4px 20px var(--ui-kit-shadow-c),inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s ease}.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:lumia-mobile-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@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:lumia-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--ui-kit-scrollbar-mah,300px)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--ui-kit-bd)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.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(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.embarkai-ui-scope .button-shine-outline{position:absolute;top:0;left:0;width:100%;height:100%;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;-webkit-mask-composite:xor;mask-composite:exclude}.embarkai-ui-scope .button-shine-outline-shiner{pointer-events:none;position:absolute;top:50%;left:50%;width:500px;height:500px;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0,var(--ui-kit-fg) 8%,transparent 24%);animation:rotateShine 3s linear infinite}.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-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.embarkai-ui-scope .file\\:font-medium::file-selector-button{font-weight:500}.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\\)\\]::-moz-placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus-within{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .hover\\:bg-\\[\\#002c15\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#081f2c\\]:hover{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.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-\\[var\\(--ui-kit-secondary-h\\)\\]:hover{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .hover\\:brightness-110:hover{--tw-brightness:brightness(1.1);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 .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:transparent}.embarkai-ui-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.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}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:active{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80:active::file-selector-button{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}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover:disabled{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:hover:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:hover:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:active:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:active:disabled{opacity:.5}.embarkai-ui-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.embarkai-ui-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.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}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.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)}.embarkai-ui-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}@media (min-width:640px){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}.embarkai-ui-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.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-top:.25rem;padding-bottom:.25rem}}.embarkai-ui-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}`;
|
|
30377
|
+
var built_default = `.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.embarkai-ui-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.embarkai-ui-scope .pointer-events-none{pointer-events:none}.embarkai-ui-scope .pointer-events-auto{pointer-events:auto}.embarkai-ui-scope .visible{visibility:visible}.embarkai-ui-scope .invisible{visibility:hidden}.embarkai-ui-scope .static{position:static}.embarkai-ui-scope .fixed{position:fixed}.embarkai-ui-scope .absolute{position:absolute}.embarkai-ui-scope .relative{position:relative}.embarkai-ui-scope .inset-0{inset:0}.embarkai-ui-scope .-right-1{right:-.25rem}.embarkai-ui-scope .-right-2{right:-.5rem}.embarkai-ui-scope .-top-1{top:-.25rem}.embarkai-ui-scope .-top-2{top:-.5rem}.embarkai-ui-scope .bottom-0{bottom:0}.embarkai-ui-scope .bottom-full{bottom:100%}.embarkai-ui-scope .left-0{left:0}.embarkai-ui-scope .left-1\\/2{left:50%}.embarkai-ui-scope .left-4{left:1rem}.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 .top-0{top:0}.embarkai-ui-scope .top-1{top:.25rem}.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 .z-10{z-index:10}.embarkai-ui-scope .z-50{z-index:50}.embarkai-ui-scope .z-\\[9998\\]{z-index:9998}.embarkai-ui-scope .z-\\[9999\\]{z-index:9999}.embarkai-ui-scope .-m-px{margin:-1px}.embarkai-ui-scope .-mx-1{margin-left:-.25rem;margin-right:-.25rem}.embarkai-ui-scope .mx-auto{margin-left:auto;margin-right:auto}.embarkai-ui-scope .my-1{margin-top:.25rem;margin-bottom:.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 .mr-1{margin-right:.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 .block{display:block}.embarkai-ui-scope .inline-block{display:inline-block}.embarkai-ui-scope .inline{display:inline}.embarkai-ui-scope .flex{display:flex}.embarkai-ui-scope .inline-flex{display:inline-flex}.embarkai-ui-scope .table{display:table}.embarkai-ui-scope .grid{display:grid}.embarkai-ui-scope .hidden{display:none}.embarkai-ui-scope .aspect-square{aspect-ratio:1/1}.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-10{height:2.5rem}.embarkai-ui-scope .h-12{height:3rem}.embarkai-ui-scope .h-16{height:4rem}.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-48{height:12rem}.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-\\[100dvh\\]{height:100dvh}.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-fit{height:-moz-fit-content;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 .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-10{width:2.5rem}.embarkai-ui-scope .w-12{width:3rem}.embarkai-ui-scope .w-16{width:4rem}.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-48{width:12rem}.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-\\[100dvw\\]{width:100dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[var\\(--ui-kit-maw\\)\\]{width:var(--ui-kit-maw)}.embarkai-ui-scope .w-fit{width:-moz-fit-content;width:fit-content}.embarkai-ui-scope .w-full{width:100%}.embarkai-ui-scope .w-px{width:1px}.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-\\[256px\\]{min-width:256px}.embarkai-ui-scope .min-w-\\[8rem\\]{min-width:8rem}.embarkai-ui-scope .min-w-\\[var\\(--radix-select-trigger-width\\)\\]{min-width:var(--radix-select-trigger-width)}.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-\\[256px\\]{max-width:256px}.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 .flex-1{flex:1 1 0%}.embarkai-ui-scope .flex-none{flex:none}.embarkai-ui-scope .flex-shrink-0,.embarkai-ui-scope .shrink-0{flex-shrink:0}.embarkai-ui-scope .-translate-x-1\\/2{--tw-translate-x:-50%}.embarkai-ui-scope .-translate-x-1\\/2,.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-x-\\[var\\(--ui-kit-gap\\)\\]{--tw-translate-x:calc(var(--ui-kit-gap)*-1)}.embarkai-ui-scope .-translate-y-1\\/2{--tw-translate-y:-50%}.embarkai-ui-scope .-translate-y-1\\/2,.embarkai-ui-scope .-translate-y-1\\/3{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .-translate-y-1\\/3{--tw-translate-y:-33.333333%}.embarkai-ui-scope .transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes glow-warning{0%,to{transform:scale(1);box-shadow:0 0 16px var(--ui-kit-bg-warning)}50%{transform:scale(.97);box-shadow:0 0 4px var(--ui-kit-bg-warning)}}.embarkai-ui-scope .animate-glow-warning{animation:glow-warning 2s ease infinite}@keyframes pulse{50%{opacity:.5}}.embarkai-ui-scope .animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.embarkai-ui-scope .animate-spin{animation:spin 1s linear infinite}.embarkai-ui-scope .cursor-default{cursor:default}.embarkai-ui-scope .cursor-help{cursor:help}.embarkai-ui-scope .cursor-pointer{cursor:pointer}.embarkai-ui-scope .cursor-text{cursor:text}.embarkai-ui-scope .select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.embarkai-ui-scope .select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.embarkai-ui-scope .resize{resize:both}.embarkai-ui-scope .scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.embarkai-ui-scope .list-inside{list-style-position:inside}.embarkai-ui-scope .list-disc{list-style-type:disc}.embarkai-ui-scope .grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.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 .grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.embarkai-ui-scope .grid-cols-8{grid-template-columns:repeat(8,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-start{align-items:flex-start}.embarkai-ui-scope .items-end{align-items:flex-end}.embarkai-ui-scope .items-center{align-items:center}.embarkai-ui-scope .justify-start{justify-content:flex-start}.embarkai-ui-scope .justify-end{justify-content:flex-end}.embarkai-ui-scope .justify-center{justify-content:center}.embarkai-ui-scope .justify-between{justify-content:space-between}.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)}.embarkai-ui-scope :is(.space-x-1>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope :is(.space-y-0\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-1\\.5>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.embarkai-ui-scope :is(.space-y-2>:not([hidden])~:not([hidden])){--tw-space-y-reverse:0;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.embarkai-ui-scope .overflow-hidden{overflow:hidden}.embarkai-ui-scope .overflow-y-auto{overflow-y:auto}.embarkai-ui-scope .overflow-x-hidden{overflow-x:hidden}.embarkai-ui-scope .truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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 .break-normal{overflow-wrap:normal;word-break:normal}.embarkai-ui-scope .break-words{overflow-wrap:break-word}.embarkai-ui-scope .break-all{word-break:break-all}.embarkai-ui-scope .rounded{border-radius:.25rem}.embarkai-ui-scope .rounded-\\[10px\\]{border-radius:10px}.embarkai-ui-scope .rounded-\\[8px\\]{border-radius:8px}.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:9999px}.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-width:1px}.embarkai-ui-scope .border-0{border-width:0}.embarkai-ui-scope .border-2{border-width:2px}.embarkai-ui-scope .border-b{border-bottom-width:1px}.embarkai-ui-scope .border-t{border-top-width:1px}.embarkai-ui-scope .border-dashed{border-style:dashed}.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:transparent}.embarkai-ui-scope .border-t-transparent{border-top-color:transparent}.embarkai-ui-scope .bg-\\[\\#002c15\\]{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#081f2c\\]{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f0f6f8\\]{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-\\[\\#f3ba2f\\]{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.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-\\[var\\(--ui-kit-secondary-h\\)\\]{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.embarkai-ui-scope .bg-transparent{background-color:transparent}.embarkai-ui-scope .fill-\\[var\\(--ui-kit-bg-warning\\)\\]{fill:var(--ui-kit-bg-warning)}.embarkai-ui-scope .object-contain{-o-object-fit:contain;object-fit:contain}.embarkai-ui-scope .object-cover{-o-object-fit:cover;object-fit:cover}.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-3{padding:.75rem}.embarkai-ui-scope .p-4{padding:1rem}.embarkai-ui-scope .p-5{padding:1.25rem}.embarkai-ui-scope .p-6{padding:1.5rem}.embarkai-ui-scope .p-8{padding:2rem}.embarkai-ui-scope .p-\\[12px\\]{padding:12px}.embarkai-ui-scope .p-\\[2px\\]{padding:2px}.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-0{padding-left:0;padding-right:0}.embarkai-ui-scope .px-1{padding-left:.25rem;padding-right:.25rem}.embarkai-ui-scope .px-2{padding-left:.5rem;padding-right:.5rem}.embarkai-ui-scope .px-3{padding-left:.75rem;padding-right:.75rem}.embarkai-ui-scope .px-4{padding-left:1rem;padding-right:1rem}.embarkai-ui-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.embarkai-ui-scope .px-8{padding-left:2rem;padding-right:2rem}.embarkai-ui-scope .px-\\[var\\(--ui-kit-gap\\)\\]{padding-left:var(--ui-kit-gap);padding-right:var(--ui-kit-gap)}.embarkai-ui-scope .px-\\[var\\(--ui-kit-pd\\)\\]{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .py-0{padding-top:0;padding-bottom:0}.embarkai-ui-scope .py-1{padding-top:.25rem;padding-bottom:.25rem}.embarkai-ui-scope .py-1\\.5{padding-top:.375rem;padding-bottom:.375rem}.embarkai-ui-scope .py-2{padding-top:.5rem;padding-bottom:.5rem}.embarkai-ui-scope .py-3{padding-top:.75rem;padding-bottom:.75rem}.embarkai-ui-scope .py-4{padding-top:1rem;padding-bottom:1rem}.embarkai-ui-scope .py-8{padding-top:2rem;padding-bottom:2rem}.embarkai-ui-scope .py-\\[10px\\]{padding-top:10px;padding-bottom:10px}.embarkai-ui-scope .py-\\[var\\(--ui-kit-gap\\)\\]{padding-top:var(--ui-kit-gap);padding-bottom:var(--ui-kit-gap)}.embarkai-ui-scope .py-\\[var\\(--ui-kit-pd\\)\\]{padding-top:var(--ui-kit-pd);padding-bottom:var(--ui-kit-pd)}.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 .pr-8{padding-right:2rem}.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 .text-left{text-align:left}.embarkai-ui-scope .text-center{text-align:center}.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-sans{font-family:ui-sans-serif,system-ui,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:2rem}.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 .text-\\[8px\\]{font-size:8px}.embarkai-ui-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.embarkai-ui-scope .text-sm{font-size:.875rem;line-height:1.25rem}.embarkai-ui-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.embarkai-ui-scope .text-xs{font-size:.75rem;line-height:1rem}.embarkai-ui-scope .font-bold{font-weight:700}.embarkai-ui-scope .font-medium{font-weight:500}.embarkai-ui-scope .font-normal{font-weight:400}.embarkai-ui-scope .font-semibold{font-weight:600}.embarkai-ui-scope .uppercase{text-transform:uppercase}.embarkai-ui-scope .lowercase{text-transform:lowercase}.embarkai-ui-scope .leading-3{line-height:.75rem}.embarkai-ui-scope .leading-4{line-height:1rem}.embarkai-ui-scope .leading-5{line-height:1.25rem}.embarkai-ui-scope .leading-6{line-height:1.5rem}.embarkai-ui-scope .leading-7{line-height:1.75rem}.embarkai-ui-scope .leading-8{line-height:2rem}.embarkai-ui-scope .leading-\\[8px\\]{line-height:8px}.embarkai-ui-scope .leading-none{line-height:1}.embarkai-ui-scope .leading-tight{line-height:1.25}.embarkai-ui-scope .tracking-\\[0\\.3em\\]{letter-spacing:.3em}.embarkai-ui-scope .tracking-tight{letter-spacing:-.025em}.embarkai-ui-scope .text-\\[\\#c3f53c\\]{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.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{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.embarkai-ui-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.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 .antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.embarkai-ui-scope .opacity-0{opacity:0}.embarkai-ui-scope .opacity-100{opacity:1}.embarkai-ui-scope .opacity-50{opacity:.5}.embarkai-ui-scope .opacity-60{opacity:.6}.embarkai-ui-scope .shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.embarkai-ui-scope .shadow,.embarkai-ui-scope .shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.embarkai-ui-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .outline{outline-style:solid}.embarkai-ui-scope .blur{--tw-blur:blur(8px)}.embarkai-ui-scope .blur,.embarkai-ui-scope .grayscale{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 .grayscale{--tw-grayscale:grayscale(100%)}.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 .transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-\\[color\\2c box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .transition-none{transition-property:none}.embarkai-ui-scope .transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.embarkai-ui-scope .duration-200{transition-duration:.2s}.embarkai-ui-scope .ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.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,hsla(0,0%,100%,.8));--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,rgba(0,0,0,.6));--ui-kit-primary:var(--embark-ui-primary,#000);--ui-kit-primary-h:var(--embark-ui-primary-h,rgba(0,0,0,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,rgba(0,0,0,.6));--ui-kit-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-secondary-h:var(--embark-ui-secondary-h,hsla(0,0%,89%,.8));--ui-kit-secondary-a:var(--embark-ui-secondary-a,hsla(0,0%,89%,.6));--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,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope[data-current-theme-mode=dark]{--ui-kit-overlay:var(--embark-ui-overlay,rgba(0,0,0,.8));--ui-kit-bg:var(--embark-ui-bg,#1a1a1a);--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,hsla(0,0%,100%,.6));--ui-kit-primary:var(--embark-ui-primary,#fff);--ui-kit-primary-h:var(--embark-ui-primary-h,hsla(0,0%,100%,.8));--ui-kit-primary-a:var(--embark-ui-primary-a,hsla(0,0%,100%,.6));--ui-kit-secondary:var(--embark-ui-secondary,#2a2a2a);--ui-kit-secondary-h:var(--embark-ui-secondary-h,rgba(42,42,42,.6));--ui-kit-secondary-a:var(--embark-ui-secondary-a,rgba(42,42,42,.4));--ui-kit-bd:var(--embark-ui-bd,#3a3a3a);--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,rgba(0,0,0,.1));--ui-kit-info:var(--embark-ui-info,var(--ui-kit-fg));--ui-kit-bg-info:var(--embark-ui-bg-info,var(--ui-kit-secondary));--ui-kit-success:var(--embark-ui-success,#000);--ui-kit-bg-success:var(--embark-ui-bg-success,#21ff51);--ui-kit-warning:var(--embark-ui-warning,#000);--ui-kit-bg-warning:var(--embark-ui-bg-warning,#e9fa00);--ui-kit-error:var(--embark-ui-error,#fff);--ui-kit-bg-error:var(--embark-ui-bg-error,#d6204e)}.embarkai-ui-scope,.embarkai-ui-scope *{margin:0;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}.embarkai-ui-scope button,.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 input,.embarkai-ui-scope p,.embarkai-ui-scope select,.embarkai-ui-scope textarea{font-family:var(--ui-kit-ff)!important;margin:0}.embarkai-ui-scope button,.embarkai-ui-scope input,.embarkai-ui-scope select,.embarkai-ui-scope textarea{border-style:solid;outline:none!important;appearance:none!important;-webkit-appearance:none;-moz-appearance:none}.embarkai-ui-scope input,.embarkai-ui-scope textarea{font-size:16px!important}.embarkai-ui-scope .account-connect-button{box-shadow:0 4px 20px var(--ui-kit-shadow-c),inset 0 0 0 1px var(--ui-kit-bd);transition:transform .25s ease}.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:lumia-mobile-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-mobile-dialog-out{animation:lumia-mobile-dialog-fade-out 375ms ease}@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:lumia-dialog-fade-in 375ms ease}.embarkai-ui-scope .animate-dialog-out{animation:lumia-dialog-fade-out 375ms ease}.embarkai-ui-scope .list-scrollbar-y{width:100%;padding-right:var(--ui-kit-list-scrollbar-pd-r,0);overflow-y:auto;overflow-x:hidden;max-height:var(--ui-kit-scrollbar-mah,300px)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar{width:4px;height:4px}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-thumb{cursor:pointer;width:4px;border-radius:2px;background-color:var(--ui-kit-bd)}.embarkai-ui-scope .list-scrollbar-y::-webkit-scrollbar-track{margin-top:10px;margin-bottom:10px;background-color:transparent}.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(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.embarkai-ui-scope .button-shine-outline{position:absolute;top:0;left:0;width:100%;height:100%;padding:1px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0) border-box;-webkit-mask-composite:xor;mask-composite:exclude}.embarkai-ui-scope .button-shine-outline-shiner{pointer-events:none;position:absolute;top:50%;left:50%;width:500px;height:500px;transform:translate(-50%,-50%);background:conic-gradient(from 0deg,transparent 0,var(--ui-kit-fg) 8%,transparent 24%);animation:rotateShine 3s linear infinite}.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-width:0}.embarkai-ui-scope .file\\:bg-\\[var\\(--ui-kit-primary\\)\\]::file-selector-button{background-color:var(--ui-kit-primary)}.embarkai-ui-scope .file\\:bg-transparent::file-selector-button{background-color:transparent}.embarkai-ui-scope .file\\:px-\\[var\\(--ui-kit-pd\\)\\]::file-selector-button{padding-left:var(--ui-kit-pd);padding-right:var(--ui-kit-pd)}.embarkai-ui-scope .file\\:text-\\[16px\\]::file-selector-button{font-size:16px}.embarkai-ui-scope .file\\:text-base::file-selector-button{font-size:1rem;line-height:1.5rem}.embarkai-ui-scope .file\\:font-medium::file-selector-button{font-weight:500}.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\\)\\]::-moz-placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .placeholder\\:text-\\[var\\(--ui-kit-fg-muted\\)\\]::placeholder{color:var(--ui-kit-fg-muted)}.embarkai-ui-scope .focus-within\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus-within{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus-within\\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .hover\\:bg-\\[\\#002c15\\]:hover{--tw-bg-opacity:1;background-color:rgb(0 44 21/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#081f2c\\]:hover{--tw-bg-opacity:1;background-color:rgb(8 31 44/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f0f6f8\\]:hover{--tw-bg-opacity:1;background-color:rgb(240 246 248/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:bg-\\[\\#f3ba2f\\]:hover{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.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-\\[var\\(--ui-kit-secondary-h\\)\\]:hover{background-color:var(--ui-kit-secondary-h)}.embarkai-ui-scope .hover\\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[\\#c3f53c\\]:hover{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-\\[var\\(--ui-kit-fg\\)\\]:hover{color:var(--ui-kit-fg)}.embarkai-ui-scope .hover\\:text-gray-600:hover{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.embarkai-ui-scope .hover\\:underline:hover{text-decoration-line:underline}.embarkai-ui-scope .hover\\:opacity-80:hover{opacity:.8}.embarkai-ui-scope .hover\\:brightness-110:hover{--tw-brightness:brightness(1.1);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 .file\\:hover\\:opacity-90:hover::file-selector-button{opacity:.9}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:focus{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color:transparent}.embarkai-ui-scope .focus\\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.embarkai-ui-scope .focus-visible\\:ring-0:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.embarkai-ui-scope .focus-visible\\:ring-\\[2px\\]:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.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}.embarkai-ui-scope .active\\:bg-\\[\\#f3ba2f\\]:active{--tw-bg-opacity:1;background-color:rgb(243 186 47/var(--tw-bg-opacity,1))}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .active\\:bg-\\[var\\(--ui-kit-secondary-a\\)\\]:active{background-color:var(--ui-kit-secondary-a)}.embarkai-ui-scope .active\\:text-\\[\\#c3f53c\\]:active{--tw-text-opacity:1;color:rgb(195 245 60/var(--tw-text-opacity,1))}.embarkai-ui-scope .active\\:opacity-60:active{opacity:.6}.embarkai-ui-scope .file\\:active\\:opacity-80:active::file-selector-button{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}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-bg\\)\\]:hover:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:hover\\:bg-\\[var\\(--ui-kit-secondary\\)\\]:hover:disabled{background-color:var(--ui-kit-secondary)}.embarkai-ui-scope .disabled\\:hover\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:hover:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:hover\\:opacity-50:hover:disabled{opacity:.5}.embarkai-ui-scope .disabled\\:active\\:bg-\\[var\\(--ui-kit-bg\\)\\]:active:disabled{background-color:var(--ui-kit-bg)}.embarkai-ui-scope .disabled\\:active\\:text-\\[var\\(--ui-kit-bg-error\\)\\]:active:disabled{color:var(--ui-kit-bg-error)}.embarkai-ui-scope .disabled\\:active\\:opacity-50:active:disabled{opacity:.5}.embarkai-ui-scope :is(.group:hover .group-hover\\:opacity-100){opacity:1}.embarkai-ui-scope .data-\\[disabled\\]\\:pointer-events-none[data-disabled]{pointer-events:none}.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}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom]{--tw-translate-y:0.25rem}.embarkai-ui-scope .data-\\[side\\=bottom\\]\\:translate-y-1[data-side=bottom],.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=left\\]\\:-translate-x-1[data-side=left]{--tw-translate-x:-0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right]{--tw-translate-x:0.25rem}.embarkai-ui-scope .data-\\[side\\=right\\]\\:translate-x-1[data-side=right],.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.embarkai-ui-scope .data-\\[side\\=top\\]\\:-translate-y-1[data-side=top]{--tw-translate-y:-0.25rem}.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)}.embarkai-ui-scope .data-\\[disabled\\]\\:opacity-50[data-disabled]{opacity:.5}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:line-clamp-1[data-slot=select-value]>*){overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:flex[data-slot=select-value]>*){display:flex}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:items-center[data-slot=select-value]>*){align-items:center}.embarkai-ui-scope :is(.\\*\\:data-\\[slot\\=select-value\\]\\:gap-\\[var\\(--ui-kit-gap\\)\\][data-slot=select-value]>*){gap:var(--ui-kit-gap)}@media (min-width:640px){.embarkai-ui-scope .sm\\:flex-row{flex-direction:row}.embarkai-ui-scope .sm\\:justify-end{justify-content:flex-end}.embarkai-ui-scope :is(.sm\\:space-x-2>:not([hidden])~:not([hidden])){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.embarkai-ui-scope .sm\\:text-left{text-align:left}}@media (min-width:768px){.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-top:.25rem;padding-bottom:.25rem}}.embarkai-ui-scope :is(.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-])){width:1rem;height:1rem}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:pointer-events-none svg){pointer-events:none}.embarkai-ui-scope :is(.\\[\\&_svg\\]\\:shrink-0 svg){flex-shrink:0}`;
|
|
30364
30378
|
|
|
30365
30379
|
// src/index.ts
|
|
30366
30380
|
init_ProviderContext();
|
|
@@ -30380,7 +30394,7 @@ init_useLayoutStore();
|
|
|
30380
30394
|
init_pro_mode();
|
|
30381
30395
|
init_utils2();
|
|
30382
30396
|
import { Cloud as Cloud4, Laptop as Laptop2, Loader as Loader31, Shield as Shield3 } from "lucide-react";
|
|
30383
|
-
import { useEffect as
|
|
30397
|
+
import { useEffect as useEffect58, useMemo as useMemo19 } from "react";
|
|
30384
30398
|
import { Fragment as Fragment46, jsx as jsx127, jsxs as jsxs113 } from "react/jsx-runtime";
|
|
30385
30399
|
function getFormattedStatus(label, status, showStatus) {
|
|
30386
30400
|
const isStatus = showStatus && status && status !== "idle" && status !== "ready";
|
|
@@ -30400,10 +30414,10 @@ function ConnectWalletButton(props) {
|
|
|
30400
30414
|
const colorMode = useLayoutStore((st) => st.colorMode);
|
|
30401
30415
|
const { session, address, hasServerVault, isLoading, isIframeReady, status, setUsePaymaster } = useSession();
|
|
30402
30416
|
const connectButtonLabel = getFormattedStatus(label || "Connect", status, isIframeReady);
|
|
30403
|
-
|
|
30417
|
+
useEffect58(() => setUsePaymaster(usePaymaster), [setUsePaymaster, usePaymaster]);
|
|
30404
30418
|
const { data: profile, isLoading: isProfileLoading } = useUserProfile();
|
|
30405
30419
|
const displayName = profile?.nicknameDisplay || profile?.displayName || jwtTokenManager2.getDisplayName();
|
|
30406
|
-
const indicators =
|
|
30420
|
+
const indicators = useMemo19(() => {
|
|
30407
30421
|
const userId = session?.mpcUserId;
|
|
30408
30422
|
if (!userId) return { server: false, local: false, backup: false };
|
|
30409
30423
|
const server = jwtTokenManager2.getHasKeyshare() ?? false;
|
|
@@ -31046,13 +31060,13 @@ var Hash = ({
|
|
|
31046
31060
|
|
|
31047
31061
|
// src/internal/components/TransactionsMenu/TransactionsList.tsx
|
|
31048
31062
|
init_base2();
|
|
31049
|
-
import { useEffect as
|
|
31063
|
+
import { useEffect as useEffect60, useState as useState32 } from "react";
|
|
31050
31064
|
import { jsx as jsx133, jsxs as jsxs117 } from "react/jsx-runtime";
|
|
31051
31065
|
var TransactionsList = ({ address, itemsCount = 10 }) => {
|
|
31052
31066
|
const [transactions, setTransactions] = useState32([]);
|
|
31053
31067
|
const [loading, setLoading] = useState32(true);
|
|
31054
31068
|
const [error, setError] = useState32(null);
|
|
31055
|
-
|
|
31069
|
+
useEffect60(() => {
|
|
31056
31070
|
const fetchTransactions2 = async () => {
|
|
31057
31071
|
try {
|
|
31058
31072
|
setLoading(true);
|
|
@@ -31459,7 +31473,7 @@ function useSendDirectTransaction() {
|
|
|
31459
31473
|
init_SessionContext();
|
|
31460
31474
|
init_account2();
|
|
31461
31475
|
init_linkedProfiles();
|
|
31462
|
-
import { useCallback as useCallback41, useMemo as
|
|
31476
|
+
import { useCallback as useCallback41, useMemo as useMemo20, useState as useState35 } from "react";
|
|
31463
31477
|
import { encodeFunctionData as encodeFunctionData3, isAddress as isAddress4, parseEther as parseEther4, parseUnits as parseUnits3 } from "viem";
|
|
31464
31478
|
var ERC20_TRANSFER_ABI2 = [
|
|
31465
31479
|
{
|
|
@@ -31478,7 +31492,7 @@ function useTransferToLinkedWallet() {
|
|
|
31478
31492
|
const [isPending, setIsPending] = useState35(false);
|
|
31479
31493
|
const [error, setError] = useState35(null);
|
|
31480
31494
|
const [userOpHash, setUserOpHash] = useState35(null);
|
|
31481
|
-
const linkedWallets =
|
|
31495
|
+
const linkedWallets = useMemo20(
|
|
31482
31496
|
() => (profiles || []).filter((p) => p.provider === "wallet" && p.externalId).map((p) => p.externalId),
|
|
31483
31497
|
[profiles]
|
|
31484
31498
|
);
|