@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.umd.js CHANGED
@@ -2051,13 +2051,13 @@
2051
2051
  isSuccessAlert = _ref.isSuccessAlert;
2052
2052
  return /*#__PURE__*/React__default["default"].createElement("div", {
2053
2053
  className: s$h["validation"]
2054
- }, isSuccessAlert ?
2054
+ }, /*#__PURE__*/React__default["default"].createElement("div", null, isSuccessAlert ?
2055
2055
  /*#__PURE__*/
2056
2056
  // <img src={successfulValidationIcon} alt="validation icon" />
2057
2057
  React__default["default"].createElement(SuccessfulValidationIcon, null) :
2058
2058
  /*#__PURE__*/
2059
2059
  // <img src={failedValidationIcon} alt="validation icon" />
2060
- React__default["default"].createElement(FailedValidationIcon, null), /*#__PURE__*/React__default["default"].createElement("span", {
2060
+ React__default["default"].createElement(FailedValidationIcon, null)), /*#__PURE__*/React__default["default"].createElement("span", {
2061
2061
  className: s$h["validation-text"]
2062
2062
  }, text));
2063
2063
  };
@@ -2858,10 +2858,10 @@
2858
2858
  // eslint-disable-next-line react-hooks/exhaustive-deps
2859
2859
  }, []);
