@vechain/vechain-kit 1.5.5 → 1.5.7

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
@@ -3293,7 +3293,7 @@ var useSendTransaction = ({
3293
3293
  });
3294
3294
  }
3295
3295
  let transaction = vendor.sign("tx", clauses2);
3296
- if (feeDelegation.delegateAllTransactions) {
3296
+ if (feeDelegation?.delegateAllTransactions) {
3297
3297
  transaction = transaction.delegate(feeDelegation.delegatorUrl);
3298
3298
  }
3299
3299
  if (signerAccountAddress) {
@@ -3976,7 +3976,7 @@ var useWallet = () => {
3976
3976
  source: connectionSource,
3977
3977
  isInAppBrowser: (window.vechain && window.vechain.isInAppBrowser) ?? false,
3978
3978
  nodeUrl,
3979
- delegatorUrl: feeDelegation.delegatorUrl,
3979
+ delegatorUrl: feeDelegation?.delegatorUrl,
3980
3980
  chainId,
3981
3981
  network: network.type
3982
3982
  },
@@ -4983,7 +4983,7 @@ var AddressDisplay = ({
4983
4983
  // package.json
4984
4984
  var package_default = {
4985
4985
  name: "@vechain/vechain-kit",
4986
- version: "1.5.5",
4986
+ version: "1.5.7",
4987
4987
  private: false,
4988
4988
  homepage: "https://github.com/vechain/vechain-kit",
4989
4989
  repository: "github:vechain/vechain-kit",
@@ -5458,7 +5458,8 @@ var TransactionButtonAndStatus = ({
5458
5458
  txReceipt,
5459
5459
  isSubmitForm = false,
5460
5460
  buttonText,
5461
- isDisabled = false
5461
+ isDisabled = false,
5462
+ style
5462
5463
  }) => {
5463
5464
  const { t } = reactI18next.useTranslation();
5464
5465
  const { darkMode: isDark } = useVeChainKitConfig();
@@ -5467,6 +5468,10 @@ var TransactionButtonAndStatus = ({
5467
5468
  if (!transactionError) return null;
5468
5469
  return transactionError.reason || t("Something went wrong. Please try again.");
5469
5470
  }, [transactionError, t]);
5471
+ const buttonBg = React10.useMemo(() => {
5472
+ if (style?.accentColor) return `${style.accentColor} !important`;
5473
+ return void 0;
5474
+ }, [style?.accentColor]);
5470
5475
  return /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { width: "full", spacing: 4, children: [
5471
5476
  errorMessage && /* @__PURE__ */ jsxRuntime.jsx(react.Text, { color: "#da5a5a", textAlign: "center", width: "full", children: errorMessage }),
5472
5477
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -5474,6 +5479,7 @@ var TransactionButtonAndStatus = ({
5474
5479
  {
5475
5480
  px: 4,
5476
5481
  variant: "vechainKitPrimary",
5482
+ bg: buttonBg,
5477
5483
  onClick: onConfirm,
5478
5484
  type: isSubmitForm ? "submit" : "button",
5479
5485
  isLoading: isSubmitting,
@@ -5887,7 +5893,7 @@ var DappKitButton = ({ isDark, gridColumn = 2 }) => {
5887
5893
  isDark,
5888
5894
  onClick: openDappKitModal,
5889
5895
  icon: io5.IoWalletOutline,
5890
- text: gridColumn >= 2 ? t("Connect Wallet") : void 0,
5896
+ text: gridColumn >= 2 ? t("Connect wallet") : void 0,
5891
5897
  rightIcon: /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { as: io.IoIosArrowForward })
5892
5898
  }
5893
5899
  ) });
@@ -6077,110 +6083,9 @@ var MainContent = ({ setCurrentContent, onClose }) => {
6077
6083
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalFooter, { pt: 0, pb: "5px", children: /* @__PURE__ */ jsxRuntime.jsx(VersionFooter, {}) })
6078
6084
  ] });
6079
6085
  };
6080
- var useFeatureAnnouncement = () => {
6081
- const [isVisible, setIsVisible] = React10.useState(true);
6082
- const CACHE_KEY = "vechain_kit_feature_announcement_closed";
6083
- React10.useEffect(() => {
6084
- const isClosed = localStorage.getItem(CACHE_KEY);
6085
- if (isClosed) {
6086
- setIsVisible(false);
6087
- }
6088
- }, []);
6089
- const closeAnnouncement = () => {
6090
- localStorage.setItem(CACHE_KEY, "true");
6091
- setIsVisible(false);
6092
- };
6093
- return {
6094
- isVisible,
6095
- closeAnnouncement
6096
- };
6097
- };
6098
- var FeatureAnnouncementCard = ({
6099
- setCurrentContent
6100
- }) => {
6101
- const { t } = reactI18next.useTranslation();
6102
- const { isVisible, closeAnnouncement } = useFeatureAnnouncement();
6103
- const titleColor = react.useColorModeValue("gray.800", "whiteAlpha.900");
6104
- const handleOnClick = () => {
6105
- setCurrentContent({
6106
- type: "choose-name",
6107
- props: {
6108
- setCurrentContent,
6109
- onBack: () => setCurrentContent("main"),
6110
- initialContentSource: "main"
6111
- }
6112
- });
6113
- closeAnnouncement();
6114
- };
6115
- if (!isVisible) return null;
6116
- return /* @__PURE__ */ jsxRuntime.jsx(
6117
- react.Card,
6118
- {
6119
- w: "full",
6120
- variant: "featureAnnouncement",
6121
- overflow: "hidden",
6122
- mb: 4,
6123
- onClick: handleOnClick,
6124
- cursor: "pointer",
6125
- _hover: { opacity: 0.8 },
6126
- children: /* @__PURE__ */ jsxRuntime.jsx(react.CardBody, { p: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { justify: "space-between", align: "flex-start", spacing: 3, children: [
6127
- /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { align: "flex-start", spacing: 1, children: [
6128
- /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { spacing: 2, children: [
6129
- /* @__PURE__ */ jsxRuntime.jsx(
6130
- react.Text,
6131
- {
6132
- fontSize: "sm",
6133
- fontWeight: "400",
6134
- color: titleColor,
6135
- children: t("Claim your vet domain!")
6136
- }
6137
- ),
6138
- /* @__PURE__ */ jsxRuntime.jsx(react.Tag, { size: "sm", colorScheme: "red", children: t("New") })
6139
- ] }),
6140
- /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "xs", opacity: 0.5, children: t(
6141
- "Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!"
6142
- ) })
6143
- ] }),
6144
- /* @__PURE__ */ jsxRuntime.jsx(
6145
- react.IconButton,
6146
- {
6147
- size: "sm",
6148
- variant: "ghost",
6149
- colorScheme: "gray",
6150
- icon: /* @__PURE__ */ jsxRuntime.jsx(io5.IoCloseCircle, {}),
6151
- onClick: (e) => {
6152
- e.stopPropagation();
6153
- closeAnnouncement();
6154
- },
6155
- "aria-label": t("Close announcement")
6156
- }
6157
- )
6158
- ] }) })
6159
- }
6160
- );
6161
- };
6162
- var ExchangeWarningAlert = () => {
6163
- const { t } = reactI18next.useTranslation();
6164
- return /* @__PURE__ */ jsxRuntime.jsx(react.Alert, { status: "warning", fontSize: "xs", borderRadius: "xl", p: 2, children: /* @__PURE__ */ jsxRuntime.jsx(react.VStack, { spacing: 1, align: "stretch", w: "full", children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { spacing: 2, align: "flex-start", children: [
6165
- /* @__PURE__ */ jsxRuntime.jsx(react.AlertIcon, { boxSize: 4, mt: "10px" }),
6166
- /* @__PURE__ */ jsxRuntime.jsx(react.Text, { w: "full", children: t(
6167
- "Sending to OceanX or other exchanges may result in loss of funds."
6168
- ) })
6169
- ] }) }) });
6170
- };
6171
- var DomainRequiredAlert = () => {
6172
- const { t } = reactI18next.useTranslation();
6173
- return /* @__PURE__ */ jsxRuntime.jsx(react.Alert, { status: "warning", fontSize: "xs", borderRadius: "xl", p: 2, children: /* @__PURE__ */ jsxRuntime.jsx(react.VStack, { spacing: 1, align: "stretch", w: "full", children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { spacing: 2, align: "flex-start", children: [
6174
- /* @__PURE__ */ jsxRuntime.jsx(react.AlertIcon, { boxSize: 4, mt: "10px" }),
6175
- /* @__PURE__ */ jsxRuntime.jsx(react.Text, { w: "full", children: t(
6176
- "A .vet domain is required to customize your profile. Choose an account name to get started."
6177
- ) })
6178
- ] }) }) });
6179
- };
6180
6086
  var AccountMainContent = ({ setCurrentContent, wallet }) => {
6181
6087
  const { t } = reactI18next.useTranslation();
6182
6088
  const { network } = useVeChainKitConfig();
6183
- const { account } = useWallet();
6184
6089
  return /* @__PURE__ */ jsxRuntime.jsxs(ScrollToTopWrapper, { children: [
6185
6090
  /* @__PURE__ */ jsxRuntime.jsxs(StickyHeaderContainer, { children: [
6186
6091
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -6194,7 +6099,29 @@ var AccountMainContent = ({ setCurrentContent, wallet }) => {
6194
6099
  })
6195
6100
  }
6196
6101
  ),
6197
- /* @__PURE__ */ jsxRuntime.jsx(react.ModalHeader, { children: t("Wallet") }),
6102
+ /* @__PURE__ */ jsxRuntime.jsx(react.ModalHeader, { children: /* @__PURE__ */ jsxRuntime.jsxs(
6103
+ react.HStack,
6104
+ {
6105
+ w: "full",
6106
+ justifyContent: "center",
6107
+ p: 0,
6108
+ spacing: 2,
6109
+ children: [
6110
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "md", fontWeight: "bold", children: t("Wallet") }),
6111
+ network?.type !== "main" && /* @__PURE__ */ jsxRuntime.jsx(
6112
+ react.Tag,
6113
+ {
6114
+ size: "xs",
6115
+ colorScheme: "orange",
6116
+ fontSize: "2xs",
6117
+ p: 1,
6118
+ textTransform: "uppercase",
6119
+ children: `${network?.type}`
6120
+ }
6121
+ )
6122
+ ]
6123
+ }
6124
+ ) }),
6198
6125
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalCloseButton, {})
6199
6126
  ] }),
