@depay/widgets 6.2.3 → 6.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import React, { useState, useContext, useEffect } from 'react';
1
+ import React, { useState, useContext, useEffect, useRef } from 'react';
2
2
  import { NavigateStackContext, ReactDialogStack } from '@depay/react-dialog-stack';
3
3
  import { getWallet, wallets } from '@depay/web3-wallets';
4
4
  import ReactDOM from 'react-dom';
@@ -918,7 +918,8 @@ var ClosableProvider = (function (props) {
918
918
  closable: closable,
919
919
  setClosable: setClosable,
920
920
  close: close,
921
- open: open
921
+ open: open,
922
+ setOpen: setOpen
922
923
  }
923
924
  }, props.children);
924
925
  });
@@ -973,23 +974,21 @@ var Dialog$1 = (function (props) {
973
974
  }, /*#__PURE__*/React.createElement("div", {
974
975
  className: ["DialogHeader", props.stacked ? 'TextCenter' : ''].join(' ')
975
976
  }, props.stacked && /*#__PURE__*/React.createElement("div", {
976
- className: "DialogHeaderAction PaddingTopS PaddingLeftS PaddingRightS"
977
+ className: "DialogHeaderActionLeft PaddingTopS PaddingLeftS PaddingRightS"
977
978
  }, /*#__PURE__*/React.createElement("button", {
978
979
  onClick: function onClick() {
979
980
  return navigate('back');
980
981
  },
981
982
  className: "ButtonCircular",
982
983
  title: "Go back"
983
- }, /*#__PURE__*/React.createElement(ChevronLeft, null))), /*#__PURE__*/React.createElement("div", {
984
- className: "DialogHeaderTitle"
985
- }, props.header), /*#__PURE__*/React.createElement("div", {
986
- className: "DialogHeaderAction PaddingTopS PaddingLeftS PaddingRightS"
984
+ }, /*#__PURE__*/React.createElement(ChevronLeft, null))), props.header, /*#__PURE__*/React.createElement("div", {
985
+ className: "DialogHeaderActionRight PaddingTopS PaddingLeftS PaddingRightS"
987
986
  }, closable && /*#__PURE__*/React.createElement("button", {
988
987
  onClick: close,
989
988
  className: "ButtonCircular",
990
989
  title: "Close dialog"
991
990
  }, /*#__PURE__*/React.createElement(CloseIcon, null)))), /*#__PURE__*/React.createElement("div", {
992
- className: "DialogBody"
991
+ className: ["DialogBody", props.bodyClassName].join(' ')
993
992
  }, props.body), /*#__PURE__*/React.createElement("div", {
994
993
  className: "DialogFooter"
995
994
  }, props.footer));
@@ -1119,7 +1118,8 @@ var SelectWalletDialog = (function (props) {
1119
1118
  }, _callee);
1120
1119
  })), [wallet]);
1121
1120
 
1122
- var connect = function connect(wallet) {
1121
+ var connect = function connect(walletClass) {
1122
+ var wallet = new walletClass();
1123
1123
  props.setWallet(wallet);
1124
1124
  navigate('ConnectingWallet');
1125
1125
  props.connect(wallet);
@@ -1128,7 +1128,7 @@ var SelectWalletDialog = (function (props) {
1128
1128
  var availableWallets = [wallets.WalletConnect];
1129
1129
 
1130
1130
  if (wallet) {
1131
- availableWallets.unshift(wallet);
1131
+ availableWallets.unshift(wallet.constructor);
1132
1132
  }
1133
1133
 
1134
1134
  var walletCards = availableWallets.map(function (wallet, index) {
@@ -1137,21 +1137,22 @@ var SelectWalletDialog = (function (props) {
1137
1137
  className: "PaddingBottomXS"
1138
1138
  }, /*#__PURE__*/React.createElement("button", {
1139
1139
  className: "Card small",
1140
- title: "Connect ".concat(wallet.name),
1140
+ title: "Connect ".concat(wallet.info.name),
1141
1141
  onClick: function onClick() {
1142
1142
  return connect(wallet);
1143
1143
  }
1144
1144
  }, /*#__PURE__*/React.createElement("div", {
1145
1145
  className: "CardImage"
1146
1146
  }, /*#__PURE__*/React.createElement("img", {
1147
- src: wallet.logo
1147
+ className: "transparent",
1148
+ src: wallet.info.logo
1148
1149
  })), /*#__PURE__*/React.createElement("div", {
1149
1150
  className: "CardBody"
1150
1151
  }, /*#__PURE__*/React.createElement("div", {
1151
1152
  className: "CardBodyWrapper PaddingLeftXS"
1152
1153
  }, /*#__PURE__*/React.createElement("h2", {
1153
1154
  className: "CardText FontWeightBold"
1154
- }, wallet.name)))));
1155
+ }, wallet.info.name)))));
1155
1156
  });
