@embarkai/ui-kit 0.4.92 → 0.4.94

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/index.cjs CHANGED
@@ -5021,11 +5021,12 @@ var init_cn = __esm({
5021
5021
  });
5022
5022
 
5023
5023
  // src/internal/constants.ts
5024
- var import_lucide_react, LOCAL_COLOR_MODE_KEY, LOOCAL_BACKUP_STATUS_KEY, DEFAULT_AUTH_MENU_HEIGHT, DEFAULT_MAIN_MENU_HEIGHT, MAX_CONTENT_HEIGHT, MAIN_DIALOG_ANIMATION_SPEED, Y_ANIMATION_SETUP, BLOCKSCOUT_QUERY_STALE_TIME, BLOCKSCOUT_QUERY_GC_TIME, BLOCKSCOUT_REFRESH_DEBOUNCE, IPFS_GATEWAY, PROVIDERS_META;
5024
+ var import_lucide_react, EMBARKAI_DIALOG_ONBOARDING_ID, LOCAL_COLOR_MODE_KEY, LOOCAL_BACKUP_STATUS_KEY, DEFAULT_AUTH_MENU_HEIGHT, DEFAULT_MAIN_MENU_HEIGHT, MAX_CONTENT_HEIGHT, MAIN_DIALOG_ANIMATION_SPEED, Y_ANIMATION_SETUP, BLOCKSCOUT_QUERY_STALE_TIME, BLOCKSCOUT_QUERY_GC_TIME, BLOCKSCOUT_REFRESH_DEBOUNCE, IPFS_GATEWAY, PROVIDERS_META;
5025
5025
  var init_constants = __esm({
5026
5026
  "src/internal/constants.ts"() {
5027
5027
  import_lucide_react = require("lucide-react");
5028
5028
  init_assets();
5029
+ EMBARKAI_DIALOG_ONBOARDING_ID = "embark-main-dialog-content";
5029
5030
  LOCAL_COLOR_MODE_KEY = "passport-theme-mode";
5030
5031
  LOOCAL_BACKUP_STATUS_KEY = "passport-backup-status";
5031
5032
  DEFAULT_AUTH_MENU_HEIGHT = 253;
@@ -5061,25 +5062,16 @@ var init_useLayoutStore = __esm({
5061
5062
  colorMode: "light",
5062
5063
  isMobileView: false,
5063
5064
  maxScrollHeight: MAX_CONTENT_HEIGHT,
5064
- isDialogClosing: false,
5065
5065
  isDialogOpen: false,
5066
+ isDialogAnimating: false,
5066
5067
  isDialogForced: false,
5067
- dialogTitle: null,
5068
- dialogDescription: null,
5069
5068
  dialogContent: null,
5070
5069
  isSettings: false,
5071
5070
  setColorMode: (colorMode) => set({ colorMode }),
5072
- // setLayoutView: (layoutView) => set(() => ({ layoutView })),
5073
- // setDeviceType: (deviceType) => set(() => ({ deviceType })),
5074
5071
  setIsMobileView: (isMobileView) => set({ isMobileView }),
5075
5072
  setMaxScrollHeight: (maxScrollHeight) => set({ maxScrollHeight }),
5076
- setIsDialogClosing: (isDialogClosing) => set({ isDialogClosing }),
5077
- setIsDialogOpen: (isDialogOpen) => set({ isDialogOpen }),
5078
- setIsDialogForced: (isDialogForced) => set({ isDialogForced }),
5079
- setDialogTitle: (dialogTitle) => set({ dialogTitle }),
5080
- setDialogDescription: (dialogDescription) => set({ dialogDescription }),
5081
- setDialogContent: (dialogContent) => set({ dialogContent }),
5082
- setIsSettings: (isSettings) => set({ isSettings })
5073
+ /** dedicated setter for dialog forced state */
5074
+ setIsDialogForced: (isDialogForced) => set({ isDialogForced })
5083
5075
  }));
5084
5076
  }
5085
5077
  });
@@ -9713,18 +9705,20 @@ var init_input = __esm({
9713
9705
  /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
9714
9706
  "div",
9715
9707
  {
9716
- className: cn2(
9717
- "flex h-12 w-full rounded-[var(--ui-kit-el-bdrs)] items-center gap-[var(--ui-kit-gap)] px-[var(--ui-kit-pd)]",
9718
- "bg-[var(--ui-kit-secondary)]",
9719
- "hover:bg-[var(--ui-kit-secondary-a)]",
9720
- "transition-colors duration-200 ease-in-out",
9721
- "file:border-0 file:bg-transparent file:text-base file:font-medium",
9722
- "focus-within:outline-none focus-within:bg-[var(--ui-kit-secondary-h)]",
9723
- disabled ? "cursor-default opacity-50" : "cursor-text"
9724
- ),
9725
9708
  onClick: () => {
9726
9709
  internalRef.current?.focus();
9727
9710
  },
9711
+ className: cn2(
9712
+ "flex h-12 w-full items-center gap-[var(--ui-kit-gap)] px-[var(--ui-kit-pd)]",
9713
+ "bg-[var(--ui-kit-secondary)] rounded-[var(--ui-kit-el-bdrs)]",
9714
+ "border border-transparent",
9715
+ "transition-all duration-200 ease-in-out",
9716
+ disabled ? "cursor-not-allowed opacity-50" : cn2(
9717
+ "cursor-text opacity-100 hover:opacity-80",
9718
+ "focus-within:opacity-100 focus-within:border-[var(--ui-kit-bd)]",
9719
+ "focus-within:hover:opacity-100"
9720
+ )
9721
+ ),
9728
9722
  children: [
9729
9723
  Icon2 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "flex flex-none items-center justify-center w-8 h-8", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Icon2, { width: 16, height: 16, className: "text-[var(--ui-kit-fg)]" }) }),
9730
9724
  /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
@@ -9734,9 +9728,10 @@ var init_input = __esm({
9734
9728
  className: cn2(
9735
9729
  "text-[16px] text-[var(--ui-kit-fg)] font-semibold",
9736
9730
  "placeholder:text-[var(--ui-kit-fg-muted)]",
9737
- "focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-transparent focus-visible:ring-offset-0",
9738
- "w-full h-full flex-1 border-0 bg-transparent px-0",
9739
- { ["cursor-default"]: disabled },
9731
+ "ring-0 ring-offset-0",
9732
+ "outline-none focus-visible:ring-0 focus-visible:ring-transparent focus-visible:ring-offset-0",
9733
+ "h-full flex-1 border-0 bg-transparent px-0",
9734
+ { ["cursor-not-allowed"]: disabled },
9740
9735
  inputClassName
9741
9736
  ),
9742
9737
  disabled,
@@ -10866,13 +10861,15 @@ var init_VerificationCodeInput = __esm({
10866
10861
  onPaste: handlePaste,
10867
10862
  className: cn2(
10868
10863
  "block w-[40px] h-[48px] rounded-[var(--ui-kit-el-bdrs)]",
10869
- "text-[16px] leading-5 text-center font-semibold text-[var(--ui-kit-fg)] cursor-text",
10870
- "bg-[var(--ui-kit-secondary)] focus:bg-[var(--ui-kit-secondary-a)] hover:bg-[var(--ui-kit-secondary-h)]",
10871
- "disabled:cursor-default disabled:opacity-50 disabled:hover:bg-[var(--ui-kit-secondary)]",
10872
- "focus:bg-[var(--ui-kit-secondary-a)]",
10873
- "border-0 border-transparent",
10864
+ "text-[16px] leading-5 text-center font-semibold text-[var(--ui-kit-fg)]",
10865
+ "bg-[var(--ui-kit-secondary)] border-0 border-transparent",
10874
10866
  // to avoid default appearance border
10875
- "transition-colors duration-200"
10867
+ "transition-all duration-200",
10868
+ isLoading ? "cursor-not-allowed opacity-50" : cn2(
10869
+ "cursor-text opacity-100 hover:opacity-80",
10870
+ "focus-within:opacity-100 focus-within:border-[var(--ui-kit-bd)]",
10871
+ "focus-within:hover:opacity-100"
10872
+ )
10876
10873
  )
10877
10874
  },
10878
10875
  i
@@ -11108,7 +11105,6 @@ var init_AuthMenu = __esm({
11108
11105
  init_auth();
11109
11106
  init_constants();
11110
11107
  init_useLayoutDataStore();
11111
- init_useLayoutStore();
11112
11108
  init_Expandable2();
11113
11109
  init_button();
11114
11110
  init_highlight();
@@ -11123,16 +11119,14 @@ var init_AuthMenu = __esm({
11123
11119
  AuthMenu = () => {
11124
11120
  const { t } = useT();
11125
11121
  const isIframeReady = useSession((st) => st.isIframeReady);
11126
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
11127
- const setTransitionPageHeight = useLayoutDataStore((st) => st.setTransitionPageHeight);
11128
11122
  const pendingWalletLogin = useLayoutDataStore((st) => st.pendingWalletLogin);
11129
- const setPendingWalletLogin = useLayoutDataStore((st) => st.setPendingWalletLogin);
11130
- const { step, alert: alert2, setStep, setPasskeyStatus, setEmail, setEmailChallenge, setAlert } = useAuthStore();
11123
+ const step = useAuthStore((st) => st.step);
11124
+ const alert2 = useAuthStore((st) => st.alert);
11131
11125
  const { pendingLoginResponseRef, onAuthSuccess, goBackToSignIn } = useAuthMenuHandlers();
11132
11126
  (0, import_react23.useEffect)(() => {
11133
11127
  if (!pendingWalletLogin) return;
11134
11128
  const loginResponse = pendingWalletLogin;
11135
- setPendingWalletLogin(null);
11129
+ useLayoutDataStore.getState().setPendingWalletLogin(null);
11136
11130
  console.log("[AuthMenu] Processing wallet login response:", loginResponse);
11137
11131
  import_auth23.jwtTokenManager.clearTokens().then(() => {
11138
11132
  pendingLoginResponseRef.current = loginResponse;
@@ -11140,8 +11134,9 @@ var init_AuthMenu = __esm({
11140
11134
  });
11141
11135
  }, [pendingWalletLogin]);
11142
11136
  (0, import_react23.useEffect)(() => {
11143
- setTransitionPageHeight(DEFAULT_AUTH_MENU_HEIGHT);
11137
+ useLayoutDataStore.getState().setTransitionPageHeight(DEFAULT_AUTH_MENU_HEIGHT);
11144
11138
  return () => {
11139
+ const { setStep, setPasskeyStatus, setEmail, setEmailChallenge, setAlert } = useAuthStore.getState();
11145
11140
  setStep("signin");
11146
11141
  setEmail("");
11147
11142
  setEmailChallenge(null);
@@ -11150,7 +11145,7 @@ var init_AuthMenu = __esm({
11150
11145
  };
11151
11146
  }, []);
11152
11147
  if (!isIframeReady) {
11153
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "w-full p-8 flex flex-col justify-center items-center gap-[var(--ui-kit-gap)]", children: [
11148
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Expandable, { isExpanded: true, className: "w-full p-8 flex flex-col justify-center items-center gap-[var(--ui-kit-gap)]", children: [
11154
11149
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_lucide_react9.Loader, { className: "w-4 h-4 animate-spin" }),
11155
11150
  /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: "Initializing wallet..." })
11156
11151
  ] });
@@ -11172,26 +11167,25 @@ var init_AuthMenu = __esm({
11172
11167
  }),
11173
11168
  [onAuthSuccess, goBackToSignIn]
11174
11169
  );
11175
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
11176
- "div",
11177
- {
11178
- style: {
11179
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
11180
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
11181
- },
11182
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
11183
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
11184
- stepContent[step],
11185
- alert2 && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Highlight, { type: "error", children: [
11186
- /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "block w-full flex flex-col gap-1 flex-1 mb-2", children: [
11187
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "block font-bold leading-5", children: alert2.title }),
11188
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "block whitespace-pre-line", children: alert2.message || "Unknown error" })
11189
- ] }),
11190
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Button, { variant: "default", size: "medium", className: "w-full", onClick: () => setAlert(null), children: t("passport:common.hide") })
11191
- ] })
11192
- ] })
11193
- }
11194
- );
11170
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
11171
+ stepContent[step],
11172
+ alert2 && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(Highlight, { type: "error", children: [
11173
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "block w-full flex flex-col gap-1 flex-1 mb-2", children: [
11174
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "block font-bold leading-5", children: alert2.title }),
11175
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "block whitespace-pre-line", children: alert2.message || "Unknown error" })
11176
+ ] }),
11177
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
11178
+ Button,
11179
+ {
11180
+ variant: "default",
11181
+ size: "medium",
11182
+ className: "w-full",
11183
+ onClick: () => useAuthStore.getState().setAlert(null),
11184
+ children: t("passport:common.hide")
11185
+ }
11186
+ )
11187
+ ] })
11188
+ ] });
11195
11189
  };
11196
11190
  }
11197
11191
  });