6200
6127
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalBody, { w: "full", children: /* @__PURE__ */ jsxRuntime.jsxs(
@@ -6205,12 +6132,6 @@ var AccountMainContent = ({ setCurrentContent, wallet }) => {
6205
6132
  justifyContent: "flex-start",
6206
6133
  spacing: 6,
6207
6134
  children: [
6208
- !account?.domain && /* @__PURE__ */ jsxRuntime.jsx(
6209
- FeatureAnnouncementCard,
6210
- {
6211
- setCurrentContent
6212
- }
6213
- ),
6214
6135
  /* @__PURE__ */ jsxRuntime.jsx(
6215
6136
  AccountSelector,
6216
6137
  {
@@ -6221,26 +6142,6 @@ var AccountMainContent = ({ setCurrentContent, wallet }) => {
6221
6142
  wallet
6222
6143
  }
6223
6144
  ),
6224
- network?.type !== "main" && /* @__PURE__ */ jsxRuntime.jsx(
6225
- react.HStack,
6226
- {
6227
- w: "full",
6228
- justifyContent: "flex-start",
6229
- mt: "-10px",
6230
- mb: "-10px",
6231
- children: /* @__PURE__ */ jsxRuntime.jsx(
6232
- react.Tag,
6233
- {
6234
- size: "xl",
6235
- colorScheme: "orange",
6236
- fontSize: "xs",
6237
- p: 2,
6238
- textTransform: "capitalize",
6239
- children: `${network?.type} network`
6240
- }
6241
- )
6242
- }
6243
- ),
6244
6145
  /* @__PURE__ */ jsxRuntime.jsx(
6245
6146
  BalanceSection,
6246
6147
  {
@@ -6382,7 +6283,7 @@ var ActionButton = ({
6382
6283
  flex: 1,
6383
6284
  justifyContent: "flex-start",
6384
6285
  alignItems: "flex-start",
6385
- children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { justify: "flex-start", children: [
6286
+ children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { justify: "flex-start", alignItems: "baseline", children: [
6386
6287
  /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "sm", fontWeight: "400", children: title }),
6387
6288
  showComingSoon && /* @__PURE__ */ jsxRuntime.jsx(react.Tag, { size: "sm", colorScheme: "red", children: t("Coming Soon!") }),
6388
6289
  extraContent
@@ -6444,7 +6345,7 @@ var AccountSelector = ({
6444
6345
  props: { width: 7, height: 7 }
6445
6346
  }
6446
6347
  ),
6447
- /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: size, fontWeight: "500", children: chunkRUIC653T_cjs.humanDomain(wallet?.domain ?? "", 15, 0) || chunkRUIC653T_cjs.humanAddress(wallet?.address ?? "", 6, 4) })
6348
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: size, fontWeight: "500", children: chunkRUIC653T_cjs.humanDomain(wallet?.domain ?? "", 18, 0) || chunkRUIC653T_cjs.humanAddress(wallet?.address ?? "", 6, 4) })
6448
6349
  ] }),
6449
6350
  /* @__PURE__ */ jsxRuntime.jsx(
6450
6351
  react.Icon,
@@ -6829,7 +6730,8 @@ var QuickActionButton = ({
6829
6730
  icon,
6830
6731
  label,
6831
6732
  onClick,
6832
- isDisabled
6733
+ isDisabled,
6734
+ showRedDot
6833
6735
  }) => {
6834
6736
  const { t } = reactI18next.useTranslation();
6835
6737
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -6842,18 +6744,41 @@ var QuickActionButton = ({
6842
6744
  isDisabled,
6843
6745
  icon: /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { spacing: 4, children: [
6844
6746
  /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { as: icon, boxSize: 5, opacity: 0.9 }),
6845
- /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "sm", fontWeight: "600", children: t(label, label) })
6747
+ /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { p: 0, alignItems: "baseline", spacing: 1, children: [
6748
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "sm", fontWeight: "600", children: t(label, label) }),
6749
+ showRedDot && /* @__PURE__ */ jsxRuntime.jsx(
6750
+ react.Box,
6751
+ {
6752
+ minWidth: "8px",
6753
+ height: "8px",
6754
+ bg: "red.500",
6755
+ borderRadius: "full",
6756
+ display: "flex",
6757
+ alignItems: "center",
6758
+ justifyContent: "center"
6759
+ }
6760
+ )
6761
+ ] })
6846
6762
  ] }),
6847
6763
  onClick
6848
6764
  }
6849
6765
  );
6850
6766
  };
6851
6767
  var QuickActionsSection = ({ mt, setCurrentContent }) => {
6852
- const { account } = useWallet();
6768
+ const { account, smartAccount, connectedWallet } = useWallet();
6853
6769
  const { totalBalance } = useBalances({
6854
6770
  address: account?.address ?? ""
6855
6771
  });
6856
6772
  const { t } = reactI18next.useTranslation();
6773
+ const { data: upgradeRequired } = useUpgradeRequired(
6774
+ smartAccount?.address ?? "",
6775
+ connectedWallet?.address ?? "",
6776
+ 3
6777
+ );
6778
+ const { getNotifications } = useNotifications();
6779
+ const notifications = getNotifications();
6780
+ const hasUnreadNotifications = notifications.some((n) => !n.isRead);
6781
+ const showRedDot = upgradeRequired || hasUnreadNotifications;
6857
6782
  return /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { w: "full", mt, spacing: 4, children: [
6858
6783
  /* @__PURE__ */ jsxRuntime.jsx(react.Heading, { size: "xs", fontWeight: "500", w: "full", opacity: 0.5, children: t("Activities") }),
6859
6784
  /* @__PURE__ */ jsxRuntime.jsx(react.Grid, { templateColumns: "repeat(3, 1fr)", gap: 2, w: "full", children: QUICK_ACTIONS.map((action) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -6862,16 +6787,121 @@ var QuickActionsSection = ({ mt, setCurrentContent }) => {
6862
6787
  icon: action.icon,
6863
6788
  label: action.label,
6864
6789
  onClick: () => action.onClick(setCurrentContent),
6865
- isDisabled: action.isDisabled?.(totalBalance)
6790
+ isDisabled: action.isDisabled?.(totalBalance),
6791
+ showRedDot: showRedDot && action.label === "Settings"
6866
6792
  },
6867
6793
  action.label
6868
6794
  )) })
6869
6795
  ] });
6870
6796
  };
