@rabbitio/ui-kit 1.0.0-beta.83 → 1.0.0-beta.85

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 (216) hide show
  1. package/coverage/base.css +224 -0
  2. package/coverage/block-navigation.js +87 -0
  3. package/coverage/clover.xml +15720 -0
  4. package/coverage/coverage-final.json +112 -0
  5. package/coverage/favicon.png +0 -0
  6. package/coverage/index.html +986 -0
  7. package/coverage/prettify.css +1 -0
  8. package/coverage/prettify.js +2 -0
  9. package/coverage/rabbit-ui-kit/index.html +116 -0
  10. package/coverage/rabbit-ui-kit/index.js.html +88 -0
  11. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/googleAnalyticsAdapter.js.html +148 -0
  12. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/index.html +131 -0
  13. package/coverage/rabbit-ui-kit/src/common-apis/adapters/analyticsAdapters/mixpanelAdapter.js.html +199 -0
  14. package/coverage/rabbit-ui-kit/src/common-apis/adapters/axiosAdapter.js.html +190 -0
  15. package/coverage/rabbit-ui-kit/src/common-apis/adapters/index.html +131 -0
  16. package/coverage/rabbit-ui-kit/src/common-apis/adapters/qrUtils.js.html +139 -0
  17. package/coverage/rabbit-ui-kit/src/common-apis/amountUtils.js.html +1162 -0
  18. package/coverage/rabbit-ui-kit/src/common-apis/errorUtils.js.html +211 -0
  19. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/apiGroups.js.html +250 -0
  20. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/index.html +131 -0
  21. package/coverage/rabbit-ui-kit/src/common-apis/external-apis/ipAddressProviders.js.html +352 -0
  22. package/coverage/rabbit-ui-kit/src/common-apis/fiatCurrenciesService.js.html +544 -0
  23. package/coverage/rabbit-ui-kit/src/common-apis/globalConstants.jsx.html +94 -0
  24. package/coverage/rabbit-ui-kit/src/common-apis/index.html +161 -0
  25. package/coverage/rabbit-ui-kit/src/common-apis/models/blockchain.js.html +115 -0
  26. package/coverage/rabbit-ui-kit/src/common-apis/models/coin.js.html +544 -0
  27. package/coverage/rabbit-ui-kit/src/common-apis/models/index.html +146 -0
  28. package/coverage/rabbit-ui-kit/src/common-apis/models/protocol.js.html +100 -0
  29. package/coverage/rabbit-ui-kit/src/common-apis/utils/cache.js.html +811 -0
  30. package/coverage/rabbit-ui-kit/src/common-apis/utils/emailAPI.js.html +133 -0
  31. package/coverage/rabbit-ui-kit/src/common-apis/utils/index.html +161 -0
  32. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/index.html +131 -0
  33. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/logger.js.html +208 -0
  34. package/coverage/rabbit-ui-kit/src/common-apis/utils/logging/logsStorage.js.html +268 -0
  35. package/coverage/rabbit-ui-kit/src/common-apis/utils/postponeExecution.js.html +118 -0
  36. package/coverage/rabbit-ui-kit/src/common-apis/utils/safeStringify.js.html +235 -0
  37. package/coverage/rabbit-ui-kit/src/index.html +116 -0
  38. package/coverage/rabbit-ui-kit/src/index.js.html +358 -0
  39. package/coverage/rabbit-ui-kit/src/robust-api-caller/cacheAndConcurrentRequestsResolver.js.html +1570 -0
  40. package/coverage/rabbit-ui-kit/src/robust-api-caller/cachedRobustExternalApiCallerService.js.html +526 -0
  41. package/coverage/rabbit-ui-kit/src/robust-api-caller/cancelProcessing.js.html +172 -0
  42. package/coverage/rabbit-ui-kit/src/robust-api-caller/concurrentCalculationsMetadataHolder.js.html +310 -0
  43. package/coverage/rabbit-ui-kit/src/robust-api-caller/externalApiProvider.js.html +553 -0
  44. package/coverage/rabbit-ui-kit/src/robust-api-caller/externalServicesStatsCollector.js.html +319 -0
  45. package/coverage/rabbit-ui-kit/src/robust-api-caller/index.html +206 -0
  46. package/coverage/rabbit-ui-kit/src/robust-api-caller/robustExternalAPICallerService.js.html +997 -0
  47. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/index.html +146 -0
  48. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/letsExchangeSwapProvider.js.html +1543 -0
  49. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapProvider.js.html +1705 -0
  50. package/coverage/rabbit-ui-kit/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +1801 -0
  51. package/coverage/rabbit-ui-kit/src/swaps-lib/models/baseSwapCreationInfo.js.html +223 -0
  52. package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwap.js.html +304 -0
  53. package/coverage/rabbit-ui-kit/src/swaps-lib/models/existingSwapWithFiatData.js.html +469 -0
  54. package/coverage/rabbit-ui-kit/src/swaps-lib/models/index.html +176 -0
  55. package/coverage/rabbit-ui-kit/src/swaps-lib/models/partner.js.html +106 -0
  56. package/coverage/rabbit-ui-kit/src/swaps-lib/models/swapProviderCoinInfo.js.html +193 -0
  57. package/coverage/rabbit-ui-kit/src/swaps-lib/services/index.html +116 -0
  58. package/coverage/rabbit-ui-kit/src/swaps-lib/services/publicSwapService.js.html +2161 -0
  59. package/coverage/rabbit-ui-kit/src/swaps-lib/utils/index.html +116 -0
  60. package/coverage/rabbit-ui-kit/src/swaps-lib/utils/swapUtils.js.html +670 -0
  61. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowIcon.jsx.html +124 -0
  62. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowTosca.jsx.html +127 -0
  63. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/arrowWhite.jsx.html +127 -0
  64. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/darkRectangle.jsx.html +106 -0
  65. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/determinedError.jsx.html +439 -0
  66. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/failedValidationIcon.jsx.html +202 -0
  67. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/index.html +281 -0
  68. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/infoIcon.jsx.html +133 -0
  69. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/messageIcon.jsx.html +346 -0
  70. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/noticeQuestionIcon.jsx.html +247 -0
  71. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/successfulValidationIcon.jsx.html +163 -0
  72. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/supportDialogImage.jsx.html +268 -0
  73. package/coverage/rabbit-ui-kit/src/ui-kit/assets/wrappedImages/walletIcon.jsx.html +151 -0
  74. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetIcon/AssetIcon.jsx.html +256 -0
  75. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetIcon/index.html +116 -0
  76. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/AssetSelection.jsx.html +289 -0
  77. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/AssetSelection/index.html +116 -0
  78. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +187 -0
  79. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/BackgroundTitle/index.html +116 -0
  80. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/InformationMessage.jsx.html +238 -0
  81. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/InformationMessage/index.html +116 -0
  82. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Input/Input.jsx.html +634 -0
  83. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Input/index.html +116 -0
  84. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/LoadingDots/LoadingDots.jsx.html +196 -0
  85. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/LoadingDots/index.html +116 -0
  86. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/NoticeIcon.jsx.html +277 -0
  87. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/NoticeIcon/index.html +116 -0
  88. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/QrCode/QrCode.jsx.html +217 -0
  89. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/QrCode/index.html +116 -0
  90. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx.html +175 -0
  91. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/RateSelector/index.html +116 -0
  92. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/SupportChat.jsx.html +217 -0
  93. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/SupportChat/index.html +116 -0
  94. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/Textarea.jsx.html +529 -0
  95. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Textarea/index.html +116 -0
  96. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/TitleBox.jsx.html +508 -0
  97. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TitleBox/index.html +116 -0
  98. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/Tooltip.jsx.html +316 -0
  99. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Tooltip/index.html +116 -0
  100. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +313 -0
  101. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/TwoLinesOfText/index.html +116 -0
  102. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/Validation.jsx.html +202 -0
  103. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/Validation/index.html +116 -0
  104. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Button/Button.jsx.html +712 -0
  105. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Button/index.html +116 -0
  106. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Close/Close.jsx.html +259 -0
  107. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/Close/index.html +116 -0
  108. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/LinkButton.jsx.html +421 -0
  109. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/LinkButton/index.html +116 -0
  110. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +415 -0
  111. package/coverage/rabbit-ui-kit/src/ui-kit/components/atoms/buttons/RadioButtonWithText/index.html +116 -0
  112. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx.html +1087 -0
  113. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/AmountInput/index.html +116 -0
  114. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx.html +1474 -0
  115. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/CoinPicker/index.html +116 -0
  116. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/ColoredNotice/ColoredNotice.jsx.html +211 -0
  117. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/ColoredNotice/index.html +116 -0
  118. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +190 -0
  119. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LineWithIconLink/index.html +116 -0
  120. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LogoCarousel/LogoCarousel.jsx.html +283 -0
  121. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/LogoCarousel/index.html +116 -0
  122. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/SearchableCoinsList.jsx.html +496 -0
  123. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/SearchableCoinsList/index.html +116 -0
  124. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +181 -0
  125. package/coverage/rabbit-ui-kit/src/ui-kit/components/molecules/TitledLineWithIconLink/index.html +116 -0
  126. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +283 -0
  127. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/CoinPickerDialogStep/index.html +116 -0
  128. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/Dialog.jsx.html +1567 -0
  129. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +481 -0
  130. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogButtons/index.html +116 -0
  131. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +1747 -0
  132. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/DialogStep/index.html +116 -0
  133. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/Dialog/index.html +116 -0
  134. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx.html +4168 -0
  135. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/SwapForm/index.html +116 -0
  136. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/WaitlistSubscription.jsx.html +559 -0
  137. package/coverage/rabbit-ui-kit/src/ui-kit/components/organisms/WaitlistSubscription/index.html +116 -0
  138. package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +316 -0
  139. package/coverage/rabbit-ui-kit/src/ui-kit/components/templates/DeterminedErrorDialogStep/index.html +116 -0
  140. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/index.html +146 -0
  141. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useCallHandlingErrors.js.html +151 -0
  142. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useIsHydrated.js.html +121 -0
  143. package/coverage/rabbit-ui-kit/src/ui-kit/hooks/useReferredState.js.html +157 -0
  144. package/coverage/rabbit-ui-kit/src/ui-kit/utils/index.html +161 -0
  145. package/coverage/rabbit-ui-kit/src/ui-kit/utils/inputValueProviders.js.html +235 -0
  146. package/coverage/rabbit-ui-kit/src/ui-kit/utils/textUtils.js.html +139 -0
  147. package/coverage/rabbit-ui-kit/src/ui-kit/utils/uiUtils.js.html +121 -0
  148. package/coverage/rabbit-ui-kit/src/ui-kit/utils/urlQueryUtils.js.html +271 -0
  149. package/coverage/rabbit-ui-kit/stories/atoms/BackgroundTitle.stories.jsx.html +202 -0
  150. package/coverage/rabbit-ui-kit/stories/atoms/LinesOfText.stories.jsx.html +283 -0
  151. package/coverage/rabbit-ui-kit/stories/atoms/LoadingDots.stories.jsx.html +226 -0
  152. package/coverage/rabbit-ui-kit/stories/atoms/QrCode.stories.jsx.html +175 -0
  153. package/coverage/rabbit-ui-kit/stories/atoms/RateSelector.stories.jsx.html +136 -0
  154. package/coverage/rabbit-ui-kit/stories/atoms/Validation.stories.jsx.html +178 -0
  155. package/coverage/rabbit-ui-kit/stories/atoms/buttons/Button.stories.jsx.html +883 -0
  156. package/coverage/rabbit-ui-kit/stories/atoms/buttons/Close.stories.jsx.html +211 -0
  157. package/coverage/rabbit-ui-kit/stories/atoms/buttons/LinkButton.stories.jsx.html +301 -0
  158. package/coverage/rabbit-ui-kit/stories/atoms/buttons/index.html +146 -0
  159. package/coverage/rabbit-ui-kit/stories/atoms/index.html +191 -0
  160. package/coverage/rabbit-ui-kit/stories/molecules/CoinPicker.stories.jsx.html +322 -0
  161. package/coverage/rabbit-ui-kit/stories/molecules/ColoredNotice.stories.jsx.html +178 -0
  162. package/coverage/rabbit-ui-kit/stories/molecules/LineWithIconLink.stories.jsx.html +154 -0
  163. package/coverage/rabbit-ui-kit/stories/molecules/LogoCarousel.stories.jsx.html +160 -0
  164. package/coverage/rabbit-ui-kit/stories/molecules/TitledLineWithIconLink.stories.jsx.html +160 -0
  165. package/coverage/rabbit-ui-kit/stories/molecules/index.html +176 -0
  166. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/Dialog.stories.jsx.html +523 -0
  167. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +328 -0
  168. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogButtons/index.html +116 -0
  169. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +337 -0
  170. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/DialogStep/index.html +116 -0
  171. package/coverage/rabbit-ui-kit/stories/organisms/Dialog/index.html +116 -0
  172. package/coverage/rabbit-ui-kit/stories/organisms/WaitlistSubscription.stories.jsx.html +151 -0
  173. package/coverage/rabbit-ui-kit/stories/organisms/index.html +116 -0
  174. package/coverage/rabbit-ui-kit/stories/stubs/coins.jsx.html +6880 -0
  175. package/coverage/rabbit-ui-kit/stories/stubs/exampleContent.jsx.html +145 -0
  176. package/coverage/rabbit-ui-kit/stories/stubs/index.html +131 -0
  177. package/coverage/rabbit-ui-kit/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +190 -0
  178. package/coverage/rabbit-ui-kit/stories/templates/index.html +116 -0
  179. package/coverage/sort-arrow-sprite.png +0 -0
  180. package/coverage/sorter.js +196 -0
  181. package/dist/global.css.map +1 -1
  182. package/dist/index.cjs +1139 -496
  183. package/dist/index.cjs.map +1 -1
  184. package/dist/index.css +111 -0
  185. package/dist/index.css.map +1 -1
  186. package/dist/index.modern.js +950 -420
  187. package/dist/index.modern.js.map +1 -1
  188. package/dist/index.module.js +1136 -497
  189. package/dist/index.module.js.map +1 -1
  190. package/dist/index.umd.js +1139 -496
  191. package/dist/index.umd.js.map +1 -1
  192. package/package.json +1 -1
  193. package/src/index.js +4 -0
  194. package/src/swaps-lib/external-apis/letsExchangeSwapProvider.js +11 -0
  195. package/src/swaps-lib/external-apis/swapProvider.js +8 -0
  196. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +20 -1
  197. package/src/swaps-lib/models/partner.js +7 -0
  198. package/src/swaps-lib/services/publicSwapService.js +17 -0
  199. package/src/ui-kit/assets/styles/global.scss +4 -7
  200. package/src/ui-kit/assets/wrappedImages/messageIcon.jsx +87 -0
  201. package/src/ui-kit/assets/wrappedImages/supportDialogImage.jsx +61 -0
  202. package/src/ui-kit/components/atoms/RateSelector/RateSelector.jsx +2 -2
  203. package/src/ui-kit/components/atoms/Validation/Validation.jsx +7 -9
  204. package/src/ui-kit/components/atoms/Validation/validation.module.scss +4 -0
  205. package/src/ui-kit/components/molecules/AmountInput/AmountInput.jsx +57 -48
  206. package/src/ui-kit/components/molecules/AmountInput/amount-input.module.scss +34 -0
  207. package/src/ui-kit/components/molecules/CoinPicker/CoinPicker.jsx +84 -132
  208. package/src/ui-kit/components/molecules/ColoredNotice/ColoredNotice.jsx +42 -0
  209. package/src/ui-kit/components/molecules/ColoredNotice/colored-notice.module.scss +20 -0
  210. package/src/ui-kit/components/molecules/LogoCarousel/LogoCarousel.jsx +66 -0
  211. package/src/ui-kit/components/molecules/LogoCarousel/logo-carousel.module.scss +87 -0
  212. package/src/ui-kit/components/molecules/SearchableCoinsList/SearchableCoinsList.jsx +137 -0
  213. package/src/ui-kit/components/organisms/Dialog/DialogButtons/DialogButtons.jsx +10 -0
  214. package/src/ui-kit/components/organisms/Dialog/DialogStep/DialogStep.jsx +16 -0
  215. package/src/ui-kit/components/organisms/SwapForm/SwapForm.jsx +35 -12
  216. package/src/ui-kit/components/organisms/WaitlistSubscription/WaitlistSubscription.jsx +158 -0
@@ -1,7 +1,7 @@
1
1
  import React, { useState, useRef, useEffect, useCallback, forwardRef } from 'react';
2
2
  import { CSSTransition } from 'react-transition-group';
3
3
  import AnimateHeight from 'react-animate-height';
4
- import ResizeObserver from 'resize-observer-polyfill';
4
+ import ResizeObserver$1 from 'resize-observer-polyfill';
5
5
  import { clearAllBodyScrollLocks, enableBodyScroll, disableBodyScroll } from 'body-scroll-lock';
6
6
  import animateScrollTo from 'animated-scroll-to';
7
7
  import copy from 'clipboard-copy';
@@ -1456,7 +1456,7 @@ SupportChat.defaultProps = {
1456
1456
  locale: "en"
1457
1457
  };
1458
1458
 
1459
- var s$m = {"asset-icon":"_0RwWA","small":"_QL4L6","asset-icon-primary":"_ltTJa","asset-icon-secondary":"_3rtPy"};
1459
+ var s$o = {"asset-icon":"_0RwWA","small":"_QL4L6","asset-icon-primary":"_ltTJa","asset-icon-secondary":"_3rtPy"};
1460
1460
 