@@ -12683,11 +12677,12 @@ var init_components = __esm({
12683
12677
  var BUY_MENU_BINANCE_TOUR;
12684
12678
  var init_onboarding_setup = __esm({
12685
12679
  "src/internal/components/BuyMenu/onboarding.setup.ts"() {
12680
+ init_constants();
12686
12681
  init_useBinanceStore();
12687
12682
  init_useBuyMenuStore();
12688
12683
  BUY_MENU_BINANCE_TOUR = [
12689
12684
  {
12690
- elId: "buymenu-page" /* buymenu */,
12685
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"buy" /* BUY */}`,
12691
12686
  title: "passport:buyMenu.onboarding.buyMenu.title",
12692
12687
  description: "passport:buyMenu.onboarding.buyMenu.description",
12693
12688
  waitSecs: 6,
@@ -13865,7 +13860,7 @@ function FinchPayTxHistoryItem(props) {
13865
13860
  "relative",
13866
13861
  "w-full p-[var(--ui-kit-pd)]",
13867
13862
  "rounded-[var(--ui-kit-el-bdrs)]",
13868
- "bg-[var(--ui-kit-secondary-h)]"
13863
+ "bg-[var(--ui-kit-secondary)]"
13869
13864
  ),
13870
13865
  children: [
13871
13866
  /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
@@ -14494,7 +14489,6 @@ var init_useHandleInputAmount = __esm({
14494
14489
  function BuyMenu() {
14495
14490
  const { t } = useT();
14496
14491
  const walletAddress = useSession((st) => st.address);
14497
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
14498
14492
  useBuyMenuParams();
14499
14493
  useHandleInputAmount();
14500
14494
  const rampProvider = useBuyMenuStore((st) => st.rampProvider);
@@ -14510,103 +14504,92 @@ function BuyMenu() {
14510
14504
  const showExtras = !isCryptoSelector && !isFiatSelector && !isProviderSummary && !isProviderSelector && !isPaymentModeSelector;
14511
14505
  const showProviderTrigger = showExtras && !isTransactionHistory;
14512
14506
  useOnboardingTourAvailable(showProviderTrigger);
14513
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
14514
- "div",
14515
- {
14516
- ref: (inst) => onboarder.registerElement("buymenu-page" /* buymenu */, inst),
14517
- style: {
14518
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
14519
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
14520
- },
14521
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
14522
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Expandable, { isExpanded: true, contentClassName: "relative w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
14523
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
14524
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
14525
- Button,
14526
- {
14527
- variant: "ghost",
14528
- size: "icon",
14529
- className: "flex-none",
14530
- onClick: () => {
14531
- const {
14532
- setIsProviderSummary,
14533
- setIsTransactionHistory,
14534
- setIsProviderSelector,
14535
- setIsCryptoSelector,
14536
- setIsFiatSelector,
14537
- setIsPaymentModeSelector,
14538
- setError
14539
- } = useBuyMenuStore.getState();
14540
- setError(null);
14541
- if (isProviderSummary) {
14542
- setIsProviderSummary(false);
14543
- return;
14544
- }
14545
- if (isTransactionHistory) {
14546
- setIsTransactionHistory(false);
14547
- return;
14548
- }
14549
- if (isProviderSelector) {
14550
- setIsProviderSelector(false);
14551
- return;
14552
- }
14553
- if (isCryptoSelector) {
14554
- setIsCryptoSelector(false);
14555
- return;
14556
- }
14557
- if (isFiatSelector) {
14558
- setIsFiatSelector(false);
14559
- return;
14560
- }
14561
- if (isPaymentModeSelector) {
14562
- setIsPaymentModeSelector(false);
14563
- return;
14564
- }
14565
- useLayoutDataStore.getState().setPage("main-menu" /* MAIN_MENU */);
14566
- },
14567
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react20.ArrowLeft, { className: "h-4 w-4" })
14507
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(Expandable, { isExpanded: true, contentClassName: "relative w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
14508
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
14509
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
14510
+ Button,
14511
+ {
14512
+ variant: "ghost",
14513
+ size: "icon",
14514
+ className: "flex-none",
14515
+ onClick: () => {
14516
+ const {
14517
+ setIsProviderSummary,
14518
+ setIsTransactionHistory,
14519
+ setIsProviderSelector,
14520
+ setIsCryptoSelector,
14521
+ setIsFiatSelector,
14522
+ setIsPaymentModeSelector,
14523
+ setError
14524
+ } = useBuyMenuStore.getState();
14525
+ setError(null);
14526
+ if (isProviderSummary) {
14527
+ setIsProviderSummary(false);
14528
+ return;
14568
14529
  }
14569
- ),
14570
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "block flex-none text-xl font-semibold", children: t("passport:buyMenu.title") }),
14571
- showExtras && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex-1 h-8 flex items-center justify-end gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
14572
- Switch,
14573
- {
14574
- labels: { checked: "PURCHASE", unchecked: "HISTORY" },
14575
- checked: isTransactionHistory,
14576
- onChange: () => {
14577
- useBuyMenuStore.getState().setError(null);
14578
- useBuyMenuStore.getState().setIsTransactionHistory();
14579
- }
14530
+ if (isTransactionHistory) {
14531
+ setIsTransactionHistory(false);
14532
+ return;
14580
14533
  }
14581
- ) })
14582
- ] }),
14583
- showProviderTrigger && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
14584
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:buyMenu.selectProvider") }),
14585
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
14586
- Button,
14587
- {
14588
- ref: (inst) => onboarder.registerElement("buymenu-provider-selector" /* providerSelector */, inst),
14589
- variant: !!selectedProvider?.id ? "default" : "secondary",
14590
- onClick: () => {
14591
- useBuyMenuStore.getState().setError(null);
14592
- useBuyMenuStore.getState().setIsProviderSelector(true);
14593
- },
14594
- className: cn2("w-full justify-center", {
14595
- [ACTIVE_PROVIDER_CNS[selectedProvider?.id]]: rampProvider === selectedProvider?.id,
14596
- [IDLE_PROVIDERS_CNS[selectedProvider?.id]]: rampProvider !== selectedProvider?.id
14597
- }),
14598
- children: [
14599
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(selectedProvider.icon, {}),
14600
- !selectedProvider.icon && t("passport:buyMenu.selectProvider")
14601
- ]
14534
+ if (isProviderSelector) {
14535
+ setIsProviderSelector(false);
14536
+ return;
14602
14537
  }
14603
- )
14604
- ] }),
14605
- isProviderSelector ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ProviderSelector, { providers: AVAILABLE_RAMP_PROVIDERS.map((el) => ({ ...el, Icon: el.icon })) }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ProviderComponent, { walletAddress }),
14606
- error && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Highlight, { type: "error", children: error })
14607
- ] })
14608
- }
14609
- );
14538
+ if (isCryptoSelector) {
14539
+ setIsCryptoSelector(false);
14540
+ return;
14541
+ }
14542
+ if (isFiatSelector) {
14543
+ setIsFiatSelector(false);
14544
+ return;
14545
+ }
14546
+ if (isPaymentModeSelector) {
14547
+ setIsPaymentModeSelector(false);
14548
+ return;
14549
+ }
14550
+ useLayoutDataStore.getState().setPage("main-menu" /* MAIN_MENU */);
14551
+ },
14552
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_lucide_react20.ArrowLeft, { className: "h-4 w-4" })
14553
+ }
14554
+ ),
14555
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "block flex-none text-xl font-semibold", children: t("passport:buyMenu.title") }),
14556
+ showExtras && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "flex-1 h-8 flex items-center justify-end gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
14557
+ Switch,
14558
+ {
14559
+ labels: { checked: "PURCHASE", unchecked: "HISTORY" },
14560
+ checked: isTransactionHistory,
14561
+ onChange: () => {
14562
+ useBuyMenuStore.getState().setError(null);
14563
+ useBuyMenuStore.getState().setIsTransactionHistory();
14564
+ }
14565
+ }
14566
+ ) })
14567
+ ] }),
14568
+ showProviderTrigger && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
14569
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "block text-[10px] text-[var(--ui-kit-fg-muted)]", children: t("passport:buyMenu.selectProvider") }),
14570
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
14571
+ Button,
14572
+ {
14573
+ ref: (inst) => onboarder.registerElement("buymenu-provider-selector" /* providerSelector */, inst),
14574
+ variant: !!selectedProvider?.id ? "default" : "secondary",
14575
+ onClick: () => {
14576
+ useBuyMenuStore.getState().setError(null);
14577
+ useBuyMenuStore.getState().setIsProviderSelector(true);
14578
+ },
14579
+ className: cn2("w-full justify-center", {
14580
+ [ACTIVE_PROVIDER_CNS[selectedProvider?.id]]: rampProvider === selectedProvider?.id,
14581
+ [IDLE_PROVIDERS_CNS[selectedProvider?.id]]: rampProvider !== selectedProvider?.id
14582
+ }),
14583
+ children: [
14584
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(selectedProvider.icon, {}),
14585
+ !selectedProvider.icon && t("passport:buyMenu.selectProvider")
14586
+ ]
14587
+ }
14588
+ )
14589
+ ] }),
14590
+ isProviderSelector ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ProviderSelector, { providers: AVAILABLE_RAMP_PROVIDERS.map((el) => ({ ...el, Icon: el.icon })) }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(ProviderComponent, { walletAddress }),
14591
+ error && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(Highlight, { type: "error", children: error })
14592
+ ] });
14610
14593
  }
14611
14594
  var import_lucide_react20, import_jsx_runtime50;
14612
14595
  var init_BuyMenu = __esm({
@@ -14616,7 +14599,6 @@ var init_BuyMenu = __esm({
14616
14599
  init_i18n();
14617
14600
  import_lucide_react20 = require("lucide-react");
14618
14601
  init_useLayoutDataStore();
14619
- init_useLayoutStore();
14620
14602
  init_Expandable2();
14621
14603
  init_Onboarding();
14622
14604
  init_button();
@@ -14970,26 +14952,11 @@ var init_ChainItem = __esm({
14970
14952
  }
14971
14953
  });
14972
14954
 
14973
- // src/internal/components/ChainsMenu/onboarding.setup.ts
14974
- var CHAIN_MENU_TOUR;
14975
- var init_onboarding_setup2 = __esm({
14976
- "src/internal/components/ChainsMenu/onboarding.setup.ts"() {
14977
- CHAIN_MENU_TOUR = [
14978
- {
14979
- elId: "embarkai-chain-menu-onboarding" /* chainMenu */,
14980
- title: "passport:chainMenu.onboarding.chainMenu.title",
14981
- description: "passport:chainMenu.onboarding.chainMenu.description"
14982
- }
14983
- ];
14984
- }
14985
- });
14986
-
14987
14955
  // src/internal/components/ChainsMenu/ChainsMenu.tsx
14988
14956
  function ChainsMenu() {
14989
14957
  const { t } = useT();
14990
14958
  const config = useProviderConfig().config;
14991
14959
  const activeChainId = useSession((st) => st.activeChainId);
14992
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
14993
14960
  const [isTestnets, setIsTestnets] = (0, import_react37.useState)(false);
14994
14961
  const [nextChainId, setNextChainId] = (0, import_react37.useState)(null);
14995
14962
  useOnboardingTourAvailable(true);
@@ -15020,56 +14987,45 @@ function ChainsMenu() {
15020
14987
  chainId: activeChainId
15021
14988
  } : void 0
15022
14989
  });
15023
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
15024
- "div",
15025
- {
15026
- ref: (inst) => onboarder.registerElement("embarkai-chain-menu-onboarding" /* chainMenu */, inst),
15027
- style: {
15028
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
15029
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
15030
- },
15031
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
15032
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
15033
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
15034
- /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
15035
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
15036
- Button,
15037
- {
15038
- size: "icon",
15039
- variant: "ghost",
15040
- title: t("passport:common.back"),
15041
- onClick: () => {
15042
- const chainMenuOpenedFrom = useLayoutDataStore.getState().chainMenuOpenedFrom;
15043
- useLayoutDataStore.getState().setPage(chainMenuOpenedFrom || "settings" /* SETTINGS */);
15044
- },
15045
- children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react22.ArrowLeft, { className: "h-4 w-4" })
15046
- }
15047
- ),
15048
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold", children: t("passport:chainMenu.title") })
15049
- ] }),
15050
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
15051
- Switch,
15052
- {
15053
- labels: { checked: "MAINNETS", unchecked: "ALL" },
15054
- checked: isTestnets,
15055
- onChange: () => setIsTestnets(!isTestnets)
15056
- }
15057
- )
15058
- ] }),
15059
- /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: visibleNetworks.map((network, networkIdx) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
15060
- ChainItem,
14990
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
14991
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
14992
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
14993
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
14994
+ Button,
15061
14995
  {
15062
- ...network,
15063
- nextChainId,
15064
- setNextChainId,
15065
- isActivePaymasterDataLoading,
15066
- activePaymasterData
15067
- },
15068
- `chain-${network.chainId}-${networkIdx}`
15069
- )) })
15070
- ] })
15071
- }
15072
- );
14996
+ size: "icon",
14997
+ variant: "ghost",
14998
+ title: t("passport:common.back"),
14999
+ onClick: () => {
15000
+ const chainMenuOpenedFrom = useLayoutDataStore.getState().chainMenuOpenedFrom;
15001
+ useLayoutDataStore.getState().setPage(chainMenuOpenedFrom || "settings" /* SETTINGS */);
15002
+ },
15003
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_lucide_react22.ArrowLeft, { className: "h-4 w-4" })
15004
+ }
15005
+ ),
15006
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-xl font-semibold", children: t("passport:chainMenu.title") })
15007
+ ] }),
15008
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
15009
+ Switch,
15010
+ {
15011
+ labels: { checked: "MAINNETS", unchecked: "ALL" },
15012
+ checked: isTestnets,
15013
+ onChange: () => setIsTestnets(!isTestnets)
15014
+ }
15015
+ )
15016
+ ] }),
15017
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: visibleNetworks.map((network, networkIdx) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
15018
+ ChainItem,
15019
+ {
15020
+ ...network,
15021
+ nextChainId,
15022
+ setNextChainId,
15023
+ isActivePaymasterDataLoading,
15024
+ activePaymasterData
15025
+ },
15026
+ `chain-${network.chainId}-${networkIdx}`
15027
+ )) })
15028
+ ] });
15073
15029
  }
15074
15030
  var import_core3, import_read15, import_react_query15, import_lucide_react22, import_react37, import_jsx_runtime58;
15075
15031
  var init_ChainsMenu = __esm({
@@ -15085,7 +15041,6 @@ var init_ChainsMenu = __esm({
15085
15041
  import_react37 = require("react");
15086
15042
  init_resolve_paymaster();
15087
15043
  init_useLayoutDataStore();
15088
- init_useLayoutStore();
15089
15044
  init_Expandable2();
15090
15045
  init_Onboarding();
15091
15046
  init_button();
@@ -15101,71 +15056,60 @@ function ChainSwitchRequest() {
15101
15056
  const config = useProviderConfig().config;
15102
15057
  const isLoading = useSession((st) => st.isLoading);
15103
15058
  const chainConfig = useSession((st) => st.chainConfig);
15104
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
15105
15059
  const prefferedChain = NETWORK_OPTIONS.find((ch) => ch.chainId === config.current?.network?.chainId) || null;
15106
15060
  const PrefferedChainIcon = prefferedChain?.Icon || (() => null);
15107
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
15108
- "div",
15109
- {
15110
- style: {
15111
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
15112
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
15113
- },
15114
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
15115
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
15116
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
15117
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
15118
- Button,
15119
- {
15120
- size: "icon",
15121
- variant: "ghost",
15122
- title: t("passport:common.back"),
15123
- onClick: () => useLayoutDataStore.getState().setPage("settings" /* SETTINGS */),
15124
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react23.ArrowLeft, { className: "h-4 w-4" })
15125
- }
15126
- ),
15127
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-xl font-semibold", children: t("passport:chainMenu.chainSwitchRequest.title") })
15128
- ] }),
15129
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Highlight, { type: "info", className: "flex gap-[var(--ui-kit-gap)]", children: [
15130
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react23.Info, { className: "w-4 h-4 flex-none" }),
15131
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "block", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
15132
- import_react_i18next2.Trans,
15133
- {
15134
- i18nKey: "passport:chainMenu.chainSwitchRequest.description",
15135
- values: {
15136
- preferredChain: `${prefferedChain?.name || "N/A"}`,
15137
- currentChain: `${chainConfig?.name || "N/A"}`
15138
- },
15139
- components: {
15140
- br: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("br", {}),
15141
- b: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "font-bold" })
15142
- }
15143
- }
15144
- ) })
15145
- ] }),
15146
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
15147
- Button,
15148
- {
15149
- size: "large",
15150
- variant: "default",
15151
- className: "w-full",
15152
- disabled: isLoading,
15153
- onClick: () => {
15154
- if (!config.current?.network?.chainId) return;
15155
- useSession.getState().setActiveChainId(config.current.network.chainId);
15156
- useLayoutDataStore.getState().setPage("chain" /* CHAIN */);
15157
- },
15158
- children: [
15159
- isLoading ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react23.Loader, { className: "w-6 h-6 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(PrefferedChainIcon, { className: "w-6 h-6" }),
15160
- t("passport:chainMenu.chainSwitchRequest.confirmButton", {
15161
- chain: `${prefferedChain?.name || "N/A"}`
15162
- })
15163
- ]
15061
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
15062
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
15063
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
15064
+ Button,
15065
+ {
15066
+ size: "icon",
15067
+ variant: "ghost",
15068
+ title: t("passport:common.back"),
15069
+ onClick: () => useLayoutDataStore.getState().setPage("settings" /* SETTINGS */),
15070
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react23.ArrowLeft, { className: "h-4 w-4" })
15071
+ }
15072
+ ),
15073
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "text-xl font-semibold", children: t("passport:chainMenu.chainSwitchRequest.title") })
15074
+ ] }),
15075
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(Highlight, { type: "info", className: "flex gap-[var(--ui-kit-gap)]", children: [
15076
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react23.Info, { className: "w-4 h-4 flex-none" }),
15077
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "block", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
15078
+ import_react_i18next2.Trans,
15079
+ {
15080
+ i18nKey: "passport:chainMenu.chainSwitchRequest.description",
15081
+ values: {
15082
+ preferredChain: `${prefferedChain?.name || "N/A"}`,
15083
+ currentChain: `${chainConfig?.name || "N/A"}`
15084
+ },
15085
+ components: {
15086
+ br: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("br", {}),
15087
+ b: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("span", { className: "font-bold" })
15164
15088
  }
15165
- )
15166
- ] })
15167
- }
15168
- );
15089
+ }
15090
+ ) })
15091
+ ] }),
15092
+ /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
15093
+ Button,
15094
+ {
15095
+ size: "large",
15096
+ variant: "default",
15097
+ className: "w-full",
15098
+ disabled: isLoading,
15099
+ onClick: () => {
15100
+ if (!config.current?.network?.chainId) return;
15101
+ useSession.getState().setActiveChainId(config.current.network.chainId);
15102
+ useLayoutDataStore.getState().setPage("chain" /* CHAIN */);
15103
+ },
15104
+ children: [
15105
+ isLoading ? /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_lucide_react23.Loader, { className: "w-6 h-6 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(PrefferedChainIcon, { className: "w-6 h-6" }),
15106
+ t("passport:chainMenu.chainSwitchRequest.confirmButton", {
15107
+ chain: `${prefferedChain?.name || "N/A"}`
15108
+ })
15109
+ ]
15110
+ }
15111
+ )
15112
+ ] });
15169
15113
  }
15170
15114
  var import_lucide_react23, import_react_i18next2, import_jsx_runtime59;
15171
15115
  var init_ChainSwitchRequest = __esm({
@@ -15177,7 +15121,6 @@ var init_ChainSwitchRequest = __esm({
15177
15121
  import_lucide_react23 = require("lucide-react");
15178
15122
  import_react_i18next2 = require("react-i18next");
15179
15123
  init_useLayoutDataStore();
15180
- init_useLayoutStore();
15181
15124
  init_Expandable2();
15182
15125
  init_button();
15183
15126
  init_highlight();
@@ -15185,6 +15128,21 @@ var init_ChainSwitchRequest = __esm({
15185
15128
  }
15186
15129
  });
15187
15130
 
15131
+ // src/internal/components/ChainsMenu/onboarding.setup.ts
15132
+ var CHAIN_MENU_TOUR;
15133
+ var init_onboarding_setup2 = __esm({
15134
+ "src/internal/components/ChainsMenu/onboarding.setup.ts"() {
15135
+ init_constants();
15136
+ CHAIN_MENU_TOUR = [
15137
+ {
15138
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"chain" /* CHAIN */}`,
15139
+ title: "passport:chainMenu.onboarding.chainMenu.title",
15140
+ description: "passport:chainMenu.onboarding.chainMenu.description"
15141
+ }
15142
+ ];
15143
+ }
15144
+ });
15145
+
15188
15146
  // src/internal/components/ChainsMenu/index.ts
15189
15147
  var init_ChainsMenu2 = __esm({
15190
15148
  "src/internal/components/ChainsMenu/index.ts"() {
@@ -16401,20 +16359,6 @@ var init_useLinkTelegram = __esm({
16401
16359
  }
16402
16360
  });
16403
16361
 
16404
- // src/internal/components/ManageWalletMenu/onboarding.setup.ts
16405
- var MANAGE_WALLET_MENU_TOUR;
16406
- var init_onboarding_setup3 = __esm({
16407
- "src/internal/components/ManageWalletMenu/onboarding.setup.ts"() {
16408
- MANAGE_WALLET_MENU_TOUR = [
16409
- {
16410
- elId: "embarkai-profiles-menu-onboarding" /* profilesMenu */,
16411
- title: "passport:profilesMenu.onboarding.profilesMenu.title",
16412
- description: "passport:profilesMenu.onboarding.profilesMenu.description"
16413
- }
16414
- ];
16415
- }
16416
- });
16417
-
16418
16362
  // src/internal/components/ManageWalletMenu/ProviderCard.tsx
16419
16363
  function getProviderCaption(provider) {
16420
16364
  const providerName = provider.provider;
@@ -16589,7 +16533,6 @@ function ManageWalletMenu() {
16589
16533
  const config = useProviderConfig().config;
16590
16534
  const { t } = useT();
16591
16535
  const { open: openEmbarkAI } = useOpenPage();
16592
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
16593
16536
  const {
16594
16537
  alert: alert2,
16595
16538
  providerType,
@@ -16684,66 +16627,54 @@ function ManageWalletMenu() {
16684
16627
  const showExtraProvidersUi = !isProvidersLoading && !providersError && (providerType === "email" || providerType === "passkey");
16685
16628
  useOnboardingTourAvailable(!showExtraProvidersUi && providerType === null);
16686
16629
  const combinedAlertMessage = alert2?.message || providersError?.message || null;
16687
- return /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16688
- "div",
16689
- {
16690
- ref: (inst) => onboarder.registerElement("embarkai-profiles-menu-onboarding" /* profilesMenu */, inst),
16691
- style: {
16692
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
16693
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
16694
- },
16695
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
16696
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
16697
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] w-full justify-between", children: [
16698
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
16699
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16700
- Button,
16701
- {
16702
- variant: "ghost",
16703
- size: "icon",
16704
- title: t("passport:common.back"),
16705
- disabled: linkIsLoading,
16706
- onClick: () => {
16707
- setAlert(null);
16708
- if (providerType === "email") {
16709
- setEmail("");
16710
- setEmailCode("");
16711
- setEmailStep("input");
16712
- setEmailCodeExpiresAt(0);
16713
- }
16714
- if (!providerType) useLayoutDataStore.getState().setPage("settings" /* SETTINGS */);
16715
- setProviderType(null);
16716
- },
16717
- children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react29.ArrowLeft, { className: "h-4 w-4" })
16718
- }
16719
- ),
16720
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xl font-semibold", children: t("passport:profilesMenu.title") })
16721
- ] }),
16722
- linkIsLoading && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react29.LoaderIcon, { className: "w-4 h-4 animate-spin text-[var(--ui-kit-fg-muted)]" })
16630
+ return /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
16631
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] w-full justify-between", children: [
16632
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
16633
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(
16634
+ Button,
16635
+ {
16636
+ variant: "ghost",
16637
+ size: "icon",
16638
+ title: t("passport:common.back"),
16639
+ disabled: linkIsLoading,
16640
+ onClick: () => {
16641
+ setAlert(null);
16642
+ if (providerType === "email") {
16643
+ setEmail("");
16644
+ setEmailCode("");
16645
+ setEmailStep("input");
16646
+ setEmailCodeExpiresAt(0);
16647
+ }
16648
+ if (!providerType) useLayoutDataStore.getState().setPage("settings" /* SETTINGS */);
16649
+ setProviderType(null);
16650
+ },
16651
+ children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react29.ArrowLeft, { className: "h-4 w-4" })
16652
+ }
16653
+ ),
16654
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("span", { className: "text-xl font-semibold", children: t("passport:profilesMenu.title") })
16655
+ ] }),
16656
+ linkIsLoading && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react29.LoaderIcon, { className: "w-4 h-4 animate-spin text-[var(--ui-kit-fg-muted)]" })
16657
+ ] }),
16658
+ isProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex items-center justify-center p-4 text-[var(--ui-kit-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react29.Loader, { className: "w-4 h-4 animate-spin" }) }),
16659
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(EmailNotConnectedWarning, {}),
16660
+ showCurrentProviders && renderProviders.map((node) => node),
16661
+ showExtraProvidersUi && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(AddProvider, {}),
16662
+ combinedAlertMessage && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Highlight, { type: "error", children: [
16663
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "break-words whitespace-pre-wrap mb-4", children: [
16664
+ alert2?.title && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
16665
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("strong", { children: alert2.title }),
16666
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("br", {})
16723
16667
  ] }),
16724
- isProvidersLoading && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("div", { className: "flex items-center justify-center p-4 text-[var(--ui-kit-fg-muted)]", children: /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(import_lucide_react29.Loader, { className: "w-4 h-4 animate-spin" }) }),
16725
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(EmailNotConnectedWarning, {}),
16726
- showCurrentProviders && renderProviders.map((node) => node),
16727
- showExtraProvidersUi && /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(AddProvider, {}),
16728
- combinedAlertMessage && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(Highlight, { type: "error", children: [
16729
- /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)("div", { className: "break-words whitespace-pre-wrap mb-4", children: [
16730
- alert2?.title && /* @__PURE__ */ (0, import_jsx_runtime69.jsxs)(import_jsx_runtime69.Fragment, { children: [
16731
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("strong", { children: alert2.title }),
16732
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)("br", {})
16733
- ] }),
16734
- combinedAlertMessage
16735
- ] }),
16736
- /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Button, { variant: "default", size: "medium", className: "w-full", onClick: () => setAlert(null), children: t("passport:common.hide") })
16737
- ] })
16738
- ] })
16739
- }
16740
- );
16668
+ combinedAlertMessage
16669
+ ] }),
16670
+ /* @__PURE__ */ (0, import_jsx_runtime69.jsx)(Button, { variant: "default", size: "medium", className: "w-full", onClick: () => setAlert(null), children: t("passport:common.hide") })
16671
+ ] })
16672
+ ] });
16741
16673
  }
16742
16674
  var import_lodash_es8, import_lucide_react29, import_react41, import_jsx_runtime69, POSSIBLE_PROVIDERS, MULTI_PROVIDERS;