6797
+ var useFeatureAnnouncement = () => {
6798
+ const [isVisible, setIsVisible] = React10.useState(true);
6799
+ const CACHE_KEY = "vechain_kit_feature_announcement_closed";
6800
+ React10.useEffect(() => {
6801
+ const isClosed = localStorage.getItem(CACHE_KEY);
6802
+ if (isClosed) {
6803
+ setIsVisible(false);
6804
+ }
6805
+ }, []);
6806
+ const closeAnnouncement = () => {
6807
+ localStorage.setItem(CACHE_KEY, "true");
6808
+ setIsVisible(false);
6809
+ };
6810
+ return {
6811
+ isVisible,
6812
+ closeAnnouncement
6813
+ };
6814
+ };
6815
+ var FeatureAnnouncementCard = ({
6816
+ setCurrentContent
6817
+ }) => {
6818
+ const { t } = reactI18next.useTranslation();
6819
+ const { isVisible, closeAnnouncement } = useFeatureAnnouncement();
6820
+ const titleColor = react.useColorModeValue("blackAlpha.800", "whiteAlpha.800");
6821
+ const descriptionColor = react.useColorModeValue(
6822
+ "blackAlpha.700",
6823
+ "whiteAlpha.700"
6824
+ );
6825
+ const handleOnClick = () => {
6826
+ setCurrentContent({
6827
+ type: "choose-name",
6828
+ props: {
6829
+ setCurrentContent,
6830
+ onBack: () => setCurrentContent("main"),
6831
+ initialContentSource: "main"
6832
+ }
6833
+ });
6834
+ closeAnnouncement();
6835
+ };
6836
+ if (!isVisible) return null;
6837
+ return /* @__PURE__ */ jsxRuntime.jsx(
6838
+ react.Card,
6839
+ {
6840
+ w: "full",
6841
+ variant: "featureAnnouncement",
6842
+ overflow: "hidden",
6843
+ onClick: handleOnClick,
6844
+ cursor: "pointer",
6845
+ _hover: { opacity: 0.8 },
6846
+ children: /* @__PURE__ */ jsxRuntime.jsx(react.CardBody, { p: 4, children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { justify: "space-between", align: "flex-start", spacing: 3, children: [
6847
+ /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { align: "flex-start", spacing: 1, children: [
6848
+ /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { spacing: 2, children: [
6849
+ /* @__PURE__ */ jsxRuntime.jsx(
6850
+ react.Text,
6851
+ {
6852
+ fontSize: "sm",
6853
+ fontWeight: "400",
6854
+ color: titleColor,
6855
+ children: t("Claim your vet domain!")
6856
+ }
6857
+ ),
6858
+ /* @__PURE__ */ jsxRuntime.jsx(react.Tag, { size: "sm", colorScheme: "red", children: t("New") })
6859
+ ] }),
6860
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "xs", color: descriptionColor, children: t(
6861
+ "Say goodbye to 0x addresses, claim your .veworld.vet subdomain now for free!"
6862
+ ) })
6863
+ ] }),
6864
+ /* @__PURE__ */ jsxRuntime.jsx(
6865
+ react.IconButton,
6866
+ {
6867
+ size: "sm",
6868
+ variant: "ghost",
6869
+ colorScheme: "gray",
6870
+ icon: /* @__PURE__ */ jsxRuntime.jsx(io5.IoCloseCircle, {}),
6871
+ onClick: (e) => {
6872
+ e.stopPropagation();
6873
+ closeAnnouncement();
6874
+ },
6875
+ "aria-label": t("Close announcement")
6876
+ }
6877
+ )
6878
+ ] }) })
6879
+ }
6880
+ );
6881
+ };
6882
+ var ExchangeWarningAlert = () => {
6883
+ const { t } = reactI18next.useTranslation();
6884
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Alert, { status: "warning", fontSize: "xs", borderRadius: "xl", p: 2, children: /* @__PURE__ */ jsxRuntime.jsx(react.VStack, { spacing: 1, align: "stretch", w: "full", children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { spacing: 2, align: "flex-start", children: [
6885
+ /* @__PURE__ */ jsxRuntime.jsx(react.AlertIcon, { boxSize: 4, mt: "10px" }),
6886
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { w: "full", children: t(
6887
+ "Sending to OceanX or other exchanges may result in loss of funds."
6888
+ ) })
6889
+ ] }) }) });
6890
+ };
6891
+ var DomainRequiredAlert = () => {
6892
+ const { t } = reactI18next.useTranslation();
6893
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Alert, { status: "warning", fontSize: "xs", borderRadius: "xl", p: 2, children: /* @__PURE__ */ jsxRuntime.jsx(react.VStack, { spacing: 1, align: "stretch", w: "full", children: /* @__PURE__ */ jsxRuntime.jsxs(react.HStack, { spacing: 2, align: "flex-start", children: [
6894
+ /* @__PURE__ */ jsxRuntime.jsx(react.AlertIcon, { boxSize: 4, mt: "10px" }),
6895
+ /* @__PURE__ */ jsxRuntime.jsx(react.Text, { w: "full", children: t(
6896
+ "A .vet domain is required to customize your profile. Choose an account name to get started."
6897
+ ) })
6898
+ ] }) }) });
6899
+ };
6871
6900
  var AccessAndSecurityContent = ({ setCurrentContent }) => {
6872
6901
  const { t } = reactI18next.useTranslation();
6873
6902
  const { exportWallet } = reactAuth.usePrivy();
6874
6903
  const { showMfaEnrollmentModal } = reactAuth.useMfaEnrollment();
6904
+ const { setWalletRecovery } = reactAuth.useSetWalletRecovery();
6875
6905
  const { connection, smartAccount, connectedWallet } = useWallet();
6876
6906
  const { data: upgradeRequired } = useUpgradeRequired(
6877
6907
  smartAccount?.address ?? "",
@@ -6918,6 +6948,38 @@ var AccessAndSecurityContent = ({ setCurrentContent }) => {
6918
6948
  }
6919
6949
  )
6920
6950
  ] }),