1461
1461
  /**
1462
1462
  * AssetIcon component to display an icon for an asset.
@@ -1481,16 +1481,16 @@ var AssetIcon = function AssetIcon(_ref) {
1481
1481
  e.target.src = fallbackSrc;
1482
1482
  };
1483
1483
  return /*#__PURE__*/React.createElement("div", {
1484
- className: s$m["asset-icon"] + (small ? " " + s$m["small"] : "")
1484
+ className: s$o["asset-icon"] + (small ? " " + s$o["small"] : "")
1485
1485
  }, /*#__PURE__*/React.createElement("img", {
1486
1486
  src: assetIconSrc,
1487
- className: s$m["asset-icon-primary"] + (small ? " " + s$m["small"] : ""),
1487
+ className: s$o["asset-icon-primary"] + (small ? " " + s$o["small"] : ""),
1488
1488
  alt: " ",
1489
1489
  onError: handleFailedLoad,
1490
1490
  loading: "lazy"
1491
1491
  }), assetIconProtocolSrc ? /*#__PURE__*/React.createElement("img", {
1492
1492
  src: assetIconProtocolSrc,
1493
- className: s$m["asset-icon-secondary"] + (small ? " " + s$m["small"] : ""),
1493
+ className: s$o["asset-icon-secondary"] + (small ? " " + s$o["small"] : ""),
1494
1494
  alt: " ",
1495
1495
  onError: handleFailedLoad,
1496
1496
  loading: "lazy"
@@ -1646,7 +1646,7 @@ var Logger = /*#__PURE__*/function () {
1646
1646
  return Logger;
1647
1647
  }();
1648
1648
 
1649
- function _catch$f(body, recover) {
1649
+ function _catch$g(body, recover) {
1650
1650
  try {
1651
1651
  var result = body();
1652
1652
  } catch (e) {
@@ -1662,7 +1662,7 @@ function useCallHandlingErrors() {
1662
1662
  setState = _useState[1];
1663
1663
  return useCallback(function (functionToBeCalled, event) {
1664
1664
  try {
1665
- var _temp = _catch$f(function () {
1665
+ var _temp = _catch$g(function () {
1666
1666
  return Promise.resolve(functionToBeCalled(event)).then(function () {});
1667
1667
  }, function (error) {
1668
1668
  Logger.logError(error, (functionToBeCalled == null ? void 0 : functionToBeCalled.name) || "errorBoundaryTrigger", "Caught by ErrorBoundary");
@@ -1678,7 +1678,7 @@ function useCallHandlingErrors() {
1678
1678
  }, []);
1679
1679
  }
1680
1680
 
1681
- var s$l = {"link-button-text":"_1Qn04","link-button":"_UDMz-","disabled":"_UtHO6","icon-rotate-90deg":"_v0g-W","icon-rotate-180deg":"_oxet9","icon-rotate-270deg":"_0aAbG","colored":"_UlsXW"};
1681
+ var s$n = {"link-button-text":"_1Qn04","link-button":"_UDMz-","disabled":"_UtHO6","icon-rotate-90deg":"_v0g-W","icon-rotate-180deg":"_oxet9","icon-rotate-270deg":"_0aAbG","colored":"_UlsXW"};
1682
1682
 
1683
1683
  var ICON_ROTATE_OPTIONS = {
1684
1684
  rotate0: "0deg",
@@ -1747,14 +1747,14 @@ var LinkButton = function LinkButton(_ref) {
1747
1747
  return isLoading ? /*#__PURE__*/React.createElement(LoadingDots, {
1748
1748
  isColored: true
1749
1749
  }) : /*#__PURE__*/React.createElement("div", {
1750
- className: s$l["link-button"] + (" " + (processedIconRotation && processedIconRotation !== ICON_ROTATE_OPTIONS.rotate0 ? " " + s$l["icon-rotate-" + processedIconRotation] : "") + " " + (isDisabled ? " " + s$l["disabled"] : "")),
1750
+ className: s$n["link-button"] + (" " + (processedIconRotation && processedIconRotation !== ICON_ROTATE_OPTIONS.rotate0 ? " " + s$n["icon-rotate-" + processedIconRotation] : "") + " " + (isDisabled ? " " + s$n["disabled"] : "")),
1751
1751
  onClick: handleClick
1752
1752
  }, icon ? /*#__PURE__*/React.createElement("img", {
1753
1753
  src: icon,
1754
1754
  alt: "link button alt",
1755
1755
  loading: "lazy"
1756
1756
  }) : null, IconComponent ? /*#__PURE__*/React.createElement(IconComponent, null) : null, /*#__PURE__*/React.createElement("p", {
1757
- className: s$l["link-button-text"] + (" " + (isColored ? s$l["colored"] : "") + " " + (isDisabled ? s$l["disabled"] : ""))
1757
+ className: s$n["link-button-text"] + (" " + (isColored ? s$n["colored"] : "") + " " + (isDisabled ? s$n["disabled"] : ""))
1758
1758
  }, content));
1759
1759
  };
1760
1760
  LinkButton.propTypes = {
@@ -1777,7 +1777,7 @@ LinkButton.defaultProps = {
1777
1777
  iconRotate: ICON_ROTATE_OPTIONS.rotate0
1778
1778
  };
1779
1779
 
1780
- var s$k = {"dialog-buttons":"_UtFG3","hide-on-mobiles":"_fVQUd","space-between-layout":"_zVTkC"};
1780
+ var s$m = {"dialog-buttons":"_UtFG3","hide-on-mobiles":"_fVQUd","space-between-layout":"_zVTkC"};
1781
1781
 
1782
1782
  /**
1783
1783
  * Renders a dialog component with configurable primary and secondary buttons.
@@ -1788,11 +1788,13 @@ var s$k = {"dialog-buttons":"_UtFG3","hide-on-mobiles":"_fVQUd","space-between-l
1788
1788
  * @param {Object} props - Props for configuring the DialogButtons.
1789
1789
  * @param {string} [props.primaryButtonTitle] - The text to display on the primary button.
1790
1790
  * @param {Function} props.primaryButtonOnClick - Function to call when the primary button is clicked.
1791
+ * @param {boolean} props.primaryButtonEnabled - Determines whether the secondary button is enabled.
1791
1792
  * @param {boolean} [props.primaryButtonLoader=false] - Whether to show a loader on the primary button.
1792
1793
  * @param {string} [props.primaryButtonTo] - The URL or route the primary button should navigate to.
1793
1794
  * @param {Function} [props.primaryButtonSetClickTrigger] - Additional click handling logic for the primary button.
1794
1795
  * @param {string} [props.secondaryButtonTitle] - The text to display on the secondary button.
1795
1796
  * @param {Function} props.secondaryButtonOnClick - Function to call when the secondary button is clicked.
1797
+ * @param {boolean} props.secondaryButtonEnabled - Determines whether the primary button is enabled.
1796
1798
  * @param {string} [props.secondaryButtonTo] - The URL or route the secondary button should navigate to.
1797
1799
  * @param {boolean} [props.secondaryButtonBig=false] - Makes the secondary button larger for visual emphasis.
1798
1800
  * @param {boolean} [props.withBackgroundImage=false] - Indicates if the button should adjust its styling for background images.
@@ -1802,12 +1804,14 @@ var s$k = {"dialog-buttons":"_UtFG3","hide-on-mobiles":"_fVQUd","space-between-l
1802
1804
  var DialogButtons = function DialogButtons(_ref) {
1803
1805
  var primaryButtonTitle = _ref.primaryButtonTitle,
1804
1806
  primaryButtonOnClick = _ref.primaryButtonOnClick,
1807
+ primaryButtonEnabled = _ref.primaryButtonEnabled,
1805
1808
  _ref$primaryButtonLoa = _ref.primaryButtonLoader,
1806
1809
  primaryButtonLoader = _ref$primaryButtonLoa === void 0 ? false : _ref$primaryButtonLoa,
1807
1810
  primaryButtonTo = _ref.primaryButtonTo,
1808
1811
  primaryButtonSetClickTrigger = _ref.primaryButtonSetClickTrigger,
1809
1812
  secondaryButtonTitle = _ref.secondaryButtonTitle,
1810
1813
  secondaryButtonOnClick = _ref.secondaryButtonOnClick,
1814
+ secondaryButtonEnabled = _ref.secondaryButtonEnabled,
1811
1815
  secondaryButtonTo = _ref.secondaryButtonTo,
1812
1816
  _ref$secondaryButtonB = _ref.secondaryButtonBig,
1813
1817
  secondaryButtonBig = _ref$secondaryButtonB === void 0 ? false : _ref$secondaryButtonB,
@@ -1817,7 +1821,7 @@ var DialogButtons = function DialogButtons(_ref) {
1817
1821
  hideOnMobiles = _ref$hideOnMobiles === void 0 ? false : _ref$hideOnMobiles;
1818
1822
  var callHandlingErrors = useCallHandlingErrors();
1819
1823
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
1820
- className: s$k["dialog-buttons"] + (hideOnMobiles ? " " + s$k["hide-on-mobiles"] : "") + (secondaryButtonBig ? " " + s$k["space-between-layout"] : "")
1824
+ className: s$m["dialog-buttons"] + (hideOnMobiles ? " " + s$m["hide-on-mobiles"] : "") + (secondaryButtonBig ? " " + s$m["space-between-layout"] : "")
1821
1825
  }, secondaryButtonTitle ? secondaryButtonTo ? /*#__PURE__*/React.createElement(Button, {
1822
1826
  mode: "primary-transparent",
1823
1827
  to: secondaryButtonTo,
@@ -1826,7 +1830,8 @@ var DialogButtons = function DialogButtons(_ref) {
1826
1830
  fullWidthOnMobiles: true,
1827
1831
  content: secondaryButtonTitle,
1828
1832
  onClick: secondaryButtonOnClick,
1829
- handleError: callHandlingErrors
1833
+ handleError: callHandlingErrors,
1834
+ isDisabled: !secondaryButtonEnabled
1830
1835
  }) : secondaryButtonBig ? /*#__PURE__*/React.createElement(Button, {
1831
1836
  mode: "transparent",
1832
1837
  size: "lg",
@@ -1834,11 +1839,13 @@ var DialogButtons = function DialogButtons(_ref) {
1834
1839
  fullWidthOnMobiles: true,
1835
1840
  content: secondaryButtonTitle,
1836
1841
  onClick: secondaryButtonOnClick,
1837
- handleError: callHandlingErrors
1842
+ handleError: callHandlingErrors,
1843
+ isDisabled: !secondaryButtonEnabled
1838
1844
  }) : /*#__PURE__*/React.createElement(LinkButton, {
1839
1845
  onClick: secondaryButtonOnClick,
1840
1846
  content: secondaryButtonTitle,
1841
- isColored: !withBackgroundImage
1847
+ isColored: !withBackgroundImage,
1848
+ isDisabled: !secondaryButtonEnabled
1842
1849
  }) : null, primaryButtonTitle ? /*#__PURE__*/React.createElement(Button, {
1843
1850
  mode: "primary",
1844
1851
  size: "lg",
@@ -1848,17 +1855,20 @@ var DialogButtons = function DialogButtons(_ref) {
1848
1855
  fullWidthOnMobiles: true,
1849
1856
  content: primaryButtonTitle,
1850
1857
  setClickTrigger: primaryButtonSetClickTrigger,
1851
- handleError: callHandlingErrors
1858
+ handleError: callHandlingErrors,
1859
+ isDisabled: !primaryButtonEnabled
1852
1860
  }) : null));
1853
1861
  };
1854
1862
  DialogButtons.propTypes = {
1855
1863
  primaryButtonTitle: PropTypes.string,
1856
1864
  primaryButtonOnClick: PropTypes.func,
1865
+ primaryButtonEnabled: PropTypes.bool,
1857
1866
  primaryButtonLoader: PropTypes.bool,
1858
1867
  primaryButtonTo: PropTypes.string,
1859
1868
  primaryButtonSetClickTrigger: PropTypes.func,
1860
1869
  secondaryButtonTitle: PropTypes.string,
1861
1870
  secondaryButtonOnClick: PropTypes.func,
1871
+ secondaryButtonEnabled: PropTypes.bool,
1862
1872
  secondaryButtonTo: PropTypes.string,
1863
1873
  secondaryButtonBig: PropTypes.bool,
1864
1874
  withBackgroundImage: PropTypes.bool,
@@ -1871,7 +1881,7 @@ DialogButtons.defaultProps = {
1871
1881
  hideOnMobiles: false
1872
1882
  };
1873
1883
 
1874
- var s$j = {"background-title":"_Gzho7","background-title-wrapper":"_Rvcyg","small-margins":"_WjuWI","background-title-wrapper-text":"_cAVcA"};
1884
+ var s$l = {"background-title":"_Gzho7","background-title-wrapper":"_Rvcyg","small-margins":"_WjuWI","background-title-wrapper-text":"_cAVcA"};
1875
1885
 
1876
1886
  /**
1877
1887
  * Component for displaying a title with a fancy background text, which
@@ -1887,11 +1897,11 @@ var BackgroundTitle = function BackgroundTitle(_ref) {
1887
1897
  _ref$smallMargins = _ref.smallMargins,
1888
1898
  smallMargins = _ref$smallMargins === void 0 ? false : _ref$smallMargins;
1889
1899
  return /*#__PURE__*/React.createElement("div", {
1890
- className: s$j["background-title"]
1900
+ className: s$l["background-title"]
1891
1901
  }, /*#__PURE__*/React.createElement("div", {
1892
- className: s$j["background-title-wrapper"] + (smallMargins ? " " + s$j["small-margins"] : "")
1902
+ className: s$l["background-title-wrapper"] + (smallMargins ? " " + s$l["small-margins"] : "")
1893
1903
  }, /*#__PURE__*/React.createElement("div", {
1894
- className: s$j["background-title-wrapper-text"] + (smallMargins ? " " + s$j["small-margins"] : "")
1904
+ className: s$l["background-title-wrapper-text"] + (smallMargins ? " " + s$l["small-margins"] : "")
1895
1905
  }, text)));
1896
1906
  };
1897
1907
  BackgroundTitle.propTypes = {
@@ -1902,7 +1912,7 @@ BackgroundTitle.defaultProps = {
1902
1912
  smallMargins: false
1903
1913
  };
1904
1914
 
1905
- var s$i = {"close":"_yMoDc","large":"_clOG2","white":"_145xN","dark-invert":"_-CvSS","dark":"_tTNnu"};
1915
+ var s$k = {"close":"_yMoDc","large":"_clOG2","white":"_145xN","dark-invert":"_-CvSS","dark":"_tTNnu"};
1906
1916
 
1907
1917
  var CLOSE_COLORS = {
1908
1918
  WHITE: "white",
@@ -1930,7 +1940,7 @@ var Close = function Close(_ref) {
1930
1940
  large = _ref$large === void 0 ? false : _ref$large;
1931
1941
  var callHandlingErrors = useCallHandlingErrors();
1932
1942
  return /*#__PURE__*/React.createElement("svg", {
1933
- className: s$i["close"] + " " + s$i[color] + (large ? " " + s$i["large"] : ""),
1943
+ className: s$k["close"] + " " + s$k[color] + (large ? " " + s$k["large"] : ""),
1934
1944
  onClick: function onClick(e) {
1935
1945
  return callHandlingErrors(_onClick, e);
1936
1946
  },
@@ -1956,7 +1966,7 @@ Close.defaultProps = {
1956
1966
  large: false
1957
1967
  };
1958
1968
 
1959
- var s$h = {"validation-text":"_VIr-M","validation":"_L3OdW"};
1969
+ var s$j = {"validation-text":"_VIr-M","validation":"_L3OdW"};
1960
1970
 
1961
1971
  var SuccessfulValidationIcon = (function () {
1962
1972
  return /*#__PURE__*/React.createElement("svg", {
@@ -2054,15 +2064,15 @@ var Validation = function Validation(_ref) {
2054
2064
  text = _ref$text === void 0 ? "" : _ref$text,
2055
2065
  isSuccessAlert = _ref.isSuccessAlert;
2056
2066
  return /*#__PURE__*/React.createElement("div", {
2057
- className: s$h["validation"]
2058
- }, /*#__PURE__*/React.createElement("div", null, isSuccessAlert ?
2067
+ className: s$j["validation"]
2068
+ }, isSuccessAlert ?
2059
2069
  /*#__PURE__*/
2060
2070
  // <img src={successfulValidationIcon} alt="validation icon" />
2061
2071
  React.createElement(SuccessfulValidationIcon, null) :
2062
2072
  /*#__PURE__*/
2063
2073
  // <img src={failedValidationIcon} alt="validation icon" />
2064
- React.createElement(FailedValidationIcon, null)), /*#__PURE__*/React.createElement("span", {
2065
- className: s$h["validation-text"]
2074
+ React.createElement(FailedValidationIcon, null), /*#__PURE__*/React.createElement("span", {
2075
+ className: s$j["validation-text"]
2066
2076
  }, text));
2067
2077
  };
2068
2078
  Validation.propTypes = {
@@ -2194,7 +2204,7 @@ function logErrorOrOutputToConsole(e) {
2194
2204
  }
2195
2205
  }
2196
2206
 
2197
- var s$g = {"dialog":"_AyHwj","hidden":"_hX4Lf","vertical-overflow-disabled":"_gRENy","inline":"_Da-tZ","dialog-transition-enter":"_0YlL9","scrollable":"_LaCqO","dialog-transition-enter-active":"_j35L1","dialog-transition-exit":"_lGJtS","dialog-transition-exit-active":"_Vg6Z2","fixed-buttons-container":"_ZNfnj","fixed-buttons-container-enter":"_vi-ug","fixed-buttons-container-enter-active":"_rIo-s","fixed-buttons-container-enter-done":"_5aNZC","fixed-buttons-container-exit":"_3ImpU","fixed-buttons-container-exit-active":"_dk-DE","fixed-buttons-container-exit-done":"_h9qrO","dialog-wrapper":"_HhhGp","animation-disabled":"_f8vf5","wide":"_hVh9o","dialog-wrapper-rah-content":"_ioVHo","dialog-wrapper-controls-top-padding":"_1bNLu","dialog-wrapper-close":"_nCuuj"};
2207
+ var s$i = {"dialog":"_AyHwj","hidden":"_hX4Lf","vertical-overflow-disabled":"_gRENy","inline":"_Da-tZ","dialog-transition-enter":"_0YlL9","scrollable":"_LaCqO","dialog-transition-enter-active":"_j35L1","dialog-transition-exit":"_lGJtS","dialog-transition-exit-active":"_Vg6Z2","fixed-buttons-container":"_ZNfnj","fixed-buttons-container-enter":"_vi-ug","fixed-buttons-container-enter-active":"_rIo-s","fixed-buttons-container-enter-done":"_5aNZC","fixed-buttons-container-exit":"_3ImpU","fixed-buttons-container-exit-active":"_dk-DE","fixed-buttons-container-exit-done":"_h9qrO","dialog-wrapper":"_HhhGp","animation-disabled":"_f8vf5","wide":"_hVh9o","dialog-wrapper-rah-content":"_ioVHo","dialog-wrapper-controls-top-padding":"_1bNLu","dialog-wrapper-close":"_nCuuj"};
2198
2208
 
2199
2209
  var DIALOG_SIZES = {
2200
2210
  small: {
@@ -2495,7 +2505,7 @@ var Dialog = function Dialog(_ref) {
2495
2505
  }, [animationConfiguration]);
2496
2506
  useEffect(function () {
2497
2507
  if (currentStepRef.current) {
2498
- resizeObserverRef.current = new ResizeObserver(function (entries) {
2508
+ resizeObserverRef.current = new ResizeObserver$1(function (entries) {
2499
2509
  if (entries === void 0) {
2500
2510
  entries = [];
2501
2511
  }
@@ -2576,10 +2586,10 @@ var Dialog = function Dialog(_ref) {
2576
2586
  "in": showDialogProcessed,
2577
2587
  timeout: DIALOG_TRANSITION_STEP_DURATION,
2578
2588
  classNames: inline ? undefined : {
2579
- enter: s$g["dialog-transition-enter"],
2580
- enterActive: s$g["dialog-transition-enter-active"],
2581
- exit: s$g["dialog-transition-exit"],
2582
- exitActive: s$g["dialog-transition-exit-active"]
2589
+ enter: s$i["dialog-transition-enter"],
2590
+ enterActive: s$i["dialog-transition-enter-active"],
2591
+ exit: s$i["dialog-transition-exit"],
2592
+ exitActive: s$i["dialog-transition-exit-active"]
2583
2593
  },
2584
2594
  unmountOnExit: true,
2585
2595
  onExited: function onExited() {
@@ -2598,13 +2608,13 @@ var Dialog = function Dialog(_ref) {
2598
2608
  disableBodyScroll(dialogRef.current);
2599
2609
  }
2600
2610
  }, /*#__PURE__*/React.createElement("div", {
2601
- className: s$g["dialog"] + " " + (dialogVerticalHeight > 1 || !isMultiStep ? "" : " " + s$g["hidden"]) + (animationConfiguration.dialogContainerOverflowDisabled ? " " + s$g["vertical-overflow-disabled"] : "") + (inline ? " " + s$g["inline"] : ""),
2611
+ className: s$i["dialog"] + " " + (dialogVerticalHeight > 1 || !isMultiStep ? "" : " " + s$i["hidden"]) + (animationConfiguration.dialogContainerOverflowDisabled ? " " + s$i["vertical-overflow-disabled"] : "") + (inline ? " " + s$i["inline"] : ""),
2602
2612
  ref: dialogRef
2603
2613
  }, /*#__PURE__*/React.createElement("div", {
2604
- className: s$g["scrollable"] + (inline ? " " + s$g["inline"] : ""),
2614
+ className: s$i["scrollable"] + (inline ? " " + s$i["inline"] : ""),
2605
2615
  ref: scrollableRef
2606
2616
  }, /*#__PURE__*/React.createElement("div", {
2607
- className: s$g["dialog-wrapper"] + (animationConfiguration.wrapperWidthAnimationEnabled ? "" : " " + s$g["animation-disabled"]) + (inline ? " " + s$g["inline"] : ""),
2617
+ className: s$i["dialog-wrapper"] + (animationConfiguration.wrapperWidthAnimationEnabled ? "" : " " + s$i["animation-disabled"]) + (inline ? " " + s$i["inline"] : ""),
2608
2618
  ref: dialogWrapperRef,
2609
2619
  style: dialogConfiguration.customWidth !== "" ? {
2610
2620
  maxWidth: dialogConfiguration.customWidth
@@ -2615,9 +2625,9 @@ var Dialog = function Dialog(_ref) {
2615
2625
  duration: animationConfiguration.animateHeightTransitionEnabled ? animationConfiguration.animateHeightTransitionSpeed : 0,
2616
2626
  delay: animationConfiguration.animateHeightTransitionEnabled ? animationConfiguration.animateHeightDelay : 0,
2617
2627
  height: isMultiStep ? dialogVerticalHeight : "auto",
2618
- contentClassName: s$g["dialog-wrapper-rah-content"]
2628
+ contentClassName: s$i["dialog-wrapper-rah-content"]
2619
2629
  }, inline ? "" : /*#__PURE__*/React.createElement("div", {
2620
- className: s$g["dialog-wrapper-close"]
2630
+ className: s$i["dialog-wrapper-close"]
2621
2631
  }, /*#__PURE__*/React.createElement(Close, {
2622
2632
  color: "dark",
2623
2633
  onClick: function onClick(e) {
@@ -2630,16 +2640,16 @@ var Dialog = function Dialog(_ref) {
2630
2640
  // classNames={s["fixed-buttons-container"]}
2631
2641
  ,
2632
2642
  classNames: {
2633
- enter: s$g["fixed-buttons-container-enter"],
2634
- enterActive: s$g["fixed-buttons-container-enter-active"],
2635
- enterDone: s$g["fixed-buttons-container-enter-done"],
2636
- exit: s$g["fixed-buttons-container-exit"],
2637
- exitActive: s$g["fixed-buttons-container-exit-active"],
2638
- exitDone: s$g["fixed-buttons-container-exit-done"]
2643
+ enter: s$i["fixed-buttons-container-enter"],
2644
+ enterActive: s$i["fixed-buttons-container-enter-active"],
2645
+ enterDone: s$i["fixed-buttons-container-enter-done"],
2646
+ exit: s$i["fixed-buttons-container-exit"],
2647
+ exitActive: s$i["fixed-buttons-container-exit-active"],
2648
+ exitDone: s$i["fixed-buttons-container-exit-done"]
2639
2649
  },
2640
2650
  unmountOnExit: true
2641
2651
  }, /*#__PURE__*/React.createElement("div", {
2642
- className: s$g["fixed-buttons-container"]
2652
+ className: s$i["fixed-buttons-container"]
2643
2653
  }, /*#__PURE__*/React.createElement(DialogButtons, buttonsConfiguration)))));
2644
2654
  };
2645
2655
  Dialog.propTypes = {
@@ -2696,7 +2706,7 @@ var arrowWhite = (function () {
2696
2706
  }));
2697
2707
  });
2698
2708
 
2699
- var s$f = {"dialog-step":"_0e-Qk","dialog":"_hKHTW","hidden":"_OT1zR","vertical-overflow-disabled":"_r1zu9","inline":"_Fl90j","dialog-transition-enter":"_I2XgD","scrollable":"_bzLMI","dialog-transition-enter-active":"_oVr8Y","dialog-transition-exit":"_Z16VM","dialog-transition-exit-active":"_n15oq","fixed-buttons-container":"_wROD2","fixed-buttons-container-enter":"_sjNeR","fixed-buttons-container-enter-active":"_ClXNv","fixed-buttons-container-enter-done":"_RFDsV","fixed-buttons-container-exit":"_biF1s","fixed-buttons-container-exit-active":"_rnsbL","fixed-buttons-container-exit-done":"_fq5hb","dialog-wrapper":"_f3-0r","animation-disabled":"_WC3TT","wide":"_KzekW","dialog-wrapper-rah-content":"_RQkF-","dialog-wrapper-controls-top-padding":"_4IXJZ","dialog-wrapper-close":"_ursQ7","single-step":"_uhIvi","current":"_cf5Kv","with-background":"_50qat","prev":"_XwrWV","next":"_rWauR","dialog-step-background-image":"_BGO3z","dialog-step-background-image-desktop":"_JHVKU","dialog-step-background-image-mobile":"_XCWwZ","primary":"_CZCMe","dialog-step-wrapper":"_abWKW","slideToLeft":"_gUTFZ","slideToRight":"_IvqZI","appear-from-left":"_kCimd","slideFromLeft":"_Qn75y","appear-from-right":"_IJNy-","slideFromRight":"_-pa-6","dialog-step-wrapper-back-button":"_RtjTj","dialog-step-wrapper-header":"_-n02U","text-left":"_KgtZY","with-background-image":"_Lvz6f","dialog-step-wrapper-header-logo":"_ICMMd","dialog-step-wrapper-header-title":"_Sit8v","without-logo":"_GuW8x","close-button-padding":"_ovES2","no-close-button-padding":"_sFNQz","dialog-step-wrapper-header-title-icon":"_Ygqlx","dialog-step-wrapper-header-title-coin-icon":"_wQKfR","dialog-step-wrapper-header-title-loading":"_pR41Y","dialog-step-wrapper-header-title-text-content":"_-kVUI","white":"_JShTb","dialog-step-wrapper-header-text":"_a7sff","break-words":"_I16HH","small-margin":"_w6f6j","no-margin":"_RF8u-","dialog-step-wrapper-content":"_dgGiX","align-left":"_9c1qs","align-center":"_z0o-e","align-right":"_-6p5j","dialog-step-wrapper-buttons":"_uuxmx","big-margin":"_U-vR6"};
2709
+ var s$h = {"dialog-step":"_0e-Qk","dialog":"_hKHTW","hidden":"_OT1zR","vertical-overflow-disabled":"_r1zu9","inline":"_Fl90j","dialog-transition-enter":"_I2XgD","scrollable":"_bzLMI","dialog-transition-enter-active":"_oVr8Y","dialog-transition-exit":"_Z16VM","dialog-transition-exit-active":"_n15oq","fixed-buttons-container":"_wROD2","fixed-buttons-container-enter":"_sjNeR","fixed-buttons-container-enter-active":"_ClXNv","fixed-buttons-container-enter-done":"_RFDsV","fixed-buttons-container-exit":"_biF1s","fixed-buttons-container-exit-active":"_rnsbL","fixed-buttons-container-exit-done":"_fq5hb","dialog-wrapper":"_f3-0r","animation-disabled":"_WC3TT","wide":"_KzekW","dialog-wrapper-rah-content":"_RQkF-","dialog-wrapper-controls-top-padding":"_4IXJZ","dialog-wrapper-close":"_ursQ7","single-step":"_uhIvi","current":"_cf5Kv","with-background":"_50qat","prev":"_XwrWV","next":"_rWauR","dialog-step-background-image":"_BGO3z","dialog-step-background-image-desktop":"_JHVKU","dialog-step-background-image-mobile":"_XCWwZ","primary":"_CZCMe","dialog-step-wrapper":"_abWKW","slideToLeft":"_gUTFZ","slideToRight":"_IvqZI","appear-from-left":"_kCimd","slideFromLeft":"_Qn75y","appear-from-right":"_IJNy-","slideFromRight":"_-pa-6","dialog-step-wrapper-back-button":"_RtjTj","dialog-step-wrapper-header":"_-n02U","text-left":"_KgtZY","with-background-image":"_Lvz6f","dialog-step-wrapper-header-logo":"_ICMMd","dialog-step-wrapper-header-title":"_Sit8v","without-logo":"_GuW8x","close-button-padding":"_ovES2","no-close-button-padding":"_sFNQz","dialog-step-wrapper-header-title-icon":"_Ygqlx","dialog-step-wrapper-header-title-coin-icon":"_wQKfR","dialog-step-wrapper-header-title-loading":"_pR41Y","dialog-step-wrapper-header-title-text-content":"_-kVUI","white":"_JShTb","dialog-step-wrapper-header-text":"_a7sff","break-words":"_I16HH","small-margin":"_w6f6j","no-margin":"_RF8u-","dialog-step-wrapper-content":"_dgGiX","align-left":"_9c1qs","align-center":"_z0o-e","align-right":"_-6p5j","dialog-step-wrapper-buttons":"_uuxmx","big-margin":"_U-vR6"};
2700
2710
 
2701
2711
  var DIALOG_STEP_CLASS = "dialog-step";
2702
2712
 
@@ -2717,9 +2727,11 @@ var DIALOG_STEP_CLASS = "dialog-step";
2717
2727
  * @param {string} props.subtitle - Step subtitle.
2718
2728
  * @param {string} props.backButtonText - Secondary button title.
2719
2729
  * @param {function} props.backButtonClick - Secondary button click handler.
2730
+ * @param {boolean} props.backButtonEnabled - Determines whether the secondary button is enabled.
2720
2731
  * @param {string} props.backButtonTo - Secondary button link.
2721
2732
  * @param {string} props.confirmButtonText - Primary button title.
2722
2733
  * @param {function} props.confirmButtonClick - Primary button click handler.
2734
+ * @param {boolean} props.confirmButtonEnabled - Determines whether the primary button is enabled.
2723
2735
  * @param {string} props.confirmButtonLink - Primary button link.
2724
2736
  * @param {boolean} props.primaryButtonLoader - Enable loader for the primary button.
2725
2737
  * @param {boolean} props.fixedButtons - Enable fixed buttons in the bottom for mobile devices.
@@ -2766,12 +2778,16 @@ var DialogStep = function DialogStep(_ref) {
2766
2778
  backButtonText = _ref$backButtonText === void 0 ? "" : _ref$backButtonText,
2767
2779
  _ref$backButtonClick = _ref.backButtonClick,
2768
2780
  backButtonClick = _ref$backButtonClick === void 0 ? function () {} : _ref$backButtonClick,
2781
+ _ref$backButtonEnable = _ref.backButtonEnabled,
2782
+ backButtonEnabled = _ref$backButtonEnable === void 0 ? true : _ref$backButtonEnable,
2769
2783
  _ref$backButtonTo = _ref.backButtonTo,
2770
2784
  backButtonTo = _ref$backButtonTo === void 0 ? "" : _ref$backButtonTo,
2771
2785
  _ref$confirmButtonTex = _ref.confirmButtonText,
2772
2786
  confirmButtonText = _ref$confirmButtonTex === void 0 ? "" : _ref$confirmButtonTex,
2773
2787
  _ref$confirmButtonCli = _ref.confirmButtonClick,
2774
2788
  confirmButtonClick = _ref$confirmButtonCli === void 0 ? function () {} : _ref$confirmButtonCli,
2789
+ _ref$confirmButtonEna = _ref.confirmButtonEnabled,
2790
+ confirmButtonEnabled = _ref$confirmButtonEna === void 0 ? true : _ref$confirmButtonEna,
2775
2791
  _ref$confirmButtonLin = _ref.confirmButtonLink,
2776
2792
  confirmButtonLink = _ref$confirmButtonLin === void 0 ? "" : _ref$confirmButtonLin,
2777
2793
  _ref$primaryButtonLoa = _ref.primaryButtonLoader,
@@ -2864,10 +2880,10 @@ var DialogStep = function DialogStep(_ref) {
2864
2880
  // eslint-disable-next-line react-hooks/exhaustive-deps
2865
2881
  }, []);
2866
2882
  var handleTransitionEnd = function handleTransitionEnd(event) {
2867
- if (isMultiStep && isCurrentStep(stepName) && event.propertyName === "opacity" && event.target.classList[0] === s$f[DIALOG_STEP_CLASS]) {
2883
+ if (isMultiStep && isCurrentStep(stepName) && event.propertyName === "opacity" && event.target.classList[0] === s$h[DIALOG_STEP_CLASS]) {
2868
2884
  disableAnimation(animationConfiguration.animateHeightTransitionEnabled);
2869
2885
  }
2870
- if (isMultiStep && unmountOnAnimationEndTrigger && event.propertyName === "opacity" && event.target.classList[0] === s$f[DIALOG_STEP_CLASS]) {
2886
+ if (isMultiStep && unmountOnAnimationEndTrigger && event.propertyName === "opacity" && event.target.classList[0] === s$h[DIALOG_STEP_CLASS]) {
2871
2887
  clearButtonsConfiguration();
2872
2888
  scrollDialogToTop();
2873
2889
  setStepMounted(false);
@@ -2904,11 +2920,13 @@ var DialogStep = function DialogStep(_ref) {
2904
2920
  primaryButtonOnClick: function primaryButtonOnClick(resetButtonLoader) {
2905
2921
  return confirmButtonClick(resetButtonLoader);
2906
2922
  },
2923
+ primaryButtonEnabled: confirmButtonEnabled,
2907
2924
  primaryButtonLoader: primaryButtonLoader,
2908
2925
  primaryButtonTo: confirmButtonLink,
2909
2926
  primaryButtonSetClickTrigger: setClickTrigger,
2910
2927
  secondaryButtonTitle: backButtonText,
2911
2928
  secondaryButtonOnClick: backButtonClick,
2929
+ secondaryButtonEnabled: backButtonEnabled,
2912
2930
  secondaryButtonTo: backButtonTo,
2913
2931
  fixedButtonsEnabled: fixedButtons
2914
2932
  }, stepName);
@@ -2935,44 +2953,46 @@ var DialogStep = function DialogStep(_ref) {
2935
2953
  primaryButtonOnClick: function primaryButtonOnClick(resetButtonLoader) {
2936
2954
  return confirmButtonClick(resetButtonLoader);
2937
2955
  },
2956
+ primaryButtonEnabled: confirmButtonEnabled,
2938
2957
  primaryButtonLoader: primaryButtonLoader,
2939
2958
  primaryButtonTo: confirmButtonLink,
2940
2959
  primaryButtonSetClickTrigger: setClickTrigger,
2941
2960
  secondaryButtonTitle: backButtonText,
2942
2961
  secondaryButtonOnClick: backButtonClick,
2962
+ secondaryButtonEnabled: backButtonEnabled,
2943
2963
  secondaryButtonTo: backButtonTo,
2944
2964
  fixedButtonsEnabled: fixedButtons
2945
2965
  }, stepName);
2946
2966
  }
2947
2967
  // eslint-disable-next-line react-hooks/exhaustive-deps
2948
- }, [confirmButtonText, confirmButtonClick, primaryButtonLoader, confirmButtonLink, setClickTrigger, backButtonText, backButtonClick, backButtonTo, currentStep]);
2968
+ }, [confirmButtonText, confirmButtonClick, confirmButtonEnabled, primaryButtonLoader, confirmButtonLink, setClickTrigger, backButtonText, backButtonClick, backButtonEnabled, backButtonTo, currentStep]);
2949
2969
  var _ref2 = titleIconCoin && coinToIconPaths ? coinToIconPaths(titleIconCoin) : {},
2950
2970
  assetIconSrc = _ref2.assetIconSrc,
2951
2971
  assetIconProtocolSrc = _ref2.assetIconProtocolSrc,
2952
2972
  fallbackSrc = _ref2.fallbackSrc;
2953
2973
  return /*#__PURE__*/React.createElement("div", {
2954
- className: s$f[DIALOG_STEP_CLASS] + " " + s$f[stepClass] + (!isMultiStep || !(animationConfiguration != null && animationConfiguration.currentStepAnimationEnabled) ? " " + s$f["animation-disabled"] : "") + (!isMultiStep ? " " + s$f["single-step"] : "") + (backgroundImage || backgroundImageMobile ? " " + s$f["with-background"] : "") + (inline ? " " + s$f["inline"] : ""),
2974
+ className: s$h[DIALOG_STEP_CLASS] + " " + s$h[stepClass] + (!isMultiStep || !(animationConfiguration != null && animationConfiguration.currentStepAnimationEnabled) ? " " + s$h["animation-disabled"] : "") + (!isMultiStep ? " " + s$h["single-step"] : "") + (backgroundImage || backgroundImageMobile ? " " + s$h["with-background"] : "") + (inline ? " " + s$h["inline"] : ""),
2955
2975
  ref: currentStepRef,
2956
2976
  onTransitionEnd: handleTransitionEnd,
2957
2977
  style: height ? {
2958
2978
  height: height
2959
2979
  } : null
2960
2980
  }, stepMounted ? /*#__PURE__*/React.createElement(React.Fragment, null, backgroundImage || backgroundImageMobile ? /*#__PURE__*/React.createElement("div", {
2961
- className: s$f["dialog-step-background-image"] + " " + s$f[stepClass]
2981
+ className: s$h["dialog-step-background-image"] + " " + s$h[stepClass]
2962
2982
  }, backgroundImage ? /*#__PURE__*/React.createElement("img", {
2963
2983
  src: backgroundImage,
2964
- className: s$f["dialog-step-background-image-desktop"] + " " + stepClass + (!backgroundImageMobile ? " " + s$f["primary"] : ""),
2984
+ className: s$h["dialog-step-background-image-desktop"] + " " + stepClass + (!backgroundImageMobile ? " " + s$h["primary"] : ""),
2965
2985
  alt: "dialog step background",
2966
2986
  loading: "lazy"
2967
2987
  }) : null, backgroundImageMobile ? /*#__PURE__*/React.createElement("img", {
2968
2988
  src: backgroundImageMobile,
2969
- className: s$f["dialog-step-background-image-mobile"] + " " + stepClass + (!backgroundImage ? " " + s$f["primary"] : ""),
2989
+ className: s$h["dialog-step-background-image-mobile"] + " " + stepClass + (!backgroundImage ? " " + s$h["primary"] : ""),
2970
2990
  alt: "dialog step background",
2971
2991
  loading: "lazy"
2972
2992
  }) : null) : null, /*#__PURE__*/React.createElement("div", {
2973
- className: s$f["dialog-step-wrapper"] + " " + s$f[stepClass] + " " + s$f[wrapperDirectionSubclass] + (inline ? " " + s$f["inline"] : "")
2993
+ className: s$h["dialog-step-wrapper"] + " " + s$h[stepClass] + " " + s$h[wrapperDirectionSubclass] + (inline ? " " + s$h["inline"] : "")
2974
2994
  }, isMultiStep && showCornerButtonForStep(stepName, showCornerBackButton) ? /*#__PURE__*/React.createElement("div", {
2975
- className: s$f["dialog-step-wrapper-back-button"]
2995
+ className: s$h["dialog-step-wrapper-back-button"]
2976
2996
  }, /*#__PURE__*/React.createElement(LinkButton, {
2977
2997
  onClick: cornerBackButtonClick ? cornerBackButtonClick : previousStep,
2978
2998
  content: cornerBackButtonTitle ? cornerBackButtonTitle :
@@ -2982,54 +3002,56 @@ var DialogStep = function DialogStep(_ref) {
2982
3002
  iconRotate: ICON_ROTATE_OPTIONS.rotate90,
2983
3003
  isColored: backgroundImage || backgroundImageMobile ? false : undefined
2984
3004
  })) : null, /*#__PURE__*/React.createElement("div", {
2985
- className: s$f["dialog-step-wrapper-header"] + (headerTitleLeft ? " " + s$f["text-left"] : "") + (backgroundImage || backgroundImageMobile ? " " + s$f["with-background-image"] : "")
3005
+ className: s$h["dialog-step-wrapper-header"] + (headerTitleLeft ? " " + s$h["text-left"] : "") + (backgroundImage || backgroundImageMobile ? " " + s$h["with-background-image"] : "")
2986
3006
  }, image ? /*#__PURE__*/React.createElement("img", {
2987
3007
  src: image,
2988
3008
  alt: "dialog popup logo",
2989
- className: s$f["dialog-step-wrapper-header-logo"],
3009
+ className: s$h["dialog-step-wrapper-header-logo"],
2990
3010
  loading: "lazy"
2991
3011
  }) : ImageRaw ? /*#__PURE__*/React.createElement("div", {
2992
- className: s$f["dialog-step-wrapper-header-logo"]
3012
+ className: s$h["dialog-step-wrapper-header-logo"]
2993
3013
  }, /*#__PURE__*/React.createElement(ImageRaw, null)) : null, /*#__PURE__*/React.createElement("div", {
2994
- className: s$f["dialog-step-wrapper-header-title"] + (!isTopImagePassed ? " " + s$f["without-logo"] : "") + (!isTopImagePassed && headerTitleLeft ? " " + s$f["close-button-padding"] : "") + (inline ? " " + s$f["no-close-button-padding"] : "")
3014
+ className: s$h["dialog-step-wrapper-header-title"] + (!isTopImagePassed ? " " + s$h["without-logo"] : "") + (!isTopImagePassed && headerTitleLeft ? " " + s$h["close-button-padding"] : "") + (inline ? " " + s$h["no-close-button-padding"] : "")
2995
3015
  }, titleIconCoin ? /*#__PURE__*/React.createElement("div", {
2996
- className: s$f["dialog-step-wrapper-header-title-coin-icon"]
3016
+ className: s$h["dialog-step-wrapper-header-title-coin-icon"]
2997
3017
  }, /*#__PURE__*/React.createElement(AssetIcon, {
2998
3018
  assetIconSrc: assetIconSrc,
2999
3019
  assetIconProtocolSrc: assetIconProtocolSrc,
3000
3020
  fallbackSrc: fallbackSrc
3001
3021
  })) : titleIcon ? /*#__PURE__*/React.createElement("div", {
3002
- className: s$f["dialog-step-wrapper-header-title-icon"]
3022
+ className: s$h["dialog-step-wrapper-header-title-icon"]
3003
3023
  }, /*#__PURE__*/React.createElement("img", {
3004
3024
  src: titleIcon,
3005
3025
  alt: "coin icon to send",
3006
3026
  loading: "lazy"
3007
3027
  })) : null, titleLoadingDots ? /*#__PURE__*/React.createElement("div", {
3008
- className: s$f["dialog-step-wrapper-header-title-loading"]
3028
+ className: s$h["dialog-step-wrapper-header-title-loading"]
3009
3029
  }, /*#__PURE__*/React.createElement(LoadingDots, {
3010
3030
  isColored: true
3011
3031
  })) : "", /*#__PURE__*/React.createElement("div", {
3012
- className: s$f["dialog-step-wrapper-header-title-text"]
3032
+ className: s$h["dialog-step-wrapper-header-title-text"]
3013
3033
  }, !isTopImagePassed && showBackgroundTitle ? /*#__PURE__*/React.createElement(BackgroundTitle, {
3014
3034
  text: title
3015
3035
  }) : null, /*#__PURE__*/React.createElement("h5", {
3016
- className: s$f["dialog-step-wrapper-header-title-text-content"] + (!isTopImagePassed ? " " + s$f["without-logo"] : "") + (backgroundImage || backgroundImageMobile ? " " + s$f["white"] : "")
3036
+ className: s$h["dialog-step-wrapper-header-title-text-content"] + (!isTopImagePassed ? " " + s$h["without-logo"] : "") + (backgroundImage || backgroundImageMobile ? " " + s$h["white"] : "")
3017
3037
  }, title))), subtitle ? /*#__PURE__*/React.createElement("p", {
3018
- className: s$f["dialog-step-wrapper-header-text"] + (" " + (!isTopImagePassed ? s$f["without-logo"] : "") + " " + (subtitleSmallMargin ? s$f["small-margin"] : "") + (subtitleNoMargin ? s$f["no-margin"] : "") + " " + (headerTitleLeft ? s$f["text-left"] : "") + " " + (breakSubtitleWords ? s$f["break-words"] : "") + " " + (backgroundImage || backgroundImageMobile ? s$f["white"] : ""))
3038
+ className: s$h["dialog-step-wrapper-header-text"] + (" " + (!isTopImagePassed ? s$h["without-logo"] : "") + " " + (subtitleSmallMargin ? s$h["small-margin"] : "") + (subtitleNoMargin ? s$h["no-margin"] : "") + " " + (headerTitleLeft ? s$h["text-left"] : "") + " " + (breakSubtitleWords ? s$h["break-words"] : "") + " " + (backgroundImage || backgroundImageMobile ? s$h["white"] : ""))
3019
3039
  }, subtitle) : null), /*#__PURE__*/React.createElement("div", {
3020
- className: s$f["dialog-step-wrapper-content"] + " " + s$f["align-" + contentAlign]
3040
+ className: s$h["dialog-step-wrapper-content"] + " " + s$h["align-" + contentAlign]
3021
3041
  }, children), backButtonText || confirmButtonText ? /*#__PURE__*/React.createElement("div", {
3022
- className: s$f["dialog-step-wrapper-buttons"] + (" " + (bigButtonMargins ? s$f["big-margin"] : "") + " " + (noButtonMargins ? s$f["no-margin"] : "") + " " + (isSecondaryButtonBig ? s$f["space-between-layout"] : ""))
3042
+ className: s$h["dialog-step-wrapper-buttons"] + (" " + (bigButtonMargins ? s$h["big-margin"] : "") + " " + (noButtonMargins ? s$h["no-margin"] : "") + " " + (isSecondaryButtonBig ? s$h["space-between-layout"] : ""))
3023
3043
  }, /*#__PURE__*/React.createElement(DialogButtons, {
3024
3044
  primaryButtonTitle: confirmButtonText,
3025
3045
  primaryButtonOnClick: function primaryButtonOnClick(resetButtonLoader) {
3026
3046
  return confirmButtonClick(resetButtonLoader);
3027
3047
  },
3048
+ primaryButtonEnabled: confirmButtonEnabled,
3028
3049
  primaryButtonLoader: primaryButtonLoader,
3029
3050
  primaryButtonTo: confirmButtonLink,
3030
3051
  primaryButtonSetClickTrigger: setClickTrigger,
3031
3052
  secondaryButtonTitle: backButtonText,
3032
3053
  secondaryButtonOnClick: backButtonClick,
3054
+ secondaryButtonEnabled: backButtonEnabled,
3033
3055
  secondaryButtonTo: backButtonTo,
3034
3056
  secondaryButtonBig: isSecondaryButtonBig,
3035
3057
  withBackgroundImage: !!backgroundImage || !!backgroundImageMobile,
@@ -3049,9 +3071,11 @@ DialogStep.propTypes = {
3049
3071
  subtitle: PropTypes.string,
3050
3072
  backButtonText: PropTypes.string,
3051
3073
  backButtonClick: PropTypes.func,
3074
+ backButtonEnabled: PropTypes.bool,
3052
3075
  backButtonTo: PropTypes.string,
3053
3076
  confirmButtonText: PropTypes.string,
3054
3077
  confirmButtonClick: PropTypes.func,
3078
+ confirmButtonEnabled: PropTypes.bool,
3055
3079
  confirmButtonLink: PropTypes.string,
3056
3080
  primaryButtonLoader: PropTypes.bool,
3057
3081
  fixedButtons: PropTypes.bool,
@@ -3087,9 +3111,11 @@ DialogStep.defaultProps = {
3087
3111
  subtitle: "",
3088
3112
  backButtonText: "",
3089
3113
  backButtonClick: function backButtonClick() {},
3114
+ backButtonEnabled: true,
3090
3115
  backButtonTo: "",
3091
3116
  confirmButtonText: "",
3092
3117
  confirmButtonClick: function confirmButtonClick() {},
3118
+ confirmButtonEnabled: true,
3093
3119
  confirmButtonLink: "",
3094
3120
  primaryButtonLoader: false,
3095
3121
  fixedButtons: false,
@@ -3112,7 +3138,7 @@ DialogStep.defaultProps = {
3112
3138
  isSecondaryButtonBig: false
3113
3139
  };
3114
3140
 
3115
- var s$e = {"asset-selection":"_xevLY","disabled":"_DZRfD","active":"_oBw9O","asset-selection-protocol-wrapper":"_ixAiH","asset-selection-icon-wrapper":"_gJ5LN","arrow":"_W8Ibq"};
3141
+ var s$g = {"asset-selection":"_xevLY","disabled":"_DZRfD","active":"_oBw9O","asset-selection-protocol-wrapper":"_ixAiH","asset-selection-icon-wrapper":"_gJ5LN","arrow":"_W8Ibq"};
3116
3142
 
3117
3143
  var ArrowIcon = (function () {
3118
3144
  return /*#__PURE__*/React.createElement("svg", {
@@ -3154,21 +3180,21 @@ var AssetSelection = function AssetSelection(_ref) {
3154
3180
  fallbackSrc = _ref.fallbackSrc;
3155
3181
  var handleError = useCallHandlingErrors();
3156
3182
  return /*#__PURE__*/React.createElement("div", {
3157
- className: s$e["asset-selection"] + " " + (disabled ? s$e["disabled"] : ""),
3183
+ className: s$g["asset-selection"] + " " + (disabled ? s$g["disabled"] : ""),
3158
3184
  onClick: disabled ? function () {} : function (e) {
3159
3185
  return handleError(handleClick, e);
3160
3186
  }
3161
3187
  }, /*#__PURE__*/React.createElement("div", {
3162
- className: s$e["asset-selection-icon-wrapper"]
3188
+ className: s$g["asset-selection-icon-wrapper"]
3163
3189
  }, /*#__PURE__*/React.createElement(AssetIcon, {
3164
3190
  small: true,
3165
3191
  assetIconSrc: assetIconSrc,
3166
3192
  assetIconProtocolSrc: assetIconProtocolSrc,
3167
3193
  fallbackSrc: fallbackSrc
3168
3194
  })), protocolName ? /*#__PURE__*/React.createElement("div", {
3169
- className: s$e["asset-selection-protocol-wrapper"]
3195
+ className: s$g["asset-selection-protocol-wrapper"]
3170
3196
  }, protocolName) : "", /*#__PURE__*/React.createElement("div", {
3171
- className: s$e["arrow"]
3197
+ className: s$g["arrow"]
3172
3198
  }, /*#__PURE__*/React.createElement(ArrowIcon, null)));
3173
3199
  };
3174
3200
  AssetSelection.propTypes = {
@@ -3185,7 +3211,7 @@ AssetSelection.defaultProps = {
3185
3211
  assetIconProtocolSrc: null
3186
3212
  };
3187
3213
 
3188
- var s$d = {"tooltip":"_8eyAx","enter":"_RpNdl","enter-active":"_BJddw","exit":"_BTWC-","exit-active":"_nxU2j","top-left":"_pPuyF","enter-done":"_UTN4U","top-right":"_2ppAB","left":"_--VUv","bottom":"_a1OJb","right":"_KNVu3","wide":"_s17pG","ignore-pointer":"_RCyas","tooltip-enter":"_3372j","tooltip-enter-active":"_-RNGY","tooltip-enter-done":"_90MOt","tooltip-exit":"_QT297","tooltip-exit-active":"_a0CNW"};
3214
+ var s$f = {"tooltip":"_8eyAx","enter":"_RpNdl","enter-active":"_BJddw","exit":"_BTWC-","exit-active":"_nxU2j","top-left":"_pPuyF","enter-done":"_UTN4U","top-right":"_2ppAB","left":"_--VUv","bottom":"_a1OJb","right":"_KNVu3","wide":"_s17pG","ignore-pointer":"_RCyas","tooltip-enter":"_3372j","tooltip-enter-active":"_-RNGY","tooltip-enter-done":"_90MOt","tooltip-exit":"_QT297","tooltip-exit-active":"_a0CNW"};
3189
3215
 
3190
3216
  var DarkRectangle = (function () {
3191
3217
  return /*#__PURE__*/React.createElement("svg", {
@@ -3244,7 +3270,7 @@ var Tooltip = function Tooltip(_ref) {
3244
3270
  timeout: 400,
3245
3271
  unmountOnExit: true
3246
3272
  }, /*#__PURE__*/React.createElement("span", {
3247
- className: s$d["tooltip"] + " " + (wide ? s$d["wide"] : "") + " " + s$d[position] + " " + (ignorePointerEvents ? s$d["ignore-pointer"] : ""),
3273
+ className: s$f["tooltip"] + " " + (wide ? s$f["wide"] : "") + " " + s$f[position] + " " + (ignorePointerEvents ? s$f["ignore-pointer"] : ""),
3248
3274
  onClick: function onClick(e) {
3249
3275
  return handleError(_onClick, e);
3250
3276
  },
@@ -3270,7 +3296,7 @@ Tooltip.defaultProps = {
3270
3296
  ignorePointerEvents: false
3271
3297
  };
3272
3298
 
3273
- var s$c = {"notice-icon-image":"_MdvCj","notice-icon":"_lFNkE","notice-icon-tooltip":"_l38uS"};
3299
+ var s$e = {"notice-icon-image":"_MdvCj","notice-icon":"_lFNkE","notice-icon-tooltip":"_l38uS"};
3274
3300
 
3275
3301
  var handleClickOutside = function handleClickOutside(exceptionsRefs, callback) {
3276
3302
  function handleClick(event) {
@@ -3376,7 +3402,7 @@ var NoticeIcon = function NoticeIcon(_ref) {
3376
3402
  }, []);
3377
3403
  return /*#__PURE__*/React.createElement("div", {
3378
3404
  ref: noticeRef,
3379
- className: s$c["notice-icon"]
3405
+ className: s$e["notice-icon"]
3380
3406
  }, titleNoticeIcon ? /*#__PURE__*/React.createElement("img", {
3381
3407
  src: titleNoticeIcon,
3382
3408
  alt: "title icon",
@@ -3385,17 +3411,17 @@ var NoticeIcon = function NoticeIcon(_ref) {
3385
3411
  return !prev;
3386
3412
  });
3387
3413
  },
3388
- className: s$c["notice-icon-image"],
3414
+ className: s$e["notice-icon-image"],
3389
3415
  loading: "lazy"
3390
3416
  }) : /*#__PURE__*/React.createElement("div", {
3391
- className: s$c["notice-icon-image"],
3417
+ className: s$e["notice-icon-image"],
3392
3418
  onClick: function onClick() {
3393
3419
  return setShowTooltip(function (prev) {
3394
3420
  return !prev;
3395
3421
  });
3396
3422
  }
3397
3423
  }, /*#__PURE__*/React.createElement(NoticeQuestionIcon, null)), /*#__PURE__*/React.createElement("div", {
3398
- className: s$c["notice-icon-tooltip"]
3424
+ className: s$e["notice-icon-tooltip"]
3399
3425
  }, /*#__PURE__*/React.createElement(Tooltip, {
3400
3426
  showTooltip: showTooltip,
3401
3427
  handleClick: function handleClick() {
@@ -3415,7 +3441,7 @@ NoticeIcon.defaultProps = {
3415
3441
  tooltipPosition: TOOLTIP_POSITIONS.TOP
3416
3442
  };
3417
3443
 
3418
- var s$b = {"title-box":"_2Kb-x","full-width":"_-5MIw","title-box-wrapper":"_f8RmO","title-box-wrapper-title":"_Oxg7u","transparent-title":"_NwGqA","title-box-wrapper-link-button":"_f-4ZL"};
3444
+ var s$d = {"title-box":"_2Kb-x","full-width":"_-5MIw","title-box-wrapper":"_f8RmO","title-box-wrapper-title":"_Oxg7u","transparent-title":"_NwGqA","title-box-wrapper-link-button":"_f-4ZL"};
3419
3445
 
3420
3446
  /**
3421
3447
  * Copies given text to clipboard inside browser.
@@ -3479,7 +3505,7 @@ var TitleBox = function TitleBox(_ref) {
3479
3505
  copyButtonContent = _ref.copyButtonContent,
3480
3506
  copyButtonTooltipContent = _ref.copyButtonTooltipContent;
3481
3507
  var handleError = useCallHandlingErrors();
3482
- var transparentTitleClass = transparentTitle ? s$b["transparent-title"] : "";
3508
+ var transparentTitleClass = transparentTitle ? s$d["transparent-title"] : "";
3483
3509
  var _useState = useState(false),
3484
3510
  showCopyNotice = _useState[0],
3485
3511
  setShowCopyNotice = _useState[1];
@@ -3493,19 +3519,19 @@ var TitleBox = function TitleBox(_ref) {
3493
3519
  }, e);
3494
3520
  };
3495
3521
  return /*#__PURE__*/React.createElement("div", {
3496
- className: s$b["title-box"] + " " + (fullWidth ? s$b["full-width"] : "")
3522
+ className: s$d["title-box"] + " " + (fullWidth ? s$d["full-width"] : "")
3497
3523
  }, title || titleNoticeText || linkText ? /*#__PURE__*/React.createElement("div", {
3498
- className: s$b["title-box-wrapper"]
3524
+ className: s$d["title-box-wrapper"]
3499
3525
  }, bigTitle ? /*#__PURE__*/React.createElement("h5", {
3500
- className: s$b["title-box-wrapper-title"] + " " + transparentTitleClass
3526
+ className: s$d["title-box-wrapper-title"] + " " + transparentTitleClass
3501
3527
  }, title) : /*#__PURE__*/React.createElement("h6", {
3502
- className: s$b["title-box-wrapper-title"] + " " + transparentTitleClass
3528
+ className: s$d["title-box-wrapper-title"] + " " + transparentTitleClass
3503
3529
  }, title), titleNoticeText ? /*#__PURE__*/React.createElement(NoticeIcon, {
3504
3530
  noticeText: titleNoticeText,
3505
3531
  titleNoticeIcon: titleNoticeIcon,
3506
3532
  tooltipPosition: titleNoticePosition
3507
3533
  }) : null, copyButtonContent && copyButtonText ? /*#__PURE__*/React.createElement("div", {
3508
- className: s$b["title-box-wrapper-link-button"]
3534
+ className: s$d["title-box-wrapper-link-button"]
3509
3535
  }, /*#__PURE__*/React.createElement(LinkButton, {
3510
3536
  content: copyButtonText,
3511
3537
  onClick: handleCopyButton,
@@ -3515,7 +3541,7 @@ var TitleBox = function TitleBox(_ref) {
3515
3541
  position: TOOLTIP_POSITIONS.TOP_LEFT,
3516
3542
  showTooltip: showCopyNotice
3517
3543
  }, copyButtonTooltipContent)) : linkText ? /*#__PURE__*/React.createElement("div", {
3518
- className: s$b["title-box-wrapper-link-button"]
3544
+ className: s$d["title-box-wrapper-link-button"]
3519
3545
  }, /*#__PURE__*/React.createElement(LinkButton, {
3520
3546
  content: linkText,
3521
3547
  onClick: linkButtonClick,
@@ -3553,7 +3579,7 @@ TitleBox.defaultProps = {
3553
3579
  transparentTitle: false
3554
3580
  };
3555
3581
 
3556
- var s$a = {"amount-input-container-input-wrapper":"_OQ-ym","requested-amount-fiat-skeleton-content":"_zck4j","requested-amount-coin-skeleton-content":"_rZsYH","amount-input-container":"_AQaqi","upper-form-position":"_FjX1X","lower-form-position":"_g5zUv","error-encountered":"_XjaEm","focus":"_-jHS0","disabled":"_3y8Yo","bottom-margin":"_3RoIe","asset-balance":"_Z9fcv","red":"_EXTAF","requested-amount-coin":"_AV4qa","requested-amount-coin-currency":"_OGQ9l","requested-amount-coin-input":"_KY6tO","requested-amount-coin-skeleton":"_gIBI7","requested-amount-fiat":"_gwWcz","requested-amount-fiat-currency":"_RACoB","requested-amount-fiat-input":"_L5lVd","requested-amount-fiat-placeholder":"_HV2XM","requested-amount-fiat-skeleton":"_63hUZ"};
3582
+ var s$c = {"amount-input-container-input-wrapper":"_OQ-ym","requested-amount-fiat-skeleton-content":"_zck4j","requested-amount-coin-skeleton-content":"_rZsYH","amount-input-container":"_AQaqi","upper-form-position":"_FjX1X","lower-form-position":"_g5zUv","error-encountered":"_XjaEm","focus":"_-jHS0","disabled":"_3y8Yo","bottom-margin":"_3RoIe","asset-balance":"_Z9fcv","red":"_EXTAF","requested-amount-coin":"_AV4qa","requested-amount-coin-currency":"_OGQ9l","requested-amount-coin-input":"_KY6tO","requested-amount-coin-skeleton":"_gIBI7","requested-amount-fiat":"_gwWcz","requested-amount-fiat-enter":"_Q3eUh","requested-amount-fiat-enter-active":"_ijYoP","requested-amount-fiat-exit":"_czDtf","requested-amount-fiat-exit-active":"_Hav2r","requested-amount-fiat-currency":"_RACoB","requested-amount-fiat-input":"_L5lVd","requested-amount-fiat-placeholder":"_HV2XM","requested-amount-fiat-skeleton":"_63hUZ"};
3557
3583
 
3558
3584
  var WalletIcon = (function () {
3559
3585
  return /*#__PURE__*/React.createElement("svg", {
@@ -4222,15 +4248,15 @@ var AmountInput = /*#__PURE__*/React.forwardRef(function (_ref, buttonForwardRef
4222
4248
  linkText: isSendAll !== null ? isSendAll ? linkButtonActiveText : linkButtonInactiveText : null,
4223
4249
  linkButtonClick: handleSendAllClick
4224
4250
  }, /*#__PURE__*/React.createElement("div", {
4225
- className: [s$a["amount-input-container"], isInFocus ? s$a["focus"] : "", errorEncountered || highlightInput ? s$a["error-encountered"] : "", upperFormPosition ? s$a["upper-form-position"] : "", lowerFormPosition ? s$a["lower-form-position"] : ""].join(" ")
4251
+ className: [s$c["amount-input-container"], isInFocus ? s$c["focus"] : "", errorEncountered || highlightInput ? s$c["error-encountered"] : "", upperFormPosition ? s$c["upper-form-position"] : "", lowerFormPosition ? s$c["lower-form-position"] : ""].join(" ")
4226
4252
  }, /*#__PURE__*/React.createElement("div", {
4227
- className: s$a["amount-input-container-input-wrapper"] + " " + (disabled ? s$a["disabled"] : "") + "\n " + (children ? s$a["bottom-margin"] : "")
4253
+ className: s$c["amount-input-container-input-wrapper"] + " " + (disabled ? s$c["disabled"] : "") + "\n " + (children ? s$c["bottom-margin"] : "")
4228
4254
  }, showBalance ? /*#__PURE__*/React.createElement("div", {
4229
- className: s$a["asset-balance"] + " " + (highlightBalance ? s$a["red"] : "")
4255
+ className: s$c["asset-balance"] + " " + (highlightBalance ? s$c["red"] : "")
4230
4256
  }, /*#__PURE__*/React.createElement(WalletIcon, null), /*#__PURE__*/React.createElement("p", null, (assetBalance == null ? void 0 : assetBalance.assetAmount) != null && (assetBalance == null ? void 0 : assetBalance.fiatAmount) != null && ticker && fiatCurrencyCode ? /*#__PURE__*/React.createElement(React.Fragment, null, AmountUtils.cryptoFull(assetBalance.assetAmount, tickerPrintable, assetDecimalPlaces), /*#__PURE__*/React.createElement("span", null, " ~ " + AmountUtils.fiat(assetBalance.fiatAmount, fiatCurrencyCode))) : balanceLoaderText)) : "", /*#__PURE__*/React.createElement("div", {
4231
- className: s$a["requested-amount-coin"]
4257
+ className: s$c["requested-amount-coin"]
4232
4258
  }, /*#__PURE__*/React.createElement("span", {
4233
- className: s$a["requested-amount-coin-currency"]
4259
+ className: s$c["requested-amount-coin-currency"]
4234
4260
  }, tickerPrintable ? (estimateAmount ? "~ " : "") + tickerPrintable : ""), !isLoading ? /*#__PURE__*/React.createElement("input", {
4235
4261
  type: "text",
4236
4262
  inputMode: "decimal",
@@ -4239,7 +4265,7 @@ var AmountInput = /*#__PURE__*/React.forwardRef(function (_ref, buttonForwardRef
4239
4265
  return handleChangeAmount(e.target.value);
4240
4266
  },
4241
4267
  placeholder: coinAmountPlaceholder,
4242
- className: s$a["requested-amount-coin-input"],
4268
+ className: s$c["requested-amount-coin-input"],
4243
4269
  disabled: disabled || locked,
4244
4270
  onFocus: function onFocus(e) {
4245
4271
  return callHandlingErrors(function () {
@@ -4252,17 +4278,27 @@ var AmountInput = /*#__PURE__*/React.forwardRef(function (_ref, buttonForwardRef
4252
4278
  }, e);
4253
4279
  }
4254
4280
  }) : /*#__PURE__*/React.createElement("div", {
4255
- className: s$a["requested-amount-coin-skeleton"]
4281
+ className: s$c["requested-amount-coin-skeleton"]
4256
4282
  }, /*#__PURE__*/React.createElement("span", {
4257
- className: s$a["requested-amount-coin-skeleton-content"] + " " + "skeleton-dark"
4258
- }))), fiatCurrencyCode !== null ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
4259
- className: s$a["requested-amount-fiat"] + (interactedWith ? " " + s$a["interacted"] : "")
4283
+ className: s$c["requested-amount-coin-skeleton-content"] + " " + "skeleton-dark"
4284
+ }))), /*#__PURE__*/React.createElement(CSSTransition, {
4285
+ "in": fiatCurrencyCode !== null,
4286
+ timeout: 200,
4287
+ classNames: {
4288
+ enter: s$c["requested-amount-fiat-enter"],
4289
+ enterActive: s$c["requested-amount-fiat-enter-active"],
4290
+ exit: s$c["requested-amount-fiat-exit"],
4291
+ exitActive: s$c["requested-amount-fiat-exit-active"]
4292
+ },
4293
+ unmountOnExit: true
4294
+ }, /*#__PURE__*/React.createElement("div", {
4295
+ className: s$c["requested-amount-fiat"] + (interactedWith ? " " + s$c["interacted"] : "")
4260
4296
  }, interactedWith ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
4261
- className: s$a["requested-amount-fiat-currency"]
4297
+ className: s$c["requested-amount-fiat-currency"]
4262
4298
  }, (estimateAmount ? "~ " : "") + fiatCurrencyCode), !isLoading && cryptoAssetToFiatRate != null ? /*#__PURE__*/React.createElement("input", {
4263
4299
  type: "text",
4264
4300
  inputMode: "decimal",
4265
- className: s$a["requested-amount-fiat-input"],
4301
+ className: s$c["requested-amount-fiat-input"],
4266
4302
  value: fiatAmountValue,
4267
4303
  disabled: disabled || locked,
4268
4304
  onChange: function onChange(e) {
@@ -4281,18 +4317,18 @@ var AmountInput = /*#__PURE__*/React.forwardRef(function (_ref, buttonForwardRef
4281
4317
  }, e);
4282
4318
  }
4283
4319
  }) : /*#__PURE__*/React.createElement("div", {
4284
- className: s$a["requested-amount-fiat-skeleton"]
4320
+ className: s$c["requested-amount-fiat-skeleton"]
4285
4321
  }, /*#__PURE__*/React.createElement("span", {
4286
- className: s$a["requested-amount-fiat-skeleton-content"] + " " + "skeleton-dark"
4322
+ className: s$c["requested-amount-fiat-skeleton-content"] + " " + "skeleton-dark"
4287
4323
  }))) : /*#__PURE__*/React.createElement("span", {
4288
- className: s$a["requested-amount-fiat-placeholder"],
4324
+ className: s$c["requested-amount-fiat-placeholder"],
4289
4325
  onClick: function onClick(e) {
4290
4326
  return callHandlingErrors(function () {
4291
4327
  return handleFiatInteraction();
4292
4328
  }, e);
4293
4329
  }
4294
- }, fiatInputPlaceholderText))) : null), showChangeAssetButton && ticker ? /*#__PURE__*/React.createElement("div", {
4295
- className: s$a["amount-input-container-button-wrapper"],
4330
+ }, fiatInputPlaceholderText)))), showChangeAssetButton && ticker ? /*#__PURE__*/React.createElement("div", {
4331
+ className: s$c["amount-input-container-button-wrapper"],
4296
4332
  ref: buttonForwardRef
4297
4333
  }, /*#__PURE__*/React.createElement(AssetSelection, {
4298
4334
  assetIconSrc: assetIconSrc,
@@ -4306,9 +4342,9 @@ var AmountInput = /*#__PURE__*/React.forwardRef(function (_ref, buttonForwardRef
4306
4342
  }) : null);
4307
4343
  });
4308
4344
 
4309
- var s$9 = {"swap-form-inputs-separator":"_2vSSb","disabled":"_t1R13","swap-form":"_Uwb2p","swap-form-inputs":"_kkR8O","swap-form-information-field":"_ZUAfe","semi-transparent":"_1mu0j","interactable":"_S9zQS","red":"_SbQSO","swap-form-address-field":"_c8Nfv","swap-form-rate-selector":"_Fo9O-","swap-form-validation-text":"_8iEHB","swap-form-button-container":"_cVVfG","swap-form-button-container-consent-text":"_UNMjb","swap-form-button-container-consent-text-link":"_-g020"};
4345
+ var s$b = {"swap-form-inputs-separator":"_2vSSb","disabled":"_t1R13","swap-form":"_Uwb2p","swap-form-inputs":"_kkR8O","swap-form-information-field":"_ZUAfe","semi-transparent":"_1mu0j","interactable":"_S9zQS","red":"_SbQSO","swap-form-address-field":"_c8Nfv","swap-form-rate-selector":"_Fo9O-","swap-form-validation-text":"_8iEHB","swap-form-button-container":"_cVVfG","swap-form-button-container-consent-text":"_UNMjb","swap-form-button-container-consent-text-link":"_-g020"};
4310
4346
 
4311
- var s$8 = {"textarea-input":"_EJFn-","textarea":"_YjRAf","full-height":"_kDp5e","textarea-input-label":"_XQC6S","adaptive-height":"_UnSJE","small-text":"_WtRnB","disabled":"_IO5nl","error-encountered":"_00pBS"};
4347
+ var s$a = {"textarea-input":"_EJFn-","textarea":"_YjRAf","full-height":"_kDp5e","textarea-input-label":"_XQC6S","adaptive-height":"_UnSJE","small-text":"_WtRnB","disabled":"_IO5nl","error-encountered":"_00pBS"};
4312
4348
 
4313
4349
  /**
4314
4350
  * A textarea component with optional adaptive height and validation messaging.
@@ -4369,12 +4405,12 @@ var Textarea = /*#__PURE__*/forwardRef(function (_ref, ref) {
4369
4405
  if (((_e$target = e.target) == null ? void 0 : _e$target.value.indexOf("\n")) === -1 || !ignoreEnter) _onChange(e);
4370
4406
  };
4371
4407
  return /*#__PURE__*/React.createElement("div", {
4372
- className: s$8["textarea"] + (" " + (fullHeight ? " " + s$8["full-height"] : ""))
4408
+ className: s$a["textarea"] + (" " + (fullHeight ? " " + s$a["full-height"] : ""))
4373
4409
  }, label ? /*#__PURE__*/React.createElement("label", {
4374
4410
  htmlFor: id,
4375
- className: s$8["textarea-input-label"]
4411
+ className: s$a["textarea-input-label"]
4376
4412
  }, label) : null, adaptiveHeight ? /*#__PURE__*/React.createElement(TextareaAutosize, {
4377
- className: s$8["textarea-input"] + " " + s$8["adaptive-height"] + (disabled ? " " + s$8["disabled"] : "") + (errorEncountered ? " " + s$8["error-encountered"] : ""),
4413
+ className: s$a["textarea-input"] + " " + s$a["adaptive-height"] + (disabled ? " " + s$a["disabled"] : "") + (errorEncountered ? " " + s$a["error-encountered"] : ""),
4378
4414
  minRows: 1,
4379
4415
  maxRows: 3,
4380
4416
  onChange: function onChange(e) {
@@ -4388,7 +4424,7 @@ var Textarea = /*#__PURE__*/forwardRef(function (_ref, ref) {
4388
4424
  disabled: disabled
4389
4425
  }) : /*#__PURE__*/React.createElement("textarea", {
4390
4426
  name: name,
4391
- className: s$8["textarea-input"] + (" " + (fullHeight ? s$8["full-height"] : "") + " " + (smallText ? s$8["small-text"] : "") + " " + (disabled ? s$8["disabled"] : "")),
4427
+ className: s$a["textarea-input"] + (" " + (fullHeight ? s$a["full-height"] : "") + " " + (smallText ? s$a["small-text"] : "") + " " + (disabled ? s$a["disabled"] : "")),
4392
4428
  onChange: function onChange(e) {
4393
4429
  return callHandlingErrors(_onChange, e);
4394
4430
  },
@@ -4438,7 +4474,7 @@ Textarea.defaultProps = {
4438
4474
  ignoreEnter: false
4439
4475
  };
4440
4476
 
4441
- var s$7 = {"rate-selector":"_bqJFm","rate-selector-item":"_te8yb","selected":"_HU2Oq","rate-selector-item-text":"_ew-Z1"};
4477
+ var s$9 = {"rate-selector":"_bqJFm","rate-selector-item":"_te8yb","selected":"_HU2Oq","rate-selector-item-text":"_ew-Z1"};
4442
4478
 
4443
4479
  // TODO: [dev] add JSDoc
4444
4480
  var RateSelector = function RateSelector(_ref) {
@@ -4452,21 +4488,21 @@ var RateSelector = function RateSelector(_ref) {
4452
4488
  fixedRate: "Fixed rate"
4453
4489
  } : _ref$translations;
4454
4490
  return /*#__PURE__*/React.createElement("div", {
4455
- className: s$7["rate-selector"]
4491
+ className: s$9["rate-selector"]
4456
4492
  }, /*#__PURE__*/React.createElement("div", {
4457
- className: s$7["rate-selector-item"] + " " + (!isFixed ? s$7["selected"] : ""),
4493
+ className: s$9["rate-selector-item"] + " " + (!isFixed ? s$9["selected"] : ""),
4458
4494
  onClick: function onClick() {
4459
- return setIsFixed(false);
4495
+ return isFixed ? setIsFixed(false) : null;
4460
4496
  }
4461
4497
  }, /*#__PURE__*/React.createElement("div", {
4462
- className: s$7["rate-selector-item-text"]
4498
+ className: s$9["rate-selector-item-text"]
4463
4499
  }, translations.floatingRate)), /*#__PURE__*/React.createElement("div", {
4464
- className: s$7["rate-selector-item"] + " " + (isFixed ? s$7["selected"] : ""),
4500
+ className: s$9["rate-selector-item"] + " " + (isFixed ? s$9["selected"] : ""),
4465
4501
  onClick: function onClick() {
4466
- return setIsFixed(true);
4502
+ return !isFixed ? setIsFixed(true) : null;
4467
4503
  }
4468
4504
  }, /*#__PURE__*/React.createElement("div", {
4469
- className: s$7["rate-selector-item-text"]
4505
+ className: s$9["rate-selector-item-text"]
4470
4506
  }, translations.fixedRate)));
4471
4507
  };
4472
4508
 
@@ -4691,7 +4727,7 @@ function useIsHydrated() {
4691
4727
  * @constructor
4692
4728
  */
4693
4729
 
4694
- function _catch$e(body, recover) {
4730
+ function _catch$f(body, recover) {
4695
4731
  try {
4696
4732
  var result = body();
4697
4733
  } catch (e) {
@@ -5015,23 +5051,26 @@ var SwapForm = function SwapForm(_ref) {
5015
5051
  setMaximumAmountValid(!maximumAmount.current || BigNumber(amount).eq("0") || BigNumber(amount).lte(maximumAmount.current.crypto));
5016
5052
  setMinimalAmountValid(!minimalAmount.current || BigNumber(amount).eq("0") || BigNumber(amount).gte((_minimalAmount$curren5 = minimalAmount.current) == null ? void 0 : _minimalAmount$curren5.crypto));
5017
5053
  };
5018
- var requestDataRefresh = function requestDataRefresh(amount, immediately, isSwapAll) {
5054
+ var requestDataRefresh = function requestDataRefresh(amount, immediately, isSwapAll, ignoreEmptyAmount) {
5019
5055
  if (immediately === void 0) {
5020
5056
  immediately = false;
5021
5057
  }
5022
5058
  if (isSwapAll === void 0) {
5023
5059
  isSwapAll = false;
5024
5060
  }
5061
+ if (ignoreEmptyAmount === void 0) {
5062
+ ignoreEmptyAmount = false;
5063
+ }
5025
5064
  try {
5026
5065
  clearTimeout(dataUpdateTimeoutId.current);
5027
5066
  if (isSwapAll) {
5028
5067
  loadFullEstimation(null);
5029
5068
  return;
5030
5069
  }
5031
- if (!amount) {
5070
+ if (!amount && !ignoreEmptyAmount) {
5032
5071
  return;
5033
5072
  }
5034
- if (BigNumber(amount).eq("0")) {
5073
+ if (BigNumber(amount).eq("0") || amount == null || amount === "") {
5035
5074
  if (immediately) {
5036
5075
  loadMinimalAmountAndSwapRate(true);
5037
5076
  } else {
@@ -5087,7 +5126,7 @@ var SwapForm = function SwapForm(_ref) {
5087
5126
  }
5088
5127
  (function () {
5089
5128
  try {
5090
- return _catch$e(function () {
5129
+ return _catch$f(function () {
5091
5130
  var _minimalAmount$curren6, _maximumAmount$curren5, _isFixedRate$current;
5092
5131
  var dataMemento = {
5093
5132
  rate: swapRate,
@@ -5173,7 +5212,7 @@ var SwapForm = function SwapForm(_ref) {
5173
5212
  }
5174
5213
  (function () {
5175
5214
  try {
5176
- return _catch$e(function () {
5215
+ return _catch$f(function () {
5177
5216
  setIsLoading(true);
5178
5217
  setMinimalAmount(null);
5179
5218
  setMaximumAmount(null);
@@ -5182,7 +5221,7 @@ var SwapForm = function SwapForm(_ref) {
5182
5221
  setIsPairSupported(true);
5183
5222
  setIsSwapCalculated(false);
5184
5223
  return Promise.resolve(retrieveInitialSwapData(sendingAssetTicker, receivingAssetTicker)).then(function (swapData) {
5185
- if (sendAssetAmount.current != null && !isCalledForClearedInput) {
5224
+ if ((isFixedRate.current && isLastEditedReceiving.current ? receiveAssetAmount.current != null : sendAssetAmount.current != null) && !isCalledForClearedInput) {
5186
5225
  // Means user already entered amount after starting the form initialization
5187
5226
  return;
5188
5227
  }
@@ -5226,7 +5265,7 @@ var SwapForm = function SwapForm(_ref) {
5226
5265
  };
5227
5266
  var handleRateModeChanged = function handleRateModeChanged(isFixed) {
5228
5267
  setIsFixedRate(isFixed);
5229
- requestDataRefresh(isLastEditedReceiving.current ? receiveAssetAmount.current : sendAssetAmount.current, true);
5268
+ requestDataRefresh(isLastEditedReceiving.current ? receiveAssetAmount.current : sendAssetAmount.current, true, null, true);
5230
5269
  };
5231
5270
  useEffect(function () {
5232
5271
  if (isSwapAll.current === true) {
@@ -5243,9 +5282,10 @@ var SwapForm = function SwapForm(_ref) {
5243
5282
  }, [isFixedRate.current]);
5244
5283
  useEffect(function () {
5245
5284
  if (!sendingAssetTicker || !receivingAssetTicker) return;
5246
- var isCurrentAmountNotZero = sendAssetAmount.current && !BigNumber("0").eq(sendAssetAmount.current);
5285
+ var currentAmount = isLastEditedReceiving.current ? receiveAssetAmount.current : sendAssetAmount.current;
5286
+ var isCurrentAmountNotZero = currentAmount && !BigNumber("0").eq(currentAmount);
5247
5287
  if (isCurrentAmountNotZero) {
5248
- loadFullEstimation(isLastEditedReceiving.current ? receiveAssetAmount.current : sendAssetAmount.current);
5288
+ loadFullEstimation(currentAmount);
5249
5289
  } else {
5250
5290
  loadMinimalAmountAndSwapRate(true);
5251
5291
  }
@@ -5341,7 +5381,7 @@ var SwapForm = function SwapForm(_ref) {
5341
5381
  // eslint-disable-next-line react-hooks/exhaustive-deps
5342
5382
  }, [updateSendInputTo, updateReceiveInputTo]);
5343
5383
  useEffect(function () {
5344
- if (swapRate != null && sendAssetAmount.current != null) {
5384
+ if (swapRate != null && (isLastEditedReceiving.current ? receiveAssetAmount.current : sendAssetAmount.current) != null) {
5345
5385
  if (isLastEditedReceiving.current) {
5346
5386
  setUpdateSendInputTo(AmountUtils.trim(BigNumber(receiveAssetAmount.current).div(swapRate), sendingAssetDecimalCount));
5347
5387
  } else {
@@ -5372,7 +5412,7 @@ var SwapForm = function SwapForm(_ref) {
5372
5412
  var recipientAddressExtraIdName = getExtraIdNameByTicker(receivingAssetTicker);
5373
5413
  var refundAddressExtraIdName = getExtraIdNameByTicker(sendingAssetTicker);
5374
5414
  return /*#__PURE__*/React.createElement("div", {
5375
- className: s$9["swap-form"]
5415
+ className: s$b["swap-form"]
5376
5416
  }, /*#__PURE__*/React.createElement(TitleBox, {
5377
5417
  linkButtonClick: BigNumber(sendingAssetBalance == null ? void 0 : sendingAssetBalance.assetAmount).eq(0) ? null : function (resetButtonLoader) {
5378
5418
  return handleSwapAllClick(resetButtonLoader);
@@ -5381,13 +5421,13 @@ var SwapForm = function SwapForm(_ref) {
5381
5421
  linkButtonLoader: true,
5382
5422
  isLinkButtonDisabled: isLoading.current || sendingAssetTicker === receivingAssetTicker || BigNumber(sendingAssetBalance == null ? void 0 : sendingAssetBalance.assetAmount).eq(0)
5383
5423
  }, displayRateSelector ? /*#__PURE__*/React.createElement("div", {
5384
- className: s$9["swap-form-rate-selector"]
5424
+ className: s$b["swap-form-rate-selector"]
5385
5425
  }, /*#__PURE__*/React.createElement(RateSelector, {
5386
5426
  isFixed: (_isFixedRate$current2 = isFixedRate.current) != null ? _isFixedRate$current2 : IS_FIXED_BY_DEFAULT,
5387
5427
  setIsFixed: handleRateModeChanged,
5388
5428
  translations: translations.rateSelector
5389
5429
  })) : "", /*#__PURE__*/React.createElement("div", {
5390
- className: s$9["swap-form-inputs"]
5430
+ className: s$b["swap-form-inputs"]
5391
5431
  }, /*#__PURE__*/React.createElement(AmountInput, {
5392
5432
  ticker: sendingAssetTicker,
5393
5433
  tickerPrintable: sendingAssetTickerPrintable,
@@ -5412,12 +5452,12 @@ var SwapForm = function SwapForm(_ref) {
5412
5452
  ref: fromAssetSelectionButtonRef,
5413
5453
  isLoading: isLastEditedReceiving.current ? isLoading.current : false,
5414
5454
  cryptoAssetToFiatRate: sendingAssetToFiatRate,
5415
- fiatCurrencyCode: formHasFiat ? fiatCurrencyCode : null,
5455
+ fiatCurrencyCode: formHasFiat && (isLoading.current || sendingAssetToFiatRate != null) ? fiatCurrencyCode : null,
5416
5456
  fiatCurrencyDecimals: fiatCurrencyDecimals,
5417
5457
  balanceLoaderText: translations.input.balanceLoaderText,
5418
5458
  fiatInputPlaceholderText: translations.input.fiatPlaceholder
5419
5459
  }), /*#__PURE__*/React.createElement("div", {
5420
- className: s$9["swap-form-inputs-separator"] + " " + (isLoading.current || sendingAssetTicker === null || receivingAssetTicker === null ? s$9["disabled"] : "")
5460
+ className: s$b["swap-form-inputs-separator"] + " " + (isLoading.current || sendingAssetTicker === null || receivingAssetTicker === null ? s$b["disabled"] : "")
5421
5461
  }, /*#__PURE__*/React.createElement("img", {
5422
5462
  src: swapSeparatorIconSrc,
5423
5463
  alt: "swap icon",
@@ -5435,7 +5475,7 @@ var SwapForm = function SwapForm(_ref) {
5435
5475
  assetIconProtocolSrc: receivingAssetProtocolIconSrc,
5436
5476
  fallbackAssetIconSrc: fallBackAssetIconSrc,
5437
5477
  disabled: isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null,
5438
- locked: !formHasBalance && !isFixedRate.current,
5478
+ locked: !formHasBalance,
5439
5479
  handleCoinAmountChange: handleReceiveAssetAmountChange,
5440
5480
  handleChangeAssetClick: handleChangeReceivingAssetClick,
5441
5481
  updateAssetInputTo: updateReceiveInputTo,
@@ -5448,30 +5488,30 @@ var SwapForm = function SwapForm(_ref) {
5448
5488
  ref: toAssetSelectionButtonRef,
5449
5489
  isLoading: isLastEditedReceiving.current ? false : isLoading.current,
5450
5490
  cryptoAssetToFiatRate: receivingAssetToFiatRate,
5451
- fiatCurrencyCode: formHasFiat ? fiatCurrencyCode : null,
5491
+ fiatCurrencyCode: formHasFiat && (isLoading.current || receivingAssetToFiatRate != null) ? fiatCurrencyCode : null,
5452
5492
  fiatCurrencyDecimals: fiatCurrencyDecimals,
5453
5493
  balanceLoaderText: translations.input.balanceLoaderText,
5454
5494
  fiatInputPlaceholderText: translations.input.fiatPlaceholder
5455
5495
  })), /*#__PURE__*/React.createElement("div", {
5456
- className: s$9["swap-form-information-field"]
5496
+ className: s$b["swap-form-information-field"]
5457
5497
  }, /*#__PURE__*/React.createElement("p", null, !isPairSupported ? translations.informationBlock.pairNotAvailable : transactionFee && minimalAmountValid ? /*#__PURE__*/React.createElement(React.Fragment, null, translations.informationBlock.transactionFee, /*#__PURE__*/React.createElement("span", null, AmountUtils.crypto(transactionFee == null ? void 0 : transactionFee.crypto, sendingAssetFeeCoinTickerPrintable)), (transactionFee == null ? void 0 : transactionFee.fiat) != null && (transactionFee == null ? void 0 : transactionFee.fiat) !== "" ? /*#__PURE__*/React.createElement("span", {
5458
5498
  className: "semi-transparent"
5459
5499
  }, " ~ " + AmountUtils.fiat(transactionFee == null ? void 0 : transactionFee.fiat, fiatCurrencyCode)) : "") : !isLoading.current && (isSwapCalculated || !minimalAmount.current && swapRate) ? /*#__PURE__*/React.createElement(React.Fragment, null, translations.informationBlock.swapRate, /*#__PURE__*/React.createElement("span", null, AmountUtils.composeRateText(sendingAssetTickerPrintable, receivingAssetTickerPrintable, swapRate, receivingAssetDecimalCount, (_isFixedRate$current3 = isFixedRate.current) != null ? _isFixedRate$current3 : IS_FIXED_BY_DEFAULT))) : minimalAmount.current || maximumAmount.current ? !maximumAmountValid && maximumAmount.current != null ? /*#__PURE__*/React.createElement(React.Fragment, null, translations.informationBlock.maximumAmount, /*#__PURE__*/React.createElement("span", {
5460
- className: s$9["interactable"] + " " + s$9["red"],
5500
+ className: s$b["interactable"] + " " + s$b["red"],
5461
5501
  onClick: isLoading.current ? function () {} : function (e) {
5462
5502
  return callHandlingErrors(handleMaximumAmountClick, e);
5463
5503
  }
5464
5504
  }, AmountUtils.crypto((_maximumAmount$curren6 = maximumAmount.current) == null ? void 0 : _maximumAmount$curren6.crypto, isLastEditedReceiving.current ? receivingAssetTickerPrintable : sendingAssetTickerPrintable)), ((_maximumAmount$curren7 = maximumAmount.current) == null ? void 0 : _maximumAmount$curren7.fiat) != null && ((_maximumAmount$curren8 = maximumAmount.current) == null ? void 0 : _maximumAmount$curren8.fiat) !== "" ? /*#__PURE__*/React.createElement("span", {
5465
5505
  className: "semi-transparent"
5466
5506
  }, " ~ " + AmountUtils.fiat(maximumAmount.current.fiat, fiatCurrencyCode)) : "") : !minimalAmount.current ? "" : /*#__PURE__*/React.createElement(React.Fragment, null, translations.informationBlock.minimumAmount, /*#__PURE__*/React.createElement("span", {
5467
- className: s$9["interactable"] + " " + (!minimalAmountValid ? s$9["red"] : ""),
5507
+ className: s$b["interactable"] + " " + (!minimalAmountValid ? s$b["red"] : ""),
5468
5508
  onClick: isLoading.current ? function () {} : function (e) {
5469
5509
  return callHandlingErrors(handleMinimalAmountClick, e);
5470
5510
  }
5471
5511
  }, AmountUtils.crypto(minimalAmount.current.crypto, isLastEditedReceiving.current ? receivingAssetTickerPrintable : sendingAssetTickerPrintable)), ((_minimalAmount$curren7 = minimalAmount.current) == null ? void 0 : _minimalAmount$curren7.fiat) != null && minimalAmount.current.fiat !== "" ? /*#__PURE__*/React.createElement("span", {
5472
5512
  className: "semi-transparent"
5473
- }, " ~ " + AmountUtils.fiat(minimalAmount.current.fiat, fiatCurrencyCode)) : "") : isLoading.current ? sendAssetAmount.current || isSwapAll.current ? translations.informationBlock[formHasBalance ? "calculatingNetworkFee" : "calculatingSwapRates"] : translations.informationBlock.loadingMinimalAmount : "")), isAddressFieldEnabled ? /*#__PURE__*/React.createElement("div", {
5474
- className: s$9["swap-form-address-field"]
5513
+ }, " ~ " + AmountUtils.fiat(minimalAmount.current.fiat, fiatCurrencyCode)) : "") : isLoading.current ? sendAssetAmount.current || receiveAssetAmount.current || isSwapAll.current ? translations.informationBlock[formHasBalance ? "calculatingNetworkFee" : "calculatingSwapRates"] : translations.informationBlock.loadingMinimalAmount : "")), isAddressFieldEnabled ? /*#__PURE__*/React.createElement("div", {
5514
+ className: s$b["swap-form-address-field"]
5475
5515
  }, /*#__PURE__*/React.createElement(TitleBox, {
5476
5516
  title: translations.addressFields.addressTitle
5477
5517
  }, /*#__PURE__*/React.createElement(Textarea, {
@@ -5517,20 +5557,20 @@ var SwapForm = function SwapForm(_ref) {
5517
5557
  adaptiveHeight: true,
5518
5558
  placeholder: translations.addressFields.extraIdPlaceholder
5519
5559
  })) : null) : null) : null, validationContent ? /*#__PURE__*/React.createElement("div", {
5520
- className: s$9["swap-form-validation-text"]
5560
+ className: s$b["swap-form-validation-text"]
5521
5561
  }, /*#__PURE__*/React.createElement(Validation, {
5522
5562
  text: validationContent
5523
5563
  })) : "", /*#__PURE__*/React.createElement("div", {
5524
- className: s$9["swap-form-button-container"]
5564
+ className: s$b["swap-form-button-container"]
5525
5565
  }, !termsOfUseUrl || !privacyPolicyUrl ? null : /*#__PURE__*/React.createElement("p", {
5526
- className: s$9["swap-form-button-container-consent-text"]
5566
+ className: s$b["swap-form-button-container-consent-text"]
5527
5567
  }, translations.consents.consentText + " ", /*#__PURE__*/React.createElement("a", {
5528
5568
  href: termsOfUseUrl,
5529
- className: s$9["swap-form-button-container-consent-text-link"],
5569
+ className: s$b["swap-form-button-container-consent-text-link"],
5530
5570
  target: "_blank"
5531
5571
  }, translations.consents.termsOfUse), " " + translations.consents.and + " ", /*#__PURE__*/React.createElement("a", {
5532
5572
  href: privacyPolicyUrl,
5533
- className: s$9["swap-form-button-container-consent-text-link"],
5573
+ className: s$b["swap-form-button-container-consent-text-link"],
5534
5574
  target: "_blank"
5535
5575
  }, translations.consents.privacyPolicy), "."), /*#__PURE__*/React.createElement(Button, {
5536
5576
  size: "lg",
@@ -5641,7 +5681,7 @@ SwapForm.defaultProps = {
5641
5681
  * @return {Promise<string>} xml string of generated svg image
5642
5682
  */
5643
5683
 
5644
- function _catch$d(body, recover) {
5684
+ function _catch$e(body, recover) {
5645
5685
  try {
5646
5686
  var result = body();
5647
5687
  } catch (e) {
@@ -5654,7 +5694,7 @@ function _catch$d(body, recover) {
5654
5694
  }
5655
5695
  var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingString) {
5656
5696
  try {
5657
- return Promise.resolve(_catch$d(function () {
5697
+ return Promise.resolve(_catch$e(function () {
5658
5698
  return Promise.resolve(QRCode.toString(encodingString, {
5659
5699
  type: "svg"
5660
5700
  }));
@@ -5666,7 +5706,7 @@ var generateQrAndShowInCanvas = function generateQrAndShowInCanvas(encodingStrin
5666
5706
  }
5667
5707
  };
5668
5708
 
5669
- var s$6 = {"qr-code":"_VZ0dT","fill":"_hFE1l"};
5709
+ var s$8 = {"qr-code":"_VZ0dT","fill":"_hFE1l"};
5670
5710
 
5671
5711
  /**
5672
5712
  * QrCode component renders a QR code for a provided crypto address.
@@ -5679,7 +5719,7 @@ var s$6 = {"qr-code":"_VZ0dT","fill":"_hFE1l"};
5679
5719
  * @returns {JSX.Element} A div containing the generated QR code.
5680
5720
  */
5681
5721
 
5682
- function _catch$c(body, recover) {
5722
+ function _catch$d(body, recover) {
5683
5723
  try {
5684
5724
  var result = body();
5685
5725
  } catch (e) {
@@ -5698,7 +5738,7 @@ var QrCode = function QrCode(_ref) {
5698
5738
  useEffect(function () {
5699
5739
  (function () {
5700
5740
  try {
5701
- return _catch$c(function () {
5741
+ return _catch$d(function () {
5702
5742
  var _temp = function () {
5703
5743
  if (address) {
5704
5744
  return Promise.resolve(generateQrAndShowInCanvas(address)).then(function (_generateQrAndShowInC) {
@@ -5716,7 +5756,7 @@ var QrCode = function QrCode(_ref) {
5716
5756
  })();
5717
5757
  }, [address]);
5718
5758
  return /*#__PURE__*/React.createElement("div", {
5719
- className: s$6["qr-code"] + (fill ? " " + s$6["fill"] : ""),
5759
+ className: s$8["qr-code"] + (fill ? " " + s$8["fill"] : ""),
5720
5760
  ref: canvasRef
5721
5761
  });
5722
5762
  };
@@ -5728,7 +5768,7 @@ QrCode.defaultProps = {
5728
5768
  fill: false
5729
5769
  };
5730
5770
 
5731
- var s$5 = {"first-line-text":"_IGz2I","wrap":"_eKd8P","break":"_mT5i4","full-text":"_PVKxC","shorted":"_wB5qV","horizontal":"_lqJz-","line":"_MGRy0","second-line-text":"_hdF64"};
5771
+ var s$7 = {"first-line-text":"_IGz2I","wrap":"_eKd8P","break":"_mT5i4","full-text":"_PVKxC","shorted":"_wB5qV","horizontal":"_lqJz-","line":"_MGRy0","second-line-text":"_hdF64"};
5732
5772
 
5733
5773
  /**
5734
5774
  * Renders up to three lines of text with configurable options for horizontal layout, text wrapping, and breaking.
@@ -5766,19 +5806,19 @@ var LinesOfText = function LinesOfText(_ref) {
5766
5806
  _ref$breakFirstLine = _ref.breakFirstLine,
5767
5807
  breakFirstLine = _ref$breakFirstLine === void 0 ? false : _ref$breakFirstLine;
5768
5808
  return defaultTextContent ? /*#__PURE__*/React.createElement("div", {
5769
- className: s$5["centered-vertically"]
5809
+ className: s$7["centered-vertically"]
5770
5810
  }, defaultTextContent) : /*#__PURE__*/React.createElement("div", {
5771
- className: isHorizontal ? s$5["horizontal"] : ""
5811
+ className: isHorizontal ? s$7["horizontal"] : ""
5772
5812
  }, /*#__PURE__*/React.createElement("h5", {
5773
- className: s$5["first-line-text"]
5813
+ className: s$7["first-line-text"]
5774
5814
  }, /*#__PURE__*/React.createElement("span", {
5775
- className: (isFirstLineTextReducible ? s$5["shorted"] : s$5["full-text"]) + " " + (wrapFirstLine ? " " + s$5["wrap"] : "") + " " + (breakFirstLine ? " " + s$5["break"] : "")
5815
+ className: (isFirstLineTextReducible ? s$7["shorted"] : s$7["full-text"]) + " " + (wrapFirstLine ? " " + s$7["wrap"] : "") + " " + (breakFirstLine ? " " + s$7["break"] : "")
5776
5816
  }, firstLineText), "\xA0" + firstLineNotReducibleSuffix), isHorizontal ? /*#__PURE__*/React.createElement("div", {
5777
5817
  className: "line"
5778
5818
  }) : null, secondLineText ? /*#__PURE__*/React.createElement("p", {
5779
- className: s$5["second-line-text"]
5819
+ className: s$7["second-line-text"]
5780
5820
  }, secondLineText) : null, thirdLineText ? /*#__PURE__*/React.createElement("p", {
5781
- className: s$5["second-line-text"]
5821
+ className: s$7["second-line-text"]
5782
5822
  }, thirdLineText) : null);
5783
5823
  };
5784
5824
  LinesOfText.propTypes = {
@@ -5804,7 +5844,7 @@ LinesOfText.defaultProps = {
5804
5844
  breakFirstLine: false
5805
5845
  };
5806
5846
 
5807
- var s$4 = {"line-with-icon-link-icon":"_8HT4K","line-with-icon-link":"_m8MBC","line-with-icon-link-text":"_M7e-R"};
5847
+ var s$6 = {"line-with-icon-link-icon":"_8HT4K","line-with-icon-link":"_m8MBC","line-with-icon-link-text":"_M7e-R"};
5808
5848
 
5809
5849
  /**
5810
5850
  * Renders a line with text and an accompanying icon that serves as a link.
@@ -5819,9 +5859,9 @@ var LineWithIconLink = function LineWithIconLink(_ref) {
5819
5859
  icon = _ref.icon,
5820
5860
  url = _ref.url;
5821
5861
  return /*#__PURE__*/React.createElement("div", {
5822
- className: s$4["line-with-icon-link"]
5862
+ className: s$6["line-with-icon-link"]
5823
5863
  }, /*#__PURE__*/React.createElement("h5", {
5824
- className: s$4["line-with-icon-link-text"]
5864
+ className: s$6["line-with-icon-link-text"]
5825
5865
  }, text), /*#__PURE__*/React.createElement("a", {
5826
5866
  href: url,
5827
5867
  target: "_blank",
@@ -6063,7 +6103,7 @@ TitledLineWithIconLink.propTypes = {
6063
6103
  };
6064
6104
  TitledLineWithIconLink.defaultProps = {};
6065
6105
 
6066
- var s$3 = {"radio-button-with-text-container":"_n8DcU","radio-button-with-text":"_BcSKE","selected":"_orWq2","disabled":"_2bALK","hide":"_-LxGT","radio-button-with-text-wrapper":"_cRkxm","radio-button-with-text-content":"_gUlt9","radio-button-with-text-dots":"_pyIax","show":"_EOvAZ"};
6106
+ var s$5 = {"radio-button-with-text-container":"_n8DcU","radio-button-with-text":"_BcSKE","selected":"_orWq2","disabled":"_2bALK","hide":"_-LxGT","radio-button-with-text-wrapper":"_cRkxm","radio-button-with-text-content":"_gUlt9","radio-button-with-text-dots":"_pyIax","show":"_EOvAZ"};
6067
6107
 
6068
6108
  /**
6069
6109
  * RadioButtonWithText component with a label and optional tooltip.
@@ -6123,10 +6163,10 @@ var RadioButtonWithText = function RadioButtonWithText(_ref) {
6123
6163
  }
6124
6164
  };
6125
6165
  return /*#__PURE__*/React.createElement("div", {
6126
- className: s$3["radio-button-with-text-container"]
6166
+ className: s$5["radio-button-with-text-container"]
6127
6167
  }, /*#__PURE__*/React.createElement("label", {
6128
6168
  htmlFor: "radio-button-with-text-" + id,
6129
- className: [s$3["radio-button-with-text"], isSwitchedOn ? s$3["selected"] : "", isLoading ? s$3["hide"] : "", isDisabled ? s$3["disabled"] : ""].join(" "),
6169
+ className: [s$5["radio-button-with-text"], isSwitchedOn ? s$5["selected"] : "", isLoading ? s$5["hide"] : "", isDisabled ? s$5["disabled"] : ""].join(" "),
6130
6170
  onMouseEnter: function onMouseEnter(e) {
6131
6171
  return handleError(_onMouseEnter, e);
6132
6172
  },
@@ -6139,16 +6179,16 @@ var RadioButtonWithText = function RadioButtonWithText(_ref) {
6139
6179
  return setShowTooltip(false);
6140
6180
  }
6141
6181
  }, tooltipText)) : null, /*#__PURE__*/React.createElement("div", {
6142
- className: s$3["radio-button-with-text-dots"] + (isLoading ? s$3["show"] : "")
6182
+ className: s$5["radio-button-with-text-dots"] + (isLoading ? s$5["show"] : "")
6143
6183
  }, /*#__PURE__*/React.createElement(LoadingDots, null)), /*#__PURE__*/React.createElement("div", {
6144
- className: s$3["radio-button-with-text-content"] + " " + ("")
6184
+ className: s$5["radio-button-with-text-content"] + " " + ("")
6145
6185
  }, /*#__PURE__*/React.createElement("input", {
6146
6186
  id: "radio-button-with-text-" + id,
6147
6187
  type: "checkbox",
6148
6188
  value: isSwitchedOn,
6149
6189
  onChange: handleChange
6150
6190
  }), /*#__PURE__*/React.createElement("span", {
6151
- className: s$3["radio-button-with-text-wrapper"]
6191
+ className: s$5["radio-button-with-text-wrapper"]
6152
6192
  }, text))));
6153
6193
  };
6154
6194
  RadioButtonWithText.propTypes = {
@@ -6167,7 +6207,7 @@ RadioButtonWithText.defaultProps = {
6167
6207
  id: ""
6168
6208
  };
6169
6209
 
6170
- var s$2 = {"information-message":"_95-Ev","data-loaded":"_-kB8A","big-image":"_2LO1t","information-message-text":"_BiT68","white-text":"_-BraU"};
6210
+ var s$4 = {"information-message":"_95-Ev","data-loaded":"_-kB8A","big-image":"_2LO1t","information-message-text":"_BiT68","white-text":"_-BraU"};
6171
6211
 
6172
6212
  var InfoIcon = (function () {
6173
6213
  return /*#__PURE__*/React.createElement("svg", {
@@ -6210,13 +6250,13 @@ var InformationMessage = function InformationMessage(_ref) {
6210
6250
  _ref$children = _ref.children,
6211
6251
  children = _ref$children === void 0 ? null : _ref$children;
6212
6252
  return /*#__PURE__*/React.createElement("div", {
6213
- className: s$2["information-message"] + (bigImage ? " " + s$2["big-image"] : "")
6253
+ className: s$4["information-message"] + (bigImage ? " " + s$4["big-image"] : "")
6214
6254
  }, icon ? /*#__PURE__*/React.createElement("img", {
6215
6255
  src: icon,
6216
6256
  alt: "info icon",
6217
6257
  loading: "lazy"
6218
6258
  }) : /*#__PURE__*/React.createElement(InfoIcon, null), /*#__PURE__*/React.createElement("p", {
6219
- className: s$2["information-message-text"] + (whiteText ? " " + s$2["white-text"] : "")
6259
+ className: s$4["information-message-text"] + (whiteText ? " " + s$4["white-text"] : "")
6220
6260
  }, text, children));
6221
6261
  };
6222
6262
  InformationMessage.propTypes = {
@@ -6234,7 +6274,7 @@ InformationMessage.defaultProps = {
6234
6274
  children: null
6235
6275
  };
6236
6276
 
6237
- var s$1 = {"input":"_ulRDR","big-height":"_F2P0V","small-height":"_-B-mJ","disabled":"_nGsPr","fill-width":"_5xJbH","error-encountered":"_zp1RY","input-clear-button":"_iqmlY","image-background":"_YK4ec","image-background-clear-button":"_VOvdT","input-label":"_bICe7"};
6277
+ var s$3 = {"input":"_ulRDR","big-height":"_F2P0V","small-height":"_-B-mJ","disabled":"_nGsPr","fill-width":"_5xJbH","error-encountered":"_zp1RY","input-clear-button":"_iqmlY","image-background":"_YK4ec","image-background-clear-button":"_VOvdT","input-label":"_bICe7"};
6238
6278
 
6239
6279
  /**
6240
6280
  * Input component for forms.
@@ -6317,12 +6357,12 @@ var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
6317
6357
  }
6318
6358
  };
6319
6359
  return /*#__PURE__*/React.createElement("div", {
6320
- className: [s$1["input"], isBigHeight ? s$1["big-height"] : "", isSmallHeight ? s$1["small-height"] : "", disabled ? s$1["disabled"] : "", fillWidth ? s$1["fill-width"] : "", imageBackground ? s$1["image-background"] : ""].join(" ")
6360
+ className: [s$3["input"], isBigHeight ? s$3["big-height"] : "", isSmallHeight ? s$3["small-height"] : "", disabled ? s$3["disabled"] : "", fillWidth ? s$3["fill-width"] : "", imageBackground ? s$3["image-background"] : ""].join(" ")
6321
6361
  }, label ? /*#__PURE__*/React.createElement("label", {
6322
6362
  htmlFor: id,
6323
- className: s$1["input-label"]
6363
+ className: s$3["input-label"]
6324
6364
  }, label) : null, clearButton ? /*#__PURE__*/React.createElement("div", {
6325
- className: s$1["input-clear-button"]
6365
+ className: s$3["input-clear-button"]
6326
6366
  }, /*#__PURE__*/React.createElement(Close, {
6327
6367
  onClick: handleClearButtonClick,
6328
6368
  color: "dark-invert"
@@ -6334,7 +6374,7 @@ var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
6334
6374
  return handleError(_onChange, e);
6335
6375
  },
6336
6376
  placeholder: placeholder,
6337
- className: className + (errorEncountered ? " " + s$1["error-encountered"] : ""),
6377
+ className: className + (errorEncountered ? " " + s$3["error-encountered"] : ""),
6338
6378
  defaultValue: defaultValue,
6339
6379
  disabled: disabled,
6340
6380
  onKeyUp: function onKeyUp(event) {
@@ -6350,7 +6390,7 @@ var Input = /*#__PURE__*/forwardRef(function (_ref, ref) {
6350
6390
  return handleError(_onChange, e);
6351
6391
  },
6352
6392
  placeholder: placeholder,
6353
- className: className + (errorEncountered ? " " + s$1["error-encountered"] : ""),
6393
+ className: className + (errorEncountered ? " " + s$3["error-encountered"] : ""),
6354
6394
  value: value,
6355
6395
  disabled: disabled,
6356
6396
  onKeyUp: function onKeyUp(event) {
@@ -6407,12 +6447,290 @@ Input.defaultProps = {
6407
6447
  errorEncountered: false
6408
6448
  };
6409
6449
 
6410
- var s = {"coin-picker":"_mvuzQ","loading":"_18kIX","item":"_fSxCX","link":"_rOS3q","content":"_ONDTD","name":"_GlPf1","amount":"_kiTZB","icon":"_jrdDI","coin-picker-search":"_9BFcQ","coin-picker-wrapper":"_6Melc","fixed-height":"_pSvdH","reached-top":"_SQFMD","reached-bottom":"_CTcCE","coin-picker-wrapper-content":"_uK6LL","coin-picker-wrapper-content-bottom-message":"_TxE8d","coin-picker-wrapper-content-bottom-message-link":"_jX5uW","coin-picker-wrapper-content-assets":"_YA-nb","outline":"_665-T","disabled":"_hBmLs","toggle-container":"_KZMGR","arrow":"_dgQQJ","coin-picker-wrapper-content-load-more-button":"_DjR6l","coin-picker-wrapper-content-asset-not-found":"_0PUY9"};
6450
+ var s$2 = {"coin-picker":"_mvuzQ","loading":"_18kIX","item":"_fSxCX","link":"_rOS3q","content":"_ONDTD","name":"_GlPf1","amount":"_kiTZB","icon":"_jrdDI","coin-picker-search":"_9BFcQ","coin-picker-wrapper":"_6Melc","fixed-height":"_pSvdH","reached-top":"_SQFMD","reached-bottom":"_CTcCE","coin-picker-wrapper-content":"_uK6LL","coin-picker-wrapper-content-bottom-message":"_TxE8d","coin-picker-wrapper-content-bottom-message-link":"_jX5uW","coin-picker-wrapper-content-assets":"_YA-nb","outline":"_665-T","disabled":"_hBmLs","toggle-container":"_KZMGR","arrow":"_dgQQJ","coin-picker-wrapper-content-load-more-button":"_DjR6l","coin-picker-wrapper-content-asset-not-found":"_0PUY9"};
6411
6451
 
6412
6452
  var FALLBACK_ASSET_ICON_URL = "https://rabbit.io/asset-icons/fallback.svg";
6413
6453
  var DEFAULT_CRYPTO_DECIMAL_COUNT = 8;
6414
6454
 
6415
- function _catch$b(body, recover) {
6455
+ /**
6456
+ * The model for cryptocurrency coins.
6457
+ *
6458
+ * WARNING: this class should not be instantiated directly. Use only predefined singleton Coin (or descendants) instances.
6459
+ */
6460
+ var Coin = /*#__PURE__*/function () {
6461
+ /**
6462
+ * Creates new coin
6463
+ *
6464
+ * @param latinName {string} the coin name in latin symbols like "Bitcoin"
6465
+ * @param ticker {string} the coin symbol/ticker/code like 'BTC'. Always upper case. A unique coin identifier
6466
+ * @param tickerPrintable {string} ticker but in printable format. Useful for tokens based on external blockchains
6467
+ * like ERC20 or TRC20. It is not friendly to display USDTERC20 or BUSDTRC20 - more neat options are just
6468
+ * USDT and BUSD. Note that you should always care about user's understanding of what coin he/she is working
6469
+ * with as printable ticker for USDTERC20 and USDTTRC20 are the same.
6470
+ * @param digitsCountAfterComma {number} count of digits after the comma. E.g. 8 for bitcoin
6471
+ * @param maxValue {number|null} max possible value for cryptocurrency. Null means that the currency has no max possible value
6472
+ * @param atomName {string} name of the coin's atomic value. Like 'satoshi' for bitcoin
6473
+ * @param mainnet {Network} main network for this coin
6474
+ * @param testnet {Network} test network for this coin
6475
+ * @param minConfirmations {number} min confirmations count to treat the coin's transaction confirmed
6476
+ * @param payableEntityStringForFeeRate {string|null} the payable fee entity like byte for bitcoin or gas for ether if present
6477
+ * @param feeOptionsTimeStringsSortedDesc {string[]} array of 4 strings for fee options when sending coins. Should be sorted from the highest time to the smallest
6478
+ * @param feeRatesExpirationTimeMs {number} number of milliseconds to treat the fee rates as expired
6479
+ * @param blockchain {Blockchain} blockchain object
6480
+ * @param [protocol] {Protocol|null} token/coin protocol if relevant
6481
+ * @param [tokenAddress] {string|null} address of contract of this token (if the coin is token)
6482
+ * @param [doesUseLowerCaseAddresses] {boolean} flag to clarify whether we can use lower case addresses to ensure more robust comparisons
6483
+ * @param [doesUseOutputs=false] {boolean} true if this coin uses inputs/outputs concept and false if it uses just balances
6484
+ */
6485
+ function Coin(latinName, ticker, tickerPrintable, digitsCountAfterComma, maxValue, atomName, mainnet, testnet, minConfirmations, payableEntityStringForFeeRate, feeOptionsTimeStringsSortedDesc, feeRatesExpirationTimeMs, blockchain, protocol, tokenAddress, doesUseLowerCaseAddresses, doesUseOutputs) {
6486
+ if (protocol === void 0) {
6487
+ protocol = null;
6488
+ }
6489
+ if (tokenAddress === void 0) {
6490
+ tokenAddress = null;
6491
+ }
6492
+ if (doesUseLowerCaseAddresses === void 0) {
6493
+ doesUseLowerCaseAddresses = true;
6494
+ }
6495
+ if (doesUseOutputs === void 0) {
6496
+ doesUseOutputs = false;
6497
+ }
6498
+ this.latinName = latinName;
6499
+ this.ticker = ticker;
6500
+ this.tickerPrintable = tickerPrintable;
6501
+ this.digits = digitsCountAfterComma;
6502
+ this.maxValue = maxValue;
6503
+ this.atomName = atomName;
6504
+ this.mainnet = mainnet;
6505
+ this.testnet = testnet;
6506
+ this.minConfirmations = minConfirmations;
6507
+ this.payableEntityStringForFeeRate = payableEntityStringForFeeRate;
6508
+ this.feeOptionsTimeStringsSortedDesc = feeOptionsTimeStringsSortedDesc;
6509
+ this.feeRatesExpirationTimeMs = feeRatesExpirationTimeMs;
6510
+ this.protocol = protocol;
6511
+ this.blockchain = blockchain;
6512
+ // TODO: [bug, critical] use testnet property for testnet contract address as it blocks the app work in testnets
6513
+ this.tokenAddress = tokenAddress;
6514
+ this.feeCoin = this;
6515
+ this._significantDigits = 8;
6516
+ this.doesUseLowerCaseAddresses = doesUseLowerCaseAddresses;
6517
+ this.doesUseOutputs = doesUseOutputs;
6518
+ }
6519
+
6520
+ /**
6521
+ * Sets fee coin
6522
+ *
6523
+ * @param feeCoin {Coin} some tokens use another coin to charge transaction fee as they work on top of some external
6524
+ * blockchain. So pass here the coin the token uses for fee charging. Like for ERC20 token the fee coin is ETH.
6525
+ * By default, the creating coin will be set as a value for this field.
6526
+ */
6527
+ var _proto = Coin.prototype;
6528
+ _proto.setFeeCoin = function setFeeCoin(feeCoin) {
6529
+ this.feeCoin = feeCoin;
6530
+ }
6531
+
6532
+ /**
6533
+ * Checks whether this coin uses another coin (blockchain) to charge fee for transactions (means works on base of
6534
+ * some external blockchain).
6535
+ *
6536
+ * @return {boolean} true if this coin uses external blockchain to perform transactions and charge fee
6537
+ */;
6538
+ _proto.doesUseDifferentCoinFee = function doesUseDifferentCoinFee() {
6539
+ return this.feeCoin !== this;
6540
+ }
6541
+
6542
+ /**
6543
+ * Converts the given atoms string/number to string representing the same amount in coin itself - floating point number
6544
+ *
6545
+ * @param atoms {string} atoms positive integer amount
6546
+ * @return {string} coin amount floating point number as a string
6547
+ */;
6548
+ _proto.atomsToCoinAmount = function atomsToCoinAmount(atoms) {
6549
+ throw new Error("Not implemented in base Coin");
6550
+ }
6551
+
6552
+ /**
6553
+ * Converts the given coins amount string/number to string representing the same amount in coin atoms - integer number
6554
+ *
6555
+ * @param coinsAmount {string} coins positive floating point amount
6556
+ * @return {string} coin atoms amount integer number as a string
6557
+ */;
6558
+ _proto.coinAmountToAtoms = function coinAmountToAtoms(coinsAmount) {
6559
+ throw new Error("Not implemented in base Coin");
6560
+ }
6561
+
6562
+ /**
6563
+ * Composes URL to view the tx with given id in the external blockchain explorer
6564
+ *
6565
+ * @param txId {string} id of transaction
6566
+ * @return {string} URL string
6567
+ */;
6568
+ _proto.composeUrlToTransactionExplorer = function composeUrlToTransactionExplorer(txId) {
6569
+ throw new Error("Not implemented in base Coin");
6570
+ }
6571
+
6572
+ /**
6573
+ * Most of the cryptocurrencies has specific fee rate or fee price metric. This value usually has specific measure
6574
+ * like satoshi/byte or gWei/gas. This function adds the described denomination string to the given amount
6575
+ * as a suffix and returns the result string ready to be show to a user.
6576
+ *
6577
+ * @param coinAtomsString {string} coin atoms positive integer amount
6578
+ * @return {string} string of coin amount and fee rate units
6579
+ */;
6580
+ _proto.coinAtomsFeeRateToCommonlyUsedAmountFormatWithDenominationString = function coinAtomsFeeRateToCommonlyUsedAmountFormatWithDenominationString(coinAtomsString) {
6581
+ throw new Error("Not implemented in base Coin");
6582
+ }
6583
+
6584
+ /**
6585
+ * Check whether this coin support transaction prioritisation during the sending process.
6586
+ *
6587
+ * @return {boolean} true if support transaction prioritisation and false otherwise
6588
+ */;
6589
+ _proto.doesSupportTransactionPrioritisation = function doesSupportTransactionPrioritisation() {
6590
+ return Array.isArray(this.feeOptionsTimeStringsSortedDesc);
6591
+ };
6592
+ _proto.tickerAndProtocol = function tickerAndProtocol() {
6593
+ try {
6594
+ var _ref;
6595
+ return "" + this.tickerPrintable + (this.protocol ? (_ref = " " + this.protocol.protocol) != null ? _ref : "" : "");
6596
+ } catch (e) {
6597
+ improveAndRethrow(e, "tickerAndProtocol");
6598
+ }
6599
+ };
6600
+ return Coin;
6601
+ }();
6602
+
6603
+ /**
6604
+ * A component that displays a list of coins that can be searched and filtered.
6605
+ *
6606
+ * @param {Object} props - The properties object.
6607
+ * @param {Coin[]} props.coinsList - The list of all available coins.
6608
+ * @param {Array<{coin: Coin, component: React.Component}>} props.coinsBundle - The bundle of coin components to be displayed.
6609
+ * @param {string} props.searchQuery - The search query to filter coins.
6610
+ * @param {boolean} props.partialLoadingEnabled - Determines if partial loading is enabled.
6611
+ * @param {number} props.partialLoadingIncrement - The increment of coins to load when loading more.
6612
+ * @param {Function} props.onListUpdated - Callback when the list of displayed coins is updated.
6613
+ * @param {Function} props.setIsListFull - Callback to set if the list is fully displayed.
6614
+ * @param {Function} props.setIsSearchResultEmpty - Callback to set if the search result is empty.
6615
+ * @param {number} props.triggerLoadMoreCoins - Triggers loading more coins.
6616
+ */
6617
+ var SearchableCoinsList = function SearchableCoinsList(_ref) {
6618
+ var coinsList = _ref.coinsList,
6619
+ coinsBundle = _ref.coinsBundle,
6620
+ searchQuery = _ref.searchQuery,
6621
+ _ref$partialLoadingEn = _ref.partialLoadingEnabled,
6622
+ partialLoadingEnabled = _ref$partialLoadingEn === void 0 ? true : _ref$partialLoadingEn,
6623
+ _ref$partialLoadingIn = _ref.partialLoadingIncrement,
6624
+ partialLoadingIncrement = _ref$partialLoadingIn === void 0 ? 100 : _ref$partialLoadingIn,
6625
+ _ref$onListUpdated = _ref.onListUpdated,
6626
+ onListUpdated = _ref$onListUpdated === void 0 ? function () {} : _ref$onListUpdated,
6627
+ _ref$setIsListFull = _ref.setIsListFull,
6628
+ setIsListFull = _ref$setIsListFull === void 0 ? function () {} : _ref$setIsListFull,
6629
+ _ref$setIsSearchResul = _ref.setIsSearchResultEmpty,
6630
+ setIsSearchResultEmpty = _ref$setIsSearchResul === void 0 ? function () {} : _ref$setIsSearchResul,
6631
+ triggerLoadMoreCoins = _ref.triggerLoadMoreCoins;
6632
+ var _useState = useState([]),
6633
+ filteredCoins = _useState[0],
6634
+ setFilteredCoins = _useState[1];
6635
+ var _useReferredState = useReferredState(0),
6636
+ limitedCoinsNumber = _useReferredState[0],
6637
+ setLimitedCoinsNumber = _useReferredState[1];
6638
+ var _useState2 = useState([]),
6639
+ displayedCoins = _useState2[0],
6640
+ setDisplayedCoins = _useState2[1];
6641
+ var handleSearchAsset = function handleSearchAsset(value) {
6642
+ var searchTerm = value.trim().toLowerCase();
6643
+ if (searchTerm !== "") {
6644
+ var searchWords = searchTerm.split(/\s+/); // Split search terms on whitespace
6645
+
6646
+ var filteredAndSortedCoins = coinsList.filter(function (coin) {
6647
+ // Check if all search words are found in any of the given properties
6648
+ return searchWords.every(function (word) {
6649
+ var _coin$latinName, _coin$ticker, _coin$tickerPrintable;
6650
+ return (coin == null || (_coin$latinName = coin.latinName) == null ? void 0 : _coin$latinName.toLowerCase().includes(word)) || (coin == null || (_coin$ticker = coin.ticker) == null ? void 0 : _coin$ticker.toLowerCase().includes(word)) || (coin == null || (_coin$tickerPrintable = coin.tickerPrintable) == null ? void 0 : _coin$tickerPrintable.toLowerCase().includes(word));
6651
+ });
6652
+ }).sort(function (a, b) {
6653
+ // Check for exact matches
6654
+ var aMatch = a.latinName.toLowerCase() === searchTerm || a.ticker.toLowerCase() === searchTerm || a.tickerPrintable.toLowerCase() === searchTerm ? 1 : 0;
6655
+ var bMatch = b.latinName.toLowerCase() === searchTerm || b.ticker.toLowerCase() === searchTerm || b.tickerPrintable.toLowerCase() === searchTerm ? 1 : 0;
6656
+ if (bMatch - aMatch !== 0) {
6657
+ // Prioritize exact matches to the top
6658
+ return bMatch - aMatch;
6659
+ } else {
6660
+ // Sort remaining items alphabetically by latinName
6661
+ return a.latinName.toLowerCase().localeCompare(b.latinName.toLowerCase());
6662
+ }
6663
+ });
6664
+ setFilteredCoins(filteredAndSortedCoins);
6665
+ } else {
6666
+ setFilteredCoins(coinsList); // Reset to original list if search term is empty
6667
+ }
6668
+ };
6669
+ var updateDisplayedCoins = function updateDisplayedCoins() {
6670
+ var fullList = limitedCoinsNumber.current >= filteredCoins.length;
6671
+ setDisplayedCoins(fullList ? filteredCoins : filteredCoins.slice(0, limitedCoinsNumber.current));
6672
+ setIsListFull(fullList);
6673
+ };
6674
+ var displayMoreCoins = function displayMoreCoins() {
6675
+ setLimitedCoinsNumber(function (prev) {
6676
+ return prev + partialLoadingIncrement;
6677
+ });
6678
+ updateDisplayedCoins();
6679
+ };
6680
+
6681
+ // eslint-disable-next-line react-hooks/exhaustive-deps
6682
+ useEffect(function () {
6683
+ return onListUpdated();
6684
+ }, [displayedCoins]);
6685
+
6686
+ // eslint-disable-next-line react-hooks/exhaustive-deps
6687
+ useEffect(function () {
6688
+ return displayMoreCoins();
6689
+ }, [triggerLoadMoreCoins]);
6690
+ useEffect(function () {
6691
+ if ((filteredCoins == null ? void 0 : filteredCoins.length) > partialLoadingIncrement && partialLoadingEnabled) {
6692
+ setLimitedCoinsNumber(partialLoadingIncrement);
6693
+ updateDisplayedCoins();
6694
+ } else {
6695
+ setLimitedCoinsNumber(0);
6696
+ setDisplayedCoins(filteredCoins);
6697
+ setIsListFull(true);
6698
+ }
6699
+ setIsSearchResultEmpty((filteredCoins == null ? void 0 : filteredCoins.length) === 0 && searchQuery !== "");
6700
+ // eslint-disable-next-line react-hooks/exhaustive-deps
6701
+ }, [filteredCoins]);
6702
+ useEffect(function () {
6703
+ if (coinsBundle != null) handleSearchAsset(searchQuery);
6704
+ // eslint-disable-next-line react-hooks/exhaustive-deps
6705
+ }, [coinsList, searchQuery]);
6706
+ return displayedCoins.map(function (coin) {
6707
+ return coinsBundle.find(function (bundleItem) {
6708
+ return bundleItem.coin.ticker === coin.ticker;
6709
+ }).component;
6710
+ }).map(function (Item) {
6711
+ return /*#__PURE__*/React.createElement(Item, null);
6712
+ });
6713
+ };
6714
+ SearchableCoinsList.propTypes = {
6715
+ coinsList: PropTypes.array.isRequired,
6716
+ coinsBundle: PropTypes.array.isRequired,
6717
+ searchQuery: PropTypes.string.isRequired,
6718
+ partialLoadingEnabled: PropTypes.bool,
6719
+ partialLoadingIncrement: PropTypes.number,
6720
+ onListUpdated: PropTypes.func,
6721
+ setIsListFull: PropTypes.func,
6722
+ setIsSearchResultEmpty: PropTypes.func,
6723
+ triggerLoadMoreCoins: PropTypes.number
6724
+ };
6725
+ SearchableCoinsList.defaultProps = {
6726
+ partialLoadingEnabled: true,
6727
+ partialLoadingIncrement: 100,
6728
+ onListUpdated: function onListUpdated() {},
6729
+ setIsListFull: function setIsListFull() {},
6730
+ setIsSearchResultEmpty: function setIsSearchResultEmpty() {}
6731
+ };
6732
+
6733
+ function _catch$c(body, recover) {
6416
6734
  try {
6417
6735
  var result = body();
6418
6736
  } catch (e) {
@@ -6513,39 +6831,36 @@ var CoinPicker = function CoinPicker(_ref) {
6513
6831
  var _useState = useState(null),
6514
6832
  coins = _useState[0],
6515
6833
  setCoins = _useState[1];
6516
- var _useState2 = useState([]),
6517
- filteredCoins = _useState2[0],
6518
- setFilteredCoins = _useState2[1];
6519
6834
  var _useReferredState = useReferredState({}),
6520
6835
  initiallyEnabledCoins = _useReferredState[0],
6521
6836
  setInitiallyEnabledCoins = _useReferredState[1];
6522
6837
  var _useReferredState2 = useReferredState({}),
6523
6838
  currentlyEnabledCoins = _useReferredState2[0],
6524
6839
  setCurrentlyEnabledCoins = _useReferredState2[1];
6840
+ var _useState2 = useState(""),
6841
+ searchFieldValue = _useState2[0],
6842
+ setSearchFieldValue = _useState2[1];
6525
6843
  var _useState3 = useState(""),
6526
- searchFieldValue = _useState3[0],
6527
- setSearchFieldValue = _useState3[1];
6528
- var _useState4 = useState(""),
6529
- scrollWrapperClass = _useState4[0],
6530
- setScrollWrapperClass = _useState4[1];
6531
- var _useState5 = useState(false),
6532
- searchEnabled = _useState5[0],
6533
- setSearchEnabled = _useState5[1];
6534
- var _useState6 = useState(null),
6535
- coinsContent = _useState6[0],
6536
- setCoinsContent = _useState6[1];
6537
- var _useState7 = useState(false),
6538
- isCoinsDataReloadable = _useState7[0],
6539
- setIsCoinsDataReloadable = _useState7[1];
6540
- var _useState8 = useState(0),
6541
- limitedCoinsNumber = _useState8[0],
6542
- setLimitedCoinsNumber = _useState8[1];
6543
- var _useState9 = useState([]),
6544
- displayedCoins = _useState9[0],
6545
- setDisplayedCoins = _useState9[1];
6546
- var _useState10 = useState(true),
6547
- isListFull = _useState10[0],
6548
- setIsListFull = _useState10[1];
6844
+ scrollWrapperClass = _useState3[0],
6845
+ setScrollWrapperClass = _useState3[1];
6846
+ var _useState4 = useState(false),
6847
+ searchEnabled = _useState4[0],
6848
+ setSearchEnabled = _useState4[1];
6849
+ var _useState5 = useState(null),
6850
+ coinsContent = _useState5[0],
6851
+ setCoinsContent = _useState5[1];
6852
+ var _useState6 = useState(false),
6853
+ isCoinsDataReloadable = _useState6[0],
6854
+ setIsCoinsDataReloadable = _useState6[1];
6855
+ var _useState7 = useState(true),
6856
+ isListFull = _useState7[0],
6857
+ setIsListFull = _useState7[1];
6858
+ var _useState8 = useState(false),
6859
+ isSearchResultEmpty = _useState8[0],
6860
+ setIsSearchResultEmpty = _useState8[1];
6861
+ var _useState9 = useState(0),
6862
+ triggerLoadMoreCoins = _useState9[0],
6863
+ setTriggerLoadMoreCoins = _useState9[1];
6549
6864
  var searchRef = useRef();
6550
6865
  var scrollContainerRef = useRef();
6551
6866
  var skeletonItemsCount = (initiallyEnabledCoinsList == null ? void 0 : initiallyEnabledCoinsList.length) || (partialLoadingEnabled ? partialLoadingIncrement : 6);
@@ -6603,43 +6918,12 @@ var CoinPicker = function CoinPicker(_ref) {
6603
6918
  if (mode === COIN_PICKER_MODES.CHECKBOX) handleToggleClick(coin.ticker);
6604
6919
  handleClick(coin.ticker);
6605
6920
  };
6606
- var handleSearchAsset = function handleSearchAsset(value) {
6607
- // TODO: [refactoring, high] use unified search function. task_id=be0475316f374dd4a926c948d969e704
6608
- setSearchFieldValue(value); // Trim the input to handle leading/trailing spaces
6609
- var searchTerm = value.trim().toLowerCase();
6610
- if (searchTerm !== "") {
6611
- var searchWords = searchTerm.split(/\s+/); // Split search terms on whitespace
6612
-
6613
- var filteredAndSortedCoins = coins.filter(function (coin) {
6614
- // Check if all search words are found in any of the given properties
6615
- return searchWords.every(function (word) {
6616
- var _coin$latinName, _coin$ticker, _coin$tickerPrintable;
6617
- return (coin == null || (_coin$latinName = coin.latinName) == null ? void 0 : _coin$latinName.toLowerCase().includes(word)) || (coin == null || (_coin$ticker = coin.ticker) == null ? void 0 : _coin$ticker.toLowerCase().includes(word)) || (coin == null || (_coin$tickerPrintable = coin.tickerPrintable) == null ? void 0 : _coin$tickerPrintable.toLowerCase().includes(word));
6618
- });
6619
- }).sort(function (a, b) {
6620
- // Check for exact matches
6621
- var aMatch = a.latinName.toLowerCase() === searchTerm || a.ticker.toLowerCase() === searchTerm || a.tickerPrintable.toLowerCase() === searchTerm ? 1 : 0;
6622
- var bMatch = b.latinName.toLowerCase() === searchTerm || b.ticker.toLowerCase() === searchTerm || b.tickerPrintable.toLowerCase() === searchTerm ? 1 : 0;
6623
- if (bMatch - aMatch !== 0) {
6624
- // Prioritize exact matches to the top
6625
- return bMatch - aMatch;
6626
- } else {
6627
- // Sort remaining items alphabetically by latinName
6628
- return a.latinName.toLowerCase().localeCompare(b.latinName.toLowerCase());
6629
- }
6630
- });
6631
- setFilteredCoins(filteredAndSortedCoins);
6632
- } else {
6633
- setFilteredCoins(coins); // Reset to original list if search term is empty
6634
- }
6635
- };
6636
6921
  var loadCoinsAndSaveToState = function loadCoinsAndSaveToState() {
6637
6922
  (function () {
6638
6923
  try {
6639
- var _temp = _catch$b(function () {
6924
+ var _temp = _catch$c(function () {
6640
6925
  return Promise.resolve(loadCoinsAndContent ? loadCoinsAndContent() : defaultLoadCoinsAndContent()).then(function (data) {
6641
6926
  setCoins(data.coins);
6642
- setFilteredCoins(data.coins);
6643
6927
  setCoinsContent(data.content);
6644
6928
  setIsCoinsDataReloadable(!!data.isCoinsDataReloadable);
6645
6929
  });
@@ -6687,45 +6971,22 @@ var CoinPicker = function CoinPicker(_ref) {
6687
6971
  setSearchEnabled(search ? true : searchAdaptive && initiallyEnabledCoinsList ? initiallyEnabledCoinsList.length > 6 : false);
6688
6972
  // eslint-disable-next-line react-hooks/exhaustive-deps
6689
6973
  }, [search, searchAdaptive, coins]);
6690
- useEffect(function () {
6691
- if ((filteredCoins == null ? void 0 : filteredCoins.length) > partialLoadingIncrement && partialLoadingEnabled) {
6692
- setLimitedCoinsNumber(partialLoadingIncrement);
6693
- } else {
6694
- setLimitedCoinsNumber(0);
6695
- setDisplayedCoins(filteredCoins);
6696
- setIsListFull(true);
6697
- }
6698
- // eslint-disable-next-line react-hooks/exhaustive-deps
6699
- }, [filteredCoins]);
6700
- useEffect(function () {
6701
- if (limitedCoinsNumber > 0) {
6702
- var coinsToDisplay = filteredCoins.slice(0, limitedCoinsNumber);
6703
- setDisplayedCoins(coinsToDisplay);
6704
- setIsListFull(coinsToDisplay.length === filteredCoins.length);
6705
- }
6706
- // eslint-disable-next-line react-hooks/exhaustive-deps
6707
- }, [limitedCoinsNumber]);
6708
- var displayMoreCoins = function displayMoreCoins() {
6709
- setLimitedCoinsNumber(function (prev) {
6710
- return prev + partialLoadingIncrement;
6711
- });
6712
- };
6713
6974
  var skeleton = function skeleton() {
6714
6975
  var skeletonItems = [];
6715
6976
  for (var i = 0; i < skeletonItemsCount; i++) {
6716
6977
  skeletonItems.push( /*#__PURE__*/React.createElement("div", {
6717
- className: s["item"],
6978
+ className: s$2["item"],
6718
6979
  key: "coin-picker-skeleton-" + i
6719
6980
  }, /*#__PURE__*/React.createElement("div", {
6720
- className: s["link"] + " " + s["loading"]
6981
+ className: s$2["link"] + " " + s$2["loading"]
6721
6982
  }, /*#__PURE__*/React.createElement("div", {
6722
- className: s["icon"] + " " + "skeleton-dark"
6983
+ className: s$2["icon"] + " " + "skeleton-dark"
6723
6984
  }), /*#__PURE__*/React.createElement("div", {
6724
- className: s["content"]
6985
+ className: s$2["content"]
6725
6986
  }, /*#__PURE__*/React.createElement("div", {
6726
- className: s["name"] + " " + "skeleton-dark"
6987
+ className: s$2["name"] + " " + "skeleton-dark"
6727
6988
  }), /*#__PURE__*/React.createElement("div", {
6728
- className: s["amount"] + " " + "skeleton-dark"
6989
+ className: s$2["amount"] + " " + "skeleton-dark"
6729
6990
  })))));
6730
6991
  }
6731
6992
  return skeletonItems;
@@ -6733,24 +6994,27 @@ var CoinPicker = function CoinPicker(_ref) {
6733
6994
  var handleScroll = function handleScroll() {
6734
6995
  var _scrollContainerRef$c, _scrollContainerRef$c2, _scrollContainerRef$c3, _scrollContainerRef$c4, _scrollContainerRef$c5, _scrollContainerRef$c6, _scrollContainerRef$c7;
6735
6996
  if (scrollWrapperClass !== "") setScrollWrapperClass("");
6736
- if (((_scrollContainerRef$c = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c.scrollTop) === 0) setScrollWrapperClass(s["reached-top"] + (((_scrollContainerRef$c2 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c2.scrollHeight) - ((_scrollContainerRef$c3 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c3.clientHeight) === 0 ? " " + s["reached-bottom"] : ""));
6737
- if (((_scrollContainerRef$c4 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c4.scrollTop) > 0 && ((_scrollContainerRef$c5 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c5.scrollTop) === ((_scrollContainerRef$c6 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c6.scrollHeight) - ((_scrollContainerRef$c7 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c7.clientHeight)) setScrollWrapperClass(s["reached-bottom"]);
6997
+ if (((_scrollContainerRef$c = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c.scrollTop) === 0) setScrollWrapperClass(s$2["reached-top"] + (((_scrollContainerRef$c2 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c2.scrollHeight) - ((_scrollContainerRef$c3 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c3.clientHeight) === 0 ? " " + s$2["reached-bottom"] : ""));
6998
+ if (((_scrollContainerRef$c4 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c4.scrollTop) > 0 && ((_scrollContainerRef$c5 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c5.scrollTop) === ((_scrollContainerRef$c6 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c6.scrollHeight) - ((_scrollContainerRef$c7 = scrollContainerRef.current) == null ? void 0 : _scrollContainerRef$c7.clientHeight)) setScrollWrapperClass(s$2["reached-bottom"]);
6999
+ };
7000
+ var displayMoreCoins = function displayMoreCoins() {
7001
+ return setTriggerLoadMoreCoins(function (prev) {
7002
+ return prev + 1;
7003
+ });
6738
7004
  };
6739
7005
 
6740
7006
  // eslint-disable-next-line react-hooks/exhaustive-deps
6741
7007
  useEffect(handleScroll, []);
6742
-
6743
- // eslint-disable-next-line react-hooks/exhaustive-deps
6744
- useEffect(handleScroll, [filteredCoins]);
6745
7008
  var shouldShowSkeleton = coins == null;
6746
7009
  return coins ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
6747
- className: s["coin-picker"] + (shouldShowSkeleton ? " " + s["loading"] : "")
7010
+ className: s$2["coin-picker"] + (shouldShowSkeleton ? " " + s$2["loading"] : "")
6748
7011
  }, searchEnabled ? /*#__PURE__*/React.createElement("div", {
6749
- className: s["coin-picker-search"]
7012
+ className: s$2["coin-picker-search"]
6750
7013
  }, /*#__PURE__*/React.createElement(Input, {
6751
7014
  value: searchFieldValue,
6752
7015
  onChange: function onChange(e) {
6753
- return handleSearchAsset(e.target.value);
7016
+ setSearchFieldValue(e.target.value);
7017
+ handleScroll();
6754
7018
  },
6755
7019
  placeholder: texts.searchPlaceholder,
6756
7020
  isSmallHeight: true,
@@ -6758,71 +7022,88 @@ var CoinPicker = function CoinPicker(_ref) {
6758
7022
  ref: searchRef,
6759
7023
  disabled: shouldShowSkeleton
6760
7024
  })) : "", /*#__PURE__*/React.createElement("div", {
6761
- className: s["coin-picker-wrapper"] + " " + scrollWrapperClass + (searchEnabled ? " " + s["fixed-height"] : "")
7025
+ className: s$2["coin-picker-wrapper"] + " " + scrollWrapperClass + (searchEnabled ? " " + s$2["fixed-height"] : "")
6762
7026
  }, /*#__PURE__*/React.createElement("div", {
6763
- className: s["coin-picker-wrapper-content"] + (searchEnabled ? " " + s["fixed-height"] : ""),
7027
+ className: s$2["coin-picker-wrapper-content"] + (searchEnabled ? " " + s$2["fixed-height"] : ""),
6764
7028
  ref: scrollContainerRef,
6765
7029
  onScroll: handleScroll
6766
7030
  }, /*#__PURE__*/React.createElement("div", {
6767
- className: s["coin-picker-wrapper-content-assets"]
6768
- }, shouldShowSkeleton ? skeleton() : displayedCoins.map(function (coin, index) {
6769
- var _coinsContent$find$su, _coinsContent$find;
6770
- var _coinToIconPaths = coinToIconPaths(coin),
6771
- assetIconSrc = _coinToIconPaths.assetIconSrc,
6772
- assetIconProtocolSrc = _coinToIconPaths.assetIconProtocolSrc;
6773
- return /*#__PURE__*/React.createElement("div", {
6774
- className: s["item"],
6775
- key: "picker-" + coin.ticker + "-" + index,
6776
- onClick: function onClick(e) {
6777
- return handleError(function () {
6778
- return handleCoinClick(coin);
6779
- }, e);
6780
- }
6781
- }, /*#__PURE__*/React.createElement("div", {
6782
- className: s["link"] + (currentlyEnabledCoins.current[coin.ticker] !== initiallyEnabledCoins.current[coin.ticker] ? " " + s["outline"] : "")
6783
- }, /*#__PURE__*/React.createElement(AssetIcon, {
6784
- assetIconSrc: assetIconSrc,
6785
- assetIconProtocolSrc: assetIconProtocolSrc,
6786
- fallbackSrc: FALLBACK_ASSET_ICON_URL
6787
- }), /*#__PURE__*/React.createElement("div", {
6788
- className: s["content"],
6789
- key: coin.ticker
6790
- }, /*#__PURE__*/React.createElement("p", {
6791
- className: s["name"]
6792
- }, coin.latinName), /*#__PURE__*/React.createElement("p", {
6793
- className: s["amount"]
6794
- }, (_coinsContent$find$su = coinsContent == null || (_coinsContent$find = coinsContent.find(function (i) {
6795
- return i.coin === coin;
6796
- })) == null ? void 0 : _coinsContent$find.subtitle) != null ? _coinsContent$find$su : "")), mode === COIN_PICKER_MODES.BUTTON ? /*#__PURE__*/React.createElement("div", {
6797
- className: s["arrow"]
6798
- }, /*#__PURE__*/React.createElement(ArrowIcon, null)) : mode === COIN_PICKER_MODES.CHECKBOX ? /*#__PURE__*/React.createElement("div", {
6799
- className: s["toggle-container"]
6800
- }, /*#__PURE__*/React.createElement(RadioButtonWithText, {
6801
- onStateChange: function onStateChange(resetButtonLoader) {
6802
- return handleToggleClick(coin.ticker, resetButtonLoader);
6803
- },
6804
- isSwitchedOn: currentlyEnabledCoins.current[coin.ticker],
6805
- id: index
6806
- })) : ""));
6807
- })), (filteredCoins == null ? void 0 : filteredCoins.length) === 0 && searchFieldValue !== "" ? /*#__PURE__*/React.createElement("div", {
6808
- className: s["coin-picker-wrapper-content-asset-not-found"]
7031
+ className: s$2["coin-picker-wrapper-content-assets"]
7032
+ }, shouldShowSkeleton ? skeleton() : /*#__PURE__*/React.createElement(SearchableCoinsList, {
7033
+ searchQuery: searchFieldValue,
7034
+ onListUpdated: function onListUpdated() {
7035
+ return handleScroll();
7036
+ },
7037
+ setIsListFull: setIsListFull,
7038
+ setIsSearchResultEmpty: setIsSearchResultEmpty,
7039
+ triggerLoadMoreCoins: triggerLoadMoreCoins,
7040
+ coinsList: coins,
7041
+ coinsBundle: coins == null ? void 0 : coins.map(function (coin, index) {
7042
+ return {
7043
+ coin: coin,
7044
+ component: function component() {
7045
+ var _coinsContent$find$su, _coinsContent$find;
7046
+ var _coinToIconPaths = coinToIconPaths(coin),
7047
+ assetIconSrc = _coinToIconPaths.assetIconSrc,
7048
+ assetIconProtocolSrc = _coinToIconPaths.assetIconProtocolSrc;
7049
+ return /*#__PURE__*/React.createElement("div", {
7050
+ className: s$2["item"],
7051
+ key: "picker-" + coin.ticker + "-" + index,
7052
+ onClick: function onClick(e) {
7053
+ return handleError(function () {
7054
+ return handleCoinClick(coin);
7055
+ }, e);
7056
+ }
7057
+ }, /*#__PURE__*/React.createElement("div", {
7058
+ className: s$2["link"] + (currentlyEnabledCoins.current[coin.ticker] !== initiallyEnabledCoins.current[coin.ticker] ? " " + s$2["outline"] : "")
7059
+ }, /*#__PURE__*/React.createElement(AssetIcon, {
7060
+ assetIconSrc: assetIconSrc,
7061
+ assetIconProtocolSrc: assetIconProtocolSrc,
7062
+ fallbackSrc: FALLBACK_ASSET_ICON_URL
7063
+ }), /*#__PURE__*/React.createElement("div", {
7064
+ className: s$2["content"],
7065
+ key: coin.ticker
7066
+ }, /*#__PURE__*/React.createElement("p", {
7067
+ className: s$2["name"]
7068
+ }, coin.latinName), /*#__PURE__*/React.createElement("p", {
7069
+ className: s$2["amount"]
7070
+ }, (_coinsContent$find$su = coinsContent == null || (_coinsContent$find = coinsContent.find(function (i) {
7071
+ return i.coin === coin;
7072
+ })) == null ? void 0 : _coinsContent$find.subtitle) != null ? _coinsContent$find$su : "")), mode === COIN_PICKER_MODES.BUTTON ? /*#__PURE__*/React.createElement("div", {
7073
+ className: s$2["arrow"]
7074
+ }, /*#__PURE__*/React.createElement(ArrowIcon, null)) : mode === COIN_PICKER_MODES.CHECKBOX ? /*#__PURE__*/React.createElement("div", {
7075
+ className: s$2["toggle-container"]
7076
+ }, /*#__PURE__*/React.createElement(RadioButtonWithText, {
7077
+ onStateChange: function onStateChange(resetButtonLoader) {
7078
+ return handleToggleClick(coin.ticker, resetButtonLoader);
7079
+ },
7080
+ isSwitchedOn: currentlyEnabledCoins.current[coin.ticker],
7081
+ id: index
7082
+ })) : ""));
7083
+ }
7084
+ };
7085
+ })
7086
+ })), isSearchResultEmpty ? /*#__PURE__*/React.createElement("div", {
7087
+ className: s$2["coin-picker-wrapper-content-asset-not-found"]
6809
7088
  }, /*#__PURE__*/React.createElement("h6", null, texts.noAssetsMessage)) : "", partialLoadingEnabled && !isListFull ? /*#__PURE__*/React.createElement("div", {
6810
- className: s["coin-picker-wrapper-content-load-more-button"]
7089
+ className: s$2["coin-picker-wrapper-content-load-more-button"]
6811
7090
  }, /*#__PURE__*/React.createElement(Button, {
6812
7091
  mode: "primary-transparent",
6813
7092
  size: "sm",
6814
7093
  loader: false,
6815
7094
  content: texts.loadMoreButton,
6816
- onClick: displayMoreCoins,
7095
+ onClick: function onClick() {
7096
+ return displayMoreCoins();
7097
+ },
6817
7098
  handleError: handleError
6818
7099
  })) : "", searchEnabled && showRequestMissingCoinsInfoMessage ? /*#__PURE__*/React.createElement("div", {
6819
- className: s["coin-picker-wrapper-content-bottom-message"]
7100
+ className: s$2["coin-picker-wrapper-content-bottom-message"]
6820
7101
  }, /*#__PURE__*/React.createElement(InformationMessage, {
6821
7102
  text: /*#__PURE__*/React.createElement(React.Fragment, null, texts.assetSuggestionMessage.part1, /*#__PURE__*/React.createElement("a", {
6822
7103
  target: "_blank",
6823
7104
  rel: "noreferrer",
6824
7105
  href: supportUrl,
6825
- className: s["coin-picker-wrapper-content-bottom-message-link"]
7106
+ className: s$2["coin-picker-wrapper-content-bottom-message-link"]
6826
7107
  }, " " + texts.assetSuggestionMessage.part2 + " "), texts.assetSuggestionMessage.part3)
6827
7108
  })) : "")))) : /*#__PURE__*/React.createElement(LoadingDots, null);
6828
7109
  };
@@ -6907,34 +7188,463 @@ var CoinPickerDialogStep = function CoinPickerDialogStep(_ref) {
6907
7188
  texts = _ref.texts;
6908
7189
  return /*#__PURE__*/React.createElement(DialogStep, {
6909
7190
  controls: controls,
6910
- stepName: stepName,
6911
- title: title,
6912
- subtitle: subtitle,
6913
- cornerBackButtonTitle: cornerBackButtonTitle,
6914
- cornerBackButtonClick: cornerBackButtonClick,
6915
- confirmButtonText: confirmButtonText,
6916
- confirmButtonClick: confirmButtonClick,
6917
- showCornerBackButton: showCornerBackButton,
6918
- headerTitleLeft: true,
7191
+ stepName: stepName,
7192
+ title: title,
7193
+ subtitle: subtitle,
7194
+ cornerBackButtonTitle: cornerBackButtonTitle,
7195
+ cornerBackButtonClick: cornerBackButtonClick,
7196
+ confirmButtonText: confirmButtonText,
7197
+ confirmButtonClick: confirmButtonClick,
7198
+ showCornerBackButton: showCornerBackButton,
7199
+ headerTitleLeft: true,
7200
+ subtitleSmallMargin: true,
7201
+ width: controls ? DIALOG_SIZES.largePlus.width : null
7202
+ }, /*#__PURE__*/React.createElement(CoinPicker, {
7203
+ mode: mode,
7204
+ allCoins: allCoins,
7205
+ initiallyEnabledCoinsList: initiallyEnabledCoinsList,
7206
+ handleClick: function handleClick(ticker) {
7207
+ return handleCoinSelection(ticker);
7208
+ },
7209
+ triggerToReloadData: triggerToReloadData,
7210
+ search: search,
7211
+ searchAdaptive: searchAdaptive,
7212
+ loadCoinsAndContent: loadCoinsAndContent,
7213
+ showRequestMissingCoinsInfoMessage: showRequestMissingCoinsInfoMessage,
7214
+ coinToIconPaths: coinToIconPaths,
7215
+ supportUrl: supportUrl,
7216
+ texts: texts
7217
+ }));
7218
+ };
7219
+
7220
+ var s$1 = {"colored-notice":"_ZE1ju","colored-notice-text":"_aN0LH"};
7221
+
7222
+ /**
7223
+ * ColoredNotice component displays a notice with optional text and a button.
7224
+ *
7225
+ * @component
7226
+ * @param {Object} props - The component props.
7227
+ * @param {string} [props.text] - The text to be displayed in the notice.
7228
+ * @param {string} [props.buttonTitle] - The title of the button.
7229
+ * @param {function} [props.onButtonClick] - Callback function to be called when the button is clicked.
7230
+ * @returns {JSX.Element} The ColoredNotice component.
7231
+ */
7232
+ var ColoredNotice = function ColoredNotice(_ref) {
7233
+ var _ref$text = _ref.text,
7234
+ text = _ref$text === void 0 ? "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor." : _ref$text,
7235
+ buttonTitle = _ref.buttonTitle,
7236
+ _ref$onButtonClick = _ref.onButtonClick,
7237
+ onButtonClick = _ref$onButtonClick === void 0 ? function () {} : _ref$onButtonClick;
7238
+ return /*#__PURE__*/React.createElement("div", {
7239
+ className: s$1["colored-notice"]
7240
+ }, /*#__PURE__*/React.createElement("p", {
7241
+ className: s$1["colored-notice-text"]
7242
+ }, text), buttonTitle ? /*#__PURE__*/React.createElement(Button, {
7243
+ mode: "primary",
7244
+ size: "sm",
7245
+ content: buttonTitle,
7246
+ loader: false,
7247
+ onClick: onButtonClick
7248
+ }) : null);
7249
+ };
7250
+ ColoredNotice.propTypes = {
7251
+ text: PropTypes.string,
7252
+ buttonTitle: PropTypes.string,
7253
+ onButtonClick: PropTypes.func
7254
+ };
7255
+ ColoredNotice.defaultProps = {
7256
+ text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor.",
7257
+ onButtonClick: function onButtonClick() {}
7258
+ };
7259
+
7260
+ var messageIcon = (function () {
7261
+ return /*#__PURE__*/React.createElement("svg", {
7262
+ width: "130",
7263
+ height: "130",
7264
+ viewBox: "0 0 130 130",
7265
+ fill: "none",
7266
+ xmlns: "http://www.w3.org/2000/svg"
7267
+ }, /*#__PURE__*/React.createElement("path", {
7268
+ "fill-rule": "evenodd",
7269
+ "clip-rule": "evenodd",
7270
+ d: "M65 130C100.899 130 130 100.899 130 65C130 29.1015 100.899 0 65 0C29.1015 0 0 29.1015 0 65C0 100.899 29.1015 130 65 130Z",
7271
+ fill: "#2294F0"
7272
+ }), /*#__PURE__*/React.createElement("mask", {
7273
+ id: "mask0",
7274
+ style: {
7275
+ maskType: "alpha"
7276
+ },
7277
+ maskUnits: "userSpaceOnUse",
7278
+ x: "0",
7279
+ y: "0",
7280
+ width: "130",
7281
+ height: "130"
7282
+ }, /*#__PURE__*/React.createElement("path", {
7283
+ "fill-rule": "evenodd",
7284
+ "clip-rule": "evenodd",
7285
+ d: "M65 130C100.899 130 130 100.899 130 65C130 29.1015 100.899 0 65 0C29.1015 0 0 29.1015 0 65C0 100.899 29.1015 130 65 130Z",
7286
+ fill: "white"
7287
+ })), /*#__PURE__*/React.createElement("g", {
7288
+ mask: "url(#mask0)"
7289
+ }, /*#__PURE__*/React.createElement("rect", {
7290
+ opacity: "0.3",
7291
+ x: "3.25",
7292
+ y: "150.776",
7293
+ width: "227.136",
7294
+ height: "25.2373",
7295
+ transform: "rotate(-45 3.25 150.776)",
7296
+ fill: "white"
7297
+ }), /*#__PURE__*/React.createElement("rect", {
7298
+ opacity: "0.3",
7299
+ x: "-48.4546",
7300
+ y: "126.52",
7301
+ width: "227.136",
7302
+ height: "25.2373",
7303
+ transform: "rotate(-45 -48.4546 126.52)",
7304
+ fill: "white"
7305
+ }), /*#__PURE__*/React.createElement("rect", {
7306
+ x: "27.75",
7307
+ y: "29.5",
7308
+ width: "74.5",
7309
+ height: "81.5",
7310
+ rx: "12",
7311
+ fill: "white"
7312
+ }), /*#__PURE__*/React.createElement("path", {
7313
+ d: "M27.75 41.5C27.75 34.8726 33.1226 29.5 39.75 29.5H90.25C96.8774 29.5 102.25 34.8726 102.25 41.5V118C102.25 124.627 96.8774 130 90.25 130H39.75C33.1226 130 27.75 124.627 27.75 118V41.5Z",
7314
+ fill: "white"
7315
+ }), /*#__PURE__*/React.createElement("path", {
7316
+ "fill-rule": "evenodd",
7317
+ "clip-rule": "evenodd",
7318
+ d: "M51.5 63.5C58.1274 63.5 63.5 58.1274 63.5 51.5C63.5 44.8726 58.1274 39.5 51.5 39.5C44.8726 39.5 39.5 44.8726 39.5 51.5C39.5 58.1274 44.8726 63.5 51.5 63.5Z",
7319
+ fill: "#2294F0"
7320
+ }), /*#__PURE__*/React.createElement("path", {
7321
+ d: "M50.072 49.088H52.03V54.5H50.072V49.088ZM52.074 46.382V48.153H50.028V46.382H52.074Z",
7322
+ fill: "white"
7323
+ }), /*#__PURE__*/React.createElement("path", {
7324
+ opacity: "0.2",
7325
+ d: "M41 74.5H63",
7326
+ stroke: "#2294F0",
7327
+ "stroke-width": "4",
7328
+ "stroke-linecap": "round",
7329
+ "stroke-linejoin": "round"
7330
+ }), /*#__PURE__*/React.createElement("path", {
7331
+ opacity: "0.2",
7332
+ d: "M41 84.6157H84.1426",
7333
+ stroke: "#2294F0",
7334
+ "stroke-width": "4",
7335
+ "stroke-linecap": "round",
7336
+ "stroke-linejoin": "round"
7337
+ }), /*#__PURE__*/React.createElement("path", {
7338
+ opacity: "0.2",
7339
+ d: "M41 94.7314H84.1426",
7340
+ stroke: "#2294F0",
7341
+ "stroke-width": "4",
7342
+ "stroke-linecap": "round",
7343
+ "stroke-linejoin": "round"
7344
+ }), /*#__PURE__*/React.createElement("path", {
7345
+ opacity: "0.2",
7346
+ d: "M41 104.731H84.1426",
7347
+ stroke: "#2294F0",
7348
+ "stroke-width": "4",
7349
+ "stroke-linecap": "round",
7350
+ "stroke-linejoin": "round"
7351
+ })));
7352
+ });
7353
+
7354
+ var supportDialogImage = (function () {
7355
+ return /*#__PURE__*/React.createElement("svg", {
7356
+ width: "130",
7357
+ height: "130",
7358
+ viewBox: "0 0 130 130",
7359
+ fill: "none",
7360
+ xmlns: "http://www.w3.org/2000/svg"
7361
+ }, /*#__PURE__*/React.createElement("path", {
7362
+ "fill-rule": "evenodd",
7363
+ "clip-rule": "evenodd",
7364
+ d: "M65 130C100.899 130 130 100.899 130 65C130 29.1015 100.899 0 65 0C29.1015 0 0 29.1015 0 65C0 100.899 29.1015 130 65 130Z",
7365
+ fill: "#AFEBC3"
7366
+ }), /*#__PURE__*/React.createElement("mask", {
7367
+ id: "mask0",
7368
+ "mask-type": "alpha",
7369
+ maskUnits: "userSpaceOnUse",
7370
+ x: "0",
7371
+ y: "0",
7372
+ width: "130",
7373
+ height: "130"
7374
+ }, /*#__PURE__*/React.createElement("path", {
7375
+ "fill-rule": "evenodd",
7376
+ "clip-rule": "evenodd",
7377
+ d: "M65 130C100.899 130 130 100.899 130 65C130 29.1015 100.899 0 65 0C29.1015 0 0 29.1015 0 65C0 100.899 29.1015 130 65 130Z",
7378
+ fill: "white"
7379
+ })), /*#__PURE__*/React.createElement("g", {
7380
+ mask: "url(#mask0)"
7381
+ }, /*#__PURE__*/React.createElement("rect", {
7382
+ opacity: "0.3",
7383
+ x: "3.25",
7384
+ y: "150.776",
7385
+ width: "227.136",
7386
+ height: "25.2373",
7387
+ transform: "rotate(-45 3.25 150.776)",
7388
+ fill: "white"
7389
+ }), /*#__PURE__*/React.createElement("rect", {
7390
+ opacity: "0.3",
7391
+ x: "-48.4545",
7392
+ y: "126.52",
7393
+ width: "227.136",
7394
+ height: "25.2373",
7395
+ transform: "rotate(-45 -48.4545 126.52)",
7396
+ fill: "white"
7397
+ }), /*#__PURE__*/React.createElement("path", {
7398
+ d: "M9.69092 69.153C9.69092 66.0864 11.2523 63.2309 13.8339 61.576L55.8257 34.6583C61.4168 31.0742 68.5832 31.0742 74.1743 34.6583L116.166 61.576C118.748 63.2309 120.309 66.0864 120.309 69.153V126.495C120.309 131.466 116.28 135.495 111.309 135.495H18.6909C13.7204 135.495 9.69092 131.466 9.69092 126.495V69.153Z",
7399
+ fill: "#14A957"
7400
+ }), /*#__PURE__*/React.createElement("path", {
7401
+ d: "M30.9045 51.8818H97.9136V117.118H30.9045V51.8818Z",
7402
+ fill: "white"
7403
+ }), /*#__PURE__*/React.createElement("path", {
7404
+ opacity: "0.1",
7405
+ d: "M63.8182 107.167C76.8722 107.167 87.4545 96.5849 87.4545 83.5308C87.4545 70.4768 76.8722 59.8945 63.8182 59.8945C50.7642 59.8945 40.1818 70.4768 40.1818 83.5308C40.1818 96.5849 50.7642 107.167 63.8182 107.167Z",
7406
+ fill: "#24BE6A"
7407
+ }), /*#__PURE__*/React.createElement("path", {
7408
+ d: "M58.2093 83.4849L63.0246 88.3002L71.3036 79.047",
7409
+ stroke: "#24BE6A",
7410
+ "stroke-width": "3.76358",
7411
+ "stroke-linecap": "round",
7412
+ "stroke-linejoin": "round"
7413
+ }), /*#__PURE__*/React.createElement("path", {
7414
+ d: "M9.69092 70.2531C9.69092 68.672 11.4391 67.7161 12.7703 68.5694L65 102.05L117.23 68.5694C118.561 67.7161 120.309 68.672 120.309 70.2531V128.859C120.309 133.83 116.28 137.859 111.309 137.859H18.6909C13.7204 137.859 9.69092 133.83 9.69092 128.859V70.2531Z",
7415
+ fill: "#24BE6A"
7416
+ })));
7417
+ });
7418
+
7419
+ /**
7420
+ * Saves a user's subscription to receive notifications about a specific coin.
7421
+ * This function sends an email to subscribe the user to notifications for the specified coin.
7422
+ *
7423
+ * @function
7424
+ * @name saveSubscription
7425
+ * @param {Coin} coin - The coin object containing information about the coin, including its ticker symbol.
7426
+ * @param {string} address - The email address of the user who wishes to subscribe.
7427
+ * @returns {Promise<boolean>} A promise that resolves to `true` if the subscription email was sent successfully, or `false` if an error occurred during the process.
7428
+ */
7429
+
7430
+ /**
7431
+ * WaitlistSubscription component handles user subscription to a waitlist for coin notifications.
7432
+ * It displays a notice with a button to open a dialog where the user can enter their email to subscribe.
7433
+ *
7434
+ * @component
7435
+ * @param {Object} props - The component props.
7436
+ * @param {Coin} props.coin - The coin object containing information about the coin.
7437
+ * @param {Object} props.translations - The text translations for the component.
7438
+ * @param {saveSubscription} props.saveSubscription - Function to handle/save the subscription.
7439
+ * @returns {JSX.Element} The WaitlistSubscription component.
7440
+ */
7441
+
7442
+ function _catch$b(body, recover) {
7443
+ try {
7444
+ var result = body();
7445
+ } catch (e) {
7446
+ return recover(e);
7447
+ }
7448
+ if (result && result.then) {
7449
+ return result.then(void 0, recover);
7450
+ }
7451
+ return result;
7452
+ }
7453
+ var WaitlistSubscription = function WaitlistSubscription(_ref) {
7454
+ var coin = _ref.coin,
7455
+ translations = _ref.translations,
7456
+ saveSubscription = _ref.saveSubscription;
7457
+ var _useState = useState(),
7458
+ controls = _useState[0],
7459
+ _initControls = _useState[1];
7460
+ var _useState2 = useState(false),
7461
+ showDialog = _useState2[0],
7462
+ setShowDialog = _useState2[1];
7463
+ var _useState3 = useState(""),
7464
+ inputValue = _useState3[0],
7465
+ setInputValue = _useState3[1];
7466
+ var _useState4 = useState(false),
7467
+ isEmailValid = _useState4[0],
7468
+ setIsEmailValid = _useState4[1];
7469
+ var _useState5 = useState(false),
7470
+ errorEncountered = _useState5[0],
7471
+ setErrorEncountered = _useState5[1];
7472
+ var defaultTranslations = {
7473
+ coloredNotice: {
7474
+ text: "This is a pre-listed coin, meaning that the swap is not yet available. As soon as this coin allows exchanges, it will be automatically enabled. If you want to get a notification as soon as this coin becomes available for swap - sign up for the waitlist below!",
7475
+ buttonTitle: "Subscribe for updates"
7476
+ },
7477
+ signUpStep: {
7478
+ title: coin.latinName + " (" + coin.ticker + ") listing notification",
7479
+ subtitle: "To be notified as soon as " + coin.latinName + " becomes available for swaps, please provide your email address. We’ll send you a single notification when it’s listed.",
7480
+ actionButtonTitle: "Subscribe",
7481
+ inputTitle: "Your email address:",
7482
+ error: "Something went wrong. Please try again later."
7483
+ },
7484
+ successStep: {
7485
+ title: "Subscribed successfully!",
7486
+ subtitle: "We’ll notify you as soon as " + coin.latinName + " becomes available for swaps. Keep an eye on your inbox for the update.",
7487
+ actionButtonTitle: "Close"
7488
+ }
7489
+ };
7490
+ var t = translations != null ? translations : defaultTranslations;
7491
+ var STEPS = {
7492
+ signUp: "signUp",
7493
+ success: "success"
7494
+ };
7495
+ var subscribe = function subscribe(resetButtonLoader) {
7496
+ try {
7497
+ var _temp = _catch$b(function () {
7498
+ setErrorEncountered(false);
7499
+ return Promise.resolve(saveSubscription(coin, inputValue)).then(function (result) {
7500
+ if (result) {
7501
+ controls == null || controls.goToStep(STEPS.success);
7502
+ } else {
7503
+ setErrorEncountered(true);
7504
+ }
7505
+ resetButtonLoader();
7506
+ });
7507
+ }, function (e) {
7508
+ resetButtonLoader();
7509
+ logErrorOrOutputToConsole(e);
7510
+ setShowDialog(false);
7511
+ });
7512
+ return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
7513
+ } catch (e) {
7514
+ return Promise.reject(e);
7515
+ }
7516
+ };
7517
+ var openDialog = function openDialog() {
7518
+ setErrorEncountered(false);
7519
+ setInputValue("");
7520
+ setIsEmailValid(false);
7521
+ controls == null || controls.toFirstStep(false);
7522
+ setShowDialog(true);
7523
+ };
7524
+ useEffect(function () {
7525
+ setIsEmailValid(/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/.test(inputValue));
7526
+ // eslint-disable-next-line react-hooks/exhaustive-deps
7527
+ }, [inputValue]);
7528
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Dialog, {
7529
+ initControls: function initControls(controls) {
7530
+ return _initControls(controls);
7531
+ },
7532
+ showDialog: showDialog,
7533
+ onClose: function onClose() {
7534
+ return setShowDialog(false);
7535
+ }
7536
+ }, /*#__PURE__*/React.createElement(DialogStep, {
7537
+ stepName: STEPS.signUp,
7538
+ controls: controls,
7539
+ title: t.signUpStep.title,
7540
+ subtitle: t.signUpStep.subtitle,
7541
+ confirmButtonClick: subscribe,
7542
+ confirmButtonEnabled: isEmailValid,
7543
+ confirmButtonText: t.signUpStep.actionButtonTitle,
7544
+ primaryButtonLoader: true,
6919
7545
  subtitleSmallMargin: true,
6920
- width: controls ? DIALOG_SIZES.largePlus.width : null
6921
- }, /*#__PURE__*/React.createElement(CoinPicker, {
6922
- mode: mode,
6923
- allCoins: allCoins,
6924
- initiallyEnabledCoinsList: initiallyEnabledCoinsList,
6925
- handleClick: function handleClick(ticker) {
6926
- return handleCoinSelection(ticker);
7546
+ showBackgroundTitle: false,
7547
+ ImageRaw: messageIcon
7548
+ }, /*#__PURE__*/React.createElement(TitleBox, {
7549
+ title: t.signUpStep.inputTitle
7550
+ }, /*#__PURE__*/React.createElement(Input, {
7551
+ type: "text",
7552
+ onChange: function onChange(e) {
7553
+ return setInputValue(e.target.value);
6927
7554
  },
6928
- triggerToReloadData: triggerToReloadData,
6929
- search: search,
6930
- searchAdaptive: searchAdaptive,
6931
- loadCoinsAndContent: loadCoinsAndContent,
6932
- showRequestMissingCoinsInfoMessage: showRequestMissingCoinsInfoMessage,
6933
- coinToIconPaths: coinToIconPaths,
6934
- supportUrl: supportUrl,
6935
- texts: texts
7555
+ value: inputValue
7556
+ }), errorEncountered ? /*#__PURE__*/React.createElement(Validation, {
7557
+ text: t.signUpStep.error
7558
+ }) : null)), /*#__PURE__*/React.createElement(DialogStep, {
7559
+ stepName: STEPS.success,
7560
+ controls: controls,
7561
+ title: t.successStep.title,
7562
+ subtitle: t.successStep.subtitle,
7563
+ confirmButtonClick: function confirmButtonClick() {
7564
+ return setShowDialog(false);
7565
+ },
7566
+ confirmButtonText: t.successStep.actionButtonTitle,
7567
+ showBackgroundTitle: false,
7568
+ ImageRaw: supportDialogImage,
7569
+ showCornerBackButton: false,
7570
+ subtitleSmallMargin: true
7571
+ })), /*#__PURE__*/React.createElement(ColoredNotice, {
7572
+ text: t.coloredNotice.text,
7573
+ buttonTitle: t.coloredNotice.buttonTitle,
7574
+ onButtonClick: openDialog
6936
7575
  }));
6937
7576
  };
7577
+ WaitlistSubscription.propTypes = {
7578
+ coin: PropTypes.object.isRequired,
7579
+ translations: PropTypes.object
7580
+ };
7581
+
7582
+ var s = {"logo-carousel":"_CgRBd","logo-carousel-wrapper":"_cVsiX","slide":"_Gu7XN","logo-carousel-slide":"_hIh2D","clickable":"_VuuGX","easeIn":"_i56By"};
7583
+
7584
+ /**
7585
+ * LogoCarousel component renders a set of logos in a sliding carousel.
7586
+ *
7587
+ * @component
7588
+ *
7589
+ * @param {Object} props - The props object for this component.
7590
+ * @param {Array<{logo: string, url: string}>} props.logos - Array of objects representing logos and their corresponding URLs.
7591
+ */
7592
+ var LogoCarousel = function LogoCarousel(_ref) {
7593
+ var _wrapperRef$current;
7594
+ var logos = _ref.logos;
7595
+ var _useState = useState(),
7596
+ multiplier = _useState[0],
7597
+ setMultiplier = _useState[1];
7598
+ var _useState2 = useState(0),
7599
+ width = _useState2[0],
7600
+ setWidth = _useState2[1];
7601
+ var wrapperRef = useRef();
7602
+ useEffect(function () {
7603
+ var resizeObserver = new ResizeObserver(function (entries) {
7604
+ return entries.map(function (entry) {
7605
+ return setWidth(entry.contentRect.width);
7606
+ });
7607
+ });
7608
+ if (wrapperRef.current) resizeObserver.observe(wrapperRef.current);
7609
+ return function () {
7610
+ if (wrapperRef.current) resizeObserver.unobserve(wrapperRef.current);
7611
+ };
7612
+ }, []);
7613
+ useEffect(function () {
7614
+ setMultiplier(wrapperRef.current.clientWidth / 120);
7615
+ // eslint-disable-next-line react-hooks/exhaustive-deps
7616
+ }, [wrapperRef, wrapperRef == null || (_wrapperRef$current = wrapperRef.current) == null ? void 0 : _wrapperRef$current.clientWidth, logos, width]);
7617
+ return /*#__PURE__*/React.createElement("div", {
7618
+ className: s["logo-carousel"]
7619
+ }, /*#__PURE__*/React.createElement("div", {
7620
+ className: s["logo-carousel-wrapper"],
7621
+ ref: wrapperRef,
7622
+ style: {
7623
+ animationDuration: multiplier + "s"
7624
+ }
7625
+ }, [].concat(Array(2)).map(function (z, i) {
7626
+ return /*#__PURE__*/React.createElement("div", {
7627
+ className: s["logo-carousel-slide"],
7628
+ key: "logo-carousel-slide-" + i
7629
+ }, logos.map(function (item, index) {
7630
+ return /*#__PURE__*/React.createElement("a", {
7631
+ key: "logo-carousel-slide-" + i + "-" + index,
7632
+ className: item != null && item.url ? s["clickable"] : null,
7633
+ href: item == null ? void 0 : item.url,
7634
+ target: "_blank"
7635
+ }, /*#__PURE__*/React.createElement("img", {
7636
+ src: item.logo,
7637
+ alt: "logo"
7638
+ }));
7639
+ }));
7640
+ })));
7641
+ };
7642
+ LogoCarousel.propTypes = {
7643
+ logos: PropTypes.arrayOf(PropTypes.shape({
7644
+ logo: PropTypes.string.isRequired,
7645
+ url: PropTypes.string.isRequired
7646
+ })).isRequired
7647
+ };
6938
7648
 
6939
7649
  var PARAMETER_VALUES_SEPARATOR = "|*|"; // Sting that with high probability will not be in the user's data
6940
7650
 
@@ -7028,154 +7738,6 @@ var Protocol = function Protocol(protocolName) {
7028
7738
  this.protocol = protocolName;
7029
7739
  };
7030
7740
 
7031
- /**
7032
- * The model for cryptocurrency coins.
7033
- *
7034
- * WARNING: this class should not be instantiated directly. Use only predefined singleton Coin (or descendants) instances.
7035
- */
7036
- var Coin = /*#__PURE__*/function () {
7037
- /**
7038
- * Creates new coin
7039
- *
7040
- * @param latinName {string} the coin name in latin symbols like "Bitcoin"
7041
- * @param ticker {string} the coin symbol/ticker/code like 'BTC'. Always upper case. A unique coin identifier
7042
- * @param tickerPrintable {string} ticker but in printable format. Useful for tokens based on external blockchains
7043
- * like ERC20 or TRC20. It is not friendly to display USDTERC20 or BUSDTRC20 - more neat options are just
7044
- * USDT and BUSD. Note that you should always care about user's understanding of what coin he/she is working
7045
- * with as printable ticker for USDTERC20 and USDTTRC20 are the same.
7046
- * @param digitsCountAfterComma {number} count of digits after the comma. E.g. 8 for bitcoin
7047
- * @param maxValue {number|null} max possible value for cryptocurrency. Null means that the currency has no max possible value
7048
- * @param atomName {string} name of the coin's atomic value. Like 'satoshi' for bitcoin
7049
- * @param mainnet {Network} main network for this coin
7050
- * @param testnet {Network} test network for this coin
7051
- * @param minConfirmations {number} min confirmations count to treat the coin's transaction confirmed
7052
- * @param payableEntityStringForFeeRate {string|null} the payable fee entity like byte for bitcoin or gas for ether if present
7053
- * @param feeOptionsTimeStringsSortedDesc {string[]} array of 4 strings for fee options when sending coins. Should be sorted from the highest time to the smallest
7054
- * @param feeRatesExpirationTimeMs {number} number of milliseconds to treat the fee rates as expired
7055
- * @param blockchain {Blockchain} blockchain object
7056
- * @param [protocol] {Protocol|null} token/coin protocol if relevant
7057
- * @param [tokenAddress] {string|null} address of contract of this token (if the coin is token)
7058
- * @param [doesUseLowerCaseAddresses] {boolean} flag to clarify whether we can use lower case addresses to ensure more robust comparisons
7059
- * @param [doesUseOutputs=false] {boolean} true if this coin uses inputs/outputs concept and false if it uses just balances
7060
- */
7061
- function Coin(latinName, ticker, tickerPrintable, digitsCountAfterComma, maxValue, atomName, mainnet, testnet, minConfirmations, payableEntityStringForFeeRate, feeOptionsTimeStringsSortedDesc, feeRatesExpirationTimeMs, blockchain, protocol, tokenAddress, doesUseLowerCaseAddresses, doesUseOutputs) {
7062
- if (protocol === void 0) {
7063
- protocol = null;
7064
- }
7065
- if (tokenAddress === void 0) {
7066
- tokenAddress = null;
7067
- }
7068
- if (doesUseLowerCaseAddresses === void 0) {
7069
- doesUseLowerCaseAddresses = true;
7070
- }
7071
- if (doesUseOutputs === void 0) {
7072
- doesUseOutputs = false;
7073
- }
7074
- this.latinName = latinName;
7075
- this.ticker = ticker;
7076
- this.tickerPrintable = tickerPrintable;
7077
- this.digits = digitsCountAfterComma;
7078
- this.maxValue = maxValue;
7079
- this.atomName = atomName;
7080
- this.mainnet = mainnet;
7081
- this.testnet = testnet;
7082
- this.minConfirmations = minConfirmations;
7083
- this.payableEntityStringForFeeRate = payableEntityStringForFeeRate;
7084
- this.feeOptionsTimeStringsSortedDesc = feeOptionsTimeStringsSortedDesc;
7085
- this.feeRatesExpirationTimeMs = feeRatesExpirationTimeMs;
7086
- this.protocol = protocol;
7087
- this.blockchain = blockchain;
7088
- // TODO: [bug, critical] use testnet property for testnet contract address as it blocks the app work in testnets
7089
- this.tokenAddress = tokenAddress;
7090
- this.feeCoin = this;
7091
- this._significantDigits = 8;
7092
- this.doesUseLowerCaseAddresses = doesUseLowerCaseAddresses;
7093
- this.doesUseOutputs = doesUseOutputs;
7094
- }
7095
-
7096
- /**
7097
- * Sets fee coin
7098
- *
7099
- * @param feeCoin {Coin} some tokens use another coin to charge transaction fee as they work on top of some external
7100
- * blockchain. So pass here the coin the token uses for fee charging. Like for ERC20 token the fee coin is ETH.
7101
- * By default, the creating coin will be set as a value for this field.
7102
- */
7103
- var _proto = Coin.prototype;
7104
- _proto.setFeeCoin = function setFeeCoin(feeCoin) {
7105
- this.feeCoin = feeCoin;
7106
- }
7107
-
7108
- /**
7109
- * Checks whether this coin uses another coin (blockchain) to charge fee for transactions (means works on base of
7110
- * some external blockchain).
7111
- *
7112
- * @return {boolean} true if this coin uses external blockchain to perform transactions and charge fee
7113
- */;
7114
- _proto.doesUseDifferentCoinFee = function doesUseDifferentCoinFee() {
7115
- return this.feeCoin !== this;
7116
- }
7117
-
7118
- /**
7119
- * Converts the given atoms string/number to string representing the same amount in coin itself - floating point number
7120
- *
7121
- * @param atoms {string} atoms positive integer amount
7122
- * @return {string} coin amount floating point number as a string
7123
- */;
7124
- _proto.atomsToCoinAmount = function atomsToCoinAmount(atoms) {
7125
- throw new Error("Not implemented in base Coin");
7126
- }
7127
-
7128
- /**
7129
- * Converts the given coins amount string/number to string representing the same amount in coin atoms - integer number
7130
- *
7131
- * @param coinsAmount {string} coins positive floating point amount
7132
- * @return {string} coin atoms amount integer number as a string
7133
- */;
7134
- _proto.coinAmountToAtoms = function coinAmountToAtoms(coinsAmount) {
7135
- throw new Error("Not implemented in base Coin");
7136
- }
7137
-
7138
- /**
7139
- * Composes URL to view the tx with given id in the external blockchain explorer
7140
- *
7141
- * @param txId {string} id of transaction
7142
- * @return {string} URL string
7143
- */;
7144
- _proto.composeUrlToTransactionExplorer = function composeUrlToTransactionExplorer(txId) {
7145
- throw new Error("Not implemented in base Coin");
7146
- }
7147
-
7148
- /**
7149
- * Most of the cryptocurrencies has specific fee rate or fee price metric. This value usually has specific measure
7150
- * like satoshi/byte or gWei/gas. This function adds the described denomination string to the given amount
7151
- * as a suffix and returns the result string ready to be show to a user.
7152
- *
7153
- * @param coinAtomsString {string} coin atoms positive integer amount
7154
- * @return {string} string of coin amount and fee rate units
7155
- */;
7156
- _proto.coinAtomsFeeRateToCommonlyUsedAmountFormatWithDenominationString = function coinAtomsFeeRateToCommonlyUsedAmountFormatWithDenominationString(coinAtomsString) {
7157
- throw new Error("Not implemented in base Coin");
7158
- }
7159
-
7160
- /**
7161
- * Check whether this coin support transaction prioritisation during the sending process.
7162
- *
7163
- * @return {boolean} true if support transaction prioritisation and false otherwise
7164
- */;
7165
- _proto.doesSupportTransactionPrioritisation = function doesSupportTransactionPrioritisation() {
7166
- return Array.isArray(this.feeOptionsTimeStringsSortedDesc);
7167
- };
7168
- _proto.tickerAndProtocol = function tickerAndProtocol() {
7169
- try {
7170
- var _ref;
7171
- return "" + this.tickerPrintable + (this.protocol ? (_ref = " " + this.protocol.protocol) != null ? _ref : "" : "");
7172
- } catch (e) {
7173
- improveAndRethrow(e, "tickerAndProtocol");
7174
- }
7175
- };
7176
- return Coin;
7177
- }();
7178
-
7179
7741
  /**
7180
7742
  * TODO: [tests, critical] Ued by payments logic
7181
7743
  *
@@ -10277,6 +10839,13 @@ var SwapProvider = /*#__PURE__*/function () {
10277
10839
  }
10278
10840
  }
10279
10841
  return coinName;
10842
+ }
10843
+
10844
+ /**
10845
+ * @return {Promise<Partner[]>}
10846
+ */;
10847
+ _proto.getPartnersList = function getPartnersList() {
10848
+ return Promise.resolve([]);
10280
10849
  };
10281
10850
  return SwapProvider;
10282
10851
  }();
@@ -10297,6 +10866,7 @@ SwapProvider.SWAP_STATUSES = {
10297
10866
  WAITING_FOR_PAYMENT: "waiting_for_payment",
10298
10867
  CONFIRMING: "confirming",
10299
10868
  PAYMENT_RECEIVED: "payment_received",
10869
+ VERIFYING: "verifying",
10300
10870
  EXCHANGING: "exchanging",
10301
10871
  COMPLETED: "completed",
10302
10872
  REFUNDED: "refunded",
@@ -10304,6 +10874,12 @@ SwapProvider.SWAP_STATUSES = {
10304
10874
  FAILED: "failed"
10305
10875
  };
10306
10876
 
10877
+ var Partner = function Partner(name, url, logoUrl) {
10878
+ this.name = name;
10879
+ this.url = url;
10880
+ this.logoUrl = logoUrl;
10881
+ };
10882
+
10307
10883
  function _catch$3(body, recover) {
10308
10884
  try {
10309
10885
  var result = body();
@@ -10713,7 +11289,7 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
10713
11289
  case "finished":
10714
11290
  return SwapProvider.SWAP_STATUSES.COMPLETED;
10715
11291
  case "verifying":
10716
- return SwapProvider.SWAP_STATUSES.EXCHANGING;
11292
+ return SwapProvider.SWAP_STATUSES.VERIFYING;
10717
11293
  case "refunded":
10718
11294
  return SwapProvider.SWAP_STATUSES.REFUNDED;
10719
11295
  case "expired":
@@ -10805,6 +11381,29 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
10805
11381
  return Promise.reject(e);
10806
11382
  }
10807
11383
  };
11384
+ _proto.getPartnersList = function getPartnersList() {
11385
+ try {
11386
+ var _this7 = this;
11387
+ return Promise.resolve(_catch$3(function () {
11388
+ return Promise.resolve(_this7._fetchPartnersListIfNeeded()).then(function () {
11389
+ return _this7._partners.filter(function (p) {
11390
+ return !BANNED_PARTNERS.find(function (banned) {
11391
+ return banned === p.path;
11392
+ });
11393
+ }).map(function (p) {
11394
+ var _p$image;
11395
+ return new Partner(p.name, null,
11396
+ // No data in swapspace
11397
+ p != null && (_p$image = p.image) != null && _p$image["default"] ? "https://storage.swapspace.co" + p.image["default"] : null);
11398
+ });
11399
+ });
11400
+ }, function (e) {
11401
+ improveAndRethrow(e, "swapspace.getPartnersList");
11402
+ }));
11403
+ } catch (e) {
11404
+ return Promise.reject(e);
11405
+ }
11406
+ };
10808
11407
  return SwapspaceSwapProvider;
10809
11408
  }(SwapProvider);
10810
11409
 
@@ -11585,6 +12184,13 @@ var LetsExchangeSwapProvider = /*#__PURE__*/function (_SwapProvider) {
11585
12184
  throw new Error("Unknown LetsExchange status: " + status);
11586
12185
  }
11587
12186
  };
12187
+ _proto.getPartnersList = function getPartnersList() {
12188
+ try {
12189
+ return Promise.resolve([new Partner("LetsExchange", "https://letsexchange.io/", "https://letsexchange.notion.site/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F02e45813-b375-49d8-b2b0-092ce1847fff%2F55ebbc3c-4ee6-4fa7-847b-f673e82594f3%2Flets-logo-basic__on-light.svg?table=block&id=bec5952a-2f9c-47fb-8cc0-86e1391a7f60&spaceId=02e45813-b375-49d8-b2b0-092ce1847fff&userId=&cache=v2")]);
12190
+ } catch (e) {
12191
+ return Promise.reject(e);
12192
+ }
12193
+ };
11588
12194
  return LetsExchangeSwapProvider;
11589
12195
  }(SwapProvider);
11590
12196
  LetsExchangeSwapProvider.AFFILIATE_ID = "0zbj9hf7xg7jgdgv";
@@ -12290,6 +12896,39 @@ var PublicSwapService = /*#__PURE__*/function () {
12290
12896
  improveAndRethrow(e, "getExtraIdNameIfPresentForAsset");
12291
12897
  }
12292
12898
  };
12899
+ _proto.getPartnersList = function getPartnersList() {
12900
+ try {
12901
+ var _temp17 = function _temp17(_result15) {
12902
+ return _exit4 ? _result15 : [];
12903
+ };
12904
+ var _exit4;
12905
+ var _this13 = this;
12906
+ var _temp16 = _catch(function () {
12907
+ var allPartners = [_this13._swapProvider, _this13._fixedSwapProvider].map(function (provider) {
12908
+ return provider.getPartnersList();
12909
+ });
12910
+ return Promise.resolve(Promise.all(allPartners)).then(function (_Promise$all) {
12911
+ allPartners = _Promise$all;
12912
+ allPartners = allPartners.flat().flat();
12913
+ var _allPartners$reduce = allPartners.reduce(function (prev, cur) {
12914
+ if (!prev.find(function (partner) {
12915
+ return partner.name.toLowerCase() === cur.name.toLowerCase();
12916
+ })) {
12917
+ prev.push(cur);
12918
+ }
12919
+ return prev;
12920
+ }, []);
12921
+ _exit4 = 1;
12922
+ return _allPartners$reduce;
12923
+ });
12924
+ }, function (e) {
12925
+ Logger.logError(e, "getPartnersList");
12926
+ });
12927
+ return Promise.resolve(_temp16 && _temp16.then ? _temp16.then(_temp17) : _temp17(_temp16));
12928
+ } catch (e) {
12929
+ return Promise.reject(e);
12930
+ }
12931
+ };
12293
12932
  return PublicSwapService;
12294
12933
  }();
12295
12934
  PublicSwapService.PUBLIC_SWAP_CREATED_ANALYTICS_EVENT = "public_swap_created_event";
@@ -12306,5 +12945,5 @@ PublicSwapService.PUBLIC_SWAP_DETAILS_FAIL_REASONS = {
12306
12945
  };
12307
12946
  PublicSwapService._fiatDecimalsCount = FiatCurrenciesService.getCurrencyDecimalCountByCode("USD");
12308
12947
 
12309
- export { AmountInput, AmountUtils, ApiGroup, ApiGroups, AssetIcon, AssetSelection, AxiosAdapter, BackgroundTitle, BaseSwapCreationInfo, Blockchain, Button, CLOSE_COLORS, COIN_PICKER_MODES, Cache, CacheAndConcurrentRequestsResolver, CachedRobustExternalApiCallerService, CancelProcessing, Close, Coin, CoinPicker, CoinPickerDialogStep, ConcurrentCalculationsMetadataHolder, DEFAULT_CRYPTO_DECIMAL_COUNT, DIALOG_SIZES, DIALOG_STEP_CLASS, DIALOG_TRANSITION_STEP_DURATION, DeterminedErrorDialogStep, Dialog, DialogButtons, DialogStep, EmailsApi, ExistingSwap, ExistingSwapWithFiatData, ExternalApiProvider, FALLBACK_ASSET_ICON_URL, FiatCurrenciesService, GoogleAnalyticsAdapter, ICON_ROTATE_OPTIONS, InformationMessage, Input, InputValuesProviders, IpAddressProvider, LineWithIconLink, LinesOfText, LinkButton, LoadingDots, Logger, LogsStorage, MixpanelAdapter, NoticeIcon, Protocol, PublicSwapService, QrCode, RadioButtonWithText, RobustExternalAPICallerService, SupportChat, SwapForm, SwapProvider, SwapUtils, SwapspaceSwapProvider, TOOLTIP_POSITIONS, Textarea, TitleBox, TitledLineWithIconLink, Tooltip, Validation, copyBrowserTextToClipboard, getQueryParameterSingleValue, getQueryParameterValues, handleClickOutside, improveAndRethrow, logErrorOrOutputToConsole, postponeExecution, removeQueryParameterAndValues, safeStringify, saveQueryParameterAndValues, useCallHandlingErrors, useIsHydrated, useReferredState };
12948
+ export { AmountInput, AmountUtils, ApiGroup, ApiGroups, AssetIcon, AssetSelection, AxiosAdapter, BackgroundTitle, BaseSwapCreationInfo, Blockchain, Button, CLOSE_COLORS, COIN_PICKER_MODES, Cache, CacheAndConcurrentRequestsResolver, CachedRobustExternalApiCallerService, CancelProcessing, Close, Coin, CoinPicker, CoinPickerDialogStep, ColoredNotice, ConcurrentCalculationsMetadataHolder, DEFAULT_CRYPTO_DECIMAL_COUNT, DIALOG_SIZES, DIALOG_STEP_CLASS, DIALOG_TRANSITION_STEP_DURATION, DeterminedErrorDialogStep, Dialog, DialogButtons, DialogStep, EmailsApi, ExistingSwap, ExistingSwapWithFiatData, ExternalApiProvider, FALLBACK_ASSET_ICON_URL, FiatCurrenciesService, GoogleAnalyticsAdapter, ICON_ROTATE_OPTIONS, InformationMessage, Input, InputValuesProviders, IpAddressProvider, LineWithIconLink, LinesOfText, LinkButton, LoadingDots, Logger, LogoCarousel, LogsStorage, MixpanelAdapter, NoticeIcon, Protocol, PublicSwapService, QrCode, RadioButtonWithText, RobustExternalAPICallerService, SearchableCoinsList, SupportChat, SwapForm, SwapProvider, SwapUtils, SwapspaceSwapProvider, TOOLTIP_POSITIONS, Textarea, TitleBox, TitledLineWithIconLink, Tooltip, Validation, WaitlistSubscription, copyBrowserTextToClipboard, getQueryParameterSingleValue, getQueryParameterValues, handleClickOutside, improveAndRethrow, logErrorOrOutputToConsole, postponeExecution, removeQueryParameterAndValues, safeStringify, saveQueryParameterAndValues, useCallHandlingErrors, useIsHydrated, useReferredState };
12310
12949
  //# sourceMappingURL=index.module.js.map