@rabbitio/ui-kit 1.0.0-beta.64 → 1.0.0-beta.66

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 (255) hide show
  1. package/coverage/clover.xml +6325 -4201
  2. package/coverage/coverage-final.json +160 -99
  3. package/coverage/index.html +444 -189
  4. package/coverage/{rabbit-ui-kit → ui-kit}/index.html +3 -3
  5. package/coverage/{rabbit-ui-kit → ui-kit}/index.js.html +3 -3
  6. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/arrowTosca.jsx.html → ui-kit/src/assets/wrappedImages/arrowIcon.jsx.html} +8 -29
  7. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/arrowIcon.jsx.html → ui-kit/src/assets/wrappedImages/arrowTosca.jsx.html} +9 -24
  8. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/arrowWhite.jsx.html +7 -25
  9. package/coverage/ui-kit/src/assets/wrappedImages/darkRectangle.jsx.html +106 -0
  10. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/determinedError.jsx.html +9 -42
  11. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/successfulValidationIcon.jsx.html → ui-kit/src/assets/wrappedImages/failedValidationIcon.jsx.html} +28 -31
  12. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/index.html +25 -25
  13. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/darkRectangle.jsx.html → ui-kit/src/assets/wrappedImages/infoIcon.jsx.html} +13 -19
  14. package/coverage/{rabbit-ui-kit → ui-kit}/src/assets/wrappedImages/noticeQuestionIcon.jsx.html +7 -25
  15. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/walletIcon.jsx.html → ui-kit/src/assets/wrappedImages/successfulValidationIcon.jsx.html} +23 -59
  16. package/coverage/{rabbit-ui-kit/src/assets/wrappedImages/infoIcon.jsx.html → ui-kit/src/assets/wrappedImages/walletIcon.jsx.html} +16 -16
  17. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/axiosAdapter.js.html +3 -3
  18. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/index.html +3 -3
  19. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/adapters/qrUtils.js.html +3 -3
  20. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/amountUtils.js.html +44 -308
  21. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/errorUtils.js.html +3 -3
  22. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/apiGroups.js.html +3 -3
  23. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/index.html +14 -14
  24. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/external-apis/ipAddressProviders.js.html +31 -178
  25. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/fiatCurrenciesService.js.html +12 -36
  26. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/index.html +20 -20
  27. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/blockchain.js.html +3 -3
  28. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/coin.js.html +10 -22
  29. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/index.html +13 -13
  30. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/models/protocol.js.html +3 -3
  31. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/cache.js.html +23 -101
  32. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/emailAPI.js.html +9 -15
  33. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/index.html +19 -19
  34. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/index.html +9 -9
  35. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/logger.js.html +14 -35
  36. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/logging/logsStorage.js.html +5 -5
  37. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/postponeExecution.js.html +3 -3
  38. package/coverage/{rabbit-ui-kit → ui-kit}/src/common/utils/safeStringify.js.html +29 -29
  39. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetIcon/AssetIcon.jsx.html +11 -41
  40. package/coverage/ui-kit/src/components/atoms/AssetIcon/index.html +116 -0
  41. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetSelection/AssetSelection.jsx.html +9 -33
  42. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/AssetSelection/index.html +7 -7
  43. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/BackgroundTitle/BackgroundTitle.jsx.html +8 -38
  44. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/BackgroundTitle/index.html +7 -7
  45. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/InformationMessage/InformationMessage.jsx.html +8 -38
  46. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/InformationMessage/index.html +7 -7
  47. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Input/Input.jsx.html +15 -63
  48. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Input/index.html +7 -7
  49. package/coverage/ui-kit/src/components/atoms/LoadingDots/LoadingDots.jsx.html +196 -0
  50. package/coverage/{rabbit-ui-kit/src/components/atoms/RateSelector → ui-kit/src/components/atoms/LoadingDots}/index.html +4 -4
  51. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/NoticeIcon/NoticeIcon.jsx.html +10 -40
  52. package/coverage/{rabbit-ui-kit/src/components/atoms/AssetIcon → ui-kit/src/components/atoms/NoticeIcon}/index.html +4 -4
  53. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/QrCode/QrCode.jsx.html +8 -26
  54. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/QrCode/index.html +7 -7
  55. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/RateSelector/RateSelector.jsx.html +10 -34
  56. package/coverage/ui-kit/src/components/atoms/RateSelector/index.html +116 -0
  57. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/SupportChat/SupportChat.jsx.html +7 -22
  58. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/SupportChat/index.html +7 -7
  59. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Textarea/Textarea.jsx.html +17 -53
  60. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Textarea/index.html +7 -7
  61. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TitleBox/TitleBox.jsx.html +13 -82
  62. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TitleBox/index.html +7 -7
  63. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Tooltip/Tooltip.jsx.html +12 -18
  64. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Tooltip/index.html +7 -7
  65. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/TwoLinesOfText/LinesOfText.jsx.html +12 -30
  66. package/coverage/{rabbit-ui-kit/src/components/atoms/NoticeIcon → ui-kit/src/components/atoms/TwoLinesOfText}/index.html +4 -4
  67. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Validation/Validation.jsx.html +19 -13
  68. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/Validation/index.html +7 -7
  69. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Button/Button.jsx.html +23 -113
  70. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Button/index.html +7 -7
  71. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Close/Close.jsx.html +9 -27
  72. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/Close/index.html +7 -7
  73. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/LinkButton/LinkButton.jsx.html +11 -38
  74. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/LinkButton/index.html +7 -7
  75. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx.html +13 -67
  76. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/atoms/buttons/RadioButtonWithText/index.html +7 -7
  77. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/index.html +7 -7
  78. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/useCallHandlingErrors.js.html +7 -19
  79. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/hooks/useReferredState.js.html +4 -4
  80. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/AmountInput/AmountInput.jsx.html +56 -407
  81. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/AmountInput/index.html +7 -7
  82. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/CoinPicker/CoinPicker.jsx.html +67 -466
  83. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/CoinPicker/index.html +7 -7
  84. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/LineWithIconLink/LineWithIconLink.jsx.html +7 -22
  85. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/LineWithIconLink/index.html +7 -7
  86. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/TitledLineWithIconLink/TitledLineWithIconLink.jsx.html +3 -3
  87. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/molecules/TitledLineWithIconLink/index.html +3 -3
  88. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx.html +9 -15
  89. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/CoinPickerDialogStep/index.html +7 -7
  90. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/Dialog.jsx.html +44 -194
  91. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogButtons/DialogButtons.jsx.html +3 -3
  92. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogButtons/index.html +3 -3
  93. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogStep/DialogStep.jsx.html +63 -525
  94. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/DialogStep/index.html +7 -7
  95. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/Dialog/index.html +7 -7
  96. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/SwapForm/SwapForm.jsx.html +145 -670
  97. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/organisms/SwapForm/index.html +7 -7
  98. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/templates/DeterminedErrorDialogStep/DeterminedErrorDialogStep.jsx.html +3 -3
  99. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/templates/DeterminedErrorDialogStep/index.html +3 -3
  100. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/index.html +20 -20
  101. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/inputValueProviders.js.html +11 -35
  102. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/textUtils.js.html +3 -3
  103. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/uiUtils.js.html +7 -13
  104. package/coverage/{rabbit-ui-kit → ui-kit}/src/components/utils/urlQueryUtils.js.html +18 -93
  105. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Close/close.jsx.html +3 -3
  106. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Close/index.html +3 -3
  107. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/LinkButton/index.html +3 -3
  108. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/LinkButton/linkButton.jsx.html +3 -3
  109. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Tooltip/index.html +3 -3
  110. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/atoms/Tooltip/tooltip.jsx.html +3 -3
  111. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/globalConstants.jsx.html +7 -10
  112. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/index.html +7 -7
  113. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/DialogStep/dialogStep.js.html +3 -3
  114. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/DialogStep/index.html +3 -3
  115. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/dialog.js.html +3 -3
  116. package/coverage/{rabbit-ui-kit → ui-kit}/src/constants/organisms/dialog/index.html +3 -3
  117. package/coverage/{rabbit-ui-kit → ui-kit}/src/index.html +7 -7
  118. package/coverage/{rabbit-ui-kit → ui-kit}/src/index.js.html +8 -26
  119. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cacheAndConcurrentRequestsResolver.js.html +30 -222
  120. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cachedRobustExternalApiCallerService.js.html +24 -147
  121. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/cancelProcessing.js.html +3 -3
  122. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/concurrentCalculationsMetadataHolder.js.html +19 -103
  123. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/externalApiProvider.js.html +3 -3
  124. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/externalServicesStatsCollector.js.html +11 -23
  125. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/index.html +38 -38
  126. package/coverage/{rabbit-ui-kit → ui-kit}/src/robustExteranlApiCallerService/robustExternalAPICallerService.js.html +53 -305
  127. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/index.html +24 -24
  128. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapProvider.js.html +10 -28
  129. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/external-apis/swapspaceSwapProvider.js.html +277 -1009
  130. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/baseSwapCreationInfo.js.html +3 -3
  131. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwap.js.html +3 -3
  132. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/existingSwapWithFiatData.js.html +9 -27
  133. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/models/index.html +13 -13
  134. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/index.html +7 -7
  135. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/services/publicSwapService.js.html +53 -374
  136. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/index.html +13 -13
  137. package/coverage/{rabbit-ui-kit → ui-kit}/src/swaps-lib/utils/swapUtils.js.html +32 -179
  138. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/BackgroundTitle.stories.jsx.html +3 -3
  139. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LinesOfText.stories.jsx.html +3 -3
  140. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/LoadingDots.stories.jsx.html +3 -3
  141. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/QrCode.stories.jsx.html +3 -3
  142. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/RateSelector.stories.jsx.html +3 -3
  143. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/Validation.stories.jsx.html +3 -3
  144. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Button.stories.jsx.html +3 -3
  145. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/Close.stories.jsx.html +3 -3
  146. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/LinkButton.stories.jsx.html +3 -3
  147. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/buttons/index.html +3 -3
  148. package/coverage/{rabbit-ui-kit → ui-kit}/stories/atoms/index.html +3 -3
  149. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/LineWithIconLink.stories.jsx.html +3 -3
  150. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/TitledLineWithIconLink.stories.jsx.html +3 -3
  151. package/coverage/{rabbit-ui-kit → ui-kit}/stories/molecules/index.html +3 -3
  152. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/Dialog.stories.jsx.html +3 -3
  153. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/DialogButtons.stories.jsx.html +3 -3
  154. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogButtons/index.html +3 -3
  155. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/DialogStep.stories.jsx.html +3 -3
  156. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/DialogStep/index.html +3 -3
  157. package/coverage/{rabbit-ui-kit → ui-kit}/stories/organisms/Dialog/index.html +3 -3
  158. package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/exampleContent.jsx.html +3 -3
  159. package/coverage/{rabbit-ui-kit → ui-kit}/stories/stubs/index.html +3 -3
  160. package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/DeterminedErrorDialogStep.stories.jsx.html +3 -3
  161. package/coverage/{rabbit-ui-kit → ui-kit}/stories/templates/index.html +3 -3
  162. package/dist/index.cjs +65 -49
  163. package/dist/index.cjs.map +1 -1
  164. package/dist/index.css +5 -2
  165. package/dist/index.css.map +1 -1
  166. package/dist/index.modern.js +43 -28
  167. package/dist/index.modern.js.map +1 -1
  168. package/dist/index.module.js +65 -49
  169. package/dist/index.module.js.map +1 -1
  170. package/dist/index.umd.js +65 -49
  171. package/dist/index.umd.js.map +1 -1
  172. package/package.json +5 -3
  173. package/src/assets/wrappedImages/arrowIcon.jsx +1 -7
  174. package/src/assets/wrappedImages/arrowTosca.jsx +1 -7
  175. package/src/assets/wrappedImages/arrowWhite.jsx +1 -7
  176. package/src/assets/wrappedImages/darkRectangle.jsx +2 -13
  177. package/src/assets/wrappedImages/determinedError.jsx +2 -13
  178. package/src/assets/wrappedImages/failedValidationIcon.jsx +2 -16
  179. package/src/assets/wrappedImages/infoIcon.jsx +1 -7
  180. package/src/assets/wrappedImages/noticeQuestionIcon.jsx +1 -7
  181. package/src/assets/wrappedImages/successfulValidationIcon.jsx +2 -16
  182. package/src/assets/wrappedImages/walletIcon.jsx +3 -19
  183. package/src/common/amountUtils.js +36 -124
  184. package/src/common/external-apis/ipAddressProviders.js +22 -71
  185. package/src/common/fiatCurrenciesService.js +4 -12
  186. package/src/common/models/coin.js +2 -6
  187. package/src/common/tests/amountUtils/composeRateText.test.js +12 -69
  188. package/src/common/tests/integration/external-apis/ipAddressProviders/getClientIpAddress.test.js +1 -3
  189. package/src/common/utils/cache.js +10 -36
  190. package/src/common/utils/emailAPI.js +1 -3
  191. package/src/common/utils/logging/logger.js +5 -12
  192. package/src/components/atoms/AssetIcon/AssetIcon.jsx +4 -14
  193. package/src/components/atoms/AssetSelection/AssetSelection.jsx +3 -11
  194. package/src/components/atoms/BackgroundTitle/BackgroundTitle.jsx +2 -12
  195. package/src/components/atoms/InformationMessage/InformationMessage.jsx +2 -12
  196. package/src/components/atoms/InformationMessage/information-message.module.scss +4 -2
  197. package/src/components/atoms/Input/Input.jsx +9 -25
  198. package/src/components/atoms/LoadingDots/LoadingDots.jsx +8 -28
  199. package/src/components/atoms/NoticeIcon/NoticeIcon.jsx +4 -14
  200. package/src/components/atoms/QrCode/QrCode.jsx +2 -8
  201. package/src/components/atoms/RateSelector/RateSelector.jsx +4 -12
  202. package/src/components/atoms/SupportChat/SupportChat.jsx +1 -6
  203. package/src/components/atoms/Textarea/Textarea.jsx +11 -23
  204. package/src/components/atoms/TitleBox/TitleBox.jsx +7 -30
  205. package/src/components/atoms/TitleBox/title-box.module.scss +2 -0
  206. package/src/components/atoms/Tooltip/Tooltip.jsx +6 -8
  207. package/src/components/atoms/TwoLinesOfText/LinesOfText.jsx +5 -11
  208. package/src/components/atoms/Validation/Validation.jsx +9 -7
  209. package/src/components/atoms/buttons/Button/Button.jsx +17 -47
  210. package/src/components/atoms/buttons/Close/Close.jsx +3 -9
  211. package/src/components/atoms/buttons/LinkButton/LinkButton.jsx +5 -14
  212. package/src/components/atoms/buttons/RadioButtonWithText/RadioButtonWithText.jsx +7 -25
  213. package/src/components/hooks/useCallHandlingErrors.js +1 -5
  214. package/src/components/hooks/useReferredState.js +1 -1
  215. package/src/components/molecules/AmountInput/AmountInput.jsx +50 -167
  216. package/src/components/molecules/CoinPicker/CoinPicker.jsx +61 -194
  217. package/src/components/molecules/CoinPicker/coin-picker.module.scss +1 -4
  218. package/src/components/molecules/LineWithIconLink/LineWithIconLink.jsx +1 -6
  219. package/src/components/organisms/CoinPickerDialogStep/CoinPickerDialogStep.jsx +3 -5
  220. package/src/components/organisms/Dialog/Dialog.jsx +38 -88
  221. package/src/components/organisms/Dialog/DialogStep/DialogStep.jsx +57 -211
  222. package/src/components/organisms/Dialog/DialogStep/dialog-step.module.scss +2 -4
  223. package/src/components/organisms/SwapForm/SwapForm.jsx +139 -314
  224. package/src/components/tests/utils/inputValueProviders/provideFormatOfFloatValueByInputString.test.js +5 -12
  225. package/src/components/tests/utils/urlQueryUtils/getQueryParameterValues.test.js +3 -9
  226. package/src/components/tests/utils/urlQueryUtils/saveQueryParameterAndValues.test.js +11 -51
  227. package/src/components/utils/inputValueProviders.js +3 -11
  228. package/src/components/utils/uiUtils.js +1 -3
  229. package/src/components/utils/urlQueryUtils.js +10 -35
  230. package/src/constants/globalConstants.jsx +1 -2
  231. package/src/index.js +2 -8
  232. package/src/robustExteranlApiCallerService/cacheAndConcurrentRequestsResolver.js +22 -86
  233. package/src/robustExteranlApiCallerService/cachedRobustExternalApiCallerService.js +15 -56
  234. package/src/robustExteranlApiCallerService/concurrentCalculationsMetadataHolder.js +11 -39
  235. package/src/robustExteranlApiCallerService/externalServicesStatsCollector.js +3 -7
  236. package/src/robustExteranlApiCallerService/robustExternalAPICallerService.js +45 -129
  237. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/_performCallAttempt.test.js +76 -330
  238. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/callExternalAPI/callExternalAPI.test.js +57 -270
  239. package/src/robustExteranlApiCallerService/tests/robustExternalAPICallerService/robustExternalAPICallerService/constructor.test.js +3 -15
  240. package/src/swaps-lib/external-apis/swapProvider.js +1 -7
  241. package/src/swaps-lib/external-apis/swapspaceSwapProvider.js +117 -361
  242. package/src/swaps-lib/models/existingSwapWithFiatData.js +1 -7
  243. package/src/swaps-lib/services/publicSwapService.js +47 -154
  244. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/_fetchSupportedCurrenciesIfNeeded.test.js +33 -118
  245. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/createSwap.test.js +23 -85
  246. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getAllSupportedCurrencies.test.js +4 -14
  247. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getDepositCurrencies.test.js +3 -9
  248. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getSwapInfo.test.js +148 -460
  249. package/src/swaps-lib/test/external-apis/swapspaceSwapProvider/getWithdrawalCurrencies.test.js +5 -11
  250. package/src/swaps-lib/test/utils/swapUtils/safeHandleRequestsLimitExceeding.test.js +2 -10
  251. package/src/swaps-lib/utils/swapUtils.js +24 -73
  252. package/coverage/rabbit-ui-kit/src/assets/wrappedImages/failedValidationIcon.jsx.html +0 -244
  253. package/coverage/rabbit-ui-kit/src/components/atoms/LoadingDots/LoadingDots.jsx.html +0 -256
  254. package/coverage/rabbit-ui-kit/src/components/atoms/LoadingDots/index.html +0 -116
  255. package/coverage/rabbit-ui-kit/src/components/atoms/TwoLinesOfText/index.html +0 -116