16743
16675
  var init_ManageWallet = __esm({
16744
16676
  "src/internal/components/ManageWalletMenu/ManageWallet.tsx"() {
16745
16677
  init_useLayoutDataStore();
16746
- init_useLayoutStore();
16747
16678
  init_ProviderContext();
16748
16679
  init_useOpenPage();
16749
16680
  init_i18n();
@@ -16891,6 +16822,21 @@ var init_UnlinkProviderMenu = __esm({
16891
16822
  }
16892
16823
  });
16893
16824
 
16825
+ // src/internal/components/ManageWalletMenu/onboarding.setup.ts
16826
+ var MANAGE_WALLET_MENU_TOUR;
16827
+ var init_onboarding_setup3 = __esm({
16828
+ "src/internal/components/ManageWalletMenu/onboarding.setup.ts"() {
16829
+ init_constants();
16830
+ MANAGE_WALLET_MENU_TOUR = [
16831
+ {
16832
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"manage-wallet" /* MANAGE_WALLET */}`,
16833
+ title: "passport:profilesMenu.onboarding.profilesMenu.title",
16834
+ description: "passport:profilesMenu.onboarding.profilesMenu.description"
16835
+ }
16836
+ ];
16837
+ }
16838
+ });
16839
+
16894
16840
  // src/internal/components/ManageWalletMenu/index.ts
16895
16841
  var init_ManageWalletMenu = __esm({
16896
16842
  "src/internal/components/ManageWalletMenu/index.ts"() {
@@ -16941,7 +16887,6 @@ function ConnectExternalWalletMenu() {
16941
16887
  const { isConnected: isExternalWalletConnected } = (0, import_wagmi2.useConnection)();
16942
16888
  const { mutate: disconnect } = (0, import_wagmi2.useDisconnect)();
16943
16889
  const { mutateAsync: signMessageAsync } = (0, import_wagmi2.useSignMessage)();
16944
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
16945
16890
  const walletMenuOpenedFrom = useLayoutDataStore((st) => st.walletMenuOpenedFrom);
16946
16891
  const { data: providers = [] } = (0, import_react_query24.useQuery)({
16947
16892
  retry: false,
@@ -17157,69 +17102,59 @@ function ConnectExternalWalletMenu() {
17157
17102
  return t("passport:connectMenu.instructions.confirm");
17158
17103
  }
17159
17104
  }, [embarkAiAddress, t]);
17160
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
17161
- "div",
17162
- {
17163
- style: {
17164
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
17165
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
17166
- },
17167
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
17168
- children: /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
17169
- /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
17170
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
17171
- Button,
17172
- {
17173
- variant: "ghost",
17174
- size: "icon",
17175
- title: t("passport:common.back"),
17176
- disabled: isConnectingExternalWallet || isLoginOrLinkOrConnectWallet,
17177
- onClick: () => useLayoutDataStore.getState().setPage(walletMenuOpenedFrom ?? "main-menu" /* MAIN_MENU */),
17178
- children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react31.ArrowLeft, { className: "h-4 w-4" })
17105
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
17106
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
17107
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(
17108
+ Button,
17109
+ {
17110
+ variant: "ghost",
17111
+ size: "icon",
17112
+ title: t("passport:common.back"),
17113
+ disabled: isConnectingExternalWallet || isLoginOrLinkOrConnectWallet,
17114
+ onClick: () => useLayoutDataStore.getState().setPage(walletMenuOpenedFrom ?? "main-menu" /* MAIN_MENU */),
17115
+ children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react31.ArrowLeft, { className: "h-4 w-4" })
17116
+ }
17117
+ ),
17118
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-xl font-semibold", children: t("passport:connectMenu.connectWallet") })
17119
+ ] }),
17120
+ visibleConnectors.map((connector) => {
17121
+ const isConnectingThis = isConnectingExternalWallet && //@ts-expect-error uid exists
17122
+ pendingConnectVariables?.connector?.uid === connector.uid;
17123
+ const WalletIcon = WALLET_ICONS[connector.id] || import_lucide_react31.Wallet2Icon;
17124
+ return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
17125
+ Button,
17126
+ {
17127
+ variant: "secondary",
17128
+ size: "large",
17129
+ className: "w-full justify-center",
17130
+ disabled: isConnectingExternalWallet,
17131
+ onClick: async () => {
17132
+ if (isExternalWalletConnected) {
17133
+ disconnect();
17134
+ await new Promise((resolve) => setTimeout(resolve, 500));
17179
17135
  }
17180
- ),
17181
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { className: "text-xl font-semibold", children: t("passport:connectMenu.connectWallet") })
17182
- ] }),
17183
- visibleConnectors.map((connector) => {
17184
- const isConnectingThis = isConnectingExternalWallet && //@ts-expect-error uid exists
17185
- pendingConnectVariables?.connector?.uid === connector.uid;
17186
- const WalletIcon = WALLET_ICONS[connector.id] || import_lucide_react31.Wallet2Icon;
17187
- return /* @__PURE__ */ (0, import_jsx_runtime71.jsxs)(
17188
- Button,
17189
- {
17190
- variant: "secondary",
17191
- size: "large",
17192
- className: "w-full justify-center",
17193
- disabled: isConnectingExternalWallet,
17194
- onClick: async () => {
17195
- if (isExternalWalletConnected) {
17196
- disconnect();
17197
- await new Promise((resolve) => setTimeout(resolve, 500));
17198
- }
17199
- useLayoutStore.getState().setIsDialogForced(true);
17200
- connect({ connector });
17201
- },
17202
- children: [
17203
- isConnectingThis ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "w-6 h-6 flex-none flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react31.Loader, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(WalletIcon, { className: "w-6 h-6 flex-none" }),
17204
- /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { children: connector.name })
17205
- ]
17206
- },
17207
- connector.uid
17208
- );
17209
- }),
17210
- isConnectingExternalWallet && !!pendingConnectVariables?.connector && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Highlight, {
17211
- type: "warning",
17212
- // @ts-expect-error i18n typing
17213
- children: t("passport:connectMenu.instructions.follow", {
17214
- wallet: pendingConnectVariables.connector.name,
17215
- steps: getInstructionSteps()
17216
- })
17217
- }),
17218
- visibleConnectors.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Highlight, { type: "info", children: t("passport:connectMenu.noWallets") }),
17219
- error && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Highlight, { type: "error", children: error.message })
17220
- ] })
17221
- }
17222
- );
17136
+ useLayoutStore.getState().setIsDialogForced(true);
17137
+ connect({ connector });
17138
+ },
17139
+ children: [
17140
+ isConnectingThis ? /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("div", { className: "w-6 h-6 flex-none flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(import_lucide_react31.Loader, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(WalletIcon, { className: "w-6 h-6 flex-none" }),
17141
+ /* @__PURE__ */ (0, import_jsx_runtime71.jsx)("span", { children: connector.name })
17142
+ ]
17143
+ },
17144
+ connector.uid
17145
+ );
17146
+ }),
17147
+ isConnectingExternalWallet && !!pendingConnectVariables?.connector && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Highlight, {
17148
+ type: "warning",
17149
+ // @ts-expect-error i18n typing
17150
+ children: t("passport:connectMenu.instructions.follow", {
17151
+ wallet: pendingConnectVariables.connector.name,
17152
+ steps: getInstructionSteps()
17153
+ })
17154
+ }),
17155
+ visibleConnectors.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Highlight, { type: "info", children: t("passport:connectMenu.noWallets") }),
17156
+ error && /* @__PURE__ */ (0, import_jsx_runtime71.jsx)(Highlight, { type: "error", children: error.message })
17157
+ ] });
17223
17158
  }
17224
17159
  var import_react_query24, import_lucide_react31, import_react44, import_wagmi2, import_jsx_runtime71;
17225
17160
  var init_ConnectExternalWalletMenu = __esm({
@@ -17399,7 +17334,6 @@ function getErrorMessage(err) {
17399
17334
  }
17400
17335
  function DeviceLinkScreen() {
17401
17336
  const setPage = useLayoutDataStore((s) => s.setPage);
17402
- const maxScrollHeight = useLayoutStore((s) => s.maxScrollHeight);
17403
17337
  const { mutate: link, isPending } = useLinkDevice();
17404
17338
  const [code, setCode] = (0, import_react46.useState)("");
17405
17339
  const [error, setError] = (0, import_react46.useState)(null);
@@ -17421,56 +17355,38 @@ function DeviceLinkScreen() {
17421
17355
  }
17422
17356
  });
17423
17357
  }
17424
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
17425
- "div",
17426
- {
17427
- style: { "--ui-kit-scrollbar-mah": `${maxScrollHeight}px` },
17428
- className: "list-scrollbar-y w-full",
17429
- children: /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
17430
- /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
17431
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => setPage("devices" /* DEVICES */), children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react32.ArrowLeft, { className: "h-4 w-4 flex-none" }) }),
17432
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "text-xl font-semibold", children: "Link Device" })
17433
- ] }),
17434
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: "On your device: Long press to link smart wallet. Then enter the 6-character code shown on screen." }),
17435
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
17436
- "input",
17437
- {
17438
- type: "text",
17439
- value: code,
17440
- onChange: (e) => handleCodeChange(e.target.value),
17441
- onKeyDown: (e) => e.key === "Enter" && handleLink(),
17442
- placeholder: "XXXXXX",
17443
- autoFocus: true,
17444
- maxLength: 6,
17445
- className: "w-full text-center text-2xl tracking-[0.3em] font-mono px-4 py-3 rounded-lg\n bg-[var(--ui-kit-bg)] text-[var(--ui-kit-fg)]\n border border-[var(--ui-kit-bd)] focus:outline-none focus:border-[var(--ui-kit-primary)]\n uppercase"
17446
- }
17447
- ),
17448
- error && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "text-sm text-[var(--ui-kit-bg-error)]", children: error }),
17449
- /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
17450
- Button,
17451
- {
17452
- variant: "default",
17453
- size: "large",
17454
- className: "w-full",
17455
- disabled: !isValid || isPending,
17456
- onClick: handleLink,
17457
- children: isPending ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react32.Loader2, { className: "w-4 h-4 animate-spin" }) : "Link"
17458
- }
17459
- )
17460
- ] })
17461
- }
17462
- );
17358
+ return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
17359
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
17360
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => setPage("devices" /* DEVICES */), children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react32.ArrowLeft, { className: "h-4 w-4 flex-none" }) }),
17361
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("span", { className: "text-xl font-semibold", children: "Link Device" })
17362
+ ] }),
17363
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "text-sm text-[var(--ui-kit-fg-muted)]", children: "On your device: Long press to link smart wallet. Then enter the 6-character code shown on screen." }),
17364
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(
17365
+ "input",
17366
+ {
17367
+ type: "text",
17368
+ value: code,
17369
+ onChange: (e) => handleCodeChange(e.target.value),
17370
+ onKeyDown: (e) => e.key === "Enter" && handleLink(),
17371
+ placeholder: "XXXXXX",
17372
+ autoFocus: true,
17373
+ maxLength: 6,
17374
+ className: "w-full text-center text-2xl tracking-[0.3em] font-mono px-4 py-3 rounded-lg\n bg-[var(--ui-kit-bg)] text-[var(--ui-kit-fg)]\n border border-[var(--ui-kit-bd)] focus:outline-none focus:border-[var(--ui-kit-primary)]\n uppercase"
17375
+ }
17376
+ ),
17377
+ error && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("p", { className: "text-sm text-[var(--ui-kit-bg-error)]", children: error }),
17378
+ /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Button, { variant: "default", size: "large", className: "w-full", disabled: !isValid || isPending, onClick: handleLink, children: isPending ? /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(import_lucide_react32.Loader2, { className: "w-4 h-4 animate-spin" }) : "Link" })
17379
+ ] });
17463
17380
  }
17464
- var import_react46, import_lucide_react32, import_jsx_runtime72, VALID_CHARS;
17381
+ var import_lucide_react32, import_react46, import_jsx_runtime72, VALID_CHARS;
17465
17382
  var init_DeviceLinkScreen = __esm({
17466
17383
  "src/internal/components/DevicesMenu/DeviceLinkScreen.tsx"() {
17467
- import_react46 = require("react");
17468
17384
  import_lucide_react32 = require("lucide-react");
17385
+ import_react46 = require("react");
17386
+ init_devices();
17387
+ init_useLayoutDataStore();
17469
17388
  init_Expandable2();
17470
17389
  init_button();
17471
- init_useLayoutDataStore();
17472
- init_useLayoutStore();
17473
- init_devices();
17474
17390
  import_jsx_runtime72 = require("react/jsx-runtime");
17475
17391
  VALID_CHARS = /^[A-HJ-NP-Z2-9]*$/;
17476
17392
  }
@@ -18001,7 +17917,6 @@ function formatSize(bytes) {
18001
17917
  function DeviceManageScreen() {
18002
17918
  const setPage = useLayoutDataStore((s) => s.setPage);
18003
17919
  const pageParams = useLayoutDataStore((s) => s.pageParams);
18004
- const maxScrollHeight = useLayoutStore((s) => s.maxScrollHeight);
18005
17920
  const session = useSession((st) => st.session);
18006
17921
  const userId = session?.mpcUserId || "";
18007
17922
  const deviceId = pageParams?.deviceId;
@@ -18103,185 +18018,204 @@ function DeviceManageScreen() {
18103
18018
  setActionState(null);
18104
18019
  }
18105
18020
  }, [password, userId, refreshList]);
18106
- const handleDelete = (0, import_react47.useCallback)(async (keyshareId) => {
18107
- const guardian = guardianRef.current;
18108
- if (!guardian) return;
18109
- setActionState({ action: "delete", keyshareId, substep: "confirm-device" });
18110
- setErrorMessage(null);
18111
- setWaitingConfirm(true);
18112
- try {
18113
- await deleteFromGuardian(guardian, keyshareId);
18114
- setWaitingConfirm(false);
18115
- setStatusMessage("Keyshare deleted.");
18116
- setActionState(null);
18117
- await refreshList();
18118
- } catch (err) {
18119
- setWaitingConfirm(false);
18120
- setErrorMessage(err.message);
18121
- setActionState(null);
18122
- }
18123
- }, [refreshList]);
18021
+ const handleDelete = (0, import_react47.useCallback)(
18022
+ async (keyshareId) => {
18023
+ const guardian = guardianRef.current;
18024
+ if (!guardian) return;
18025
+ setActionState({ action: "delete", keyshareId, substep: "confirm-device" });
18026
+ setErrorMessage(null);
18027
+ setWaitingConfirm(true);
18028
+ try {
18029
+ await deleteFromGuardian(guardian, keyshareId);
18030
+ setWaitingConfirm(false);
18031
+ setStatusMessage("Keyshare deleted.");
18032
+ setActionState(null);
18033
+ await refreshList();
18034
+ } catch (err) {
18035
+ setWaitingConfirm(false);
18036
+ setErrorMessage(err.message);
18037
+ setActionState(null);
18038
+ }
18039
+ },
18040
+ [refreshList]
18041
+ );
18124
18042
  const isWorking = actionState?.substep === "working" || actionState?.substep === "confirm-device";
18125
- return /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18126
- "div",
18127
- {
18128
- style: { "--ui-kit-scrollbar-mah": `${maxScrollHeight}px` },
18129
- className: "list-scrollbar-y w-full",
18130
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
18131
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
18132
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => {
18043
+ return /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
18044
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
18045
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18046
+ Button,
18047
+ {
18048
+ variant: "ghost",
18049
+ size: "icon",
18050
+ onClick: () => {
18133
18051
  guardianRef.current?.close();
18134
18052
  setPage("devices" /* DEVICES */);
18135
- }, children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.ArrowLeft, { className: "h-4 w-4 flex-none" }) }),
18136
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.HardDrive, { className: "h-5 w-5 flex-none" }),
18137
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-xl font-semibold", children: deviceName || "Guardian" }),
18138
- screen.step === "connected" && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("span", { className: "text-xs text-[var(--ui-kit-fg-muted)] ml-auto", children: [
18139
- "v",
18140
- screen.info.fwVer
18141
- ] })
18142
- ] }),
18143
- waitingConfirm && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-2 p-3 rounded-lg bg-[var(--ui-kit-bg)] text-sm animate-pulse", children: [
18144
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Loader2, { className: "w-4 h-4 animate-spin" }),
18145
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: "Confirm on your device..." })
18053
+ },
18054
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.ArrowLeft, { className: "h-4 w-4 flex-none" })
18055
+ }
18056
+ ),
18057
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.HardDrive, { className: "h-5 w-5 flex-none" }),
18058
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-xl font-semibold", children: deviceName || "Guardian" }),
18059
+ screen.step === "connected" && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("span", { className: "text-xs text-[var(--ui-kit-fg-muted)] ml-auto", children: [
18060
+ "v",
18061
+ screen.info.fwVer
18062
+ ] })
18063
+ ] }),
18064
+ waitingConfirm && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-2 p-3 rounded-lg bg-[var(--ui-kit-bg)] text-sm animate-pulse", children: [
18065
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Loader2, { className: "w-4 h-4 animate-spin" }),
18066
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: "Confirm on your device..." })
18067
+ ] }),
18068
+ statusMessage && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "text-sm text-green-500 p-2", children: statusMessage }),
18069
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] p-2", children: errorMessage }),
18070
+ screen.step === "connecting" && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Loader2, { className: "w-6 h-6 animate-spin text-[var(--ui-kit-fg-muted)]" }) }),
18071
+ screen.step === "error" && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] text-center py-8", children: screen.message }),
18072
+ screen.step === "new-device" && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col items-center gap-4 py-8", children: [
18073
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Cpu, { className: "w-10 h-10 text-[var(--ui-kit-fg-muted)]" }),
18074
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "text-center", children: [
18075
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("p", { className: "text-sm font-semibold", children: "New device detected" }),
18076
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("p", { className: "text-xs text-[var(--ui-kit-fg-muted)] mt-1", children: [
18077
+ screen.info.deviceId,
18078
+ " \xB7 v",
18079
+ screen.info.fwVer
18080
+ ] })
18081
+ ] }),
18082
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18083
+ Button,
18084
+ {
18085
+ variant: "default",
18086
+ size: "large",
18087
+ className: "w-full",
18088
+ onClick: () => {
18089
+ setPage("device-link" /* DEVICE_LINK */);
18090
+ },
18091
+ children: "Link Device"
18092
+ }
18093
+ )
18094
+ ] }),
18095
+ screen.step === "connected" && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
18096
+ screen.keyshares.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "text-sm text-[var(--ui-kit-fg-muted)] text-center py-4", children: "No keyshares stored on this device" }),
18097
+ screen.keyshares.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "text-xs text-[var(--ui-kit-fg-muted)] text-right", children: [
18098
+ screen.keyshares.length,
18099
+ " keyshare",
18100
+ screen.keyshares.length > 1 ? "s" : "",
18101
+ " \xB7",
18102
+ " ",
18103
+ formatSize(screen.keyshares.reduce((s, e) => s + e.size, 0))
18104
+ ] }),
18105
+ screen.keyshares.map(({ id, size }) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-3 p-3 rounded-lg bg-[var(--ui-kit-bg)]", children: [
18106
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Cpu, { className: "w-5 h-5 text-[var(--ui-kit-fg-muted)] shrink-0" }),
18107
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex-1 min-w-0", children: [
18108
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-sm font-mono truncate block text-[var(--ui-kit-fg)]", children: id }),
18109
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-xs text-[var(--ui-kit-fg-muted)]", children: formatSize(size) })
18146
18110
  ] }),
18147
- statusMessage && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "text-sm text-green-500 p-2", children: statusMessage }),
18148
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] p-2", children: errorMessage }),
18149
- screen.step === "connecting" && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex justify-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Loader2, { className: "w-6 h-6 animate-spin text-[var(--ui-kit-fg-muted)]" }) }),
18150
- screen.step === "error" && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] text-center py-8", children: screen.message }),
18151
- screen.step === "new-device" && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex flex-col items-center gap-4 py-8", children: [
18152
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Cpu, { className: "w-10 h-10 text-[var(--ui-kit-fg-muted)]" }),
18153
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "text-center", children: [
18154
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("p", { className: "text-sm font-semibold", children: "New device detected" }),
18155
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("p", { className: "text-xs text-[var(--ui-kit-fg-muted)] mt-1", children: [
18156
- screen.info.deviceId,
18157
- " \xB7 v",
18158
- screen.info.fwVer
18159
- ] })
18160
- ] }),
18111
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18112
+ Button,
18113
+ {
18114
+ variant: "ghost",
18115
+ size: "icon",
18116
+ disabled: isWorking,
18117
+ onClick: () => {
18118
+ guardianRef.current?.close();
18119
+ const store = useLayoutDataStore.getState();
18120
+ store.setPageParams({ key: "device-restore" /* DEVICE_RESTORE */, keyshareId: id, deviceId, deviceName });
18121
+ store.setPage("device-restore" /* DEVICE_RESTORE */);
18122
+ },
18123
+ title: "Restore",
18124
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Download, { className: "w-4 h-4" })
18125
+ }
18126
+ ),
18127
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18128
+ Button,
18129
+ {
18130
+ variant: "ghost",
18131
+ size: "icon",
18132
+ disabled: isWorking,
18133
+ onClick: () => handleDelete(id),
18134
+ title: "Delete",
18135
+ className: "text-[var(--ui-kit-bg-error)]",
18136
+ children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Trash2, { className: "w-4 h-4" })
18137
+ }
18138
+ )
18139
+ ] }, id)),
18140
+ actionState?.action === "overwrite" && actionState.substep === "confirm" && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center justify-between gap-2 p-3 rounded-lg bg-[var(--ui-kit-bg)]", children: [
18141
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-sm", children: "Keyshare exists. Overwrite? (requires button press on device)" }),
18142
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-2", children: [
18161
18143
  /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18162
18144
  Button,
18163
18145
  {
18164
- variant: "default",
18165
- size: "large",
18166
- className: "w-full",
18146
+ variant: "ghost",
18147
+ size: "small",
18167
18148
  onClick: () => {
18168
- setPage("device-link" /* DEVICE_LINK */);
18169
- },
18170
- children: "Link Device"
18171
- }
18172
- )
18173
- ] }),
18174
- screen.step === "connected" && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(import_jsx_runtime73.Fragment, { children: [
18175
- screen.keyshares.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "text-sm text-[var(--ui-kit-fg-muted)] text-center py-4", children: "No keyshares stored on this device" }),
18176
- screen.keyshares.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "text-xs text-[var(--ui-kit-fg-muted)] text-right", children: [
18177
- screen.keyshares.length,
18178
- " keyshare",
18179
- screen.keyshares.length > 1 ? "s" : "",
18180
- " \xB7 ",
18181
- formatSize(screen.keyshares.reduce((s, e) => s + e.size, 0))
18182
- ] }),
18183
- screen.keyshares.map(({ id, size }) => /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center gap-3 p-3 rounded-lg bg-[var(--ui-kit-bg)]", children: [
18184
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Cpu, { className: "w-5 h-5 text-[var(--ui-kit-fg-muted)] shrink-0" }),
18185
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex-1 min-w-0", children: [
18186
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-sm font-mono truncate block text-[var(--ui-kit-fg)]", children: id }),
18187
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-xs text-[var(--ui-kit-fg-muted)]", children: formatSize(size) })
18188
- ] }),
18189
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18190
- Button,
18191
- {
18192
- variant: "ghost",
18193
- size: "icon",
18194
- disabled: isWorking,
18195
- onClick: () => {
18196
- guardianRef.current?.close();
18197
- const store = useLayoutDataStore.getState();
18198
- store.setPageParams({ key: "device-restore" /* DEVICE_RESTORE */, keyshareId: id, deviceId, deviceName });
18199
- store.setPage("device-restore" /* DEVICE_RESTORE */);
18200
- },
18201
- title: "Restore",
18202
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Download, { className: "w-4 h-4" })
18203
- }
18204
- ),
18205
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18206
- Button,
18207
- {
18208
- variant: "ghost",
18209
- size: "icon",
18210
- disabled: isWorking,
18211
- onClick: () => handleDelete(id),
18212
- title: "Delete",
18213
- className: "text-[var(--ui-kit-bg-error)]",
18214
- children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Trash2, { className: "w-4 h-4" })
18215
- }
18216
- )
18217
- ] }, id)),
18218
- actionState?.action === "overwrite" && actionState.substep === "confirm" && /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex items-center justify-between gap-2 p-3 rounded-lg bg-[var(--ui-kit-bg)]", children: [
18219
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { className: "text-sm", children: "Keyshare exists. Overwrite? (requires button press on device)" }),
18220
- /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-2", children: [
18221
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { variant: "ghost", size: "small", onClick: () => {
18222
18149
  setActionState(null);
18223
18150
  setPassword("");
18224
- }, children: "Cancel" }),
18225
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { variant: "outline", size: "small", onClick: handleOverwrite, children: "Overwrite" })
18226
- ] })
18227
- ] }),
18228
- actionState?.action === "backup" && actionState.substep === "password" ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-2", children: [
18229
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18230
- "input",
18231
- {
18232
- type: "password",
18233
- autoComplete: "one-time-code",
18234
- "data-1p-ignore": true,
18235
- "data-lpignore": "true",
18236
- value: password,
18237
- onChange: (e) => setPassword(e.target.value),
18238
- onKeyDown: (e) => e.key === "Enter" && password && handleBackup(),
18239
- placeholder: "Encryption password",
18240
- className: "flex-1 text-sm px-3 py-2 rounded-lg bg-[var(--ui-kit-bg)] border border-[var(--ui-kit-bd)] text-[var(--ui-kit-fg)] focus:outline-none focus:border-[var(--ui-kit-primary)]",
18241
- autoFocus: true
18242
- }
18243
- ),
18244
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { variant: "default", disabled: !password, onClick: handleBackup, children: "Backup" }),
18245
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { variant: "ghost", onClick: () => {
18246
- setActionState(null);
18247
- setPassword("");
18248
- }, children: "Cancel" })
18249
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
18250
- Button,
18251
- {
18252
- variant: "default",
18253
- size: "large",
18254
- className: "w-full",
18255
- disabled: isWorking,
18256
- onClick: () => {
18257
- setStatusMessage(null);
18258
- setErrorMessage(null);
18259
- setActionState({ action: "backup", substep: "password" });
18260
18151
  },
18261
- children: [
18262
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Upload, { className: "w-4 h-4" }),
18263
- /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: "Backup Current Keyshare" })
18264
- ]
18152
+ children: "Cancel"
18265
18153
  }
18266
18154
  ),
18267
- actionState?.substep === "working" && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Loader2, { className: "w-5 h-5 animate-spin" }) })
18155
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { variant: "outline", size: "small", onClick: handleOverwrite, children: "Overwrite" })
18268
18156
  ] })
18269
- ] })
18270
- }
18271
- );
18157
+ ] }),
18158
+ actionState?.action === "backup" && actionState.substep === "password" ? /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)("div", { className: "flex gap-2", children: [
18159
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18160
+ "input",
18161
+ {
18162
+ type: "password",
18163
+ autoComplete: "one-time-code",
18164
+ "data-1p-ignore": true,
18165
+ "data-lpignore": "true",
18166
+ value: password,
18167
+ onChange: (e) => setPassword(e.target.value),
18168
+ onKeyDown: (e) => e.key === "Enter" && password && handleBackup(),
18169
+ placeholder: "Encryption password",
18170
+ className: "flex-1 text-sm px-3 py-2 rounded-lg bg-[var(--ui-kit-bg)] border border-[var(--ui-kit-bd)] text-[var(--ui-kit-fg)] focus:outline-none focus:border-[var(--ui-kit-primary)]",
18171
+ autoFocus: true
18172
+ }
18173
+ ),
18174
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(Button, { variant: "default", disabled: !password, onClick: handleBackup, children: "Backup" }),
18175
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(
18176
+ Button,
18177
+ {
18178
+ variant: "ghost",
18179
+ onClick: () => {
18180
+ setActionState(null);
18181
+ setPassword("");
18182
+ },
18183
+ children: "Cancel"
18184
+ }
18185
+ )
18186
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime73.jsxs)(
18187
+ Button,
18188
+ {
18189
+ variant: "default",
18190
+ size: "large",
18191
+ className: "w-full",
18192
+ disabled: isWorking,
18193
+ onClick: () => {
18194
+ setStatusMessage(null);
18195
+ setErrorMessage(null);
18196
+ setActionState({ action: "backup", substep: "password" });
18197
+ },
18198
+ children: [
18199
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Upload, { className: "w-4 h-4" }),
18200
+ /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("span", { children: "Backup Current Keyshare" })
18201
+ ]
18202
+ }
18203
+ ),
18204
+ actionState?.substep === "working" && /* @__PURE__ */ (0, import_jsx_runtime73.jsx)("div", { className: "flex justify-center py-2", children: /* @__PURE__ */ (0, import_jsx_runtime73.jsx)(import_lucide_react33.Loader2, { className: "w-5 h-5 animate-spin" }) })
18205
+ ] })
18206
+ ] });
18272
18207
  }
18273
- var import_react47, import_lucide_react33, import_jsx_runtime73;
18208
+ var import_lucide_react33, import_react47, import_jsx_runtime73;
18274
18209
  var init_DeviceManageScreen = __esm({
18275
18210
  "src/internal/components/DevicesMenu/DeviceManageScreen.tsx"() {
18276
- import_react47 = require("react");
18211
+ init_SessionContext();
18277
18212
  import_lucide_react33 = require("lucide-react");
18278
- init_Expandable2();
18279
- init_button();
18213
+ import_react47 = require("react");
18214
+ init_guardian_backup();
18280
18215
  init_useLayoutDataStore();
18281
- init_useLayoutStore();
18282
- init_SessionContext();
18283
18216
  init_iframe_manager();
18284
- init_guardian_backup();
18217
+ init_Expandable2();
18218
+ init_button();
18285
18219
  import_jsx_runtime73 = require("react/jsx-runtime");
18286
18220
  }
18287
18221
  });
@@ -18290,7 +18224,6 @@ var init_DeviceManageScreen = __esm({
18290
18224
  function DeviceRestoreScreen() {
18291
18225
  const setPage = useLayoutDataStore((s) => s.setPage);
18292
18226
  const pageParams = useLayoutDataStore((s) => s.pageParams);
18293
- const maxScrollHeight = useLayoutStore((s) => s.maxScrollHeight);
18294
18227
  const session = useSession((st) => st.session);
18295
18228
  const userId = session?.mpcUserId || "";
18296
18229
  const keyshareId = pageParams?.keyshareId;
@@ -18326,79 +18259,71 @@ function DeviceRestoreScreen() {
18326
18259
  setIsWorking(false);
18327
18260
  }
18328
18261
  }, [password, keyshareId, userId, deviceId]);
18329
- return /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
18330
- "div",
18331
- {
18332
- style: { "--ui-kit-scrollbar-mah": `${maxScrollHeight}px` },
18333
- className: "list-scrollbar-y w-full",
18334
- children: /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
18335
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
18336
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => setPage("device-manage" /* DEVICE_MANAGE */), children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react34.ArrowLeft, { className: "h-4 w-4 flex-none" }) }),
18337
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-xl font-semibold", children: "Restore Keyshare" })
18338
- ] }),
18339
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex gap-3 p-3 rounded-lg bg-[var(--ui-kit-bg)] border border-[var(--ui-kit-bg-error)]", children: [
18340
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react34.AlertTriangle, { className: "w-5 h-5 text-[var(--ui-kit-bg-error)] shrink-0 mt-0.5" }),
18341
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "text-sm", children: [
18342
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "font-semibold text-[var(--ui-kit-bg-error)]", children: "This will replace your current keyshare" }),
18343
- /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("p", { className: "text-[var(--ui-kit-fg-muted)] mt-1", children: [
18344
- "Your existing keyshare will be overwritten with the backup from ",
18345
- deviceName || "Guardian",
18346
- " device. Make sure you have a backup of your current keyshare before proceeding."
18347
- ] })
18348
- ] })
18349
- ] }),
18350
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "text-xs text-[var(--ui-kit-fg-muted)] font-mono truncate px-1", children: keyshareId }),
18351
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
18352
- "input",
18353
- {
18354
- type: "password",
18355
- autoComplete: "one-time-code",
18356
- "data-1p-ignore": true,
18357
- "data-lpignore": "true",
18358
- value: password,
18359
- onChange: (e) => setPassword(e.target.value),
18360
- onKeyDown: (e) => e.key === "Enter" && password && !isWorking && handleRestore(),
18361
- placeholder: "Encryption password",
18362
- className: "w-full text-sm px-3 py-2 rounded-lg bg-[var(--ui-kit-bg)] border border-[var(--ui-kit-bd)] text-[var(--ui-kit-fg)] focus:outline-none focus:border-[var(--ui-kit-primary)]",
18363
- autoFocus: true,
18364
- disabled: isWorking
18365
- }
18366
- ),
18367
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
18368
- Button,
18369
- {
18370
- variant: "default",
18371
- size: "large",
18372
- className: "w-full",
18373
- disabled: !password || isWorking,
18374
- onClick: handleRestore,
18375
- children: isWorking ? /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
18376
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react34.Loader2, { className: "w-4 h-4 animate-spin" }),
18377
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: "Restoring \u2014 confirm on your device..." })
18378
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
18379
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react34.Download, { className: "w-4 h-4" }),
18380
- /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: "Restore from Guardian" })
18381
- ] })
18382
- }
18383
- ),
18384
- statusMessage && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "text-sm text-green-500 p-2 text-center", children: statusMessage }),
18385
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] p-2 text-center", children: errorMessage })
18262
+ return /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
18263
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
18264
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => setPage("device-manage" /* DEVICE_MANAGE */), children: /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react34.ArrowLeft, { className: "h-4 w-4 flex-none" }) }),
18265
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { className: "text-xl font-semibold", children: "Restore Keyshare" })
18266
+ ] }),
18267
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "flex gap-3 p-3 rounded-lg bg-[var(--ui-kit-bg)] border border-[var(--ui-kit-bg-error)]", children: [
18268
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react34.AlertTriangle, { className: "w-5 h-5 text-[var(--ui-kit-bg-error)] shrink-0 mt-0.5" }),
18269
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("div", { className: "text-sm", children: [
18270
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("p", { className: "font-semibold text-[var(--ui-kit-bg-error)]", children: "This will replace your current keyshare" }),
18271
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)("p", { className: "text-[var(--ui-kit-fg-muted)] mt-1", children: [
18272
+ "Your existing keyshare will be overwritten with the backup from ",
18273
+ deviceName || "Guardian",
18274
+ " device. Make sure you have a backup of your current keyshare before proceeding."
18275
+ ] })
18386
18276
  ] })
18387
- }
18388
- );
18277
+ ] }),
18278
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "text-xs text-[var(--ui-kit-fg-muted)] font-mono truncate px-1", children: keyshareId }),
18279
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
18280
+ "input",
18281
+ {
18282
+ type: "password",
18283
+ autoComplete: "one-time-code",
18284
+ "data-1p-ignore": true,
18285
+ "data-lpignore": "true",
18286
+ value: password,
18287
+ onChange: (e) => setPassword(e.target.value),
18288
+ onKeyDown: (e) => e.key === "Enter" && password && !isWorking && handleRestore(),
18289
+ placeholder: "Encryption password",
18290
+ className: "w-full text-sm px-3 py-2 rounded-lg bg-[var(--ui-kit-bg)] border border-[var(--ui-kit-bd)] text-[var(--ui-kit-fg)] focus:outline-none focus:border-[var(--ui-kit-primary)]",
18291
+ autoFocus: true,
18292
+ disabled: isWorking
18293
+ }
18294
+ ),
18295
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(
18296
+ Button,
18297
+ {
18298
+ variant: "default",
18299
+ size: "large",
18300
+ className: "w-full",
18301
+ disabled: !password || isWorking,
18302
+ onClick: handleRestore,
18303
+ children: isWorking ? /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
18304
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react34.Loader2, { className: "w-4 h-4 animate-spin" }),
18305
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: "Restoring \u2014 confirm on your device..." })
18306
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime74.jsxs)(import_jsx_runtime74.Fragment, { children: [
18307
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)(import_lucide_react34.Download, { className: "w-4 h-4" }),
18308
+ /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("span", { children: "Restore from Guardian" })
18309
+ ] })
18310
+ }
18311
+ ),
18312
+ statusMessage && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "text-sm text-green-500 p-2 text-center", children: statusMessage }),
18313
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime74.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] p-2 text-center", children: errorMessage })
18314
+ ] });
18389
18315
  }
18390
- var import_react48, import_lucide_react34, import_jsx_runtime74;
18316
+ var import_lucide_react34, import_react48, import_jsx_runtime74;
18391
18317
  var init_DeviceRestoreScreen = __esm({
18392
18318
  "src/internal/components/DevicesMenu/DeviceRestoreScreen.tsx"() {
18393
- import_react48 = require("react");
18319
+ init_SessionContext();
18394
18320
  import_lucide_react34 = require("lucide-react");
18395
- init_Expandable2();
18396
- init_button();
18321
+ import_react48 = require("react");
18322
+ init_guardian_backup();
18397
18323
  init_useLayoutDataStore();
18398
- init_useLayoutStore();
18399
- init_SessionContext();
18400
18324
  init_iframe_manager();
18401
- init_guardian_backup();
18325
+ init_Expandable2();
18326
+ init_button();
18402
18327
  import_jsx_runtime74 = require("react/jsx-runtime");
18403
18328
  }
18404
18329
  });
@@ -18472,7 +18397,11 @@ function DeviceRow({ device }) {
18472
18397
  {
18473
18398
  onClick: () => {
18474
18399
  const store = useLayoutDataStore.getState();
18475
- store.setPageParams({ key: "device-manage" /* DEVICE_MANAGE */, deviceId: device.deviceId, deviceName: device.deviceName });
18400
+ store.setPageParams({
18401
+ key: "device-manage" /* DEVICE_MANAGE */,
18402
+ deviceId: device.deviceId,
18403
+ deviceName: device.deviceName
18404
+ });
18476
18405
  store.setPage("device-manage" /* DEVICE_MANAGE */);
18477
18406
  },
18478
18407
  className: "text-[var(--ui-kit-fg-muted)] hover:text-[var(--ui-kit-fg)] transition-colors shrink-0",
@@ -18492,53 +18421,35 @@ function DeviceRow({ device }) {
18492
18421
  }
18493
18422
  function DevicesMenu() {
18494
18423
  const setPage = useLayoutDataStore((s) => s.setPage);
18495
- const maxScrollHeight = useLayoutStore((s) => s.maxScrollHeight);
18496
18424
  const { data, isLoading, error, refetch, isFetching } = useDevices();
18497
18425
  const devices = data?.devices ?? [];
18498
- return /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(
18499
- "div",
18500
- {
18501
- style: { "--ui-kit-scrollbar-mah": `${maxScrollHeight}px` },
18502
- className: "list-scrollbar-y w-full",
18503
- children: /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
18504
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
18505
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react35.ArrowLeft, { className: "h-4 w-4 flex-none" }) }),
18506
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-xl font-semibold", children: "Devices" }),
18507
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react35.Loader2, { className: "w-4 h-4 animate-spin" }),
18508
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "flex-1" }),
18509
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => refetch(), disabled: isFetching, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react35.RefreshCw, { className: `h-4 w-4 flex-none ${isFetching ? "animate-spin" : ""}` }) })
18510
- ] }),
18511
- error && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] text-center py-4", children: "Failed to load devices" }),
18512
- !isLoading && !error && devices.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "text-sm text-[var(--ui-kit-fg-muted)] text-center py-8", children: "No linked devices" }),
18513
- devices.map((device) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(DeviceRow, { device }, device.deviceId)),
18514
- /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(
18515
- Button,
18516
- {
18517
- variant: "default",
18518
- size: "large",
18519
- className: "w-full",
18520
- onClick: () => setPage("device-link" /* DEVICE_LINK */),
18521
- children: [
18522
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react35.Cpu, { className: "w-4 h-4" }),
18523
- /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { children: "Add Device" })
18524
- ]
18525
- }
18526
- )
18527
- ] })
18528
- }
18529
- );
18426
+ return /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
18427
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
18428
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react35.ArrowLeft, { className: "h-4 w-4 flex-none" }) }),
18429
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { className: "text-xl font-semibold", children: "Devices" }),
18430
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react35.Loader2, { className: "w-4 h-4 animate-spin" }),
18431
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "flex-1" }),
18432
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(Button, { variant: "ghost", size: "icon", onClick: () => refetch(), disabled: isFetching, children: /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react35.RefreshCw, { className: `h-4 w-4 flex-none ${isFetching ? "animate-spin" : ""}` }) })
18433
+ ] }),
18434
+ error && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "text-sm text-[var(--ui-kit-bg-error)] text-center py-4", children: "Failed to load devices" }),
18435
+ !isLoading && !error && devices.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("div", { className: "text-sm text-[var(--ui-kit-fg-muted)] text-center py-8", children: "No linked devices" }),
18436
+ devices.map((device) => /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(DeviceRow, { device }, device.deviceId)),
18437
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsxs)(Button, { variant: "default", size: "large", className: "w-full", onClick: () => setPage("device-link" /* DEVICE_LINK */), children: [
18438
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)(import_lucide_react35.Cpu, { className: "w-4 h-4" }),
18439
+ /* @__PURE__ */ (0, import_jsx_runtime75.jsx)("span", { children: "Add Device" })
18440
+ ] })
18441
+ ] });
18530
18442
  }
18531
- var import_react49, import_lucide_react35, import_jsx_runtime75;
18443
+ var import_lucide_react35, import_react49, import_jsx_runtime75;
18532
18444
  var init_DevicesMenu = __esm({
18533
18445
  "src/internal/components/DevicesMenu/DevicesMenu.tsx"() {
18534
- import_react49 = require("react");
18535
18446
  import_lucide_react35 = require("lucide-react");
18536
- init_Expandable2();
18537
- init_button();
18538
- init_useLayoutDataStore();
18539
- init_useLayoutStore();
18447
+ import_react49 = require("react");
18540
18448
  init_devices();
18541
18449
  init_guardian_backup();
18450
+ init_useLayoutDataStore();
18451
+ init_Expandable2();
18452
+ init_button();
18542
18453
  import_jsx_runtime75 = require("react/jsx-runtime");
18543
18454
  }
18544
18455
  });
@@ -19421,10 +19332,11 @@ var init_MethodSelector = __esm({
19421
19332
  var KEYSHARE_BACKUP_MENU_TOUR, KEYSHARE_BACKUP_MENU_TOUR_NO_PASSKEY;
19422
19333
  var init_onboarding_setup4 = __esm({
19423
19334
  "src/internal/components/KeyshareRestoreMenu/onboarding.setup.ts"() {
19335
+ init_constants();
19424
19336
  init_hooks();
19425
19337
  KEYSHARE_BACKUP_MENU_TOUR = [
19426
19338
  {
19427
- elId: "embarkai-keyshare-backup-menu-onboarding" /* backupMenu */,
19339
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"keysare-backup" /* KEYSARE_BACKUP */}`,
19428
19340
  title: "passport:backupMenu.onboarding.backupMenu.title",
19429
19341
  description: "passport:backupMenu.onboarding.backupMenu.description",
19430
19342
  onNext: () => {
@@ -19449,7 +19361,7 @@ var init_onboarding_setup4 = __esm({
19449
19361
  }
19450
19362
  },
19451
19363
  {
19452
- elId: "embarkai-keyshare-backup-menu-onboarding" /* backupMenu */,
19364
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"keysare-backup" /* KEYSARE_BACKUP */}`,
19453
19365
  title: "passport:backupMenu.onboarding.backupEncryptionPassword.title",
19454
19366
  description: "passport:backupMenu.onboarding.backupEncryptionPassword.description",
19455
19367
  onNext: () => {
@@ -19460,7 +19372,7 @@ var init_onboarding_setup4 = __esm({
19460
19372
  }
19461
19373
  },
19462
19374
  {
19463
- elId: "embarkai-keyshare-backup-menu-onboarding" /* backupMenu */,
19375
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"keysare-backup" /* KEYSARE_BACKUP */}`,
19464
19376
  title: "passport:backupMenu.onboarding.backupEncryptionPasskey.title",
19465
19377
  description: "passport:backupMenu.onboarding.backupEncryptionPasskey.description",
19466
19378
  onNext: () => {
@@ -19480,7 +19392,7 @@ var init_onboarding_setup4 = __esm({
19480
19392
  ];
19481
19393
  KEYSHARE_BACKUP_MENU_TOUR_NO_PASSKEY = [
19482
19394
  {
19483
- elId: "embarkai-keyshare-backup-menu-onboarding" /* backupMenu */,
19395
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"keysare-backup" /* KEYSARE_BACKUP */}`,
19484
19396
  title: "passport:backupMenu.onboarding.backupMenu.title",
19485
19397
  description: "passport:backupMenu.onboarding.backupMenu.description",
19486
19398
  onNext: () => {
@@ -19495,7 +19407,7 @@ var init_onboarding_setup4 = __esm({
19495
19407
  }
19496
19408
  },
19497
19409
  {
19498
- elId: "embarkai-keyshare-backup-menu-onboarding" /* backupMenu */,
19410
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"keysare-backup" /* KEYSARE_BACKUP */}`,
19499
19411
  title: "passport:backupMenu.onboarding.backupEncryptionPassword.title",
19500
19412
  description: "passport:backupMenu.onboarding.backupEncryptionPassword.description",
19501
19413
  onNext: () => {
@@ -20390,7 +20302,6 @@ var init_KeyshareRestoreMenu = __esm({
20390
20302
  const { callbacksRef } = useProviderConfig();
20391
20303
  const { t } = useT();
20392
20304
  const address = useSession((st) => st.address);
20393
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
20394
20305
  const error = useRestoreStore((st) => st.error);
20395
20306
  const success = useRestoreStore((st) => st.success);
20396
20307
  const currentRestoreMethod = useRestoreStore((st) => st.method);
@@ -20473,106 +20384,99 @@ var init_KeyshareRestoreMenu = __esm({
20473
20384
  }
20474
20385
  });
20475
20386
  const RestoreComponent = currentRestoreMethod ? RESTORE_COMPONENTS[currentRestoreMethod] : null;
20476
- return /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
20477
- "div",
20478
- {
20479
- style: { "--ui-kit-scrollbar-mah": `${maxScrollHeight}px` },
20480
- className: "list-scrollbar-y w-full",
20481
- children: /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
20482
- isBackupStatusLoading && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)] text-center justify-center items-center", children: [
20483
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.Loader, { className: "w-4 h-4 animate-spin" }),
20484
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "block w-full text-xs leading-4", children: t("passport:restoreMenu.check") })
20387
+ return /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
20388
+ isBackupStatusLoading && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)] text-center justify-center items-center", children: [
20389
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.Loader, { className: "w-4 h-4 animate-spin" }),
20390
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "block w-full text-xs leading-4", children: t("passport:restoreMenu.check") })
20391
+ ] }),
20392
+ !success && !isBackupStatusLoading && !isDisconnecting && !hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
20393
+ NoBackupFound,
20394
+ {
20395
+ isLoading: isRestoringFromServer || isRestoringFromCloud || isRestoringFromFile || isDisconnecting,
20396
+ restoreFromFile
20397
+ }
20398
+ ),
20399
+ !success && !isBackupStatusLoading && !isDisconnecting && hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(import_jsx_runtime84.Fragment, { children: [
20400
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
20401
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
20402
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.CloudDownload, { className: "w-6 h-6" }),
20403
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "font-bold text-xl leading-6", children: t("passport:restoreMenu.title") })
20485
20404
  ] }),