1156
1157
  return /*#__PURE__*/React.createElement(Dialog$1, {
1157
1158
  header: /*#__PURE__*/React.createElement("div", {
@@ -1160,7 +1161,7 @@ var SelectWalletDialog = (function (props) {
1160
1161
  className: "LineHeightL FontSizeL"
1161
1162
  }, "Select a wallet")),
1162
1163
  body: /*#__PURE__*/React.createElement("div", {
1163
- className: "PaddingTopS PaddingBottomXS PaddingLeftS PaddingRightS"
1164
+ className: "PaddingBottomS PaddingLeftS PaddingRightS"
1164
1165
  }, walletCards),
1165
1166
  footer: /*#__PURE__*/React.createElement("div", {
1166
1167
  className: "PaddingBottomS"
@@ -1386,11 +1387,6 @@ var ErrorContext = /*#__PURE__*/React.createContext();
1386
1387
 
1387
1388
  var ErrorGraphic = "data:image/png;base64,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";
1388
1389
 
1389
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
1390
-
1391
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
1392
- var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
1393
-
1394
1390
  function ReactDialogStyle (styles) {
1395
1391
  let background =
1396
1392
  typeof styles === 'object' && styles.background ? styles.background : 'rgba(0,0,0,0.4)';
@@ -1457,7 +1453,7 @@ function ReactDialogStyle (styles) {
1457
1453
  }
1458
1454
 
1459
1455
  const _jsxFileName = "/home/runner/work/react-dialog/react-dialog/src/components/Dialog.jsx";
1460
- class Dialog extends React__default['default'].Component {
1456
+ class Dialog extends React.Component {
1461
1457
  constructor(props) {
1462
1458
  super(props);
1463
1459
 
@@ -1505,11 +1501,11 @@ class Dialog extends React__default['default'].Component {
1505
1501
  const classNames = ['ReactDialog', this.state.open ? 'ReactDialogOpen' : ''];
1506
1502
  const style = ReactDialogStyle({ background: this.props.background });
1507
1503
  return (
1508
- React__default['default'].createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName, lineNumber: 54}}
1509
- , React__default['default'].createElement('style', {__self: this, __source: {fileName: _jsxFileName, lineNumber: 55}}, style)
1510
- , React__default['default'].createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName, lineNumber: 56}}
1511
- , React__default['default'].createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName, lineNumber: 57}}
1512
- , React__default['default'].createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName, lineNumber: 58}} )
1504
+ React.createElement('div', { className: classNames.join(' '), __self: this, __source: {fileName: _jsxFileName, lineNumber: 54}}
1505
+ , React.createElement('style', {__self: this, __source: {fileName: _jsxFileName, lineNumber: 55}}, style)
1506
+ , React.createElement('div', { className: "ReactDialogRow", __self: this, __source: {fileName: _jsxFileName, lineNumber: 56}}
1507
+ , React.createElement('div', { className: "ReactDialogCell", __self: this, __source: {fileName: _jsxFileName, lineNumber: 57}}
1508
+ , React.createElement('div', { className: "ReactDialogBackground", onClick: this.onClickBackground.bind(this), __self: this, __source: {fileName: _jsxFileName, lineNumber: 58}} )
1513
1509
  , this.props.children
1514
1510
  )
1515
1511
  )
@@ -1519,7 +1515,7 @@ class Dialog extends React__default['default'].Component {
1519
1515
  }
1520
1516
 
1521
1517
  const _jsxFileName$1 = "/home/runner/work/react-dialog/react-dialog/src/index.jsx";
1522
- class ReactDialog extends React__default['default'].Component {
1518
+ class ReactDialog extends React.Component {
1523
1519
  constructor(props) {
1524
1520
  super(props);
1525
1521
 
@@ -1542,8 +1538,8 @@ class ReactDialog extends React__default['default'].Component {
1542
1538
  let _document = this.props.document || document;
1543
1539
  let container = this.props.container || _document.body;
1544
1540
  if (this.state.open) {
1545
- return ReactDOM__default['default'].createPortal(
1546
- React__default['default'].createElement(Dialog, {
1541
+ return ReactDOM.createPortal(
1542
+ React.createElement(Dialog, {
1547
1543
  background: this.props.background,
1548
1544
  close: this.props.close,
1549
1545
  document: _document,
@@ -1560,8 +1556,6 @@ class ReactDialog extends React__default['default'].Component {
1560
1556
  }
1561
1557
  }
1562
1558
 
1563
- var ReactDialog_1 = ReactDialog;
1564
-
1565
1559
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
1566
1560
 
1567
1561
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -1593,7 +1587,7 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
1593
1587
  }(React.Component);
1594
1588
 
1595
1589
  var ErrorProvider = (function (props) {
1596
- var _useState = useState(),
1590
+ var _useState = useState(props.error),
1597
1591
  _useState2 = _slicedToArray(_useState, 2),
1598
1592
  error = _useState2[0],
1599
1593
  setError = _useState2[1];
@@ -1606,8 +1600,8 @@ var ErrorProvider = (function (props) {
1606
1600
  var setErrorFromChildren = function setErrorFromChildren(error) {
1607
1601
  setError(error);
1608
1602
 
1609
- if (props.error) {
1610
- props.error(error);
1603
+ if (props.errorCallback) {
1604
+ props.errorCallback(error);
1611
1605
  }
1612
1606
  };
1613
1607
 
@@ -1618,7 +1612,7 @@ var ErrorProvider = (function (props) {
1618
1612
 
1619
1613
  if (error) {
1620
1614
  console.log(error);
1621
- return /*#__PURE__*/React.createElement(ReactDialog_1, {
1615
+ return /*#__PURE__*/React.createElement(ReactDialog, {
1622
1616
  container: props.container,
1623
1617
  close: close,
1624
1618
  open: open
@@ -1666,6 +1660,10 @@ var ErrorProvider = (function (props) {
1666
1660
  }
1667
1661
  });
1668
1662
 
1663
+ var AlertStyle = (function (style) {
1664
+ return "\n\n .Alert {\n background: rgba(0,0,0,0.08);\n border-radius: 0.4rem;\n font-weight: 500;\n padding: 0.5rem;\n }\n ";
1665
+ });
1666
+
1669
1667
  var BlockchainLogoStyle = (function (style) {
1670
1668
  return "\n\n .BlockchainLogo {\n border-radius: 999px;\n }\n\n .BlockchainLogo.small {\n height: 18px;\n width: 18px;\n }\n ";
1671
1669
  });
@@ -1679,11 +1677,11 @@ var ButtonPrimaryStyle = (function (style) {
1679
1677
  });
1680
1678
 
1681
1679
  var CardStyle = (function (style) {
1682
- return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.1rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1680
+ return "\n\n .Card {\n align-items: center;\n background: rgb(255,255,255);\n border-radius: 0.8rem;\n box-shadow: 0 0 8px rgba(0,0,0,0.03);\n cursor: pointer;\n display: flex;\n flex-direction: row;\n margin-bottom: 0.5rem;\n min-height: 4.78rem;\n padding: 1rem 0.6rem;\n width: 100%;\n }\n\n .Card.Row {\n border-radius: 0;\n margin-bottom: 0;\n box-shadow: none;\n min-height: 4.3rem;\n padding: 0.4rem 1.3rem;\n border-top: 1px solid rgba(0,0,0,0.05);\n }\n\n .Card.Row .CardText {\n font-size: 1.2rem;\n }\n\n .CardTokenSymbol {\n width: 40%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .CardTokenName {\n text-align: right;\n opacity: 0.5;\n width: 60%;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n \n .Card.Row .CardTokenName .CardText {\n font-size: 1rem;\n }\n\n .Card.Row .CardImage {\n width: 2.5rem;\n }\n\n .Card.Row .CardImage img {\n height: 1.9rem;\n width: 1.9rem;\n }\n\n a.Card, a.Card * {\n color: inherit;\n text-decoration: none;\n }\n\n .Card.transparent {\n background: none;\n box-shadow: none;\n }\n\n .Card.small {\n min-height: auto;\n padding: 0.5rem 0.5rem;\n margin: 0;\n }\n\n .CardImage.small {\n width: 1.7rem;\n }\n\n .CardImage.small img {\n height: 1.4rem;\n width: 1.4rem;\n }\n\n .Card.disabled {\n cursor: default;\n }\n\n .Card:hover:not(.disabled) {\n background: rgb(240,240,240);\n box-shadow: 0 0 0 rgba(0,0,0,0); \n }\n\n .Card:active:not(.disabled) {\n background: rgb(235,235,235);\n box-shadow: inset 0 0 6px rgba(0,0,0,0.02);\n color: inherit;\n }\n\n .Card:hover:not(.disabled) .CardAction {\n opacity: 0.4;\n }\n\n .CardImage, .CardBody, .CardAction, .CardInfo {\n align-items: center;\n display: flex;\n min-width: 0;\n padding: 0 0.4rem;\n }\n\n .CardImage {\n flex-basis: auto;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: center;\n position: relative;\n width: 3.6rem;\n }\n\n .CardBody {\n flex-basis: auto;\n flex-grow: 1;\n flex-shrink: 1;\n line-height: 1.4rem;\n padding-left: 0.6rem;\n text-align: left;\n }\n\n .CardBodyWrapper {\n min-width: 0;\n }\n\n .CardAction {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n padding-right: 0;\n margin-left: auto;\n }\n\n .Card.disabled .CardAction {\n opacity: 0; \n }\n\n .CardInfo {\n display: flex;\n flex-basis: auto;\n flex-direction: column;\n flex-grow: 0;\n flex-shrink: 1;\n justify-content: center;\n margin-left: auto; \n padding-right: 0;\n }\n\n .CardImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .CardImage img.transparent {\n border: none;\n background: none;\n box-shadow: none;\n }\n \n .CardImage .BlockchainLogo {\n position: absolute;\n bottom: 0;\n right: 0;\n }\n\n .CardTitle {\n font-size: 0.9rem;\n color: rgb(150,150,150);\n }\n \n .CardText, a .CardText {\n color: ".concat(style.colors.text, ";\n flex: 1;\n font-size: 1.3rem;\n }\n\n .CardText strong {\n font-weight: 500;\n }\n\n .CardText small {\n font-size: 1.26rem;\n color: rgb(150,150,150);\n }\n\n .CardAction {\n opacity: 0.2;\n }\n\n .Card.More {\n display: inline-block;\n text-align: center;\n }\n ");
1683
1681
  });
1684
1682
 
1685
1683
  var DialogStyle = (function (style) {
1686
- return "\n\n .ReactDialogBackground {\n backdrop-filter: blur(5px);\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n max-height: 60vh !important;\n }\n\n .DialogFooter {\n padding-bottom: 20px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n max-height: 66vh !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.HeightAuto {\n height: auto;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n display: flex;\n flex-direction: row;\n position: relative;\n }\n\n .DialogHeaderTitle {\n flex-basis: auto;\n flex-grow: 1;\n }\n \n .DialogHeaderAction {\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
1684
+ return "\n\n .ReactDialogBackground {\n backdrop-filter: blur(5px);\n background: rgba(0,0,0,0.7);\n }\n\n .Dialog {\n margin: 0 auto;\n position: relative;\n width: 420px;\n box-shadow: 0 0 20px rgba(0,0,0,0.1);\n border-radius: 0.8rem;\n background: rgb(248,248,248);\n }\n\n @media screen and (max-width: 450px) {\n \n .Dialog, .ReactDialogAnimation {\n width: 100%;\n }\n\n }\n\n @media (orientation: portrait) and (max-width: 900px) {\n\n .Dialog {\n align-content: stretch;\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .DialogBody {\n flex: 1;\n align-items: flex-end;\n }\n\n .DialogFooter {\n padding-bottom: 20px;\n }\n\n .ReactDialogStackCell {\n vertical-align: bottom;\n }\n\n .ReactDialogAnimation {\n bottom: -100px !important;\n top: inherit !important;\n transition: opacity 0.4s ease, bottom 0.4s ease;\n }\n\n .ReactDialog.ReactDialogOpen .ReactDialogAnimation {\n bottom: 0px !important;\n }\n\n .DialogFooter {\n border-bottom-left-radius: 0 !important;\n border-bottom-right-radius: 0 !important;\n }\n }\n\n .DialogBody {\n background: rgb(248,248,248);\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .DialogBody.ScrollHeight {\n height: 30vh !important;\n max-height: 30vh !important;\n }\n\n .DialogHeader {\n background: rgb(248,248,248);\n border-top-left-radius: 0.8rem;\n border-top-right-radius: 0.8rem;\n min-height: 3.4rem;\n position: relative;\n width: 100%;\n }\n\n .DialogHeaderActionRight {\n position: absolute;\n top: 0;\n right: 0;\n height: 3rem;\n }\n\n .DialogHeaderActionLeft {\n position: absolute;\n top: 0;\n left: 0;\n height: 3rem;\n }\n\n .DialogFooter {\n background: rgb(248,248,248);\n border-bottom-left-radius: 0.8rem;\n border-bottom-right-radius: 0.8rem;\n line-height: 1.5rem;\n min-height: 2rem;\n position: relative;\n text-align: center;\n }\n\n .ReactShadowDOMInsideContainer > .ReactDialog {\n display: table;\n }\n\n ";
1687
1685
  });
1688
1686
 
1689
1687
  var FontStyle = (function (style) {
@@ -1714,6 +1712,10 @@ var LabelStyle = (function (style) {
1714
1712
  return "\n\n .Label {\n background: rgb(248,248,248);\n border-radius: 999px;\n color: ".concat(style.colors.primary, ";\n font-size: 0.8rem;\n padding: 0.1rem 0.5rem;\n margin: 0.1rem;\n }\n\n ");
1715
1713
  });
1716
1714
 
1715
+ var LinkStyle = (function (style) {
1716
+ return "\n\n .Link {\n color: ".concat(style.colors.primary, ";\n cursor: pointer;\n text-decoration: none;\n }\n\n .Link:hover {\n filter: brightness(0.8);\n }\n\n .Link:active {\n filter: brightness(1.0);\n }\n ");
1717
+ });
1718
+
1717
1719
  var LoadingTextStyle = (function (style) {
1718
1720
  return "\n\n .LoadingText {\n color: ".concat(style.colors.buttonText, ";\n display: inline-block;\n text-decoration: none;\n }\n\n @keyframes blink {\n 0% { opacity: .2; }\n 20% { opacity: 1; }\n 100% { opacity: .2; }\n }\n \n .LoadingText .dot {\n animation-name: blink;\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-fill-mode: both;\n }\n \n .LoadingText .dot:nth-child(2) {\n animation-delay: .2s;\n }\n \n .LoadingText .dot:nth-child(3) {\n animation-delay: .4s;\n }\n ");
1719
1721
  });
@@ -1738,10 +1740,18 @@ var ResetStyle = (function () {
1738
1740
  return "\n\n html, body, div, span, applet, object, iframe,\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\n a, abbr, acronym, address, big, cite, code,\n del, dfn, em, img, ins, kbd, q, s, samp,\n small, strike, strong, sub, sup, tt, var,\n b, u, i, center,\n dl, dt, dd, ol, ul, li,\n fieldset, form, label, legend,\n table, caption, tbody, tfoot, thead, tr, th, td,\n article, aside, canvas, details, embed, \n figure, figcaption, footer, header, hgroup, \n menu, nav, output, ruby, section, summary,\n time, mark, audio, video {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n text-align: inherit;\n vertical-align: baseline;\n }\n\n article, aside, details, figcaption, figure, \n footer, header, hgroup, menu, nav, section {\n display: block;\n }\n\n body {\n line-height: 1;\n }\n\n ol, ul {\n list-style: none;\n }\n\n blockquote, q {\n quotes: none;\n }\n\n blockquote:before, blockquote:after,\n q:before, q:after {\n content: '';\n content: none;\n }\n \n table {\n border-collapse: collapse;\n border-spacing: 0;\n }\n\n * {\n box-sizing: border-box;\n }\n\n button {\n border: 0;\n background: none;\n outline: none;\n }\n\n ";
1739
1741
  });
1740
1742
 
1743
+ var SearchStyle = (function (style) {
1744
+ return "\n\n .Search {\n border-radius: 0.8rem;\n border: 1px solid rgba(0,0,0,0.2);\n outline: none !important;\n color: ".concat(style.colors.text, ";\n font-size: 1.2rem;\n padding: 0.8rem;\n width: 100%;\n }\n\n .Search::placeholder {\n color: rgb(180,180,180);\n } \n\n .Search:focus, .Search:focus-visible {\n border: 1px solid ").concat(style.colors.primary, ";\n }\n\n ");
1745
+ });
1746
+
1741
1747
  var SkeletonStyle = (function () {
1742
1748
  return "\n \n .Skeleton {\n background: rgb(230,230,230) !important;\n border: 0px solid transparent !important;\n box-shadow: none !important;\n cursor: inherit !important;\n line-height: 0;\n overflow: hidden;\n position: relative;\n }\n\n @keyframes SkeletonBackgroundAnimation {\n from {\n left: -500px;\n }\n to {\n left: +120%;\n }\n }\n\n .SkeletonBackground {\n animation: 2s SkeletonBackgroundAnimation 0.2s ease infinite;\n background: linear-gradient(to right, transparent 0%, rgba(0,0,0,0.1) 50%, transparent 100%);\n height: 100%;\n left: -140%;\n position: absolute;\n top: 0;\n width: 400px;\n }\n\n .SkeletonWrapper {\n line-height: 0;\n }\n ";
1743
1749
  });
1744
1750
 
1751
+ var TableStyle = (function (style) {
1752
+ return "\n\n .Table {\n border-collapse: separate;\n border-radius: 0.4rem;\n border-style: hidden;\n border: 1px solid rgba(0,0,0,0.1);\n font-size: 94%;\n width: 100%;\n }\n\n .Table tr.small td {\n font-size: 90%;\n }\n\n .Table tr td {\n border-bottom: 1px solid rgba(0,0,0,0.1);\n word-break: break-all;\n }\n \n .Table tr:last-child td {\n border-bottom: none;\n }\n \n .Table tr td {\n padding: 0.5rem 0.9rem;\n text-align: left;\n }\n \n .Table tr td:first-child {\n width: 30%\n }\n\n .Table tr td:last-child {\n width: 70%\n }\n \n .Table .TableSubTitle {\n font-weight: 300;\n opacity: 0.7;\n }\n\n .Table tr td:last-child {\n font-weight: 500;\n }\n ";
1753
+ });
1754
+
1745
1755
  var TextButtonStyle = (function (style) {
1746
1756
  return "\n\n .TextButton {\n cursor: pointer;\n font-size: 16px;\n color: ".concat(style.colors.primary, "\n }\n\n .TextButton:hover * {\n opacity: 1.0;\n }\n ");
1747
1757
  });
@@ -1751,7 +1761,15 @@ var TextStyle = (function (style) {
1751
1761
  });
1752
1762
 
1753
1763
  var TokenAmountStyle = (function () {
1754
- return "\n \n .TokenAmountRow {\n min-width: 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n .TokenAmountCell {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .TokenSymbolCell {\n \n }\n ";
1764
+ return "\n \n .TokenAmountRow {\n min-width: 0;\n width: 100%;\n display: flex;\n flex-direction: row;\n }\n\n .TokenAmountCell {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .TokenSymbolCell {\n }\n ";
1765
+ });
1766
+
1767
+ var TokenImageStyle = (function (style) {
1768
+ return "\n\n .TokenImage img {\n background: white;\n border-radius: 99rem;\n border: 1px solid white;\n background: rgba(0,0,0,0.1);\n box-shadow: 0 2px 8px rgb(0 0 0 / 10%);\n height: 2.8rem;\n position: relative;\n vertical-align: middle;\n width: 2.8rem;\n }\n\n .TokenImage.medium img {\n height: 5.8rem;\n width: 5.8rem;\n }\n ";
1769
+ });
1770
+
1771
+ var TooltipStyle = (function (style) {
1772
+ return "\n\n .Tooltip {\n background: ".concat(style.colors.primary, ";\n border-radius: 0.6rem;\n color: ").concat(style.colors.buttonText, ";\n padding: 0.6rem 0.8rem;\n position: relative;\n box-shadow: 0 0 8px rgba(0,0,0,0.2);\n }\n\n .TooltipArrowUp {\n border-bottom: 10px solid ").concat(style.colors.primary, ";\n border-left: 10px solid transparent;\n border-right: 10px solid transparent;\n height: 0; \n left: 12px;\n position: absolute;\n top: -8px;\n width: 0; \n }\n ");
1755
1773
  });
1756
1774
 
1757
1775
  var styleRenderer = (function (style) {
@@ -1764,7 +1782,7 @@ var styleRenderer = (function (style) {
1764
1782
  },
1765
1783
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'
1766
1784
  }, style);
1767
- return [ResetStyle(), FontStyle(style), DialogStyle(), ButtonCircularStyle(), ButtonPrimaryStyle(style), CardStyle(style), PoweredByStyle(style), GraphicStyle(), SkeletonStyle(), TokenAmountStyle(), TextStyle(style), IconStyle(style), OpacityStyle(), PaddingStyle(), HeightStyle(), LabelStyle(style), LoadingTextStyle(style), RangeSliderStyle(style), InputStyle(), TextButtonStyle(style), ImageStyle(), BlockchainLogoStyle()].join('');
1785
+ return [ResetStyle(), FontStyle(style), DialogStyle(), ButtonCircularStyle(), ButtonPrimaryStyle(style), CardStyle(style), PoweredByStyle(style), GraphicStyle(), SkeletonStyle(), TokenAmountStyle(), TextStyle(style), IconStyle(style), OpacityStyle(), PaddingStyle(), HeightStyle(), LabelStyle(style), LoadingTextStyle(style), RangeSliderStyle(style), InputStyle(), TextButtonStyle(style), ImageStyle(), BlockchainLogoStyle(), SearchStyle(style), TokenImageStyle(), AlertStyle(), TableStyle(), LinkStyle(style), TooltipStyle(style)].join('');
1768
1786
  });
1769
1787
 
1770
1788
  var mount = (function (_ref, content) {
@@ -1877,7 +1895,7 @@ var Connect = function Connect(options) {
1877
1895
 
1878
1896
  return function (container) {
1879
1897
  return /*#__PURE__*/React.createElement(ErrorProvider, {
1880
- error: error,
1898
+ errorCallback: error,
1881
1899
  container: container,
1882
1900
  unmount: unmount
1883
1901
  }, /*#__PURE__*/React.createElement(UpdatableProvider, null, /*#__PURE__*/React.createElement(ClosableProvider, {
@@ -3008,7 +3026,7 @@ var DonationOverviewSkeleton = (function (props) {
3008
3026
  className: "LineHeightL FontSizeL"
3009
3027
  }, "Donation")),
3010
3028
  body: /*#__PURE__*/React.createElement("div", {
3011
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3029
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
3012
3030
  }, /*#__PURE__*/React.createElement("div", {
3013
3031
  className: "Card Skeleton"
3014
3032
  }, /*#__PURE__*/React.createElement("div", {
@@ -3317,7 +3335,7 @@ var DonationOverviewDialog = (function (props) {
3317
3335
  className: "LineHeightL FontSizeL"
3318
3336
  }, "Donation")),
3319
3337
  body: /*#__PURE__*/React.createElement("div", {
3320
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
3338
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
3321
3339
  }, /*#__PURE__*/React.createElement("div", {
3322
3340
  className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
3323
3341
  title: paymentState == 'initialized' ? "Change amount" : undefined,
@@ -3726,7 +3744,7 @@ var Donation = /*#__PURE__*/function () {
3726
3744
  }, function (unmount) {
3727
3745
  return function (container) {
3728
3746
  return /*#__PURE__*/React.createElement(ErrorProvider, {
3729
- error: error,
3747
+ errorCallback: error,
3730
3748
  container: container,
3731
3749
  unmount: unmount
3732
3750
  }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
@@ -3917,7 +3935,7 @@ var Login = function Login(options) {
3917
3935
 
3918
3936
  return function (container) {
3919
3937
  return /*#__PURE__*/React.createElement(ErrorProvider, {
3920
- error: error,
3938
+ errorCallback: error,
3921
3939
  container: container,
3922
3940
  unmount: unmount
3923
3941
  }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
@@ -3999,7 +4017,7 @@ var PaymentOverviewSkeleton = (function (props) {
3999
4017
  className: "LineHeightL FontSizeL"
4000
4018
  }, "Payment")),
4001
4019
  body: /*#__PURE__*/React.createElement("div", {
4002
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4020
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
4003
4021
  }, amountsMissing && /*#__PURE__*/React.createElement("div", {
4004
4022
  className: "Card Skeleton"
4005
4023
  }, /*#__PURE__*/React.createElement("div", {
@@ -4050,7 +4068,7 @@ var PaymentOverviewDialog = (function (props) {
4050
4068
  className: "LineHeightL FontSizeL"
4051
4069
  }, "Payment")),
4052
4070
  body: /*#__PURE__*/React.createElement("div", {
4053
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4071
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
4054
4072
  }, amountsMissing && /*#__PURE__*/React.createElement("div", {
4055
4073
  className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
4056
4074
  title: paymentState == 'initialized' ? "Change amount" : undefined,
@@ -4197,7 +4215,7 @@ var Payment = /*#__PURE__*/function () {
4197
4215
  }, function (unmount) {
4198
4216
  return function (container) {
4199
4217
  return /*#__PURE__*/React.createElement(ErrorProvider, {
4200
- error: error,
4218
+ errorCallback: error,
4201
4219
  container: container,
4202
4220
  unmount: unmount
4203
4221
  }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
@@ -4351,7 +4369,7 @@ var SaleOverviewSkeleton = (function (props) {
4351
4369
  className: "LineHeightL FontSizeL"
4352
4370
  }, "Purchase")),
4353
4371
  body: /*#__PURE__*/React.createElement("div", {
4354
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4372
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
4355
4373
  }, /*#__PURE__*/React.createElement("div", {
4356
4374
  className: "Card Skeleton",
4357
4375
  style: {
@@ -4435,7 +4453,7 @@ var SaleOverviewDialog = (function (props) {
4435
4453
  className: "LineHeightL FontSizeL"
4436
4454
  }, "Purchase")),
4437
4455
  body: /*#__PURE__*/React.createElement("div", {
4438
- className: "PaddingTopS PaddingLeftM PaddingRightM PaddingBottomXS"
4456
+ className: "PaddingLeftM PaddingRightM PaddingBottomXS"
4439
4457
  }, /*#__PURE__*/React.createElement("div", {
4440
4458
  className: ["Card", paymentState == 'initialized' ? '' : 'disabled'].join(' '),
4441
4459
  title: paymentState == 'initialized' ? "Change amount" : undefined,
@@ -4601,7 +4619,7 @@ var Sale = /*#__PURE__*/function () {
4601
4619
  }, function (unmount) {
4602
4620
  return function (container) {
4603
4621
  return /*#__PURE__*/React.createElement(ErrorProvider, {
4604
- error: error,
4622
+ errorCallback: error,
4605
4623
  container: container,
4606
4624
  unmount: unmount
4607
4625
  }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
@@ -4661,12 +4679,572 @@ var Sale = /*#__PURE__*/function () {
4661
4679
  };
4662
4680
  }();
4663
4681
 
4682
+ var SelectionContext = /*#__PURE__*/React.createContext();
4683
+
4684
+ var SelectionProvider = (function (props) {
4685
+ var _useState = useState({}),
4686
+ _useState2 = _slicedToArray(_useState, 2),
4687
+ selection = _useState2[0],
4688
+ setSelection = _useState2[1];
4689
+
4690
+ return /*#__PURE__*/React.createElement(SelectionContext.Provider, {
4691
+ value: {
4692
+ selection: selection,
4693
+ setSelection: setSelection
4694
+ }
4695
+ }, props.children);
4696
+ });
4697
+
4698
+ var msToTime = (function (ms) {
4699
+ var year, month, day, hour, minute, second;
4700
+ second = Math.floor(ms / 1000);
4701
+ minute = Math.floor(second / 60);
4702
+ second = second % 60;
4703
+ hour = Math.floor(minute / 60);
4704
+ minute = minute % 60;
4705
+ day = Math.floor(hour / 24);
4706
+ hour = hour % 24;
4707
+ month = Math.floor(day / 30);
4708
+ day = day % 30;
4709
+ year = Math.floor(month / 12);
4710
+ month = month % 12;
4711
+ return {
4712
+ year: year,
4713
+ month: month,
4714
+ day: day,
4715
+ hour: hour,
4716
+ minute: minute,
4717
+ second: second
4718
+ };
4719
+ });
4720
+
4721
+ var ConfirmTokenSelectionDialog = (function (props) {
4722
+ var _useContext = useContext(SelectionContext),
4723
+ selection = _useContext.selection;
4724
+
4725
+ var _useContext2 = useContext(ClosableContext),
4726
+ setOpen = _useContext2.setOpen;
4727
+
4728
+ var token = selection.token;
4729
+ var address = token.address || token.external_id;
4730
+ var logo = token.logo || token.image;
4731
+ var blockchain = Blockchain.findByName(token.blockchain);
4732
+ var age = token.first_transfer ? msToTime(new Date() - new Date(token.first_transfer)) : undefined;
4733
+
4734
+ if (age) {
4735
+ age = [age.year && age.year >= 1 ? age.year >= 2 ? "".concat(age.year, " years") : "1 year" : undefined, age.month && age.month >= 1 ? age.month >= 2 ? "".concat(age.month, " months") : "1 month" : undefined, age.day && age.day >= 1 && age.month <= 1 && age.year < 1 ? age.day >= 2 ? "".concat(age.day, " days !!!") : "1 day !!!" : undefined].filter(function (n) {
4736
+ return n;
4737
+ }).join(' ');
4738
+ }
4739
+
4740
+ var holders = token.unique_senders ? token.unique_senders : undefined;
4741
+
4742
+ if (holders) {
4743
+ if (holders > 1000000) {
4744
+ holders = "Millions";
4745
+ } else if (holders > 100000) {
4746
+ holders = "Hundreds of Thousands";
4747
+ } else if (holders > 2000) {
4748
+ holders = "Thousands";
4749
+ } else if (holders > 100) {
4750
+ holders = "Hundreds";
4751
+ } else {
4752
+ holders = "Only a Few!!!";
4753
+ }
4754
+ }
4755
+
4756
+ var onClickConfirm = function onClickConfirm() {
4757
+ setOpen(false);
4758
+ props.resolve({
4759
+ blockchain: token.blockchain,
4760
+ address: token.external_id || token.address,
4761
+ symbol: token.symbol,
4762
+ name: token.name,
4763
+ decimals: token.decimals,
4764
+ logo: token.image || token.logo
4765
+ });
4766
+ setTimeout(props.unmount, 300);
4767
+ };
4768
+
4769
+ return /*#__PURE__*/React.createElement(Dialog$1, {
4770
+ header: /*#__PURE__*/React.createElement("div", {
4771
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4772
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h1", {
4773
+ className: "LineHeightL FontSizeL"
4774
+ }, "Confirm Selection"))),
4775
+ stacked: true,
4776
+ body: /*#__PURE__*/React.createElement("div", {
4777
+ className: "PaddingTopS PaddingLeftM PaddingRightM"
4778
+ }, /*#__PURE__*/React.createElement("div", {
4779
+ className: "TokenImage medium"
4780
+ }, logo && /*#__PURE__*/React.createElement("img", {
4781
+ src: logo
4782
+ }), !logo && /*#__PURE__*/React.createElement(TokenImage, {
4783
+ blockchain: token.blockchain,
4784
+ address: address
4785
+ })), /*#__PURE__*/React.createElement("div", {
4786
+ className: "PaddingTopS"
4787
+ }, /*#__PURE__*/React.createElement("div", {
4788
+ className: "Alert"
4789
+ }, /*#__PURE__*/React.createElement("strong", null, "Please review this information"))), /*#__PURE__*/React.createElement("div", {
4790
+ className: "PaddingTopXS"
4791
+ }, /*#__PURE__*/React.createElement("table", {
4792
+ className: "Table"
4793
+ }, /*#__PURE__*/React.createElement("tbody", null, /*#__PURE__*/React.createElement("tr", {
4794
+ className: "small"
4795
+ }, /*#__PURE__*/React.createElement("td", {
4796
+ colSpan: "2"
4797
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("a", {
4798
+ className: "Link",
4799
+ href: blockchain.explorerUrlFor({
4800
+ token: address
4801
+ }),
4802
+ target: "_blank",
4803
+ rel: "noopener noreferrer"
4804
+ }, address)))), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4805
+ className: "TableSubTitle"
4806
+ }, "Blockchain")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, blockchain.label))), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4807
+ className: "TableSubTitle"
4808
+ }, "Symbol")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, token.symbol))), /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4809
+ className: "TableSubTitle"
4810
+ }, "Name")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, token.name))), age && /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4811
+ className: "TableSubTitle"
4812
+ }, "Age")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, age))), holders && /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", {
4813
+ className: "TableSubTitle"
4814
+ }, "Holders")), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("div", null, holders))))))),
4815
+ footer: /*#__PURE__*/React.createElement("div", {
4816
+ className: "PaddingTopS PaddingRightM PaddingLeftM PaddingBottomS"
4817
+ }, /*#__PURE__*/React.createElement("button", {
4818
+ className: "ButtonPrimary",
4819
+ onClick: onClickConfirm
4820
+ }, "Confirm"))
4821
+ });
4822
+ });
4823
+
4824
+ var SelectBlockchainDialog = (function (props) {
4825
+ var _useContext = useContext(SelectionContext),
4826
+ setSelection = _useContext.setSelection;
4827
+
4828
+ var _useContext2 = useContext(NavigateStackContext),
4829
+ navigate = _useContext2.navigate;
4830
+
4831
+ var stacked = Object.keys(props.selection).length > 1;
4832
+ var blockchains = [Blockchain.findByName('ethereum'), Blockchain.findByName('bsc')];
4833
+
4834
+ var selectBlockchain = function selectBlockchain(blockchain) {
4835
+ setSelection(Object.assign(props.selection, {
4836
+ blockchain: blockchain
4837
+ }));
4838
+
4839
+ if (stacked) {
4840
+ navigate('back');
4841
+ } else {
4842
+ props.resolve(blockchain);
4843
+ }
4844
+ };
4845
+
4846
+ var elements = blockchains.map(function (blockchain, index) {
4847
+ return /*#__PURE__*/React.createElement("div", {
4848
+ key: index,
4849
+ className: "Card Row",
4850
+ onClick: function onClick() {
4851
+ return selectBlockchain(blockchain);
4852
+ }
4853
+ }, /*#__PURE__*/React.createElement("div", {
4854
+ className: "CardImage"
4855
+ }, /*#__PURE__*/React.createElement("img", {
4856
+ className: "transparent",
4857
+ src: blockchain.logo
4858
+ })), /*#__PURE__*/React.createElement("div", {
4859
+ className: "CardBody"
4860
+ }, /*#__PURE__*/React.createElement("span", {
4861
+ className: "CardText"
4862
+ }, blockchain.label)));
4863
+ });
4864
+ return /*#__PURE__*/React.createElement(Dialog$1, {
4865
+ header: /*#__PURE__*/React.createElement("div", {
4866
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
4867
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h1", {
4868
+ className: "LineHeightL FontSizeL"
4869
+ }, "Select Blockchain"))),
4870
+ stacked: stacked,
4871
+ bodyClassName: "ScrollHeight",
4872
+ body: /*#__PURE__*/React.createElement("div", {
4873
+ className: "PaddingTopS"
4874
+ }, elements),
4875
+ footer: /*#__PURE__*/React.createElement("div", {
4876
+ className: "PaddingTopS PaddingRightM PaddingLeftM PaddingBottomS"
4877
+ })
4878
+ });
4879
+ });
4880
+
4881
+ var SelectTokenDialog = (function (props) {
4882
+ var _useContext = useContext(NavigateStackContext),
4883
+ navigate = _useContext.navigate;
4884
+
4885
+ var _useContext2 = useContext(ClosableContext),
4886
+ setOpen = _useContext2.setOpen;
4887
+
4888
+ var _useContext3 = useContext(SelectionContext),
4889
+ setSelection = _useContext3.setSelection;
4890
+
4891
+ var _useState = useState(),
4892
+ _useState2 = _slicedToArray(_useState, 2),
4893
+ requestController = _useState2[0],
4894
+ setRequestController = _useState2[1];
4895
+
4896
+ var _useState3 = useState(),
4897
+ _useState4 = _slicedToArray(_useState3, 2),
4898
+ blockchain = _useState4[0],
4899
+ setBlockchain = _useState4[1];
4900
+
4901
+ var _useState5 = useState(false),
4902
+ _useState6 = _slicedToArray(_useState5, 2),
4903
+ showAddToken = _useState6[0],
4904
+ setShowAddToken = _useState6[1];
4905
+
4906
+ var _useState7 = useState([]),
4907
+ _useState8 = _slicedToArray(_useState7, 2),
4908
+ tokens = _useState8[0],
4909
+ setTokens = _useState8[1];
4910
+
4911
+ var _useState9 = useState(),
4912
+ _useState10 = _slicedToArray(_useState9, 2);
4913
+ _useState10[0];
4914
+ _useState10[1];
4915
+
4916
+ var searchElement = useRef();
4917
+ var wallet = getWallet();
4918
+ useEffect(function () {
4919
+ var blockchain;
4920
+
4921
+ if (wallet) {
4922
+ wallet.connectedTo().then(function (name) {
4923
+ blockchain = Blockchain.findByName(name);
4924
+ setBlockchain(blockchain);
4925
+ setSelection(Object.assign(props.selection, {
4926
+ blockchain: blockchain,
4927
+ token: undefined
4928
+ }));
4929
+ setTokens(blockchain.tokens);
4930
+ });
4931
+ } else {
4932
+ blockchain = Blockchain.findByName('ethereum');
4933
+ setBlockchain(blockchain);
4934
+ setSelection(Object.assign(props.selection, {
4935
+ blockchain: blockchain,
4936
+ token: undefined
4937
+ }));
4938
+ setTokens(blockchain.tokens);
4939
+ }
4940
+ }, []);
4941
+ useEffect(function () {
4942
+ if (props.selection.blockchain) {
4943
+ setBlockchain(props.selection.blockchain);
4944
+ setTokens(props.selection.blockchain.tokens);
4945
+
4946
+ if (searchElement.current) {
4947
+ searchElement.current.value = '';
4948
+ searchElement.current.focus();
4949
+ }
4950
+ }
4951
+ }, [props.selection, props.selection.blockchain]);
4952
+
4953
+ var onClickChangeBlockchain = function onClickChangeBlockchain() {
4954
+ navigate('SelectBlockchain');
4955
+ };
4956
+
4957
+ var onClickAddToken = function onClickAddToken() {
4958
+ setShowAddToken(true);
4959
+
4960
+ if (searchElement.current) {
4961
+ searchElement.current.value = '';
4962
+ searchElement.current.focus();
4963
+ }
4964
+ };
4965
+
4966
+ var onChangeSearch = function onChangeSearch(event) {
4967
+ if (requestController) {
4968
+ requestController.abort();
4969
+ }
4970
+
4971
+ var newRequestController = new AbortController();
4972
+ setRequestController(newRequestController);
4973
+ var signal = newRequestController.signal;
4974
+ var term = event.target.value;
4975
+
4976
+ if (term.match(/^0x/)) {
4977
+ setTokens([]);
4978
+ var token;
4979
+
4980
+ try {
4981
+ token = new Token({
4982
+ blockchain: blockchain.name,
4983
+ address: term
4984
+ });
4985
+ } catch (_unused) {}
4986
+
4987
+ if (token == undefined) {
4988
+ return;
4989
+ }
4990
+
4991
+ Promise.all([token.name(), token.symbol(), token.decimals()]).then(function (_ref) {
4992
+ var _ref2 = _slicedToArray(_ref, 3),
4993
+ name = _ref2[0],
4994
+ symbol = _ref2[1],
4995
+ decimals = _ref2[2];
4996
+
4997
+ setTokens([{
4998
+ name: name,
4999
+ symbol: symbol,
5000
+ decimals: decimals,
5001
+ address: term,
5002
+ blockchain: blockchain.name
5003
+ }]);
5004
+ });
5005
+ } else if (term && term.length) {
5006
+ setTokens([]);
5007
+ fetch("https://api.depay.fi/v2/tokens/search?blockchain=".concat(blockchain.name, "&term=").concat(term), {
5008
+ signal: signal,
5009
+ headers: {
5010
+ 'X-Api-Key': apiKey
5011
+ }
5012
+ }).then(function (response) {
5013
+ if (response.status == 200) {
5014
+ response.json().then(function (tokens) {
5015
+ setTokens(tokens);
5016
+ });
5017
+ }
5018
+ })["catch"](function () {});
5019
+ } else {
5020
+ setTokens(blockchain.tokens);
5021
+ }
5022
+ };
5023
+
5024
+ var select = function select(token) {
5025
+ if (blockchain.tokens.find(function (majorToken) {
5026
+ return majorToken.address.toLowerCase() == (token.address || token.external_id).toLowerCase();
5027
+ })) {
5028
+ setOpen(false);
5029
+ props.resolve({
5030
+ blockchain: blockchain.name,
5031
+ address: token.address || token.external_id,
5032
+ logo: token.logo || token.image,
5033
+ name: token.name,
5034
+ symbol: token.symbol,
5035
+ decimals: token.decimals
5036
+ });
5037
+ setTimeout(props.unmount, 300);
5038
+ } else {
5039
+ setSelection(Object.assign(props.selection, {
5040
+ token: token
5041
+ }));
5042
+ navigate('ConfirmTokenSelection');
5043
+ }
5044
+ };
5045
+
5046
+ var elements = tokens.map(function (token, index) {
5047
+ return /*#__PURE__*/React.createElement("div", {
5048
+ key: "".concat(index, "-").concat(token.address),
5049
+ className: "Card Row",
5050
+ onClick: function onClick() {
5051
+ return select(token);
5052
+ }
5053
+ }, /*#__PURE__*/React.createElement("div", {
5054
+ className: "CardImage"
5055
+ }, token.logo && /*#__PURE__*/React.createElement("img", {
5056
+ src: token.logo
5057
+ }), token.image && /*#__PURE__*/React.createElement("img", {
5058
+ src: token.image
5059
+ }), !(token.logo || token.image) && /*#__PURE__*/React.createElement(TokenImage, {
5060
+ blockchain: token.blockchain,
5061
+ address: token.external_id || token.address
5062
+ })), /*#__PURE__*/React.createElement("div", {
5063
+ className: "CardBody"
5064
+ }, /*#__PURE__*/React.createElement("div", {
5065
+ className: "CardTokenSymbol",
5066
+ title: token.symbol
5067
+ }, /*#__PURE__*/React.createElement("span", {
5068
+ className: "CardText"
5069
+ }, token.symbol)), /*#__PURE__*/React.createElement("div", {
5070
+ className: "CardTokenName",
5071
+ title: token.name
5072
+ }, /*#__PURE__*/React.createElement("span", {
5073
+ className: "CardText"
5074
+ }, token.name))));
5075
+ });
5076
+
5077
+ if (blockchain == undefined) {
5078
+ return null;
5079
+ }
5080
+
5081
+ return /*#__PURE__*/React.createElement(Dialog$1, {
5082
+ header: /*#__PURE__*/React.createElement("div", {
5083
+ className: "PaddingTopS PaddingLeftM PaddingRightM TextLeft"
5084
+ }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h1", {
5085
+ className: "LineHeightL FontSizeL"
5086
+ }, "Select Token")), /*#__PURE__*/React.createElement("div", {
5087
+ className: "PaddingTopS PaddingBottomXS"
5088
+ }, /*#__PURE__*/React.createElement("div", {
5089
+ className: "Card small",
5090
+ onClick: onClickChangeBlockchain
5091
+ }, /*#__PURE__*/React.createElement("div", {
5092
+ className: "CardImage small"
5093
+ }, /*#__PURE__*/React.createElement("img", {
5094
+ className: "transparent",
5095
+ src: blockchain.logo
5096
+ })), /*#__PURE__*/React.createElement("div", {
5097
+ className: "CardBody"
5098
+ }, blockchain.label), /*#__PURE__*/React.createElement("div", {
5099
+ className: "CardAction"
5100
+ }, /*#__PURE__*/React.createElement(ChevronRight, null)))), /*#__PURE__*/React.createElement("div", {
5101
+ className: "PaddingTopXS PaddingBottomS"
5102
+ }, /*#__PURE__*/React.createElement("input", {
5103
+ onChange: onChangeSearch,
5104
+ className: "Search",
5105
+ autoFocus: true,
5106
+ placeholder: "Search name or paste address",
5107
+ ref: searchElement
5108
+ }), showAddToken && /*#__PURE__*/React.createElement("div", {
5109
+ className: "PaddingTopXS PaddingRightXS PaddingLeftXS"
5110
+ }, /*#__PURE__*/React.createElement("div", {
5111
+ className: "Tooltip"
5112
+ }, /*#__PURE__*/React.createElement("span", {
5113
+ className: "TooltipArrowUp"
5114
+ }), "Paste or enter token address here!")))),
5115
+ bodyClassName: "ScrollHeight",
5116
+ body: /*#__PURE__*/React.createElement("div", {
5117
+ className: ""
5118
+ }, elements),
5119
+ footer: /*#__PURE__*/React.createElement("div", {
5120
+ className: "PaddingTopS PaddingRightM PaddingLeftM PaddingBottomS"
5121
+ }, /*#__PURE__*/React.createElement("div", {
5122
+ className: "PaddingTopXS PaddingBottomXS"
5123
+ }, /*#__PURE__*/React.createElement("div", {
5124
+ className: "Link",
5125
+ onClick: onClickAddToken
5126
+ }, "Token missing? Add it.")))
5127
+ });
5128
+ });
5129
+
5130
+ var SelectStack = (function (props) {
5131
+ var _useContext = useContext(ConfigurationContext),
5132
+ what = _useContext.what;
5133
+
5134
+ var _useContext2 = useContext(ClosableContext),
5135
+ open = _useContext2.open,
5136
+ close = _useContext2.close;
5137
+
5138
+ var _useContext3 = useContext(SelectionContext),
5139
+ selection = _useContext3.selection;
5140
+
5141
+ var start;
5142
+
5143
+ switch (what) {
5144
+ default:
5145
+ start = 'SelectToken';
5146
+ }
5147
+
5148
+ return /*#__PURE__*/React.createElement(ReactDialogStack, {
5149
+ open: open,
5150
+ close: close,
5151
+ start: start,
5152
+ container: props.container,
5153
+ document: props.document,
5154
+ dialogs: {
5155
+ SelectToken: /*#__PURE__*/React.createElement(SelectTokenDialog, {
5156
+ selection: selection,
5157
+ resolve: props.resolve,
5158
+ unmount: props.unmount
5159
+ }),
5160
+ SelectBlockchain: /*#__PURE__*/React.createElement(SelectBlockchainDialog, {
5161
+ selection: selection,
5162
+ resolve: props.resolve
5163
+ }),
5164
+ ConfirmTokenSelection: /*#__PURE__*/React.createElement(ConfirmTokenSelectionDialog, {
5165
+ selection: selection,
5166
+ resolve: props.resolve,
5167
+ unmount: props.unmount
5168
+ })
5169
+ }
5170
+ });
5171
+ });
5172
+
5173
+ var Select = function Select(options) {
5174
+ var style, error, document, what;
5175
+
5176
+ if (_typeof(options) == 'object') {
5177
+ style = options.style;
5178
+ error = options.error;
5179
+ document = options.document;
5180
+ what = options.what;
5181
+ }
5182
+
5183
+ var startupError;
5184
+
5185
+ if (what == undefined) {
5186
+ startupError = '"what" needs to be configured!';
5187
+ } else if (['token'].indexOf(what) < 0) {
5188
+ startupError = "Unknown \"what\" configured: ".concat(what, "!");
5189
+ }
5190
+
5191
+ return new Promise( /*#__PURE__*/function () {
5192
+ var _ref = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(resolve, reject) {
5193
+ return regenerator.wrap(function _callee$(_context) {
5194
+ while (1) {
5195
+ switch (_context.prev = _context.next) {
5196
+ case 0:
5197
+ mount({
5198
+ style: style,
5199
+ document: ensureDocument(document)
5200
+ }, function (unmount) {
5201
+ var userClosedDialog = function userClosedDialog() {
5202
+ reject('USER_CLOSED_DIALOG');
5203
+ unmount();
5204
+ };
5205
+
5206
+ return function (container) {
5207
+ return /*#__PURE__*/React.createElement(ErrorProvider, {
5208
+ error: startupError,
5209
+ errorCallback: error,
5210
+ container: container,
5211
+ unmount: unmount
5212
+ }, /*#__PURE__*/React.createElement(ConfigurationProvider, {
5213
+ configuration: {
5214
+ what: what
5215
+ }
5216
+ }, /*#__PURE__*/React.createElement(UpdatableProvider, null, /*#__PURE__*/React.createElement(ClosableProvider, {
5217
+ unmount: userClosedDialog
5218
+ }, /*#__PURE__*/React.createElement(SelectionProvider, null, /*#__PURE__*/React.createElement(SelectStack, {
5219
+ document: document,
5220
+ container: container,
5221
+ unmount: unmount,
5222
+ resolve: resolve
5223
+ })), /*#__PURE__*/React.createElement(PoweredBy, null)))));
5224
+ };
5225
+ });
5226
+
5227
+ case 1:
5228
+ case "end":
5229
+ return _context.stop();
5230
+ }
5231
+ }
5232
+ }, _callee);
5233
+ }));
5234
+
5235
+ return function (_x, _x2) {
5236
+ return _ref.apply(this, arguments);
5237
+ };
5238
+ }());
5239
+ };
5240
+
4664
5241
  var DePayWidgets = {
4665
5242
  Connect: Connect,
4666
5243
  Donation: Donation,
4667
5244
  Login: Login,
4668
5245
  Payment: Payment,
4669
5246
  Sale: Sale,
5247
+ Select: Select,
4670
5248
  provider: provider
4671
5249
  };
4672
5250