6951
+ upgradeRequired && /* @__PURE__ */ jsxRuntime.jsx(
6952
+ ActionButton,
6953
+ {
6954
+ title: t("Upgrade Smart Account to V3"),
6955
+ description: t(
6956
+ "A new version is available for your account"
6957
+ ),
6958
+ onClick: () => {
6959
+ setCurrentContent({
6960
+ type: "upgrade-smart-account",
6961
+ props: {
6962
+ setCurrentContent,
6963
+ initialContent: "access-and-security"
6964
+ }
6965
+ });
6966
+ },
6967
+ leftIcon: io5.IoCogSharp,
6968
+ extraContent: /* @__PURE__ */ jsxRuntime.jsx(
6969
+ react.Box,
6970
+ {
6971
+ minWidth: "8px",
6972
+ height: "8px",
6973
+ bg: "red.500",
6974
+ borderRadius: "full",
6975
+ display: "flex",
6976
+ alignItems: "center",
6977
+ justifyContent: "center",
6978
+ ml: 2
6979
+ }
6980
+ )
6981
+ }
6982
+ ),
6921
6983
  /* @__PURE__ */ jsxRuntime.jsx(
6922
6984
  ActionButton,
6923
6985
  {
@@ -6963,23 +7025,15 @@ var AccessAndSecurityContent = ({ setCurrentContent }) => {
6963
7025
  leftIcon: hi2.HiOutlineShieldCheck
6964
7026
  }
6965
7027
  ),
6966
- upgradeRequired && /* @__PURE__ */ jsxRuntime.jsx(
7028
+ /* @__PURE__ */ jsxRuntime.jsx(
6967
7029
  ActionButton,
6968
7030
  {
6969
- title: t("Upgrade Smart Account to V3"),
6970
- description: t(
6971
- "A new version is available for your account"
6972
- ),
7031
+ title: t("Manage Recovery"),
6973
7032
  onClick: () => {
6974
- setCurrentContent({
6975
- type: "upgrade-smart-account",
6976
- props: {
6977
- setCurrentContent,
6978
- initialContent: "access-and-security"
6979
- }
6980
- });
7033
+ setWalletRecovery();
6981
7034
  },
6982
- leftIcon: hi2.HiOutlineShieldCheck
7035
+ isDisabled: !connection.isConnectedWithSocialLogin,
7036
+ leftIcon: md.MdOutlineSettingsBackupRestore
6983
7037
  }
6984
7038
  )
6985
7039
  ]
@@ -7225,13 +7279,18 @@ var SettingsContent = ({
7225
7279
  const contentRef = React10.useRef(null);
7226
7280
  const { t } = reactI18next.useTranslation();
7227
7281
  const { privy } = useVeChainKitConfig();
7228
- const { connection, disconnect, account } = useWallet();
7282
+ const { connection, disconnect, account, smartAccount, connectedWallet } = useWallet();
7229
7283
  const { getConnectionCache } = useCrossAppConnectionCache();
7230
7284
  const connectionCache = getConnectionCache();
7231
7285
  const { data: appInfo } = useFetchAppInfo(privy?.appId ?? "");
7232
7286
  const { getNotifications } = useNotifications();
7233
7287
  const notifications = getNotifications();
7234
7288
  const hasUnreadNotifications = notifications.some((n) => !n.isRead);
7289
+ const { data: upgradeRequired } = useUpgradeRequired(
7290
+ smartAccount?.address ?? "",
7291
+ connectedWallet?.address ?? "",
7292
+ 3
7293
+ );
7235
7294
  React10.useEffect(() => {
7236
7295
  if (contentRef.current) {
7237
7296
  contentRef.current.scrollTop = 0;
@@ -7292,7 +7351,19 @@ var SettingsContent = ({
7292
7351
  setCurrentContent("access-and-security");
7293
7352
  },
7294
7353
  leftIcon: io5.IoShieldOutline,
7295
- rightIcon: md.MdOutlineNavigateNext
7354
+ rightIcon: md.MdOutlineNavigateNext,
7355
+ extraContent: upgradeRequired && /* @__PURE__ */ jsxRuntime.jsx(
7356
+ react.Box,
7357
+ {
7358
+ minWidth: "8px",
7359
+ height: "8px",
7360
+ bg: "red.500",
7361
+ borderRadius: "full",
7362
+ display: "flex",
7363
+ alignItems: "center",
7364
+ justifyContent: "center"
7365
+ }
7366
+ )
7296
7367
  }
7297
7368
  ),
7298
7369
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -7330,17 +7401,13 @@ var SettingsContent = ({
7330
7401
  extraContent: hasUnreadNotifications && /* @__PURE__ */ jsxRuntime.jsx(
7331
7402
  react.Box,
7332
7403
  {
7333
- minWidth: "16px",
7334
- height: "16px",
7404
+ minWidth: "8px",
7405
+ height: "8px",
7335
7406
  bg: "red.500",
7336
7407
  borderRadius: "full",
7337
7408
  display: "flex",
7338
7409
  alignItems: "center",
7339
- justifyContent: "center",
7340
- ml: 2,
7341
- children: /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "xs", color: "white", children: notifications.filter(
7342
- (n) => !n.isRead
7343
- ).length })
7410
+ justifyContent: "center"
7344
7411
  }
7345
7412
  )
7346
7413
  }
@@ -8297,6 +8364,10 @@ var SendTokenSummaryContent = ({
8297
8364
  return selectedToken.symbol === "VET" ? transferVETReceipt : transferERC20Receipt;
8298
8365
  };
8299
8366
  const handleSend = async () => {
8367
+ if (upgradeRequired) {
8368
+ openUpgradeSmartAccountModal();
8369
+ return;
8370
+ }
8300
8371
  try {
8301
8372
  if (selectedToken.symbol === "VET") {
8302
8373
  await transferVET();
@@ -8309,11 +8380,6 @@ var SendTokenSummaryContent = ({
8309
8380
  };
8310
8381
  const isTxWaitingConfirmation = transferERC20WaitingForWalletConfirmation || transferVETWaitingForWalletConfirmation;
8311
8382
  const isSubmitting = isTxWaitingConfirmation || transferERC20Pending || transferVETPending;
8312
- React10.useEffect(() => {
8313
- if (upgradeRequired) {
8314
- openUpgradeSmartAccountModal();
8315
- }
8316
- }, [upgradeRequired, openUpgradeSmartAccountModal]);
8317
8383
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
8318
8384
  /* @__PURE__ */ jsxRuntime.jsxs(StickyHeaderContainer, { children: [
8319
8385
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalHeader, { children: "Send" }),
@@ -8412,7 +8478,7 @@ var SendTokenSummaryContent = ({
8412
8478
  transactionPendingText: t("Sending..."),
8413
8479
  txReceipt: getTxReceipt(),
8414
8480
  buttonText: t("Confirm"),
8415
- isDisabled: isSubmitting || upgradeRequired
8481
+ isDisabled: isSubmitting
8416
8482
  }
8417
8483
  ) })
8418
8484
  ] });
@@ -8878,17 +8944,16 @@ var ChooseNameSummaryContent = ({
8878
8944
  }
8879
8945
  });
8880
8946
  const handleConfirm = async () => {
8947
+ if (upgradeRequired) {
8948
+ openUpgradeSmartAccountModal();
8949
+ return;
8950
+ }
8881
8951
  try {
8882
8952
  await sendTransaction();
8883
8953
  } catch (error) {
8884
8954
  console.error("Transaction failed:", error);
8885
8955
  }
8886
8956
  };
8887
- React10.useEffect(() => {
8888
- if (upgradeRequired) {
8889
- openUpgradeSmartAccountModal();
8890
- }
8891
- }, [upgradeRequired, openUpgradeSmartAccountModal]);
8892
8957
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
8893
8958
  /* @__PURE__ */ jsxRuntime.jsxs(StickyHeaderContainer, { children: [
8894
8959
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalHeader, { children: t("Confirm Name") }),
@@ -8922,7 +8987,7 @@ var ChooseNameSummaryContent = ({
8922
8987
  transactionPendingText: t("Claiming name..."),
8923
8988
  txReceipt,
8924
8989
  buttonText: t("Confirm"),
8925
- isDisabled: isTransactionPending || upgradeRequired
8990
+ isDisabled: isTransactionPending
8926
8991
  }
8927
8992
  ) })
8928
8993
  ] });
@@ -9174,6 +9239,7 @@ var en_default = {
9174
9239
  "Confirm transaction": "Confirm transaction",
9175
9240
  "Connect Wallet": "Connect Wallet",
9176
9241
  "Connect an external wallet for easier access": "Connect an external wallet for easier access",
9242
+ "Connect wallet": "Connect wallet",
9177
9243
  "Connect your Apple account for easier access": "Connect your Apple account for easier access",
9178
9244
  "Connect your Discord account for easier access": "Connect your Discord account for easier access",
9179
9245
  "Connect your Farcaster account for easier access": "Connect your Farcaster account for easier access",
@@ -9306,6 +9372,7 @@ var en_default = {
9306
9372
  Mainnet: "Mainnet",
9307
9373
  "Manage Custom Tokens": "Manage Custom Tokens",
9308
9374
  "Manage MFA": "Manage MFA",
9375
+ "Manage Recovery": "Manage Recovery",
9309
9376
  "Manage multi-factor authentication settings for your wallet.": "Manage multi-factor authentication settings for your wallet.",
9310
9377
  "Manage on VeBetterDAO": "Manage on VeBetterDAO",
9311
9378
  "Manage passkey login": "Manage passkey login",
@@ -9654,6 +9721,7 @@ var de_default = {
9654
9721
  "Confirm transaction": "Transaktion best\xE4tigen",
9655
9722
  "Connect Wallet": "Wallet verbinden",
9656
9723
  "Connect an external wallet for easier access": "Verbinden Sie eine externe Wallet f\xFCr einfacheren Zugang",
9724
+ "Connect wallet": "Wallet verbinden",
9657
9725
  "Connect your Apple account for easier access": "Verbinden Sie Ihr Apple-Konto f\xFCr einfacheren Zugriff",
9658
9726
  "Connect your Discord account for easier access": "Verbinden Sie Ihr Discord-Konto f\xFCr einen einfacheren Zugriff",
9659
9727
  "Connect your Farcaster account for easier access": "Verbinden Sie Ihr Farcaster-Konto f\xFCr einfacheren Zugriff",
@@ -9786,6 +9854,7 @@ var de_default = {
9786
9854
  Mainnet: "Mainnet",
9787
9855
  "Manage Custom Tokens": "Benutzerdefinierte Token verwalten",
9788
9856
  "Manage MFA": "MFA verwalten",
9857
+ "Manage Recovery": "Wiederherstellung verwalten",
9789
9858
  "Manage multi-factor authentication settings for your wallet.": "Verwalten Sie die Einstellungen zur Multi-Faktor-Authentifizierung f\xFCr Ihr Wallet.",
9790
9859
  "Manage on VeBetterDAO": "Verwalten auf VeBetterDAO",
9791
9860
  "Manage passkey login": "Passkey-Anmeldung verwalten",
@@ -10134,6 +10203,7 @@ var it_default = {
10134
10203
  "Confirm transaction": "Conferma transazione",
10135
10204
  "Connect Wallet": "Collega Portafoglio",
10136
10205
  "Connect an external wallet for easier access": "Collega un portafoglio esterno per un accesso pi\xF9 semplice",
10206
+ "Connect wallet": "Connetti portafoglio",
10137
10207
  "Connect your Apple account for easier access": "Collega il tuo account Apple per un accesso pi\xF9 facile",
10138
10208
  "Connect your Discord account for easier access": "Collega il tuo account Discord per accedere pi\xF9 facilmente",
10139
10209
  "Connect your Farcaster account for easier access": "Collega il tuo account Farcaster per un accesso pi\xF9 facile",
@@ -10266,6 +10336,7 @@ var it_default = {
10266
10336
  Mainnet: "Mainnet",
10267
10337
  "Manage Custom Tokens": "Gestisci Token Personalizzati",
10268
10338
  "Manage MFA": "Gestisci MFA",
10339
+ "Manage Recovery": "Gestisci Recupero",
10269
10340
  "Manage multi-factor authentication settings for your wallet.": "Gestisci le impostazioni di autenticazione a pi\xF9 fattori per il tuo portafoglio.",
10270
10341
  "Manage on VeBetterDAO": "Gestisci su VeBetterDAO",
10271
10342
  "Manage passkey login": "Gestisci login con chiave di accesso",
@@ -10614,6 +10685,7 @@ var fr_default = {
10614
10685
  "Confirm transaction": "Confirmer la transaction",
10615
10686
  "Connect Wallet": "Connecter le portefeuille",
10616
10687
  "Connect an external wallet for easier access": "Connectez un portefeuille externe pour un acc\xE8s plus facile",
10688
+ "Connect wallet": "Connecter le portefeuille",
10617
10689
  "Connect your Apple account for easier access": "Connectez votre compte Apple pour un acc\xE8s plus facile",
10618
10690
  "Connect your Discord account for easier access": "Connectez votre compte Discord pour un acc\xE8s plus facile",
10619
10691
  "Connect your Farcaster account for easier access": "Connectez votre compte Farcaster pour un acc\xE8s plus facile",
@@ -10746,6 +10818,7 @@ var fr_default = {
10746
10818
  Mainnet: "Mainnet",
10747
10819
  "Manage Custom Tokens": "G\xE9rer les jetons personnalis\xE9s",
10748
10820
  "Manage MFA": "G\xE9rer la MFA",
10821
+ "Manage Recovery": "G\xE9rer la r\xE9cup\xE9ration",
10749
10822
  "Manage multi-factor authentication settings for your wallet.": "G\xE9rez les param\xE8tres d'authentification \xE0 plusieurs facteurs pour votre portefeuille.",
10750
10823
  "Manage on VeBetterDAO": "G\xE9rer sur VeBetterDAO",
10751
10824
  "Manage passkey login": "G\xE9rer la connexion par cl\xE9 de passe",
@@ -11094,6 +11167,7 @@ var es_default = {
11094
11167
  "Confirm transaction": "Confirmar transacci\xF3n",
11095
11168
  "Connect Wallet": "Conectar Monedero",
11096
11169
  "Connect an external wallet for easier access": "Conectar una billetera externa para un acceso m\xE1s f\xE1cil",
11170
+ "Connect wallet": "Conectar billetera",
11097
11171
  "Connect your Apple account for easier access": "Conecta tu cuenta de Apple para un acceso m\xE1s f\xE1cil",
11098
11172
  "Connect your Discord account for easier access": "Conecta tu cuenta de Discord para un acceso m\xE1s f\xE1cil",
11099
11173
  "Connect your Farcaster account for easier access": "Conecta tu cuenta de Farcaster para un acceso m\xE1s f\xE1cil",
@@ -11226,6 +11300,7 @@ var es_default = {
11226
11300
  Mainnet: "Red principal",
11227
11301
  "Manage Custom Tokens": "Gestionar tokens personalizados",
11228
11302
  "Manage MFA": "Gestionar MFA",
11303
+ "Manage Recovery": "Gestionar la Recuperaci\xF3n",
11229
11304
  "Manage multi-factor authentication settings for your wallet.": "Gestionar configuraciones de autenticaci\xF3n multifactor para tu billetera.",
11230
11305
  "Manage on VeBetterDAO": "Gestionar en VeBetterDAO",
11231
11306
  "Manage passkey login": "Administrar inicio de sesi\xF3n con llave de acceso",
@@ -11574,6 +11649,7 @@ var zh_default = {
11574
11649
  "Confirm transaction": "\u786E\u8BA4\u4EA4\u6613",
11575
11650
  "Connect Wallet": "\u8FDE\u63A5\u94B1\u5305",
11576
11651
  "Connect an external wallet for easier access": "\u8FDE\u63A5\u5916\u90E8\u94B1\u5305\u4EE5\u4FBF\u66F4\u8F7B\u677E\u8BBF\u95EE",
11652
+ "Connect wallet": "\u8FDE\u63A5\u94B1\u5305",
11577
11653
  "Connect your Apple account for easier access": "\u8FDE\u63A5\u60A8\u7684 Apple \u8D26\u6237\u4EE5\u4FBF\u66F4\u8F7B\u677E\u5730\u8BBF\u95EE",
11578
11654
  "Connect your Discord account for easier access": "\u8FDE\u63A5\u60A8\u7684 Discord \u5E10\u53F7\u4EE5\u66F4\u8F7B\u677E\u5730\u8BBF\u95EE",
11579
11655
  "Connect your Farcaster account for easier access": "\u8FDE\u63A5\u60A8\u7684 Farcaster \u8D26\u6237\u4EE5\u4FBF\u66F4\u8F7B\u677E\u5730\u8BBF\u95EE",
@@ -11706,6 +11782,7 @@ var zh_default = {
11706
11782
  Mainnet: "\u4E3B\u7F51",
11707
11783
  "Manage Custom Tokens": "\u7BA1\u7406\u81EA\u5B9A\u4E49\u4EE3\u5E01",
11708
11784
  "Manage MFA": "\u7BA1\u7406\u591A\u56E0\u7D20\u8BA4\u8BC1",
11785
+ "Manage Recovery": "\u7BA1\u7406\u6062\u590D",
11709
11786
  "Manage multi-factor authentication settings for your wallet.": "\u7BA1\u7406\u60A8\u94B1\u5305\u7684\u591A\u56E0\u7D20\u8BA4\u8BC1\u8BBE\u7F6E\u3002",
11710
11787
  "Manage on VeBetterDAO": "\u5728VeBetterDAO\u4E0A\u7BA1\u7406",
11711
11788
  "Manage passkey login": "\u7BA1\u7406\u5BC6\u7801\u767B\u5F55",
@@ -12054,6 +12131,7 @@ var ja_default = {
12054
12131
  "Confirm transaction": "\u53D6\u5F15\u3092\u78BA\u8A8D",
12055
12132
  "Connect Wallet": "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u63A5\u7D9A",
12056
12133
  "Connect an external wallet for easier access": "\u5916\u90E8\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u63A5\u7D9A\u3057\u3066\u7C21\u5358\u306B\u30A2\u30AF\u30BB\u30B9",
12134
+ "Connect wallet": "\u30A6\u30A9\u30EC\u30C3\u30C8\u3092\u63A5\u7D9A",
12057
12135
  "Connect your Apple account for easier access": "Apple\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u63A5\u7D9A\u3057\u3066\u7C21\u5358\u306B\u30A2\u30AF\u30BB\u30B9",
12058
12136
  "Connect your Discord account for easier access": "\u7C21\u5358\u306A\u30A2\u30AF\u30BB\u30B9\u306E\u305F\u3081\u306B\u3042\u306A\u305F\u306EDiscord\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u63A5\u7D9A\u3057\u3066\u304F\u3060\u3055\u3044",
12059
12137
  "Connect your Farcaster account for easier access": "Farcaster\u30A2\u30AB\u30A6\u30F3\u30C8\u3092\u63A5\u7D9A\u3057\u3066\u7C21\u5358\u306B\u30A2\u30AF\u30BB\u30B9",
@@ -12186,6 +12264,7 @@ var ja_default = {
12186
12264
  Mainnet: "\u30E1\u30A4\u30F3\u30CD\u30C3\u30C8",
12187
12265
  "Manage Custom Tokens": "\u30AB\u30B9\u30BF\u30E0\u30C8\u30FC\u30AF\u30F3\u306E\u7BA1\u7406",
12188
12266
  "Manage MFA": "MFA\u3092\u7BA1\u7406\u3059\u308B",
12267
+ "Manage Recovery": "\u30EA\u30AB\u30D0\u30EA\u30FC\u306E\u7BA1\u7406",
12189
12268
  "Manage multi-factor authentication settings for your wallet.": "\u30A6\u30A9\u30EC\u30C3\u30C8\u306E\u591A\u8981\u7D20\u8A8D\u8A3C\u8A2D\u5B9A\u3092\u7BA1\u7406\u3059\u308B\u3002",
12190
12269
  "Manage on VeBetterDAO": "VeBetterDAO\u3067\u7BA1\u7406",
12191
12270
  "Manage passkey login": "\u30D1\u30B9\u30AD\u30FC\u306E\u30ED\u30B0\u30A4\u30F3\u3092\u7BA1\u7406",
@@ -13077,13 +13156,17 @@ var CustomizationSummaryContent = ({
13077
13156
  "Your changes have been saved successfully."
13078
13157
  ),
13079
13158
  onDone: () => {
13080
- setCurrentContent("settings");
13159
+ setCurrentContent("profile");
13081
13160
  }
13082
13161
  }
13083
13162
  });
13084
13163
  }
13085
13164
  });
13086
13165
  const onSubmit = async (data) => {
13166
+ if (upgradeRequired) {
13167
+ openUpgradeSmartAccountModal();
13168
+ return;
13169
+ }
13087
13170
  try {
13088
13171
  const domain2 = account?.domain ?? "";
13089
13172
  const CHANGES_TO_TEXT_RECORDS = {
@@ -13122,11 +13205,6 @@ var CustomizationSummaryContent = ({
13122
13205
  /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "md", children: value })
13123
13206
  ] });
13124
13207
  };
13125
- React10.useEffect(() => {
13126
- if (upgradeRequired) {
13127
- openUpgradeSmartAccountModal();
13128
- }
13129
- }, [upgradeRequired, openUpgradeSmartAccountModal]);
13130
13208
  return /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { as: "form", onSubmit: handleSubmit(onSubmit), children: [
13131
13209
  /* @__PURE__ */ jsxRuntime.jsxs(StickyHeaderContainer, { children: [
13132
13210
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalHeader, { children: t("Confirm Changes") }),
@@ -13167,7 +13245,7 @@ var CustomizationSummaryContent = ({
13167
13245
  transactionPendingText: t("Saving changes..."),
13168
13246
  txReceipt,
13169
13247
  buttonText: t("Confirm"),
13170
- isDisabled: isTransactionPending || upgradeRequired
13248
+ isDisabled: isTransactionPending
13171
13249
  }
13172
13250
  ) })
13173
13251
  ] });
@@ -13184,26 +13262,34 @@ var ProfileContent = ({
13184
13262
  /* @__PURE__ */ jsxRuntime.jsx(ModalBackButton, { onClick: () => setCurrentContent("main") }),
13185
13263
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalCloseButton, {})
13186
13264
  ] }),
13187
- /* @__PURE__ */ jsxRuntime.jsx(react.ModalBody, { w: "full", children: /* @__PURE__ */ jsxRuntime.jsx(
13188
- ProfileCard,
13189
- {
13190
- onEditClick: () => setCurrentContent("account-customization"),
13191
- address: account?.address ?? "",
13192
- showHeader: false,
13193
- onLogout: () => {
13194
- setCurrentContent?.({
13195
- type: "disconnect-confirm",
13196
- props: {
13197
- onDisconnect: () => {
13198
- disconnect();
13199
- onLogoutSuccess?.();
13200
- },
13201
- onBack: () => setCurrentContent?.("profile")
13202
- }
13203
- });
13265
+ /* @__PURE__ */ jsxRuntime.jsx(react.ModalBody, { w: "full", children: /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { w: "full", spacing: 2, children: [
13266
+ !account?.domain && /* @__PURE__ */ jsxRuntime.jsx(
13267
+ FeatureAnnouncementCard,
13268
+ {
13269
+ setCurrentContent
13204
13270
  }
13205
- }
13206
- ) }),
13271
+ ),
13272
+ /* @__PURE__ */ jsxRuntime.jsx(
13273
+ ProfileCard,
13274
+ {
13275
+ onEditClick: () => setCurrentContent("account-customization"),
13276
+ address: account?.address ?? "",
13277
+ showHeader: false,
13278
+ onLogout: () => {
13279
+ setCurrentContent?.({
13280
+ type: "disconnect-confirm",
13281
+ props: {
13282
+ onDisconnect: () => {
13283
+ disconnect();
13284
+ onLogoutSuccess?.();
13285
+ },
13286
+ onBack: () => setCurrentContent?.("profile")
13287
+ }
13288
+ });
13289
+ }
13290
+ }
13291
+ )
13292
+ ] }) }),
13207
13293
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalFooter, { pt: 0 })
13208
13294
  ] });
13209
13295
  };
@@ -13273,12 +13359,71 @@ var UpgradeSmartAccountContent = ({
13273
13359
  ),
13274
13360
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalCloseButton, {})
13275
13361
  ] }),