20486
- !success && !isBackupStatusLoading && !isDisconnecting && !hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
20487
- NoBackupFound,
20405
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
20406
+ Switch,
20488
20407
  {
20489
- isLoading: isRestoringFromServer || isRestoringFromCloud || isRestoringFromFile || isDisconnecting,
20490
- restoreFromFile
20491
- }
20492
- ),
20493
- !success && !isBackupStatusLoading && !isDisconnecting && hasServerBackup && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(import_jsx_runtime84.Fragment, { children: [
20494
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
20495
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
20496
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.CloudDownload, { className: "w-6 h-6" }),
20497
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "font-bold text-xl leading-6", children: t("passport:restoreMenu.title") })
20498
- ] }),
20499
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
20500
- Switch,
20501
- {
20502
- name: "advanced-restore-flow-toggle",
20503
- labels: { checked: t("passport:common.standard"), unchecked: t("passport:common.advanced") },
20504
- checked: currentRestoreMethod !== "server",
20505
- onChange: () => {
20506
- const { setError, setRestorePassword, setRestoreFile, setMethod } = useRestoreStore.getState();
20507
- if (!!error) setError(null);
20508
- if (currentRestoreMethod === "server") {
20509
- setRestorePassword("");
20510
- setMethod(null);
20511
- } else {
20512
- setRestoreFile(null);
20513
- setMethod("server");
20514
- }
20515
- }
20408
+ name: "advanced-restore-flow-toggle",
20409
+ labels: { checked: t("passport:common.standard"), unchecked: t("passport:common.advanced") },
20410
+ checked: currentRestoreMethod !== "server",
20411
+ onChange: () => {
20412
+ const { setError, setRestorePassword, setRestoreFile, setMethod } = useRestoreStore.getState();
20413
+ if (!!error) setError(null);
20414
+ if (currentRestoreMethod === "server") {
20415
+ setRestorePassword("");
20416
+ setMethod(null);
20417
+ } else {
20418
+ setRestoreFile(null);
20419
+ setMethod("server");
20516
20420
  }
20517
- )
20518
- ] }),
20519
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(MethodSelector, { mode: "restore", serverRecoveryStatus }),
20520
- !!currentRestoreMethod && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
20521
- RestoreComponent,
20522
- {
20523
- isLoading: isRestoringFromFile || isRestoringFromServer || isRestoringFromCloud || isDisconnecting,
20524
- fileHandler: restoreFromFile,
20525
- serverHandler: restoreFromServer2,
20526
- cloudHandler: restoreFromCloud
20527
20421
  }
20528
- )
20529
- ] }),
20530
- !success && !isBackupStatusLoading && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
20531
- Button,
20532
- {
20533
- size: "large",
20534
- variant: "ghost",
20535
- onClick: () => {
20536
- const {
20537
- setError,
20538
- setShowPassword,
20539
- setUsePasskey,
20540
- setRestoreFile,
20541
- setRestorePassword,
20542
- setSuccess,
20543
- setMethod
20544
- } = useRestoreStore.getState();
20545
- setError(null);
20546
- setShowPassword(false);
20547
- setUsePasskey(false);
20548
- setRestoreFile(null);
20549
- setRestorePassword("");
20550
- setSuccess(null);
20551
- setMethod(null);
20552
- disconnect();
20553
- },
20554
- disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
20555
- className: "w-fit mx-auto",
20556
- children: [
20557
- isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.UserCircle, { className: "w-4 h-4" }),
20558
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { children: t("passport:restoreMenu.tryAnotherAccount") })
20559
- ]
20560
20422
  }