2860
2860
  var handleTransitionEnd = function handleTransitionEnd(event) {
2861
- if (isMultiStep && isCurrentStep(stepName) && event.propertyName === "opacity" && event.target.classList[0] === DIALOG_STEP_CLASS) {
2861
+ if (isMultiStep && isCurrentStep(stepName) && event.propertyName === "opacity" && event.target.classList[0] === s$f[DIALOG_STEP_CLASS]) {
2862
2862
  disableAnimation(animationConfiguration.animateHeightTransitionEnabled);
2863
2863
  }
2864
- if (isMultiStep && unmountOnAnimationEndTrigger && event.propertyName === "opacity" && event.target.classList[0] === DIALOG_STEP_CLASS) {
2864
+ if (isMultiStep && unmountOnAnimationEndTrigger && event.propertyName === "opacity" && event.target.classList[0] === s$f[DIALOG_STEP_CLASS]) {
2865
2865
  clearButtonsConfiguration();
2866
2866
  scrollDialogToTop();
2867
2867
  setStepMounted(false);
@@ -4031,6 +4031,7 @@
4031
4031
  _ref$handleBalanceVal = _ref.handleBalanceValidationChange,
4032
4032
  handleBalanceValidationChange = _ref$handleBalanceVal === void 0 ? function (isValid) {} : _ref$handleBalanceVal,
4033
4033
  disabled = _ref.disabled,
4034
+ locked = _ref.locked,
4034
4035
  alertText = _ref.alertText,
4035
4036
  predefinedValue = _ref.predefinedValue,
4036
4037
  children = _ref.children,
@@ -4162,7 +4163,7 @@
4162
4163
  return "0" + (decimalCount > 0 ? "." + "0".repeat(decimalCount) : "");
4163
4164
  };
4164
4165
  var handleFiatInteraction = function handleFiatInteraction() {
4165
- if (disabled) return;
4166
+ if (disabled || locked) return;
4166
4167
  setFiatAmountAutoFocus(true);
4167
4168
  setInteractedWith(true);
4168
4169
  };
@@ -4194,7 +4195,7 @@
4194
4195
  // Clearing the custom focus upon disabling or enabling the form
4195
4196
  React.useEffect(function () {
4196
4197
  return setIsInFocus(false);
4197
- }, [disabled]);
4198
+ }, [disabled, locked]);
4198
4199
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(TitleBox, {
4199
4200
  title: label,
4200
4201
  linkText: isSendAll !== null ? isSendAll ? linkButtonActiveText : linkButtonInactiveText : null,
@@ -4218,7 +4219,7 @@
4218
4219
  },
4219
4220
  placeholder: coinAmountPlaceholder,
4220
4221
  className: s$a["requested-amount-coin-input"],
4221
- disabled: disabled,
4222
+ disabled: disabled || locked,
4222
4223
  onFocus: function onFocus(e) {
4223
4224
  return callHandlingErrors(function () {
4224
4225
  return setIsInFocus(true);
@@ -4242,7 +4243,7 @@
4242
4243
  inputMode: "decimal",
4243
4244
  className: s$a["requested-amount-fiat-input"],
4244
4245
  value: fiatAmountValue,
4245
- disabled: disabled,
4246
+ disabled: disabled || locked,
4246
4247
  onChange: function onChange(e) {
4247
4248
  return handleChangeAmountFiat(e.target.value);
4248
4249
  },
@@ -4503,6 +4504,21 @@
4503
4504
  * @return {void}
4504
4505
  */
4505
4506
 
4507
+ /**
4508
+ * Handler for the confirm button click. You should implement errors handling inside it.
4509
+ *
4510
+ * @function
4511
+ * @name handleConfirmButtonClick
4512
+ * @param {function} resetButtonLoader - callback resetting the confirm button loader
4513
+ * @param {function} setValidationContent - Function to set the validation error message on the form.
4514
+ * @param {function} setBalanceValid - Function to set the balance validity, accepts a boolean.
4515
+ * @param {function} setMinimalAmountValid - Function to set the minimal amount validity, accepts a boolean.
4516
+ * @param {function} setMaximumAmountValid - Function to set the maximum amount validity, accepts a boolean.
4517
+ * @param {function} setIsPairSupported - Function to set the pair support status, accepts a boolean.
4518
+ * @param {function} setIsSameCoins - Function to set the status if the same coins are used, accepts a boolean.
4519
+ * @return {void}
4520
+ */
4521
+
4506
4522
  /**
4507
4523
  * Async function that retrieves swap creation info by given params.
4508
4524
  *
@@ -4570,7 +4586,7 @@
4570
4586
  * @param {string} [props.receivingAssetBalance] - Balance of the receiving asset.
4571
4587
  * @param {handleClick} props.handleChangeSendingAssetClick - Function to handle clicking on the change sending asset button.
4572
4588
  * @param {handleClick} props.handleChangeReceivingAssetClick - Function to handle clicking on the change receiving asset button.
4573
- * @param {handleClick} props.handleConfirmButtonClick - Function to handle clicking on the confirm button.
4589
+ * @param {handleConfirmButtonClick} props.handleConfirmButtonClick - Function to handle clicking on the confirm button.
4574
4590
  * @param {composeConfirmButtonTo} props.composeConfirmButtonTo - Function to compose the URL for the confirm button.
4575
4591
  * @param {setSwapCreationEstimation} props.setSwapCreationEstimation - Function to set the swap creation estimation.
4576
4592
  * @param {handleUnexpectedError} props.handleUnexpectedError - Function to handle unexpected errors.
@@ -4609,7 +4625,7 @@
4609
4625
  return result;
4610
4626
  }
4611
4627
  var SwapForm = function SwapForm(_ref) {
4612
- var _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5;
4628
+ var _isFixedRate$current2, _maximumAmount$curren4, _maximumAmount$curren5, _maximumAmount$curren6, _minimalAmount$curren5, _isFixedRate$current3;
4613
4629
  var sendingAssetTicker = _ref.sendingAssetTicker,
4614
4630
  receivingAssetTicker = _ref.receivingAssetTicker,
4615
4631
  _ref$sendingAssetDeci = _ref.sendingAssetDecimalCount,
@@ -4634,7 +4650,7 @@
4634
4650
  handleChangeSendingAssetClick = _ref.handleChangeSendingAssetClick,
4635
4651
  handleChangeReceivingAssetClick = _ref.handleChangeReceivingAssetClick,
4636
4652
  _ref$handleConfirmBut = _ref.handleConfirmButtonClick,
4637
- handleConfirmButtonClick = _ref$handleConfirmBut === void 0 ? function () {} : _ref$handleConfirmBut,
4653
+ handleConfirmButtonClick = _ref$handleConfirmBut === void 0 ? function (resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins) {} : _ref$handleConfirmBut,
4638
4654
  _ref$composeConfirmBu = _ref.composeConfirmButtonTo,
4639
4655
  composeConfirmButtonTo = _ref$composeConfirmBu === void 0 ? function (fromTicker, toTicker, fromAmount) {
4640
4656
  return "";
@@ -4707,7 +4723,6 @@
4707
4723
  },
4708
4724
  addressFields: {
4709
4725
  addressTitle: "Recepient address",
4710
- addressPlaceholder: "Example: 1XPTgDRh...",
4711
4726
  extraIdTitle: "Extra ID (optional)",
4712
4727
  extraIdPlaceholder: "Example: ABC123",
4713
4728
  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."
@@ -4732,10 +4747,9 @@
4732
4747
  _ref$recepientAddress3 = _ref.recepientAddressExtraIdAvailable,
4733
4748
  recepientAddressExtraIdAvailable = _ref$recepientAddress3 === void 0 ? false : _ref$recepientAddress3,
4734
4749
  _ref$displayRateSelec = _ref.displayRateSelector,
4735
- displayRateSelector = _ref$displayRateSelec === void 0 ? false : _ref$displayRateSelec,
4736
- _ref$dispatchRateMode = _ref.dispatchRateModeChanged,
4737
- dispatchRateModeChanged = _ref$dispatchRateMode === void 0 ? function (isFixed) {} : _ref$dispatchRateMode;
4750
+ displayRateSelector = _ref$displayRateSelec === void 0 ? false : _ref$displayRateSelec;
4738
4751
  var DETAIL_REFRESH_INTERVAL_MS = 1.5 * 60000;
4752
+ var IS_FIXED_BY_DEFAULT = false;
4739
4753
 
4740
4754
  // Updating the states below will insert the new value into the send or receive input field
4741
4755
  var _useState = React.useState(preservedAmount != null ? preservedAmount : null),
@@ -4788,30 +4802,30 @@
4788
4802
  var _useState12 = React.useState(false),
4789
4803
  isAddressFieldEnabled = _useState12[0],
4790
4804
  setIsAddressFieldEnabled = _useState12[1];
4791
- var _useState13 = React.useState(null),
4792
- isFixedRate = _useState13[0],
4793
- setIsFixedRate = _useState13[1];
4794
- var _useState14 = React.useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
4795
- confirmButtonTo = _useState14[0],
4796
- setConfirmButtonTo = _useState14[1];
4797
- var _useState15 = React.useState(),
4798
- transactionFee = _useState15[0],
4799
- setTransactionFee = _useState15[1];
4800
- var _useState16 = React.useState(true),
4801
- balanceValid = _useState16[0],
4802
- setBalanceValid = _useState16[1]; // Whether the amount is less than total balance
4803
4805
  var _useReferredState5 = useReferredState(null),
4804
- isSwapAll = _useReferredState5[0],
4805
- setIsSwapAll = _useReferredState5[1];
4806
- var _useState17 = React.useState([]),
4807
- swapAllButtonLoaderReSetter = _useState17[0],
4808
- setSwapAllButtonLoaderReSetter = _useState17[1];
4806
+ isFixedRate = _useReferredState5[0],
4807
+ setIsFixedRate = _useReferredState5[1];
4808
+ var _useState13 = React.useState(composeConfirmButtonTo(sendingAssetTicker, receivingAssetTicker, preservedAmount)),
4809
+ confirmButtonTo = _useState13[0],
4810
+ setConfirmButtonTo = _useState13[1];
4811
+ var _useState14 = React.useState(),
4812
+ transactionFee = _useState14[0],
4813
+ setTransactionFee = _useState14[1];
4814
+ var _useState15 = React.useState(true),
4815
+ balanceValid = _useState15[0],
4816
+ setBalanceValid = _useState15[1]; // Whether the amount is less than total balance
4809
4817
  var _useReferredState6 = useReferredState(null),
4810
- dataUpdateTimeoutId = _useReferredState6[0],
4811
- setDataUpdateTimeoutId = _useReferredState6[1];
4818
+ isSwapAll = _useReferredState6[0],
4819
+ setIsSwapAll = _useReferredState6[1];
4820
+ var _useState16 = React.useState([]),
4821
+ swapAllButtonLoaderReSetter = _useState16[0],
4822
+ setSwapAllButtonLoaderReSetter = _useState16[1];
4812
4823
  var _useReferredState7 = useReferredState(null),
4813
- idleDataUpdateTimeoutId = _useReferredState7[0],
4814
- setIdleDataUpdateTimeoutId = _useReferredState7[1];
4824
+ dataUpdateTimeoutId = _useReferredState7[0],
4825
+ setDataUpdateTimeoutId = _useReferredState7[1];
4826
+ var _useReferredState8 = useReferredState(null),
4827
+ idleDataUpdateTimeoutId = _useReferredState8[0],
4828
+ setIdleDataUpdateTimeoutId = _useReferredState8[1];
4815
4829
  var callHandlingErrors = useCallHandlingErrors();
4816
4830
  var recalculationDelayOnTyping = 1000;
4817
4831
  var handleSendAssetAmountChange = function handleSendAssetAmountChange(amount) {
@@ -4924,7 +4938,7 @@
4924
4938
  (function () {
4925
4939
  try {
4926
4940
  return _catch$c(function () {
4927
- var _minimalAmount$curren4, _maximumAmount$curren3;
4941
+ var _minimalAmount$curren4, _maximumAmount$curren3, _isFixedRate$current;
4928
4942
  var dataMemento = {
4929
4943
  rate: swapRate,
4930
4944
  min: (_minimalAmount$curren4 = minimalAmount.current) == null ? void 0 : _minimalAmount$curren4.crypto,
@@ -4941,7 +4955,7 @@
4941
4955
  setIsSameCoins(false);
4942
4956
  setIsPairSupported(true);
4943
4957
  setIsSwapCalculated(false);
4944
- return Promise.resolve(retrieveSwapDetails(sendingAssetTicker, receivingAssetTicker, amount, isSwapAll.current, isFixedRate)).then(function (response) {
4958
+ return Promise.resolve(retrieveSwapDetails(sendingAssetTicker, receivingAssetTicker, amount, isSwapAll.current, (_isFixedRate$current = isFixedRate.current) != null ? _isFixedRate$current : IS_FIXED_BY_DEFAULT)).then(function (response) {
4945
4959
  if (!isSwapAll.current && String(amount) !== String(isForPreserved && sendAssetAmount.current == null ? preservedAmount : sendAssetAmount.current)) {
4946
4960
  // Means amount changed and we no more need to do this exact calculation
4947
4961
  return;
@@ -5027,7 +5041,6 @@
5027
5041
  };
5028
5042
  var handleRateModeChanged = function handleRateModeChanged(isFixed) {
5029
5043
  setIsFixedRate(isFixed);
5030
- dispatchRateModeChanged(isFixed);
5031
5044
  requestDataRefresh(sendAssetAmount.current, true);
5032
5045
  };
5033
5046
  React.useEffect(function () {
@@ -5191,6 +5204,7 @@
5191
5204
  assetIconProtocolSrc: receivingAssetProtocolIconSrc,
5192
5205
  fallbackAssetIconSrc: fallBackAssetIconSrc,
5193
5206
  disabled: isSwapAll.current || sendingAssetTicker === null || receivingAssetTicker === null,
5207
+ locked: !formHasBalance,
5194
5208
  handleCoinAmountChange: handleReceiveAssetAmountChange,
5195
5209
  handleChangeAssetClick: handleChangeReceivingAssetClick,
5196
5210
  updateAssetInputTo: updateReceiveInputTo,
@@ -5198,7 +5212,7 @@
5198
5212
  changeAssetButtonProtocol: receivingAssetProtocol,
5199
5213
  showBalance: formHasBalance,
5200
5214
  lowerFormPosition: true,
5201
- estimateAmount: true,
5215
+ estimateAmount: !isFixedRate,
5202
5216
  ref: toAssetSelectionButtonRef,
5203
5217
  isLoading: isLoading.current,
5204
5218
  cryptoAssetToFiatRate: receivingAssetToFiatRate,
@@ -5210,7 +5224,7 @@
5210
5224
  className: s$9["swap-form-information-field"]
5211
5225
  }, /*#__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", {
5212
5226
  className: s$9["semi-transparent"]
5213
- }, " ~ " + 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", {
5227
+ }, " ~ " + 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", {
5214
5228
  className: s$9["interactable"] + " " + s$9["red"],
5215
5229
  onClick: isLoading.current ? function () {} : function (e) {
5216
5230
  return callHandlingErrors(handleMaximumAmountClick, e);
@@ -5235,8 +5249,7 @@
5235
5249
  },
5236
5250
  value: recepientAddress,
5237
5251
  adaptiveHeight: true,
5238
- errorEncountered: !recepientAddressValid && recepientAddress !== "",
5239
- placeholder: translations.addressFields.addressPlaceholder
5252
+ errorEncountered: !recepientAddressValid && recepientAddress !== ""
5240
5253
  })), recepientAddressExtraIdAvailable ? /*#__PURE__*/React__default["default"].createElement(TitleBox, {
5241
5254
  title: translations.addressFields.extraIdTitle,
5242
5255
  titleNoticeText: translations.addressFields.extraIdNotice,
@@ -5253,8 +5266,8 @@
5253
5266
  })) : "") : "", displayRateSelector ? /*#__PURE__*/React__default["default"].createElement("div", {
5254
5267
  className: s$9["swap-form-rate-selector"]
5255
5268
  }, /*#__PURE__*/React__default["default"].createElement(RateSelector, {
5256
- isFixed: isFixedRate,
5257
- setIsFixed: handleRateModeChanged,
5269
+ isFixed: (_isFixedRate$current3 = isFixedRate.current) != null ? _isFixedRate$current3 : IS_FIXED_BY_DEFAULT,
5270
+ setIsFixed: !isLoading.current ? handleRateModeChanged : function () {},
5258
5271
  translations: translations.rateSelector
5259
5272
  })) : "", validationContent ? /*#__PURE__*/React__default["default"].createElement("div", {
5260
5273
  className: s$9["swap-form-validation-text"]
@@ -5276,11 +5289,13 @@
5276
5289
  size: "lg",
5277
5290
  mode: "primary",
5278
5291
  content: translations.confirmButtonText,
5279
- onClick: handleConfirmButtonClick,
5292
+ onClick: function onClick(resetButtonLoader) {
5293
+ return handleConfirmButtonClick(resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins);
5294
+ },
5280
5295
  fullWidthOnMobiles: true,
5281
5296
  isDisabled: !readyToSwap,
5282
5297
  to: formHasBalance ? "" : confirmButtonTo,
5283
- loader: formHasBalance,
5298
+ loader: true,
5284
5299
  handleError: callHandlingErrors
5285
5300
  }))));