13276
- /* @__PURE__ */ jsxRuntime.jsx(react.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { spacing: 6, align: "stretch", children: [
13362
+ /* @__PURE__ */ jsxRuntime.jsx(react.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { spacing: 10, align: "stretch", children: [
13277
13363
  /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "sm", textAlign: "center", children: upgradeRequired ? t(
13278
13364
  "Your smart account needs to be upgraded to the latest version (v3)."
13279
13365
  ) : t(
13280
13366
  "Your smart account is already upgraded to this version."
13281
13367
  ) }),
13368
+ /* @__PURE__ */ jsxRuntime.jsxs(
13369
+ react.HStack,
13370
+ {
13371
+ align: "center",
13372
+ justifyContent: "space-evenly",
13373
+ rounded: "md",
13374
+ children: [
13375
+ /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { position: "relative", display: "inline-block", children: [
13376
+ /* @__PURE__ */ jsxRuntime.jsx(react.Circle, { size: "60px", bg: "gray.200", children: /* @__PURE__ */ jsxRuntime.jsx(
13377
+ react.Image,
13378
+ {
13379
+ borderRadius: "full",
13380
+ src: smartAccount?.image,
13381
+ alt: t("Profile Picture"),
13382
+ w: "100%",
13383
+ h: "100%",
13384
+ objectFit: "cover"
13385
+ }
13386
+ ) }),
13387
+ /* @__PURE__ */ jsxRuntime.jsx(
13388
+ react.Heading,
13389
+ {
13390
+ position: "absolute",
13391
+ top: "-5",
13392
+ right: "-5",
13393
+ color: "#D23F63",
13394
+ fontSize: "28px",
13395
+ children: `v1`
13396
+ }
13397
+ )
13398
+ ] }),
13399
+ /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { as: fa.FaArrowRight, color: "#3DBA67" }),
13400
+ /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { position: "relative", display: "inline-block", children: [
13401
+ /* @__PURE__ */ jsxRuntime.jsx(react.Circle, { size: "60px", bg: "gray.200", children: /* @__PURE__ */ jsxRuntime.jsx(
13402
+ react.Image,
13403
+ {
13404
+ borderRadius: "full",
13405
+ src: smartAccount?.image,
13406
+ alt: t("Profile Picture"),
13407
+ w: "100%",
13408
+ h: "100%",
13409
+ objectFit: "cover"
13410
+ }
13411
+ ) }),
13412
+ /* @__PURE__ */ jsxRuntime.jsx(
13413
+ react.Heading,
13414
+ {
13415
+ position: "absolute",
13416
+ top: "-5",
13417
+ right: "-5",
13418
+ color: "#3DBA67",
13419
+ fontSize: "28px",
13420
+ children: `v3`
13421
+ }
13422
+ )
13423
+ ] })
13424
+ ]
13425
+ }
13426
+ ),
13282
13427
  /* @__PURE__ */ jsxRuntime.jsxs(react.Alert, { status: "info", borderRadius: "md", children: [
13283
13428
  /* @__PURE__ */ jsxRuntime.jsx(react.AlertIcon, {}),
13284
13429
  /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { children: [
@@ -13304,23 +13449,6 @@ var UpgradeSmartAccountContent = ({
13304
13449
  ] })
13305
13450
  ] }) })