20561
- ),
20562
- error && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
20563
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
20564
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "w-full flex-1 block", children: error })
20565
- ] }),
20566
- success && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(import_jsx_runtime84.Fragment, { children: [
20567
- /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(Highlight, { type: "success", className: "flex gap-[var(--ui-kit-gap)]", children: [
20568
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
20569
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "w-full flex-1 block", children: success })
20570
- ] }),
20571
- /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Button, { variant: "default", size: "large", className: "w-full", onClick: () => onRestoreSuccess(), children: "Done" })
20572
- ] })
20573
- ] })
20574
- }
20575
- );
20423
+ )
20424
+ ] }),
20425
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(MethodSelector, { mode: "restore", serverRecoveryStatus }),
20426
+ !!currentRestoreMethod && /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(
20427
+ RestoreComponent,
20428
+ {
20429
+ isLoading: isRestoringFromFile || isRestoringFromServer || isRestoringFromCloud || isDisconnecting,
20430
+ fileHandler: restoreFromFile,
20431
+ serverHandler: restoreFromServer2,
20432
+ cloudHandler: restoreFromCloud
20433
+ }
20434
+ )
20435
+ ] }),
20436
+ !success && !isBackupStatusLoading && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(
20437
+ Button,
20438
+ {
20439
+ size: "large",
20440
+ variant: "ghost",
20441
+ onClick: () => {
20442
+ const {
20443
+ setError,
20444
+ setShowPassword,
20445
+ setUsePasskey,
20446
+ setRestoreFile,
20447
+ setRestorePassword,
20448
+ setSuccess,
20449
+ setMethod
20450
+ } = useRestoreStore.getState();
20451
+ setError(null);
20452
+ setShowPassword(false);
20453
+ setUsePasskey(false);
20454
+ setRestoreFile(null);
20455
+ setRestorePassword("");
20456
+ setSuccess(null);
20457
+ setMethod(null);
20458
+ disconnect();
20459
+ },
20460
+ disabled: isDisconnecting || isRestoringFromFile || isRestoringFromServer,
20461
+ className: "w-fit mx-auto",
20462
+ children: [
20463
+ isDisconnecting ? /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.Loader, { className: "w-4 h-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.UserCircle, { className: "w-4 h-4" }),
20464
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { children: t("passport:restoreMenu.tryAnotherAccount") })
20465
+ ]
20466
+ }
20467
+ ),
20468
+ error && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
20469
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
20470
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "w-full flex-1 block", children: error })
20471
+ ] }),
20472
+ success && /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(import_jsx_runtime84.Fragment, { children: [
20473
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsxs)(Highlight, { type: "success", className: "flex gap-[var(--ui-kit-gap)]", children: [
20474
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(import_lucide_react44.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
20475
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)("span", { className: "w-full flex-1 block", children: success })
20476
+ ] }),
20477
+ /* @__PURE__ */ (0, import_jsx_runtime84.jsx)(Button, { variant: "default", size: "large", className: "w-full", onClick: () => onRestoreSuccess(), children: "Done" })
20478
+ ] })
20479
+ ] });
20576
20480
  };
20577
20481
  }
20578
20482
  });
@@ -20583,7 +20487,6 @@ function KeyshareBackupMenu() {
20583
20487
  const hasServerVault = useSession((st) => st.hasServerVault);
20584
20488
  const { t } = useT();
20585
20489
  const setPage = useLayoutDataStore((st) => st.setPage);
20586
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
20587
20490
  const currentBackupMethod = useRestoreStore((st) => st.method);
20588
20491
  const usePasskey = useRestoreStore((st) => st.usePasskey);
20589
20492
  const error = useRestoreStore((st) => st.error);
@@ -20622,118 +20525,110 @@ function KeyshareBackupMenu() {
20622
20525
  createPasskey
20623
20526
  } = useCreateBackup();
20624
20527
  const BackupComponent = !!currentBackupMethod ? COMPONENTS[currentBackupMethod] : null;
20625
- return /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
20626
- "div",
20627
- {
20628
- ref: (inst) => onboarder.registerElement("embarkai-keyshare-backup-menu-onboarding" /* backupMenu */, inst),
20629
- style: { "--ui-kit-scrollbar-mah": `${maxScrollHeight}px` },
20630
- className: "list-scrollbar-y w-full",
20631
- children: /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
20632
- !!isRecoveryLoading && (hasServerVault || !currentBackupMethod) && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.Loader, { className: "w-4 h-4 animate-spin" }) }),
20633
- (!isRecoveryLoading || !hasServerVault) && !hasRecoveryData2 && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "flex items-center justify-center gap-2 px-5 py-[var(--ui-kit-pd)]", children: [
20634
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.LockIcon, { className: "w-6 h-6" }),
20635
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "font-bold text-xl leading-6", children: t("passport:backupMenu.title") })
20636
- ] }),
20637
- !isRecoveryLoading && !!hasRecoveryData2 && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
20638
- "div",
20639
- {
20640
- ref: (inst) => onboarder.registerElement("embarkai-keyshare-backup-advanced-onboarding" /* backupAdvanced */, inst),
20641
- className: "flex items-center justify-between gap-[var(--ui-kit-gap)]",
20642
- children: [
20643
- /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
20644
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
20645
- Button,
20646
- {
20647
- variant: "ghost",
20648
- size: "icon",
20649
- title: "Back",
20650
- onClick: () => {
20651
- const {
20652
- setSuccess,
20653
- setError,
20654
- setRestorePassword,
20655
- setRestoreFile,
20656
- setShowPassword,
20657
- setUsePasskey,
20658
- setMethod,
20659
- setSelectedCloudProvider
20660
- } = useRestoreStore.getState();
20661
- setRestorePassword("");
20662
- setRestoreFile(null);
20663
- setShowPassword(false);
20664
- setSelectedCloudProvider(null);
20665
- setUsePasskey(false);
20666
- setError(null);
20667
- setSuccess(null);
20668
- setMethod(null);
20669
- setPage("settings" /* SETTINGS */);
20670
- },
20671
- children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.ArrowLeft, { className: "h-4 w-4" })
20672
- }
20673
- ),
20674
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "text-xl font-semibold leading-8", children: t("passport:backupMenu.title") })
20675
- ] }),
20676
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
20677
- Switch,
20678
- {
20679
- name: "advanced-restore-flow-toggle",
20680
- labels: { checked: t("passport:common.standard"), unchecked: t("passport:common.advanced") },
20681
- checked: currentBackupMethod !== "server",
20682
- onChange: () => {
20683
- const { setError, setRestorePassword, setRestoreFile, setMethod } = useRestoreStore.getState();
20684
- if (!!error) setError(null);
20685
- if (currentBackupMethod === "server") {
20686
- setRestorePassword("");
20687
- setMethod(null);
20688
- } else {
20689
- setRestoreFile(null);
20690
- setMethod("server");
20691
- }
20692
- }
20693
- }
20694
- )
20695
- ]
20696
- }
20697
- ),
20698
- !isRecoveryLoading && !!hasRecoveryData2 && !currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(MethodSelector, { mode: "backup", serverRecoveryStatus }),
20699
- (!isRecoveryLoading || !hasServerVault) && !!currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_jsx_runtime85.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
20700
- BackupComponent,
20701
- {
20702
- mode: "backup",
20703
- isLoading: isPasswordBackupCreating || isCloudBackupCreating || isLocalBackupCreating || isPasskeyCreating,
20704
- fileHandler: createLocalBackup,
20705
- serverHandler: createPasswordBackup,
20706
- cloudHandler: createCloudBackup,
20707
- createPasskeyHandler: createPasskey
20708
- }
20709
- ) }),
20710
- !isRecoveryLoading && !currentBackupMethod && !hasRecoveryData2 && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
20711
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
20712
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "block flex-1 font-semibold", children: "No Backup Found" })
20713
- ] }),
20714
- error && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
20715
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
20716
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "block w-full flex-1", children: error })
20717
- ] }),
20718
- success && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Highlight, { type: "success", className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
20719
- /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "w-full flex gap-[var(--ui-kit-gap)]", children: [
20720
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
20721
- /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "block w-full flex-1", children: success })
20528
+ return /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
20529
+ !!isRecoveryLoading && (hasServerVault || !currentBackupMethod) && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("div", { className: "w-full flex items-center justify-center p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.Loader, { className: "w-4 h-4 animate-spin" }) }),
20530
+ (!isRecoveryLoading || !hasServerVault) && !hasRecoveryData2 && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "flex items-center justify-center gap-2 px-5 py-[var(--ui-kit-pd)]", children: [
20531
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.LockIcon, { className: "w-6 h-6" }),
20532
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "font-bold text-xl leading-6", children: t("passport:backupMenu.title") })
20533
+ ] }),
20534
+ !isRecoveryLoading && !!hasRecoveryData2 && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(
20535
+ "div",
20536
+ {
20537
+ ref: (inst) => onboarder.registerElement("embarkai-keyshare-backup-advanced-onboarding" /* backupAdvanced */, inst),
20538
+ className: "flex items-center justify-between gap-[var(--ui-kit-gap)]",
20539
+ children: [
20540
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
20541
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
20542
+ Button,
20543
+ {
20544
+ variant: "ghost",
20545
+ size: "icon",
20546
+ title: "Back",
20547
+ onClick: () => {
20548
+ const {
20549
+ setSuccess,
20550
+ setError,
20551
+ setRestorePassword,
20552
+ setRestoreFile,
20553
+ setShowPassword,
20554
+ setUsePasskey,
20555
+ setMethod,
20556
+ setSelectedCloudProvider
20557
+ } = useRestoreStore.getState();
20558
+ setRestorePassword("");
20559
+ setRestoreFile(null);
20560
+ setShowPassword(false);
20561
+ setSelectedCloudProvider(null);
20562
+ setUsePasskey(false);
20563
+ setError(null);
20564
+ setSuccess(null);
20565
+ setMethod(null);
20566
+ setPage("settings" /* SETTINGS */);
20567
+ },
20568
+ children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.ArrowLeft, { className: "h-4 w-4" })
20569
+ }
20570
+ ),
20571
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "text-xl font-semibold leading-8", children: t("passport:backupMenu.title") })
20722
20572
  ] }),
20723
20573
  /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
20724
- Button,
20574
+ Switch,
20725
20575
  {
20726
- variant: "default",
20727
- size: "large",
20728
- className: "w-full",
20729
- onClick: () => useRestoreStore.getState().setSuccess(null),
20730
- children: t("passport:common.continue")
20576
+ name: "advanced-restore-flow-toggle",
20577
+ labels: { checked: t("passport:common.standard"), unchecked: t("passport:common.advanced") },
20578
+ checked: currentBackupMethod !== "server",
20579
+ onChange: () => {
20580
+ const { setError, setRestorePassword, setRestoreFile, setMethod } = useRestoreStore.getState();
20581
+ if (!!error) setError(null);
20582
+ if (currentBackupMethod === "server") {
20583
+ setRestorePassword("");
20584
+ setMethod(null);
20585
+ } else {
20586
+ setRestoreFile(null);
20587
+ setMethod("server");
20588
+ }
20589
+ }
20731
20590
  }
20732
20591
  )
20733
- ] })
20734
- ] })
20735
- }
20736
- );
20592
+ ]
20593
+ }
20594
+ ),
20595
+ !isRecoveryLoading && !!hasRecoveryData2 && !currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(MethodSelector, { mode: "backup", serverRecoveryStatus }),
20596
+ (!isRecoveryLoading || !hasServerVault) && !!currentBackupMethod && /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_jsx_runtime85.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
20597
+ BackupComponent,
20598
+ {
20599
+ mode: "backup",
20600
+ isLoading: isPasswordBackupCreating || isCloudBackupCreating || isLocalBackupCreating || isPasskeyCreating,
20601
+ fileHandler: createLocalBackup,
20602
+ serverHandler: createPasswordBackup,
20603
+ cloudHandler: createCloudBackup,
20604
+ createPasskeyHandler: createPasskey
20605
+ }
20606
+ ) }),
20607
+ !isRecoveryLoading && !currentBackupMethod && !hasRecoveryData2 && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Highlight, { type: "warning", className: "flex gap-[var(--ui-kit-gap)]", children: [
20608
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
20609
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "block flex-1 font-semibold", children: "No Backup Found" })
20610
+ ] }),
20611
+ error && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
20612
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.AlertCircle, { className: "h-4 w-4 flex-shrink-0" }),
20613
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "block w-full flex-1", children: error })
20614
+ ] }),
20615
+ success && /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)(Highlight, { type: "success", className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
20616
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsxs)("div", { className: "w-full flex gap-[var(--ui-kit-gap)]", children: [
20617
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(import_lucide_react45.CheckCircle2, { className: "h-4 w-4 flex-shrink-0" }),
20618
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)("span", { className: "block w-full flex-1", children: success })
20619
+ ] }),
20620
+ /* @__PURE__ */ (0, import_jsx_runtime85.jsx)(
20621
+ Button,
20622
+ {
20623
+ variant: "default",
20624
+ size: "large",
20625
+ className: "w-full",
20626
+ onClick: () => useRestoreStore.getState().setSuccess(null),
20627
+ children: t("passport:common.continue")
20628
+ }
20629
+ )
20630
+ ] })
20631
+ ] });
20737
20632
  }
20738
20633
  var import_react_query31, import_lucide_react45, import_react59, import_jsx_runtime85, COMPONENTS;
20739
20634
  var init_KeyshareBackupMenu = __esm({
@@ -20744,7 +20639,6 @@ var init_KeyshareBackupMenu = __esm({
20744
20639
  import_lucide_react45 = require("lucide-react");
20745
20640
  import_react59 = require("react");
20746
20641
  init_useLayoutDataStore();
20747
- init_useLayoutStore();
20748
20642
  init_vaultClient();
20749
20643
  init_Expandable2();
20750
20644
  init_Onboarding();
@@ -20967,27 +20861,13 @@ var init_SumsubIframe = __esm({
20967
20861
  // src/internal/components/KYC/KycMenu.tsx
20968
20862
  function KycMenu() {
20969
20863
  const setPage = useLayoutDataStore((st) => st.setPage);
20970
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
20971
- return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(
20972
- "div",
20973
- {
20974
- style: {
20975
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
20976
- "--ui-kit-list-scrollbar-pd-r": "4px",
20977
- "paddingTop": "var(--ui-kit-pd)",
20978
- "paddingBottom": "var(--ui-kit-pd)",
20979
- "paddingLeft": "4px"
20980
- },
20981
- className: "list-scrollbar-y w-full flex flex-col gap-[var(--ui-kit-gap)]",
20982
- children: [
20983
- /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
20984
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react47.ArrowLeft, { className: "h-4 w-4" }) }),
20985
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "text-xl font-semibold", children: "KYC" })
20986
- ] }),
20987
- /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(KycContent, {})
20988
- ]
20989
- }
20990
- );
20864
+ return /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
20865
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
20866
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(import_lucide_react47.ArrowLeft, { className: "h-4 w-4" }) }),
20867
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)("span", { className: "text-xl font-semibold", children: "KYC" })
20868
+ ] }),
20869
+ /* @__PURE__ */ (0, import_jsx_runtime87.jsx)(KycContent, {})
20870
+ ] });
20991
20871
  }
20992
20872
  var import_lucide_react47, import_jsx_runtime87, KycContent;
20993
20873
  var init_KycMenu = __esm({
@@ -20995,7 +20875,7 @@ var init_KycMenu = __esm({
20995
20875
  init_ProviderContext();
20996
20876
  import_lucide_react47 = require("lucide-react");
20997
20877
  init_useLayoutDataStore();
20998
- init_useLayoutStore();
20878
+ init_Expandable2();
20999
20879
  init_button();
21000
20880
  init_SumsubIframe();
21001
20881
  import_jsx_runtime87 = require("react/jsx-runtime");
@@ -21075,44 +20955,41 @@ var init_KYC = __esm({
21075
20955
  function LanguagesMenu() {
21076
20956
  const config = useProviderConfig().config;
21077
20957
  const { t, i18n } = useT();
21078
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
21079
20958
  const langOpenedFromMenu = useLayoutDataStore((st) => st.langOpenedFromMenu);
21080
- const setPage = useLayoutDataStore((st) => st.setPage);
21081
20959
  const languageList = getAvailableLanguages(config.current.translations);
21082
- return /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
21083
- "div",
21084
- {
21085
- style: {
21086
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
21087
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
20960
+ return /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
20961
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
20962
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(
20963
+ Button,
20964
+ {
20965
+ variant: "ghost",
20966
+ size: "icon",
20967
+ title: "Back",
20968
+ onClick: () => useLayoutDataStore.getState().setPage(langOpenedFromMenu),
20969
+ children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react48.ArrowLeft, { className: "h-4 w-4" })
20970
+ }
20971
+ ),
20972
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "text-xl font-semibold", children: t("passport:common.language") })
20973
+ ] }),
20974
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)] py-[var(--ui-kit-pd)]", children: languageList.map((langKey) => /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
20975
+ Button,
20976
+ {
20977
+ size: "large",
20978
+ variant: i18n.resolvedLanguage === langKey ? "default" : "ghost",
20979
+ className: "justify-between",
20980
+ onClick: () => {
20981
+ i18n.changeLanguage(langKey);
20982
+ localStorage.setItem(LOCAL_STORAGE_I18N_KEY, langKey);
20983
+ useLayoutDataStore.getState().setPage(langOpenedFromMenu);
20984
+ },
20985
+ children: [
20986
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { children: LANGUAGES[langKey]?.name }),
20987
+ /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "text-2xl leading-6", children: LANGUAGES[langKey]?.flags })
20988
+ ]
21088
20989
  },
21089
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
21090
- children: /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
21091
- /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
21092
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage(langOpenedFromMenu), children: /* @__PURE__ */ (0, import_jsx_runtime89.jsx)(import_lucide_react48.ArrowLeft, { className: "h-4 w-4" }) }),
21093
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "text-xl font-semibold", children: t("passport:common.language") })
21094
- ] }),
21095
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)] py-[var(--ui-kit-pd)]", children: languageList.map((langKey) => /* @__PURE__ */ (0, import_jsx_runtime89.jsxs)(
21096
- Button,
21097
- {
21098
- size: "large",
21099
- variant: i18n.resolvedLanguage === langKey ? "default" : "ghost",
21100
- className: "justify-between",
21101
- onClick: () => {
21102
- i18n.changeLanguage(langKey);
21103
- localStorage.setItem(LOCAL_STORAGE_I18N_KEY, langKey);
21104
- setPage(langOpenedFromMenu);
21105
- },
21106
- children: [
21107
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { children: LANGUAGES[langKey]?.name }),
21108
- /* @__PURE__ */ (0, import_jsx_runtime89.jsx)("span", { className: "text-2xl leading-6", children: LANGUAGES[langKey]?.flags })
21109
- ]
21110
- },
21111
- langKey
21112
- )) })
21113
- ] })
21114
- }
21115
- );
20990
+ langKey
20991
+ )) })
20992
+ ] });
21116
20993
  }
21117
20994
  var import_lucide_react48, import_jsx_runtime89;