package/dist/index.cjs CHANGED
@@ -2061,13 +2061,13 @@ var Validation = function Validation(_ref) {
2061
2061
  isSuccessAlert = _ref.isSuccessAlert;
2062
2062
  return /*#__PURE__*/React__default["default"].createElement("div", {
2063
2063
  className: s$h["validation"]
2064
- }, isSuccessAlert ?
2064
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, isSuccessAlert ?
2065
2065
  /*#__PURE__*/
2066
2066
  // <img src={successfulValidationIcon} alt="validation icon" />
2067
2067
  React__default["default"].createElement(SuccessfulValidationIcon, null) :
2068
2068
  /*#__PURE__*/
2069
2069
  // <img src={failedValidationIcon} alt="validation icon" />
2070
- React__default["default"].createElement(FailedValidationIcon, null), /*#__PURE__*/React__default["default"].createElement("span", {
2070
+ React__default["default"].createElement(FailedValidationIcon, null)), /*#__PURE__*/React__default["default"].createElement("span", {
2071
2071
  className: s$h["validation-text"]
2072
2072
  }, text));
2073
2073
  };
@@ -2868,10 +2868,10 @@ var DialogStep = function DialogStep(_ref) {
2868
2868
  // eslint-disable-next-line react-hooks/exhaustive-deps
2869
2869
  }, []);