13306
13451
  ] })
13307
- ] }),
13308
- /* @__PURE__ */ jsxRuntime.jsxs(react.Alert, { status: "warning", borderRadius: "md", children: [
13309
- /* @__PURE__ */ jsxRuntime.jsx(react.AlertIcon, { as: io5.IoWarningOutline }),
13310
- /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { children: [
13311
- /* @__PURE__ */ jsxRuntime.jsx(react.AlertTitle, { fontSize: "sm", children: t("Important") }),
13312
- /* @__PURE__ */ jsxRuntime.jsx(
13313
- react.AlertDescription,
13314
- {
13315
- fontSize: "xs",
13316
- lineHeight: "17px",
13317
- display: "block",
13318
- children: t(
13319
- "This upgrade is necessary to continue interacting with VeChain blockchain. Please complete it now."
13320
- )
13321
- }
13322
- )
13323
- ] })
13324
13452
  ] })
13325
13453
  ] }) }),
13326
13454
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalFooter, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { spacing: 3, w: "full", children: [
@@ -14537,7 +14665,7 @@ var DEFAULT_APPS = [
14537
14665
  name: "VeChain Kit",
14538
14666
  description: "A all-in-one library for building VeChain applications.",
14539
14667
  external_url: "https://vechainkit.vechain.org/",
14540
- logo: "https://i.ibb.co/ncysMF9/vechain-kit-logo-transparent.png",
14668
+ logo: "https://vechain.org/wp-content/uploads/2025/02/VeChain_Icon_Quartz_300ppi.png",
14541
14669
  banner: "",
14542
14670
  screenshots: [],
14543
14671
  social_urls: [],
@@ -14840,7 +14968,7 @@ var TransactionModalContent = ({
14840
14968
  };
14841
14969
  case "error":
14842
14970
  return {
14843
- title: uiConfig?.title ?? t("Something went wrong"),
14971
+ title: t("Something went wrong"),
14844
14972
  icon: uiConfig?.errorIcon ?? /* @__PURE__ */ jsxRuntime.jsx(
14845
14973
  react.Icon,
14846
14974
  {
@@ -14853,7 +14981,7 @@ var TransactionModalContent = ({
14853
14981
  };
14854
14982
  case "success":
14855
14983
  return {
14856
- title: uiConfig?.title ?? t("Transaction completed!"),
14984
+ title: t("Transaction successful!"),
14857
14985
  icon: uiConfig?.successIcon ?? /* @__PURE__ */ jsxRuntime.jsx(
14858
14986
  react.Icon,
14859
14987
  {
@@ -15021,7 +15149,7 @@ var SuccessfulOperationContent = ({
15021
15149
  showSocialButtons = false
15022
15150
  }) => {
15023
15151
  const { t } = reactI18next.useTranslation();
15024
- const { network } = useVeChainKitConfig();
15152
+ const { network, darkMode } = useVeChainKitConfig();
15025
15153
  const explorerUrl = chunkRUIC653T_cjs.getConfig(network.type).explorerUrl;
15026
15154
  const socialDescription = `${explorerUrl}/${txId}`;
15027
15155
  return /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { children: [
@@ -15035,7 +15163,7 @@ var SuccessfulOperationContent = ({
15035
15163
  {
15036
15164
  as: io.IoIosCheckmarkCircleOutline,
15037
15165
  fontSize: "100px",
15038
- color: "#22c55e"
15166
+ color: darkMode ? "#00ff45de" : "#10ba3e"
15039
15167
  }
15040
15168
  ),
15041
15169
  description && /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "sm", textAlign: "center", children: description }),
@@ -16163,7 +16291,7 @@ var SuccessfulOperationContent2 = ({
16163
16291
  showSocialButtons = false
16164
16292
  }) => {
16165
16293
  const { t } = reactI18next.useTranslation();
16166
- const { network } = useVeChainKitConfig();
16294
+ const { network, darkMode } = useVeChainKitConfig();
16167
16295
  const explorerUrl = chunkRUIC653T_cjs.getConfig(network.type).explorerUrl;
16168
16296
  const socialDescription = `${explorerUrl}/${txId}`;
16169
16297
  return /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { children: [
@@ -16188,7 +16316,7 @@ var SuccessfulOperationContent2 = ({
16188
16316
  {
16189
16317
  as: io.IoIosCheckmarkCircleOutline,
16190
16318
  fontSize: "100px",
16191
- color: "#00ff45de"
16319
+ color: darkMode ? "#00ff45de" : "#10ba3e"
16192
16320
  }
16193
16321
  )
16194
16322
  }
@@ -16242,7 +16370,8 @@ var SuccessfulOperationContent2 = ({
16242
16370
  };
16243
16371
  var UpgradeSmartAccountContent2 = ({
16244
16372
  setCurrentContent,
16245
- handleClose
16373
+ handleClose,
16374
+ style
16246
16375
  }) => {
16247
16376
  const { t } = reactI18next.useTranslation();
16248
16377
  const { smartAccount, connectedWallet } = useWallet();
@@ -16293,10 +16422,69 @@ var UpgradeSmartAccountContent2 = ({
16293
16422
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalHeader, { children: t("Account upgrade required") }),
16294
16423
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalCloseButton, {})
16295
16424
  ] }),
16296
- /* @__PURE__ */ jsxRuntime.jsx(react.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { spacing: 6, align: "stretch", children: [
16425
+ /* @__PURE__ */ jsxRuntime.jsx(react.ModalBody, { children: /* @__PURE__ */ jsxRuntime.jsxs(react.VStack, { spacing: 10, align: "stretch", justifyContent: "center", children: [
16297
16426
  /* @__PURE__ */ jsxRuntime.jsx(react.Text, { fontSize: "sm", textAlign: "center", children: t(
16298
16427
  "To continue interacting with VeChain blockchain and complete your operation, your smart account needs to be upgraded to the latest version (v3)."
16299
16428
  ) }),
16429
+ /* @__PURE__ */ jsxRuntime.jsxs(
16430
+ react.HStack,
16431
+ {
16432
+ align: "center",
16433
+ justifyContent: "space-evenly",
16434
+ rounded: "md",
16435
+ children: [
16436
+ /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { position: "relative", display: "inline-block", children: [
16437
+ /* @__PURE__ */ jsxRuntime.jsx(react.Circle, { size: "60px", bg: "gray.200", children: /* @__PURE__ */ jsxRuntime.jsx(
16438
+ react.Image,
16439
+ {
16440
+ src: smartAccount?.image,
16441
+ alt: t("Profile Picture"),
16442
+ w: "100%",
16443
+ h: "100%",
16444
+ borderRadius: "full",
16445
+ objectFit: "cover"
16446
+ }
16447
+ ) }),
16448
+ /* @__PURE__ */ jsxRuntime.jsx(
16449
+ react.Heading,
16450
+ {
16451
+ position: "absolute",
16452
+ top: "-5",
16453
+ right: "-5",
16454
+ color: "#D23F63",
16455
+ fontSize: "28px",
16456
+ children: `v1`
16457
+ }
16458
+ )
16459
+ ] }),
16460
+ /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { as: fa.FaArrowRight, color: "#3DBA67" }),
16461
+ /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { position: "relative", display: "inline-block", children: [
16462
+ /* @__PURE__ */ jsxRuntime.jsx(react.Circle, { size: "60px", bg: "gray.200", children: /* @__PURE__ */ jsxRuntime.jsx(
16463
+ react.Image,
16464
+ {
16465
+ src: smartAccount?.image,
16466
+ alt: t("Profile Picture"),
16467
+ w: "100%",
16468
+ h: "100%",
16469
+ borderRadius: "full",
16470
+ objectFit: "cover"
16471
+ }
16472
+ ) }),
16473
+ /* @__PURE__ */ jsxRuntime.jsx(
16474
+ react.Heading,
16475
+ {
16476
+ position: "absolute",
16477
+ top: "-5",
16478
+ right: "-5",
16479
+ color: "#3DBA67",
16480
+ fontSize: "28px",
16481
+ children: `v3`
16482
+ }
16483
+ )
16484
+ ] })
16485
+ ]
16486
+ }
16487
+ ),
16300
16488
  /* @__PURE__ */ jsxRuntime.jsxs(react.Alert, { status: "info", borderRadius: "md", children: [
16301
16489
  /* @__PURE__ */ jsxRuntime.jsx(react.AlertIcon, {}),
16302
16490
  /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { children: [
@@ -16322,28 +16510,12 @@ var UpgradeSmartAccountContent2 = ({
16322
16510
  ] })
16323
16511
  ] }) })
16324
16512
  ] })
16325
- ] }),
16326
- /* @__PURE__ */ jsxRuntime.jsxs(react.Alert, { status: "warning", borderRadius: "md", children: [
16327
- /* @__PURE__ */ jsxRuntime.jsx(react.AlertIcon, { as: io5.IoWarningOutline }),
16328
- /* @__PURE__ */ jsxRuntime.jsxs(react.Box, { children: [
16329
- /* @__PURE__ */ jsxRuntime.jsx(react.AlertTitle, { fontSize: "sm", children: t("Important") }),
16330
- /* @__PURE__ */ jsxRuntime.jsx(
16331
- react.AlertDescription,
16332
- {
16333
- fontSize: "xs",
16334
- lineHeight: "17px",
16335
- display: "block",
16336
- children: t(
16337
- "This upgrade is necessary to continue interacting with VeChain blockchain. Please complete it now."
16338
- )
16339
- }
16340
- )
16341
- ] })
16342
16513
  ] })
16343
16514
  ] }) }),
16344
16515
  /* @__PURE__ */ jsxRuntime.jsx(react.ModalFooter, { justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsx(react.VStack, { spacing: 3, w: "full", children: /* @__PURE__ */ jsxRuntime.jsx(
16345
16516
  TransactionButtonAndStatus,
16346
16517
  {
16518
+ style,
16347
16519
  buttonText: upgradeRequired ? t("Upgrade account") : t("Account already upgraded"),
16348
16520
  onConfirm: handleUpgrade,
16349
16521
  isTxWaitingConfirmation: isWaitingForWalletConfirmation,
@@ -16356,7 +16528,7 @@ var UpgradeSmartAccountContent2 = ({
16356
16528
  ) }) })
16357
16529
  ] });
16358
16530
  };
16359
- var UpgradeSmartAccountModal = ({ isOpen, onClose }) => {
16531
+ var UpgradeSmartAccountModal = ({ isOpen, onClose, style }) => {
16360
16532
  const [currentContent, setCurrentContent] = React10.useState(
16361
16533
  "upgrade-smart-account"
16362
16534
  );
@@ -16376,7 +16548,8 @@ var UpgradeSmartAccountModal = ({ isOpen, onClose }) => {
16376
16548
  UpgradeSmartAccountContent2,
16377
16549
  {
16378
16550
  setCurrentContent,
16379
- handleClose: onClose
16551
+ handleClose: onClose,
16552
+ style
16380
16553
  }
16381
16554
  );
16382
16555
  }
@@ -16388,6 +16561,7 @@ var UpgradeSmartAccountModal = ({ isOpen, onClose }) => {
16388
16561
  onClose,
16389
16562
  allowExternalFocus: true,
16390
16563
  blockScrollOnMount: true,
16564
+ size: style?.modalSize,
16391
16565
  children: renderContent()
16392
16566
  }
16393
16567
  );
@@ -16416,10 +16590,13 @@ var ModalProvider = ({ children }) => {
16416
16590
  []
16417
16591
  );
16418
16592
  const [isAccountModalOpen, setIsAccountModalOpen] = React10.useState(false);
16419
- const openAccountModal = React10.useCallback(() => {
16420
- setAccountModalContent("main");
16421
- setIsAccountModalOpen(true);
16422
- }, []);
16593
+ const openAccountModal = React10.useCallback(
16594
+ (content) => {
16595
+ setAccountModalContent(content ?? "main");
16596
+ setIsAccountModalOpen(true);
16597
+ },
16598
+ []
16599
+ );
16423
16600
  const closeAccountModal = React10.useCallback(
16424
16601
  () => setIsAccountModalOpen(false),
16425
16602
  []
@@ -16443,8 +16620,12 @@ var ModalProvider = ({ children }) => {
16443
16620
  []
16444
16621
  );
16445
16622
  const [isUpgradeSmartAccountModalOpen, setIsUpgradeSmartAccountModalOpen] = React10.useState(false);
16623
+ const [upgradeSmartAccountModalStyle, setUpgradeSmartAccountModalStyle] = React10.useState(void 0);
16446
16624
  const openUpgradeSmartAccountModal = React10.useCallback(
16447
- () => setIsUpgradeSmartAccountModalOpen(true),
16625
+ (style) => {
16626
+ setUpgradeSmartAccountModalStyle(style);
16627
+ setIsUpgradeSmartAccountModalOpen(true);
16628
+ },
16448
16629
  []
16449
16630
  );
16450
16631
  const closeUpgradeSmartAccountModal = React10.useCallback(
@@ -16495,7 +16676,8 @@ var ModalProvider = ({ children }) => {
16495
16676
  UpgradeSmartAccountModal,
16496
16677
  {
16497
16678
  isOpen: isUpgradeSmartAccountModalOpen,
16498
- onClose: closeUpgradeSmartAccountModal
16679
+ onClose: closeUpgradeSmartAccountModal,
16680
+ style: upgradeSmartAccountModalStyle
16499
16681
  }
16500
16682
  )
16501
16683
  ]
@@ -16517,7 +16699,7 @@ var useAccountModal = () => {
16517
16699
  closeAccountModal: close,
16518
16700
  isAccountModalOpen: isOpen
16519
16701
  } = useModal();
16520
- return { open, close, isOpen };
16702
+ return { open: () => open(), close, isOpen };
16521
16703
  };
16522
16704
  var AccountModalProvider = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
16523
16705
  var useTransactionModal = () => {
@@ -16579,7 +16761,7 @@ var useChooseNameModal = () => {
16579
16761
  setAccountModalContent
16580
16762
  } = useModal();
16581
16763
  const open = () => {
16582
- setAccountModalContent({
16764
+ openAccountModal({
16583
16765
  type: "choose-name",
16584
16766
  props: {
16585
16767
  setCurrentContent: setAccountModalContent,
@@ -16587,7 +16769,6 @@ var useChooseNameModal = () => {
16587
16769
  initialContentSource: "main"
16588
16770
  }
16589
16771
  });
16590
- openAccountModal();
16591
16772
  };
16592
16773
  const close = () => {
16593
16774
  closeAccountModal();
@@ -16609,13 +16790,12 @@ var useSendTokenModal = () => {
16609
16790
  setAccountModalContent
16610
16791
  } = useModal();
16611
16792
  const open = () => {
16612
- setAccountModalContent({
16793
+ openAccountModal({
16613
16794
  type: "send-token",
16614
16795
  props: {
16615
16796
  setCurrentContent: setAccountModalContent
16616
16797
  }
16617
16798
  });
16618
- openAccountModal();
16619
16799
  };
16620
16800
  const close = () => {
16621
16801
  closeAccountModal();
@@ -16630,15 +16810,9 @@ var SendTokenModalProvider = ({
16630
16810
  children
16631
16811
  }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
16632
16812
  var useAccessAndSecurityModal = () => {
16633
- const {
16634
- openAccountModal,
16635
- closeAccountModal,
16636
- isAccountModalOpen,
16637
- setAccountModalContent
16638
- } = useModal();
16813
+ const { openAccountModal, closeAccountModal, isAccountModalOpen } = useModal();
16639
16814
  const open = () => {
16640
- setAccountModalContent("access-and-security");
16641
- openAccountModal();
16815
+ openAccountModal("access-and-security");
16642
16816
  };
16643
16817
  const close = () => {
16644
16818
  closeAccountModal();
@@ -16653,15 +16827,9 @@ var AccessAndSecurityModalProvider = ({
16653
16827
  children
16654
16828
  }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
16655
16829
  var useExploreEcosystemModal = () => {
16656
- const {
16657
- openAccountModal,
16658
- closeAccountModal,
16659
- isAccountModalOpen,
16660
- setAccountModalContent
16661
- } = useModal();
16830
+ const { openAccountModal, closeAccountModal, isAccountModalOpen } = useModal();
16662
16831
  const open = () => {
16663
- setAccountModalContent("ecosystem");
16664
- openAccountModal();
16832
+ openAccountModal("ecosystem");
16665
16833
  };
16666
16834
  const close = () => {
16667
16835
  closeAccountModal();
@@ -16676,15 +16844,9 @@ var ExploreEcosystemModalProvider = ({
16676
16844
  children
16677
16845
  }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
16678
16846
  var useNotificationsModal = () => {
16679
- const {
16680
- openAccountModal,
16681
- closeAccountModal,
16682
- isAccountModalOpen,
16683
- setAccountModalContent
16684
- } = useModal();
16847
+ const { openAccountModal, closeAccountModal, isAccountModalOpen } = useModal();
16685
16848
  const open = () => {
16686
- setAccountModalContent("notifications");
16687
- openAccountModal();
16849
+ openAccountModal("notifications");
16688
16850
  };
16689
16851
  const close = () => {
16690
16852
  closeAccountModal();
@@ -16706,11 +16868,10 @@ var useFAQModal = () => {
16706
16868
  setAccountModalContent
16707
16869
  } = useModal();
16708
16870
  const open = () => {
16709
- setAccountModalContent({
16871
+ openAccountModal({
16710
16872
  type: "faq",
16711
16873
  props: { onGoBack: () => setAccountModalContent("main") }
16712
16874
  });
16713
- openAccountModal();
16714
16875
  };
16715
16876
  const close = () => {
16716
16877
  closeAccountModal();
@@ -16723,15 +16884,9 @@ var useFAQModal = () => {
16723
16884
  };
16724
16885
  var FAQModalProvider = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
16725
16886
  var useAccountCustomizationModal = () => {
16726
- const {
16727
- openAccountModal,
16728
- closeAccountModal,
16729
- isAccountModalOpen,
16730
- setAccountModalContent
16731
- } = useModal();
16887
+ const { openAccountModal, closeAccountModal, isAccountModalOpen } = useModal();
16732
16888
  const open = () => {
16733
- setAccountModalContent("account-customization");
16734
- openAccountModal();
16889
+ openAccountModal("account-customization");
16735
16890
  };
16736
16891
  const close = () => {
16737
16892
  closeAccountModal();
@@ -16746,15 +16901,9 @@ var AccountCustomizationModalProvider = ({
16746
16901
  children
16747
16902
  }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
16748
16903
  var useReceiveModal = () => {
16749
- const {
16750
- openAccountModal,
16751
- closeAccountModal,
16752
- isAccountModalOpen,
16753
- setAccountModalContent
16754
- } = useModal();
16904
+ const { openAccountModal, closeAccountModal, isAccountModalOpen } = useModal();
16755
16905
  const open = () => {
16756
- setAccountModalContent("receive-token");
16757
- openAccountModal();
16906
+ openAccountModal("receive-token");
16758
16907
  };
16759
16908
  const close = () => {
16760
16909
  closeAccountModal();
@@ -16835,17 +16984,32 @@ var useLoginModalContent = () => {
16835
16984
  ...baseConfig
16836
16985
  };
16837
16986
  };
16838
- var useUpgradeSmartAccountModal = () => {
16987
+ var useUpgradeSmartAccountModal = (style) => {
16839
16988
  const {
16840
16989
  openUpgradeSmartAccountModal: open,
16841
16990
  closeUpgradeSmartAccountModal: close,
16842
16991
  isUpgradeSmartAccountModalOpen: isOpen
16843
16992
  } = useModal();
16844
- return { open, close, isOpen };
16993
+ return { open: () => open(style), close, isOpen };
16845
16994
  };
16846
16995
  var UpgradeSmartAccountModalProvider = ({
16847
16996
  children
16848
16997
  }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
16998
+ var useProfileModal = () => {
16999
+ const { openAccountModal, closeAccountModal, isAccountModalOpen } = useModal();
17000
+ const open = () => {
17001
+ openAccountModal("profile");
17002
+ };
17003
+ const close = () => {
17004
+ closeAccountModal();
17005
+ };
17006
+ return {
17007
+ open,
17008
+ close,
17009
+ isOpen: isAccountModalOpen
17010
+ };
17011
+ };
17012
+ var ProfileModalProvider = ({ children }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
16849
17013
  var ERC20Interface4 = chunk5GZ7N47F_cjs.ERC20__factory.createInterface();
16850
17014
  var useTransferERC20 = ({
16851
17015
  fromAddress,
@@ -17303,8 +17467,8 @@ var PrivyWalletProvider = ({
17303
17467
  value: valueArray,
17304
17468
  data: dataArray,
17305
17469
  validAfter: 0,
17306
- validBefore: Math.floor(Date.now() / 1e3) + 60,
17307
- // e.g. 1 minute from now
17470
+ validBefore: Math.floor(Date.now() / 1e3) + 300,
17471
+ // e.g. 5 minutes from now
17308
17472
  nonce: ethers.ethers.hexlify(ethers.ethers.randomBytes(32))
17309
17473
  }
17310
17474
  };
@@ -17626,11 +17790,20 @@ var useVeChainKitConfig = () => {
17626
17790
  };
17627
17791
  var validateConfig = (props) => {
17628
17792
  const errors = [];
17629
- if (!props.feeDelegation) {
17630
- errors.push("feeDelegation configuration is required");
17631
- } else {
17632
- if (!props.feeDelegation.delegatorUrl) {
17633
- errors.push("feeDelegation.delegatorUrl is required");
17793
+ const requiresFeeDelegation = props.privy !== void 0 || props.loginMethods?.some(
17794
+ (method35) => method35.method === "vechain" || method35.method === "ecosystem"
17795
+ );
17796
+ if (requiresFeeDelegation) {
17797
+ if (!props.feeDelegation) {
17798
+ errors.push(
17799
+ "feeDelegation configuration is required when using Privy or vechain login method"
17800
+ );
17801
+ } else {
17802
+ if (!props.feeDelegation || !props.feeDelegation.delegatorUrl) {
17803
+ errors.push(
17804
+ "feeDelegation.delegatorUrl is required when using Privy or vechain login method"
17805
+ );
17806
+ }
17634
17807
  }
17635
17808
  }
17636
17809
  if (!props.network) {
@@ -17745,7 +17918,7 @@ var VeChainKitProvider = (props) => {
17745
17918
  },
17746
17919
  appearance: {
17747
17920
  theme: darkMode ? "dark" : "light",
17748
- accentColor: darkMode ? "#3182CE" : "#2B6CB0",
17921
+ accentColor: privy?.appearance.accentColor ?? (darkMode ? "#3182CE" : "#2B6CB0"),
17749
17922
  loginMessage: privy?.appearance.loginMessage,
17750
17923
  logo: privy?.appearance.logo
17751
17924
  },
@@ -17796,8 +17969,8 @@ var VeChainKitProvider = (props) => {
17796
17969
  PrivyWalletProvider,
17797
17970
  {
17798
17971
  nodeUrl: network.nodeUrl ?? chunkRUIC653T_cjs.getConfig(network.type).nodeUrl,
17799
- delegatorUrl: feeDelegation.delegatorUrl,
17800
- delegateAllTransactions: feeDelegation.delegateAllTransactions,
17972
+ delegatorUrl: feeDelegation?.delegatorUrl ?? "",
17973
+ delegateAllTransactions: feeDelegation?.delegateAllTransactions ?? false,
17801
17974
  children: /* @__PURE__ */ jsxRuntime.jsx(ModalProvider, { children })
17802
17975
  }
17803
17976
  )
@@ -17875,10 +18048,9 @@ var variants2 = {
17875
18048
  }),
17876
18049
  featureAnnouncement: (props) => definePartsStyle2({
17877
18050
  body: {
17878
- backgroundColor: props.colorMode === "dark" ? "whiteAlpha.100" : "blackAlpha.50",
18051
+ backgroundColor: props.colorMode === "dark" ? "#ffffff0a" : "blackAlpha.50",
17879
18052
  borderRadius: "12px",
17880
- border: props.colorMode === "dark" ? "1px solid #2d2d2d" : "1px solid #eaeaea",
17881
- color: props.colorMode === "dark" ? "whiteAlpha.900" : "gray.800"
18053
+ color: props.colorMode === "dark" ? "#ffffff12" : "blackAlpha.200"
17882
18054
  },
17883
18055
  container: {
17884
18056
  borderRadius: "12px",
@@ -18129,6 +18301,10 @@ Object.defineProperty(exports, "usePrivy", {
18129
18301
  enumerable: true,
18130
18302
  get: function () { return reactAuth.usePrivy; }
18131
18303
  });
18304
+ Object.defineProperty(exports, "useSetWalletRecovery", {
18305
+ enumerable: true,
18306
+ get: function () { return reactAuth.useSetWalletRecovery; }
18307
+ });
18132
18308
  Object.defineProperty(exports, "DAppKitWalletButton", {
18133
18309
  enumerable: true,
18134
18310
  get: function () { return dappKitReact.WalletButton; }
@@ -18205,6 +18381,7 @@ exports.PrivyButton = PrivyButton;
18205
18381
  exports.PrivyWalletProvider = PrivyWalletProvider;
18206
18382
  exports.ProfileCard = ProfileCard;
18207
18383
  exports.ProfileContent = ProfileContent;
18384
+ exports.ProfileModalProvider = ProfileModalProvider;
18208
18385
  exports.QuickActionsSection = QuickActionsSection;
18209
18386
  exports.ReceiveModalProvider = ReceiveModalProvider;
18210
18387
  exports.ReceiveTokenContent = ReceiveTokenContent;
@@ -18492,6 +18669,7 @@ exports.useParticipatedInGovernance = useParticipatedInGovernance;
18492
18669
  exports.useParticipationScoreThreshold = useParticipationScoreThreshold;
18493
18670
  exports.usePassportChecks = usePassportChecks;
18494
18671
  exports.usePrivyWalletProvider = usePrivyWalletProvider;
18672
+ exports.useProfileModal = useProfileModal;
18495
18673
  exports.useReceiveModal = useReceiveModal;
18496
18674
  exports.useRefreshBalances = useRefreshBalances;
18497
18675
  exports.useRefreshMetadata = useRefreshMetadata;