21118
20995
  var init_LanguagesMenu = __esm({
@@ -21121,7 +20998,6 @@ var init_LanguagesMenu = __esm({
21121
20998
  init_i18n();
21122
20999
  import_lucide_react48 = require("lucide-react");
21123
21000
  init_useLayoutDataStore();
21124
- init_useLayoutStore();
21125
21001
  init_Expandable2();
21126
21002
  init_button();
21127
21003
  import_jsx_runtime89 = require("react/jsx-runtime");
@@ -21168,12 +21044,16 @@ var init_onboarding_setup5 = __esm({
21168
21044
  function MainMenu() {
21169
21045
  const address = useSession((st) => st.address);
21170
21046
  const { t } = useT();
21171
- const setPage = useLayoutDataStore((st) => st.setPage);
21172
- const setTransitionPageHeight = useLayoutDataStore((st) => st.setTransitionPageHeight);
21173
- (0, import_react61.useEffect)(() => setTransitionPageHeight(DEFAULT_MAIN_MENU_HEIGHT), []);
21047
+ (0, import_react61.useEffect)(
21048
+ () => (
21049
+ // actual height measurement of the main menu on mount. prevents layout animations jumps
21050
+ useLayoutDataStore.getState().setTransitionPageHeight(DEFAULT_MAIN_MENU_HEIGHT)
21051
+ ),
21052
+ []
21053
+ );
21174
21054
  useOnboardingTourAvailable(true);
21175
21055
  useProvidersList();
21176
- return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "w-full grid grid-cols-4 gap-0 md:gap-[var(--ui-kit-gap)] py-[10px] md:py-1", children: MAIN_MENU_BUTTONS.map(({ id, onboardingId, label, icon: Icon2 }) => /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
21056
+ return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("div", { className: "w-full grid grid-cols-4 gap-0 md:gap-[var(--ui-kit-gap)] py-[10px] md:py-1", children: MAIN_MENU_BUTTONS.map(({ id, onboardingId, label, icon: Icon2 }) => /* @__PURE__ */ (0, import_jsx_runtime90.jsxs)(
21177
21057
  Button,
21178
21058
  {
21179
21059
  ref: (inst) => onboarder.registerElement(onboardingId, inst),
@@ -21181,7 +21061,7 @@ function MainMenu() {
21181
21061
  variant: "ghost",
21182
21062
  disabled: !address,
21183
21063
  className: "flex-col w-full h-fit p-0",
21184
- onClick: () => setPage(id),
21064
+ onClick: () => useLayoutDataStore.getState().setPage(id),
21185
21065
  children: [
21186
21066
  /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(Icon2, { className: "w-5 h-5 md:w-8 md:h-8" }),
21187
21067
  /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("span", { className: "text-xs font-semibold", children: t(label) })
@@ -21199,6 +21079,7 @@ var init_MainMenu = __esm({
21199
21079
  import_react61 = require("react");
21200
21080
  init_constants();
21201
21081
  init_useLayoutDataStore();
21082
+ init_Expandable2();
21202
21083
  init_useProvidersList();
21203
21084
  init_Onboarding();
21204
21085
  init_button();
@@ -21570,20 +21451,6 @@ var init_NicknameEditForm = __esm({
21570
21451
  }
21571
21452
  });
21572
21453
 
21573
- // src/internal/components/NicknameMenu/onboarding.setup.ts
21574
- var NICKNAME_MENU_TOUR;
21575
- var init_onboarding_setup6 = __esm({
21576
- "src/internal/components/NicknameMenu/onboarding.setup.ts"() {
21577
- NICKNAME_MENU_TOUR = [
21578
- {
21579
- elId: "embarkai-nickname-menu-onboarding" /* nicknameMenu */,
21580
- title: "passport:nicknameMenu.onboarding.nicknameMenu.title",
21581
- description: "passport:nicknameMenu.onboarding.nicknameMenu.description"
21582
- }
21583
- ];
21584
- }
21585
- });
21586
-
21587
21454
  // src/internal/components/NicknameMenu/NicknameMenu.tsx
21588
21455
  function NicknameMenu() {
21589
21456
  const { isInitialUser } = usePageParams().current;
@@ -21605,79 +21472,71 @@ function NicknameMenu() {
21605
21472
  });
21606
21473
  const resolvedError = nicknameError || nicknameInfoError?.message || null;
21607
21474
  (0, import_react64.useEffect)(() => () => useNicknameStore.getState().reset(), []);
21608
- return /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
21609
- "div",
21610
- {
21611
- ref: (inst) => onboarder.registerElement("embarkai-nickname-menu-onboarding" /* nicknameMenu */, inst),
21612
- style: { "--ui-kit-scrollbar-mah": `${maxScrollHeight}px` },
21613
- className: "list-scrollbar-y w-full",
21614
- children: /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: [
21615
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] ", children: [
21616
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
21617
- Button,
21618
- {
21619
- variant: "ghost",
21620
- size: "icon",
21621
- title: t("passport:common.back"),
21622
- onClick: () => useLayoutDataStore.getState().setPage("settings" /* SETTINGS */),
21623
- children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react51.ArrowLeft, { className: "h-4 w-4 flex-none" })
21624
- }
21625
- ),
21626
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "flex gap-[var(--ui-kit-gap)] items-center w-fit", children: [
21627
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "text-xl font-semibold", children: t("passport:nicknameMenu.title") }),
21628
- isNicknameInfoLoading && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react51.Loader, { className: "w-4 h-4 animate-spin" })
21629
- ] })
21630
- ] }),
21631
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(NicknameEditForm, { nicknameInfo, isInitialUser }),
21632
- !nicknameInfo?.canChange && nicknameInfo?.cooldownEndsAt && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Highlight, { type: "info", children: t("passport:nicknameMenu.cooldownMessage", {
21633
- canChangeAt: (0, import_dayjs4.default)(nicknameInfo.cooldownEndsAt).format("MMM D, YYYY"),
21634
- days: String(getDaysRemaining(nicknameInfo.cooldownEndsAt))
21635
- }) }),
21636
- !nicknameSuccess && !!nicknameInfo && /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between text-[10px]", children: [
21637
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("span", { children: [
21638
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "text-[var(--ui-kit-fg-muted)]", children: nicknameInfo.changedAt ? t("passport:nicknameMenu.lastChanged") : t("passport:common.created") }),
21639
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { children: ": " }),
21640
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("strong", { className: "text-[var(--ui-kit-fg)]", children: (0, import_dayjs4.default)(nicknameInfo.changedAt || nicknameInfo.createdAt).format("MMM D, YYYY") })
21641
- ] }),
21642
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("span", { children: [
21643
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "text-[var(--ui-kit-fg-muted)]", children: t("passport:nicknameMenu.timesChanged") }),
21644
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { children: ": " }),
21645
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("strong", { className: "text-[var(--ui-kit-fg)]", children: nicknameInfo.changeCount })
21646
- ] })
21647
- ] }),
21648
- !!nicknameSuccess && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Highlight, { type: "success", children: nicknameSuccess }),
21649
- isInitialUser && /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(Highlight, { type: "success", children: [
21650
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("p", {
21651
- //@ts-expect-error i18n typings
21652
- children: t("passport:nicknameMenu.initialUser.welcome", {
21653
- nickname: nicknameInfo?.handle || "N/A"
21654
- })
21655
- }),
21656
- /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("p", { children: t("passport:nicknameMenu.initialUser.message") }),
21657
- /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
21658
- Button,
21659
- {
21660
- variant: "default",
21661
- size: "large",
21662
- title: t("passport:common.continue"),
21663
- onClick: () => {
21664
- const { openPostAuthNavigation, setPage } = useLayoutDataStore.getState();
21665
- if (!openPostAuthNavigation()) setPage(null);
21666
- },
21667
- className: "w-full",
21668
- children: [
21669
- t("passport:common.continue"),
21670
- " (",
21671
- nicknameInfo?.handle,
21672
- ")"
21673
- ]
21674
- }
21675
- )
21676
- ] }),
21677
- !!resolvedError?.length && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Highlight, { type: "error", children: resolvedError })
21475
+ return /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
21476
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] ", children: [
21477
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(
21478
+ Button,
21479
+ {
21480
+ variant: "ghost",
21481
+ size: "icon",
21482
+ title: t("passport:common.back"),
21483
+ onClick: () => useLayoutDataStore.getState().setPage("settings" /* SETTINGS */),
21484
+ children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react51.ArrowLeft, { className: "h-4 w-4 flex-none" })
21485
+ }
21486
+ ),
21487
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "flex gap-[var(--ui-kit-gap)] items-center w-fit", children: [
21488
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "text-xl font-semibold", children: t("passport:nicknameMenu.title") }),
21489
+ isNicknameInfoLoading && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(import_lucide_react51.Loader, { className: "w-4 h-4 animate-spin" })
21678
21490
  ] })
21679
- }
21680
- );
21491
+ ] }),
21492
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(NicknameEditForm, { nicknameInfo, isInitialUser }),
21493
+ !nicknameInfo?.canChange && nicknameInfo?.cooldownEndsAt && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Highlight, { type: "info", children: t("passport:nicknameMenu.cooldownMessage", {
21494
+ canChangeAt: (0, import_dayjs4.default)(nicknameInfo.cooldownEndsAt).format("MMM D, YYYY"),
21495
+ days: String(getDaysRemaining(nicknameInfo.cooldownEndsAt))
21496
+ }) }),
21497
+ !nicknameSuccess && !!nicknameInfo && /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)] justify-between text-[10px]", children: [
21498
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("span", { children: [
21499
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "text-[var(--ui-kit-fg-muted)]", children: nicknameInfo.changedAt ? t("passport:nicknameMenu.lastChanged") : t("passport:common.created") }),
21500
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { children: ": " }),
21501
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("strong", { className: "text-[var(--ui-kit-fg)]", children: (0, import_dayjs4.default)(nicknameInfo.changedAt || nicknameInfo.createdAt).format("MMM D, YYYY") })
21502
+ ] }),
21503
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)("span", { children: [
21504
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { className: "text-[var(--ui-kit-fg-muted)]", children: t("passport:nicknameMenu.timesChanged") }),
21505
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("span", { children: ": " }),
21506
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("strong", { className: "text-[var(--ui-kit-fg)]", children: nicknameInfo.changeCount })
21507
+ ] })
21508
+ ] }),
21509
+ !!nicknameSuccess && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Highlight, { type: "success", children: nicknameSuccess }),
21510
+ isInitialUser && /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(Highlight, { type: "success", children: [
21511
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("p", {
21512
+ //@ts-expect-error i18n typings
21513
+ children: t("passport:nicknameMenu.initialUser.welcome", {
21514
+ nickname: nicknameInfo?.handle || "N/A"
21515
+ })
21516
+ }),
21517
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("p", { children: t("passport:nicknameMenu.initialUser.message") }),
21518
+ /* @__PURE__ */ (0, import_jsx_runtime92.jsxs)(
21519
+ Button,
21520
+ {
21521
+ variant: "default",
21522
+ size: "large",
21523
+ title: t("passport:common.continue"),
21524
+ onClick: () => {
21525
+ const { openPostAuthNavigation, setPage } = useLayoutDataStore.getState();
21526
+ if (!openPostAuthNavigation()) setPage(null);
21527
+ },
21528
+ className: "w-full",
21529
+ children: [
21530
+ t("passport:common.continue"),
21531
+ " (",
21532
+ nicknameInfo?.handle,
21533
+ ")"
21534
+ ]
21535
+ }
21536
+ )
21537
+ ] }),
21538
+ !!resolvedError?.length && /* @__PURE__ */ (0, import_jsx_runtime92.jsx)(Highlight, { type: "error", children: resolvedError })
21539
+ ] });
21681
21540
  }
21682
21541
  var import_react_query35, import_dayjs4, import_lucide_react51, import_react64, import_jsx_runtime92;
21683
21542
  var init_NicknameMenu = __esm({
@@ -21704,6 +21563,21 @@ var init_NicknameMenu = __esm({
21704
21563
  }
21705
21564
  });
21706
21565
 
21566
+ // src/internal/components/NicknameMenu/onboarding.setup.ts
21567
+ var NICKNAME_MENU_TOUR;
21568
+ var init_onboarding_setup6 = __esm({
21569
+ "src/internal/components/NicknameMenu/onboarding.setup.ts"() {
21570
+ init_constants();
21571
+ NICKNAME_MENU_TOUR = [
21572
+ {
21573
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"nickname-settings" /* NICKNAME_SETTINGS */}`,
21574
+ title: "passport:nicknameMenu.onboarding.nicknameMenu.title",
21575
+ description: "passport:nicknameMenu.onboarding.nicknameMenu.description"
21576
+ }
21577
+ ];
21578
+ }
21579
+ });
21580
+
21707
21581
  // src/internal/components/NicknameMenu/index.ts
21708
21582
  var init_NicknameMenu2 = __esm({
21709
21583
  "src/internal/components/NicknameMenu/index.ts"() {
@@ -22609,7 +22483,6 @@ function PortfolioMenu() {
22609
22483
  const { t } = useT();
22610
22484
  const qc = (0, import_react_query40.useQueryClient)();
22611
22485
  const address = useSession((st) => st.address);
22612
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
22613
22486
  const {
22614
22487
  assets: blockscoutAssets,
22615
22488
  refreshBalances: refreshBlockscoutBalances,
@@ -22626,57 +22499,47 @@ function PortfolioMenu() {
22626
22499
  Promise.all(shownProjectAssets.map((asset) => qc.invalidateQueries({ queryKey: asset.balanceQueryKey })));
22627
22500
  refreshBlockscoutBalances();
22628
22501
  }, [qc, shownProjectAssets, refreshBlockscoutBalances]);
22629
- return /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
22630
- "div",
22631
- {
22632
- style: {
22633
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
22634
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
22502
+ return /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
22503
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
22504
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
22505
+ Button,
22506
+ {
22507
+ variant: "ghost",
22508
+ size: "icon",
22509
+ title: "Back",
22510
+ onClick: () => useLayoutDataStore.getState().setPage("main-menu" /* MAIN_MENU */),
22511
+ children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.ArrowLeft, { className: "h-4 w-4" })
22512
+ }
22513
+ ),
22514
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "text-xl font-semibold", children: t("passport:portfolioMenu.title") }),
22515
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
22516
+ Button,
22517
+ {
22518
+ title: "Refresh balances",
22519
+ variant: "ghost",
22520
+ size: "icon",
22521
+ onClick: refreshAllAssetsBalances,
22522
+ disabled: isBlockscoutLoading || isBlockscoutFetching,
22523
+ children: isBlockscoutLoading || isBlockscoutFetching ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.RefreshCw, { className: "h-4 w-4" })
22524
+ }
22525
+ )
22526
+ ] }),
22527
+ isBlockscoutLoading && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: "w-full flex items-center justify-center gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.Loader, { className: "w-4 h-4 animate-spin" }) }),
22528
+ !isBlockscoutLoading && blockscoutAssets?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(Highlight, { type: "info", className: "flex flex-col items-center justify-center gap-[var(--ui-kit-gap)]", children: [
22529
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.Gem, { className: "w-8 h-8" }),
22530
+ /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "block", children: t("passport:portfolioMenu.noAssets") })
22531
+ ] }),
22532
+ !isBlockscoutLoading && shownProjectAssets?.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
22533
+ !isBlockscoutLoading && blockscoutAssets?.length > 0 && blockscoutAssets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
22534
+ PortfolioItem,
22535
+ {
22536
+ address,
22537
+ asset
22635
22538
  },
22636
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
22637
- children: /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
22638
- /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
22639
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
22640
- Button,
22641
- {
22642
- variant: "ghost",
22643
- size: "icon",
22644
- title: "Back",
22645
- onClick: () => useLayoutDataStore.getState().setPage("main-menu" /* MAIN_MENU */),
22646
- children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.ArrowLeft, { className: "h-4 w-4" })
22647
- }
22648
- ),
22649
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "text-xl font-semibold", children: t("passport:portfolioMenu.title") }),
22650
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
22651
- Button,
22652
- {
22653
- title: "Refresh balances",
22654
- variant: "ghost",
22655
- size: "icon",
22656
- onClick: refreshAllAssetsBalances,
22657
- disabled: isBlockscoutLoading || isBlockscoutFetching,
22658
- children: isBlockscoutLoading || isBlockscoutFetching ? /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.RefreshCw, { className: "h-4 w-4" })
22659
- }
22660
- )
22661
- ] }),
22662
- isBlockscoutLoading && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("div", { className: "w-full flex items-center justify-center gap-[var(--ui-kit-gap)] p-[var(--ui-kit-pd)]", children: /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.Loader, { className: "w-4 h-4 animate-spin" }) }),
22663
- !isBlockscoutLoading && blockscoutAssets?.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime95.jsxs)(Highlight, { type: "info", className: "flex flex-col items-center justify-center gap-[var(--ui-kit-gap)]", children: [
22664
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(import_lucide_react53.Gem, { className: "w-8 h-8" }),
22665
- /* @__PURE__ */ (0, import_jsx_runtime95.jsx)("span", { className: "block", children: t("passport:portfolioMenu.noAssets") })
22666
- ] }),
22667
- !isBlockscoutLoading && shownProjectAssets?.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(PortfolioItem, { isProjectAsset: true, address, asset }, `project-${asset.symbol}-${index}`)),
22668
- !isBlockscoutLoading && blockscoutAssets?.length > 0 && blockscoutAssets.map((asset, index) => /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(
22669
- PortfolioItem,
22670
- {
22671
- address,
22672
- asset
22673
- },
22674
- `${asset.type}-${asset.address || "native"}-${asset.tokenId || index}`
22675
- )),
22676
- blockscoutError && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Highlight, { type: "error", children: blockscoutError?.message })
22677
- ] })
22678
- }
22679
- );
22539
+ `${asset.type}-${asset.address || "native"}-${asset.tokenId || index}`
22540
+ )),
22541
+ blockscoutError && /* @__PURE__ */ (0, import_jsx_runtime95.jsx)(Highlight, { type: "error", children: blockscoutError?.message })
22542
+ ] });
22680
22543
  }
22681
22544
  var import_react_query40, import_lucide_react53, import_react69, import_jsx_runtime95;
22682
22545
  var init_PortfolioMenu = __esm({
@@ -22689,7 +22552,6 @@ var init_PortfolioMenu = __esm({
22689
22552
  import_react69 = require("react");
22690
22553
  init_useBlockscoutAssets2();
22691
22554
  init_useLayoutDataStore();
22692
- init_useLayoutStore();
22693
22555
  init_Expandable2();
22694
22556
  init_button();
22695
22557
  init_highlight();
@@ -22785,21 +22647,6 @@ var init_nickname_fingerprint = __esm({
22785
22647
  }
22786
22648
  });
22787
22649
 
22788
- // src/internal/components/ReceiveMenu/onboarding.setup.ts
22789
- var RECEIVE_MENU_ONBOARDING_ID, RECEIVE_MENU_TOUR;
22790
- var init_onboarding_setup7 = __esm({
22791
- "src/internal/components/ReceiveMenu/onboarding.setup.ts"() {
22792
- RECEIVE_MENU_ONBOARDING_ID = "embarkai-receive-menu-onboarding";
22793
- RECEIVE_MENU_TOUR = [
22794
- {
22795
- elId: RECEIVE_MENU_ONBOARDING_ID,
22796
- title: "passport:receiveMenu.onboarding.receiveMenu.title",
22797
- description: "passport:receiveMenu.onboarding.receiveMenu.description"
22798
- }
22799
- ];
22800
- }
22801
- });
22802
-
22803
22650
  // src/internal/components/ReceiveMenu/ReceiveMenu.tsx
22804
22651
  function ReceiveMenu() {
22805
22652
  const { t } = useT();
@@ -22812,7 +22659,6 @@ function ReceiveMenu() {
22812
22659
  queryKey: [QUERY_KEYS.nicknameInfo, address],
22813
22660
  queryFn: async () => await getNicknameInfo()
22814
22661
  });
22815
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
22816
22662
  const [qrCodeUrl, setQrCodeUrl] = (0, import_react70.useState)("");
22817
22663
  const [isAddressCopied, setAddressCopied] = (0, import_react70.useState)(false);
22818
22664
  const [isNicknameCopied, setNicknameCopied] = (0, import_react70.useState)(false);
@@ -22834,107 +22680,96 @@ function ReceiveMenu() {
22834
22680
  color: { dark: "#000000", light: "#ffffff" }
22835
22681
  }).then((url) => setQrCodeUrl(url)).catch((err) => console.error("Failed to generate QR code:", err));
22836
22682
  }, [address]);
22837
- return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
22838
- "div",
22839
- {
22840
- ref: (inst) => onboarder.registerElement(RECEIVE_MENU_ONBOARDING_ID, inst),
22841
- style: {
22842
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
22843
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
22844
- },
22845
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]",
22846
- children: [
22847
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
22848
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
22849
- Button,
22850
- {
22851
- variant: "ghost",
22852
- size: "icon",
22853
- title: "Back",
22854
- onClick: () => useLayoutDataStore.getState().setPage("main-menu" /* MAIN_MENU */),
22855
- children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.ArrowLeft, { className: "h-4 w-4" })
22856
- }
22857
- ),
22858
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "text-xl font-semibold", children: t("passport:receiveMenu.title") })
22859
- ] }),
22860
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "text-xs text-[var(--ui-kit-fg-muted)]", children: t("passport:receiveMenu.scanQR") }),
22861
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
22862
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("strong", { className: "block w-full", children: `${t("passport:common.network")}: ${chainConfig.name}` }),
22863
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "block w-full", children: t("passport:receiveMenu.warning") })
22864
- ] }),
22865
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "flex items-center justify-center p-[var(--ui-kit-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) }),
22866
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "block text-xs leading-4 text-[var(--ui-kit-fg-muted)]", children: t("passport:receiveMenu.share.address") }),
22867
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
22868
- Button,
22869
- {
22870
- title: "Copy address",
22871
- variant: "secondary",
22872
- size: "medium",
22873
- className: "w-full",
22874
- onClick: () => {
22875
- if (!address) return;
22876
- navigator.clipboard.writeText(address);
22877
- setAddressCopied(true);
22878
- setTimeout(() => setAddressCopied(false), 2e3);
22879
- },
22880
- children: [
22881
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.Wallet2Icon, { className: "h-4 w-4 flex-none" }),
22882
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("span", { className: cn2("text-[10px] flex-1 block", { "text-[var(--ui-kit-bg-success)]": isAddressCopied }), children: [
22883
- address.slice(0, 10),
22884
- "...",
22885
- address.slice(-6)
22886
- ] }),
22887
- isAddressCopied ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.CheckCircle2, { className: "h-4 w-4 text-[var(--ui-kit-bg-success)] flex-none" }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.Copy, { className: "h-4 w-4 flex-none" })
22888
- ]
22889
- }
22890
- ),
22891
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "block text-xs leading-4 text-[var(--ui-kit-fg-muted)]", children: t("passport:receiveMenu.share.nickname") }),
22892
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
22893
- Button,
22894
- {
22895
- title: "Copy nickname",
22896
- variant: "secondary",
22897
- size: "medium",
22898
- className: "w-full",
22899
- onClick: () => {
22900
- const nickname = nicknameInfo.handle;
22901
- navigator.clipboard.writeText(nickname);
22902
- setNicknameCopied(true);
22903
- setTimeout(() => setNicknameCopied(false), 2e3);
22904
- },
22905
- children: isNicknameInfoLoading ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.LoaderIcon, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(import_jsx_runtime96.Fragment, { children: [
22906
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.AtSignIcon, { className: "h-4 w-4 flex-none" }),
22907
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: cn2("text-xs flex-1", { "text-[var(--ui-kit-bg-success)]": isNicknameCopied }), children: nicknameInfo.handle }),
22908
- isNicknameCopied ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.CheckCircle2, { className: "h-4 w-4 text-[var(--ui-kit-bg-success)] flex-none" }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.Copy, { className: "h-4 w-4 flex-none" })
22909
- ] })
22910
- }
22911
- ),
22912
- fingerprint && /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(import_jsx_runtime96.Fragment, { children: [
22913
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "block text-xs leading-4 text-[var(--ui-kit-fg-muted)]", children: t("passport:receiveMenu.share.identity") }),
22914
- /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
22915
- Button,
22916
- {
22917
- title: "Copy fingerprint",
22918
- variant: "secondary",
22919
- size: "medium",
22920
- className: "w-full justify-between",
22921
- onClick: () => {
22922
- if (!fingerprint) return;
22923
- navigator.clipboard.writeText(fingerprint);
22924
- setFingerprintCopied(true);
22925
- setTimeout(() => setFingerprintCopied(false), 2e3);
22926
- },
22927
- children: [
22928
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.FingerprintIcon, { className: "w-4 h-4 flex-none" }),
22929
- /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: cn2("text-xs font-bold flex-1", { "text-[var(--ui-kit-bg-success)]": fingerprintCopied }), children: fingerprint }),
22930
- fingerprintCopied ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.CheckCircle2, { className: "w-4 h-4 text-[var(--ui-kit-bg-success)] flex-none" }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.Copy, { className: "w-4 h-4 flex-none" })
22931
- ]
22932
- }
22933
- )
22683
+ return /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
22684
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("div", { className: "w-full flex items-center gap-[var(--ui-kit-gap)]", children: [
22685
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
22686
+ Button,
22687
+ {
22688
+ variant: "ghost",
22689
+ size: "icon",
22690
+ title: "Back",
22691
+ onClick: () => useLayoutDataStore.getState().setPage("main-menu" /* MAIN_MENU */),
22692
+ children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.ArrowLeft, { className: "h-4 w-4" })
22693
+ }
22694
+ ),
22695
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "text-xl font-semibold", children: t("passport:receiveMenu.title") })
22696
+ ] }),
22697
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "text-xs text-[var(--ui-kit-fg-muted)]", children: t("passport:receiveMenu.scanQR") }),
22698
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(Highlight, { className: "text-center", type: "warning", children: [
22699
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("strong", { className: "block w-full", children: `${t("passport:common.network")}: ${chainConfig.name}` }),
22700
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "block w-full", children: t("passport:receiveMenu.warning") })
22701
+ ] }),
22702
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "flex items-center justify-center p-[var(--ui-kit-pd)]", style: { minHeight: "216px" }, children: qrCodeUrl && /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("img", { src: qrCodeUrl, alt: "Wallet QR Code", className: "w-48 h-48" }) }),
22703
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "block text-xs leading-4 text-[var(--ui-kit-fg-muted)]", children: t("passport:receiveMenu.share.address") }),
22704
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
22705
+ Button,
22706
+ {
22707
+ title: "Copy address",
22708
+ variant: "secondary",
22709
+ size: "medium",
22710
+ className: "w-full",
22711
+ onClick: () => {
22712
+ if (!address) return;
22713
+ navigator.clipboard.writeText(address);
22714
+ setAddressCopied(true);
22715
+ setTimeout(() => setAddressCopied(false), 2e3);
22716
+ },
22717
+ children: [
22718
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.Wallet2Icon, { className: "h-4 w-4 flex-none" }),
22719
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)("span", { className: cn2("text-[10px] flex-1 block", { "text-[var(--ui-kit-bg-success)]": isAddressCopied }), children: [
22720
+ address.slice(0, 10),
22721
+ "...",
22722
+ address.slice(-6)
22723
+ ] }),
22724
+ isAddressCopied ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.CheckCircle2, { className: "h-4 w-4 text-[var(--ui-kit-bg-success)] flex-none" }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.Copy, { className: "h-4 w-4 flex-none" })
22725
+ ]
22726
+ }
22727
+ ),
22728
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "block text-xs leading-4 text-[var(--ui-kit-fg-muted)]", children: t("passport:receiveMenu.share.nickname") }),
22729
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(
22730
+ Button,
22731
+ {
22732
+ title: "Copy nickname",
22733
+ variant: "secondary",
22734
+ size: "medium",
22735
+ className: "w-full",
22736
+ onClick: () => {
22737
+ const nickname = nicknameInfo.handle;
22738
+ navigator.clipboard.writeText(nickname);
22739
+ setNicknameCopied(true);
22740
+ setTimeout(() => setNicknameCopied(false), 2e3);
22741
+ },
22742
+ children: isNicknameInfoLoading ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.LoaderIcon, { className: "w-4 h-4 animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(import_jsx_runtime96.Fragment, { children: [
22743
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.AtSignIcon, { className: "h-4 w-4 flex-none" }),
22744
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: cn2("text-xs flex-1", { "text-[var(--ui-kit-bg-success)]": isNicknameCopied }), children: nicknameInfo.handle }),
22745
+ isNicknameCopied ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.CheckCircle2, { className: "h-4 w-4 text-[var(--ui-kit-bg-success)] flex-none" }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.Copy, { className: "h-4 w-4 flex-none" })
22934
22746
  ] })
22935
- ]
22936
- }
22937
- );
22747
+ }
22748
+ ),
22749
+ fingerprint && /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(import_jsx_runtime96.Fragment, { children: [
22750
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: "block text-xs leading-4 text-[var(--ui-kit-fg-muted)]", children: t("passport:receiveMenu.share.identity") }),
22751
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsxs)(
22752
+ Button,
22753
+ {
22754
+ title: "Copy fingerprint",
22755
+ variant: "secondary",
22756
+ size: "medium",
22757
+ className: "w-full justify-between",
22758
+ onClick: () => {
22759
+ if (!fingerprint) return;
22760
+ navigator.clipboard.writeText(fingerprint);
22761
+ setFingerprintCopied(true);
22762
+ setTimeout(() => setFingerprintCopied(false), 2e3);
22763
+ },
22764
+ children: [
22765
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.FingerprintIcon, { className: "w-4 h-4 flex-none" }),
22766
+ /* @__PURE__ */ (0, import_jsx_runtime96.jsx)("span", { className: cn2("text-xs font-bold flex-1", { "text-[var(--ui-kit-bg-success)]": fingerprintCopied }), children: fingerprint }),
22767
+ fingerprintCopied ? /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.CheckCircle2, { className: "w-4 h-4 text-[var(--ui-kit-bg-success)] flex-none" }) : /* @__PURE__ */ (0, import_jsx_runtime96.jsx)(import_lucide_react54.Copy, { className: "w-4 h-4 flex-none" })
22768
+ ]
22769
+ }
22770
+ )
22771
+ ] })
22772
+ ] });
22938
22773
  }
22939
22774
  var import_react_query41, import_lucide_react54, import_qrcode, import_react70, import_jsx_runtime96;
22940
22775
  var init_ReceiveMenu = __esm({
@@ -22948,17 +22783,31 @@ var init_ReceiveMenu = __esm({
22948
22783
  init_nickname();
22949
22784
  init_profile();
22950
22785
  init_useLayoutDataStore();
22951
- init_useLayoutStore();
22952
22786
  init_nickname_fingerprint();
22953
22787
  init_utils();
22788
+ init_Expandable2();
22954
22789
  init_Onboarding();
22955
22790
  init_button();
22956
22791
  init_highlight();
22957
- init_onboarding_setup7();
22958
22792
  import_jsx_runtime96 = require("react/jsx-runtime");
22959
22793
  }
22960
22794
  });
22961
22795
 
22796
+ // src/internal/components/ReceiveMenu/onboarding.setup.ts
22797
+ var RECEIVE_MENU_TOUR;
22798
+ var init_onboarding_setup7 = __esm({
22799
+ "src/internal/components/ReceiveMenu/onboarding.setup.ts"() {
22800
+ init_constants();
22801
+ RECEIVE_MENU_TOUR = [
22802
+ {
22803
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"receive" /* RECEIVE */}`,
22804
+ title: "passport:receiveMenu.onboarding.receiveMenu.title",
22805
+ description: "passport:receiveMenu.onboarding.receiveMenu.description"
22806
+ }
22807
+ ];
22808
+ }
22809
+ });
22810
+
22962
22811
  // src/internal/components/ReceiveMenu/index.ts