5286
5301
  };
@@ -5331,7 +5346,7 @@
5331
5346
  sendingAssetProtocolIconSrc: null,
5332
5347
  receivingAssetProtocolIconSrc: null,
5333
5348
  fallBackAssetIconSrc: null,
5334
- handleConfirmButtonClick: function handleConfirmButtonClick() {},
5349
+ handleConfirmButtonClick: function handleConfirmButtonClick(resetButtonLoader, setValidationContent, setBalanceValid, setMinimalAmountValid, setMaximumAmountValid, setIsPairSupported, setIsSameCoins) {},
5335
5350
  composeConfirmButtonTo: function composeConfirmButtonTo(fromTicker, toTicker, fromAmount) {
5336
5351
  return "";
5337
5352
  },
@@ -9985,10 +10000,11 @@
9985
10000
  var _response$data, _exchangesSupportingT;
9986
10001
  Logger.log("Retrieved " + (response == null || (_response$data = response.data) == null ? void 0 : _response$data.length) + " options", loggerSource);
9987
10002
  var options = Array.isArray(response.data) ? response.data : [];
10003
+ // TODO: [feature, high] remove if possible over-engineering about toAmount = 0 options treating as supported but not available. task_id=404ae30d9a7743238af3cc0d3bae9239
9988
10004
  var exchangesSupportingThePairDespiteFixedOrFloating = options.filter(function (exchange) {
9989
10005
  return (exchange == null ? void 0 : exchange.exists) && !BANNED_PARTNERS.find(function (bannedPartner) {
9990
10006
  return bannedPartner === (exchange == null ? void 0 : exchange.partner);
9991
- }) && ((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);
10007
+ }) && ((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);
9992
10008
  });
9993
10009
  var exchangesSupportingThePair = exchangesSupportingThePairDespiteFixedOrFloating;
9994
10010
  if (fixed != null) {