@kryptos_connect/mobile-sdk 1.0.3 → 1.0.4

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.
Files changed (3) hide show
  1. package/dist/index.js +446 -366
  2. package/dist/index.mjs +355 -274
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -38,8 +38,8 @@ __export(index_exports, {
38
38
  module.exports = __toCommonJS(index_exports);
39
39
 
40
40
  // src/KryptosConnectButton.tsx
41
- var import_react36 = __toESM(require("react"));
42
- var import_react_native21 = require("react-native");
41
+ var import_react37 = __toESM(require("react"));
42
+ var import_react_native22 = require("react-native");
43
43
 
44
44
  // src/assets/LogoIcon.tsx
45
45
  var import_react = __toESM(require("react"));
@@ -88,6 +88,11 @@ var import_axios = __toESM(require("axios"));
88
88
  var getBaseUrl = () => {
89
89
  return getGlobalBaseUrl() || "https://connect-api.kryptos.io/";
90
90
  };
91
+ var isSvgUrl = (url) => {
92
+ if (!url) return false;
93
+ const urlWithoutParams = url.split("?")[0].split("#")[0];
94
+ return /\.svg$/i.test(urlWithoutParams);
95
+ };
91
96
 
92
97
  // src/services/api.ts
93
98
  var api = import_axios.default.create({
@@ -1015,8 +1020,7 @@ var styles4 = import_react_native4.StyleSheet.create({
1015
1020
  flex: 1
1016
1021
  },
1017
1022
  footer: {
1018
- borderTopWidth: 1,
1019
- marginBottom: 24
1023
+ borderTopWidth: 1
1020
1024
  }
1021
1025
  });
1022
1026
 
@@ -1308,8 +1312,8 @@ var styles9 = import_react_native9.StyleSheet.create({
1308
1312
  });
1309
1313
 
1310
1314
  // src/molecules/Auth.tsx
1311
- var import_react19 = __toESM(require("react"));
1312
- var import_react_native11 = require("react-native");
1315
+ var import_react20 = __toESM(require("react"));
1316
+ var import_react_native12 = require("react-native");
1313
1317
 
1314
1318
  // src/assets/LinkIcon.tsx
1315
1319
  var import_react14 = __toESM(require("react"));
@@ -1378,8 +1382,8 @@ var EyeIcon = ({
1378
1382
  };
1379
1383
 
1380
1384
  // src/molecules/ConnectLogo.tsx
1381
- var import_react18 = __toESM(require("react"));
1382
- var import_react_native10 = require("react-native");
1385
+ var import_react19 = __toESM(require("react"));
1386
+ var import_react_native11 = require("react-native");
1383
1387
 
1384
1388
  // src/assets/UnplugIcon.tsx
1385
1389
  var import_react17 = __toESM(require("react"));
@@ -1438,15 +1442,40 @@ var UnplugIcon = ({
1438
1442
  ));
1439
1443
  };
1440
1444
 
1445
+ // src/components/remote-svg.tsx
1446
+ var import_react18 = __toESM(require("react"));
1447
+ var import_react_native10 = require("react-native");
1448
+ var import_react_native_svg7 = require("react-native-svg");
1449
+ function RemoteSvg({
1450
+ uri,
1451
+ width = 32,
1452
+ height = 32
1453
+ }) {
1454
+ const [svgXml, setSvgXml] = (0, import_react18.useState)(null);
1455
+ (0, import_react18.useEffect)(() => {
1456
+ fetch(uri).then((res) => res.text()).then((text) => setSvgXml(text)).catch((err) => console.error("SVG load error:", err));
1457
+ }, [uri]);
1458
+ if (!svgXml) return /* @__PURE__ */ import_react18.default.createElement(import_react_native10.ActivityIndicator, null);
1459
+ return /* @__PURE__ */ import_react18.default.createElement(
1460
+ import_react_native_svg7.SvgXml,
1461
+ {
1462
+ xml: svgXml,
1463
+ width,
1464
+ height,
1465
+ style: { borderRadius: 8 }
1466
+ }
1467
+ );
1468
+ }
1469
+
1441
1470
  // src/molecules/ConnectLogo.tsx
1442
1471
  var KryptosLogo = () => {
1443
1472
  const theme = useTheme();
1444
- return /* @__PURE__ */ import_react18.default.createElement(
1445
- import_react_native10.View,
1473
+ return /* @__PURE__ */ import_react19.default.createElement(
1474
+ import_react_native11.View,
1446
1475
  {
1447
1476
  style: [styles10.logoContainer, { backgroundColor: theme.colors.surface }]
1448
1477
  },
1449
- /* @__PURE__ */ import_react18.default.createElement(LogoIcon, { size: 36 })
1478
+ /* @__PURE__ */ import_react19.default.createElement(LogoIcon, { size: 36 })
1450
1479
  );
1451
1480
  };
1452
1481
  var ConnectLogo = () => {
@@ -1461,11 +1490,11 @@ var ConnectLogo = () => {
1461
1490
  }
1462
1491
  };
1463
1492
  const renderLogo = () => {
1464
- if ((0, import_react18.isValidElement)(appLogo)) {
1493
+ if ((0, import_react19.isValidElement)(appLogo)) {
1465
1494
  return appLogo;
1466
1495
  } else if (typeof appLogo === "string" && isValidUrl(appLogo)) {
1467
- return /* @__PURE__ */ import_react18.default.createElement(
1468
- import_react_native10.Image,
1496
+ return isSvgUrl(appLogo) ? /* @__PURE__ */ import_react19.default.createElement(RemoteSvg, { uri: appLogo }) : /* @__PURE__ */ import_react19.default.createElement(
1497
+ import_react_native11.Image,
1469
1498
  {
1470
1499
  source: { uri: appLogo },
1471
1500
  style: styles10.appLogoImage,
@@ -1473,8 +1502,8 @@ var ConnectLogo = () => {
1473
1502
  }
1474
1503
  );
1475
1504
  } else if (typeof appLogo === "number" || typeof appLogo === "object" && appLogo !== null) {
1476
- return /* @__PURE__ */ import_react18.default.createElement(
1477
- import_react_native10.Image,
1505
+ return /* @__PURE__ */ import_react19.default.createElement(
1506
+ import_react_native11.Image,
1478
1507
  {
1479
1508
  source: appLogo,
1480
1509
  style: styles10.appLogoImage,
@@ -1482,12 +1511,12 @@ var ConnectLogo = () => {
1482
1511
  }
1483
1512
  );
1484
1513
  } else if (appName) {
1485
- return /* @__PURE__ */ import_react18.default.createElement(import_react_native10.Text, { style: [styles10.appLogoText, { color: theme.colors.text }] }, appName.charAt(0).toUpperCase());
1514
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_native11.Text, { style: [styles10.appLogoText, { color: theme.colors.text }] }, appName.charAt(0).toUpperCase());
1486
1515
  }
1487
- return /* @__PURE__ */ import_react18.default.createElement(import_react_native10.Text, { style: [styles10.appLogoText, { color: theme.colors.text }] }, "?");
1516
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_native11.Text, { style: [styles10.appLogoText, { color: theme.colors.text }] }, "?");
1488
1517
  };
1489
- return /* @__PURE__ */ import_react18.default.createElement(import_react_native10.View, { style: styles10.container }, /* @__PURE__ */ import_react18.default.createElement(KryptosLogo, null), /* @__PURE__ */ import_react18.default.createElement(import_react_native10.View, { style: styles10.iconContainer }, /* @__PURE__ */ import_react18.default.createElement(UnplugIcon, { size: 24, color: theme.colors.textSecondary })), /* @__PURE__ */ import_react18.default.createElement(
1490
- import_react_native10.View,
1518
+ return /* @__PURE__ */ import_react19.default.createElement(import_react_native11.View, { style: styles10.container }, /* @__PURE__ */ import_react19.default.createElement(KryptosLogo, null), /* @__PURE__ */ import_react19.default.createElement(import_react_native11.View, { style: styles10.iconContainer }, /* @__PURE__ */ import_react19.default.createElement(UnplugIcon, { size: 24, color: theme.colors.textSecondary })), /* @__PURE__ */ import_react19.default.createElement(
1519
+ import_react_native11.View,
1491
1520
  {
1492
1521
  style: [
1493
1522
  styles10.logoContainer,
@@ -1497,7 +1526,7 @@ var ConnectLogo = () => {
1497
1526
  renderLogo()
1498
1527
  ));
1499
1528
  };
1500
- var styles10 = import_react_native10.StyleSheet.create({
1529
+ var styles10 = import_react_native11.StyleSheet.create({
1501
1530
  container: {
1502
1531
  flexDirection: "row",
1503
1532
  alignItems: "center",
@@ -1538,11 +1567,11 @@ var Auth = ({
1538
1567
  }) => {
1539
1568
  const { appName, linkToken, clientId, setUser, setEmail } = useKryptosConnect();
1540
1569
  const theme = useTheme();
1541
- const [isLoading, setIsLoading] = import_react19.default.useState(false);
1542
- const [errorMessage, setErrorMessage] = import_react19.default.useState("");
1543
- const [emailValue, setEmailValue] = import_react19.default.useState("");
1544
- const [emailError, setEmailError] = import_react19.default.useState("");
1545
- const [loadingType, setLoadingType] = import_react19.default.useState(null);
1570
+ const [isLoading, setIsLoading] = import_react20.default.useState(false);
1571
+ const [errorMessage, setErrorMessage] = import_react20.default.useState("");
1572
+ const [emailValue, setEmailValue] = import_react20.default.useState("");
1573
+ const [emailError, setEmailError] = import_react20.default.useState("");
1574
+ const [loadingType, setLoadingType] = import_react20.default.useState(null);
1546
1575
  const validateEmail = (email) => {
1547
1576
  const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
1548
1577
  if (!email) {
@@ -1604,29 +1633,29 @@ var Auth = ({
1604
1633
  };
1605
1634
  const infoSections = [
1606
1635
  {
1607
- icon: /* @__PURE__ */ import_react19.default.createElement(LinkIcon, { size: 20, color: theme.colors.primary }),
1636
+ icon: /* @__PURE__ */ import_react20.default.createElement(LinkIcon, { size: 20, color: theme.colors.primary }),
1608
1637
  title: "Simple and secure",
1609
1638
  text: "Link your accounts in just a few clicks"
1610
1639
  },
1611
1640
  {
1612
- icon: /* @__PURE__ */ import_react19.default.createElement(ShieldIcon, { size: 20, color: theme.colors.primary }),
1641
+ icon: /* @__PURE__ */ import_react20.default.createElement(ShieldIcon, { size: 20, color: theme.colors.primary }),
1613
1642
  title: "Control what you share",
1614
1643
  text: "We never share your data without your permission"
1615
1644
  },
1616
1645
  {
1617
- icon: /* @__PURE__ */ import_react19.default.createElement(EyeIcon, { size: 20, color: theme.colors.primary }),
1646
+ icon: /* @__PURE__ */ import_react20.default.createElement(EyeIcon, { size: 20, color: theme.colors.primary }),
1618
1647
  title: "View Only Access",
1619
1648
  text: "Kryptos retrieves view-only data and cannot perform any transactions on your behalf."
1620
1649
  }
1621
1650
  ];
1622
- return /* @__PURE__ */ import_react19.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react19.default.createElement(ModalHeader, { onClose: handleClose }, ""), /* @__PURE__ */ import_react19.default.createElement(ModalBody, null, /* @__PURE__ */ import_react19.default.createElement(import_react_native11.View, { style: styles11.container }, /* @__PURE__ */ import_react19.default.createElement(import_react_native11.View, { style: styles11.header }, /* @__PURE__ */ import_react19.default.createElement(import_react_native11.Text, { style: [styles11.title, { color: theme.colors.text }] }, "Link your accounts to", " ", /* @__PURE__ */ import_react19.default.createElement(import_react_native11.Text, { style: { fontWeight: "700" } }, appName), " using Kryptos"), /* @__PURE__ */ import_react19.default.createElement(ConnectLogo, null), infoSections.map((section, index) => /* @__PURE__ */ import_react19.default.createElement(import_react_native11.View, { key: `info-${index}`, style: styles11.infoSection }, /* @__PURE__ */ import_react19.default.createElement(import_react_native11.View, { style: styles11.infoIcon }, section.icon), /* @__PURE__ */ import_react19.default.createElement(import_react_native11.View, { style: styles11.infoContent }, /* @__PURE__ */ import_react19.default.createElement(
1623
- import_react_native11.Text,
1651
+ return /* @__PURE__ */ import_react20.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react20.default.createElement(ModalHeader, { onClose: handleClose }, ""), /* @__PURE__ */ import_react20.default.createElement(ModalBody, null, /* @__PURE__ */ import_react20.default.createElement(import_react_native12.View, { style: styles11.container }, /* @__PURE__ */ import_react20.default.createElement(import_react_native12.View, { style: styles11.header }, /* @__PURE__ */ import_react20.default.createElement(import_react_native12.Text, { style: [styles11.title, { color: theme.colors.text }] }, "Link your accounts to", " ", /* @__PURE__ */ import_react20.default.createElement(import_react_native12.Text, { style: { fontWeight: "700" } }, appName), " using Kryptos"), /* @__PURE__ */ import_react20.default.createElement(ConnectLogo, null), infoSections.map((section, index) => /* @__PURE__ */ import_react20.default.createElement(import_react_native12.View, { key: `info-${index}`, style: styles11.infoSection }, /* @__PURE__ */ import_react20.default.createElement(import_react_native12.View, { style: styles11.infoIcon }, section.icon), /* @__PURE__ */ import_react20.default.createElement(import_react_native12.View, { style: styles11.infoContent }, /* @__PURE__ */ import_react20.default.createElement(
1652
+ import_react_native12.Text,
1624
1653
  {
1625
1654
  style: [styles11.infoTitle, { color: theme.colors.text }]
1626
1655
  },
1627
1656
  section.title
1628
- ), /* @__PURE__ */ import_react19.default.createElement(
1629
- import_react_native11.Text,
1657
+ ), /* @__PURE__ */ import_react20.default.createElement(
1658
+ import_react_native12.Text,
1630
1659
  {
1631
1660
  style: [
1632
1661
  styles11.infoDescription,
@@ -1634,7 +1663,7 @@ var Auth = ({
1634
1663
  ]
1635
1664
  },
1636
1665
  section.text
1637
- )))), errorMessage ? /* @__PURE__ */ import_react19.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react19.default.createElement(AlertDescription, null, errorMessage)) : null), /* @__PURE__ */ import_react19.default.createElement(import_react_native11.View, { style: styles11.footer }, /* @__PURE__ */ import_react19.default.createElement(
1666
+ )))), errorMessage ? /* @__PURE__ */ import_react20.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react20.default.createElement(AlertDescription, null, errorMessage)) : null), /* @__PURE__ */ import_react20.default.createElement(import_react_native12.View, { style: styles11.footer }, /* @__PURE__ */ import_react20.default.createElement(
1638
1667
  Button,
1639
1668
  {
1640
1669
  variant: "outline",
@@ -1645,41 +1674,41 @@ var Auth = ({
1645
1674
  style: styles11.button
1646
1675
  },
1647
1676
  "Continue"
1648
- ), /* @__PURE__ */ import_react19.default.createElement(
1649
- import_react_native11.Text,
1677
+ ), /* @__PURE__ */ import_react20.default.createElement(
1678
+ import_react_native12.Text,
1650
1679
  {
1651
1680
  style: [styles11.footerText, { color: theme.colors.textSecondary }]
1652
1681
  },
1653
1682
  "By continuing, you agree to Kryptos",
1654
1683
  " ",
1655
- /* @__PURE__ */ import_react19.default.createElement(
1656
- import_react_native11.Text,
1684
+ /* @__PURE__ */ import_react20.default.createElement(
1685
+ import_react_native12.Text,
1657
1686
  {
1658
1687
  style: {
1659
1688
  color: theme.colors.primary,
1660
1689
  textDecorationLine: "underline"
1661
1690
  },
1662
- onPress: () => import_react_native11.Linking.openURL("https://kryptos.io/privacy-policy")
1691
+ onPress: () => import_react_native12.Linking.openURL("https://kryptos.io/privacy-policy")
1663
1692
  },
1664
1693
  "Privacy Policy"
1665
1694
  ),
1666
1695
  " ",
1667
1696
  "and",
1668
1697
  " ",
1669
- /* @__PURE__ */ import_react19.default.createElement(
1670
- import_react_native11.Text,
1698
+ /* @__PURE__ */ import_react20.default.createElement(
1699
+ import_react_native12.Text,
1671
1700
  {
1672
1701
  style: {
1673
1702
  color: theme.colors.primary,
1674
1703
  textDecorationLine: "underline"
1675
1704
  },
1676
- onPress: () => import_react_native11.Linking.openURL("https://kryptos.io/terms-of-services")
1705
+ onPress: () => import_react_native12.Linking.openURL("https://kryptos.io/terms-of-services")
1677
1706
  },
1678
1707
  "Terms of Service"
1679
1708
  )
1680
- )))), /* @__PURE__ */ import_react19.default.createElement(ModalFooter, { style: { paddingVertical: 0 } }, /* @__PURE__ */ import_react19.default.createElement(Footer, null)));
1709
+ )))), /* @__PURE__ */ import_react20.default.createElement(ModalFooter, { style: { paddingVertical: 0 } }, /* @__PURE__ */ import_react20.default.createElement(Footer, null)));
1681
1710
  };
1682
- var styles11 = import_react_native11.StyleSheet.create({
1711
+ var styles11 = import_react_native12.StyleSheet.create({
1683
1712
  container: {
1684
1713
  flex: 1,
1685
1714
  flexDirection: "column",
@@ -1744,8 +1773,8 @@ var styles11 = import_react_native11.StyleSheet.create({
1744
1773
  });
1745
1774
 
1746
1775
  // src/molecules/Init.tsx
1747
- var import_react20 = __toESM(require("react"));
1748
- var import_react_native12 = require("react-native");
1776
+ var import_react21 = __toESM(require("react"));
1777
+ var import_react_native13 = require("react-native");
1749
1778
  var Init = ({
1750
1779
  open,
1751
1780
  onSuccess,
@@ -1760,9 +1789,9 @@ var Init = ({
1760
1789
  setUser
1761
1790
  } = useKryptosConnect();
1762
1791
  const theme = useTheme();
1763
- const [isFetching, setIsFetching] = import_react20.default.useState(false);
1764
- const [error, setError] = import_react20.default.useState(null);
1765
- const fetchLinkToken = import_react20.default.useCallback(async () => {
1792
+ const [isFetching, setIsFetching] = import_react21.default.useState(false);
1793
+ const [error, setError] = import_react21.default.useState(null);
1794
+ const fetchLinkToken = import_react21.default.useCallback(async () => {
1766
1795
  if (!open) return;
1767
1796
  setIsFetching(true);
1768
1797
  setError(null);
@@ -1789,17 +1818,17 @@ var Init = ({
1789
1818
  setIsFetching(false);
1790
1819
  }
1791
1820
  }, []);
1792
- import_react20.default.useEffect(() => {
1821
+ import_react21.default.useEffect(() => {
1793
1822
  fetchLinkToken();
1794
1823
  }, [fetchLinkToken]);
1795
- return /* @__PURE__ */ import_react20.default.createElement(Modal, { isOpen: open, onClose, size: "xs" }, /* @__PURE__ */ import_react20.default.createElement(ModalHeader, { onClose }, "Kryptos Connect"), /* @__PURE__ */ import_react20.default.createElement(ModalBody, null, /* @__PURE__ */ import_react20.default.createElement(import_react_native12.View, { style: styles12.container }, isFetching && /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(
1796
- import_react_native12.ActivityIndicator,
1824
+ return /* @__PURE__ */ import_react21.default.createElement(Modal, { isOpen: open, onClose, size: "xs" }, /* @__PURE__ */ import_react21.default.createElement(ModalHeader, { onClose }, "Kryptos Connect"), /* @__PURE__ */ import_react21.default.createElement(ModalBody, null, /* @__PURE__ */ import_react21.default.createElement(import_react_native13.View, { style: styles12.container }, isFetching && /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
1825
+ import_react_native13.ActivityIndicator,
1797
1826
  {
1798
1827
  size: "large",
1799
1828
  color: theme.colors.primary,
1800
1829
  style: styles12.spinner
1801
1830
  }
1802
- ), /* @__PURE__ */ import_react20.default.createElement(import_react_native12.Text, { style: [styles12.message, { color: theme.colors.text }] }, isInitialized ? "Fetching link token..." : "Initializing...")), !isFetching && error && /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react20.default.createElement(AlertDescription, null, error)), /* @__PURE__ */ import_react20.default.createElement(
1831
+ ), /* @__PURE__ */ import_react21.default.createElement(import_react_native13.Text, { style: [styles12.message, { color: theme.colors.text }] }, isInitialized ? "Fetching link token..." : "Initializing...")), !isFetching && error && /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react21.default.createElement(AlertDescription, null, error)), /* @__PURE__ */ import_react21.default.createElement(
1803
1832
  Button,
1804
1833
  {
1805
1834
  variant: "primary",
@@ -1808,9 +1837,9 @@ var Init = ({
1808
1837
  style: styles12.retryButton
1809
1838
  },
1810
1839
  "Retry"
1811
- )))), /* @__PURE__ */ import_react20.default.createElement(ModalFooter, { style: { paddingVertical: 0 } }, /* @__PURE__ */ import_react20.default.createElement(Footer, null)));
1840
+ )))), /* @__PURE__ */ import_react21.default.createElement(ModalFooter, { style: { paddingVertical: 0 } }, /* @__PURE__ */ import_react21.default.createElement(Footer, null)));
1812
1841
  };
1813
- var styles12 = import_react_native12.StyleSheet.create({
1842
+ var styles12 = import_react_native13.StyleSheet.create({
1814
1843
  container: {
1815
1844
  flex: 1,
1816
1845
  alignItems: "center",
@@ -1837,18 +1866,18 @@ var styles12 = import_react_native12.StyleSheet.create({
1837
1866
  });
1838
1867
 
1839
1868
  // src/molecules/Integration.tsx
1840
- var import_react31 = __toESM(require("react"));
1841
- var import_react_native16 = require("react-native");
1869
+ var import_react32 = __toESM(require("react"));
1870
+ var import_react_native17 = require("react-native");
1842
1871
 
1843
1872
  // src/assets/ArrowLeftIcon.tsx
1844
- var import_react21 = __toESM(require("react"));
1845
- var import_react_native_svg7 = __toESM(require("react-native-svg"));
1873
+ var import_react22 = __toESM(require("react"));
1874
+ var import_react_native_svg8 = __toESM(require("react-native-svg"));
1846
1875
  var ArrowLeftIcon = ({
1847
1876
  size = 20,
1848
1877
  color = "#000"
1849
1878
  }) => {
1850
- return /* @__PURE__ */ import_react21.default.createElement(import_react_native_svg7.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none" }, /* @__PURE__ */ import_react21.default.createElement(
1851
- import_react_native_svg7.Path,
1879
+ return /* @__PURE__ */ import_react22.default.createElement(import_react_native_svg8.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none" }, /* @__PURE__ */ import_react22.default.createElement(
1880
+ import_react_native_svg8.Path,
1852
1881
  {
1853
1882
  d: "M19 12H5M12 19l-7-7 7-7",
1854
1883
  stroke: color,
@@ -1860,14 +1889,14 @@ var ArrowLeftIcon = ({
1860
1889
  };
1861
1890
 
1862
1891
  // src/assets/CheckCircleIcon.tsx
1863
- var import_react22 = __toESM(require("react"));
1864
- var import_react_native_svg8 = __toESM(require("react-native-svg"));
1892
+ var import_react23 = __toESM(require("react"));
1893
+ var import_react_native_svg9 = __toESM(require("react-native-svg"));
1865
1894
  var CheckCircleIcon = ({
1866
1895
  size = 20,
1867
1896
  color = "#10B981"
1868
1897
  }) => {
1869
- return /* @__PURE__ */ import_react22.default.createElement(import_react_native_svg8.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none" }, /* @__PURE__ */ import_react22.default.createElement(
1870
- import_react_native_svg8.Circle,
1898
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_native_svg9.default, { width: size, height: size, viewBox: "0 0 24 24", fill: "none" }, /* @__PURE__ */ import_react23.default.createElement(
1899
+ import_react_native_svg9.Circle,
1871
1900
  {
1872
1901
  cx: 12,
1873
1902
  cy: 12,
@@ -1875,8 +1904,8 @@ var CheckCircleIcon = ({
1875
1904
  stroke: color,
1876
1905
  strokeWidth: 2
1877
1906
  }
1878
- ), /* @__PURE__ */ import_react22.default.createElement(
1879
- import_react_native_svg8.Path,
1907
+ ), /* @__PURE__ */ import_react23.default.createElement(
1908
+ import_react_native_svg9.Path,
1880
1909
  {
1881
1910
  d: "m9 12 2 2 4-4",
1882
1911
  stroke: color,
@@ -1888,21 +1917,21 @@ var CheckCircleIcon = ({
1888
1917
  };
1889
1918
 
1890
1919
  // src/assets/LoaderIcon.tsx
1891
- var import_react23 = __toESM(require("react"));
1892
- var import_react_native13 = require("react-native");
1893
- var import_react_native_svg9 = __toESM(require("react-native-svg"));
1894
- var AnimatedSvg = import_react_native13.Animated.createAnimatedComponent(import_react_native_svg9.default);
1920
+ var import_react24 = __toESM(require("react"));
1921
+ var import_react_native14 = require("react-native");
1922
+ var import_react_native_svg10 = __toESM(require("react-native-svg"));
1923
+ var AnimatedSvg = import_react_native14.Animated.createAnimatedComponent(import_react_native_svg10.default);
1895
1924
  var LoaderIcon = ({
1896
1925
  size = 20,
1897
1926
  color = "#00C693"
1898
1927
  }) => {
1899
- const rotateAnim = import_react23.default.useRef(new import_react_native13.Animated.Value(0)).current;
1900
- import_react23.default.useEffect(() => {
1901
- import_react_native13.Animated.loop(
1902
- import_react_native13.Animated.timing(rotateAnim, {
1928
+ const rotateAnim = import_react24.default.useRef(new import_react_native14.Animated.Value(0)).current;
1929
+ import_react24.default.useEffect(() => {
1930
+ import_react_native14.Animated.loop(
1931
+ import_react_native14.Animated.timing(rotateAnim, {
1903
1932
  toValue: 1,
1904
1933
  duration: 1e3,
1905
- easing: import_react_native13.Easing.linear,
1934
+ easing: import_react_native14.Easing.linear,
1906
1935
  useNativeDriver: true
1907
1936
  })
1908
1937
  ).start();
@@ -1911,7 +1940,7 @@ var LoaderIcon = ({
1911
1940
  inputRange: [0, 1],
1912
1941
  outputRange: ["0deg", "360deg"]
1913
1942
  });
1914
- return /* @__PURE__ */ import_react23.default.createElement(
1943
+ return /* @__PURE__ */ import_react24.default.createElement(
1915
1944
  AnimatedSvg,
1916
1945
  {
1917
1946
  width: size,
@@ -1920,8 +1949,8 @@ var LoaderIcon = ({
1920
1949
  fill: "none",
1921
1950
  style: { transform: [{ rotate: spin }] }
1922
1951
  },
1923
- /* @__PURE__ */ import_react23.default.createElement(
1924
- import_react_native_svg9.Path,
1952
+ /* @__PURE__ */ import_react24.default.createElement(
1953
+ import_react_native_svg10.Path,
1925
1954
  {
1926
1955
  d: "M21 12a9 9 0 1 1-6.219-8.56",
1927
1956
  stroke: color,
@@ -1934,11 +1963,11 @@ var LoaderIcon = ({
1934
1963
  };
1935
1964
 
1936
1965
  // src/assets/SuccessIcon.tsx
1937
- var import_react24 = __toESM(require("react"));
1938
- var import_react_native_svg10 = __toESM(require("react-native-svg"));
1966
+ var import_react25 = __toESM(require("react"));
1967
+ var import_react_native_svg11 = __toESM(require("react-native-svg"));
1939
1968
  var SuccessIcon = ({ size = 64 }) => {
1940
- return /* @__PURE__ */ import_react24.default.createElement(import_react_native_svg10.default, { width: size, height: size, viewBox: "0 0 64 64", fill: "none" }, /* @__PURE__ */ import_react24.default.createElement(
1941
- import_react_native_svg10.Circle,
1969
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_native_svg11.default, { width: size, height: size, viewBox: "0 0 64 64", fill: "none" }, /* @__PURE__ */ import_react25.default.createElement(
1970
+ import_react_native_svg11.Circle,
1942
1971
  {
1943
1972
  cx: 32,
1944
1973
  cy: 32,
@@ -1946,16 +1975,16 @@ var SuccessIcon = ({ size = 64 }) => {
1946
1975
  fill: "#00C693",
1947
1976
  opacity: 0.1
1948
1977
  }
1949
- ), /* @__PURE__ */ import_react24.default.createElement(
1950
- import_react_native_svg10.Circle,
1978
+ ), /* @__PURE__ */ import_react25.default.createElement(
1979
+ import_react_native_svg11.Circle,
1951
1980
  {
1952
1981
  cx: 32,
1953
1982
  cy: 32,
1954
1983
  r: 24,
1955
1984
  fill: "#00C693"
1956
1985
  }
1957
- ), /* @__PURE__ */ import_react24.default.createElement(
1958
- import_react_native_svg10.Path,
1986
+ ), /* @__PURE__ */ import_react25.default.createElement(
1987
+ import_react_native_svg11.Path,
1959
1988
  {
1960
1989
  d: "M24 32l6 6 12-12",
1961
1990
  stroke: "white",
@@ -1967,11 +1996,11 @@ var SuccessIcon = ({ size = 64 }) => {
1967
1996
  };
1968
1997
 
1969
1998
  // src/assets/ErrorIcon.tsx
1970
- var import_react25 = __toESM(require("react"));
1971
- var import_react_native_svg11 = __toESM(require("react-native-svg"));
1999
+ var import_react26 = __toESM(require("react"));
2000
+ var import_react_native_svg12 = __toESM(require("react-native-svg"));
1972
2001
  var ErrorIcon = ({ size = 64 }) => {
1973
- return /* @__PURE__ */ import_react25.default.createElement(import_react_native_svg11.default, { width: size, height: size, viewBox: "0 0 64 64", fill: "none" }, /* @__PURE__ */ import_react25.default.createElement(
1974
- import_react_native_svg11.Circle,
2002
+ return /* @__PURE__ */ import_react26.default.createElement(import_react_native_svg12.default, { width: size, height: size, viewBox: "0 0 64 64", fill: "none" }, /* @__PURE__ */ import_react26.default.createElement(
2003
+ import_react_native_svg12.Circle,
1975
2004
  {
1976
2005
  cx: 32,
1977
2006
  cy: 32,
@@ -1979,16 +2008,16 @@ var ErrorIcon = ({ size = 64 }) => {
1979
2008
  fill: "#EF4444",
1980
2009
  opacity: 0.1
1981
2010
  }
1982
- ), /* @__PURE__ */ import_react25.default.createElement(
1983
- import_react_native_svg11.Circle,
2011
+ ), /* @__PURE__ */ import_react26.default.createElement(
2012
+ import_react_native_svg12.Circle,
1984
2013
  {
1985
2014
  cx: 32,
1986
2015
  cy: 32,
1987
2016
  r: 24,
1988
2017
  fill: "#EF4444"
1989
2018
  }
1990
- ), /* @__PURE__ */ import_react25.default.createElement(
1991
- import_react_native_svg11.Path,
2019
+ ), /* @__PURE__ */ import_react26.default.createElement(
2020
+ import_react_native_svg12.Path,
1992
2021
  {
1993
2022
  d: "M24 24l16 16M40 24l-16 16",
1994
2023
  stroke: "white",
@@ -2000,18 +2029,18 @@ var ErrorIcon = ({ size = 64 }) => {
2000
2029
  };
2001
2030
 
2002
2031
  // src/assets/SearchIcon.tsx
2003
- var import_react26 = __toESM(require("react"));
2004
- var import_react_native_svg12 = __toESM(require("react-native-svg"));
2005
-
2006
- // src/assets/PlusIcon.tsx
2007
2032
  var import_react27 = __toESM(require("react"));
2008
2033
  var import_react_native_svg13 = __toESM(require("react-native-svg"));
2034
+
2035
+ // src/assets/PlusIcon.tsx
2036
+ var import_react28 = __toESM(require("react"));
2037
+ var import_react_native_svg14 = __toESM(require("react-native-svg"));
2009
2038
  var PlusIcon = ({
2010
2039
  size = 14,
2011
2040
  color = "#6B7280"
2012
2041
  }) => {
2013
- return /* @__PURE__ */ import_react27.default.createElement(import_react_native_svg13.default, { width: size, height: size, viewBox: "0 0 14 14", fill: "none" }, /* @__PURE__ */ import_react27.default.createElement(
2014
- import_react_native_svg13.Path,
2042
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_native_svg14.default, { width: size, height: size, viewBox: "0 0 14 14", fill: "none" }, /* @__PURE__ */ import_react28.default.createElement(
2043
+ import_react_native_svg14.Path,
2015
2044
  {
2016
2045
  d: "M7 3.5v7M3.5 7h7",
2017
2046
  stroke: color,
@@ -2023,8 +2052,8 @@ var PlusIcon = ({
2023
2052
 
2024
2053
  // src/wallet-connect/index.tsx
2025
2054
  var import_appkit_react_native3 = require("@reown/appkit-react-native");
2026
- var import_react29 = __toESM(require("react"));
2027
- var import_react_native14 = require("react-native");
2055
+ var import_react30 = __toESM(require("react"));
2056
+ var import_react_native15 = require("react-native");
2028
2057
 
2029
2058
  // src/utils/uuid.ts
2030
2059
  function generateUUID() {
@@ -2036,7 +2065,7 @@ function generateUUID() {
2036
2065
  }
2037
2066
 
2038
2067
  // src/wallet-connect/wallet-connect.tsx
2039
- var import_react28 = __toESM(require("react"));
2068
+ var import_react29 = __toESM(require("react"));
2040
2069
  var import_appkit_react_native2 = require("@reown/appkit-react-native");
2041
2070
 
2042
2071
  // src/wallet-connect/AppKitConfig.ts
@@ -2135,7 +2164,7 @@ var createAppKitInstance = (projectId) => {
2135
2164
  // src/wallet-connect/wallet-connect.tsx
2136
2165
  var WalletConnectWrapper = ({ children }) => {
2137
2166
  const { walletConnectProjectId } = useKryptosConnect();
2138
- const appKit = import_react28.default.useMemo(() => {
2167
+ const appKit = import_react29.default.useMemo(() => {
2139
2168
  if (!walletConnectProjectId) {
2140
2169
  console.warn(
2141
2170
  "walletConnectProjectId is missing in KryptosConnectProvider config"
@@ -2145,9 +2174,9 @@ var WalletConnectWrapper = ({ children }) => {
2145
2174
  return createAppKitInstance(walletConnectProjectId);
2146
2175
  }, [walletConnectProjectId]);
2147
2176
  if (!appKit) {
2148
- return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, children);
2177
+ return /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, children);
2149
2178
  }
2150
- return /* @__PURE__ */ import_react28.default.createElement(import_appkit_react_native2.AppKitProvider, { instance: appKit }, /* @__PURE__ */ import_react28.default.createElement(import_appkit_react_native2.AppKit, null), children);
2179
+ return /* @__PURE__ */ import_react29.default.createElement(import_appkit_react_native2.AppKitProvider, { instance: appKit }, /* @__PURE__ */ import_react29.default.createElement(import_appkit_react_native2.AppKit, null), children);
2151
2180
  };
2152
2181
  var wallet_connect_default = WalletConnectWrapper;
2153
2182
 
@@ -2164,23 +2193,23 @@ var WalletConnectComponent = ({
2164
2193
  const { walletConnectProjectId } = useKryptosConnect();
2165
2194
  const theme = useTheme();
2166
2195
  if (!walletConnectProjectId) {
2167
- return /* @__PURE__ */ import_react29.default.createElement(Modal, { isOpen: modalOpen, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react29.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, { style: styles13.headerContent }, /* @__PURE__ */ import_react29.default.createElement(
2168
- import_react_native14.TouchableOpacity,
2196
+ return /* @__PURE__ */ import_react30.default.createElement(Modal, { isOpen: modalOpen, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react30.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.headerContent }, /* @__PURE__ */ import_react30.default.createElement(
2197
+ import_react_native15.TouchableOpacity,
2169
2198
  {
2170
2199
  onPress: () => {
2171
2200
  setAddIntegrationMode(null);
2172
2201
  },
2173
2202
  style: styles13.backButton
2174
2203
  },
2175
- /* @__PURE__ */ import_react29.default.createElement(ArrowLeftIcon, { size: 20, color: theme.colors.text })
2176
- ), /* @__PURE__ */ import_react29.default.createElement(import_react_native14.Text, { style: [styles13.headerTitle, { color: theme.colors.text }] }, "Integration"))), /* @__PURE__ */ import_react29.default.createElement(ModalBody, { scrollable: false, style: styles13.contentContainer }, /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, { style: styles13.emptyState }, /* @__PURE__ */ import_react29.default.createElement(
2177
- import_react_native14.Text,
2204
+ /* @__PURE__ */ import_react30.default.createElement(ArrowLeftIcon, { size: 20, color: theme.colors.text })
2205
+ ), /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: [styles13.headerTitle, { color: theme.colors.text }] }, "Integration"))), /* @__PURE__ */ import_react30.default.createElement(ModalBody, { scrollable: false, style: styles13.contentContainer }, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.emptyState }, /* @__PURE__ */ import_react30.default.createElement(
2206
+ import_react_native15.Text,
2178
2207
  {
2179
2208
  style: [styles13.emptyStateTitle, { color: theme.colors.text }]
2180
2209
  },
2181
2210
  "WalletConnect is not configured"
2182
- ), /* @__PURE__ */ import_react29.default.createElement(
2183
- import_react_native14.Text,
2211
+ ), /* @__PURE__ */ import_react30.default.createElement(
2212
+ import_react_native15.Text,
2184
2213
  {
2185
2214
  style: [
2186
2215
  styles13.infoText,
@@ -2188,7 +2217,7 @@ var WalletConnectComponent = ({
2188
2217
  ]
2189
2218
  },
2190
2219
  "Please add a walletConnectProjectId to KryptosConnectProvider to enable wallet connections."
2191
- ), /* @__PURE__ */ import_react29.default.createElement(
2220
+ ), /* @__PURE__ */ import_react30.default.createElement(
2192
2221
  Button,
2193
2222
  {
2194
2223
  variant: "outline",
@@ -2199,7 +2228,7 @@ var WalletConnectComponent = ({
2199
2228
  "Go back"
2200
2229
  ))));
2201
2230
  }
2202
- return /* @__PURE__ */ import_react29.default.createElement(wallet_connect_default, null, /* @__PURE__ */ import_react29.default.createElement(
2231
+ return /* @__PURE__ */ import_react30.default.createElement(wallet_connect_default, null, /* @__PURE__ */ import_react30.default.createElement(
2203
2232
  ConnectButton,
2204
2233
  {
2205
2234
  integration,
@@ -2224,13 +2253,13 @@ function ConnectButton({
2224
2253
  const { open, disconnect } = (0, import_appkit_react_native3.useAppKit)();
2225
2254
  const { address, isConnected } = (0, import_appkit_react_native3.useAccount)();
2226
2255
  const { linkToken, user, clientId } = useKryptosConnect();
2227
- const [selectedChains, setSelectedChains] = (0, import_react29.useState)(/* @__PURE__ */ new Set());
2228
- const [errorMessage, setErrorMessage] = (0, import_react29.useState)("");
2229
- const [chainErrors, setChainErrors] = (0, import_react29.useState)({});
2230
- const [isLoading, setIsLoading] = (0, import_react29.useState)(false);
2231
- const [userUsedChains, setUserUsedChains] = (0, import_react29.useState)([]);
2232
- const [isFetchingChains, setIsFetchingChains] = (0, import_react29.useState)(false);
2233
- const availableChains = (0, import_react29.useMemo)(() => {
2256
+ const [selectedChains, setSelectedChains] = (0, import_react30.useState)(/* @__PURE__ */ new Set());
2257
+ const [errorMessage, setErrorMessage] = (0, import_react30.useState)("");
2258
+ const [chainErrors, setChainErrors] = (0, import_react30.useState)({});
2259
+ const [isLoading, setIsLoading] = (0, import_react30.useState)(false);
2260
+ const [userUsedChains, setUserUsedChains] = (0, import_react30.useState)([]);
2261
+ const [isFetchingChains, setIsFetchingChains] = (0, import_react30.useState)(false);
2262
+ const availableChains = (0, import_react30.useMemo)(() => {
2234
2263
  if (userUsedChains.length > 0) {
2235
2264
  return userUsedChains;
2236
2265
  }
@@ -2239,7 +2268,7 @@ function ConnectButton({
2239
2268
  }
2240
2269
  return [];
2241
2270
  }, [userUsedChains, integration.walletSupportedChains]);
2242
- (0, import_react29.useEffect)(() => {
2271
+ (0, import_react30.useEffect)(() => {
2243
2272
  if (!isConnected || !address || !address.trim()) {
2244
2273
  setUserUsedChains([]);
2245
2274
  setSelectedChains(/* @__PURE__ */ new Set());
@@ -2321,7 +2350,7 @@ function ConnectButton({
2321
2350
  const walletTestsPayload = chainsToProcess.map((chain) => {
2322
2351
  const walletId = generateUUID();
2323
2352
  const displaySuffix = address ? address?.length > 8 ? `${address.slice(0, 4)}...${address.slice(-4)}` : address : "";
2324
- const alias = `${chain.id} (${displaySuffix})`;
2353
+ const alias = `${integration.public_name} (${displaySuffix})`;
2325
2354
  const provider = providersList.find((p) => p.id === chain.id);
2326
2355
  return {
2327
2356
  chain,
@@ -2369,14 +2398,15 @@ function ConnectButton({
2369
2398
  clientId,
2370
2399
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
2371
2400
  },
2372
- metadata: {
2373
- environment: "sandbox"
2374
- },
2375
2401
  addedOn: (/* @__PURE__ */ new Date()).getTime(),
2376
- default_chain: provider.id,
2377
- default_chain_logo: null,
2378
- type: provider.type,
2379
- isNftSupported: provider.isEvmWallet || provider.nftSupport || false
2402
+ default_chain: integration?.id || "",
2403
+ default_chain_logo: integration?.logo || "",
2404
+ type: provider.type || "",
2405
+ isNftSupported: provider?.isEvmWallet || provider?.nftSupport || false,
2406
+ chainId: provider?.community_id,
2407
+ credsData: {
2408
+ address
2409
+ }
2380
2410
  };
2381
2411
  integrationsToAdd.push(data);
2382
2412
  } else {
@@ -2396,6 +2426,9 @@ function ConnectButton({
2396
2426
  }
2397
2427
  if (integrationsToAdd.length > 0) {
2398
2428
  onAddHandle(integrationsToAdd);
2429
+ if (isConnected) {
2430
+ disconnect();
2431
+ }
2399
2432
  setChainErrors({});
2400
2433
  setErrorMessage("");
2401
2434
  } else {
@@ -2425,16 +2458,35 @@ function ConnectButton({
2425
2458
  setChainErrors(newErrors);
2426
2459
  }
2427
2460
  };
2428
- return /* @__PURE__ */ import_react29.default.createElement(Modal, { isOpen: modalOpen, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react29.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, { style: styles13.headerContent }, /* @__PURE__ */ import_react29.default.createElement(
2429
- import_react_native14.TouchableOpacity,
2461
+ return /* @__PURE__ */ import_react30.default.createElement(Modal, { isOpen: modalOpen, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react30.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.headerContent }, /* @__PURE__ */ import_react30.default.createElement(
2462
+ import_react_native15.TouchableOpacity,
2430
2463
  {
2431
2464
  onPress: () => {
2432
2465
  setAddIntegrationMode(null);
2466
+ if (isConnected) {
2467
+ disconnect();
2468
+ }
2433
2469
  },
2434
2470
  style: styles13.backButton
2435
2471
  },
2436
- /* @__PURE__ */ import_react29.default.createElement(ArrowLeftIcon, { size: 20, color: theme.colors.text })
2437
- ), /* @__PURE__ */ import_react29.default.createElement(import_react_native14.Text, { style: [styles13.headerTitle, { color: theme.colors.text }] }, "Integration"))), /* @__PURE__ */ import_react29.default.createElement(ModalBody, { scrollable: false, style: styles13.contentContainer }, !isConnected ? /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, null, /* @__PURE__ */ import_react29.default.createElement(import_react_native14.Text, { style: [styles13.infoText, { color: theme.colors.text }] }, "Connect your wallet to continue"), /* @__PURE__ */ import_react29.default.createElement(
2472
+ /* @__PURE__ */ import_react30.default.createElement(ArrowLeftIcon, { size: 20, color: theme.colors.text })
2473
+ ), /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: [styles13.headerTitle, { color: theme.colors.text }] }, "Integration"))), /* @__PURE__ */ import_react30.default.createElement(ModalBody, { scrollable: false, style: styles13.contentContainer }, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.header }, integration.logo ? isSvgUrl(integration.logo) ? /* @__PURE__ */ import_react30.default.createElement(RemoteSvg, { uri: integration.logo }) : /* @__PURE__ */ import_react30.default.createElement(
2474
+ import_react_native15.Image,
2475
+ {
2476
+ source: { uri: integration.logo },
2477
+ style: styles13.logo,
2478
+ resizeMode: "contain"
2479
+ }
2480
+ ) : /* @__PURE__ */ import_react30.default.createElement(
2481
+ import_react_native15.View,
2482
+ {
2483
+ style: [
2484
+ styles13.logoPlaceholder,
2485
+ { backgroundColor: theme.colors.surface }
2486
+ ]
2487
+ },
2488
+ /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: { color: theme.colors.text } }, integration.name?.charAt(0) || "?")
2489
+ ), /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: [styles13.name, { color: theme.colors.text }] }, integration.name)), !isConnected ? /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, null, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: [styles13.infoText, { color: theme.colors.text }] }, "Connect your wallet to continue"), /* @__PURE__ */ import_react30.default.createElement(
2438
2490
  Button,
2439
2491
  {
2440
2492
  variant: "primary",
@@ -2442,46 +2494,46 @@ function ConnectButton({
2442
2494
  onPress: () => open({ view: "Connect" })
2443
2495
  },
2444
2496
  "Connect Wallet"
2445
- )) : /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, { style: styles13.connectedContainer }, /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, { style: styles13.connectedHeader }, /* @__PURE__ */ import_react29.default.createElement(
2446
- import_react_native14.Text,
2497
+ )) : /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.connectedContainer }, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.connectedHeader }, /* @__PURE__ */ import_react30.default.createElement(
2498
+ import_react_native15.Text,
2447
2499
  {
2448
2500
  style: [styles13.connectedTitle, { color: theme.colors.text }]
2449
2501
  },
2450
2502
  "Wallet Connected"
2451
- ), /* @__PURE__ */ import_react29.default.createElement(
2452
- import_react_native14.Text,
2503
+ ), /* @__PURE__ */ import_react30.default.createElement(
2504
+ import_react_native15.Text,
2453
2505
  {
2454
2506
  style: [styles13.connectedText, { color: theme.colors.text }]
2455
2507
  },
2456
2508
  "Address: ",
2457
2509
  address
2458
- ), /* @__PURE__ */ import_react29.default.createElement(Button, { variant: "ghost", size: "sm", onPress: () => disconnect() }, "Disconnect Wallet"), isFetchingChains ? /* @__PURE__ */ import_react29.default.createElement(
2459
- import_react_native14.Text,
2510
+ ), /* @__PURE__ */ import_react30.default.createElement(Button, { variant: "ghost", size: "sm", onPress: () => disconnect() }, "Disconnect Wallet"), isFetchingChains ? /* @__PURE__ */ import_react30.default.createElement(
2511
+ import_react_native15.Text,
2460
2512
  {
2461
2513
  style: [styles13.fetchingText, { color: theme.colors.text }]
2462
2514
  },
2463
2515
  "Fetching chains..."
2464
- ) : null), availableChains.length > 0 && address && /* @__PURE__ */ import_react29.default.createElement(
2465
- import_react_native14.ScrollView,
2516
+ ) : null), availableChains.length > 0 && address && /* @__PURE__ */ import_react30.default.createElement(
2517
+ import_react_native15.ScrollView,
2466
2518
  {
2467
2519
  style: styles13.scrollView,
2468
2520
  contentContainerStyle: styles13.scrollViewContent,
2469
2521
  showsVerticalScrollIndicator: true,
2470
2522
  nestedScrollEnabled: true
2471
2523
  },
2472
- /* @__PURE__ */ import_react29.default.createElement(import_react_native14.Text, { style: [styles13.chainTitle, { color: theme.colors.text }] }, "Select Chains to Add:"),
2473
- /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, null, /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, { style: styles13.chainChips }, availableChains.map((chain) => {
2524
+ /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: [styles13.chainTitle, { color: theme.colors.text }] }, "Select Chains to Add:"),
2525
+ /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, null, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.chainChips }, availableChains.map((chain) => {
2474
2526
  const isSelected = selectedChains.has(chain.id);
2475
2527
  const hasError = chainErrors[chain.id];
2476
- return /* @__PURE__ */ import_react29.default.createElement(
2477
- import_react_native14.TouchableOpacity,
2528
+ return /* @__PURE__ */ import_react30.default.createElement(
2529
+ import_react_native15.TouchableOpacity,
2478
2530
  {
2479
2531
  onPress: () => toggleChainSelection(chain.id),
2480
2532
  style: styles13.chainButton,
2481
2533
  key: chain.id
2482
2534
  },
2483
- /* @__PURE__ */ import_react29.default.createElement(
2484
- import_react_native14.View,
2535
+ /* @__PURE__ */ import_react30.default.createElement(
2536
+ import_react_native15.View,
2485
2537
  {
2486
2538
  style: [
2487
2539
  styles13.chainChip,
@@ -2491,8 +2543,8 @@ function ConnectButton({
2491
2543
  }
2492
2544
  ]
2493
2545
  },
2494
- /* @__PURE__ */ import_react29.default.createElement(
2495
- import_react_native14.Text,
2546
+ /* @__PURE__ */ import_react30.default.createElement(
2547
+ import_react_native15.Text,
2496
2548
  {
2497
2549
  style: [
2498
2550
  styles13.chainName,
@@ -2503,13 +2555,13 @@ function ConnectButton({
2503
2555
  },
2504
2556
  chain.id
2505
2557
  ),
2506
- isSelected ? /* @__PURE__ */ import_react29.default.createElement(
2558
+ isSelected ? /* @__PURE__ */ import_react30.default.createElement(
2507
2559
  CloseIcon,
2508
2560
  {
2509
2561
  size: 12,
2510
2562
  color: hasError ? theme.colors.error : theme.colors.primary
2511
2563
  }
2512
- ) : /* @__PURE__ */ import_react29.default.createElement(
2564
+ ) : /* @__PURE__ */ import_react30.default.createElement(
2513
2565
  PlusIcon,
2514
2566
  {
2515
2567
  size: 12,
@@ -2518,8 +2570,8 @@ function ConnectButton({
2518
2570
  )
2519
2571
  )
2520
2572
  );
2521
- })), errorMessage ? /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, { style: styles13.errorMessageContainer }, /* @__PURE__ */ import_react29.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react29.default.createElement(AlertDescription, null, errorMessage))) : null, Object.keys(chainErrors || {}).length > 0 && /* @__PURE__ */ import_react29.default.createElement(import_react_native14.View, { style: styles13.chainErrorsContainer }, /* @__PURE__ */ import_react29.default.createElement(
2522
- import_react_native14.Text,
2573
+ })), errorMessage ? /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.errorMessageContainer }, /* @__PURE__ */ import_react30.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react30.default.createElement(AlertDescription, null, errorMessage))) : null, Object.keys(chainErrors || {}).length > 0 && /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles13.chainErrorsContainer }, /* @__PURE__ */ import_react30.default.createElement(
2574
+ import_react_native15.Text,
2523
2575
  {
2524
2576
  style: [
2525
2577
  styles13.chainErrorsTitle,
@@ -2531,8 +2583,8 @@ function ConnectButton({
2531
2583
  const chain = availableChains.find(
2532
2584
  (c) => c.id === chainId
2533
2585
  );
2534
- return /* @__PURE__ */ import_react29.default.createElement(
2535
- import_react_native14.Text,
2586
+ return /* @__PURE__ */ import_react30.default.createElement(
2587
+ import_react_native15.Text,
2536
2588
  {
2537
2589
  key: chainId,
2538
2590
  style: [
@@ -2546,7 +2598,7 @@ function ConnectButton({
2546
2598
  String(error)
2547
2599
  );
2548
2600
  })))
2549
- ))), availableChains.length > 0 && address && /* @__PURE__ */ import_react29.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react29.default.createElement(
2601
+ ))), availableChains.length > 0 && address && /* @__PURE__ */ import_react30.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react30.default.createElement(
2550
2602
  Button,
2551
2603
  {
2552
2604
  variant: "outline",
@@ -2557,9 +2609,9 @@ function ConnectButton({
2557
2609
  style: styles13.button
2558
2610
  },
2559
2611
  selectedChains.size > 0 ? `Add ${selectedChains.size} Chain${selectedChains.size > 1 ? "s" : ""}` : "Add Integration"
2560
- ), /* @__PURE__ */ import_react29.default.createElement(Footer, null)));
2612
+ ), /* @__PURE__ */ import_react30.default.createElement(Footer, null)));
2561
2613
  }
2562
- var styles13 = import_react_native14.StyleSheet.create({
2614
+ var styles13 = import_react_native15.StyleSheet.create({
2563
2615
  connectedContainer: {
2564
2616
  flex: 1
2565
2617
  },
@@ -2675,12 +2727,41 @@ var styles13 = import_react_native14.StyleSheet.create({
2675
2727
  },
2676
2728
  emptyStateButton: {
2677
2729
  marginTop: 8
2730
+ },
2731
+ header: {
2732
+ flexDirection: "row",
2733
+ justifyContent: "center",
2734
+ alignItems: "center",
2735
+ marginBottom: 16
2736
+ // theme.spacing.lg
2737
+ },
2738
+ logo: {
2739
+ width: 32,
2740
+ height: 32,
2741
+ borderRadius: 8
2742
+ // theme.borderRadius.sm
2743
+ },
2744
+ logoPlaceholder: {
2745
+ width: 32,
2746
+ height: 32,
2747
+ borderRadius: 8,
2748
+ // theme.borderRadius.sm
2749
+ alignItems: "center",
2750
+ justifyContent: "center"
2751
+ },
2752
+ name: {
2753
+ fontSize: 16,
2754
+ // theme.fontSize.lg
2755
+ fontWeight: "600",
2756
+ marginLeft: 12,
2757
+ // theme.spacing.md
2758
+ textTransform: "capitalize"
2678
2759
  }
2679
2760
  });
2680
2761
 
2681
2762
  // src/molecules/IntegrationForm.tsx
2682
- var import_react30 = __toESM(require("react"));
2683
- var import_react_native15 = require("react-native");
2763
+ var import_react31 = __toESM(require("react"));
2764
+ var import_react_native16 = require("react-native");
2684
2765
  var IntegrationForm = ({
2685
2766
  metadata,
2686
2767
  onAddHandle,
@@ -2691,25 +2772,25 @@ var IntegrationForm = ({
2691
2772
  }) => {
2692
2773
  const { clientId, linkToken, user } = useKryptosConnect();
2693
2774
  const theme = useTheme();
2694
- const [isLoading, setIsLoading] = import_react30.default.useState(false);
2695
- const [isFetchingChains, setIsFetchingChains] = import_react30.default.useState(false);
2696
- const [userUsedChains, setUserUsedChains] = import_react30.default.useState([]);
2697
- const [selectedChains, setSelectedChains] = import_react30.default.useState(
2775
+ const [isLoading, setIsLoading] = import_react31.default.useState(false);
2776
+ const [isFetchingChains, setIsFetchingChains] = import_react31.default.useState(false);
2777
+ const [userUsedChains, setUserUsedChains] = import_react31.default.useState([]);
2778
+ const [selectedChains, setSelectedChains] = import_react31.default.useState(
2698
2779
  /* @__PURE__ */ new Set()
2699
2780
  );
2700
- const [chainErrors, setChainErrors] = import_react30.default.useState(
2781
+ const [chainErrors, setChainErrors] = import_react31.default.useState(
2701
2782
  {}
2702
2783
  );
2703
- const [errorMessage, setErrorMessage] = import_react30.default.useState("");
2704
- const [formValues, setFormValues] = import_react30.default.useState({
2784
+ const [errorMessage, setErrorMessage] = import_react31.default.useState("");
2785
+ const [formValues, setFormValues] = import_react31.default.useState({
2705
2786
  address: "",
2706
2787
  account_name: "",
2707
2788
  api_key: "",
2708
2789
  secret_key: "",
2709
2790
  password: ""
2710
2791
  });
2711
- const [formErrors, setFormErrors] = import_react30.default.useState({});
2712
- import_react30.default.useEffect(() => {
2792
+ const [formErrors, setFormErrors] = import_react31.default.useState({});
2793
+ import_react31.default.useEffect(() => {
2713
2794
  if (!formValues.address || !formValues.address.trim()) {
2714
2795
  setUserUsedChains([]);
2715
2796
  setSelectedChains(/* @__PURE__ */ new Set());
@@ -2835,9 +2916,6 @@ var IntegrationForm = ({
2835
2916
  clientId,
2836
2917
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
2837
2918
  },
2838
- metadata: {
2839
- environment: "sandbox"
2840
- },
2841
2919
  addedOn: (/* @__PURE__ */ new Date()).getTime(),
2842
2920
  default_chain: chain.name,
2843
2921
  default_chain_logo: chain.logo || null,
@@ -2956,24 +3034,24 @@ var IntegrationForm = ({
2956
3034
  };
2957
3035
  const hasNoFields = !metadata.password && !metadata.secret_key && !metadata.api_key && !metadata.address && !metadata.account_name;
2958
3036
  const shouldShowFormFields = metadata.password || metadata.secret_key || metadata.api_key || metadata.address || metadata.account_name;
2959
- const renderLogo = () => metadata.logo ? /* @__PURE__ */ import_react30.default.createElement(
2960
- import_react_native15.Image,
3037
+ const renderLogo = () => metadata.logo ? isSvgUrl(metadata.logo) ? /* @__PURE__ */ import_react31.default.createElement(RemoteSvg, { uri: metadata.logo }) : /* @__PURE__ */ import_react31.default.createElement(
3038
+ import_react_native16.Image,
2961
3039
  {
2962
3040
  source: { uri: metadata.logo },
2963
3041
  style: styles14.logo,
2964
3042
  resizeMode: "contain"
2965
3043
  }
2966
- ) : /* @__PURE__ */ import_react30.default.createElement(
2967
- import_react_native15.View,
3044
+ ) : /* @__PURE__ */ import_react31.default.createElement(
3045
+ import_react_native16.View,
2968
3046
  {
2969
3047
  style: [
2970
3048
  styles14.logoPlaceholder,
2971
3049
  { backgroundColor: theme.colors.surface }
2972
3050
  ]
2973
3051
  },
2974
- /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: { color: theme.colors.text } }, metadata.name?.charAt(0) || "?")
3052
+ /* @__PURE__ */ import_react31.default.createElement(import_react_native16.Text, { style: { color: theme.colors.text } }, metadata.name?.charAt(0) || "?")
2975
3053
  );
2976
- const renderInput = (key, props) => /* @__PURE__ */ import_react30.default.createElement(
3054
+ const renderInput = (key, props) => /* @__PURE__ */ import_react31.default.createElement(
2977
3055
  Input,
2978
3056
  {
2979
3057
  placeholder: props.placeholder,
@@ -2985,19 +3063,19 @@ var IntegrationForm = ({
2985
3063
  secureTextEntry: props.secureTextEntry
2986
3064
  }
2987
3065
  );
2988
- const renderErrorAlert = () => errorMessage ? /* @__PURE__ */ import_react30.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react30.default.createElement(AlertDescription, null, errorMessage)) : null;
2989
- const renderChainSelection = () => userUsedChains.length > 0 && formValues.address && /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles14.chainSelection }, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: [styles14.chainTitle, { color: theme.colors.text }] }, "Select Chains to Add:"), /* @__PURE__ */ import_react30.default.createElement(import_react_native15.ScrollView, { contentContainerStyle: styles14.scrollViewContent }, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles14.chainChips }, userUsedChains.map((chain) => {
3066
+ const renderErrorAlert = () => errorMessage ? /* @__PURE__ */ import_react31.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react31.default.createElement(AlertDescription, null, errorMessage)) : null;
3067
+ const renderChainSelection = () => userUsedChains.length > 0 && formValues.address && /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles14.chainSelection }, /* @__PURE__ */ import_react31.default.createElement(import_react_native16.Text, { style: [styles14.chainTitle, { color: theme.colors.text }] }, "Select Chains to Add:"), /* @__PURE__ */ import_react31.default.createElement(import_react_native16.ScrollView, { contentContainerStyle: styles14.scrollViewContent }, /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles14.chainChips }, userUsedChains.map((chain) => {
2990
3068
  const isSelected = selectedChains.has(chain.id);
2991
3069
  const hasError = chainErrors[chain.id];
2992
- return /* @__PURE__ */ import_react30.default.createElement(
2993
- import_react_native15.TouchableOpacity,
3070
+ return /* @__PURE__ */ import_react31.default.createElement(
3071
+ import_react_native16.TouchableOpacity,
2994
3072
  {
2995
3073
  onPress: () => toggleChainSelection(chain.id),
2996
3074
  style: styles14.chainButton,
2997
3075
  key: chain.id
2998
3076
  },
2999
- /* @__PURE__ */ import_react30.default.createElement(
3000
- import_react_native15.View,
3077
+ /* @__PURE__ */ import_react31.default.createElement(
3078
+ import_react_native16.View,
3001
3079
  {
3002
3080
  style: [
3003
3081
  styles14.chainChip,
@@ -3007,8 +3085,8 @@ var IntegrationForm = ({
3007
3085
  }
3008
3086
  ]
3009
3087
  },
3010
- /* @__PURE__ */ import_react30.default.createElement(
3011
- import_react_native15.Text,
3088
+ /* @__PURE__ */ import_react31.default.createElement(
3089
+ import_react_native16.Text,
3012
3090
  {
3013
3091
  style: [
3014
3092
  styles14.chainName,
@@ -3019,25 +3097,25 @@ var IntegrationForm = ({
3019
3097
  },
3020
3098
  chain.name
3021
3099
  ),
3022
- isSelected ? /* @__PURE__ */ import_react30.default.createElement(
3100
+ isSelected ? /* @__PURE__ */ import_react31.default.createElement(
3023
3101
  CloseIcon,
3024
3102
  {
3025
3103
  size: 12,
3026
3104
  color: hasError ? theme.colors.error : theme.colors.primary
3027
3105
  }
3028
- ) : /* @__PURE__ */ import_react30.default.createElement(PlusIcon, { size: 12, color: theme.colors.textSecondary })
3106
+ ) : /* @__PURE__ */ import_react31.default.createElement(PlusIcon, { size: 12, color: theme.colors.textSecondary })
3029
3107
  )
3030
3108
  );
3031
- }))), Object.keys(chainErrors).length > 0 && /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles14.chainErrorsContainer }, /* @__PURE__ */ import_react30.default.createElement(
3032
- import_react_native15.Text,
3109
+ }))), Object.keys(chainErrors).length > 0 && /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles14.chainErrorsContainer }, /* @__PURE__ */ import_react31.default.createElement(
3110
+ import_react_native16.Text,
3033
3111
  {
3034
3112
  style: [styles14.chainErrorsTitle, { color: theme.colors.error }]
3035
3113
  },
3036
3114
  "Errors:"
3037
3115
  ), Object.entries(chainErrors).map(([chainId, error]) => {
3038
3116
  const chain = userUsedChains.find((c) => c.id === chainId);
3039
- return /* @__PURE__ */ import_react30.default.createElement(
3040
- import_react_native15.Text,
3117
+ return /* @__PURE__ */ import_react31.default.createElement(
3118
+ import_react_native16.Text,
3041
3119
  {
3042
3120
  key: chainId,
3043
3121
  style: [styles14.chainErrorItem, { color: theme.colors.error }]
@@ -3048,7 +3126,7 @@ var IntegrationForm = ({
3048
3126
  error
3049
3127
  );
3050
3128
  })));
3051
- const renderFormBlock = () => /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles14.header }, renderLogo(), /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: [styles14.name, { color: theme.colors.text }] }, metadata.name)), renderErrorAlert(), shouldShowFormFields && /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, metadata.address && /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, renderInput("address", {
3129
+ const renderFormBlock = () => /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles14.header }, renderLogo(), /* @__PURE__ */ import_react31.default.createElement(import_react_native16.Text, { style: [styles14.name, { color: theme.colors.text }] }, metadata.name)), renderErrorAlert(), shouldShowFormFields && /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, metadata.address && /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, renderInput("address", {
3052
3130
  placeholder: "Enter address",
3053
3131
  autoCapitalize: "none",
3054
3132
  autoCorrect: false
@@ -3064,16 +3142,16 @@ var IntegrationForm = ({
3064
3142
  }), metadata.password && renderInput("password", {
3065
3143
  placeholder: "Enter Password",
3066
3144
  secureTextEntry: true
3067
- })), hasNoFields && !metadata?.isWalletConnectSupported && /* @__PURE__ */ import_react30.default.createElement(Alert, { variant: "default", style: { marginTop: 12 } }, /* @__PURE__ */ import_react30.default.createElement(AlertDescription, null, "This integration is not supported here yet \u2014 try using it through our Kryptos Platform.")));
3145
+ })), hasNoFields && !metadata?.isWalletConnectSupported && /* @__PURE__ */ import_react31.default.createElement(Alert, { variant: "default", style: { marginTop: 12 } }, /* @__PURE__ */ import_react31.default.createElement(AlertDescription, null, "This integration is not supported here yet \u2014 try using it through our Kryptos Platform.")));
3068
3146
  const addIntegrationLabel = formValues.address && userUsedChains.length > 0 && selectedChains.size > 0 ? `Add ${selectedChains.size} Chain${selectedChains.size !== 1 ? "s" : ""}` : "Add Integration";
3069
- return /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, !metadata?.isWalletConnectSupported ? /* @__PURE__ */ import_react30.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react30.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react30.default.createElement(import_react_native15.View, { style: styles14.headerContent }, /* @__PURE__ */ import_react30.default.createElement(
3070
- import_react_native15.TouchableOpacity,
3147
+ return /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, !metadata?.isWalletConnectSupported ? /* @__PURE__ */ import_react31.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react31.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles14.headerContent }, /* @__PURE__ */ import_react31.default.createElement(
3148
+ import_react_native16.TouchableOpacity,
3071
3149
  {
3072
3150
  onPress: () => setAddIntegrationMode(null),
3073
3151
  style: styles14.backButton
3074
3152
  },
3075
- /* @__PURE__ */ import_react30.default.createElement(ArrowLeftIcon, { size: 20, color: theme.colors.text })
3076
- ), /* @__PURE__ */ import_react30.default.createElement(import_react_native15.Text, { style: [styles14.headerTitle, { color: theme.colors.text }] }, "Integration"))), /* @__PURE__ */ import_react30.default.createElement(ModalBody, { scrollable: false, style: styles14.contentContainer }, renderFormBlock()), !hasNoFields && /* @__PURE__ */ import_react30.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react30.default.createElement(
3153
+ /* @__PURE__ */ import_react31.default.createElement(ArrowLeftIcon, { size: 20, color: theme.colors.text })
3154
+ ), /* @__PURE__ */ import_react31.default.createElement(import_react_native16.Text, { style: [styles14.headerTitle, { color: theme.colors.text }] }, "Integration"))), /* @__PURE__ */ import_react31.default.createElement(ModalBody, { scrollable: false, style: styles14.contentContainer }, renderFormBlock()), !hasNoFields && /* @__PURE__ */ import_react31.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react31.default.createElement(
3077
3155
  Button,
3078
3156
  {
3079
3157
  variant: "outline",
@@ -3084,7 +3162,7 @@ var IntegrationForm = ({
3084
3162
  style: styles14.button
3085
3163
  },
3086
3164
  addIntegrationLabel
3087
- ), /* @__PURE__ */ import_react30.default.createElement(Footer, null))) : /* @__PURE__ */ import_react30.default.createElement(
3165
+ ), /* @__PURE__ */ import_react31.default.createElement(Footer, null))) : /* @__PURE__ */ import_react31.default.createElement(
3088
3166
  WalletConnectComponent,
3089
3167
  {
3090
3168
  integration: metadata,
@@ -3097,7 +3175,7 @@ var IntegrationForm = ({
3097
3175
  }
3098
3176
  ));
3099
3177
  };
3100
- var styles14 = import_react_native15.StyleSheet.create({
3178
+ var styles14 = import_react_native16.StyleSheet.create({
3101
3179
  scrollViewContent: {
3102
3180
  flexGrow: 1,
3103
3181
  paddingBottom: 100
@@ -3226,14 +3304,14 @@ var Integration = ({
3226
3304
  }) => {
3227
3305
  const { appName, linkToken } = useKryptosConnect();
3228
3306
  const theme = useTheme();
3229
- const [addIntegrationMode, setAddIntegrationMode] = import_react31.default.useState(null);
3230
- const [query, setQuery] = import_react31.default.useState("");
3231
- const [activeTab, setActiveTab] = import_react31.default.useState("all");
3232
- const [supportedProviders, setSupportedProviders] = import_react31.default.useState([]);
3233
- const [addedIntegrations, setAddedIntegrations] = import_react31.default.useState([]);
3234
- const [existingIntegrations, setExistingIntegrations] = import_react31.default.useState([]);
3235
- const [isLoading, setIsLoading] = import_react31.default.useState(false);
3236
- const [errorMessage, setErrorMessage] = import_react31.default.useState("");
3307
+ const [addIntegrationMode, setAddIntegrationMode] = import_react32.default.useState(null);
3308
+ const [query, setQuery] = import_react32.default.useState("");
3309
+ const [activeTab, setActiveTab] = import_react32.default.useState("all");
3310
+ const [supportedProviders, setSupportedProviders] = import_react32.default.useState([]);
3311
+ const [addedIntegrations, setAddedIntegrations] = import_react32.default.useState([]);
3312
+ const [existingIntegrations, setExistingIntegrations] = import_react32.default.useState([]);
3313
+ const [isLoading, setIsLoading] = import_react32.default.useState(false);
3314
+ const [errorMessage, setErrorMessage] = import_react32.default.useState("");
3237
3315
  const handleClose = () => {
3238
3316
  onClose();
3239
3317
  };
@@ -3264,13 +3342,13 @@ var Integration = ({
3264
3342
  setIsLoading(false);
3265
3343
  }
3266
3344
  };
3267
- import_react31.default.useEffect(() => {
3345
+ import_react32.default.useEffect(() => {
3268
3346
  if (linkToken) {
3269
3347
  fetchSupportedProviders();
3270
3348
  fetchExistingIntegrations();
3271
3349
  }
3272
3350
  }, [linkToken]);
3273
- const isIntegrationAdded = import_react31.default.useCallback(
3351
+ const isIntegrationAdded = import_react32.default.useCallback(
3274
3352
  (publicName) => {
3275
3353
  const integrations = [...addedIntegrations, ...existingIntegrations];
3276
3354
  return integrations.some(
@@ -3279,7 +3357,7 @@ var Integration = ({
3279
3357
  },
3280
3358
  [addedIntegrations, existingIntegrations]
3281
3359
  );
3282
- const getIntegrationCount = import_react31.default.useCallback(
3360
+ const getIntegrationCount = import_react32.default.useCallback(
3283
3361
  (publicName) => {
3284
3362
  const integrations = [...addedIntegrations, ...existingIntegrations];
3285
3363
  return integrations.filter(
@@ -3288,7 +3366,7 @@ var Integration = ({
3288
3366
  },
3289
3367
  [addedIntegrations, existingIntegrations]
3290
3368
  );
3291
- const filteredResults = import_react31.default.useMemo(() => {
3369
+ const filteredResults = import_react32.default.useMemo(() => {
3292
3370
  let filtered = supportedProviders;
3293
3371
  if (activeTab !== "all") {
3294
3372
  filtered = filtered.filter((provider) => provider.type === activeTab);
@@ -3328,8 +3406,8 @@ var Integration = ({
3328
3406
  setIsLoading(false);
3329
3407
  }
3330
3408
  };
3331
- const renderProviderItem = ({ item }) => /* @__PURE__ */ import_react31.default.createElement(
3332
- import_react_native16.TouchableOpacity,
3409
+ const renderProviderItem = ({ item }) => /* @__PURE__ */ import_react32.default.createElement(
3410
+ import_react_native17.TouchableOpacity,
3333
3411
  {
3334
3412
  style: [
3335
3413
  styles15.providerItem,
@@ -3341,25 +3419,25 @@ var Integration = ({
3341
3419
  onPress: () => setAddIntegrationMode(item),
3342
3420
  activeOpacity: 0.7
3343
3421
  },
3344
- /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles15.providerInfo }, item?.logo ? /* @__PURE__ */ import_react31.default.createElement(
3345
- import_react_native16.Image,
3422
+ /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles15.providerInfo }, item?.logo ? isSvgUrl(item?.logo) ? /* @__PURE__ */ import_react32.default.createElement(RemoteSvg, { uri: item?.logo }) : /* @__PURE__ */ import_react32.default.createElement(
3423
+ import_react_native17.Image,
3346
3424
  {
3347
3425
  source: { uri: item?.logo },
3348
3426
  style: styles15.providerLogo,
3349
3427
  resizeMode: "contain"
3350
3428
  }
3351
- ) : /* @__PURE__ */ import_react31.default.createElement(
3352
- import_react_native16.View,
3429
+ ) : /* @__PURE__ */ import_react32.default.createElement(
3430
+ import_react_native17.View,
3353
3431
  {
3354
3432
  style: [
3355
3433
  styles15.providerLogoPlaceholder,
3356
3434
  { backgroundColor: theme.colors.surfaceSecondary }
3357
3435
  ]
3358
3436
  },
3359
- /* @__PURE__ */ import_react31.default.createElement(import_react_native16.Text, { style: { color: theme.colors.text } }, item?.name?.charAt(0) || "?")
3360
- ), /* @__PURE__ */ import_react31.default.createElement(import_react_native16.Text, { style: [styles15.providerName, { color: theme.colors.text }] }, item?.name + "\u200B")),
3361
- isIntegrationAdded(item?.public_name) && /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles15.providerStatus }, /* @__PURE__ */ import_react31.default.createElement(CheckCircleIcon, { size: 18, color: theme.colors.success }), /* @__PURE__ */ import_react31.default.createElement(
3362
- import_react_native16.Text,
3437
+ /* @__PURE__ */ import_react32.default.createElement(import_react_native17.Text, { style: { color: theme.colors.text } }, item?.name?.charAt(0) || "?")
3438
+ ), /* @__PURE__ */ import_react32.default.createElement(import_react_native17.Text, { style: [styles15.providerName, { color: theme.colors.text }] }, item?.name + "\u200B")),
3439
+ isIntegrationAdded(item?.public_name) && /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles15.providerStatus }, /* @__PURE__ */ import_react32.default.createElement(CheckCircleIcon, { size: 18, color: theme.colors.success }), /* @__PURE__ */ import_react32.default.createElement(
3440
+ import_react_native17.Text,
3363
3441
  {
3364
3442
  style: [
3365
3443
  styles15.providerCount,
@@ -3369,16 +3447,70 @@ var Integration = ({
3369
3447
  getIntegrationCount(item?.public_name)
3370
3448
  ))
3371
3449
  );
3372
- const renderSkeletonItem = () => /* @__PURE__ */ import_react31.default.createElement(SkeletonItem_default, null);
3373
- return /* @__PURE__ */ import_react31.default.createElement(import_react31.default.Fragment, null, !addIntegrationMode ? /* @__PURE__ */ import_react31.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react31.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles15.headerContent }, addIntegrationMode && /* @__PURE__ */ import_react31.default.createElement(
3374
- import_react_native16.TouchableOpacity,
3450
+ const renderSkeletonItem = () => /* @__PURE__ */ import_react32.default.createElement(SkeletonItem_default, null);
3451
+ return /* @__PURE__ */ import_react32.default.createElement(import_react32.default.Fragment, null, !addIntegrationMode ? /* @__PURE__ */ import_react32.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "full" }, /* @__PURE__ */ import_react32.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles15.headerContent }, addIntegrationMode && /* @__PURE__ */ import_react32.default.createElement(
3452
+ import_react_native17.TouchableOpacity,
3375
3453
  {
3376
3454
  onPress: () => setAddIntegrationMode(null),
3377
3455
  style: styles15.backButton
3378
3456
  },
3379
- /* @__PURE__ */ import_react31.default.createElement(ArrowLeftIcon, { size: 20, color: theme.colors.text })
3380
- ), /* @__PURE__ */ import_react31.default.createElement(import_react_native16.Text, { style: [styles15.headerTitle, { color: theme.colors.text }] }, "Integration"))), /* @__PURE__ */ import_react31.default.createElement(ModalBody, { scrollable: false, style: styles15.noPadding }, /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles15.container }, /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles15.headerSection }, /* @__PURE__ */ import_react31.default.createElement(ConnectLogo, null), /* @__PURE__ */ import_react31.default.createElement(import_react_native16.Text, { style: [styles15.title, { color: theme.colors.text }] }, "Select an account to link to ", appName)), /* @__PURE__ */ import_react31.default.createElement(
3381
- import_react_native16.FlatList,
3457
+ /* @__PURE__ */ import_react32.default.createElement(ArrowLeftIcon, { size: 20, color: theme.colors.text })
3458
+ ), /* @__PURE__ */ import_react32.default.createElement(import_react_native17.Text, { style: [styles15.headerTitle, { color: theme.colors.text }] }, "Integration"))), /* @__PURE__ */ import_react32.default.createElement(ModalBody, { scrollable: false, style: styles15.noPadding }, /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles15.container }, /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles15.headerSection }, /* @__PURE__ */ import_react32.default.createElement(ConnectLogo, null), /* @__PURE__ */ import_react32.default.createElement(import_react_native17.Text, { style: [styles15.title, { color: theme.colors.text }] }, "Select an account to link to ", appName)), /* @__PURE__ */ import_react32.default.createElement(
3459
+ import_react_native17.View,
3460
+ {
3461
+ style: {
3462
+ paddingHorizontal: theme.spacing.xl,
3463
+ paddingVertical: theme.spacing.sm + 2,
3464
+ backgroundColor: theme.colors.background,
3465
+ zIndex: 10
3466
+ }
3467
+ },
3468
+ /* @__PURE__ */ import_react32.default.createElement(
3469
+ Input,
3470
+ {
3471
+ value: query,
3472
+ onChangeText: setQuery,
3473
+ placeholder: "Search Integrations...",
3474
+ containerStyle: styles15.searchInput
3475
+ }
3476
+ ),
3477
+ /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles15.tabsContainer }, [
3478
+ { label: "All", value: "all" },
3479
+ { label: "Exchanges", value: "exchange" },
3480
+ { label: "Blockchains", value: "blockchain" },
3481
+ { label: "Wallets", value: "wallet" }
3482
+ ].map((tab) => /* @__PURE__ */ import_react32.default.createElement(
3483
+ import_react_native17.TouchableOpacity,
3484
+ {
3485
+ key: tab.value,
3486
+ style: [
3487
+ styles15.tab,
3488
+ {
3489
+ backgroundColor: activeTab === tab.value ? theme.colors.primary : theme.colors.surface,
3490
+ borderColor: theme.colors.border
3491
+ }
3492
+ ],
3493
+ onPress: () => {
3494
+ setActiveTab(
3495
+ tab.value
3496
+ );
3497
+ }
3498
+ },
3499
+ /* @__PURE__ */ import_react32.default.createElement(
3500
+ import_react_native17.Text,
3501
+ {
3502
+ style: [
3503
+ styles15.tabText,
3504
+ {
3505
+ color: activeTab === tab.value ? theme.colors.white : theme.colors.text
3506
+ }
3507
+ ]
3508
+ },
3509
+ tab.label
3510
+ )
3511
+ )))
3512
+ ), /* @__PURE__ */ import_react32.default.createElement(
3513
+ import_react_native17.FlatList,
3382
3514
  {
3383
3515
  data: isLoading ? Array.from({ length: 8 }, (_, i) => ({
3384
3516
  id: `skeleton-${i}`,
@@ -3394,62 +3526,8 @@ var Integration = ({
3394
3526
  { paddingHorizontal: theme.spacing.xl }
3395
3527
  ],
3396
3528
  showsVerticalScrollIndicator: false,
3397
- ListHeaderComponent: /* @__PURE__ */ import_react31.default.createElement(
3398
- import_react_native16.View,
3399
- {
3400
- style: {
3401
- paddingVertical: theme.spacing.sm + 2,
3402
- backgroundColor: theme.colors.background,
3403
- zIndex: 10
3404
- }
3405
- },
3406
- /* @__PURE__ */ import_react31.default.createElement(
3407
- Input,
3408
- {
3409
- value: query,
3410
- onChangeText: setQuery,
3411
- placeholder: "Search Integrations...",
3412
- containerStyle: styles15.searchInput
3413
- }
3414
- ),
3415
- /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles15.tabsContainer }, [
3416
- { label: "All", value: "all" },
3417
- { label: "Exchanges", value: "exchange" },
3418
- { label: "Blockchains", value: "blockchain" },
3419
- { label: "Wallets", value: "wallet" }
3420
- ].map((tab) => /* @__PURE__ */ import_react31.default.createElement(
3421
- import_react_native16.TouchableOpacity,
3422
- {
3423
- key: tab.value,
3424
- style: [
3425
- styles15.tab,
3426
- {
3427
- backgroundColor: activeTab === tab.value ? theme.colors.primary : theme.colors.surface,
3428
- borderColor: theme.colors.border
3429
- }
3430
- ],
3431
- onPress: () => setActiveTab(
3432
- tab.value
3433
- ),
3434
- activeOpacity: 0.7
3435
- },
3436
- /* @__PURE__ */ import_react31.default.createElement(
3437
- import_react_native16.Text,
3438
- {
3439
- style: [
3440
- styles15.tabText,
3441
- {
3442
- color: activeTab === tab.value ? theme.colors.white : theme.colors.text
3443
- }
3444
- ]
3445
- },
3446
- tab.label
3447
- )
3448
- )))
3449
- ),
3450
- stickyHeaderIndices: [0],
3451
- ListEmptyComponent: /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles15.emptyContainer }, !isLoading && /* @__PURE__ */ import_react31.default.createElement(
3452
- import_react_native16.Text,
3529
+ ListEmptyComponent: /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles15.emptyContainer }, !isLoading && /* @__PURE__ */ import_react32.default.createElement(
3530
+ import_react_native17.Text,
3453
3531
  {
3454
3532
  style: [
3455
3533
  styles15.emptyText,
@@ -3459,7 +3537,7 @@ var Integration = ({
3459
3537
  query ? "No search results found" : "No supported integrations found"
3460
3538
  ))
3461
3539
  }
3462
- ), errorMessage && /* @__PURE__ */ import_react31.default.createElement(import_react_native16.View, { style: styles15.errorContainer }, /* @__PURE__ */ import_react31.default.createElement(Alert, { variant: "destructive", style: styles15.errorAlert }, /* @__PURE__ */ import_react31.default.createElement(AlertDescription, null, errorMessage))))), /* @__PURE__ */ import_react31.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react31.default.createElement(
3540
+ ), errorMessage && /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles15.errorContainer }, /* @__PURE__ */ import_react32.default.createElement(Alert, { variant: "destructive", style: styles15.errorAlert }, /* @__PURE__ */ import_react32.default.createElement(AlertDescription, null, errorMessage))))), /* @__PURE__ */ import_react32.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react32.default.createElement(
3463
3541
  Button,
3464
3542
  {
3465
3543
  variant: "outline",
@@ -3470,7 +3548,7 @@ var Integration = ({
3470
3548
  style: styles15.continueButton
3471
3549
  },
3472
3550
  "Continue"
3473
- ), /* @__PURE__ */ import_react31.default.createElement(Footer, null))) : /* @__PURE__ */ import_react31.default.createElement(
3551
+ ), /* @__PURE__ */ import_react32.default.createElement(Footer, null))) : /* @__PURE__ */ import_react32.default.createElement(
3474
3552
  IntegrationForm,
3475
3553
  {
3476
3554
  metadata: addIntegrationMode,
@@ -3485,7 +3563,7 @@ var Integration = ({
3485
3563
  }
3486
3564
  ));
3487
3565
  };
3488
- var styles15 = import_react_native16.StyleSheet.create({
3566
+ var styles15 = import_react_native17.StyleSheet.create({
3489
3567
  headerContent: {
3490
3568
  flexDirection: "row",
3491
3569
  alignItems: "center"
@@ -3534,7 +3612,9 @@ var styles15 = import_react_native16.StyleSheet.create({
3534
3612
  flexDirection: "row",
3535
3613
  alignItems: "center",
3536
3614
  justifyContent: "space-between",
3537
- padding: 12,
3615
+ paddingVertical: 8,
3616
+ // theme.spacing.md
3617
+ paddingHorizontal: 12,
3538
3618
  // theme.spacing.md
3539
3619
  borderRadius: 12,
3540
3620
  // theme.borderRadius.md
@@ -3603,44 +3683,44 @@ var styles15 = import_react_native16.StyleSheet.create({
3603
3683
  },
3604
3684
  tabsContainer: {
3605
3685
  flexDirection: "row",
3606
- gap: 4,
3686
+ gap: 6,
3607
3687
  // theme.spacing.sm
3608
3688
  flexWrap: "wrap"
3609
3689
  },
3610
3690
  tab: {
3611
- paddingVertical: 8,
3691
+ paddingVertical: 4,
3612
3692
  // theme.spacing.sm
3613
- paddingHorizontal: 16,
3693
+ paddingHorizontal: 10,
3614
3694
  // theme.spacing.lg
3615
- borderRadius: 20,
3695
+ borderRadius: 8,
3616
3696
  // theme.borderRadius.full / 2
3617
3697
  borderWidth: 1,
3618
3698
  alignItems: "center",
3619
3699
  justifyContent: "center"
3620
3700
  },
3621
3701
  tabText: {
3622
- fontSize: 13,
3702
+ fontSize: 12,
3623
3703
  // theme.fontSize.sm
3624
3704
  fontWeight: "600"
3625
3705
  }
3626
3706
  });
3627
3707
 
3628
3708
  // src/molecules/OTPVerify.tsx
3629
- var import_react32 = __toESM(require("react"));
3630
- var import_react_native17 = require("react-native");
3709
+ var import_react33 = __toESM(require("react"));
3710
+ var import_react_native18 = require("react-native");
3631
3711
  var OTPVerify = ({
3632
3712
  open,
3633
3713
  onSuccess,
3634
3714
  onClose
3635
3715
  }) => {
3636
3716
  const theme = useTheme();
3637
- const [otp, setOtp] = import_react32.default.useState("");
3717
+ const [otp, setOtp] = import_react33.default.useState("");
3638
3718
  const { linkToken, clientId, email, setUser } = useKryptosConnect();
3639
- const [isLoading, setIsLoading] = import_react32.default.useState(false);
3640
- const [isResending, setIsResending] = import_react32.default.useState(false);
3641
- const [resendCooldown, setResendCooldown] = import_react32.default.useState(0);
3642
- const [errorMessage, setErrorMessage] = import_react32.default.useState("");
3643
- const [successMessage, setSuccessMessage] = import_react32.default.useState("");
3719
+ const [isLoading, setIsLoading] = import_react33.default.useState(false);
3720
+ const [isResending, setIsResending] = import_react33.default.useState(false);
3721
+ const [resendCooldown, setResendCooldown] = import_react33.default.useState(0);
3722
+ const [errorMessage, setErrorMessage] = import_react33.default.useState("");
3723
+ const [successMessage, setSuccessMessage] = import_react33.default.useState("");
3644
3724
  const handleSubmit = async () => {
3645
3725
  if (otp.length !== 6) return;
3646
3726
  setIsLoading(true);
@@ -3691,7 +3771,7 @@ var OTPVerify = ({
3691
3771
  setSuccessMessage("");
3692
3772
  setOtp("");
3693
3773
  };
3694
- import_react32.default.useEffect(() => {
3774
+ import_react33.default.useEffect(() => {
3695
3775
  if (resendCooldown > 0) {
3696
3776
  const timer = setTimeout(() => {
3697
3777
  setResendCooldown(resendCooldown - 1);
@@ -3700,20 +3780,20 @@ var OTPVerify = ({
3700
3780
  }
3701
3781
  return void 0;
3702
3782
  }, [resendCooldown]);
3703
- return /* @__PURE__ */ import_react32.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "lg" }, /* @__PURE__ */ import_react32.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles16.headerContent }, /* @__PURE__ */ import_react32.default.createElement(import_react_native17.Text, { style: [styles16.headerTitle, { color: theme.colors.text }] }, "OTP Verification"))), /* @__PURE__ */ import_react32.default.createElement(ModalBody, null, /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles16.container }, /* @__PURE__ */ import_react32.default.createElement(ConnectLogo, null), /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles16.emailInfo }, /* @__PURE__ */ import_react32.default.createElement(
3704
- import_react_native17.Text,
3783
+ return /* @__PURE__ */ import_react33.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "lg" }, /* @__PURE__ */ import_react33.default.createElement(ModalHeader, { onClose: handleClose }, /* @__PURE__ */ import_react33.default.createElement(import_react_native18.View, { style: styles16.headerContent }, /* @__PURE__ */ import_react33.default.createElement(import_react_native18.Text, { style: [styles16.headerTitle, { color: theme.colors.text }] }, "OTP Verification"))), /* @__PURE__ */ import_react33.default.createElement(ModalBody, null, /* @__PURE__ */ import_react33.default.createElement(import_react_native18.View, { style: styles16.container }, /* @__PURE__ */ import_react33.default.createElement(ConnectLogo, null), /* @__PURE__ */ import_react33.default.createElement(import_react_native18.View, { style: styles16.emailInfo }, /* @__PURE__ */ import_react33.default.createElement(
3784
+ import_react_native18.Text,
3705
3785
  {
3706
3786
  style: [styles16.infoText, { color: theme.colors.textSecondary }]
3707
3787
  },
3708
3788
  "We have sent a verification code to"
3709
- ), /* @__PURE__ */ import_react32.default.createElement(import_react_native17.Text, { style: [styles16.emailText, { color: theme.colors.text }] }, email)), /* @__PURE__ */ import_react32.default.createElement(
3789
+ ), /* @__PURE__ */ import_react33.default.createElement(import_react_native18.Text, { style: [styles16.emailText, { color: theme.colors.text }] }, email)), /* @__PURE__ */ import_react33.default.createElement(
3710
3790
  OTP,
3711
3791
  {
3712
3792
  onComplete: handleOtpComplete,
3713
3793
  length: 6,
3714
3794
  setErrorMessage
3715
3795
  }
3716
- ), errorMessage ? /* @__PURE__ */ import_react32.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react32.default.createElement(AlertDescription, null, errorMessage)) : null, successMessage ? /* @__PURE__ */ import_react32.default.createElement(Alert, { variant: "default" }, /* @__PURE__ */ import_react32.default.createElement(AlertDescription, null, successMessage)) : null, /* @__PURE__ */ import_react32.default.createElement(
3796
+ ), errorMessage ? /* @__PURE__ */ import_react33.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react33.default.createElement(AlertDescription, null, errorMessage)) : null, successMessage ? /* @__PURE__ */ import_react33.default.createElement(Alert, { variant: "default" }, /* @__PURE__ */ import_react33.default.createElement(AlertDescription, null, successMessage)) : null, /* @__PURE__ */ import_react33.default.createElement(
3717
3797
  Button,
3718
3798
  {
3719
3799
  variant: "outline",
@@ -3724,22 +3804,22 @@ var OTPVerify = ({
3724
3804
  style: styles16.button
3725
3805
  },
3726
3806
  "Continue"
3727
- ), /* @__PURE__ */ import_react32.default.createElement(
3728
- import_react_native17.TouchableOpacity,
3807
+ ), /* @__PURE__ */ import_react33.default.createElement(
3808
+ import_react_native18.TouchableOpacity,
3729
3809
  {
3730
3810
  onPress: handleResendOtp,
3731
3811
  disabled: resendCooldown > 0 || isResending,
3732
3812
  style: styles16.resendContainer
3733
3813
  },
3734
- isResending ? /* @__PURE__ */ import_react32.default.createElement(import_react_native17.View, { style: styles16.resendLoading }, /* @__PURE__ */ import_react32.default.createElement(LoaderIcon, { size: 16, color: theme.colors.primary }), /* @__PURE__ */ import_react32.default.createElement(
3735
- import_react_native17.Text,
3814
+ isResending ? /* @__PURE__ */ import_react33.default.createElement(import_react_native18.View, { style: styles16.resendLoading }, /* @__PURE__ */ import_react33.default.createElement(LoaderIcon, { size: 16, color: theme.colors.primary }), /* @__PURE__ */ import_react33.default.createElement(
3815
+ import_react_native18.Text,
3736
3816
  {
3737
3817
  style: [styles16.resendText, { color: theme.colors.primary }]
3738
3818
  },
3739
3819
  " ",
3740
3820
  "Sending..."
3741
- )) : resendCooldown > 0 ? /* @__PURE__ */ import_react32.default.createElement(
3742
- import_react_native17.Text,
3821
+ )) : resendCooldown > 0 ? /* @__PURE__ */ import_react33.default.createElement(
3822
+ import_react_native18.Text,
3743
3823
  {
3744
3824
  style: [
3745
3825
  styles16.resendText,
@@ -3749,16 +3829,16 @@ var OTPVerify = ({
3749
3829
  "Resend OTP in ",
3750
3830
  resendCooldown,
3751
3831
  "s"
3752
- ) : /* @__PURE__ */ import_react32.default.createElement(
3753
- import_react_native17.Text,
3832
+ ) : /* @__PURE__ */ import_react33.default.createElement(
3833
+ import_react_native18.Text,
3754
3834
  {
3755
3835
  style: [styles16.resendText, { color: theme.colors.primary }]
3756
3836
  },
3757
3837
  "Resend OTP"
3758
3838
  )
3759
- ))), /* @__PURE__ */ import_react32.default.createElement(ModalFooter, { style: { paddingVertical: 0 } }, /* @__PURE__ */ import_react32.default.createElement(Footer, null)));
3839
+ ))), /* @__PURE__ */ import_react33.default.createElement(ModalFooter, { style: { paddingVertical: 0 } }, /* @__PURE__ */ import_react33.default.createElement(Footer, null)));
3760
3840
  };
3761
- var styles16 = import_react_native17.StyleSheet.create({
3841
+ var styles16 = import_react_native18.StyleSheet.create({
3762
3842
  headerContent: {
3763
3843
  flexDirection: "row",
3764
3844
  alignItems: "center"
@@ -3817,8 +3897,8 @@ var styles16 = import_react_native17.StyleSheet.create({
3817
3897
  });
3818
3898
 
3819
3899
  // src/molecules/Permissions.tsx
3820
- var import_react33 = __toESM(require("react"));
3821
- var import_react_native18 = require("react-native");
3900
+ var import_react34 = __toESM(require("react"));
3901
+ var import_react_native19 = require("react-native");
3822
3902
  var Permissions = ({
3823
3903
  open,
3824
3904
  onClose,
@@ -3826,8 +3906,8 @@ var Permissions = ({
3826
3906
  }) => {
3827
3907
  const { appName, linkToken, setUserConsent } = useKryptosConnect();
3828
3908
  const theme = useTheme();
3829
- const [isLoading, setIsLoading] = import_react33.default.useState(false);
3830
- const [errorMessage, setErrorMessage] = import_react33.default.useState("");
3909
+ const [isLoading, setIsLoading] = import_react34.default.useState(false);
3910
+ const [errorMessage, setErrorMessage] = import_react34.default.useState("");
3831
3911
  const handleConsentClick = async () => {
3832
3912
  try {
3833
3913
  setIsLoading(true);
@@ -3850,22 +3930,22 @@ var Permissions = ({
3850
3930
  "Access your transaction history and trading activity",
3851
3931
  "Keep this data updated and accessible when you're offline"
3852
3932
  ];
3853
- return /* @__PURE__ */ import_react33.default.createElement(Modal, { isOpen: open, onClose, size: "xl" }, /* @__PURE__ */ import_react33.default.createElement(ModalHeader, { onClose }, "Permissions"), /* @__PURE__ */ import_react33.default.createElement(ModalBody, null, /* @__PURE__ */ import_react33.default.createElement(import_react_native18.View, { style: styles17.container }, /* @__PURE__ */ import_react33.default.createElement(ConnectLogo, null), errorMessage ? /* @__PURE__ */ import_react33.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react33.default.createElement(AlertDescription, null, errorMessage)) : null, /* @__PURE__ */ import_react33.default.createElement(import_react_native18.View, { style: styles17.permissionsList }, /* @__PURE__ */ import_react33.default.createElement(
3854
- import_react_native18.Text,
3933
+ return /* @__PURE__ */ import_react34.default.createElement(Modal, { isOpen: open, onClose, size: "xl" }, /* @__PURE__ */ import_react34.default.createElement(ModalHeader, { onClose }, "Permissions"), /* @__PURE__ */ import_react34.default.createElement(ModalBody, null, /* @__PURE__ */ import_react34.default.createElement(import_react_native19.View, { style: styles17.container }, /* @__PURE__ */ import_react34.default.createElement(ConnectLogo, null), errorMessage ? /* @__PURE__ */ import_react34.default.createElement(Alert, { variant: "destructive" }, /* @__PURE__ */ import_react34.default.createElement(AlertDescription, null, errorMessage)) : null, /* @__PURE__ */ import_react34.default.createElement(import_react_native19.View, { style: styles17.permissionsList }, /* @__PURE__ */ import_react34.default.createElement(
3934
+ import_react_native19.Text,
3855
3935
  {
3856
3936
  style: [styles17.subtitle, { color: theme.colors.textSecondary }]
3857
3937
  },
3858
3938
  "Allow ",
3859
3939
  appName,
3860
3940
  " to:"
3861
- ), permissionItems.map((item, index) => /* @__PURE__ */ import_react33.default.createElement(import_react_native18.View, { key: `permission-${index}`, style: styles17.permissionItem }, /* @__PURE__ */ import_react33.default.createElement(import_react_native18.Text, { style: [styles17.bullet, { color: theme.colors.primary }] }, index + 1, "."), /* @__PURE__ */ import_react33.default.createElement(
3862
- import_react_native18.Text,
3941
+ ), permissionItems.map((item, index) => /* @__PURE__ */ import_react34.default.createElement(import_react_native19.View, { key: `permission-${index}`, style: styles17.permissionItem }, /* @__PURE__ */ import_react34.default.createElement(import_react_native19.Text, { style: [styles17.bullet, { color: theme.colors.primary }] }, index + 1, "."), /* @__PURE__ */ import_react34.default.createElement(
3942
+ import_react_native19.Text,
3863
3943
  {
3864
3944
  style: [styles17.permissionText, { color: theme.colors.text }]
3865
3945
  },
3866
3946
  item
3867
- )))), /* @__PURE__ */ import_react33.default.createElement(
3868
- import_react_native18.View,
3947
+ )))), /* @__PURE__ */ import_react34.default.createElement(
3948
+ import_react_native19.View,
3869
3949
  {
3870
3950
  style: [
3871
3951
  styles17.infoBox,
@@ -3875,17 +3955,17 @@ var Permissions = ({
3875
3955
  }
3876
3956
  ]
3877
3957
  },
3878
- /* @__PURE__ */ import_react33.default.createElement(
3879
- import_react_native18.Text,
3958
+ /* @__PURE__ */ import_react34.default.createElement(
3959
+ import_react_native19.Text,
3880
3960
  {
3881
3961
  style: [styles17.infoText, { color: theme.colors.textSecondary }]
3882
3962
  },
3883
3963
  "By selecting",
3884
3964
  " ",
3885
- /* @__PURE__ */ import_react33.default.createElement(import_react_native18.Text, { style: { fontWeight: "600", color: theme.colors.text } }, "'Allow'"),
3965
+ /* @__PURE__ */ import_react34.default.createElement(import_react_native19.Text, { style: { fontWeight: "600", color: theme.colors.text } }, "'Allow'"),
3886
3966
  ", you agree to share this information and keep it updated."
3887
3967
  )
3888
- ))), /* @__PURE__ */ import_react33.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react33.default.createElement(
3968
+ ))), /* @__PURE__ */ import_react34.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react34.default.createElement(
3889
3969
  Button,
3890
3970
  {
3891
3971
  variant: "outline",
@@ -3896,9 +3976,9 @@ var Permissions = ({
3896
3976
  style: styles17.button
3897
3977
  },
3898
3978
  "Allow"
3899
- ), /* @__PURE__ */ import_react33.default.createElement(Footer, null)));
3979
+ ), /* @__PURE__ */ import_react34.default.createElement(Footer, null)));
3900
3980
  };
3901
- var styles17 = import_react_native18.StyleSheet.create({
3981
+ var styles17 = import_react_native19.StyleSheet.create({
3902
3982
  container: {
3903
3983
  flex: 1
3904
3984
  },
@@ -3956,8 +4036,8 @@ var styles17 = import_react_native18.StyleSheet.create({
3956
4036
  });
3957
4037
 
3958
4038
  // src/molecules/StatusModal.tsx
3959
- var import_react34 = __toESM(require("react"));
3960
- var import_react_native19 = require("react-native");
4039
+ var import_react35 = __toESM(require("react"));
4040
+ var import_react_native20 = require("react-native");
3961
4041
  var StatusModal = ({
3962
4042
  open,
3963
4043
  onClose,
@@ -3974,7 +4054,7 @@ var StatusModal = ({
3974
4054
  }
3975
4055
  onClose();
3976
4056
  };
3977
- return /* @__PURE__ */ import_react34.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "sm" }, /* @__PURE__ */ import_react34.default.createElement(ModalHeader, { showCloseButton: false, onClose: handleClose }, ""), /* @__PURE__ */ import_react34.default.createElement(ModalBody, null, /* @__PURE__ */ import_react34.default.createElement(import_react_native19.View, { style: styles18.container }, /* @__PURE__ */ import_react34.default.createElement(import_react_native19.View, { style: styles18.iconContainer }, status === "success" ? /* @__PURE__ */ import_react34.default.createElement(SuccessIcon, { size: 80 }) : /* @__PURE__ */ import_react34.default.createElement(ErrorIcon, { size: 80 })), /* @__PURE__ */ import_react34.default.createElement(import_react_native19.Text, { style: [styles18.message, { color: theme.colors.text }] }, status === "success" ? "Connection successful" : "Connection failed"))), /* @__PURE__ */ import_react34.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react34.default.createElement(
4057
+ return /* @__PURE__ */ import_react35.default.createElement(Modal, { isOpen: open, onClose: handleClose, size: "sm" }, /* @__PURE__ */ import_react35.default.createElement(ModalHeader, { showCloseButton: false, onClose: handleClose }, ""), /* @__PURE__ */ import_react35.default.createElement(ModalBody, null, /* @__PURE__ */ import_react35.default.createElement(import_react_native20.View, { style: styles18.container }, /* @__PURE__ */ import_react35.default.createElement(import_react_native20.View, { style: styles18.iconContainer }, status === "success" ? /* @__PURE__ */ import_react35.default.createElement(SuccessIcon, { size: 80 }) : /* @__PURE__ */ import_react35.default.createElement(ErrorIcon, { size: 80 })), /* @__PURE__ */ import_react35.default.createElement(import_react_native20.Text, { style: [styles18.message, { color: theme.colors.text }] }, status === "success" ? "Connection successful" : "Connection failed"))), /* @__PURE__ */ import_react35.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react35.default.createElement(
3978
4058
  Button,
3979
4059
  {
3980
4060
  variant: "outline",
@@ -3983,9 +4063,9 @@ var StatusModal = ({
3983
4063
  style: styles18.button
3984
4064
  },
3985
4065
  status === "success" ? "Continue" : "Try again later"
3986
- ), /* @__PURE__ */ import_react34.default.createElement(Footer, null)));
4066
+ ), /* @__PURE__ */ import_react35.default.createElement(Footer, null)));
3987
4067
  };
3988
- var styles18 = import_react_native19.StyleSheet.create({
4068
+ var styles18 = import_react_native20.StyleSheet.create({
3989
4069
  container: {
3990
4070
  flex: 1,
3991
4071
  alignItems: "center",
@@ -4010,28 +4090,28 @@ var styles18 = import_react_native19.StyleSheet.create({
4010
4090
  });
4011
4091
 
4012
4092
  // src/molecules/EndModal.tsx
4013
- var import_react35 = __toESM(require("react"));
4014
- var import_react_native20 = require("react-native");
4093
+ var import_react36 = __toESM(require("react"));
4094
+ var import_react_native21 = require("react-native");
4015
4095
  var EndModal = ({ open, onClose }) => {
4016
4096
  const theme = useTheme();
4017
- (0, import_react35.useEffect)(() => {
4097
+ (0, import_react36.useEffect)(() => {
4018
4098
  if (!open) return;
4019
4099
  const timer = setTimeout(() => {
4020
4100
  onClose();
4021
4101
  }, 5e3);
4022
4102
  return () => clearTimeout(timer);
4023
4103
  }, []);
4024
- return /* @__PURE__ */ import_react35.default.createElement(Modal, { isOpen: open, onClose, size: "md" }, /* @__PURE__ */ import_react35.default.createElement(ModalHeader, { onClose }, ""), /* @__PURE__ */ import_react35.default.createElement(ModalBody, null, /* @__PURE__ */ import_react35.default.createElement(import_react_native20.View, { style: styles19.container }, /* @__PURE__ */ import_react35.default.createElement(
4025
- import_react_native20.View,
4104
+ return /* @__PURE__ */ import_react36.default.createElement(Modal, { isOpen: open, onClose, size: "md" }, /* @__PURE__ */ import_react36.default.createElement(ModalHeader, { onClose }, ""), /* @__PURE__ */ import_react36.default.createElement(ModalBody, null, /* @__PURE__ */ import_react36.default.createElement(import_react_native21.View, { style: styles19.container }, /* @__PURE__ */ import_react36.default.createElement(
4105
+ import_react_native21.View,
4026
4106
  {
4027
4107
  style: [
4028
4108
  styles19.iconContainer,
4029
4109
  { backgroundColor: theme.colors.successLight }
4030
4110
  ]
4031
4111
  },
4032
- /* @__PURE__ */ import_react35.default.createElement(SuccessIcon, { size: 80 })
4033
- ), /* @__PURE__ */ import_react35.default.createElement(import_react_native20.Text, { style: [styles19.message, { color: theme.colors.text }] }, `All set! We're redirecting you back to the app. If it takes longer
4034
- than expected, tap the button below to continue.`))), /* @__PURE__ */ import_react35.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react35.default.createElement(
4112
+ /* @__PURE__ */ import_react36.default.createElement(SuccessIcon, { size: 80 })
4113
+ ), /* @__PURE__ */ import_react36.default.createElement(import_react_native21.Text, { style: [styles19.message, { color: theme.colors.text }] }, `All set! We're redirecting you back to the app. If it takes longer
4114
+ than expected, tap the button below to continue.`))), /* @__PURE__ */ import_react36.default.createElement(ModalFooter, { style: { paddingVertical: 8 } }, /* @__PURE__ */ import_react36.default.createElement(
4035
4115
  Button,
4036
4116
  {
4037
4117
  variant: "primary",
@@ -4040,9 +4120,9 @@ var EndModal = ({ open, onClose }) => {
4040
4120
  style: styles19.button
4041
4121
  },
4042
4122
  "Continue to App"
4043
- ), /* @__PURE__ */ import_react35.default.createElement(Footer, null)));
4123
+ ), /* @__PURE__ */ import_react36.default.createElement(Footer, null)));
4044
4124
  };
4045
- var styles19 = import_react_native20.StyleSheet.create({
4125
+ var styles19 = import_react_native21.StyleSheet.create({
4046
4126
  container: {
4047
4127
  alignItems: "center",
4048
4128
  paddingVertical: 20
@@ -4077,10 +4157,10 @@ var KryptosConnectButton = ({
4077
4157
  textStyle
4078
4158
  }) => {
4079
4159
  const { theme: themeName } = useKryptosConnect();
4080
- const [open, setOpen] = import_react36.default.useState(false);
4160
+ const [open, setOpen] = import_react37.default.useState(false);
4081
4161
  const theme = useTheme();
4082
- return /* @__PURE__ */ import_react36.default.createElement(import_react36.default.Fragment, null, children ? /* @__PURE__ */ import_react36.default.createElement(import_react_native21.TouchableOpacity, { onPress: () => setOpen(true), style }, children) : /* @__PURE__ */ import_react36.default.createElement(
4083
- import_react_native21.TouchableOpacity,
4162
+ return /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, children ? /* @__PURE__ */ import_react37.default.createElement(import_react_native22.TouchableOpacity, { onPress: () => setOpen(true), style }, children) : /* @__PURE__ */ import_react37.default.createElement(
4163
+ import_react_native22.TouchableOpacity,
4084
4164
  {
4085
4165
  onPress: () => setOpen(true),
4086
4166
  style: [
@@ -4098,8 +4178,8 @@ var KryptosConnectButton = ({
4098
4178
  ],
4099
4179
  activeOpacity: 0.8
4100
4180
  },
4101
- /* @__PURE__ */ import_react36.default.createElement(
4102
- import_react_native21.Text,
4181
+ /* @__PURE__ */ import_react37.default.createElement(
4182
+ import_react_native22.Text,
4103
4183
  {
4104
4184
  style: [
4105
4185
  styles20.buttonText,
@@ -4113,8 +4193,8 @@ var KryptosConnectButton = ({
4113
4193
  "Connect with",
4114
4194
  " "
4115
4195
  ),
4116
- /* @__PURE__ */ import_react36.default.createElement(LogoIcon, { size: 24 })
4117
- ), /* @__PURE__ */ import_react36.default.createElement(
4196
+ /* @__PURE__ */ import_react37.default.createElement(LogoIcon, { size: 24 })
4197
+ ), /* @__PURE__ */ import_react37.default.createElement(
4118
4198
  KryptosConnectModal,
4119
4199
  {
4120
4200
  open,
@@ -4142,7 +4222,7 @@ var KryptosConnectModal = ({
4142
4222
  isAuthorized,
4143
4223
  linkToken
4144
4224
  } = useKryptosConnect();
4145
- const [step, setStep] = import_react36.default.useState("INIT" /* INIT */);
4225
+ const [step, setStep] = import_react37.default.useState("INIT" /* INIT */);
4146
4226
  const handleClose = () => {
4147
4227
  setOpen(false);
4148
4228
  setIsInitialized(false);
@@ -4178,7 +4258,7 @@ var KryptosConnectModal = ({
4178
4258
  handleClose();
4179
4259
  };
4180
4260
  if (!open) return null;
4181
- return /* @__PURE__ */ import_react36.default.createElement(import_react_native21.View, { style: styles20.container }, step === "INIT" /* INIT */ && /* @__PURE__ */ import_react36.default.createElement(
4261
+ return /* @__PURE__ */ import_react37.default.createElement(import_react_native22.View, { style: styles20.container }, step === "INIT" /* INIT */ && /* @__PURE__ */ import_react37.default.createElement(
4182
4262
  Init,
4183
4263
  {
4184
4264
  open,
@@ -4192,7 +4272,7 @@ var KryptosConnectModal = ({
4192
4272
  },
4193
4273
  onClose: handleAbort
4194
4274
  }
4195
- ), step === "AUTH" /* AUTH */ && /* @__PURE__ */ import_react36.default.createElement(
4275
+ ), step === "AUTH" /* AUTH */ && /* @__PURE__ */ import_react37.default.createElement(
4196
4276
  Auth,
4197
4277
  {
4198
4278
  open,
@@ -4200,28 +4280,28 @@ var KryptosConnectModal = ({
4200
4280
  onGuestSuccess: () => setStep("INTEGRATION" /* INTEGRATION */),
4201
4281
  onClose: handleAbort
4202
4282
  }
4203
- ), step === "OTP" /* OTP */ && /* @__PURE__ */ import_react36.default.createElement(
4283
+ ), step === "OTP" /* OTP */ && /* @__PURE__ */ import_react37.default.createElement(
4204
4284
  OTPVerify,
4205
4285
  {
4206
4286
  open,
4207
4287
  onSuccess: () => setStep("INTEGRATION" /* INTEGRATION */),
4208
4288
  onClose: handleAbort
4209
4289
  }
4210
- ), step === "INTEGRATION" /* INTEGRATION */ && /* @__PURE__ */ import_react36.default.createElement(
4290
+ ), step === "INTEGRATION" /* INTEGRATION */ && /* @__PURE__ */ import_react37.default.createElement(
4211
4291
  Integration,
4212
4292
  {
4213
4293
  open,
4214
4294
  onSuccess: handleConsentClick,
4215
4295
  onClose: handleAbort
4216
4296
  }
4217
- ), step === "PERMISSIONS" /* PERMISSIONS */ && /* @__PURE__ */ import_react36.default.createElement(
4297
+ ), step === "PERMISSIONS" /* PERMISSIONS */ && /* @__PURE__ */ import_react37.default.createElement(
4218
4298
  Permissions,
4219
4299
  {
4220
4300
  open,
4221
4301
  onClose: handleAbort,
4222
4302
  onSuccess: () => setStep("STATUS" /* STATUS */)
4223
4303
  }
4224
- ), step === "STATUS" /* STATUS */ && /* @__PURE__ */ import_react36.default.createElement(
4304
+ ), step === "STATUS" /* STATUS */ && /* @__PURE__ */ import_react37.default.createElement(
4225
4305
  StatusModal,
4226
4306
  {
4227
4307
  open,
@@ -4230,7 +4310,7 @@ var KryptosConnectModal = ({
4230
4310
  onError: handleError,
4231
4311
  status: userConsent?.public_token ? "success" : "error"
4232
4312
  }
4233
- ), step === "END" /* END */ && /* @__PURE__ */ import_react36.default.createElement(
4313
+ ), step === "END" /* END */ && /* @__PURE__ */ import_react37.default.createElement(
4234
4314
  EndModal,
4235
4315
  {
4236
4316
  open,
@@ -4242,7 +4322,7 @@ var KryptosConnectModal = ({
4242
4322
  }
4243
4323
  ));
4244
4324
  };
4245
- var styles20 = import_react_native21.StyleSheet.create({
4325
+ var styles20 = import_react_native22.StyleSheet.create({
4246
4326
  defaultButton: {
4247
4327
  flexDirection: "row",
4248
4328
  alignItems: "center",