22963
22812
  var init_ReceiveMenu2 = __esm({
22964
22813
  "src/internal/components/ReceiveMenu/index.ts"() {
@@ -22971,9 +22820,10 @@ var init_ReceiveMenu2 = __esm({
22971
22820
  var SECURITY_MENU_TOUR;
22972
22821
  var init_onboarding_setup8 = __esm({
22973
22822
  "src/internal/components/SecurityMenu/onboarding.setup.ts"() {
22823
+ init_constants();
22974
22824
  SECURITY_MENU_TOUR = [
22975
22825
  {
22976
- elId: "embarkai-security-menu-onboarding" /* securityMenu */,
22826
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"security" /* SECURITY */}`,
22977
22827
  title: "passport:securityMenu.onboarding.securityMenu.title",
22978
22828
  description: "passport:securityMenu.onboarding.securityMenu.description"
22979
22829
  },
@@ -23087,8 +22937,8 @@ function Application(props) {
23087
22937
  "p-2 rounded-[var(--ui-kit-el-bdrs)] bg-[var(--ui-kit-secondary)]",
23088
22938
  {
23089
22939
  "cursor-default": !appUrl,
23090
- "cursor-pointer transition-colors duration-200": !!appUrl,
23091
- "hover:bg-[var(--ui-kit-secondary-h)] active:bg-[var(--ui-kit-secondary-a)]": !!appUrl
22940
+ "cursor-pointer transition-opacity duration-200": !!appUrl,
22941
+ "hover:opacity-80 active:opacity-60": !!appUrl
23092
22942
  }
23093
22943
  ),
23094
22944
  onClick: () => {
@@ -23590,47 +23440,35 @@ var init_Keyshare2 = __esm({
23590
23440
  // src/internal/components/SecurityMenu/SecurityMenu.tsx
23591
23441
  function SecurityMenu() {
23592
23442
  const { t } = useT();
23593
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
23594
23443
  const appToUntrust = useSecurityStore((st) => st.appToUntrust);
23595
23444
  useOnboardingTourAvailable(!appToUntrust);
23596
- return /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
23597
- "div",
23598
- {
23599
- ref: (inst) => onboarder.registerElement("embarkai-security-menu-onboarding" /* securityMenu */, inst),
23600
- style: {
23601
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
23602
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
23603
- },
23604
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
23605
- children: /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
23606
- /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
23607
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
23608
- Button,
23609
- {
23610
- variant: "ghost",
23611
- size: "icon",
23612
- title: t("passport:common.back"),
23613
- onClick: () => {
23614
- const { appToUntrust: appToUntrust2, untrustApp } = useSecurityStore.getState();
23615
- if (!!appToUntrust2) {
23616
- untrustApp(null);
23617
- } else {
23618
- useLayoutDataStore.getState().setPage("settings" /* SETTINGS */);
23619
- }
23620
- },
23621
- children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react60.ArrowLeft, { className: "h-4 w-4" })
23445
+ return /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
23446
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
23447
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(
23448
+ Button,
23449
+ {
23450
+ variant: "ghost",
23451
+ size: "icon",
23452
+ title: t("passport:common.back"),
23453
+ onClick: () => {
23454
+ const { appToUntrust: appToUntrust2, untrustApp } = useSecurityStore.getState();
23455
+ if (!!appToUntrust2) {
23456
+ untrustApp(null);
23457
+ } else {
23458
+ useLayoutDataStore.getState().setPage("settings" /* SETTINGS */);
23622
23459
  }
23623
- ),
23624
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: "text-xl font-semibold", children: t("passport:securityMenu.title") })
23625
- ] }),
23626
- appToUntrust && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(UntrustApplication, {}),
23627
- !appToUntrust && /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(import_jsx_runtime102.Fragment, { children: [
23628
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(Keyshare, {}),
23629
- /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(ConnectedApps, {})
23630
- ] })
23631
- ] })
23632
- }
23633
- );
23460
+ },
23461
+ children: /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(import_lucide_react60.ArrowLeft, { className: "h-4 w-4" })
23462
+ }
23463
+ ),
23464
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)("span", { className: "text-xl font-semibold", children: t("passport:securityMenu.title") })
23465
+ ] }),
23466
+ appToUntrust && /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(UntrustApplication, {}),
23467
+ !appToUntrust && /* @__PURE__ */ (0, import_jsx_runtime102.jsxs)(import_jsx_runtime102.Fragment, { children: [
23468
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(Keyshare, {}),
23469
+ /* @__PURE__ */ (0, import_jsx_runtime102.jsx)(ConnectedApps, {})
23470
+ ] })
23471
+ ] });
23634
23472
  }
23635
23473
  var import_lucide_react60, import_jsx_runtime102;
23636
23474
  var init_SecurityMenu = __esm({
@@ -23638,7 +23476,6 @@ var init_SecurityMenu = __esm({
23638
23476
  init_i18n();
23639
23477
  import_lucide_react60 = require("lucide-react");
23640
23478
  init_useLayoutDataStore();
23641
- init_useLayoutStore();
23642
23479
  init_Expandable2();
23643
23480
  init_Onboarding();
23644
23481
  init_button();
@@ -24694,6 +24531,7 @@ var init_useSendStore = __esm({
24694
24531
  var TOUR_SEND_ASSET, TOUR_BRIDGE_QUOTE, SEND_MENU_TOUR, BRIDGE_MENU_TOUR;
24695
24532
  var init_onboarding_setup9 = __esm({
24696
24533
  "src/internal/components/SendMenu/onboarding.setup.ts"() {
24534
+ init_constants();
24697
24535
  init_useBridgeStore();
24698
24536
  init_useSendStore();
24699
24537
  TOUR_SEND_ASSET = {
@@ -24713,7 +24551,7 @@ var init_onboarding_setup9 = __esm({
24713
24551
  };
24714
24552
  SEND_MENU_TOUR = [
24715
24553
  {
24716
- elId: "sendmenu-page" /* sendMenu */,
24554
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"send" /* SEND */}`,
24717
24555
  title: "passport:sendMenu.onboarding.sendMenu.title",
24718
24556
  description: "passport:sendMenu.onboarding.sendMenu.description",
24719
24557
  waitSecs: 4,
@@ -24742,7 +24580,7 @@ var init_onboarding_setup9 = __esm({
24742
24580
  ];
24743
24581
  BRIDGE_MENU_TOUR = [
24744
24582
  {
24745
- elId: "sendmenu-page" /* sendMenu */,
24583
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"send" /* SEND */}`,
24746
24584
  title: "passport:bridgeMenu.onboarding.bridgeMenu.title",
24747
24585
  description: "passport:bridgeMenu.onboarding.bridgeMenu.description",
24748
24586
  waitSecs: 5
@@ -27403,7 +27241,6 @@ function SendFlowSelector() {
27403
27241
  const { t } = useT();
27404
27242
  const { config } = useProviderConfig();
27405
27243
  useSendMenuParams();
27406
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
27407
27244
  const selectorFlow = useFlowSelectorStore((st) => st.flow);
27408
27245
  const menuTitle = useFlowSelectorStore((st) => st.menuTitle);
27409
27246
  const isUiLocked = useFlowSelectorStore((st) => st.isUiLocked);
@@ -27428,74 +27265,63 @@ function SendFlowSelector() {
27428
27265
  }, []);
27429
27266
  const isSendFlowInitialState = selectorFlow === "send" && sendStep === "input" || selectorFlow === "bridge" && bridgeStep === "select";
27430
27267
  const isFlowSelectorButtonsShown = !!config?.current?.features?.showAssetBridge && isSendFlowInitialState;
27431
- return /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
27432
- "div",
27433
- {
27434
- ref: (inst) => onboarder.registerElement("sendmenu-page" /* sendMenu */, inst),
27435
- style: {
27436
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
27437
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
27438
- },
27439
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
27440
- children: /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
27441
- /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center justify-between", children: [
27442
- /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
27443
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
27444
- Button,
27445
- {
27446
- variant: "ghost",
27447
- size: "icon",
27448
- disabled: isUiLocked,
27449
- onClick: () => {
27450
- useFlowSelectorStore.getState().setError(null);
27451
- const { setPage } = useLayoutDataStore.getState();
27452
- if (selectorFlow === "bridge") {
27453
- const { bridgeStep: bridgeStep2, setBridgeStep } = useBridgeStore.getState();
27454
- switch (bridgeStep2) {
27455
- case "select":
27456
- return setPage("main-menu" /* MAIN_MENU */);
27457
- // case ''
27458
- case "tx-history-details":
27459
- return setBridgeStep("tx-history");
27460
- default:
27461
- return setBridgeStep("select");
27462
- }
27463
- }
27464
- if (selectorFlow === "send") {
27465
- const { txStep, setTxStep } = useSendStore.getState();
27466
- switch (txStep) {
27467
- case "input":
27468
- return setPage("main-menu" /* MAIN_MENU */);
27469
- default:
27470
- return setTxStep("input");
27471
- }
27472
- }
27473
- },
27474
- children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_lucide_react73.ArrowLeft, { className: "h-4 w-4" })
27268
+ return /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
27269
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center justify-between", children: [
27270
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
27271
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
27272
+ Button,
27273
+ {
27274
+ variant: "ghost",
27275
+ size: "icon",
27276
+ disabled: isUiLocked,
27277
+ onClick: () => {
27278
+ useFlowSelectorStore.getState().setError(null);
27279
+ const { setPage } = useLayoutDataStore.getState();
27280
+ if (selectorFlow === "bridge") {
27281
+ const { bridgeStep: bridgeStep2, setBridgeStep } = useBridgeStore.getState();
27282
+ switch (bridgeStep2) {
27283
+ case "select":
27284
+ return setPage("main-menu" /* MAIN_MENU */);
27285
+ // case ''
27286
+ case "tx-history-details":
27287
+ return setBridgeStep("tx-history");
27288
+ default:
27289
+ return setBridgeStep("select");
27290
+ }
27475
27291
  }
27476
- ),
27477
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { className: "text-xl font-semibold", children: menuTitle })
27478
- ] }),
27479
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(BridgeHistorySwitch, {}) })
27480
- ] }),
27481
- isFlowSelectorButtonsShown && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SelectorFlowButtons, {}),
27482
- availableFlows[selectorFlow],
27483
- sendOrBridgeError && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Highlight, { type: "error", className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
27484
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { children: sendOrBridgeError }),
27485
- /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
27486
- Button,
27487
- {
27488
- variant: "default",
27489
- size: "medium",
27490
- className: "w-full",
27491
- onClick: () => useFlowSelectorStore.getState().setError(null),
27492
- children: t("passport:common.hide")
27493
- }
27494
- )
27495
- ] })
27496
- ] })
27497
- }
27498
- );
27292
+ if (selectorFlow === "send") {
27293
+ const { txStep, setTxStep } = useSendStore.getState();
27294
+ switch (txStep) {
27295
+ case "input":
27296
+ return setPage("main-menu" /* MAIN_MENU */);
27297
+ default:
27298
+ return setTxStep("input");
27299
+ }
27300
+ }
27301
+ },
27302
+ children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(import_lucide_react73.ArrowLeft, { className: "h-4 w-4" })
27303
+ }
27304
+ ),
27305
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { className: "text-xl font-semibold", children: menuTitle })
27306
+ ] }),
27307
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(BridgeHistorySwitch, {}) })
27308
+ ] }),
27309
+ isFlowSelectorButtonsShown && /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(SelectorFlowButtons, {}),
27310
+ availableFlows[selectorFlow],
27311
+ sendOrBridgeError && /* @__PURE__ */ (0, import_jsx_runtime120.jsxs)(Highlight, { type: "error", className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
27312
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)("span", { children: sendOrBridgeError }),
27313
+ /* @__PURE__ */ (0, import_jsx_runtime120.jsx)(
27314
+ Button,
27315
+ {
27316
+ variant: "default",
27317
+ size: "medium",
27318
+ className: "w-full",
27319
+ onClick: () => useFlowSelectorStore.getState().setError(null),
27320
+ children: t("passport:common.hide")
27321
+ }
27322
+ )
27323
+ ] })
27324
+ ] });
27499
27325
  }
27500
27326
  var import_lucide_react73, import_react89, import_jsx_runtime120;
27501
27327
  var init_SendFlowSelector = __esm({
@@ -27505,7 +27331,6 @@ var init_SendFlowSelector = __esm({
27505
27331
  import_lucide_react73 = require("lucide-react");
27506
27332
  import_react89 = require("react");
27507
27333
  init_useLayoutDataStore();
27508
- init_useLayoutStore();
27509
27334
  init_utils();
27510
27335
  init_Expandable2();
27511
27336
  init_Onboarding();
@@ -28180,20 +28005,6 @@ var init_api4 = __esm({
28180
28005
  }
28181
28006
  });
28182
28007
 
28183
- // src/internal/components/TransactionsMenu/onboarding.setup.ts
28184
- var TRANSACTIONS_MENU_TOUR;
28185
- var init_onboarding_setup10 = __esm({
28186
- "src/internal/components/TransactionsMenu/onboarding.setup.ts"() {
28187
- TRANSACTIONS_MENU_TOUR = [
28188
- {
28189
- elId: "embarkai-transactions-menu-onboarding" /* transactionsMenu */,
28190
- title: "passport:transactionsMenu.onboarding.transactionsMenu.title",
28191
- description: "passport:transactionsMenu.onboarding.transactionsMenu.description"
28192
- }
28193
- ];
28194
- }
28195
- });
28196
-
28197
28008
  // src/internal/components/TransactionsMenu/utils.ts
28198
28009
  function formatIntl(price, fractionDigits) {
28199
28010
  const formatter = Intl.NumberFormat("en-US", {
@@ -28290,8 +28101,8 @@ function TransactionsGroup(props) {
28290
28101
  onClick: () => openInExplorer2(parent.parentHash),
28291
28102
  className: cn2(
28292
28103
  "w-full flex flex-col gap-1 p-[var(--ui-kit-pd)] rounded-[var(--ui-kit-el-bdrs)]",
28293
- "transition-colors cursor-pointer",
28294
- "bg-[var(--ui-kit-secondary)] hover:bg-[var(--ui-kit-secondary-h)] active:bg-[var(--ui-kit-secondary-a)]"
28104
+ "transition-opacity cursor-pointer",
28105
+ "bg-[var(--ui-kit-secondary)] hover:opacity-80 active:opacity-60"
28295
28106
  ),
28296
28107
  children: [
28297
28108
  /* @__PURE__ */ (0, import_jsx_runtime121.jsxs)("div", { className: "flex items-center justify-between gap-[var(--ui-kit-gap)]", children: [
@@ -28392,7 +28203,6 @@ function TransactionsMenu() {
28392
28203
  const { t } = useT();
28393
28204
  useOnboardingTourAvailable(true);
28394
28205
  const setPage = useLayoutDataStore((st) => st.setPage);
28395
- const maxScrollHeight = useLayoutStore((st) => st.maxScrollHeight);
28396
28206
  const [expandedGroups, setExpandedGroups] = (0, import_react91.useState)({});
28397
28207
  const historySupported = isTransactionHistorySupported(chainConfig?.id);
28398
28208
  const {
@@ -28411,50 +28221,39 @@ function TransactionsMenu() {
28411
28221
  [qc, chainConfig.id, address]
28412
28222
  );
28413
28223
  const txHistoryResolvedError = txHistoryError ? txHistoryError instanceof Error ? txHistoryError.message : "Failed to load transactions" : null;
28414
- return /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
28415
- "div",
28416
- {
28417
- ref: (inst) => onboarder.registerElement("embarkai-transactions-menu-onboarding" /* transactionsMenu */, inst),
28418
- style: {
28419
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
28420
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
28224
+ return /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
28225
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
28226
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.ArrowLeft, { className: "h-4 w-4" }) }),
28227
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "text-xl font-semibold", children: t("passport:transactionsMenu.title") }),
28228
+ historySupported && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
28229
+ Button,
28230
+ {
28231
+ variant: "ghost",
28232
+ size: "icon",
28233
+ onClick: refreshTxHistory,
28234
+ disabled: isTxHistoryFetching,
28235
+ title: "Refresh transactions",
28236
+ children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.RefreshCw, { className: "h-4 w-4" })
28237
+ }
28238
+ )
28239
+ ] }),
28240
+ !historySupported && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Highlight, { type: "warning", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { children: t("passport:transactionsMenu.comingSoon") }) }),
28241
+ historySupported && isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.Loader, { className: "w-4 h-4 animate-spin" }) }),
28242
+ historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Highlight, { type: "info", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { children: t("passport:transactionsMenu.noTransactions") }) }),
28243
+ historySupported && !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
28244
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.XCircle, { className: "w-4 h-4 flex-none" }),
28245
+ /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
28246
+ ] }),
28247
+ historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
28248
+ TransactionsGroup,
28249
+ {
28250
+ group,
28251
+ expanded: expandedGroups[group.id] ?? false,
28252
+ onToggleExpanded: (groupId) => setExpandedGroups((prev) => ({ ...prev, [groupId]: !prev[groupId] }))
28421
28253
  },
28422
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
28423
- children: /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Expandable, { isExpanded: true, contentClassName: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: [
28424
- /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
28425
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("settings" /* SETTINGS */), children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.ArrowLeft, { className: "h-4 w-4" }) }),
28426
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "text-xl font-semibold", children: t("passport:transactionsMenu.title") }),
28427
- historySupported && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
28428
- Button,
28429
- {
28430
- variant: "ghost",
28431
- size: "icon",
28432
- onClick: refreshTxHistory,
28433
- disabled: isTxHistoryFetching,
28434
- title: "Refresh transactions",
28435
- children: isTxHistoryFetching ? /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.Loader, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.RefreshCw, { className: "h-4 w-4" })
28436
- }
28437
- )
28438
- ] }),
28439
- !historySupported && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Highlight, { type: "warning", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { children: t("passport:transactionsMenu.comingSoon") }) }),
28440
- historySupported && isTxHistoryLoading && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "flex items-center justify-center p-8", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.Loader, { className: "w-4 h-4 animate-spin" }) }),
28441
- historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length === 0 && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(Highlight, { type: "info", children: /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { children: t("passport:transactionsMenu.noTransactions") }) }),
28442
- historySupported && !isTxHistoryLoading && txHistoryResolvedError && /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)(Highlight, { type: "error", className: "flex gap-[var(--ui-kit-gap)]", children: [
28443
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(import_lucide_react75.XCircle, { className: "w-4 h-4 flex-none" }),
28444
- /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { className: "block w-full flex-1 text-center text-xs", children: txHistoryResolvedError })
28445
- ] }),
28446
- historySupported && !isTxHistoryLoading && !txHistoryResolvedError && txHistoryGroups.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: txHistoryGroups.map((group) => /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
28447
- TransactionsGroup,
28448
- {
28449
- group,
28450
- expanded: expandedGroups[group.id] ?? false,
28451
- onToggleExpanded: (groupId) => setExpandedGroups((prev) => ({ ...prev, [groupId]: !prev[groupId] }))
28452
- },
28453
- group.id
28454
- )) })
28455
- ] })
28456
- }
28457
- );
28254
+ group.id
28255
+ )) })
28256
+ ] });
28458
28257
  }
28459
28258
  var import_react_query53, import_lucide_react75, import_react91, import_jsx_runtime122;
28460
28259
  var init_TransactionsMenu = __esm({
@@ -28465,7 +28264,6 @@ var init_TransactionsMenu = __esm({
28465
28264
  import_lucide_react75 = require("lucide-react");
28466
28265
  import_react91 = require("react");
28467
28266
  init_useLayoutDataStore();
28468
- init_useLayoutStore();
28469
28267
  init_Expandable2();
28470
28268
  init_Onboarding();
28471
28269
  init_button();
@@ -28477,6 +28275,21 @@ var init_TransactionsMenu = __esm({
28477
28275
  }
28478
28276
  });
28479
28277
 
28278
+ // src/internal/components/TransactionsMenu/onboarding.setup.ts
28279
+ var TRANSACTIONS_MENU_TOUR;
28280
+ var init_onboarding_setup10 = __esm({
28281
+ "src/internal/components/TransactionsMenu/onboarding.setup.ts"() {
28282
+ init_constants();
28283
+ TRANSACTIONS_MENU_TOUR = [
28284
+ {
28285
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"transactions" /* TRANSACTIONS */}`,
28286
+ title: "passport:transactionsMenu.onboarding.transactionsMenu.title",
28287
+ description: "passport:transactionsMenu.onboarding.transactionsMenu.description"
28288
+ }
28289
+ ];
28290
+ }
28291
+ });
28292
+
28480
28293
  // src/internal/components/TransactionsMenu/index.ts
28481
28294
  var init_TransactionsMenu2 = __esm({
28482
28295
  "src/internal/components/TransactionsMenu/index.ts"() {
@@ -28504,21 +28317,6 @@ var init_constants8 = __esm({
28504
28317
  }
28505
28318
  });
28506
28319
 
28507
- // src/internal/components/SettingsMenu/onboarding.setup.ts
28508
- var SETTINGS_MENU_ONBOARDING_ID, SETTINGS_MENU_TOUR;
28509
- var init_onboarding_setup11 = __esm({
28510
- "src/internal/components/SettingsMenu/onboarding.setup.ts"() {
28511
- SETTINGS_MENU_ONBOARDING_ID = "embarkai-settings-menu-onboarding";
28512
- SETTINGS_MENU_TOUR = [
28513
- {
28514
- elId: SETTINGS_MENU_ONBOARDING_ID,
28515
- title: "passport:common.onboarding.settingsMenu.title",
28516
- description: "passport:common.onboarding.settingsMenu.description"
28517
- }
28518
- ];
28519
- }
28520
- });
28521
-
28522
28320
  // src/internal/components/SettingsMenu/SettingsMenu.tsx
28523
28321
  function useSettingsButtons(chainId) {
28524
28322
  const config = useProviderConfig().config;
@@ -28571,41 +28369,30 @@ function SettingsMenu() {
28571
28369
  queryFn: getNicknameInfo
28572
28370
  });
28573
28371
  const highlightedKeys = settingsNotifications.map((n) => n.target);
28574
- return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
28575
- "div",
28576
- {
28577
- ref: (inst) => onboarder.registerElement(SETTINGS_MENU_ONBOARDING_ID, inst),
28578
- style: {
28579
- "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
28580
- "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
28372
+ return /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(Expandable, { isExpanded: true, contentClassName: "flex flex-col gap-[var(--ui-kit-gap)]", children: [
28373
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
28374
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_lucide_react77.ArrowLeft, { className: "h-4 w-4" }) }),
28375
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { className: "text-xl font-semibold", children: t("passport:common.settings") })
28376
+ ] }),
28377
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: settingsButtons.map((el) => ({ ...el, onClick: () => setPage(el.id) })).map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
28378
+ Button,
28379
+ {
28380
+ variant: "secondary",
28381
+ size: "large",
28382
+ onClick,
28383
+ disabled: !address,
28384
+ className: cn2(
28385
+ "w-full items-center justify-start",
28386
+ highlightedKeys.includes(id) && "animate-glow-warning"
28387
+ ),
28388
+ children: [
28389
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Icon2, { className: "w-4 h-4" }),
28390
+ /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { children: t(name) })
28391
+ ]
28581
28392
  },
28582
- className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)] flex flex-col gap-[var(--ui-kit-gap)]",
28583
- children: [
28584
- /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)("div", { className: "flex items-center gap-[var(--ui-kit-gap)]", children: [
28585
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Button, { variant: "ghost", size: "icon", title: "Back", onClick: () => setPage("main-menu" /* MAIN_MENU */), children: /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(import_lucide_react77.ArrowLeft, { className: "h-4 w-4" }) }),
28586
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { className: "text-xl font-semibold", children: t("passport:common.settings") })
28587
- ] }),
28588
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("div", { className: "w-full flex flex-col gap-[var(--ui-kit-gap)]", children: settingsButtons.map((el) => ({ ...el, onClick: () => setPage(el.id) })).map(({ id, name, Icon: Icon2, onClick }) => /* @__PURE__ */ (0, import_jsx_runtime123.jsxs)(
28589
- Button,
28590
- {
28591
- variant: "secondary",
28592
- size: "large",
28593
- onClick,
28594
- disabled: !address,
28595
- className: cn2(
28596
- "w-full items-center justify-start",
28597
- highlightedKeys.includes(id) && "animate-glow-warning"
28598
- ),
28599
- children: [
28600
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)(Icon2, { className: "w-4 h-4" }),
28601
- /* @__PURE__ */ (0, import_jsx_runtime123.jsx)("span", { children: t(name) })
28602
- ]
28603
- },
28604
- id
28605
- )) })
28606
- ]
28607
- }
28608
- );
28393
+ id
28394
+ )) })
28395
+ ] });
28609
28396
  }