2870
2870
  var handleTransitionEnd = function handleTransitionEnd(event) {
2871
- if (isMultiStep && isCurrentStep(stepName) && event.propertyName === "opacity" && event.target.classList[0] === DIALOG_STEP_CLASS) {
2871
+ if (isMultiStep && isCurrentStep(stepName) && event.propertyName === "opacity" && event.target.classList[0] === s$f[DIALOG_STEP_CLASS]) {
2872
2872
  disableAnimation(animationConfiguration.animateHeightTransitionEnabled);
2873
2873
  }
2874
- if (isMultiStep && unmountOnAnimationEndTrigger && event.propertyName === "opacity" && event.target.classList[0] === DIALOG_STEP_CLASS) {
2874
+ if (isMultiStep && unmountOnAnimationEndTrigger && event.propertyName === "opacity" && event.target.classList[0] === s$f[DIALOG_STEP_CLASS]) {
2875
2875
  clearButtonsConfiguration();
2876
2876
  scrollDialogToTop();
2877
2877
  setStepMounted(false);
@@ -4041,6 +4041,7 @@ var AmountInput = /*#__PURE__*/React__default["default"].forwardRef(function (_r
4041
4041
  _ref$handleBalanceVal = _ref.handleBalanceValidationChange,
4042
4042
  handleBalanceValidationChange = _ref$handleBalanceVal === void 0 ? function (isValid) {} : _ref$handleBalanceVal,
4043
4043
  disabled = _ref.disabled,
4044
+ locked = _ref.locked,
4044
4045
  alertText = _ref.alertText,
4045
4046
  predefinedValue = _ref.predefinedValue,
4046
4047
  children = _ref.children,
@@ -4172,7 +4173,7 @@ var AmountInput = /*#__PURE__*/React__default["default"].forwardRef(function (_r
4172
4173
  return "0" + (decimalCount > 0 ? "." + "0".repeat(decimalCount) : "");
4173
4174
  };
4174
4175
  var handleFiatInteraction = function handleFiatInteraction() {
4175
- if (disabled) return;
4176
+ if (disabled || locked) return;
4176
4177
  setFiatAmountAutoFocus(true);
4177
4178
  setInteractedWith(true);
4178
4179
  };
@@ -4204,7 +4205,7 @@ var AmountInput = /*#__PURE__*/React__default["default"].forwardRef(function (_r
4204
4205
  // Clearing the custom focus upon disabling or enabling the form
4205
4206
  React.useEffect(function () {
4206
4207
  return setIsInFocus(false);
4207
- }, [disabled]);
4208
+ }, [disabled, locked]);
4208
4209
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(TitleBox, {
4209
4210
  title: label,
4210
4211
  linkText: isSendAll !== null ? isSendAll ? linkButtonActiveText : linkButtonInactiveText : null,
@@ -4228,7 +4229,7 @@ var AmountInput = /*#__PURE__*/React__default["default"].forwardRef(function (_r
4228
4229
  },
4229
4230
  placeholder: coinAmountPlaceholder,
4230
4231
  className: s$a["requested-amount-coin-input"],
4231
- disabled: disabled,
4232
+ disabled: disabled || locked,
4232
4233
  onFocus: function onFocus(e) {
4233
4234
  return callHandlingErrors(function () {
4234
4235
  return setIsInFocus(true);
@@ -4252,7 +4253,7 @@ var AmountInput = /*#__PURE__*/React__default["default"].forwardRef(function (_r
4252
4253
  inputMode: "decimal",
4253
4254
  className: s$a["requested-amount-fiat-input"],
4254
4255
  value: fiatAmountValue,
4255
- disabled: disabled,
4256
+ disabled: disabled || locked,
4256
4257
  onChange: function onChange(e) {
4257
4258
  return handleChangeAmountFiat(e.target.value);
4258
4259
  },
@@ -4513,6 +4514,21 @@ var RateSelector = function RateSelector(_ref) {
4513
4514
  * @return {void}
4514
4515
  */
4515
4516
 
4517
+ /**
4518
+ * Handler for the confirm button click. You should implement errors handling inside it.
4519
+ *
4520
+ * @function
4521
+ * @name handleConfirmButtonClick
4522
+ * @param {function} resetButtonLoader - callback resetting the confirm button loader
4523
+ * @param {function} setValidationContent - Function to set the validation error message on the form.
4524
+ * @param {function} setBalanceValid - Function to set the balance validity, accepts a boolean.
4525
+ * @param {function} setMinimalAmountValid - Function to set the minimal amount validity, accepts a boolean.
4526
+ * @param {function} setMaximumAmountValid - Function to set the maximum amount validity, accepts a boolean.
4527
+ * @param {function} setIsPairSupported - Function to set the pair support status, accepts a boolean.
4528
+ * @param {function} setIsSameCoins - Function to set the status if the same coins are used, accepts a boolean.
4529
+ * @return {void}
4530
+ */
4531
+
4516
4532
  /**
4517
4533
  * Async function that retrieves swap creation info by given params.
4518
4534
  *
@@ -4580,7 +4596,7 @@ var RateSelector = function RateSelector(_ref) {
4580
4596
  * @param {string} [props.receivingAssetBalance] - Balance of the receiving asset.
4581
4597
  * @param {handleClick} props.handleChangeSendingAssetClick - Function to handle clicking on the change sending asset button.
4582
4598
  * @param {handleClick} props.handleChangeReceivingAssetClick - Function to handle clicking on the change receiving asset button.
4583
- * @param {handleClick} props.handleConfirmButtonClick - Function to handle clicking on the confirm button.
4599
+ * @param {handleConfirmButtonClick} props.handleConfirmButtonClick - Function to handle clicking on the confirm button.
4584
4600
  * @param {composeConfirmButtonTo} props.composeConfirmButtonTo - Function to compose the URL for the confirm button.
4585
4601
  * @param {setSwapCreationEstimation} props.setSwapCreationEstimation - Function to set the swap creation estimation.
4586
4602
  * @param {handleUnexpectedError} props.handleUnexpectedError - Function to handle unexpected errors.
@@ -4619,7 +4635,7 @@ function _catch$c(body, recover) {
4619
4635
  return result;
4620
4636
  }
4621
4637
  var SwapForm = function SwapForm(_ref) {
4622
- var _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5;
4638
+ var _isFixedRate$current2, _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5, _isFixedRate$current3;
4623
4639
  var sendingAssetTicker = _ref.sendingAssetTicker,
4624
4640
  receivingAssetTicker = _ref.receivingAssetTicker,
4625
4641
  _ref$sendingAssetDeci = _ref.sendingAssetDecimalCount,
@@ -4644,7 +4660,7 @@ var SwapForm = function SwapForm(_ref) {
4644
4660
  handleChangeSendingAssetClick = _ref.handleChangeSendingAssetClick,
4645
4661
  handleChangeReceivingAssetClick = _ref.handleChangeReceivingAssetClick,
4646
4662
  _ref$handleConfirmBut = _ref.handleConfirmButtonClick,
4647
- handleConfirmButtonClick = _ref$handleConfirmBut === void 0 ? function () {} : _ref$handleConfirmBut,
4663
+ handleConfirmButtonClick = _ref$handleConfirmBut === void 0 ? function (resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins) {} : _ref$handleConfirmBut,
4648
4664
  _ref$composeConfirmBu = _ref.composeConfirmButtonTo,
4649
4665
  composeConfirmButtonTo = _ref$composeConfirmBu === void 0 ? function (fromTicker, toTicker, fromAmount) {
4650
4666
  return "";
@@ -4717,7 +4733,6 @@ var SwapForm = function SwapForm(_ref) {
4717
4733
  },
4718
4734
  addressFields: {
4719
4735
  addressTitle: "Recepient address",
4720
- addressPlaceholder: "Example: 1XPTgDRh...",
4721
4736
  extraIdTitle: "Extra ID (optional)",
4722
4737
  extraIdPlaceholder: "Example: ABC123",
4723
4738
  extraIdNotice: "Please check if your recipient address requires a 'Memo' or 'Destination Tag' - sometimes called a tag, ID, label, or a note. Exchanges may require such ID for the deposit. Including this identifier is crucial when required, as omitting or misentering it can result in lost assets."
@@ -4742,10 +4757,9 @@ var SwapForm = function SwapForm(_ref) {
4742
4757
  _ref$recepientAddress3 = _ref.recepientAddressExtraIdAvailable,
4743
4758
  recepientAddressExtraIdAvailable = _ref$recepientAddress3 === void 0 ? false : _ref$recepientAddress3,
4744
4759
  _ref$displayRateSelec = _ref.displayRateSelector,
4745
- displayRateSelector = _ref$displayRateSelec === void 0 ? false : _ref$displayRateSelec,
4746
- _ref$dispatchRateMode = _ref.dispatchRateModeChanged,
4747
- dispatchRateModeChanged = _ref$dispatchRateMode === void 0 ? function (isFixed) {} : _ref$dispatchRateMode;
4760
+ displayRateSelector = _ref$displayRateSelec === void 0 ? false : _ref$displayRateSelec;
4748
4761
  var DETAIL_REFRESH_INTERVAL_MS = 1.5 * 60000;
4762
+ var IS_FIXED_BY_DEFAULT = false;
4749
4763
 
4750
4764
  // Updating the states below will insert the new value into the send or receive input field
4751
4765
  var _useState = React.useState(preservedAmount != null ? preservedAmount : null),
@@ -4798,30 +4812,30 @@ var SwapForm = function SwapForm(_ref) {
4798
4812
  var _useState12 = React.useState(false),
4799
4813
  isAddressFieldEnabled = _useState12[0],
4800
4814
  setIsAddressFieldEnabled = _useState12[1];
4801
- var _useState13 = React.useState(null),
4802
- isFixedRate = _useState13[0],
4803
- setIsFixedRate = _useState13[1];
4804
- var _useState14 = React.useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
4805
- confirmButtonTo = _useState14[0],
4806
- setConfirmButtonTo = _useState14[1];
4807
- var _useState15 = React.useState(),
4808
- transactionFee = _useState15[0],
4809
- setTransactionFee = _useState15[1];
4810
- var _useState16 = React.useState(true),
4811
- balanceValid = _useState16[0],
4812
- setBalanceValid = _useState16[1]; // Whether the amount is less than total balance
4813
4815
  var _useReferredState5 = useReferredState(null),
4814
- isSwapAll = _useReferredState5[0],
4815
- setIsSwapAll = _useReferredState5[1];
4816
- var _useState17 = React.useState([]),
4817
- swapAllButtonLoaderReSetter = _useState17[0],
4818
- setSwapAllButtonLoaderReSetter = _useState17[1];
4816
+ isFixedRate = _useReferredState5[0],
4817
+ setIsFixedRate = _useReferredState5[1];
4818
+ var _useState13 = React.useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
4819
+ confirmButtonTo = _useState13[0],
4820
+ setConfirmButtonTo = _useState13[1];
4821
+ var _useState14 = React.useState(),
4822
+ transactionFee = _useState14[0],
4823
+ setTransactionFee = _useState14[1];
4824
+ var _useState15 = React.useState(true),
4825
+ balanceValid = _useState15[0],
4826
+ setBalanceValid = _useState15[1]; // Whether the amount is less than total balance
4819
4827
  var _useReferredState6 = useReferredState(null),
4820
- dataUpdateTimeoutId = _useReferredState6[0],
4821
- setDataUpdateTimeoutId = _useReferredState6[1];
4828
+ isSwapAll = _useReferredState6[0],
4829
+ setIsSwapAll = _useReferredState6[1];
4830
+ var _useState16 = React.useState([]),
4831
+ swapAllButtonLoaderReSetter = _useState16[0],
4832
+ setSwapAllButtonLoaderReSetter = _useState16[1];
4822
4833
  var _useReferredState7 = useReferredState(null),
4823
- idleDataUpdateTimeoutId = _useReferredState7[0],
4824
- setIdleDataUpdateTimeoutId = _useReferredState7[1];
4834
+ dataUpdateTimeoutId = _useReferredState7[0],
4835
+ setDataUpdateTimeoutId = _useReferredState7[1];
4836
+ var _useReferredState8 = useReferredState(null),
4837
+ idleDataUpdateTimeoutId = _useReferredState8[0],
4838
+ setIdleDataUpdateTimeoutId = _useReferredState8[1];
4825
4839
  var callHandlingErrors = useCallHandlingErrors();
4826
4840
  var recalculationDelayOnTyping = 1000;
4827
4841
  var handleSendAssetAmountChange = function handleSendAssetAmountChange(amount) {
@@ -4934,7 +4948,7 @@ var SwapForm = function SwapForm(_ref) {
4934
4948
  (function () {
4935
4949
  try {
4936
4950
  return _catch$c(function () {
4937
- var _minimalAmount$curren4, _maximumAmount$curren3;
4951
+ var _minimalAmount$curren4, _maximumAmount$curren3, _isFixedRate$current;
4938
4952
  var dataMemento = {
4939
4953
  rate: swapRate,
4940
4954
  min: (_minimalAmount$curren4 = minimalAmount.current) == null ? void 0 : _minimalAmount$curren4.crypto,
@@ -4951,7 +4965,7 @@ var SwapForm = function SwapForm(_ref) {
4951
4965
  setIsSameCoins(false);
4952
4966
  setIsPairSupported(true);
4953
4967
  setIsSwapCalculated(false);
4954
- return Promise.resolve(retrieveSwapDetails(sendingAssetTicker, receivingAssetTicker, amount, isSwapAll.current, isFixedRate)).then(function (response) {
4968
+ return Promise.resolve(retrieveSwapDetails(sendingAssetTicker, receivingAssetTicker, amount, isSwapAll.current, (_isFixedRate$current = isFixedRate.current) != null ? _isFixedRate$current : IS_FIXED_BY_DEFAULT)).then(function (response) {
4955
4969
  if (!isSwapAll.current && String(amount) !== String(isForPreserved && sendAssetAmount.current == null ? preservedAmount : sendAssetAmount.current)) {
4956
4970
  // Means amount changed and we no more need to do this exact calculation
4957
4971
  return;
@@ -5037,7 +5051,6 @@ var SwapForm = function SwapForm(_ref) {
5037
5051
  };
5038
5052
  var handleRateModeChanged = function handleRateModeChanged(isFixed) {
5039
5053
  setIsFixedRate(isFixed);
5040
- dispatchRateModeChanged(isFixed);
5041
5054
  requestDataRefresh(sendAssetAmount.current, true);
5042
5055
  };
5043
5056
  React.useEffect(function () {
@@ -5201,6 +5214,7 @@ var SwapForm = function SwapForm(_ref) {
5201
5214
  assetIconProtocolSrc: receivingAssetProtocolIconSrc,
5202
5215
  fallbackAssetIconSrc: fallBackAssetIconSrc,
5203
5216
  disabled: isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null,
5217
+ locked: !formHasBalance,
5204
5218
  handleCoinAmountChange: handleReceiveAssetAmountChange,
5205
5219
  handleChangeAssetClick: handleChangeReceivingAssetClick,
5206
5220
  updateAssetInputTo: updateReceiveInputTo,
@@ -5208,7 +5222,7 @@ var SwapForm = function SwapForm(_ref) {
5208
5222
  changeAssetButtonProtocol: receivingAssetProtocol,
5209
5223
  showBalance: formHasBalance,
5210
5224
  lowerFormPosition: true,
5211
- estimateAmount: true,
5225
+ estimateAmount: !isFixedRate,
5212
5226
  ref: toAssetSelectionButtonRef,
5213
5227
  isLoading: isLoading.current,
5214
5228
  cryptoAssetToFiatRate: receivingAssetToFiatRate,
@@ -5220,7 +5234,7 @@ var SwapForm = function SwapForm(_ref) {
5220
5234
  className: s$9["swap-form-information-field"]
5221
5235
  }, /*#__PURE__*/React__default["default"].createElement("p", null, !isPairSupported ? translations.informationBlock.pairNotAvailable : transactionFee && minimalAmountValid ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.transactionFee, /*#__PURE__*/React__default["default"].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__default["default"].createElement("span", {
5222
5236
  className: s$9["semi-transparent"]
5223
- }, " ~ " + AmountUtils.fiat(transactionFee == null ? void 0 : transactionFee.fiat, fiatCurrencyCode)) : "") : isSwapCalculated ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.swapRate, /*#__PURE__*/React__default["default"].createElement("span", null, AmountUtils.composeRateText(sendingAssetTickerPrintable, receivingAssetTickerPrintable, swapRate, receivingAssetDecimalCount, isFixedRate))) : minimalAmount.current ? !maximumAmountValid && maximumAmount.current != null ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.maximumAmount, /*#__PURE__*/React__default["default"].createElement("span", {
5237
+ }, " ~ " + AmountUtils.fiat(transactionFee == null ? void 0 : transactionFee.fiat, fiatCurrencyCode)) : "") : isSwapCalculated || !minimalAmount.current && swapRate ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.swapRate, /*#__PURE__*/React__default["default"].createElement("span", null, AmountUtils.composeRateText(sendingAssetTickerPrintable, receivingAssetTickerPrintable, swapRate, receivingAssetDecimalCount, (_isFixedRate$current2 = isFixedRate.current) != null ? _isFixedRate$current2 : IS_FIXED_BY_DEFAULT))) : minimalAmount.current || maximumAmount.current ? !maximumAmountValid && maximumAmount.current != null ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, translations.informationBlock.maximumAmount, /*#__PURE__*/React__default["default"].createElement("span", {
5224
5238
  className: s$9["interactable"] + " " + s$9["red"],
5225
5239
  onClick: isLoading.current ? function () {} : function (e) {
5226
5240
  return callHandlingErrors(handleMaximumAmountClick, e);
@@ -5245,8 +5259,7 @@ var SwapForm = function SwapForm(_ref) {
5245
5259
  },
5246
5260
  value: recepientAddress,
5247
5261
  adaptiveHeight: true,
5248
- errorEncountered: !recepientAddressValid && recepientAddress !== "",
5249
- placeholder: translations.addressFields.addressPlaceholder
5262
+ errorEncountered: !recepientAddressValid && recepientAddress !== ""
5250
5263
  })), recepientAddressExtraIdAvailable ? /*#__PURE__*/React__default["default"].createElement(TitleBox, {
5251
5264
  title: translations.addressFields.extraIdTitle,
5252
5265
  titleNoticeText: translations.addressFields.extraIdNotice,
@@ -5263,8 +5276,8 @@ var SwapForm = function SwapForm(_ref) {
5263
5276
  })) : "") : "", displayRateSelector ? /*#__PURE__*/React__default["default"].createElement("div", {
5264
5277
  className: s$9["swap-form-rate-selector"]
5265
5278
  }, /*#__PURE__*/React__default["default"].createElement(RateSelector, {
5266
- isFixed: isFixedRate,
5267
- setIsFixed: handleRateModeChanged,
5279
+ isFixed: (_isFixedRate$current3 = isFixedRate.current) != null ? _isFixedRate$current3 : IS_FIXED_BY_DEFAULT,
5280
+ setIsFixed: !isLoading.current ? handleRateModeChanged : function () {},
5268
5281
  translations: translations.rateSelector
5269
5282
  })) : "", validationContent ? /*#__PURE__*/React__default["default"].createElement("div", {
5270
5283
  className: s$9["swap-form-validation-text"]
@@ -5286,11 +5299,13 @@ var SwapForm = function SwapForm(_ref) {
5286
5299
  size: "lg",
5287
5300
  mode: "primary",
5288
5301
  content: translations.confirmButtonText,
5289
- onClick: handleConfirmButtonClick,
5302
+ onClick: function onClick(resetButtonLoader) {
5303
+ return handleConfirmButtonClick(resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins);
5304
+ },
5290
5305
  fullWidthOnMobiles: true,
5291
5306
  isDisabled: !readyToSwap,
5292
5307
  to: formHasBalance ? "" : confirmButtonTo,
5293
- loader: formHasBalance,
5308
+ loader: true,
5294
5309
  handleError: callHandlingErrors
5295
5310
  }))));
5296
5311
  };
@@ -5341,7 +5356,7 @@ SwapForm.defaultProps = {
5341
5356
  sendingAssetProtocolIconSrc: null,
5342
5357
  receivingAssetProtocolIconSrc: null,
5343
5358
  fallBackAssetIconSrc: null,
5344
- handleConfirmButtonClick: function handleConfirmButtonClick() {},
5359
+ handleConfirmButtonClick: function handleConfirmButtonClick(resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins) {},
5345
5360
  composeConfirmButtonTo: function composeConfirmButtonTo(fromTicker, toTicker, fromAmount) {
5346
5361
  return "";
5347
5362
  },
@@ -9995,10 +10010,11 @@ var SwapspaceSwapProvider = /*#__PURE__*/function (_SwapProvider) {
9995
10010
  var _response$data, _exchangesSupportingT;
9996
10011
  Logger.log("Retrieved " + (response == null || (_response$data = response.data) == null ? void 0 : _response$data.length) + " options", loggerSource);
9997
10012
  var options = Array.isArray(response.data) ? response.data : [];
10013
+ // TODO: [feature, high] remove if possible over-engineering about toAmount = 0 options treating as supported but not available. task_id=404ae30d9a7743238af3cc0d3bae9239
9998
10014
  var exchangesSupportingThePairDespiteFixedOrFloating = options.filter(function (exchange) {
9999
10015
  return (exchange == null ? void 0 : exchange.exists) && !BANNED_PARTNERS.find(function (bannedPartner) {
10000
10016
  return bannedPartner === (exchange == null ? void 0 : exchange.partner);
10001
- }) && ((exchange == null ? void 0 : exchange.fixed) === false || (exchange == null ? void 0 : exchange.fixed) === true) && (exchange.min === 0 || exchange.max === 0 || exchange.max > exchange.min || (typeof exchange.min !== "number" || typeof exchange.max !== "number") && exchange.toAmount > 0);
10017
+ }) && ((exchange == null ? void 0 : exchange.fixed) === false || (exchange == null ? void 0 : exchange.fixed) === true) && typeof exchange.min === "number" && typeof exchange.max === "number" && typeof exchange.toAmount === "number" && exchange.toAmount > 0 && (exchange.min === 0 || exchange.max === 0 || exchange.max > exchange.min);
10002
10018
  });
10003
10019
  var exchangesSupportingThePair = exchangesSupportingThePairDespiteFixedOrFloating;
10004
10020
  if (fixed != null) {