28610
28397
  var import_react_query54, import_lucide_react77, import_react92, import_jsx_runtime123;
28611
28398
  var init_SettingsMenu = __esm({
@@ -28622,16 +28409,31 @@ var init_SettingsMenu = __esm({
28622
28409
  init_useLayoutStore();
28623
28410
  init_pro_mode();
28624
28411
  init_utils();
28412
+ init_Expandable2();
28625
28413
  init_useProvidersList();
28626
28414
  init_Onboarding();
28627
28415
  init_TransactionsMenu2();
28628
28416
  init_button();
28629
28417
  init_constants8();
28630
- init_onboarding_setup11();
28631
28418
  import_jsx_runtime123 = require("react/jsx-runtime");
28632
28419
  }
28633
28420
  });
28634
28421
 
28422
+ // src/internal/components/SettingsMenu/onboarding.setup.ts
28423
+ var SETTINGS_MENU_TOUR;
28424
+ var init_onboarding_setup11 = __esm({
28425
+ "src/internal/components/SettingsMenu/onboarding.setup.ts"() {
28426
+ init_constants();
28427
+ SETTINGS_MENU_TOUR = [
28428
+ {
28429
+ elId: `${EMBARKAI_DIALOG_ONBOARDING_ID}-${"settings" /* SETTINGS */}`,
28430
+ title: "passport:common.onboarding.settingsMenu.title",
28431
+ description: "passport:common.onboarding.settingsMenu.description"
28432
+ }
28433
+ ];
28434
+ }
28435
+ });
28436
+
28635
28437
  // src/internal/components/SettingsMenu/index.ts
28636
28438
  var init_SettingsMenu2 = __esm({
28637
28439
  "src/internal/components/SettingsMenu/index.ts"() {
@@ -28853,35 +28655,25 @@ var init_PageMap = __esm({
28853
28655
  // src/internal/hooks/usePageMapper.tsx
28854
28656
  function usePageMapper() {
28855
28657
  const page = useLayoutDataStore((st) => st.page);
28856
- const {
28857
- setDialogTitle,
28858
- setDialogDescription,
28859
- setIsDialogForced,
28860
- setDialogContent,
28861
- setIsDialogOpen,
28862
- setIsDialogClosing
28863
- } = useLayoutStore();
28864
28658
  const closeDialog = (0, import_react93.useCallback)(() => {
28865
- setIsDialogClosing(true);
28659
+ useLayoutStore.setState({ isDialogAnimating: true });
28866
28660
  setTimeout(() => {
28867
- setDialogContent(null);
28868
- setDialogDescription(null);
28869
- setDialogTitle(null);
28870
- setIsDialogForced(false);
28871
- setIsDialogClosing(false);
28872
- setIsDialogOpen(false);
28661
+ useLayoutStore.setState({
28662
+ dialogContent: null,
28663
+ isDialogAnimating: false,
28664
+ isDialogOpen: false,
28665
+ isDialogForced: false
28666
+ // closing via page === null should reset forced state
28667
+ });
28873
28668
  }, CLEAR_DIALOG_TIMEOUT);
28874
- }, [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogForced, setIsDialogOpen, setIsDialogClosing]);
28875
- const openDialog = (0, import_react93.useCallback)(
28876
- (pageItem) => {
28877
- const PageContentComponent = pageItem.component;
28878
- setDialogTitle(pageItem.title);
28879
- setDialogDescription(pageItem.description);
28880
- setDialogContent(/* @__PURE__ */ (0, import_jsx_runtime125.jsx)(PageContentComponent, {}));
28881
- setIsDialogOpen(true);
28882
- },
28883
- [setDialogContent, setDialogDescription, setDialogTitle, setIsDialogOpen]
28884
- );
28669
+ }, []);
28670
+ const openDialog = (0, import_react93.useCallback)((pageItem) => {
28671
+ useLayoutStore.setState({
28672
+ dialogContent: /* @__PURE__ */ (0, import_jsx_runtime125.jsx)(pageItem.component, {}),
28673
+ isDialogOpen: true
28674
+ // isDialogAnimating: true
28675
+ });
28676
+ }, []);
28885
28677
  (0, import_react93.useEffect)(() => {
28886
28678
  if (page === null) return closeDialog();
28887
28679
  const pageItem = PAGE_MAP[page];
@@ -28952,7 +28744,7 @@ var init_package = __esm({
28952
28744
  "package.json"() {
28953
28745
  package_default = {
28954
28746
  name: "@embarkai/ui-kit",
28955
- version: "0.4.92",
28747
+ version: "0.4.94",
28956
28748
  description: "React UI components and hooks for EmbarkAI authentication and Account Abstraction",
28957
28749
  type: "module",
28958
28750
  main: "./dist/index.cjs",
@@ -29215,9 +29007,9 @@ var init_Footer2 = __esm({
29215
29007
  var EMBARKAI_HEADER_ONBOARDING_ID, EMBARKAI_HEADER_TOUR_BUTTON_ID, ONBOARDING_TOURS;
29216
29008
  var init_onborading_setup = __esm({
29217
29009
  "src/internal/components/Header/onborading.setup.ts"() {
29010
+ init_constants();
29218
29011
  init_BuyMenu2();
29219
29012
  init_ChainsMenu2();
29220
- init_Dialog2();
29221
29013
  init_Footer2();
29222
29014
  init_KeyshareRestoreMenu2();
29223
29015
  init_MainMenu2();
@@ -29428,7 +29220,7 @@ var init_Header2 = __esm({
29428
29220
  // src/internal/components/ui/dialog.tsx
29429
29221
  function useDecideContentStyles() {
29430
29222
  const isMobileView = useLayoutStore((st) => st.isMobileView);
29431
- const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogClosing);
29223
+ const isClosing = useLayoutStore((st) => !!st.isDialogOpen && !!st.isDialogAnimating);
29432
29224
  const mobileStyles = isMobileView ? { "--ui-kit-bdrs": "20px 20px 0px 0px" } : {};
29433
29225
  return {
29434
29226
  isClosing,
@@ -29614,12 +29406,10 @@ function Dialog2() {
29614
29406
  const className = config.current?.ui?.dialogClassName;
29615
29407
  const session = useSession((st) => st.session);
29616
29408
  const hasServerVault = useSession((st) => st.hasServerVault);
29409
+ const { colorMode, maxScrollHeight, isDialogOpen, dialogContent, isDialogForced } = useLayoutStore();
29617
29410
  const page = useLayoutDataStore((st) => st.page);
29618
29411
  const transitionPageHeight = useLayoutDataStore((st) => st.transitionPageHeight);
29619
- const setPage = useLayoutDataStore((st) => st.setPage);
29620
- const setPostAuthNavigation = useLayoutDataStore((st) => st.setPostAuthNavigation);
29621
- const { colorMode, isDialogOpen, dialogTitle, dialogDescription, dialogContent, isDialogForced, setIsSettings } = useLayoutStore();
29622
- (0, import_react98.useEffect)(() => setIsSettings(!!session), [session, setIsSettings]);
29412
+ (0, import_react98.useEffect)(() => useLayoutStore.setState({ isSettings: !!session }), [session]);
29623
29413
  usePageMapper();
29624
29414
  useAutoConnect();
29625
29415
  useBackupStatusChanges();
@@ -29634,6 +29424,7 @@ function Dialog2() {
29634
29424
  onOpenChange: (open) => {
29635
29425
  if (isDialogForced) return;
29636
29426
  if (!open) {
29427
+ const { setPostAuthNavigation, setPage } = useLayoutDataStore.getState();
29637
29428
  setPostAuthNavigation(null);
29638
29429
  setPage(null);
29639
29430
  }
@@ -29645,18 +29436,29 @@ function Dialog2() {
29645
29436
  colorMode,
29646
29437
  className,
29647
29438
  children: [
29648
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(DialogTitle, { children: dialogTitle }) }),
29649
- /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(DialogDescription, { className: "sr-only", children: dialogDescription }),
29439
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(VisuallyHidden, { children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(DialogTitle, { children: "embarkAI" }) }),
29440
+ /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(DialogDescription, { className: "sr-only", children: "embarkAI wallet" }),
29650
29441
  !isHeaderHidden && /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(Header, {}),
29651
29442
  /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(import_react97.AnimatePresence, { mode: "wait", initial: false, children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
29652
29443
  import_react97.motion.div,
29653
29444
  {
29445
+ style: { overflow: "hidden" },
29654
29446
  initial: { opacity: 0, height: transitionPageHeight },
29655
29447
  animate: { opacity: 1, height: "auto" },
29656
29448
  exit: { opacity: 0, height: transitionPageHeight },
29657
- style: { overflow: "hidden" },
29658
29449
  transition: Y_ANIMATION_SETUP,
29659
- children: dialogContent
29450
+ children: /* @__PURE__ */ (0, import_jsx_runtime130.jsx)(
29451
+ "div",
29452
+ {
29453
+ ref: (inst) => onboarder.registerElement(`${EMBARKAI_DIALOG_ONBOARDING_ID}-${page}`, inst),
29454
+ style: {
29455
+ "--ui-kit-scrollbar-mah": `${maxScrollHeight}px`,
29456
+ "--ui-kit-list-scrollbar-pd-r": "var(--ui-kit-pd)"
29457
+ },
29458
+ className: "list-scrollbar-y w-full p-[var(--ui-kit-pd)]",
29459
+ children: dialogContent
29460
+ }
29461
+ )
29660
29462
  },
29661
29463
  page || "empty"
29662
29464
  ) }),
@@ -29667,7 +29469,7 @@ function Dialog2() {
29667
29469
  }
29668
29470
  );
29669
29471
  }
29670
- var import_react97, import_react98, import_jsx_runtime130, EMBARKAI_DIALOG_ONBOARDING_ID;
29472
+ var import_react97, import_react98, import_jsx_runtime130;
29671
29473
  var init_Dialog = __esm({
29672
29474
  "src/internal/components/Dialog/Dialog.tsx"() {
29673
29475
  init_ProviderContext();
@@ -29689,7 +29491,6 @@ var init_Dialog = __esm({
29689
29491
  init_dialog();
29690
29492
  init_visually_hidden();
29691
29493
  import_jsx_runtime130 = require("react/jsx-runtime");
29692
- EMBARKAI_DIALOG_ONBOARDING_ID = "embark-main-dialog-content";
29693
29494
  }
29694
29495
  });
29695
29496
 
@@ -32531,7 +32332,7 @@ __export(index_exports, {
32531
32332
  module.exports = __toCommonJS(index_exports);
32532
32333
 
32533
32334
  // src/styles/built.css
32534
- 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 .sticky{position:sticky}.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 .float-right{float:right}.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-\\[30dvw\\]{width:30dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[60dvw\\]{width:60dvw}.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-7xl{max-width:80rem}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[256px\\]{max-width:256px}.embarkai-ui-scope .max-w-\\[420px\\]{max-width:420px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-8px\\)\\]{max-width:calc(50% - 8px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .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-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-10{padding-left:2.5rem;padding-right:2.5rem}.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-light{font-weight:300}.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-\\[inset_0_0_0_1px_var\\(--ui-kit-bd\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-bd\\)\\]{--tw-shadow:inset 0 0 0 1px var(--ui-kit-bd);--tw-shadow-colored:inset 0 0 0 1px 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)}:root{--w3m-z-index:10001!important}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,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-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,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-secondary:var(--embark-ui-secondary,#2a2a2a);--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-h\\)\\]:focus-within{background-color:var(--ui-kit-secondary-h)}.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-a\\)\\]:hover{background-color:var(--ui-kit-secondary-a)}.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 .md\\:text-3xl{font-size:1.875rem;line-height:2.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}`;
32335
+ 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 .sticky{position:sticky}.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 .float-right{float:right}.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-\\[30dvw\\]{width:30dvw}.embarkai-ui-scope .w-\\[40px\\]{width:40px}.embarkai-ui-scope .w-\\[60dvw\\]{width:60dvw}.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-7xl{max-width:80rem}.embarkai-ui-scope .max-w-\\[100px\\]{max-width:100px}.embarkai-ui-scope .max-w-\\[144px\\]{max-width:144px}.embarkai-ui-scope .max-w-\\[150px\\]{max-width:150px}.embarkai-ui-scope .max-w-\\[160px\\]{max-width:160px}.embarkai-ui-scope .max-w-\\[256px\\]{max-width:256px}.embarkai-ui-scope .max-w-\\[420px\\]{max-width:420px}.embarkai-ui-scope .max-w-\\[680px\\]{max-width:680px}.embarkai-ui-scope .max-w-\\[calc\\(50\\%-8px\\)\\]{max-width:calc(50% - 8px)}.embarkai-ui-scope .max-w-full{max-width:100%}.embarkai-ui-scope .max-w-sm{max-width:24rem}.embarkai-ui-scope .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-not-allowed{cursor:not-allowed}.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-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-10{padding-left:2.5rem;padding-right:2.5rem}.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-light{font-weight:300}.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-\\[inset_0_0_0_1px_var\\(--ui-kit-bd\\)\\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.embarkai-ui-scope .shadow-\\[inset_0_0_0_1px_var\\(--ui-kit-bd\\)\\]{--tw-shadow:inset 0 0 0 1px var(--ui-kit-bd);--tw-shadow-colored:inset 0 0 0 1px 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 .ring-0{--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 .ring-offset-0{--tw-ring-offset-width:0px}.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)}:root{--w3m-z-index:10001!important}.embarkai-ui-scope{--ui-kit-ff:var(--embark-ui-ff,-apple-system,BlinkMacSystemFont,"Inter",system-ui,sans-serif);--ui-kit-maw:var(--embark-ui-maw,384px);--ui-kit-pd:var(--embark-ui-pd,12px);--ui-kit-gap:var(--embark-ui-gap,10px);--ui-kit-bdrs:var(--embark-ui-bdrs,20px);--ui-kit-el-bdrs:var(--embark-ui-element-bdrs,10px);--ui-kit-backdrop-blur:var(--embark-ui-backdrop-blur,10px)}.embarkai-ui-scope[data-current-theme-mode=light]{--ui-kit-overlay:var(--embark-ui-overlay,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-secondary:var(--embark-ui-secondary,#e4e4e4);--ui-kit-bd:var(--embark-ui-bd,#ebebeb);--ui-kit-bd-intense:var(--embark-ui-bd-intense,#a9a9a9);--ui-kit-shadow:var(--embark-ui-shadow,0 0 0 0 transparent);--ui-kit-shadow-c:var(--embark-ui-shadow-c,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-secondary:var(--embark-ui-secondary,#2a2a2a);--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\\: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-\\[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\\:border-\\[var\\(--ui-kit-bd\\)\\]:focus-within{border-color:var(--ui-kit-bd)}.embarkai-ui-scope .focus-within\\:opacity-100:focus-within{opacity:1}.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-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-within\\:hover\\:opacity-100:hover:focus-within{opacity:1}.embarkai-ui-scope .focus\\:border-\\[var\\(--ui-kit-primary\\)\\]:focus{border-color:var(--ui-kit-primary)}.embarkai-ui-scope .focus\\:bg-transparent:focus{background-color: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\\: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\\: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 .md\\:text-3xl{font-size:1.875rem;line-height:2.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}`;
32535
32336
 
32536
32337
  // src/index.ts
32537
32338
  var import_core10 = require("@embarkai/core");